diff --git a/common/nix/settings.nix b/common/nix/settings.nix index fb1900a..52677ef 100644 --- a/common/nix/settings.nix +++ b/common/nix/settings.nix @@ -2,6 +2,7 @@ pkgs, inputs, getFlakePkg', + mainUser, ... }: { diff --git a/common/terminal.nix b/common/terminal.nix index fbe21d7..75a34f4 100644 --- a/common/terminal.nix +++ b/common/terminal.nix @@ -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 ''; }; diff --git a/flake.lock b/flake.lock index 986bb34..8d49990 100644 --- a/flake.lock +++ b/flake.lock @@ -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": { diff --git a/flake.nix b/flake.nix index b7f7131..b6979a7 100644 --- a/flake.nix +++ b/flake.nix @@ -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"; }; diff --git a/graphical/binds.nix b/graphical/binds.nix index 89708da..9e390c8 100644 --- a/graphical/binds.nix +++ b/graphical/binds.nix @@ -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") +] diff --git a/graphical/browser.nix b/graphical/browser.nix index f91d12b..76bc08b 100644 --- a/graphical/browser.nix +++ b/graphical/browser.nix @@ -22,7 +22,8 @@ let Status = "locked"; }; in -scope "programs.firefox" { +(scope "apps.browser" <| pkgs.firefox) +// scope "programs.firefox" { enable = true; policies = { diff --git a/graphical/desktop/niri.kdl b/graphical/desktop/niri.kdl new file mode 100644 index 0000000..1a3f066 --- /dev/null +++ b/graphical/desktop/niri.kdl @@ -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%"; } diff --git a/graphical/desktop/quickshell/tags/Tags.qml b/graphical/desktop/quickshell/tags/Tags.qml index ab99b91..e90da61 100644 --- a/graphical/desktop/quickshell/tags/Tags.qml +++ b/graphical/desktop/quickshell/tags/Tags.qml @@ -6,7 +6,7 @@ import Quickshell.Io Singleton { id: data - property var tags: {} + property var tags: ({}) property var keys: [] Timer { id: reconnectTimer diff --git a/graphical/shell.nix b/graphical/desktop/shell.nix similarity index 78% rename from graphical/shell.nix rename to graphical/desktop/shell.nix index 214541f..0243c5a 100644 --- a/graphical/shell.nix +++ b/graphical/desktop/shell.nix @@ -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"; diff --git a/graphical/desktop/wm.nix b/graphical/desktop/wm.nix new file mode 100644 index 0000000..5a16647 --- /dev/null +++ b/graphical/desktop/wm.nix @@ -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; + +} diff --git a/graphical/dev.nix b/graphical/dev.nix index 619324b..6b7d1ae 100644 --- a/graphical/dev.nix +++ b/graphical/dev.nix @@ -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"; diff --git a/graphical/platform-themes.nix b/graphical/platform-themes.nix index 3fea12d..3f99fc9 100644 --- a/graphical/platform-themes.nix +++ b/graphical/platform-themes.nix @@ -7,7 +7,7 @@ qt = { enable = true; style = "adwaita-dark"; - # platformTheme = "gnome"; + # platformTheme = "gnome"; # broken in unstable ? }; user.misc.gtk = diff --git a/graphical/quick-services.nix b/graphical/quick-services.nix index b64f750..4342095 100644 --- a/graphical/quick-services.nix +++ b/graphical/quick-services.nix @@ -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; } diff --git a/graphical/rice.nix b/graphical/rice.nix index 8a554a7..c171ed0 100644 --- a/graphical/rice.nix +++ b/graphical/rice.nix @@ -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 ]; diff --git a/graphical/wm.nix b/graphical/wm.nix deleted file mode 100644 index 0b2a9ed..0000000 --- a/graphical/wm.nix +++ /dev/null @@ -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; -# }; -# }; -# } -# diff --git a/hosts/quiver/extra-niri.kdl b/hosts/quiver/extra-niri.kdl new file mode 100644 index 0000000..8a9977d --- /dev/null +++ b/hosts/quiver/extra-niri.kdl @@ -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 +} diff --git a/hosts/quiver/extra-niri.nix b/hosts/quiver/extra-niri.nix new file mode 100644 index 0000000..917313c --- /dev/null +++ b/hosts/quiver/extra-niri.nix @@ -0,0 +1,3 @@ +_: { + user.desktops.niri.config = builtins.readFile ./extra-niri.kdl; +} diff --git a/hosts/quiver/llm.nix b/hosts/quiver/llm.nix index e38ff11..c74e1fe 100644 --- a/hosts/quiver/llm.nix +++ b/hosts/quiver/llm.nix @@ -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"; diff --git a/lib/create.nix b/lib/create.nix index df8f155..84007e2 100644 --- a/lib/create.nix +++ b/lib/create.nix @@ -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" ]); } )