What I stumbled upon when reading the i3 User’s Guide is binding_modes
So when I’ve booted my machine, there are a bunch of AppVMs I want to start or not. Stuff like the split-ssh-vault get started automatically, but sometimes I’m interested in quickly launching a few AppVMs.
What I ended up with was this:
where $mod is the i3 modifier key. This is depending on your configuration either Alt (aka Meta) or Super (aka Windows-Key). It gets configured very early at the top of ~/.config/i3/config and is then refered to as $mod throughout the configuration.
set $mode_launcher Launch: [e]macs [m]ail [t]elegram [s]ignal e[l]ement [d]iscord [k]iwix [z]eal
bindsym $mod+o mode "$mode_launcher"
# My own little menu launcher to access single-purpose app qubes faster =)
mode "$mode_launcher" {
# EDITOR
bindsym e exec qvm-run dev "emacsclient -c -a 'emacs'"
# CHAT
bindsym s exec qvm-run signal signal-desktop
bindsym t exec qvm-run telegram telegram-desktop
bindsym d exec qvm-run discord discord
bindsym l exec qvm-run element element-desktop
#bindsym e exec qvm-run element element-desktop # FIXME: clashes with emacs
bindsym m exec qvm-run mail thunderbird
# DOC
bindsym k exec qvm-run kiwix kiwix-desktop
bindsym z exec qvm-run zeal zeal
bindsym Escape mode "default"
bindsym Return mode "default"
}
This works very similar to the resize-binding mode.
This allows me to do
$mod+o + e + ESC to spawn an editor
the neat thing with this mode really is that I can launch everything I want with a single keystroke before leaving with ESC
so $mod+o + stdlm + ESC will launch every chat-app.
This was 5 $mod+d or $mod+shift+Enter invocations + finding the right AppVM before!
or $mod+o + eee + ESC will launch 3 editor instances.
the top level line set $mode_launcher... is really just a visual help inside i3bar… I tend to forget stuff.
This really shines with @fiftyfourthparallel’s halt-vm-by-window script, which I personally bound to this:
bindsym $mod+Shift+p exec --no-startup-id halt-vm-by-window
“need to look up some docs” … $mod+o + z + ESC
"oh, I dont need this anymore … $mod+Shift+p
saved me lots of qvm-run and the latter qvm-shutdown invocations per day/hour.
At this point: thx @fiftyfourthparallel!