Compare commits
9 Commits
6c638c6afd
..
nixbsd
| Author | SHA1 | Date | |
|---|---|---|---|
|
92330a6fe2
|
|||
|
027f6a111a
|
|||
| 478d77d1bc | |||
| 10df44a898 | |||
| 5c5f0a4315 | |||
| cb59a2e331 | |||
| cdd1bb750b | |||
| 1e82a29f5a | |||
| 3506d95e67 |
@@ -10,6 +10,7 @@
|
|||||||
- [*] nie wyłączaj głądzika przy pisaniu
|
- [*] nie wyłączaj głądzika przy pisaniu
|
||||||
- [*] prędkość przewijania na gładziku
|
- [*] prędkość przewijania na gładziku
|
||||||
- domyślne programy - rozpisać jakie
|
- domyślne programy - rozpisać jakie
|
||||||
|
- libreoffice writer dla .doc
|
||||||
- [*] wskaźnik myszy
|
- [*] wskaźnik myszy
|
||||||
- menedżer plików
|
- menedżer plików
|
||||||
- rozwinięty terminal
|
- rozwinięty terminal
|
||||||
@@ -85,3 +86,5 @@
|
|||||||
26. https://redlib.nadeko.net/r/unixporn/comments/1l5ll27/hyprland_i_3_quickshell/
|
26. https://redlib.nadeko.net/r/unixporn/comments/1l5ll27/hyprland_i_3_quickshell/
|
||||||
27. Donut browser, Camoufox
|
27. Donut browser, Camoufox
|
||||||
28. cups, sane w home-manager
|
28. cups, sane w home-manager
|
||||||
|
29. earlyoom
|
||||||
|
30. Llama.cpp, expose via tailscale, allow from homelab's openwebui
|
||||||
|
|||||||
Generated
+211
-1
@@ -1,5 +1,26 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"acer-wmi-ext": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1776998627,
|
||||||
|
"narHash": "sha256-n0ENc4Xi1d3ApoHTRsfssC6AAroFgIKXJzJFykxNanY=",
|
||||||
|
"owner": "Lumpiasty",
|
||||||
|
"repo": "acer-wmi-ext",
|
||||||
|
"rev": "d0be381bbd661ed4bb327a9c92b980a0b9edacac",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Lumpiasty",
|
||||||
|
"ref": "main",
|
||||||
|
"repo": "acer-wmi-ext",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"cf": {
|
"cf": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756852014,
|
"lastModified": 1756852014,
|
||||||
@@ -37,6 +58,33 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"cppnix": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_2",
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"git-hooks-nix": "git-hooks-nix",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixbsd",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-23-11": "nixpkgs-23-11",
|
||||||
|
"nixpkgs-regression": "nixpkgs-regression"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1771531533,
|
||||||
|
"narHash": "sha256-E6uWPzQoMpzUb+2kcrxaYsfhUXjyIAoTpI6DPtbe1Y0=",
|
||||||
|
"owner": "rhelmot",
|
||||||
|
"repo": "nix",
|
||||||
|
"rev": "d623444c12428e69a3269d3b4b40200f2b4618fc",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "rhelmot",
|
||||||
|
"ref": "freebsd-safe",
|
||||||
|
"repo": "nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"crane": {
|
"crane": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1765145449,
|
"lastModified": 1765145449,
|
||||||
@@ -84,6 +132,36 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_2": {
|
"flake-compat_2": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1733328505,
|
||||||
|
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1733328505,
|
||||||
|
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||||
|
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||||
|
"revCount": 69,
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_4": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1627913399,
|
"lastModified": 1627913399,
|
||||||
@@ -99,6 +177,28 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"nixbsd",
|
||||||
|
"cppnix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1733312601,
|
||||||
|
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
@@ -132,6 +232,41 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"git-hooks-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": [
|
||||||
|
"nixbsd",
|
||||||
|
"cppnix"
|
||||||
|
],
|
||||||
|
"gitignore": [
|
||||||
|
"nixbsd",
|
||||||
|
"cppnix"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixbsd",
|
||||||
|
"cppnix",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-stable": [
|
||||||
|
"nixbsd",
|
||||||
|
"cppnix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1734279981,
|
||||||
|
"narHash": "sha256-NdaCraHPp8iYMWzdXAt5Nv6sA3MUzlCiGiR586TCwo0=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"rev": "aa9f40c906904ebd83da78e7f328cd8aeaeae785",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"gitignore": {
|
"gitignore": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -199,6 +334,27 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"mini-tmpfiles": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixbsd",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1742754557,
|
||||||
|
"narHash": "sha256-nGxgiNhA94eSl8jcQwCboJ5Ed132z8yrFdOoT+rf8bE=",
|
||||||
|
"owner": "nixos-bsd",
|
||||||
|
"repo": "mini-tmpfiles",
|
||||||
|
"rev": "534ee577692c7092fdcd035f89bc29b663c6f9ca",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos-bsd",
|
||||||
|
"repo": "mini-tmpfiles",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nix-flatpak": {
|
"nix-flatpak": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767983141,
|
"lastModified": 1767983141,
|
||||||
@@ -238,6 +394,26 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixbsd": {
|
||||||
|
"inputs": {
|
||||||
|
"cppnix": "cppnix",
|
||||||
|
"flake-compat": "flake-compat_3",
|
||||||
|
"mini-tmpfiles": "mini-tmpfiles",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1777600581,
|
||||||
|
"narHash": "sha256-DbKmDIFNLqR8xXnSepJPr29FngkiPDa8+vAErZRrQUA=",
|
||||||
|
"path": "/home/user/Projects/nixbsd",
|
||||||
|
"type": "path"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"path": "/home/user/Projects/nixbsd",
|
||||||
|
"type": "path"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1776830795,
|
"lastModified": 1776830795,
|
||||||
@@ -270,9 +446,41 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs-23-11": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1717159533,
|
||||||
|
"narHash": "sha256-oamiKNfr2MS6yH64rUn99mIZjc45nGJlj9eGth/3Xuw=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-regression": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1643052045,
|
||||||
|
"narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"peerix": {
|
"peerix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_4",
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils_2",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
@@ -340,11 +548,13 @@
|
|||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"acer-wmi-ext": "acer-wmi-ext",
|
||||||
"claude-code": "claude-code",
|
"claude-code": "claude-code",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"lanzaboote": "lanzaboote",
|
"lanzaboote": "lanzaboote",
|
||||||
"nix-flatpak": "nix-flatpak",
|
"nix-flatpak": "nix-flatpak",
|
||||||
"nix-sweep": "nix-sweep",
|
"nix-sweep": "nix-sweep",
|
||||||
|
"nixbsd": "nixbsd",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"peerix": "peerix",
|
"peerix": "peerix",
|
||||||
|
|||||||
@@ -30,6 +30,14 @@
|
|||||||
url = "git+ssh://git@gitea.lumpiasty.xyz/Lumpiasty/peerix.git"; # fork of github:sophronesis/peerix
|
url = "git+ssh://git@gitea.lumpiasty.xyz/Lumpiasty/peerix.git"; # fork of github:sophronesis/peerix
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
acer-wmi-ext = {
|
||||||
|
url = "github:Lumpiasty/acer-wmi-ext/main";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
nixbsd = {
|
||||||
|
url = "path:/home/user/Projects/nixbsd";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixos-hardware, ... }@inputs:
|
outputs = { self, nixos-hardware, ... }@inputs:
|
||||||
@@ -37,11 +45,13 @@
|
|||||||
nixosConfigurations =
|
nixosConfigurations =
|
||||||
let
|
let
|
||||||
mkNixosSystem = import lib/mkNixosSystem.nix inputs;
|
mkNixosSystem = import lib/mkNixosSystem.nix inputs;
|
||||||
|
mkNixbsdSystem = import lib/mkNixbsdSystem.nix inputs;
|
||||||
in
|
in
|
||||||
with nixos-hardware.nixosModules; {
|
with nixos-hardware.nixosModules; {
|
||||||
x260 = mkNixosSystem lenovo-thinkpad-x260 hosts/x260.nix;
|
x260 = mkNixosSystem lenovo-thinkpad-x260 hosts/x260.nix;
|
||||||
acer = mkNixosSystem {} hosts/acer.nix;
|
acer = mkNixosSystem {} hosts/acer.nix;
|
||||||
gaming-pc = mkNixosSystem {} hosts/gaming-pc.nix;
|
gaming-pc = mkNixosSystem {} hosts/gaming-pc.nix;
|
||||||
|
bestieTest = mkNixbsdSystem hosts/bestieTest.nix;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -11,7 +11,6 @@
|
|||||||
name = "Lumpiasty";
|
name = "Lumpiasty";
|
||||||
email = "arek.dzski@gmail.com";
|
email = "arek.dzski@gmail.com";
|
||||||
};
|
};
|
||||||
signing.format = null; # New default
|
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.vscode = {
|
programs.vscode = {
|
||||||
|
|||||||
@@ -15,6 +15,12 @@
|
|||||||
|
|
||||||
programs.gpg.enable = true;
|
programs.gpg.enable = true;
|
||||||
|
|
||||||
|
programs.git.signing = {
|
||||||
|
format = "openpgp";
|
||||||
|
key = "EA287B39E5F69945";
|
||||||
|
signByDefault = true;
|
||||||
|
};
|
||||||
|
|
||||||
programs.bash.enable = lib.mkDefault true;
|
programs.bash.enable = lib.mkDefault true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -28,6 +28,7 @@
|
|||||||
pwgen
|
pwgen
|
||||||
siyuan
|
siyuan
|
||||||
gimp
|
gimp
|
||||||
|
ventoy-full-qt
|
||||||
];
|
];
|
||||||
programs.librewolf.enable = true;
|
programs.librewolf.enable = true;
|
||||||
services.easyeffects.enable = true;
|
services.easyeffects.enable = true;
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
{ config, pkgs, lib, ... }: {
|
||||||
|
nixpkgs.hostPlatform = "x86_64-freebsd";
|
||||||
|
nixpkgs.config.allowUnsupportedSystem = true;
|
||||||
|
|
||||||
|
users.users.root.initialPassword = "toor";
|
||||||
|
|
||||||
|
networking.dhcpcd.wait = "background";
|
||||||
|
|
||||||
|
users.users.bestie = {
|
||||||
|
isNormalUser = true;
|
||||||
|
description = "your bestie";
|
||||||
|
extraGroups = [ "wheel" ];
|
||||||
|
inherit (config.users.users.root) initialPassword;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.sshd.enable = true;
|
||||||
|
boot.loader.stand-freebsd.enable = true;
|
||||||
|
|
||||||
|
fileSystems."/" = {
|
||||||
|
device = "/dev/gpt/nixos";
|
||||||
|
fsType = "ufs";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" = {
|
||||||
|
device = "/dev/msdosfs/ESP";
|
||||||
|
fsType = "msdosfs";
|
||||||
|
};
|
||||||
|
|
||||||
|
virtualisation.vmVariant.virtualisation.diskImage = "./${config.system.name}.qcow2";
|
||||||
|
}
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
{
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
nixbsd,
|
||||||
|
home-manager,
|
||||||
|
nix-flatpak,
|
||||||
|
plasma-manager,
|
||||||
|
lanzaboote,
|
||||||
|
claude-code,
|
||||||
|
nix-sweep,
|
||||||
|
peerix,
|
||||||
|
acer-wmi-ext,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
hostConfig:
|
||||||
|
|
||||||
|
nixbsd.lib.nixbsdSystem {
|
||||||
|
modules = [
|
||||||
|
# Cross-compile FreeBSD from Linux, builds dispatched to remote builder
|
||||||
|
{
|
||||||
|
nixpkgs.buildPlatform = "x86_64-linux";
|
||||||
|
nixpkgs.config.allowUnsupportedSystem = true;
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
(final: prev: {
|
||||||
|
# No-op emulator for FreeBSD - builds happen on remote builder where binaries run natively
|
||||||
|
freebsdEmulator = prev.runCommand "freebsd-emulator" { } ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cat > $out/bin/freebsd-exec << 'SCRIPT'
|
||||||
|
#!/bin/sh
|
||||||
|
exec "$@"
|
||||||
|
SCRIPT
|
||||||
|
chmod +x $out/bin/freebsd-exec
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Override mesonEmulatorHook to not require a real emulator for FreeBSD
|
||||||
|
mesonEmulatorHook =
|
||||||
|
let
|
||||||
|
canExec = prev.stdenv.hostPlatform.canExecute prev.stdenv.targetPlatform;
|
||||||
|
emulatorPath = "${final.freebsdEmulator}/bin/freebsd-exec";
|
||||||
|
in
|
||||||
|
if canExec then
|
||||||
|
prev.mesonEmulatorHook
|
||||||
|
else
|
||||||
|
prev.makeSetupHook
|
||||||
|
{
|
||||||
|
name = "mesonEmulatorHook";
|
||||||
|
substitutions = {
|
||||||
|
crossFile = prev.writeText "cross-file.conf" ''
|
||||||
|
[binaries]
|
||||||
|
exe_wrapper = '${prev.lib.escape [ "'" "\\" ] emulatorPath}'
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
"${nixpkgs.outPath}/pkgs/build-support/setup-hooks/meson/emulator-hook.sh";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
||||||
|
hostConfig
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
claude-code,
|
claude-code,
|
||||||
nix-sweep,
|
nix-sweep,
|
||||||
peerix,
|
peerix,
|
||||||
|
acer-wmi-ext,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
hardwareConfig: hostConfig:
|
hardwareConfig: hostConfig:
|
||||||
@@ -17,10 +18,14 @@ nixpkgs.lib.nixosSystem {
|
|||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit nix-flatpak;
|
inherit nix-flatpak;
|
||||||
inherit plasma-manager;
|
inherit plasma-manager;
|
||||||
|
inherit acer-wmi-ext;
|
||||||
};
|
};
|
||||||
modules = [
|
modules = [
|
||||||
{
|
{
|
||||||
nixpkgs.overlays = [ claude-code.overlays.default ];
|
nixpkgs.overlays = [
|
||||||
|
claude-code.overlays.default
|
||||||
|
acer-wmi-ext.overlays.default
|
||||||
|
];
|
||||||
nix.settings = {
|
nix.settings = {
|
||||||
substituters = [ "https://claude-code.cachix.org" ];
|
substituters = [ "https://claude-code.cachix.org" ];
|
||||||
trusted-public-keys = [ "claude-code.cachix.org-1:YeXf2aNu7UTX8Vwrze0za1WEDS+4DuI2kVeWEE4fsRk=" ];
|
trusted-public-keys = [ "claude-code.cachix.org-1:YeXf2aNu7UTX8Vwrze0za1WEDS+4DuI2kVeWEE4fsRk=" ];
|
||||||
|
|||||||
@@ -6,14 +6,48 @@ let
|
|||||||
else if config.boot.loader.systemd-boot.enable then
|
else if config.boot.loader.systemd-boot.enable then
|
||||||
config.boot.loader.systemd-boot.configurationLimit
|
config.boot.loader.systemd-boot.configurationLimit
|
||||||
else null;
|
else null;
|
||||||
|
|
||||||
|
# NixBSD builder VM SSH key (needs to be readable by root/nix-daemon)
|
||||||
|
builderKeyDir = "/etc/nix/builder-keys";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
nix = {
|
nix = {
|
||||||
daemonIOSchedClass = "idle";
|
daemonIOSchedClass = "idle";
|
||||||
daemonCPUSchedPolicy = "idle";
|
daemonCPUSchedPolicy = "idle";
|
||||||
settings.trusted-users = [ "root" "user" ];
|
settings.trusted-users = [ "root" "user" ];
|
||||||
|
|
||||||
|
# FreeBSD remote builder VM (NixBSD)
|
||||||
|
distributedBuilds = true;
|
||||||
|
buildMachines = [
|
||||||
|
{
|
||||||
|
hostName = "192.168.122.100";
|
||||||
|
system = "x86_64-freebsd";
|
||||||
|
sshUser = "root";
|
||||||
|
sshKey = "${builderKeyDir}/nixbsd-builder";
|
||||||
|
maxJobs = 8;
|
||||||
|
speedFactor = 1;
|
||||||
|
supportedFeatures = [ "big-parallel" ];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
settings.builders-use-substitutes = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Install the builder SSH key where root/nix-daemon can read it
|
||||||
|
system.activationScripts.nixbsd-builder-key = ''
|
||||||
|
mkdir -p ${builderKeyDir}
|
||||||
|
cp /home/user/Projects/nixbsd-flake/keys/builder ${builderKeyDir}/nixbsd-builder
|
||||||
|
chmod 600 ${builderKeyDir}/nixbsd-builder
|
||||||
|
chown root:root ${builderKeyDir}/nixbsd-builder
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Skip host key checking for the local builder VM (keys change on rebuild)
|
||||||
|
programs.ssh.extraConfig = ''
|
||||||
|
Host 192.168.122.100
|
||||||
|
StrictHostKeyChecking no
|
||||||
|
UserKnownHostsFile /dev/null
|
||||||
|
LogLevel ERROR
|
||||||
|
'';
|
||||||
|
|
||||||
# Clean up nix store from old configurations usinx nix-sweep
|
# Clean up nix store from old configurations usinx nix-sweep
|
||||||
services.nix-sweep = {
|
services.nix-sweep = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@@ -8,4 +8,9 @@
|
|||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
(import ../../overlays/pkgs.nix)
|
(import ../../overlays/pkgs.nix)
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# Ventoy has some blobs making it insecure
|
||||||
|
nixpkgs.config.permittedInsecurePackages = [
|
||||||
|
"ventoy-qt5-1.1.10"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
@@ -10,6 +10,7 @@
|
|||||||
tree
|
tree
|
||||||
usbutils
|
usbutils
|
||||||
pciutils
|
pciutils
|
||||||
|
efibootmgr
|
||||||
];
|
];
|
||||||
|
|
||||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
|||||||
@@ -1,19 +1,4 @@
|
|||||||
self: super:
|
self: super:
|
||||||
{
|
{
|
||||||
ddccontrol = super.callPackage ../pkgs/ddccontrol {};
|
|
||||||
opencode-claude-auth = super.callPackage ../pkgs/opencode-claude-auth {};
|
opencode-claude-auth = super.callPackage ../pkgs/opencode-claude-auth {};
|
||||||
# Pin some kde packages to 6.3.1, 6.3.2 breaks thunderbolt
|
|
||||||
# kdePackages = super.kdePackages.overrideScope(kdeFinal: kdePrev: {
|
|
||||||
# kwin = kdePrev.kwin.overrideAttrs (prevAttrs: {
|
|
||||||
# src = super.fetchurl {
|
|
||||||
# url = "mirror://kde/stable/plasma/6.3.1/kwin-6.3.1.tar.xz";
|
|
||||||
# hash = "sha256-mlC6DqpiCXg73vu2aOV9DL36cc6Ov70X/kRtttdz8kI=";
|
|
||||||
# };
|
|
||||||
# version = "6.3.1";
|
|
||||||
# });
|
|
||||||
# });
|
|
||||||
linuxPackages = super.linuxPackages.extend (lpself: lpsuper: {
|
|
||||||
acer-wmi-ext = lpsuper.callPackage ../pkgs/acer-wmi-ext {};
|
|
||||||
acer-wmi-battery = lpsuper.callPackage ../pkgs/acer-wmi-battery {};
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
# Custom module for Acer WMI features, like battery charge limit
|
|
||||||
{
|
|
||||||
lib,
|
|
||||||
stdenv,
|
|
||||||
fetchFromGitHub,
|
|
||||||
kernel
|
|
||||||
}:
|
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
pname = "acer-wmi-battery";
|
|
||||||
version = "0.0.0";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "frederik-h";
|
|
||||||
repo = "acer-wmi-battery";
|
|
||||||
rev = "0889d3ea54655eaa88de552b334911ce7375952f";
|
|
||||||
sha256 = "sha256-mI6Ob9BmNfwqT3nndWf3jkz8f7tV10odkTnfApsNo+A=";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [ kernel.moduleBuildDependencies ];
|
|
||||||
|
|
||||||
# Makefile provided in repo is useless, hardcoded paths, not using it
|
|
||||||
|
|
||||||
setSourceRoot = ''
|
|
||||||
export sourceRoot=$(pwd)/source
|
|
||||||
'';
|
|
||||||
|
|
||||||
makeFlags = [
|
|
||||||
"-C"
|
|
||||||
"${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
|
|
||||||
"M=$(sourceRoot)"
|
|
||||||
];
|
|
||||||
|
|
||||||
patchPhase = ''
|
|
||||||
cat > Kbuild <<EOF
|
|
||||||
obj-m := acer-wmi-battery.o
|
|
||||||
EOF
|
|
||||||
'';
|
|
||||||
|
|
||||||
buildFlags = [ "modules" ];
|
|
||||||
installFlags = [ "INSTALL_MOD_PATH=${placeholder "out"}" ];
|
|
||||||
installTargets = [ "modules_install" ];
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "Acer WMI kernel module for battery charge limit";
|
|
||||||
homepage = "https://github.com/frederik-h/acer-wmi-battery";
|
|
||||||
license = lib.licenses.gpl2;
|
|
||||||
platforms = lib.platforms.linux;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
# Custom module for Acer WMI features, like battery charge limit and fan control
|
|
||||||
{
|
|
||||||
lib,
|
|
||||||
stdenv,
|
|
||||||
fetchFromGitHub,
|
|
||||||
kernel
|
|
||||||
}:
|
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
pname = "acer-wmi-ext";
|
|
||||||
version = "0.0.0";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "TenSeventy7";
|
|
||||||
repo = "acer-wmi-ext";
|
|
||||||
rev = "78aaf9392e1fbdd62c3ec9944e9615505485ec04";
|
|
||||||
sha256 = "sha256-AmhBnZiy7llYqHB9gD6T7lK4L2qhtl5pBWAf+H+V8hE=";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [ kernel.moduleBuildDependencies ];
|
|
||||||
|
|
||||||
# Makefile provided in repo is useless, hardcoded paths, not using it
|
|
||||||
|
|
||||||
setSourceRoot = ''
|
|
||||||
export sourceRoot=$(pwd)/source
|
|
||||||
'';
|
|
||||||
|
|
||||||
makeFlags = [
|
|
||||||
"-C"
|
|
||||||
"${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
|
|
||||||
"M=$(sourceRoot)"
|
|
||||||
];
|
|
||||||
|
|
||||||
patchPhase = ''
|
|
||||||
# Add support for Acer Swift 14 (SFG14-63) model
|
|
||||||
# Using values found by playing with performance settings in acer's software on windows
|
|
||||||
# https://github.com/hirschmann/nbfc/wiki/Probe-the-EC's-registers
|
|
||||||
# Also, disable USB control because not sure, need to verify
|
|
||||||
patch -p1 < ${./sfg14-63.patch}
|
|
||||||
|
|
||||||
# Create Kbuild file for module
|
|
||||||
cat > Kbuild <<EOF
|
|
||||||
obj-m := acer-wmi-ext.o
|
|
||||||
EOF
|
|
||||||
'';
|
|
||||||
|
|
||||||
buildFlags = [ "modules" ];
|
|
||||||
installFlags = [ "INSTALL_MOD_PATH=${placeholder "out"}" ];
|
|
||||||
installTargets = [ "modules_install" ];
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "Acer WMI kernel module for battery charge limit and fan control";
|
|
||||||
homepage = "https://github.com/TenSeventy7/acer-wmi-ext";
|
|
||||||
license = lib.licenses.gpl2;
|
|
||||||
platforms = lib.platforms.linux;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
diff --git a/acer-wmi-ext.c b/acer-wmi-ext.c
|
|
||||||
index 24112bf..7829c19 100644
|
|
||||||
--- a/acer-wmi-ext.c
|
|
||||||
+++ b/acer-wmi-ext.c
|
|
||||||
@@ -69,9 +69,9 @@ struct set_battery_health_control_output {
|
|
||||||
|
|
||||||
enum battery_mode { HEALTH_MODE = 1, CALIBRATION_MODE = 2 };
|
|
||||||
|
|
||||||
-#define ACER_SYSTEM_CONTROL_MODE_EC_OFFSET 0x45
|
|
||||||
+#define ACER_SYSTEM_CONTROL_MODE_EC_OFFSET 0x10
|
|
||||||
enum system_control_mode {
|
|
||||||
- SYSTEM_CONTROL_BALANCED = 1,
|
|
||||||
+ SYSTEM_CONTROL_BALANCED = 0,
|
|
||||||
SYSTEM_CONTROL_SILENT = 2,
|
|
||||||
SYSTEM_CONTROL_PERFORMANCE = 3,
|
|
||||||
};
|
|
||||||
@@ -146,9 +146,9 @@ static struct quirk_entry quirk_unknown = {
|
|
||||||
static struct quirk_entry quirk_acer_system_control_mode = {
|
|
||||||
.system_control_mode = 1,
|
|
||||||
};
|
|
||||||
-static struct quirk_entry quirk_acer_sfg174_73 = {
|
|
||||||
+static struct quirk_entry quirk_acer_sfg14_63 = {
|
|
||||||
.system_control_mode = 1, // Enable system control mode for this model
|
|
||||||
- .usb_charge_mode = 1, // Enable USB charge mode for this model
|
|
||||||
+ .usb_charge_mode = 0, // Disable USB charge mode for this model
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
@@ -165,12 +165,12 @@ static int __init dmi_matched(const struct dmi_system_id *dmi)
|
|
||||||
static const struct dmi_system_id acer_quirks[] __initconst = {
|
|
||||||
{
|
|
||||||
.callback = dmi_matched,
|
|
||||||
- .ident = "Acer Swift SFG14-73",
|
|
||||||
+ .ident = "Acer Swift SFG14-63",
|
|
||||||
.matches = {
|
|
||||||
DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
|
|
||||||
- DMI_MATCH(DMI_PRODUCT_NAME, "Swift SFG14-73"),
|
|
||||||
+ DMI_MATCH(DMI_PRODUCT_NAME, "Swift SFG14-63"),
|
|
||||||
},
|
|
||||||
- .driver_data = &quirk_acer_sfg174_73,
|
|
||||||
+ .driver_data = &quirk_acer_sfg14_63,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
stdenv,
|
|
||||||
fetchFromGitHub,
|
|
||||||
fetchpatch,
|
|
||||||
autoreconfHook,
|
|
||||||
intltool,
|
|
||||||
libxml2,
|
|
||||||
pciutils,
|
|
||||||
pkg-config,
|
|
||||||
gtk2,
|
|
||||||
ddccontrol-db,
|
|
||||||
}:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
pname = "ddccontrol";
|
|
||||||
version = "1.0.3";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "ddccontrol";
|
|
||||||
repo = "ddccontrol";
|
|
||||||
rev = version;
|
|
||||||
sha256 = "sha256-qyD6i44yH3EufIW+LA/LBMW20Tejb49zvsDfv6YFD6c=";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
autoreconfHook
|
|
||||||
intltool
|
|
||||||
pkg-config
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = [
|
|
||||||
libxml2
|
|
||||||
pciutils
|
|
||||||
gtk2
|
|
||||||
ddccontrol-db
|
|
||||||
];
|
|
||||||
|
|
||||||
configureFlags = [
|
|
||||||
"--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
|
|
||||||
];
|
|
||||||
|
|
||||||
prePatch = ''
|
|
||||||
substituteInPlace configure.ac \
|
|
||||||
--replace \
|
|
||||||
"\$""{datadir}/ddccontrol-db" \
|
|
||||||
"${ddccontrol-db}/share/ddccontrol-db"
|
|
||||||
|
|
||||||
substituteInPlace src/ddcpci/Makefile.am \
|
|
||||||
--replace "chmod 4711" "chmod 0711"
|
|
||||||
'';
|
|
||||||
|
|
||||||
preConfigure = ''
|
|
||||||
intltoolize --force
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "Program used to control monitor parameters by software";
|
|
||||||
homepage = "https://github.com/ddccontrol/ddccontrol";
|
|
||||||
license = licenses.gpl2Plus;
|
|
||||||
platforms = platforms.linux;
|
|
||||||
maintainers = with lib.maintainers; [ pakhfn ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user