{ pkgs, ... }: { home = { packages = with pkgs; [ gnome-tweaks protonmail-bridge-gui adw-gtk3 nerd-fonts.adwaita-mono blackbox-terminal zotero zulip discord signal-desktop gapless newsflash gnome-solanum ] ++ (with gnomeExtensions; [ blur-my-shell clipboard-indicator rounded-window-corners-reborn runcat caffeine launch-new-instance light-style ]); file."librewolf-gnome-theme" = { target = ".librewolf/default/chrome/librewolf-gnome-theme"; source = fetchTarball { url = "https://github.com/rafaelmardojai/firefox-gnome-theme/archive/v143.tar.gz"; sha256 = "1gkfi77n8cn5xzl3wi9mggh7adirjrsnbqygg1mcvjy0ynmd6kfh"; }; }; }; programs.firefox.enable = true; programs.librewolf = { enable = true; profiles.default = { name = "Default"; settings = { "toolkit.legacyUserProfileCustomizations.stylesheets" = true; "svg.context-properties.content.enabled" = true; "gnomeTheme.hideSingleTab" = true; }; userChrome = '' @import "librewolf-gnome-theme/userChrome.css"; @import "librewolf-gnome-theme/theme/colors/dark.css"; ''; }; }; dconf.settings = { "org/gnome/TextEditor".keybindings = "vim"; "org/gnome/shell" = { disable-user-extensions = false; enabled-extensions = [ "clipboard-indicator@tudmotu.com" "rounded-window-corners@fxgn" "runcat@kolesnikov.se" "caffeine@patapon.info" "launch-new-instance@gnome-shell-extensions.gcampax.github.com" ]; }; "org/gnome/desktop/interface" = { gtk-theme = "adw-gtk3"; show-battery-percentage = true; }; "org/gnome/desktop/wm/preferences".button-layout = "appmenu:minimize,maximize,close"; "org/gnome/desktop/wm/keybindings" = { switch-applications = [ "grave" ]; switch-applications-backwards = [ "grave" ]; switch-windows = [ "Tab" ]; switch-windows-backwards = [ "Tab" ]; }; "org/gnome/settings-daemon/plugins/media-keys".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" = { name = "Terminal"; command = "blackbox"; binding = "Return"; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = { name = "Dark mode switcher"; command = "${pkgs.writeShellScript "gnome-dark-mode-switcher" '' SCHEMA=org.gnome.desktop.interface KEY=color-scheme if [ "$(gsettings get "$SCHEMA" "$KEY")" = "'prefer-dark'" ]; then gsettings set "$SCHEMA" "$KEY" "prefer-light"; else gsettings set "$SCHEMA" "$KEY" "prefer-dark"; fi ''}"; binding = "d"; }; }; }