{ lib, pkgs, ... }: with lib; { imports = [../home.nix]; # Run electron apps under wayland. home.sessionVariables.NIXOS_OZONE_WL = "1"; # Theme QT applications qt = { enable = true; platformTheme.name = "adwaita"; style.name = "adwaita-dark"; }; # Allow fontconfig to discover fonts. fonts.fontconfig.enable = true; # dconf settings dconf = { enable = true; settings = { # Gnome settings. "org/gnome/desktop/interface" = { accent-color = "green"; clock-show-seconds = true; clock-show-weekday = true; color-scheme = "prefer-dark"; enable-hot-corners = false; show-battery-percentage = true; }; "org/gnome/desktop/background" = let wallpaper = pkgs.copyPathToStore ./wallpaper.jpg; in { picture-uri = wallpaper; picture-uri-dark = wallpaper; }; "org/gnome/shell" = { favorite-apps = gvariant.mkEmptyArray (gvariant.type.string); enabled-extensions = with pkgs; [ gnomeExtensions.adw-gtk3-colorizer.extensionUuid gnomeExtensions.alphabetical-app-grid.extensionUuid gnomeExtensions.auto-move-windows.extensionUuid gnomeExtensions.caffeine.extensionUuid gnomeExtensions.color-picker.extensionUuid gnomeExtensions.rounded-window-corners-reborn.extensionUuid gnomeExtensions.smile-complementary-extension.extensionUuid ]; }; "org/gnome/desktop/preferences" = { num-workspaces = gvariant.mkInt32 4; }; "org/gnome/mutter" = { dynamic-workspaces = false; experimental-features = [ "scale-monitor-framebuffer" # Enables fractional scaling (125% 150% 175%) "xwayland-native-scaling" # Scales Xwayland applications to look crisp on HiDPI screens ]; }; "org/gnome/settings-daemon/plugins/color" = { night-light-enabled = true; night-light-schedule-automatic = false; }; "org/gnome/desktop/peripherals/touchpad" = { natural-scroll = false; two-finger-scrolling-enabled = true; }; "org/gnome/desktop/wm/keybindings" = { close = ["q"]; move-to-workspace-1 = ["1"]; move-to-workspace-2 = ["2"]; move-to-workspace-3 = ["3"]; move-to-workspace-4 = ["4"]; switch-to-workspace-1 = ["1"]; switch-to-workspace-2 = ["2"]; switch-to-workspace-3 = ["3"]; switch-to-workspace-4 = ["4"]; toggle-maximized = ["f"]; }; "org/gnome/settings-daemon/plugins/media-keys" = { custom-keybindings = [ "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/" ]; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { name = "Open Emoji Picker"; command = "smile"; binding = "period"; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = { name = "Open Terminal"; command = "ghostty"; binding = "Return"; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2" = { name = "Open Files"; command = "nautilus"; binding = "e"; }; # Applications. "io/github/Foldex/AdwSteamGtk" = { color-theme-options = "Adwaita"; hide-whats-new-switch = false; library-sidebar-options = "Show"; login-qr-options = "Show"; no-rounded-corners-switch = false; prefs-beta-support = false; window-controls-layout-options = "Auto"; window-controls-options = "Adwaita"; }; # Extensions. "org/gnome/shell/extensions/auto-move-windows" = { application-list = ["Fluffychat.desktop:2" "signal.desktop:2" "proton-mail.desktop:2" "feishin.desktop:3" "org.prismlauncher.PrismLauncher.desktop:4" "steam.desktop:4" "discord.desktop:2"]; }; "org/gnome/shell/extensions/alphabetical-app-grid" = { folder-order-position = "start"; }; "org/gnome/shell/extensions/caffeine" = { enable-fullscreen = false; enable-mpris = false; indicator-position = gvariant.mkInt32 0; indicator-position-index = gvariant.mkInt32 0; indicator-position-max = gvariant.mkInt32 4; restore-state = false; show-indicator = "only-active"; }; "org/gnome/shell/extensions/color-picker" = { enable-notify = false; enable-preview = true; enable-shortcut = true; enable-sound = false; enable-systray = false; persistent-mode = false; }; }; }; # Autostart. xdg.autostart = { enable = true; readOnly = true; entries = let smile = pkgs.writeText "smile.desktop" '' [Desktop Entry] Type=Application Name=it.mijorus.smile X-XDP-Autostart=it.mijorus.smile Exec=smile --start-hidden ''; in [ smile "${pkgs.fluffychat}/share/applications/Fluffychat.desktop" "${pkgs.feishin}/share/applications/feishin.desktop" "${pkgs.protonmail-desktop}/share/applications/proton-mail.desktop" "${pkgs.signal-desktop}/share/applications/signal.desktop" ]; }; # Install some packages. home.packages = with pkgs; [ # Gnome. adw-gtk3 adwsteamgtk gnome-tweaks gnomeExtensions.adw-gtk3-colorizer gnomeExtensions.alphabetical-app-grid gnomeExtensions.auto-move-windows gnomeExtensions.caffeine gnomeExtensions.color-picker gnomeExtensions.rounded-window-corners-reborn gnomeExtensions.smile-complementary-extension # Fonts. merriweather iosevka # Dictionary & spellcheck. hunspell hunspellDicts.en_AU # Software. blender caligula celluloid deploy-rs feishin fluffychat fusee-nano gimp3 glabels-qt inkscape jellyfin-media-player libreoffice minipro naps2 ns-usbloader obsidian orca-slicer papers prismlauncher protonmail-desktop rockbox-utility rpi-imager signal-desktop smile via webcord yubioath-flutter ]; # Install and configure software. services.nextcloud-client = { enable = true; startInBackground = true; }; programs = { ghostty = { enable = true; settings = { font-family = "IosevkaCustom"; theme = "Kanagawa Dragon"; }; }; firefox = { enable = true; package = pkgs.librewolf; profiles.default = {}; profiles.default.settings."identity.sync.tokenserver.uri" = "https://fxsync.fern.garden/1.0/sync/1.5"; }; }; }