{ pkgs, ... }: { imports = [ ./packages/librewolf ./packages/thunderbird ]; home = { packages = with pkgs; [ adw-gtk3 blackbox-terminal discord gnome-solanum gnome-tweaks high-tide mattermost-desktop nerd-fonts.adwaita-mono newsflash proton-pass protonmail-bridge-gui signal-desktop texliveFull tinymist zotero zulip ] ++ (with gnomeExtensions; [ blur-my-shell caffeine clipboard-indicator launch-new-instance light-style rounded-window-corners-reborn runcat tray-icons-reloaded useless-gaps window-centering ]); }; programs.firefox.enable = true; xdg.desktopEntries = { "com.raggesilver.BlackBox" = { categories = [ "GNOME" "GTK" "System" "TerminalEmulator" ]; comment = "Access the terminal"; exec = "blackbox"; genericName = "Terminal Emulator"; icon = "com.raggesilver.BlackBox"; name = "Terminal"; startupNotify = false; terminal = false; type = "Application"; }; }; 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"; }; }; }