Compare commits
4 commits
ed2aaf9f15
...
675d77f1ce
Author | SHA1 | Date | |
---|---|---|---|
675d77f1ce | |||
f9aef0a0fc | |||
2118b04d9b | |||
7dd9cf684d |
17 changed files with 74 additions and 178 deletions
|
@ -3,9 +3,12 @@ extend-exclude = [
|
||||||
"secrets.yaml",
|
"secrets.yaml",
|
||||||
|
|
||||||
# hex color
|
# hex color
|
||||||
"home/applications/hyprland/hypr/themes",
|
|
||||||
"home/applications/swaylock/default.nix",
|
"home/applications/swaylock/default.nix",
|
||||||
]
|
]
|
||||||
|
|
||||||
[default.extend-words]
|
[default.extend-words]
|
||||||
lazer = "lazer" # osu
|
# osu
|
||||||
|
lazer = "lazer"
|
||||||
|
|
||||||
|
# https://en.wikipedia.org/wiki/IATA_airport_code
|
||||||
|
tyo = "tyo"
|
||||||
|
|
42
flake.lock
42
flake.lock
|
@ -2,7 +2,9 @@
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"aagl": {
|
"aagl": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": [
|
||||||
|
"flake-compat"
|
||||||
|
],
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
|
@ -85,22 +87,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1696426674,
|
|
||||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-compat_2": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696426674,
|
"lastModified": 1696426674,
|
||||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
|
@ -337,7 +323,9 @@
|
||||||
"nixpkgs-docs": [
|
"nixpkgs-docs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap",
|
"nixpkgs-for-bootstrap": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
"nmd": [
|
"nmd": [
|
||||||
"nmd"
|
"nmd"
|
||||||
]
|
]
|
||||||
|
@ -423,22 +411,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-for-bootstrap": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1708105575,
|
|
||||||
"narHash": "sha256-sS4AItZeUnAei6v8FqxNlm+/27MPlfoGym/TZP0rmH0=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "1d1817869c47682a6bee85b5b0a6537b6c0fba26",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "1d1817869c47682a6bee85b5b0a6537b6c0fba26",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718229064,
|
"lastModified": 1718229064,
|
||||||
|
@ -570,7 +542,7 @@
|
||||||
"berberman": "berberman",
|
"berberman": "berberman",
|
||||||
"crane": "crane",
|
"crane": "crane",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat",
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"gitignore": "gitignore",
|
"gitignore": "gitignore",
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
aagl = {
|
aagl = {
|
||||||
url = "github:ezKEa/aagl-gtk-on-nix";
|
url = "github:ezKEa/aagl-gtk-on-nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
inputs.flake-compat.follows = "flake-compat";
|
||||||
};
|
};
|
||||||
berberman = {
|
berberman = {
|
||||||
url = "github:berberman/flakes";
|
url = "github:berberman/flakes";
|
||||||
|
@ -64,6 +65,7 @@
|
||||||
nix-on-droid = {
|
nix-on-droid = {
|
||||||
url = "github:nix-community/nix-on-droid/release-23.11";
|
url = "github:nix-community/nix-on-droid/release-23.11";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
inputs.nixpkgs-for-bootstrap.follows = "nixpkgs";
|
||||||
inputs.nixpkgs-docs.follows = "nixpkgs";
|
inputs.nixpkgs-docs.follows = "nixpkgs";
|
||||||
inputs.home-manager.follows = "home-manager";
|
inputs.home-manager.follows = "home-manager";
|
||||||
inputs.nix-formatter-pack.follows = "nix-formatter-pack";
|
inputs.nix-formatter-pack.follows = "nix-formatter-pack";
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
hardware.nvidia.nvidiaSettings = false;
|
hardware.nvidia.nvidiaSettings = false;
|
||||||
services.hdapsd.enable = false;
|
services.hdapsd.enable = false;
|
||||||
myFlake.hardware.components = {
|
my.hardware = {
|
||||||
audio.enable = true;
|
audio.enable = true;
|
||||||
bluetooth.enable = true;
|
bluetooth.enable = true;
|
||||||
tpm.enable = true;
|
tpm.enable = true;
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
inputs.nixos-sensible.nixosModules.zram
|
inputs.nixos-sensible.nixosModules.zram
|
||||||
];
|
];
|
||||||
|
|
||||||
myFlake.hardware.components = {
|
my.hardware = {
|
||||||
audio.enable = true;
|
audio.enable = true;
|
||||||
bluetooth.enable = true;
|
bluetooth.enable = true;
|
||||||
tpm.enable = true;
|
tpm.enable = true;
|
||||||
|
|
|
@ -1,13 +1,10 @@
|
||||||
{...}: {
|
{...}: {
|
||||||
imports = [
|
imports = [
|
||||||
# utils that is used internally
|
# utils that is used internally
|
||||||
./myFlake/boot.nix
|
./my/boot.nix
|
||||||
./myFlake/hardware/accessories/logitech-wireless.nix
|
./my/hardware/audio.nix
|
||||||
./myFlake/hardware/accessories/piper.nix
|
./my/hardware/bluetooth.nix
|
||||||
./myFlake/hardware/accessories/xbox-one-controller.nix
|
./my/hardware/tpm.nix
|
||||||
./myFlake/hardware/components/audio.nix
|
|
||||||
./myFlake/hardware/components/bluetooth.nix
|
|
||||||
./myFlake/hardware/components/tpm.nix
|
|
||||||
|
|
||||||
# nixpkgs styled options
|
# nixpkgs styled options
|
||||||
./services/hysteria.nix
|
./services/hysteria.nix
|
||||||
|
|
|
@ -3,14 +3,12 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.myFlake.boot;
|
cfg = config.my.boot;
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
myFlake = {
|
my.boot = {
|
||||||
boot = {
|
silentBoot = lib.mkEnableOption "silent boot";
|
||||||
silentBoot = lib.mkEnableOption "Whether to enable silent boot.";
|
noLoaderMenu = lib.mkEnableOption "" // {description = "Whether to disable bootloader menu.";};
|
||||||
noLoaderMenu = lib.mkEnableOption "Whether to disable bootloader menu.";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
24
nixos/modules/my/hardware/audio.nix
Normal file
24
nixos/modules/my/hardware/audio.nix
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
cfg = config.my.hardware.audio;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
my.hardware.audio.enable = lib.mkEnableOption "audio";
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://nixos.wiki/wiki/PipeWire
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
hardware.pulseaudio.enable = false;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
jack.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -4,19 +4,15 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.myFlake.hardware.components.bluetooth;
|
cfg = config.my.hardware.bluetooth;
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
myFlake.hardware.components.bluetooth.enable = lib.mkEnableOption "Whether to enable bluetooth.";
|
my.hardware.bluetooth.enable = lib.mkEnableOption "bluetooth";
|
||||||
};
|
};
|
||||||
|
|
||||||
# https://nixos.wiki/wiki/Bluetooth
|
# https://nixos.wiki/wiki/Bluetooth
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
# Bluetooth manager
|
|
||||||
#services.blueman.enable = true;
|
|
||||||
environment.systemPackages = lib.mkIf config.services.xserver.enable (with pkgs; [blueberry]);
|
environment.systemPackages = lib.mkIf config.services.xserver.enable (with pkgs; [blueberry]);
|
||||||
|
|
||||||
# Bluetooth service
|
|
||||||
hardware.bluetooth = {
|
hardware.bluetooth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.General.FastConnectable = true;
|
settings.General.FastConnectable = true;
|
20
nixos/modules/my/hardware/tpm.nix
Normal file
20
nixos/modules/my/hardware/tpm.nix
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
cfg = config.my.hardware.tpm;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
my.hardware.tpm.enable = lib.mkEnableOption "TPM";
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://nixos.wiki/wiki/TPM
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
security.tpm2 = {
|
||||||
|
enable = true;
|
||||||
|
pkcs11.enable = true;
|
||||||
|
tctiEnvironment.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,19 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.myFlake.hardware.accessories.logitech-wireless;
|
|
||||||
in {
|
|
||||||
options = {
|
|
||||||
myFlake.hardware.accessories.logitech-wireless.enable =
|
|
||||||
lib.mkEnableOption "Whether to enable support for wireless Logitech hardwares.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
hardware.logitech.wireless = {
|
|
||||||
enable = true;
|
|
||||||
enableGraphical = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.myFlake.hardware.accessories.piper;
|
|
||||||
in {
|
|
||||||
options = {
|
|
||||||
myFlake.hardware.accessories.piper.enable =
|
|
||||||
lib.mkEnableOption "Whether to enable Piper.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
environment.systemPackages = [pkgs.piper];
|
|
||||||
services.ratbagd.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.myFlake.hardware.accessories.xboxOneController;
|
|
||||||
in {
|
|
||||||
options = {
|
|
||||||
myFlake.hardware.accessories.xboxOneController.enable =
|
|
||||||
lib.mkEnableOption "Whether to enable support for Xbox One controllers.";
|
|
||||||
};
|
|
||||||
|
|
||||||
# https://wiki.archlinux.org/title/Gamepad#Connect_Xbox_Wireless_Controller_with_Bluetooth
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
hardware.xone.enable = true; # via wired or wireless dongle
|
|
||||||
hardware.xpadneo.enable = true; # via Bluetooth
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.myFlake.hardware.components.audio;
|
|
||||||
in {
|
|
||||||
options = {
|
|
||||||
myFlake.hardware.components.audio.enable = lib.mkEnableOption "Whether to enable audio.";
|
|
||||||
myFlake.hardware.components.audio.soundServer = lib.mkOption {
|
|
||||||
type = lib.types.enum ["pipewire" "pulseaudio"];
|
|
||||||
default = "pipewire";
|
|
||||||
example = "pulseaudio";
|
|
||||||
description = "Select desired sound system.";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# https://nixos.wiki/wiki/PipeWire
|
|
||||||
# https://nixos.wiki/wiki/PulseAudio
|
|
||||||
config = lib.mkIf cfg.enable (lib.mkMerge [
|
|
||||||
(lib.mkIf (cfg.soundServer == "pipewire") {
|
|
||||||
security.rtkit.enable = true;
|
|
||||||
hardware.pulseaudio.enable = false;
|
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
alsa.enable = true;
|
|
||||||
alsa.support32Bit = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
jack.enable = true;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
(lib.mkIf (cfg.soundServer == "pulseaudio") {
|
|
||||||
hardware.pulseaudio.enable = true;
|
|
||||||
hardware.pulseaudio.support32Bit = true;
|
|
||||||
})
|
|
||||||
]);
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.myFlake.hardware.components.tpm;
|
|
||||||
in {
|
|
||||||
options = {
|
|
||||||
myFlake.hardware.components.tpm.enable = lib.mkEnableOption "Whether to enable TPM.";
|
|
||||||
};
|
|
||||||
|
|
||||||
# https://nixos.wiki/wiki/TPM
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
# TPM is currently broken on latest kernel,
|
|
||||||
# but luckily, linux-zen have a patch for it
|
|
||||||
# UPDATE: it got fixed in 6.5.3
|
|
||||||
#
|
|
||||||
# python3.11-tpm2-pytss-2.1.0 failed with exit code 1 after ⏱ 34s
|
|
||||||
security.tpm2 = {
|
|
||||||
enable = true;
|
|
||||||
#pkcs11.enable = true; # expose /run/current-system/sw/lib/libtpm2_pkcs11.so
|
|
||||||
tctiEnvironment.enable = true; # tpm2tools_tcti and tpm2_pkcs11_tcti env variables
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -37,7 +37,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
### Options
|
### Options
|
||||||
myFlake.boot.noLoaderMenu = lib.mkDefault true;
|
my.boot.noLoaderMenu = lib.mkDefault true;
|
||||||
|
|
||||||
fonts.enableDefaultPackages = false;
|
fonts.enableDefaultPackages = false;
|
||||||
security.pam.services.swaylock = {};
|
security.pam.services.swaylock = {};
|
||||||
|
|
|
@ -11,7 +11,9 @@
|
||||||
# https://github.com/NixOS/nixpkgs/issues/47932
|
# https://github.com/NixOS/nixpkgs/issues/47932
|
||||||
hardware.opengl.driSupport32Bit = true;
|
hardware.opengl.driSupport32Bit = true;
|
||||||
|
|
||||||
myFlake.hardware.accessories.xboxOneController.enable = lib.mkDefault true;
|
# https://wiki.archlinux.org/title/Gamepad#Connect_Xbox_Wireless_Controller_with_Bluetooth
|
||||||
|
hardware.xone.enable = true; # via wired or wireless dongle
|
||||||
|
hardware.xpadneo.enable = true; # via Bluetooth
|
||||||
|
|
||||||
programs.gamemode = {
|
programs.gamemode = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -23,7 +25,6 @@
|
||||||
|
|
||||||
# Integrate with NVIDIA Optimus offloading.
|
# Integrate with NVIDIA Optimus offloading.
|
||||||
# https://github.com/FeralInteractive/gamemode#note-for-hybrid-gpu-users
|
# https://github.com/FeralInteractive/gamemode#note-for-hybrid-gpu-users
|
||||||
# https://github.com/NixOS/nixpkgs/pull/273177
|
|
||||||
environment.sessionVariables = {
|
environment.sessionVariables = {
|
||||||
"GAMEMODERUNEXEC" = let
|
"GAMEMODERUNEXEC" = let
|
||||||
inherit (config.hardware.nvidia.prime) offload;
|
inherit (config.hardware.nvidia.prime) offload;
|
||||||
|
|
Loading…
Reference in a new issue