#!/usr/bin/env bash LOGFILE=.lc.log DMENU="rofi -dmenu" Commands="s suspend screen goto common bwpass remember set-keyboard sa-keyboard rotate poweroff lock scrot region overleaf-render caps-lock win wall cups pass sync random" handle_stuff() { if [ "$1" = "--dmenu" ]; then $0 $(echo $Commands | tr " " "\n" | $DMENU -i -p "lc") fi # System maintenance if [ "$1" = "sk" ] || [ "$1" = "set-keyboard" ]; then setxkbmap -layout us -variant altgr-intl #xcape -e "Control_R=Escape" # xmodmap .Xmodmap fi if [ "$1" = "sa" ] || [ "$1" = "sa-keyboard" ]; then setxkbmap -layout us -variant colemak_dh_iso #xcape -e "Control_R=Escape" # xmodmap .Xmodmap fi # POWER COMMANDS if [ "$1" = "suspend" ]; then systemctl suspend fi if [ "$1" = "poweroff" ]; then poweroff fi if [ "$1" = "lock" ]; then $HOME/Scripts/lock.sh fi # Mics imagename=$HOME/Screenshots/$(date -Iseconds)-screenshot.png if [ "$1" = "scrot" ]; then scrot $imagename fi if [ "$1" = "region" ]; then import $imagename xclip -selection clipboard -t image/png -i $imagename fi if [ "$1" = "overleaf-render" ]; then st sh ~/Documents/overleafRenderer/compile.sh fi if [ "$1" = "caps-lock" ]; then xdotool key Caps_Lock fi if [ "$1" = "win" ]; then vboxmanage startvm "Windows xp" fi if [ "$1" = "wall" ]; then $HOME/Scripts/setwall -A fi if [ "$1" = "random" ]; then stuff=$(python -c "print('\n'.join((str(i) for i in $(rofi -dmenu))))") echo $stuff | tr " " "\n" | rofi -dmenu fi if [ "$1" = "remember" ]; then import /tmp/rem.png feh /tmp/rem.png fi if [ "$1" = "rotate" ]; then dir=$(echo -e "left\nright\ninvert\nnormal" | $DMENU -i -p "orientation") $HOME/Scripts/xrotate $dir fi # Launch if [ "$1" = "s" ]; then $HOME/Scripts/guiworkspace.sh fi if [ "$1" = "cups" ] || [ "$1" = "cups-website" ]; then firefox "http://localhost:631/" fi if [ "$1" = "pass" ]; then bash $HOME/Scripts/passmenu --type fi if [ "$1" = "bwpass" ]; then bash $HOME/Scripts/bwmenu --type fi if [ "$1" = "common" ]; then python3 Scripts/commondocs.py ~/commondocs.json $(python3 Scripts/commondocs.py ~/commondocs.json | $DMENU) fi if [ "$1" = "sync" ]; then ./Scripts/sync.sh dunstify "Sync complete" "Sync completed at $(date)" fi if [ "$1" = "goto" ]; then caja $(./Scripts/goto -d $(cat .bookmarks | awk -F ' ' '{print $1}' | $DMENU)) fi if [ "$1" = "screen" ]; then ~/Scripts/screentool fi # Calc if [ "$(echo $1 | head -c 1)" = "=" ]; then calc="$(echo $1 | cut -c 2-)" notify-send "Result" "$calc = $(echo $calc | bc)" fi } handle_stuff $* 2>&1 | tee -a $LOGFILE