complete restructure
This commit is contained in:
104
modules/desktop/apps.nix
Normal file
104
modules/desktop/apps.nix
Normal 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;
|
||||
}
|
||||
9
modules/desktop/default.nix
Normal file
9
modules/desktop/default.nix
Normal 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
21
modules/desktop/niri.nix
Normal 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;
|
||||
}
|
||||
71
modules/desktop/portals.nix
Normal file
71
modules/desktop/portals.nix
Normal 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" ];
|
||||
}
|
||||
57
modules/desktop/theming.nix
Normal file
57
modules/desktop/theming.nix
Normal 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
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user