niri fully in home manager now

This commit is contained in:
William 2025-10-20 10:29:16 -03:00
parent f2921c030b
commit 0758864078
7 changed files with 248 additions and 22 deletions

View file

@ -43,7 +43,9 @@
deploy-rs.url = "github:serokell/deploy-rs"; deploy-rs.url = "github:serokell/deploy-rs";
niri.url = "github:sodiboo/niri-flake"; niri-flake.url = "github:sodiboo/niri-flake";
niri.url = "github:baduhai/niri/auto-center-when-space-available";
}; };
outputs = outputs =

View file

@ -10,6 +10,7 @@ in
flake.homeConfigurations = { flake.homeConfigurations = {
"user@rotterdam" = mkHome { "user@rotterdam" = mkHome {
username = "user"; username = "user";
hostname = "rotterdam";
tags = [ tags = [
"btop" "btop"
"desktop" "desktop"
@ -25,6 +26,7 @@ in
"user@io" = mkHome { "user@io" = mkHome {
username = "user"; username = "user";
hostname = "io";
tags = [ tags = [
"btop" "btop"
"desktop" "desktop"

View file

@ -1,4 +1,5 @@
{ {
config,
inputs, inputs,
lib, lib,
pkgs, pkgs,
@ -7,7 +8,7 @@
{ {
imports = [ imports = [
inputs.niri.nixosModules.niri inputs.niri-flake.nixosModules.niri
inputs.nix-flatpak.nixosModules.nix-flatpak inputs.nix-flatpak.nixosModules.nix-flatpak
]; ];
@ -72,11 +73,11 @@
enable = true; enable = true;
settings = { settings = {
default_session = { default_session = {
command = "${lib.getExe pkgs.tuigreet} --time --remember --asterisks --cmd ${pkgs.niri}/bin/niri-session"; command = "${lib.getExe pkgs.tuigreet} --time --remember --asterisks --cmd ${config.programs.niri.package}/bin/niri-session";
user = "greeter"; user = "greeter";
}; };
initial_session = { initial_session = {
command = "${lib.getExe pkgs.niri}"; command = "${config.programs.niri.package}/bin/niri-session";
user = "user"; user = "user";
}; };
}; };
@ -116,10 +117,9 @@
programs = { programs = {
niri = { niri = {
enable = true; enable = true;
package = pkgs.niri; package = inputs.niri.packages.${pkgs.system}.niri;
}; };
dconf.enable = true; dconf.enable = true;
kdeconnect.enable = true;
appimage = { appimage = {
enable = true; enable = true;
binfmt = true; binfmt = true;

View file

@ -1,25 +1,11 @@
{ inputs, pkgs, ... }: { inputs, pkgs, ... }:
{ {
imports = [
inputs.dms.homeModules.dankMaterialShell.default
inputs.zen-browser.homeModules.beta
];
fonts.fontconfig.enable = true; fonts.fontconfig.enable = true;
home.packages = with pkgs; [ xwayland-satellite ]; home.packages = with pkgs; [ xwayland-satellite ];
programs = { programs = {
dankMaterialShell = {
enable = true;
enableVPN = false;
};
zen-browser = {
enable = true;
profiles.william = { };
};
ghostty = { ghostty = {
enable = true; enable = true;
@ -42,6 +28,11 @@
}; };
}; };
services.kdeconnect = {
enable = true;
indicator = true;
};
gtk = { gtk = {
enable = true; enable = true;
gtk3.extraConfig = { gtk3.extraConfig = {

View file

@ -0,0 +1,222 @@
{
inputs,
pkgs,
hostname ? null,
...
}:
let
isRotterdam = hostname == "rotterdam";
in
{
imports = [
inputs.dms.homeModules.dankMaterialShell.default
];
home.packages = with pkgs; [ xwayland-satellite ];
programs.dankMaterialShell = {
enable = true;
enableVPN = false;
};
xdg.configFile."niri/config.kdl".text = ''
input {
keyboard {
xkb {
layout "us"
variant "altgr-intl"
}
}
touchpad {
tap
dwt
drag true
drag-lock
natural-scroll
accel-speed 0.2
accel-profile "flat"
scroll-method "two-finger"
middle-emulation
}
mouse {
natural-scroll
accel-speed 0.2
accel-profile "flat"
}
warp-mouse-to-focus mode="center-xy"
focus-follows-mouse
}
layout {
gaps 8
center-focused-column "never"
auto-center-when-space-available
preset-column-widths {
${
if isRotterdam then
''
proportion 0.33333
proportion 0.5
proportion 0.66667
''
else
''
proportion 0.5
proportion 1
''
}
}
default-column-width { proportion ${if isRotterdam then "0.33333" else "0.5"}; }
focus-ring {
off
}
border {
width 4
active-color "#ffc87f"
inactive-color "#505050"
urgent-color "#9b0000"
}
tab-indicator {
width 4
gap 4
place-within-column
}
struts {
left 8
right 8
}
}
overview {
zoom 0.65
}
spawn-at-startup "bash" "-c" "wl-paste --watch cliphist store &"
spawn-at-startup "dms" "run"
layer-rule {
match namespace="^wallpaper$"
place-within-backdrop true
}
spawn-at-startup "xwayland-satellite"
environment {
DISPLAY ":0"
}
hotkey-overlay {
skip-at-startup
}
prefer-no-csd
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
animations {
slowdown 0.3
}
// open zen at half window width
window-rule {
match app-id="zen"
default-column-width { proportion ${if isRotterdam then "0.5" else "1"}; }
}
window-rule {
geometry-corner-radius 12
clip-to-geometry true
}
config-notification {
disable-failed
}
binds {
Mod+Return { spawn "ghostty"; }
Alt+Space { spawn "dms" "ipc" "call" "spotlight" "toggle"; }
XF86AudioRaiseVolume allow-when-locked=true { spawn "dms" "ipc" "call" "audio" "increment" "5"; }
XF86AudioLowerVolume allow-when-locked=true { spawn "dms" "ipc" "call" "audio" "decrement" "5"; }
XF86AudioMute allow-when-locked=true { spawn "dms" "ipc" "call" "audio" "mute"; }
XF86AudioMicMute allow-when-locked=true { spawn "dms" "ipc" "call" "audio" "micmute"; }
XF86MonBrightnessUp allow-when-locked=true { spawn "dms" "ipc" "call" "brightness" "increment" "5" ""; }
XF86MonBrightnessDown allow-when-locked=true { spawn "dms" "ipc" "call" "brightness" "decrement" "5" ""; }
Ctrl+Alt+Shift+A allow-when-locked=true { spawn "toggleaudiosink"; }
Mod+W repeat=false { toggle-overview; }
Mod+Q { close-window; }
Super+Shift+L hotkey-overlay-title="Lock Screen" { spawn "dms" "ipc" "call" "lock" "lock"; }
Mod+Shift+Q { close-window; }
Mod+V hotkey-overlay-title="Clipboard Manager" { spawn "dms" "ipc" "call" "clipboard" "toggle"; }
Mod+M hotkey-overlay-title="Task Manager" { spawn "dms" "ipc" "call" "processlist" "toggle"; }
Alt+F4 { 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+L { focus-column-right; }
Mod+J { focus-window-down; }
Mod+K { focus-window-up; }
Ctrl+Alt+J { focus-workspace-down; }
Ctrl+Alt+K { focus-workspace-up; }
Ctrl+Alt+Down { focus-workspace-down; }
Ctrl+Alt+Up { focus-workspace-up; }
Mod+Ctrl+Left { move-column-left; }
Mod+Ctrl+Down { move-window-down-or-to-workspace-down; }
Mod+Ctrl+Up { move-window-up-or-to-workspace-up; }
Mod+Ctrl+Right { move-column-right; }
Mod+Ctrl+H { move-column-left; }
Mod+Ctrl+J { move-window-down-or-to-workspace-down; }
Mod+Ctrl+K { move-window-up-or-to-workspace-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; }
Mod+Alt+Left { focus-monitor-left; }
Mod+Alt+Down { focus-monitor-down; }
Mod+Alt+Up { focus-monitor-up; }
Mod+Alt+Right { focus-monitor-right; }
Mod+Alt+H { focus-monitor-left; }
Mod+Alt+J { focus-monitor-down; }
Mod+Alt+K { focus-monitor-up; }
Mod+Alt+L { focus-monitor-right; }
Mod+Alt+Ctrl+Left { move-column-to-monitor-left; }
Mod+Alt+Ctrl+Down { move-column-to-monitor-down; }
Mod+Alt+Ctrl+Up { move-column-to-monitor-up; }
Mod+Alt+Ctrl+Right { move-column-to-monitor-right; }
Mod+Alt+Ctrl+H { move-column-to-monitor-left; }
Mod+Alt+Ctrl+J { move-column-to-monitor-down; }
Mod+Alt+Ctrl+K { move-column-to-monitor-up; }
Mod+Alt+Ctrl+L { move-column-to-monitor-right; }
Mod+Ctrl+U { move-workspace-down; }
Mod+Ctrl+I { move-workspace-up; }
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
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; }
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+F { maximize-column; }
Mod+Ctrl+F { fullscreen-window; }
Mod+C { center-visible-columns; }
Mod+Ctrl+C { center-column; }
Mod+Space { toggle-window-floating; }
Mod+Ctrl+Space { switch-focus-between-floating-and-tiling; }
Mod+T { toggle-column-tabbed-display; }
Print { screenshot-screen; }
Mod+Print { screenshot; }
Ctrl+Print { screenshot-window; }
Mod+Backspace allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
Mod+Shift+E { spawn "dms" "ipc" "call" "powermenu" "toggle"; }
Ctrl+Alt+Delete { spawn "dms" "ipc" "call" "powermenu" "toggle"; }
Mod+Ctrl+P { power-off-monitors; }
}
'';
}

View file

@ -6,7 +6,10 @@
}: }:
{ {
imports = [ inputs.stylix.homeModules.stylix ]; imports = [
inputs.stylix.homeModules.stylix
inputs.zen-browser.homeModules.beta
];
stylix = { stylix = {
enable = true; enable = true;
@ -58,4 +61,9 @@
profileNames = [ "william" ]; profileNames = [ "william" ];
}; };
}; };
programs.zen-browser = {
enable = true;
profiles.william = { };
};
} }

View file

@ -102,6 +102,7 @@ in
mkHome = mkHome =
{ {
username, username,
hostname ? null,
homeDirectory ? "/home/${username}", homeDirectory ? "/home/${username}",
tags ? [ ], tags ? [ ],
extraModules ? [ ], extraModules ? [ ],
@ -165,7 +166,7 @@ in
home-manager.lib.homeManagerConfiguration { home-manager.lib.homeManagerConfiguration {
inherit pkgs; inherit pkgs;
extraSpecialArgs = { extraSpecialArgs = {
inherit inputs; inherit inputs hostname;
userTags = allTags; userTags = allTags;
}; };
modules = allModules ++ [ modules = allModules ++ [