{ config, pkgs-unstable, pkgs, ... }: { # We run most extensions from unstable because they are more up-to-date home.packages = with pkgs.gnomeExtensions; [ user-themes weather-oclock native-window-placement kimpanel ] ++ (with pkgs-unstable.gnomeExtensions; [ tiling-shell lilypad tailscale-qs gsconnect blur-my-shell space-bar gtk4-desktop-icons-ng-ding logo-menu media-controls burn-my-windows coverflow-alt-tab dash-to-dock appindicator autohide-battery battery-health-charging just-perfection smile-complementary-extension vitals clipboard-indicator bubblemail ]); # Copy burn-my-windows profile to user config home.file.".config/burn-my-windows/profiles/default.conf".text = '' [burn-my-windows-profile] fire-enable-effect=false tv-glitch-enable-effect=true tv-glitch-animation-time=250 ''; dconf = { settings = { # vitals settings "org/gnome/shell/extensions/vitals" = { position-in-panel = 0; use-higher-precision = true; icon-style = 1; }; "org/gnome/shell/extensions/pano" = { history-length = 500; global-shortcut = [ "V" ]; item-date-font-family = "Hack Nerd Font Mono"; item-date-font-size = 10; search-bar-font-family = "Hack Nerd Font Mono"; search-bar-font-size = 14; item-title-font-family = "Hack Nerd Font Mono"; item-title-font-size = 20; }; # To get an ID of an extension, run `gnome-extensions list` "org/gnome/shell" = { disable-user-extensions = false; enabled-extensions = [ "pano@elhan.io" "apps-menu@gnome-shell-extensions.gcampax.github.com" "background-logo@fedorahosted.org" "launch-new-instance@gnome-shell-extensions.gcampax.github.com" "places-menu@gnome-shell-extensions.gcampax.github.com" "window-list@gnome-shell-extensions.gcampax.github.com" "Battery-Health-Charging@maniacx.github.com" "CoverflowAltTab@palatis.blogspot.com" "Vitals@CoreCoding.com" "appindicatorsupport@rgcjonas.gmail.com" "autohide-battery@sitnik.ru" "blur-my-shell@aunetx" "burn-my-windows@schneegans.github.com" "clipboard-indicator@tudmotu.com" "dash-to-dock@micxgx.gmail.com" "gsconnect@andyholmes.github.io" "gtk4-ding@smedius.gitlab.com" "just-perfection-desktop@just-perfection" "kimpanel@kde.org" "lilypad@shendrew.github.io" "logomenu@aryan_k" "mediacontrols@cliffniff.github.com" "native-window-placement@gnome-shell-extensions.gcampax.github.com" "smile-extension@mijorus.it" "space-bar@luchrioh" "tailscale@joaophi.github.com" "tilingshell@ferrarodomenico.com" "user-theme@gnome-shell-extensions.gcampax.github.com" "weatheroclock@CleoMenezesJr.github.io" "bubblemail@razer.framagit.org" ]; }; # Perfection settings "org/gnome/shell/extensions/just-perfection" = { theme = false; notification-banner-position = 2; startup-status = 0; }; # Autohide battery "org/gnome/shell/extensions/autohide-battery" = { hide-on = 95; }; # Configure dash-to-dock "org/gnome/shell/extensions/dash-to-dock" = { pressure-threshold = 250; require-pressure-to-show = false; apply-custom-theme = false; apply-glossy-effect = false; autohide-in-fullscreen = true; background-opacity = 0.8; custom-theme-customize-running-dots = false; custom-theme-running-dots-border-color = "rgb(255,255,255)"; custom-theme-running-dots-color = "rgb(255,255,255)"; dash-max-icon-size = 48; dock-fixed = false; dock-position = "LEFT"; extend-height = 0; height-fraction = 0.9; intellihide = true; intellihide-mode = "ALL_WINDOWS"; multi-monitor = true; preferred-monitor = -2; preferred-monitor-by-connector = "DP-2"; running-indicator-dominant-color = true; running-indicator-style = "DOTS"; show-apps-at-top = true; show-favorites = true; show-mounts = false; show-trash = true; transparency = 0.75; transparency-mode = "FIXED"; unity-backlit-items = false; }; # Configure logo-menu "org/gnome/shell/extensions/Logo-menu" = { hide-icon-shadow = false; menu-button-extensions-app = "org.gnome.Extensions.desktop"; menu-button-icon-image = 23; menu-button-icon-size = 24; menu-button-system-monitor = "missioncenter"; show-power-options = false; symbolic-icon = true; use-custom-icon = false; }; # Configure covereflow-alt-tab "org/gnome/shell/extensions/coverflowalttab" = { animation-time = 0.2; easing-function = "ease-out-quart"; icon-has-shadow = true; icon-style = "Overlay"; invert-swipes = false; position = "Top"; switcher-looping-method = "Flip Stack"; switcher-style = "Coverflow"; }; # Configure burn-my-windows "org/gnome/shell/extensions/burn-my-windows" = { active-profile = "${config.home.homeDirectory}/.config/burn-my-windows/profiles/default.conf"; }; # Configure blur-my-shell "org/gnome/shell/extensions/blur-my-shell" = { brightness = 0.75; noise-amount = 0; }; # Configure tiling shell "org/gnome/shell/extensions/tilingshell" = { layouts-json = '' [ { "id": "Landscape Ultrawide", "tiles": [ { "x": 0, "y": 0, "width": 0.22, "height": 0.5, "groups": [1, 2] }, { "x": 0, "y": 0.5, "width": 0.22, "height": 0.5, "groups": [1, 2] }, { "x": 0.22, "y": 0, "width": 0.56, "height": 1, "groups": [2, 3] }, { "x": 0.78, "y": 0, "width": 0.22, "height": 0.5, "groups": [3, 4] }, { "x": 0.78, "y": 0.5, "width": 0.22, "height": 0.5, "groups": [3, 4] } ] }, { "id": "Portrait Ultrawide", "tiles": [ { "x": 0, "y": 0, "width": 1, "height": 0.25, "groups": [1] }, { "x": 0, "y": 0.25, "width": 1, "height": 0.5, "groups": [1, 2] }, { "x": 0, "y": 0.75, "width": 0.5, "height": 0.25, "groups": [2, 3] }, { "x": 0.5, "y": 0.75, "width": 0.5, "height": 0.25, "groups": [2, 3] } ] }, { "id": "Landscape Laptop", "tiles": [ { "x": 0, "y": 0, "width": 0.33, "height": 0.5, "groups": [1, 2] }, { "x": 0.33, "y": 0, "width": 0.67, "height": 1, "groups": [1] }, { "x": 0, "y": 0.5, "width": 0.33, "height": 0.5, "groups": [2, 1] } ] }, { "id": "Landscape Ultrawide Power-User", "tiles": [ { "x": 0, "y": 0, "width": 0.1984375, "height": 0.5028409090909091, "groups": [1, 2] }, { "x": 0.1984375, "y": 0, "width": 0.3015625, "height": 1, "groups": [4, 1] }, { "x": 0, "y": 0.5028409090909091, "width": 0.1984375, "height": 0.49715909090909094, "groups": [2, 1] }, { "x": 0.8015625, "y": 0, "width": 0.1984375, "height": 1, "groups": [3] }, { "x": 0.5, "y": 0, "width": 0.30156249999999996, "height": 1, "groups": [3, 4] } ] } ] ''; overridden-settings = "{\"org.gnome.mutter.keybindings\":{\"toggle-tiled-right\":\"['Right']\",\"toggle-tiled-left\":\"['Left']\"},\"org.gnome.desktop.wm.keybindings\":{\"maximize\":\"['Up']\",\"unmaximize\":\"['Down', 'F5']\"},\"org.gnome.mutter\":{\"edge-tiling\":\"false\"}}"; }; # Configure forge "org/gnome/shell/extensions/forge" = { move-pointer-focus-enabled = false; stacked-tiling-mode-enabled = true; tabbed-tiling-mode-enabled = true; tiling-mode-enabled = true; }; "org/gnome/shell/extensions/forge/keybindings" = { con-split-horizontal = [ "z" ]; con-split-layout-toggle = [ "g" ]; con-split-vertical = [ "v" ]; con-stacked-layout-toggle = [ "s" ]; con-tabbed-layout-toggle = [ "t" ]; con-tabbed-showtab-decoration-toggle = [ "y" ]; focus-border-toggle = [ "x" ]; prefs-tiling-toggle = [ "w" ]; window-focus-down = [ "j" ]; window-focus-left = [ "h" ]; window-focus-right = [ "l" ]; window-focus-up = [ "k" ]; window-gap-size-decrease = [ "minus" ]; window-gap-size-increase = [ "plus" ]; window-move-down = [ "j" ]; window-move-left = [ "h" ]; window-move-right = [ "l" ]; window-move-up = [ "k" ]; window-resize-bottom-decrease = [ "i" ]; window-resize-bottom-increase = [ "u" ]; window-resize-left-decrease = [ "o" ]; window-resize-left-increase = [ "y" ]; window-resize-right-decrease = [ "y" ]; window-resize-right-increase = [ "o" ]; window-resize-top-decrease = [ "u" ]; window-resize-top-increase = [ "i" ]; window-snap-center = [ "c" ]; window-snap-one-third-left = [ "d" ]; window-snap-one-third-right = [ "g" ]; window-snap-two-third-left = [ "e" ]; window-snap-two-third-right = [ ]; window-swap-down = [ "j" ]; window-swap-last-active = [ "Return" ]; window-swap-left = [ "h" ]; window-swap-right = [ "l" ]; window-swap-up = [ "k" ]; window-toggle-always-float = [ "c" ]; window-toggle-float = [ "c" ]; workspace-active-tile-toggle = [ "w" ]; }; # User theme "org/gnome/shell/extensions/user-theme" = { name = "Yaru-purple-dark"; }; # Lilypad settings "org/gnome/shell/extensions/lilypad/rightbox-order" = { # In case this is updated, run: `dconf read /org/gnome/shell/extensions/lilypad/rightbox-order | sed "s/,//g; s/'/\"/g ` then copy pasting the output here rightbox-order = [ "lilypad" "system_monitor" "appindicator_legacy_TelegramDesktop" "appindicator_legacy_1password" "spotify_client" "com_github_eneshecan_WhatsAppForLinux_Tray" "appindicator_legacy_Electron" "steam" "appindicator_legacy_steam" "workspace_indicator" "vitalsMenu" "StatusNotifierItem" "clipboardIndicator" "screenSharing" ]; show-icons = false; }; }; }; }