Compare commits

...
16 Commits
18 changed files with 261 additions and 88 deletions
Generated
+48 -44
View File
@@ -67,11 +67,11 @@
"systems": "systems_2" "systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1787448531, "lastModified": 1788552094,
"narHash": "sha256-XL0bbQUXgB5TXKWUBzAVxbNwsoII/XQmuHpwqaRI6OQ=", "narHash": "sha256-fdD1tF+RjJME8DRMI/dz2lBuFQ8SvyPCF8tVVZ02OvQ=",
"owner": "sadjow", "owner": "sadjow",
"repo": "claude-code-nix", "repo": "claude-code-nix",
"rev": "a652fdf13cf7ac39be23fafbca3e1d6290eff001", "rev": "ac5abfc00fe9226e9d116f8e2fbb69ae26775ea3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -185,11 +185,11 @@
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1787559586, "lastModified": 1788450739,
"narHash": "sha256-onL0VLf9vPllmT0H/OlURIU5r5t5WIEl7t4tVNKT0Nw=", "narHash": "sha256-glZLQlzIn1fXH6PazR2iUmTo7kzzyYSshrWhLS9TqCU=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "9d0d87172c374f89da73c1cfe6d81ae62feac1f1", "rev": "31729ca8cbdb4fa927b34e5f4353e6a83f39e993",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -242,11 +242,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1787540599, "lastModified": 1788644970,
"narHash": "sha256-MHwk52ty3NsLhq9a1IbIfBJZlCUJIdiUYFo52JLK9hY=", "narHash": "sha256-6BI+HCRmDPcdoudp7VvLKGBiRhiDct+4MARCxDFI3jg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "03f4cd46bc1dd4f3a96da778d2ce9f7ce39dd450", "rev": "11f7a2df92b132274c49d2645cacd375d4345cf4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -256,6 +256,26 @@
"type": "github" "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": { "lanzaboote": {
"inputs": { "inputs": {
"crane": "crane", "crane": "crane",
@@ -287,11 +307,11 @@
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1787594581, "lastModified": 1788636383,
"narHash": "sha256-C0Ckqq9K/XMIWKW/OFeIkKipMXc6Qc3eFMiY4w7Iv8o=", "narHash": "sha256-rb0Cq4ahQej8/d4qMyZJ9nqfjNUptNUzhoc3OXUzYWc=",
"owner": "xddxdd", "owner": "xddxdd",
"repo": "nix-cachyos-kernel", "repo": "nix-cachyos-kernel",
"rev": "be42f230afd6789046dc99c4479236d4061fe7e1", "rev": "aa89b450a7ba56db6f5f7331672404dae7e0805f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -344,11 +364,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1787600895, "lastModified": 1788635631,
"narHash": "sha256-cugFvCDVE5alelpwRfv7PQc0JRYJuR5L+5gt8J5iris=", "narHash": "sha256-j1HgbzMxAi/W2ezt2We3DuDNyuZaWXS/Pwg33D/cmQk=",
"owner": "sudosubin", "owner": "sudosubin",
"repo": "nix-skills", "repo": "nix-skills",
"rev": "e61bc6e3b27ee72b887ccfd3f4b3f728b18dbf27", "rev": "6779edbf5b00060920e638197d076d1eb0bdadda",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -387,11 +407,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1787144466, "lastModified": 1788335262,
"narHash": "sha256-HHfv2/HkNSKbbSyU9iD/g8lbP6r4tl33sSw1W4rXCk0=", "narHash": "sha256-3jBEq8avfzlrsY4UpW4d5TOmm7ocseZfnitEJhqauyc=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "0471accf8d0a8210b31d947497d179ecc99e0021", "rev": "44d95795ee2d475b3d687325e26dcf4ca9104557",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -403,11 +423,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1787574585, "lastModified": 1788625351,
"narHash": "sha256-lYyM+zbWl1jCJ5xSxPzCkPtxO3OXMst8+QfboXRQCcs=", "narHash": "sha256-HuowOcoS6Wquoa0FPdCwRZ9NkXy3kw+gz0gV2sKhBW8=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "09cf6aa915e6e042f74607067dffa237084ff53e", "rev": "8f3889588add43913e8bfbbd42a75345c857cf59",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -417,29 +437,13 @@
"type": "github" "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": { "nixpkgs-lib": {
"locked": { "locked": {
"lastModified": 1785031560, "lastModified": 1788057806,
"narHash": "sha256-OmshNvn2vupOFpYinLUu+1Dnpu4n7Q5N3ggGVNHpkUI=", "narHash": "sha256-DTQSMxzDWmT0zhguthvegnVkn7CFqGCv4IHCzk5ZUpM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs.lib", "repo": "nixpkgs.lib",
"rev": "0e79af5e3d4dcfcd676ab5ba3f95d2e3352e078c", "rev": "596e2e3940e09b2abbeb03f75fa1828c57fcd72c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -466,11 +470,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1787498568, "lastModified": 1788614874,
"narHash": "sha256-9i/VTdusq/+NM/tz+J1Re+ojkMB8MBf0QshnYfzHz30=", "narHash": "sha256-7QYjT2vHLuX9Z1pdxHXDKCbh1CR3D/2rywB9Tx0MPRg=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "56c02bc00adcf003215cc4bd996d6efaf4cff188", "rev": "c043004d1c6985732bcc1cbc5a9c9aecbbb4e0f0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -567,6 +571,7 @@
"bun2nix": "bun2nix", "bun2nix": "bun2nix",
"claude-code": "claude-code", "claude-code": "claude-code",
"home-manager": "home-manager", "home-manager": "home-manager",
"homebrew": "homebrew",
"lanzaboote": "lanzaboote", "lanzaboote": "lanzaboote",
"nix-cachyos-kernel": "nix-cachyos-kernel", "nix-cachyos-kernel": "nix-cachyos-kernel",
"nix-darwin": "nix-darwin", "nix-darwin": "nix-darwin",
@@ -575,7 +580,6 @@
"nix-sweep": "nix-sweep", "nix-sweep": "nix-sweep",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"nixpkgs-2605": "nixpkgs-2605",
"nixpkgs-linuxeol": "nixpkgs-linuxeol", "nixpkgs-linuxeol": "nixpkgs-linuxeol",
"peerix": "peerix", "peerix": "peerix",
"plasma-manager": "plasma-manager" "plasma-manager": "plasma-manager"
+18 -3
View File
@@ -14,7 +14,6 @@
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgs-2605.url = "github:NixOS/nixpkgs/nixos-26.05";
nixpkgs-linuxeol.url = "github:NixOS/nixpkgs/162f04bf3dd222187388bc990a8678170d594419"; nixpkgs-linuxeol.url = "github:NixOS/nixpkgs/162f04bf3dd222187388bc990a8678170d594419";
nixos-hardware = { nixos-hardware = {
url = "github:NixOS/nixos-hardware/master"; url = "github:NixOS/nixos-hardware/master";
@@ -62,6 +61,10 @@
url = "github:nix-darwin/nix-darwin/master"; url = "github:nix-darwin/nix-darwin/master";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
homebrew = {
url = "github:koalalorenzo/home-manager-brew";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = { self, nixos-hardware, nix-darwin, ... }@inputs: outputs = { self, nixos-hardware, nix-darwin, ... }@inputs:
@@ -77,13 +80,25 @@
}; };
darwinConfigurations."MacBook-Pro-Macbook" = nix-darwin.lib.darwinSystem { darwinConfigurations."MacBook-Pro-Macbook" = nix-darwin.lib.darwinSystem {
modules = [ modules = [
((import ./configuration.nix) self) ((import ./hosts/macbook.nix) self)
inputs.home-manager.darwinModules.home-manager inputs.home-manager.darwinModules.home-manager
{ {
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.verbose = true; home-manager.verbose = true;
home-manager.users.macbookpro = ./home-modules; 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; });
} }
]; ];
}; };
+37
View File
@@ -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;
})
];
}
+3
View File
@@ -7,6 +7,9 @@
./dev.nix ./dev.nix
./gaming.nix ./gaming.nix
./fhsBash.nix ./fhsBash.nix
./linux.nix
./macos.nix
./brew.nix
] ++ lib.optionals (osConfig.lumpiasty.enablePlasma) [ ] ++ lib.optionals (osConfig.lumpiasty.enablePlasma) [
./plasma.nix ./plasma.nix
]; ];
+1 -4
View File
@@ -73,17 +73,14 @@
docker docker
docker-buildx docker-buildx
proton-vpn proton-vpn
wl-clipboard
devenv devenv
dig dig
whois whois
mtr mtr
traceroute
nodejs_24 nodejs_24
codex codex
claude-code claude-code
winbox4 winbox4
amdgpu_top
dua dua
]; ];
@@ -120,7 +117,7 @@
User = "root"; User = "root";
ControlMaster = "auto"; ControlMaster = "auto";
ControlPersist = "3600"; 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; ServerAliveInterval = 20;
}; };
+7 -6
View File
@@ -7,7 +7,7 @@
services.gpg-agent = { services.gpg-agent = {
enable = true; enable = true;
enableSshSupport = true; enableSshSupport = true;
pinentry.package = pkgs.pinentry-qt; pinentry.package = lib.mkIf config.lumpiastyHome.linux pkgs.pinentry-qt;
extraConfig = '' extraConfig = ''
listen-backlog 256 listen-backlog 256
''; '';
@@ -15,11 +15,12 @@
programs.gpg.enable = true; programs.gpg.enable = true;
programs.git.signing = { programs.git.signing =
format = "openpgp"; lib.mkIf config.lumpiastyHome.linux { # TODO: on macos too
key = "EA287B39E5F69945"; format = "openpgp";
signByDefault = true; key = "EA287B39E5F69945";
}; signByDefault = true;
};
programs.bash.enable = lib.mkDefault true; programs.bash.enable = lib.mkDefault true;
}; };
+29
View File
@@ -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
]);
};
}
+10
View File
@@ -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
View File
@@ -8,11 +8,6 @@
vesktop vesktop
# Manual update, not yet in nixpkgs as for now # Manual update, not yet in nixpkgs as for now
spotify spotify
pass-wayland
teamspeak6-client
easyeffects
libreoffice-qt6-fresh
vlc
inkscape inkscape
qtpass qtpass
signal-desktop signal-desktop
@@ -20,26 +15,15 @@
thunderbird thunderbird
pwgen pwgen
siyuan siyuan
gimp
ventoy-full-qt
]; ];
programs.librewolf.enable = true; 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; # services.flatpak.remotes = [{
programs.chromium.package = pkgs.ungoogled-chromium; # name = "flathub"; location = "https://dl.flathub.org/repo/flathub.flatpakrepo";
# }];
services.flatpak.remotes = [{ # services.flatpak.packages = [
name = "flathub"; location = "https://dl.flathub.org/repo/flathub.flatpakrepo"; # # "org.onlyoffice.desktopeditors"
}]; # ];
services.flatpak.packages = [
# "org.onlyoffice.desktopeditors"
];
# Vesktop settings # Vesktop settings
# Nope, TODO # Nope, TODO
+14 -3
View File
@@ -1,10 +1,12 @@
self: { pkgs, ... }: { self: { pkgs, ... }: {
imports = [ ./modules/options.nix ]; imports = [ ../modules/options.nix ];
# List packages installed in system profile. To search by name, run: # List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget # $ nix-env -qaP | grep wget
environment.systemPackages = environment.systemPackages = with pkgs; [
[ pkgs.vim vim
curl
git
]; ];
# Necessary for using flakes on this system. # Necessary for using flakes on this system.
@@ -22,4 +24,13 @@ self: { pkgs, ... }: {
# The platform the configuration will be used on. # The platform the configuration will be used on.
nixpkgs.hostPlatform = "aarch64-darwin"; nixpkgs.hostPlatform = "aarch64-darwin";
users.users.macbookpro = {
home = "/Users/macbookpro";
};
lumpiasty.pc = true;
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
} }
+1
View File
@@ -9,5 +9,6 @@ lib.mkIf condition (
../home-modules ../home-modules
home home
]; ];
lumpiastyHome.linux = true;
} }
) )
-4
View File
@@ -1,7 +1,6 @@
{ {
self, self,
nixpkgs, nixpkgs,
nixpkgs-2605,
home-manager, home-manager,
nix-flatpak, nix-flatpak,
plasma-manager, plasma-manager,
@@ -29,9 +28,6 @@ nixpkgs.lib.nixosSystem {
modules = [ modules = [
{ {
nixpkgs.overlays = [ nixpkgs.overlays = [
(final: prev: {
librewolf = nixpkgs-2605.legacyPackages.${prev.system}.librewolf;
})
claude-code.overlays.default claude-code.overlays.default
acer-wmi-ext.overlays.default acer-wmi-ext.overlays.default
nix-skills.overlays.default nix-skills.overlays.default
+1
View File
@@ -18,6 +18,7 @@
system/ipv6-mostly.nix system/ipv6-mostly.nix
system/nix.nix system/nix.nix
system/zfs.nix system/zfs.nix
system/ntfsplus.nix
desktop/plasma.nix desktop/plasma.nix
desktop/touchpad.nix desktop/touchpad.nix
@@ -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(' ') ||
+13
View File
@@ -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
];
})
];
}
+38
View File
@@ -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
View File
@@ -1,14 +1,14 @@
{ config, pkgs, osConfig, ... }: { config, pkgs, osConfig, ... }:
{ {
home.username = "user"; # home.username = "user";
lumpiastyHome = { lumpiastyHome = {
gpg = osConfig.lumpiasty.pc; gpg = osConfig.lumpiasty.pc;
enablePcApps = osConfig.lumpiasty.pc; enablePcApps = osConfig.lumpiasty.pc;
dev = osConfig.lumpiasty.pc; dev = osConfig.lumpiasty.pc;
gaming = osConfig.lumpiasty.gaming; gaming = osConfig.lumpiasty.gaming;
fhs = osConfig.lumpiasty.pc; fhs = osConfig.lumpiasty.pc && config.lumpiastyHome.linux;
}; };
home.stateVersion = "24.05"; home.stateVersion = "24.05";