From 50cdb289749382bdb3ecbc1f9774ee84557fbf1b Mon Sep 17 00:00:00 2001 From: Nicole Date: Wed, 4 Feb 2026 18:04:20 +0100 Subject: [PATCH] Update | Added logitech peripherals support --- etc/nixos/configuration.nix | 7 +- etc/nixos/flake.lock | 125 +++++++++++++++--------- etc/nixos/flake.nix | 4 +- etc/nixos/modules/desktop.nix | 22 ++--- etc/nixos/modules/logitech.nix | 5 + etc/nixos/modules/pkgs/msty/default.nix | 4 +- etc/nixos/modules/programs.nix | 31 ++++-- 7 files changed, 129 insertions(+), 69 deletions(-) create mode 100644 etc/nixos/modules/logitech.nix diff --git a/etc/nixos/configuration.nix b/etc/nixos/configuration.nix index 13ad6ed..371d16c 100644 --- a/etc/nixos/configuration.nix +++ b/etc/nixos/configuration.nix @@ -27,6 +27,7 @@ in ./modules/programs.nix ./modules/bluetooth.nix ./modules/KawaiCA49.nix + ./modules/logitech.nix ./cachix.nix ]; @@ -133,7 +134,7 @@ in users.users.nicole = { isNormalUser = true; description = "Nicole"; - extraGroups = [ "networkmanager" "wheel" "libvrtd" "kvm" "qemu-libvirtd" "cdrom" "uucp" "docker" ]; + extraGroups = [ "networkmanager" "wheel" "libvrtd" "kvm" "qemu-libvirtd" "cdrom" "uucp" "docker" "audio"]; packages = with pkgs; []; }; @@ -189,6 +190,8 @@ in jack.enable = true; }; + musnix.enable = true; + hardware.kawaiCA49 = { enable = true; user = "nicole"; @@ -208,7 +211,7 @@ in environmentVariables = { CUDA_VISIBLE_DEVICES = "0"; NVIDIA_VISIBLE_DEVICES = "all"; - LD_LIBRARY_PATH = "${pkgs-unstable.cudaPackages.cudatoolkit}/lib:${pkgs-unstable.cudaPackages.cudatoolkit}/lib64"; + LD_LIBRARY_PATH = "${pkgs.cudaPackages.cudatoolkit}/lib:${pkgs.cudaPackages.cudatoolkit}/lib64"; }; }; diff --git a/etc/nixos/flake.lock b/etc/nixos/flake.lock index d5edb24..857f025 100644 --- a/etc/nixos/flake.lock +++ b/etc/nixos/flake.lock @@ -66,11 +66,11 @@ "scenefx": "scenefx" }, "locked": { - "lastModified": 1768974895, - "narHash": "sha256-f0rp6+NPF+OlEYE2MQPFYgmPndJstKnJZSoZQLUMTWk=", + "lastModified": 1770213044, + "narHash": "sha256-NBKogN62YygzLfGuUAWobUafXBj9P241k1nSwJWGBUQ=", "owner": "DreamMaoMao", "repo": "mango", - "rev": "49921eadfa251641379c2f2cd824034eb7075e2f", + "rev": "65fcd58949ce55eca3195bdbc6f935058fc3b33c", "type": "github" }, "original": { @@ -79,6 +79,24 @@ "type": "github" } }, + "musnix": { + "inputs": { + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1767232402, + "narHash": "sha256-li+h6crnhc5Zqs+M6pn7D7M0W9M63ECNennDjRgzioE=", + "owner": "musnix", + "repo": "musnix", + "rev": "d65f98e0b1f792365f1705653d7b2d266ceeff6e", + "type": "github" + }, + "original": { + "owner": "musnix", + "repo": "musnix", + "type": "github" + } + }, "niri": { "inputs": { "niri-stable": "niri-stable", @@ -91,11 +109,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1769170609, - "narHash": "sha256-LiyaKNga2z/iG4pNr86iQLySEDoOytEzTCblxzRjnCk=", + "lastModified": 1770169657, + "narHash": "sha256-wiWbmO2xUoqh5DuSBYVLGOICo9AOcYq9mNPsvCtL7SM=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "08d6e6adf34b0af12be7eaeacc0b4c1a8580b3da", + "rev": "4c962a3fd37ef268337ed113cbffabfd1fe3ca5c", "type": "github" }, "original": { @@ -124,11 +142,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1768678265, - "narHash": "sha256-Ub8eed4DsfIDWyg30xEe+8bSxL/z5Af/gCjmvJ0V/Hs=", + "lastModified": 1770092965, + "narHash": "sha256-++K1ftjwPqMJzIO8t2GsdkYQzC2LLA5A1w21Uo+SLz4=", "owner": "YaLTeR", "repo": "niri", - "rev": "d7184a04b904e07113f4623610775ae78d32394c", + "rev": "189917c93329c86ac2ddd89f459c26a028d590ba", "type": "github" }, "original": { @@ -144,16 +162,16 @@ "nix-gaming" ], "nix-github-actions": "nix-github-actions", - "nixpkgs": "nixpkgs", + "nixpkgs": "nixpkgs_2", "systems": "systems", "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1769128309, - "narHash": "sha256-sBznRKV3TILPmFOM682/ZiXdGjI6XJzaBC1MsTzQPbo=", + "lastModified": 1769832985, + "narHash": "sha256-PKONM6JUGWviRsv3tZWj72HE0aeHKcHTrzTskj58MRM=", "owner": "LovingMelody", "repo": "nix-citizen", - "rev": "519129093f4865d69b73e263e00e875d5ca472d3", + "rev": "47823c1ea4c53153dabd43f08b26f3c67c557542", "type": "github" }, "original": { @@ -180,14 +198,14 @@ "nix-gaming": { "inputs": { "flake-parts": "flake-parts_3", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1768874893, - "narHash": "sha256-1WCbVm2Dqqb+HEuahu06l8lQ393P8jIAHEjM3jhm4gc=", + "lastModified": 1769914377, + "narHash": "sha256-8wH3ZYNs36V0A3f/ikraqdoVE++BfnXg9Ql8nAuUkHw=", "owner": "fufexan", "repo": "nix-gaming", - "rev": "12c404b997930a1fe8ffcaa231f85fd8ebc6338a", + "rev": "f7d17740ed90663b11ae907d33b3fed9fc9e15a9", "type": "github" }, "original": { @@ -219,11 +237,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1768564909, - "narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=", + "lastModified": 1766902085, + "narHash": "sha256-coBu0ONtFzlwwVBzmjacUQwj3G+lybcZ1oeNSQkgC0M=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f", + "rev": "c0b0e0fddf73fd517c3471e546c0df87a42d53f4", "type": "github" }, "original": { @@ -265,11 +283,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1769089682, - "narHash": "sha256-9yA/LIuAVQq0lXelrZPjLuLVuZdm03p8tfmHhnDIkms=", + "lastModified": 1770136044, + "narHash": "sha256-tlFqNG/uzz2++aAmn4v8J0vAkV3z7XngeIIB3rM3650=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "078d69f03934859a181e81ba987c2bb033eebfc5", + "rev": "e576e3c9cf9bad747afcddd9e34f51d18c855b4e", "type": "github" }, "original": { @@ -281,11 +299,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1769018530, - "narHash": "sha256-MJ27Cy2NtBEV5tsK+YraYr2g851f3Fl1LpNHDzDX15c=", + "lastModified": 1770115704, + "narHash": "sha256-KHFT9UWOF2yRPlAnSXQJh6uVcgNcWlFqqiAZ7OVlHNc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "88d3861acdd3d2f0e361767018218e51810df8a1", + "rev": "e6eae2ee2110f3d31110d5c222cd395303343b08", "type": "github" }, "original": { @@ -297,11 +315,27 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1768569498, - "narHash": "sha256-bB6Nt99Cj8Nu5nIUq0GLmpiErIT5KFshMQJGMZwgqUo=", + "lastModified": 1769461804, + "narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "be5afa0fcb31f0a96bf9ecba05a516c66fcd8114", + "rev": "bfc1b8a4574108ceef22f02bafcf6611380c100d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1769740369, + "narHash": "sha256-xKPyJoMoXfXpDM5DFDZDsi9PHArf2k5BJjvReYXoFpM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "6308c3b21396534d8aaeac46179c14c439a89b8a", "type": "github" }, "original": { @@ -311,13 +345,13 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_4": { "locked": { - "lastModified": 1769089682, - "narHash": "sha256-9yA/LIuAVQq0lXelrZPjLuLVuZdm03p8tfmHhnDIkms=", + "lastModified": 1770136044, + "narHash": "sha256-tlFqNG/uzz2++aAmn4v8J0vAkV3z7XngeIIB3rM3650=", "owner": "nixos", "repo": "nixpkgs", - "rev": "078d69f03934859a181e81ba987c2bb033eebfc5", + "rev": "e576e3c9cf9bad747afcddd9e34f51d18c855b4e", "type": "github" }, "original": { @@ -327,7 +361,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_5": { "locked": { "lastModified": 1768393167, "narHash": "sha256-n2063BRjHde6DqAz2zavhOOiLUwA3qXt7jQYHyETjX8=", @@ -345,14 +379,14 @@ }, "opencode": { "inputs": { - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1769185404, - "narHash": "sha256-Y2LR3rxItX+bmEs2XXUyND+HCONgx4rbBGxSBXxMAsU=", + "lastModified": 1770222504, + "narHash": "sha256-ucKeBCEhKqfCE7fFYTnNrVZMYTmghrgnb8uFCrTilf4=", "owner": "sst", "repo": "opencode", - "rev": "8105f186dcaf53abee997f35c198ed50ae363e04", + "rev": "c875a1fc900f044874b2072468719e117e948840", "type": "github" }, "original": { @@ -364,11 +398,12 @@ "root": { "inputs": { "mango": "mango", + "musnix": "musnix", "niri": "niri", "nix-citizen": "nix-citizen", "nix-flatpak": "nix-flatpak", "nix-gaming": "nix-gaming", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_4", "nixpkgs-unstable": "nixpkgs-unstable", "opencode": "opencode" } @@ -417,11 +452,11 @@ ] }, "locked": { - "lastModified": 1768158989, - "narHash": "sha256-67vyT1+xClLldnumAzCTBvU0jLZ1YBcf4vANRWP3+Ak=", + "lastModified": 1769515380, + "narHash": "sha256-CWWK3PaQ7zhr+Jcf5zyaTR2cfRBXPo09H7+5nWApL8s=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "e96d59dff5c0d7fddb9d113ba108f03c3ef99eca", + "rev": "9911802c2822def2eec3d22e2cafd1619ede94a5", "type": "github" }, "original": { @@ -450,11 +485,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1768765571, - "narHash": "sha256-C1JbyJ3ftogmN3vmLNfyPtnJw2wY64TiUTIhFtk1Leg=", + "lastModified": 1770167989, + "narHash": "sha256-rE2WTxKHe3KMG/Zr5YUNeKHkZfWwSFl7yJXrOKnunHg=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "ed1cef792b4def3321ff9ab5479df09609f17a69", + "rev": "0947c4685f6237d4f8045482ce0c62feab40b6c4", "type": "github" }, "original": { diff --git a/etc/nixos/flake.nix b/etc/nixos/flake.nix index feea1d9..2b11881 100644 --- a/etc/nixos/flake.nix +++ b/etc/nixos/flake.nix @@ -17,9 +17,10 @@ url = "github:DreamMaoMao/mango"; inputs.nixpkgs.follows = "nixpkgs"; }; + musnix.url = "github:musnix/musnix"; }; - outputs = { self, nixpkgs, nixpkgs-unstable, nix-flatpak, niri, opencode, mango, ... } @inputs: + outputs = { self, nixpkgs, nixpkgs-unstable, nix-flatpak, niri, opencode, mango, musnix, ... } @inputs: let system = "x86_64-linux"; @@ -47,6 +48,7 @@ niri.nixosModules.niri nix-flatpak.nixosModules.nix-flatpak mango.nixosModules.mango + musnix.nixosModules.musnix ./configuration.nix ]; }; diff --git a/etc/nixos/modules/desktop.nix b/etc/nixos/modules/desktop.nix index 9e8ff53..7b0b670 100644 --- a/etc/nixos/modules/desktop.nix +++ b/etc/nixos/modules/desktop.nix @@ -14,17 +14,17 @@ }; systemd.services.copyGdmMonitorsXml = { - description = "Copy monitors.xml to GDM config"; - after = [ "network.target" "systemd-user-sessions.service" "display-manager.service" ]; - - serviceConfig = { - ExecStart = "${pkgs.bash}/bin/bash -c 'echo \"Running copyGdmMonitorsXml service\" && mkdir -p /run/gdm/.config && echo \"Created /run/gdm/.config directory\" && [ \"/home/nicole/.config/monitors.xml\" -ef \"/run/gdm/.config/monitors.xml\" ] || cp /home/nicole/.config/monitors.xml /run/gdm/.config/monitors.xml && echo \"Copied monitors.xml to /run/gdm/.config/monitors.xml\" && chown gdm:gdm /run/gdm/.config/monitors.xml && echo \"Changed ownership of monitors.xml to gdm\"'"; - Type = "oneshot"; - }; - -wantedBy = [ "multi-user.target" ]; + description = "Copy monitors.xml to GDM config"; + after = [ "network.target" "systemd-user-sessions.service" "display-manager.service" ]; + + serviceConfig = { + ExecStart = "${pkgs.bash}/bin/bash -c 'mkdir -p /var/lib/gdm/seat0/config && cp /home/nicole/.config/monitors.xml /var/lib/gdm/seat0/config/monitors.xml && chown gdm:gdm /var/lib/gdm/seat0/config/monitors.xml'"; + Type = "oneshot"; }; + wantedBy = [ "multi-user.target" ]; +}; + # Enable SDDM #services.xserver.displayManager.sddm.enable = true; #services.displayManager.sddm.wayland.enable = true; @@ -47,9 +47,9 @@ wantedBy = [ "multi-user.target" ]; #}; # NIRI # - #nixpkgs.overlays = [ inputs.niri.overlays.niri ]; + nixpkgs.overlays = [ inputs.niri.overlays.niri ]; programs.niri = { - #package = pkgs.niri-unstable; + package = pkgs.niri-unstable; enable = true; }; diff --git a/etc/nixos/modules/logitech.nix b/etc/nixos/modules/logitech.nix new file mode 100644 index 0000000..9f2802b --- /dev/null +++ b/etc/nixos/modules/logitech.nix @@ -0,0 +1,5 @@ +{ config, pkgs, ... }: +{ + hardware.logitech.wireless.enable = true; + hardware.logitech.wireless.enableGraphical = true; +} diff --git a/etc/nixos/modules/pkgs/msty/default.nix b/etc/nixos/modules/pkgs/msty/default.nix index 3efd98a..c22a151 100644 --- a/etc/nixos/modules/pkgs/msty/default.nix +++ b/etc/nixos/modules/pkgs/msty/default.nix @@ -8,10 +8,10 @@ makeWrapper, }: let pname = "msty-studio"; - version = "2.1.0"; + version = "2.4.1"; src = fetchurl { url = "https://next-assets.msty.studio/app/latest/linux/MstyStudio_x86_64.AppImage"; - sha256 = "sha256-3k8piIfvxJXIkKQeta9Ce7VmJSXpUqSuFg/37swvUAI="; + sha256 = "sha256-YsXa4W0so5lQs6uex14QIoVg21cN7Bi0fWJMhChSDnA="; }; appimageContents = appimageTools.extractType2 {inherit pname version src;}; in diff --git a/etc/nixos/modules/programs.nix b/etc/nixos/modules/programs.nix index 965b1f7..f6a522e 100644 --- a/etc/nixos/modules/programs.nix +++ b/etc/nixos/modules/programs.nix @@ -42,7 +42,8 @@ # SCREENSHOTS AND RECORDING # grim slurp - swappy + #swappy + satty wl-clipboard obs-studio @@ -61,6 +62,7 @@ libnotify wayvnc xwayland-satellite + xwayland-run # OFFICE # obsidian @@ -70,8 +72,9 @@ gnome-calculator simple-scan - # IMAGE EDITING # + # MEDIA EDITING # pinta + davinci-resolve # MEDIA # ffmpeg @@ -90,7 +93,7 @@ tutanota-desktop teams-for-linux qbittorrent - sunshine + sunshine # DEV # vscode-fhs @@ -110,7 +113,8 @@ mangohud lutris #heroic - protonup-qt + #protonup-qt + pkgs-unstable.protonplus gdlauncher-carbon adwsteamgtk @@ -132,6 +136,7 @@ cachix rbw pinentry-tty + kando # CUDA # cudaPackages.cudatoolkit @@ -142,7 +147,7 @@ (callPackage ./pkgs/msty/default.nix {}) #pkgs-unstable.jan #claude-code - #pkgs-unstable.lmstudio + pkgs-unstable.lmstudio (inputs.opencode.packages.${system}.default) #pkgs-unstable.codex #pkgs-unstable.gemini-cli @@ -154,14 +159,17 @@ bitwig-studio yabridge yabridgectl - alsa-scarlett-gui - qjackctl + # alsa-scarlett-gui + # qjackctl alsa-utils + #vital + (callPackage ./pkgs/vital-stable/default.nix {}) # WINE # wineWowPackages.stable + #wineWowPackages.waylandFull + #wineWowPackages.staging winetricks - ]; # Enable Flaktpak @@ -180,10 +188,17 @@ services.hardware.openrgb.enable = true; + virtualisation.docker.rootless = { enable = true; setSocketVariable = true; }; + security.pam.loginLimits = [{ + domain = "nicole"; + type = "hard"; + item = "nofile"; + value = "524288"; + }]; }