mirror of
https://github.com/Theaninova/TheaninovOS.git
synced 2026-01-09 01:02:49 +00:00
Compare commits
6 Commits
3bf3bf5fa5
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
6cb301eb81
|
|||
|
63a657fc84
|
|||
|
a8528b7fcd
|
|||
|
0b0b568916
|
|||
|
02103e2585
|
|||
|
de9477ad84
|
137
flake.lock
generated
137
flake.lock
generated
@@ -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": {
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
imports = [ ./hardware-configuration.nix ];
|
||||
|
||||
boot = {
|
||||
loader.timeout = 0;
|
||||
|
||||
quiet.enable = true;
|
||||
|
||||
kernelPackages = pkgs.linuxPackages_xanmod_stable;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 = [ ];
|
||||
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -19,8 +19,6 @@ in
|
||||
config = mkIf cfg.enable {
|
||||
users.users.${username}.linger = true;
|
||||
boot = {
|
||||
loader.timeout = 0;
|
||||
|
||||
plymouth.enable = true;
|
||||
|
||||
kernelParams = [
|
||||
|
||||
@@ -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;
|
||||
|
||||
13
modules/nixos/hardware/astro-a50-dock.sh
Normal file
13
modules/nixos/hardware/astro-a50-dock.sh
Normal 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
|
||||
@@ -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;
|
||||
}
|
||||
);
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user