diff --git a/user/home.nix b/user/home.nix index dd43bfc..c34a39c 100644 --- a/user/home.nix +++ b/user/home.nix @@ -18,6 +18,7 @@ in { ./mpv.nix ./mangohud.nix ./rnnoise.nix + ./mimeapps.nix inputs.hyprland.homeManagerModules.default ]; # Home Manager needs a bit of information about you and the @@ -47,8 +48,8 @@ in { ripgrep translate-shell - # xfce.thunar - gnome.nautilus + xfce.thunar + # gnome.nautilus pass wpass _gpg-unlock diff --git a/user/mimeapps.nix b/user/mimeapps.nix new file mode 100644 index 0000000..2985e46 --- /dev/null +++ b/user/mimeapps.nix @@ -0,0 +1,266 @@ +{ config, pkgs, lib, font, ... }: +let inherit (import ./variables.nix) key theme color accent font; +in { + config = { + xdg.mimeApps = let + + createMimeAssociation = (mime_prefix: application: mime_suffix: { + "${mime_prefix}/${mime_suffix}" = application; + }); + + createMimeAssociations = (mime_prefix: application: mime_suffixes: + lib.foldAttrs (n: _: n) { } + (map (createMimeAssociation mime_prefix application) mime_suffixes)); + + mimes = simple + // (createMimeAssociations "image" "pqiv.desktop" image_suffixes) + // (createMimeAssociations "video" "mpv.desktop" video_suffixes); + + simple = { + "text/plain" = "kak.desktop"; + "inode/directory" = "thunar.desktop"; + + "application/pdf" = "org.pwmt.zathura.desktop"; + "application/epub+zip" = "org.pwmt.zathura.desktop"; + + "text/html" = "firefox"; + "x-scheme-handler/http" = "firefox"; + "x-scheme-handler/https" = "firefox"; + + "x-scheme-handler/magnet" = "torrent.desktop"; + "application/x-bittorrent" = "torrent.desktop"; + + "x-scheme-handler/mailto" = "thunderbird.desktop"; + }; + + image_suffixes = [ + "bmp" + "cgm" + "dicom-rle" + "emf" + "example" + "fits" + "g3fax" + "gif" + "heic" + "heif" + "ief" + "jls" + "jp2" + "jpeg" + "jpeg" + "jpg" + "jpm" + "jpx" + "ktx" + "naplps" + "pjpeg" + "png" + "prs.btif" + "prs.pti" + "pwg-raster" + "svg+xml-compressed" + "svg+xml" + "t38" + "tiff-fx" + "tiff" + "vnd.adobe.photoshop" + "vnd.airzip.accelerator.azv" + "vnd.cns.inf2" + "vnd.dece.graphic" + "vnd.djvu" + "vnd.dvb.subtitle" + "vnd.dwg" + "vnd.dxf" + "vnd.fastbidsheet" + "vnd.fpx" + "vnd.fst" + "vnd.fujixerox.edmics-mmr" + "vnd.fujixerox.edmics-rlc" + "vnd.globalgraphics.pgb" + "vnd.microsoft.icon" + "vnd.mix" + "vnd.mozilla.apng" + "vnd.ms-modi" + "vnd.net-fpx" + "vnd.radiance" + "vnd.rn-realpix" + "vnd.sealed.png" + "vnd.sealedmedia.softseal.gif" + "vnd.sealedmedia.softseal.jpg" + "vnd.svf" + "vnd.tencent.tap" + "vnd.valve.source.texture" + "vnd.wap.wbmp" + "vnd.xiff" + "vnd.zbrush.pcx" + "webp" + "wmf" + "x-bmp" + "x-cmu-raster" + "x-compressed-xcf" + "x-emf" + "x-eps" + "x-exr" + "x-fits" + "x-freehand" + "x-gimp-gbr" + "x-gimp-gih" + "x-gimp-pat" + "x-icon" + "x-pcx" + "x-png" + "x-portable-anymap" + "x-portable-bitmap" + "x-portable-graymap" + "x-portable-pixmap" + "x-psd" + "x-psp" + "x-rgb" + "x-sgi" + "x-targa" + "x-tga" + "x-vsd" + "x-webp" + "x-wmf" + "x-xbitmap" + "x-xcdr" + "x-xcf" + "x-xcursor" + "x-xpixmap" + "x-xwindowdump" + ]; + + video_suffixes = [ + "1d-interleaved-parityfec" + "3gp" + "3gpp" + "3gpp-tt" + "3gpp2" + "BMPEG" + "BT656" + "CelB" + "DV" + "H261" + "H263" + "H263-1998" + "H263-2000" + "H264" + "H264-RCDO" + "H264-SVC" + "H265" + "JPEG" + "MP1S" + "MP2P" + "MP2T" + "MP4V-ES" + "MPV" + "SMPTE292M" + "VP8" + "avi" + "divx" + "dv" + "encaprtp" + "example" + "fli" + "flv" + "iso.segment" + "jpeg2000" + "mj2" + "mkv" + "mp2t" + "mp4" + "mp4v-es" + "mpeg" + "mpeg-system" + "mpeg4-generic" + "msvideo" + "nv" + "ogg" + "parityfec" + "pointer" + "quicktime" + "raptorfec" + "raw" + "rtp-enc-aescm128" + "rtploopback" + "rtx" + "ulpfec" + "vc1" + "vnd.CCTV" + "vnd.dece.hd" + "vnd.dece.mobile" + "vnd.dece.mp4" + "vnd.dece.pd" + "vnd.dece.sd" + "vnd.dece.video" + "vnd.directv.mpeg" + "vnd.directv.mpeg-tts" + "vnd.divx" + "vnd.dlna.mpeg-tts" + "vnd.dvb.file" + "vnd.fvt" + "vnd.hns.video" + "vnd.iptvforum.1dparityfec-1010" + "vnd.iptvforum.1dparityfec-2005" + "vnd.iptvforum.2dparityfec-1010" + "vnd.iptvforum.2dparityfec-2005" + "vnd.iptvforum.ttsavc" + "vnd.iptvforum.ttsmpeg2" + "vnd.motorola.video" + "vnd.motorola.videop" + "vnd.mpegurl" + "vnd.ms-playready.media.pyv" + "vnd.nokia.interleaved-multimedia" + "vnd.nokia.mp4vr" + "vnd.nokia.videovoip" + "vnd.objectvideo" + "vnd.radgamettools.bink" + "vnd.radgamettools.smacker" + "vnd.rn-realvideo" + "vnd.sealed.mpeg1" + "vnd.sealed.mpeg4" + "vnd.sealed.swf" + "vnd.sealedmedia.softseal.mov" + "vnd.uvvu.mp4" + "vnd.vivo" + "webm" + "x-anim" + "x-annodex" + "x-avi" + "x-flc" + "x-fli" + "x-flic" + "x-flv" + "x-javafx" + "x-m4v" + "x-matroska" + "x-matroska-3d" + "x-mpeg" + "x-mpeg-system" + "x-mpeg2" + "x-mpeg3" + "x-ms-afs" + "x-ms-asf" + "x-ms-asf-plugin" + "x-ms-asx" + "x-ms-wm" + "x-ms-wmv" + "x-ms-wmx" + "x-ms-wvx" + "x-ms-wvxvideo" + "x-msvideo" + "x-nsv" + "x-ogm" + "x-ogm+ogg" + "x-sgi-movie" + "x-theora" + "x-theora+ogg" + ]; + in { + enable = true; + defaultApplications = mimes; + }; + + }; +} diff --git a/user/sway.nix b/user/sway.nix index f83e1aa..385a64e 100644 --- a/user/sway.nix +++ b/user/sway.nix @@ -429,6 +429,7 @@ in { xdg-utils screenshotsh wf-recorder + wl-clipboard wtype ]; systemd.user.services = {