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"
|
"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": {
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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: {
|
||||||
|
|||||||
@@ -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
@@ -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;
|
||||||
};
|
}
|
||||||
};
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
))
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 {
|
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;
|
||||||
|
|
||||||
|
|||||||
@@ -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" ] ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user