#!/usr/bin/env bash LOGFILE=.lc.log DMENU="rofi -dmenu" Commands="sync lock common update poweroff suspend set-keyboard caps-lock battery cups-website vim emacs htop scrot overleaf-render overleaf win pass wall stat mic mail region" statScripts="ram.sh status.sh net.sh mic.sh" handle_stuff() { if [ "$1" = "--dmenu" ]; then $0 $(echo $Commands | tr " " "\n" | $DMENU -i -p "lc") fi if [ "$1" = "edit" ] || [ "$1" = "e" ]; then notify-send "$*" st -e nvim $(echo $* | cut -d" " -f2-) fi # System info if [ "$1" = "b" ] || [ "$1" = "battery" ]; then notify-send "Battery information" "$(acpi | grep 1:)" fi # System maintenance if [ "$1" = "sk" ] || [ "$1" = "set-keyboard" ]; then setxkbmap -layout us -variant altgr-intl #xcape -e "Control_R=Escape" xmodmap .Xmodmap fi # POWER COMMANDS if [ "$1" = "s" ] || [ "$1" = "suspend" ]; then systemctl suspend fi if [ "$1" = "poweroff" ]; then poweroff fi if [ "$1" = "lock" ]; then $HOME/Scripts/lock.sh fi # Mics if [ "$1" = "p" ] || [ "$1" = "scrot" ]; then scrot /tmp/%Y-%m-%d-%T-screenshot.png fi if [ "$1" = "region" ]; then import /tmp/$(date -Iseconds)-screenshot.png fi if [ "$1" = "overleaf-render" ]; then st sh ~/Documents/overleafRenderer/compile.sh fi if [ "$1" = "caps-lock" ] || [ "$1" = "cl" ]; 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" = "mic" ]; then amixer set Capture toggle fi # Launch if [ "$1" = "vi" ] || [ "$1" = "vim" ]; then st -e nvim fi if [ "$1" = "emacs" ]; then st -e emacs fi if [ "$1" = "ht" ] || [ "$1" = "htop" ]; then st -e htop fi if [ "$1" = "cups" ] || [ "$1" = "cups-website" ]; then firefox "http://localhost:631/" fi if [ "$1" = "overleaf" ]; then firefox -p Sharelatex --no-remote fi if [ "$1" = "pass" ]; then bash $HOME/Scripts/passmenu --type fi if [ "$1" = "stat" ]; then sh /home/julian/Scripts/$(echo $statScripts | tr " " "\n" | $DMENU -i -p "stat") 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 # 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