dotfiles

My PC Dotfiles & Website
commit a57dca8987482c60fdf7890eae0b26febbaded72
parent 1765f5e60750f4138a658e5daea92a81ebc29c56
Author: maydayv7 <maydayv7@gmail.com>
Date:   Sat,  8 Feb 2025 15:57:28 +0530

fix: Site RSS Feed

Also refactor GNOME Dconf settings

Diffstat:

Mfiles/flake.nix | 7++-----
Dfiles/gnome/settings/apps.nix | 184-------------------------------------------------------------------------------
Dfiles/gnome/settings/extensions.nix | 442-------------------------------------------------------------------------------
Mfiles/gnome/shortcuts.json | 4++++
Mmodules/gui/desktop/gnome/default.nix | 2+-
Amodules/gui/desktop/gnome/settings/apps.nix | 203+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Rfiles/gnome/settings/default.nix -> modules/gui/desktop/gnome/settings/default.nix | 0
Amodules/gui/desktop/gnome/settings/extensions.nix | 468+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msite/config.toml | 3++-
9 files changed, 680 insertions(+), 633 deletions(-)

diff --git a/files/flake.nix b/files/flake.nix @@ -19,7 +19,7 @@ flake = "github:maydayv7/dotfiles"; repo = "https://github.com/maydayv7/dotfiles"; - # Set PATH for SystemD Services + # Set PATH for Services systemd = ''export PATH="''${XDG_BIN_HOME}:$HOME/.nix-profile/bin:/etc/profiles/per-user/$USER/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin"''; }; @@ -54,10 +54,7 @@ # GNOME Desktop gnome = - { - iso = readFile ./gnome/iso; - settings = ./gnome/settings; - } + {iso = readFile ./gnome/iso;} // map.files { directory = ./gnome; extension = ".json"; diff --git a/files/gnome/settings/apps.nix b/files/gnome/settings/apps.nix @@ -1,184 +0,0 @@ -{ - sys, - lib, - ... -}: -with lib.hm.gvariant; let - inherit (builtins) head; - fonts = sys.fonts.fontconfig.defaultFonts; -in { - dconf.settings = { - # GTK+ Apps - "org/gnome/desktop/calendar".show-weekdate = true; - "ca/desrt/dconf-editor".show-warning = false; - "org/gnome/shell/world-clocks".locations = "[<(uint32 2, <('Coordinated Universal Time (UTC)', '@UTC', false, @a(dd) [], @a(dd) [])>)>]"; - - "org/gnome/desktop/search-providers" = { - sort-order = [ - "org.gnome.Contacts.desktop" - "org.gnome.Documents.desktop" - "org.gnome.Nautilus.desktop" - ]; - }; - - "org/gnome/Geary" = { - ask-open-attachment = true; - compose-as-html = true; - formatting-toolbar-visible = false; - migrated-config = true; - optional-plugins = ["email-templates" "sent-sound" "mail-merge"]; - startup-notifications = true; - }; - - "org/gnome/epiphany/sync".sync-device-name = sys.networking.hostName; - "org/gnome/epiphany/web" = { - default-zoom-level = 1.0; - enable-mouse-gestures = true; - }; - - "org/gnome/epiphany" = { - active-clear-data-items = 391; - ask-for-default = false; - default-search-engine = "Google"; - restore-session-policy = "crashed"; - use-google-search-suggestions = true; - }; - - "org/gtk/gtk4/settings/file-chooser".sort-directories-first = true; - "org/gnome/nautilus/icon-view" = { - captions = ["size" "date_modified" "none"]; - default-zoom-level = "medium"; - }; - - "org/gnome/nautilus/preferences" = { - click-policy = "single"; - default-folder-viewer = "icon-view"; - fts-enabled = true; - search-filter-time-type = "last_modified"; - search-view = "list-view"; - show-create-link = true; - show-delete-permanently = true; - }; - - "org/gnome/TextEditor" = { - highlight-current-line = true; - indent-style = "tab"; - show-line-numbers = true; - show-map = true; - tab-width = mkUint32 4; - }; - - "org/gnome/builder/editor" = { - auto-hide-map = true; - auto-save-timeout = 60; - completion-n-rows = 7; - draw-spaces = ["tab"]; - highlight-current-line = true; - highlight-matching-brackets = true; - overscroll = 7; - show-map = false; - style-scheme-name = "builder-dark"; - }; - - "com/github/hugolabe/Wike" = { - custom-font = true; - dark-mode = true; - font-family = head fonts.sansSerif; - }; - - # App Grid - "org/gnome/shell" = { - favorite-apps = [ - "google-chrome.desktop" - "org.gnome.Geary.desktop" - "org.gnome.Nautilus.desktop" - "com.mitchellh.ghostty.desktop" - "org.gnome.TextEditor.desktop" - "org.gnome.Settings.desktop" - ]; - }; - - "org/gnome/desktop/app-folders" = { - folder-children = [ - "1c3e59e4-a571-4ada-af1d-ed1ced384cfb" - "4f9e09f6-cbd8-4a4a-beb3-9ec7b3e672ff" - "a136187d-1d93-4d35-8423-082f15957be9" - "b79e9b82-2127-459b-9e82-11bd3be09d04" - "cb1c8797-b52e-4df5-80d6-2c46e8f7ef22" - ]; - }; - - "org/gnome/desktop/app-folders/folders/4f9e09f6-cbd8-4a4a-beb3-9ec7b3e672ff" = { - name = "Games"; - apps = [ - "org.gnome.Chess.desktop" - "org.gnome.Sudoku.desktop" - "org.gnome.Mines.desktop" - "org.gnome.Quadrapassel.desktop" - ]; - }; - - "org/gnome/desktop/app-folders/folders/a136187d-1d93-4d35-8423-082f15957be9" = { - name = "Office"; - apps = [ - "base.desktop" - "calc.desktop" - "Code.desktop" - "draw.desktop" - "impress.desktop" - "math.desktop" - "net.sourceforge.gscan2pdf.desktop" - "onlyoffice-desktopeditors.desktop" - "startcenter.desktop" - "virt-manager.desktop" - "writer.desktop" - ]; - }; - - "org/gnome/desktop/app-folders/folders/b79e9b82-2127-459b-9e82-11bd3be09d04" = { - name = "Utilities"; - apps = [ - "cups.desktop" - "nixos-manual.desktop" - "org.gnome.baobab.desktop" - "org.gnome.Console.desktop" - "org.gnome.Devhelp.desktop" - "org.gnome.Logs.desktop" - "org.gnome.Tour.desktop" - "xterm.desktop" - "yelp.desktop" - ]; - }; - - "org/gnome/desktop/app-folders/folders/1c3e59e4-a571-4ada-af1d-ed1ced384cfb" = { - name = "Wine"; - apps = [ - "7zip.desktop" - "com.usebottles.bottles.desktop" - "Notepad++.desktop" - "net.lutris.Lutris.desktop" - ]; - }; - - "org/gnome/desktop/app-folders/folders/cb1c8797-b52e-4df5-80d6-2c46e8f7ef22" = { - apps = [ - "waydroid.com.android.inputmethod.latin.desktop" - "waydroid.org.lineageos.jelly.desktop" - "waydroid.com.android.calculator2.desktop" - "waydroid.org.lineageos.etar.desktop" - "waydroid.com.android.camera2.desktop" - "waydroid.com.android.deskclock.desktop" - "waydroid.com.android.contacts.desktop" - "waydroid.com.android.documentsui.desktop" - "waydroid.com.android.gallery3d.desktop" - "waydroid.com.android.vending.desktop" - "waydroid.org.lineageos.eleven.desktop" - "waydroid.org.lineageos.recorder.desktop" - "waydroid.com.android.settings.desktop" - "Waydroid.desktop" - ]; - name = "Android"; - translate = false; - }; - }; -} diff --git a/files/gnome/settings/extensions.nix b/files/gnome/settings/extensions.nix @@ -1,442 +0,0 @@ -{ - sys, - config, - lib, - pkgs, - files, - ... -}: let - inherit (builtins) filter hasAttr head map; - inherit (lib) foldr hm mkForce optionals recursiveUpdate; - homeDir = config.home.homeDirectory; - font = head sys.fonts.fontconfig.defaultFonts.sansSerif; - inherit (sys.lib.stylix) colors; - - # Shell Extensions - extensions = with pkgs.gnomeExtensions // hm.gvariant; ([ - {package = appindicator;} - {package = control-monitor-brightness-and-volume-with-ddcutil;} - {package = display-configuration-switcher;} - {package = gamemode-indicator-in-system-settings;} - {package = gsconnect;} - {package = guillotine;} - {package = hide-minimized;} - {package = invert-window-color;} - {package = media-progress;} - {package = overview-hover;} - {package = removable-drive-menu;} - {package = unmess;} - {package = window-state-manager;} - {package = x11-gestures;} - {package = xlanguagetray;} - { - package = workspace-indicator; - disable = true; - } - { - package = gpu-supergfxctl-switch; - disable = !sys.services.supergfxd.enable; - } - { - package = top-bar-organizer; - settings = { - center-box-order = ["dateMenu"]; - left-box-order = [ - "activities" - "guillotine" - "guillotine@fopdoodle.net" - "appMenu" - ]; - - right-box-order = [ - "emoji-copy@felipeftn" - "tilingshell@ferrarodomenico.com" - "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-icon = false; - show-title = false; - }; - } - { - package = autohide-battery-percentage; - settings = { - hide-on-battery-level = 90; - hide-on-plugged-in = true; - hide-on-power-saving-disabled = false; - }; - } - { - package = emoji-copy; - settings = { - active-keybind = true; - always-show = false; - emoji-keybind = ["<Super><Shift>e"]; - paste-on-select = true; - }; - } - { - package = user-avatar-in-quick-settings; - name = "quick-settings-avatar"; - settings = { - avatar-position = 1; - avatar-realname = false; - avatar-size = 56; - }; - } - { - package = focus-changer; - settings = { - focus-down = ["<Super>s"]; - focus-left = ["<Super>a"]; - focus-right = ["<Super>d"]; - focus-up = ["<Super>w"]; - }; - } - { - package = vitals; - settings = { - hot-sensors = ["_default_icon_"]; - show-battery = true; - show-storage = false; - show-gpu = true; - include-static-gpu-info = 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 = false; - skip-taskbar = true; - }; - } - { - package = caffeine; - settings = { - indicator-position = 0; - inhibit-apps = ["startcenter.desktop"]; - nightlight-control = "never"; - show-indicator = "always"; - show-notifications = false; - }; - } - { - package = shortcuts; - settings = { - maxcolumns = 3; - shortcuts-file = files.gnome.shortcuts; - shortcuts-toggle-overview = ["<Super>slash"]; - show-icon = false; - use-custom-shortcuts = true; - use-transparency = true; - visibility = 55; - }; - } - { - 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 = wsp-windows-search-provider; - name = "windows-search-provider"; - settings = { - custom-prefixes = "; `"; - results-order = 1; - search-commands = false; - search-method = 1; - }; - } - { - package = pkgs.custom.gnome-pano; - settings = { - database-location = "${homeDir}/.local/share/clipboard"; - history-length = 250; - global-shortcut = ["<Super>v"]; - incognito-shortcut = ["<Ctrl><Super>v"]; - link-previews = true; - open-links-in-browser = true; - play-audio-on-copy = false; - send-notification-on-copy = false; - watch-exclusion-list = true; - wiggle-indicator = sys.gui.fancy; - 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 = tiling-shell; - name = "tilingshell"; - settings = { - enable-blur-selected-tilepreview = false; - enable-blur-snap-assistant = false; - enable-snap-assist = false; - enable-tiling-system = true; - enable-window-border = true; - override-window-menu = true; - restore-window-original-size = true; - tiling-system-activation-key = ["0"]; - top-edge-maximize = true; - window-border-width = mkUint32 2; - inner-gaps = mkUint32 5; - outer-gaps = mkUint32 5; - move-window-down = ["<Shift><Super>s"]; - move-window-left = ["<Shift><Super>a"]; - move-window-right = ["<Shift><Super>d"]; - move-window-up = ["<Shift><Super>w"]; - window-border-color = with colors; "rgb(${base0D-rgb-r},${base0D-rgb-g},${base0D-rgb-b})"; - }; - } - { - package = vertical-workspaces; - settings = { - aaa-loading-profile = true; - always-activate-selected-window = false; - animation-speed-factor = 100; - app-display-module = true; - app-favorites-module = true; - app-folder-order = 2; - app-grid-active-preview = false; - app-grid-animation = 4; - app-grid-bg-blur-sigma = 40; - app-grid-columns = 0; - app-grid-content = 2; - 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 = 0; - app-grid-order = 1; - app-grid-page-width-scale = 80; - app-grid-performance = true; - app-grid-rows = 0; - app-grid-spacing = 12; - center-app-grid = true; - center-dash-to-ws = false; - center-search = true; - close-ws-button-mode = 2; - dash-bg-color = 0; - dash-bg-gs3-style = false; - dash-bg-opacity = 50; - 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 = 3; - enable-page-shortcuts = false; - favorites-notify = 1; - highlighting-style = 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; - new-window-monitor-fix = false; - notification-position = 2; - osd-position = 3; - 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 = 0; - 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 = 1; - search-width-scale = 105; - 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 = false; - show-ws-preview-bg = false; - show-ws-switcher-bg = false; - show-wst-labels = 1; - show-wst-labels-on-hover = true; - smooth-blur-transitions = true; - startup-state = 2; - swipe-tracker-module = true; - win-attention-handler-module = true; - win-preview-icon-size = 1; - win-preview-mid-mouse-btn-action = 1; - win-preview-sec-mouse-btn-action = 0; - 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; - workspace-animation = 1; - workspace-animation-module = true; - workspace-module = true; - workspace-switcher-animation = 1; - workspace-switcher-popup-module = true; - ws-max-spacing = 350; - ws-preview-bg-radius = 30; - ws-preview-scale = 100; - ws-sw-popup-h-position = 50; - ws-sw-popup-mode = 0; - ws-sw-popup-v-position = 50; - ws-switcher-ignore-last = false; - ws-switcher-mode = 0; - ws-switcher-wraparound = false; - ws-thumbnail-scale = 10; - ws-thumbnail-scale-appgrid = 20; - ws-thumbnails-full = false; - ws-thumbnails-position = 5; - wst-position-adjust = 0; - }; - } - ] - ++ optionals sys.gui.fancy [ - {package = rounded-window-corners-reborn;} - {package = transparent-top-bar;} - { - package = panel-corners; - settings.panel-corners = false; - } - { - package = gtk4-desktop-icons-ng-ding; - disable = true; #!# Currently buggy - settings = { - dark-text-in-labels = false; - show-drop-place = false; - show-network-volumes = false; - }; - } - ]); -in { - 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); - - home = { - packages = [pkgs.dconf2nix] ++ builtins.map (ext: ext.package) extensions; - file.".config/guillotine.json".source = files.gnome.menu; # Action Menu - }; -} diff --git a/files/gnome/shortcuts.json b/files/gnome/shortcuts.json @@ -100,6 +100,10 @@ "description": "Switch keyboard layout" }, { + "key": "Ctrl + Alt + S", + "description": "Resize window to pre-defined sizes" + }, + { "key": "Ctrl + Alt + Del", "description": "Open shutdown menu" }, diff --git a/modules/gui/desktop/gnome/default.nix b/modules/gui/desktop/gnome/default.nix @@ -118,7 +118,7 @@ in { (mkIf (desktop == "gnome") { user.homeConfig = { # Desktop Settings - imports = [gnome.settings]; + imports = [./settings]; stylix.targets = { gnome.enable = true; ghostty.enable = true; diff --git a/modules/gui/desktop/gnome/settings/apps.nix b/modules/gui/desktop/gnome/settings/apps.nix @@ -0,0 +1,203 @@ +{ + sys, + lib, + ... +}: +with lib.hm.gvariant; let + inherit (builtins) head; + fonts = sys.fonts.fontconfig.defaultFonts; +in { + dconf.settings = { + # GTK+ Apps + "org/gnome/desktop/calendar".show-weekdate = true; + "ca/desrt/dconf-editor".show-warning = false; + "org/gnome/shell/world-clocks".locations = "[<(uint32 2, <('Coordinated Universal Time (UTC)', '@UTC', false, @a(dd) [], @a(dd) [])>)>]"; + + "org/gnome/desktop/search-providers" = { + sort-order = [ + "org.gnome.Contacts.desktop" + "org.gnome.Documents.desktop" + "org.gnome.Nautilus.desktop" + ]; + }; + + "org/gnome/Geary" = { + ask-open-attachment = true; + compose-as-html = true; + formatting-toolbar-visible = false; + migrated-config = true; + optional-plugins = ["email-templates" "sent-sound" "mail-merge"]; + startup-notifications = true; + }; + + "org/gnome/epiphany/sync".sync-device-name = sys.networking.hostName; + "org/gnome/epiphany/web" = { + default-zoom-level = 1.0; + enable-mouse-gestures = true; + }; + + "org/gnome/epiphany" = { + active-clear-data-items = 391; + ask-for-default = false; + default-search-engine = "Google"; + restore-session-policy = "crashed"; + use-google-search-suggestions = true; + }; + + "org/gtk/gtk4/settings/file-chooser".sort-directories-first = true; + "org/gnome/nautilus/icon-view" = { + captions = ["size" "date_modified" "none"]; + default-zoom-level = "medium"; + }; + + "org/gnome/nautilus/preferences" = { + click-policy = "single"; + default-folder-viewer = "icon-view"; + fts-enabled = true; + search-filter-time-type = "last_modified"; + search-view = "list-view"; + show-create-link = true; + show-delete-permanently = true; + }; + + "org/gnome/TextEditor" = { + highlight-current-line = true; + indent-style = "tab"; + show-line-numbers = true; + show-map = true; + tab-width = mkUint32 4; + }; + + "org/gnome/builder/editor" = { + auto-hide-map = true; + auto-save-timeout = 60; + completion-n-rows = 7; + draw-spaces = ["tab"]; + highlight-current-line = true; + highlight-matching-brackets = true; + overscroll = 7; + show-map = false; + style-scheme-name = "builder-dark"; + }; + + "com/github/hugolabe/Wike" = { + custom-font = true; + dark-mode = true; + font-family = head fonts.sansSerif; + }; + + # App Grid + "org/gnome/shell" = { + favorite-apps = [ + "google-chrome.desktop" + "org.gnome.Geary.desktop" + "org.gnome.Nautilus.desktop" + "com.mitchellh.ghostty.desktop" + "org.gnome.TextEditor.desktop" + "org.gnome.Settings.desktop" + ]; + }; + + "org/gnome/desktop/app-folders" = { + folder-children = [ + "1c3e59e4-a571-4ada-af1d-ed1ced384cfb" + "4bfbecbd-804e-4359-b1c2-00daef4c009e" + "4f9e09f6-cbd8-4a4a-beb3-9ec7b3e672ff" + "a136187d-1d93-4d35-8423-082f15957be9" + "b79e9b82-2127-459b-9e82-11bd3be09d04" + "cb1c8797-b52e-4df5-80d6-2c46e8f7ef22" + "e57a32e8-8e5d-4808-aad7-b1f9152d01ee" + ]; + }; + + "org/gnome/desktop/app-folders/folders/4f9e09f6-cbd8-4a4a-beb3-9ec7b3e672ff" = { + name = "Games"; + apps = [ + "org.gnome.Chess.desktop" + "org.gnome.Sudoku.desktop" + "org.gnome.Mines.desktop" + "org.gnome.Quadrapassel.desktop" + ]; + }; + + "org/gnome/desktop/app-folders/folders/a136187d-1d93-4d35-8423-082f15957be9" = { + name = "Office"; + apps = [ + "base.desktop" + "calc.desktop" + "Code.desktop" + "draw.desktop" + "impress.desktop" + "math.desktop" + "net.sourceforge.gscan2pdf.desktop" + "onlyoffice-desktopeditors.desktop" + "startcenter.desktop" + "virt-manager.desktop" + "writer.desktop" + ]; + }; + + "org/gnome/desktop/app-folders/folders/b79e9b82-2127-459b-9e82-11bd3be09d04" = { + name = "Utilities"; + apps = [ + "cups.desktop" + "nixos-manual.desktop" + "org.gnome.baobab.desktop" + "org.gnome.Console.desktop" + "org.gnome.Devhelp.desktop" + "org.gnome.Logs.desktop" + "org.gnome.Tour.desktop" + "xterm.desktop" + "yelp.desktop" + ]; + }; + + "org/gnome/desktop/app-folders/folders/e57a32e8-8e5d-4808-aad7-b1f9152d01ee" = { + name = "Accessories"; + apps = [ + "calibre-ebook-edit.desktop" + "calibre-ebook-viewer.desktop" + "calibre-lrfviewer.desktop" + "qt5ct.desktop" + "qt6ct.desktop" + ]; + }; + + "org/gnome/desktop/app-folders/folders/4bfbecbd-804e-4359-b1c2-00daef4c009e" = { + name = "System"; + apps = ["nvidia-settings.desktop" "rog-control-center.desktop"]; + }; + + "org/gnome/desktop/app-folders/folders/1c3e59e4-a571-4ada-af1d-ed1ced384cfb" = { + name = "Wine"; + apps = [ + "7zip.desktop" + "com.usebottles.bottles.desktop" + "Notepad++.desktop" + "net.lutris.Lutris.desktop" + ]; + }; + + "org/gnome/desktop/app-folders/folders/cb1c8797-b52e-4df5-80d6-2c46e8f7ef22" = { + name = "Android"; + apps = [ + "waydroid.com.android.inputmethod.latin.desktop" + "waydroid.org.lineageos.jelly.desktop" + "waydroid.com.android.calculator2.desktop" + "waydroid.org.lineageos.etar.desktop" + "waydroid.com.android.camera2.desktop" + "waydroid.com.android.deskclock.desktop" + "waydroid.com.android.contacts.desktop" + "waydroid.com.android.documentsui.desktop" + "waydroid.com.android.gallery3d.desktop" + "waydroid.com.android.vending.desktop" + "waydroid.org.lineageos.eleven.desktop" + "waydroid.org.lineageos.recorder.desktop" + "waydroid.com.android.settings.desktop" + "Waydroid.desktop" + "scrcpy.desktop" + "scrcpy-console.desktop" + ]; + }; + }; +} diff --git a/files/gnome/settings/default.nix b/modules/gui/desktop/gnome/settings/default.nix diff --git a/modules/gui/desktop/gnome/settings/extensions.nix b/modules/gui/desktop/gnome/settings/extensions.nix @@ -0,0 +1,468 @@ +{ + sys, + config, + lib, + pkgs, + files, + ... +}: let + inherit (builtins) filter hasAttr head map; + inherit (lib) foldr hm mkForce optionals recursiveUpdate; + homeDir = config.home.homeDirectory; + font = head sys.fonts.fontconfig.defaultFonts.sansSerif; + inherit (sys.lib.stylix) colors; + + # Shell Extensions + extensions = with pkgs.gnomeExtensions // hm.gvariant; ([ + {package = appindicator;} + {package = arrange-windows;} + {package = control-monitor-brightness-and-volume-with-ddcutil;} + {package = disconnect-wifi;} + {package = display-configuration-switcher;} + {package = gamemode-indicator-in-system-settings;} + {package = gsconnect;} + {package = guillotine;} + {package = hide-minimized;} + {package = invert-window-color;} + {package = media-progress;} + {package = night-light-slider-updated;} + {package = overview-hover;} + {package = removable-drive-menu;} + {package = screenshot-window-sizer;} + {package = unmess;} + {package = window-state-manager;} + {package = x11-gestures;} + {package = xlanguagetray;} + { + package = workspace-indicator; + disable = true; + } + { + package = gpu-supergfxctl-switch; + disable = !sys.services.supergfxd.enable; + } + { + package = top-bar-organizer; + settings = { + center-box-order = ["dateMenu"]; + left-box-order = [ + "activities" + "guillotine" + "guillotine@fopdoodle.net" + "appMenu" + "arrange-menu" + "tilingshell@ferrarodomenico.com" + ]; + + right-box-order = [ + "emoji-copy@felipeftn" + "a11y" + "aggregateMenu" + "drive-menu" + "pano@elhan.io" + "vitalsMenu" + "dwellClick" + "color-picker@tuberry" + "lockkeys" + "keyboard" + "screenSharing" + "screenRecording" + "quickSettings" + ]; + }; + } + { + package = color-picker; + settings.enable-format = true; + } + { + package = status-area-horizontal-spacing; + settings.hpadding = 4; + } + { + package = lock-keys; + name = "lockkeys"; + settings.style = "show-hide"; + } + { + package = power-profile-indicator-2; + name = "power-profile"; + settings.colored-icon = false; + } + { + 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-icon = false; + show-title = false; + }; + } + { + package = autohide-battery-percentage; + settings = { + hide-on-battery-level = 90; + hide-on-plugged-in = true; + hide-on-power-saving-disabled = false; + }; + } + { + package = emoji-copy; + settings = { + active-keybind = true; + always-show = false; + emoji-keybind = ["<Super><Shift>e"]; + paste-on-select = true; + }; + } + { + package = user-avatar-in-quick-settings; + name = "quick-settings-avatar"; + settings = { + avatar-position = 1; + avatar-realname = false; + avatar-size = 56; + }; + } + { + package = focus-changer; + settings = { + focus-down = ["<Super>s"]; + focus-left = ["<Super>a"]; + focus-right = ["<Super>d"]; + focus-up = ["<Super>w"]; + }; + } + { + package = vitals; + settings = { + hot-sensors = ["_default_icon_"]; + show-battery = true; + show-storage = false; + show-gpu = true; + include-static-gpu-info = 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 = false; + skip-taskbar = true; + }; + } + { + package = caffeine; + settings = { + indicator-position = 0; + inhibit-apps = ["startcenter.desktop"]; + nightlight-control = "never"; + show-indicator = "always"; + show-notifications = false; + }; + } + { + package = shortcuts; + settings = { + maxcolumns = 3; + shortcuts-file = files.gnome.shortcuts; + shortcuts-toggle-overview = ["<Super>slash"]; + show-icon = false; + use-custom-shortcuts = true; + use-transparency = true; + visibility = 55; + }; + } + { + 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 = wsp-windows-search-provider; + name = "windows-search-provider"; + settings = { + custom-prefixes = "; `"; + results-order = 1; + search-commands = false; + search-method = 1; + }; + } + { + package = pkgs.custom.gnome-pano; + settings = { + database-location = "${homeDir}/.local/share/clipboard"; + history-length = 250; + global-shortcut = ["<Super>v"]; + incognito-shortcut = ["<Ctrl><Super>v"]; + link-previews = true; + open-links-in-browser = true; + play-audio-on-copy = false; + send-notification-on-copy = false; + watch-exclusion-list = true; + wiggle-indicator = sys.gui.fancy; + 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 = tiling-shell; + name = "tilingshell"; + settings = { + enable-blur-selected-tilepreview = false; + enable-blur-snap-assistant = false; + enable-snap-assist = false; + enable-tiling-system = true; + enable-window-border = false; + override-window-menu = true; + restore-window-original-size = true; + tiling-system-activation-key = ["0"]; + top-edge-maximize = true; + window-border-width = mkUint32 2; + inner-gaps = mkUint32 5; + outer-gaps = mkUint32 5; + move-window-down = ["<Shift><Super>s"]; + move-window-left = ["<Shift><Super>a"]; + move-window-right = ["<Shift><Super>d"]; + move-window-up = ["<Shift><Super>w"]; + }; + } + { + package = vertical-workspaces; + settings = { + aaa-loading-profile = true; + always-activate-selected-window = false; + animation-speed-factor = 100; + app-display-module = true; + app-favorites-module = true; + app-folder-order = 2; + app-grid-active-preview = false; + app-grid-animation = 4; + app-grid-bg-blur-sigma = 40; + app-grid-columns = 0; + app-grid-content = 2; + 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 = 0; + app-grid-order = 1; + app-grid-page-width-scale = 80; + app-grid-performance = true; + app-grid-rows = 0; + app-grid-spacing = 12; + center-app-grid = true; + center-dash-to-ws = false; + center-search = true; + close-ws-button-mode = 2; + dash-bg-color = 0; + dash-bg-gs3-style = false; + dash-bg-opacity = 50; + 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 = 3; + enable-page-shortcuts = false; + favorites-notify = 1; + highlighting-style = 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; + new-window-monitor-fix = false; + notification-position = 2; + osd-position = 3; + 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 = 0; + 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 = 1; + search-width-scale = 105; + 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 = false; + show-ws-preview-bg = false; + show-ws-switcher-bg = false; + show-wst-labels = 1; + show-wst-labels-on-hover = true; + smooth-blur-transitions = true; + startup-state = 2; + swipe-tracker-module = true; + win-attention-handler-module = true; + win-preview-icon-size = 1; + win-preview-mid-mouse-btn-action = 1; + win-preview-sec-mouse-btn-action = 0; + 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; + workspace-animation = 1; + workspace-animation-module = true; + workspace-module = true; + workspace-switcher-animation = 1; + workspace-switcher-popup-module = true; + ws-max-spacing = 350; + ws-preview-bg-radius = 30; + ws-preview-scale = 100; + ws-sw-popup-h-position = 50; + ws-sw-popup-mode = 0; + ws-sw-popup-v-position = 50; + ws-switcher-ignore-last = false; + ws-switcher-mode = 0; + ws-switcher-wraparound = false; + ws-thumbnail-scale = 10; + ws-thumbnail-scale-appgrid = 20; + ws-thumbnails-full = false; + ws-thumbnails-position = 5; + wst-position-adjust = 0; + }; + } + ] + ++ optionals sys.gui.fancy [ + { + package = rounded-window-corners-reborn; + settings = { + skip-libadwaita-app = false; + skip-libhandy-app = false; + border-width = 2; + border-color = with colors; mkTuple [(mkDouble base0D-dec-r) (mkDouble base0D-dec-g) (mkDouble base0D-dec-b) 1.0]; + global-rounded-corner-settings = ''{'padding': <{'left': 1, 'right': 1, 'top': 1, 'bottom': 1}>, 'keepRoundedCorners': <{'maximized': true, 'fullscreen': false}>, 'borderRadius': <uint32 12>, 'smoothing': <0.0>, 'enabled': <true>}''; + }; + } + { + package = panel-corners; + settings.panel-corners = true; + } + { + package = transparent-window-moving; + settings.window-opacity = 200; + } + { + package = gtk4-desktop-icons-ng-ding; + disable = true; #!# Currently buggy + settings = { + dark-text-in-labels = false; + show-drop-place = false; + show-network-volumes = false; + }; + } + ]); +in { + 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); + + home = { + packages = [pkgs.dconf2nix] ++ builtins.map (ext: ext.package) extensions; + file.".config/guillotine.json".source = files.gnome.menu; # Action Menu + }; +} diff --git a/site/config.toml b/site/config.toml @@ -13,6 +13,7 @@ compile_sass = true build_search_index = true # RSS Feed +generate_feeds = true feed_filenames = ["rss.xml"] # Taxonomies @@ -87,6 +88,6 @@ main_menu_items = [ # Socials Bar email = "mailto:maydayv7@gmail.com" show_rss_badge = true -rss_path = "blog/rss.xml" +rss_path = "rss.xml" reddit_profile = "https://reddit.com/u/maydayv7" github_profile = "https://github.com/maydayv7"