129 lines
3.5 KiB
Nix
129 lines
3.5 KiB
Nix
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
|
|
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
|
|
{ lib, config, pkgs, flakeRoot, ... }:
|
|
|
|
let
|
|
username = config.defaultUser or "henrov";
|
|
homeDir = "/home/${username}";
|
|
|
|
basePortal = pkgs.xdg-desktop-portal-gtk;
|
|
hyprlandPortal = pkgs.xdg-desktop-portal-hyprland;
|
|
|
|
in
|
|
{
|
|
#################################
|
|
# XDG Desktop Portals (system)
|
|
#################################
|
|
xdg.portal = {
|
|
enable = true;
|
|
xdgOpenUsePortal = true;
|
|
|
|
extraPortals = [
|
|
basePortal
|
|
hyprlandPortal
|
|
];
|
|
|
|
config = {
|
|
common = {
|
|
default = [ "hyprland" "gtk" ];
|
|
};
|
|
|
|
hyprland = {
|
|
default = [ "hyprland" "gtk" ];
|
|
|
|
"org.freedesktop.impl.portal.FileChooser" = [ "gtk" ];
|
|
"org.freedesktop.impl.portal.Settings" = [ "gtk" ];
|
|
"org.freedesktop.impl.portal.Screencast" = [ "hyprland" ];
|
|
"org.freedesktop.impl.portal.Screenshot" = [ "hyprland" ];
|
|
};
|
|
};
|
|
};
|
|
|
|
#################################
|
|
# System packages
|
|
#################################
|
|
environment.systemPackages = with pkgs; [
|
|
basePortal
|
|
hyprlandPortal
|
|
xdg-utils
|
|
];
|
|
|
|
#################################
|
|
# Home Manager user config
|
|
#################################
|
|
home-manager.users.${username} = {
|
|
|
|
#################################
|
|
# XDG user directories
|
|
#################################
|
|
xdg.userDirs = {
|
|
enable = true;
|
|
createDirectories = true;
|
|
|
|
desktop = null;
|
|
download = "${homeDir}/Downloads";
|
|
documents = "${homeDir}/Documents";
|
|
pictures = "${homeDir}/Pictures";
|
|
music = "${homeDir}/Music";
|
|
publicShare = "${homeDir}/PublicShare";
|
|
templates = "${homeDir}/Templates";
|
|
videos = "${homeDir}/Videos";
|
|
|
|
extraConfig = {
|
|
XDG_PROJECTS_DIR = "${homeDir}/Projects";
|
|
XDG_WORK_DIR = "${homeDir}/Work";
|
|
};
|
|
};
|
|
|
|
#################################
|
|
# MIME applications (FULL TRANSLATION)
|
|
#################################
|
|
xdg.mimeApps = {
|
|
enable = true;
|
|
|
|
# OPTIONAL but recommended to avoid clobber errors
|
|
force = true;
|
|
|
|
#################################
|
|
# Default Applications
|
|
#################################
|
|
defaultApplications = {
|
|
# Web links
|
|
"x-scheme-handler/http" = "zen.desktop";
|
|
"x-scheme-handler/https" = "zen.desktop";
|
|
"x-scheme-handler/chrome" = "zen.desktop";
|
|
|
|
# Web / HTML
|
|
"text/html" = "zen.desktop";
|
|
|
|
"application/xhtml+xml" = "zen.desktop";
|
|
"application/x-extension-html" = "zen.desktop";
|
|
"application/x-extension-htm" = "zen.desktop";
|
|
"application/x-extension-shtml" = "zen.desktop";
|
|
"application/x-extension-xhtml" = "zen.desktop";
|
|
"application/x-extension-xht" = "zen.desktop";
|
|
|
|
# Text files → Zed
|
|
"text/plain" = "dev.zed.Zed.desktop";
|
|
|
|
# Shell scripts (you had dual intent here)
|
|
"application/x-shellscript" = "kitty-open.desktop";
|
|
};
|
|
|
|
#################################
|
|
# Added Associations (fallback / "Open With")
|
|
#################################
|
|
associations.added = {
|
|
"text/plain" = [
|
|
"dev.zed.Zed.desktop"
|
|
];
|
|
|
|
"application/x-shellscript" = [
|
|
"dev.zed.Zed.desktop"
|
|
"kitty-open.desktop"
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|