summaryrefslogtreecommitdiff
path: root/dotfiles
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-03-07 14:31:27 -0600
committerCraig Jennings <c@cjennings.net>2026-03-07 14:31:27 -0600
commitf2e7bbc06d71d72b8299b971b210ec8e2b9a17f2 (patch)
tree0bffd7ee3f4f5d053faf64a00bb034c225f12ef6 /dotfiles
parentdd543e3b2c42dc4706ee016bb4ae376d9e981272 (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')
-rw-r--r--dotfiles/common/.config/mimeapps.list167
-rwxr-xr-xdotfiles/common/.local/bin/resetmimetypes228
-rw-r--r--dotfiles/common/.local/share/mime/packages/custom-types.xml9
-rw-r--r--dotfiles/hyprland/.local/share/applications/emacsclient.desktop13
4 files changed, 203 insertions, 214 deletions
diff --git a/dotfiles/common/.config/mimeapps.list b/dotfiles/common/.config/mimeapps.list
index d93120f..aac610f 100644
--- a/dotfiles/common/.config/mimeapps.list
+++ b/dotfiles/common/.config/mimeapps.list
@@ -1,15 +1,38 @@
[Default Applications]
+
+# Web browser
text/html=google-chrome.desktop
x-scheme-handler/http=google-chrome.desktop
x-scheme-handler/https=google-chrome.desktop
x-scheme-handler/about=google-chrome.desktop
x-scheme-handler/unknown=google-chrome.desktop
+application/rdf+xml=google-chrome.desktop
+application/rss+xml=google-chrome.desktop
+application/xhtml+xml=google-chrome.desktop
+application/xhtml_xml=google-chrome.desktop
+
+# File manager
+inode/directory=org.gnome.Nautilus.desktop
+
+# PDF, ePub, comics, documents (zathura)
application/pdf=org.pwmt.zathura.desktop
application/epub+zip=org.pwmt.zathura.desktop
application/x-mobipocket-ebook=org.pwmt.zathura.desktop
application/vnd.comicbook+zip=org.pwmt.zathura.desktop
application/vnd.comicbook-rar=org.pwmt.zathura.desktop
+application/eps=org.pwmt.zathura.desktop
+application/postscript=org.pwmt.zathura.desktop
+application/oxps=org.pwmt.zathura.desktop
+application/x-fictionbook=org.pwmt.zathura.desktop
+image/eps=org.pwmt.zathura.desktop
+image/vnd.djvu=org.pwmt.zathura.desktop
+image/vnd.djvu+multipage=org.pwmt.zathura.desktop
+
+# eBooks (calibre)
+application/x-mobi8-ebook=calibre-ebook-viewer.desktop
+
+# Images (feh)
image/bmp=feh.desktop
image/gif=feh.desktop
image/jpeg=feh.desktop
@@ -18,8 +41,14 @@ image/pjpeg=feh.desktop
image/png=feh.desktop
image/tiff=feh.desktop
image/webp=feh.desktop
+image/avif=feh.desktop
image/heic=feh.desktop
+image/heif=feh.desktop
+image/svg+xml=feh.desktop
image/x-bmp=feh.desktop
+image/x-eps=feh.desktop
+image/x-ico=feh.desktop
+image/x-icon=feh.desktop
image/x-pcx=feh.desktop
image/x-png=feh.desktop
image/x-portable-anymap=feh.desktop
@@ -28,6 +57,9 @@ image/x-portable-graymap=feh.desktop
image/x-portable-pixmap=feh.desktop
image/x-tga=feh.desktop
image/x-xbitmap=feh.desktop
+image/x-xpixmap=feh.desktop
+
+# Video (mpv)
video/mp4=mpv.desktop
video/mpeg=mpv.desktop
video/ogg=mpv.desktop
@@ -38,10 +70,145 @@ video/quicktime=mpv.desktop
video/x-flv=mpv.desktop
video/3gpp=mpv.desktop
video/x-ms-wmv=mpv.desktop
+video/avi=mpv.desktop
+video/divx=mpv.desktop
+video/flv=mpv.desktop
+video/mp4v-es=mpv.desktop
+video/mpeg-system=mpv.desktop
+video/msvideo=mpv.desktop
+video/vnd.divx=mpv.desktop
+video/vnd.mpegurl=mpv.desktop
+video/vnd.rn-realvideo=mpv.desktop
+video/x-avi=mpv.desktop
+video/x-m4v=mpv.desktop
+video/x-mpeg=mpv.desktop
+video/x-mpeg-system=mpv.desktop
+video/x-mpeg2=mpv.desktop
+video/x-theora=mpv.desktop
+video/x-theora+ogg=mpv.desktop
+x-content/video-dvd=mpv.desktop
+x-content/video-svcd=mpv.desktop
+x-content/video-vcd=mpv.desktop
+application/ogg=mpv.desktop
+application/vnd.apple.mpegurl=mpv.desktop
+
+# Audio (mpv)
audio/mpeg=mpv.desktop
audio/ogg=mpv.desktop
audio/flac=mpv.desktop
audio/x-wav=mpv.desktop
audio/mp4=mpv.desktop
+audio/basic=mpv.desktop
+audio/opus=mpv.desktop
+audio/vnd.rn-realaudio=mpv.desktop
+audio/vnd.wav=mpv.desktop
+audio/vorbis=mpv.desktop
+audio/x-aiff=mpv.desktop
+audio/x-mpegurl=mpv.desktop
+
+# Text and source code (emacsclient)
+text/plain=emacsclient.desktop
+text/english=emacsclient.desktop
+text/x-readme=emacsclient.desktop
+text/x-csrc=emacsclient.desktop
+text/x-chdr=emacsclient.desktop
+text/x-c=emacsclient.desktop
+text/x-c++=emacsclient.desktop
+text/x-c++src=emacsclient.desktop
+text/x-c++hdr=emacsclient.desktop
+text/x-java=emacsclient.desktop
+text/x-python=emacsclient.desktop
+text/x-ruby=emacsclient.desktop
+text/x-rust=emacsclient.desktop
+text/x-go=emacsclient.desktop
+text/x-lua=emacsclient.desktop
+text/x-perl=emacsclient.desktop
+text/x-haskell=emacsclient.desktop
+text/x-moc=emacsclient.desktop
+text/x-pascal=emacsclient.desktop
+text/x-tcl=emacsclient.desktop
+text/javascript=emacsclient.desktop
+application/javascript=emacsclient.desktop
+application/x-typescript=emacsclient.desktop
+text/vnd.trolltech.linguist=emacsclient.desktop
+text/css=emacsclient.desktop
+application/json=emacsclient.desktop
+application/xml=emacsclient.desktop
+text/xml=emacsclient.desktop
+text/x-scss=emacsclient.desktop
+text/x-sass=emacsclient.desktop
+application/x-shellscript=emacsclient.desktop
+text/x-makefile=emacsclient.desktop
+text/x-cmake=emacsclient.desktop
+application/toml=emacsclient.desktop
+application/x-yaml=emacsclient.desktop
+text/x-ini=emacsclient.desktop
+text/x-systemd-unit=emacsclient.desktop
+text/markdown=emacsclient.desktop
+text/org=emacsclient.desktop
+text/x-tex=emacsclient.desktop
+text/x-latex=emacsclient.desktop
+application/x-desktop=emacsclient.desktop
+text/x-diff=emacsclient.desktop
+text/x-patch=emacsclient.desktop
+text/x-sql=emacsclient.desktop
+text/x-lisp=emacsclient.desktop
+text/x-emacs-lisp=emacsclient.desktop
+text/x-scheme=emacsclient.desktop
+text/x-log=emacsclient.desktop
+text/x-nfo=emacsclient.desktop
+application/x-docbook+xml=emacsclient.desktop
+text/x-dockerfile=emacsclient.desktop
+application/x-wine-extension-ini=emacsclient.desktop
+
+# Spreadsheets (libreoffice calc)
+application/vnd.ms-excel=libreoffice-calc.desktop
+application/vnd.openxmlformats-officedocument.spreadsheetml.sheet=libreoffice-calc.desktop
+application/vnd.oasis.opendocument.spreadsheet=libreoffice-calc.desktop
+application/vnd.oasis.opendocument.spreadsheet-template=libreoffice-calc.desktop
+text/csv=libreoffice-calc.desktop
+text/tab-separated-values=libreoffice-calc.desktop
+
+# Presentations (libreoffice impress)
+application/vnd.ms-powerpoint=libreoffice-impress.desktop
+application/vnd.openxmlformats-officedocument.presentationml.presentation=libreoffice-impress.desktop
+application/vnd.oasis.opendocument.presentation=libreoffice-impress.desktop
+application/vnd.oasis.opendocument.presentation-template=libreoffice-impress.desktop
+
+# Word processing (libreoffice writer)
+application/msword=libreoffice-writer.desktop
+application/vnd.ms-word=libreoffice-writer.desktop
+application/vnd.openxmlformats-officedocument.wordprocessingml.document=libreoffice-writer.desktop
+application/vnd.oasis.opendocument.text=libreoffice-writer.desktop
+application/vnd.oasis.opendocument.text-template=libreoffice-writer.desktop
+application/rtf=libreoffice-writer.desktop
+text/rtf=libreoffice-writer.desktop
+
+# Archives (file-roller)
+application/zip=org.gnome.FileRoller.desktop
+application/x-tar=org.gnome.FileRoller.desktop
+application/gzip=org.gnome.FileRoller.desktop
+application/x-gzip=org.gnome.FileRoller.desktop
+application/x-compressed-tar=org.gnome.FileRoller.desktop
+application/x-bzip2=org.gnome.FileRoller.desktop
+application/x-bzip2-compressed-tar=org.gnome.FileRoller.desktop
+application/x-xz=org.gnome.FileRoller.desktop
+application/x-xz-compressed-tar=org.gnome.FileRoller.desktop
+application/x-7z-compressed=org.gnome.FileRoller.desktop
+application/x-rar=org.gnome.FileRoller.desktop
+application/vnd.rar=org.gnome.FileRoller.desktop
+application/x-zstd-compressed-tar=org.gnome.FileRoller.desktop
+
+# Torrents (transmission)
+application/x-bittorrent=io.github.TransmissionRemoteGtk.desktop
+x-scheme-handler/magnet=io.github.TransmissionRemoteGtk.desktop
+
+# FTP (filezilla)
+x-scheme-handler/ftp=filezilla.desktop
+
+# Org-protocol (emacsclient)
+x-scheme-handler/org-protocol=org-protocol.desktop
+
+# Signal
x-scheme-handler/sgnl=signal.desktop
x-scheme-handler/signalcaptcha=signal.desktop
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>
diff --git a/dotfiles/hyprland/.local/share/applications/emacsclient.desktop b/dotfiles/hyprland/.local/share/applications/emacsclient.desktop
new file mode 100644
index 0000000..c1771b9
--- /dev/null
+++ b/dotfiles/hyprland/.local/share/applications/emacsclient.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Name=Emacs (Client)
+GenericName=Text Editor
+Comment=Edit text
+MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
+Exec=/usr/bin/emacsclient --alternate-editor= --create-frame %F
+Icon=emacs
+Type=Application
+Terminal=false
+Categories=Development;TextEditor;
+StartupNotify=true
+StartupWMClass=Emacs
+Keywords=emacsclient;