diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 533ea42..63677c8 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -6,7 +6,10 @@ "Read(//nix/store/**)", "Bash(systemctl --user show-environment)", "Bash(nix eval *)", - "Bash(nix-instantiate --parse /home/jashton/.dotfiles/home/jashton.nix)" + "Bash(nix-instantiate --parse /home/jashton/.dotfiles/home/jashton.nix)", + "Bash(git -C /home/jashton/.dotfiles status)", + "Bash(git -C /home/jashton/.dotfiles log -3 --stat)", + "Bash(gh api *)" ] } } diff --git a/flake.lock b/flake.lock index 8e7bdf5..4875268 100644 --- a/flake.lock +++ b/flake.lock @@ -1,38 +1,129 @@ { "nodes": { - "danksearch": { + "dank-greeter": { + "inputs": { + "dank-qml-common": "dank-qml-common", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1789701749, + "narHash": "sha256-vVJUgNEUa+trNXZFK7DGmuV9HMz4GMiA+f+de6k51hw=", + "owner": "AvengeMedia", + "repo": "dank-greeter", + "rev": "c792f1e13287fed01b1bf1a80654553019f3e0cb", + "type": "github" + }, + "original": { + "owner": "AvengeMedia", + "repo": "dank-greeter", + "type": "github" + } + }, + "dank-qml-common": { + "flake": false, + "locked": { + "lastModified": 1789701545, + "narHash": "sha256-aNZwXDlF1NMIrMtPL3ZtDg5Q8LZY62DjnpPRoe2453g=", + "owner": "AvengeMedia", + "repo": "dank-qml-common", + "rev": "55d3897192f47692b7961812d94ad18004fa0ad8", + "type": "github" + }, + "original": { + "owner": "AvengeMedia", + "repo": "dank-qml-common", + "type": "github" + } + }, + "dank-qml-common_2": { + "flake": false, + "locked": { + "lastModified": 1789755182, + "narHash": "sha256-47BBqvpzKSKo65gRnGirwulJ/c6N3Dg+vEfErwXTu58=", + "owner": "AvengeMedia", + "repo": "dank-qml-common", + "rev": "ff99ec8a93c4a52d792e7020575540582f249ea9", + "type": "github" + }, + "original": { + "owner": "AvengeMedia", + "repo": "dank-qml-common", + "type": "github" + } + }, + "dank-qml-common_3": { + "flake": false, + "locked": { + "lastModified": 1788376015, + "narHash": "sha256-/tT8rTznLADndTwLBzdgzzgfJH1ZhYQibYo5v/F8U+U=", + "owner": "AvengeMedia", + "repo": "dank-qml-common", + "rev": "26396ce432d6c71c3f5367438f96f4a8d667e160", + "type": "github" + }, + "original": { + "owner": "AvengeMedia", + "repo": "dank-qml-common", + "type": "github" + } + }, + "dankcalendar": { + "inputs": { + "dank-qml-common": "dank-qml-common_2", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1789758001, + "narHash": "sha256-9mkKoWExAmPdKT5VEK5oW7XFs6wTaDtqXa8OUOS2UKk=", + "owner": "AvengeMedia", + "repo": "dankcalendar", + "rev": "feebbb5de09e57467c6bf3e97ec9366af8ad5c6b", + "type": "github" + }, + "original": { + "owner": "AvengeMedia", + "repo": "dankcalendar", + "type": "github" + } + }, + "dgop": { "inputs": { "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1786198506, - "narHash": "sha256-u4tdLMzKCV2R0wn4eFtk4LKH0RmzzCkxeYqCYs/P3eg=", + "lastModified": 1789657958, + "narHash": "sha256-0zWMFcxLZEVPzCRe5yDgPlPHBNgw3MMq78MAUvGNu/4=", "owner": "AvengeMedia", - "repo": "danksearch", - "rev": "632c2909bb1bb534b574c22c1347de0e6521e58a", + "repo": "dgop", + "rev": "56a43ff5b8c6b14c5a7c190a69eec43f2297d76b", "type": "github" }, "original": { "owner": "AvengeMedia", - "repo": "danksearch", + "repo": "dgop", "type": "github" } }, "dms": { "inputs": { + "dank-qml-common": "dank-qml-common_3", "flake-compat": "flake-compat", "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1785111455, - "narHash": "sha256-aTNuC9NDBnYAeEtFsleeUwmGX3AZlKOutbl+LQRPkmQ=", + "lastModified": 1789657660, + "narHash": "sha256-NPYX33iiXo6aBwh7umfJzeZQBedupOG7pk5z171ID3s=", "owner": "AvengeMedia", "repo": "DankMaterialShell", - "rev": "069ddab041c738236a8910e4c39b65d9628d3018", + "rev": "2db7646fe3ab47fddfdb8723f2da07d61a0d47ac", "type": "github" }, "original": { @@ -49,11 +140,11 @@ ] }, "locked": { - "lastModified": 1786847024, - "narHash": "sha256-d1vE3V5zzLQPCAGy6HQd6EFh4eG30KdTMUON4ZizTPY=", + "lastModified": 1789789500, + "narHash": "sha256-rBndooJeUIgPQewnYn31dx1yrk/fhAsKN8A3q4KcbGs=", "owner": "AvengeMedia", "repo": "dms-plugin-registry", - "rev": "2cde930aa2d735c3d1dac10096bb7d317a15aaa6", + "rev": "f50a3779a1e20b80e9148181f5f9f053664c4b74", "type": "github" }, "original": { @@ -85,11 +176,11 @@ ] }, "locked": { - "lastModified": 1785119570, - "narHash": "sha256-Rgs2xKnGLFWQscxUaXX07oyZeuMDOHEbqDOsgliLFGM=", + "lastModified": 1789267039, + "narHash": "sha256-LWiBv9yAYFi2LPbUhDGHPGKYskJQjj2fw12OlyO1uQo=", "owner": "nix-community", "repo": "home-manager", - "rev": "d4fd24667c8cbef124bb70a20380cab75ec8474d", + "rev": "ec172013fa62135f58fb58dd17ae9651e8f39727", "type": "github" }, "original": { @@ -162,11 +253,11 @@ ] }, "locked": { - "lastModified": 1786867632, - "narHash": "sha256-ez+ubZlA1RtdjCB18a6zJ9M4u8qoPDy08EcnsW5M3Xw=", + "lastModified": 1789752250, + "narHash": "sha256-q0J27mJDfd4BM9a7KcMVbcRmqyU+goQwudbMIu66qsg=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "ff17823245ab9ff7bcae6acf950bd89cba82c38c", + "rev": "b2d7d02644f0002535a3bb51a73780945cdc7ba4", "type": "github" }, "original": { @@ -210,11 +301,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1786862985, - "narHash": "sha256-FBJRXmbGXiSUDvYEbfLYRkckayyZ6SK1UEqhCrIZ2Cs=", + "lastModified": 1789684949, + "narHash": "sha256-ZKhUe/2IJUq1JhKxKMu8rbkgSGmPP2ZCqlIPn40aGCM=", "owner": "nixos", "repo": "nixpkgs", - "rev": "e5bdc4a41d4c072fe1e3787eaa0320a384741d44", + "rev": "e554fab72f81915600f3f449b786fd9af40439a5", "type": "github" }, "original": { @@ -226,11 +317,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1786711500, - "narHash": "sha256-QvnceIGTBeDvDd9oCn+GvdsnkquliuwbVgpiRH68qaQ=", + "lastModified": 1789654592, + "narHash": "sha256-vrwAiXmz+0hs/IWXZalFG/Ws6xQRcW+gClUDlfvcfjQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "02e08985a27c65ffd33d434eeb2e660a2e4dc84d", + "rev": "ecc58f32d1069a3e3f8a991e2233d365689f748d", "type": "github" }, "original": { @@ -242,7 +333,9 @@ }, "root": { "inputs": { - "danksearch": "danksearch", + "dank-greeter": "dank-greeter", + "dankcalendar": "dankcalendar", + "dgop": "dgop", "dms": "dms", "dms-plugin-registry": "dms-plugin-registry", "home-manager": "home-manager", @@ -261,11 +354,11 @@ ] }, "locked": { - "lastModified": 1786629091, - "narHash": "sha256-gkig4nPi1CWc4Z50GBsjE4ygSE7hMpl/TwID2an2Cck=", + "lastModified": 1789691124, + "narHash": "sha256-k+I+R6uwHX3VcJ7326qLV6vCahZUgsVl+i8sSU/Stxk=", "owner": "Mic92", "repo": "sops-nix", - "rev": "a8627b21b9107c5711c96b84f32a9a4b3d45295f", + "rev": "1e73e8f7176d65e1b55e324de099bbfff4b2c574", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 3d08b5d..236332a 100644 --- a/flake.nix +++ b/flake.nix @@ -27,13 +27,23 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - dms-plugin-registry = { - url = "github:AvengeMedia/dms-plugin-registry"; + dgop = { + url = "github:AvengeMedia/dgop"; inputs.nixpkgs.follows = "nixpkgs"; }; - danksearch = { - url = "github:AvengeMedia/danksearch"; + dank-greeter = { + url = "github:AvengeMedia/dank-greeter"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + dankcalendar = { + url = "github:AvengeMedia/dankcalendar"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + dms-plugin-registry = { + url = "github:AvengeMedia/dms-plugin-registry"; inputs.nixpkgs.follows = "nixpkgs"; }; @@ -43,7 +53,7 @@ }; }; - outputs = { nixpkgs, home-manager, sops-nix, niri, dms, dms-plugin-registry, danksearch, wvkbd-src, nixos-hardware, ... }@inputs: { + outputs = { nixpkgs, home-manager, sops-nix, niri, dms, dgop, dank-greeter, dankcalendar, dms-plugin-registry, wvkbd-src, nixos-hardware, ... }@inputs: { nixosConfigurations = { violet = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; @@ -53,6 +63,9 @@ ./hosts/violet/default.nix niri.nixosModules.niri + dms.nixosModules.default + + dank-greeter.nixosModules.default dms-plugin-registry.nixosModules.default sops-nix.nixosModules.sops @@ -65,7 +78,8 @@ home-manager.users.jashton = { imports = [ ./home/jashton.nix - danksearch.homeModules.default + dankcalendar.homeModules.default + ]; }; } @@ -81,8 +95,11 @@ niri.nixosModules.niri dms-plugin-registry.nixosModules.default + dms.nixosModules.default + + dank-greeter.nixosModules.default sops-nix.nixosModules.sops - nixos-hardware.nixosModules.framework-intel-core-ultra-series3 + nixos-hardware.nixosModules.framework-intel-core-ultra-series3 home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; @@ -92,7 +109,8 @@ home-manager.users.jashton = { imports = [ ./home/jashton.nix - danksearch.homeModules.default + dankcalendar.homeModules.default + ]; }; } @@ -107,6 +125,9 @@ ./hosts/lavender/default.nix niri.nixosModules.niri + dms.nixosModules.default + + dank-greeter.nixosModules.default dms-plugin-registry.nixosModules.default sops-nix.nixosModules.sops @@ -118,7 +139,8 @@ home-manager.users.jashton = { imports = [ ./home/jashton.nix - danksearch.homeModules.default + dankcalendar.homeModules.default + ]; }; } diff --git a/home/desktop/niri.nix b/home/desktop/niri.nix index cc223d3..a1f8353 100644 --- a/home/desktop/niri.nix +++ b/home/desktop/niri.nix @@ -116,7 +116,6 @@ in XF86MonBrightnessDown { spawn "dms" "ipc" "call" "brightness" "decrement" "5" ""; } XF86MonBrightnessUp { spawn "dms" "ipc" "call" "brightness" "increment" "5" ""; } } - spawn-at-startup "dms" "run" spawn-at-startup "/nix/store/b1kxyzg5r6644mcmjh8jwsb8rinqzsw8-launch-wvkbd/bin/launch-wvkbd" spawn-at-startup "/nix/store/l9k161qcs6ypzzbicjhkn8b203r610j6-launch-lisgd/bin/launch-lisgd" window-rule { diff --git a/home/jashton.nix b/home/jashton.nix index 9f85842..3a3cb60 100644 --- a/home/jashton.nix +++ b/home/jashton.nix @@ -245,8 +245,6 @@ in Service = { # The --daemon flag ensures it runs silently in the background without opening the GUI ExecStart = "${pkgs.lan-mouse}/bin/lan-mouse --daemon"; - Restart = "on-failure"; - RestartSec = "5"; }; }; diff --git a/hosts/lilac/default.nix b/hosts/lilac/default.nix index d3eb676..0515e5c 100644 --- a/hosts/lilac/default.nix +++ b/hosts/lilac/default.nix @@ -16,6 +16,14 @@ environment.systemPackages = with pkgs; [ framework-tool + + # GPU compute diagnostics + clinfo + vulkan-tools + intel-gpu-tools + + # Vulkan-accelerated llama.cpp CLI/server for manual/advanced use + (llama-cpp.override { vulkanSupport = true; }) ]; boot.kernelModules = [ "thunderbolt-net" ]; @@ -31,15 +39,21 @@ enable = true; enable32Bit = true; extraPackages = with pkgs; [ - intel-media-driver # Hardware acceleration + intel-media-driver # Hardware acceleration intel-vaapi-driver - vpl-gpu-rt # Video processing runtime + vpl-gpu-rt # Video processing runtime + intel-compute-runtime # OpenCL + Level Zero GPU compute (Arc iGPU) ]; extraPackages32 = with pkgs.pkgsi686Linux; [ intel-media-driver ]; }; - services.power-profiles-daemon.enable = true; + services.power-profiles-daemon.enable = true; services.thermald.enable = true; + + services.ollama = { + enable = true; + package = pkgs.ollama-vulkan; + }; } diff --git a/system/core/boot.nix b/system/core/boot.nix index 91b2230..046375c 100644 --- a/system/core/boot.nix +++ b/system/core/boot.nix @@ -5,6 +5,6 @@ boot.loader.efi.canTouchEfiVariables = true; boot.kernelPackages = pkgs.linuxPackages_latest; boot.kernelModules = [ "uinput" ]; - system.nixos.label = "niri-v.1.2"; + system.nixos.label = "niri-v.1.3"; environment.pathsToLink = [ "/libexec" "/share/xdg-desktop-portal" "/share/xdg-desktop-portal/portals" ]; } diff --git a/system/network/tor.nix b/system/network/tor.nix new file mode 100644 index 0000000..a4d1aa2 --- /dev/null +++ b/system/network/tor.nix @@ -0,0 +1,19 @@ +{ config, pkgs, ... }: + +{ + services.tor = { + enable = true; + client = { + socksListenAddresses = [ { addr = "127.0.0.1"; port = 9050; } ]; + }; + }; + + services.privoxy = { + enable = true; + enableTor = true; + }; + + environment.systemPackages = with pkgs; [ + torsocks + ]; +} diff --git a/system/security/default.nix b/system/security/default.nix index cfb72c0..57d5182 100644 --- a/system/security/default.nix +++ b/system/security/default.nix @@ -8,8 +8,6 @@ ./users.nix ]; - systemd.user.services.niri-flake-polkit.enable = false; - security = { pam.services.swaylock = {}; polkit.enable = true; diff --git a/system/security/users.nix b/system/security/users.nix index ddefcb0..e3b8c01 100644 --- a/system/security/users.nix +++ b/system/security/users.nix @@ -9,7 +9,7 @@ isNormalUser = true; description = "Josh Ashton"; group = "jashton"; - extraGroups = [ "networkmanager" "wheel" "tss" "video" "audio" "input" ]; + extraGroups = [ "networkmanager" "wheel" "tss" "video" "audio" "input" "render" ]; shell = pkgs.zsh; }; diff --git a/system/services/default.nix b/system/services/default.nix index 17ed6fd..4900421 100644 --- a/system/services/default.nix +++ b/system/services/default.nix @@ -9,25 +9,14 @@ let in { imports = [ - inputs.dms.nixosModules.greeter + inputs.dankcalendar.nixosModules.default ]; programs.niri = { enable = true; - # Tell the Niri module to use the unstable package directly from the niri-flake package = inputs.niri.packages.${pkgs.stdenv.hostPlatform.system}.niri-unstable; }; - programs.dsearch.enable = true; - - - programs.dank-material-shell.greeter = { - enable = true; - compositor.name = "niri"; - - configHome = "/home/jashton"; - }; - programs.dms-shell = { enable = true; enableSystemMonitoring = true; @@ -37,7 +26,7 @@ in enableCalendarEvents = true; systemd = { - enable = false; + enable = true; restartIfChanged = true; }; @@ -46,10 +35,25 @@ in plugins = { developerUtilities.enable = true; batteryPlus.enable = true; - mediaDownloader.enable = true; dankBatteryAlerts.enable = true; dmsThemeSync.enable = true; - dmsPass.enable = true; + }; + }; + + programs.dms-greeter = { + enable = true; + compositor.name = "niri"; + + configHome = "/home/jashton"; + }; + + programs.dank-calendar.enable = true; + + systemd = { + user = { + services = { + niri-flake-polkit.enable = true; + }; }; }; @@ -73,7 +77,7 @@ in displayManager = { autoLogin = { - enable = true; + enable = false; user = "jashton"; }; @@ -96,7 +100,7 @@ in model = "drv:///sample.drv/generic.ppd"; ppdOptions = { PageSize = "Letter"; - Duplex = "DuplexNoTumble"; # Enables two-sided printing by default + Duplex = "DuplexNoTumble"; }; } {