More refactor hard deleting

This commit is contained in:
2025-08-30 20:43:55 +02:00
parent 4ebc8b23fe
commit fdbaf09146
12 changed files with 75 additions and 520 deletions

103
flake.nix
View File

@@ -1,144 +1,65 @@
# This is the main flake containing all the nix related stuff # This is the main flake containing all the nix related stuff
{ {
description = "Main system configuration management - Jonas Hahn"; description = "Main nixos system configuration management von Jonas Hahn ";
inputs = { inputs = {
# The main nix inputs
nixpkgs.url = "nixpkgs/nixos-25.05"; nixpkgs.url = "nixpkgs/nixos-25.05";
nixpkgs-unstable.url = "nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
nur = { sops-nix = {
url = "github:nix-community/NUR"; url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix.url = "github:Mic92/sops-nix";
# optional, not necessary for the module
sops-nix.inputs.nixpkgs.follows = "nixpkgs"; sops-nix.inputs.nixpkgs.follows = "nixpkgs";
};
# Other utility stuff may be moved to a seperate flake in the future
# Love this system of just rolling to a certain commit!
xremap-flake.url = "github:xremap/nix-flake?rev=8001f37b1ffe86e76b62f36afadee2f4acf90e70";
home-manager = { home-manager = {
url = "github:nix-community/home-manager/release-25.05"; url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
stylix.url = "github:danth/stylix/release-25.05"; xremap-flake.url = "github:xremap/nix-flake?rev=8001f37b1ffe86e76b62f36afadee2f4acf90e70";
#TODO: Add the mailserver to here
# Testing
#nix-snapd.url = "github:nix-community/nix-snapd";
#nix-snapd.inputs.nixpkgs.follows = "nixpkgs";
#hyprland.url = "github:hyprwm/Hyprland";
# hyprland-plugins = {,
# url = "github:hyprwm/hyprland-plugins";
# #inputs.hyprland.follows = "hyprland";
# };
}; };
outputs = { self, nixpkgs, sops-nix, nixpkgs-unstable, nur, home-manager, stylix, ... }@inputs: outputs = { self, nixpkgs, sops-nix, nixpkgs-unstable, home-manager, ... }@inputs:
let let
system = "x86_64-linux"; system = "x86_64-linux";
# Unserstand this overlay method or do another one
overlay-unstable = final: prev: { overlay-unstable = final: prev: {
unstable = nixpkgs-unstable.legacyPackages.${prev.system}; unstable = nixpkgs-unstable.legacyPackages.${prev.system};
}; };
overlay-nur = final: prev: {
nur = nur.legacyPackages.${prev.system};
};
helperModules = [ helperModules = [
({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable overlay-nur ]; }) ({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; })
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{ {
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
# messed up firefox
#home-manager.backupFileExtension = "backup";
home-manager.extraSpecialArgs = { inherit inputs; }; home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users.jonas = import ./nixos/users/jonas/home.nix; home-manager.users.jonas = import ./nixos/users/jonas/home.nix;
home-manager.users.root = import ./nixos/users/root/home.nix;
} }
]; ];
in {
in nixosConfigurations = {
{ "thinix" = nixpkgs.lib.nixosSystem {
# New thinkpad | main workstation
nixosConfigurations."thinix" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { inherit inputs; }; specialArgs = { inherit inputs; };
modules = [ modules = [
# Use overlay magic with pkgs.unstable.<name> # Use overlay magic with pkgs.unstable.<name>
./nixos/hosts/thinkpadt470s/configuration.nix ./nixos/hosts/thinkpadt470s/configuration.nix
#nix-snapd.nixosModules.default
#{
# services.snap.enable = true;
#}
] ++ helperModules; ] ++ helperModules;
}; };
"nixyos" = nixpkgs.lib.nixosSystem {
# Acer laptop | second workstation
nixosConfigurations."nixyos" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { inherit inputs; }; specialArgs = { inherit inputs; };
modules = [ modules = [
./nixos/hosts/asus-vivo/configuration.nix ./nixos/hosts/asus-vivo/configuration.nix
] ++ helperModules; ] ++ helperModules;
}; };
"minoxy" = nixpkgs.lib.nixosSystem {
nixosConfigurations."minoxy" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { inherit inputs; }; specialArgs = { inherit inputs; };
modules = [ modules = [
./nixos/hosts/minoxy/configuration.nix ./nixos/hosts/minoxy/configuration.nix
] ++ helperModules; ] ++ helperModules;
}; };
# Cloudserver minimal without all the (bloat) stuff
nixosConfigurations."stranox" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable overlay-nur ]; })
./nixos/hosts/stranox/configuration.nix
];
};
# Other system configurations
nixosConfigurations = {
# Testing server old computer
"misox" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./nixos/hosts/misox_msi/configuration.nix
] ++ helperModules;
};
# Old Asus laptop
"asuox" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./nixos/hosts/acer-katze/configuration.nix
] ++ helperModules;
};
"gullfoss" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./nixos/hosts/gullfoss/configuration.nix
] ++ helperModules;
};
"fruitypi" = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [
./nixos/hosts/rpi3/configuration.nix
];
};
}; };
}; };
} }

View File

@@ -1,43 +1,27 @@
# Only config stuff you cannot config with dotfilesho { pkgs, ... }:
# Or stuff that does not interfere with the dotfiles
{ config, pkgs, inputs, ... }:
{ {
imports = [ imports = [
# Load all the to be installed packages
./packages.nix ./packages.nix
# inputs.xremap-flake.homeManagerModules.default
# inputs.stylix.homeManagerModules.stylix
]; ];
services.gnome-keyring.enable = true;
# This is very build intense
# wayland.windowManager.hyprland = {
# enable = true;
# plugins = [
# inputs.hyprland-plugins.packages.${pkgs.system}.hyprexpo
# ];
# };
# change the defaults because I can!
xdg.mimeApps = { xdg.mimeApps = {
enable = true; enable = true;
defaultApplications = { defaultApplications = {
# Set for web-related content
"text/html" = "firefox.desktop"; "text/html" = "firefox.desktop";
"x-scheme-handler/http" = "firefox.desktop"; "x-scheme-handler/http" = "firefox.desktop";
"x-scheme-handler/https" = "firefox.desktop"; "x-scheme-handler/https" = "firefox.desktop";
"x-scheme-handler/about" = "firefox.desktop"; "x-scheme-handler/about" = "firefox.desktop";
"x-scheme-handler/unknown" = "firefox.desktop"; "x-scheme-handler/unknown" = "firefox.desktop";
"application/pdf" = "sioyek.desktop"; "application/pdf" = "sioyek.desktop";
"application/rnote" = "rnote.desktop";
"video/mp4" = "mpv.desktop"; "video/mp4" = "mpv.desktop";
"image/*" = "fehcustom.desktop"; "image/*" = "fehcustom.desktop";
}; };
}; };
# custom feh
xdg.desktopEntries.fehcustom = { xdg.desktopEntries.fehcustom = {
name = "FehCustom"; name = "FehCustom";
terminal = false; terminal = false;
@@ -51,11 +35,9 @@
EDITOR = "nvim"; EDITOR = "nvim";
HTTP_HOME = "duckduckgo.com"; HTTP_HOME = "duckduckgo.com";
MANPAGER="nvim +Man!"; MANPAGER="nvim +Man!";
}; };
shellAliases = { shellAliases = {
testt = "echo 'test'"; fla = "sudo nixos-rebuild switch --flake '~/nixos#'";
flk = "sudo nixos-rebuild switch --flake '~/configuration/nixos#'";
}; };
pointerCursor = { pointerCursor = {
gtk.enable = true; gtk.enable = true;
@@ -65,10 +47,6 @@
}; };
}; };
# stylix.enable = true;
# stylix.image = ./backg.jpg;
# Theming gtk
gtk = { gtk = {
enable = true; enable = true;
iconTheme = { iconTheme = {
@@ -81,7 +59,6 @@
}; };
}; };
# Qt6 Configuration Tool (qt6ct) configuration
qt = { qt = {
enable = true; enable = true;
platformTheme.name = "qtct"; platformTheme.name = "qtct";
@@ -102,7 +79,6 @@
''; '';
}; };
# starship - an customizable prompt for any shell
programs.starship = { programs.starship = {
enable = true; enable = true;
settings = { settings = {

View File

@@ -2,16 +2,12 @@
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
(catppuccin-kvantum.override {
accent = "rosewater";
variant = "frappe";
})
weechat weechat
just just
gcr
iamb iamb
wiki-tui wiki-tui
# some helpers and new stuff to try
vscode vscode
mise mise
direnv direnv
@@ -19,7 +15,6 @@
visidata visidata
vuls vuls
# add scanner
simple-scan simple-scan
obsidian obsidian
rclone rclone
@@ -28,8 +23,10 @@
broot broot
gron gron
xh xh
#jujutsu # this is currently insecure
pkgs.unstable.spotify-player #jujutsu
unstable.spotify-player
pipewire pipewire
mesa mesa
@@ -42,7 +39,6 @@
kdePackages.dolphin kdePackages.dolphin
git-lfs git-lfs
# Privacy stuff
tor tor
torsocks torsocks
w3m w3m
@@ -79,6 +75,7 @@
watson watson
slides slides
kdePackages.falkon kdePackages.falkon
epiphany epiphany
imagemagick imagemagick
@@ -113,7 +110,7 @@
lazygit lazygit
nodejs nodejs
ripgrep ripgrep
pkgs.signal-desktop signal-desktop
unison unison
trash-cli trash-cli
starship starship
@@ -135,7 +132,7 @@
stow stow
brightnessctl brightnessctl
anki anki
pkgs.unstable.typst unstable.typst
dnsmasq dnsmasq
davfs2 davfs2
mediainfo mediainfo
@@ -164,12 +161,12 @@
keepassxc keepassxc
kitty kitty
wlsunset wlsunset
pkgs.unstable.yazi unstable.yazi
neovim neovim
htop htop
alpine alpine
#tree #tree
#pkgs.qt5.full #qt5.full
wget wget
tmux tmux
@@ -178,19 +175,19 @@
unzip unzip
p7zip p7zip
jq # A lightweight and flexible command-line JSON processor jq
yq-go # yaml processor https://github.com/mikefarah/yq yq-go
mtr # A network diagnostic tool mtr
iperf3 iperf3
dnsutils # `dig` + `nslookup` dnsutils
ldns # replacement of `dig`, it provide the command `drill` ldns
aria2 # A lightweight multi-protocol & multi-source command-line download utility aria2
socat # replacement of openbsd-netcat socat
nmap # A utility for network discovery and security auditing nmap
ipcalc # it is a calculator for the IPv4/v6 addresses ipcalc
# misc # Misc
cowsay cowsay
file file
which which
@@ -200,28 +197,25 @@
zstd zstd
gnupg gnupg
# nix related
# it provides the command `nom` works just like `nix`
# with more details log output
nix-output-monitor nix-output-monitor
# productivity # Productivity
hugo # static site generator hugo
glow # markdown previewer in terminal glow
iotop # io monitoring iotop
iftop # network monitoring iftop
# system call monitoring # System call monitoring
strace # system call monitoring strace
ltrace # library call monitoring ltrace
lsof # list open files lsof
# system tools # System tools
sysstat sysstat
lm_sensors # for `sensors` command lm_sensors
pciutils # lspci pciutils
usbutils # lsusb usbutils
]; ];
} }

20
user/users.nix Normal file
View File

@@ -0,0 +1,20 @@
{ pkgs, ... }:
{
users.defaultUserShell = pkgs.zsh;
users.users = {
jonas = {
isNormalUser = true;
extraGroups = [
"docker"
"input"
"scanner"
"lp"
"davfs2"
"wheel"
"audio"
"networkmanager"
];
};
};
}

View File

@@ -1,23 +0,0 @@
# Only config stuff you cannot config with dotfiles
# Or stuff that does not interfere with the dotfiles
{ config, pkgs, inputs, ... }:
{
imports = [
# Load all the to be installed packages
# inputs.xremap-flake.homeManagerModules.default
];
home = {
username = "admin";
homeDirectory = "/home/admin";
sessionVariables = {
EDITOR = "nvim";
};
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
home.stateVersion = "24.11";
}

View File

@@ -1,25 +0,0 @@
# Only config stuff you cannot config with dotfiles
# Or stuff that does not interfere with the dotfiles
{ config, pkgs, inputs, ... }:
{
imports = [
# Load all the to be installed packages
# inputs.xremap-flake.homeManagerModules.default
];
home = {
username = "guest";
homeDirectory = "/home/guest";
sessionVariables = {
EDITOR = "nvim";
STATUS_USER = "guest";
};
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
home.stateVersion = "24.11";
}

View File

@@ -1,24 +0,0 @@
# Only config stuff you cannot config with dotfiles
# Or stuff that does not interfere with the dotfiles
{ config, pkgs, inputs, ... }:
{
imports = [
# Load all the to be installed packages
# inputs.xremap-flake.homeManagerModules.default
];
home = {
username = "horst";
homeDirectory = "/home/horst";
sessionVariables = {
EDITOR = "nvim";
};
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
home.stateVersion = "24.11";
}

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 MiB

View File

@@ -1,137 +0,0 @@
# Only config stuff you cannot config with dotfilesho
# Or stuff that does not interfere with the dotfiles
{ config, pkgs, inputs, ... }:
{
imports = [
# Load all the to be installed packages
./packages.nix
# inputs.xremap-flake.homeManagerModules.default
# inputs.stylix.homeManagerModules.stylix
];
# This is very build intense
# wayland.windowManager.hyprland = {
# enable = true;
# plugins = [
# inputs.hyprland-plugins.packages.${pkgs.system}.hyprexpo
# ];
# };
services.gnome-keyring.enable = true;
home.packages = [ pkgs.gcr ]; # Provides org.gnome.keyring.SystemPrompter
# change the defaults because I can!
xdg.mimeApps = {
enable = true;
defaultApplications = {
# Set for web-related content
"text/html" = "firefox.desktop";
"x-scheme-handler/http" = "firefox.desktop";
"x-scheme-handler/https" = "firefox.desktop";
"x-scheme-handler/about" = "firefox.desktop";
"x-scheme-handler/unknown" = "firefox.desktop";
"application/pdf" = "sioyek.desktop";
"application/rnote" = "rnote.desktop";
"video/mp4" = "mpv.desktop";
"image/*" = "fehcustom.desktop";
};
};
# custom feh
xdg.desktopEntries.fehcustom = {
name = "FehCustom";
terminal = false;
exec = "${pkgs.feh}/bin/feh -d --keep-zoom-vp --draw-exif --start-at %u";
};
# xdg.desktopEntries.flowblade = {
# name = "Flowblade";
# terminal = false;
# exec = "${pkgs.flowblade}/bin/flowblade";
# };
home = {
username = "jonas";
homeDirectory = "/home/jonas";
sessionVariables = {
EDITOR = "nvim";
HTTP_HOME = "duckduckgo.com";
MANPAGER="nvim +Man!";
};
shellAliases = {
testt = "echo 'test'";
flk = "sudo nixos-rebuild switch --flake '~/configuration/nixos#'";
};
pointerCursor = {
gtk.enable = true;
name = "catppuccin-frappe-rosewater-cursors";
package = pkgs.catppuccin-cursors.frappeRosewater;
#hyprcursor.enable = true;
#hyprcursor.size = 16;
size = 18;
};
};
# stylix.enable = true;
# stylix.image = ./backg.jpg;
# Theming gtk
gtk = {
enable = true;
iconTheme = {
package = pkgs.papirus-icon-theme;
name = "Papirus-Dark";
};
theme = {
name = "Adwaita-dark";
package = pkgs.gnome-themes-extra;
};
};
# Qt6 Configuration Tool (qt6ct) configuration
qt = {
enable = true;
platformTheme.name = "qtct";
style.name = "Kvantum";
};
xdg.configFile."Kvantum/kvantum.kvconfig".source = (pkgs.formats.ini { }).generate "kvantum.kvconfig" {
General.theme = "Catppuccin-Frappe-Rosewater";
};
xdg.configFile."qt6ct/qt6ct.conf".source = pkgs.writeTextFile {
name = "qt6ct.conf";
text = ''
[Appearance]
color_scheme_path=${pkgs.qt6ct}/share/qt6ct/colors/airy.conf
custom_palette=false
icon_theme=Papirus-Dark
standard_dialogs=default
style=kvantum
'';
};
# starship - an customizable prompt for any shell
programs.starship = {
enable = true;
settings = {
add_newline = false;
aws.disabled = true;
gcloud.disabled = true;
line_break.disabled = true;
sudo = {
disabled = false;
symbol = "SUDO ";
style = "bold red";
};
};
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
home.stateVersion = "24.11";
}

View File

@@ -1,86 +0,0 @@
# Only config stuff you cannot config with dotfiles
# Or stuff that does not interfere with the dotfiles
# Changed my mind
# Just do whats fun
{ config, pkgs, inputs, ... }:
{
imports = [
# Load all the to be installed packages
# ./packages.nix
# inputs.xremap-flake.homeManagerModules.default
# inputs.stylix.homeManagerModules.stylix
];
home = {
username = "root";
sessionVariables = {
EDITOR = "nvim";
HTTP_HOME = "duckduckgo.com";
MANPAGER="nvim +Man!";
};
shellAliases = {
testting = "echo 'test'";
};
};
home.packages = with pkgs; [
acpi
zsh
zoxide
btop
yazi
unzip
feh
];
programs.zsh = {
enable = true;
initContent = ''
# Load Starship prompt
eval "$(starship init zsh)"
'';
};
programs.bash = {
enable = true;
bashrcExtra = ''
# Interactive shell check
[[ $- != *i* ]] && return
# Load Starship prompt
if command -v starship >/dev/null 2>&1; then
eval "$(starship init bash)"
fi
# Add any other bash aliases or functions here
alias ll='ls -l'
alias la='ls -A'
'';
profileExtra = ''
# Source the bashrc
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
'';
};
# starship - an customizable prompt for any shell
programs.starship = {
enable = true;
settings = {
add_newline = false;
aws.disabled = true;
gcloud.disabled = true;
line_break.disabled = true;
};
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
home.stateVersion = "24.11";
}

View File

@@ -1,24 +0,0 @@
# Only config stuff you cannot config with dotfiles
# Or stuff that does not interfere with the dotfiles
{ config, pkgs, inputs, ... }:
{
imports = [
# Load all the to be installed packages
# inputs.xremap-flake.homeManagerModules.default
];
home = {
username = "theo";
homeDirectory = "/home/theo";
sessionVariables = {
EDITOR = "nvim";
};
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
home.stateVersion = "24.11";
}

View File

@@ -1,37 +0,0 @@
{ config, lib, pkgs, ... }:
{
# Define a user account. Don't forget to set a password with passwd.
users.defaultUserShell = pkgs.zsh;
# Define groups
users.groups.dummy = {};
users.users = {
jonas = {
isNormalUser = true;
extraGroups = [ "docker" "input" "scanner" "lp" "davfs2" "wheel" "audio" "networkmanager" ];
};
theo = {
isNormalUser = true;
};
horst = {
isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" ];
};
gui = {
isNormalUser = true;
};
shared = {
isNormalUser = true;
};
dummy = {
# Testing what this does
isNormalUser = false;
isSystemUser = true;
# Set this to be safe
group = "dummy";
};
};
}