Files
nix-config/hosts/common/optional/lxqt-greeter.nix
2025-09-22 09:07:03 -03:00

91 lines
2.2 KiB
Nix

# LXQt Default Greeter (SDDM with LXQt theme)
#
# This module configures SDDM as the display manager with LXQt theming
# to provide a consistent greeter experience for LXQt desktop environments.
#
# Features:
# - SDDM display manager with Wayland support
# - LXQt theme integration for the greeter
# - Proper session detection for LXQt-based environments
# - Qt theming consistency between greeter and desktop
#
# Usage:
# Add this to your host configuration instead of gdm.nix:
# imports = lib.flatten [
# # ... other imports ...
# "hosts/common/optional/lxqt-greeter.nix"
# ];
#
{pkgs, ...}: {
# Enable SDDM as the display manager
services.displayManager = {
sddm = {
enable = true;
wayland = {
enable = true;
compositor = "kwin"; # Use KWin for the greeter compositor
};
# Use LXQt theme for SDDM
theme = "breeze"; # Breeze theme works well with LXQt
};
};
# Install SDDM themes and LXQt integration packages
environment.systemPackages = with pkgs; [
# SDDM themes that work well with LXQt
kdePackages.sddm-kcm # SDDM configuration module
# Additional SDDM themes (optional)
where-is-my-sddm-theme
];
# Ensure proper font rendering for the greeter
fonts = {
packages = with pkgs; [
noto-fonts
noto-fonts-cjk-sans
noto-fonts-emoji
liberation_ttf
fira-code
fira-code-symbols
];
fontconfig = {
defaultFonts = {
serif = ["Noto Serif"];
sansSerif = ["Noto Sans"];
monospace = ["Fira Code"];
};
};
};
# SDDM configuration
environment.etc."sddm.conf".text = ''
[Autologin]
Relogin=false
Session=
User=
[General]
HaltCommand=/run/current-system/systemd/bin/systemctl poweroff
RebootCommand=/run/current-system/systemd/bin/systemctl reboot
[Theme]
Current=breeze
CursorTheme=breeze_cursors
Font=Noto Sans,10,-1,0,50,0,0,0,0,0
[Users]
MaximumUid=60513
MinimumUid=1000
[Wayland]
EnableHiDPI=true
SessionDir=/run/current-system/sw/share/wayland-sessions
[X11]
EnableHiDPI=true
SessionDir=/run/current-system/sw/share/xsessions
'';
}