Add scale to Niri config

This commit is contained in:
Thomas Avé 2026-06-02 15:16:15 +07:00
parent 1b3613326f
commit d2aebddc26
Signed by: thomasave
SSH Key Fingerprint: SHA256:bvIbWy6TO9+PdMTPzWy6dqkRlVQ3eSky+vQcc9aRIiE
1 changed files with 130 additions and 119 deletions

View File

@ -1,4 +1,8 @@
{pkgs, scale ? null, ...}: let
{
pkgs,
scale ? null,
...
}: let
terminal = "${pkgs.foot}/bin/footclient";
nautilus = "${pkgs.nautilus}/bin/nautilus";
playerctl = "${pkgs.playerctl}/bin/playerctl";
@ -53,6 +57,9 @@
in {
# Since native Home Manager doesn't have a programs.niri module yet,
# we generate the KDL configuration file directly.
home.packages = with pkgs; [
wl-clipboard
];
programs.hyprlock = {
enable = true;
settings = {
@ -85,140 +92,144 @@ in {
};
xdg.configFile."niri/config.kdl".text = ''
spawn-at-startup "${pkgs.swaybg}/bin/swaybg" "-i" "${../hyprland/files/wallpaper.png}" "-m" "fill"
spawn-at-startup "foot" "--server"
spawn-at-startup "ags" "run"
spawn-at-startup "${pkgs.mate-polkit}/bin/polkit-mate"
prefer-no-csd
spawn-at-startup "${pkgs.swaybg}/bin/swaybg" "-i" "${../hyprland/files/wallpaper.png}" "-m" "fill"
spawn-at-startup "foot" "--server"
spawn-at-startup "ags" "run"
spawn-at-startup "${pkgs.mate-polkit}/bin/polkit-mate"
prefer-no-csd
hotkey-overlay {
skip-at-startup
}
hotkey-overlay {
skip-at-startup
}
gestures {
hot-corners {
off
}
}
layout {
gaps 5
border {
off
}
focus-ring {
width 4
active-color "rgba(0, 47, 95, 238)"
inactive-color "rgba(255, 255, 255, 0)"
}
}
input {
mouse {
accel-speed 0.5
}
touchpad {
tap
}
keyboard {
xkb {
options "compose:rctrl"
gestures {
hot-corners {
off
}
}
focus-follows-mouse max-scroll-amount="10%"
warp-mouse-to-focus
}
${if scale != null then ''
output "eDP-1" {
scale ${toString scale}
}
'' else ""} window-rule {
match app-id="vicinae"
open-floating true
}
binds {
// General Binds
Mod+Return { spawn "sh" "-c" "${launch_terminal}/bin/launch_terminal $(niri msg --json focused-window | ${pkgs.jq}/bin/jq .pid)"; }
Mod+Shift+Return { spawn "${terminal}"; }
Mod+Q { close-window; }
Mod+A { spawn "${nautilus}"; }
Mod+B { spawn "Helium"; }
Mod+M { maximize-column; }
Mod+F {maximize-window-to-edges;}
Mod+Tab { toggle-overview; }
// Vicinae Binds
Mod+C { spawn "vicinae" "vicinae://extensions/vicinae/clipboard/history"; }
Mod+N { spawn "vicinae" "vicinae://extensions/vicinae/wm/switch-windows"; }
Mod+Escape { spawn "vicinae" "open" "-q" "Power Management "; }
Mod+Space { spawn "vicinae" "toggle"; }
layout {
gaps 5
border {
off
}
focus-ring {
width 4
active-color "rgba(0, 47, 95, 238)"
inactive-color "rgba(255, 255, 255, 0)"
}
}
Mod+Comma { consume-or-expel-window-left; }
Mod+Period { consume-or-expel-window-right; }
input {
mouse {
accel-speed 0.5
}
touchpad {
tap
}
keyboard {
xkb {
options "compose:rctrl"
}
}
focus-follows-mouse max-scroll-amount="10%"
warp-mouse-to-focus
}
${
if scale != null
then ''
output "eDP-1" {
scale ${toString scale}
}
''
else ""
} window-rule {
match app-id="vicinae"
open-floating true
}
Mod+Alt+H { set-column-width "-5%"; }
Mod+Alt+L { set-column-width "+5%"; }
Mod+Alt+K { set-window-height "-5%"; }
Mod+Alt+J { set-window-height "+5%"; }
binds {
// General Binds
Mod+Return { spawn "sh" "-c" "${launch_terminal}/bin/launch_terminal $(niri msg --json focused-window | ${pkgs.jq}/bin/jq .pid)"; }
Mod+Shift+Return { spawn "${terminal}"; }
Mod+Q { close-window; }
Mod+A { spawn "${nautilus}"; }
Mod+B { spawn "Helium"; }
Mod+M { maximize-column; }
Mod+F {maximize-window-to-edges;}
Mod+Tab { toggle-overview; }
// Movement
Mod+H { focus-column-left; }
Mod+J { focus-window-down; }
Mod+K { focus-window-up; }
Mod+L { focus-column-right; }
// Vicinae Binds
Mod+C { spawn "vicinae" "vicinae://launch/clipboard/history"; }
Mod+N { spawn "vicinae" "vicinae://launch/wm/switch-windows"; }
Mod+Escape { spawn "vicinae" "open" "-q" "Power Management "; }
Mod+Space { spawn "vicinae" "toggle"; }
Mod+Shift+H { move-column-left; }
Mod+Shift+L { move-column-right; }
Mod+Shift+J { move-window-down; }
Mod+Shift+K { move-window-up; }
Mod+Comma { consume-or-expel-window-left; }
Mod+Period { consume-or-expel-window-right; }
// Workspaces
Mod+Shift+U { move-column-to-workspace-down; }
Mod+Shift+I { move-column-to-workspace-up; }
Mod+Alt+H { set-column-width "-5%"; }
Mod+Alt+L { set-column-width "+5%"; }
Mod+Alt+K { set-window-height "-5%"; }
Mod+Alt+J { set-window-height "+5%"; }
Mod+I { focus-workspace-up; }
Mod+U { focus-workspace-down; }
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; }
// Movement
Mod+H { focus-column-left; }
Mod+J { focus-window-down; }
Mod+K { focus-window-up; }
Mod+L { focus-column-right; }
// Move to workspace
Mod+Shift+1 { move-column-to-workspace 1; }
Mod+Shift+2 { move-column-to-workspace 2; }
Mod+Shift+3 { move-column-to-workspace 3; }
Mod+Shift+4 { move-column-to-workspace 4; }
Mod+Shift+5 { move-column-to-workspace 5; }
Mod+Shift+6 { move-column-to-workspace 6; }
Mod+Shift+7 { move-column-to-workspace 7; }
Mod+Shift+8 { move-column-to-workspace 8; }
Mod+Shift+9 { move-column-to-workspace 9; }
Mod+Shift+H { move-column-left; }
Mod+Shift+L { move-column-right; }
Mod+Shift+J { move-window-down; }
Mod+Shift+K { move-window-up; }
Print { screenshot; }
Ctrl+Alt+L {spawn "${pkgs.hyprlock}/bin/hyprlock"; }
// Workspaces
Mod+Shift+U { move-column-to-workspace-down; }
Mod+Shift+I { move-column-to-workspace-up; }
XF86MonBrightnessUp { spawn "${brightnessctl}" "set" "+10%"; }
XF86MonBrightnessDown { spawn "${brightnessctl}" "set" "10%-"; }
Mod+I { focus-workspace-up; }
Mod+U { focus-workspace-down; }
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; }
// Volume
XF86AudioRaiseVolume { spawn "${wpctl}" "set-volume" "@DEFAULT_AUDIO_SINK@" "10%+" "--limit" "1.0"; }
XF86AudioLowerVolume { spawn "${wpctl}" "set-volume" "@DEFAULT_AUDIO_SINK@" "10%-"; }
XF86AudioMute { spawn "${wpctl}" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; }
XF86AudioMicMute { spawn "${wpctl}" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; }
// Move to workspace
Mod+Shift+1 { move-column-to-workspace 1; }
Mod+Shift+2 { move-column-to-workspace 2; }
Mod+Shift+3 { move-column-to-workspace 3; }
Mod+Shift+4 { move-column-to-workspace 4; }
Mod+Shift+5 { move-column-to-workspace 5; }
Mod+Shift+6 { move-column-to-workspace 6; }
Mod+Shift+7 { move-column-to-workspace 7; }
Mod+Shift+8 { move-column-to-workspace 8; }
Mod+Shift+9 { move-column-to-workspace 9; }
// Media
XF86AudioNext { spawn "${playerctl}" "next"; }
XF86AudioPrev { spawn "${playerctl}" "previous"; }
Mod+XF86AudioMute { spawn "${playerctl}" "play-pause"; }
Mod+XF86AudioRaiseVolume { spawn "${playerctl}" "next"; }
Mod+XF86AudioLowerVolume { spawn "${playerctl}" "previous"; }
}
Print { screenshot; }
Ctrl+Alt+L {spawn "${pkgs.hyprlock}/bin/hyprlock"; }
XF86MonBrightnessUp { spawn "${brightnessctl}" "set" "+10%"; }
XF86MonBrightnessDown { spawn "${brightnessctl}" "set" "10%-"; }
// Volume
XF86AudioRaiseVolume { spawn "${wpctl}" "set-volume" "@DEFAULT_AUDIO_SINK@" "10%+" "--limit" "1.0"; }
XF86AudioLowerVolume { spawn "${wpctl}" "set-volume" "@DEFAULT_AUDIO_SINK@" "10%-"; }
XF86AudioMute { spawn "${wpctl}" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; }
XF86AudioMicMute { spawn "${wpctl}" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; }
// Media
XF86AudioNext { spawn "${playerctl}" "next"; }
XF86AudioPrev { spawn "${playerctl}" "previous"; }
Mod+XF86AudioMute { spawn "${playerctl}" "play-pause"; }
Mod+XF86AudioRaiseVolume { spawn "${playerctl}" "next"; }
Mod+XF86AudioLowerVolume { spawn "${playerctl}" "previous"; }
}
'';
}