{ config, homeLib, hostname, osConfig ? null, pkgs, ... }: let apodSecretEnvironmentFile = if osConfig != null && osConfig ? age && osConfig.age ? secrets && builtins.hasAttr "nasa-api-env" osConfig.age.secrets then "-${osConfig.age.secrets."nasa-api-env".path}" else "-%h/.config/nasa-api.env"; chatDesktopId = if hostname == "framework-work" then "slack.desktop" else "vesktop.desktop"; favoriteApps = [ "zen-beta.desktop" "com.mitchellh.ghostty.desktop" chatDesktopId "betterbird.desktop" ] ++ ( if hostname == "framework-work" then [ ] else [ "signal.desktop" "zulip.desktop" ] ); autoMoveApplications = [ "zen-beta.desktop:1" "com.mitchellh.ghostty.desktop:2" "${chatDesktopId}:3" "betterbird.desktop:4" ] ++ ( if hostname == "framework-work" then [ ] else [ "signal.desktop:5" "zulip.desktop:6" ] ); autostartEntries = [ "${homeLib.zenStartup}/share/applications/zen-startup.desktop" "${homeLib.ghosttyZellijStartup}/share/applications/ghostty-zellij-startup.desktop" ] ++ ( if hostname == "framework-work" then [ "${pkgs.slack}/share/applications/slack.desktop" "${homeLib.betterbirdStartup}/share/applications/betterbird-startup.desktop" ] else [ "${homeLib.vesktopStartup}/share/applications/vesktop-startup.desktop" "${homeLib.betterbirdStartup}/share/applications/betterbird-startup.desktop" "${homeLib.signalStartup}/share/applications/signal-startup.desktop" "${homeLib.zulipStartup}/share/applications/zulip-startup.desktop" ] ); in { dconf.settings = { "org/gnome/desktop/interface" = { clock-format = "12h"; clock-show-weekday = true; color-scheme = "prefer-dark"; cursor-size = 28; cursor-theme = "Adwaita"; document-font-name = "Atkinson Hyperlegible Next 11"; enable-animations = false; enable-hot-corners = false; font-name = "Atkinson Hyperlegible Next 11"; monospace-font-name = "CommitMono Nerd Font 11"; }; "org/gnome/system/location" = { enabled = true; }; "org/gnome/settings-daemon/plugins/power" = { sleep-inactive-ac-type = "nothing"; }; "org/gnome/settings-daemon/plugins/media-keys" = { screensaver = [ "l" ]; }; "org/gnome/desktop/peripherals/touchpad" = { disable-while-typing = false; natural-scroll = true; tap-to-click = true; }; "org/gnome/mutter" = { center-new-windows = true; dynamic-workspaces = false; edge-tiling = true; workspaces-only-on-primary = true; }; "org/gnome/desktop/wm/preferences" = { focus-mode = "click"; num-workspaces = 6; }; "org/gnome/shell" = { disable-user-extensions = false; enabled-extensions = [ "hidetopbar@mathieu.bidon.ca" "wifiqrcode@glerro.pm.me" "system-monitor-next@paradoxxx.zero.gmail.com" "clipboard-indicator@tudmotu.com" "emoji-copy@felipeftn" "tailscale@joaophi.github.com" "auto-move-windows@gnome-shell-extensions.gcampax.github.com" "appindicatorsupport@rgcjonas.gmail.com" "gnome-shell-extension-maximized-by-default@stiggimy.github.com" "no-titlebar-when-maximized@alec.ninja" ]; favorite-apps = favoriteApps; }; "org/gnome/shell/extensions/auto-move-windows" = { application-list = autoMoveApplications; }; "org/gnome/shell/keybindings" = { switch-to-application-1 = [ "1" ]; switch-to-application-2 = [ "2" ]; switch-to-application-3 = [ "3" ]; switch-to-application-4 = [ "4" ]; switch-to-application-5 = [ "5" ]; switch-to-application-6 = [ "6" ]; }; "org/gtk/gtk4/settings/file-chooser" = { show-hidden = true; }; "org/gtk/settings/file-chooser" = { clock-format = "12h"; show-hidden = true; }; }; xdg.desktopEntries.extract-here = { name = "Extract Here"; exec = "file-roller --extract-here %U"; icon = "file-roller"; type = "Application"; categories = [ "Utility" ]; mimeType = [ "application/zip" "application/x-tar" "application/x-compressed-tar" "application/x-bzip-compressed-tar" "application/x-xz-compressed-tar" "application/x-zstd-compressed-tar" "application/gzip" "application/x-7z-compressed" "application/x-rar" "application/x-rar-compressed" ]; noDisplay = true; }; xdg.desktopEntries.betterbird = { name = "Betterbird"; comment = "Mail, RSS and newsgroups client"; exec = "${homeLib.betterbirdLauncher}/bin/betterbird-profile %u"; icon = "betterbird"; terminal = false; type = "Application"; categories = [ "Network" "Email" ]; mimeType = [ "x-scheme-handler/mailto" "message/rfc822" "x-scheme-handler/webcal" "x-scheme-handler/webcals" ]; settings = { StartupNotify = "false"; StartupWMClass = "eu.betterbird.Betterbird"; }; }; xdg.autostart = { enable = true; entries = autostartEntries; }; systemd.user.services.nasa-apod-wallpaper = { Unit = { Description = "Fetch NASA APOD wallpaper"; After = [ "graphical-session.target" ]; PartOf = [ "graphical-session.target" ]; X-RestartIfChanged = false; }; Service = { Type = "oneshot"; ExecStart = "${homeLib.nasaApodWallpaper}/bin/nasa-apod-wallpaper"; EnvironmentFile = apodSecretEnvironmentFile; TimeoutStartSec = "3min"; }; }; systemd.user.timers.nasa-apod-wallpaper = { Unit.Description = "Refresh NASA APOD wallpaper regularly"; Timer = { OnActiveSec = "2m"; OnUnitActiveSec = "1h"; Persistent = false; Unit = "nasa-apod-wallpaper.service"; }; Install.WantedBy = [ "timers.target" ]; }; xdg.mimeApps = { enable = true; defaultApplications = { "text/html" = "zen-beta.desktop"; "x-scheme-handler/http" = "zen-beta.desktop"; "x-scheme-handler/https" = "zen-beta.desktop"; "x-scheme-handler/about" = "zen-beta.desktop"; "x-scheme-handler/unknown" = "zen-beta.desktop"; "x-scheme-handler/mailto" = "betterbird.desktop"; "inode/directory" = "org.gnome.Nautilus.desktop"; "application/zip" = "org.gnome.FileRoller.desktop"; "application/x-tar" = "org.gnome.FileRoller.desktop"; "application/x-compressed-tar" = "org.gnome.FileRoller.desktop"; "application/x-bzip-compressed-tar" = "org.gnome.FileRoller.desktop"; "application/x-xz-compressed-tar" = "org.gnome.FileRoller.desktop"; "application/x-zstd-compressed-tar" = "org.gnome.FileRoller.desktop"; "application/gzip" = "org.gnome.FileRoller.desktop"; "application/x-7z-compressed" = "org.gnome.FileRoller.desktop"; "application/x-rar" = "org.gnome.FileRoller.desktop"; "application/x-rar-compressed" = "org.gnome.FileRoller.desktop"; }; }; }