complete restructure

This commit is contained in:
Melvin Ragusa
2026-02-04 22:53:00 +01:00
parent d516c95d65
commit c4cd70fd20
43 changed files with 985 additions and 1229 deletions

104
modules/desktop/apps.nix Normal file
View File

@@ -0,0 +1,104 @@
# modules/desktop/apps.nix
# GUI applications and system packages
{
config,
pkgs,
inputs,
lib,
...
}:
{
environment.systemPackages = with pkgs; [
# Core utilities
gnupg
fastfetch
micro
wget
curl
sbctl
nil
nixd
# Wayland
xwayland-satellite
grim
slurp
# File management
nautilus
# Editors and browsers
zed-editor
inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default
# Desktop shell
inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default
inputs.opencode.packages.${pkgs.stdenv.hostPlatform.system}.default
# Terminal
ghostty
claude-code
# Media viewers
loupe
evince
celluloid
mpv
vlc
# Music
feishin
picard
beets
cava
# Communication
vesktop
thunderbird
signal-desktop
telegram-desktop
# Office
onlyoffice-desktopeditors
obsidian
# System utilities
btop
mission-center
file-roller
gnome-disk-utility
unzip
zip
p7zip
unrar
# Recording
gpu-screen-recorder
# Security
bitwarden-desktop
seahorse
# Utilities
gnome-calculator
gnome-clocks
baobab
localsend
protonvpn-gui
protonmail-bridge-gui
# Cloud sync
rclone
];
services.gnome.gnome-keyring.enable = true;
services.flatpak.enable = true;
system.activationScripts.flatpak-flathub.text = ''
${pkgs.flatpak}/bin/flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo || true
'';
programs.yazi.enable = true;
programs.firefox.enable = true;
}

View File

@@ -0,0 +1,9 @@
# modules/desktop/default.nix
{
imports = [
./niri.nix
./portals.nix
./theming.nix
./apps.nix
];
}

21
modules/desktop/niri.nix Normal file
View File

@@ -0,0 +1,21 @@
# modules/desktop/niri.nix
# Window manager and display configuration
{
config,
pkgs,
lib,
...
}:
{
services.xserver.enable = true;
services.displayManager.ly.enable = true;
services.displayManager.defaultSession = "niri";
services.xserver.xkb = {
layout = "de";
variant = "nodeadkeys";
};
programs.niri.enable = true;
}

View File

@@ -0,0 +1,71 @@
# modules/desktop/portals.nix
# XDG portals and polkit authentication
{
config,
pkgs,
lib,
...
}:
{
xdg.portal = {
enable = true;
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
config.common = {
default = [ "gtk" ];
"org.freedesktop.impl.portal.FileChooser" = [ "gtk" ];
};
};
security.polkit.enable = true;
systemd.user.services.polkit-gnome-agent = {
description = "Polkit GNOME Authentication Agent";
wantedBy = [ "graphical-session.target" ];
wants = [ "graphical-session.target" ];
after = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
services.gvfs.enable = true;
services.udisks2.enable = true;
services.gnome.gnome-online-accounts.enable = true;
environment.systemPackages = with pkgs; [
polkit_gnome
xdg-utils
xdg-user-dirs
wl-clipboard
wtype
wlr-randr
wayland-utils
cliphist
wlsunset
brightnessctl
wlogout
bazaar
matugen
];
environment.sessionVariables = {
NIXOS_OZONE_WL = "1";
MOZ_ENABLE_WAYLAND = "1";
QT_QPA_PLATFORM = "wayland";
SDL_VIDEODRIVER = "wayland";
_JAVA_AWT_WM_NONREPARENTING = "1";
GIO_EXTRA_MODULES = [ "${pkgs.gvfs}/lib/gio/modules" ];
XDG_SESSION_TYPE = "wayland";
XDG_CURRENT_DESKTOP = "niri";
QT_QPA_PLATFORMTHEME = "qt6ct";
XCURSOR_THEME = "default";
XCURSOR_SIZE = "24";
};
environment.pathsToLink = [ "/share/icons" ];
}

View File

@@ -0,0 +1,57 @@
# modules/desktop/theming.nix
# Fonts, themes, and visual configuration
{
config,
pkgs,
lib,
...
}:
{
fonts = {
packages = with pkgs; [
jetbrains-mono
nerd-fonts.jetbrains-mono
inter
noto-fonts
noto-fonts-cjk-sans
noto-fonts-color-emoji
source-sans
source-serif
source-code-pro
fira-code
];
fontconfig = {
enable = true;
defaultFonts = {
sansSerif = [
"Inter"
"Noto Sans"
];
serif = [ "Noto Serif" ];
monospace = [
"JetBrainsMono Nerd Font"
"JetBrains Mono"
];
emoji = [ "Noto Color Emoji" ];
};
hinting = {
enable = true;
style = "slight";
};
antialias = true;
subpixel.rgba = "rgb";
};
};
environment.systemPackages = with pkgs; [
adw-gtk3
adwaita-icon-theme
papirus-icon-theme
libsForQt5.qt5ct
kdePackages.qt6ct
dconf-editor
nwg-look
];
}