nix-config/nixos/common/users/sajenim/jade/default.nix
jasmine c0aecc7f02
refactor(jade): install wallpaper to system and separate xinitrc sections
- Install gruvbox wallpaper to /run/current-system/sw/share/backgrounds/jade/
- Split xinitrc into "Personal Configuration" and "jade Desktop Environment"
- Move wallpaper into jade/assets/ for flake extraction readiness

This makes jade fully repo-independent - the wallpaper is now part of jade's
system packages rather than referencing the nix-config repo. When extracted
as a flake, jade will be completely self-contained.
2025-12-21 13:00:44 +08:00

97 lines
2.4 KiB
Nix

{
pkgs,
inputs,
...
}: {
imports = [
./dmenu
];
# Desktop environment packages and configuration
environment = {
systemPackages = [
# Required for some XFCE/GTK stuff
pkgs.dconf
# Picture viewer
pkgs.xfce.ristretto
# Wallpaper setter
pkgs.feh
# Screenshot tool
pkgs.scrot
# GTK theme
pkgs.unstable.gruvbox-material-gtk-theme
# Install our XMonad and Xmobar configuration
inputs.xmonad-config.packages.${pkgs.stdenv.hostPlatform.system}.default
# Install jade wallpapers
(pkgs.stdenv.mkDerivation {
name = "jade-wallpapers";
src = "${inputs.self}/nixos/common/users/sajenim/jade/assets";
installPhase = ''
mkdir -p $out/share/backgrounds/jade
cp -r $src/* $out/share/backgrounds/jade/
'';
})
];
# Set default terminal for the desktop environment
sessionVariables = {
TERMINAL = "wezterm";
};
};
# Programs and tools for the desktop environment
programs = {
# File browser
thunar.enable = true;
# Configuration storage system for xfce
xfconf.enable = true;
# Enable dconf for GTK applications
dconf.enable = true;
};
# System services for the desktop environment
services = {
# Mount, trash, and other functionalities
gvfs.enable = true;
# Thumbnail support for images
tumbler.enable = true;
};
# XDG desktop portal for file pickers, screen sharing, etc.
xdg.portal = {
enable = true;
config.common.default = ["gtk"];
extraPortals = with pkgs; [
xdg-desktop-portal-gtk
xdg-desktop-portal-wlr
];
};
# Install patched fonts for the desktop environment
fonts.packages = [
(pkgs.stdenv.mkDerivation {
name = "jade-fonts";
src = "${inputs.self}/pkgs/patched-fonts";
installPhase = ''
mkdir -p $out/share/fonts
cp -r $src/* $out/share/fonts/
'';
})
];
# Configure GTK theme system-wide
environment.etc = {
"xdg/gtk-3.0/settings.ini".text = /* ini */ ''
[Settings]
gtk-theme-name=Gruvbox-Material-Dark
gtk-icon-theme-name=Gruvbox-Material-Dark
gtk-application-prefer-dark-theme=true
'';
"xdg/gtk-4.0/settings.ini".text = /* ini */ ''
[Settings]
gtk-theme-name=Gruvbox-Material-Dark
gtk-icon-theme-name=Gruvbox-Material-Dark
gtk-application-prefer-dark-theme=true
'';
};
}