Squash bugs and make aspi config work

This commit is contained in:
Julian Mutter 2025-04-23 09:59:02 +02:00
parent 532bbe8675
commit 7db055ca27
27 changed files with 163 additions and 152 deletions

View File

@ -4,22 +4,21 @@ keys:
- &pianonix-ssh age1hsmfz8fjxu83sax9lr487h8xr6cyge0apdq4zpge4c8jpcjj2cksj825ct
- &builder-ssh age1kw4kmdm45zprvdkrrpvgq966l7585vhusmum083qlwnr0xxgd3uqatcyja
creation_rules:
- path_regex: secrets/secrets.yaml$
- path_regex: hosts/common/secrets.yaml$
key_groups:
- age:
- *primary
- *aspi-ssh
- *pianonix-ssh
- path_regex: secrets/secrets-builder.yaml$
- path_regex: hosts/builder/secrets.yaml$
key_groups:
- age:
- *primary
- *builder-ssh
- path_regex: secrets/.+
- path_regex: hosts/pianonix/secrets.yaml$
key_groups:
- age:
- *primary
- *aspi-ssh
- *pianonix-ssh

View File

@ -111,8 +111,8 @@
# Main laptop
"julian@aspi" = lib.homeManagerConfiguration {
modules = [
./home/julian/aspi.nix
./home/julian/nixpkgs.nix
./homes/julian/aspi.nix
./homes/julian/hm-standalone-config.nix
];
pkgs = pkgsFor.x86_64-linux;
extraSpecialArgs = {
@ -122,8 +122,8 @@
# Media server (RPi)
"julian@pianonix" = lib.homeManagerConfiguration {
modules = [
./home/julian/pianonix.nix
./home/julian/nixpkgs.nix
./homes/julian/pianonix.nix
./homes/julian/hm-standalone-config.nix
];
pkgs = pkgsFor.aarch64-linux;
extraSpecialArgs = {
@ -132,11 +132,6 @@
};
};
# Add overlays for the `nixpkgs` channel.
# overlays = with inputs; [
# nix-matlab.overlay
# ];
# systems.modules.nixos = with inputs; [
# sops-nix.nixosModules.sops
# disko.nixosModules.disko

View File

@ -1,5 +1,4 @@
{
config,
...
}:
{
@ -24,6 +23,8 @@
];
config.terminal = "kitty"; # TODO: only terminal = ???
hostName = "aspi";
is-nixos = true;
terminal = "kitty"; # TODO: only terminal = ???
}

View File

@ -1,30 +1,28 @@
{
config,
lib,
pkgs,
inputs,
...
}:
let
inherit (inputs.nix-colors.lib-contrib { inherit pkgs; }) gtkThemeFromScheme;
cfg = config.modules.desktop;
in
{
# Do not make conditional, just toggle things on and off
imports = [ inputs.nix-colors.homeManagerModules.default ]; # TODO: what does this do
config = lib.mkIf cfg.enable {
# home.sessionVariables.GTK_THEME = "Catppuccin-Mocha-Compact-Blue-dark";
gtk = {
enable = true;
theme = {
name = inputs.nix-colors.colorschemes.${config.colorscheme}.slug;
package = gtkThemeFromScheme { scheme = inputs.nix-colors.colorschemes.${config.colorscheme}; };
};
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
# home.sessionVariables.GTK_THEME = "Catppuccin-Mocha-Compact-Blue-dark";
gtk = {
enable = true;
theme = {
name = inputs.nix-colors.colorschemes.${config.colorscheme.name}.slug;
package = gtkThemeFromScheme {
scheme = inputs.nix-colors.colorschemes.${config.colorscheme.name};
};
};
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
};
}

View File

@ -62,9 +62,9 @@ in
emacs-all-the-icons-fonts
]
++ lib.optional config.modules.non-nixos.is-nixos emacs;
++ lib.optional config.is-nixos emacs;
home.activation.installDoomEmacs = lib.home-manager.hm.dag.entryAfter [ "writeBoundary" ] ''
home.activation.installDoomEmacs = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
if [ ! -d "/home/julian/.config/emacs" ]; then
$DRY_RUN_CMD ${pkgs.git}/bin/git clone --depth=1 --single-branch "${doomRepoUrl}" "/home/julian/.config/emacs"
fi

View File

@ -1,11 +1,11 @@
{
lib,
pkgs,
host,
config,
...
}:
{
modules.rofi.enable = true;
imports = [ ../rofi ];
services.dunst.enable = true;
@ -36,7 +36,7 @@
# Overwrite default home-manager config file
xdg.configFile."i3/config".source = lib.mkForce (
if host == "kardorf" then ./i3/config-kardorf else ./i3/config
if config.hostName == "kardorf" then ./i3/config-kardorf else ./i3/config
);
home.file = {

View File

@ -43,7 +43,7 @@
libreoffice
mate.engrampa
nomacs # Image viewer
okular # Pdf reader with many features, good for commenting documents
kdePackages.okular # Pdf reader with many features, good for commenting documents
pavucontrol
pdfsam-basic # Split, merge, etc for pdfs
qalculate-gtk # Nice gui calculator

View File

@ -40,7 +40,7 @@
maven
nodejs
pkg-config # Often needed to build something
pwndbg # improved gdb (debugger)
# pwndbg # improved gdb (debugger)
python3
rust-analyzer
rustc

View File

@ -8,8 +8,8 @@
}:
{
imports = [
../features/cli
../features/helix
# ../features/cli
# ../features/helix
] ++ (builtins.attrValues outputs.homeManagerModules);
nix = {
@ -24,6 +24,8 @@
};
};
colorscheme.name = "catppuccin-mocha";
# systemd.user.startServices = "sd-switch"; # TODO: what is this
programs = {
@ -37,9 +39,6 @@
stateVersion = lib.mkDefault "23.11";
sessionPath = [ "$HOME/.local/bin" ];
sessionVariables = {
FLAKE = "$HOME/Documents/NixConfig";
};
};
# TODO: colorscheme

View File

@ -0,0 +1,47 @@
# Only apply this to home-manager standalone
{
outputs,
...
}:
{
# Apply overlays
nixpkgs = {
overlays = builtins.attrValues outputs.overlays;
config = {
allowUnfree = true;
allowUnfreePredicate = _: true; # TODO: what is this
permittedInsecurePackages = [
"olm-3.2.16"
];
};
};
# Setup binary caches
nix.settings = {
substituters = [
"https://nix-community.cachix.org"
"https://cache.nixos.org/"
"https://hyprland.cachix.org"
"http://binarycache.julian-mutter.de"
];
trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
"binarycache.julian-mutter.de:oJ67uRFwRhNPKL58CHzy3QQLv38Kx7OA1K+6xlEPu7E="
];
trusted-users = [
"root"
"@wheel"
];
experimental-features = [
"nix-command"
"flakes"
"ca-derivations"
];
# nix.settings. # warn-dirty = false; # TODO: do I want this
};
}

View File

@ -11,9 +11,9 @@
../common/global
../common/users/julian
# ../common/optional/openssh.nix
# ../common/optional/greetd.nix
../common/optional/pipewire.nix
../common/optional/quietboot.nix
../common/optional/remote-builder.nix
../common/optional/boot-efi.nix
../common/optional/pcmanfm.nix
@ -36,10 +36,6 @@
time.timeZone = "Europe/Berlin";
sops.secrets = {
"password/aspi".neededForUsers = true; # necessary for setting password
};
hardware.graphics.enable = true;
modules = {

View File

@ -11,7 +11,6 @@
./fish.nix # fish for admin
./locale.nix
./nix.nix
./openssh.nix
./podman.nix
./sops.nix
./xserver.nix
@ -26,43 +25,4 @@
inherit inputs outputs;
};
# Apply overlays
nixpkgs = {
overlays = builtins.attrValues outputs.overlays;
config = {
allowUnfree = true;
};
};
nix.settings.auto-optimise-store = true;
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
# Setup binary caches
nix.settings = {
substituters = [
"https://nix-community.cachix.org"
"https://cache.nixos.org/"
"https://hyprland.cachix.org"
"http://binarycache.julian-mutter.de"
];
trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
"binarycache.julian-mutter.de:oJ67uRFwRhNPKL58CHzy3QQLv38Kx7OA1K+6xlEPu7E="
];
trusted-users = [ "@wheel" ]; # needed for devenv to add custom caches
};
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 30d";
};
programs.nix-ld.enable = true;
}

View File

@ -19,6 +19,4 @@
layout = "de";
variant = "";
};
# Configure console keymap
console.keyMap = "de";
}

View File

@ -1,8 +1,23 @@
{
lib,
outputs,
...
}:
{
# Apply overlays
nixpkgs = {
# TODO: apply this to hm and nixos without duplicate code
overlays = builtins.attrValues outputs.overlays;
config = {
allowUnfree = true;
allowUnfreePredicate = _: true; # TODO: what is this
permittedInsecurePackages = [
"olm-3.2.16"
];
};
};
nix.settings.auto-optimise-store = lib.mkDefault true;
nix.settings.experimental-features = [
"nix-command"

View File

@ -1,32 +0,0 @@
{
pkgs,
config,
...
}:
{
console = {
useXkbConfig = true;
earlySetup = false;
};
boot = {
plymouth = {
enable = true;
theme = "spinner-monochrome";
themePackages = [
(pkgs.plymouth-spinner-monochrome.override { inherit (config.boot.plymouth) logo; })
];
};
loader.timeout = 0;
kernelParams = [
"quiet"
"loglevel=3"
"systemd.show_status=auto"
"udev.log_level=3"
"rd.udev.log_level=3"
"vt.global_cursor_default=0"
];
consoleLogLevel = 0;
initrd.verbose = false;
};
}

View File

@ -1,6 +1,4 @@
{
config,
lib,
pkgs,
...
}:

View File

@ -1,9 +1,7 @@
#ENC[AES256_GCM,data:NSxfTl2hTXEoGl23aQnElG+df/1YzA==,iv:+oy9oITMGzdM2muDUPjwxJqUu1Bdyregl65/0hiulZ0=,tag:VKjforpyahKj0ktIN36gNw==,type:comment]
julian-password: ENC[AES256_GCM,data:tgeu4uVI91j34+Gfzy2Uckmopj9bJNWiu65W0cdA76Kly3LH7RqXCq4rNM4DCwrsX3k9WdOlGX6T9edIjJgmbbe6MkeH7oQwiA==,iv:GE6zfSHymkAewjry7fofURz70az608+hja385LLeCIY=,tag:FqTopL5DyM3DTpa7AoGPDg==,type:str]
wifi:
pianonix: ENC[AES256_GCM,data:Ty1wElfVj+CU9bTbpuYIk2dA4fgFm59PkQGqvODn51Q=,iv:bLomyTlOW2Z4rPbue7Klo6Jt5lR+44AuL+dIMFgDNAE=,tag:DuH2ayeb19dkPi9xmbAu3A==,type:str]
password:
aspi: ENC[AES256_GCM,data:vh7eCsrz2VSn/DLLSG7p3Qn/OGWkVo4+54GpkukOwJ4G+jaE4wrIsKBGxON1uIxWLcR1LkR7g4vZc/sY1D+4JvDlvBfjzGKPkw==,iv:Jwk2THv0V3jsFbEIBJnGMlSOR89yaVKOW97fpgfAWcM=,tag:1WQMM9i3yL20hUJ+VvCTIA==,type:str]
pianonix: ENC[AES256_GCM,data:BWTSuDE2YozRKuK4PW0vhIzojTCi0qb0dChiiNvjv/D+71TsnZ8NuWlasY/2OBfv1VgID4xFWDqBvD7BgVh+/rvVnE544UzaiQ==,iv:On1J//kCuVvpPyj+NyWu7lyMzr7I/ouWGzL9xDbT+wo=,tag:RO87P4YgMjmD8TzgGJvwrw==,type:str]
syncthing:
public-keys:
aspi-nix: ENC[AES256_GCM,data:ZTykdQCyh4DMuQUCy1DSKsGNxxn1dinaqztpDdJY53pkWcW4YcWRHk94iGJQZgG1oLfr3AB2S3J6b9w2WuV3,iv:9z2ovHzq6JjRtHzNMIQtcUCinIjG/ImSGqqC7KPhpuw=,tag:No2LCjD+XXB77Su+s98MIA==,type:str]
@ -12,10 +10,6 @@ syncthing:
key: ENC[AES256_GCM,data:IaCXIRDMWCHj3lTKpkLg1Nd3pX4bktWg4WjZPGKgTBCLVkMi/SDtlaoNhDz+a+Vt6jYTXHS4exFnIVJ878nWSrA1sD2NHXmfsMh1kkLhub68qv0M33dBXvgX0vQ51Z1WMoti73yDUjJH8Ym5yF/SCg2+RbkVf+4pe2hSlAzwkGP6YC2rbCE5sZG31C55MkaGC6zwo2ZpZXdVhCW845SqAc11cF/OeEHb9B1FS3rd+El7rlJHrIEVQTkomNLshcspb13H0z3vNhtfu9pPkGxee8Hp/hEhFQ+waWBAg4w15yKihjHJmhzdjhDHCilvwYaceb7b5OwARuuiruQ+cJ40bdnStDpi2ouP8QJjEi7tmKWeplZ0X70PVZJFH/e/mTH5,iv:3hQMB4ka31w3chXXwjl/1IHF8ES/RobZVeugMC3ddlU=,tag:j8wwrNQUQbCEGtcriSpc4g==,type:str]
cert: ENC[AES256_GCM,data:v9LO8qpeGDDV6I+AJU5iTYKKBV6qgr1ddwLvBVEOYyvmtPNeqaatYaK6vMBCabBIhxQu2NC96pREvWu1UHbxaMWvSCT1TzrIPrcFm+gKCH6PIPhqcnQpdGa3OYn01ohThpLp8hEmVUpJ0FO/AnE1QHK0VfPqJ3S0uHLjSCBJtxLmcBWNVvlcTU/P68QIQkrYAQRAtz9aDS+JNpUKhwCJBgjpY1Thj8Lj/fpc1t0qWo3BKIL3eW5iSlUW0iEriFS0bkMr4Bi9mNqpO26l1eZ3IXFJy/7pkqhmXXW83qOaF9AFXgg41p1Kjw4G6isB/obuhR7Z4oQ/AtkSU0wxHP4mF0AWrvC7/YGlrDG9aPYUEWOexTTBHkm89PhgEa69sekbzac7mYYFi/MIdU34ks4oc8ZIChWpT+V66mbo4f+3mn7raih5SLnyEMS7ENBes9cQC7SghSpB7D8c/2+q74A5aEZHUWRhqiDEx9IggP43SiWuNnb/HyZw16RUB7xnQKPs7LzAVlLC6M7ZETUmyEDEWWOsDY8+0Li4wuD3z4WXLAD9nP43TMx4GNoafjG+0Gu05hSR8fWv8strRCtIWjzK3wMaD9VT/cbt2oqOBkJcaqIW8+lM+ktk1WsD4Kc1DQ4q5O2oMrdPOWI9xZOs7DQTFshLHuvxutN05vgEUovI1vbMOl7SIzUW8YUY9PN0ofC7zwQlEJxfOdqT0nwv9vmqikSMP6V3jXgP5OnPb4KVx8G27X0oCjN++dJgDxdkh2JiLR9JaJHNmYPtLlP7hU4NsBpRpd9ObxRlv+uIbF2o0I8PGXMo3IVnRjrFDrRyoth2UJ+YUMGCVuonoS+nZLMCNz1xwRMaZBYjSEESmxc2Ilwdu3XTzd1KF282UvumBpRwcNxvsmPhI84v/XV8TJE8Z7YxyO3RYBQHD5+OuHOHKTtlajnKpSp/m0p0QR7rrGFoDuDKp+Z81MKz8wz3/8GG+sDh0pgniUfNyrmLroLPdT6nj0brvSVWYmOIJHDHKqM+6HZok5PyS+uHlb5dzwnmrd9OmhmwPVdkP5s=,iv:X9VNz2nsN4ywu3E0c+agwZCl43I4bt6jHz0jMoMFTJQ=,tag:RZUWa4h5JoIiZaDrYgcAeg==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1ee5udznhadk6m7jtglu4709rep080yjyd2ukzdl8jma4mm92y3psv0slpg
enc: |
@ -44,8 +38,7 @@ sops:
WittUTFFNU5kUWdGcncwdWRQSi9STTgK3GuwolsItCEt3Dh5Lycb8TjfaHTuV/JB
P2KSuVsbgjYuCJSknYmSZ+9gdTYC8cVqDnKo7HYFNrCDHZ0P4QwGSg==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-11-25T10:20:02Z"
mac: ENC[AES256_GCM,data:5bw+S6T99ZxY9jWtlfShtQLwgl5OusHU1tXQ88iVW3EmWAiGLEr8/45S0DtQfjz9rmaEpMwa0ZC7kyXgubE7RopxirG7p5w6h/S0G8nJk0SPPKL/mvTL0cfdeOEGSNfVZNcScCVXZ/if3TZzVZQ+dsNkUWXN7bDYqrJO3dfVk30=,iv:1xm9L708K1Q6WzfZKNlJavLK24lsoBzU1qTRLg9APjs=,tag:GWwNBSiNl9EUYOt1Vn10/g==,type:str]
pgp: []
lastmodified: "2025-04-23T07:00:17Z"
mac: ENC[AES256_GCM,data:JgaTIRbzD0hs2o86xUlQrPN2cPXvsuTH/zKG5xbQIDaYcEvD/mkuVa3hfnYKrA91kWg2Y1DgEi9583+o6UCl/+ldY4ptu+xpnYfyQFdhM4rB+KoP/pDt8vQKQ3zAX8fpAkugCgTTbuvm3TfQ1nt98V8boyhCn4JHNC1T0j7ZtZI=,iv:G3YJOLeDWDKuANo2mxS2JAdrRaonD87CU9BpCZZrlRs=,tag:mcKIdP5cSQUwNL2tcv/o6g==,type:str]
unencrypted_suffix: _unencrypted
version: 3.8.1
version: 3.10.1

View File

@ -13,6 +13,7 @@ in
description = "Julian";
group = "julian";
isNormalUser = true;
uid = 1000;
shell = pkgs.fish;
extraGroups = ifTheyExist [
"networkmanager"
@ -26,16 +27,19 @@ in
];
openssh.authorizedKeys.keys = lib.splitString "\n" (
builtins.readFile ../../../../home/julian/ssh.pub
builtins.readFile ../../../../homes/julian/ssh.pub
);
hashedPasswordFile = config.sops.secrets.julian-password.path;
packages = [ pkgs.home-manager ];
};
users.groups.julian = {
gid = 1000;
};
sops.secrets.julian-password = {
sopsFile = ../../secrets.yaml;
neededForUsers = true;
};
home-manager.users.julian = import ../../../../home/julian/${config.networking.hostName}.nix;
home-manager.users.julian = import ../../../../homes/julian/${config.networking.hostName}.nix;
}

View File

@ -3,4 +3,6 @@
monitors = import ./monitors.nix;
terminal = import ./terminal.nix;
colors = import ./colors.nix;
hostname = import ./hostname.nix;
non-nixos = import ./non-nixos.nix;
}

View File

@ -0,0 +1,12 @@
{
lib,
...
}:
let
inherit (lib) types mkOption;
in
{
options.hostName = mkOption {
type = types.str;
};
}

View File

@ -0,0 +1,12 @@
{
lib,
...
}:
let
inherit (lib) types mkOption;
in
{
options.is-nixos = mkOption {
type = types.bool;
};
}

View File

@ -3,6 +3,23 @@
outputs,
}:
{
# For every flake input, aliases 'pkgs.inputs.${flake}' to
# 'inputs.${flake}.packages.${pkgs.system}' or
# 'inputs.${flake}.legacyPackages.${pkgs.system}'
flake-inputs = final: _: {
inputs = builtins.mapAttrs (
_: flake:
let
legacyPackages = (flake.legacyPackages or { }).${final.system} or { };
packages = (flake.packages or { }).${final.system} or { };
in
if legacyPackages != { } then legacyPackages else packages
) inputs;
};
# Adds my custom packages
my-pkgs = final: prev: import ../pkgs { pkgs = final; };
nixpkgs-stable-unstable = final: prev: {
unstable = import inputs.nixpkgs {
system = prev.system;
@ -14,11 +31,6 @@
};
};
input-flake-packages = final: prev: {
sheet-organizer = inputs.sheet-organizer.packages.${prev.system}.default;
music-reader = inputs.music-reader.defaultPackage.${prev.system};
};
# Makes gparted actually open
gparted-xhost = self: super: {
gparted-xhost = super.gparted.overrideAttrs (oldAttrs: {
@ -26,4 +38,6 @@
});
};
nix-matlab = inputs.nix-matlab.overlay;
}

View File

@ -1,12 +1,12 @@
{
writeShellApplication,
insmod,
kmod,
}:
writeShellApplication {
name = "acer-battery-health-mode";
runtimeInputs = [ insmod ];
runtimeInputs = [ kmod ]; # contains insmod
text = ''
#/usr/bin/env sh

View File

@ -3,15 +3,15 @@
...
}:
{
conda-direnv = pkgs.callPackage ./conda-direnv { };
deploy-to-pianopi = pkgs.callPackage ./deploy-to-pianopi { };
edit-config = pkgs.callPackage ./edit-config { };
hyprshot-gui = pkgs.callPackage ./hyprshot-gui { };
install = pkgs.callPackage ./install { };
lntocp = pkgs.callPackage ./lntocp { };
open-messaging = pkgs.callPackage ./open-messaging { };
pulseaudio-popup = pkgs.callPackage ./pulseaudio-popup { };
sos = pkgs.callPackage ./sos { };
xwacomcalibrate = pkgs.callPackage ./xwacomcalibrate { };
acer-battery-health-mode = pkgs.callPackage ./acer-battery-health-mode { };
frajul.conda-direnv = pkgs.callPackage ./conda-direnv { };
frajul.deploy-to-pianopi = pkgs.callPackage ./deploy-to-pianopi { };
frajul.edit-config = pkgs.callPackage ./edit-config { };
frajul.hyprshot-gui = pkgs.callPackage ./hyprshot-gui { };
frajul.install = pkgs.callPackage ./install { };
frajul.lntocp = pkgs.callPackage ./lntocp { };
frajul.open-messaging = pkgs.callPackage ./open-messaging { };
frajul.pulseaudio-popup = pkgs.callPackage ./pulseaudio-popup { };
frajul.sos = pkgs.callPackage ./sos { };
frajul.xwacomcalibrate = pkgs.callPackage ./xwacomcalibrate { };
frajul.acer-battery-health-mode = pkgs.callPackage ./acer-battery-health-mode { };
}