first building version of lpt2 as flake
This commit is contained in:
parent
31e80e7401
commit
b71f8ee636
44 changed files with 396 additions and 677 deletions
15
README.md
15
README.md
|
|
@ -1,15 +0,0 @@
|
|||
# nixos-configuration
|
||||
|
||||
```
|
||||
/
|
||||
├── modules
|
||||
│ ├── desktop
|
||||
│ ├── hardware (includes hostname.nix)
|
||||
│ └── users
|
||||
└── hostname.nix (imports modules)
|
||||
```
|
||||
|
||||
When adding a new host: `ln -s ./new-devicename.nix /etc/nixos/configuration.nix`
|
||||
|
||||
Use `sudo nix-channel --add https://github.com/nix-community/home-manager/archive/release-23.05.tar.gz home-manager` to add home manager support.
|
||||
|
||||
8
common/default.nix
Normal file
8
common/default.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{...}: {
|
||||
imports = [
|
||||
./nixpkgs.nix
|
||||
./globalinstalls.nix
|
||||
./i18n.nix
|
||||
./networking.nix
|
||||
];
|
||||
}
|
||||
35
common/globalinstalls.nix
Normal file
35
common/globalinstalls.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{pkgs, ...}: {
|
||||
config = {
|
||||
environment = {
|
||||
pathsToLink = ["/share/zsh"];
|
||||
systemPackages = with pkgs; [
|
||||
ncdu
|
||||
glances
|
||||
iotop
|
||||
|
||||
pciutils
|
||||
lsof
|
||||
dig
|
||||
|
||||
screen
|
||||
|
||||
tldr
|
||||
neofetch
|
||||
];
|
||||
};
|
||||
|
||||
programs = {
|
||||
zsh.enable = true;
|
||||
htop.enable = true;
|
||||
iotop.enable = true;
|
||||
nano = {
|
||||
enable = true;
|
||||
syntaxHighlight = true;
|
||||
};
|
||||
git = {
|
||||
enable = true;
|
||||
package = pkgs.gitFull;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
28
common/i18n.nix
Normal file
28
common/i18n.nix
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
{...}: {
|
||||
config = {
|
||||
time.timeZone = "Europe/Berlin";
|
||||
i18n = {
|
||||
defaultLocale = "en_US.UTF-8";
|
||||
extraLocaleSettings = {
|
||||
LC_ADDRESS = "de_DE.UTF-8";
|
||||
LC_IDENTIFICATION = "de_DE.UTF-8";
|
||||
LC_MEASUREMENT = "de_DE.UTF-8";
|
||||
LC_MONETARY = "de_DE.UTF-8";
|
||||
LC_NAME = "de_DE.UTF-8";
|
||||
LC_NUMERIC = "de_DE.UTF-8";
|
||||
LC_PAPER = "de_DE.UTF-8";
|
||||
LC_TELEPHONE = "de_DE.UTF-8";
|
||||
LC_TIME = "de_DE.UTF-8";
|
||||
};
|
||||
};
|
||||
|
||||
services.xserver.xkb = {
|
||||
# Configure keymap in X11
|
||||
layout = "de";
|
||||
variant = "";
|
||||
};
|
||||
|
||||
# Configure console keymap
|
||||
console.keyMap = "de";
|
||||
};
|
||||
}
|
||||
23
common/networking.nix
Normal file
23
common/networking.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{...}: {
|
||||
config = {
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
settings = {
|
||||
PermitRootLogin = "without-password";
|
||||
PasswordAuthentication = false;
|
||||
KbdInteractiveAuthentication = false;
|
||||
};
|
||||
};
|
||||
|
||||
services.tailscale = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
|
||||
networking.firewall = {
|
||||
enable = true;
|
||||
checkReversePath = "loose";
|
||||
};
|
||||
};
|
||||
}
|
||||
46
common/nixpkgs.nix
Normal file
46
common/nixpkgs.nix
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
options.my.allowUnfreePackages = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [];
|
||||
example = ["steam"];
|
||||
};
|
||||
config = {
|
||||
nixpkgs.config = {
|
||||
# https://github.com/NixOS/nixpkgs/issues/197325#issuecomment-1579420085
|
||||
allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) config.my.allowUnfreePackages;
|
||||
};
|
||||
|
||||
nix = {
|
||||
settings = {
|
||||
substituters = ["https://nix-community.cachix.org" "https://cache.nixos.org/"];
|
||||
trusted-public-keys = ["nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="];
|
||||
};
|
||||
gc = {
|
||||
automatic = true;
|
||||
dates = "daily";
|
||||
options = "--delete-older-than 7d";
|
||||
};
|
||||
};
|
||||
|
||||
system = {
|
||||
stateVersion = "22.11";
|
||||
# enable auto updates
|
||||
autoUpgrade = {
|
||||
enable = true;
|
||||
dates = "weekly";
|
||||
};
|
||||
};
|
||||
|
||||
documentation = {
|
||||
enable = true; # documentation of packages
|
||||
nixos.enable = false; # nixos documentation
|
||||
man.enable = true; # manual pages and the man command
|
||||
info.enable = false; # info pages and the info command
|
||||
doc.enable = false; # documentation distributed in packages' /share/doc
|
||||
};
|
||||
};
|
||||
}
|
||||
133
flake.lock
generated
Normal file
133
flake.lock
generated
Normal file
|
|
@ -0,0 +1,133 @@
|
|||
{
|
||||
"nodes": {
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726560853,
|
||||
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flakey-profile": {
|
||||
"locked": {
|
||||
"lastModified": 1712898590,
|
||||
"narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=",
|
||||
"owner": "lf-",
|
||||
"repo": "flakey-profile",
|
||||
"rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "lf-",
|
||||
"repo": "flakey-profile",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726989464,
|
||||
"narHash": "sha256-Vl+WVTJwutXkimwGprnEtXc/s/s8sMuXzqXaspIGlwM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "2f23fa308a7c067e52dfcc30a0758f47043ec176",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-24.05",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"lix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1729298361,
|
||||
"narHash": "sha256-hiGtfzxFkDc9TSYsb96Whg0vnqBVV7CUxyscZNhed0U=",
|
||||
"rev": "ad9d06f7838a25beec425ff406fe68721fef73be",
|
||||
"type": "tarball",
|
||||
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/ad9d06f7838a25beec425ff406fe68721fef73be.tar.gz?rev=ad9d06f7838a25beec425ff406fe68721fef73be"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://git.lix.systems/lix-project/lix/archive/2.91.1.tar.gz"
|
||||
}
|
||||
},
|
||||
"lix-module": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"flakey-profile": "flakey-profile",
|
||||
"lix": "lix",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729360442,
|
||||
"narHash": "sha256-6U0CyPycIBc04hbYy2hBINnVso58n/ZyywY2BD3hu+s=",
|
||||
"rev": "9098ac95768f7006d7e070b88bae76939f6034e6",
|
||||
"type": "tarball",
|
||||
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/9098ac95768f7006d7e070b88bae76939f6034e6.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-1.tar.gz"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1729691686,
|
||||
"narHash": "sha256-BAuPWW+9fa1moZTU+jFh+1cUtmsuF8asgzFwejM4wac=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "32e940c7c420600ef0d1ef396dc63b04ee9cad37",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager",
|
||||
"lix-module": "lix-module",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
32
flake.nix
Normal file
32
flake.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-24.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
lix-module = {
|
||||
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-1.tar.gz";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = inputs @ {
|
||||
nixpkgs,
|
||||
home-manager,
|
||||
lix-module,
|
||||
...
|
||||
}: {
|
||||
nixosConfigurations = {
|
||||
vinzenz-lpt2 = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
lix-module.nixosModules.default
|
||||
home-manager.nixosModules.home-manager
|
||||
./common
|
||||
./hosts/vinzenz-lpt2
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
14
home/default.nix
Normal file
14
home/default.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
config = {
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
sharedModules = import ./shared-modules.nix;
|
||||
};
|
||||
};
|
||||
}
|
||||
101
home/gnome-home.nix
Normal file
101
home/gnome-home.nix
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = {
|
||||
home-manager.sharedModules = [
|
||||
{
|
||||
home.packages = with pkgs;
|
||||
[
|
||||
amberol
|
||||
gitg
|
||||
gnome-builder
|
||||
meld
|
||||
simple-scan
|
||||
pinta
|
||||
]
|
||||
++ (with gnome; [
|
||||
dconf-editor
|
||||
gpaste
|
||||
|
||||
# graphical installer for flatpak apps
|
||||
gnome-software
|
||||
])
|
||||
++ (with gnomeExtensions; [
|
||||
caffeine
|
||||
appindicator
|
||||
gsconnect
|
||||
battery-health-charging
|
||||
quick-settings-tweaker
|
||||
solaar-extension
|
||||
]);
|
||||
|
||||
dconf.settings = {
|
||||
"org/gnome/desktop/interface" = {
|
||||
color-scheme = "prefer-dark";
|
||||
clock-show-seconds = true;
|
||||
show-battery-percentage = true;
|
||||
};
|
||||
"org/gnome/mutter" = {
|
||||
edge-tiling = true;
|
||||
dynamic-workspaces = true;
|
||||
};
|
||||
"org/gnome/desktop/peripherals/keyboard" = {
|
||||
numlock-state = true;
|
||||
};
|
||||
"org/gnome/desktop/peripherals/touchpad" = {
|
||||
tap-to-click = true;
|
||||
two-finger-scrolling-enabled = true;
|
||||
};
|
||||
"org/gnome/tweaks" = {
|
||||
show-extensions-notice = false;
|
||||
};
|
||||
"org/gnome/shell" = {
|
||||
disable-user-extensions = false;
|
||||
disabled-extensions = [];
|
||||
enabled-extensions = [
|
||||
"appindicatorsupport@rgcjonas.gmail.com"
|
||||
"workspace-indicator@gnome-shell-extensions.gcampax.github.com"
|
||||
"caffeine@patapon.info"
|
||||
"GPaste@gnome-shell-extensions.gnome.org"
|
||||
"gsconnect@andyholmes.github.io"
|
||||
"solaar-extension@sidevesh"
|
||||
];
|
||||
};
|
||||
"ca/desrt/dconf-editor" = {
|
||||
show-warning = false;
|
||||
};
|
||||
"org/gnome/desktop/wm/keybindings" = {
|
||||
switch-windows = ["<Alt>Tab"];
|
||||
switch-windows-backward = ["<Shift><Alt>Tab"];
|
||||
switch-applications = ["<Super>Tab"];
|
||||
switch-applications-backward = ["<Shift><Super>Tab"];
|
||||
};
|
||||
};
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
iconTheme.name = "Adwaita";
|
||||
cursorTheme.name = "Adwaita";
|
||||
theme = {
|
||||
name = "adw-gtk3-dark";
|
||||
package = pkgs.adw-gtk3;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
home.packages = with pkgs;
|
||||
[
|
||||
trayscale
|
||||
]
|
||||
++ (with gnomeExtensions; [
|
||||
tailscale-qs
|
||||
]);
|
||||
dconf.settings."org/gnome/shell".enabled-extensions = ["tailscale@joaophi.github.com"];
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
53
home/ronja-home.nix
Normal file
53
home/ronja-home.nix
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
home .packages = with pkgs; [
|
||||
## Apps
|
||||
telegram-desktop
|
||||
kdiff3
|
||||
];
|
||||
|
||||
programs = {
|
||||
home-manager.enable = true;
|
||||
|
||||
zsh = {
|
||||
history = {
|
||||
size = 10000;
|
||||
path = "${config.xdg.dataHome}/zsh/history";
|
||||
expireDuplicatesFirst = true;
|
||||
};
|
||||
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
theme = "agnoster";
|
||||
plugins = ["git" "sudo" "systemadmin"];
|
||||
};
|
||||
};
|
||||
|
||||
git = {
|
||||
userName = "Ronja Spiegelberg";
|
||||
userEmail = "ronja.spiegelberg@gmail.com";
|
||||
|
||||
extraConfig = {
|
||||
pull.ff = "only";
|
||||
merge.tool = "kdiff3";
|
||||
};
|
||||
};
|
||||
|
||||
chromium = {
|
||||
enable = true;
|
||||
extensions = [
|
||||
{
|
||||
# ublock origin
|
||||
id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";
|
||||
}
|
||||
{
|
||||
id = "dcpihecpambacapedldabdbpakmachpb";
|
||||
updateUrl = "https://raw.githubusercontent.com/iamadamdev/bypass-paywalls-chrome/master/updates.xml";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
57
home/shared-modules.nix
Normal file
57
home/shared-modules.nix
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
[
|
||||
# set stateVersion
|
||||
{
|
||||
home.stateVersion = "22.11";
|
||||
}
|
||||
# make nano the default editor
|
||||
{
|
||||
home = {
|
||||
sessionVariables.EDITOR = "nano";
|
||||
file.".nanorc".text = ''
|
||||
set linenumbers
|
||||
set mouse
|
||||
'';
|
||||
};
|
||||
}
|
||||
# command line niceness
|
||||
{
|
||||
programs = {
|
||||
command-not-found.enable = true;
|
||||
dircolors.enable = true;
|
||||
|
||||
zsh = {
|
||||
enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
autosuggestion.enable = true;
|
||||
enableVteIntegration = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
# common git config
|
||||
{
|
||||
programs = {
|
||||
git = {
|
||||
enable = true;
|
||||
extraConfig.init.defaultBranch = "main";
|
||||
};
|
||||
|
||||
gh = {
|
||||
enable = true;
|
||||
gitCredentialHelper.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
# Templates
|
||||
{
|
||||
home.file = {
|
||||
"Templates/Empty file".text = "";
|
||||
"Templates/Empty bash script".text = ''
|
||||
#!/usr/bin/env bash
|
||||
# abort on error, undefined variables
|
||||
set -eu
|
||||
# print commands before execution
|
||||
set -x
|
||||
'';
|
||||
};
|
||||
}
|
||||
]
|
||||
248
home/vinzenz-home.nix
Normal file
248
home/vinzenz-home.nix
Normal file
|
|
@ -0,0 +1,248 @@
|
|||
{
|
||||
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"}]
|
||||
}
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
]
|
||||
139
hosts/desktop-environment.nix
Normal file
139
hosts/desktop-environment.nix
Normal file
|
|
@ -0,0 +1,139 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
config = {
|
||||
services = {
|
||||
# Enable the X11 windowing system / wayland depending on DE
|
||||
xserver = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
libinput.enable = true;
|
||||
|
||||
# flatpak xdg-portal-kde crashes, otherwise this would be global
|
||||
flatpak.enable = true;
|
||||
|
||||
fstrim.enable = true;
|
||||
|
||||
earlyoom = {
|
||||
enable = true;
|
||||
freeMemThreshold = 5;
|
||||
};
|
||||
};
|
||||
|
||||
# Enable sound with pipewire.
|
||||
sound.enable = true;
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
#jack.enable = true;
|
||||
};
|
||||
|
||||
programs = {
|
||||
kdeconnect.enable = true;
|
||||
firefox = {
|
||||
enable = true;
|
||||
languagePacks = ["en-US" "de"];
|
||||
};
|
||||
nix-ld = {
|
||||
enable = true;
|
||||
libraries = with pkgs; [
|
||||
stdenv.cc.cc
|
||||
zlib
|
||||
zstd
|
||||
curl
|
||||
openssl
|
||||
attr
|
||||
libssh
|
||||
bzip2
|
||||
libxml2
|
||||
acl
|
||||
libsodium
|
||||
util-linux
|
||||
xz
|
||||
systemd
|
||||
];
|
||||
};
|
||||
appimage = {
|
||||
enable = true;
|
||||
binfmt = true;
|
||||
};
|
||||
};
|
||||
|
||||
networking = {
|
||||
networkmanager.enable = true;
|
||||
|
||||
firewall = {
|
||||
allowedTCPPortRanges = [
|
||||
{
|
||||
# KDE Connect / gsconnect
|
||||
from = 1714;
|
||||
to = 1764;
|
||||
}
|
||||
];
|
||||
allowedUDPPortRanges = [
|
||||
{
|
||||
# KDE Connect / gsconnect
|
||||
from = 1714;
|
||||
to = 1764;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
systemd = {
|
||||
# save some boot time because nothing actually requires network connectivity
|
||||
services.NetworkManager-wait-online.enable = false;
|
||||
|
||||
# prevent stuck units from preventing shutdown (default is 120s)
|
||||
extraConfig = ''
|
||||
DefaultTimeoutStopSec=12s
|
||||
'';
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
lm_sensors
|
||||
|
||||
# office
|
||||
libreoffice-qt
|
||||
hunspell
|
||||
hunspellDicts.de-de
|
||||
hunspellDicts.en-us-large
|
||||
|
||||
gnumake
|
||||
];
|
||||
|
||||
nixpkgs.config.permittedInsecurePackages = [];
|
||||
|
||||
my.allowUnfreePackages = [
|
||||
"insync"
|
||||
"insync-pkg"
|
||||
|
||||
"rider"
|
||||
"pycharm-professional"
|
||||
"jetbrains-toolbox"
|
||||
|
||||
"anydesk"
|
||||
];
|
||||
|
||||
fonts = {
|
||||
enableDefaultPackages = true;
|
||||
fontconfig.defaultFonts.monospace = ["FiraCode Nerd Font"];
|
||||
packages = with pkgs; [
|
||||
(nerdfonts.override {fonts = ["FiraCode"];})
|
||||
];
|
||||
};
|
||||
|
||||
hardware.logitech.wireless = {
|
||||
enable = true;
|
||||
enableGraphical = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
44
hosts/desktop-hardware.nix
Normal file
44
hosts/desktop-hardware.nix
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
config = {
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxPackages_zen;
|
||||
kernelParams = ["quiet" "udev.log_level=3"];
|
||||
supportedFilesystems = ["btrfs"];
|
||||
initrd.supportedFilesystems = ["btrfs"];
|
||||
consoleLogLevel = 0;
|
||||
initrd.verbose = false;
|
||||
plymouth.enable = true;
|
||||
loader = {
|
||||
timeout = 3;
|
||||
efi.canTouchEfiVariables = true;
|
||||
systemd-boot = {
|
||||
enable = true;
|
||||
editor = false; # do not allow changing kernel parameters
|
||||
consoleMode = "max";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp5s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
hardware = {
|
||||
enableRedistributableFirmware = true;
|
||||
bluetooth.enable = true;
|
||||
};
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
|
||||
services.fwupd.enable = true;
|
||||
};
|
||||
}
|
||||
52
hosts/gaming.nix
Normal file
52
hosts/gaming.nix
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
config = {
|
||||
hardware = {
|
||||
opengl = {
|
||||
driSupport = true;
|
||||
driSupport32Bit = true;
|
||||
extraPackages = with pkgs; [mangohud];
|
||||
extraPackages32 = with pkgs; [mangohud];
|
||||
};
|
||||
|
||||
steam-hardware.enable = true;
|
||||
xpadneo.enable = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
wineWowPackages.stagingFull
|
||||
wineWowPackages.fonts
|
||||
winetricks
|
||||
dxvk
|
||||
mangohud
|
||||
vulkan-tools
|
||||
glxinfo
|
||||
lutris
|
||||
];
|
||||
|
||||
programs = {
|
||||
xwayland.enable = true;
|
||||
steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
};
|
||||
gamemode.enable = true;
|
||||
};
|
||||
|
||||
networking.firewall.allowedUDPPorts = [
|
||||
# Factorio
|
||||
34197
|
||||
];
|
||||
|
||||
my.allowUnfreePackages = [
|
||||
"steam"
|
||||
"steam-original"
|
||||
"steam-run"
|
||||
];
|
||||
};
|
||||
}
|
||||
50
hosts/gnome.nix
Normal file
50
hosts/gnome.nix
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
config = {
|
||||
services = {
|
||||
xserver = {
|
||||
# Enable the GNOME Desktop Environment.
|
||||
desktopManager.gnome.enable = true;
|
||||
displayManager = {
|
||||
gdm.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
displayManager.defaultSession = "gnome";
|
||||
|
||||
gnome = {
|
||||
tracker-miners.enable = false;
|
||||
tracker.enable = false;
|
||||
sushi.enable = true;
|
||||
gnome-remote-desktop.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
programs = {
|
||||
dconf.enable = true;
|
||||
gpaste.enable = true;
|
||||
kdeconnect.package = pkgs.gnomeExtensions.gsconnect;
|
||||
};
|
||||
|
||||
# remove some gnome default apps
|
||||
environment.gnome.excludePackages = with pkgs.gnome; [
|
||||
cheese # photo booth
|
||||
epiphany # web browser
|
||||
evince # document viewer
|
||||
geary # email client
|
||||
gnome-maps
|
||||
gnome-weather
|
||||
gnome-music
|
||||
pkgs.gnome-tour
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [gnome.ghex impression];
|
||||
|
||||
# RDP connections
|
||||
networking.firewall.allowedTCPPorts = [3389];
|
||||
};
|
||||
}
|
||||
28
hosts/intel-graphics.nix
Normal file
28
hosts/intel-graphics.nix
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = {
|
||||
hardware.opengl = {
|
||||
extraPackages = with pkgs; [
|
||||
intel-media-driver
|
||||
vaapiIntel
|
||||
vaapiVdpau
|
||||
libvdpau-va-gl
|
||||
intel-ocl
|
||||
];
|
||||
extraPackages32 = with pkgs.pkgsi686Linux; [
|
||||
intel-media-driver
|
||||
vaapiIntel
|
||||
vaapiVdpau
|
||||
libvdpau-va-gl
|
||||
];
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
nvtopPackages.intel
|
||||
];
|
||||
my.allowUnfreePackages = ["intel-ocl"];
|
||||
};
|
||||
}
|
||||
14
hosts/latex.nix
Normal file
14
hosts/latex.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
config = {
|
||||
environment.systemPackages = with pkgs; [
|
||||
fontconfig
|
||||
texliveFull
|
||||
texstudio
|
||||
];
|
||||
};
|
||||
}
|
||||
19
hosts/printing.nix
Normal file
19
hosts/printing.nix
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
config = {
|
||||
services = {
|
||||
# Enable CUPS to print documents.
|
||||
printing.enable = true;
|
||||
|
||||
avahi = {
|
||||
enable = true; # runs the Avahi daemon
|
||||
nssmdns4 = true; # enables the mDNS NSS plug-in
|
||||
openFirewall = true; # opens the firewall for UDP port 5353
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue