puter/common/home-manager/desktop.nix
2023-09-17 13:31:20 +02:00

205 lines
5 KiB
Nix

{
pkgs,
inputs,
config,
lib,
...
}: {
imports = [
./features/bottom.nix
./features/cava.nix
./features/cursor.nix
./features/darkman.nix
./features/direnv.nix
./features/fish.nix
./features/fnott.nix
./features/foot.nix
./features/fuzzel.nix
./features/gammastep.nix
./features/git.nix
./features/helix.nix
./features/i3status-rust.nix
./features/imv.nix
./features/joshuto.nix
./features/mmtc.nix
./features/mpd.nix
./features/mpris-proxy.nix
./features/mpv.nix
./features/qutebrowser
./features/readline.nix
./features/ssh.nix
./features/swayidle.nix
./features/swaylock.nix
./features/sway.nix
./features/zathura.nix
];
home.packages = with pkgs; [
appimage-run
wineWowPackages.unstableFull
bat
curl
ffmpeg
file
gitui
hexyl
hyperfine
imagemagick
ncdu
netcat-openbsd
nmap
procs
progress
pv
rage
ripdrag
rsync
sops
systeroid
tokei
tutanota-desktop
vscodium
wf-recorder
];
xdg = {
enable = true;
mime.enable = true;
mimeApps = {
enable = true;
defaultApplications = let
mkDefaultApplication = mimeTypes: desktopFile: (lib.genAttrs mimeTypes (_: desktopFile));
in
lib.attrsets.mergeAttrsList [
(
mkDefaultApplication [
"x-scheme-handler/http"
"x-scheme-handler/https"
"text/html"
] "qutebrowser.desktop"
)
(
mkDefaultApplication [
"x-scheme-handler/mailto"
] "tutanota-desktop.desktop"
)
# TODO
# (
# mkDefaultApplication [
# "inode/directory"
# ] ""
# )
# (
# mkDefaultApplication [
# "x-scheme-handler/geo"
# ] ""
# )
(
mkDefaultApplication [
"image/png"
"image/jpeg"
"image/webp"
"image/avif"
"image/heif"
"image/bmp"
"image/x-icns"
] "imv.desktop"
)
(
mkDefaultApplication [
"audio/aac"
"audio/mp4"
"audio/mpeg"
"audio/mpegurl"
"audio/ogg"
"audio/vnd.rn-realaudio"
"audio/vorbis"
"audio/x-flac"
"audio/x-mp3"
"audio/x-mpegurl"
"audio/x-ms-wma"
"audio/x-musepack"
"audio/x-oggflac"
"audio/x-pn-realaudio"
"audio/x-scpls"
"audio/x-speex"
"audio/x-vorbis"
"audio/x-vorbis+ogg"
"audio/x-wav"
] "mpv.desktop"
)
(
mkDefaultApplication [
"application/pdf"
] "zathura.desktop"
)
(
mkDefaultApplication [
# TODO: Add more text filetypes
"text/plain"
"text/x-cmake"
"text/markdown"
"application/x-docbook+xml"
"application/json"
"application/x-yaml"
] "helix.desktop"
)
(
mkDefaultApplication [
"video/3gp"
"video/3gpp2"
"video/divx"
"video/fli"
"video/mp2t"
"video/mp4v-es"
"video/msvideo"
"video/quicktime"
"video/vnd.mpegurl"
"video/x-avi"
"video/x-m4v"
"video/x-mpeg2"
"video/x-msvideo"
"video/x-ms-wmx"
"video/x-ogm+ogg"
"video/x-theora+ogg"
"video/3gpp"
"video/avi"
"video/dv"
"video/flv"
"video/mp4"
"video/mpeg"
"video/ogg"
"video/vnd.divx"
"video/vnd.rn-realvideo"
"video/x-flv"
"video/x-matroska"
"video/x-ms-asf"
"video/x-ms-wmv"
"video/x-ogm"
"video/x-theora"
"application/x-matroska"
] "mpv.desktop"
)
];
};
userDirs = {
enable = true;
createDirectories = true;
desktop = "${config.home.homeDirectory}/desk";
documents = "${config.home.homeDirectory}/doc";
download = "${config.home.homeDirectory}/dl";
music = "${config.home.homeDirectory}/music";
pictures = "${config.home.homeDirectory}/pic";
publicShare = "${config.home.homeDirectory}/pub";
templates = "${config.home.homeDirectory}/tpl";
videos = "${config.home.homeDirectory}/vid";
};
};
xdg.dataFile."flatpak/overrides/global".text = ''
[Context]
filesystems=/nix/store:ro;${config.xdg.dataHome}/fonts:ro;${config.xdg.dataHome}/icons:ro
'';
}