New services and package updates

- Added support for open-webui and ollama-rocm in CLI packages.
- Updated desktop packages to include filezilla, audacity, and freecad.
- Expanded essentials with distrobox, dbus, cifs-utils, samba, and kdePackages.ksshaskpass.
- Introduced niri-waybar and niri-session-manager services for improved session management.
- Configured mako notifications with custom settings in the Niri environment.
- Adjusted hyprpaper settings and enabled additional wallpapers. (TODO on niri. Not working ATM)
This commit is contained in:
2026-02-04 11:20:05 +01:00
parent feb65868cc
commit 7a0ea8c4f1
8 changed files with 113 additions and 15 deletions

View File

@ -29,7 +29,10 @@
# Bootloader. # Bootloader.
boot = { boot = {
kernelParams = [ "quiet" "splash" ]; kernelParams = [ "quiet" "splash" ];
initrd.verbose = false; initrd = {
verbose = false;
kernelModules = [ "amdgpu" ];
};
loader = { loader = {
systemd-boot.enable = false; systemd-boot.enable = false;
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
@ -118,6 +121,16 @@
#loadModels = [ ... ]; #loadModels = [ ... ];
}; };
open-webui = {
enable = true;
package = pkgs.open-webui;
#environment = {
# DATA_DIR = "/var/lib/open-webui"; # System-wide writable dir
# OLLAMA_API_BASE_URL = "http://127.0.0.1:11434";
#};
#openFirewall = true;
};
fprintd.enable = true; fprintd.enable = true;
fprintd.tod.enable = true; fprintd.tod.enable = true;
fprintd.tod.driver = pkgs.libfprint-2-tod1-goodix; fprintd.tod.driver = pkgs.libfprint-2-tod1-goodix;
@ -212,7 +225,10 @@
enable = true; enable = true;
# Mesa should be enabled by default for Vulkan, but you can be explicit # Mesa should be enabled by default for Vulkan, but you can be explicit
enable32Bit = true; # For 32-bit applications enable32Bit = true; # For 32-bit applications
extraPackages = with pkgs; [ rocmPackages.clr.icd ]; extraPackages = with pkgs; [
rocmPackages.clr.icd
rocmPackages.rocm-smi
];
}; };
cpu.amd.updateMicrocode = true; cpu.amd.updateMicrocode = true;
@ -255,6 +271,11 @@
virtualisation = { virtualisation = {
docker.enable = true; docker.enable = true;
#podman = {
# enable = true;
# dockerCompat = true;
#};
waydroid.enable = true; waydroid.enable = true;
}; };
@ -276,7 +297,16 @@
}; };
#So no user in the group Wheel has to input the password in order to use sudo #So no user in the group Wheel has to input the password in order to use sudo
security.sudo.wheelNeedsPassword = false; security = {
sudo.wheelNeedsPassword = false;
pam.services = {
login.fprintAuth = true;
sudo.fprintAuth = true;
kde.fprintAuth = false;
hyprlock = {};
};
};
#Allow Nix Commands #Allow Nix Commands
nix.settings.experimental-features = [ "nix-command" "flakes" ]; nix.settings.experimental-features = [ "nix-command" "flakes" ];

View File

@ -6,21 +6,21 @@
services = { services = {
hyprpaper = { hyprpaper = {
enable = true; enable = false;
settings = { settings = {
preload = [ preload = [
"/home/${username}/${project}/other/wallpaper1.png" #"/home/${username}/${project}/other/wallpaper1.png"
#"/home/${username}/${project}/other/wallpaper2.png" #"/home/${username}/${project}/other/wallpaper2.png"
#"/home/${username}/${project}/other/wallpaper3.png" #"/home/${username}/${project}/other/wallpaper3.png"
#"/home/${username}/${project}/other/wallpaper4.png" "/home/${username}/${project}/other/wallpaper4.png"
]; ];
wallpaper = [ wallpaper = [
"eDP-1,/home/${username}/${project}/other/wallpaper1.png" #"eDP-1,/home/${username}/${project}/other/wallpaper1.png"
#"eDP-1,/home/${username}/${project}/other/wallpaper2.png" #"eDP-1,/home/${username}/${project}/other/wallpaper2.png"
#"eDP-1,/home/${username}/${project}/other/wallpaper3.png" #"eDP-1,/home/${username}/${project}/other/wallpaper3.png"
#"eDP-1,/home/${username}/${project}/other/wallpaper4.png" "eDP-1,/home/${username}/${project}/other/wallpaper4.png"
]; ];
}; };
}; };

View File

@ -7,7 +7,8 @@
tailscale #VPN tailscale #VPN
speedtest-cli #Internet speed tester speedtest-cli #Internet speed tester
#duplicati #duplicati
#ollama ollama-rocm
open-webui
cloudflare-warp cloudflare-warp
ddrescue ddrescue
texliveFull #LaTeX PDF maker texliveFull #LaTeX PDF maker
@ -16,5 +17,6 @@
powertop #Power consumption monitor and optimizer powertop #Power consumption monitor and optimizer
file #File type identifier file #File type identifier
hashcat #Password recovery/cracking tool hashcat #Password recovery/cracking tool
packwiz #A Minecraft modpack editor
]; ];
} }

View File

@ -51,5 +51,8 @@
waydroid #Android emulator on Linux waydroid #Android emulator on Linux
gimp2-with-plugins #Image Editor gimp2-with-plugins #Image Editor
kdePackages.filelight #Disk Usage Analyzer kdePackages.filelight #Disk Usage Analyzer
filezilla
audacity
freecad
]; ];
} }

View File

@ -38,5 +38,10 @@
rocmPackages.rocm-runtime #AMD ROCm runtime rocmPackages.rocm-runtime #AMD ROCm runtime
ripgrep #Alternative to grep search for text in files ripgrep #Alternative to grep search for text in files
pipewire #Multimedia handling pipewire #Multimedia handling
distrobox
dbus
cifs-utils
samba
kdePackages.ksshaskpass
]; ];
} }

51
niri/autostart.nix Normal file
View File

@ -0,0 +1,51 @@
{ config, pkgs, username, project, ... }:
{
#To show logs of services run:
#journalctl --user-unit={service-name} --user
systemd.user.services.niri-waybar = {
description = "Waybar status bar for Niri";
# "wantedBy" replaces the [Install] section
wantedBy = [ "graphical-session.target" ];
# "partOf" and "after" replace the [Unit] section dependencies
partOf = [ "graphical-session.target" ];
after = [ "graphical-session.target" ];
# [Unit] configuration goes here
unitConfig = {
# This checks the environment variable to ensure we are in Niri
ConditionEnvironment = "XDG_CURRENT_DESKTOP=niri";
};
# [Service] configuration goes here
serviceConfig = {
ExecStart = "${pkgs.waybar}/bin/waybar";
Restart = "on-failure";
RestartSec = "1s";
};
};
# 2. The Niri Session Cleanup Service
# This service starts when the graphical session starts, and when it stops,
# it forcibly stops the graphical-session.target to ensure a clean state for the next login.
systemd.user.services.niri-session-manager = {
description = "Niri Session Management";
wantedBy = [ "graphical-session.target" ];
partOf = [ "graphical-session.target" ];
# Only run this cleanup logic for Niri
unitConfig.ConditionEnvironment = "XDG_CURRENT_DESKTOP=niri";
serviceConfig = {
Type = "simple";
# A dummy command that stays alive. 'sleep infinity' is low resource.
ExecStart = "${pkgs.coreutils}/bin/sleep infinity";
# IMPORTANT: When this service stops (which happens when niri kills its children),
# it brings down the whole target.
ExecStopPost = "${pkgs.systemd}/bin/systemctl --user stop graphical-session.target";
};
};
}

View File

@ -6,6 +6,11 @@
../modules/waybar/home.nix ../modules/waybar/home.nix
]; ];
xdg.configFile."mako/config".text = ''
default-timeout=5000
ignore-timeout=1
'';
programs.niri = { programs.niri = {
package = pkgs.niri; package = pkgs.niri;
enable = true; enable = true;
@ -76,8 +81,9 @@
} }
} }
spawn-at-startup "waybar" // spawn-at-startup "waybar"
spawn-at-startup "hyprpaper" spawn-at-startup "hyprpaper"
spawn-at-startup "${pkgs.mako}/bin/mako"
// spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell" // spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell"
@ -150,8 +156,8 @@
Mod+Ctrl+End { move-column-to-last; } Mod+Ctrl+End { move-column-to-last; }
Mod+Shift+Left { focus-monitor-left; } Mod+Shift+Left { focus-monitor-left; }
Mod+Shift+Down { focus-monitor-down; } Mod+Shift+Down { move-window-down-or-to-workspace-down; }
Mod+Shift+Up { focus-monitor-up; } Mod+Shift+Up { move-window-up-or-to-workspace-up; }
Mod+Shift+Right { focus-monitor-right; } Mod+Shift+Right { focus-monitor-right; }
Mod+Shift+H { focus-monitor-left; } Mod+Shift+H { focus-monitor-left; }
Mod+Shift+J { focus-monitor-down; } Mod+Shift+J { focus-monitor-down; }

View File

@ -1,7 +1,7 @@
{ config, inputs, pkgs, ... }: { config, inputs, pkgs, ... }:
{ {
imports = [ imports = [
# ./autostart.nix ./autostart.nix
../modules/hyprlock ../modules/hyprlock
../modules/hyprpaper ../modules/hyprpaper
../modules/stylix ../modules/stylix
@ -13,9 +13,10 @@
environment.systemPackages = with pkgs; environment.systemPackages = with pkgs;
[ [
mako #mako
fuzzel fuzzel
waybar waybar
xwayland-satellite
]; ];
programs = { programs = {