mirror of
https://codeberg.org/tmayoff/.dotfiles.git
synced 2025-12-06 08:48:34 -05:00
split up configs
This commit is contained in:
parent
9b2ad4433d
commit
657f64a68b
4 changed files with 302 additions and 289 deletions
131
dot_config/flake/home/PaperWM.spoon/default.nix
Normal file
131
dot_config/flake/home/PaperWM.spoon/default.nix
Normal file
|
|
@ -0,0 +1,131 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
home = {
|
||||||
|
file.".hammerspoon/Spoons/PaperWM.spoon" = {
|
||||||
|
source = pkgs.fetchFromGitHub {
|
||||||
|
owner = "mogenson";
|
||||||
|
repo = "PaperWM.spoon";
|
||||||
|
rev = "5bc47411eaf4dbbfb950d23d1ec7daf3a0427470";
|
||||||
|
hash = "sha256-YBwa8tmo8hTpuZLFJ8JjAzkNF9+4xGSBuE3ziuHVg74=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
file.".hammerspoon/Spoons/ActiveSpace.spoon" = {
|
||||||
|
source = pkgs.fetchFromGitHub {
|
||||||
|
owner = "mogenson";
|
||||||
|
repo = "ActiveSpace.spoon";
|
||||||
|
rev = "a246cb5a38d0e930a526b44fbd6b6c6d4a36a9d9";
|
||||||
|
hash = "sha256-yFhWsb9J56qtcTx56WRhej5oY3zLUkUZjjTd8iMIhFg=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
file.".hammerspoon/Spoons/WarpMouse.spoon" = {
|
||||||
|
source = pkgs.fetchFromGitHub {
|
||||||
|
owner = "mogenson";
|
||||||
|
repo = "WarpMouse.spoon";
|
||||||
|
rev = "c3b76e02704a15d22e7e6971fe76781db642d0bd";
|
||||||
|
hash = "sha256-6hDU7lM59PoMo5ykeTdvomIqEkKkmh1Xam2GIBVgSVY=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
file.".hammerspoon/init.lua" = {
|
||||||
|
text = ''
|
||||||
|
|
||||||
|
ActiveSpace = hs.loadSpoon("ActiveSpace")
|
||||||
|
ActiveSpace.compact = true
|
||||||
|
ActiveSpace:start()
|
||||||
|
|
||||||
|
WarpMouse = hs.loadSpoon("WarpMouse")
|
||||||
|
-- WarpMouse.margin = 8 -- optionally set how far past a screen edge the mouse should warp, default is 2 pixels
|
||||||
|
WarpMouse:start()
|
||||||
|
|
||||||
|
PaperWM = hs.loadSpoon("PaperWM")
|
||||||
|
PaperWM:bindHotkeys({
|
||||||
|
-- switch to a new focused window in tiled grid
|
||||||
|
focus_left = {{"alt", "cmd"}, "left"},
|
||||||
|
focus_right = {{"alt", "cmd"}, "right"},
|
||||||
|
focus_up = {{"alt", "cmd"}, "up"},
|
||||||
|
focus_down = {{"alt", "cmd"}, "down"},
|
||||||
|
|
||||||
|
-- switch windows by cycling forward/backward
|
||||||
|
-- (forward = down or right, backward = up or left)
|
||||||
|
focus_prev = {{"alt", "cmd"}, "k"},
|
||||||
|
focus_next = {{"alt", "cmd"}, "j"},
|
||||||
|
|
||||||
|
-- move windows around in tiled grid
|
||||||
|
swap_left = {{"alt", "cmd", "shift"}, "left"},
|
||||||
|
swap_right = {{"alt", "cmd", "shift"}, "right"},
|
||||||
|
swap_up = {{"alt", "cmd", "shift"}, "up"},
|
||||||
|
swap_down = {{"alt", "cmd", "shift"}, "down"},
|
||||||
|
|
||||||
|
-- alternative: swap entire columns, rather than
|
||||||
|
-- individual windows (to be used instead of
|
||||||
|
-- swap_left / swap_right bindings)
|
||||||
|
-- swap_column_left = {{"alt", "cmd", "shift"}, "left"},
|
||||||
|
-- swap_column_right = {{"alt", "cmd", "shift"}, "right"},
|
||||||
|
|
||||||
|
-- position and resize focused window
|
||||||
|
center_window = {{"alt", "cmd"}, "c"},
|
||||||
|
full_width = {{"alt", "cmd"}, "f"},
|
||||||
|
cycle_width = {{"alt", "cmd"}, "r"},
|
||||||
|
reverse_cycle_width = {{"ctrl", "alt", "cmd"}, "r"},
|
||||||
|
cycle_height = {{"alt", "cmd", "shift"}, "r"},
|
||||||
|
reverse_cycle_height = {{"ctrl", "alt", "cmd", "shift"}, "r"},
|
||||||
|
|
||||||
|
-- increase/decrease width
|
||||||
|
increase_width = {{"alt", "cmd"}, "l"},
|
||||||
|
decrease_width = {{"alt", "cmd"}, "h"},
|
||||||
|
|
||||||
|
-- move focused window into / out of a column
|
||||||
|
slurp_in = {{"alt", "cmd"}, "i"},
|
||||||
|
barf_out = {{"alt", "cmd"}, "o"},
|
||||||
|
|
||||||
|
-- move the focused window into / out of the tiling layer
|
||||||
|
toggle_floating = {{"alt", "cmd", "shift"}, "escape"},
|
||||||
|
|
||||||
|
-- focus the first / second / etc window in the current space
|
||||||
|
focus_window_1 = {{"cmd", "shift"}, "1"},
|
||||||
|
focus_window_2 = {{"cmd", "shift"}, "2"},
|
||||||
|
focus_window_3 = {{"cmd", "shift"}, "3"},
|
||||||
|
focus_window_4 = {{"cmd", "shift"}, "4"},
|
||||||
|
focus_window_5 = {{"cmd", "shift"}, "5"},
|
||||||
|
focus_window_6 = {{"cmd", "shift"}, "6"},
|
||||||
|
focus_window_7 = {{"cmd", "shift"}, "7"},
|
||||||
|
focus_window_8 = {{"cmd", "shift"}, "8"},
|
||||||
|
focus_window_9 = {{"cmd", "shift"}, "9"},
|
||||||
|
|
||||||
|
-- switch to a new Mission Control space
|
||||||
|
switch_space_l = {{"alt", "cmd"}, ","},
|
||||||
|
switch_space_r = {{"alt", "cmd"}, "."},
|
||||||
|
switch_space_1 = {{"alt", "cmd"}, "1"},
|
||||||
|
switch_space_2 = {{"alt", "cmd"}, "2"},
|
||||||
|
switch_space_3 = {{"alt", "cmd"}, "3"},
|
||||||
|
switch_space_4 = {{"alt", "cmd"}, "4"},
|
||||||
|
switch_space_5 = {{"alt", "cmd"}, "5"},
|
||||||
|
switch_space_6 = {{"alt", "cmd"}, "6"},
|
||||||
|
switch_space_7 = {{"alt", "cmd"}, "7"},
|
||||||
|
switch_space_8 = {{"alt", "cmd"}, "8"},
|
||||||
|
switch_space_9 = {{"alt", "cmd"}, "9"},
|
||||||
|
|
||||||
|
-- move focused window to a new space and tile
|
||||||
|
move_window_1 = {{"alt", "cmd", "shift"}, "1"},
|
||||||
|
move_window_2 = {{"alt", "cmd", "shift"}, "2"},
|
||||||
|
move_window_3 = {{"alt", "cmd", "shift"}, "3"},
|
||||||
|
move_window_4 = {{"alt", "cmd", "shift"}, "4"},
|
||||||
|
move_window_5 = {{"alt", "cmd", "shift"}, "5"},
|
||||||
|
move_window_6 = {{"alt", "cmd", "shift"}, "6"},
|
||||||
|
move_window_7 = {{"alt", "cmd", "shift"}, "7"},
|
||||||
|
move_window_8 = {{"alt", "cmd", "shift"}, "8"},
|
||||||
|
move_window_9 = {{"alt", "cmd", "shift"}, "9"}
|
||||||
|
})
|
||||||
|
|
||||||
|
-- number of fingers to detect a horizontal swipe, set to 0 to disable (the default)
|
||||||
|
PaperWM.swipe_fingers = 3
|
||||||
|
|
||||||
|
-- increase this number to make windows move farther when swiping
|
||||||
|
PaperWM.swipe_gain = 1.0,
|
||||||
|
|
||||||
|
PaperWM:start()
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -8,6 +8,8 @@ in {
|
||||||
imports = [
|
imports = [
|
||||||
# ../fish.nix
|
# ../fish.nix
|
||||||
# ./sketchybar.nix
|
# ./sketchybar.nix
|
||||||
|
|
||||||
|
../../modules/darwin/aerospace
|
||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
|
|
@ -117,174 +119,6 @@ in {
|
||||||
active_color = "0xFF95bcf9";
|
active_color = "0xFF95bcf9";
|
||||||
};
|
};
|
||||||
|
|
||||||
services.aerospace = {
|
|
||||||
enable = false;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
# You can use it to add commands that run after login to macOS user session.
|
|
||||||
# 'start-at-login' needs to be 'true' for 'after-login-command' to work
|
|
||||||
# Available commands: https://nikitabobko.github.io/AeroSpace/commands
|
|
||||||
after-login-command = [];
|
|
||||||
|
|
||||||
# You can use it to add commands that run after AeroSpace startup.
|
|
||||||
# 'after-startup-command' is run after 'after-login-command'
|
|
||||||
# Available commands : https://nikitabobko.github.io/AeroSpace/commands
|
|
||||||
after-startup-command = [];
|
|
||||||
|
|
||||||
# Start AeroSpace at login
|
|
||||||
# start-at-login = true
|
|
||||||
|
|
||||||
# Normalizations. See: https://nikitabobko.github.io/AeroSpace/guide#normalization
|
|
||||||
enable-normalization-flatten-containers = true;
|
|
||||||
enable-normalization-opposite-orientation-for-nested-containers = true;
|
|
||||||
|
|
||||||
# See: https://nikitabobko.github.io/AeroSpace/guide#layouts
|
|
||||||
# The 'accordion-padding' specifies the size of accordion padding
|
|
||||||
# You can set 0 to disable the padding feature
|
|
||||||
accordion-padding = 30;
|
|
||||||
|
|
||||||
# Possible values: tiles|accordion
|
|
||||||
default-root-container-layout = "tiles";
|
|
||||||
|
|
||||||
# Possible values: horizontal|vertical|auto
|
|
||||||
# 'auto' means: wide monitor (anything wider than high) gets horizontal orientation,
|
|
||||||
# tall monitor (anything higher than wide) gets vertical orientation
|
|
||||||
default-root-container-orientation = "auto";
|
|
||||||
|
|
||||||
# Mouse follows focus when focused monitor changes
|
|
||||||
# Drop it from your config, if you don't like this behavior
|
|
||||||
# See https://nikitabobko.github.io/AeroSpace/guide#on-focus-changed-callbacks
|
|
||||||
# See https://nikitabobko.github.io/AeroSpace/commands#move-mouse
|
|
||||||
# Fallback value (if you omit the key): on-focused-monitor-changed = []
|
|
||||||
on-focused-monitor-changed = ["move-mouse monitor-lazy-center"];
|
|
||||||
|
|
||||||
# You can effectively turn off macOS "Hide application" (cmd-h) feature by toggling this flag
|
|
||||||
# Useful if you don't use this macOS feature, but accidentally hit cmd-h or cmd-alt-h key
|
|
||||||
# Also see: https://nikitabobko.github.io/AeroSpace/goodies#disable-hide-app
|
|
||||||
automatically-unhide-macos-hidden-apps = false;
|
|
||||||
|
|
||||||
# Possible values: (qwerty|dvorak)
|
|
||||||
# See https://nikitabobko.github.io/AeroSpace/guide#key-mapping
|
|
||||||
key-mapping.preset = "qwerty";
|
|
||||||
|
|
||||||
# Gaps between windows (inner-*) and between monitor edges (outer-*).
|
|
||||||
# Possible values:
|
|
||||||
# - Constant: gaps.outer.top = 8
|
|
||||||
# - Per monitor: gaps.outer.top = [{ monitor.main = 16 }, { monitor."some-pattern" = 32 }, 24]
|
|
||||||
# In this example, 24 is a default value when there is no match.
|
|
||||||
# Monitor pattern is the same as for 'workspace-to-monitor-force-assignment'.
|
|
||||||
# See: https://nikitabobko.github.io/AeroSpace/guide#assign-workspaces-to-monitors
|
|
||||||
gaps = {
|
|
||||||
inner.horizontal = 4;
|
|
||||||
inner.vertical = 4;
|
|
||||||
outer.left = 0;
|
|
||||||
outer.bottom = 0;
|
|
||||||
outer.top = 0;
|
|
||||||
outer.right = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
# 'main' binding mode declaration
|
|
||||||
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
|
|
||||||
# 'main' binding mode must be always presented
|
|
||||||
# Fallback value (if you omit the key): mode.main.binding = {}
|
|
||||||
# [mode.main.binding]
|
|
||||||
mode.main.binding = {
|
|
||||||
# All possible commands: https://nikitabobko.github.io/AeroSpace/commands
|
|
||||||
|
|
||||||
# See: https://nikitabobko.github.io/AeroSpace/commands#exec-and-forget
|
|
||||||
# You can uncomment the following lines to open up terminal with alt + enter shortcut (like in i3)
|
|
||||||
# alt-enter = '''exec-and-forget osascript -e '
|
|
||||||
# tell application "Terminal"
|
|
||||||
# do script
|
|
||||||
# activate
|
|
||||||
# end tell'
|
|
||||||
# '''
|
|
||||||
|
|
||||||
# See: https://nikitabobko.github.io/AeroSpace/commands#layout
|
|
||||||
alt-slash = "layout tiles horizontal vertical";
|
|
||||||
alt-comma = "layout accordion horizontal vertical";
|
|
||||||
|
|
||||||
# See: https://nikitabobko.github.io/AeroSpace/commands#focus
|
|
||||||
alt-shift-left = "focus left";
|
|
||||||
alt-shift-down = "focus down";
|
|
||||||
alt-shift-up = "focus up";
|
|
||||||
alt-shift-right = "focus right";
|
|
||||||
|
|
||||||
ctrl-alt-shift-left = "focus-monitor left --wrap-around";
|
|
||||||
ctrl-alt-shift-right = "focus-monitor right --wrap-around";
|
|
||||||
ctrl-alt-shift-up = "focus-monitor up --wrap-around";
|
|
||||||
ctrl-alt-shift-down = "focus-monitor down --wrap-around";
|
|
||||||
|
|
||||||
# See: https://nikitabobko.github.io/AeroSpace/commands#move
|
|
||||||
alt-shift-h = "move left";
|
|
||||||
alt-shift-j = "move down";
|
|
||||||
alt-shift-k = "move up";
|
|
||||||
alt-shift-l = "move right";
|
|
||||||
|
|
||||||
# See: https://nikitabobko.github.io/AeroSpace/commands#resize
|
|
||||||
alt-shift-minus = "resize smart -50";
|
|
||||||
alt-shift-equal = "resize smart +50";
|
|
||||||
|
|
||||||
# See: https://nikitabobko.github.io/AeroSpace/commands#workspace
|
|
||||||
alt-1 = "workspace 1";
|
|
||||||
alt-2 = "workspace 2";
|
|
||||||
alt-3 = "workspace 3";
|
|
||||||
alt-4 = "workspace 4";
|
|
||||||
alt-5 = "workspace 5";
|
|
||||||
alt-6 = "workspace 6";
|
|
||||||
alt-7 = "workspace 7";
|
|
||||||
alt-8 = "workspace 8";
|
|
||||||
alt-9 = "workspace 9";
|
|
||||||
|
|
||||||
# See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace
|
|
||||||
alt-shift-1 = "move-node-to-workspace 1";
|
|
||||||
alt-shift-2 = "move-node-to-workspace 2";
|
|
||||||
alt-shift-3 = "move-node-to-workspace 3";
|
|
||||||
alt-shift-4 = "move-node-to-workspace 4";
|
|
||||||
alt-shift-5 = "move-node-to-workspace 5";
|
|
||||||
alt-shift-6 = "move-node-to-workspace 6";
|
|
||||||
alt-shift-7 = "move-node-to-workspace 7";
|
|
||||||
alt-shift-8 = "move-node-to-workspace 8";
|
|
||||||
alt-shift-9 = "move-node-to-workspace 9";
|
|
||||||
|
|
||||||
# See: https://nikitabobko.github.io/AeroSpace/commands#workspace-back-and-forth
|
|
||||||
alt-tab = "workspace-back-and-forth";
|
|
||||||
# See: https://nikitabobko.github.io/AeroSpace/commands#move-workspace-to-monitor
|
|
||||||
alt-shift-tab = "move-workspace-to-monitor --wrap-around next";
|
|
||||||
|
|
||||||
# See: https://nikitabobko.github.io/AeroSpace/commands#mode
|
|
||||||
alt-shift-semicolon = "mode service";
|
|
||||||
};
|
|
||||||
|
|
||||||
mode.service.binding = {
|
|
||||||
# "service" binding mode declaration.
|
|
||||||
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
|
|
||||||
esc = ["reload-config" "mode main"];
|
|
||||||
r = ["flatten-workspace-tree" "mode main"]; # reset layout
|
|
||||||
f = ["layout floating tiling" "mode main"]; # Toggle between floating and tiling layout
|
|
||||||
backspace = ["close-all-windows-but-current" "mode main"];
|
|
||||||
|
|
||||||
# sticky is not yet supported https://github.com/nikitabobko/AeroSpace/issues/2
|
|
||||||
#s = ["layout sticky tiling", "mode main"]
|
|
||||||
|
|
||||||
alt-shift-h = ["join-with left" "mode main"];
|
|
||||||
alt-shift-j = ["join-with down" "mode main"];
|
|
||||||
alt-shift-k = ["join-with up" "mode main"];
|
|
||||||
alt-shift-l = ["join-with right" "mode main"];
|
|
||||||
|
|
||||||
# down = "volume down";
|
|
||||||
# up = "volume up";
|
|
||||||
# shift-down = ["volume set 0" "mode main"];
|
|
||||||
};
|
|
||||||
|
|
||||||
workspace-to-monitor-force-assignment = {
|
|
||||||
"1" = "built-in";
|
|
||||||
"2" = ["^DELL U2723QE \\(1\\)$" "BenQ EX2710 \\(2\\)$"];
|
|
||||||
"3" = ["^DELL U2723QE \\(2\\)$" "BenQ EX2710 \\(1\\)$"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.fish.enable = true;
|
programs.fish.enable = true;
|
||||||
programs.zsh.enable = true;
|
programs.zsh.enable = true;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -65,127 +65,6 @@
|
||||||
require("init")
|
require("init")
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
file.".hammerspoon/Spoons/PaperWM.spoon" = {
|
|
||||||
source = pkgs.fetchFromGitHub {
|
|
||||||
owner = "mogenson";
|
|
||||||
repo = "PaperWM.spoon";
|
|
||||||
rev = "5bc47411eaf4dbbfb950d23d1ec7daf3a0427470";
|
|
||||||
hash = "sha256-YBwa8tmo8hTpuZLFJ8JjAzkNF9+4xGSBuE3ziuHVg74=";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
file.".hammerspoon/Spoons/ActiveSpace.spoon" = {
|
|
||||||
source = pkgs.fetchFromGitHub {
|
|
||||||
owner = "mogenson";
|
|
||||||
repo = "ActiveSpace.spoon";
|
|
||||||
rev = "a246cb5a38d0e930a526b44fbd6b6c6d4a36a9d9";
|
|
||||||
hash = "sha256-yFhWsb9J56qtcTx56WRhej5oY3zLUkUZjjTd8iMIhFg=";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
file.".hammerspoon/Spoons/WarpMouse.spoon" = {
|
|
||||||
source = pkgs.fetchFromGitHub {
|
|
||||||
owner = "mogenson";
|
|
||||||
repo = "WarpMouse.spoon";
|
|
||||||
rev = "c3b76e02704a15d22e7e6971fe76781db642d0bd";
|
|
||||||
hash = "sha256-6hDU7lM59PoMo5ykeTdvomIqEkKkmh1Xam2GIBVgSVY=";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
file.".hammerspoon/init.lua" = {
|
|
||||||
text = ''
|
|
||||||
|
|
||||||
ActiveSpace = hs.loadSpoon("ActiveSpace")
|
|
||||||
ActiveSpace.compact = true
|
|
||||||
ActiveSpace:start()
|
|
||||||
|
|
||||||
WarpMouse = hs.loadSpoon("WarpMouse")
|
|
||||||
-- WarpMouse.margin = 8 -- optionally set how far past a screen edge the mouse should warp, default is 2 pixels
|
|
||||||
WarpMouse:start()
|
|
||||||
|
|
||||||
PaperWM = hs.loadSpoon("PaperWM")
|
|
||||||
PaperWM:bindHotkeys({
|
|
||||||
-- switch to a new focused window in tiled grid
|
|
||||||
focus_left = {{"alt", "cmd"}, "left"},
|
|
||||||
focus_right = {{"alt", "cmd"}, "right"},
|
|
||||||
focus_up = {{"alt", "cmd"}, "up"},
|
|
||||||
focus_down = {{"alt", "cmd"}, "down"},
|
|
||||||
|
|
||||||
-- switch windows by cycling forward/backward
|
|
||||||
-- (forward = down or right, backward = up or left)
|
|
||||||
focus_prev = {{"alt", "cmd"}, "k"},
|
|
||||||
focus_next = {{"alt", "cmd"}, "j"},
|
|
||||||
|
|
||||||
-- move windows around in tiled grid
|
|
||||||
swap_left = {{"alt", "cmd", "shift"}, "left"},
|
|
||||||
swap_right = {{"alt", "cmd", "shift"}, "right"},
|
|
||||||
swap_up = {{"alt", "cmd", "shift"}, "up"},
|
|
||||||
swap_down = {{"alt", "cmd", "shift"}, "down"},
|
|
||||||
|
|
||||||
-- alternative: swap entire columns, rather than
|
|
||||||
-- individual windows (to be used instead of
|
|
||||||
-- swap_left / swap_right bindings)
|
|
||||||
-- swap_column_left = {{"alt", "cmd", "shift"}, "left"},
|
|
||||||
-- swap_column_right = {{"alt", "cmd", "shift"}, "right"},
|
|
||||||
|
|
||||||
-- position and resize focused window
|
|
||||||
center_window = {{"alt", "cmd"}, "c"},
|
|
||||||
full_width = {{"alt", "cmd"}, "f"},
|
|
||||||
cycle_width = {{"alt", "cmd"}, "r"},
|
|
||||||
reverse_cycle_width = {{"ctrl", "alt", "cmd"}, "r"},
|
|
||||||
cycle_height = {{"alt", "cmd", "shift"}, "r"},
|
|
||||||
reverse_cycle_height = {{"ctrl", "alt", "cmd", "shift"}, "r"},
|
|
||||||
|
|
||||||
-- increase/decrease width
|
|
||||||
increase_width = {{"alt", "cmd"}, "l"},
|
|
||||||
decrease_width = {{"alt", "cmd"}, "h"},
|
|
||||||
|
|
||||||
-- move focused window into / out of a column
|
|
||||||
slurp_in = {{"alt", "cmd"}, "i"},
|
|
||||||
barf_out = {{"alt", "cmd"}, "o"},
|
|
||||||
|
|
||||||
-- move the focused window into / out of the tiling layer
|
|
||||||
toggle_floating = {{"alt", "cmd", "shift"}, "escape"},
|
|
||||||
|
|
||||||
-- focus the first / second / etc window in the current space
|
|
||||||
focus_window_1 = {{"cmd", "shift"}, "1"},
|
|
||||||
focus_window_2 = {{"cmd", "shift"}, "2"},
|
|
||||||
focus_window_3 = {{"cmd", "shift"}, "3"},
|
|
||||||
focus_window_4 = {{"cmd", "shift"}, "4"},
|
|
||||||
focus_window_5 = {{"cmd", "shift"}, "5"},
|
|
||||||
focus_window_6 = {{"cmd", "shift"}, "6"},
|
|
||||||
focus_window_7 = {{"cmd", "shift"}, "7"},
|
|
||||||
focus_window_8 = {{"cmd", "shift"}, "8"},
|
|
||||||
focus_window_9 = {{"cmd", "shift"}, "9"},
|
|
||||||
|
|
||||||
-- switch to a new Mission Control space
|
|
||||||
switch_space_l = {{"alt", "cmd"}, ","},
|
|
||||||
switch_space_r = {{"alt", "cmd"}, "."},
|
|
||||||
switch_space_1 = {{"alt", "cmd"}, "1"},
|
|
||||||
switch_space_2 = {{"alt", "cmd"}, "2"},
|
|
||||||
switch_space_3 = {{"alt", "cmd"}, "3"},
|
|
||||||
switch_space_4 = {{"alt", "cmd"}, "4"},
|
|
||||||
switch_space_5 = {{"alt", "cmd"}, "5"},
|
|
||||||
switch_space_6 = {{"alt", "cmd"}, "6"},
|
|
||||||
switch_space_7 = {{"alt", "cmd"}, "7"},
|
|
||||||
switch_space_8 = {{"alt", "cmd"}, "8"},
|
|
||||||
switch_space_9 = {{"alt", "cmd"}, "9"},
|
|
||||||
|
|
||||||
-- move focused window to a new space and tile
|
|
||||||
move_window_1 = {{"alt", "cmd", "shift"}, "1"},
|
|
||||||
move_window_2 = {{"alt", "cmd", "shift"}, "2"},
|
|
||||||
move_window_3 = {{"alt", "cmd", "shift"}, "3"},
|
|
||||||
move_window_4 = {{"alt", "cmd", "shift"}, "4"},
|
|
||||||
move_window_5 = {{"alt", "cmd", "shift"}, "5"},
|
|
||||||
move_window_6 = {{"alt", "cmd", "shift"}, "6"},
|
|
||||||
move_window_7 = {{"alt", "cmd", "shift"}, "7"},
|
|
||||||
move_window_8 = {{"alt", "cmd", "shift"}, "8"},
|
|
||||||
move_window_9 = {{"alt", "cmd", "shift"}, "9"}
|
|
||||||
})
|
|
||||||
PaperWM:start()
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
|
|
||||||
169
dot_config/flake/modules/darwin/aerospace/default.nix
Normal file
169
dot_config/flake/modules/darwin/aerospace/default.nix
Normal file
|
|
@ -0,0 +1,169 @@
|
||||||
|
{...}: {
|
||||||
|
services.aerospace = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
# You can use it to add commands that run after login to macOS user session.
|
||||||
|
# 'start-at-login' needs to be 'true' for 'after-login-command' to work
|
||||||
|
# Available commands: https://nikitabobko.github.io/AeroSpace/commands
|
||||||
|
after-login-command = [];
|
||||||
|
|
||||||
|
# You can use it to add commands that run after AeroSpace startup.
|
||||||
|
# 'after-startup-command' is run after 'after-login-command'
|
||||||
|
# Available commands : https://nikitabobko.github.io/AeroSpace/commands
|
||||||
|
after-startup-command = [];
|
||||||
|
|
||||||
|
# Start AeroSpace at login
|
||||||
|
# start-at-login = true
|
||||||
|
|
||||||
|
# Normalizations. See: https://nikitabobko.github.io/AeroSpace/guide#normalization
|
||||||
|
enable-normalization-flatten-containers = true;
|
||||||
|
enable-normalization-opposite-orientation-for-nested-containers = true;
|
||||||
|
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/guide#layouts
|
||||||
|
# The 'accordion-padding' specifies the size of accordion padding
|
||||||
|
# You can set 0 to disable the padding feature
|
||||||
|
accordion-padding = 30;
|
||||||
|
|
||||||
|
# Possible values: tiles|accordion
|
||||||
|
default-root-container-layout = "tiles";
|
||||||
|
|
||||||
|
# Possible values: horizontal|vertical|auto
|
||||||
|
# 'auto' means: wide monitor (anything wider than high) gets horizontal orientation,
|
||||||
|
# tall monitor (anything higher than wide) gets vertical orientation
|
||||||
|
default-root-container-orientation = "auto";
|
||||||
|
|
||||||
|
# Mouse follows focus when focused monitor changes
|
||||||
|
# Drop it from your config, if you don't like this behavior
|
||||||
|
# See https://nikitabobko.github.io/AeroSpace/guide#on-focus-changed-callbacks
|
||||||
|
# See https://nikitabobko.github.io/AeroSpace/commands#move-mouse
|
||||||
|
# Fallback value (if you omit the key): on-focused-monitor-changed = []
|
||||||
|
on-focused-monitor-changed = ["move-mouse monitor-lazy-center"];
|
||||||
|
|
||||||
|
# You can effectively turn off macOS "Hide application" (cmd-h) feature by toggling this flag
|
||||||
|
# Useful if you don't use this macOS feature, but accidentally hit cmd-h or cmd-alt-h key
|
||||||
|
# Also see: https://nikitabobko.github.io/AeroSpace/goodies#disable-hide-app
|
||||||
|
automatically-unhide-macos-hidden-apps = false;
|
||||||
|
|
||||||
|
# Possible values: (qwerty|dvorak)
|
||||||
|
# See https://nikitabobko.github.io/AeroSpace/guide#key-mapping
|
||||||
|
key-mapping.preset = "qwerty";
|
||||||
|
|
||||||
|
# Gaps between windows (inner-*) and between monitor edges (outer-*).
|
||||||
|
# Possible values:
|
||||||
|
# - Constant: gaps.outer.top = 8
|
||||||
|
# - Per monitor: gaps.outer.top = [{ monitor.main = 16 }, { monitor."some-pattern" = 32 }, 24]
|
||||||
|
# In this example, 24 is a default value when there is no match.
|
||||||
|
# Monitor pattern is the same as for 'workspace-to-monitor-force-assignment'.
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/guide#assign-workspaces-to-monitors
|
||||||
|
gaps = {
|
||||||
|
inner.horizontal = 4;
|
||||||
|
inner.vertical = 4;
|
||||||
|
outer.left = 0;
|
||||||
|
outer.bottom = 0;
|
||||||
|
outer.top = 0;
|
||||||
|
outer.right = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
# 'main' binding mode declaration
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
|
||||||
|
# 'main' binding mode must be always presented
|
||||||
|
# Fallback value (if you omit the key): mode.main.binding = {}
|
||||||
|
# [mode.main.binding]
|
||||||
|
mode.main.binding = {
|
||||||
|
# All possible commands: https://nikitabobko.github.io/AeroSpace/commands
|
||||||
|
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/commands#exec-and-forget
|
||||||
|
# You can uncomment the following lines to open up terminal with alt + enter shortcut (like in i3)
|
||||||
|
# alt-enter = '''exec-and-forget osascript -e '
|
||||||
|
# tell application "Terminal"
|
||||||
|
# do script
|
||||||
|
# activate
|
||||||
|
# end tell'
|
||||||
|
# '''
|
||||||
|
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/commands#layout
|
||||||
|
alt-slash = "layout tiles horizontal vertical";
|
||||||
|
alt-comma = "layout accordion horizontal vertical";
|
||||||
|
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/commands#focus
|
||||||
|
alt-shift-left = "focus left";
|
||||||
|
alt-shift-down = "focus down";
|
||||||
|
alt-shift-up = "focus up";
|
||||||
|
alt-shift-right = "focus right";
|
||||||
|
|
||||||
|
ctrl-alt-shift-left = "focus-monitor left --wrap-around";
|
||||||
|
ctrl-alt-shift-right = "focus-monitor right --wrap-around";
|
||||||
|
ctrl-alt-shift-up = "focus-monitor up --wrap-around";
|
||||||
|
ctrl-alt-shift-down = "focus-monitor down --wrap-around";
|
||||||
|
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/commands#move
|
||||||
|
alt-shift-h = "move left";
|
||||||
|
alt-shift-j = "move down";
|
||||||
|
alt-shift-k = "move up";
|
||||||
|
alt-shift-l = "move right";
|
||||||
|
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/commands#resize
|
||||||
|
alt-shift-minus = "resize smart -50";
|
||||||
|
alt-shift-equal = "resize smart +50";
|
||||||
|
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/commands#workspace
|
||||||
|
alt-1 = "workspace 1";
|
||||||
|
alt-2 = "workspace 2";
|
||||||
|
alt-3 = "workspace 3";
|
||||||
|
alt-4 = "workspace 4";
|
||||||
|
alt-5 = "workspace 5";
|
||||||
|
alt-6 = "workspace 6";
|
||||||
|
alt-7 = "workspace 7";
|
||||||
|
alt-8 = "workspace 8";
|
||||||
|
alt-9 = "workspace 9";
|
||||||
|
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace
|
||||||
|
alt-shift-1 = "move-node-to-workspace 1";
|
||||||
|
alt-shift-2 = "move-node-to-workspace 2";
|
||||||
|
alt-shift-3 = "move-node-to-workspace 3";
|
||||||
|
alt-shift-4 = "move-node-to-workspace 4";
|
||||||
|
alt-shift-5 = "move-node-to-workspace 5";
|
||||||
|
alt-shift-6 = "move-node-to-workspace 6";
|
||||||
|
alt-shift-7 = "move-node-to-workspace 7";
|
||||||
|
alt-shift-8 = "move-node-to-workspace 8";
|
||||||
|
alt-shift-9 = "move-node-to-workspace 9";
|
||||||
|
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/commands#workspace-back-and-forth
|
||||||
|
alt-tab = "workspace-back-and-forth";
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/commands#move-workspace-to-monitor
|
||||||
|
alt-shift-tab = "move-workspace-to-monitor --wrap-around next";
|
||||||
|
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/commands#mode
|
||||||
|
alt-shift-semicolon = "mode service";
|
||||||
|
};
|
||||||
|
|
||||||
|
mode.service.binding = {
|
||||||
|
# "service" binding mode declaration.
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
|
||||||
|
esc = ["reload-config" "mode main"];
|
||||||
|
r = ["flatten-workspace-tree" "mode main"]; # reset layout
|
||||||
|
f = ["layout floating tiling" "mode main"]; # Toggle between floating and tiling layout
|
||||||
|
backspace = ["close-all-windows-but-current" "mode main"];
|
||||||
|
|
||||||
|
# sticky is not yet supported https://github.com/nikitabobko/AeroSpace/issues/2
|
||||||
|
#s = ["layout sticky tiling", "mode main"]
|
||||||
|
|
||||||
|
alt-shift-h = ["join-with left" "mode main"];
|
||||||
|
alt-shift-j = ["join-with down" "mode main"];
|
||||||
|
alt-shift-k = ["join-with up" "mode main"];
|
||||||
|
alt-shift-l = ["join-with right" "mode main"];
|
||||||
|
|
||||||
|
# down = "volume down";
|
||||||
|
# up = "volume up";
|
||||||
|
# shift-down = ["volume set 0" "mode main"];
|
||||||
|
};
|
||||||
|
|
||||||
|
workspace-to-monitor-force-assignment = {
|
||||||
|
"1" = "built-in";
|
||||||
|
"2" = ["^DELL U2723QE \\(1\\)$" "BenQ EX2710 \\(2\\)$"];
|
||||||
|
"3" = ["^DELL U2723QE \\(2\\)$" "BenQ EX2710 \\(1\\)$"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue