niri: migrate to niri-nix (https://codeberg.org/bananad3v/niri-nix)
This commit is contained in:
Generated
+17
-56
@@ -625,58 +625,36 @@
|
||||
"url": "https://git.imxyy.top/imxyy1soope1/flake-templates"
|
||||
}
|
||||
},
|
||||
"niri": {
|
||||
"niri-nix": {
|
||||
"inputs": {
|
||||
"niri-stable": "niri-stable",
|
||||
"niri-unstable": "niri-unstable",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": [
|
||||
"nixpkgs-stable"
|
||||
],
|
||||
"xwayland-satellite-stable": "xwayland-satellite-stable",
|
||||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1783510829,
|
||||
"narHash": "sha256-VtZC3AiKp3w6oCTRlEaraI9Fi2T8CmdDuhzGf3lNG9M=",
|
||||
"owner": "sodiboo",
|
||||
"repo": "niri-flake",
|
||||
"rev": "ba8fc95733e53354e82dd1a821d8391dcd56e4bc",
|
||||
"type": "github"
|
||||
"lastModified": 1783966637,
|
||||
"narHash": "sha256-hOP+6qnU9fUNj81Pf//PZ31rT5DPilMKitijMtBi12c=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "889b49712d22394e0d21402d0d4d502d40c309b0",
|
||||
"revCount": 141,
|
||||
"type": "git",
|
||||
"url": "https://codeberg.org/bananad3v/niri-nix"
|
||||
},
|
||||
"original": {
|
||||
"owner": "sodiboo",
|
||||
"repo": "niri-flake",
|
||||
"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"
|
||||
"type": "git",
|
||||
"url": "https://codeberg.org/bananad3v/niri-nix"
|
||||
}
|
||||
},
|
||||
"niri-unstable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1783506058,
|
||||
"narHash": "sha256-LyuNO/1BM7GphVyt4C4Qj2OkdHZvM/9Hxs7mQ5ExjYc=",
|
||||
"lastModified": 1783522755,
|
||||
"narHash": "sha256-dI0HkX1djETia7cD/Y64h8BNIsSOfTRMzfNum2J6UhE=",
|
||||
"owner": "YaLTeR",
|
||||
"repo": "niri",
|
||||
"rev": "ef5b7379dc444d33b01a7faec2bd6592d3188357",
|
||||
"rev": "0777769e719b7c9b7c980d4ea66288bfbb4da5b3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -989,7 +967,7 @@
|
||||
"infuse": "infuse",
|
||||
"llm-agents": "llm-agents",
|
||||
"my-templates": "my-templates",
|
||||
"niri": "niri",
|
||||
"niri-nix": "niri-nix",
|
||||
"nixos-wsl": "nixos-wsl",
|
||||
"nixpkgs": [
|
||||
"nixpkgs-unstable"
|
||||
@@ -1244,31 +1222,14 @@
|
||||
"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": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1781226823,
|
||||
"narHash": "sha256-28696iIw8uE0ZUyFTtzhEM8xMh85clCYypMxkvUi+sc=",
|
||||
"lastModified": 1783895132,
|
||||
"narHash": "sha256-Dl0Gvrig3EpE962hzF3ETPhUztlfuRhcmlpd8ioHN54=",
|
||||
"owner": "Supreeeme",
|
||||
"repo": "xwayland-satellite",
|
||||
"rev": "8575d0ef55d70f9b4c46b6bffb3accf912217e1e",
|
||||
"rev": "a2b5c635d8c8c99b286967658d0d177044887eb8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
@@ -96,10 +96,9 @@
|
||||
inputs.systems.follows = "systems";
|
||||
inputs.treefmt-nix.follows = "treefmt";
|
||||
};
|
||||
niri = {
|
||||
url = "github:sodiboo/niri-flake";
|
||||
niri-nix = {
|
||||
url = "git+https://codeberg.org/bananad3v/niri-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.nixpkgs-stable.follows = "nixpkgs-stable";
|
||||
};
|
||||
noctalia = {
|
||||
url = "github:noctalia-dev/noctalia-shell/v4.7.5";
|
||||
|
||||
+2
-1
@@ -16,6 +16,7 @@ let
|
||||
home-manager = {
|
||||
sharedModules = [
|
||||
# keep-sorted start
|
||||
inputs.niri-nix.homeModules.default
|
||||
inputs.noctalia.homeModules.default
|
||||
inputs.sops-nix.homeManagerModules.sops
|
||||
inputs.stylix.homeModules.stylix
|
||||
@@ -128,7 +129,7 @@ in
|
||||
inputs.angrr.nixosModules.angrr
|
||||
inputs.home-manager.nixosModules.default
|
||||
inputs.impermanence.nixosModules.impermanence
|
||||
inputs.niri.nixosModules.niri
|
||||
inputs.niri-nix.nixosModules.default
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
# keep-sorted end
|
||||
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@
|
||||
pkgsParams = {
|
||||
overlays = builtins.attrValues config.flake.overlays ++ [
|
||||
inputs.go-musicfox.overlays.default
|
||||
inputs.niri.overlays.niri
|
||||
inputs.niri-nix.overlays.niri-nix
|
||||
inputs.fenix.overlays.default
|
||||
inputs.angrr.overlays.default
|
||||
(final: prev: {
|
||||
|
||||
@@ -34,19 +34,15 @@
|
||||
set -gp PATH $HOME/bin
|
||||
'';
|
||||
|
||||
programs.niri.settings = {
|
||||
wayland.windowManager.niri.settings = {
|
||||
environment.STEAM_FORCE_DESKTOPUI_SCALING = "1.25";
|
||||
outputs = {
|
||||
eDP-1 = {
|
||||
enable = true;
|
||||
mode = {
|
||||
width = 1920;
|
||||
height = 1200;
|
||||
refresh = 60.002;
|
||||
};
|
||||
output = [
|
||||
{
|
||||
_args = [ "eDP-1" ];
|
||||
mode = "1920x1200@60.002";
|
||||
scale = 1.25;
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
+12
-20
@@ -48,32 +48,24 @@
|
||||
'';
|
||||
};
|
||||
|
||||
programs.niri.settings = {
|
||||
wayland.windowManager.niri.settings = {
|
||||
environment.STEAM_FORCE_DESKTOPUI_SCALING = "1.25";
|
||||
outputs = {
|
||||
DP-1 = {
|
||||
enable = true;
|
||||
mode = {
|
||||
width = 2560;
|
||||
height = 1440;
|
||||
refresh = 75.033;
|
||||
};
|
||||
output = [
|
||||
{
|
||||
_args = [ "DP-1" ];
|
||||
mode = "2560x1440@75.033";
|
||||
scale = 1.25;
|
||||
position = {
|
||||
position._props = {
|
||||
x = 0;
|
||||
y = 0;
|
||||
};
|
||||
};
|
||||
DP-2 = {
|
||||
enable = true;
|
||||
mode = {
|
||||
width = 2560;
|
||||
height = 1440;
|
||||
refresh = 75.033;
|
||||
};
|
||||
}
|
||||
{
|
||||
_args = [ "DP-2" ];
|
||||
mode = "2560x1440@75.033";
|
||||
scale = 1.25;
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -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 {
|
||||
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 {
|
||||
@@ -13,6 +61,25 @@ blur {
|
||||
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 {
|
||||
draw-border-with-background false
|
||||
geometry-corner-radius 14.000000 14.000000 14.000000 14.000000
|
||||
@@ -39,3 +106,10 @@ window-rule {
|
||||
match app-id="org.gnome.Nautilus"
|
||||
opacity 0.6
|
||||
}
|
||||
|
||||
window-rule {
|
||||
match app-id="org.jackhuang.hmcl.Launcher"
|
||||
border {
|
||||
off
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,334 +7,69 @@
|
||||
...
|
||||
}:
|
||||
let
|
||||
settings = config.my.hm.programs.niri.settings;
|
||||
niriCfg = config.my.hm.wayland.windowManager.niri;
|
||||
in
|
||||
{
|
||||
config = lib.mkIf config.my.desktop.wm.niri.enable {
|
||||
my.hm = {
|
||||
xdg.configFile.niri-config.target = lib.mkForce "niri/generated-config.kdl";
|
||||
xdg.configFile."niri/config.kdl".source = impure.mkImpureLink ./config.kdl;
|
||||
|
||||
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;
|
||||
xdg.configFile."niri".source = impure.mkImpureLink ./config;
|
||||
xdg.configFile."niri-generated.kdl".text = niriCfg.finalConfig;
|
||||
|
||||
wayland.windowManager.niri.settings = {
|
||||
environment.NIXOS_OZONE_WL = "1";
|
||||
|
||||
spawn-at-startup = lib.mkBefore (
|
||||
map (c: { command = c; }) [
|
||||
(
|
||||
[
|
||||
"dbus-update-activation-environment"
|
||||
"--systemd"
|
||||
]
|
||||
++ builtins.attrNames settings.environment
|
||||
)
|
||||
|
||||
spawn-at-startup = lib.mkBefore [
|
||||
(
|
||||
[
|
||||
"${lib.getExe pkgs.swaybg}"
|
||||
"-m"
|
||||
"fill"
|
||||
"-i"
|
||||
(toString assets.wallpaper)
|
||||
]
|
||||
[
|
||||
"wl-paste"
|
||||
"--type"
|
||||
"text"
|
||||
"--watch"
|
||||
"cliphist"
|
||||
"store"
|
||||
]
|
||||
[
|
||||
"wl-paste"
|
||||
"--type"
|
||||
"image"
|
||||
"--watch"
|
||||
"cliphist"
|
||||
"store"
|
||||
]
|
||||
[
|
||||
"noctalia-shell"
|
||||
"dbus-update-activation-environment"
|
||||
"--systemd"
|
||||
]
|
||||
++ (builtins.attrNames niriCfg.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"
|
||||
]
|
||||
[ "noctalia-shell" ]
|
||||
];
|
||||
|
||||
binds =
|
||||
let
|
||||
noctalia =
|
||||
cmd:
|
||||
[
|
||||
"noctalia-shell"
|
||||
"ipc"
|
||||
"call"
|
||||
]
|
||||
++ (lib.splitString " " cmd);
|
||||
in
|
||||
with config.my.hm.lib.niri.actions;
|
||||
binds = lib.mkMerge [
|
||||
{
|
||||
"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;
|
||||
};
|
||||
"Mod+G".spawn = [ config.my.desktop.browser.default.command ];
|
||||
}
|
||||
// lib.attrsets.mergeAttrsList (
|
||||
(builtins.listToAttrs (
|
||||
map (n: {
|
||||
"Mod+${toString n}".action.focus-workspace = n;
|
||||
"Mod+Shift+${toString n}".action.move-column-to-workspace = n;
|
||||
name = "Mod+${toString n}";
|
||||
value.focus-workspace = n;
|
||||
}) (lib.range 0 9)
|
||||
);
|
||||
))
|
||||
(builtins.listToAttrs (
|
||||
map (n: {
|
||||
name = "Mod+Shift+${toString n}";
|
||||
value.move-column-to-workspace = n;
|
||||
}) (lib.range 0 9)
|
||||
))
|
||||
];
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -15,10 +15,11 @@ in
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
niri-flake.cache.enable = false;
|
||||
programs.niri = {
|
||||
enable = true;
|
||||
package = pkg;
|
||||
# We manage xdg.portal ourselves below.
|
||||
withXDG = false;
|
||||
};
|
||||
services.displayManager = {
|
||||
ly = {
|
||||
@@ -32,7 +33,6 @@ in
|
||||
};
|
||||
|
||||
security.pam.services.login.enableGnomeKeyring = true;
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
my.persist.homeDirs = [
|
||||
{
|
||||
directory = ".local/share/keyrings";
|
||||
@@ -57,8 +57,17 @@ in
|
||||
xdg-desktop-portal-gnome
|
||||
];
|
||||
};
|
||||
systemd.user.services.niri-flake-polkit.serviceConfig.ExecStart =
|
||||
lib.mkForce "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
|
||||
systemd.user.services.niri-polkit = {
|
||||
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;
|
||||
|
||||
|
||||
@@ -187,12 +187,12 @@ in
|
||||
)
|
||||
)
|
||||
];
|
||||
my.hm.programs.niri.settings = {
|
||||
binds."Mod+Space".action.spawn = [
|
||||
my.hm.wayland.windowManager.niri.settings = {
|
||||
binds."Mod+Space".spawn = [
|
||||
"fcitx5-remote"
|
||||
"-t"
|
||||
];
|
||||
spawn-at-startup = [ { command = [ "fcitx5" ]; } ];
|
||||
spawn-at-startup = [ [ "fcitx5" ] ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user