diff --git a/suites/desktop/default.nix b/suites/desktop/default.nix index b769027..0c2ac86 100755 --- a/suites/desktop/default.nix +++ b/suites/desktop/default.nix @@ -49,16 +49,7 @@ with lib; { ]; displayManager.gdm.enable = true; - - desktopManager.gnome = { - enable = true; - # Enable fractional scaling. - extraGSettingsOverridePackages = [pkgs.mutter]; - extraGSettingsOverrides = '' - [org.gnome.mutter] - experimental-features=['scale-monitor-framebuffer'] - ''; - }; + desktopManager.gnome.enable = true; }; # Theme QT applications @@ -86,6 +77,115 @@ with lib; { # Run electron apps under wayland. environment.sessionVariables.NIXOS_OZONE_WL = "1"; + # dconf settings. + programs.dconf.profiles.user.databases = { + # virt-manager autoconnect. + "org/virt-manager/virt-manager/connections" = { + autoconnect = ["qemu:///system"]; + uris = ["qemu:///system"]; + }; + + # 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 = []; + 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 = 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 = ["m"]; + }; + + "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"; + }; + + # 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"; + }; + }; + # Virtualisation. programs.virt-manager.enable = true; users.groups.libvirtd.members = ["fern"]; diff --git a/suites/desktop/home.nix b/suites/desktop/home.nix index 1c0b2bb..fcd61b8 100644 --- a/suites/desktop/home.nix +++ b/suites/desktop/home.nix @@ -1,4 +1,4 @@ -{ +{pkgs, ...}: { imports = [../home.nix]; # Ghostty settings. @@ -16,12 +16,4 @@ profiles.default = {}; profiles.default.settings."identity.sync.tokenserver.uri" = "https://fxsync.fern.garden/1.0/sync/1.5"; }; - - # virt-manager - autoconnect to qemu. - dconf.settings = { - "org/virt-manager/virt-manager/connections" = { - autoconnect = ["qemu:///system"]; - uris = ["qemu:///system"]; - }; - }; }