32 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | ||
| 
 | ||
| # A dmenu wrapper script for system functions.
 | ||
| export WM=$XDG_CURRENT_DESKTOP
 | ||
| case "$(readlink -f /sbin/init)" in
 | ||
| 	*systemd*) ctl='systemctl' ;;
 | ||
| 	*) ctl='loginctl' ;;
 | ||
| esac
 | ||
| 
 | ||
| case "$(printf "🔒 lock\n🚪 leave $WM\n♻️ renew $WM\n🐻 hibernate\n🔃 reboot\n🖥️ shutdown\n💤 sleep\n📺 display off\n set background\n start idle\n kill swayidle\n fcitx5\n kill fcitx5\n start emacs daemon\n kill emacs daemon\n restart emacs daemon" | rofi -dmenu -i -l 16 -p 'action')" in
 | ||
| 	'🔒 lock')
 | ||
| 		setsid -f swaylock
 | ||
| 		setsid -f sleep 2 && swayidle -w timeout 1 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on" && kill $#'
 | ||
| 		;;
 | ||
| 	"🚪 leave $WM") swaymsg exit ;;
 | ||
| 	"♻️ renew $WM") swaymsg reload ;;
 | ||
| 	'🐻 hibernate') $ctl hibernate -i ;;
 | ||
| 	'💤 sleep') $ctl suspend -i ;;
 | ||
| 	'🔃 reboot') $ctl reboot -i ;;
 | ||
| 	'🖥️ shutdown') $ctl poweroff -i ;;
 | ||
| 	'📺 display off') swayidle -w timeout 1 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on" && kill $#' ;;
 | ||
| 	' set background') change-background ;;
 | ||
| 	' start idle') killall swayidle && sleep 1; setsid -f idle && notify-send 'idle started.';;
 | ||
| 	' kill swayidle') killall swayidle && notify-send 'idle killed.';;
 | ||
| 	' fcitx5') fcitx5 ;;
 | ||
| 	' kill fcitx5') killall fcitx5 ;;
 | ||
| 	' start emacs daemon') emacs --daemon && notify-send 'emacs daemon started' ;;
 | ||
| 	' kill emacs daemon') killall emacs && notify-send 'emacs daemon killed' ;;
 | ||
| 	' restart emacs daemon') killall emacs && notify-send 'emacs daemon killed' ; emacs --daemon && notify-send 'emacs daemon started' ;;
 | ||
| 	*) exit 1 ;;
 | ||
| esac
 |