diff --git a/provision/modules/desktop/default.nix b/provision/modules/desktop/default.nix index 09e17a76..0454cac3 100644 --- a/provision/modules/desktop/default.nix +++ b/provision/modules/desktop/default.nix @@ -18,44 +18,23 @@ # xdg-desktop-portal settings services.dbus.enable = true; - xdg = { - mime = { - enable = true; - addedAssociations = { - "text/plain" = [ "nvim.desktop" ]; - "inode/directory" = [ "pcmanfm.desktop" ]; - "text/html" = [ "google-chrome.desktop" ]; - "x-scheme-handler/http" = [ "google-chrome.desktop" ]; - "x-scheme-handler/https" = [ "google-chrome.desktop" ]; - "x-scheme-handler/ftp" = [ "google-chrome.desktop" ]; - "x-scheme-handler/chrome" = [ "google-chrome.desktop" ]; - "x-scheme-handler/about" = [ "google-chrome.desktop" ]; - "x-scheme-handler/unknown" = [ "google-chrome.desktop" ]; - "application/x-extension-htm" = [ "google-chrome.desktop" ]; - "application/x-extension-html" = [ "google-chrome.desktop" ]; - "application/x-extension-shtml" = [ "google-chrome.desktop" ]; - "application/xhtml+xml" = [ "google-chrome.desktop" ]; - "application/x-extension-xhtml" = [ "google-chrome.desktop" ]; - "application/x-extension-xht" = [ "google-chrome.desktop" ]; - "application/pdf" = [ "google-chrome.desktop" ]; - }; - defaultApplications = { - "text/plain" = [ "nvim.desktop" ]; - "inode/directory" = [ "pcmanfm.desktop" ]; - "text/html" = [ "google-chrome.desktop" ]; - "x-scheme-handler/http" = [ "google-chrome.desktop" ]; - "x-scheme-handler/https" = [ "google-chrome.desktop" ]; - "x-scheme-handler/ftp" = [ "google-chrome.desktop" ]; - "x-scheme-handler/chrome" = [ "google-chrome.desktop" ]; - "x-scheme-handler/about" = [ "google-chrome.desktop" ]; - "x-scheme-handler/unknown" = [ "google-chrome.desktop" ]; - "application/x-extension-htm" = [ "google-chrome.desktop" ]; - "application/x-extension-html" = [ "google-chrome.desktop" ]; - "application/x-extension-shtml" = [ "google-chrome.desktop" ]; - "application/xhtml+xml" = [ "google-chrome.desktop" ]; - "application/x-extension-xhtml" = [ "google-chrome.desktop" ]; - "application/x-extension-xht" = [ "google-chrome.desktop" ]; - "application/pdf" = [ "google-chrome.desktop" ]; }; - }; + xdg.mime = { + enable = true; + defaultApplications = { + "inode/directory" = [ "pcmanfm.desktop" ]; + "text/html" = [ "google-chrome.desktop" ]; + "x-scheme-handler/http" = [ "google-chrome.desktop" ]; + "x-scheme-handler/https" = [ "google-chrome.desktop" ]; + "x-scheme-handler/ftp" = [ "google-chrome.desktop" ]; + "x-scheme-handler/chrome" = [ "google-chrome.desktop" ]; + "x-scheme-handler/about" = [ "google-chrome.desktop" ]; + "x-scheme-handler/unknown" = [ "google-chrome.desktop" ]; + "application/x-extension-htm" = [ "google-chrome.desktop" ]; + "application/x-extension-html" = [ "google-chrome.desktop" ]; + "application/x-extension-shtml" = [ "google-chrome.desktop" ]; + "application/xhtml+xml" = [ "google-chrome.desktop" ]; + "application/x-extension-xhtml" = [ "google-chrome.desktop" ]; + "application/x-extension-xht" = [ "google-chrome.desktop" ]; + "application/pdf" = [ "google-chrome.desktop" ]; }; }; } diff --git a/provision/modules/desktop/gnome.nix b/provision/modules/desktop/gnome.nix index 039052e3..2d59f4e6 100644 --- a/provision/modules/desktop/gnome.nix +++ b/provision/modules/desktop/gnome.nix @@ -70,6 +70,38 @@ in { sound.enable = true; hardware.pulseaudio.enable = lib.mkForce false; + xdg.mime = { + enable = true; + defaultApplications = { + "text/plain" = "org.gnome.TextEditor.desktop"; + + # Images + "image/bmp" = "org.gnome.Loupe.desktop"; + "image/gif" = "org.gnome.Loupe.desktop"; + "image/jpg" = "org.gnome.Loupe.desktop"; + "image/pjpeg" = "org.gnome.Loupe.desktop"; + "image/png" = "org.gnome.Loupe.desktop"; + "image/tiff" = "org.gnome.Loupe.desktop"; + "image/webp" = "org.gnome.Loupe.desktop"; + "image/x-bmp" = "org.gnome.Loupe.desktop"; + "image/x-gray" = "org.gnome.Loupe.desktop"; + "image/x-icb" = "org.gnome.Loupe.desktop"; + "image/x-ico" = "org.gnome.Loupe.desktop"; + "image/x-png" = "org.gnome.Loupe.desktop"; + "image/x-portable-anymap" = "org.gnome.Loupe.desktop"; + "image/x-portable-bitmap" = "org.gnome.Loupe.desktop"; + "image/x-portable-graymap" = "org.gnome.Loupe.desktop"; + "image/x-portable-pixmap" = "org.gnome.Loupe.desktop"; + "image/x-xbitmap" = "org.gnome.Loupe.desktop"; + "image/x-xpixmap" = "org.gnome.Loupe.desktop"; + "image/x-pcx" = "org.gnome.Loupe.desktop"; + "image/svg+xml" = "org.gnome.Loupe.desktop"; + "image/svg+xml-compressed" = "org.gnome.Loupe.desktop"; + "image/vnd.wap.wbmp" = "org.gnome.Loupe.desktop"; + "image/x-icns" = "org.gnome.Loupe.desktop"; + }; + }; + home-manager.users.${user} = { # Remove unwanted desktop entries # Some are added to ~/.local/share/applications and must be removed manually there @@ -85,6 +117,9 @@ in { # GNOME settings through home dconf.settings = { + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + }; "org/gnome/desktop/background" = { picture-options = "centered"; picture-uri = "${cfg.wallpaper}"; @@ -100,18 +135,25 @@ in { disable-user-extensions = false; enabled-extensions = [ "focus-changer@heartmire" - "workspace-indicator@gnome-shell-extensions.gcampax.github.com" - "fullscreen-avoider@noobsai.github.com" + "fullscreen-to-empty-workspace@aiono.dev" + "gnome-set-panel-monitor@tstarr.us" + "drive-menu@gnome-shell-extensions.gcampax.github.com" + "maximize-lonely-window@MrShuster" ]; }; + "org/gnome/shell/app-switcher" = { + current-workspace-only = true; + }; "org/gnome/mutter" = { + overlay-key = "Super"; center-new-windows = true; focus-change-on-pointer-rest = false; - overlay-key = "Super"; workspaces-only-on-primary = true; + dynamic-workspaces = true; }; "org/gnome/desktop/wm/preferences" = { - focus-mode = "sloppy"; + auto-raise = false; + raise-on-click = false; }; "org/gnome/shell/keybindings" = { switch-to-application-1 = []; @@ -129,22 +171,34 @@ in { screensaver = []; }; "org/gnome/desktop/wm/keybindings" = { - switch-to-workspace-1 = ["1"]; #  - switch-to-workspace-2 = ["2"]; #  - switch-to-workspace-3 = ["3"]; #  - switch-to-workspace-4 = ["4"]; #  - move-to-workspace-1 = ["1"]; #  - move-to-workspace-2 = ["2"]; #  - move-to-workspace-3 = ["3"]; #  - move-to-workspace-4 = ["4"]; #  - move-to-monitor-left = ["h"]; #  - move-to-monitor-right = ["l"]; #  - close = ["d"]; #  - toggle-fullscreen = [ "f" ]; #  - toggle-maximized = [ "t" ]; #  - raise-or-lower = [ "s" ]; #  - switch-windows = ["Tab"]; #  - switch-windows-backward = ["Tab"]; #  + switch-to-workspace-1 = ["1"]; + switch-to-workspace-2 = ["2"]; + switch-to-workspace-3 = ["3"]; + switch-to-workspace-4 = ["4"]; + switch-to-workspace-5 = ["5"]; + switch-to-workspace-6 = ["6"]; + switch-to-workspace-7 = ["7"]; + switch-to-workspace-8 = ["8"]; + switch-to-workspace-9 = ["9"]; + switch-to-workspace-0 = ["0"]; + move-to-workspace-1 = ["1"]; + move-to-workspace-2 = ["2"]; + move-to-workspace-3 = ["3"]; + move-to-workspace-4 = ["4"]; + move-to-workspace-5 = ["5"]; + move-to-workspace-6 = ["6"]; + move-to-workspace-7 = ["7"]; + move-to-workspace-8 = ["8"]; + move-to-workspace-9 = ["9"]; + move-to-workspace-0 = ["0"]; + move-to-monitor-left = ["h"]; + move-to-monitor-right = ["l"]; + close = ["d"]; + toggle-fullscreen = [ "f" ]; + toggle-maximized = [ "t" ]; + raise-or-lower = [ "s" ]; + switch-windows = ["Tab"]; + switch-windows-backward = ["Tab"]; minimize = []; }; } // generate_custom_keybindings {