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:
@ -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" ];
|
||||||
|
|||||||
@ -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"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@ -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
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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
51
niri/autostart.nix
Normal 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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@ -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; }
|
||||||
|
|||||||
@ -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 = {
|
||||||
|
|||||||
Reference in New Issue
Block a user