#!/bin/sh # configversion: 2 # This script will output the content of the contextual menu # It should stdout the title as the first line followed by the entries # include common definitions # shellcheck source=scripts/core/sxmo_common.sh . "$(which sxmo_common.sh)" # shellcheck source=scripts/core/sxmo_icons.sh . "$(which sxmo_icons.sh)" XPROPOUT="$(sxmo_wm.sh focusedwindow)" WMCLASS="${1:-$(printf %s "$XPROPOUT" | grep app: | cut -d" " -f2- | tr '[:upper:]' '[:lower:]')}" if [ -z "$XPROPOUT" ]; then sxmo_log "detected no active window, no problem, opening system menu" else sxmo_log "opening menu for wmclass $WMCLASS" fi case "$WMCLASS" in scripts) # Scripts menu CHOICES="$(sxmo_hooks.sh scripts)" WINNAME=Scripts ;; applications) # Apps menu CHOICES="$(sxmo_hooks.sh apps)" WINNAME=Apps ;; modem) # modem related CHOICES=" $icon_plk Modem PIN ^ 0 ^ sxmo_unlocksim.sh $icon_phn Modem Monitor $( sxmo_daemons.sh running modem_monitor -q && printf %b "$icon_ton ^ 1 ^ sxmo_daemons.sh stop modem_monitor" || printf %b "$icon_tof ^ 1 ^ sxmo_daemons.sh start modem_monitor sxmo_modemmonitor.sh" ) && sxmo_hooks.sh statusbar modem_monitor $icon_phn Modem Daemons $( sxmo_modemdaemons.sh status > /dev/null && printf %b "$icon_ton ^ 1 ^ sxmo_modemdaemons.sh stop" || printf %b "$icon_tof ^ 1 ^ sxmo_modemdaemons.sh start" ) && sxmo_hooks.sh statusbar modem $icon_inf Modem Info ^ 0 ^ sxmo_modeminfo.sh $icon_phl Modem Log ^ 0 ^ sxmo_modemlog.sh $icon_img Config MMS ^ 1 ^ sxmo_mmsdconfig.sh $icon_img Config VVM ^ 1 ^ sxmo_vvmdconfig.sh " WINNAME=Modem ;; config) # System Control menu CHOICES=" $icon_aru Brightness ^ 1 ^ sxmo_brightness.sh up $icon_ard Brightness ^ 1 ^ sxmo_brightness.sh down $icon_cfg Gestures $( sxmo_daemons.sh running lisgd -q && printf "%s" "$icon_ton" || printf "%s" "$icon_tof" ) ^ 1 ^ toggle_daemon 'Lisgd' lisgd sxmo_hooks.sh lisgdstart $icon_wif Wifi $( rfkill -rn | grep wlan | grep -qE "unblocked unblocked" && printf %b "$icon_ton" || printf %b "$icon_tof"; printf %b "^ 1 ^ doas sxmo_wifitoggle.sh && sxmo_hooks.sh statusbar wifi" ) $(test "$SXMO_WM" = dwm && printf %b "$icon_cfg Invert Colors ^ 1 ^ xcalib -a -invert") $icon_clk Change Timezone ^ 1 ^ sxmo_timezonechange.sh $icon_zzz Auto-suspend $( [ -e "$XDG_CACHE_HOME/sxmo/sxmo.nosuspend" ] && printf "%s" "$icon_tof" || printf "%s" "$icon_ton" ) ^ 1 ^ rm "$XDG_CACHE_HOME/sxmo/sxmo.nosuspend" || touch "$XDG_CACHE_HOME/sxmo/sxmo.nosuspend" $icon_zzz Auto-screen-off $( [ -e "$XDG_CACHE_HOME/sxmo/sxmo.noidle" ] && printf "%s" "$icon_tof" || printf "%s" "$icon_ton" ) ^ 1 ^ rm "$XDG_CACHE_HOME/sxmo/sxmo.noidle" || touch "$XDG_CACHE_HOME/sxmo/sxmo.noidle" $icon_ror Autorotate $( sxmo_daemons.sh running autorotate -q && printf "%s" "$icon_ton" || printf "%s" "$icon_tof" ) ^ 1 ^ toggle_daemon 'Autorotate' autorotate sxmo_autorotate.sh $icon_lck Proximity Lock $( sxmo_daemons.sh running proximity_lock -q && printf "%s" "$icon_ton" || printf "%s" "$icon_tof" ) ^ 1 ^ toggle_daemon 'Proximity Lock' proximity_lock sxmo_proximitylock.sh $icon_ror Rotate ^ 1 ^ sxmo_rotate.sh rotate $icon_trm Hooks ^ 0 ^ sxmo_hookmenu.sh $icon_pkg Upgrade Pkgs ^ 0 ^ sxmo_terminal.sh sxmo_upgrade.sh $icon_sfl Migrate configuration ^ 0 ^ sxmo_terminal.sh sxmo_migrate.sh $icon_cfg Edit configuration ^ 0 ^ sxmo_terminal.sh $EDITOR $XDG_CONFIG_HOME/sxmo/$(test "$SXMO_WM" = sway && printf sway || printf xinit) $(command -v pmos-tweaks >/dev/null && echo "$icon_cfg PostmarketOS Tweaks ^ 0 ^ GDK_SCALE=1 pmos-tweaks") $icon_inf Version ^ 0 ^ sxmo_terminal.sh sxmo_version.sh --block " WINNAME=Config ;; power) # Power menu CHOICES=" $icon_lck Lock ^ 0 ^ sxmo_screenlock.sh lock $icon_lck Lock (Screen off) ^ 0 ^ sxmo_screenlock.sh off $icon_zzz Suspend ^ 0 ^ sxmo_screenlock.sh off && sxmo_screenlock.sh crust $icon_out Logout ^ 0 ^ confirm Logout && (pkill -9 dwm || pkill -9 sway) $icon_rol Toggle WM ^ 0 ^ confirm Toggle && sxmo_wmtoggle.sh $icon_rld Reboot ^ 0 ^ confirm Reboot && sxmo_power.sh reboot $icon_pwr Poweroff ^ 0 ^ confirm Poweroff && sxmo_power.sh poweroff " WINNAME=Power ;; *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 ↑ ^ 1 ^ sxmo_type 0 $icon_ard App Volume ↓ ^ 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 ;; *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 ;; *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*) # First we try to handle the app running inside the terminal: WMNAME="${1:-$(printf %s "$XPROPOUT" | grep title: | cut -d" " -f2- | tr '[:upper:]' '[:lower:]')}" if printf %s "$WMNAME" | grep -qi -E -w "(vi|vim|vis|nvim|neovim|kakoune)"; then #Vim in foot CHOICES=" $icon_cls Save and Quit ^ 0 ^ sxmo_type -k Escape -s 300 ':wq' -k Return $icon_cls 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 ^ wl-paste $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 elif printf %s "$WMNAME" | grep -qi -w "nano"; then #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 elif printf %s "$WMNAME" | grep -qi -w "micro"; then #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 elif printf %s "$WMNAME" | grep -qi -w "tuir"; then #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 elif printf %s "$WMNAME" | grep -qi -w "w3m"; then #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 elif printf %s "$WMNAME" | grep -qi -w "ncmpcpp"; then #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 elif printf %s "$WMNAME" | grep -qi -w "aerc"; then #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 elif printf %s "$WMNAME" | grep -qi -E -w "(less|mless)"; then #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 elif printf %s "$WMNAME" | grep -qi -w "git \(blame\|diff\|grep\|help\|log\|stash\|tag\|var\)"; then # These git commands only launch the pager. exec "$0" "$WMCLASS ${PAGER:less}" elif printf %s "$WMNAME" | grep -qi -w "git \(add\|bugreport\|commit\|merge\|notes\|rebase\|replace\|send-email\|svn\)"; then # These git commands only launch the editor. exec "$0" "$WMCLASS $EDITOR" elif printf %s "$WMNAME" | grep -qi -w "git"; then # 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 elif printf %s "$WMNAME" | grep -qi -w "weechat"; then #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 elif printf %s "$WMNAME" | grep -qi -w "sms"; then # TODO: Ensure $number is valid. number="$(printf %s "$WMNAME" | sed -e 's|^\"||' -e 's|\"$||' | cut -f1 -d' ')" #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") $(sxmo_contacts.sh --name "$number" | grep -q '???' && echo "$icon_usr Add to contacts ^ 1 ^ sxmo_contactmenu.sh newcontact $number") $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=sms elif printf %s "$WMNAME" | grep -qi -w "cmus"; then # 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 else # 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 " WINNAME=Foot ;; *terminal*) CHOICES="$icon_kbd Hotkeys ^ 0 ^ sxmo_appmenu.sh sthotkeys" WINNAME=Terminal ;; esac fi ;; *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 " 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 ;; *firefox*) # 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 ;; *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 ;; *foxtrot*) # Foxtrot GPS CHOICES=" $icon_itm Locations ^ 0 ^ sxmo_gpsutil.sh menulocations $icon_cpy Copy ^ 1 ^ sxmo_gpsutil.sh copy $icon_pst Paste ^ 0 ^ sxmo_gpsutil.sh paste $icon_itm Drop Pin ^ 0 ^ sxmo_gpsutil.sh droppin $icon_fnd Region Search ^ 0 ^ sxmo_gpsutil.sh menuregionsearch $icon_itm Region Details ^ 0 ^ sxmo_gpsutil.sh details $icon_zmi Zoom ^ 1 ^ sxmo_type i $icon_zmo Zoom ^ 1 ^ sxmo_type o $icon_itm Map Type ^ 0 ^ sxmo_gpsutil.sh menumaptype $icon_itm Panel Toggle ^ 1 ^ sxmo_type m $icon_itm GPSD Toggle ^ 1 ^ sxmo_type a $icon_usr Locate Me ^ 0 ^ sxmo_gpsutil.sh gpsgeoclueset " WINNAME=Maps ;; *) # Default system menu (no matches) CHOICES=" $icon_grd Scripts ^ 0 ^ sxmo_appmenu.sh scripts $icon_grd Apps ^ 0 ^ sxmo_appmenu.sh applications $icon_dir Files ^ 0 ^ sxmo_files.sh $(command -v foxtrotgps >/dev/null && echo "$icon_gps Maps ^ 0 ^ foxtrotgps") $icon_phn Dialer ^ 0 ^ sxmo_modemdial.sh $icon_msg Texts ^ 0 ^ sxmo_modemtext.sh $icon_usr Contacts ^ 0 ^ sxmo_contactmenu.sh $(command -v megapixels >/dev/null && echo "$icon_cam Camera ^ 0 ^ GDK_SCALE=2 megapixels") $( if [ -z "$SXMO_DISABLE_LEDS" ]; then printf "%s Flashlight " "$icon_fll" sxmo_led.sh get white | grep -vq ^100$ && printf %b "$icon_tof" || printf %b "$icon_ton"; 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_cfg Config ^ 0 ^ sxmo_appmenu.sh config $icon_pwr Power ^ 0 ^ sxmo_appmenu.sh power " WINNAME=Sys ;; esac printf "%b\n" "$WINNAME" printf "%b\n" "$CHOICES"