feat: Switch to Niri WM
128
flake.lock
|
@ -671,6 +671,62 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"niri-flake": {
|
||||||
|
"inputs": {
|
||||||
|
"niri-stable": "niri-stable",
|
||||||
|
"niri-unstable": "niri-unstable",
|
||||||
|
"nixpkgs": "nixpkgs_3",
|
||||||
|
"nixpkgs-stable": "nixpkgs-stable_2",
|
||||||
|
"xwayland-satellite-stable": "xwayland-satellite-stable",
|
||||||
|
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1740690416,
|
||||||
|
"narHash": "sha256-ZVyJvL/sEkBuxNh1+Y5K3XXzYowIz5UUyOqrzK2rkdc=",
|
||||||
|
"owner": "sodiboo",
|
||||||
|
"repo": "niri-flake",
|
||||||
|
"rev": "18a5c6286802a8ef1109760d61740b6f321c810c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "sodiboo",
|
||||||
|
"repo": "niri-flake",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"niri-stable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1740117926,
|
||||||
|
"narHash": "sha256-mTTHA0RAaQcdYe+9A3Jx77cmmyLFHmRoZdd8RpWa+m8=",
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
|
"rev": "b94a5db8790339cf9134873d8b490be69e02ac71",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"ref": "v25.02",
|
||||||
|
"repo": "niri",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"niri-unstable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1740683787,
|
||||||
|
"narHash": "sha256-Q3ZqUR1xVG9MuHxInsLfqytgqCZKICYpWDIz8L11av8=",
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
|
"rev": "311f3be5d861bfb12ee8b3d7241bd1d1fcb5110b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixgl": {
|
"nixgl": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_3",
|
"flake-utils": "flake-utils_3",
|
||||||
|
@ -736,6 +792,22 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs-stable_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1740603184,
|
||||||
|
"narHash": "sha256-t+VaahjQAWyA+Ctn2idyo1yxRIYpaDxMgHkgCNiMJa4=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "f44bd8ca21e026135061a0a57dcf3d0775b67a49",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-24.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1736701207,
|
"lastModified": 1736701207,
|
||||||
|
@ -753,6 +825,22 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1740560979,
|
||||||
|
"narHash": "sha256-Vr3Qi346M+8CjedtbyUevIGDZW8LcA1fTG0ugPY/Hic=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "5135c59491985879812717f4c9fea69604e7f26f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1740603184,
|
"lastModified": 1740603184,
|
||||||
"narHash": "sha256-t+VaahjQAWyA+Ctn2idyo1yxRIYpaDxMgHkgCNiMJa4=",
|
"narHash": "sha256-t+VaahjQAWyA+Ctn2idyo1yxRIYpaDxMgHkgCNiMJa4=",
|
||||||
|
@ -768,7 +856,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710272261,
|
"lastModified": 1710272261,
|
||||||
"narHash": "sha256-g0bDwXFmTE7uGDOs9HcJsfLFhH7fOsASbAuOzDC+fhQ=",
|
"narHash": "sha256-g0bDwXFmTE7uGDOs9HcJsfLFhH7fOsASbAuOzDC+fhQ=",
|
||||||
|
@ -844,8 +932,9 @@
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"lix": "lix",
|
"lix": "lix",
|
||||||
"marleyvim": "marleyvim",
|
"marleyvim": "marleyvim",
|
||||||
|
"niri-flake": "niri-flake",
|
||||||
"nixgl": "nixgl",
|
"nixgl": "nixgl",
|
||||||
"nixpkgs": "nixpkgs_3",
|
"nixpkgs": "nixpkgs_4",
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"rofi-themes": "rofi-themes",
|
"rofi-themes": "rofi-themes",
|
||||||
"rose-pine": "rose-pine",
|
"rose-pine": "rose-pine",
|
||||||
|
@ -891,7 +980,7 @@
|
||||||
"rose-pine-hyprcursor": {
|
"rose-pine-hyprcursor": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"hyprlang": "hyprlang",
|
"hyprlang": "hyprlang",
|
||||||
"nixpkgs": "nixpkgs_4",
|
"nixpkgs": "nixpkgs_5",
|
||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -1162,6 +1251,39 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"xwayland-satellite-stable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1739246919,
|
||||||
|
"narHash": "sha256-/hBM43/Gd0/tW+egrhlWgOIISeJxEs2uAOIYVpfDKeU=",
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"rev": "44590a416d4a3e8220e19e29e0b6efe64a80315d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"ref": "v0.5.1",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"xwayland-satellite-unstable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1739246919,
|
||||||
|
"narHash": "sha256-/hBM43/Gd0/tW+egrhlWgOIISeJxEs2uAOIYVpfDKeU=",
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"rev": "44590a416d4a3e8220e19e29e0b6efe64a80315d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"zlib": {
|
"zlib": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|
|
@ -19,10 +19,12 @@
|
||||||
lix.overlays.default
|
lix.overlays.default
|
||||||
nur.overlays.default
|
nur.overlays.default
|
||||||
marleyvim.overlays.default
|
marleyvim.overlays.default
|
||||||
|
niri-flake.overlays.niri
|
||||||
];
|
];
|
||||||
|
|
||||||
systems.modules.nixos = with inputs; [
|
systems.modules.nixos = with inputs; [
|
||||||
rose-pine.nixosModules.rose-pine
|
rose-pine.nixosModules.rose-pine
|
||||||
|
niri-flake.nixosModules.niri
|
||||||
];
|
];
|
||||||
|
|
||||||
systems.modules.darwin = with inputs; [
|
systems.modules.darwin = with inputs; [
|
||||||
|
@ -85,6 +87,8 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
niri-flake.url = "github:sodiboo/niri-flake";
|
||||||
|
|
||||||
# Rose pine themes that aren't included in the above flake:
|
# Rose pine themes that aren't included in the above flake:
|
||||||
# TODO: Integrate these to punkfairie/rose-pine-nix.
|
# TODO: Integrate these to punkfairie/rose-pine-nix.
|
||||||
rose-pine-amfora = {
|
rose-pine-amfora = {
|
||||||
|
|
|
@ -4,14 +4,16 @@ in {
|
||||||
marleyos = {
|
marleyos = {
|
||||||
bundles.desktop = enabled;
|
bundles.desktop = enabled;
|
||||||
|
|
||||||
wayland.hyprland = {
|
# wayland.hyprland = {
|
||||||
enable = true;
|
# enable = true;
|
||||||
monitors = {
|
# monitors = {
|
||||||
"DP-1" = "desc:Apple Computer Inc LED Cinema 2A91946Z0K0, 1920x1200, 0x0, 1";
|
# "DP-1" = "desc:Apple Computer Inc LED Cinema 2A91946Z0K0, 1920x1200, 0x0, 1";
|
||||||
"HDMI-A-1" = "desc:Lenovo Group Limited LT2252p Wide 6V8ACF74, 1680x1050, 1920x0, 1";
|
# "HDMI-A-1" = "desc:Lenovo Group Limited LT2252p Wide 6V8ACF74, 1680x1050, 1920x0, 1";
|
||||||
};
|
# };
|
||||||
mainMonitor = "DP-1";
|
# mainMonitor = "DP-1";
|
||||||
};
|
# };
|
||||||
|
|
||||||
|
wayland.niri = enabled;
|
||||||
};
|
};
|
||||||
|
|
||||||
home.stateVersion = "24.05";
|
home.stateVersion = "24.05";
|
||||||
|
|
20
modules/home/programs/wayland/fuzzel/default.nix
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
cfg = config.marleyos.programs.fuzzel;
|
||||||
|
in {
|
||||||
|
options.marleyos.programs.fuzzel.enable = lib.mkEnableOption "fuzzel";
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
marleyos.apps.launcher = {
|
||||||
|
inherit (config.programs.fuzzel) package;
|
||||||
|
command = "";
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.fuzzel = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -8,12 +8,6 @@
|
||||||
in {
|
in {
|
||||||
options.marleyos.programs.waybar = {
|
options.marleyos.programs.waybar = {
|
||||||
enable = lib.mkEnableOption "waybar";
|
enable = lib.mkEnableOption "waybar";
|
||||||
|
|
||||||
keybindings-script = lib.mkOption {
|
|
||||||
type = lib.types.listOf lib.types.str;
|
|
||||||
default = "";
|
|
||||||
description = "The keybindings to use for a cheatsheet.";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
|
@ -22,28 +16,7 @@ in {
|
||||||
programs.wlogout.enable = true;
|
programs.wlogout.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.waybar = let
|
programs.waybar = {
|
||||||
keybindings-script =
|
|
||||||
pkgs.writeShellScript "keybindings-cheatsheet-wayland"
|
|
||||||
# bash
|
|
||||||
''
|
|
||||||
${lib.getExe pkgs.yad} \
|
|
||||||
--width=800 \
|
|
||||||
--height=650 \
|
|
||||||
--center \
|
|
||||||
--fixed \
|
|
||||||
--title="Keybindings" \
|
|
||||||
--no-buttons \
|
|
||||||
--list \
|
|
||||||
--column=Key: \
|
|
||||||
--column=Description: \
|
|
||||||
--column=Command: \
|
|
||||||
--timeout=90 \
|
|
||||||
--timeout-indicator=right \
|
|
||||||
${lib.concatStringsSep "\\\n" cfg.keybindings-script} \
|
|
||||||
""
|
|
||||||
'';
|
|
||||||
in {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
# https://gitlab.com/Zaney/zaneyos/-/blob/main/config/waybar.nix
|
# https://gitlab.com/Zaney/zaneyos/-/blob/main/config/waybar.nix
|
||||||
|
@ -62,7 +35,6 @@ in {
|
||||||
];
|
];
|
||||||
modules-center = ["hyprland/workspaces"];
|
modules-center = ["hyprland/workspaces"];
|
||||||
modules-right = [
|
modules-right = [
|
||||||
"custom/hyprbindings"
|
|
||||||
"custom/notifications"
|
"custom/notifications"
|
||||||
"custom/exit"
|
"custom/exit"
|
||||||
"battery"
|
"battery"
|
||||||
|
@ -170,12 +142,6 @@ in {
|
||||||
in "sleep 0.1 && ${lib.getExe launcher.package} ${launcher.command}";
|
in "sleep 0.1 && ${lib.getExe launcher.package} ${launcher.command}";
|
||||||
};
|
};
|
||||||
|
|
||||||
"custom/hyprbindings" = {
|
|
||||||
tooltip = false;
|
|
||||||
format = "";
|
|
||||||
on-click = "sleep 0.1 && ${keybindings-script}";
|
|
||||||
};
|
|
||||||
|
|
||||||
"idle_inhibitor" = {
|
"idle_inhibitor" = {
|
||||||
format = "{icon}";
|
format = "{icon}";
|
||||||
format-icons = {
|
format-icons = {
|
||||||
|
@ -334,7 +300,7 @@ in {
|
||||||
border-radius: 0 0 40px 0;
|
border-radius: 0 0 40px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-hyprbindings, #network, #battery, #custom-notifications,
|
#network, #battery, #custom-notifications,
|
||||||
#tray, #custom-exit {
|
#tray, #custom-exit {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
background: @seven;
|
background: @seven;
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 4 KiB After Width: | Height: | Size: 4 KiB |
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
|
@ -288,25 +288,5 @@ in {
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
marleyos.programs.waybar.keybindings-script = [
|
|
||||||
''" = SUPER" "modifier key" ""''
|
|
||||||
''" + ENTER" "launch terminal" ""''
|
|
||||||
''" + r" "launcher" ""''
|
|
||||||
''" + q" "kill focused window" "killactive"''
|
|
||||||
''" + SHIFT + E" "exit hyprland" "exit"''
|
|
||||||
''" + SHIFT + SPACE" "toggle floating" "togglefloating"''
|
|
||||||
''" + e" "toggle split direction" "togglesplit"''
|
|
||||||
''" + h" "move focus left" "movefocus, l"''
|
|
||||||
''" + j" "move focus down" "movefocus, d"''
|
|
||||||
''" + k" "move focus up" "movefocus, u"''
|
|
||||||
''" + l" "move focus right" "movefocus, r"''
|
|
||||||
''" + 1-0" "move to workspace 1-10" "workspace, #"''
|
|
||||||
''" + SHIFT + 1-0" "move window to workspace 1-10" "movetoworkspace, #"''
|
|
||||||
''" + MOUSE UP" "move to next workspace" "workspace, e+1"''
|
|
||||||
''" + MOUSE DOWN" "move to prev workspace" "workspace, e-1"''
|
|
||||||
''" + LMB" "move/drag window" "movewindow"''
|
|
||||||
''" + RMB" "resize window" "resizewindow"''
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
162
modules/home/wayland/niri/default.nix
Normal file
|
@ -0,0 +1,162 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
cfg = config.marleyos.wayland.niri;
|
||||||
|
in {
|
||||||
|
options.marleyos.wayland.niri = {
|
||||||
|
enable = lib.mkEnableOption "niri";
|
||||||
|
|
||||||
|
monitors = lib.mkOption {
|
||||||
|
description = "Monitor configuration.";
|
||||||
|
type = with lib.types; attrsOf str;
|
||||||
|
};
|
||||||
|
|
||||||
|
mainMonitor = lib.mkOption {
|
||||||
|
description = "Which monitor to treat as the main for workspace assignment";
|
||||||
|
type = with lib.types; str;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
assertions = [
|
||||||
|
{
|
||||||
|
assertion =
|
||||||
|
if cfg ? monitors
|
||||||
|
then cfg ? mainMonitor
|
||||||
|
else true;
|
||||||
|
message = ''
|
||||||
|
You have defined monitors but not selected the main monitor. Please
|
||||||
|
define marleyos.wayland.niri.mainMonitor.
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
marleyos = {
|
||||||
|
programs = {
|
||||||
|
waybar.enable = true;
|
||||||
|
wlogout.enable = true;
|
||||||
|
fuzzel.enable = true;
|
||||||
|
};
|
||||||
|
services = {
|
||||||
|
swaync.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.niri = {
|
||||||
|
# Auto-enabled by the nixos module
|
||||||
|
# enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
layout = {
|
||||||
|
gaps = 16;
|
||||||
|
center-focused-column = "never";
|
||||||
|
|
||||||
|
preset-column-widths = [
|
||||||
|
{proportion = 0.33333;}
|
||||||
|
{proportion = 0.5;}
|
||||||
|
{proportion = 0.66667;}
|
||||||
|
];
|
||||||
|
|
||||||
|
default-column-width = {proportion = 0.5;};
|
||||||
|
|
||||||
|
focus-ring = {
|
||||||
|
width = 4;
|
||||||
|
active = {color = "#7fc8ff";};
|
||||||
|
inactive = {color = "#505050";};
|
||||||
|
};
|
||||||
|
|
||||||
|
border = {
|
||||||
|
width = 4;
|
||||||
|
active = {color = "#ffc87f";};
|
||||||
|
inactive = {color = "#505050";};
|
||||||
|
};
|
||||||
|
|
||||||
|
shadow = {
|
||||||
|
softness = 30;
|
||||||
|
spread = 5;
|
||||||
|
|
||||||
|
offset = {
|
||||||
|
x = 0;
|
||||||
|
y = 5;
|
||||||
|
};
|
||||||
|
|
||||||
|
color = "#0007";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
screenshot-path = "~/pictures/screenshots/%Y-%m-%d %H-%M-%S.png";
|
||||||
|
|
||||||
|
window-rules = [
|
||||||
|
{
|
||||||
|
matches = [{app-id = "^org\.wezfurlong\.wezterm$";}];
|
||||||
|
default-column-width = {};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
matches = [
|
||||||
|
{
|
||||||
|
app-id = "firefox$";
|
||||||
|
title = "^Picture-in-Picture$";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
open-floating = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
binds = with config.lib.niri.actions; {
|
||||||
|
"Mod+Shift+Slash".action = show-hotkey-overlay;
|
||||||
|
"Mod+Return".action = spawn (lib.getExe config.marleyos.apps.terminal);
|
||||||
|
"Mod+R".action = spawn (lib.getExe config.programs.fuzzel.package);
|
||||||
|
"Mod+Q".action = close-window;
|
||||||
|
"Mod+H".action = focus-column-left;
|
||||||
|
"Mod+J".action = focus-window-down;
|
||||||
|
"Mod+K".action = focus-window-up;
|
||||||
|
"Mod+L".action = focus-column-right;
|
||||||
|
"Mod+Shift+H".action = move-column-left;
|
||||||
|
"Mod+Shift+J".action = move-window-down;
|
||||||
|
"Mod+Shift+K".action = move-window-up;
|
||||||
|
"Mod+Shift+L".action = move-column-right;
|
||||||
|
"Mod+Home".action = focus-column-first;
|
||||||
|
"Mod+End".action = focus-column-last;
|
||||||
|
"Mod+Shift+Home".action = move-column-to-first;
|
||||||
|
"Mod+Shift+End".action = move-column-to-last;
|
||||||
|
"Mod+Shift+Ctrl+H".action = move-column-to-monitor-left;
|
||||||
|
"Mod+Shift+Ctrl+J".action = move-column-to-monitor-down;
|
||||||
|
"Mod+Shift+Ctrl+K".action = move-column-to-monitor-up;
|
||||||
|
"Mod+Shift+Ctrl+L".action = move-column-to-monitor-right;
|
||||||
|
"Mod+Page_Down".action = focus-workspace-down;
|
||||||
|
"Mod+Page_Up".action = focus-workspace-up;
|
||||||
|
"Mod+Shift+Page_Down".action = move-column-to-workspace-down;
|
||||||
|
"Mod+Shift+Page_Up".action = move-column-to-workspace-up;
|
||||||
|
"Mod+Ctrl+Page_Down".action = move-workspace-up;
|
||||||
|
"Mod+Ctrl+Page_Up".action = move-workspace-down;
|
||||||
|
"Mod+BracketLeft".action = consume-or-expel-window-left;
|
||||||
|
"Mod+BracketRight".action = consume-or-expel-window-right;
|
||||||
|
"Mod+Comma".action = consume-window-into-column;
|
||||||
|
"Mod+Period".action = expel-window-from-column;
|
||||||
|
"Mod+P".action = switch-preset-column-width;
|
||||||
|
"Mod+Shift+P".action = switch-preset-window-height;
|
||||||
|
"Mod+Ctrl+P".action = reset-window-height;
|
||||||
|
"Mod+F".action = maximize-column;
|
||||||
|
"Mod+Shift+F".action = fullscreen-window;
|
||||||
|
"Mod+Ctrl+F".action = expand-column-to-available-width;
|
||||||
|
"Mod+C".action = center-column;
|
||||||
|
"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%";
|
||||||
|
"Mod+V".action = toggle-window-floating;
|
||||||
|
"Mod+Shift+V".action = switch-focus-between-floating-and-tiling;
|
||||||
|
"Mod+T".action = toggle-column-tabbed-display;
|
||||||
|
"Print".action = screenshot;
|
||||||
|
"Ctrl+Print".action = screenshot-screen;
|
||||||
|
"Alt+Print".action = screenshot-window;
|
||||||
|
"Mod+Escape".action = toggle-keyboard-shortcuts-inhibit;
|
||||||
|
"Mod+Shift+E".action = quit;
|
||||||
|
"Ctrl+Alt+Delete".action = quit;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
BIN
modules/home/wayland/niri/wallpaper.png
Normal file
After Width: | Height: | Size: 4.7 MiB |
15
modules/nixos/wayland/niri/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
cfg = config.marleyos.wayland.niri;
|
||||||
|
in {
|
||||||
|
options.marleyos.wayland.niri.enable = lib.mkEnableOption "niri";
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
programs.niri = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -17,7 +17,7 @@ in {
|
||||||
|
|
||||||
bundles.desktop = enabled;
|
bundles.desktop = enabled;
|
||||||
|
|
||||||
wayland.hyprland = enabled;
|
wayland.niri = enabled;
|
||||||
services = {
|
services = {
|
||||||
ly = enabled;
|
ly = enabled;
|
||||||
};
|
};
|
||||||
|
|