diff --git a/hosts/common/home/default.nix b/hosts/common/home/default.nix index 5e7a6ee58..1d8d669c8 100644 --- a/hosts/common/home/default.nix +++ b/hosts/common/home/default.nix @@ -9,6 +9,7 @@ ./keyring.nix ./kitty.nix ./libreoffice.nix + ./mime.nix ./mpv.nix ./neovim.nix ./newsflash.nix diff --git a/hosts/common/home/mime.nix b/hosts/common/home/mime.nix new file mode 100644 index 000000000..ea6454315 --- /dev/null +++ b/hosts/common/home/mime.nix @@ -0,0 +1,41 @@ +{ config, lib, sane-lib, ...}: + +let + www = config.sane.web-browser.browser.desktop; + pdf = "org.gnome.Evince.desktop"; + md = "obsidian.desktop"; + thumb = "org.gnome.gThumb.desktop"; + video = "vlc.desktop"; + # audio = "mpv.desktop"; + audio = "vlc.desktop"; +in +lib.mkIf config.sane.home-manager.enable +{ + + # the xdg mime type for a file can be found with: + # - `xdg-mime query filetype path/to/thing.ext` + xdg.mime.enable = true; + xdg.mime.defaultApplications = { + # HTML + "text/html" = [ www ]; + "x-scheme-handler/http" = [ www ]; + "x-scheme-handler/https" = [ www ]; + "x-scheme-handler/about" = [ www ]; + "x-scheme-handler/unknown" = [ www ]; + # RICH-TEXT DOCUMENTS + "application/pdf" = [ pdf ]; + "text/markdown" = [ md ]; + # IMAGES + "image/heif" = [ thumb ]; # apple codec + "image/png" = [ thumb ]; + "image/jpeg" = [ thumb ]; + # VIDEO + "video/mp4" = [ video ]; + "video/quicktime" = [ video ]; + "video/x-matroska" = [ video ]; + # AUDIO + "audio/flac" = [ audio ]; + "audio/mpeg" = [ audio ]; + "audio/x-vorbis+ogg" = [ audio ]; + }; +} diff --git a/modules/home-manager/default.nix b/modules/home-manager/default.nix index 6500a6baa..5cad93c82 100644 --- a/modules/home-manager/default.nix +++ b/modules/home-manager/default.nix @@ -51,41 +51,6 @@ in home.username = "colin"; home.homeDirectory = "/home/colin"; - # the xdg mime type for a file can be found with: - # - `xdg-mime query filetype path/to/thing.ext` - xdg.mimeApps.enable = true; - xdg.mimeApps.defaultApplications = let - www = sysconfig.sane.web-browser.browser.desktop; - pdf = "org.gnome.Evince.desktop"; - md = "obsidian.desktop"; - thumb = "org.gnome.gThumb.desktop"; - video = "vlc.desktop"; - # audio = "mpv.desktop"; - audio = "vlc.desktop"; - in { - # HTML - "text/html" = [ www ]; - "x-scheme-handler/http" = [ www ]; - "x-scheme-handler/https" = [ www ]; - "x-scheme-handler/about" = [ www ]; - "x-scheme-handler/unknown" = [ www ]; - # RICH-TEXT DOCUMENTS - "application/pdf" = [ pdf ]; - "text/markdown" = [ md ]; - # IMAGES - "image/heif" = [ thumb ]; # apple codec - "image/png" = [ thumb ]; - "image/jpeg" = [ thumb ]; - # VIDEO - "video/mp4" = [ video ]; - "video/quicktime" = [ video ]; - "video/x-matroska" = [ video ]; - # AUDIO - "audio/flac" = [ audio ]; - "audio/mpeg" = [ audio ]; - "audio/x-vorbis+ogg" = [ audio ]; - }; - programs = lib.mkMerge [ { home-manager.enable = true; # this lets home-manager manage dot-files in user dirs, i think