about summary refs log tree commit diff
path: root/sxmo_hook_contextmenu.sh
diff options
context:
space:
mode:
authorZach DeCook <zachdecook@librem.one>2024-10-14 19:07:18 -0400
committerZach DeCook <zachdecook@librem.one>2024-10-14 19:07:18 -0400
commit94f4c3d2ab90dd752eb0a86faf509b986fb6735a (patch)
tree24e59a0fc4b219f43587bd594987f204546c83e7 /sxmo_hook_contextmenu.sh
parentd087ea29e68014179a6ce1fddd4880b570963a55 (diff)
downloadpos-dyntercomms-94f4c3d2ab90dd752eb0a86faf509b986fb6735a.tar.gz
some improvements
Diffstat (limited to 'sxmo_hook_contextmenu.sh')
-rwxr-xr-xsxmo_hook_contextmenu.sh741
1 files changed, 0 insertions, 741 deletions
diff --git a/sxmo_hook_contextmenu.sh b/sxmo_hook_contextmenu.sh
deleted file mode 100755
index d398d0d..0000000
--- a/sxmo_hook_contextmenu.sh
+++ /dev/null
@@ -1,741 +0,0 @@
-#!/bin/sh
-# SPDX-License-Identifier: AGPL-3.0-only
-# Copyright 2022 Sxmo Contributors
-# derived from sxmo_hook_contextmenu.sh
-# Copyright 2024 Zach DeCook
-activewmclass="$1"
-activetitle="$2"
-if ! test "$activewmclass"; then
-	json="$(hyprctl -j -i 0 activewindow)"
-	activewmclass="$(printf "%s" "$json" | jq -r .class)"
-	activetitle="$(printf "%s" "$json" | jq -r .title)"
-fi
-WMNAME="$activewmclass $activetitle"
-echo $WMNAME
-
-case "$activewmclass" in
-	*mpv*)
-		# MPV
-		CHOICES="
-			$icon_pau Pause        ^ 0 ^ sxmo_type -k Space
-			$icon_fbw Seek       ^ 1 ^ sxmo_type -k Left
-			$icon_ffw Seek       ^ 1 ^ sxmo_type -k Right
-			$icon_aru App Volume Up ^ 1 ^ sxmo_type 0
-			$icon_ard App Volume Down ^ 1 ^ sxmo_type 9
-			$icon_aru Speed up      ^ 1 ^ sxmo_type -k bracketRight
-			$icon_ard Speed down    ^ 1 ^ sxmo_type -k bracketLeft
-			$icon_cam Screenshot   ^ 1 ^ sxmo_type s
-			$icon_itm Loopmark     ^ 1 ^ sxmo_type l
-			$icon_inf Info         ^ 1 ^ sxmo_type i
-			$icon_inf Seek Info    ^ 1 ^ sxmo_type o
-		"
-		WINNAME=Mpv
-		;;
-	io.bassi.amberol)
-		CHOICES="
-			$icon_pau Play/Pause ^ 0 ^ playerctl play-pause
-			$icon_prv Previous Track ^ 1 ^ playerctl previous
-			$icon_nxt Next Track ^ 1 ^ playerctl next
-		"
-		WINNAME=Amberol
-		;;
-	*feh*)
-		# Feh
-		CHOICES="
-			$icon_arr Next          ^ 1 ^ sxmo_type -k Space
-			$icon_arl Previous      ^ 1 ^ sxmo_type -k BackSpace
-			$icon_zmi Zoom in       ^ 1 ^ sxmo_type -k up
-			$icon_zmo Zoom out      ^ 1 ^ sxmo_type -k down
-			$icon_exp Zoom to fit   ^ 1 ^ sxmo_type -k slash
-			$icon_shr Zoom to fill  ^ 1 ^ sxmo_type '!'
-			$icon_rol Rotate        ^ 1 ^ sxmo_type -k less
-			$icon_ror Rotate        ^ 1 ^ sxmo_type -k greater
-			$icon_a2y Flip          ^ 1 ^ sxmo_type -k underscore
-			$icon_a2x Mirror        ^ 1 ^ sxmo_type -k bar
-			$icon_inf Toggle filename ^ 1 ^ sxmo_type d
-		"
-		WINNAME=Feh
-		;;
-	*sxiv*)
-		# Sxiv
-		CHOICES="
-			$icon_arr Next          ^ 1 ^ sxmo_type -k Space
-			$icon_arl Previous      ^ 1 ^ sxmo_type -k BackSpace
-			$icon_zmi Zoom in       ^ 1 ^ sxmo_type -k equal
-			$icon_zmo Zoom out      ^ 1 ^ sxmo_type -k minus
-			$icon_rol Rotate        ^ 1 ^ sxmo_type -k less
-			$icon_ror Rotate        ^ 1 ^ sxmo_type -k greater
-			$icon_a2y Flip          ^ 1 ^ sxmo_type -k question
-			$icon_a2x Mirror        ^ 1 ^ sxmo_type -k bar
-			$icon_grd Thumbnail     ^ 0 ^ sxmo_type -k Return
-		"
-		WINNAME=Sxiv
-		;;
-	*imv*)
-		# imv
-		CHOICES="
-			$icon_arr Next          ^ 1 ^ sxmo_type -k Right
-			$icon_arl Previous      ^ 1 ^ sxmo_type -k Left
-			$icon_zmi Zoom in       ^ 1 ^ sxmo_type -k i
-			$icon_zmo Zoom out      ^ 1 ^ sxmo_type -k minus
-			$icon_exp Zoom to fit   ^ 1 ^ sxmo_type -k r
-			$icon_ror Rotate        ^ 1 ^ sxmo_type -M ctrl r
-			$icon_inf Toggle filename ^ 1 ^ sxmo_type -k d
-		"
-		WINNAME=Imv
-		;;
-	*kasts*)
-		CHOICES="
-			$icon_mus Audio ^ 0 ^ sxmo_audio.sh
-			$icon_bth Bluetooth ^ 0 ^ sxmo_bluetoothmenu.sh
-			"
-		WINNAME="Kasts"
-		;;
-	*sthotkeys*)
-		#  St hotkeys
-		CHOICES="
-			Send Ctrl-C      ^ 0 ^ sxmo_type -M Ctrl -k c
-			Send Ctrl-Z      ^ 0 ^ sxmo_type -M Ctrl -k z
-			Send Ctrl-L      ^ 0 ^ sxmo_type -M Ctrl -k l
-			Send Ctrl-D      ^ 0 ^ sxmo_type -M Ctrl -k d
-			Send Ctrl-A      ^ 0 ^ sxmo_type -M Ctrl -k a
-			Send Ctrl-B      ^ 0 ^ sxmo_type -M Ctrl -k b
-			Send ESC:w       ^ 0 ^ sxmo_type -k Escape -s 300 -M Shift -k semicolon -m Shift -k w -k Return
-			Send ESC:wq      ^ 0 ^ sxmo_type -k Escape -s 300 -M Shift -k semicolon -m Shift -k w -k q -k Return
-			Send ESC:wq!     ^ 0 ^ sxmo_type -k Escape -s 300 -M Shift -k semicolon -m Shift -k q -k exclam -k Return
-		"
-		WINNAME=St
-		;;
-	*foot*|*st*|Terminal|*terminal*|org.gnome.vte.application|*alacritty*)
-		# These git commands only launch the editor.
-		case "$WMNAME" in
-			*"git add"*|*"git bugreport"*|*"git commit"*|*"git merge"*|*"git notes"*|*"git rebase"*|*"git replace"*|*"git send-email"*|*"git svn"*)
-				WMNAME="$WMCLASS $EDITOR"
-				;;
-		esac
-
-		# First we try to handle the app running inside the terminal:
-		case " $WMNAME " in
-		*" vi "*|*" vim "*|*" vis "*|*" nvim "*|*neovim*|*kakoune*)
-			#Vim in foot
-			CHOICES="
-				$icon_cls Save and Quit    ^ 0 ^ sxmo_type -k Escape -s 300 ':wq' -k Return
-				$icon_sav Save             ^ 0 ^ sxmo_type -k Escape -s 300 ':w' -k Return
-				$icon_cls Quit without saving  ^ 0 ^ sxmo_type -k Escape -s 300 ':q!' -k Return
-				$icon_aru Scroll up        ^ 1 ^ sxmo_type -M Ctrl u
-				$icon_ard Scroll down      ^ 1 ^ sxmo_type -M Ctrl d
-				$icon_trm Command prompt   ^ 0 ^ sxmo_type -k Escape -s 300 ':'
-				$icon_pst Paste Selection  ^ 0 ^ sxmo_type -k Escape -s 300 -k quotedbl -k asterisk -k p
-				$icon_pst Paste Clipboard  ^ 0 ^ sxmo_type -k Escape -s 300 -k quotedbl -k plus -k p
-				$icon_fnd Search           ^ 0 ^ sxmo_type -k Escape -s 300 /
-				$icon_arr Next buffer      ^ 1 ^ sxmo_type -k Escape -s 300 ':bn' -k Return
-				$icon_arl Previous buffer  ^ 1 ^ sxmo_type -k Escape -s 300 ':bp' -k Return
-				$icon_zmi Zoom in          ^ 1 ^ sxmo_type -k Prior
-				$icon_zmo Zoom out         ^ 1 ^ sxmo_type -k Next
-				$icon_mnu Terminal menu    ^ 0 ^ sxmo_appmenu.sh $WMCLASS
-			"
-			WINNAME=Vim
-			;;
-		*nano*)
-			#Nano in foot
-			CHOICES="
-				$icon_aru Scroll up       ^ 1 ^ sxmo_type -k Prior
-				$icon_ard Scroll down     ^ 1 ^ sxmo_type -k Next
-				$icon_sav Save            ^ 0 ^ sxmo_type -M Ctrl o
-				$icon_cls Quit            ^ 0 ^ sxmo_type -M Ctrl x
-				$icon_pst Paste           ^ 0 ^ sxmo_type -M Ctrl u
-				$icon_itm Type complete   ^ 0 ^ sxmo_type -M Shift -M Ctrl u
-				$icon_cpy Copy complete   ^ 0 ^ sxmo_type -M Shift -M Ctrl i
-				$icon_zmi Zoom in         ^ 1 ^ sxmo_type -k Prior
-				$icon_zmo Zoom out        ^ 1 ^ sxmo_type -k Next
-				$icon_mnu Terminal menu   ^ 0 ^ sxmo_appmenu.sh $WMCLASS
-			"
-			WINNAME=Nano
-			;;
-		*micro*)
-			#Micro
-			CHOICES="
-				$icon_aru Scroll up       ^ 1 ^ sxmo_type -k Prior
-				$icon_ard Scroll down     ^ 1 ^ sxmo_type -k Next
-				$icon_prv Previous Tab    ^ 1 ^ sxmo_type -M Alt , -m Alt
-				$icon_nxt Next Tab        ^ 1 ^ sxmo_type -M Alt . -m Alt
-				$icon_sav Save            ^ 1 ^ sxmo_type -M Ctrl s -m Ctrl
-				$icon_cls Quit            ^ 0 ^ sxmo_type -M Ctrl q -m Ctrl
-				$icon_fnd Find            ^ 0 ^ sxmo_type -M Ctrl f -m Ctrl
-				$icon_fnd Find Previous   ^ 1 ^ sxmo_type -M Ctrl p -m Ctrl
-				$icon_fnd Find Next       ^ 1 ^ sxmo_type -M Ctrl n -m Ctrl
-				$icon_trm Command Bar     ^ 0 ^ sxmo_type -M Ctrl e -m Ctrl
-				$icon_cpy Copy            ^ 0 ^ sxmo_type -M Ctrl c -m Ctrl
-				$icon_pst Paste           ^ 0 ^ sxmo_type -M Ctrl v -m Ctrl
-				$icon_mnu Terminal menu   ^ 0 ^ sxmo_appmenu.sh $WMCLASS
-			"
-			WINNAME=Micro
-			;;
-		*tuir*)
-			#tuir (reddit client) in foot
-			CHOICES="
-				$icon_aru Previous      ^ 1 ^ sxmo_type k
-				$icon_ard Next          ^ 1 ^ sxmo_type j
-				$icon_aru Scroll up     ^ 1 ^ sxmo_type -k Prior
-				$icon_ard Scroll down   ^ 1 ^ sxmo_type -k Next
-				$icon_ret Open          ^ 0 ^ sxmo_type o
-				$icon_arl Back          ^ 0 ^ sxmo_type h
-				$icon_arr Comments      ^ 0 ^ sxmo_type l
-				$icon_edt Post          ^ 0 ^ sxmo_type c
-				$icon_rld Refresh       ^ 0 ^ sxmo_type r
-				$icon_cls Quit          ^ 0 ^ sxmo_type q
-				$icon_zmi Zoom in       ^ 1 ^ sxmo_type -k Prior
-				$icon_zmo Zoom out      ^ 1 ^ sxmo_type -k Next
-				$icon_mnu Terminal menu ^ 0 ^ sxmo_appmenu.sh $WMCLASS
-			"
-			WINNAME=tuir
-			;;
-		*w3m*)
-			#w3m
-			CHOICES="
-				$icon_arl Back          ^ 1 ^ sxmo_type b
-				$icon_glb Goto URL        ^ 1 ^ sxmo_type u
-				$icon_arr Next Link       ^ 1 ^ sxmo_type -k Tab
-				$icon_arl Previous Link   ^ 1 ^ sxmo_type -M Shift -k Tab
-				$icon_tab Open tab        ^ 0 ^ sxmo_type t
-				$icon_cls Close tab       ^ 0 ^ sxmo_type -M Ctrl q
-				$icon_itm Next tab        ^ 1 ^ sxmo_type -k braceRight
-				$icon_itm Previous tab    ^ 1 ^ sxmo_type -k braceLeft
-				$icon_zmi Zoom in          ^ 1 ^ sxmo_type -k Prior
-				$icon_zmo Zoom out          ^ 1 ^ sxmo_type -k Next
-				$icon_mnu Terminal menu   ^ 0 ^ sxmo_appmenu.sh $WMCLASS
-			"
-			WINNAME=w3m
-			;;
-		*ncmpcpp*)
-			#ncmpcpp
-			CHOICES="
-				$icon_lst Playlist        ^ 0 ^ sxmo_type 1
-				$icon_fnd Browser         ^ 0 ^ sxmo_type 2
-				$icon_fnd Search          ^ 0 ^ sxmo_type 3
-				$icon_nxt Next track      ^ 0 ^ sxmo_type -k greater
-				$icon_prv Previous track  ^ 0 ^ sxmo_type -k less
-				$icon_pau Pause           ^ 0 ^ sxmo_type p
-				$icon_stp Stop            ^ 0 ^ sxmo_type s
-				$icon_rld Toggle repeat   ^ 0 ^ sxmo_type r
-				$icon_sfl Toggle random   ^ 0 ^ sxmo_type z
-				$icon_itm Toggle consume  ^ 0 ^ sxmo_type R
-				$icon_mnu Terminal menu   ^ 0 ^ sxmo_appmenu.sh $WMCLASS
-			"
-			WINNAME=ncmpcpp
-			;;
-		*aerc*)
-			#aerc
-			CHOICES="
-				$icon_pau Archive	  ^ 1 ^ sxmo_type ':archive flat' -k Return
-				$icon_nxt Next Tab	  ^ 0 ^ sxmo_type ':next-tab' -k Return
-				$icon_prv Previous Tab	  ^ 0 ^ sxmo_type ':prev-tab' -k Return
-				$icon_cls Close Tab	  ^ 0 ^ sxmo_type ':close' -k Return
-				$icon_itm Next Part	  ^ 1 ^ sxmo_type ':next-part' -k Return
-				$icon_trm xdg-open Part	  ^ 0 ^ sxmo_type ':open' -k Return
-			"
-			WINNAME=aerc
-			;;
-		*less*|*"git blame"*|*"git diff"*|*"git grep"*|*"git help"*|*"git log"*|*"git stash"*|*"git tag"*|*"git var"*)
-			#less
-			CHOICES="
-				$icon_arr Page next       ^ 1 ^ sxmo_type ':n' -k Return
-				$icon_arl Page previous   ^ 1 ^ sxmo_type ':p' -k Return
-				$icon_cls Quit            ^ 0 ^ sxmo_type q
-				$icon_zmi Zoom in         ^ 1 ^ sxmo_type -M Ctrl +
-				$icon_zmo Zoom out        ^ 1 ^ sxmo_type -M Ctrl -k Minus
-				$icon_aru Scroll up       ^ 1 ^ sxmo_type -k Prior
-				$icon_ard Scroll down     ^ 1 ^ sxmo_type -k Next
-				$icon_mnu Terminal menu ^ 0 ^ sxmo_appmenu.sh $WMCLASS
-			"
-			WINNAME=less
-			;;
-		*git*)
-			# git am, branch, config, tag (and other commands which launch both).
-			CHOICES="
-				$icon_fil ${PAGER:-less} menu ^ 0 ^ sxmo_appmenu.sh '$WMCLASS ${PAGER:-less}'
-				$icon_edt $EDITOR menu ^ 0 ^ sxmo_appmenu.sh '$WMCLASS $EDITOR'
-				$icon_mnu Terminal menu ^ 0 ^ sxmo_appmenu.sh $WMCLASS
-			"
-			WINNAME=git
-			;;
-		*senpai*)
-			CHOICES="
-				$icon_aru Scroll up       ^ 1 ^ sxmo_type -k Prior
-				$icon_ard Scroll down     ^ 1 ^ sxmo_type -k Next
-				$icon_ac1 Previous Buffer ^ 1 ^ sxmo_type -M Alt -k Left
-				$icon_ac4 Next Buffer     ^ 1 ^ sxmo_type -M Alt -k Right
-				$icon_lst Toggle Channels ^ 0 ^ sxmo_type -k F7
-				$icon_usr Toggle Members  ^ 0 ^ sxmo_type -k F8
-			"
-			WINNAME=senpai
-			;;
-		*weechat*)
-			#weechat
-			CHOICES="
-				$icon_msg Hotlist Next            ^ 1 ^ sxmo_type -M Alt a
-				$icon_arl History Previous        ^ 1 ^ sxmo_type -M Alt -k Less
-				$icon_arr History Next            ^ 1 ^ sxmo_type -M Alt -k Greater
-				$icon_trm Buffer                  ^ 0 ^ sxmo_type '/buffer '
-				$icon_aru Scroll up               ^ 1 ^ sxmo_type -k Prior
-				$icon_ard Scroll down             ^ 1 ^ sxmo_type -k Next
-				$icon_mnu Terminal menu ^ 0 ^ sxmo_appmenu.sh $WMCLASS
-			"
-			WINNAME=weechat
-			;;
-		*" sms "*|*"missed call"*)
-			number="$(printf "%s\n" "$WMNAME" | xargs -0 pnc find | tr -d '\n')"
-			#sms
-			CHOICES="
-				$icon_msg Conversation   ^ 0 ^ sxmo_terminal.sh sxmo_modemtext.sh conversationloop $number
-				$icon_msg Reply          ^ 0 ^ sxmo_modemtext.sh sendtextmenu $number
-				$icon_phn Call           ^ 0 ^ sxmo_modemdial.sh $number
-				$([ -d "$SXMO_LOGDIR/$number/attachments" ] && echo "$icon_att View Attachments ^ 1 ^ sxmo_files.sh $SXMO_LOGDIR/$number/attachments --date-sort")
-				$(
-
-				found_numbers="$(printf %s "$number" | xargs -I{} pnc find "{}")"
-				printf "%s\n" "$found_numbers" | while read -r line; do
-					sxmo_contacts.sh --name "$line" | grep -q '???' && echo "$icon_usr Add $line ^ 1 ^ sxmo_contactmenu.sh newcontact $line"
-				done
-				# if this is a group chain, then allow to add entire chain as a contact too
-				if [ "$(printf "%s\n" "$found_numbers" | wc -l)" -gt 1 ]; then
-					sxmo_contacts.sh --name "$number" | grep -q '???' && echo "$icon_usr Add $number ^ 1 ^ sxmo_contactmenu.sh newcontact $number"
-				fi
-
-				)
-				$icon_aru Scroll up       ^ 1 ^ sxmo_type -M Shift -M Ctrl b
-				$icon_ard Scroll down     ^ 1 ^ sxmo_type -M Shift -M Ctrl f
-				$icon_mnu Terminal menu ^ 0 ^ sxmo_appmenu.sh $WMCLASS
-			"
-			WINNAME=phone
-			;;
-		*cmus*)
-			# cmus
-			# requires `:set set_term_title=false` in cmus to match the application
-			CHOICES="
-				$icon_itm Play            ^ 0 ^ cmus-remote -p
-				$icon_pau Pause           ^ 0 ^ cmus-remote -u
-				$icon_stp Stop            ^ 0 ^ cmus-remote -s
-				$icon_nxt Next track      ^ 0 ^ cmus-remote -n
-				$icon_prv Previous track  ^ 0 ^ cmus-remote -r
-				$icon_rld Toggle repeat   ^ 0 ^ cmus-remote -R
-				$icon_sfl Toggle random   ^ 0 ^ cmus-remote -S
-				$icon_mnu Terminal menu   ^ 0 ^ sxmo_appmenu.sh $WMCLASS
-			"
-			WINNAME=cmus
-			;;
-		*iamb*)
-			CHOICES="
-				$icon_aru Page Up          ^ 1 ^ sxmo_type.sh -k Escape -M Ctrl -k b
-				$icon_tab Toggle Selection ^ 0 ^ sxmo_type.sh -k Escape -M Ctrl -k W m
-				$icon_ard Page Down        ^ 1 ^ sxmo_type.sh -k Escape -M Ctrl -k f
-				$icon_ret Reply To Message ^ 0 ^ sxmo_type.sh -k Escape :reply -k Return
-				$icon_tab New Tab          ^ 0 ^ sxmo_type.sh -k Escape :tab rooms -k Return
-				$icon_arl Previous Tab     ^ 0 ^ sxmo_type.sh -k Escape :tabp -k Return
-				$icon_arr Next Tab         ^ 0 ^ sxmo_type.sh -k Escape :tabn -k Return
-				$icon_cls Close Tab        ^ 0 ^ sxmo_type.sh -k Escape :tabclose -k Return
-				$icon_win Split View       ^ 0 ^ sxmo_type.sh -k Escape :split -k Return
-				$icon_win Split View Vertical ^ 0 ^ sxmo_type.sh -k Escape :vsplit -k Return
-				$icon_msg Direct Messages  ^ 0 ^ sxmo_type.sh -k Escape :dms -k Return
-				$icon_grp Rooms            ^ 0 ^ sxmo_type.sh -k Escape :rooms -k Return
-				$icon_glb Spaces           ^ 0 ^ sxmo_type.sh -k Escape :spaces -k Return
-				$icon_sav Download         ^ 0 ^ sxmo_type.sh -k Escape :download -k Return
-				$icon_cls Close View/Quit  ^ 0 ^ sxmo_type.sh -k Escape :quit -k Return
-			"
-			WINNAME=iamb
-			;;
-		*)
-			# Now we fallback to the default terminal menu
-			case "$WMCLASS" in
-				*st*)
-					STSELMODEON="$(
-						printf %s "$XPROPOUT" | grep -E '^_ST_SELMODE.+=' | cut -d= -f2 | tr -d ' '
-					)"
-					CHOICES="
-						$icon_itm Type complete   ^ 0 ^ sxmo_type -M Ctrl -M Shift -k u
-						$icon_cpy Copy complete   ^ 0 ^ sxmo_type -M Ctrl -M Shift -k i
-						$icon_itm Selmode $(
-							[ "$STSELMODEON" = 1 ] &&
-							printf %b "$icon_ton" ||
-							printf %b "$icon_tof"
-							printf %b '^ 0 ^ sxmo_type -M Ctrl -M Shift -k s'
-						)
-						$([ "$STSELMODEON" = 1 ] && echo 'Copy selection ^ 0 ^ sxmo_type -M Ctrl -M Shift -k c')
-						$icon_pst Paste           ^ 0 ^ sxmo_type -M Ctrl -M Shift -k v
-						$icon_zmi Zoom in         ^ 1 ^ sxmo_type -M Ctrl -M Shift -k Prior
-						$icon_zmo Zoom out        ^ 1 ^ sxmo_type -M Ctrl -M Shift -k Next
-						$icon_aru Scroll up       ^ 1 ^ sxmo_type -M Ctrl -M Shift -k b
-						$icon_ard Scroll down     ^ 1 ^ sxmo_type -M Ctrl -M Shift -k f
-						$icon_a2x Invert          ^ 1 ^ sxmo_type -M Ctrl -M Shift -k x
-						$icon_kbd Hotkeys         ^ 0 ^ sxmo_appmenu.sh sthotkeys
-					"
-					WINNAME=St
-					;;
-				*foot*)
-					CHOICES="
-						$icon_cpy Copy		  ^ 0 ^ sxmo_type -M Shift -M Ctrl c
-						$icon_pst Paste           ^ 0 ^ sxmo_type -M Shift -M Ctrl v
-						$icon_zmi Zoom in         ^ 1 ^ sxmo_type -M Ctrl +
-						$icon_zmo Zoom out        ^ 1 ^ sxmo_type -M Ctrl -k Minus
-						$icon_aru Scroll up       ^ 1 ^ sxmo_type -M Shift -k Prior
-						$icon_ard Scroll down     ^ 1 ^ sxmo_type -M Shift -k Next
-						$icon_lnk URL Mode        ^ 0 ^ sxmo_type -M Shift -M Ctrl -k u
-						$icon_kbd Hotkeys         ^ 0 ^ sxmo_appmenu.sh sthotkeys
-						$icon_fnd Search Field	  ^ 0 ^ sxmo_type -M Ctrl -M Shift -k r
-						$icon_aru Search Back	  ^ 0 ^ sxmo_type -M Ctrl -k r
-						$icon_ard Search Forward  ^ 0 ^ sxmo_type -M Ctrl -k s
-						$icon_itm Search Extend	  ^ 0 ^ sxmo_type -M Ctrl -k w
-					"
-					WINNAME=Foot
-					;;
-				*terminal*|org.gnome.vte.application)
-					CHOICES="$icon_kbd Hotkeys ^ 0 ^ sxmo_appmenu.sh sthotkeys"
-					WINNAME=Terminal
-					;;
-				*alacritty*)
-					CHOICES="
-						$icon_cpy Copy				^ 0 ^ sxmo_type -M Shift -M Ctrl c
-						$icon_pst Paste				^ 0 ^ sxmo_type -M Shift -M Ctrl v
-						$icon_vim VI Mode			^ 0 ^ sxmo_type -M Ctrl -M Shift -k Space
-						$icon_fnd Search Forward	^ 0 ^ sxmo_type -M Ctrl -M Shift -k f
-						$icon_fnd Search Backward	^ 0 ^ sxmo_type -M Ctrl -M Shift -k b
-						$icon_aru Search Previous   ^ 0 ^ sxmo_type -k Enter
-						$icon_ard Search Next		^ 0 ^ sxmo_type -M Shift -k Enter
-						$icon_kbd Hotkeys 			^ 0 ^ sxmo_appmenu.sh sthotkeys
-					"
-					WINNAME=Alacritty
-					;;
-			esac
-		esac
-		;;
-	*okular*)
-		# Okular
-		CHOICES="
-			$icon_cfg Touch $(
-				sxmo_wm.sh inputevent touchscreen | grep -q on && \
-				printf %b "$icon_ton ^ 0 ^ sxmo_wm.sh inputevent touchscreen off" || \
-				printf %b "$icon_tof ^ 0 ^ sxmo_wm.sh inputevent touchscreen on"
-			)
-		$icon_cfg Fullscreen    ^ 0 ^ sxmo_type -k Ctrl -k Shift -k F
-		$icon_cfg Menubar       ^ 0 ^ sxmo_type -k Ctrl -k M
-		$icon_cfg Toolbars      ^ 0 ^ sxmo_type -k F7
-		$icon_cfg SXMO Bar      ^ 0 ^ sxmo_wm.sh togglebar
-		"
-		WINNAME=Xournal
-		;;
-	*xournal*)
-		# Xournalpp
-		CHOICES="
-			$icon_cfg Touch $(
-				sxmo_wm.sh inputevent touchscreen | grep -q on && \
-				printf %b "$icon_ton ^ 0 ^ sxmo_wm.sh inputevent touchscreen off" || \
-				printf %b "$icon_tof ^ 0 ^ sxmo_wm.sh inputevent touchscreen on"
-			)
-			$icon_flt Open		^ 0 ^ sxmo_type -k Ctrl -k o
-			$icon_zmi Zoom		^ 1 ^ sxmo_type -k Ctrl -k plus
-			$icon_zmo Zoom		^ 1 ^ sxmo_type -k Ctrl -k minus
-			$icon_zmi Next Page	^ 1 ^ sxmo_type -k Next
-			$icon_zmo Prev Page	^ 1 ^ sxmo_type -k Prior
-			$icon_cfg Menubar       ^ 0 ^ sxmo_type -k F10
-			$icon_cfg Toolbars      ^ 0 ^ sxmo_type -k F9
-			$icon_cfg SXMO Bar      ^ 0 ^ sxmo_wm.sh togglebar
-		"
-		WINNAME=Xournal
-		;;
-	*zathura*)
-		# Zathura
-		CHOICES="
-			$icon_flt Open		^ 0 ^ sxmo_type -k o
-			$icon_zmi Zoom		^ 1 ^ sxmo_type -k plus
-			$icon_zmo Zoom		^ 1 ^ sxmo_type -k minus
-			$icon_arl History	^ 1 ^ sxmo_type -M Ctrl -k o
-			$icon_arr History	^ 1 ^ sxmo_type -M Ctrl -k i
-			$icon_cfg Invert	^ 0 ^ sxmo_type -M Ctrl -k r
-			$icon_flt Index		^ 0 ^ sxmo_type -k Tab
-			$icon_cfg Fit           ^ 0 ^ sxmo_type -k a
-			$icon_cfg Width mode    ^ 0 ^ sxmo_type -k s
-		"
-		WINNAME=Zathura
-		;;
-	*netsurf*)
-		# Netsurf
-		CHOICES="
-			$icon_flt Pipe URL          ^ 0 ^ sxmo_urlhandler.sh
-			$icon_zmi Zoom            ^ 1 ^ sxmo_type -M Ctrl -k plus
-			$icon_zmo Zoom            ^ 1 ^ sxmo_type -M Ctrl -k minus
-			$icon_arl History        ^ 1 ^ sxmo_type -M Alt -k Left
-			$icon_arr History        ^ 1 ^ sxmo_type -M Alt -k Right
-		"
-		WINNAME=Netsurf
-		;;
-	*surf*)
-		# Surf
-		CHOICES="
-			$icon_glb Navigate    ^ 0 ^ sxmo_type -M Ctrl g
-			$icon_lnk Link Menu   ^ 0 ^ sxmo_type -M Ctrl d
-			$icon_flt Pipe URL    ^ 0 ^ sxmo_urlhandler.sh
-			$icon_fnd Search Page ^ 0 ^ sxmo_type -M Ctrl f
-			$icon_fnd Find Next   ^ 0 ^ sxmo_type -M Ctrl n
-			$icon_zmi Zoom      ^ 1 ^ sxmo_type -M Shift -M Ctrl k
-			$icon_zmo Zoom      ^ 1 ^ sxmo_type -M Shift -M Ctrl j
-			$icon_aru Scroll    ^ 1 ^ sxmo_type -M Shift -k Space
-			$icon_ard Scroll    ^ 1 ^ sxmo_type -k Space
-			$icon_itm JS Toggle   ^ 1 ^ sxmo_type -M Shift -M Ctrl s
-			$icon_arl History   ^ 1 ^ sxmo_type -M Ctrl h
-			$icon_arr History   ^ 1 ^ sxmo_type -M Ctrl l
-			$icon_rld Refresh     ^ 0 ^ sxmo_type -M Shift -M Ctrl r
-		"
-		WINNAME=Surf
-		;;
-	*falkon*)
-		# Falkon
-		CHOICES="
-			$icon_flt Pipe URL          ^ 0 ^ sxmo_urlhandler.sh
-			$icon_tab New Tab           ^ 0 ^ sxmo_type -M Ctrl t
-			$icon_win New Window        ^ 0 ^ sxmo_type -M Ctrl n
-			$icon_cls Close Tab         ^ 0 ^ sxmo_type -M Ctrl w
-			$icon_zmi Zoom            ^ 1 ^ sxmo_type -M Ctrl -k plus
-			$icon_zmo Zoom            ^ 1 ^ sxmo_type -M Ctrl -k minus
-			$icon_arl History        ^ 1 ^ sxmo_type -M Alt -k Left
-			$icon_arr History        ^ 1 ^ sxmo_type -M Alt -k Right
-			$icon_win Home           ^ 0 ^ sxmo_type -M Alt -k Home
-			$icon_zmo Full Screen    ^ 0 ^ sxmo_type -k F11
-			$icon_rld Refresh     ^ 0 ^ sxmo_type -M Shift -M Ctrl r
-		"
-		WINNAME=Falkon
-		;;
-	*firefox*|*navigator*)
-		# Firefox
-		CHOICES="
-			$icon_flt Pipe URL          ^ 0 ^ sxmo_urlhandler.sh
-			$icon_tab New Tab           ^ 0 ^ sxmo_type -M Ctrl t
-			$icon_win New Window        ^ 0 ^ sxmo_type -M Ctrl n
-			$icon_cls Close Tab         ^ 0 ^ sxmo_type -M Ctrl w
-			$icon_zmi Zoom            ^ 1 ^ sxmo_type -M Ctrl -k plus
-			$icon_zmo Zoom            ^ 1 ^ sxmo_type -M Ctrl -k minus
-			$icon_arl History        ^ 1 ^ sxmo_type -M Alt -k Left
-			$icon_arr History        ^ 1 ^ sxmo_type -M Alt -k Right
-			$icon_win Home           ^ 0 ^ sxmo_type -M Alt -k Home
-			$icon_zmo Full Screen    ^ 0 ^ sxmo_type -k F11
-			$icon_rld Refresh     ^ 0 ^ sxmo_type -M Shift -M Ctrl r
-		"
-		WINNAME=Firefox
-		;;
-	*krita*)
-		# Krita
-		CHOICES="
-			$icon_fnd Open                   ^ 0 ^ sxmo_type -M Ctrl o
-			$icon_sav Save                   ^ 0 ^ sxmo_type -M Ctrl s
-			$icon_pst Paste                  ^ 0 ^ sxmo_type -M Ctrl v
-			$icon_del Delete                 ^ 0 ^ sxmo_type -k Delete
-			$icon_win Select                 ^ 0 ^ sxmo_type -M Ctrl r
-			$icon_modem_disabled Deselect    ^ 0 ^ sxmo_type -M Ctrl -M Shift a
-			$icon_wn2 Crop                   ^ 0 ^ sxmo_type c
-			$icon_flt Fill                   ^ 0 ^ sxmo_type f
-			$icon_modem_connected Gradient   ^ 0 ^ sxmo_type g
-			$icon_dof HSV Adjust    	     ^ 0 ^ sxmo_type -M Ctrl u
-			$icon_cls Close Image        	 ^ 0 ^ sxmo_type -M Ctrl w
-		"
-		WINNAME=Krita
-		;;
-	*vimb*)
-		CHOICES="
-			$icon_glb Navigate        ^ 0 ^ sxmo_type -k Escape o
-			$icon_zmi Zoom            ^ 1 ^ sxmo_type -k Escape zi
-			$icon_zmo Zoom            ^ 1 ^ sxmo_type -k Escape zo
-			$icon_arl History         ^ 1 ^ sxmo_type -M Ctrl o
-			$icon_arr History         ^ 1 ^ sxmo_type -M Ctrl i
-			$icon_rld Refresh         ^ 0 ^ sxmo_type -k Escape r
-		"
-		WINNAME=Vimb
-		;;
-	*geopard*)
-		# Geopard
-		CHOICES="
-			$icon_flt Pipe URL          ^ 0 ^ sxmo_urlhandler.sh
-			$icon_pls New Tab            ^ 0 ^ sxmo_type -M Ctrl t
-			$icon_cls Close Tab          ^ 0 ^ sxmo_type -M Ctrl w
-			$icon_bok Open Bookmarks     ^ 0 ^ sxmo_type -M Ctrl b
-			$icon_pls Add Bookmark       ^ 0 ^ sxmo_type -M Ctrl d
-			$icon_edt Edit Bookmarks     ^ 0 ^ sxmo_terminal.sh $EDITOR ~/.local/share/geopard/bookmarks.gemini
-			$icon_zmi Increase Font Size ^ 1 ^ sxmo_type -M Ctrl -k plus
-			$icon_zmo Decrease Font Size ^ 1 ^ sxmo_type -M Ctrl -k minus
-			$icon_arl History Back       ^ 1 ^ sxmo_type -M Alt -k Left
-			$icon_arr History Forward    ^ 1 ^ sxmo_type -M Alt -k Right
-			$icon_fnd URL Bar            ^ 0 ^ sxmo_type -k F6
-			$icon_rld Refresh            ^ 0 ^ sxmo_type -k F6 -k Return
-			"
-		WINNAME=Geopard
-		;;
-	*lagrange*)
-		# Lagrange
-		CHOICES="
-			$icon_mnu Toggle sidebar ^ 0 ^ sxmo_type -M Shift -M Ctrl p
-			$icon_bok Open bookmarks ^ 0 ^ sxmo_type -M Ctrl l && sxmo_type 'about:bookmarks' -k Return
-			$icon_pls Add bookmark   ^ 0 ^ sxmo_type -M Ctrl d
-			$icon_zmi Zoom           ^ 1 ^ sxmo_type -M Ctrl -k equal
-			$icon_zmo Zoom           ^ 1 ^ sxmo_type -M Ctrl -k minus
-			$icon_aru Parent dir     ^ 1 ^ sxmo_type -M Alt -k Up
-			$icon_arl History        ^ 1 ^ sxmo_type -M Alt -k Left
-			$icon_arr History        ^ 1 ^ sxmo_type -M Alt -k Right
-			$icon_rld Refresh        ^ 0 ^ sxmo_type -M Ctrl r
-		"
-		WINNAME=Lagrange
-		;;
-	org.gnome.maps)
-	CHOICES="
-		$icon_gps Toggle Geoclue ^ 0 ^ superctl status geoclue-agent |grep started >/dev/null && superctl stop geoclue-agent || superctl start geoclue-agent
-		$icon_zmi Zoom in ^ 1 ^ sxmo_type -M ctrl =
-		$icon_zmo Zoom out ^ 1 ^ sxmo_type -M ctrl -k minus
-		$icon_fnd Explore POI ^ 0 ^ sxmo_type -M ctrl -M Shift F
-		$icon_fnd Search ^ 0 ^ sxmo_type -M ctrl f
-		$icon_lst Show last results ^ 0 ^ sxmo_type -M ctrl r
-		$icon_map Toggle route planner ^ 0 ^ sxmo_type -M ctrl d
-		$icon_gps Show current location ^ 0 ^ sxmo_type -M ctrl l
-		"
-		WINNAME=Maps
-		;;
-	*mepo*)
-		# Mepo
-		# The choices / hotkeys for the contextmenu are generated through mepo's
-		# own scripting to be in congruence since the same menu can be launched
-		# via mepo's UI as well, this compatibility is available as of mepo 0.4
-		CHOICES="$(mepo_ui_central_menu.sh menuoptions | awk -F^ '{ print $1 "^ 0 ^ sxmo_type" $3  }')"
-		WINNAME=Mepo
-		;;
-	*foxtrot*)
-		# Foxtrot GPS
-		CHOICES="
-			$icon_zmi Zoom              ^ 1 ^ sxmo_type i
-			$icon_zmo Zoom              ^ 1 ^ sxmo_type o
-			$icon_itm Panel Toggle        ^ 1 ^ sxmo_type m
-			$icon_itm GPSD Toggle         ^ 1 ^ sxmo_type a
-		"
-		WINNAME=Maps
-		;;
-	*badwolf*)
-		# Badwolf Browser
-		CHOICES="
-			$icon_tab New Tab           ^ 0 ^ sxmo_type -M Ctrl -k t
-			$icon_cls Close Tab         ^ 0 ^ sxmo_type -M Alt -k d
-			$icon_fnd Reset Zoom     ^ 0 ^ sxmo_type -M Ctrl -k 0
-			$icon_arr History        ^ 1 ^ sxmo_type -M Ctrl ]
-			$icon_arl History        ^ 1 ^ sxmo_type -M Ctrl [
-			$icon_arr Next Tab          ^ 1 ^ sxmo_type -M Alt -k Right
-			$icon_arl Previous Tab      ^ 1 ^ sxmo_type -M Alt -k Left
-			$icon_rld Refresh     ^ 0 ^ sxmo_type -M Shift -M Ctrl -k r
-			$icon_fnd Search     ^ 0 ^ sxmo_type -M Shift -M Ctrl -k f
-			$icon_arr Next (Search)     ^ 0 ^ sxmo_type -M Shift -M Ctrl -k g
-			$icon_arl Previous (Search)     ^ 0 ^ sxmo_type -M Shift -M Ctrl -M Shift -k g
-			$icon_flt URL Bar     ^ 0 ^ sxmo_type -M Shift -M Ctrl l
-			$icon_fnd Open Web Inspector      ^ 0 ^ sxmo_type -k F12
-		"
-		WINNAME=Badwolf
-		;;
-	*acme*)
-		# Acme
-		CHOICES="
-			$icon_mse 2 (Right) [2s delay]  ^ 0 ^ sleep 2 && xdotool click 3
-			$icon_mse 3 (Middle) [2s delay]  ^ 0 ^ sleep 2 && xdotool click 2
-			$icon_itm Autocomplete            ^ 0 ^ sxmo_type.sh -M Ctrl -k f
-			$icon_exp Select Last Typed Text  ^ 0 ^ sxmo_type.sh -M Escape
-			$icon_del Delete To Start Of Line       ^ 0 ^ sxmo_type.sh -M Ctrl -k U
-			$icon_arl Move To Start Of Line   ^ 0 ^ sxmo_type.sh -M Ctrl -k A
-			$icon_arr Move To End Of Line      ^ 0 ^ sxmo_type.sh -M Ctrl -k E
-		"
-		WINNAME=Acme
-		;;
-	*mupdf*)
-		# Mupdf
-		CHOICES="
-			$icon_nxt Next Page           ^ 0 ^ sxmo_type -k Space
-			$icon_prv Previous Page         ^ 0 ^ sxmo_type -k b
-			$icon_chk Mark Page		^ 0 ^ sxmo_type -k m
-			$icon_ret Pop To Last Mark        ^ 0 ^ sxmo_type -k t
-			$icon_zmi Zoom In        ^ 1 ^ sxmo_type -k +
-			$icon_zmo Zoom Out          ^ 1 ^ sxmo_type -k -
-			$icon_fnd Fit Width      ^ 0 ^ sxmo_type -k W
-			$icon_fnd Fit Height     ^ 0 ^ sxmo_type -k H
-			$icon_fnd Zoom To Fit     ^ 0 ^ sxmo_type -k Z
-			$icon_fnd Reset Zoom     ^ 0 ^ sxmo_type -k z
-			$icon_rol Rotate Counterclockwise     ^ 0 ^ sxmo_type -k [
-			$icon_ror Rotate Clockwise     ^ 0 ^ sxmo_type -k ]
-			$icon_fnd Search     ^ 0 ^ sxmo_type -k /
-		"
-		WINNAME=Mupdf
-		;;
-	*tabbed*)
-		# Tabbed
-		CHOICES="
-			$icon_tab New Tab            ^ 0 ^ sxmo_type.sh -M Ctrl -M Shift -M Enter
-			$icon_arl Previous Tab       ^ 1 ^ sxmo_type.sh -M Ctrl -M Shift -k h
-			$icon_arr Next Tab           ^ 1 ^ sxmo_type.sh -M Ctrl -M Shift -k l
-			$icon_arl Move Tab Left      ^ 1 ^ sxmo_type.sh -M Ctrl -M Shift -k j
-			$icon_arr Move Tab Right     ^ 1 ^ sxmo_type.sh -M Ctrl -M Shift -k k
-			$icon_mnu Menu Prompt        ^ 0 ^ sxmo_type.sh -M Ctrl -k U0060
-			$icon_cls Close Tab          ^ 0 ^ sxmo_type.sh -M Ctrl -k q
-		"
-		WINNAME=Tabbed
-		;;
-	*)
-		# Default system menu (no matches)
-		CHOICES="
-			$icon_grd Scripts                                            ^ 0 ^ sxmo_appmenu.sh scripts
-			$icon_grd Apps                                               ^ 0 ^ sxmo_appmenu.sh applications
-			$icon_grd Binaries                                           ^ 0 ^ sxmo_brun.sh
-			$icon_dir Files                                              ^ 0 ^ sxmo_files.sh
-			$icon_phn Dialer                                             ^ 0 ^ sxmo_modemdial.sh
-			$icon_msg Texts                                              ^ 0 ^ sxmo_modemtext.sh
-			$icon_usr Contacts                                           ^ 0 ^ sxmo_contactmenu.sh
-			$(
-				rfkill list bluetooth -no ID,SOFT,HARD | grep -vq " blocked" &&
-				printf %b "$icon_bth Bluetooth ^ 1 ^ sxmo_bluetoothmenu.sh"
-			)
-			$(command -v megapixels >/dev/null && echo "$icon_cam Camera ^ 0 ^ GDK_SCALE=2 megapixels")
-			$(
-				if brightness="$(brightnessctl -d "white:flash" get)"; then
-					printf "%s Flashlight " "$icon_fll"
-					[ "$brightness" -gt 0 ] &&
-						printf %b "$icon_ton" ||  printf %b "$icon_tof";
-					printf %b "^ 1 ^ sxmo_flashtoggle.sh"
-				fi
-			)
-			$icon_net Networks                                           ^ 0 ^ sxmo_networks.sh
-			$icon_mus Audio                                              ^ 0 ^ sxmo_audio.sh
-			$icon_phn Modem                                              ^ 0 ^ sxmo_appmenu.sh modem
-			$icon_win Windows                                            ^ 0 ^ sxmo_wmmenu.sh
-			$icon_cfg Config                                             ^ 0 ^ sxmo_appmenu.sh config
-			$icon_pwr Power                                              ^ 0 ^ sxmo_appmenu.sh power
-		"
-		WINNAME=Sys
-		;;
-esac
-
-if ! test "$c"; then
-#printf "%b\n" "$WINNAME"
-c="$(printf "%b\n" "$CHOICES" |grep sxmo_type|sed "s/sxmo_type[^ ]* \(\S\)$/'\1'/g"|
-sed "s/sxmo_type[^ ]* -k \(\S\+\)$/'\1'/g"|
-sed "s/sxmo_type[^ ]* -M Ctrl \(\S\)$/'<ctrl>\1'/ig"|
-sed "s/sxmo_type[^ ]* -M Ctrl -k \(\S\+\)$/'<ctrl>\1'/ig"|
-sed "s/sxmo_type[^ ]* -k Ctrl -k \(\S\+\)$/'<ctrl>\1'/ig"|
-sed "s/sxmo_type[^ ]* -M Ctrl \(\S\) -m Ctrl$/'<ctrl>\1'/ig"|
-sed "s/sxmo_type[^ ]* -M Ctrl -k \(\S\+\) -m Ctrl$/'<ctrl>\1'/ig"|
-sed "s/sxmo_type[^ ]* -M Shift \(\S\)$/'<shift>\1'/g"|
-sed "s/sxmo_type[^ ]* -M Shift -k \(\S\+\)$/'<shift>\1'/g"|
-sed "s/sxmo_type[^ ]* -M Shift -M Ctrl \(\S\)$/'<ctrl><shift>\1'/ig"|
-sed "s/sxmo_type[^ ]* -M Shift -M Ctrl -k \(\S\+\)$/'<ctrl><shift>\1'/ig"|
-sed "s/sxmo_type[^ ]* -M Ctrl -M Shift \(\S\)$/'<ctrl><shift>\1'/ig"|
-sed "s/sxmo_type[^ ]* -M Ctrl -M Shift -k \(\S\+\)$/'<ctrl><shift>\1'/ig"|
-sed "s/sxmo_type[^ ]* -k Ctrl -k Shift -k \(\S\+\)$/'<ctrl><shift>\1'/ig"|
-sed "s/sxmo_type[^ ]* -M Shift -M Ctrl -M Shift -k g/<ctrl><shift>g/g"|
-sed "s/sxmo_type[^ ]* -M Ctrl -M Shift -M \(Enter\)$/'<ctrl><shift>\1'/ig"|
-sed "s/sxmo_type[^ ]* -M Alt \(\S\)$/'<alt>\1'/g"|
-sed "s/sxmo_type[^ ]* -M Alt -k \(\S\+\)$/'<alt>\1'/g"|
-sed "s/sxmo_type[^ ]* -M Alt \(\S\) -m Alt$/'<alt>\1'/g"|
-sed "s/sxmo_type[^ ]* -M Alt -k \(\S\+\) -m Alt$/'<alt>\1'/g" |grep -v sxmo_type | grep -o "'[^']\+'$"|tr "\n" ,)"
-fi
-echo "$c"
-
-test "$c" &&
-gsettings set sm.puri.phosh.osk.Terminal shortcuts "[$c]"
-