dotfiles

My PC Dotfiles & Website
commit 2cea06eeaf3e599a965f328240ba62a448bc6dcb
parent 95916151ef7936bedfc44a420c2687874ead9543
Author: maydayv7 <maydayv7@gmail.com>
Date:   Sun, 21 Jan 2024 14:23:17 +0530

refactor: GNOME `dconf` Settings

Also update `flatpak` input

Diffstat:

MREADME.md | 1+
Mfiles/flake.nix | 2+-
Dfiles/gnome/dconf/default.nix | 193-------------------------------------------------------------------------------
Dfiles/gnome/dconf/extensions.nix | 351-------------------------------------------------------------------------------
Rfiles/gnome/dconf/apps.nix -> files/gnome/settings/apps.nix | 0
Afiles/gnome/settings/default.nix | 194+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Afiles/gnome/settings/extensions.nix | 406+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mfiles/pantheon/dconf.nix | 3++-
Mflake.lock | 6+++---
Mmodules/gui/desktop/gnome.nix | 41++++++++---------------------------------
10 files changed, 615 insertions(+), 582 deletions(-)

diff --git a/README.md b/README.md @@ -378,6 +378,7 @@ _Thanks a lot! ;)_ - Example [Configuration](https://github.com/srid/nixos-flake) - User Configurations - + - [4JX](https://github.com/4JX/nixos-config) - [balsoft](https://code.balsoft.ru/balsoft/nixos-config) - [bbigras](https://github.com/bbigras/nix-config) - [cole-h](https://github.com/cole-h/nixos-config/) diff --git a/files/flake.nix b/files/flake.nix @@ -45,8 +45,8 @@ # GNOME Desktop gnome = { - dconf = ./gnome/dconf; iso = readFile ./gnome/iso; + settings = ./gnome/settings; shell = readFile ./gnome/shell.css; tiling = readFile ./gnome/tiling.css; } diff --git a/files/gnome/dconf/default.nix b/files/gnome/dconf/default.nix @@ -1,193 +0,0 @@ -{ - sys, - lib, - util, - ... -}: -with lib.hm.gvariant; let - fonts = sys.fonts.fontconfig.defaultFonts; -in { - imports = util.map.modules.list ./.; - - ## Dconf Keys ## - # Generated via dconf2nix: https://github.com/gvolpe/dconf2nix - dconf.settings = { - # Keyboard Shortcuts - "org/gnome/desktop/wm/keybindings" = { - begin-move = []; - begin-resize = []; - close = ["<Super>q" "<Alt>F4"]; - cycle-group = []; - cycle-group-backward = []; - maximize = ["<Super>Up"]; - minimize = ["<Super>Down"]; - move-to-monitor-down = []; - move-to-monitor-left = ["<Shift><Super>Left"]; - move-to-monitor-right = ["<Shift><Super>Right"]; - move-to-monitor-up = []; - move-to-workspace-1 = []; - move-to-workspace-down = []; - move-to-workspace-last = []; - move-to-workspace-left = ["<Primary><Super>Left"]; - move-to-workspace-right = ["<Primary><Super>Right"]; - move-to-workspace-up = []; - panel-main-menu = []; - panel-run-dialog = ["<Super>F2"]; - switch-applications = ["<Alt>Tab"]; - switch-applications-backward = ["<Shift><Alt>Tab"]; - switch-group = ["<Super>Tab"]; - switch-group-backward = ["<Shift><Super>Tab"]; - switch-to-workspace-down = []; - switch-to-workspace-left = ["<Super>Left"]; - switch-to-workspace-right = ["<Super>Right"]; - switch-to-workspace-up = []; - toggle-maximized = ["F11"]; - unmaximize = []; - }; - - "org/gnome/mutter/keybindings" = { - toggle-tiled-left = []; - toggle-tiled-right = []; - }; - - "org/gnome/shell/keybindings" = { - focus-active-notification = []; - open-application-menu = []; - switch-to-application-1 = ["<Super>1"]; - switch-to-application-2 = ["<Super>2"]; - switch-to-application-3 = ["<Super>3"]; - switch-to-application-4 = ["<Super>4"]; - switch-to-application-5 = ["<Super>5"]; - switch-to-application-6 = ["<Super>6"]; - switch-to-application-7 = ["<Super>7"]; - switch-to-application-8 = ["<Super>8"]; - switch-to-application-9 = ["<Super>9"]; - toggle-application-view = []; - toggle-message-tray = []; - toggle-overview = []; - }; - - "org/gnome/settings-daemon/plugins/media-keys" = { - area-screenshot = ["Print"]; - area-screenshot-clip = []; - control-center = ["<Super>i"]; - email = ["<Super>e"]; - home = ["<Super>f"]; - magnifier = ["<Super>x"]; - magnifier-zoom-in = ["<Super>equal"]; - magnifier-zoom-out = ["<Super>minus"]; - rotate-video-lock-static = []; - screencast = ["<Alt>Print"]; - screenreader = []; - screenshot = ["<Shift>Print"]; - screenshot-clip = []; - screensaver = ["<Super>l"]; - terminal = ["<Super>t"]; - volume-down = ["AudioLowerVolume"]; - volume-up = ["AudioRaiseVolume"]; - window-screenshot = ["<Primary>Print"]; - window-screenshot-clip = []; - www = ["<Super>grave"]; - 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/custom0" = { - binding = "<Primary><Alt>Return"; - command = "gnome-system-monitor"; - name = "Task Manager"; - }; - - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = { - binding = "<Super>t"; - command = "blackbox"; - name = "Terminal"; - }; - - "org/gnome/desktop/wm/preferences" = { - button-layout = "appmenu:minimize,maximize,close"; - titlebar-font = "${builtins.head fonts.sansSerif} Bold 11"; - visual-bell = false; - }; - - # Core Settings - "org/gnome/desktop/a11y".always-show-universal-access-status = true; - "org/gnome/desktop/a11y/applications".screen-magnifier-enabled = false; - - "org/gnome/mutter" = { - attach-modal-dialogs = true; - center-new-windows = true; - dynamic-workspaces = true; - edge-tiling = true; - focus-change-on-pointer-rest = true; - workspaces-only-on-primary = true; - }; - - "org/gnome/desktop/interface" = { - color-scheme = "prefer-dark"; - clock-show-weekday = true; - enable-animations = true; - enable-hot-corners = true; - font-antialiasing = "grayscale"; - font-hinting = "slight"; - gtk-im-module = "gtk-im-context-simple"; - locate-pointer = true; - show-battery-percentage = true; - toolkit-accessibility = false; - }; - - "org/gnome/desktop/peripherals/touchpad" = { - click-method = "areas"; - tap-to-click = true; - two-finger-scrolling-enabled = true; - }; - - "org/gnome/settings-daemon/plugins/power" = { - power-button-action = "interactive"; - sleep-inactive-ac-type = "nothing"; - sleep-inactive-battery-timeout = 1800; - }; - - "org/gnome/settings-daemon/plugins/color" = { - night-light-enabled = true; - night-light-schedule-automatic = false; - night-light-schedule-from = 19.0; - night-light-schedule-to = 7.0; - night-light-temperature = mkUint32 3700; - }; - - "org/gnome/desktop/a11y/magnifier" = { - cross-hairs-clip = true; - cross-hairs-color = "#15519a"; - cross-hairs-length = 1440; - cross-hairs-opacity = 1.0; - mouse-tracking = "proportional"; - show-cross-hairs = true; - }; - - "org/gnome/desktop/privacy" = { - disable-microphone = false; - old-files-age = mkUint32 7; - remember-recent-files = false; - remove-old-temp-files = true; - remove-old-trash-files = true; - }; - - "org/gnome/desktop/sound" = { - allow-volume-above-100-percent = true; - event-sounds = true; - theme-name = "__custom"; - }; - - "org/gnome/desktop/screensaver" = { - color-shading-type = "solid"; - lock-delay = mkUint32 0; - lock-enabled = false; - picture-options = "zoom"; - primary-color = "#000000000000"; - secondary-color = "#000000000000"; - }; - }; -} diff --git a/files/gnome/dconf/extensions.nix b/files/gnome/dconf/extensions.nix @@ -1,351 +0,0 @@ -{ - config, - sys, - lib, - files, - ... -}: -with lib.hm.gvariant; let - homeDir = config.home.homeDirectory; - font = builtins.head sys.fonts.fontconfig.defaultFonts.sansSerif; -in { - # Shell Extensions - dconf.settings = { - "org/gnome/shell" = { - disable-user-extensions = false; - disable-extension-version-validation = true; - disabled-extensions = ["workspace-indicator@gnome-shell-extensions.gcampax.github.com"]; - enabled-extensions = [ - "alttab-mod@leleat-on-github" - "appindicatorsupport@rgcjonas.gmail.com" - "auto-activities@CleoMenezesJr.github.io" - "caffeine@patapon.info" - "drive-menu@gnome-shell-extensions.gcampax.github.com" - "emoji-copy@felipeftn" - "forge@jmmaranan.com" - "fullscreen-avoider@noobsai.github.com" - "gmind@tungstnballon.gitlab.com" - "guillotine@fopdoodle.net" - "langTray@a7medkhalaf" - "lockkeys@vaina.lt" - "overviewhover@mattdavis90" - "pano@elhan.io" - "quick-settings-avatar@d-go" - "Shortcuts@kyle.aims.ac.za" - "status-area-horizontal-spacing@mathematical.coffee.gmail.com" - "top-bar-organizer@julian.gse.jsts.xyz" - "transparent-top-bar@zhanghai.me" - "user-theme@gnome-shell-extensions.gcampax.github.com" - "vertical-workspaces@G-dH.github.com" - "Vitals@CoreCoding.com" - "windowgestures@extension.amarullz.com" - "window-title-is-back@fthx" - ]; - }; - - "org/gnome/shell/extensions/top-bar-organizer" = { - center-box-order = ["dateMenu"]; - left-box-order = [ - "activities" - "guillotine" - "guillotine@fopdoodle.net" - "appMenu" - ]; - - right-box-order = [ - "emoji-copy@felipeftn" - "a11y" - "aggregateMenu" - "drive-menu" - "pano@elhan.io" - "vitalsMenu" - "dwellClick" - "lockkeys" - "keyboard" - "screenSharing" - "screenRecording" - "quickSettings" - ]; - }; - - "org/gnome/shell/extensions/lockkeys".style = "show-hide"; - "org/gnome/shell/extensions/status-area-horizontal-spacing".hpadding = 4; - "org/gnome/shell/extensions/user-theme".name = lib.mkForce "custom"; - - "org/gnome/shell/extensions/fullscreen-avoider" = { - move-hot-corners = true; - move-notifications = true; - }; - - "org/gnome/shell/extensions/window-title-is-back" = { - colored-icon = true; - show-title = false; - }; - - "org/gnome/shell/extensions/quick-settings-avatar" = { - avatar-position = 1; - avatar-realname = false; - avatar-size = 56; - }; - - "org/gnome/shell/extensions/vitals" = { - hot-sensors = ["_default_icon_"]; - show-battery = true; - show-storage = false; - }; - - "org/gnome/shell/extensions/altTab-mod" = { - current-monitor-only = true; - current-monitor-only-window = true; - current-workspace-only = true; - disable-hover-select = false; - focus-on-select-window = true; - remove-delay = true; - }; - - "org/gnome/shell/extensions/auto-activities" = { - detect-minimized = true; - hide-on-new-window = true; - show-apps = false; - skip-last-workspace = true; - skip-taskbar = true; - }; - - "org/gnome/shell/extensions/caffeine" = { - indicator-position = 0; - inhibit-apps = ["teams.desktop" "startcenter.desktop"]; - nightlight-control = "never"; - show-indicator = "always"; - show-notifications = false; - }; - - "org/gnome/shell/extensions/emoji-copy" = { - always-show = false; - emoji-keybinding = ["<Super>period"]; - paste-on-select = true; - use-keybinding = true; - }; - - "org/gnome/shell/extensions/shortcuts" = { - maxcolumns = 3; - shortcuts-file = files.gnome.shortcuts; - shortcuts-toggle-overview = ["<Super>slash"]; - use-custom-shortcuts = true; - use-transparency = true; - visibility = 50; - }; - - "org/gnome/shell/extensions/pano" = { - database-location = "${homeDir}/.local/share/clipboard"; - global-shortcut = ["<Super>v"]; - history-length = 250; - incognito-shortcut = ["<Ctrl><Super>v"]; - play-audio-on-copy = false; - send-notification-on-copy = false; - window-position = mkUint32 2; - item-date-font-family = font; - item-date-font-size = 11; - item-title-font-family = font; - item-title-font-size = 20; - search-bar-font-family = font; - search-bar-font-size = 14; - }; - - "org/gnome/shell/extensions/forge" = { - auto-split-enabled = true; - focus-border-toggle = true; - stacked-tiling-mode-enabled = true; - tabbed-tiling-mode-enabled = true; - tiling-mode-enabled = false; - window-gap-hidden-on-single = false; - }; - - "org/gnome/shell/extensions/forge/keybindings" = { - con-split-horizontal = []; - con-split-layout-toggle = []; - con-split-vertical = []; - con-stacked-layout-toggle = ["<Shift><Super>s"]; - con-tabbed-layout-toggle = ["<Shift><Super>t"]; - con-tabbed-showtab-decoration-toggle = []; - focus-border-toggle = []; - mod-mask-mouse-tile = "Super"; - prefs-open = []; - prefs-tiling-toggle = ["<Super>z"]; - window-focus-down = ["<Super>s"]; - window-focus-left = ["<Super>a"]; - window-focus-right = ["<Super>d"]; - window-focus-up = ["<Super>w"]; - window-gap-size-decrease = ["<Primary><Super>minus"]; - window-gap-size-increase = ["<Primary><Super>plus"]; - window-move-down = ["<Primary><Super>s"]; - window-move-left = ["<Primary><Super>a"]; - window-move-right = ["<Primary><Super>d"]; - window-move-up = ["<Primary><Super>w"]; - window-resize-bottom-decrease = ["<Alt><Primary><Super>Down"]; - window-resize-bottom-increase = ["<Alt><Super>Down"]; - window-resize-left-decrease = ["<Alt><Primary><Super>Left"]; - window-resize-left-increase = ["<Alt><Super>Left"]; - window-resize-right-decrease = ["<Alt><Primary><Super>Right"]; - window-resize-right-increase = ["<Alt><Super>Right"]; - window-resize-top-decrease = ["<Alt><Primary><Super>Up"]; - window-resize-top-increase = ["<Alt><Super>Up"]; - window-snap-center = ["<Super>c"]; - window-snap-one-third-left = []; - window-snap-one-third-right = []; - window-snap-two-third-left = []; - window-snap-two-third-right = []; - window-swap-down = ["<Shift><Super>s"]; - window-swap-last-active = []; - window-swap-left = ["<Shift><Super>a"]; - window-swap-right = ["<Shift><Super>d"]; - window-swap-up = ["<Shift><Super>w"]; - window-toggle-always-float = []; - window-toggle-float = ["<Shift><Super>F"]; - workspace-active-tile-toggle = ["<Shift><Super>z"]; - }; - - "org/gnome/shell/extensions/windowgestures" = { - fn-fullscreen = true; - fn-maximized-snap = true; - fn-move = true; - fn-move-snap = true; - fn-resize = true; - pinch-enable = true; - pinch3-in = 0; - pinch3-out = 0; - pinch4-in = 14; - pinch4-out = 3; - swipe3-down = 1; - swipe4-updown = 22; - taphold-move = true; - three-finger = false; - use-active-window = true; - }; - - "org/gnome/shell/extensions/vertical-workspaces" = { - aaa-loading-profile = true; - always-activate-selected-window = false; - animation-speed-factor = 120; - app-display-module = true; - app-favorites-module = true; - app-folder-order = 2; - app-grid-active-preview = false; - app-grid-animation = 3; - app-grid-bg-blur-sigma = 40; - app-grid-columns = 0; - app-grid-content = 4; - app-grid-folder-center = true; - app-grid-folder-columns = 0; - app-grid-folder-icon-grid = 2; - app-grid-folder-icon-size = -1; - app-grid-folder-rows = 0; - app-grid-icon-size = -1; - app-grid-incomplete-pages = false; - app-grid-names = 1; - app-grid-order = 1; - app-grid-page-width-scale = 90; - app-grid-performance = true; - app-grid-rows = 0; - app-grid-spacing = 12; - center-app-grid = true; - center-search = true; - close-ws-button-mode = 2; - dash-bg-color = 0; - dash-bg-gs3-style = false; - dash-bg-opacity = 35; - dash-bg-radius = 0; - dash-icon-scroll = 1; - dash-isolate-workspaces = true; - dash-max-icon-size = 64; - dash-module = true; - dash-position = 2; - dash-position-adjust = 0; - dash-show-extensions-icon = 0; - dash-show-recent-files-icon = 0; - dash-show-windows-before-activation = 1; - dash-show-windows-icon = 2; - enable-page-shortcuts = false; - extensions-search-provider-module = true; - favorites-notify = 1; - hot-corner-action = 1; - hot-corner-fullscreen = false; - hot-corner-position = 1; - hot-corner-ripples = true; - layout-module = true; - message-tray-module = true; - new-window-focus-fix = false; - notification-position = 2; - osd-position = 7; - osd-window-module = true; - overlay-key-module = true; - overlay-key-primary = 1; - overlay-key-secondary = 1; - overview-bg-blur-sigma = 50; - overview-bg-brightness = 50; - overview-esc-behavior = 1; - overview-mode = 1; - panel-module = true; - panel-position = 0; - panel-visibility = 0; - recent-files-search-provider-module = false; - running-dot-style = 1; - search-bg-brightness = 30; - search-controller-module = true; - search-fuzzy = true; - search-icon-size = 96; - search-max-results-rows = 5; - search-module = true; - search-view-animation = 5; - search-width-scale = 120; - search-windows-icon-scroll = 1; - search-windows-order = 1; - sec-wst-position-adjust = 0; - secondary-ws-preview-scale = 100; - secondary-ws-preview-shift = false; - secondary-ws-thumbnail-scale = 5; - secondary-ws-thumbnails-position = 2; - show-app-icon-position = 0; - show-bg-in-overview = true; - show-search-entry = true; - show-ws-preview-bg = false; - show-ws-switcher-bg = false; - show-wst-labels = 2; - show-wst-labels-on-hover = true; - smooth-blur-transitions = true; - startup-state = 2; - swipe-tracker-module = false; - win-attention-handler-module = true; - win-preview-icon-size = 0; - win-preview-mid-mouse-btn-action = 3; - win-preview-sec-mouse-btn-action = 1; - win-preview-show-close-button = true; - win-title-position = 0; - window-attention-mode = 0; - window-icon-click-action = 1; - window-manager-module = true; - window-preview-module = true; - window-search-provider-module = true; - window-thumbnail-module = true; - window-thumbnail-scale = 20; - workspace-animation = 1; - workspace-animation-module = true; - workspace-module = true; - workspace-switcher-animation = 1; - workspace-switcher-popup-module = true; - ws-max-spacing = 80; - ws-preview-bg-radius = 30; - ws-preview-scale = 100; - ws-sw-popup-h-position = 44; - ws-sw-popup-mode = 0; - ws-sw-popup-v-position = 95; - ws-switcher-ignore-last = false; - ws-switcher-mode = 0; - ws-switcher-wraparound = true; - ws-thumbnail-scale = 8; - ws-thumbnail-scale-appgrid = 13; - ws-thumbnails-full = false; - ws-thumbnails-position = 5; - wst-position-adjust = 0; - }; - }; -} diff --git a/files/gnome/dconf/apps.nix b/files/gnome/settings/apps.nix diff --git a/files/gnome/settings/default.nix b/files/gnome/settings/default.nix @@ -0,0 +1,194 @@ +{ + sys, + lib, + util, + ... +}: +with lib.hm.gvariant; let + fonts = sys.fonts.fontconfig.defaultFonts; +in { + imports = util.map.modules.list ./.; + + ## Dconf Keys ## + # Generated via gvolpe/dconf2nix + # Use 'dconf watch /' to record changes + dconf.settings = { + # Keyboard Shortcuts + "org/gnome/desktop/wm/keybindings" = { + begin-move = []; + begin-resize = []; + close = ["<Super>q" "<Alt>F4"]; + cycle-group = []; + cycle-group-backward = []; + maximize = ["<Super>Up"]; + minimize = ["<Super>Down"]; + move-to-monitor-down = []; + move-to-monitor-left = ["<Shift><Super>Left"]; + move-to-monitor-right = ["<Shift><Super>Right"]; + move-to-monitor-up = []; + move-to-workspace-1 = []; + move-to-workspace-down = []; + move-to-workspace-last = []; + move-to-workspace-left = ["<Primary><Super>Left"]; + move-to-workspace-right = ["<Primary><Super>Right"]; + move-to-workspace-up = []; + panel-main-menu = []; + panel-run-dialog = ["<Super>F2"]; + switch-applications = ["<Alt>Tab"]; + switch-applications-backward = ["<Shift><Alt>Tab"]; + switch-group = ["<Super>Tab"]; + switch-group-backward = ["<Shift><Super>Tab"]; + switch-to-workspace-down = []; + switch-to-workspace-left = ["<Super>Left"]; + switch-to-workspace-right = ["<Super>Right"]; + switch-to-workspace-up = []; + toggle-maximized = ["F11"]; + unmaximize = []; + }; + + "org/gnome/mutter/keybindings" = { + toggle-tiled-left = []; + toggle-tiled-right = []; + }; + + "org/gnome/shell/keybindings" = { + focus-active-notification = []; + open-application-menu = []; + switch-to-application-1 = ["<Super>1"]; + switch-to-application-2 = ["<Super>2"]; + switch-to-application-3 = ["<Super>3"]; + switch-to-application-4 = ["<Super>4"]; + switch-to-application-5 = ["<Super>5"]; + switch-to-application-6 = ["<Super>6"]; + switch-to-application-7 = ["<Super>7"]; + switch-to-application-8 = ["<Super>8"]; + switch-to-application-9 = ["<Super>9"]; + toggle-application-view = []; + toggle-message-tray = []; + toggle-overview = []; + }; + + "org/gnome/settings-daemon/plugins/media-keys" = { + area-screenshot = ["Print"]; + area-screenshot-clip = []; + control-center = ["<Super>i"]; + email = ["<Super>e"]; + home = ["<Super>f"]; + magnifier = ["<Super>x"]; + magnifier-zoom-in = ["<Super>equal"]; + magnifier-zoom-out = ["<Super>minus"]; + rotate-video-lock-static = []; + screencast = ["<Alt>Print"]; + screenreader = []; + screenshot = ["<Shift>Print"]; + screenshot-clip = []; + screensaver = ["<Super>l"]; + terminal = ["<Super>t"]; + volume-down = ["AudioLowerVolume"]; + volume-up = ["AudioRaiseVolume"]; + window-screenshot = ["<Primary>Print"]; + window-screenshot-clip = []; + www = ["<Super>grave"]; + 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/custom0" = { + binding = "<Primary><Alt>Return"; + command = "gnome-system-monitor"; + name = "Task Manager"; + }; + + "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = { + binding = "<Super>t"; + command = "blackbox"; + name = "Terminal"; + }; + + "org/gnome/desktop/wm/preferences" = { + button-layout = "appmenu:minimize,maximize,close"; + titlebar-font = "${builtins.head fonts.sansSerif} Bold 11"; + visual-bell = false; + }; + + # Core Settings + "org/gnome/desktop/a11y".always-show-universal-access-status = true; + "org/gnome/desktop/a11y/applications".screen-magnifier-enabled = false; + + "org/gnome/mutter" = { + attach-modal-dialogs = true; + center-new-windows = true; + dynamic-workspaces = true; + edge-tiling = true; + focus-change-on-pointer-rest = true; + workspaces-only-on-primary = true; + }; + + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + clock-show-weekday = true; + enable-animations = true; + enable-hot-corners = true; + font-antialiasing = "grayscale"; + font-hinting = "slight"; + gtk-im-module = "gtk-im-context-simple"; + locate-pointer = true; + show-battery-percentage = true; + toolkit-accessibility = false; + }; + + "org/gnome/desktop/peripherals/touchpad" = { + click-method = "areas"; + tap-to-click = true; + two-finger-scrolling-enabled = true; + }; + + "org/gnome/settings-daemon/plugins/power" = { + power-button-action = "interactive"; + sleep-inactive-ac-type = "nothing"; + sleep-inactive-battery-timeout = 1800; + }; + + "org/gnome/settings-daemon/plugins/color" = { + night-light-enabled = true; + night-light-schedule-automatic = false; + night-light-schedule-from = 19.0; + night-light-schedule-to = 7.0; + night-light-temperature = mkUint32 3700; + }; + + "org/gnome/desktop/a11y/magnifier" = { + cross-hairs-clip = true; + cross-hairs-color = "#15519a"; + cross-hairs-length = 1440; + cross-hairs-opacity = 1.0; + mouse-tracking = "proportional"; + show-cross-hairs = true; + }; + + "org/gnome/desktop/privacy" = { + disable-microphone = false; + old-files-age = mkUint32 7; + remember-recent-files = false; + remove-old-temp-files = true; + remove-old-trash-files = true; + }; + + "org/gnome/desktop/sound" = { + allow-volume-above-100-percent = true; + event-sounds = true; + theme-name = "__custom"; + }; + + "org/gnome/desktop/screensaver" = { + color-shading-type = "solid"; + lock-delay = mkUint32 0; + lock-enabled = false; + picture-options = "zoom"; + primary-color = "#000000000000"; + secondary-color = "#000000000000"; + }; + }; +} diff --git a/files/gnome/settings/extensions.nix b/files/gnome/settings/extensions.nix @@ -0,0 +1,406 @@ +{ + config, + sys, + lib, + pkgs, + files, + ... +}: let + inherit (builtins) filter hasAttr head map; + inherit (lib) foldr hm mapAttrs' mkForce nameValuePair recursiveUpdate; + homeDir = config.home.homeDirectory; + font = head sys.fonts.fontconfig.defaultFonts.sansSerif; + + # Shell Extensions + extensions = with pkgs.gnomeExtensions // hm.gvariant; [ + {package = appindicator;} + {package = gamemode-indicator-in-system-settings;} + {package = guillotine;} + {package = overview-hover;} + {package = transparent-top-bar;} + {package = xlanguagetray;} + { + package = workspace-indicator; + disable = true; + } + { + package = top-bar-organizer; + settings = { + center-box-order = ["dateMenu"]; + left-box-order = [ + "activities" + "guillotine" + "guillotine@fopdoodle.net" + "appMenu" + ]; + + right-box-order = [ + "emoji-copy@felipeftn" + "a11y" + "aggregateMenu" + "drive-menu" + "pano@elhan.io" + "vitalsMenu" + "dwellClick" + "lockkeys" + "keyboard" + "screenSharing" + "screenRecording" + "quickSettings" + ]; + }; + } + { + package = lock-keys; + name = "lockkeys"; + settings.style = "show-hide"; + } + { + package = status-area-horizontal-spacing; + settings.hpadding = 4; + } + { + package = user-themes; + name = "user-theme"; + settings.name = mkForce "custom"; + } + { + package = fullscreen-avoider; + settings = { + move-hot-corners = true; + move-notifications = true; + }; + } + { + package = window-title-is-back; + settings = { + colored-icon = true; + show-title = false; + }; + } + { + package = user-avatar-in-quick-settings; + name = "quick-settings-avatar"; + settings = { + avatar-position = 1; + avatar-realname = false; + avatar-size = 56; + }; + } + { + package = vitals; + settings = { + hot-sensors = ["_default_icon_"]; + show-battery = true; + show-storage = false; + }; + } + { + package = alttab-mod; + name = "altTab-mod"; + settings = { + current-monitor-only = true; + current-monitor-only-window = true; + current-workspace-only = true; + disable-hover-select = false; + focus-on-select-window = true; + remove-delay = true; + }; + } + { + package = auto-activities; + settings = { + detect-minimized = true; + hide-on-new-window = true; + show-apps = false; + skip-last-workspace = true; + skip-taskbar = true; + }; + } + { + package = caffeine; + settings = { + indicator-position = 0; + inhibit-apps = ["startcenter.desktop"]; + nightlight-control = "never"; + show-indicator = "always"; + show-notifications = false; + }; + } + { + package = emoji-copy; + settings = { + always-show = false; + emoji-keybinding = ["<Super>period"]; + paste-on-select = true; + use-keybinding = true; + }; + } + { + package = shortcuts; + settings = { + maxcolumns = 3; + shortcuts-file = files.gnome.shortcuts; + shortcuts-toggle-overview = ["<Super>slash"]; + use-custom-shortcuts = true; + use-transparency = true; + visibility = 50; + }; + } + { + package = pano; + settings = { + database-location = "${homeDir}/.local/share/clipboard"; + global-shortcut = ["<Super>v"]; + history-length = 250; + incognito-shortcut = ["<Ctrl><Super>v"]; + play-audio-on-copy = false; + send-notification-on-copy = false; + window-position = mkUint32 2; + item-date-font-family = font; + item-date-font-size = 11; + item-title-font-family = font; + item-title-font-size = 20; + search-bar-font-family = font; + search-bar-font-size = 14; + }; + } + { + package = forge; + settings = + { + auto-split-enabled = true; + focus-border-toggle = true; + stacked-tiling-mode-enabled = true; + tabbed-tiling-mode-enabled = true; + tiling-mode-enabled = false; + window-gap-hidden-on-single = false; + } + // mapAttrs' (name: value: + nameValuePair "keybindings/${name}" value) { + con-split-horizontal = []; + con-split-layout-toggle = []; + con-split-vertical = []; + con-stacked-layout-toggle = ["<Shift><Super>s"]; + con-tabbed-layout-toggle = ["<Shift><Super>t"]; + con-tabbed-showtab-decoration-toggle = []; + focus-border-toggle = []; + mod-mask-mouse-tile = "Super"; + prefs-open = []; + prefs-tiling-toggle = ["<Super>z"]; + window-focus-down = ["<Super>s"]; + window-focus-left = ["<Super>a"]; + window-focus-right = ["<Super>d"]; + window-focus-up = ["<Super>w"]; + window-gap-size-decrease = ["<Primary><Super>minus"]; + window-gap-size-increase = ["<Primary><Super>plus"]; + window-move-down = ["<Primary><Super>s"]; + window-move-left = ["<Primary><Super>a"]; + window-move-right = ["<Primary><Super>d"]; + window-move-up = ["<Primary><Super>w"]; + window-resize-bottom-decrease = ["<Alt><Primary><Super>Down"]; + window-resize-bottom-increase = ["<Alt><Super>Down"]; + window-resize-left-decrease = ["<Alt><Primary><Super>Left"]; + window-resize-left-increase = ["<Alt><Super>Left"]; + window-resize-right-decrease = ["<Alt><Primary><Super>Right"]; + window-resize-right-increase = ["<Alt><Super>Right"]; + window-resize-top-decrease = ["<Alt><Primary><Super>Up"]; + window-resize-top-increase = ["<Alt><Super>Up"]; + window-snap-center = ["<Super>c"]; + window-snap-one-third-left = []; + window-snap-one-third-right = []; + window-snap-two-third-left = []; + window-snap-two-third-right = []; + window-swap-down = ["<Shift><Super>s"]; + window-swap-last-active = []; + window-swap-left = ["<Shift><Super>a"]; + window-swap-right = ["<Shift><Super>d"]; + window-swap-up = ["<Shift><Super>w"]; + window-toggle-always-float = []; + window-toggle-float = ["<Shift><Super>F"]; + workspace-active-tile-toggle = ["<Shift><Super>z"]; + }; + } + { + package = window-gestures; + name = "windowgestures"; + settings = { + fn-fullscreen = true; + fn-maximized-snap = true; + fn-move = true; + fn-move-snap = true; + fn-resize = true; + pinch-enable = true; + pinch3-in = 0; + pinch3-out = 0; + pinch4-in = 14; + pinch4-out = 3; + swipe3-down = 1; + swipe4-updown = 22; + taphold-move = true; + three-finger = false; + use-active-window = true; + }; + } + { + package = vertical-workspaces; + settings = { + aaa-loading-profile = true; + always-activate-selected-window = false; + animation-speed-factor = 120; + app-display-module = true; + app-favorites-module = true; + app-folder-order = 2; + app-grid-active-preview = false; + app-grid-animation = 3; + app-grid-bg-blur-sigma = 40; + app-grid-columns = 0; + app-grid-content = 4; + app-grid-folder-center = true; + app-grid-folder-columns = 0; + app-grid-folder-icon-grid = 2; + app-grid-folder-icon-size = -1; + app-grid-folder-rows = 0; + app-grid-icon-size = -1; + app-grid-incomplete-pages = false; + app-grid-names = 1; + app-grid-order = 1; + app-grid-page-width-scale = 90; + app-grid-performance = true; + app-grid-rows = 0; + app-grid-spacing = 12; + center-app-grid = true; + center-search = true; + close-ws-button-mode = 2; + dash-bg-color = 0; + dash-bg-gs3-style = false; + dash-bg-opacity = 35; + dash-bg-radius = 0; + dash-icon-scroll = 1; + dash-isolate-workspaces = true; + dash-max-icon-size = 64; + dash-module = true; + dash-position = 2; + dash-position-adjust = 0; + dash-show-extensions-icon = 0; + dash-show-recent-files-icon = 0; + dash-show-windows-before-activation = 1; + dash-show-windows-icon = 2; + enable-page-shortcuts = false; + extensions-search-provider-module = true; + favorites-notify = 1; + hot-corner-action = 1; + hot-corner-fullscreen = false; + hot-corner-position = 1; + hot-corner-ripples = true; + layout-module = true; + message-tray-module = true; + new-window-focus-fix = false; + notification-position = 2; + osd-position = 7; + osd-window-module = true; + overlay-key-module = true; + overlay-key-primary = 1; + overlay-key-secondary = 1; + overview-bg-blur-sigma = 50; + overview-bg-brightness = 50; + overview-esc-behavior = 1; + overview-mode = 1; + panel-module = true; + panel-position = 0; + panel-visibility = 0; + recent-files-search-provider-module = false; + running-dot-style = 1; + search-bg-brightness = 30; + search-controller-module = true; + search-fuzzy = true; + search-icon-size = 96; + search-max-results-rows = 5; + search-module = true; + search-view-animation = 5; + search-width-scale = 120; + search-windows-icon-scroll = 1; + search-windows-order = 1; + sec-wst-position-adjust = 0; + secondary-ws-preview-scale = 100; + secondary-ws-preview-shift = false; + secondary-ws-thumbnail-scale = 5; + secondary-ws-thumbnails-position = 2; + show-app-icon-position = 0; + show-bg-in-overview = true; + show-search-entry = true; + show-ws-preview-bg = false; + show-ws-switcher-bg = false; + show-wst-labels = 2; + show-wst-labels-on-hover = true; + smooth-blur-transitions = true; + startup-state = 2; + swipe-tracker-module = false; + win-attention-handler-module = true; + win-preview-icon-size = 0; + win-preview-mid-mouse-btn-action = 3; + win-preview-sec-mouse-btn-action = 1; + win-preview-show-close-button = true; + win-title-position = 0; + window-attention-mode = 0; + window-icon-click-action = 1; + window-manager-module = true; + window-preview-module = true; + window-search-provider-module = true; + window-thumbnail-module = true; + window-thumbnail-scale = 20; + workspace-animation = 1; + workspace-animation-module = true; + workspace-module = true; + workspace-switcher-animation = 1; + workspace-switcher-popup-module = true; + ws-max-spacing = 80; + ws-preview-bg-radius = 30; + ws-preview-scale = 100; + ws-sw-popup-h-position = 44; + ws-sw-popup-mode = 0; + ws-sw-popup-v-position = 95; + ws-switcher-ignore-last = false; + ws-switcher-mode = 0; + ws-switcher-wraparound = true; + ws-thumbnail-scale = 8; + ws-thumbnail-scale-appgrid = 13; + ws-thumbnails-full = false; + ws-thumbnails-position = 5; + wst-position-adjust = 0; + }; + } + ]; +in { + home.packages = [pkgs.dconf2nix] ++ builtins.map (ext: ext.package) extensions; + dconf.settings = + { + "org/gnome/shell" = let + list = enabled: + map (ext: ext.package.extensionUuid) + (filter ( + ext: + if enabled + then (!(ext.disable or false)) + else (ext.disable or false) + ) + extensions); + in { + disable-user-extensions = false; + disable-extension-version-validation = true; + disabled-extensions = list false; + enabled-extensions = list true; + }; + } + // foldr recursiveUpdate {} (map + (ext: + if (hasAttr "settings" ext) + then + ( + if (hasAttr "name" ext) + then {"org/gnome/shell/extensions/${ext.name}" = ext.settings;} + else {"org/gnome/shell/extensions/${ext.package.extensionPortalSlug}" = ext.settings;} + ) + else {}) + extensions); +} diff --git a/files/pantheon/dconf.nix b/files/pantheon/dconf.nix @@ -8,7 +8,8 @@ with lib.hm.gvariant; let fonts = sys.fonts.fontconfig.defaultFonts; in { ## Dconf Keys ## - # Generated via dconf2nix: https://github.com/gvolpe/dconf2nix + # Generated via gvolpe/dconf2nix + # Use 'dconf watch /' to record changes dconf.settings = { # Desktop "io/elementary/desktop/agent-geoclue2".location-enabled = true; diff --git a/flake.lock b/flake.lock @@ -352,11 +352,11 @@ }, "flatpak": { "locked": { - "lastModified": 1704403850, - "narHash": "sha256-VYa/EvYY0xjuK/oei2hOgE2fJIv+yZgFw0WgoBuzwBc=", + "lastModified": 1705758212, + "narHash": "sha256-96kbUcT7hvFPhs5vHqSLAQOCwsRojlmWa0+VpR6lrrE=", "owner": "gmodena", "repo": "nix-flatpak", - "rev": "f43640ecb03e9e008076932a87987cf5c16d8cf9", + "rev": "09d2dd72de3b9a7ef71f3013a15d34c649b83277", "type": "github" }, "original": { diff --git a/modules/gui/desktop/gnome.nix b/modules/gui/desktop/gnome.nix @@ -77,8 +77,8 @@ in { ## User Configuration user.homeConfig = { - # Dconf Keys - imports = [gnome.dconf]; + # Desktop Settings + imports = [gnome.settings]; # GTK+ Theming stylix.targets.gnome.enable = true; @@ -202,47 +202,18 @@ in { # Utilities celluloid - dconf2nix gnuchess custom.kvlibadwaita - ] - ++ ( - with gnomeExtensions // unstable.gnomeExtensions; [ - # GNOME Shell Extensions - alttab-mod - appindicator - auto-activities - caffeine - emoji-copy - forge - fullscreen-avoider - gamemode-indicator-in-system-settings - guillotine - lock-keys - overview-hover - pano - shortcuts - status-area-horizontal-spacing - top-bar-organizer - transparent-top-bar - user-avatar-in-quick-settings - vertical-workspaces - vitals - window-gestures - window-title-is-back - xlanguagetray - ] - )); + ]); }; # Persisted Files user.persist.directories = [ + # Apps ".config/evolution" - ".config/forge" ".config/gnome-boxes" ".config/gnome-builder" ".config/pitivi" - ".local/share/clipboard" ".local/share/epiphany" ".local/share/evolution" ".local/share/geary" @@ -256,6 +227,10 @@ in { ".cache/evolution" ".cache/fractal" ".cache/gnome-builder" + + # Extensions + ".config/forge" + ".local/share/clipboard" ]; })