{ config, lib, pkgs, ... }: with lib; with lib.my; let cfg = config.modules.desktop.gnome; in { options.modules.desktop.gnome = { enable = mkBoolOpt false; }; config = mkIf cfg.enable { services.xserver = { enable = true; displayManager.gdm.enable = true; desktopManager.gnome.enable = true; }; programs.dconf.enable = true; dconf.settings = { "org/gnome/shell" = { favorite-apps = [ "firefox.desktop" "org.gnome.Nautilus.desktop" "org.gnome.Console.desktop" ]; }; "org/gnome/desktop/background" = { picture-uri = "file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/adwaita-l.webp"; picture-uri-dark = "file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/adwaita-d.webp"; }; "org/gtk/settings/file-chooser" = { show-hidden = true; sort-directories-first = true; }; "org/gtk/gtk4/settings/file-chooser" = { show-hidden = true; sort-directories-first = true; }; "org/gnome/settings-daemon/plugins/media-keys" = { volume-up = [ "F12" "XF86AudioRaiseVolume" ]; volume-down = [ "F11" "XF86AudioLowerVolume" ]; }; "org/gnome/gnome-session" = { auto-save-session = true; }; "org/gnome/gnome-system-monitor" = { show-dependencies = true; }; "org/gnome/Console" = { font-scale = 1.4; }; "org/gnome/desktop/interface" = { color-scheme = "prefer-dark"; enable-hot-corners = false; monospace-font-name = "Ubuntu Mono 11"; }; "io.github.celluloid-player.celluloid" = { draggable-video-area-enable = true; }; }; fonts.fonts = with pkgs; [ noto-fonts ubuntu_font_family ]; user.packages = with pkgs; [ celluloid ]; environment.systemPackages = with pkgs; [ bind bmon fd ffmpeg iotop ripgrep rsync tcpdump tokei tree wl-clipboard ]; home.services.gpg-agent.pinentryFlavor = "gnome3"; }; }