{ config, lib, pkgs, ... }: with lib; let cfg = config.custom.programs.gnome-shell; in { options.custom.programs.gnome-shell.enable = mkOption {default = false;}; config.home-manager.users.${config.custom.username} = mkIf cfg.enable { # BUG: programs.gnome-shell.theme option forces installation of gnome-shell-extensions programs.gnome-shell = { enable = true; extensions = with pkgs.gnomeExtensions; optionals config.custom.default [ {package = appindicator;} # https://github.com/ubuntu/gnome-shell-extension-appindicator ] ++ optionals config.custom.minimal [ {package = caffeine;} # https://github.com/eonpatapon/gnome-shell-extension-caffeine {package = dash-to-dock;} # https://github.com/micheleg/dash-to-dock #// { package = dash2dock-lite; } # https://github.com/icedman/dash2dock-lite {package = gsconnect;} # https://github.com/GSConnect/gnome-shell-extension-gsconnect {package = just-perfection;} # https://gitlab.gnome.org/jrahmatzadeh/just-perfection {package = rounded-window-corners-reborn;} # https://github.com/flexagoon/rounded-window-corners #// { package = user-themes; } # https://gitlab.gnome.org/GNOME/gnome-shell-extensions ] ++ optionals config.custom.full [ #// { package = auto-move-windows; } # https://gitlab.gnome.org/GNOME/gnome-shell-extensions {package = clipboard-indicator;} # https://github.com/Tudmotu/gnome-shell-extension-clipboard-indicator {package = ddterm;} # https://github.com/ddterm/gnome-shell-extension-ddterm #// { package = hide-top-bar; } # https://gitlab.gnome.org/tuxor1337/hidetopbar {package = media-controls;} # https://github.com/sakithb/media-controls #// { package = smart-auto-move; } # https://github.com/khimaros/smart-auto-move {package = tailscale-qs;} # https://github.com/joaophi/tailscale-gnome-qs {package = tiling-assistant;} # https://github.com/Leleat/Tiling-Assistant ]; }; }; }