190 lines
6.3 KiB
Nix
190 lines
6.3 KiB
Nix
{ self, inputs, ... }: {
|
|
flake.nixosModules.niri = { pkgs, lib, ... }: {
|
|
environment.systemPackages = [
|
|
pkgs.wl-clipboard
|
|
pkgs.clipman
|
|
];
|
|
|
|
programs.niri = {
|
|
enable = true;
|
|
package = self.packages.${pkgs.stdenv.hostPlatform.system}.myNiri;
|
|
};
|
|
};
|
|
|
|
flake.nixosModules.tuigreet = { pkgs, lib, ... }: {
|
|
environment.systemPackages = with pkgs; [
|
|
tuigreet
|
|
];
|
|
|
|
|
|
services.greetd = {
|
|
enable = true;
|
|
settings = {
|
|
default_session = {
|
|
command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd niri";
|
|
};
|
|
};
|
|
|
|
};
|
|
};
|
|
|
|
perSystem = { pkgs, lib, self', ... }: {
|
|
packages.myNiri = inputs.wrapper-modules.wrappers.niri.wrap {
|
|
inherit pkgs;
|
|
settings = {
|
|
spawn-at-startup = [
|
|
(lib.getExe self'.packages.myNoctalia)
|
|
];
|
|
|
|
prefer-no-csd = true;
|
|
|
|
xwayland-satellite.path = lib.getExe pkgs.xwayland-satellite;
|
|
|
|
input = {
|
|
keyboard = {
|
|
xkb.layout = "us,dk";
|
|
xkb.options = "caps:escape,grp:win_space_toggle";
|
|
repeat-rate = 25;
|
|
repeat-delay = 300;
|
|
};
|
|
};
|
|
extraConfig = ''
|
|
gestures {
|
|
hot-corners {
|
|
off
|
|
}
|
|
}
|
|
'';
|
|
|
|
|
|
window-rules = [
|
|
{
|
|
matches = [ { is-focused = false; } ];
|
|
default-column-width = { proportion = 1.; };
|
|
opacity = 0.65;
|
|
}
|
|
{
|
|
matches = [
|
|
{ app-id = "firefox"; }
|
|
{ app-id = "discord"; }
|
|
];
|
|
default-column-width = { proportion = 1.; };
|
|
opacity = 1.;
|
|
}
|
|
{
|
|
matches = [ { app-id = "Alacritty"; } ];
|
|
excludes = [ { is-focused = false; } ];
|
|
opacity = .90;
|
|
}
|
|
];
|
|
|
|
|
|
|
|
screenshot-path = "~/Pictures/Screenshots/screenshot-%Y-%m-%d-%H-%M-%S.png";
|
|
hotkey-overlay.skip-at-startup = true;
|
|
|
|
layout = {
|
|
gaps = 15;
|
|
border.off = {};
|
|
focus-ring.off = {};
|
|
preset-column-widths = [
|
|
{ proportion = 1.; }
|
|
{ proportion = 1. / 2.; }
|
|
{ proportion = 1. / 3.; }
|
|
{ proportion = 2. / 3.; }
|
|
];
|
|
default-column-width = { proportion = 1. / 2.; };
|
|
center-focused-column = "never"; #"on-overflow"; "always";
|
|
default-column-display = "normal"; #"tabbed";
|
|
};
|
|
|
|
binds = {
|
|
"Mod+Return".spawn-sh = lib.getExe self'.packages.myAlacritty;
|
|
"Mod+Shift+Slash".show-hotkey-overlay = {};
|
|
"Mod+Shift+C".close-window = {};
|
|
"Mod+Shift+Q".quit = {};
|
|
"Mod+O".toggle-overview = {};
|
|
|
|
"Mod+Left".focus-column-left = {};
|
|
"Mod+Down".focus-window-down = {};
|
|
"Mod+Up".focus-window-up = {};
|
|
"Mod+Right".focus-column-right = {};
|
|
"Mod+Ctrl+Left".move-column-left = {};
|
|
"Mod+Ctrl+Down".move-window-down = {};
|
|
"Mod+Ctrl+Up".move-window-up = {};
|
|
"Mod+Ctrl+Right".move-column-right = {};
|
|
"Mod+H".focus-column-left = {};
|
|
"Mod+J".focus-window-down = {};
|
|
"Mod+K".focus-window-up = {};
|
|
"Mod+L".focus-column-right = {};
|
|
"Mod+Ctrl+H".move-column-left = {};
|
|
"Mod+Ctrl+J".move-window-down = {};
|
|
"Mod+Ctrl+K".move-window-up = {};
|
|
"Mod+Ctrl+L".move-column-right = {};
|
|
"Mod+Ctrl+Shift+j".move-workspace-down = {};
|
|
"Mod+Ctrl+Shift+k".move-workspace-up = {};
|
|
"Mod+U".focus-workspace-down = {};
|
|
"Mod+I".focus-workspace-up = {};
|
|
"Mod+Ctrl+U".move-column-to-workspace-down = {};
|
|
"Mod+Ctrl+I".move-column-to-workspace-up = {};
|
|
"Mod+R".switch-preset-column-width = {};
|
|
|
|
|
|
"Mod+1".focus-workspace = 1;
|
|
"Mod+2".focus-workspace = 2;
|
|
"Mod+3".focus-workspace = 3;
|
|
"Mod+4".focus-workspace = 4;
|
|
"Mod+5".focus-workspace = 5;
|
|
"Mod+6".focus-workspace = 6;
|
|
"Mod+7".focus-workspace = 7;
|
|
"Mod+8".focus-workspace = 8;
|
|
"Mod+9".focus-workspace = 9;
|
|
"Mod+Ctrl+1".move-column-to-workspace = 1;
|
|
"Mod+Ctrl+2".move-column-to-workspace = 2;
|
|
"Mod+Ctrl+3".move-column-to-workspace = 3;
|
|
"Mod+Ctrl+4".move-column-to-workspace = 4;
|
|
"Mod+Ctrl+5".move-column-to-workspace = 5;
|
|
"Mod+Ctrl+6".move-column-to-workspace = 6;
|
|
"Mod+Ctrl+7".move-column-to-workspace = 7;
|
|
"Mod+Ctrl+8".move-column-to-workspace = 8;
|
|
"Mod+Ctrl+9".move-column-to-workspace = 9;
|
|
|
|
"XF86AudioRaiseVolume".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call volume increase";
|
|
"XF86AudioLowerVolume".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call volume decrease";
|
|
"XF86AudioMute".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call volume muteOutput";
|
|
|
|
"XF86MonBrightnessUp".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call brightness increase";
|
|
"XF86MonBrightnessDown".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call brightness decrease";
|
|
|
|
"XF86AudioPrev".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call media previous";
|
|
"XF86AudioPlay".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call media playPause";
|
|
"XF86AudioNext".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call media next";
|
|
|
|
"XF86AudioMedia".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call systemMonitor toggle";
|
|
|
|
|
|
"Mod+Comma".consume-window-into-column = {};
|
|
"Mod+Period".expel-window-from-column = {};
|
|
"Mod+BracketLeft".consume-or-expel-window-left = {};
|
|
"Mod+BracketRight".consume-or-expel-window-right = {};
|
|
"Mod+F".maximize-column = {};
|
|
"Mod+Shift+F".fullscreen-window = {};
|
|
"Mod+W".toggle-column-tabbed-display = {};
|
|
"Mod+V".toggle-window-floating = {};
|
|
"Mod+Shift+V".switch-focus-between-floating-and-tiling = {};
|
|
|
|
"Print".screenshot = {};
|
|
"Mod+Print".screenshot-window = {};
|
|
"Mod+Shift+Print".screenshot-screen = {};
|
|
|
|
"Mod+Shift+L".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call sessionMenu lockAndSuspend";
|
|
"Mod+Shift+E".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call launcher emoji";
|
|
"Mod+Shift+Escape".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call sessionMenu toggle";
|
|
"Mod+P".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call launcher toggle";
|
|
"Mod+Y".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call launcher clipboard";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|