My personal project and infrastructure archive
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
nomicon/infra/libkookie/modules/workstation/ui/i3/core/keys.nix

72 lines
2.2 KiB

{ cfg, pkgs, modifier }:
{
# Start a terminal
# TODO: this might fail
"${modifier}+Return" = "exec ${cfg.term}/bin/${cfg.term.pname}";
# Area screenshot support
"${modifier}+Shift+9" = "exec --no-startup-id ${pkgs.libkookie-i3-scrcap}";
# Close individual windows
"${modifier}+Shift+q" = "kill";
# Float current window
"${modifier}+Shift+space" = "floating toggle";
"${modifier}+space" = "focus toggle";
# Full-screen current window
"${modifier}+f" = "fullscreen";
# Start software on <this> or <other> workspace
"${modifier}+e" = "exec ${pkgs.dmenu}/bin/dmenu_run";
# Switch to workspace (optionally take current window)
"${modifier}+o" = "exec ${pkgs.libkookie-i3-switch}";
"${modifier}+Shift+o" = "exec ${pkgs.libkookie-i3-move}";
# Rename workspaces
"${modifier}+Ctrl+r" = "exec ${pkgs.libkookie-i3-rename}";
# Move focus around - vim style
"${modifier}+h" = "focus left";
"${modifier}+t" = "focus up";
"${modifier}+n" = "focus down";
"${modifier}+s" = "focus right";
# Move focus around - boring style
"${modifier}+Up" = "focus up";
"${modifier}+Down" = "focus down";
"${modifier}+Left" = "focus left";
"${modifier}+Right" = "focus right";
# Move windows - vim style
"${modifier}+Shift+h" = "move left";
"${modifier}+Shift+t" = "move up";
"${modifier}+Shift+n" = "move down";
"${modifier}+Shift+s" = "move right";
# Move windows - boring style
"${modifier}+Shift+Up" = "move up";
"${modifier}+Shift+Down" = "move down";
"${modifier}+Shift+Left" = "move left";
"${modifier}+Shift+Right" = "move right";
# Move workspaces between multi-monitor setups
"${modifier}+Ctrl+Shift+Up" = "move workspace to output up";
"${modifier}+Ctrl+Shift+Down" = "move workspace to output down";
"${modifier}+Ctrl+Shift+Left" = " move workspace to output left";
"${modifier}+Ctrl+Shift+Right" = "move workspace to output right";
# Define split behaviours
"${modifier}+2" = "split h";
"${modifier}+1" = "split v";
# Some layout modifiers
"${modifier}+3" = "layout default";
"${modifier}+4" = "layout tabbed";
"${modifier}+5" = "layout stacked";
# Select parent container
"${modifier}+a" = "focus parent";
}