feat: add aerospace for hyprland-like tilting manager
This commit is contained in:
parent
aa28edd107
commit
9f12b970b9
2 changed files with 103 additions and 0 deletions
102
modules/home/rsydn/programs/aerospace.nix
Normal file
102
modules/home/rsydn/programs/aerospace.nix
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
{ pkgs, lib, ... }:
|
||||
let
|
||||
inherit (builtins) map toString listToAttrs;
|
||||
|
||||
workspaceNumbers = map toString (lib.range 1 9);
|
||||
|
||||
workspaceFocusBindings = listToAttrs (map (ws: {
|
||||
name = "alt-${ws}";
|
||||
value = "workspace ${ws}";
|
||||
}) workspaceNumbers);
|
||||
|
||||
workspaceSendBindings = listToAttrs (map (ws: {
|
||||
name = "alt-shift-${ws}";
|
||||
value = "move-node-to-workspace ${ws}";
|
||||
}) workspaceNumbers);
|
||||
in {
|
||||
programs.aerospace = {
|
||||
enable = true;
|
||||
package = pkgs.aerospace;
|
||||
|
||||
launchd = {
|
||||
enable = true;
|
||||
keepAlive = true;
|
||||
};
|
||||
|
||||
userSettings = {
|
||||
enable-normalization-flatten-containers = true;
|
||||
enable-normalization-opposite-orientation-for-nested-containers = true;
|
||||
default-root-container-layout = "tiles";
|
||||
default-root-container-orientation = "auto";
|
||||
key-mapping.preset = "qwerty";
|
||||
|
||||
gaps = {
|
||||
inner = {
|
||||
horizontal = 8;
|
||||
vertical = 8;
|
||||
};
|
||||
outer = {
|
||||
top = 12;
|
||||
bottom = 12;
|
||||
left = 12;
|
||||
right = 12;
|
||||
};
|
||||
};
|
||||
|
||||
on-focused-monitor-changed = [ "move-mouse monitor-lazy-center" ];
|
||||
on-focus-changed = [ "move-mouse window-lazy-center" ];
|
||||
|
||||
mode = {
|
||||
main.binding = {
|
||||
"alt-h" = "focus left";
|
||||
"alt-j" = "focus down";
|
||||
"alt-k" = "focus up";
|
||||
"alt-l" = "focus right";
|
||||
|
||||
"alt-shift-h" = "move left";
|
||||
"alt-shift-j" = "move down";
|
||||
"alt-shift-k" = "move up";
|
||||
"alt-shift-l" = "move right";
|
||||
|
||||
"alt-minus" = "resize smart -50";
|
||||
"alt-equal" = "resize smart +50";
|
||||
|
||||
"alt-b" = "balance-sizes";
|
||||
"alt-slash" = "layout tiles horizontal vertical";
|
||||
"alt-comma" = "layout accordion horizontal vertical";
|
||||
"alt-space" = "layout floating tiling";
|
||||
|
||||
"alt-enter" = ''exec-and-forget open -na "Ghostty"'';
|
||||
"alt-backspace" = "close";
|
||||
|
||||
"alt-tab" = "workspace-back-and-forth";
|
||||
"alt-shift-tab" = "move-workspace-to-monitor --wrap-around next";
|
||||
|
||||
"alt-r" = "mode resize";
|
||||
"alt-shift-semicolon" = "mode service";
|
||||
} // workspaceFocusBindings // workspaceSendBindings;
|
||||
|
||||
resize.binding = {
|
||||
h = "resize width -100";
|
||||
l = "resize width +100";
|
||||
j = "resize height -100";
|
||||
k = "resize height +100";
|
||||
r = "balance-sizes";
|
||||
enter = "mode main";
|
||||
esc = "mode main";
|
||||
};
|
||||
|
||||
service.binding = {
|
||||
esc = [ "reload-config" "mode main" ];
|
||||
r = [ "flatten-workspace-tree" "mode main" ];
|
||||
f = [ "layout floating tiling" "mode main" ];
|
||||
backspace = [ "close-all-windows-but-current" "mode main" ];
|
||||
h = [ "join-with left" "mode main" ];
|
||||
j = [ "join-with down" "mode main" ];
|
||||
k = [ "join-with up" "mode main" ];
|
||||
l = [ "join-with right" "mode main" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue