diff options
| author | Craig Jennings <c@cjennings.net> | 2026-03-07 14:31:27 -0600 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-03-07 14:31:27 -0600 |
| commit | f2e7bbc06d71d72b8299b971b210ec8e2b9a17f2 (patch) | |
| tree | 0bffd7ee3f4f5d053faf64a00bb034c225f12ef6 /dotfiles/common/.local | |
| parent | dd543e3b2c42dc4706ee016bb4ae376d9e981272 (diff) | |
feat: comprehensive mime type associations with emacsclient defaults
Merge all mime associations into mimeapps.list as single source of truth.
Set emacsclient as default for all text/code files. Add TypeScript mime
override, emacsclient.desktop with fixed Exec line, and simplify
resetmimetypes to just restow + rebuild caches.
Diffstat (limited to 'dotfiles/common/.local')
| -rwxr-xr-x | dotfiles/common/.local/bin/resetmimetypes | 228 | ||||
| -rw-r--r-- | dotfiles/common/.local/share/mime/packages/custom-types.xml | 9 |
2 files changed, 23 insertions, 214 deletions
diff --git a/dotfiles/common/.local/bin/resetmimetypes b/dotfiles/common/.local/bin/resetmimetypes index cfe5936..ff1a244 100755 --- a/dotfiles/common/.local/bin/resetmimetypes +++ b/dotfiles/common/.local/bin/resetmimetypes @@ -1,220 +1,20 @@ #!/usr/bin/env bash +# Reset mime type associations after package updates. +# Source of truth is the stowed mimeapps.list in dotfiles. +# This script clears caches, restores the stow symlink, and rebuilds databases. -# Remove Old Databases -rm ~/.config/mimeapps.list >> /dev/null 2>&1 -rm ~/.local/share/applications/mimeinfo.cache >> /dev/null 2>&1 -rm ~/.local/share/applications/mimeinfo.list >> /dev/null 2>&1 +set -euo pipefail -# Directory Node: nautilus -xdg-mime default org.gnome.Nautilus.desktop inode/directory +echo "Removing old caches..." +rm -f ~/.config/mimeapps.list +rm -f ~/.local/share/applications/mimeinfo.cache +rm -f ~/.local/share/applications/mimeinfo.list -# Audio Files: audacious - -# Audio Files: mpv -xdg-mime default mpv.desktop audio/basic -xdg-mime default mpv.desktop audio/flac.wav -xdg-mime default mpv.desktop audio/mp4 -xdg-mime default mpv.desktop audio/mpeg -xdg-mime default mpv.desktop audio/ogg -xdg-mime default mpv.desktop audio/opus -xdg-mime default mpv.desktop audio/vnd.rn-realaudio -xdg-mime default mpv.desktop audio/vnd.wav -xdg-mime default mpv.desktop audio/vorbis -xdg-mime default mpv.desktop audio/x-aiff -xdg-mime default mpv.desktop audio/x-mpegurl - -# Video Files: mpv - -# Video Files: vlc -xdg-mime default vlc.desktop application/mpeg4-iod -xdg-mime default vlc.desktop application/mpeg4-muxcodetable -xdg-mime default vlc.desktop application/ogg -xdg-mime default vlc.desktop application/vnd.apple.mpegurl -xdg-mime default vlc.desktop application/x-quicktime-media-link -xdg-mime default vlc.desktop application/x-quicktimeplayer -xdg-mime default vlc.desktop application/x-shockwave-flash -xdg-mime default vlc.desktop video/avi -xdg-mime default vlc.desktop video/divx -xdg-mime default vlc.desktop video/flv -xdg-mime default vlc.desktop video/mp4 -xdg-mime default vlc.desktop video/mp4v-es -xdg-mime default vlc.desktop video/mpeg -xdg-mime default vlc.desktop video/mpeg-system -xdg-mime default vlc.desktop video/msvideo -xdg-mime default vlc.desktop video/ogg -xdg-mime default vlc.desktop video/quicktime -xdg-mime default vlc.desktop video/vnd.divx -xdg-mime default vlc.desktop video/vnd.mpegurl -xdg-mime default vlc.desktop video/vnd.rn-realvideo -xdg-mime default vlc.desktop video/webm -xdg-mime default vlc.desktop video/x-avi -xdg-mime default vlc.desktop video/x-flv -xdg-mime default vlc.desktop video/x-m4v -xdg-mime default vlc.desktop video/x-matroska -xdg-mime default vlc.desktop video/x-mpeg -xdg-mime default vlc.desktop video/x-mpeg-system -xdg-mime default vlc.desktop video/x-mpeg2 -xdg-mime default vlc.desktop video/x-ms-wmv -xdg-mime default vlc.desktop video/x-msvideo -xdg-mime default vlc.desktop video/x-theora -xdg-mime default vlc.desktop video/x-theora+ogg -xdg-mime default vlc.desktop x-content/video-dvd -xdg-mime default vlc.desktop x-content/video-svcd -xdg-mime default vlc.desktop x-content/video-vcd - -# Images: feh -xdg-mime default feh.desktop image/bmp -xdg-mime default feh.desktop image/gif -xdg-mime default feh.desktop image/jpeg -xdg-mime default feh.desktop image/jpg -xdg-mime default feh.desktop image/png -xdg-mime default feh.desktop image/tiff -xdg-mime default feh.desktop image/webp -xdg-mime default feh.desktop image/avif -xdg-mime default feh.desktop image/heic -xdg-mime default feh.desktop image/heif -xdg-mime default feh.desktop image/svg+xml -xdg-mime default feh.desktop image/x-bmp -xdg-mime default feh.desktop image/x-eps -xdg-mime default feh.desktop image/x-ico -xdg-mime default feh.desktop image/x-icon -xdg-mime default feh.desktop image/x-xbitmap -xdg-mime default feh.desktop image/x-xpixmap - -# Torrent Files: Transmission Remote -xdg-mime default io.github.TransmissionRemoteGtk-gtk.desktop application/x-bittorrent -xdg-mime default io.github.TransmissionRemoteGtk.desktop x-scheme-handler/magnet - -# Web Browser: Chromium Browser - -# Web Browser: Google-Chrome Browser - -# Web Browser: Google Chrome Stable -xdg-mime default google-chrome-stable.desktop application/rdf+xml -xdg-mime default google-chrome-stable.desktop application/rss+xml -xdg-mime default google-chrome-stable.desktop application/xhtml+xml -xdg-mime default google-chrome-stable.desktop application/xhtml_xml -xdg-mime default google-chrome-stable.desktop application/xml -xdg-mime default google-chrome-stable.desktop text/html -xdg-mime default google-chrome-stable.desktop text/xml -xdg-mime default google-chrome-stable.desktop x-scheme-handler/http -xdg-mime default google-chrome-stable.desktop x-scheme-handler/https - -# Mobi Ebooks: calibre-ebook-reader -xdg-mime default calibre-ebook-viewer.desktop application/x-mobi8-ebook -xdg-mime default calibre-ebook-viewer.desktop application/x-mobipocket-ebook - -# Text and Source Code: Emacsclient -xdg-mime default emacsclient.desktop application/x-shellscript -xdg-mime default emacsclient.desktop text/english -xdg-mime default emacsclient.desktop text/markdown -xdg-mime default emacsclient.desktop text/plain -xdg-mime default emacsclient.desktop text/x-c -xdg-mime default emacsclient.desktop text/x-c++ -xdg-mime default emacsclient.desktop text/x-c++hdr -xdg-mime default emacsclient.desktop text/x-c++src -xdg-mime default emacsclient.desktop text/x-chdr -xdg-mime default emacsclient.desktop text/x-csrc -xdg-mime default emacsclient.desktop text/x-java -xdg-mime default emacsclient.desktop text/x-makefile -xdg-mime default emacsclient.desktop text/x-moc -xdg-mime default emacsclient.desktop text/x-pascal -xdg-mime default emacsclient.desktop text/x-tcl -xdg-mime default emacsclient.desktop text/x-tex - -# PDF/EPUB: Emacsclient - -# PDF ePUB: Zathura -xdg-mime default org.pwmt.zathura.desktop application/eps -xdg-mime default org.pwmt.zathura.desktop application/epub+zip -xdg-mime default org.pwmt.zathura.desktop application/oxps -xdg-mime default org.pwmt.zathura.desktop application/pdf -xdg-mime default org.pwmt.zathura.desktop application/postscript -xdg-mime default org.pwmt.zathura.desktop application/ps -xdg-mime default org.pwmt.zathura.desktop application/x-fictionbook -xdg-mime default org.pwmt.zathura.desktop image/eps -xdg-mime default org.pwmt.zathura.desktop image/vnd.djvu -xdg-mime default org.pwmt.zathura.desktop image/vnd.djvu+multipage - -# PDF ePUB: Foliate - -# PDF ePUB: Evince - -# Comics Files: Zathura -xdg-mime default org.pwmt.zathura.desktop application/vnd.comicbook+zip -xdg-mime default org.pwmt.zathura.desktop application/vnd.comicbook-rar - -# Spreadsheets: Libreoffice Calc -xdg-mime default libreoffice-calc.desktop application/vnd.ms-excel -xdg-mime default libreoffice-calc.desktop application/vnd.openxmlformats-officedocument.spreadsheetml.sheet -xdg-mime default libreoffice-calc.desktop application/vnd.oasis.opendocument.spreadsheet -xdg-mime default libreoffice-calc.desktop application/vnd.oasis.opendocument.spreadsheet-template -xdg-mime default libreoffice-calc.desktop text/csv -xdg-mime default libreoffice-calc.desktop text/tab-separated-values - -# Presentations: Libreoffice Impress -xdg-mime default libreoffice-impress.desktop application/vnd.ms-powerpoint -xdg-mime default libreoffice-impress.desktop application/vnd.openxmlformats-officedocument.presentationml.presentation -xdg-mime default libreoffice-impress.desktop application/vnd.oasis.opendocument.presentation -xdg-mime default libreoffice-impress.desktop application/vnd.oasis.opendocument.presentation-template - -# Libreoffice Writer -xdg-mime default libreoffice-writer.desktop application/clarisworks -xdg-mime default libreoffice-writer.desktop application/macwriteii -xdg-mime default libreoffice-writer.desktop application/msword -xdg-mime default libreoffice-writer.desktop application/prs.plucker -xdg-mime default libreoffice-writer.desktop application/rtf -xdg-mime default libreoffice-writer.desktop application/vnd.lotus-wordpro -xdg-mime default libreoffice-writer.desktop application/vnd.ms-word -xdg-mime default libreoffice-writer.desktop application/vnd.ms-word.template.macroEnabled.12 -xdg-mime default libreoffice-writer.desktop application/vnd.ms-works -xdg-mime default libreoffice-writer.desktop application/vnd.oasis.opendocument.text -xdg-mime default libreoffice-writer.desktop application/vnd.oasis.opendocument.text-flat-xml -xdg-mime default libreoffice-writer.desktop application/vnd.oasis.opendocument.text-master -xdg-mime default libreoffice-writer.desktop application/vnd.oasis.opendocument.text-master-template -xdg-mime default libreoffice-writer.desktop application/vnd.oasis.opendocument.text-template -xdg-mime default libreoffice-writer.desktop application/vnd.oasis.opendocument.text-web -xdg-mime default libreoffice-writer.desktop application/vnd.openxmlformats-officedocument -xdg-mime default libreoffice-writer.desktop application/vnd.openxmlformats-officedocument.wordprocessingml.document -xdg-mime default libreoffice-writer.desktop application/vnd.palm -xdg-mime default libreoffice-writer.desktop application/vnd.stardivision.writer-global -xdg-mime default libreoffice-writer.desktop application/vnd.sun.xml.writer -xdg-mime default libreoffice-writer.desktop application/vnd.sun.xml.writer.global -xdg-mime default libreoffice-writer.desktop application/vnd.sun.xml.writer.template -xdg-mime default libreoffice-writer.desktop application/vnd.wordperfect -xdg-mime default libreoffice-writer.desktop application/wordperfect -xdg-mime default libreoffice-writer.desktop application/x-abiword -xdg-mime default libreoffice-writer.desktop application/x-aportisdoc -xdg-mime default libreoffice-writer.desktop application/x-doc -xdg-mime default libreoffice-writer.desktop application/x-extension-txt -xdg-mime default libreoffice-writer.desktop application/x-fictionbook+xml -xdg-mime default libreoffice-writer.desktop application/x-hwp -xdg-mime default libreoffice-writer.desktop application/x-iwork-pages-sffpages -xdg-mime default libreoffice-writer.desktop application/x-mswrite -xdg-mime default libreoffice-writer.desktop application/x-sony-bbeb -xdg-mime default libreoffice-writer.desktop application/x-starwriter -xdg-mime default libreoffice-writer.desktop application/x-t602 -xdg-mime default libreoffice-writer.desktop text/rtf - -# Archives: file-roller -xdg-mime default org.gnome.FileRoller.desktop application/zip -xdg-mime default org.gnome.FileRoller.desktop application/x-tar -xdg-mime default org.gnome.FileRoller.desktop application/gzip -xdg-mime default org.gnome.FileRoller.desktop application/x-gzip -xdg-mime default org.gnome.FileRoller.desktop application/x-compressed-tar -xdg-mime default org.gnome.FileRoller.desktop application/x-bzip2 -xdg-mime default org.gnome.FileRoller.desktop application/x-bzip2-compressed-tar -xdg-mime default org.gnome.FileRoller.desktop application/x-xz -xdg-mime default org.gnome.FileRoller.desktop application/x-xz-compressed-tar -xdg-mime default org.gnome.FileRoller.desktop application/x-7z-compressed -xdg-mime default org.gnome.FileRoller.desktop application/x-rar -xdg-mime default org.gnome.FileRoller.desktop application/vnd.rar -xdg-mime default org.gnome.FileRoller.desktop application/x-zstd-compressed-tar - -# FTP Scheme-Handler: Filezilla -xdg-mime default filezilla.desktop x-scheme-handler/ftp - -# Org-Protocol Scheme-Handler: emacsclient -xdg-mime default org-protocol.desktop x-scheme-handler/org-protocol +echo "Restowing dotfiles..." +cd ~/code/archsetup && make restow hyprland +echo "Rebuilding databases..." update-desktop-database ~/.local/share/applications/ +update-mime-database ~/.local/share/mime/ + +echo "Done. Mime types reset." diff --git a/dotfiles/common/.local/share/mime/packages/custom-types.xml b/dotfiles/common/.local/share/mime/packages/custom-types.xml new file mode 100644 index 0000000..30600c2 --- /dev/null +++ b/dotfiles/common/.local/share/mime/packages/custom-types.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info"> + <mime-type type="application/x-typescript"> + <comment>TypeScript source</comment> + <glob pattern="*.ts" weight="80"/> + <glob pattern="*.tsx" weight="80"/> + <sub-class-of type="text/javascript"/> + </mime-type> +</mime-info> |
