user services + wm in hjr, some qs workaround

This commit is contained in:
atagen 2025-10-29 12:27:35 +11:00
parent 9e3aa574eb
commit cb44e16d76
19 changed files with 393 additions and 361 deletions

View file

@ -2,6 +2,7 @@
pkgs,
inputs,
getFlakePkg',
mainUser,
...
}:
{

View file

@ -51,12 +51,7 @@ in
echo (fish_prompt_pwd_dir_length=100 prompt_pwd): $argv;
end
function fish_command_not_found
set args (count $argv)
if [ $args -gt 1 ]
${comma} "$argv[1]" "$argv[2..]"
else
${comma} "$argv[1]"
end
${comma} $argv
end
'';
};

84
flake.lock generated
View file

@ -127,11 +127,11 @@
},
"flake-compat_3": {
"locked": {
"lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"lastModified": 1747046372,
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github"
},
"original": {
@ -212,11 +212,11 @@
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1743550720,
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
"lastModified": 1756770412,
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
"rev": "4524271976b625a4a605beefd893f270620fd751",
"type": "github"
},
"original": {
@ -368,18 +368,14 @@
"treefmt-nix": "treefmt-nix_2"
},
"locked": {
"lastModified": 1755081855,
"narHash": "sha256-o751fp3GYDZ2brb+DHRxX6JGTctvCvNqlG+C+oi/nVI=",
"owner": "snugnug",
"repo": "hjem-rum",
"rev": "3cfa85f8614a01baf5e49829ee755d14d3390259",
"type": "github"
"lastModified": 1761625305,
"narHash": "sha256-BXkv+e0mQ21CpXuKFVrxeRmdzmanj7h/XGv02mvVQ5M=",
"path": "/home/bolt/code/etc/hjem-rum",
"type": "path"
},
"original": {
"owner": "snugnug",
"ref": "pull/128/head",
"repo": "hjem-rum",
"type": "github"
"path": "/home/bolt/code/etc/hjem-rum",
"type": "path"
}
},
"hjem_2": {
@ -391,11 +387,11 @@
"smfh": "smfh_2"
},
"locked": {
"lastModified": 1754244549,
"narHash": "sha256-ByZ81/QttgSS1mQYttnaoMw2WnqMvQ6HCxBPOioKrOA=",
"lastModified": 1756255328,
"narHash": "sha256-WJ70Dv+tJjIl7mMOqUgcdcz+RrujDRoeKptiU6oh1lI=",
"owner": "feel-co",
"repo": "hjem",
"rev": "ee5c671eeba5cddd94f2c7de3c36f019fae5854e",
"rev": "2426d6ad20e767895e936ed0c9563cc4e2b6c96f",
"type": "github"
},
"original": {
@ -412,11 +408,11 @@
]
},
"locked": {
"lastModified": 1761266473,
"narHash": "sha256-QxCyKWBmuzI+eMhYV1JmbZsiUnBNATRP1EW34OBt5Vg=",
"lastModified": 1761513701,
"narHash": "sha256-w7qOcQb1FSMZASvWe01r99QqZ5LnHO0k3rgs5ryyig0=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "5c71d4a730bd3c972befff343bb074421e345937",
"rev": "255b6a0ef2f488a2fad051361699cc67db57338c",
"type": "github"
},
"original": {
@ -453,11 +449,11 @@
]
},
"locked": {
"lastModified": 1761202163,
"narHash": "sha256-6RySf5VQElrm7RYGWxlIkNttemDp4FF0aH+LX435G2Y=",
"lastModified": 1761376732,
"narHash": "sha256-wavx9gROyuRZKSvPCCBh78gOur7o88ndRi545njNRrM=",
"owner": "Jovian-Experiments",
"repo": "Jovian-NixOS",
"rev": "47976126007d9658ca4ac4dd933bea8846170fd9",
"rev": "8bef482d65425d0cff6b20c11a5f054f85569a38",
"type": "github"
},
"original": {
@ -553,11 +549,11 @@
]
},
"locked": {
"lastModified": 1748103964,
"narHash": "sha256-aRFl6I3x1aKzeOBaD/OJHYv+OQ+qE+3FR9uKhIvfW+A=",
"lastModified": 1758017058,
"narHash": "sha256-kj0AsPNRuW/nA+ck/mqE/auRrla3Tjb7mv4Kml+6PP0=",
"owner": "feel-co",
"repo": "ndg",
"rev": "c556c4cbcba61474bf8a342a31a2d94cbefd8986",
"rev": "5b16cb2a4b4233af289355b9ecf76af9f05f8be1",
"type": "github"
},
"original": {
@ -791,11 +787,11 @@
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1743296961,
"narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=",
"lastModified": 1754788789,
"narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa",
"rev": "a73b9c743612e4244d865a2fdee11865283c04e6",
"type": "github"
},
"original": {
@ -867,17 +863,17 @@
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1761468971,
"narHash": "sha256-vY2OLVg5ZTobdroQKQQSipSIkHlxOTrIF1fsMzPh8w8=",
"lastModified": 1760258180,
"narHash": "sha256-Lz6L4+6e/Uz9hGGs6mwvvXserYM3TjdDK5qmyHB7QXo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "78e34d1667d32d8a0ffc3eba4591ff256e80576e",
"rev": "22c5c52ca2d2cc1692bb74c873965cc1d9fa31d3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"rev": "22c5c52ca2d2cc1692bb74c873965cc1d9fa31d3",
"type": "github"
}
},
@ -962,11 +958,11 @@
},
"nixpkgs_15": {
"locked": {
"lastModified": 1761114652,
"narHash": "sha256-f/QCJM/YhrV/lavyCVz8iU3rlZun6d+dAiC3H+CDle4=",
"lastModified": 1761373498,
"narHash": "sha256-Q/uhWNvd7V7k1H1ZPMy/vkx3F8C13ZcdrKjO7Jv7v0c=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "01f116e4df6a15f4ccdffb1bcd41096869fb385c",
"rev": "6a08e6bb4e46ff7fcbb53d409b253f6bad8a28ce",
"type": "github"
},
"original": {
@ -1129,11 +1125,11 @@
"rust-overlay": "rust-overlay_4"
},
"locked": {
"lastModified": 1761326352,
"narHash": "sha256-DoR4mHaStX6Dg2Gilc2Dqr/XaxXmQTOQS5cZ5xKPQJY=",
"lastModified": 1761548673,
"narHash": "sha256-/513FfwpfbeppPdGDbmLhgcctLqEHdx8Rs92jImKA3M=",
"owner": "chaotic-cx",
"repo": "nyx",
"rev": "6492dc810f2f250ef95096910a44f03eea6a594f",
"rev": "25ef687b6a0a13e9d39c3949e7de05873f5571a9",
"type": "github"
},
"original": {
@ -1255,11 +1251,11 @@
]
},
"locked": {
"lastModified": 1761273263,
"narHash": "sha256-6d6ojnu6A6sVxIjig8OL6E1T8Ge9st3YGgVwg5MOY+Q=",
"lastModified": 1761446259,
"narHash": "sha256-JNNOtIIVIX+yBIsh1rq1Nxhc1LZq168vuQB5sqrZbCY=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "28405834d4fdd458d28e123fae4db148daecec6f",
"rev": "95098bb4d55ebe167c082fc40705a73ef76b58e4",
"type": "github"
},
"original": {

View file

@ -5,7 +5,7 @@
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.05";
nixpkgs-stable.url = "github:NixOS/nixpkgs/22c5c52ca2d2cc1692bb74c873965cc1d9fa31d3";
helix.url = "github:helix-editor/helix";
@ -25,7 +25,7 @@
};
hjem-rum = {
url = "github:snugnug/hjem-rum/pull/128/head";
url = "github:snugnug/hjem-rum";
inputs.nixpkgs.follows = "nixpkgs";
};

View file

@ -1,122 +1,137 @@
_: { }
# TODO rewrite this with hjem-rum
# {
# pkgs,
# lib,
# config,
# inputs,
# scope,
# ...
# }:
# let
# inherit (lib)
# range
# nameValuePair
# mapAttrs'
# mergeAttrsList
# ;
# inherit (builtins) listToAttrs replaceStrings;
# inherit (config.hm.lib.niri) actions;
# hBinds = {
# H = "left";
# L = "right";
# };
# vBinds = {
# J = "down";
# K = "up";
# };
# makeDirBind =
# mods: cmd: keys:
# mapAttrs' (
# key: dir:
# nameValuePair "${mods}+${key}" {
# action = actions."${replaceStrings [ "$DIR" ] [ "${dir}" ] "${cmd}"}";
# }
# ) keys;
# makeWsBind =
# mods: cmd:
# listToAttrs (
# map (num: {
# name = "${mods}+${builtins.toString num}";
# value = {
# action."${cmd}" = num;
# };
# }) (range 1 6)
# );
# tagctl = lib.getExe' inputs.niri-tag.packages.${pkgs.system}.unstable "tagctl";
# makeTagBind =
# mods: cmd:
# listToAttrs (
# map (num: {
# name = "${mods}+${builtins.toString num}";
# value = {
# action.spawn = [
# tagctl
# cmd
# (builtins.toString num)
# ];
# };
# }) (range 1 6)
# );
# in
# scope "hm.programs.niri.settings" {
# binds = mergeAttrsList [
# {
# "Mod+D".action.spawn = [
# "qs"
# "ipc"
# "call"
# "launch"
# "toggle"
# ];
# "Mod+F".action.spawn = "firefox";
# "Mod+E".action.spawn = "nautilus";
# "Mod+Return".action.spawn = "foot";
# "Mod+Shift+E".action.spawn = "wlogout";
# "Mod+Equal".action.spawn = "bitwarden";
# "Mod+Shift+Q".action = actions.close-window;
# "Mod+Shift+S".action = actions.screenshot;
# "Mod+R".action = actions.switch-preset-column-width;
# "Mod+Shift+R".action = actions.maximize-column;
# "XF86AudioRaiseVolume".action.spawn = [
# "volumectl"
# "-u"
# "up"
# ];
# "XF86AudioLowerVolume".action.spawn = [
# "volumectl"
# "-u"
# "down"
# ];
# "XF86AudioMute".action.spawn = [
# "volumectl"
# "toggle-mute"
# ];
# "XF86AudioStop".action.spawn = [
# "playerctl"
# "stop"
# ];
# "XF86AudioPlay".action.spawn = [
# "playerctl"
# "play-pause"
# ];
# "XF86AudioNext".action.spawn = [
# "playerctl"
# "next"
# ];
# "XF86AudioPrev".action.spawn = [
# "playerctl"
# "previous"
# ];
# "Mod+Space".action = actions.toggle-window-floating;
# }
# (makeDirBind "Mod" "focus-window-$DIR" vBinds)
# (makeDirBind "Mod" "focus-column-or-monitor-$DIR" hBinds)
# (makeDirBind "Mod+Shift" "move-column-$DIR-or-to-monitor-$DIR" hBinds)
# (makeDirBind "Mod+Ctrl" "consume-or-expel-window-$DIR" hBinds)
# (makeDirBind "Mod+Ctrl" "move-window-$DIR" vBinds)
# (makeTagBind "Mod" "toggle-tag")
# (makeTagBind "Mod+Shift" "toggle")
# (makeTagBind "Mod+Ctrl" "exclusive-tag")
# ];
# }
{
lib,
config,
scope,
...
}:
let
inherit (lib)
range
nameValuePair
mapAttrs'
mergeAttrsList
;
inherit (builtins) listToAttrs replaceStrings;
hBinds = {
H = "left";
L = "right";
};
vBinds = {
J = "down";
K = "up";
};
makeDirBind =
mods: cmd: keys:
mapAttrs' (
key: dir:
nameValuePair "${mods}+${key}" {
action = "${replaceStrings [ "$DIR" ] [ "${dir}" ] "${cmd}"}";
}
) keys;
makeTagBind =
mods: cmd:
listToAttrs (
map (num: {
name = "${mods}+${builtins.toString (lib.mod num 10)}";
value = {
spawn = [
"tagctl"
cmd
(builtins.toString num)
];
};
}) (range 1 10)
);
getApp = app: lib.singleton (lib.getExe config.apps.${app});
in
scope "user.desktops.niri.binds"
<| mergeAttrsList [
{
"Mod+Grave".action = "focus-monitor-next";
"Mod+Shift+Grave".action = "move-column-to-monitor-next";
"Mod+Minus".spawn = [
"tagctl"
"toggle-tag"
"99"
];
"Mod+Equal".spawn = [
"tagctl"
"toggle-tag"
"101"
];
"Mod+D".spawn = [
"qs"
"ipc"
"call"
"launch"
"toggle"
];
"Mod+F".spawn = (getApp "browser");
"Mod+E".spawn = (getApp "fm");
"Mod+Return".spawn = (getApp "terminal");
"Mod+Shift+E".spawn = [
"qs"
"ipc"
"call"
"logout"
"toggle"
];
# "Mod+Equal".spawn = (getAppName "passwordManager"); # niri-tag needs proper scratchpads smh
"Mod+Shift+Q".action = "close-window";
"Mod+Shift+S".action = "screenshot";
"Mod+R".action = "switch-preset-column-width";
"Mod+Shift+R".action = "maximize-column";
"XF86AudioLowerVolume".spawn = [
"volumectl"
"-u"
"down"
];
"XF86AudioMute".spawn = [
"volumectl"
"toggle-mute"
];
"XF86AudioNext".spawn = [
"playerctl"
"next"
];
"XF86AudioPlay".spawn = [
"playerctl"
"play-pause"
];
"XF86AudioPrev".spawn = [
"playerctl"
"previous"
];
"XF86AudioRaiseVolume".spawn = [
"volumectl"
"-u"
"up"
];
"XF86AudioStop".spawn = [
"playerctl"
"stop"
];
"XF86MonBrightnessUp".spawn = [
"brightnessctl"
"s"
"5%+"
];
"XF86MonBrightnessDown".spawn = [
"brightnessctl"
"s"
"5%-"
];
"Mod+Space".action = "switch-focus-between-floating-and-tiling";
"Mod+Shift+Space".action = "toggle-window-floating";
"Mod+Ctrl+Space".action = "fullscreen-window";
"Mod+C".action = "center-window";
}
(makeDirBind "Mod" "focus-window-$DIR" vBinds)
(makeDirBind "Mod" "focus-column-or-monitor-$DIR" hBinds)
(makeDirBind "Mod+Shift" "consume-or-expel-window-$DIR" hBinds)
(makeDirBind "Mod+Ctrl" "move-column-$DIR-or-to-monitor-$DIR" hBinds)
(makeDirBind "Mod+Ctrl" "move-window-$DIR" vBinds)
(makeTagBind "Mod" "toggle-tag")
(makeTagBind "Mod+Shift" "toggle")
(makeTagBind "Mod+Ctrl" "exclusive-tag")
]

View file

@ -22,7 +22,8 @@ let
Status = "locked";
};
in
scope "programs.firefox" {
(scope "apps.browser" <| pkgs.firefox)
// scope "programs.firefox" {
enable = true;
policies = {

View file

@ -0,0 +1,55 @@
input {
keyboard {
xkb {
layout ""
model ""
rules ""
variant ""
}
repeat-delay 600
repeat-rate 25
track-layout "global"
}
mouse {
accel-profile "flat"
}
warp-mouse-to-focus
focus-follows-mouse
}
screenshot-path "~/screenshots/%Y-%m-%d_%H-%M-%S.png"
prefer-no-csd
layout {
gaps %GAPS%
struts {
left 0
right 0
top 0
bottom 0
}
focus-ring {
width %BORDER%
active-color "%ACTIVE%"
inactive-color "%INACTIVE%"
}
border { off; }
default-column-width { proportion 0.500000; }
preset-column-widths {
proportion 0.666667
proportion 0.500000
proportion 0.333333
}
center-focused-column "never"
always-center-single-column
}
cursor {
xcursor-theme "%CURSOR%"
xcursor-size 16
hide-when-typing
hide-after-inactive-ms 5000
}
hotkey-overlay { skip-at-startup; }
window-rule {
geometry-corner-radius 0.000000 %ROUNDING%.000000 0.000000 %ROUNDING%.000000
clip-to-geometry true
}
xwayland-satellite { path "%SATELLITE%"; }

View file

@ -6,7 +6,7 @@ import Quickshell.Io
Singleton {
id: data
property var tags: {}
property var tags: ({})
property var keys: []
Timer {
id: reconnectTimer

View file

@ -9,17 +9,20 @@
}:
let
inherit (lib) getExe getExe';
stable = inputs.nixpkgs-stable;
inherit (stable.legacyPackages.x86_64-linux) quickshell;
in
{
# quickshell stuff
user.packages = getPkgs {
# quickshell stuff
inherit (pkgs.kdePackages) qtbase qtdeclarative;
inherit (pkgs) wl-clipboard quickshell;
inherit (pkgs) wl-clipboard;
inherit quickshell;
};
quick.services = {
swaync = "${getExe pkgs.swaynotificationcenter}";
quickshell = "${getExe pkgs.quickshell}";
quickshell = "${getExe quickshell}";
swayidle =
let
niri = getFlakePkg' inputs.niri "niri-unstable";

74
graphical/desktop/wm.nix Normal file
View file

@ -0,0 +1,74 @@
{
mainUser,
inputs,
getFlakePkg',
lib,
config,
...
}:
let
niri = (getFlakePkg' inputs.niri "niri-unstable");
xwayland-satellite = (getFlakePkg' inputs.niri "xwayland-satellite-unstable");
inherit (config) rice;
in
{
imports = [
inputs.niri.nixosModules.niri
inputs.niri-tag.nixosModules.niri-tag
];
user.desktops.niri = {
enable = true;
config =
let
template = builtins.readFile ./niri.kdl;
baseConfig =
with rice;
lib.replaceStrings
[
"%CURSOR%"
"%ROUNDING%"
"%GAPS%"
"%BORDER%"
"%ACTIVE%"
"%INACTIVE%"
"%SATELLITE%"
]
[
cursor.name
(toString borders.rounding)
(toString borders.gaps)
(toString borders.thickness)
palette.shortHex.bright.yellow
palette.shortHex.normal.yellow
(lib.getExe xwayland-satellite)
]
template;
in
baseConfig;
};
user.packages = [
niri
xwayland-satellite
];
services.greetd = {
enable = true;
restart = false;
settings =
let
session = {
command = "niri-session";
user = "${mainUser}";
};
in
{
default_session = session;
initial_session = session;
};
};
programs.niri = {
enable = true;
package = niri;
};
services.niri-tag.enable = true;
}

View file

@ -8,7 +8,7 @@
scope "user" {
programs = {
direnv = {
enable = false;
enable = true;
integrations.fish.enable = true;
};
@ -19,15 +19,12 @@ scope "user" {
name = "atagen";
email = "boss@atagen.co";
};
# merge = {
# conflictstyle = "diff3";
# };
init = {
defaultBranch = "main";
};
url = {
"https://github.com/".insteadOf = "github:";
"https://git.atagen.co/".insteadOf = "atagen:";
"https://git.atagen.co/atagen".insteadOf = "atagen:";
"https://codeberg.org/".insteadOf = "codeberg:";
};
credential.helper = "rbw";

View file

@ -7,7 +7,7 @@
qt = {
enable = true;
style = "adwaita-dark";
# platformTheme = "gnome";
# platformTheme = "gnome"; # broken in unstable ?
};
user.misc.gtk =

View file

@ -2,60 +2,57 @@
config,
lib,
mainUser,
scope,
...
}:
{
options = {
quick = {
services =
with lib;
mkOption {
type = with types; attrsOf str;
default = { };
};
oneShots =
with lib;
mkOption {
type = with types; attrsOf str;
default = { };
};
scope "options.quick" {
services =
with lib;
mkOption {
type = with types; attrsOf str;
default = { };
};
oneShots =
with lib;
mkOption {
type = with types; attrsOf str;
default = { };
};
};
config = {
systemd.user.services =
builtins.mapAttrs (name: cmd: {
environment.PATH = lib.mkForce "/run/current-system/sw/bin:/run/current-system/sw/sbin:/etc/profiles/per-user/${mainUser}/bin:/etc/profiles/per-user/${mainUser}/sbin";
unitConfig = {
Description = "${name}";
Requires = [
"graphical-session.target"
];
After = [
"graphical-session.target"
"niri.target"
];
PartOf = [ "graphical-session.target" ];
};
serviceConfig = {
ExecStart = cmd;
};
wantedBy = [ "graphical-session.target" ];
}) config.quick.services
// builtins.mapAttrs (name: cmd: {
unitConfig = {
Description = "${name}";
Requires = [ "graphical-session.target" ];
After = [
"graphical-session.target"
"niri.target"
];
};
serviceConfig = {
ExecStart = cmd;
Type = "oneshot";
};
wantedBy = [ "graphical-session.target" ];
}) config.quick.oneShots;
};
}
// scope "config.user.systemd" {
enable = true;
services =
builtins.mapAttrs (name: cmd: {
environment.PATH = lib.mkForce "/run/current-system/sw/bin:/run/current-system/sw/sbin:/etc/profiles/per-user/${mainUser}/bin:/etc/profiles/per-user/${mainUser}/sbin";
unitConfig = {
Description = "${name}";
Requires = [
"graphical-session.target"
];
After = [
"graphical-session.target"
"niri.target"
];
PartOf = [ "graphical-session.target" ];
};
serviceConfig = {
ExecStart = cmd;
};
wantedBy = [ "graphical-session.target" ];
}) config.quick.services
// builtins.mapAttrs (name: cmd: {
unitConfig = {
Description = "${name}";
Requires = [ "graphical-session.target" ];
After = [
"graphical-session.target"
"niri.target"
];
};
serviceConfig = {
ExecStart = cmd;
Type = "oneshot";
};
wantedBy = [ "graphical-session.target" ];
}) config.quick.oneShots;
}

View file

@ -36,9 +36,9 @@
};
borders = {
thickness = 6;
rounding = 0;
gaps = 48;
thickness = 4;
rounding = 10;
gaps = 64;
};
bg = {
@ -59,7 +59,7 @@
plymouth = {
theme = "starship";
font = "${config.rice.fonts.sans.package}/share/fonts/truetype/InriaSans-Regular.ttf";
font = "${config.rice.fonts.sans.package}/share/fonts/truetype/MSW98UI-Regular.ttf";
themePackages = [
inputs.hudcore.packages.${pkgs.system}.default
];

View file

@ -1,112 +0,0 @@
{
mainUser,
inputs,
getFlakePkg',
# config,
...
}:
let
# inherit (config) rice;
niri = (getFlakePkg' inputs.niri "niri-unstable");
xwayland-satellite = (getFlakePkg' inputs.niri "xwayland-satellite-unstable");
in
{
imports = [
inputs.niri.nixosModules.niri
inputs.niri-tag.nixosModules.niri-tag
];
# user.desktops.niri = {
# enable = true;
# configFile = ./desktop/niri-config.kdl;
# };
environment.files."/home/${mainUser}/.config/niri/config.kdl" = {
uid = 1000;
gid = 100;
source = "/home/${mainUser}/.nix/graphical/desktop/niri-config.kdl";
};
# user.xdg.config.files."niri/config.kdl".source = ./desktop/niri-config.kdl;
user.packages = [
niri
xwayland-satellite
];
services.greetd = {
enable = true;
restart = false;
settings =
let
session = {
command = "niri-session";
user = "${mainUser}";
};
in
{
default_session = session;
initial_session = session;
};
};
programs.niri = {
enable = true;
package = niri;
};
services.niri-tag.enable = true;
}
# old hm config, TODO template from this
# {
# values = {
# input = {
# warp-mouse-to-focus.enable = true;
# };
# cursor = {
# hide-after-inactive-ms = 5000;
# hide-when-typing = true;
# size = 16;
# theme = rice.cursor.name;
# };
# layout = {
# always-center-single-column = true;
# gaps = config.rice.borders.gaps;
# default-column-width.proportion = 0.5;
# preset-column-widths = map (p: { proportion = p; }) [
# (2.0 / 3.0)
# 0.5
# (1.0 / 3.0)
# ];
# focus-ring =
# let
# pal = rice.palette.hex;
# in
# {
# active = {
# color = pal.bright.yellow;
# };
# inactive = {
# color = pal.normal.black;
# };
# };
# };
# prefer-no-csd = true;
# hotkey-overlay.skip-at-startup = true;
# window-rules =
# let
# v = 10.0;
# in
# [
# {
# geometry-corner-radius = {
# bottom-left = v;
# bottom-right = 0.0;
# top-left = 0.0;
# top-right = v;
# };
# clip-to-geometry = true;
# }
# ];
# xwayland-satellite = {
# enable = true;
# path = lib.getExe inputs.niri.packages.${pkgs.system}.xwayland-satellite-unstable;
# };
# };
# }
#

View file

@ -0,0 +1,10 @@
output "DP-1" {
scale 1
transform "90"
}
output "DP-2" {
scale 1
transform "normal"
variable-refresh-rate on-demand=false
focus-at-startup
}

View file

@ -0,0 +1,3 @@
_: {
user.desktops.niri.config = builtins.readFile ./extra-niri.kdl;
}

View file

@ -1,5 +1,5 @@
{
inputs,
# inputs,
config,
scope,
...
@ -11,8 +11,8 @@ scope "services" {
};
open-webui = {
package = inputs.nixpkgs-stable.legacyPackages.x86_64-linux.open-webui;
enable = true;
# package = inputs.nixpkgs-stable.legacyPackages.x86_64-linux.open-webui;
enable = false;
port = 8088;
environment = {
DO_NOT_TRACK = "True";

View file

@ -24,10 +24,6 @@ in
getFlakePkg' = p: n: p.packages.${info.system}.${n};
};
modules = [
# (_: {
# disabledModules = [ "services/misc/open-webui.nix" ];
# imports = [ "${inputs.nixpkgs-stable}/nixos/modules/services/misc/open-webui.nix" ];
# })
inputs.arbys.nixosModules.arbys
inputs.hjem.nixosModules.hjem
(
@ -42,6 +38,7 @@ in
"packages"
"files"
"xdg"
"systemd"
]);
}
)