split config

This commit is contained in:
Vinzenz Schroeter 2024-10-26 12:32:15 +02:00
parent 1602292781
commit 5944fe5cca
19 changed files with 271 additions and 276 deletions

View file

@ -16,16 +16,21 @@
home-manager, home-manager,
lix-module, lix-module,
... ...
}: { }: let
common-modules = [
lix-module.nixosModules.default
home-manager.nixosModules.home-manager
./common
];
in {
nixosConfigurations = { nixosConfigurations = {
vinzenz-lpt2 = nixpkgs.lib.nixosSystem { vinzenz-lpt2 = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
modules = [ modules =
lix-module.nixosModules.default common-modules
home-manager.nixosModules.home-manager ++ [
./common ./hosts/vinzenz-lpt2
./hosts/vinzenz-lpt2 ];
];
}; };
}; };
}; };

View file

@ -4,6 +4,9 @@
pkgs, pkgs,
... ...
}: { }: {
imports = [
../modules/gnome.nix
];
config = { config = {
home-manager.sharedModules = [ home-manager.sharedModules = [
{ {

View file

@ -3,7 +3,7 @@
pkgs, pkgs,
... ...
}: { }: {
home .packages = with pkgs; [ home.packages = with pkgs; [
## Apps ## Apps
telegram-desktop telegram-desktop
kdiff3 kdiff3

View file

@ -1,248 +0,0 @@
{
config,
osConfig,
pkgs,
lib,
...
}: let
isGnomeEnabled = osConfig.my.desktop.enableGnome;
in
lib.mkMerge [
{
home.packages = with pkgs; [
keepassxc
insync
telegram-desktop
element-desktop
wireguard-tools
wirelesstools
alejandra # nix formatter
arduino
uucp
kdiff3
jetbrains-toolbox
];
programs = {
home-manager.enable = true;
fzf.enable = true;
zsh = {
initExtra = ''
eval "$(direnv hook zsh)";
export PATH=$PATH:/home/vinzenz/.cargo/bin
'';
shellAliases = {
my-apply = "sudo nixos-rebuild boot";
my-switch = "sudo nixos-rebuild switch";
my-update = "sudo nixos-rebuild boot --upgrade";
my-pull = "git -C ~/Repos/nixos-configuration pull --rebase";
my-fmt = "alejandra .";
my-test = "sudo nixos-rebuild test";
my-direnvallow = "echo \"use nix\" > .envrc && direnv allow";
my-ip4 = "ip addr show | grep 192";
};
history = {
size = 10000;
path = "${config.xdg.dataHome}/zsh/history";
expireDuplicatesFirst = true;
};
oh-my-zsh = {
enable = true;
theme = "agnoster";
plugins = ["git" "sudo" "docker" "systemadmin"];
};
};
git = {
enable = true;
userName = "Vinzenz Schroeter";
userEmail = "vinzenz.f.s@gmail.com";
aliases = {
prettylog = "log --pretty=oneline --graph";
spring-clean = "!git branch --merged | xargs -n 1 -r git branch -d";
};
extraConfig = {
pull.ff = "only";
merge.tool = "kdiff3";
push.autoSetupRemote = "true";
};
};
vscode = {
enable = true;
package = pkgs.vscodium;
enableUpdateCheck = false;
extensions = with pkgs.vscode-extensions; [
bbenoist.nix
ms-python.python
kamadorueda.alejandra
editorconfig.editorconfig
yzhang.markdown-all-in-one
redhat.vscode-yaml
pkief.material-icon-theme
mhutchie.git-graph
rust-lang.rust-analyzer
tamasfe.even-better-toml
llvm-vs-code-extensions.vscode-clangd
mkhl.direnv
vadimcn.vscode-lldb
ms-dotnettools.csharp
];
userSettings = {
"git.autofetch" = true;
"update.mode" = "none";
"editor.fontFamily" = "'Fira Code', 'Droid Sans Mono', 'monospace', monospace";
"editor.fontLigatures" = true;
"editor.formatOnSave" = true;
"editor.formatOnSaveMode" = "modificationsIfAvailable";
"editor.minimap.autohide" = true;
"diffEditor.diffAlgorithm" = "advanced";
"explorer.excludeGitIgnore" = true;
"markdown.extension.tableFormatter.normalizeIndentation" = true;
"markdown.extension.toc.orderedList" = false;
"telemetry.telemetryLevel" = "off";
"redhat.telemetry.enabled" = false;
"workbench.startupEditor" = "readme";
"workbench.enableExperiments" = false;
"workbench.iconTheme" = "material-icon-theme";
"rust-analyzer.checkOnSave.command" = "clippy";
"extensions.autoUpdate" = false;
"extensions.autoCheckUpdates" = false;
"\[makefile\]" = {
"editor.insertSpaces" = false;
"editor.detectIndentation" = false;
};
};
};
direnv = {
enable = true;
nix-direnv.enable = true;
};
chromium = {
enable = true;
extensions = [
{
# ublock origin
id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";
}
{
id = "dcpihecpambacapedldabdbpakmachpb";
updateUrl = "https://raw.githubusercontent.com/iamadamdev/bypass-paywalls-chrome/master/updates.xml";
}
];
};
eza = {
enable = true;
git = true;
icons = true;
extraOptions = [
"--group-directories-first"
"--header"
];
};
# checked https://rycee.gitlab.io/home-manager/options.html until "programs.notmuch"
ssh = {
enable = true;
matchBlocks = {
"vpn1" = {
host = "vpn1 hetzner-vpn1";
hostname = "157.90.146.125"; # 2a01:4f8:c012:7137::/64
user = "root";
};
"vpn1-ts" = {
host = "vpn1-ts hetzner-vpn1.donkey-pentatonic.ts.net";
hostname = "hetzner-vpn1.donkey-pentatonic.ts.net";
user = "root";
};
"openwrt" = {
host = "openwrt openwrt.lan";
hostname = "openwrt.lan";
user = "root";
};
"openwrt-ts" = {
hostname = "openwrt.donkey-pentatonic.ts.net";
port = 2222;
user = "root";
};
"openwrt-j" = {
hostname = "openwrt.donkey-pentatonic.ts.net";
proxyJump = "vpn1";
port = 2222;
user = "root";
};
"pc2-power" = {
hostname = "openwrt.donkey-pentatonic.ts.net";
proxyJump = "vpn1";
port = 2222;
user = "pc2-power";
};
"avd-power" = {
# hostname = "2001:678:560:23:9833:63ff:fe2d:f477"
# hostname = "195.160.172.25";
hostname = "avd-jumphost.club.berlin.ccc.de";
user = "power";
};
"avd" = {
hostname = "avd.club.berlin.ccc.de";
user = "vinzenz";
};
};
};
};
editorconfig = {
enable = true;
settings = {
"*" = {
charset = "utf-8";
end_of_line = "lf";
trim_trailing_whitespace = true;
insert_final_newline = true;
max_line_width = 120;
indent_style = "space";
indent_size = 4;
};
"*.nix" = {
indent_size = 2;
};
};
};
home.file."policy.json" = {
target = ".config/containers/policy.json";
text = ''
{
"default": [
{
"type": "insecureAcceptAnything"
}
],
"transports":
{
"docker-daemon":
{
"": [{"type":"insecureAcceptAnything"}]
}
}
}
'';
};
}
]

104
home/vinzenz/default.nix Normal file
View file

@ -0,0 +1,104 @@
inputs @ {
config,
osConfig,
pkgs,
lib,
...
}: let
isGnomeEnabled = osConfig.my.desktop.enableGnome;
in {
programs = {
home-manager.enable = true;
fzf.enable = true;
zsh = import ./zsh.nix inputs;
git = import ./git.nix;
vscode = import ./vscode.nix inputs;
ssh = import ./ssh.nix;
direnv = {
enable = true;
nix-direnv.enable = true;
};
chromium = {
enable = true;
extensions = [
{
# ublock origin
id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";
}
{
id = "dcpihecpambacapedldabdbpakmachpb";
updateUrl = "https://raw.githubusercontent.com/iamadamdev/bypass-paywalls-chrome/master/updates.xml";
}
];
};
eza = {
enable = true;
git = true;
icons = true;
extraOptions = [
"--group-directories-first"
"--header"
];
};
};
home.packages = with pkgs; [
keepassxc
insync
telegram-desktop
element-desktop
wireguard-tools
wirelesstools
alejandra # nix formatter
arduino
uucp
kdiff3
jetbrains-toolbox
];
editorconfig = {
enable = true;
settings = {
"*" = {
charset = "utf-8";
end_of_line = "lf";
trim_trailing_whitespace = true;
insert_final_newline = true;
max_line_width = 120;
indent_style = "space";
indent_size = 4;
};
"*.nix" = {
indent_size = 2;
};
};
};
home.file."policy.json" = {
target = ".config/containers/policy.json";
text = ''
{
"default": [
{
"type": "insecureAcceptAnything"
}
],
"transports":
{
"docker-daemon":
{
"": [{"type":"insecureAcceptAnything"}]
}
}
}
'';
};
}

16
home/vinzenz/git.nix Normal file
View file

@ -0,0 +1,16 @@
{
enable = true;
userName = "Vinzenz Schroeter";
userEmail = "vinzenz.f.s@gmail.com";
aliases = {
prettylog = "log --pretty=oneline --graph";
spring-clean = "!git branch --merged | xargs -n 1 -r git branch -d";
};
extraConfig = {
pull.ff = "only";
merge.tool = "kdiff3";
push.autoSetupRemote = "true";
};
}

47
home/vinzenz/ssh.nix Normal file
View file

@ -0,0 +1,47 @@
{
enable = true;
matchBlocks = {
"vpn1" = {
host = "vpn1 hetzner-vpn1";
hostname = "157.90.146.125"; # 2a01:4f8:c012:7137::/64
user = "root";
};
"vpn1-ts" = {
host = "vpn1-ts hetzner-vpn1.donkey-pentatonic.ts.net";
hostname = "hetzner-vpn1.donkey-pentatonic.ts.net";
user = "root";
};
"openwrt" = {
host = "openwrt openwrt.lan";
hostname = "openwrt.lan";
user = "root";
};
"openwrt-ts" = {
hostname = "openwrt.donkey-pentatonic.ts.net";
port = 2222;
user = "root";
};
"openwrt-j" = {
hostname = "openwrt.donkey-pentatonic.ts.net";
proxyJump = "vpn1";
port = 2222;
user = "root";
};
"pc2-power" = {
hostname = "openwrt.donkey-pentatonic.ts.net";
proxyJump = "vpn1";
port = 2222;
user = "pc2-power";
};
"avd-power" = {
# hostname = "2001:678:560:23:9833:63ff:fe2d:f477"
# hostname = "195.160.172.25";
hostname = "avd-jumphost.club.berlin.ccc.de";
user = "power";
};
"avd" = {
hostname = "avd.club.berlin.ccc.de";
user = "vinzenz";
};
};
}

46
home/vinzenz/vscode.nix Normal file
View file

@ -0,0 +1,46 @@
{pkgs, ...}: {
enable = true;
package = pkgs.vscodium;
enableUpdateCheck = false;
extensions = with pkgs.vscode-extensions; [
bbenoist.nix
ms-python.python
kamadorueda.alejandra
editorconfig.editorconfig
yzhang.markdown-all-in-one
redhat.vscode-yaml
pkief.material-icon-theme
mhutchie.git-graph
rust-lang.rust-analyzer
tamasfe.even-better-toml
llvm-vs-code-extensions.vscode-clangd
mkhl.direnv
vadimcn.vscode-lldb
ms-dotnettools.csharp
];
userSettings = {
"git.autofetch" = true;
"update.mode" = "none";
"editor.fontFamily" = "'Fira Code', 'Droid Sans Mono', 'monospace', monospace";
"editor.fontLigatures" = true;
"editor.formatOnSave" = true;
"editor.formatOnSaveMode" = "modificationsIfAvailable";
"editor.minimap.autohide" = true;
"diffEditor.diffAlgorithm" = "advanced";
"explorer.excludeGitIgnore" = true;
"markdown.extension.tableFormatter.normalizeIndentation" = true;
"markdown.extension.toc.orderedList" = false;
"telemetry.telemetryLevel" = "off";
"redhat.telemetry.enabled" = false;
"workbench.startupEditor" = "readme";
"workbench.enableExperiments" = false;
"workbench.iconTheme" = "material-icon-theme";
"rust-analyzer.checkOnSave.command" = "clippy";
"extensions.autoUpdate" = false;
"extensions.autoCheckUpdates" = false;
"\[makefile\]" = {
"editor.insertSpaces" = false;
"editor.detectIndentation" = false;
};
};
}

29
home/vinzenz/zsh.nix Normal file
View file

@ -0,0 +1,29 @@
{config, ...}: {
initExtra = ''
eval "$(direnv hook zsh)";
export PATH=$PATH:/home/vinzenz/.cargo/bin
'';
shellAliases = {
my-apply = "sudo nixos-rebuild boot";
my-switch = "sudo nixos-rebuild switch";
my-update = "sudo nixos-rebuild boot --upgrade";
my-pull = "git -C ~/Repos/nixos-configuration pull --rebase";
my-fmt = "alejandra .";
my-test = "sudo nixos-rebuild test";
my-direnvallow = "echo \"use nix\" > .envrc && direnv allow";
my-ip4 = "ip addr show | grep 192";
};
history = {
size = 10000;
path = "${config.xdg.dataHome}/zsh/history";
expireDuplicatesFirst = true;
};
oh-my-zsh = {
enable = true;
theme = "agnoster";
plugins = ["git" "sudo" "docker" "systemadmin"];
};
}

View file

@ -3,4 +3,7 @@
./hardware.nix ./hardware.nix
./environment.nix ./environment.nix
]; ];
config = {
networking.hostName = "vinzenz-lpt2";
};
} }

View file

@ -1,17 +1,17 @@
{pkgs, ...}: { {pkgs, ...}: {
imports = [ imports = [
../../home ../../home
../../home/gnome-home.nix ../../home/gnome.nix
../../users/vinzenz.nix ../../users/vinzenz.nix
../desktop-environment.nix ../../modules/desktop-environment.nix
../gnome.nix ../../modules/gnome.nix
../gaming.nix ../../modules/gaming.nix
../printing.nix ../../modules/printing.nix
../latex.nix ../../modules/latex.nix
]; ];
config = { config = {
home-manager.users.vinzenz = import ../../home/vinzenz-home.nix; home-manager.users.vinzenz = import ../../home/vinzenz;
virtualisation = { virtualisation = {
containers.enable = true; containers.enable = true;

View file

@ -4,8 +4,8 @@
... ...
}: { }: {
imports = [ imports = [
../desktop-hardware.nix ../../modules/desktop-hardware.nix
../intel-graphics.nix ../../modules/intel-graphics.nix
]; ];
config = { config = {
# intel cpu # intel cpu

View file

@ -6,18 +6,10 @@
}: { }: {
config = { config = {
services = { services = {
# Enable the X11 windowing system / wayland depending on DE xserver.enable = true;
xserver = {
enable = true;
};
libinput.enable = true; libinput.enable = true;
# flatpak xdg-portal-kde crashes, otherwise this would be global
flatpak.enable = true; flatpak.enable = true;
fstrim.enable = true; fstrim.enable = true;
earlyoom = { earlyoom = {
enable = true; enable = true;
freeMemThreshold = 5; freeMemThreshold = 5;
@ -106,8 +98,6 @@
hunspell hunspell
hunspellDicts.de-de hunspellDicts.de-de
hunspellDicts.en-us-large hunspellDicts.en-us-large
gnumake
]; ];
nixpkgs.config.permittedInsecurePackages = []; nixpkgs.config.permittedInsecurePackages = [];