Merge branch 'master' of ssh://git.jonathanh.co.uk:2222/jab2870/Dotfiles
This commit is contained in:
commit
ed0817f6b5
23 changed files with 596 additions and 48 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -9,5 +9,6 @@ mutt/accounts/*
|
||||||
/qutebrowser/.config/qutebrowser/autoconfig.yml
|
/qutebrowser/.config/qutebrowser/autoconfig.yml
|
||||||
/bin/.bin/pappy
|
/bin/.bin/pappy
|
||||||
/systemd/.config/systemd/user/timers.target.wants/
|
/systemd/.config/systemd/user/timers.target.wants/
|
||||||
|
/systemd/.config/systemd/user/default.target.wants/
|
||||||
nvim/.config/nvim/.netrwhist
|
nvim/.config/nvim/.netrwhist
|
||||||
remind/.local/share/remind/work.rem
|
remind/.local/share/remind/work.rem
|
||||||
|
|
|
@ -2,6 +2,15 @@
|
||||||
|
|
||||||
addressbook="$HOME/.abook/addressbook"
|
addressbook="$HOME/.abook/addressbook"
|
||||||
|
|
||||||
|
filter(){
|
||||||
|
if [ -n "$1" ]; then
|
||||||
|
local str="$(echo "$1" | tr -d ' ' | sed 's/^0/+44/')"
|
||||||
|
grep -i "$str"
|
||||||
|
else
|
||||||
|
cat -
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
cat "$addressbook" |
|
cat "$addressbook" |
|
||||||
grep -E '(\[[0-9]+\]|^$|name|phone|mobile)' |
|
grep -E '(\[[0-9]+\]|^$|name|phone|mobile)' |
|
||||||
awk -v RS="\n\n" -v ORS="\n" '{gsub("\n","\t",$0); print $0}' |
|
awk -v RS="\n\n" -v ORS="\n" '{gsub("\n","\t",$0); print $0}' |
|
||||||
|
@ -9,8 +18,9 @@ cat "$addressbook" |
|
||||||
name="$(echo "$line" | cut -d ' ' -f 2 | cut -d '=' -f 2)"
|
name="$(echo "$line" | cut -d ' ' -f 2 | cut -d '=' -f 2)"
|
||||||
echo "$line" | tr '\t' '\n' |
|
echo "$line" | tr '\t' '\n' |
|
||||||
grep -E '(phone|mobile)' | while read -r numLine; do
|
grep -E '(phone|mobile)' | while read -r numLine; do
|
||||||
num="$(echo "$numLine" | cut -d '=' -f 2 | tr -d ' ' | sed 's/+44(0)/+44/')"
|
num="$(echo "$numLine" | cut -d '=' -f 2 | tr -d ' ' |
|
||||||
|
sed 's/+44(0)/+44/' | sed 's/^0/+44/')"
|
||||||
numType="$(echo "$numLine" | cut -d '=' -f 1)"
|
numType="$(echo "$numLine" | cut -d '=' -f 1)"
|
||||||
echo -e "$name\t$num\t$numType"
|
echo -e "$name\t$num\t$numType"
|
||||||
done
|
done
|
||||||
done
|
done | filter "$*"
|
||||||
|
|
21
bin/.bin/dmenu/menu-phone
Executable file
21
bin/.bin/dmenu/menu-phone
Executable file
|
@ -0,0 +1,21 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
options="End All Calls
|
||||||
|
Check for Calls
|
||||||
|
Check for Texts
|
||||||
|
Dialer"
|
||||||
|
|
||||||
|
while true ; do
|
||||||
|
choice="$(echo "$options" | trofi)"
|
||||||
|
case "$choice" in
|
||||||
|
"End All Calls")
|
||||||
|
modem="$(mmcli -L | grep -oE 'Modem\/[0-9]+' | head -n 1 | cut -d'/' -f2)"
|
||||||
|
mmcli -m "$modem" --voice-hangup-all
|
||||||
|
break ;;
|
||||||
|
"Check for Calls") checkCall ;;
|
||||||
|
"Check for Texts") checkSMS ;;
|
||||||
|
"Dialer") (dialer &); break ;;
|
||||||
|
"Back") break;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
21
bin/.bin/dmenu/menu-st
Executable file
21
bin/.bin/dmenu/menu-st
Executable file
|
@ -0,0 +1,21 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
options="Zoom In
|
||||||
|
Zoom Out
|
||||||
|
Paste
|
||||||
|
System Menu
|
||||||
|
Exit"
|
||||||
|
|
||||||
|
choice=""
|
||||||
|
while : ; do
|
||||||
|
choice="$(echo "$options" | trofi)"
|
||||||
|
case "$choice" in
|
||||||
|
"Zoom In") sleep 0.3; xdotool key --clearmodifiers "ctrl+shift+j" ;;
|
||||||
|
"Zoom Out") sleep 0.3; xdotool key --clearmodifiers "ctrl+shift+k" ;;
|
||||||
|
"Paste") sleep 0.3; xdotool key --clearmodifiers "ctrl+shift+v" ;;
|
||||||
|
"System Menu") menu-system; break ;;
|
||||||
|
"Exit") sleep 0.3; xdotool key --clearmodifiers "Super_L+q"; break ;;
|
||||||
|
"") break ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
37
bin/.bin/dmenu/menu-system
Executable file
37
bin/.bin/dmenu/menu-system
Executable file
|
@ -0,0 +1,37 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
options="Terminal
|
||||||
|
Browser
|
||||||
|
Phone
|
||||||
|
Podcasts
|
||||||
|
Go To Workspace
|
||||||
|
Move To Workspace
|
||||||
|
Power Menu
|
||||||
|
Exit"
|
||||||
|
|
||||||
|
chooseWorkspace(){
|
||||||
|
seq 1 10 | trofi
|
||||||
|
}
|
||||||
|
|
||||||
|
goToWorkspace(){
|
||||||
|
xdotool key --clearmodifiers "Super_L+$(chooseWorkspace)"
|
||||||
|
}
|
||||||
|
moveToWorkspace(){
|
||||||
|
xdotool key --clearmodifiers "Super_L+Shift+$(chooseWorkspace)"
|
||||||
|
}
|
||||||
|
|
||||||
|
while true ; do
|
||||||
|
choice="$(echo "$options" | trofi)"
|
||||||
|
case "$choice" in
|
||||||
|
"Terminal") (folder-shell &); break ;;
|
||||||
|
"Browser") (firefox &); break ;;
|
||||||
|
"Podcasts") (gnome-podcasts &); break ;;
|
||||||
|
"Phone") spawn-phone-menu phone ; break ;;
|
||||||
|
"Go To Workspace") goToWorkspace ; break ;;
|
||||||
|
"Move To Workspace") moveToWorkspace ; break ;;
|
||||||
|
"Power Menu") (rofi-shutdown &); break ;;
|
||||||
|
"Exit") sleep 0.3; xdotool key --clearmodifiers "Super_L+q"; break ;;
|
||||||
|
"") break;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
58
bin/.bin/dmenu/rofi-volume
Executable file
58
bin/.bin/dmenu/rofi-volume
Executable file
|
@ -0,0 +1,58 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
up=""
|
||||||
|
down=""
|
||||||
|
mute="ﱝ"
|
||||||
|
|
||||||
|
|
||||||
|
while : ; do
|
||||||
|
active=""
|
||||||
|
urgent=""
|
||||||
|
|
||||||
|
|
||||||
|
if type -p pulseaudio-ctl 2> /dev/null; then
|
||||||
|
volume="$(pulseaudio-ctl full-status | cut -d ' ' -f1)"
|
||||||
|
speakerStatus="$(pulseaudio-ctl full-status | cut -d ' ' -f2 |
|
||||||
|
sed 's/no/on/g')"
|
||||||
|
else
|
||||||
|
volume="$(amixer -D default sget Master | grep -o '\[.*\%' |
|
||||||
|
head -n 1 | tr -d '[%')"
|
||||||
|
speakerStatus="$(amixer -D default sget Master | grep -o '\[\(on\|off\)' |
|
||||||
|
head -n 1 | tr -d '[')"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$speakerStatus" = "off" ]; then
|
||||||
|
volume="Muted"
|
||||||
|
urgent="-u 2"
|
||||||
|
else
|
||||||
|
active="-a 2"
|
||||||
|
fi
|
||||||
|
|
||||||
|
choice="$(echo -e "$up\n$down\n$mute" |
|
||||||
|
rofi -dmenu -theme 'themes/volume.rasi' -p "$volume" $urgent $active)"
|
||||||
|
case "$choice" in
|
||||||
|
"$up")
|
||||||
|
if type -p pulseaudio-ctl 2> /dev/null; then
|
||||||
|
pulseaudio-ctl up
|
||||||
|
else
|
||||||
|
amixer -q -D default sset Master 5%+ unmute
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"$down")
|
||||||
|
if type -p pulseaudio-ctl 2> /dev/null; then
|
||||||
|
pulseaudio-ctl down
|
||||||
|
else
|
||||||
|
amixer -q -D default sset Master 5%- unmute
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"$mute")
|
||||||
|
if type -p pulseaudio-ctl 2> /dev/null; then
|
||||||
|
pulseaudio-ctl mute
|
||||||
|
else
|
||||||
|
amixer -q -D default sset Master toggle
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"") break
|
||||||
|
esac
|
||||||
|
|
||||||
|
done
|
27
bin/.bin/dmenu/spawn-phone-menu
Executable file
27
bin/.bin/dmenu/spawn-phone-menu
Executable file
|
@ -0,0 +1,27 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# This script creates menus for applications running on my phone
|
||||||
|
|
||||||
|
error(){
|
||||||
|
echo "$@" > /dev/stderr
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
windowFocus="$(xdotool getwindowfocus)"
|
||||||
|
if [ -n "$1" ]; then
|
||||||
|
menu="menu-$1"
|
||||||
|
else
|
||||||
|
class="$(xprop -id "$windowFocus" | grep "WM_CLASS" | cut -d '"' -f 2)"
|
||||||
|
case "$class" in
|
||||||
|
"xterm-256color") menu="menu-st" ;;
|
||||||
|
*) menu="menu-$class" ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
type "$menu" > /dev/null 2>&1 || menu="menu-system"
|
||||||
|
|
||||||
|
"$menu"
|
||||||
|
|
||||||
|
|
||||||
|
|
12
bin/.bin/dmenu/trofi
Executable file
12
bin/.bin/dmenu/trofi
Executable file
|
@ -0,0 +1,12 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# THis is a simple wrapper around rofi which makes it nicer to use with touch screens
|
||||||
|
|
||||||
|
|
||||||
|
input="$(cat -)"
|
||||||
|
|
||||||
|
lines="$(echo "$input" | wc -l )"
|
||||||
|
|
||||||
|
[ "$lines" -gt 15 ] && lines=15
|
||||||
|
|
||||||
|
echo "$input" | rofi -dmenu -me-accept-entry '!MousePrimary' -theme "themes/touch-dmenu.rasi" -lines "$lines"
|
|
@ -3,9 +3,10 @@
|
||||||
|
|
||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
source "$DIR/common"
|
source "$DIR/common"
|
||||||
|
export DISPLAY=:0.0
|
||||||
|
|
||||||
usage(){
|
usage(){
|
||||||
echo "checkCall [options] [message|-]"
|
echo "checkCall [options]"
|
||||||
echo "Options:"
|
echo "Options:"
|
||||||
echo " -h|--help Display this help text"
|
echo " -h|--help Display this help text"
|
||||||
echo " -m|--modem Specify a modem"
|
echo " -m|--modem Specify a modem"
|
||||||
|
@ -22,24 +23,122 @@ lookupnumberfromcallid() {
|
||||||
tr -d ' '
|
tr -d ' '
|
||||||
}
|
}
|
||||||
|
|
||||||
lookupcontact(){
|
# Stolen from sxmo
|
||||||
echo "$1" |
|
toggleflag() {
|
||||||
# Remove the +44 and replace with 0
|
TOGGLEFLAG=$1
|
||||||
sed 's/^\+44/0/'
|
shift
|
||||||
# This will eventually work with abook but for now just return the number
|
FLAGS="$*"
|
||||||
|
|
||||||
|
echo -- "$FLAGS" | grep -- "$TOGGLEFLAG" >&2 &&
|
||||||
|
NEWFLAGS="$(echo -- "$FLAGS" | sed "s/$TOGGLEFLAG//g")" ||
|
||||||
|
NEWFLAGS="$(echo -- "$FLAGS $TOGGLEFLAG")"
|
||||||
|
|
||||||
|
NEWFLAGS="$(echo -- "$NEWFLAGS" | sed "s/--//g; s/ / /g")"
|
||||||
|
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
megiaudioroute $NEWFLAGS
|
||||||
|
echo -- "$NEWFLAGS"
|
||||||
}
|
}
|
||||||
|
|
||||||
answer-call(){
|
# Stolen from sxmo
|
||||||
export DISPLAY=:0.0
|
toggleflagset() {
|
||||||
|
FLAGS="$(toggleflag "$1" "$FLAGS")"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
lookupcontact(){
|
||||||
|
local contact="$(contact-numbers "$1" | cut -d ' ' -f 1)"
|
||||||
|
if [ -n "$contact" ]; then
|
||||||
|
echo "$contact"
|
||||||
|
else
|
||||||
|
echo "$1" |
|
||||||
|
# Remove the +44 and replace with 0
|
||||||
|
sed 's/^\+44/0/'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
dtmf(){
|
||||||
|
local id="$1"
|
||||||
|
svkbd-numbers &
|
||||||
|
local choice="$( (
|
||||||
|
echo "Exit"
|
||||||
|
) | rofi -dmenu -i -me-accept-entry '!MousePrimary' -p "Tones" -normal-window -font 'Iosevka 20' )"
|
||||||
|
if [ "$choice" = "Exit" ]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
echo "$choice" | grep -o '.' | while read -r tone; do
|
||||||
|
sleep 0.5
|
||||||
|
mmcli -m "$modem" -o "$id" --send-dtmf="$tone"
|
||||||
|
done
|
||||||
|
pkill svkbd-numbers
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
ongoingCall(){
|
||||||
|
local id="$1"
|
||||||
|
|
||||||
|
# Stolen from sxmo
|
||||||
|
FLAGS=" "
|
||||||
|
toggleflagset "-e"
|
||||||
|
toggleflagset "-m"
|
||||||
|
toggleflagset "-2"
|
||||||
|
toggleflagset "-2"
|
||||||
|
toggleflagset "-2"
|
||||||
|
|
||||||
|
notify-send "I get here"
|
||||||
|
|
||||||
|
while : ; do
|
||||||
|
choice="$( (
|
||||||
|
echo "Hang Up"
|
||||||
|
echo "DTMF Tones"
|
||||||
|
echo "Volume Up"
|
||||||
|
echo "Volume Down"
|
||||||
|
) | trofi)"
|
||||||
|
|
||||||
|
case "$choice" in
|
||||||
|
"Hang Up") rejectCall "$1"; break ;;
|
||||||
|
"DTMF Tones") dtmf "$1" ;;
|
||||||
|
"Volume"*) notify-send "Still need to implement" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
answerCall(){
|
||||||
|
|
||||||
|
pkill mpv
|
||||||
|
sleep 0.2
|
||||||
|
|
||||||
echo "answer call $1" > /dev/tty
|
echo "answer call $1" > /dev/tty
|
||||||
mmcli -m "$modem" -o "$1" --accept
|
mmcli -m "$modem" -o "$1" --accept
|
||||||
|
|
||||||
|
ongoingCall "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
reject-call(){
|
rejectCall(){
|
||||||
|
pkill mpv
|
||||||
|
echo "reject call $1" > /dev/tty
|
||||||
mmcli -m "$modem" -o "$1" --hangup
|
mmcli -m "$modem" -o "$1" --hangup
|
||||||
|
mmcli -m "$modem" --voice-delete-call="$1"
|
||||||
|
|
||||||
|
mmcli -m "$modem" --voice-hangup-all
|
||||||
|
for CALLID in $( mmcli -m "$modem" --voice-list-calls | grep -oE "Call\/[0-9]+" | cut -d'/' -f2); do
|
||||||
|
echo mmcli -m "$modem" --voice-delete-call "$CALLID" > ~/.hangup.log
|
||||||
|
done
|
||||||
|
|
||||||
|
# Not sure why but sometimes the modem changes
|
||||||
|
# To be sure, re-check the modem and delete all calls
|
||||||
|
local tmpmodem="$(mmcli -L | grep -oE 'Modem\/[0-9]+' | head -n 1 | cut -d'/' -f2)"
|
||||||
|
|
||||||
|
mmcli -m "$tmpmodem" --voice-hangup-all
|
||||||
|
for CALLID in $( mmcli -m "$tmpmodem" --voice-list-calls | grep -oE "Call\/[0-9]+" | cut -d'/' -f2); do
|
||||||
|
echo mmcli -m "$tmpmodem" --voice-delete-call "$CALLID" > ~/.hangup.log
|
||||||
|
done
|
||||||
|
|
||||||
|
alsactl --file "$ALSA_CONF_DIR/default_alsa_sound.conf" restore
|
||||||
}
|
}
|
||||||
|
|
||||||
prompt-incoming(){
|
promptIncoming(){
|
||||||
export DISPLAY=:0.0
|
export DISPLAY=:0.0
|
||||||
|
|
||||||
local answer=""
|
local answer=""
|
||||||
|
@ -62,11 +161,21 @@ prompt-incoming(){
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
checkOutgoing(){
|
||||||
|
export DISPLAY=:0.0
|
||||||
|
if [ "$dryrun" = "true" ]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
notify-send "outgoing call" "$1"
|
||||||
|
mmcli -m "$modem" -o "$1" --start
|
||||||
|
|
||||||
|
ongoingCall "$1"
|
||||||
|
}
|
||||||
|
|
||||||
checkIncoming(){
|
checkIncoming(){
|
||||||
export DISPLAY=:0.0
|
export DISPLAY=:0.0
|
||||||
if [ "$dryrun" = "true" ]; then
|
if [ "$dryrun" = "true" ]; then
|
||||||
prompt-incoming "+441234567890"
|
promptIncoming "+441234567890"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
local id="$( mmcli -m "$modem" --voice-list-calls |
|
local id="$( mmcli -m "$modem" --voice-list-calls |
|
||||||
|
@ -81,11 +190,12 @@ checkIncoming(){
|
||||||
|
|
||||||
local action=""
|
local action=""
|
||||||
while mmcli -m "$modem" --voice-list-calls | grep -Eoq "$id"' incoming \(ringing-in\)' && [ -z "$action" ]; do
|
while mmcli -m "$modem" --voice-list-calls | grep -Eoq "$id"' incoming \(ringing-in\)' && [ -z "$action" ]; do
|
||||||
action="$(prompt-incoming "$contact")"
|
mpv "$HOME/.local/share/soundeffects/ringtone" --loop &
|
||||||
|
action="$(promptIncoming "$contact")"
|
||||||
done
|
done
|
||||||
case "$action" in
|
case "$action" in
|
||||||
"accept") answer-call "$id"; break ;;
|
"accept") answerCall "$id"; ;;
|
||||||
"reject") reject-call "$id"; break ;;
|
"reject") rejectCall "$id"; ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -95,6 +205,7 @@ checkFinished(){
|
||||||
grep -Eo '[0-9]+ incoming \(terminated\)' | grep -Eo '[0-9]+' )"
|
grep -Eo '[0-9]+ incoming \(terminated\)' | grep -Eo '[0-9]+' )"
|
||||||
|
|
||||||
local count="$(echo "$ids" | deleteEmptyLines | wc -l)"
|
local count="$(echo "$ids" | deleteEmptyLines | wc -l)"
|
||||||
|
echo "Finished Count: $count"
|
||||||
|
|
||||||
[ "$count" -eq 0 ] && return
|
[ "$count" -eq 0 ] && return
|
||||||
|
|
||||||
|
@ -103,13 +214,16 @@ checkFinished(){
|
||||||
local number="$(lookupnumberfromcallid "$id")"
|
local number="$(lookupnumberfromcallid "$id")"
|
||||||
local contact="$(lookupcontact "$number")"
|
local contact="$(lookupcontact "$number")"
|
||||||
|
|
||||||
|
echo "I get here"
|
||||||
|
|
||||||
# If there is a rofi process with the title of "call-from-number", then
|
# If there is a rofi process with the title of "call-from-number", then
|
||||||
# it hasn't been answerd yet.
|
# it hasn't been answerd yet.
|
||||||
# Treat as a missed call
|
# Treat as a missed call
|
||||||
if ps aux | grep -E '\Wrofi' | grep -q "call-from-$number"; then
|
if ps aux | grep -E '\Wrofi' | grep -q "call-from-$contact"; then
|
||||||
echo "Missed call from $contact" >> "$CALL_DIR/missed-calls"
|
echo "Missed call from $contact" >> "$CALL_DIR/missed-calls"
|
||||||
|
pkill mpv
|
||||||
mmcli -m "$modem" --voice-delete-call "$id"
|
mmcli -m "$modem" --voice-delete-call "$id"
|
||||||
ps aux | grep -E '\Wrofi' | grep "call-from-$number" |
|
ps aux | grep -E '\Wrofi' | grep "call-from-$contact" |
|
||||||
awk '{print $2}' | xargs kill
|
awk '{print $2}' | xargs kill
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -140,8 +254,12 @@ while [[ $1 = -?* ]]; do
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
checkIncoming &
|
if [ -n "$1" ]; then
|
||||||
checkFinished &
|
checkOutgoing "$1" &
|
||||||
|
else
|
||||||
|
checkIncoming &
|
||||||
|
checkFinished &
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -72,4 +72,4 @@ echo "$ids" | while read -r id; do
|
||||||
mmcli -m "$modem" --messaging-delete-sms="$id"
|
mmcli -m "$modem" --messaging-delete-sms="$id"
|
||||||
done
|
done
|
||||||
|
|
||||||
notify-send "$count new messages"
|
echo "$count new messages"
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
CALL_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/Calls/"
|
CALL_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/Calls/"
|
||||||
SMS_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/SMS/"
|
SMS_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/SMS/"
|
||||||
|
ALSA_CONF_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/alsa/"
|
||||||
|
|
||||||
die(){
|
die(){
|
||||||
echo "$@" > /dev/stderr
|
echo "$@" > /dev/stderr
|
||||||
|
|
|
@ -1,33 +1,67 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
|
source "$DIR/common"
|
||||||
|
|
||||||
export DISPLAY=:0.0
|
export DISPLAY=:0.0
|
||||||
|
|
||||||
prompt=""
|
usage(){
|
||||||
|
echo "dialer"
|
||||||
|
echo "Options:"
|
||||||
|
echo " -h|--help Display this help text"
|
||||||
|
echo " -m|--modem Specify a modem"
|
||||||
|
echo " -l|--letters Show letter keyboard rather than just numbers"
|
||||||
|
echo " --dry-run Don't actually call"
|
||||||
|
}
|
||||||
|
|
||||||
answer=""
|
altKeyboard(){
|
||||||
reject=""
|
notify-send "also here"
|
||||||
|
if [ "$keyboard" = "svkbd-numbers" ]; then
|
||||||
|
echo "svkbd-colemak"
|
||||||
|
else
|
||||||
|
echo "svkbd-numbers"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
options="1
|
modem="$(mmcli -L | grep -oE 'Modem\/[0-9]+' | head -n 1 | cut -d'/' -f2)"
|
||||||
4
|
keyboard="svkbd-numbers"
|
||||||
7
|
dryrun=""
|
||||||
*
|
|
||||||
|
# Read the options and set stuff
|
||||||
2
|
while [[ $1 = -?* ]]; do
|
||||||
5
|
case $1 in
|
||||||
8
|
-h|--help) usage; exit;;
|
||||||
0
|
-m|--modem) modem="$2"; shift ;;
|
||||||
$answer
|
-l|--letters) keyboard="svkbd-colemak"; shift ;;
|
||||||
3
|
--dry-run) dryrun="--dry-run" ;;
|
||||||
6
|
--) shift; break ;;
|
||||||
9
|
*) die "invalid option: '$1'." ;;
|
||||||
#
|
esac
|
||||||
X"
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
while : ; do
|
||||||
|
|
||||||
|
# Stop any running keyboards
|
||||||
|
pkill -9 'svkbd-*'
|
||||||
|
|
||||||
|
# Open the keyboard that we are using
|
||||||
|
"$keyboard" &
|
||||||
|
|
||||||
|
choice="$( (
|
||||||
|
echo "Switch Keyboard"
|
||||||
|
echo "Exit"
|
||||||
|
contact-numbers
|
||||||
|
) | rofi -dmenu -i -me-accept-entry '!MousePrimary' -p "Call" -normal-window -font 'Iosevka 20' )"
|
||||||
|
|
||||||
|
case "$choice" in
|
||||||
|
"Switch Keyboard") keyboard="$(altKeyboard)" ;;
|
||||||
|
"Exit") break ;;
|
||||||
|
*)
|
||||||
|
num="$(echo "$choice" | cut -d ' ' -f 2)"
|
||||||
|
pkill -9 'svkbd-*'
|
||||||
|
makeCall -m "$modem" $dryrun "$num"
|
||||||
|
break ;;
|
||||||
|
esac
|
||||||
|
|
||||||
while true; do
|
|
||||||
#notify-send "$prompt"
|
|
||||||
input="$(echo "$options" |
|
|
||||||
rofi -dmenu -p "$prompt" -theme themes/dialer.rasi \
|
|
||||||
-me-select-entry '' -me-accept-entry MousePrimary)"
|
|
||||||
[ "$input" = "X" ] && exit
|
|
||||||
#exit
|
|
||||||
prompt+="$input"
|
|
||||||
done
|
done
|
||||||
|
|
41
bin/.bin/modem/makeCall
Executable file
41
bin/.bin/modem/makeCall
Executable file
|
@ -0,0 +1,41 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
|
source "$DIR/common"
|
||||||
|
|
||||||
|
export DISPLAY=:0.0
|
||||||
|
|
||||||
|
usage(){
|
||||||
|
echo "makeCall number"
|
||||||
|
echo "Options:"
|
||||||
|
echo " -h|--help Display this help text"
|
||||||
|
echo " -m|--modem Specify a modem"
|
||||||
|
echo " --dry-run Don't actually call"
|
||||||
|
}
|
||||||
|
|
||||||
|
modem="$(mmcli -L | grep -oE 'Modem\/[0-9]+' | head -n 1 | cut -d'/' -f2)"
|
||||||
|
|
||||||
|
# Read the options and set stuff
|
||||||
|
while [[ $1 = -?* ]]; do
|
||||||
|
case $1 in
|
||||||
|
-h|--help) usage; exit;;
|
||||||
|
-m|--modem) modem="$2"; shift ;;
|
||||||
|
--dry-run) dryrun="--dry-run" ;;
|
||||||
|
--) shift; break ;;
|
||||||
|
*) die "invalid option: '$1'." ;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
number="$1"
|
||||||
|
|
||||||
|
[ -z "$number" ] && die "No Number Specified"
|
||||||
|
|
||||||
|
callID="$(mmcli -m "$modem" --voice-create-call "number=$number" |
|
||||||
|
grep -Eo 'Call\/[0-9]+' | head -n 1 | cut -d'/' -f2)"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
checkCall $dryrun "$callID"
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
#
|
#
|
||||||
# Although the proccess for managing calls etc is a bit simpler IMO
|
# Although the proccess for managing calls etc is a bit simpler IMO
|
||||||
|
|
||||||
|
export DISPLAY=:0.0
|
||||||
|
|
||||||
# Monitor for incoming calls
|
# Monitor for incoming calls
|
||||||
dbus-monitor --system "interface='org.freedesktop.ModemManager1.Modem.Voice',type='signal',member='CallAdded'" | \
|
dbus-monitor --system "interface='org.freedesktop.ModemManager1.Modem.Voice',type='signal',member='CallAdded'" | \
|
||||||
while read -r line; do
|
while read -r line; do
|
||||||
|
@ -14,6 +16,7 @@ dbus-monitor --system "interface='org.freedesktop.ModemManager1.Modem.Voice',typ
|
||||||
# Monitor for incoming texts
|
# Monitor for incoming texts
|
||||||
dbus-monitor --system "interface='org.freedesktop.ModemManager1.Modem.Messaging',type='signal',member='Added'" | \
|
dbus-monitor --system "interface='org.freedesktop.ModemManager1.Modem.Messaging',type='signal',member='Added'" | \
|
||||||
while read -r line; do
|
while read -r line; do
|
||||||
|
notify-send "Added (SMS)"
|
||||||
echo "$line" | grep -E "^signal" && checkSMS
|
echo "$line" | grep -E "^signal" && checkSMS
|
||||||
done &
|
done &
|
||||||
|
|
||||||
|
|
10
bin/.bin/notifications/phoneStatus
Executable file
10
bin/.bin/notifications/phoneStatus
Executable file
|
@ -0,0 +1,10 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
battery="$(cat /sys/class/power_supply/axp20x-battery/capacity)"
|
||||||
|
batteryStatus="$(cat /sys/class/power_supply/axp20x-battery/status)"
|
||||||
|
[ "$batteryStatus" = "Charging" ] && batteryIcon="🔌" || batteryIcon="🔋"
|
||||||
|
|
||||||
|
time="$(date "+%H:%M")"
|
||||||
|
|
||||||
|
notify-send "$(hostname)" "$batteryIcon ${battery}%\nTime $time"
|
||||||
|
|
7
bin/.bin/toggleKeyboard
Executable file
7
bin/.bin/toggleKeyboard
Executable file
|
@ -0,0 +1,7 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
if pidof svkbd-colemak || pidof svkbd-numbers; then
|
||||||
|
pkill "svkbd-*"
|
||||||
|
else
|
||||||
|
svkbd-colemak & disown
|
||||||
|
fi
|
|
@ -43,6 +43,7 @@ case "$1" in
|
||||||
else
|
else
|
||||||
amixer -q -D default sset Master toggle
|
amixer -q -D default sset Master toggle
|
||||||
fi
|
fi
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if type -p pulseaudio-ctl 2> /dev/null; then
|
if type -p pulseaudio-ctl 2> /dev/null; then
|
||||||
|
|
|
@ -69,7 +69,7 @@ inputbar {
|
||||||
|
|
||||||
listview {
|
listview {
|
||||||
background-color: @background-alt;
|
background-color: @background-alt;
|
||||||
columns: 7;
|
columns: 3;
|
||||||
lines: 4;
|
lines: 4;
|
||||||
spacing: 2%;
|
spacing: 2%;
|
||||||
cycle: false;
|
cycle: false;
|
||||||
|
|
18
rofi/.config/rofi/themes/touch-dmenu.rasi
Normal file
18
rofi/.config/rofi/themes/touch-dmenu.rasi
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
|
||||||
|
configuration {
|
||||||
|
font: "iosevka 30";
|
||||||
|
disable-history: false;
|
||||||
|
fullscreen: false;
|
||||||
|
hide-scrollbar: true;
|
||||||
|
sidebar-mode: false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@import "gruvbox-dark.rasi"
|
||||||
|
|
||||||
|
window {
|
||||||
|
width: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
mainbox {
|
||||||
|
children: [ listview ];
|
||||||
|
}
|
107
rofi/.config/rofi/themes/volume.rasi
Normal file
107
rofi/.config/rofi/themes/volume.rasi
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
configuration {
|
||||||
|
disable-history: false;
|
||||||
|
fullscreen: false;
|
||||||
|
hide-scrollbar: true;
|
||||||
|
sidebar-mode: false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@import "gruvbox-dark.rasi"
|
||||||
|
|
||||||
|
* {
|
||||||
|
background-color: @background;
|
||||||
|
text-color: @foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
window {
|
||||||
|
transparency: "real";
|
||||||
|
border-radius: 12px;
|
||||||
|
width: 500px;
|
||||||
|
location: east;
|
||||||
|
x-offset: -15px;
|
||||||
|
y-offset: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
listview {
|
||||||
|
lines: 3;
|
||||||
|
margin: 8px;
|
||||||
|
spacing: 8px;
|
||||||
|
cycle: true;
|
||||||
|
dynamic: true;
|
||||||
|
layout: vertical;
|
||||||
|
}
|
||||||
|
|
||||||
|
mainbox {
|
||||||
|
background-color: @background;
|
||||||
|
children: [ inputbar, listview ];
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt{
|
||||||
|
text-align: center;
|
||||||
|
background-color: red;
|
||||||
|
position: center;
|
||||||
|
|
||||||
|
horizontal-align: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
inputbar {
|
||||||
|
children: [ prompt ];
|
||||||
|
spacing: 0px;
|
||||||
|
background-color: @background;
|
||||||
|
text-color: @foreground;
|
||||||
|
expand: false;
|
||||||
|
horizontal-align: 0.5;
|
||||||
|
border: 0px;
|
||||||
|
border-radius: 0px;
|
||||||
|
border-color: @accent;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
padding: 0px;
|
||||||
|
position: center;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
element {
|
||||||
|
background-color: @background-light;
|
||||||
|
text-color: @foreground;
|
||||||
|
orientation: vertical;
|
||||||
|
border-radius: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
element-text {
|
||||||
|
font: "iosevka 25";
|
||||||
|
expand: true;
|
||||||
|
horizontal-align: 0.5;
|
||||||
|
vertical-align: 0;
|
||||||
|
margin: 10px 10px 33px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
element normal.urgent,
|
||||||
|
element alternate.urgent {
|
||||||
|
background-color: @urgent;
|
||||||
|
text-color: @foreground;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
element normal.active,
|
||||||
|
element alternate.active {
|
||||||
|
background-color: @background-alt;
|
||||||
|
text-color: @foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
element selected {
|
||||||
|
background-color: @accent;
|
||||||
|
text-color: @background;
|
||||||
|
border: 0px;
|
||||||
|
border-radius: 10px;
|
||||||
|
border-color: @border;
|
||||||
|
}
|
||||||
|
|
||||||
|
element selected.urgent {
|
||||||
|
background-color: @urgent;
|
||||||
|
text-color: @foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
element selected.active {
|
||||||
|
background-color: @background-alt;
|
||||||
|
color: @foreground;
|
||||||
|
}
|
||||||
|
|
9
systemd/.config/systemd/user/monitorModem.service
Normal file
9
systemd/.config/systemd/user/monitorModem.service
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Monitor Modem
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Environment="PATH=/usr/bin:/usr/local/bin:/home/jonathan/.bin:/home/jonathan/.bin/modem:/home/jonathan/.bin/dmenu"
|
||||||
|
ExecStart=/home/jonathan/.bin/modem/monitorModem
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
|
@ -0,0 +1,9 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Enable user access to pinephone hardware kernel interface
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart=/bin/bash -c 'for i in /sys/module/8723cs/parameters/rtw_scan_interval_thr /sys/devices/platform/backlight/backlight/backlight/brightness /sys/power/state /sys/devices/platform/soc/1f00000.rtc/power/wakeup /sys/power/mem_sleep /sys/bus/usb/drivers/usb/unbind /sys/bus/usb/drivers/usb/bind /sys/class/leds/red:indicator/brightness /sys/class/leds/blue:indicator/brightness /sys/class/leds/green:indicator/brightness /sys/class/leds/white:flash/brightness /dev/rtc0 /sys/devices/platform/soc/1f03400.rsb/sunxi-rsb-3a3/axp221-pek/power/wakeup /sys/class/wakeup/*; do [ -e "$i" ] && chmod a+rw "$i" >> /tmp/log 2>&1; done'
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
|
@ -33,6 +33,7 @@ xinput --list | grep -Ei 'ErgoDox EZ\s+id' | grep -oE 'id=[0-9]+' |
|
||||||
type -p compton > /dev/null && exec /usr/bin/compton --config "$HOME/.config/picom/picom.conf" &
|
type -p compton > /dev/null && exec /usr/bin/compton --config "$HOME/.config/picom/picom.conf" &
|
||||||
#setbackground &
|
#setbackground &
|
||||||
#/usr/bin/nitrogen --restore &
|
#/usr/bin/nitrogen --restore &
|
||||||
|
[ -e $HOME/Pictures/wallpaper ] && type -p feh > /dev/null && feh --bg-fill $HOME/Pictures/wallpaper
|
||||||
/usr/bin/systemctl --user start background.service
|
/usr/bin/systemctl --user start background.service
|
||||||
[ -f /usr/lib/kdeconnectd ] && /usr/lib/kdeconnectd &
|
[ -f /usr/lib/kdeconnectd ] && /usr/lib/kdeconnectd &
|
||||||
[ -f /usr/bin/pactl ] && /usr/bin/pactl load-module module-switch-on-connect &
|
[ -f /usr/bin/pactl ] && /usr/bin/pactl load-module module-switch-on-connect &
|
||||||
|
@ -45,6 +46,8 @@ if hostname | grep -q phone; then
|
||||||
xrandr --output DSI-1 --mode 720x1440 --dpi 192
|
xrandr --output DSI-1 --mode 720x1440 --dpi 192
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
dunst &
|
||||||
|
|
||||||
#greenclip daemon &
|
#greenclip daemon &
|
||||||
#exec xrdb .Xresources
|
#exec xrdb .Xresources
|
||||||
#xbindkeys
|
#xbindkeys
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue