i3 here, mine is very different from the usual, I made it to use the left hand as much as possible:
How I launch commonly used programs:
bindsym $mod+F1 exec --no-startup-id pgrep librewolf && i3-msg "[class=LibreWolf] focus" && dunstify -r 34 -t 1500 "LibreWolf" || librewolf | dunstify -r 34 -t 2000 "Launching non-XDG Compliant Software: LibreWolf"
bindsym $mod+Shift+F1 exec --no-startup-id librewolf | dunstify -r 35 -t 1000 "New LibreWolf Window"
bindsym $mod+F2 exec --no-startup-id thunar
bindsym $mod+F3 exec --no-startup-id pgrep deadbeef && i3-msg "[class=Deadbeef] focus" && dunstify -r 36 -t 1500 "DeaDBeef" || deadbeef | dunstify -r 36 -t 2000 "Launching DeaDBeef"
bindsym $mod+F4 exec --no-startup-id pgrep ferdium && i3-msg "[class=Ferdium] focus" && dunstify -r 37 -t 1500 "Ferdium" || ferdium | dunstify -r 37 -t 2000 "Launching Ferdium"
bindsym $mod+F5 exec --no-startup-id pgrep freetube && i3-msg "[class=FreeTube] focus" && dunstify -r 38 -t 1500 "FreeTube" || freetube | dunstify -r 38 -t 2000 "Launching Freetube"
bindsym $mod+F6 exec --no-startup-id pgrep steam && i3-msg "[class=steam] focus" && dunstify -r 39 -t 1500 "Steam" || exec steam | dunstify -r 39 -t 2000 "Launching Ruthless non-XDG Compliant Software: Steam" "(Also fucks your screensaver lol)"
bindsym $mod+F7 exec --no-startup-id pgrep yuzu && i3-msg "[class=yuzu] focus" && dunstify -r 40 -t 1500 "yuzu" || gamemoderun yuzu | dunstify -r 40 -t 2000 "Launching yuzu"
If the program is already opened and I press the key it will focus on it instead of opening another window, to open another window for the browser I need to press Shift. (And yes I have some beef against programs that don't follow xdg base directory specs lol)
For navigation keys, I use esdf instead of wasd, I can also use the arrow keys:
bindsym $mod+Shift+r layout toggle splitv tabbed splith
bindsym $mod+r layout toggle splith tabbed splitv
bindsym $mod+q kill
bindsym $mod+z split toggle
bindsym $mod+g fullscreen toggle
bindsym $mod+Shift+space floating toggle, resize set 710 400, move position center
bindsym $mod+Mod1+space floating toggle
bindsym $mod+space focus mode_toggle
bindsym $mod+Shift+x move scratchpad, exec --no-startup-id dunstify -r 33 -t 1500 "Window Moved to Scratchpad"
bindsym $mod+x scratchpad show, exec --no-startup-id dunstify -r 33 -t 1500 "Scratchpad Show"
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
bindsym $mod+a exec --no-startup-id ~/.local/bin/scripts/togglefocus.sh
bindsym $mod+s focus left
bindsym $mod+d focus down
bindsym $mod+e focus up
bindsym $mod+f focus right
bindsym $mod+Ctrl+Left resize shrink width 100 px or 15 ppt
bindsym $mod+Ctrl+Down resize shrink height 100 px or 15 ppt
bindsym $mod+Ctrl+Up resize grow height 100 px or 15 ppt
bindsym $mod+Ctrl+Right resize grow width 100 px or 15 ppt
bindsym $mod+Ctrl+s resize shrink width 100 px or 15 ppt
bindsym $mod+Ctrl+d resize shrink height 100 px or 15 ppt
bindsym $mod+Ctrl+e resize grow height 100 px or 15 ppt
bindsym $mod+Ctrl+f resize grow width 100 px or 15 ppt
I had to use an script for mod+a because i3 can't use the same keybind to focus parent and focus child (I use it like select all thing).
The default config of i3 has a resize mode, I got rid of all of that, it is much better to use mod+control to resize lol.
I also have the mouse side buttons to control media playback as well as making the window float with middleclick:
bindsym --whole-window $mod+button2 floating toggle, resize set 710 400, move position center
bindsym --whole-window $mod+button9 exec --no-startup-id playerctl next
bindsym --whole-window $mod+button8 exec --no-startup-id playerctl previous
bindsym --whole-window $mod+Shift+button8 exec --no-startup-id playerctl play-pause && sleep 0.2 && playerctl metadata --format '{{ status }}: {{ title }} by {{ artist }}' | xargs -0 -I {} dunstify -r 11 -t 2000 "Playback" "{}"
edit: lemmy can’t display && when I paste it as code lol