Compare commits
21
Commits
cc39b11599
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
93df208274 | ||
|
|
9bccabf712 | ||
|
|
129b9ae365 | ||
|
|
7ed37b3b75
|
||
|
|
ba0c0d55ce
|
||
|
|
cbf9cc29ca
|
||
|
|
f9d95837f5 | ||
|
|
cddf1860d2 | ||
|
|
8298f90315 | ||
|
|
930c7b6018 | ||
|
|
99df214e10 | ||
|
|
d90315fe68 | ||
|
|
936ef1a7e0
|
||
|
|
dcb32fe35d | ||
|
|
7e2a3d894d | ||
|
|
461323c58f | ||
|
|
814daf2bfe
|
||
|
|
bfecd4fadf | ||
|
|
4e8aea6a24
|
||
|
|
a4d8971a77 | ||
|
|
c97f728a01
|
Generated
+70
-44
@@ -67,11 +67,11 @@
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1787448531,
|
||||
"narHash": "sha256-XL0bbQUXgB5TXKWUBzAVxbNwsoII/XQmuHpwqaRI6OQ=",
|
||||
"lastModified": 1788552094,
|
||||
"narHash": "sha256-fdD1tF+RjJME8DRMI/dz2lBuFQ8SvyPCF8tVVZ02OvQ=",
|
||||
"owner": "sadjow",
|
||||
"repo": "claude-code-nix",
|
||||
"rev": "a652fdf13cf7ac39be23fafbca3e1d6290eff001",
|
||||
"rev": "ac5abfc00fe9226e9d116f8e2fbb69ae26775ea3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -185,11 +185,11 @@
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1787559586,
|
||||
"narHash": "sha256-onL0VLf9vPllmT0H/OlURIU5r5t5WIEl7t4tVNKT0Nw=",
|
||||
"lastModified": 1788450739,
|
||||
"narHash": "sha256-glZLQlzIn1fXH6PazR2iUmTo7kzzyYSshrWhLS9TqCU=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "9d0d87172c374f89da73c1cfe6d81ae62feac1f1",
|
||||
"rev": "31729ca8cbdb4fa927b34e5f4353e6a83f39e993",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -242,11 +242,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1787540599,
|
||||
"narHash": "sha256-MHwk52ty3NsLhq9a1IbIfBJZlCUJIdiUYFo52JLK9hY=",
|
||||
"lastModified": 1788644970,
|
||||
"narHash": "sha256-6BI+HCRmDPcdoudp7VvLKGBiRhiDct+4MARCxDFI3jg=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "03f4cd46bc1dd4f3a96da778d2ce9f7ce39dd450",
|
||||
"rev": "11f7a2df92b132274c49d2645cacd375d4345cf4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -256,6 +256,26 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"homebrew": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1785271058,
|
||||
"narHash": "sha256-xVisL04Gt6LsGa1cGCLHhTED7iEykgl7krPyzAm2ZQg=",
|
||||
"owner": "koalalorenzo",
|
||||
"repo": "home-manager-brew",
|
||||
"rev": "795f9aed8ddce24b3cae3b75598e6861e7d72d10",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "koalalorenzo",
|
||||
"repo": "home-manager-brew",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"lanzaboote": {
|
||||
"inputs": {
|
||||
"crane": "crane",
|
||||
@@ -287,11 +307,11 @@
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1787594581,
|
||||
"narHash": "sha256-C0Ckqq9K/XMIWKW/OFeIkKipMXc6Qc3eFMiY4w7Iv8o=",
|
||||
"lastModified": 1788636383,
|
||||
"narHash": "sha256-rb0Cq4ahQej8/d4qMyZJ9nqfjNUptNUzhoc3OXUzYWc=",
|
||||
"owner": "xddxdd",
|
||||
"repo": "nix-cachyos-kernel",
|
||||
"rev": "be42f230afd6789046dc99c4479236d4061fe7e1",
|
||||
"rev": "aa89b450a7ba56db6f5f7331672404dae7e0805f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -300,6 +320,27 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-darwin": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1786845137,
|
||||
"narHash": "sha256-oQFip+v0luP8NIxJzmiW4Wu8bILsbFWom5l0zonl8hQ=",
|
||||
"owner": "nix-darwin",
|
||||
"repo": "nix-darwin",
|
||||
"rev": "4cff07de74b50e64bdd68cd4e722ab5b6b35ee48",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-darwin",
|
||||
"ref": "master",
|
||||
"repo": "nix-darwin",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-flatpak": {
|
||||
"locked": {
|
||||
"lastModified": 1767983141,
|
||||
@@ -323,11 +364,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1787600895,
|
||||
"narHash": "sha256-cugFvCDVE5alelpwRfv7PQc0JRYJuR5L+5gt8J5iris=",
|
||||
"lastModified": 1788635631,
|
||||
"narHash": "sha256-j1HgbzMxAi/W2ezt2We3DuDNyuZaWXS/Pwg33D/cmQk=",
|
||||
"owner": "sudosubin",
|
||||
"repo": "nix-skills",
|
||||
"rev": "e61bc6e3b27ee72b887ccfd3f4b3f728b18dbf27",
|
||||
"rev": "6779edbf5b00060920e638197d076d1eb0bdadda",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -366,11 +407,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1787144466,
|
||||
"narHash": "sha256-HHfv2/HkNSKbbSyU9iD/g8lbP6r4tl33sSw1W4rXCk0=",
|
||||
"lastModified": 1788335262,
|
||||
"narHash": "sha256-3jBEq8avfzlrsY4UpW4d5TOmm7ocseZfnitEJhqauyc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "0471accf8d0a8210b31d947497d179ecc99e0021",
|
||||
"rev": "44d95795ee2d475b3d687325e26dcf4ca9104557",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -382,11 +423,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1787574585,
|
||||
"narHash": "sha256-lYyM+zbWl1jCJ5xSxPzCkPtxO3OXMst8+QfboXRQCcs=",
|
||||
"lastModified": 1788625351,
|
||||
"narHash": "sha256-HuowOcoS6Wquoa0FPdCwRZ9NkXy3kw+gz0gV2sKhBW8=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "09cf6aa915e6e042f74607067dffa237084ff53e",
|
||||
"rev": "8f3889588add43913e8bfbbd42a75345c857cf59",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -396,29 +437,13 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-2605": {
|
||||
"locked": {
|
||||
"lastModified": 1787525875,
|
||||
"narHash": "sha256-sKbMlkDCBVmAjUVT94LwhVtET/YEMtZaFdn5UduWxz8=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a3b98866eecd08edac6e61a3081e69540a35020f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-26.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1785031560,
|
||||
"narHash": "sha256-OmshNvn2vupOFpYinLUu+1Dnpu4n7Q5N3ggGVNHpkUI=",
|
||||
"lastModified": 1788057806,
|
||||
"narHash": "sha256-DTQSMxzDWmT0zhguthvegnVkn7CFqGCv4IHCzk5ZUpM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "0e79af5e3d4dcfcd676ab5ba3f95d2e3352e078c",
|
||||
"rev": "596e2e3940e09b2abbeb03f75fa1828c57fcd72c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -445,11 +470,11 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1787498568,
|
||||
"narHash": "sha256-9i/VTdusq/+NM/tz+J1Re+ojkMB8MBf0QshnYfzHz30=",
|
||||
"lastModified": 1788614874,
|
||||
"narHash": "sha256-7QYjT2vHLuX9Z1pdxHXDKCbh1CR3D/2rywB9Tx0MPRg=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "56c02bc00adcf003215cc4bd996d6efaf4cff188",
|
||||
"rev": "c043004d1c6985732bcc1cbc5a9c9aecbbb4e0f0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -546,14 +571,15 @@
|
||||
"bun2nix": "bun2nix",
|
||||
"claude-code": "claude-code",
|
||||
"home-manager": "home-manager",
|
||||
"homebrew": "homebrew",
|
||||
"lanzaboote": "lanzaboote",
|
||||
"nix-cachyos-kernel": "nix-cachyos-kernel",
|
||||
"nix-darwin": "nix-darwin",
|
||||
"nix-flatpak": "nix-flatpak",
|
||||
"nix-skills": "nix-skills",
|
||||
"nix-sweep": "nix-sweep",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs-2605": "nixpkgs-2605",
|
||||
"nixpkgs-linuxeol": "nixpkgs-linuxeol",
|
||||
"peerix": "peerix",
|
||||
"plasma-manager": "plasma-manager"
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
nixpkgs-2605.url = "github:NixOS/nixpkgs/nixos-26.05";
|
||||
nixpkgs-linuxeol.url = "github:NixOS/nixpkgs/162f04bf3dd222187388bc990a8678170d594419";
|
||||
nixos-hardware = {
|
||||
url = "github:NixOS/nixos-hardware/master";
|
||||
@@ -58,9 +57,17 @@
|
||||
url = "github:nix-community/bun2nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
nix-darwin = {
|
||||
url = "github:nix-darwin/nix-darwin/master";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
homebrew = {
|
||||
url = "github:koalalorenzo/home-manager-brew";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixos-hardware, ... }@inputs:
|
||||
outputs = { self, nixos-hardware, nix-darwin, ... }@inputs:
|
||||
{
|
||||
nixosConfigurations =
|
||||
let
|
||||
@@ -71,5 +78,29 @@
|
||||
acer = mkNixosSystem {} hosts/acer.nix;
|
||||
gaming-pc = mkNixosSystem {} hosts/gaming-pc.nix;
|
||||
};
|
||||
darwinConfigurations."MacBook-Pro-Macbook" = nix-darwin.lib.darwinSystem {
|
||||
modules = [
|
||||
((import ./hosts/macbook.nix) self)
|
||||
inputs.home-manager.darwinModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.verbose = true;
|
||||
home-manager.users.macbookpro = { ... }: {
|
||||
imports = [
|
||||
./home-modules
|
||||
./users/user/home.nix
|
||||
inputs.homebrew.homeManagerModules.default
|
||||
];
|
||||
lumpiastyHome.macos = true;
|
||||
lumpiastyHome.brew = true;
|
||||
};
|
||||
nixpkgs.overlays = [
|
||||
inputs.claude-code.overlays.default
|
||||
inputs.nix-skills.overlays.default
|
||||
] ++ (import ./overlays/pkgs.nix { bun2nix = inputs.bun2nix; });
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
brewPath = config.homebrew.brewPath;
|
||||
in {
|
||||
options.lumpiastyHome.brew = lib.mkEnableOption "Homebrew integration via home-manager-brew";
|
||||
|
||||
config = lib.mkMerge [
|
||||
(lib.mkIf config.lumpiastyHome.brew {
|
||||
homebrew = {
|
||||
enable = true;
|
||||
brewInstall = true;
|
||||
update = true;
|
||||
upgrade = true;
|
||||
cleanup = true;
|
||||
casks = [
|
||||
"steam"
|
||||
];
|
||||
};
|
||||
|
||||
home.activation.homebrewInstall = lib.mkForce (
|
||||
lib.hm.dag.entryAfter ["installPackages" "linkGeneration" "createGpgHomedir"] (
|
||||
if config.homebrew.brewInstall then ''
|
||||
if [ ! -f "${brewPath}" ]; then
|
||||
echo "Homebrew not found (${brewPath}), installing..."
|
||||
export PATH="${pkgs.curl}/bin:${pkgs.bash}/bin:${pkgs.coreutils}/bin:${pkgs.gnugrep}/bin:${pkgs.gnused}/bin:$PATH"
|
||||
${pkgs.bash}/bin/bash -c "$(${pkgs.curl}/bin/curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
fi
|
||||
'' else ""
|
||||
)
|
||||
);
|
||||
})
|
||||
(lib.mkIf (!config.lumpiastyHome.brew) {
|
||||
homebrew.enable = lib.mkForce false;
|
||||
})
|
||||
];
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
{ flake, pkgs, lib, ... }:
|
||||
{ flake, pkgs, lib, osConfig ? null, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
@@ -6,7 +6,11 @@
|
||||
./pc.nix
|
||||
./dev.nix
|
||||
./gaming.nix
|
||||
./plasma.nix
|
||||
./fhsBash.nix
|
||||
./linux.nix
|
||||
./macos.nix
|
||||
./brew.nix
|
||||
] ++ lib.optionals (osConfig.lumpiasty.enablePlasma) [
|
||||
./plasma.nix
|
||||
];
|
||||
}
|
||||
@@ -73,17 +73,14 @@
|
||||
docker
|
||||
docker-buildx
|
||||
proton-vpn
|
||||
wl-clipboard
|
||||
devenv
|
||||
dig
|
||||
whois
|
||||
mtr
|
||||
traceroute
|
||||
nodejs_24
|
||||
codex
|
||||
claude-code
|
||||
winbox4
|
||||
amdgpu_top
|
||||
dua
|
||||
];
|
||||
|
||||
@@ -120,7 +117,7 @@
|
||||
User = "root";
|
||||
ControlMaster = "auto";
|
||||
ControlPersist = "3600";
|
||||
ControlPath = "/run/user/%i/ssh-socket-%r@%h:%p";
|
||||
ControlPath = lib.mkIf config.lumpiastyHome.linux "/run/user/%i/ssh-socket-%r@%h:%p";
|
||||
ServerAliveInterval = 20;
|
||||
};
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
services.gpg-agent = {
|
||||
enable = true;
|
||||
enableSshSupport = true;
|
||||
pinentry.package = pkgs.pinentry-qt;
|
||||
pinentry.package = lib.mkIf config.lumpiastyHome.linux pkgs.pinentry-qt;
|
||||
extraConfig = ''
|
||||
listen-backlog 256
|
||||
'';
|
||||
@@ -15,11 +15,12 @@
|
||||
|
||||
programs.gpg.enable = true;
|
||||
|
||||
programs.git.signing = {
|
||||
format = "openpgp";
|
||||
key = "EA287B39E5F69945";
|
||||
signByDefault = true;
|
||||
};
|
||||
programs.git.signing =
|
||||
lib.mkIf config.lumpiastyHome.linux { # TODO: on macos too
|
||||
format = "openpgp";
|
||||
key = "EA287B39E5F69945";
|
||||
signByDefault = true;
|
||||
};
|
||||
|
||||
programs.bash.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
{ config, lib, pkgs, osConfig, ... }:
|
||||
|
||||
{
|
||||
options.lumpiastyHome.linux = lib.mkEnableOption "Linux specific things";
|
||||
config = lib.mkIf config.lumpiastyHome.linux {
|
||||
services.easyeffects.enable = true;
|
||||
systemd.user.services.easyeffects.Service = lib.mkIf osConfig.lumpiasty.audioRt.cpuPartitioning {
|
||||
# Move easyeffects into audio.slice (defined in modules/desktop/audio-rt.nix)
|
||||
# which has AllowedCPUs=<audioCpus> — pins all DSP work to the reserved cores.
|
||||
Slice = "audio.slice";
|
||||
};
|
||||
|
||||
programs.chromium.enable = true;
|
||||
programs.chromium.package = pkgs.ungoogled-chromium;
|
||||
|
||||
home.packages = with pkgs; (lib.optionals config.lumpiastyHome.dev [
|
||||
wl-clipboard
|
||||
traceroute
|
||||
amdgpu_top
|
||||
] ++ lib.optionals config.lumpiastyHome.linux [
|
||||
pass-wayland
|
||||
libreoffice-qt-stable
|
||||
vlc
|
||||
gimp
|
||||
ventoy-full-qt
|
||||
teamspeak6-client
|
||||
]);
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{ config, lib, pkgs, osConfig, ... }:
|
||||
|
||||
{
|
||||
options.lumpiastyHome.macos = lib.mkEnableOption "Macos specific things";
|
||||
|
||||
config = lib.mkIf config.lumpiastyHome.macos {
|
||||
targets.darwin.copyApps.enable = true;
|
||||
targets.darwin.linkApps.enable = false;
|
||||
};
|
||||
}
|
||||
+6
-22
@@ -8,11 +8,6 @@
|
||||
vesktop
|
||||
# Manual update, not yet in nixpkgs as for now
|
||||
spotify
|
||||
pass-wayland
|
||||
teamspeak6-client
|
||||
easyeffects
|
||||
libreoffice-qt6-fresh
|
||||
vlc
|
||||
inkscape
|
||||
qtpass
|
||||
signal-desktop
|
||||
@@ -20,26 +15,15 @@
|
||||
thunderbird
|
||||
pwgen
|
||||
siyuan
|
||||
gimp
|
||||
ventoy-full-qt
|
||||
];
|
||||
programs.librewolf.enable = true;
|
||||
services.easyeffects.enable = true;
|
||||
systemd.user.services.easyeffects.Service = lib.mkIf osConfig.lumpiasty.audioRt.cpuPartitioning {
|
||||
# Move easyeffects into audio.slice (defined in modules/desktop/audio-rt.nix)
|
||||
# which has AllowedCPUs=<audioCpus> — pins all DSP work to the reserved cores.
|
||||
Slice = "audio.slice";
|
||||
};
|
||||
|
||||
programs.chromium.enable = true;
|
||||
programs.chromium.package = pkgs.ungoogled-chromium;
|
||||
|
||||
services.flatpak.remotes = [{
|
||||
name = "flathub"; location = "https://dl.flathub.org/repo/flathub.flatpakrepo";
|
||||
}];
|
||||
services.flatpak.packages = [
|
||||
# "org.onlyoffice.desktopeditors"
|
||||
];
|
||||
# services.flatpak.remotes = [{
|
||||
# name = "flathub"; location = "https://dl.flathub.org/repo/flathub.flatpakrepo";
|
||||
# }];
|
||||
# services.flatpak.packages = [
|
||||
# # "org.onlyoffice.desktopeditors"
|
||||
# ];
|
||||
|
||||
# Vesktop settings
|
||||
# Nope, TODO
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
self: { pkgs, ... }: {
|
||||
imports = [ ../modules/options.nix ];
|
||||
|
||||
# List packages installed in system profile. To search by name, run:
|
||||
# $ nix-env -qaP | grep wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
vim
|
||||
curl
|
||||
git
|
||||
];
|
||||
|
||||
# Necessary for using flakes on this system.
|
||||
nix.settings.experimental-features = "nix-command flakes";
|
||||
|
||||
# Enable alternative shell support in nix-darwin.
|
||||
# programs.fish.enable = true;
|
||||
|
||||
# Set Git commit hash for darwin-version.
|
||||
system.configurationRevision = self.rev or self.dirtyRev or null;
|
||||
|
||||
# Used for backwards compatibility, please read the changelog before changing.
|
||||
# $ darwin-rebuild changelog
|
||||
system.stateVersion = 6;
|
||||
|
||||
# The platform the configuration will be used on.
|
||||
nixpkgs.hostPlatform = "aarch64-darwin";
|
||||
|
||||
users.users.macbookpro = {
|
||||
home = "/Users/macbookpro";
|
||||
};
|
||||
|
||||
lumpiasty.pc = true;
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
}
|
||||
@@ -9,5 +9,6 @@ lib.mkIf condition (
|
||||
../home-modules
|
||||
home
|
||||
];
|
||||
lumpiastyHome.linux = true;
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
self,
|
||||
nixpkgs,
|
||||
nixpkgs-2605,
|
||||
home-manager,
|
||||
nix-flatpak,
|
||||
plasma-manager,
|
||||
@@ -29,9 +28,6 @@ nixpkgs.lib.nixosSystem {
|
||||
modules = [
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
librewolf = nixpkgs-2605.legacyPackages.${prev.system}.librewolf;
|
||||
})
|
||||
claude-code.overlays.default
|
||||
acer-wmi-ext.overlays.default
|
||||
nix-skills.overlays.default
|
||||
|
||||
+3
-1
@@ -2,12 +2,13 @@
|
||||
|
||||
{
|
||||
imports = [
|
||||
./options.nix
|
||||
|
||||
hardware/intel-cpu.nix
|
||||
hardware/amd-cpu.nix
|
||||
hardware/no-mitigations.nix
|
||||
hardware/acer-undervolt.nix
|
||||
|
||||
system/roles.nix
|
||||
system/nixpkgs.nix
|
||||
system/location.nix
|
||||
system/shell.nix
|
||||
@@ -17,6 +18,7 @@
|
||||
system/ipv6-mostly.nix
|
||||
system/nix.nix
|
||||
system/zfs.nix
|
||||
system/ntfsplus.nix
|
||||
|
||||
desktop/plasma.nix
|
||||
desktop/touchpad.nix
|
||||
|
||||
@@ -38,72 +38,7 @@ let
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
options.lumpiasty.audioRt = {
|
||||
enable = lib.mkEnableOption "Audio RT scheduling and CPU isolation";
|
||||
|
||||
audioCpus = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "12-15";
|
||||
description = "CPU list reserved for audio services (systemd cpuset syntax).";
|
||||
};
|
||||
|
||||
nonAudioCpus = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "0-11";
|
||||
description = "CPU list for everything else.";
|
||||
};
|
||||
|
||||
# ------ Individual optimization toggles ------
|
||||
|
||||
cpuPartitioning = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = cfg.enable;
|
||||
description = ''
|
||||
Cgroup-based CPU partitioning via dedicated audio.slice and
|
||||
restricted app/session/background slices.
|
||||
'';
|
||||
};
|
||||
|
||||
rtLimits = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = cfg.enable;
|
||||
description = ''
|
||||
Raise rlimits (RTPRIO=95, MEMLOCK=infinity) for the audio group
|
||||
so PipeWire's module-rt can set SCHED_FIFO 88 directly instead
|
||||
of going through RTKit's priority-10 ceiling.
|
||||
'';
|
||||
};
|
||||
|
||||
performanceGovernor = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = cfg.enable;
|
||||
description = ''
|
||||
Keep cpufreq governor `performance` on the audio cores so they
|
||||
stay boosted regardless of measured utilization.
|
||||
'';
|
||||
};
|
||||
|
||||
ananicy = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = cfg.enable;
|
||||
description = ''
|
||||
Run ananicy-cpp with a rule that pins easyeffects to nice -12 so
|
||||
its non-RT DSP threads get scheduler preference under load.
|
||||
'';
|
||||
};
|
||||
|
||||
optimisedBinaries = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = cfg.enable;
|
||||
description = ''
|
||||
Rebuild easyeffects and its DSP dependencies with -march=znver4 -O3
|
||||
(and LTO for cmake builds, target-cpu for rust builds).
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkMerge [
|
||||
{ config = lib.mkMerge [
|
||||
|
||||
# --- Optimised binary builds ---------------------------------------------
|
||||
(lib.mkIf (cfg.enable && cfg.optimisedBinaries) {
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
options.lumpiasty.enableGnome = lib.mkEnableOption "Enable Gnome desktop";
|
||||
|
||||
config = lib.mkIf config.lumpiasty.enableGnome {
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
options.lumpiasty.enablePlasma = lib.mkEnableOption "Enable Plasma6 desktop";
|
||||
|
||||
config = lib.mkIf config.lumpiasty.enablePlasma {
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
|
||||
{
|
||||
|
||||
options.lumpiasty.enablePulseaudio = lib.mkEnableOption "Enable Plasma6 desktop";
|
||||
|
||||
config = lib.mkIf config.lumpiasty.enablePulseaudio {
|
||||
# Enable sound with pipewire. Dont forget after 24.05
|
||||
services.pulseaudio.enable = false;
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
options.lumpiasty.enableTailscale = lib.mkEnableOption "Enable Tailscale VPN";
|
||||
|
||||
config = lib.mkIf config.lumpiasty.enableTailscale {
|
||||
services.tailscale = {
|
||||
enable = true;
|
||||
|
||||
@@ -1,177 +1,6 @@
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
{ ... }:
|
||||
|
||||
# Touch pad configuration interface
|
||||
|
||||
let
|
||||
scrollMethods = {
|
||||
twoFingers = "twoFingers";
|
||||
touchPadEdges = "touchPadEdges";
|
||||
};
|
||||
rightClickMethods = {
|
||||
bottomRight = "bottomRight";
|
||||
twoFingers = "twoFingers";
|
||||
};
|
||||
accelerationProfiles = {
|
||||
none = "none";
|
||||
default = "default";
|
||||
};
|
||||
in
|
||||
# Touch pad configuration interface.
|
||||
# Options are declared in ./options.nix; config is applied by home-modules/plasma.nix.
|
||||
{
|
||||
# Copy of https://github.com/nix-community/plasma-manager/blob/trunk/modules/input.nix#L69
|
||||
options.lumpiasty.touchPad = {
|
||||
enable = lib.mkOption {
|
||||
type = with lib.types; nullOr bool;
|
||||
default = null;
|
||||
example = true;
|
||||
description = ''
|
||||
Whether to enable the touchpad.
|
||||
'';
|
||||
};
|
||||
name = lib.mkOption {
|
||||
type = with lib.types; nullOr str;
|
||||
default = null;
|
||||
example = "PNP0C50:00 0911:5288 Touchpad";
|
||||
description = ''
|
||||
The name of the touchpad.
|
||||
|
||||
This can be found by looking at the `Name` attribute in the section in
|
||||
the `/proc/bus/input/devices` path belonging to the touchpad.
|
||||
'';
|
||||
};
|
||||
vendorId = lib.mkOption {
|
||||
type = with lib.types; nullOr str;
|
||||
default = null;
|
||||
example = "0911";
|
||||
description = ''
|
||||
The vendor ID of the touchpad.
|
||||
|
||||
This can be found by looking at the `Vendor` attribute in the section in
|
||||
the `/proc/bus/input/devices` path belonging to the touchpad.
|
||||
'';
|
||||
};
|
||||
productId = lib.mkOption {
|
||||
type = with lib.types; nullOr str;
|
||||
default = null;
|
||||
example = "5288";
|
||||
description = ''
|
||||
The product ID of the touchpad.
|
||||
|
||||
This can be found by looking at the `Product` attribute in the section in
|
||||
the `/proc/bus/input/devices` path belonging to the touchpad.
|
||||
'';
|
||||
};
|
||||
disableWhileTyping = lib.mkOption {
|
||||
type = with lib.types; nullOr bool;
|
||||
default = null;
|
||||
example = true;
|
||||
description = ''
|
||||
Whether to disable the touchpad while typing.
|
||||
'';
|
||||
};
|
||||
leftHanded = lib.mkOption {
|
||||
type = with lib.types; nullOr bool;
|
||||
default = null;
|
||||
example = false;
|
||||
description = ''
|
||||
Whether to swap the left and right buttons.
|
||||
'';
|
||||
};
|
||||
middleButtonEmulation = lib.mkOption {
|
||||
type = with lib.types; nullOr bool;
|
||||
default = null;
|
||||
example = false;
|
||||
description = ''
|
||||
Whether to enable middle mouse click emulation by pressing the left and right buttons at the same time.
|
||||
Activating this increases the click latency by 50ms.
|
||||
'';
|
||||
};
|
||||
pointerSpeed = lib.mkOption {
|
||||
type = with lib.types; nullOr (numbers.between (-1) 1);
|
||||
default = null;
|
||||
example = "0";
|
||||
description = ''
|
||||
How fast the pointer moves.
|
||||
'';
|
||||
};
|
||||
accelerationProfile = lib.mkOption {
|
||||
type = with lib.types; nullOr (enum (builtins.attrNames accelerationProfiles));
|
||||
default = null;
|
||||
example = "none";
|
||||
description = "Set the touchpad acceleration profile.";
|
||||
apply = profile: if (profile == null) then null else accelerationProfiles."${profile}";
|
||||
};
|
||||
naturalScroll = lib.mkOption {
|
||||
type = with lib.types; nullOr bool;
|
||||
default = null;
|
||||
example = true;
|
||||
description = ''
|
||||
Whether to enable natural scrolling for the touchpad.
|
||||
'';
|
||||
};
|
||||
tapToClick = lib.mkOption {
|
||||
type = with lib.types; nullOr bool;
|
||||
default = null;
|
||||
example = true;
|
||||
description = ''
|
||||
Whether to enable tap-to-click for the touchpad.
|
||||
'';
|
||||
};
|
||||
tapAndDrag = lib.mkOption {
|
||||
type = with lib.types; nullOr bool;
|
||||
default = null;
|
||||
example = true;
|
||||
description = ''
|
||||
Whether to enable tap-and-drag for the touchpad.
|
||||
'';
|
||||
};
|
||||
tapDragLock = lib.mkOption {
|
||||
type = with lib.types; nullOr bool;
|
||||
default = null;
|
||||
example = true;
|
||||
description = ''
|
||||
Whether to enable the tap-and-drag lock for the touchpad.
|
||||
'';
|
||||
};
|
||||
scrollMethod = lib.mkOption {
|
||||
type = with lib.types; nullOr (enum (builtins.attrNames scrollMethods));
|
||||
default = null;
|
||||
example = "touchPadEdges";
|
||||
description = ''
|
||||
Configure how scrolling is performed on the touchpad.
|
||||
'';
|
||||
apply = method: if (method == null) then null else scrollMethods."${method}";
|
||||
};
|
||||
scrollSpeed = lib.mkOption {
|
||||
type = with lib.types; nullOr (numbers.between 0.1 20);
|
||||
default = null;
|
||||
example = 0.1;
|
||||
description = ''
|
||||
Configure the scrolling speed of the touchpad. Lower is slower.
|
||||
If unset, KDE Plasma will default to 0.3.
|
||||
'';
|
||||
};
|
||||
rightClickMethod = lib.mkOption {
|
||||
type = with lib.types; nullOr (enum (builtins.attrNames rightClickMethods));
|
||||
default = null;
|
||||
example = "twoFingers";
|
||||
description = ''
|
||||
Configure how right-clicking is performed on the touchpad.
|
||||
'';
|
||||
apply = method: if (method == null) then null else rightClickMethods."${method}";
|
||||
};
|
||||
twoFingerTap = lib.mkOption {
|
||||
type =
|
||||
with lib.types;
|
||||
nullOr (enum [
|
||||
"rightClick"
|
||||
"middleClick"
|
||||
]);
|
||||
default = null;
|
||||
example = "twoFingers";
|
||||
description = ''
|
||||
Configure what a two-finger tap maps to on the touchpad.
|
||||
'';
|
||||
apply = v: if (v == null) then null else (v == "middleClick");
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -18,8 +18,6 @@
|
||||
# persist values across boot / resume.
|
||||
|
||||
{
|
||||
options.lumpiasty.acerUndervolt = lib.mkEnableOption "ryzenadj + ryzen_smu tooling for Acer 8845HS";
|
||||
|
||||
config = lib.mkIf config.lumpiasty.acerUndervolt {
|
||||
boot.kernelModules = [ "ryzen_smu" ];
|
||||
boot.extraModulePackages = [ config.boot.kernelPackages.ryzen-smu ];
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
options.lumpiasty.amdCpu = lib.mkEnableOption "Enable amd CPU";
|
||||
|
||||
config = lib.mkIf config.lumpiasty.amdCpu {
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = true;
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
options.lumpiasty.intelCpu = lib.mkEnableOption "Enable intel CPU";
|
||||
|
||||
config = lib.mkIf config.lumpiasty.intelCpu {
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
# hardware.cpu.intel.updateMicrocode = true;
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
options.lumpiasty.noMitigations = lib.mkEnableOption "Disable mitigations";
|
||||
|
||||
config = lib.mkIf config.lumpiasty.noMitigations {
|
||||
boot.kernelParams = [
|
||||
"mitigations=off"
|
||||
|
||||
@@ -0,0 +1,258 @@
|
||||
{ config, lib, ... }:
|
||||
|
||||
let
|
||||
scrollMethods = {
|
||||
twoFingers = "twoFingers";
|
||||
touchPadEdges = "touchPadEdges";
|
||||
};
|
||||
rightClickMethods = {
|
||||
bottomRight = "bottomRight";
|
||||
twoFingers = "twoFingers";
|
||||
};
|
||||
accelerationProfiles = {
|
||||
none = "none";
|
||||
default = "default";
|
||||
};
|
||||
in
|
||||
{
|
||||
options.lumpiasty = {
|
||||
pc = lib.mkEnableOption "Enable options specific to personal computers";
|
||||
laptop = lib.mkEnableOption "Enable options specific to laptops";
|
||||
intelCpu = lib.mkEnableOption "Enable intel CPU";
|
||||
amdCpu = lib.mkEnableOption "Enable amd CPU";
|
||||
noMitigations = lib.mkEnableOption "Disable mitigations";
|
||||
acerUndervolt = lib.mkEnableOption "ryzenadj + ryzen_smu tooling for Acer 8845HS";
|
||||
enablePlasma = lib.mkEnableOption "Enable Plasma6 desktop";
|
||||
enableGnome = lib.mkEnableOption "Enable Gnome desktop";
|
||||
enablePulseaudio = lib.mkEnableOption "Enable Pulseaudio/Pipewire";
|
||||
enableTailscale = lib.mkEnableOption "Enable Tailscale VPN";
|
||||
sshd = lib.mkEnableOption "Enable OpenSSH server";
|
||||
gaming = lib.mkEnableOption "Enable options specific to gaming computers";
|
||||
scx = lib.mkEnableOption "Enable sched-ext";
|
||||
ipv6Mostly = lib.mkEnableOption "Enable IPv6-mostly (RFC 8925 + CLAT/464XLAT) support in NetworkManager";
|
||||
|
||||
users = {
|
||||
user = lib.mkEnableOption "Create user \"user\"";
|
||||
drugi = lib.mkEnableOption "Create user \"drugi\"";
|
||||
};
|
||||
|
||||
touchPad = {
|
||||
enable = lib.mkOption {
|
||||
type = with lib.types; nullOr bool;
|
||||
default = null;
|
||||
example = true;
|
||||
description = ''
|
||||
Whether to enable the touchpad.
|
||||
'';
|
||||
};
|
||||
name = lib.mkOption {
|
||||
type = with lib.types; nullOr str;
|
||||
default = null;
|
||||
example = "PNP0C50:00 0911:5288 Touchpad";
|
||||
description = ''
|
||||
The name of the touchpad.
|
||||
|
||||
This can be found by looking at the `Name` attribute in the section in
|
||||
the `/proc/bus/input/devices` path belonging to the touchpad.
|
||||
'';
|
||||
};
|
||||
vendorId = lib.mkOption {
|
||||
type = with lib.types; nullOr str;
|
||||
default = null;
|
||||
example = "0911";
|
||||
description = ''
|
||||
The vendor ID of the touchpad.
|
||||
|
||||
This can be found by looking at the `Vendor` attribute in the section in
|
||||
the `/proc/bus/input/devices` path belonging to the touchpad.
|
||||
'';
|
||||
};
|
||||
productId = lib.mkOption {
|
||||
type = with lib.types; nullOr str;
|
||||
default = null;
|
||||
example = "5288";
|
||||
description = ''
|
||||
The product ID of the touchpad.
|
||||
|
||||
This can be found by looking at the `Product` attribute in the section in
|
||||
the `/proc/bus/input/devices` path belonging to the touchpad.
|
||||
'';
|
||||
};
|
||||
disableWhileTyping = lib.mkOption {
|
||||
type = with lib.types; nullOr bool;
|
||||
default = null;
|
||||
example = true;
|
||||
description = ''
|
||||
Whether to disable the touchpad while typing.
|
||||
'';
|
||||
};
|
||||
leftHanded = lib.mkOption {
|
||||
type = with lib.types; nullOr bool;
|
||||
default = null;
|
||||
example = false;
|
||||
description = ''
|
||||
Whether to swap the left and right buttons.
|
||||
'';
|
||||
};
|
||||
middleButtonEmulation = lib.mkOption {
|
||||
type = with lib.types; nullOr bool;
|
||||
default = null;
|
||||
example = false;
|
||||
description = ''
|
||||
Whether to enable middle mouse click emulation by pressing the left and right buttons at the same time.
|
||||
Activating this increases the click latency by 50ms.
|
||||
'';
|
||||
};
|
||||
pointerSpeed = lib.mkOption {
|
||||
type = with lib.types; nullOr (numbers.between (-1) 1);
|
||||
default = null;
|
||||
example = "0";
|
||||
description = ''
|
||||
How fast the pointer moves.
|
||||
'';
|
||||
};
|
||||
accelerationProfile = lib.mkOption {
|
||||
type = with lib.types; nullOr (enum (builtins.attrNames accelerationProfiles));
|
||||
default = null;
|
||||
example = "none";
|
||||
description = "Set the touchpad acceleration profile.";
|
||||
apply = profile: if (profile == null) then null else accelerationProfiles."${profile}";
|
||||
};
|
||||
naturalScroll = lib.mkOption {
|
||||
type = with lib.types; nullOr bool;
|
||||
default = null;
|
||||
example = true;
|
||||
description = ''
|
||||
Whether to enable natural scrolling for the touchpad.
|
||||
'';
|
||||
};
|
||||
tapToClick = lib.mkOption {
|
||||
type = with lib.types; nullOr bool;
|
||||
default = null;
|
||||
example = true;
|
||||
description = ''
|
||||
Whether to enable tap-to-click for the touchpad.
|
||||
'';
|
||||
};
|
||||
tapAndDrag = lib.mkOption {
|
||||
type = with lib.types; nullOr bool;
|
||||
default = null;
|
||||
example = true;
|
||||
description = ''
|
||||
Whether to enable tap-and-drag for the touchpad.
|
||||
'';
|
||||
};
|
||||
tapDragLock = lib.mkOption {
|
||||
type = with lib.types; nullOr bool;
|
||||
default = null;
|
||||
example = true;
|
||||
description = ''
|
||||
Whether to enable the tap-and-drag lock for the touchpad.
|
||||
'';
|
||||
};
|
||||
scrollMethod = lib.mkOption {
|
||||
type = with lib.types; nullOr (enum (builtins.attrNames scrollMethods));
|
||||
default = null;
|
||||
example = "touchPadEdges";
|
||||
description = ''
|
||||
Configure how scrolling is performed on the touchpad.
|
||||
'';
|
||||
apply = method: if (method == null) then null else scrollMethods."${method}";
|
||||
};
|
||||
scrollSpeed = lib.mkOption {
|
||||
type = with lib.types; nullOr (numbers.between 0.1 20);
|
||||
default = null;
|
||||
example = 0.1;
|
||||
description = ''
|
||||
Configure the scrolling speed of the touchpad. Lower is slower.
|
||||
If unset, KDE Plasma will default to 0.3.
|
||||
'';
|
||||
};
|
||||
rightClickMethod = lib.mkOption {
|
||||
type = with lib.types; nullOr (enum (builtins.attrNames rightClickMethods));
|
||||
default = null;
|
||||
example = "twoFingers";
|
||||
description = ''
|
||||
Configure how right-clicking is performed on the touchpad.
|
||||
'';
|
||||
apply = method: if (method == null) then null else rightClickMethods."${method}";
|
||||
};
|
||||
twoFingerTap = lib.mkOption {
|
||||
type =
|
||||
with lib.types;
|
||||
nullOr (enum [
|
||||
"rightClick"
|
||||
"middleClick"
|
||||
]);
|
||||
default = null;
|
||||
example = "twoFingers";
|
||||
description = ''
|
||||
Configure what a two-finger tap maps to on the touchpad.
|
||||
'';
|
||||
apply = v: if (v == null) then null else (v == "middleClick");
|
||||
};
|
||||
};
|
||||
|
||||
audioRt = {
|
||||
enable = lib.mkEnableOption "Audio RT scheduling and CPU isolation";
|
||||
|
||||
audioCpus = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "12-15";
|
||||
description = "CPU list reserved for audio services (systemd cpuset syntax).";
|
||||
};
|
||||
|
||||
nonAudioCpus = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "0-11";
|
||||
description = "CPU list for everything else.";
|
||||
};
|
||||
|
||||
cpuPartitioning = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = config.lumpiasty.audioRt.enable;
|
||||
description = ''
|
||||
Cgroup-based CPU partitioning via dedicated audio.slice and
|
||||
restricted app/session/background slices.
|
||||
'';
|
||||
};
|
||||
|
||||
rtLimits = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = config.lumpiasty.audioRt.enable;
|
||||
description = ''
|
||||
Raise rlimits (RTPRIO=95, MEMLOCK=infinity) for the audio group
|
||||
so PipeWire's module-rt can set SCHED_FIFO 88 directly instead
|
||||
of going through RTKit's priority-10 ceiling.
|
||||
'';
|
||||
};
|
||||
|
||||
performanceGovernor = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = config.lumpiasty.audioRt.enable;
|
||||
description = ''
|
||||
Keep cpufreq governor `performance` on the audio cores so they
|
||||
stay boosted regardless of measured utilization.
|
||||
'';
|
||||
};
|
||||
|
||||
ananicy = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = config.lumpiasty.audioRt.enable;
|
||||
description = ''
|
||||
Run ananicy-cpp with a rule that pins easyeffects to nice -12 so
|
||||
its non-RT DSP threads get scheduler preference under load.
|
||||
'';
|
||||
};
|
||||
|
||||
optimisedBinaries = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = config.lumpiasty.audioRt.enable;
|
||||
description = ''
|
||||
Rebuild easyeffects and its DSP dependencies with -march=znver4 -O3
|
||||
(and LTO for cmake builds, target-cpu for rust builds).
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,8 +1,5 @@
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
{
|
||||
options.lumpiasty.gaming = lib.mkEnableOption "Enable options specific to gaming computers";
|
||||
options.lumpiasty.scx = lib.mkEnableOption "Enable sched-ext";
|
||||
|
||||
config = lib.mkIf config.lumpiasty.gaming {
|
||||
# https://github.com/NixOS/nixpkgs/blob/10e687235226880ed5e9f33f1ffa71fe60f2638a/nixos/modules/programs/steam.nix
|
||||
hardware.graphics = {
|
||||
|
||||
@@ -6,8 +6,6 @@
|
||||
# defaults, mirroring the Fedora 45 change:
|
||||
# https://fedoraproject.org/wiki/Changes/IPv6-Mostly_Support_In_NetworkManager
|
||||
{
|
||||
options.lumpiasty.ipv6Mostly = lib.mkEnableOption "Enable IPv6-mostly (RFC 8925 + CLAT/464XLAT) support in NetworkManager";
|
||||
|
||||
config = lib.mkIf config.lumpiasty.ipv6Mostly {
|
||||
# Use the patched NM build with CLAT support, without replacing pkgs.networkmanager
|
||||
# globally (which would cascade rebuilds across the entire system closure).
|
||||
|
||||
@@ -6,6 +6,6 @@
|
||||
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
# Ventoy has some blobs making it insecure
|
||||
"ventoy-qt5-1.1.12"
|
||||
"ventoy-qt5-${pkgs.ventoy.version}"
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c
|
||||
--- a/fs/ntfs/super.c
|
||||
+++ b/fs/ntfs/super.c
|
||||
@@ -91,7 +91,7 @@ static const struct fs_parameter_spec ntfs_parameters[] = {
|
||||
fsparam_flag("sys_immutable", Opt_sys_immutable),
|
||||
fsparam_flag("nohidden", Opt_nohidden),
|
||||
fsparam_flag("hide_dot_files", Opt_hide_dot_files),
|
||||
- fsparam_flag("windows_names", Opt_check_windows_names),
|
||||
+ fsparam_bool("windows_names", Opt_check_windows_names),
|
||||
fsparam_flag("acl", Opt_acl),
|
||||
fsparam_flag("discard", Opt_discard),
|
||||
fsparam_flag("sparse", Opt_sparse),
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
diff --git a/fs/ntfs/namei.c b/fs/ntfs/namei.c
|
||||
--- a/fs/ntfs/namei.c
|
||||
+++ b/fs/ntfs/namei.c
|
||||
@@ -61,12 +61,12 @@ static int ntfs_check_bad_windows_name(struct ntfs_volume *vol,
|
||||
const __le16 *wc,
|
||||
unsigned int wc_len)
|
||||
{
|
||||
- if (ntfs_check_bad_char(wc, wc_len))
|
||||
- return -EINVAL;
|
||||
-
|
||||
if (!NVolCheckWindowsNames(vol))
|
||||
return 0;
|
||||
|
||||
+ if (ntfs_check_bad_char(wc, wc_len))
|
||||
+ return -EINVAL;
|
||||
+
|
||||
/* Check for trailing space or dot. */
|
||||
if (wc_len > 0 &&
|
||||
(wc[wc_len - 1] == cpu_to_le16(' ') ||
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
|
||||
{
|
||||
boot.extraModulePackages = [
|
||||
((pkgs.callPackage ../../pkgs/ntfs/package.nix { kernel = config.boot.kernelPackages.kernel; }).overrideAttrs {
|
||||
patches = [
|
||||
./ntfsplus-patches/0001-fix-windows_names-option.patch
|
||||
./ntfsplus-patches/0002-gate-bad-character-check-by-windows_names.patch
|
||||
];
|
||||
})
|
||||
];
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
options.lumpiasty.pc = lib.mkEnableOption "Enable options specific to personal computers";
|
||||
options.lumpiasty.laptop = lib.mkEnableOption "Enable options specific to laptops";
|
||||
}
|
||||
@@ -1,8 +1,6 @@
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
options.lumpiasty.sshd = lib.mkEnableOption "Enable intel CPU";
|
||||
|
||||
config = lib.mkIf config.lumpiasty.sshd {
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
|
||||
@@ -10,12 +10,6 @@ let
|
||||
mkUser = import ../../lib/mkUser.nix { inherit lib; };
|
||||
in
|
||||
{
|
||||
options.lumpiasty.users = {
|
||||
user = lib.mkEnableOption "Create user \"user\"";
|
||||
drugi = lib.mkEnableOption "Create user \"drugi\"";
|
||||
};
|
||||
|
||||
|
||||
config = {
|
||||
# Install system-wide docker because rootless causes issues with binfmt
|
||||
virtualisation.docker.enable = config.lumpiasty.pc;
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
{ pkgs
|
||||
, lib
|
||||
, kernel ? pkgs.linuxPackages_latest.kernel
|
||||
}:
|
||||
|
||||
pkgs.stdenv.mkDerivation {
|
||||
pname = "ntfs-kernel-module";
|
||||
inherit (kernel) src version postPatch nativeBuildInputs;
|
||||
|
||||
kernel_dev = kernel.dev;
|
||||
kernelVersion = kernel.modDirVersion;
|
||||
|
||||
modulePath = "fs/ntfs";
|
||||
|
||||
buildPhase = ''
|
||||
BUILT_KERNEL=$kernel_dev/lib/modules/$kernelVersion/build
|
||||
|
||||
cp $BUILT_KERNEL/Module.symvers .
|
||||
cp $BUILT_KERNEL/.config .
|
||||
cp $kernel_dev/vmlinux .
|
||||
|
||||
make "-j$NIX_BUILD_CORES" modules_prepare
|
||||
make "-j$NIX_BUILD_CORES" M=$modulePath modules
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
make \
|
||||
INSTALL_MOD_PATH="$out" \
|
||||
XZ="xz -T$NIX_BUILD_CORES" \
|
||||
M="$modulePath" \
|
||||
modules_install
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "NTFS kernel module";
|
||||
license = lib.licenses.gpl3;
|
||||
};
|
||||
}
|
||||
+2
-2
@@ -1,14 +1,14 @@
|
||||
{ config, pkgs, osConfig, ... }:
|
||||
|
||||
{
|
||||
home.username = "user";
|
||||
# home.username = "user";
|
||||
|
||||
lumpiastyHome = {
|
||||
gpg = osConfig.lumpiasty.pc;
|
||||
enablePcApps = osConfig.lumpiasty.pc;
|
||||
dev = osConfig.lumpiasty.pc;
|
||||
gaming = osConfig.lumpiasty.gaming;
|
||||
fhs = osConfig.lumpiasty.pc;
|
||||
fhs = osConfig.lumpiasty.pc && config.lumpiastyHome.linux;
|
||||
};
|
||||
|
||||
home.stateVersion = "24.05";
|
||||
|
||||
Reference in New Issue
Block a user