niri fully in home manager now
This commit is contained in:
parent
f2921c030b
commit
0758864078
7 changed files with 248 additions and 22 deletions
|
|
@ -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 =
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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 = {
|
||||||
222
users/modules/desktop/niri.nix
Normal file
222
users/modules/desktop/niri.nix
Normal 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; }
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
|
@ -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 = { };
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 ++ [
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue