config/modules/home/services/quickshell/default.nix
2025-06-15 18:15:28 -04:00

55 lines
1.7 KiB
Nix

{
lib,
config,
pkgs,
system,
inputs,
...
}:
with lib;
with lib.custom; let
cfg = config.services.quickshell;
mkService = recursiveUpdate {
Unit.PartOf = ["graphical-session.target"];
Unit.After = ["graphical-session.target"];
Install.WantedBy = ["graphical-session.target"];
};
in {
options.services.quickshell = with types; {
enable = mkBoolOpt false "Enable or Disable QuickShell";
};
config = mkIf cfg.enable {
systemd.user.services = {
quickshell = mkService {
Unit.Description = "QuickShell Service";
Service = {
Environment = [
"QSG_RENDER_LOOP=threaded"
# "QT_QUICK_BACKEND=software"
"QT_QPA_PLATFORM=wayland"
"QSG_RENDERER_TIMING=true"
"QML_DISABLE_DISTANCEFIELD=1"
"QT_WAYLAND_DISABLE_WINDOWDECORATION=1"
"QT_QPA_PLATFORMTHEME=qt5ct"
"QT_QPA_REFRESH_RATE=240"
"__GL_SYNC_TO_VBLANK=0"
"LIBGL_ALWAYS_SOFTWARE=0"
"__GL_SYNC_DISPLAY_DEVICE=DP-1" # Adjust this to match your display connection
"QML_ANIMATION_DRIVER=cadence"
"QML_CADENCE_DURATION=4"
"QML_CADENCE_MAX_RENDER_TIME=3.5"
"QSG_RENDERER_USE_THREADED_GL=1"
"QSG_RHI_PREFER_SOFTWARE_RENDERER=0"
"QSG_RHI_FORCE_SYNC=0"
"QSG_INFO=1"
];
ExecStart = ''
${inputs.quickshell.packages.${system}.default}/bin/qs --log-rules 'quickshell.dbus.properties.warning = false;quickshell.dbus.dbusmenu.warning = false;quickshell.service.notifications.warning = false;quickshell.service.sni.host.warning = false'
'';
Restart = "always";
};
};
};
};
}