Compare commits

...

3 Commits

Author SHA1 Message Date
imxyy1soope1 3a47cc56b7 use llm-agents.nix 2026-04-19 11:09:28 +08:00
imxyy1soope1 0cefd0799d niri: enable blur 2026-04-19 10:49:00 +08:00
imxyy1soope1 850f014a08 persist opencode 2026-04-19 10:26:07 +08:00
10 changed files with 556 additions and 353 deletions
Generated
+162 -4
View File
@@ -92,6 +92,66 @@
"type": "github"
}
},
"blueprint": {
"inputs": {
"nixpkgs": [
"llm-agents",
"nixpkgs"
],
"systems": [
"llm-agents",
"systems"
]
},
"locked": {
"lastModified": 1776249299,
"narHash": "sha256-Dt9t1TGRmJFc0xVYhttNBD6QsAgHOHCArqGa0AyjrJY=",
"owner": "numtide",
"repo": "blueprint",
"rev": "56131e8628f173d24a27f6d27c0215eff57e40dd",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "blueprint",
"type": "github"
}
},
"bun2nix": {
"inputs": {
"flake-parts": [
"llm-agents",
"flake-parts"
],
"import-tree": "import-tree",
"nixpkgs": [
"llm-agents",
"nixpkgs"
],
"systems": [
"llm-agents",
"systems"
],
"treefmt-nix": [
"llm-agents",
"treefmt-nix"
]
},
"locked": {
"lastModified": 1776182890,
"narHash": "sha256-+/VOe8XGq5klpU+I19D+3TcaR7o+Cwbq67KNF7mcFak=",
"owner": "Mic92",
"repo": "bun2nix",
"rev": "648d293c51e981aec9cb07ba4268bc19e7a8c575",
"type": "github"
},
"original": {
"owner": "Mic92",
"ref": "catalog-support",
"repo": "bun2nix",
"type": "github"
}
},
"cachix": {
"inputs": {
"devenv": [
@@ -352,6 +412,27 @@
}
},
"flake-parts_5": {
"inputs": {
"nixpkgs-lib": [
"llm-agents",
"nixpkgs"
]
},
"locked": {
"lastModified": 1775087534,
"narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_6": {
"inputs": {
"nixpkgs-lib": [
"stylix",
@@ -617,6 +698,21 @@
"type": "github"
}
},
"import-tree": {
"locked": {
"lastModified": 1763762820,
"narHash": "sha256-ZvYKbFib3AEwiNMLsejb/CWs/OL/srFQ8AogkebEPF0=",
"owner": "vic",
"repo": "import-tree",
"rev": "3c23749d8013ec6daa1d7255057590e9ca726646",
"type": "github"
},
"original": {
"owner": "vic",
"repo": "import-tree",
"type": "github"
}
},
"infuse": {
"flake": false,
"locked": {
@@ -649,6 +745,31 @@
"type": "github"
}
},
"llm-agents": {
"inputs": {
"blueprint": "blueprint",
"bun2nix": "bun2nix",
"flake-parts": "flake-parts_5",
"nixpkgs": [
"nixpkgs"
],
"systems": "systems_2",
"treefmt-nix": "treefmt-nix_2"
},
"locked": {
"lastModified": 1776523700,
"narHash": "sha256-68F6nNwHcuweEv5XWefCGvBujN4n+oCbuq1ZG+S7pCk=",
"owner": "numtide",
"repo": "llm-agents.nix",
"rev": "e69fff4e65dbdf4a87ee4bdeaa4ea0fe156ae8f5",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "llm-agents.nix",
"type": "github"
}
},
"mission-control": {
"locked": {
"lastModified": 1733438716,
@@ -1035,7 +1156,7 @@
"noctalia",
"nixpkgs"
],
"systems": "systems_2",
"systems": "systems_3",
"treefmt-nix": []
},
"locked": {
@@ -1106,6 +1227,7 @@
"home-manager": "home-manager",
"impermanence": "impermanence",
"infuse": "infuse",
"llm-agents": "llm-agents",
"my-templates": "my-templates",
"niri": "niri",
"nixos-wsl": "nixos-wsl",
@@ -1169,13 +1291,13 @@
"base16-helix": "base16-helix",
"base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts_5",
"flake-parts": "flake-parts_6",
"gnome-shell": "gnome-shell",
"nixpkgs": [
"nixpkgs"
],
"nur": "nur",
"systems": "systems_3",
"systems": "systems_4",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux",
@@ -1231,6 +1353,21 @@
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
@@ -1245,7 +1382,7 @@
"type": "github"
}
},
"systems_3": {
"systems_4": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@@ -1365,6 +1502,27 @@
"type": "github"
}
},
"treefmt-nix_2": {
"inputs": {
"nixpkgs": [
"llm-agents",
"nixpkgs"
]
},
"locked": {
"lastModified": 1775636079,
"narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"xwayland-satellite-stable": {
"flake": false,
"locked": {
+4
View File
@@ -79,6 +79,10 @@
url = "github:imxyy1soope1/go-musicfox";
inputs.nixpkgs.follows = "nixpkgs";
};
llm-agents = {
url = "github:numtide/llm-agents.nix";
inputs.nixpkgs.follows = "nixpkgs";
};
niri.url = "github:sodiboo/niri-flake";
noctalia = {
url = "github:noctalia-dev/noctalia-shell/v4.7.5";
+1
View File
@@ -19,6 +19,7 @@
noctalia-shell = inputs.noctalia.packages.${final.stdenv.hostPlatform.system}.default;
})
inputs.llm-agents.overlays.shared-nixpkgs
];
config.allowUnfree = true;
flake.setNixPath = false;
-4
View File
@@ -19,10 +19,6 @@
".cache"
".ollama"
".claude"
];
homeFiles = [
".claude.json"
];
};
};
-7
View File
@@ -131,13 +131,6 @@
".config/dconf"
".config/pip"
".config/sunshine"
".gemini"
".claude"
".claude-code-router"
];
homeFiles = [
".claude.json"
];
};
};
-7
View File
@@ -161,13 +161,6 @@
".config/dconf"
".config/pip"
".config/sunshine"
".gemini"
".claude"
".claude-code-router"
];
homeFiles = [
".claude.json"
];
};
};
+34
View File
@@ -0,0 +1,34 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.my.coding.agents;
in
{
options.my.coding.agents = {
enable = lib.mkEnableOption "LLM coding agents";
};
config = lib.mkIf cfg.enable {
my.hm = {
home.packages = with pkgs.llm-agents; [
claude-code
opencode
];
};
my.persist = {
homeDirs = [
".claude"
".config/opencode"
".local/share/opencode"
];
homeFiles = [
".claude.json"
];
};
};
}
+1
View File
@@ -11,6 +11,7 @@ in
my.coding = {
editor.all.enable = true;
langs.all.enable = true;
agents.enable = true;
misc.enable = true;
};
};
+41
View File
@@ -0,0 +1,41 @@
include "generated-config.kdl"
layout {
border {
on
}
}
blur {
passes 3
offset 4
noise 0.02
saturation 1.5
}
window-rule {
draw-border-with-background false
geometry-corner-radius 14.000000 14.000000 14.000000 14.000000
clip-to-geometry true
background-effect {
xray true
blur true
}
}
window-rule {
match is-floating=true
background-effect {
xray false
}
}
window-rule {
match app-id="kitty|foot|Alacritty|ghostty"
opacity 0.8
}
window-rule {
match app-id="org.gnome.Nautilus"
opacity 0.6
}
+313 -331
View File
@@ -3,6 +3,7 @@
lib,
pkgs,
assets,
impure,
...
}:
let
@@ -10,353 +11,334 @@ let
in
{
config = lib.mkIf config.my.desktop.wm.niri.enable {
my.hm.programs.niri.settings = {
input = {
focus-follows-mouse = {
enable = true;
max-scroll-amount = "0%";
};
workspace-auto-back-and-forth = true;
};
my.hm = {
xdg.configFile.niri-config.target = lib.mkForce "niri/generated-config.kdl";
xdg.configFile."niri/config.kdl".source = impure.mkImpureLink ./config.kdl;
layout = {
gaps = 23;
center-focused-column = "on-overflow";
always-center-single-column = true;
focus-ring.enable = false;
border = {
enable = true;
width = 4;
inactive.color = "#2e2e3eee";
active.gradient = {
from = "#6186d6ee";
to = "#cba6f7ee";
angle = 180;
relative-to = "workspace-view";
programs.niri.settings = {
input = {
focus-follows-mouse = {
enable = true;
max-scroll-amount = "0%";
};
workspace-auto-back-and-forth = true;
};
insert-hint = {
enable = true;
display.color = "rgba(42, 44, 54, 0.5)";
};
preset-column-widths = [
{ proportion = 0.33333; }
{ proportion = 0.4; }
{ proportion = 0.5; }
{ proportion = 0.6; }
{ proportion = 0.66667; }
{ proportion = 0.8; }
];
default-column-width.proportion = 0.8;
background-color = "transparent";
tab-indicator = {
width = 10;
place-within-column = true;
};
};
animations = {
enable = true;
slowdown = 1.5;
workspace-switch.kind.spring = {
damping-ratio = 1.0;
stiffness = 1000;
epsilon = 0.0001;
};
};
layout = {
gaps = 23;
center-focused-column = "on-overflow";
always-center-single-column = true;
focus-ring.enable = false;
border = {
enable = true;
width = 4;
prefer-no-csd = true;
hotkey-overlay.skip-at-startup = true;
clipboard.disable-primary = true;
layer-rules = [
{
matches = [ { namespace = "^wallpaper$"; } ];
place-within-backdrop = true;
}
{
matches = [ { namespace = "^waybar$"; } ];
opacity = 0.99;
}
];
overview.workspace-shadow.enable = false;
window-rules = [
{
geometry-corner-radius = {
bottom-left = 14.;
bottom-right = 14.;
top-left = 14.;
top-right = 14.;
inactive.color = "#2e2e3eee";
active.gradient = {
from = "#6186d6ee";
to = "#cba6f7ee";
angle = 180;
relative-to = "workspace-view";
};
};
clip-to-geometry = true;
draw-border-with-background = false;
}
{
matches = [ { app-id = "kitty|foot|Alacritty|ghostty|wofi"; } ];
opacity = 0.8;
}
{
matches = [ { app-id = "org.gnome.Nautilus"; } ];
opacity = 0.6;
}
];
environment.NIXOS_OZONE_WL = "1";
spawn-at-startup = lib.mkBefore (
map (c: { command = c; }) [
(
[
"dbus-update-activation-environment"
"--systemd"
]
++ builtins.attrNames settings.environment
)
[
"${lib.getExe pkgs.swaybg}"
"-m"
"fill"
"-i"
(toString assets.wallpaper)
]
[
"wl-paste"
"--type"
"text"
"--watch"
"cliphist"
"store"
]
[
"wl-paste"
"--type"
"image"
"--watch"
"cliphist"
"store"
]
# TODO: Is there a better way?
[
"systemctl"
"restart"
"--user"
"noctalia-shell.service"
]
]
);
binds =
let
noctalia =
cmd:
[
"noctalia-shell"
"ipc"
"call"
]
++ (lib.splitString " " cmd);
in
with config.my.hm.lib.niri.actions;
{
"Mod+Return".action.spawn = [
"kitty"
"-1"
insert-hint = {
enable = true;
display.color = "rgba(42, 44, 54, 0.5)";
};
preset-column-widths = [
{ proportion = 0.33333; }
{ proportion = 0.4; }
{ proportion = 0.5; }
{ proportion = 0.6; }
{ proportion = 0.66667; }
{ proportion = 0.8; }
];
"Mod+G".action.spawn = [ config.my.desktop.browser.default.command ];
"Mod+E".action.spawn = [ "nautilus" ];
"Mod+R".action.spawn = noctalia "launcher toggle";
"Mod+V".action.spawn = noctalia "launcher clipboard";
"Mod+W".action.spawn = noctalia "launcher windows";
"Ctrl+Alt+Escape".action.spawn = [ "missioncenter" ];
default-column-width.proportion = 0.8;
background-color = "transparent";
tab-indicator = {
width = 10;
place-within-column = true;
};
};
"XF86AudioRaiseVolume" = {
allow-when-locked = true;
action.spawn = [
"wpctl"
"set-volume"
"@DEFAULT_SINK@"
"2%+"
];
};
"XF86AudioLowerVolume" = {
allow-when-locked = true;
action.spawn = [
"wpctl"
"set-volume"
"@DEFAULT_SINK@"
"2%-"
];
};
"XF86AudioMute" = {
allow-when-locked = true;
action.spawn = noctalia "media playPause";
};
"Super+XF86AudioRaiseVolume" = {
allow-when-locked = true;
action.spawn = noctalia "media next";
};
"Super+XF86AudioLowerVolume" = {
allow-when-locked = true;
action.spawn = noctalia "media previous";
animations = {
enable = true;
slowdown = 1.5;
workspace-switch.kind.spring = {
damping-ratio = 1.0;
stiffness = 1000;
epsilon = 0.0001;
};
};
"XF86MonBrightnessUp" = {
allow-when-locked = true;
action.spawn = [
"brightnessctl"
"set"
"+5%"
];
};
"XF86MonBrightnessDown" = {
allow-when-locked = true;
action.spawn = [
"brightnessctl"
"set"
"5%-"
];
};
"Alt+XF86AudioRaiseVolume" = {
allow-when-locked = true;
action.spawn = [
"brightnessctl"
"set"
"+5%"
];
};
"Alt+XF86AudioLowerVolume" = {
allow-when-locked = true;
action.spawn = [
"brightnessctl"
"set"
"5%-"
];
};
prefer-no-csd = true;
hotkey-overlay.skip-at-startup = true;
"Mod+Q".action = close-window;
clipboard.disable-primary = true;
"Mod+Left".action = focus-column-left;
"Mod+Right".action = focus-column-right;
"Mod+Up".action = focus-window-up;
"Mod+Down".action = focus-window-down;
layer-rules = [
{
matches = [ { namespace = "^wallpaper$"; } ];
place-within-backdrop = true;
}
];
overview.workspace-shadow.enable = false;
"Mod+Ctrl+Left".action = move-column-left;
"Mod+Ctrl+Right".action = move-column-right;
"Mod+Ctrl+Up".action = move-window-up;
"Mod+Ctrl+Down".action = move-window-down;
environment.NIXOS_OZONE_WL = "1";
"Mod+Alt+Left".action = consume-or-expel-window-left;
"Mod+Alt+Right".action = consume-or-expel-window-right;
spawn-at-startup = lib.mkBefore (
map (c: { command = c; }) [
(
[
"dbus-update-activation-environment"
"--systemd"
]
++ builtins.attrNames settings.environment
)
"Mod+Shift+Left".action = focus-monitor-left;
"Mod+Shift+Right".action = focus-monitor-right;
"Mod+Shift+Up".action = focus-monitor-up;
"Mod+Shift+Down".action = focus-monitor-down;
"Mod+Shift+Ctrl+Left".action = move-column-to-monitor-left;
"Mod+Shift+Ctrl+Right".action = move-column-to-monitor-right;
"Mod+Shift+Ctrl+Up".action = move-column-to-monitor-up;
"Mod+Shift+Ctrl+Down".action = move-column-to-monitor-down;
"Mod+Page_Up".action = focus-workspace-up;
"Mod+Page_Down".action = focus-workspace-down;
"Mod+Ctrl+Page_Up".action = move-column-to-workspace-up;
"Mod+Ctrl+Page_Down".action = move-column-to-workspace-down;
"Mod+Shift+Page_Up".action = move-workspace-up;
"Mod+Shift+Page_Down".action = move-workspace-down;
"Mod+L".action = switch-preset-column-width;
"Mod+Shift+L".action = reset-window-height;
"Mod+M".action = maximize-column;
"Mod+Shift+M".action = fullscreen-window;
"Mod+C".action = center-column;
"Mod+F".action = toggle-window-floating;
"Mod+H".action = expand-column-to-available-width;
"Mod+T".action = toggle-column-tabbed-display;
"Mod+Minus".action.set-column-width = "-10%";
"Mod+Equal".action.set-column-width = "+10%";
"Mod+Shift+Minus".action.set-window-height = "-10%";
"Mod+Shift+Equal".action.set-window-height = "+10%";
"Ctrl+Alt+A".action.screenshot = {
show-pointer = false;
};
# "Ctrl+Alt+A".action = screenshot;
"Print".action.screenshot-screen = {
show-pointer = false;
};
"Alt+Print".action.screenshot-window = [ ];
# "Alt+Print".action = screenshot-window;
"Mod+Shift+E".action = quit;
"Mod+O".action = toggle-overview;
"Super+Tab".action = toggle-overview;
"Mod+WheelScrollDown" = {
cooldown-ms = 150;
action = focus-workspace-down;
};
"Mod+WheelScrollUp" = {
cooldown-ms = 150;
action = focus-workspace-up;
};
"Mod+Ctrl+WheelScrollDown" = {
cooldown-ms = 150;
action = move-workspace-down;
};
"Mod+Ctrl+WheelScrollUp" = {
cooldown-ms = 150;
action = move-workspace-up;
};
"Mod+WheelScrollRight" = {
cooldown-ms = 150;
action = focus-column-right;
};
"Mod+WheelScrollLeft" = {
cooldown-ms = 150;
action = focus-column-left;
};
"Mod+Ctrl+WheelScrollRight" = {
cooldown-ms = 150;
action = move-column-right;
};
"Mod+Ctrl+WheelScrollLeft" = {
cooldown-ms = 150;
action = move-column-left;
};
"Mod+Shift+WheelScrollDown" = {
cooldown-ms = 150;
action = focus-column-right;
};
"Mod+Shift+WheelScrollUp" = {
cooldown-ms = 150;
action = focus-column-left;
};
"Mod+Ctrl+Shift+WheelScrollDown" = {
cooldown-ms = 150;
action = move-column-right;
};
"Mod+Ctrl+Shift+WheelScrollUp" = {
cooldown-ms = 150;
action = move-column-left;
};
}
// lib.attrsets.mergeAttrsList (
map (n: {
"Mod+${toString n}".action.focus-workspace = n;
"Mod+Shift+${toString n}".action.move-column-to-workspace = n;
}) (lib.range 0 9)
[
"${lib.getExe pkgs.swaybg}"
"-m"
"fill"
"-i"
(toString assets.wallpaper)
]
[
"wl-paste"
"--type"
"text"
"--watch"
"cliphist"
"store"
]
[
"wl-paste"
"--type"
"image"
"--watch"
"cliphist"
"store"
]
# TODO: Is there a better way?
[
"systemctl"
"restart"
"--user"
"noctalia-shell.service"
]
]
);
binds =
let
noctalia =
cmd:
[
"noctalia-shell"
"ipc"
"call"
]
++ (lib.splitString " " cmd);
in
with config.my.hm.lib.niri.actions;
{
"Mod+Return".action.spawn = [
"kitty"
"-1"
];
"Mod+G".action.spawn = [ config.my.desktop.browser.default.command ];
"Mod+E".action.spawn = [ "nautilus" ];
"Mod+R".action.spawn = noctalia "launcher toggle";
"Mod+V".action.spawn = noctalia "launcher clipboard";
"Mod+W".action.spawn = noctalia "launcher windows";
"Ctrl+Alt+Escape".action.spawn = [ "missioncenter" ];
"XF86AudioRaiseVolume" = {
allow-when-locked = true;
action.spawn = [
"wpctl"
"set-volume"
"@DEFAULT_SINK@"
"2%+"
];
};
"XF86AudioLowerVolume" = {
allow-when-locked = true;
action.spawn = [
"wpctl"
"set-volume"
"@DEFAULT_SINK@"
"2%-"
];
};
"XF86AudioMute" = {
allow-when-locked = true;
action.spawn = noctalia "media playPause";
};
"Super+XF86AudioRaiseVolume" = {
allow-when-locked = true;
action.spawn = noctalia "media next";
};
"Super+XF86AudioLowerVolume" = {
allow-when-locked = true;
action.spawn = noctalia "media previous";
};
"XF86MonBrightnessUp" = {
allow-when-locked = true;
action.spawn = [
"brightnessctl"
"set"
"+5%"
];
};
"XF86MonBrightnessDown" = {
allow-when-locked = true;
action.spawn = [
"brightnessctl"
"set"
"5%-"
];
};
"Alt+XF86AudioRaiseVolume" = {
allow-when-locked = true;
action.spawn = [
"brightnessctl"
"set"
"+5%"
];
};
"Alt+XF86AudioLowerVolume" = {
allow-when-locked = true;
action.spawn = [
"brightnessctl"
"set"
"5%-"
];
};
"Mod+Q".action = close-window;
"Mod+Left".action = focus-column-left;
"Mod+Right".action = focus-column-right;
"Mod+Up".action = focus-window-up;
"Mod+Down".action = focus-window-down;
"Mod+Ctrl+Left".action = move-column-left;
"Mod+Ctrl+Right".action = move-column-right;
"Mod+Ctrl+Up".action = move-window-up;
"Mod+Ctrl+Down".action = move-window-down;
"Mod+Alt+Left".action = consume-or-expel-window-left;
"Mod+Alt+Right".action = consume-or-expel-window-right;
"Mod+Shift+Left".action = focus-monitor-left;
"Mod+Shift+Right".action = focus-monitor-right;
"Mod+Shift+Up".action = focus-monitor-up;
"Mod+Shift+Down".action = focus-monitor-down;
"Mod+Shift+Ctrl+Left".action = move-column-to-monitor-left;
"Mod+Shift+Ctrl+Right".action = move-column-to-monitor-right;
"Mod+Shift+Ctrl+Up".action = move-column-to-monitor-up;
"Mod+Shift+Ctrl+Down".action = move-column-to-monitor-down;
"Mod+Page_Up".action = focus-workspace-up;
"Mod+Page_Down".action = focus-workspace-down;
"Mod+Ctrl+Page_Up".action = move-column-to-workspace-up;
"Mod+Ctrl+Page_Down".action = move-column-to-workspace-down;
"Mod+Shift+Page_Up".action = move-workspace-up;
"Mod+Shift+Page_Down".action = move-workspace-down;
"Mod+L".action = switch-preset-column-width;
"Mod+Shift+L".action = reset-window-height;
"Mod+M".action = maximize-column;
"Mod+Shift+M".action = fullscreen-window;
"Mod+C".action = center-column;
"Mod+F".action = toggle-window-floating;
"Mod+H".action = expand-column-to-available-width;
"Mod+T".action = toggle-column-tabbed-display;
"Mod+Minus".action.set-column-width = "-10%";
"Mod+Equal".action.set-column-width = "+10%";
"Mod+Shift+Minus".action.set-window-height = "-10%";
"Mod+Shift+Equal".action.set-window-height = "+10%";
"Ctrl+Alt+A".action.screenshot = {
show-pointer = false;
};
# "Ctrl+Alt+A".action = screenshot;
"Print".action.screenshot-screen = {
show-pointer = false;
};
"Alt+Print".action.screenshot-window = [ ];
# "Alt+Print".action = screenshot-window;
"Mod+Shift+E".action = quit;
"Mod+O".action = toggle-overview;
"Super+Tab".action = toggle-overview;
"Mod+WheelScrollDown" = {
cooldown-ms = 150;
action = focus-workspace-down;
};
"Mod+WheelScrollUp" = {
cooldown-ms = 150;
action = focus-workspace-up;
};
"Mod+Ctrl+WheelScrollDown" = {
cooldown-ms = 150;
action = move-workspace-down;
};
"Mod+Ctrl+WheelScrollUp" = {
cooldown-ms = 150;
action = move-workspace-up;
};
"Mod+WheelScrollRight" = {
cooldown-ms = 150;
action = focus-column-right;
};
"Mod+WheelScrollLeft" = {
cooldown-ms = 150;
action = focus-column-left;
};
"Mod+Ctrl+WheelScrollRight" = {
cooldown-ms = 150;
action = move-column-right;
};
"Mod+Ctrl+WheelScrollLeft" = {
cooldown-ms = 150;
action = move-column-left;
};
"Mod+Shift+WheelScrollDown" = {
cooldown-ms = 150;
action = focus-column-right;
};
"Mod+Shift+WheelScrollUp" = {
cooldown-ms = 150;
action = focus-column-left;
};
"Mod+Ctrl+Shift+WheelScrollDown" = {
cooldown-ms = 150;
action = move-column-right;
};
"Mod+Ctrl+Shift+WheelScrollUp" = {
cooldown-ms = 150;
action = move-column-left;
};
}
// lib.attrsets.mergeAttrsList (
map (n: {
"Mod+${toString n}".action.focus-workspace = n;
"Mod+Shift+${toString n}".action.move-column-to-workspace = n;
}) (lib.range 0 9)
);
};
};
};
}