Compare commits

...

17 Commits

Author SHA1 Message Date
dc1e64865f auto up 11:49:23 up 0:19, 2 users, load average: 0.09, 0.27, 0.37 2025-11-20 11:49:25 +01:00
0274f875c4 auto up 15:03:56 up 0:02, 2 users, load average: 0.32, 0.20, 0.09 2025-11-19 15:03:58 +01:00
4cb53654c9 auto up 23:01:45 up 8:51, 2 users, load average: 0.57, 0.67, 0.74 2025-11-16 23:01:47 +01:00
b6a66eaa4d auto up 16:24:24 up 1:02, 2 users, load average: 0.54, 0.27, 0.10 2025-11-14 16:24:26 +01:00
2668919af5 auto up 11:12:59 up 0:20, 2 users, load average: 0.61, 0.62, 0.36 2025-11-06 11:13:01 +01:00
725e46b62d auto up 10:53:19 up 0:00, 2 users, load average: 1.01, 0.25, 0.08 2025-11-06 10:53:20 +01:00
1f67fd271e auto up 02:38:43 up 0:05, 3 users, load average: 0.52, 0.53, 0.25 2025-11-06 02:38:44 +01:00
d073da6b38 auto up 01:59:20 up 7:21, 2 users, load average: 0.17, 0.29, 0.37 2025-11-06 01:59:21 +01:00
4729da1505 auto up 01:08:17 up 6:30, 2 users, load average: 0.62, 0.57, 0.51 2025-11-06 01:08:18 +01:00
0ada014d4a auto up 00:24:13 up 0:32, 2 users, load average: 0.84, 0.77, 0.74 2025-11-02 00:24:15 +01:00
c574bf8e0f auto up 2025-11-01 23:13:42 +01:00
4e000023c7 Add grayscale 2025-11-01 21:44:23 +01:00
a8fdabe1d8 Better filemanager 2025-10-30 09:24:23 +01:00
0d1d0018ff Nextcloud 2025-10-17 12:08:07 +02:00
f7533d4ffa Some improves 2025-10-17 09:31:17 +02:00
2ea3065c4f Updates 2025-10-15 23:04:43 +02:00
f8557c66ea Minimal with flake update 2025-10-14 11:09:14 +02:00
19 changed files with 338 additions and 315 deletions

24
flake.lock generated
View File

@@ -134,11 +134,11 @@
]
},
"locked": {
"lastModified": 1756245065,
"narHash": "sha256-aAZNbGcWrVRZgWgkQbkabSGcDVRDMgON4BipMy69gvI=",
"lastModified": 1758463745,
"narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "54b2879ce622d44415e727905925e21b8f833a98",
"rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
"type": "github"
},
"original": {
@@ -449,11 +449,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1756469547,
"narHash": "sha256-YvtD2E7MYsQ3r7K9K2G7nCslCKMPShoSEAtbjHLtH0k=",
"lastModified": 1760139962,
"narHash": "sha256-4xggC56Rub3WInz5eD7EZWXuLXpNvJiUPahGtMkwtuc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "41d292bfc37309790f70f4c120b79280ce40af16",
"rev": "7e297ddff44a3cc93673bb38d0374df8d0ad73e4",
"type": "github"
},
"original": {
@@ -479,11 +479,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1756542300,
"narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=",
"lastModified": 1760284886,
"narHash": "sha256-TK9Kr0BYBQ/1P5kAsnNQhmWWKgmZXwUQr4ZMjCzWf2c=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d7600c775f877cd87b4f5a831c28aa94137377aa",
"rev": "cf3f5c4def3c7b5f1fc012b3d839575dbe552d43",
"type": "github"
},
"original": {
@@ -612,11 +612,11 @@
]
},
"locked": {
"lastModified": 1754988908,
"narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=",
"lastModified": 1760393368,
"narHash": "sha256-8mN3kqyqa2PKY0wwZ2UmMEYMcxvNTwLaOrrDsw6Qi4E=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "3223c7a92724b5d804e9988c6b447a0d09017d48",
"rev": "ab8d56e85b8be14cff9d93735951e30c3e86a437",
"type": "github"
},
"original": {

View File

@@ -19,6 +19,7 @@
"github:xremap/nix-flake?rev=8001f37b1ffe86e76b62f36afadee2f4acf90e70"; # One commit behind head
};
# Understand what everything does
outputs =
{ self, nixpkgs, nixpkgs-unstable, sops-nix, home-manager, ... }@inputs:
let

View File

@@ -9,13 +9,8 @@
./../../modules/essential.nix
./../../modules/common/sops.nix
# This is buggy right now
#./../../modules/services/webdav.nix
# Not working right now due to nvidia problems
# It worked fine on another machine thats why I am wondering
#./../../modules/services/ai.nix
./../../modules/graphics/workstation.nix
./../../modules/graphics/grayscale.nix
./../../modules/hardware/nvidia.nix
./../../modules/hardware/boot.nix
@@ -23,30 +18,41 @@
];
networking.hostName = "minoxy";
enableCuda = false;
systemd.targets.sleep.enable = true;
systemd.targets.suspend.enable = true;
programs.ydotool.enable = true;
services.input-remapper.enable = true;
fileSystems."/shared" = {
device = "/dev/disk/by-uuid/8CEA-13E3"; # use lsblk -f
fsType = "exfat";
options = [ "defaults" "uid=1000" "gid=100" "umask=000" ];
};
# Testing
#environment.etc."mnt/jousb".source = "/mnt/jousb"; # ensures directory exists
#services.udev.extraRules = ''
# ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_LABEL}=="JOUSB", RUN+="${pkgs.mount}/bin/mount /dev/disk/by-label/JOUSB /mnt/jousb"
# ACTION=="remove", SUBSYSTEM=="block", ENV{ID_FS_LABEL}=="JOUSB", RUN+="${pkgs.umount}/bin/umount /mnt/jousb"
#'';
virtualisation.docker.enable = true;
# Add file systems
boot.supportedFilesystems = [ "ntfs" "exfat" ];
# Hide the windows disk in the file explorer
services.udev.extraRules = ''
# Ignore internal NVMe Windows partition
SUBSYSTEM=="block", ENV{ID_FS_UUID}=="A09C8D5E9C8D2FB8", ENV{UDISKS_IGNORE}="1"
'';
# TODO: Make all your working systems go to ext4 on the full disk for ease of use and storage
virtualisation.docker.storageDriver = "btrfs";
security.sudo.extraConfig = ''
# Sudoers config goes here
'';
services = {
syncthing = {
enable = true;
user = "jonas";
dataDir = "/home/jonas/Syncthing"; # Default folder for new synced folders
configDir = "/home/jonas/.config/syncthing"; # Folder for Syncthing's settings and keys
};
};
networking.extraHosts = ''
127.0.0.1 jonas.local
'';
fonts.fontDir.enable = true;
# Never change this!
system.stateVersion = "25.05";
}

View File

@@ -4,41 +4,45 @@
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" "sr_mod" ];
boot.initrd.availableKernelModules =
[ "xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" "sr_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.kernelModules = [ "kvm-intel" "ecryptfs" ];
boot.extraModulePackages = [ ];
fileSystems."/shared" = {
device = "/dev/disk/by-uuid/8CEA-13E3"; # use lsblk -f
fsType = "exfat";
options = [ "defaults" "uid=1000" "gid=100" "umask=000" ];
};
# FUll btrfs config
fileSystems."/" =
{ device = "/dev/disk/by-uuid/e52b1440-66f3-4129-b3c0-fba3491e2bbc";
fileSystems."/" = {
device = "/dev/disk/by-uuid/e52b1440-66f3-4129-b3c0-fba3491e2bbc";
fsType = "btrfs";
options = [ "subvol=root" ];
};
fileSystems."/home" =
{ device = "/dev/disk/by-uuid/e52b1440-66f3-4129-b3c0-fba3491e2bbc";
fileSystems."/home" = {
device = "/dev/disk/by-uuid/e52b1440-66f3-4129-b3c0-fba3491e2bbc";
fsType = "btrfs";
options = [ "subvol=home" ];
};
fileSystems."/nix" =
{ device = "/dev/disk/by-uuid/e52b1440-66f3-4129-b3c0-fba3491e2bbc";
fileSystems."/nix" = {
device = "/dev/disk/by-uuid/e52b1440-66f3-4129-b3c0-fba3491e2bbc";
fsType = "btrfs";
options = [ "subvol=nix" ];
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/3091-F0BF";
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/3091-F0BF";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/3e591e27-c6c5-4e28-900b-f899bc3d5e70"; }
];
[{ device = "/dev/disk/by-uuid/3e591e27-c6c5-4e28-900b-f899bc3d5e70"; }];
# 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
@@ -49,5 +53,6 @@
# networking.interfaces.wlp112s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.cpu.intel.updateMicrocode =
lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@@ -16,9 +16,8 @@
./../../modules/laptop/battery.nix
./../../modules/graphics/workstation.nix
#./../../modules/services/webdav.nix
./../../modules/services/scanning.nix
./../../modules/graphics/grayscale.nix
./../../modules/services/printer.nix
];
networking.hostName = "nixyos";

View File

@@ -9,7 +9,7 @@
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" "rtsx_usb_sdmmc" ];
boot.kernelModules = [ "kvm-intel" ];
boot.kernelModules = [ "kvm-intel" "ecryptfs" ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/881615c5-5c12-46c5-8bd2-1959f9347980";

View File

@@ -13,29 +13,26 @@
./../../modules/hardware/boot.nix
./../../modules/graphics/workstation.nix
./../../modules/graphics/grayscale.nix
./../../modules/laptop/powersave.nix
./../../modules/laptop/battery.nix
#./../../modules/services/webdav.nix
./../../modules/services/scanning.nix
./../../modules/services/printer.nix
];
networking.hostName = "thinix";
batMode = "double";
# Cannot have this and tlp
#services.power-profiles-daemon.enable = true;
programs.gnupg.agent = {
enable = true;
pinentryPackage = with pkgs; pinentry-all;
enableSSHSupport = true;
};
swapDevices = [{
device = "/swapfile";
size = 4096;
}];
system.stateVersion = "24.11";
services.xserver.xkb = {
layout = "us"; # or "us" or whatever base
variant = "neo"; # for Neo2
};
console.useXkbConfig = true; # to make it apply on TTY too
system.stateVersion = "24.11"; # Dont change this
}

View File

@@ -8,6 +8,7 @@
[ (modulesPath + "/installer/scan/not-detected.nix")
];
#boot.kernelModules = [ "ecryptfs" ];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" ];
fileSystems = {

View File

@@ -5,10 +5,37 @@
services.locate.enable = true;
services.openssh.enable = true;
hardware.enableAllFirmware = true;
services = {
udisks2.enable = true;
gvfs.enable = true;
};
security.polkit.enable = true;
security.pam.services.login.enableGnomeKeyring = true;
services.gnome.gnome-keyring.enable = true;
#security.pam.enableEcryptfs = true;
security.polkit.extraConfig = ''
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" &&
subject.isInGroup("wheel")) {
return polkit.Result.YES;
}
});
'';
# Nix fun
nixpkgs.config.allowUnfree = true;
nix.settings.experimental-features = [ "flakes" "nix-command" ];
programs.gnupg.agent = {
enable = true;
pinentryPackage = with pkgs; pinentry-all;
enableSSHSupport = true;
};
time.timeZone = "Europe/Berlin";
programs.nix-ld.enable = true; # Linking support
@@ -16,7 +43,9 @@
services.avahi.enable = true;
services.avahi.nssmdns4 = true;
environment = { systemPackages = with pkgs; [ xorg.xrandr git starship zoxide rsync ]; };
environment = {
systemPackages = with pkgs; [ yazi tmux git starship zoxide rsync xorg.libX11.dev rclone neovim alacritty gtk4.dev ];
};
nix.optimise.automatic = true;
@@ -29,10 +58,10 @@
networking = { networkmanager = { enable = true; }; };
i18n.defaultLocale = "en_US.UTF-8";
console = {
font = "Lat2-Terminus16";
keyMap = "us";
};
#console = {
# font = "Lat2-Terminus16";
# keyMap = "us";
#};
programs.zsh = {
enable = true;
@@ -43,4 +72,6 @@
[ "history-substring-search" "git" "zoxide" "vi-mode" "systemadmin" ];
};
};
programs.ydotool.enable = true;
}

View File

@@ -0,0 +1,28 @@
{ config, pkgs, ... }:
let
user = "jonas";
uid = "1000";
in {
systemd.user.services.hyprshade-toggle = {
description = "Toggle Hyprshade grayscale";
enable = true;
serviceConfig = {
Type = "oneshot";
ExecStart = "${pkgs.bash}/bin/bash /home/${user}/projects/scripts/shell/toggle_grayscale.sh";
Environment = ''
PATH=/home/jonas/.nix-profile/bin:/run/current-system/sw/bin:/usr/bin:${pkgs.hyprshade}/bin
'';
};
};
systemd.user.timers.hyprshade-toggle = {
description = "Run hyprshade toggle";
timerConfig = {
OnBootSec = "1min";
OnUnitActiveSec = "3min";
AccuracySec = "30s";
};
wantedBy = [ "timers.target" ];
};
}

View File

@@ -7,6 +7,7 @@
QT_QPA_PLATFORMTHEME = "qt6ct";
QT_STYLE_OVERRIDE = "kvantum";
QT_QPA_PLATFORM = "xcb";
TERM = "alacritty";
};
};

View File

@@ -6,10 +6,6 @@ in {
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;
@@ -29,16 +25,5 @@ in {
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.stable;
};
# Apply CUDA-specific settings if enabled
nixpkgs.config.cudaSupport = config.enableCuda;
hardware.enableAllFirmware = true;
environment.systemPackages = (if config.enableCuda then
[
(pkgs.blender.override { cudaSupport = true; })
]
else
[ ]);
};
}

View File

@@ -1,10 +0,0 @@
{ ... }:
{
imports = [ ../hardware/nvidia.nix ];
services.ollama = {
enable = true;
acceleration = "cuda";
};
}

View File

@@ -6,4 +6,6 @@
hardware.sane.extraBackends = [ pkgs.sane-airscan ];
hardware.sane.disabledDefaultBackends = [ "escl" ];
services.udev.packages = [ pkgs.sane-airscan ];
services.printing.enable = true;
}

View File

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

View File

@@ -1,34 +0,0 @@
{ ... }:
{
# For web mounting
services.davfs2.enable = true;
# Load the secret
sops = {
secrets = {
webdav_authstring = {
mode = "0600";
path = "/etc/davfs2/secrets";
};
};
};
systemd.mounts = [{
description = "Webdav mount point";
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
what = "https://dav.hahn1.one";
where = "/webdav";
type = "davfs";
options = "uid=1000,gid=1000,file_mode=0664,dir_mode=2775,_netdev";
mountConfig.TimeoutSec = "5s";
}];
systemd.automounts = [{
description = "Webdav automount";
where = "/webdav";
wantedBy = [ "multi-user.target" ];
automountConfig = { TimeoutIdleSec = "2m"; };
}];
}

View File

@@ -3,8 +3,6 @@
{
imports = [ ./packages.nix ];
services.gnome-keyring.enable = true;
xdg.mimeApps = {
enable = true;
defaultApplications = {
@@ -20,6 +18,46 @@
};
};
# Enable and configure the gnome terminal for the nemo file manager
programs.gnome-terminal = {
enable = true;
showMenubar = false;
themeVariant = "dark";
profile."17ef1520-f08d-403f-b033-d8ccee6b01f9" = {
visibleName = "MainHome";
transparencyPercent = 60;
font = "FiraCode Nerd Font 12"; # Fira is installed on the system by the nixos config
default = true;
audibleBell = false;
cursorBlinkMode = "off";
colors = {
backgroundColor = "#1d1d1d";
cursor = {
foreground = "#1d1d1d"; # text inside cursor
background = "#ffb86c"; # light orange block
};
foregroundColor = "#f7f6ec";
palette = [ "#343835" "#ce3e60" "#7bb75b" "#e8b32a" "#4c99d3" "#a57fc4" "#389aac" "#f9faf6"
"#585a58" "#d18ea6" "#767e2b" "#77592e" "#337879" "#7f5190" "#76bbca" "#b1b5ae" ];
};
};
};
services.udiskie = {
enable = true;
notify = true;
automount = true;
tray = "auto";
settings = {
# workaround for
# https://github.com/nix-community/home-manager/issues/632
program_options = {
# replace with your favorite file manager
file_manager = "${pkgs.nemo-with-extensions}/bin/nemo";
};
};
};
xdg.desktopEntries.fehcustom = {
name = "FehCustom";
terminal = false;
@@ -37,6 +75,7 @@
};
};
# Theming for ease of use of gui apps
gtk = {
enable = true;
iconTheme = {
@@ -48,21 +87,25 @@
package = pkgs.gnome-themes-extra;
};
};
qt = {
enable = true;
platformTheme.name = "qtct";
style.name = "Kvantum";
style.name = "kvantum";
};
xdg.configFile."Kvantum/kvantum.kvconfig".source =
(pkgs.formats.ini { }).generate "kvantum.kvconfig" {
General.theme = "Catppuccin-Frappe-Rosewater";
General.theme = "KvAdaptaDark";
};
xdg.configFile."qt6ct/qt6ct.conf".source = pkgs.writeTextFile {
name = "qt6ct.conf";
text =
" [Appearance]\n color_scheme_path=${pkgs.qt6ct}/share/qt6ct/colors/airy.conf\n custom_palette=false\n icon_theme=Papirus-Dark\n standard_dialogs=default\n style=kvantum\n";
''
[Appearance]
icon_theme=Papirus-Dark
style=kvantum
standard_dialogs=default
'';
};
programs.starship = {
@@ -83,5 +126,5 @@
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
home.stateVersion = "24.11";
home.stateVersion = "24.11"; # Dont change
}

View File

@@ -2,185 +2,157 @@
{
home.packages = with pkgs; [
weechat
clang
libcxx
just
deno
########################################
# GUI #
########################################
# --- Core GUI ---
alacritty
ffmpeg
pavucontrol
iamb
sdkmanager
air
nmap
wakeonlan
wiki-tui
ansible
terraform
android-tools
kitty
vscode
libreoffice
unstable.sioyek
zathura
qalculate-qt
# --- Communication & Internet ---
discord
thunderbird
tor-browser
unstable.signal-desktop
qbittorrent
ausweisapp
nextcloud-client
spotify
# --- Media & Desktop Tools ---
simple-scan
obsidian
rclone
sops
gimp
audio-recorder
cheese
age
git-lfs
tor
torsocks
w3m
timer
qbittorrent
discord
blender
audacity
zoom-us
vlc
thunderbird
mpv
obsidian
obs-studio
prismlauncher
inkscape
rnote
nemo-with-extensions
xournalpp
anki
shotcut
hyprshot # All the hypr stuff
hyprpicker
hyprlock
hypridle
hyprshade
hyprsunset
hyprpaper
todo-txt-cli
systemctl-tui
acpi
waybar
dunst
networkmanagerapplet
pavucontrol
feh
watson
slides
imagemagick
xdragon
luarocks
gradle
openjdk
findutils.locate
ethtool
qalculate-qt
wl-clip-persist
btop
fastfetch
zathura
eza
tofi
fuzzel
networkmanagerapplet
gdu
hyprpaper
tokei
fzf
glibc
gnumake
ninja
cmake
meson
lld
########################################
# CLI #
########################################
vscode-langservers-extracted
clang
clang-tools # Provides clangd
go
bitwarden-desktop
libinput
cudaPackages.cudatoolkit
ydotool
input-remapper
ausweisapp
spotify
pgadmin4
dig
lazydocker
libtool
love
lua
zig
cargo
tor-browser
bitwarden-cli
rpi-imager
cppcheck
lazygit
nodejs
# --- Essentials & Navigation ---
ripgrep
signal-desktop
unison
php
intelephense
trash-cli
# Full haskell development environment
haskellPackages.ghc
haskellPackages.cabal-install
haskellPackages.stack
haskellPackages.hoogle
haskellPackages.haskell-language-server
python3
fd
ttyper
zoxide
vim
tofi
gcr # Keyring
fzf
eza
bat
dunst
killall
libreoffice
perl
pipx
waybar
stow
brightnessctl
anki
unstable.typst
mediainfo
powertop
exiftool
curl
sioyek
xournalpp
rnote
vim
unstable.neovim
emacs
hyprshot
hyprpicker
hyprsunset
inotify-tools
stow
wl-clipboard
mpv
gitui
keepassxc
kitty
unstable.yazi
neovim
htop
alpine
wget
tmux
wl-clip-persist
killall
trash-cli
file
zip
xz
unzip
file
gnupg
# --- System & Network ---
btop
iotop
fastfetch
acpi
brightnessctl
ethtool
findutils
nmap
wakeonlan
tor
torsocks
w3m
curl
wget
libinput
mtr
gdu
timer
nix-output-monitor
# --- Productivity & Misc ---
just
todo-txt-cli
typst
systemctl-tui
wiki-tui
watson
slides
imagemagick
immich-cli
parted
lsof
tt
bitwarden-cli
lazydocker
poppler_utils
prismlauncher
entr
yq
lazygit
gitui
tokei
dig
unstable.yazi
# --- Languages & Package Managers ---
python3
nodejs
go
lua
luarocks
deno
pipx
gradle
openjdk
# --- Build Tools ---
clang
clang-tools
gnumake
cmake
ninja
meson
lld
# --- DevOps & Versioning ---
git-lfs
sops
age
ecryptfs
ansible
android-tools
sdkmanager
air
vscode-langservers-extracted
];
}

View File

@@ -5,6 +5,7 @@
users.users = {
jonas = {
isNormalUser = true;
uid = 1000;
extraGroups = [
"docker"
"input"