{ config, lib, ... }: with lib; let cfg = config.custom.settings.dconf.apps; in { options.custom.settings.dconf.apps.enable = mkOption {default = false;}; config.home-manager.users.${config.custom.username} = mkIf cfg.enable { # https://nix-community.github.io/home-manager/index.xhtml#sec-option-types # https://docs.gtk.org/glib/struct.Variant.html # https://docs.gtk.org/glib/gvariant-format-strings.html #?? dconf watch / dconf.settings = with config.home-manager.users.${config.custom.username}.lib.gvariant; { # BlackBox "com/raggesilver/BlackBox" = { command-as-login-shell = mkBoolean false; context-aware-header-bar = mkBoolean true; cursor-blink-mode = mkUint32 0; cursor-shape = mkUint32 0; delay-before-showing-floating-controls = mkUint32 100; easy-copy-paste = mkBoolean false; fill-tabs = mkBoolean true; floating-controls = mkBoolean true; floating-controls-hover-area = mkUint32 10; font = mkString "${config.custom.font.monospace} 14"; headerbar-drag-area = mkBoolean false; notify-process-completion = mkBoolean false; opacity = mkUint32 100; pretty = mkBoolean false; remember-window-size = mkBoolean true; scrollback-mode = mkUint32 1; scrollbar-mode = mkUint32 1; show-headerbar = mkBoolean false; show-menu-button = mkBoolean false; show-scrollbars = mkBoolean true; style-preference = mkUint32 0; terminal-bell = mkBoolean true; terminal-cell-height = mkDouble 1.0; terminal-cell-width = mkDouble 1.0; theme-bold-is-bright = mkBoolean false; theme-dark = mkString "Solarized Dark"; theme-light = mkString "Solarized Light"; use-custom-command = mkBoolean false; use-overlay-scrolling = mkBoolean true; working-directory-mode = mkUint32 1; #?? (uuuu) terminal-padding = mkTuple [ (mkUint32 4) (mkUint32 4) (mkUint32 4) (mkUint32 4) ]; }; # Dconf Editor "ca/desrt/dconf-editor" = { show-warning = mkBoolean false; }; # EasyEffects "com/github/wwmm/easyeffects/spectrum" = { show = false; }; # GNOME "org/gnome/desktop/interface" = { cursor-blink = mkBoolean false; gtk-enable-primary-paste = mkBoolean false; color-scheme = mkString "prefer-dark"; monospace-font-name = mkString "${config.custom.font.monospace} 14"; }; # GNOME Files "org/gtk/settings/file-chooser" = { show-hidden = mkBoolean true; }; "org/gtk/gtk4/settings/file-chooser" = { show-hidden = mkBoolean true; }; "org/gnome/nautilus/preferences" = { show-create-link = mkBoolean true; show-delete-permanently = mkBoolean true; click-policy = mkString "single"; default-folder-viewer = mkString "list-view"; #?? rm -r ~/.local/share/gvfs-metadata default-sort-order = mkString "type"; }; "org/gnome/nautilus/list-view" = { #?? [as] default-column-order = mkArray type.string [ "name" "type" "size" "owner" "group" "permissions" "where" "date_modified" "date_modified_with_time" "date_accessed" "date_created" "recency" "detailed_type" ]; #?? [as] default-visible-columns = mkArray type.string [ "name" "type" "size" "date_modified" ]; }; # GNOME Terminal "org/gnome/terminal/legacy/profiles:/:8856406f-96d1-4284-8428-2329d2458b55" = { scrollback-unlimited = mkBoolean true; }; # GNOME Text Editor "org/gnome/TextEditor" = { highlight-current-line = mkBoolean true; restore-session = mkBoolean false; show-line-numbers = mkBoolean true; show-map = mkBoolean true; tab-width = mkUint32 2; indent-style = mkString "space"; style-scheme = mkString "solarized-dark"; style-variant = mkString "dark"; # Not exposed in UI # https://gitlab.gnome.org/GNOME/gnome-text-editor/-/commit/416a65af17f6b759721ef4606f7b7805fe7af67a #?? [as] draw-spaces = mkArray type.string [ "space" "tab" "nbsp" "trailing" ]; }; # Virtual Machine Manager "org/virt-manager/virt-manager" = { xmleditor-enabled = mkBoolean true; }; "org/virt-manager/virt-manager/confirm" = { forcepoweroff = mkBoolean false; }; "org/virt-manager/virt-manager/console" = { auto-redirect = mkBoolean false; resize-guest = mkInt32 1; scaling = mkInt32 2; }; "org/virt-manager/virt-manager/new-vm" = { cpu-default = mkString "host-passthrough"; firmware = mkString "uefi"; graphics-type = mkString "spice"; storage-format = mkString "qcow2"; }; "org/virt-manager/virt-manager/stats" = { enable-cpu-poll = mkBoolean false; update-interval = mkInt32 5; }; "org/virt-manager/virt-manager/vmlist-fields" = { cpu-usage = mkBoolean false; }; }; }; }