commit
8ae9fbdb1c
23 changed files with 1246 additions and 0 deletions
@ -0,0 +1 @@ |
||||
programs/sxmo_setpineled |
@ -0,0 +1,22 @@ |
||||
PREFIX:=/usr
|
||||
|
||||
programs/sxmo_setpineled: |
||||
gcc -o programs/sxmo_setpineled programs/sxmo_setpineled.c
|
||||
|
||||
programs/sxmo_setpinebacklight: |
||||
gcc -o programs/sxmo_setpinebacklight programs/sxmo_setpinebacklight.c
|
||||
|
||||
install: programs/sxmo_setpineled programs/sxmo_setpinebacklight |
||||
mkdir -p $(PREFIX)/share/sxmo
|
||||
cp configs/* $(PREFIX)/share/sxmo
|
||||
|
||||
mkdir -p $(PREFIX)/bin
|
||||
cp scripts/* $(PREFIX)/bin
|
||||
|
||||
chown root programs/sxmo_setpineled
|
||||
chmod u+s programs/sxmo_setpineled
|
||||
cp programs/sxmo_setpineled $(PREFIX)/bin
|
||||
|
||||
chown root programs/sxmo_setpinebacklight
|
||||
chmod u+s programs/sxmo_setpinebacklight
|
||||
cp programs/sxmo_setpinebacklight $(PREFIX)/bin
|
@ -0,0 +1,36 @@ |
||||
conky.config = { |
||||
alignment = 'middle_middle', |
||||
background = false, |
||||
border_width = 0.5, |
||||
cpu_avg_samples = 4, |
||||
default_color = 'white', |
||||
default_outline_color = 'grey', |
||||
default_shade_color = 'black', |
||||
draw_borders = true, |
||||
draw_graph_borders = true, |
||||
draw_outline = false, |
||||
draw_shades = true, |
||||
use_xft = true, |
||||
font = 'DejaVu Sans Mono:size=10', |
||||
gap_x = 5, |
||||
gap_y = 50, |
||||
minimum_height = 5, |
||||
minimum_width = 5, |
||||
net_avg_samples = 2, |
||||
double_buffer = true, |
||||
out_to_console = false, |
||||
out_to_stderr = false, |
||||
extra_newline = false, |
||||
own_window = false, |
||||
stippled_borders = 1, |
||||
update_interval = 60, |
||||
uppercase = false, |
||||
use_spacer = 'none', |
||||
show_graph_scale = false, |
||||
show_graph_range = false |
||||
} |
||||
|
||||
conky.text = [[ |
||||
${font Latin Modern Mono Caps:size=80}${alignc}${exec date +"%I:%M"}${font Latin Modern Mono Caps:size=30}PM |
||||
${font Latin Modern Mono Caps:size=20}${alignc}${exec date +"%b %d, %Y"} |
||||
]] |
@ -0,0 +1,632 @@ |
||||
state.sun50ia64audio { |
||||
control.1 { |
||||
iface MIXER |
||||
name 'AIF1 AD0 Capture Volume' |
||||
value.0 165 |
||||
value.1 165 |
||||
comment { |
||||
access 'read write' |
||||
type INTEGER |
||||
count 2 |
||||
range '0 - 192' |
||||
dbmin -9999999 |
||||
dbmax 2400 |
||||
dbvalue.0 375 |
||||
dbvalue.1 375 |
||||
} |
||||
} |
||||
control.2 { |
||||
iface MIXER |
||||
name 'AIF1 DA0 Playback Volume' |
||||
value.0 149 |
||||
value.1 149 |
||||
comment { |
||||
access 'read write' |
||||
type INTEGER |
||||
count 2 |
||||
range '0 - 192' |
||||
dbmin -9999999 |
||||
dbmax 2400 |
||||
dbvalue.0 -825 |
||||
dbvalue.1 -825 |
||||
} |
||||
} |
||||
control.3 { |
||||
iface MIXER |
||||
name 'AIF2 ADC Capture Volume' |
||||
value.0 168 |
||||
value.1 168 |
||||
comment { |
||||
access 'read write' |
||||
type INTEGER |
||||
count 2 |
||||
range '0 - 192' |
||||
dbmin -9999999 |
||||
dbmax 2400 |
||||
dbvalue.0 600 |
||||
dbvalue.1 600 |
||||
} |
||||
} |
||||
control.4 { |
||||
iface MIXER |
||||
name 'AIF2 DAC Playback Volume' |
||||
value.0 0 |
||||
value.1 0 |
||||
comment { |
||||
access 'read write' |
||||
type INTEGER |
||||
count 2 |
||||
range '0 - 192' |
||||
dbmin -9999999 |
||||
dbmax 2400 |
||||
dbvalue.0 -9999999 |
||||
dbvalue.1 -9999999 |
||||
} |
||||
} |
||||
control.5 { |
||||
iface MIXER |
||||
name 'ADC Capture Volume' |
||||
value.0 179 |
||||
value.1 179 |
||||
comment { |
||||
access 'read write' |
||||
type INTEGER |
||||
count 2 |
||||
range '0 - 192' |
||||
dbmin -9999999 |
||||
dbmax 2400 |
||||
dbvalue.0 1425 |
||||
dbvalue.1 1425 |
||||
} |
||||
} |
||||
control.6 { |
||||
iface MIXER |
||||
name 'DAC Playback Volume' |
||||
value.0 169 |
||||
value.1 169 |
||||
comment { |
||||
access 'read write' |
||||
type INTEGER |
||||
count 2 |
||||
range '0 - 192' |
||||
dbmin -9999999 |
||||
dbmax 2400 |
||||
dbvalue.0 675 |
||||
dbvalue.1 675 |
||||
} |
||||
} |
||||
control.7 { |
||||
iface MIXER |
||||
name 'Headphone Playback Volume' |
||||
value 29 |
||||
comment { |
||||
access 'read write' |
||||
type INTEGER |
||||
count 1 |
||||
range '0 - 63' |
||||
dbmin -9999999 |
||||
dbmax 0 |
||||
dbvalue.0 -3400 |
||||
} |
||||
} |
||||
control.8 { |
||||
iface MIXER |
||||
name 'Mic1 Playback Volume' |
||||
value 0 |
||||
comment { |
||||
access 'read write' |
||||
type INTEGER |
||||
count 1 |
||||
range '0 - 7' |
||||
dbmin -450 |
||||
dbmax 600 |
||||
dbvalue.0 -450 |
||||
} |
||||
} |
||||
control.9 { |
||||
iface MIXER |
||||
name 'Mic1 Boost Volume' |
||||
value 0 |
||||
comment { |
||||
access 'read write' |
||||
type INTEGER |
||||
count 1 |
||||
range '0 - 7' |
||||
dbmin 0 |
||||
dbmax 4200 |
||||
dbvalue.0 0 |
||||
} |
||||
} |
||||
control.10 { |
||||
iface MIXER |
||||
name 'Mic2 Playback Volume' |
||||
value 0 |
||||
comment { |
||||
access 'read write' |
||||
type INTEGER |
||||
count 1 |
||||
range '0 - 7' |
||||
dbmin -450 |
||||
dbmax 600 |
||||
dbvalue.0 -450 |
||||
} |
||||
} |
||||
control.11 { |
||||
iface MIXER |
||||
name 'Mic2 Boost Volume' |
||||
value 0 |
||||
comment { |
||||
access 'read write' |
||||
type INTEGER |
||||
count 1 |
||||
range '0 - 7' |
||||
dbmin 0 |
||||
dbmax 4200 |
||||
dbvalue.0 0 |
||||
} |
||||
} |
||||
control.12 { |
||||
iface MIXER |
||||
name 'ADC Gain Capture Volume' |
||||
value 3 |
||||
comment { |
||||
access 'read write' |
||||
type INTEGER |
||||
count 1 |
||||
range '0 - 7' |
||||
dbmin -450 |
||||
dbmax 600 |
||||
dbvalue.0 0 |
||||
} |
||||
} |
||||
control.13 { |
||||
iface MIXER |
||||
name 'Line In Playback Volume' |
||||
value 0 |
||||
comment { |
||||
access 'read write' |
||||
type INTEGER |
||||
count 1 |
||||
range '0 - 7' |
||||
dbmin -450 |
||||
dbmax 600 |
||||
dbvalue.0 -450 |
||||
} |
||||
} |
||||
control.14 { |
||||
iface MIXER |
||||
name 'Line Out Playback Volume' |
||||
value 0 |
||||
comment { |
||||
access 'read write' |
||||
type INTEGER |
||||
count 1 |
||||
range '0 - 31' |
||||
dbmin -9999999 |
||||
dbmax 0 |
||||
dbvalue.0 -9999999 |
||||
} |
||||
} |
||||
control.15 { |
||||
iface MIXER |
||||
name 'Earpiece Playback Volume' |
||||
value 0 |
||||
comment { |
||||
access 'read write' |
||||
type INTEGER |
||||
count 1 |
||||
range '0 - 31' |
||||
dbmin -9999999 |
||||
dbmax 0 |
||||
dbvalue.0 -9999999 |
||||
} |
||||
} |
||||
control.16 { |
||||
iface MIXER |
||||
name 'AIF1 Loopback Switch' |
||||
value false |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 1 |
||||
} |
||||
} |
||||
control.17 { |
||||
iface MIXER |
||||
name 'AIF2 Loopback Switch' |
||||
value false |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 1 |
||||
} |
||||
} |
||||
control.18 { |
||||
iface MIXER |
||||
name 'AIF3 Loopback Switch' |
||||
value false |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 1 |
||||
} |
||||
} |
||||
control.19 { |
||||
iface MIXER |
||||
name 'AIF1 AD0 Stereo Capture Route' |
||||
value.0 'Mix Mono' |
||||
value.1 'Mix Mono' |
||||
comment { |
||||
access 'read write' |
||||
type ENUMERATED |
||||
count 2 |
||||
item.0 Stereo |
||||
item.1 'Reverse Stereo' |
||||
item.2 'Sum Mono' |
||||
item.3 'Mix Mono' |
||||
} |
||||
} |
||||
control.20 { |
||||
iface MIXER |
||||
name 'AIF2 ADC Stereo Capture Route' |
||||
value.0 Stereo |
||||
value.1 Stereo |
||||
comment { |
||||
access 'read write' |
||||
type ENUMERATED |
||||
count 2 |
||||
item.0 Stereo |
||||
item.1 'Reverse Stereo' |
||||
item.2 'Sum Mono' |
||||
item.3 'Mix Mono' |
||||
} |
||||
} |
||||
control.21 { |
||||
iface MIXER |
||||
name 'AIF3 ADC Capture Route' |
||||
value 'AIF2 Right' |
||||
comment { |
||||
access 'read write' |
||||
type ENUMERATED |
||||
count 1 |
||||
item.0 None |
||||
item.1 'AIF2 Left' |
||||
item.2 'AIF2 Right' |
||||
} |
||||
} |
||||
control.22 { |
||||
iface MIXER |
||||
name 'AIF1 AD0 Mixer AIF1 DA0 Capture Switch' |
||||
value.0 false |
||||
value.1 false |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 2 |
||||
} |
||||
} |
||||
control.23 { |
||||
iface MIXER |
||||
name 'AIF1 AD0 Mixer AIF2 DAC Capture Switch' |
||||
value.0 false |
||||
value.1 false |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 2 |
||||
} |
||||
} |
||||
control.24 { |
||||
iface MIXER |
||||
name 'AIF1 AD0 Mixer ADC Capture Switch' |
||||
value.0 false |
||||
value.1 false |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 2 |
||||
} |
||||
} |
||||
control.25 { |
||||
iface MIXER |
||||
name 'AIF1 AD0 Mixer AIF2 DAC Rev Capture Switch' |
||||
value.0 false |
||||
value.1 false |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 2 |
||||
} |
||||
} |
||||
control.26 { |
||||
iface MIXER |
||||
name 'AIF2 ADC Mixer AIF1 DA0 Capture Switch' |
||||
value.0 false |
||||
value.1 false |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 2 |
||||
} |
||||
} |
||||
control.27 { |
||||
iface MIXER |
||||
name 'AIF2 ADC Mixer AIF2 DAC Rev Capture Switch' |
||||
value.0 false |
||||
value.1 false |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 2 |
||||
} |
||||
} |
||||
control.28 { |
||||
iface MIXER |
||||
name 'AIF2 ADC Mixer ADC Capture Switch' |
||||
value.0 false |
||||
value.1 false |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 2 |
||||
} |
||||
} |
||||
control.29 { |
||||
iface MIXER |
||||
name 'AIF3 DAC Playback Route' |
||||
value None |
||||
comment { |
||||
access 'read write' |
||||
type ENUMERATED |
||||
count 1 |
||||
item.0 None |
||||
item.1 'AIF2 Left' |
||||
item.2 'AIF2 Right' |
||||
} |
||||
} |
||||
control.30 { |
||||
iface MIXER |
||||
name 'AIF1 DA0 Stereo Playback Route' |
||||
value.0 Stereo |
||||
value.1 Stereo |
||||
comment { |
||||
access 'read write' |
||||
type ENUMERATED |
||||
count 2 |
||||
item.0 Stereo |
||||
item.1 'Reverse Stereo' |
||||
item.2 'Sum Mono' |
||||
item.3 'Mix Mono' |
||||
} |
||||
} |
||||
control.31 { |
||||
iface MIXER |
||||
name 'AIF2 DAC Stereo Playback Route' |
||||
value.0 Stereo |
||||
value.1 Stereo |
||||
comment { |
||||
access 'read write' |
||||
type ENUMERATED |
||||
count 2 |
||||
item.0 Stereo |
||||
item.1 'Reverse Stereo' |
||||
item.2 'Sum Mono' |
||||
item.3 'Mix Mono' |
||||
} |
||||
} |
||||
control.32 { |
||||
iface MIXER |
||||
name 'DAC Mixer AIF1 DA0 Playback Switch' |
||||
value.0 true |
||||
value.1 true |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 2 |
||||
} |
||||
} |
||||
control.33 { |
||||
iface MIXER |
||||
name 'DAC Mixer AIF2 DAC Playback Switch' |
||||
value.0 true |
||||
value.1 true |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 2 |
||||
} |
||||
} |
||||
control.34 { |
||||
iface MIXER |
||||
name 'DAC Mixer ADC Playback Switch' |
||||
value.0 false |
||||
value.1 false |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 2 |
||||
} |
||||
} |
||||
control.35 { |
||||
iface MIXER |
||||
name 'Headphone Source Playback Route' |
||||
value.0 DAC |
||||
value.1 DAC |
||||
comment { |
||||
access 'read write' |
||||
type ENUMERATED |
||||
count 2 |
||||
item.0 DAC |
||||
item.1 Mixer |
||||
} |
||||
} |
||||
control.36 { |
||||
iface MIXER |
||||
name 'Headphone Playback Switch' |
||||
value.0 true |
||||
value.1 true |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 2 |
||||
} |
||||
} |
||||
control.37 { |
||||
iface MIXER |
||||
name 'Line Out Source Playback Route' |
||||
value.0 Stereo |
||||
value.1 Stereo |
||||
comment { |
||||
access 'read write' |
||||
type ENUMERATED |
||||
count 2 |
||||
item.0 Stereo |
||||
item.1 'Mono Differential' |
||||
} |
||||
} |
||||
control.38 { |
||||
iface MIXER |
||||
name 'Line Out Playback Switch' |
||||
value.0 false |
||||
value.1 false |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 2 |
||||
} |
||||
} |
||||
control.39 { |
||||
iface MIXER |
||||
name 'Earpiece Source Playback Route' |
||||
value DACR |
||||
comment { |
||||
access 'read write' |
||||
type ENUMERATED |
||||
count 1 |
||||
item.0 DACR |
||||
item.1 DACL |
||||
item.2 'Right Mixer' |
||||
item.3 'Left Mixer' |
||||
} |
||||
} |
||||
control.40 { |
||||
iface MIXER |
||||
name 'Earpiece Playback Switch' |
||||
value false |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 1 |
||||
} |
||||
} |
||||
control.41 { |
||||
iface MIXER |
||||
name 'Mic1 Playback Switch' |
||||
value.0 false |
||||
value.1 false |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 2 |
||||
} |
||||
} |
||||
control.42 { |
||||
iface MIXER |
||||
name 'Mic2 Playback Switch' |
||||
value.0 false |
||||
value.1 false |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 2 |
||||
} |
||||
} |
||||
control.43 { |
||||
iface MIXER |
||||
name 'Line In Playback Switch' |
||||
value.0 false |
||||
value.1 false |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 2 |
||||
} |
||||
} |
||||
control.44 { |
||||
iface MIXER |
||||
name 'DAC Playback Switch' |
||||
value.0 true |
||||
value.1 true |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 2 |
||||
} |
||||
} |
||||
control.45 { |
||||
iface MIXER |
||||
name 'DAC Reversed Playback Switch' |
||||
value.0 false |
||||
value.1 false |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 2 |
||||
} |
||||
} |
||||
control.46 { |
||||
iface MIXER |
||||
name 'Mic1 Capture Switch' |
||||
value.0 false |
||||
value.1 false |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 2 |
||||
} |
||||
} |
||||
control.47 { |
||||
iface MIXER |
||||
name 'Mic2 Capture Switch' |
||||
value.0 false |
||||
value.1 false |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 2 |
||||
} |
||||
} |
||||
control.48 { |
||||
iface MIXER |
||||
name 'Line In Capture Switch' |
||||
value.0 false |
||||
value.1 false |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 2 |
||||
} |
||||
} |
||||
control.49 { |
||||
iface MIXER |
||||
name 'Mixer Capture Switch' |
||||
value.0 false |
||||
value.1 false |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 2 |
||||
} |
||||
} |
||||
control.50 { |
||||
iface MIXER |
||||
name 'Mixer Reversed Capture Switch' |
||||
value.0 false |
||||
value.1 false |
||||
comment { |
||||
access 'read write' |
||||
type BOOLEAN |
||||
count 2 |
||||
} |
||||
} |
||||
} |
@ -0,0 +1 @@ |
||||
Welcome to sxmo |
@ -0,0 +1,37 @@ |
||||
#include <stdio.h> |
||||
#include <stdlib.h> |
||||
#include <string.h> |
||||
#include <unistd.h> |
||||
|
||||
void usage() { |
||||
fprintf(stderr, "Usage: setpinebacklight [0-10]\n"); |
||||
} |
||||
|
||||
int main(int argc, char *argv[]) { |
||||
char * command; |
||||
int brightness; |
||||
|
||||
if (argc < 2) { |
||||
usage(); |
||||
return 1; |
||||
} |
||||
argc--; |
||||
brightness = atoi(argv[argc--]); |
||||
|
||||
if (brightness < 0 || brightness > 10) { |
||||
usage(); |
||||
return 1; |
||||
} |
||||
|
||||
command = malloc(100); |
||||
sprintf( |
||||
command, |
||||
"sh -c 'echo %d > /sys/devices/platform/backlight/backlight/backlight/brightness'", |
||||
brightness |
||||
); |
||||
if (setuid(0)) { |
||||
fprintf(stderr, "setuid(0) failed\n"); |
||||
} else { |
||||
return system(command); |
||||
} |
||||
} |
@ -0,0 +1,45 @@ |
||||
#include <stdio.h> |
||||
#include <stdlib.h> |
||||
#include <string.h> |
||||
#include <unistd.h> |
||||
|
||||
void usage() { |
||||
fprintf(stderr, "Usage: setpineled [red|green|blue] [0-255]\n"); |
||||
} |
||||
|
||||
int main(int argc, char *argv[]) { |
||||
int brightness; |
||||
char * color; |
||||
char * command; |
||||
|
||||
if (argc < 2) { |
||||
usage(); |
||||
return 1; |
||||
} |
||||
argc--; |
||||
brightness = atoi(argv[argc--]); |
||||
|
||||
if (brightness < 0 || brightness > 255) { |
||||
usage(); |
||||
return 1; |
||||
} |
||||
|
||||
color = argv[argc--]; |
||||
if (strcmp(color, "red") && strcmp(color, "blue") && strcmp(color, "green")) { |
||||
usage(); |
||||
return 1; |
||||
} |
||||
|
||||
command = malloc(80); |
||||
sprintf( |
||||
command, |
||||
"sh -c 'echo %d > /sys/devices/platform/leds/leds/pinephone:%s:user/brightness'", |
||||
brightness, |
||||
color |
||||
); |
||||
if (setuid(0)) { |
||||
fprintf(stderr, "setuid(0) failed\n"); |
||||
} else { |
||||
return system(command); |
||||
} |
||||
} |
@ -0,0 +1,138 @@ |
||||
#!/usr/bin/env sh |
||||
WIN=$(xdotool getwindowfocus) |
||||
|
||||
programchoicesinit() { |
||||
WMCLASS="${1:-$(xprop -id $(xdotool getactivewindow) | grep WM_CLASS | cut -d ' ' -f3-)}" |
||||
|
||||
# Default |
||||
CHOICES="$(echo " |
||||
Push window tag → ^ 0 ^ sxmo_lowpowermode.sh |
||||
Tag focus → ^ 0 ^ sxmo_lowpowermode.sh |
||||
Applications ^ 0 ^ sxmo_appmenu.sh applications |
||||
Volume ↑ ^ 1 ^ sxmo_vol.sh up |
||||
Volume ↓ ^ 1 ^ sxmo_vol.sh down |
||||
Brightesss ↑ ^ 1 ^ sxmo_brightness.sh up |
||||
Brightness ↓ ^ 1 ^ sxmo_brightness.sh down |
||||
Wifi ^ 0 ^ st -e "nmtui" |
||||
Rotate ^ 1 ^ rotate |
||||
Logout ^ 0 ^ pkill -9 dwm |
||||
Close Menu ^ 0 ^ quit |
||||
")" && WINNAME=sys |
||||
|
||||
echo $WMCLASS | grep -i "applications" && CHOICES="$(echo " |
||||
Surf ^ 0 ^ surf |
||||
NetSurf ^ 0 ^ netsurf |
||||
St ^ 0 ^ st |
||||
Firefox ^ 0 ^ firefox |
||||
Foxtrotgps ^ 0 ^ foxtrotgps |
||||
Close Menu ^ 0 ^ quit |
||||
")" && WINNAME=Apps |
||||
|
||||
|
||||
echo $WMCLASS | grep -i "mpv" && CHOICES="$(echo " |
||||
Pause ^ 0 ^ key space |
||||
")" && WINNAME=Mpv |
||||
|
||||
# St |
||||
echo $WMCLASS | grep -i "st-256color" && CHOICES="$(echo " |
||||
Pastecomplete ^ 0 ^ key Ctrl+Shift+u |
||||
Paste ^ 0 ^ key Ctrl+Shift+v |
||||
Pipe Data ^ 0 ^ |
||||
Zoom + ^ 1 ^ key Ctrl+Shift+Prior |
||||
Zoom - ^ 1 ^ key Ctrl+Shift+Next |
||||
Scroll ↑ ^ 1 ^ key Shift+Prior |
||||
Scroll ↓ ^ 1 ^ key Shift+Next |
||||
Hotkeys ^ 0 ^ sxmo_appmenu.sh sthotkeys |
||||
Close Menu ^ 0 ^ quit |
||||
")" && WINNAME=st |
||||
|
||||
# St hotkeys |
||||
echo $WMCLASS | grep -i "sthotkeys" && CHOICES="$(echo " |
||||
Send Ctrl-C ^ 0 ^ key Ctrl+C |
||||
Send Ctrl-L ^ 0 ^ key Ctrl+L |
||||
Send Ctrl- ^ 0 ^ key Ctrl+L |
||||
Close Menu ^ 0 ^ quit |
||||
")" && WINNAME=st |
||||
|
||||
# Surf |
||||
echo $WMCLASS | grep surf && CHOICES="$(echo " |
||||
Navigate ^ 0 ^ key Ctrl+g |
||||
Link Menu ^ 0 ^ key Ctrl+d |
||||
Pipe URL ^ 0 ^ sxmo_urlhandler.sh |
||||
Zoom + ^ 1 ^ key Ctrl+Shift+k |
||||
Zoom - ^ 1 ^ key Ctrl+Shift+j |
||||
Scroll ↑ ^ 1 ^ key Ctrl+space |
||||
Scroll ↓ ^ 1 ^ key Ctrl+b |
||||
JS Toggle ^ 1 ^ key Ctrl+Shift+s |
||||
Search ^ 1 ^ key Ctrl+f |
||||
History ← ^ 1 ^ key Ctrl+h |
||||
History → ^ 1 ^ key Ctrl+l |
||||
Close Menu ^ 0 ^ quit |
||||
")" && WINNAME=surf |
||||
|
||||
echo $WMCLASS | grep -i netsurf && CHOICES="$(echo " |
||||
Pipe URL ^ 0 ^ sxmo_urlhandler.sh |
||||
Zoom + ^ 1 ^ key Ctrl+plus |
||||
Zoom - ^ 1 ^ key Ctrl+minus |
||||
History ← ^ 1 ^ key Alt+Left |
||||
History → ^ 1 ^ key Alt+Right |
||||
Close Menu ^ 0 ^ quit |
||||
")" && WINNAME=netsurf |
||||
|
||||
echo $WMCLASS | grep -i foxtrot && CHOICES="$(echo " |
||||
Zoom + ^ 1 ^ key i |
||||
Zoom - ^ 1 ^ key o |
||||
Panel toggle ^ 1 ^ key m |
||||
Autocenter toggle ^ 0 ^ key a |
||||
Route ^ 0 ^ key r |
||||
Gmaps Transfer ^ 0 ^ key o |
||||
Copy Cords ^ 0 ^ key o |
||||
Close Menu ^ 0 ^ quit |
||||
")" && WINNAME=gps |
||||
} |
||||
|
||||
rotate() { |
||||
xrandr | grep primary | cut -d' ' -f 5 | grep right && xrandr -o normal || xrandr -o right |
||||
} |
||||
|
||||
key() { |
||||
xdotool windowactivate $WIN |
||||
xdotool key --clearmodifiers $1 |
||||
#--window $WIN |
||||
} |
||||
|
||||
quit() { |
||||
xset r off |
||||
exit 0 |
||||
} |
||||
|
||||
boot() { |
||||
DMENUIDX=0 |
||||
PICKED="" |
||||
xset r on |
||||
pgrep -f sxmo_appmenu.sh | grep -Ev "^${$}$" | xargs kill -9 |
||||
pkill -9 dmenu |
||||
} |
||||
|
||||
mainloop() { |
||||
while : |
||||
do |
||||
PICKED=$( |
||||
echo "$CHOICES" | |
||||
xargs -0 echo | |
||||
cut -d'^' -f1 | |
||||
sed '/^[[:space:]]*$/d' | |
||||
awk '{$1=$1};1' | |
||||
dmenu -idx $DMENUIDX -l 10 -c -fn "Terminus-30" -p "$WINNAME" |
||||
) |
||||
LOOP=$(echo "$CHOICES" | grep "$PICKED" | cut -d '^' -f2) |
||||
CMD=$(echo "$CHOICES" | grep "$PICKED" | cut -d '^' -f3) |
||||
DMENUIDX=$(echo $(echo "$CHOICES" | grep -n "$PICKED" | cut -d ':' -f1) - 1 | bc) |
||||
eval $CMD |
||||
echo $LOOP | grep 1 || quit |
||||
done |
||||
} |
||||
|
||||
boot |
||||
programchoicesinit $@ |
||||
mainloop |
@ -0,0 +1,4 @@ |
||||
#!/usr/bin/env sh |
||||
sxmo_setpineled $1 150 |
||||
sleep 0.01 |
||||
sxmo_setpineled $1 0 |
@ -0,0 +1,25 @@ |
||||
#!/usr/bin/env sh |
||||
MAX=10 |
||||
MIN=2 |
||||
|
||||
setdelta() { |
||||
sxmo_setpinebacklight $( |
||||
cat /sys/class/backlight/backlight/brightness | |
||||
xargs -IB echo B $1 | |
||||
bc | |
||||
xargs -INUM echo -e "$MIN\nNUM" | sort -n | tail -n1 | |
||||
xargs -INUM echo -e "$MAX\nNUM" | sort -n | head -n1 |
||||
) |
||||
sxmo_notify.sh 200 "Backlight $(cat /sys/class/backlight/backlight/brightness)/10" |
||||
} |
||||
|
||||
up() { |
||||
setdelta "+1" |
||||
|
||||
} |
||||
|
||||
down() { |
||||
setdelta "-1" |
||||
} |
||||
|
||||
$1 $2 |
@ -0,0 +1,33 @@ |
||||
#!/usr/bin/env sh |
||||
|
||||
power_1() { |
||||
pgrep -f sxmo_appmenu.sh || sxmo_keyboard.sh |
||||
} |
||||
power_2() { |
||||
st |
||||
} |
||||
power_3() { |
||||
surf |
||||
} |
||||
|
||||
voldown_1() { |
||||
pgrep -f sxmo_appmenu.sh && xdotool key Control+n || xdotool key Alt+Ctrl+period |
||||
} |
||||
voldown_2() { |
||||
xdotool key Alt+Shift+c |
||||
} |
||||
voldown_3() { |
||||
xdotool key Alt+Return |
||||
} |
||||
|
||||
volup_1() { |
||||
pgrep -f sxmo_appmenu.sh && xdotool key Control+p || sxmo_appmenu.sh |
||||
} |
||||
volup_2() { |
||||
echo nop |
||||
} |
||||
volup_3() { |
||||
echo nop |
||||
} |
||||
|
||||
$@ |
@ -0,0 +1,6 @@ |
||||
#!/usr/bin/env sh |
||||
|
||||
sxmo_keyboard.sh on & |
||||
OUTPUT="$(cat | dmenu -t $@)" |
||||
sxmo_keyboard.sh off |
||||
echo "$OUTPUT" |
@ -0,0 +1,5 @@ |
||||
#!/bin/sh |
||||
tmpfile=$(mktemp /tmp/st-edit.XXXXXX) |
||||
trap 'rm "$tmpfile"' 0 1 15 |
||||
cat > "$tmpfile" |
||||
st -e "$EDITOR" "$tmpfile" |
@ -0,0 +1,30 @@ |
||||
#!/usr/bin/env sh |
||||
|
||||
P=/tmp/KEYTOG |
||||
|
||||
keyoff() { |
||||
kill -9 $(cat $P) |
||||
pgrep -f sxmo_keyboard.sh | grep -Ev "^${$}$" | xargs kill -9 |
||||
pkill -9 svkbd-en |
||||
pkill -9 svkbd-symbols |
||||
rm $P |
||||
} |
||||
|
||||
keyon() { |
||||
echo $$ >> $P |
||||
while : |
||||
do |
||||
svkbd-en -d |
||||
svkbd-symbols -d |
||||
done |
||||
} |
||||
|
||||
if [ "$1" == "on" ]; then |
||||
[ -f $P ] && keyoff |
||||
keyon |
||||
elif [ "$1" == "off" ]; then |
||||
[ -f $P ] && keyoff |
||||
else |
||||
# Default toggle |
||||
[ -f $P ] && keyoff || keyon |
||||
fi |
@ -0,0 +1,18 @@ |
||||
#!/usr/bin/env sh |
||||
TOUCHSCREENID=$( |
||||
xinput | |
||||
grep -i touchscreen | |
||||
grep pointer | |
||||
grep -oE 'id=[0-9]+' | |
||||
cut -d= -f2 |
||||
) |
||||
|
||||
xinput disable $TOUCHSCREENID |
||||
sxmo_setpineled blue 1 |
||||
OLDB="$(cat /sys/class/backlight/backlight/brightness)" |
||||
sxmo_setpinebacklight 0 |
||||
echo "Dragons?" | dmenu |
||||
|
||||
sxmo_setpinebacklight $OLDB |
||||
sxmo_setpineled blue 0 |
||||
xinput enable $TOUCHSCREENID |
@ -0,0 +1,15 @@ |
||||
move() { |
||||
xdotool keydown Alt |
||||
echo "Move done?" | dmenu |
||||
xdotool keyup Alt |
||||
} |
||||
|
||||
resize() { |
||||
xdotool keydown Alt |
||||
xdotool mousedown 3 |
||||
echo "Resize done?" | dmenu |
||||
xdotool keyup Alt |
||||
xdotool mouseup 3 |
||||
} |
||||
|
||||
$@ |
@ -0,0 +1,12 @@ |
||||
#!/usr/bin/env sh |
||||
HEIGHT=30 |
||||
W=$1 |
||||
FULLW=$( |
||||
xdpyinfo | |
||||
grep 'dimensions' | |
||||
egrep -o "[0-9]+x[0-9]+ pixels" | |
||||
sed "s/x.*//" |
||||
) |
||||
OFFX=$(echo $FULLW - $W - 2 | bc) |
||||
|
||||
sh -c "echo $2 | dzen2 -p 2 -h $HEIGHT -x $OFFX -y 30" & |
@ -0,0 +1,16 @@ |
||||
#!/usr/bin/env sh |
||||
sxmo_keyboard.sh on & |
||||
|
||||
cat |\ |
||||
grep -Eo '\\S+' |\ |
||||
tr -d '[:blank:]' |\ |
||||
sort |\ |
||||
uniq |\ |
||||
dmenu -p Type -l 10 -i -c -fn Terminus-20 |
||||
|
||||
sxmo_keyboard.sh off |
||||
|
||||
if [[ "$RESULT" = "Close Menu" ]]; then |
||||
else |
||||
xargs -I CC xdotool type "$RESULT" |
||||
fi |
@ -0,0 +1,28 @@ |
||||
#!/usr/bin/env sh |
||||
UPDATEFILE=/tmp/sxmo_bar |
||||
touch $UPDATEFILE |
||||
|
||||
while : |
||||
do |
||||
PCT=$(cat /sys/class/power_supply/axp20x-battery/capacity) |
||||
BATSTATUS=$( |
||||
cat /sys/class/power_supply/axp20x-battery/status | |
||||
cut -b0 |
||||
) |
||||
|
||||
VOL=$( |
||||
amixer sget Headphone | |
||||
grep -oE '([0-9]+)%' | |
||||
tr -d ' %' | |
||||
awk '{ s += $1; c++ } END { print s/c }' | |
||||
xargs printf %.0f |
||||
) |
||||
|
||||
TIME=$(date +%R) |
||||
|
||||
BAR=" V${VOL} ${BATSTATUS}${PCT}% ${TIME}" |
||||
xsetroot -name "$BAR" |
||||
|
||||
inotifywait -e MODIFY $UPDATEFILE & sleep 5 & wait -n |
||||
pgrep -P $$ | xargs kill -9 |
||||
done |
@ -0,0 +1,76 @@ |
||||
#!/usr/bin/env sh |
||||
# surf_linkselect.sh: |
||||
# Usage: curl somesite.com | surf_linkselect [SURFWINDOWID] [PROMPT] |
||||
# Deps: xmllint, dmenu |
||||
# Info: |
||||
# Designed to be used w/ surf externalpipe patch. Enables keyboard-only |
||||
# link selection via dmenu. Given HTML stdin, extracts links one per line |
||||
# Selected link is normalized based on current URI and printed to STDOUT. |
||||
# Pipe the result to a new surf or xprop _SURF_URI accordingly. |
||||
SURF_WINDOW="${1:-$(xprop -root | sed -n '/^_NET_ACTIVE_WINDOW/ s/.* //p')}" |
||||
DMENU_PROMPT="${2:-Link}" |
||||
|
||||
function dump_links_with_titles() { |
||||
awk '{ |
||||
input = $0; |
||||
|
||||
$0 = input; |
||||
gsub("<[^>]*>", ""); |
||||
gsub(/[ ]+/, " "); |
||||
gsub("&", "\\&"); |
||||
gsub("<", "<"); |
||||
gsub(">", ">"); |
||||
$1 = $1; |
||||
title = ($0 == "" ? "None" : $0); |
||||
|
||||
$0 = input; |
||||
match($0, /\<[ ]*[aA][^>]* [hH][rR][eE][fF]=["]([^"]+)["]/, linkextract); |
||||
$0 = linkextract[1]; |
||||
gsub(/^[ \t]+/,""); |
||||
gsub(/[ \t]+$/,""); |
||||
gsub("[ ]", "%20"); |
||||
link = $0; |
||||
|
||||
if (link != "") { |
||||
print title ": " link; |
||||
} |
||||
}' |
||||
} |
||||
|
||||
function link_normalize() { |
||||
URI=$1 |
||||
awk -v uri=$URI '{ |
||||
gsub("&", "\\&"); |
||||
|
||||
if ($0 ~ /^https?:\/\// || $0 ~ /^\/\/.+$/) { |
||||
print $0; |
||||
} else if ($0 ~/^#/) { |
||||
gsub(/[#?][^#?]+/, "", uri); |
||||
print uri $0; |
||||
} else if ($0 ~/^\//) { |
||||
split(uri, uri_parts, "/"); |
||||
print uri_parts[3] $0; |
||||
} else { |
||||
gsub(/[#][^#]+/, "", uri); |
||||
uri_parts_size = split(uri, uri_parts, "/"); |
||||
delete uri_parts[uri_parts_size]; |
||||
for (v in uri_parts) { |
||||
uri_pagestripped = uri_pagestripped uri_parts[v] "/" |
||||
} |
||||
print uri_pagestripped $0; |
||||
} |
||||
}' |
||||
} |
||||
|
||||
function link_select() { |
||||
tr '\n\r' ' ' | |
||||
xmllint --html --xpath "//a" - | |
||||
dump_links_with_titles | |
||||
awk '!x[$0]++' | |
||||
# sort | uniq |
||||
dmenu -p "$DMENU_PROMPT" -l 10 -i -c | |
||||
awk -F' ' '{print $NF}' | |
||||
link_normalize $(xprop -id $SURF_WINDOW _SURF_URI | cut -d '"' -f 2) |
||||
} |
||||
|
||||
link_select |
@ -0,0 +1,42 @@ |
||||
#!/usr/bin/env sh |
||||
|
||||
# URL test passed from $1 |
||||
URL=${1:-$URL} |
||||
|
||||
# Surf |
||||
WINDOW="$(xprop -root | sed -n '/^_NET_ACTIVE_WINDOW/ s/.* //p')" |
||||
SURFURL=`xprop -id $WINDOW | grep URI | awk '{print $3}' | sed 's/\"//g'` |
||||
if [[ ! -z "$SURFURL" ]] |
||||
then |
||||
URL="$SURFURL" |
||||
fi |
||||
|
||||
# Is normal browser? (FF or Netsurf) - use Ctrl-L Ctrl-C to copy URL |
||||
ISNORMBROWS=`xprop -id $(xdotool getactivewindow) | grep -E 'WM_CLASS.*(Netsurf|Firefox)'` |
||||
if [[ ! -z "$ISNORMBROWS" ]] |
||||
then |
||||
xdotool key --clearmodifiers --delay 20 "ctrl+l" "ctrl+c" |
||||
sleep 0.2 |
||||
URL="$(xclip -o)" |
||||
fi |
||||
|
||||
COMMAND=$( |
||||
echo " |
||||
w3m URL |
||||
mpv -v URL |
||||
mpv -v --ytdl-format='[height<420]' URL |
||||
firefox -new-window URL |
||||
netsurf URL |
||||
surf URL |
||||
echo URL | xclip -i |
||||
youtube-dl -o- URL | mpv -v - |
||||
youtube-dl URL |
||||
curl URL | vis - |
||||
wget URL |
||||
aria2c URL |
||||
" | sed "s/URL/'URL'/g" | sed -e '/^\s*$/d' | sed -e 's/^\s*//' | dmenu -p "Pipe URL" -c -l 10 |
||||
) |
||||
[[ -z "$COMMAND" ]] && exit 1 |
||||
|
||||
RUN=$(echo $URL | xargs -IURL echo "$COMMAND") |
||||
st -e sh -c "$RUN" |
@ -0,0 +1,12 @@ |
||||
#!/usr/bin/env sh |
||||
incvol() { |
||||
amixer set Headphone 1+ |
||||
echo 1 > /tmp/sxmo_bar |
||||
} |
||||
decvol() { |
||||
amixer set Headphone 1- |
||||
echo 1 > /tmp/sxmo_bar |
||||
} |
||||
|
||||
echo $1 | grep up && echo 1 > /tmp/sxmo_bar && incvol |
||||
echo $1 | grep down && echo 1 > /tmp/sxmo_bar && decvol |
@ -0,0 +1,12 @@ |
||||
#!/usr/bin/env sh |
||||
source /etc/profile |
||||
which $TERM || export TERM=st |
||||
which $BROWSER || export BROWSER=surf |
||||
|
||||
xsetroot -mod 3 2 -fg '#000000' -bg '#888888' |
||||
conky -c /usr/share/sxmo/conky.conf -d |
||||
|
||||
sxmo_statusbar.sh & |
||||
xset r off |
||||
alsactl --file /usr/share/sxmo/default_alsa_sound.conf restore |
||||
exec dbus-run-session dwm 2> ~/.dwm.log |
Loading…
Reference in new issue