322 lines
11 KiB
Nix
322 lines
11 KiB
Nix
{ self, inputs, ... }: {
|
|
perSystem = { pkgs, lib, self', ... }: {
|
|
packages.myNiri = inputs.wrapper-modules.wrappers.niri.wrap {
|
|
inherit pkgs;
|
|
settings = {
|
|
prefer-no-csd = {};
|
|
|
|
spawn-sh-at-startup = [
|
|
"ckb-next -b"
|
|
(lib.getExe self'.packages.myNoctalia)
|
|
|
|
# Wallpapers
|
|
"${pkgs.mpvpaper}/bin/mpvpaper -n 900 -o '--hwdec=auto --no-audio --loop-playlist shuffle --panscan=1.0 --scale=nearest' ALL ${./wallpapers}"
|
|
];
|
|
|
|
screenshot-path = "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png";
|
|
|
|
layout = {
|
|
gaps = 5;
|
|
center-focused-column = "never";
|
|
|
|
default-column-width = {
|
|
proportion = 0.5;
|
|
};
|
|
|
|
focus-ring = {
|
|
width = 1.5;
|
|
active-color = "#7aa2f7";
|
|
inactive-color = "#a9b1d6";
|
|
};
|
|
|
|
border = {
|
|
off = {};
|
|
width = 4;
|
|
active-color = "#ffc87f";
|
|
inactive-color = "#505050";
|
|
urgent-color = "#9b0000";
|
|
};
|
|
};
|
|
|
|
outputs = {
|
|
"HDMI-A-1" = {
|
|
mode = "1920x1080@60.00";
|
|
position = _: {
|
|
props = {
|
|
x = 0;
|
|
y = 180;
|
|
};
|
|
};
|
|
};
|
|
|
|
"DP-2" = {
|
|
mode = "2560x1440@144.00";
|
|
position = _: {
|
|
props = {
|
|
x = 1920;
|
|
y = 0;
|
|
};
|
|
};
|
|
variable-refresh-rate = {};
|
|
};
|
|
|
|
"DP-1" = {
|
|
mode = "1680x1050@60.00";
|
|
position = _: {
|
|
props = {
|
|
x = 4480;
|
|
y = 195;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
input = {
|
|
keyboard = {
|
|
numlock = {};
|
|
repeat-rate = 35;
|
|
repeat-delay = 500;
|
|
};
|
|
|
|
touchpad = {
|
|
tap = {};
|
|
natural-scroll = {};
|
|
scroll-factor = 0.25;
|
|
};
|
|
|
|
focus-follows-mouse = {};
|
|
};
|
|
|
|
window-rules = [
|
|
{
|
|
matches = [ { app-id = "^brave-browser$"; title = "^Picture-in-Picture$"; } ];
|
|
open-floating = true;
|
|
}
|
|
{
|
|
matches = [
|
|
{ app-id = "^org\\.keepassxc\\.KeePassXC$"; }
|
|
{ app-id = "^org\\.gnome\\.World\\.Secrets$"; }
|
|
];
|
|
block-out-from = "screen-capture";
|
|
}
|
|
{
|
|
geometry-corner-radius = 12;
|
|
clip-to-geometry = true;
|
|
}
|
|
{
|
|
matches = [ { app-id = "^brave-browser$"; } ];
|
|
open-maximized = true;
|
|
}
|
|
{
|
|
matches = [ { app-id = "^vesktop$"; } ];
|
|
open-maximized = true;
|
|
}
|
|
{
|
|
matches = [ { app-id = "^steam$"; } ];
|
|
open-maximized = true;
|
|
}
|
|
{
|
|
matches = [ { app-id = "^vesktop$"; } ];
|
|
background-effect = {
|
|
blur = true;
|
|
xray = false;
|
|
};
|
|
}
|
|
{
|
|
matches = [ { app-id="^flameshot$"; } ];
|
|
open-floating = true;
|
|
}
|
|
{
|
|
matches = [ { app-id="^Lens$"; } ];
|
|
open-maximized = true;
|
|
}
|
|
{
|
|
matches = [ { app-id="^element$"; } ];
|
|
open-maximized = true;
|
|
}
|
|
{
|
|
matches = [ { app-id = "^brave-.+-Default$"; title = "^Bitwarden$"; } ];
|
|
open-floating = true;
|
|
}
|
|
];
|
|
|
|
binds = {
|
|
"Mod+Shift+Slash".show-hotkey-overlay = {};
|
|
|
|
"Mod+T".spawn = "alacritty";
|
|
"Mod+D".spawn = "fuzzel";
|
|
"Super+Ctrl+L".spawn = "swaylock";
|
|
"Super+Alt+S".spawn = [ "sh" "-c" "pkill orca || exec orca" ];
|
|
|
|
# Media & Volume Controls
|
|
"XF86AudioRaiseVolume".spawn = [ "sh" "-c" "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+ -l 1.0" ];
|
|
"XF86AudioLowerVolume".spawn = [ "sh" "-c" "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-" ];
|
|
"XF86AudioMute".spawn = [ "sh" "-c" "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" ];
|
|
"XF86AudioMicMute".spawn = [ "sh" "-c" "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" ];
|
|
"XF86AudioPlay".spawn = [ "sh" "-c" "playerctl play-pause" ];
|
|
"XF86AudioStop".spawn = [ "sh" "-c" "playerctl stop" ];
|
|
"XF86AudioPrev".spawn = [ "sh" "-c" "playerctl previous" ];
|
|
"XF86AudioNext".spawn = [ "sh" "-c" "playerctl next" ];
|
|
|
|
# Brightness Controls
|
|
"XF86MonBrightnessUp".spawn = [ "brightnessctl" "--class=backlight" "set" "+10%" ];
|
|
"XF86MonBrightnessDown".spawn = [ "brightnessctl" "--class=backlight" "set" "10%-" ];
|
|
|
|
# Window & Layout Navigation
|
|
"Mod+O".toggle-overview = {};
|
|
"Mod+Q".close-window = {};
|
|
|
|
"Mod+Left".focus-column-left = {};
|
|
"Mod+Down".focus-window-down = {};
|
|
"Mod+Up".focus-window-up = {};
|
|
"Mod+Right".focus-column-right = {};
|
|
|
|
"Mod+H".focus-column-left = {};
|
|
"Mod+J".focus-window-down = {};
|
|
"Mod+K".focus-window-up = {};
|
|
"Mod+L".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+Ctrl+H".move-column-left = {};
|
|
"Mod+Ctrl+J".move-window-down = {};
|
|
"Mod+Ctrl+K".move-window-up = {};
|
|
"Mod+Ctrl+L".move-column-right = {};
|
|
|
|
"Mod+Home".focus-column-first = {};
|
|
"Mod+End".focus-column-last = {};
|
|
"Mod+Ctrl+Home".move-column-to-first = {};
|
|
"Mod+Ctrl+End".move-column-to-last = {};
|
|
|
|
# Monitor Navigation
|
|
"Mod+Shift+Left".focus-monitor-left = {};
|
|
"Mod+Shift+Down".focus-monitor-down = {};
|
|
"Mod+Shift+Up".focus-monitor-up = {};
|
|
"Mod+Shift+Right".focus-monitor-right = {};
|
|
|
|
"Mod+Shift+H".focus-monitor-left = {};
|
|
"Mod+Shift+J".focus-monitor-down = {};
|
|
"Mod+Shift+K".focus-monitor-up = {};
|
|
"Mod+Shift+L".focus-monitor-right = {};
|
|
|
|
"Mod+Shift+Ctrl+Left".move-column-to-monitor-left = {};
|
|
"Mod+Shift+Ctrl+Down".move-column-to-monitor-down = {};
|
|
"Mod+Shift+Ctrl+Up".move-column-to-monitor-up = {};
|
|
"Mod+Shift+Ctrl+Right".move-column-to-monitor-right = {};
|
|
|
|
"Mod+Shift+Ctrl+H".move-column-to-monitor-left = {};
|
|
"Mod+Shift+Ctrl+J".move-column-to-monitor-down = {};
|
|
"Mod+Shift+Ctrl+K".move-column-to-monitor-up = {};
|
|
"Mod+Shift+Ctrl+L".move-column-to-monitor-right = {};
|
|
|
|
# Workspace Navigation
|
|
"Mod+Page_Down".focus-workspace-down = {};
|
|
"Mod+Page_Up".focus-workspace-up = {};
|
|
"Mod+U".focus-workspace-down = {};
|
|
"Mod+I".focus-workspace-up = {};
|
|
|
|
"Mod+Ctrl+Page_Down".move-column-to-workspace-down = {};
|
|
"Mod+Ctrl+Page_Up".move-column-to-workspace-up = {};
|
|
"Mod+Ctrl+U".move-column-to-workspace-down = {};
|
|
"Mod+Ctrl+I".move-column-to-workspace-up = {};
|
|
|
|
"Mod+Shift+Page_Down".move-workspace-down = {};
|
|
"Mod+Shift+Page_Up".move-workspace-up = {};
|
|
"Mod+Shift+U".move-workspace-down = {};
|
|
"Mod+Shift+I".move-workspace-up = {};
|
|
|
|
# Scrolling / Mouse Wheel
|
|
"Mod+WheelScrollDown".focus-workspace-down = {};
|
|
"Mod+WheelScrollUp".focus-workspace-up = {};
|
|
"Mod+Ctrl+WheelScrollDown".move-column-to-workspace-down = {};
|
|
"Mod+Ctrl+WheelScrollUp".move-column-to-workspace-up = {};
|
|
|
|
"Mod+WheelScrollRight".focus-column-right = {};
|
|
"Mod+WheelScrollLeft".focus-column-left = {};
|
|
"Mod+Ctrl+WheelScrollRight".move-column-right = {};
|
|
"Mod+Ctrl+WheelScrollLeft".move-column-left = {};
|
|
|
|
"Mod+Shift+WheelScrollDown".focus-column-right = {};
|
|
"Mod+Shift+WheelScrollUp".focus-column-left = {};
|
|
"Mod+Ctrl+Shift+WheelScrollDown".move-column-right = {};
|
|
"Mod+Ctrl+Shift+WheelScrollUp".move-column-left = {};
|
|
|
|
# Numbered Workspaces
|
|
"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;
|
|
|
|
# Window Layout Adjustments
|
|
"Mod+BracketLeft".consume-or-expel-window-left = {};
|
|
"Mod+BracketRight".consume-or-expel-window-right = {};
|
|
"Mod+Comma".consume-window-into-column = {};
|
|
"Mod+Period".expel-window-from-column = {};
|
|
|
|
"Mod+R".switch-preset-column-width = {};
|
|
"Mod+Shift+R".switch-preset-window-height = {};
|
|
"Mod+Ctrl+R".reset-window-height = {};
|
|
"Mod+F".maximize-column = {};
|
|
"Mod+Shift+F".fullscreen-window = {};
|
|
"Mod+Ctrl+F".expand-column-to-available-width = {};
|
|
"Mod+C".center-column = {};
|
|
"Mod+Ctrl+C".center-visible-columns = {};
|
|
|
|
"Mod+Minus".set-column-width = "-10%";
|
|
"Mod+Equal".set-column-width = "+10%";
|
|
"Mod+Shift+Minus".set-window-height = "-10%";
|
|
"Mod+Shift+Equal".set-window-height = "+10%";
|
|
|
|
"Mod+V".toggle-window-floating = {};
|
|
"Mod+Shift+V".switch-focus-between-floating-and-tiling = {};
|
|
"Mod+W".toggle-column-tabbed-display = {};
|
|
|
|
# Screenshots
|
|
"Print".screenshot = {};
|
|
"Ctrl+Print".screenshot-screen = {};
|
|
"Alt+Print".screenshot-window = {};
|
|
"Mod+Shift+S".spawn = [ "zsh" "-c" "grim -g \"$(slurp)\" - | satty -f - --copy-command=wl-copy" ];
|
|
|
|
# System Controls
|
|
"Mod+Escape".toggle-keyboard-shortcuts-inhibit = {};
|
|
"Mod+Shift+E".quit = {};
|
|
"Ctrl+Alt+Delete".quit = {};
|
|
"Mod+Shift+P".power-off-monitors = {};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
flake.nixosModules.niri = { pkgs, lib, ... }: {
|
|
programs.niri = {
|
|
enable = true;
|
|
package = self.packages.${pkgs.stdenv.hostPlatform.system}.myNiri;
|
|
};
|
|
|
|
security.polkit.enable = true;
|
|
services.gnome.gnome-keyring.enable = true;
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
xwayland-satellite
|
|
mpvpaper
|
|
];
|
|
};
|
|
}
|