Changed layouts

This commit is contained in:
2025-09-18 12:39:26 +02:00
parent 8f52cfa599
commit 619b2dd888
11 changed files with 112 additions and 120 deletions

View File

@@ -4,11 +4,15 @@
# Get the public host key with # Get the public host key with
# nix-shell -p ssh-to-age --run 'cat /etc/ssh/ssh_host_ed25519_key.pub | ssh-to-age' # nix-shell -p ssh-to-age --run 'cat /etc/ssh/ssh_host_ed25519_key.pub | ssh-to-age'
# Then run
# sops updatekeys secrets.yaml
# The user key should be in ~/.config/sops/age/keys.txt # The user key should be in ~/.config/sops/age/keys.txt
keys: keys:
- &jonas age1a2kpues0gayampkn9pn2czhk24r0yl4jnw84qg4gh5l72dflx95qkmyqzv - &jonas age1a2kpues0gayampkn9pn2czhk24r0yl4jnw84qg4gh5l72dflx95qkmyqzv
- &minoxy age1qddfn6apphafe4muvvv3vguxewa03ay2jlgqkng3uwwzfjw204dsfpt0uu - &minoxy age1qddfn6apphafe4muvvv3vguxewa03ay2jlgqkng3uwwzfjw204dsfpt0uu
- &thinix age1hvnmhkqgmxkgatw74se0vql6glxjtmdcv6zt52yuycpaavd4fulqfhx68a
creation_rules: creation_rules:
- path_regex: secrets.yaml - path_regex: secrets.yaml
@@ -16,4 +20,5 @@ creation_rules:
- age: - age:
- *jonas - *jonas
- *minoxy - *minoxy
- *thinix

View File

@@ -17,8 +17,8 @@
./../../modules/laptop/powersave.nix ./../../modules/laptop/powersave.nix
./../../modules/laptop/battery.nix ./../../modules/laptop/battery.nix
./../../modules/services/webdav.nix.nix ./../../modules/services/webdav.nix
./../../modules/services/scanning.nix.nix ./../../modules/services/scanning.nix
]; ];
networking.hostName = "thinix"; networking.hostName = "thinix";

View File

@@ -8,9 +8,9 @@
# Nix fun # Nix fun
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
nix.settings.experimental-features = ["flakes" "nix-command"]; nix.settings.experimental-features = ["flakes" "nix-command"];
time.timeZone = "Europe/Berlin";
programs.nix-ld.enable = true; time.timeZone = "Europe/Berlin";
programs.nix-ld.enable = true; # Linking support
environment = { environment = {
systemPackages = with pkgs; [ systemPackages = with pkgs; [
@@ -19,9 +19,6 @@
zoxide zoxide
rsync rsync
]; ];
pathsToLink = [
"/share/icons"
];
}; };
networking = { networking = {
@@ -45,7 +42,6 @@
"history-substring-search" "history-substring-search"
"git" "git"
"zoxide" "zoxide"
"sudo"
"vi-mode" "vi-mode"
"systemadmin" "systemadmin"
]; ];

View File

@@ -1,16 +1,10 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
# Basic services
services.printing.enable = true;
environment = { environment = {
sessionVariables = { sessionVariables = {
NIXOS_OZONE_WL = "1"; NIXOS_OZONE_WL = "1";
LD_LIBRARY_PATH = "${pkgs.libclang.lib}/lib";
QTWEBENGINE_CHROMIUM_FLAGS="--blink-settings=darkModeEnabled=true";
QT_QPA_PLATFORMTHEME = "qt6ct"; QT_QPA_PLATFORMTHEME = "qt6ct";
WLR_NO_HARDWARE_CURSORS= "1";
QT_STYLE_OVERRIDE = "kvantum"; QT_STYLE_OVERRIDE = "kvantum";
QT_QPA_PLATFORM="xcb"; QT_QPA_PLATFORM="xcb";
}; };

View File

@@ -1,7 +1,6 @@
{ config, lib, ... }: { config, lib, ... }:
let let inherit (lib) mkOption types;
inherit (lib) mkOption types;
in { in {
options.bootMode = mkOption { options.bootMode = mkOption {
type = types.enum [ "uefi" "legacy" ]; type = types.enum [ "uefi" "legacy" ];
@@ -12,15 +11,15 @@ in {
boot.consoleLogLevel = 0; boot.consoleLogLevel = 0;
boot.kernelParams = [ "quiet" "udev.log_level=3" ]; boot.kernelParams = [ "quiet" "udev.log_level=3" ];
boot.loader = if config.bootMode == "uefi" then { boot.loader = {
timeout = 0;
} // (if config.bootMode == "uefi" then {
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
systemd-boot.enable = true; systemd-boot.enable = true;
timeout = 0;
} else { } else {
grub.enable = true; grub.enable = true;
grub.device = "/dev/sda"; grub.device = "/dev/sda";
timeout = 0; });
};
}; };
} }

View File

@@ -1,26 +1,42 @@
{ config, ... }: { config, lib, pkgs, ... }:
{ let inherit (lib) mkOption types;
hardware.graphics = { enable = true; }; in {
options = {
enableCuda = mkOption {
type = types.bool;
default = false;
description = ''
Enable CUDA support for Blender and other packages.
Warning: This can cause very long build times.
'';
};
nvidiaOpen = mkOption {
type = types.bool;
default = false;
};
};
config = {
hardware.graphics.enable = true;
services.xserver.videoDrivers = [ "nvidia" ]; services.xserver.videoDrivers = [ "nvidia" ];
hardware.nvidia = { hardware.nvidia = {
modesetting.enable = true; modesetting.enable = true;
powerManagement.enable = false; powerManagement.enable = false;
open = false; open = config.nvidiaOpen;
nvidiaSettings = true; nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.stable; package = config.boot.kernelPackages.nvidiaPackages.stable;
}; };
# Cuda for blender long build times # Apply CUDA-specific settings if enabled
#environment.systemPackages = with pkgs; [ nixpkgs.config.cudaSupport = config.enableCuda;
# (blender.override { hardware.enableAllFirmware = config.enableCuda;
# cudaSupport = true;
# })
#];
# This causes very long build times environment.systemPackages = (if config.enableCuda then
#nixpkgs.config.cudaSupport = true; [ (pkgs.blender.override { cudaSupport = true; }) ]
#hardware.enableAllFirmware = true; else
[ ]);
};
} }

View File

@@ -1,8 +1,19 @@
{ config, lib, ... }: { config, lib, ... }:
let inherit (lib) mkOption types; let
in { inherit (lib) mkOption types;
singleBat = {
START_CHARGE_THRESH_BAT0 = 65;
STOP_CHARGE_THRESH_BAT0 = 85;
};
doubleBat = singleBat // {
START_CHARGE_THRESH_BAT1 = 65;
STOP_CHARGE_THRESH_BAT1 = 85;
};
in {
options.batMode = mkOption { options.batMode = mkOption {
type = types.enum [ "single" "double" ]; type = types.enum [ "single" "double" ];
default = "single"; default = "single";
@@ -10,56 +21,22 @@ in {
config = { config = {
powerManagement.powertop.enable = true; powerManagement.powertop.enable = true;
services.upower = { services.upower = {
enable = true; enable = true;
# In accordance with the waybar battery colors # In accordance with waybar battery colors
percentageLow = 30; percentageLow = 30;
percentageCritical = 20; percentageCritical = 20;
percentageAction = 10; percentageAction = 15;
criticalPowerAction = "PowerOff"; # This can destroy work criticalPowerAction = "PowerOff"; # This can destroy work
usePercentageForPolicy = true; usePercentageForPolicy = true;
}; };
services.tlp = if config.batMode == "single" then { services.tlp = {
enable = true; enable = true;
settings = { settings = if config.batMode == "single" then singleBat else doubleBat;
START_CHARGE_THRESH_BAT0 = 65;
STOP_CHARGE_THRESH_BAT0 = 85;
CPU_SCALING_GOVERNOR_ON_AC = "performance";
CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
CPU_MIN_PERF_ON_AC = 0;
CPU_MAX_PERF_ON_AC = 100;
CPU_MIN_PERF_ON_BAT = 0;
CPU_MAX_PERF_ON_BAT = 65;
}; };
} else {
enable = true;
settings = {
CPU_SCALING_GOVERNOR_ON_AC = "performance";
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
CPU_MIN_PERF_ON_AC = 0;
CPU_MAX_PERF_ON_AC = 100;
CPU_MIN_PERF_ON_BAT = 0;
CPU_MAX_PERF_ON_BAT = 75;
# 0 is first
START_CHARGE_THRESH_BAT0 = 60;
STOP_CHARGE_THRESH_BAT0 = 85;
# 1 is second
START_CHARGE_THRESH_BAT1 = 60;
STOP_CHARGE_THRESH_BAT1 = 85;
};
};
}; };
} }

View File

@@ -0,0 +1,5 @@
{ ... }:
{
services.printing.enable = true;
}

View File

@@ -19,16 +19,15 @@
after = [ "network-online.target" ]; after = [ "network-online.target" ];
wants = [ "network-online.target" ]; wants = [ "network-online.target" ];
what = "https://dav.hahn1.one"; what = "https://dav.hahn1.one";
where = "/home/jonas/webdav"; where = "/webdav";
type = "davfs"; type = "davfs";
options = "uid=1000,gid=1000,file_mode=0664,dir_mode=2775,_netdev"; # What is netdev? options = "uid=1000,gid=1000,file_mode=0664,dir_mode=2775,_netdev";
mountConfig.TimeoutSec = "5s"; mountConfig.TimeoutSec = "5s";
}]; }];
# Is this too much power drain?
systemd.automounts = [{ systemd.automounts = [{
description = "Webdav automount"; description = "Webdav automount";
where = "/home/jonas/webdav"; where = "/webdav";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
automountConfig = { TimeoutIdleSec = "2m"; }; automountConfig = { TimeoutIdleSec = "2m"; };
}]; }];

View File

@@ -1,25 +1,34 @@
webdav_authstring: ENC[AES256_GCM,data:9Q9hEgwNjKs75/5KDok4DGQZ7EAJakcFYLLjehmVDzgdXJyv8D52oQ==,iv:dWGWgZXyw49zJqIbPdy4zpGzGk5H/m47DV08NB1w9go=,tag:PAVUDk8+6ZXlD8o8MHyD3Q==,type:str] webdav_authstring: ENC[AES256_GCM,data:owtYoEX4uXHZFJa1TL2uxkCHatU8MiDT0a+a6NDt7+IVGwB4XsY=,iv:15Ms6v3rPujQxKs0hZULvZGX3K7TgmV1zrLLt3kQGPI=,tag:ULyWmrgoBmVLEdOc/4sMMw==,type:str]
sops: sops:
age: age:
- recipient: age1a2kpues0gayampkn9pn2czhk24r0yl4jnw84qg4gh5l72dflx95qkmyqzv - recipient: age1a2kpues0gayampkn9pn2czhk24r0yl4jnw84qg4gh5l72dflx95qkmyqzv
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGV1BLWnpIWlVCMHRLRFJR YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGSWc2SjdBNnRNbVZHVENE
UXhBOGFNN2ZMd1JNVGhyOU12b1JaajNBYUh3CkZFNzR6NElhYldQbmtTTlpIK0sx ZXBCTWtqcXphdDdUU3lyYkxDYVlRVmtwYmtNClE5RnN1NGFNY1QxVmRjLzFTem5n
UUVZb3BqYWEwQUxiTklKeGJFYmxUaWcKLS0tIDExc1lqV3BITzA3ME9jM3FWU09V MHFVM3NFRUZzMTlDRjB2NVljRVcrbUkKLS0tIGZKQk1qZFJxS2t3VVhxekxyWEZO
Q2p1UHVBNW54UnIydU5yM25OK0llRkUKnr2SftBM+rBFfakhoHL1UyVm9BIgmW05 NFc5MXFsNUFOS0RhRTZpaDUrblVOaHMKHyGT/1ZriydmzaifcQBhU82fa4vazxLG
ARXyD4DR2MF5pPRnE6s1avfocX4IObB0xNHeuOegXUYhKWlSkTztNw== vb3xBF9cTylbkqxgf3xjMv/44Gq/PQz5mFceWxCVIaU7MpKafX7HMg==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1qddfn6apphafe4muvvv3vguxewa03ay2jlgqkng3uwwzfjw204dsfpt0uu - recipient: age1qddfn6apphafe4muvvv3vguxewa03ay2jlgqkng3uwwzfjw204dsfpt0uu
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhQUlLNm5wdHc1Q3VFZFZQ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFNmpsajNYT1VmUjlJRFdX
eEN2VzkycStHQUlMK1MrdElrYTFJN0VCUFgwCjlsT1BpZVNWdzBmeDdSbXpTbEtB VkI4WVJCRW03M1dtNEpSaThvWnpWTjN1cnlrCnFTTC9FWTVxdUxKSnA5aTUvUDBy
MEhXVTJ1czRSLzdXQ0l2bzlLMU53ak0KLS0tIG5yUHVQSDk3eTJTenBDNXhGYXk2 SnRqSHh1aTNRSGs4Qlk1STZCbFc3ZjQKLS0tIHpXdE9xMjB3d3pXbE5zR0hGeENP
SnM5V2VDMmxiRExqeFZrcm01ME5FRlUKCq047F8LGPCAdcpLBr66O4FVAt9q7Ug6 NmkzN0xBVkh4MDdRVGdLZk9ZUEVtYlkK6w4PBviii/sivrsk1dvgJ516zwG7T76G
o5Dpn6Mo5c08tdF2m88Q1fXMSXIpfdTJCffIjk82WiU4M3Ni/8Mmaw== I7e9f/IZ3OwxAF0KCjoOKbrHMwb9ZJhEy+DxXObK1XMJ4XcL11qDww==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2025-08-31T20:35:46Z" - recipient: age1hvnmhkqgmxkgatw74se0vql6glxjtmdcv6zt52yuycpaavd4fulqfhx68a
mac: ENC[AES256_GCM,data:trZFOIIrxWXpj5+qL1fWGYWBKlnkU+SSqra+k1S7NW3LtSsmx1ZW/qRCSoiFIJeP+jWEQ32S95d53Kt2Fw0hta+7r/rMc9MOwmy4U/ML66p0bj7A57QZQ1sbi3fkEbCSRU3G0es215I8Db7zeyBXBSfqoukBekcs3GsESBDVhkQ=,iv:Z2CNOzLWB/DRPoekiwroU4aftEhm2hYzXx9Vzmz7EA0=,tag:0PsB6B2RHu6l0EZlaYkqKA==,type:str] enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4WTdjZGZWM3owMGJTSXVG
NFF2eWo1VjdyNmlxVmxwQzJoVng5Zy9tbXlnCjRuakpCZGJhbXFMbndsMUJ4cVd3
VEQxa01BcWRybHZOQTJNYk1LUnNpRjAKLS0tIEpnSnVpL3BvZ2dLZkVVUlVsU2R4
MnlqbzM4TjhDMTBNSytpNDFqUWg2cDAKVsyC8b4u3ibxri4m8U3f45+/UqhP2zEX
38jRSeEoI2QV97bk0J5in9tHYEIdkOErANgaw+da3JzLMAGN+F41dQ==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-09-02T17:49:36Z"
mac: ENC[AES256_GCM,data:wK7vtEBXE5/u+xqiiwa52ZnRouyAMG7x+T8xdoqb/NFEGIr6SPZRFxLVuKZN9iCbDyMCxb03GuKibcPbiIDkfvvKTpASP5t5F3yLwr1vS6/x6VM+rBJvppOu5s91rxGotkKjXBlnQM3pSKApLfbGEEu+jwFOA/I0UchD4VSjbq4=,iv:BskOSBnjcqp8hlGxe0RDDZipv0t9cDCLWwI/v7FiadQ=,tag:RiZ7rh45quEpTggx0mZawQ==,type:str]
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.10.2 version: 3.10.2

View File

@@ -21,8 +21,6 @@
obsidian obsidian
rclone rclone
unstable.spotify-player
sops sops
gimp gimp
audio-recorder audio-recorder
@@ -105,12 +103,6 @@
trash-cli trash-cli
python3 python3
python313Packages.requests # For quick development for the university
python313Packages.pygame
python313Packages.scipy
python313Packages.pandas
python313Packages.matplotlib
python313Packages.numpy
fd fd
ttyper ttyper