This commit is contained in:
2026-07-14 18:27:28 +08:00
parent 2cf17b5d34
commit ee79042aa1
13 changed files with 386 additions and 412 deletions
Generated
+17 -56
View File
@@ -625,58 +625,36 @@
"url": "https://git.imxyy.top/imxyy1soope1/flake-templates" "url": "https://git.imxyy.top/imxyy1soope1/flake-templates"
} }
}, },
"niri": { "niri-nix": {
"inputs": { "inputs": {
"niri-stable": "niri-stable",
"niri-unstable": "niri-unstable", "niri-unstable": "niri-unstable",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"nixpkgs-stable": [
"nixpkgs-stable"
],
"xwayland-satellite-stable": "xwayland-satellite-stable",
"xwayland-satellite-unstable": "xwayland-satellite-unstable" "xwayland-satellite-unstable": "xwayland-satellite-unstable"
}, },
"locked": { "locked": {
"lastModified": 1783510829, "lastModified": 1783966637,
"narHash": "sha256-VtZC3AiKp3w6oCTRlEaraI9Fi2T8CmdDuhzGf3lNG9M=", "narHash": "sha256-hOP+6qnU9fUNj81Pf//PZ31rT5DPilMKitijMtBi12c=",
"owner": "sodiboo", "ref": "refs/heads/main",
"repo": "niri-flake", "rev": "889b49712d22394e0d21402d0d4d502d40c309b0",
"rev": "ba8fc95733e53354e82dd1a821d8391dcd56e4bc", "revCount": 141,
"type": "github" "type": "git",
"url": "https://codeberg.org/bananad3v/niri-nix"
}, },
"original": { "original": {
"owner": "sodiboo", "type": "git",
"repo": "niri-flake", "url": "https://codeberg.org/bananad3v/niri-nix"
"type": "github"
}
},
"niri-stable": {
"flake": false,
"locked": {
"lastModified": 1756556321,
"narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294",
"type": "github"
},
"original": {
"owner": "YaLTeR",
"ref": "v25.08",
"repo": "niri",
"type": "github"
} }
}, },
"niri-unstable": { "niri-unstable": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1783506058, "lastModified": 1783522755,
"narHash": "sha256-LyuNO/1BM7GphVyt4C4Qj2OkdHZvM/9Hxs7mQ5ExjYc=", "narHash": "sha256-dI0HkX1djETia7cD/Y64h8BNIsSOfTRMzfNum2J6UhE=",
"owner": "YaLTeR", "owner": "YaLTeR",
"repo": "niri", "repo": "niri",
"rev": "ef5b7379dc444d33b01a7faec2bd6592d3188357", "rev": "0777769e719b7c9b7c980d4ea66288bfbb4da5b3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -989,7 +967,7 @@
"infuse": "infuse", "infuse": "infuse",
"llm-agents": "llm-agents", "llm-agents": "llm-agents",
"my-templates": "my-templates", "my-templates": "my-templates",
"niri": "niri", "niri-nix": "niri-nix",
"nixos-wsl": "nixos-wsl", "nixos-wsl": "nixos-wsl",
"nixpkgs": [ "nixpkgs": [
"nixpkgs-unstable" "nixpkgs-unstable"
@@ -1244,31 +1222,14 @@
"type": "github" "type": "github"
} }
}, },
"xwayland-satellite-stable": {
"flake": false,
"locked": {
"lastModified": 1755491097,
"narHash": "sha256-m+9tUfsmBeF2Gn4HWa6vSITZ4Gz1eA1F5Kh62B0N4oE=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "388d291e82ffbc73be18169d39470f340707edaa",
"type": "github"
},
"original": {
"owner": "Supreeeme",
"ref": "v0.7",
"repo": "xwayland-satellite",
"type": "github"
}
},
"xwayland-satellite-unstable": { "xwayland-satellite-unstable": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1781226823, "lastModified": 1783895132,
"narHash": "sha256-28696iIw8uE0ZUyFTtzhEM8xMh85clCYypMxkvUi+sc=", "narHash": "sha256-Dl0Gvrig3EpE962hzF3ETPhUztlfuRhcmlpd8ioHN54=",
"owner": "Supreeeme", "owner": "Supreeeme",
"repo": "xwayland-satellite", "repo": "xwayland-satellite",
"rev": "8575d0ef55d70f9b4c46b6bffb3accf912217e1e", "rev": "a2b5c635d8c8c99b286967658d0d177044887eb8",
"type": "github" "type": "github"
}, },
"original": { "original": {
+2 -3
View File
@@ -96,10 +96,9 @@
inputs.systems.follows = "systems"; inputs.systems.follows = "systems";
inputs.treefmt-nix.follows = "treefmt"; inputs.treefmt-nix.follows = "treefmt";
}; };
niri = { niri-nix = {
url = "github:sodiboo/niri-flake"; url = "git+https://codeberg.org/bananad3v/niri-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs-stable.follows = "nixpkgs-stable";
}; };
noctalia = { noctalia = {
url = "github:noctalia-dev/noctalia-shell/v4.7.5"; url = "github:noctalia-dev/noctalia-shell/v4.7.5";
+2 -1
View File
@@ -16,6 +16,7 @@ let
home-manager = { home-manager = {
sharedModules = [ sharedModules = [
# keep-sorted start # keep-sorted start
inputs.niri-nix.homeModules.default
inputs.noctalia.homeModules.default inputs.noctalia.homeModules.default
inputs.sops-nix.homeManagerModules.sops inputs.sops-nix.homeManagerModules.sops
inputs.stylix.homeModules.stylix inputs.stylix.homeModules.stylix
@@ -128,7 +129,7 @@ in
inputs.angrr.nixosModules.angrr inputs.angrr.nixosModules.angrr
inputs.home-manager.nixosModules.default inputs.home-manager.nixosModules.default
inputs.impermanence.nixosModules.impermanence inputs.impermanence.nixosModules.impermanence
inputs.niri.nixosModules.niri inputs.niri-nix.nixosModules.default
inputs.sops-nix.nixosModules.sops inputs.sops-nix.nixosModules.sops
# keep-sorted end # keep-sorted end
+1 -1
View File
@@ -10,7 +10,7 @@
pkgsParams = { pkgsParams = {
overlays = builtins.attrValues config.flake.overlays ++ [ overlays = builtins.attrValues config.flake.overlays ++ [
inputs.go-musicfox.overlays.default inputs.go-musicfox.overlays.default
inputs.niri.overlays.niri inputs.niri-nix.overlays.niri-nix
inputs.fenix.overlays.default inputs.fenix.overlays.default
inputs.angrr.overlays.default inputs.angrr.overlays.default
(final: prev: { (final: prev: {
+7 -11
View File
@@ -34,19 +34,15 @@
set -gp PATH $HOME/bin set -gp PATH $HOME/bin
''; '';
programs.niri.settings = { wayland.windowManager.niri.settings = {
environment.STEAM_FORCE_DESKTOPUI_SCALING = "1.25"; environment.STEAM_FORCE_DESKTOPUI_SCALING = "1.25";
outputs = { output = [
eDP-1 = { {
enable = true; _args = [ "eDP-1" ];
mode = { mode = "1920x1200@60.002";
width = 1920;
height = 1200;
refresh = 60.002;
};
scale = 1.25; scale = 1.25;
}; }
}; ];
}; };
}; };
+12 -20
View File
@@ -48,32 +48,24 @@
''; '';
}; };
programs.niri.settings = { wayland.windowManager.niri.settings = {
environment.STEAM_FORCE_DESKTOPUI_SCALING = "1.25"; environment.STEAM_FORCE_DESKTOPUI_SCALING = "1.25";
outputs = { output = [
DP-1 = { {
enable = true; _args = [ "DP-1" ];
mode = { mode = "2560x1440@75.033";
width = 2560;
height = 1440;
refresh = 75.033;
};
scale = 1.25; scale = 1.25;
position = { position._props = {
x = 0; x = 0;
y = 0; y = 0;
}; };
}; }
DP-2 = { {
enable = true; _args = [ "DP-2" ];
mode = { mode = "2560x1440@75.033";
width = 2560;
height = 1440;
refresh = 75.033;
};
scale = 1.25; scale = 1.25;
}; }
}; ];
}; };
}; };
+75 -1
View File
@@ -1,9 +1,57 @@
include "generated-config.kdl" include "generated.kdl"
input {
focus-follows-mouse max-scroll-amount="0%"
workspace-auto-back-and-forth
}
layout { layout {
gaps 23
center-focused-column "on-overflow"
always-center-single-column
focus-ring {
off
}
border { border {
on on
width 4
inactive-color "#2e2e3eee"
active-gradient from="#6186d6ee" to="#cba6f7ee" angle=180 relative-to="workspace-view"
} }
insert-hint {
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
}
}
prefer-no-csd
hotkey-overlay {
skip-at-startup
}
clipboard {
disable-primary
} }
blur { blur {
@@ -13,6 +61,25 @@ blur {
saturation 1.5 saturation 1.5
} }
layer-rule {
match namespace="^wallpaper$"
place-within-backdrop true
}
overview {
workspace-shadow {
off
}
}
animations {
on
slowdown 1.5
workspace-switch {
spring damping-ratio=1.0 stiffness=1000 epsilon=0.0001
}
}
window-rule { window-rule {
draw-border-with-background false draw-border-with-background false
geometry-corner-radius 14.000000 14.000000 14.000000 14.000000 geometry-corner-radius 14.000000 14.000000 14.000000 14.000000
@@ -39,3 +106,10 @@ window-rule {
match app-id="org.gnome.Nautilus" match app-id="org.gnome.Nautilus"
opacity 0.6 opacity 0.6
} }
window-rule {
match app-id="org.jackhuang.hmcl.Launcher"
border {
off
}
}
+21 -286
View File
@@ -7,95 +7,25 @@
... ...
}: }:
let let
settings = config.my.hm.programs.niri.settings; niriCfg = config.my.hm.wayland.windowManager.niri;
in in
{ {
config = lib.mkIf config.my.desktop.wm.niri.enable { config = lib.mkIf config.my.desktop.wm.niri.enable {
my.hm = { my.hm = {
xdg.configFile.niri-config.target = lib.mkForce "niri/generated-config.kdl"; xdg.configFile."niri".source = impure.mkImpureLink ./config;
xdg.configFile."niri/config.kdl".source = impure.mkImpureLink ./config.kdl; xdg.configFile."niri-generated.kdl".text = niriCfg.finalConfig;
programs.niri.settings = {
input = {
focus-follows-mouse = {
enable = true;
max-scroll-amount = "0%";
};
workspace-auto-back-and-forth = true;
};
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";
};
};
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;
};
};
prefer-no-csd = true;
hotkey-overlay.skip-at-startup = true;
clipboard.disable-primary = true;
layer-rules = [
{
matches = [ { namespace = "^wallpaper$"; } ];
place-within-backdrop = true;
}
];
overview.workspace-shadow.enable = false;
wayland.windowManager.niri.settings = {
environment.NIXOS_OZONE_WL = "1"; environment.NIXOS_OZONE_WL = "1";
spawn-at-startup = lib.mkBefore ( spawn-at-startup = lib.mkBefore [
map (c: { command = c; }) [
( (
[ [
"dbus-update-activation-environment" "dbus-update-activation-environment"
"--systemd" "--systemd"
] ]
++ builtins.attrNames settings.environment ++ (builtins.attrNames niriCfg.settings.environment)
) )
[ [
"${lib.getExe pkgs.swaybg}" "${lib.getExe pkgs.swaybg}"
"-m" "-m"
@@ -119,222 +49,27 @@ in
"cliphist" "cliphist"
"store" "store"
] ]
[ [ "noctalia-shell" ]
"noctalia-shell" ];
]
]
);
binds = binds = lib.mkMerge [
let
noctalia =
cmd:
[
"noctalia-shell"
"ipc"
"call"
]
++ (lib.splitString " " cmd);
in
with config.my.hm.lib.niri.actions;
{ {
"Mod+Return".action.spawn = [ "Mod+G".spawn = [ config.my.desktop.browser.default.command ];
"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 ( (builtins.listToAttrs (
map (n: { map (n: {
"Mod+${toString n}".action.focus-workspace = n; name = "Mod+${toString n}";
"Mod+Shift+${toString n}".action.move-column-to-workspace = n; value.focus-workspace = n;
}) (lib.range 0 9) }) (lib.range 0 9)
); ))
(builtins.listToAttrs (
map (n: {
name = "Mod+Shift+${toString n}";
value.move-column-to-workspace = n;
}) (lib.range 0 9)
))
];
}; };
}; };
}; };
} }
+91
View File
@@ -0,0 +1,91 @@
binds {
Mod+Return { spawn "kitty" "-1"; }
Mod+E { spawn "nautilus"; }
Ctrl+Alt+Escape { spawn "missioncenter"; }
Mod+R { spawn "noctalia-shell" "ipc" "call" "launcher" "toggle"; }
Mod+V { spawn "noctalia-shell" "ipc" "call" "launcher" "clipboard"; }
Mod+W { spawn "noctalia-shell" "ipc" "call" "launcher" "windows"; }
XF86AudioRaiseVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_SINK@" "2%+"; }
XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_SINK@" "2%-"; }
XF86AudioMute allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "media" "playPause"; }
Super+XF86AudioRaiseVolume allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "media" "next"; }
Super+XF86AudioLowerVolume allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "media" "previous"; }
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "set" "+5%"; }
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "set" "5%-"; }
Alt+XF86AudioRaiseVolume allow-when-locked=true { spawn "brightnessctl" "set" "+5%"; }
Alt+XF86AudioLowerVolume allow-when-locked=true { spawn "brightnessctl" "set" "5%-"; }
Mod+Q { close-window; }
Mod+Shift+E { quit; }
Mod+Left { focus-column-left; }
Mod+Right { focus-column-right; }
Mod+Up { focus-window-up; }
Mod+Down { focus-window-down; }
Mod+Ctrl+Left { move-column-left; }
Mod+Ctrl+Right { move-column-right; }
Mod+Ctrl+Up { move-window-up; }
Mod+Ctrl+Down { move-window-down; }
Mod+Alt+Left { consume-or-expel-window-left; }
Mod+Alt+Right { consume-or-expel-window-right; }
Mod+Shift+Left { focus-monitor-left; }
Mod+Shift+Right { focus-monitor-right; }
Mod+Shift+Up { focus-monitor-up; }
Mod+Shift+Down { focus-monitor-down; }
Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
Mod+Page_Up { focus-workspace-up; }
Mod+Page_Down { focus-workspace-down; }
Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
Mod+Shift+Page_Up { move-workspace-up; }
Mod+Shift+Page_Down { move-workspace-down; }
Mod+L { switch-preset-column-width; }
Mod+Shift+L { reset-window-height; }
Mod+M { maximize-column; }
Mod+Shift+M { fullscreen-window; }
Mod+C { center-column; }
Mod+F { toggle-window-floating; }
Mod+H { expand-column-to-available-width; }
Mod+T { toggle-column-tabbed-display; }
Mod+Equal { set-column-width "+10%"; }
Mod+Minus { set-column-width "-10%"; }
Mod+Shift+Equal { set-window-height "+10%"; }
Mod+Shift+Minus { set-window-height "-10%"; }
Ctrl+Alt+A { screenshot show-pointer=false; }
Print { screenshot-screen show-pointer=false; }
Alt+Print { screenshot-window; }
Mod+O { toggle-overview; }
Super+Tab { toggle-overview; }
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
Mod+WheelScrollLeft cooldown-ms=150 { focus-column-left; }
Mod+WheelScrollRight cooldown-ms=150 { focus-column-right; }
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-workspace-up; }
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-workspace-down; }
Mod+Ctrl+WheelScrollLeft cooldown-ms=150 { move-column-left; }
Mod+Ctrl+WheelScrollRight cooldown-ms=150 { move-column-right; }
Mod+Shift+WheelScrollUp cooldown-ms=150 { focus-column-left; }
Mod+Shift+WheelScrollDown cooldown-ms=150 { focus-column-right; }
Mod+Ctrl+Shift+WheelScrollUp cooldown-ms=150 { move-column-left; }
Mod+Ctrl+Shift+WheelScrollDown cooldown-ms=150 { move-column-right; }
}
+78
View File
@@ -0,0 +1,78 @@
include "~/.config/niri-generated.kdl"
include "rules.kdl"
include "binds.kdl"
input {
focus-follows-mouse max-scroll-amount="0%"
workspace-auto-back-and-forth
}
layout {
gaps 23
center-focused-column "on-overflow"
always-center-single-column
focus-ring {
off
}
border {
on
width 4
inactive-color "#2e2e3eee"
active-gradient from="#6186d6ee" to="#cba6f7ee" angle=180 relative-to="workspace-view"
}
insert-hint {
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
}
}
prefer-no-csd
hotkey-overlay {
skip-at-startup
}
clipboard {
disable-primary
}
blur {
passes 3
offset 4
noise 0.02
saturation 1.5
}
overview {
workspace-shadow {
off
}
}
animations {
on
slowdown 1.5
workspace-switch {
spring damping-ratio=1.0 stiffness=1000 epsilon=0.0001
}
}
+38
View File
@@ -0,0 +1,38 @@
layer-rule {
match namespace="^wallpaper$"
place-within-backdrop true
}
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
}
window-rule {
match app-id="org.jackhuang.hmcl.Launcher"
border {
off
}
}
+13 -4
View File
@@ -15,10 +15,11 @@ in
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
niri-flake.cache.enable = false;
programs.niri = { programs.niri = {
enable = true; enable = true;
package = pkg; package = pkg;
# We manage xdg.portal ourselves below.
withXDG = false;
}; };
services.displayManager = { services.displayManager = {
ly = { ly = {
@@ -32,7 +33,6 @@ in
}; };
security.pam.services.login.enableGnomeKeyring = true; security.pam.services.login.enableGnomeKeyring = true;
services.gnome.gnome-keyring.enable = true;
my.persist.homeDirs = [ my.persist.homeDirs = [
{ {
directory = ".local/share/keyrings"; directory = ".local/share/keyrings";
@@ -57,8 +57,17 @@ in
xdg-desktop-portal-gnome xdg-desktop-portal-gnome
]; ];
}; };
systemd.user.services.niri-flake-polkit.serviceConfig.ExecStart = systemd.user.services.niri-polkit = {
lib.mkForce "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; description = "PolicyKit Authentication Agent";
wantedBy = [ "niri.service" ];
after = [ "graphical-session.target" ];
partOf = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
};
};
services.system76-scheduler.enable = true; services.system76-scheduler.enable = true;
+3 -3
View File
@@ -187,12 +187,12 @@ in
) )
) )
]; ];
my.hm.programs.niri.settings = { my.hm.wayland.windowManager.niri.settings = {
binds."Mod+Space".action.spawn = [ binds."Mod+Space".spawn = [
"fcitx5-remote" "fcitx5-remote"
"-t" "-t"
]; ];
spawn-at-startup = [ { command = [ "fcitx5" ]; } ]; spawn-at-startup = [ [ "fcitx5" ] ];
}; };
}; };
} }