Compare commits

..

6 Commits

Author SHA1 Message Date
6cb301eb81 feat: a50 dock service 2026-01-04 23:42:04 +01:00
63a657fc84 update system 2025-12-28 13:03:58 +01:00
a8528b7fcd update system 2025-12-17 13:20:39 +01:00
0b0b568916 update system 2025-12-17 13:12:53 +01:00
02103e2585 update system 2025-12-08 15:14:06 +01:00
de9477ad84 update system 2025-12-08 14:18:53 +01:00
9 changed files with 84 additions and 116 deletions

137
flake.lock generated
View File

@@ -24,11 +24,11 @@
]
},
"locked": {
"lastModified": 1762980239,
"narHash": "sha256-8oNVE8TrD19ulHinjaqONf9QWCKK+w4url56cdStMpM=",
"lastModified": 1765835352,
"narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "52a2caecc898d0b46b2b905f058ccc5081f842da",
"rev": "a34fae9c08a15ad73f295041fec82323541400a9",
"type": "github"
},
"original": {
@@ -37,24 +37,6 @@
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@@ -62,11 +44,11 @@
]
},
"locked": {
"lastModified": 1763416652,
"narHash": "sha256-8EBEEvtzQ11LCxpQHMNEBQAGtQiCu/pqP9zSovDSbNM=",
"lastModified": 1766881808,
"narHash": "sha256-JR7A2xS3EBPWFeONzhqez5vp7nKEsp7eLj2Ks210Srk=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "ea164b7c9ccdc2321379c2ff78fd4317b4c41312",
"rev": "d2e0458d6531885600b346e161c38790dc356fa8",
"type": "github"
},
"original": {
@@ -75,34 +57,6 @@
"type": "github"
}
},
"ixx": {
"inputs": {
"flake-utils": [
"nixvim",
"nuschtosSearch",
"flake-utils"
],
"nixpkgs": [
"nixvim",
"nuschtosSearch",
"nixpkgs"
]
},
"locked": {
"lastModified": 1754860581,
"narHash": "sha256-EM0IE63OHxXCOpDHXaTyHIOk2cNvMCGPqLt/IdtVxgk=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "babfe85a876162c4acc9ab6fb4483df88fa1f281",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"ref": "v0.1.1",
"repo": "ixx",
"type": "github"
}
},
"matugen": {
"inputs": {
"nixpkgs": [
@@ -137,11 +91,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
"lastModified": 1763446461,
"narHash": "sha256-/matsRMDk8RgftY9BFva7c5fcRv9miFeDUl+92j3fns=",
"lastModified": 1766765523,
"narHash": "sha256-DCk3GKdKZNjpvNuDy9ZVfVwCy3tlm96/UZnYkJO7N44=",
"owner": "sodiboo",
"repo": "niri-flake",
"rev": "f309d15295085e7863cb8a727354d4c638541ca0",
"rev": "a3e638c75d07de759421e6f34bd69c3f9a0a3567",
"type": "github"
},
"original": {
@@ -170,11 +124,11 @@
"niri-unstable": {
"flake": false,
"locked": {
"lastModified": 1763370666,
"narHash": "sha256-Y4IYBfaTxffpm6UIbhY1Xfpij+aVh/C+tF9Tdg6nYig=",
"lastModified": 1766751930,
"narHash": "sha256-83/YSW6c58i/iwGzAFApuMy6MCgoIaROeCcoIGh+ViU=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "7f19d268b3563e3683eaca02d9665fed66ce862e",
"rev": "b5640d5293ad8dca06cb447692ea7cbb21680eb1",
"type": "github"
},
"original": {
@@ -201,11 +155,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1763283776,
"narHash": "sha256-Y7TDFPK4GlqrKrivOcsHG8xSGqQx3A6c+i7novT85Uk=",
"lastModified": 1766651565,
"narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "50a96edd8d0db6cc8db57dab6bb6d6ee1f3dc49a",
"rev": "3e2499d5539c16d0d173ba53552a4ff8547f4539",
"type": "github"
},
"original": {
@@ -217,16 +171,16 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1763334038,
"narHash": "sha256-LBVOyaH6NFzQ3X/c6vfMZ9k4SV2ofhpxeL9YnhHNJQQ=",
"lastModified": 1766736597,
"narHash": "sha256-BASnpCLodmgiVn0M1MU2Pqyoz0aHwar/0qLkp7CjvSQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4c8cdd5b1a630e8f72c9dd9bf582b1afb3127d2c",
"rev": "f560ccec6b1116b22e6ed15f4c510997d99d5852",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-25.05",
"ref": "nixos-25.11",
"repo": "nixpkgs",
"type": "github"
}
@@ -237,15 +191,14 @@
"nixpkgs": [
"nixpkgs"
],
"nuschtosSearch": "nuschtosSearch",
"systems": "systems_3"
"systems": "systems_2"
},
"locked": {
"lastModified": 1763393971,
"narHash": "sha256-FhgZD8pk3VE2SL0g4nCYKF0L6IO3uL110tfrBaZkdG0=",
"lastModified": 1766918207,
"narHash": "sha256-G/Msy+w6e6W5Z517draGcMC0Fqpl4cfutZS5ijndpyM=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "7a30e6cf259d8db84aefc626058c074bd995d482",
"rev": "51ae9913767528723397e1b227bd32a080058bb5",
"type": "github"
},
"original": {
@@ -254,29 +207,6 @@
"type": "github"
}
},
"nuschtosSearch": {
"inputs": {
"flake-utils": "flake-utils",
"ixx": "ixx",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1761730856,
"narHash": "sha256-t1i5p/vSWwueZSC0Z2BImxx3BjoUDNKyC2mk24krcMY=",
"owner": "NuschtOS",
"repo": "search",
"rev": "e29de6db0cb3182e9aee75a3b1fd1919d995d85b",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"repo": "search",
"type": "github"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
@@ -334,21 +264,6 @@
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"tidal-src": {
"flake": false,
"locked": {
@@ -444,11 +359,11 @@
"xwayland-satellite-unstable": {
"flake": false,
"locked": {
"lastModified": 1762747449,
"narHash": "sha256-Z1TKiux8K09a93w4PFDFsj8HFugXNy3iCC3Z8MpR5Rk=",
"lastModified": 1766429945,
"narHash": "sha256-9Kv4gWagx/u4RfZJzBMAoagW9ava5waxd+XoTkzqF7E=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "6338574bc5c036487486acde264f38f39ea15fad",
"rev": "0dde7ca1d3a8e8c5082533d76084e2aa02bef70e",
"type": "github"
},
"original": {

View File

@@ -3,6 +3,8 @@
imports = [ ./hardware-configuration.nix ];
boot = {
loader.timeout = 0;
quiet.enable = true;
kernelPackages = pkgs.linuxPackages_xanmod_stable;

View File

@@ -8,6 +8,8 @@
imports = [ ./hardware-configuration.nix ];
boot = {
loader.timeout = 0;
quiet.enable = true;
kernelParams = [ "module_blacklist=i915" ];
@@ -71,6 +73,7 @@
hardware = {
q3279vwf.enable = true;
audio.preset.pipewire.enable = true;
cc1.enable = true;
nvidia.preset.proprietary.enable = true;
@@ -109,7 +112,6 @@
config.cudaSupport = true;
config.rocmSupport = false;
};
acceleration = "cuda";
};
services.open-webui = {
enable = false;

View File

@@ -24,10 +24,10 @@
options = [ "fmask=0077" "dmask=0077" ];
};
fileSystems."/home" =
/*fileSystems."/home2" =
{ device = "/dev/disk/by-uuid/fa017457-fef3-4fac-9348-d37d2cd98656";
fsType = "xfs";
};
};*/
swapDevices = [ ];

View File

@@ -17,6 +17,8 @@
gamma-launcher
];
};
wayland.windowManager.hyprland.settings.input.kb_options = [ "lv3:caps_switch" ];
services.nextcloud-client.enable = true;
systemd.user.services = {
blueman-applet = {
Unit = {

View File

@@ -19,8 +19,6 @@ in
config = mkIf cfg.enable {
users.users.${username}.linger = true;
boot = {
loader.timeout = 0;
plymouth.enable = true;
kernelParams = [

View File

@@ -32,6 +32,7 @@ in
no_update_news = true;
no_donation_nag = true;
};
input.numlock_by_default = true;
};
plugins = with pkgs.hyprlandPlugins; [
];
@@ -83,6 +84,9 @@ in
};
};
security.pam.services.gdm.enableGnomeKeyring = true;
security.pam.services.hyprland.enableGnomeKeyring = true;
services = {
kmscon = {
enable = true;

View File

@@ -0,0 +1,13 @@
stdbuf -oL hexdump -v -e '32/2 "%x " "\n"' "$HID_DEVICE" | while read -r line; do
echo "$line"
if [[ $line =~ ^c02[[:space:]]4[[:space:]]13[[:space:]]([0-9a-f]+) ]]; then
power_state=${BASH_REMATCH[1]}
if [[ $power_state == "0" ]]; then
echo "power=on"
wpctl set-default "$(pw-cli info "$HEADSET_NAME" | head -n 1 | awk '{print $2}')"
else
echo "power=off"
wpctl set-default "$(pw-cli info "$SPEAKERS_NAME" | head -n 1 | awk '{print $2}')"
fi
fi
done

View File

@@ -13,9 +13,18 @@ in
{
options.hardware.astro-a50 = {
enable = mkEnableOption "Enable optimisations for the Logitech Astro A50 headset";
sinkWhenDocked = mkOption {
type = types.nullOr types.str;
description = "The PipeWire sink name to switch to when the Astro A50 is docked. If null, no switching will be done.";
default = "alsa_output.pci-0000_0a_00.4.analog-stereo";
};
};
config = mkIf cfg.enable {
services.udev.extraRules = ''
KERNEL=="hidraw*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="0b1c", MODE="0660", GROUP="input"
'';
users.extraGroups.input.members = [ username ];
home-manager.users.${username} =
let
name = "Astro A50";
@@ -66,6 +75,29 @@ in
];
};
};
systemd.user.services.astro-dock = mkIf (cfg.sinkWhenDocked != null) {
Unit = {
Description = "Astro A50 Dock Detection";
After = [ "pipewire.service" ];
};
Install.WantedBy = [ "default.target" ];
Service = {
Restart = "always";
ExecStart = lib.getExe (
pkgs.writeShellApplication {
name = "astro-dock-detect";
runtimeEnv = {
HID_DEVICE = "/dev/input/by-id/usb-Logitech_A50-if08-hidraw";
HEADSET_NAME = nodeNameIn;
SPEAKERS_NAME = cfg.sinkWhenDocked;
};
text = builtins.readFile ./astro-a50-dock.sh;
}
);
};
};
};
};
}