Files
lux/modules/capabilities/desktop-defaults.nix
T
2026-09-22 21:44:35 +02:00

106 lines
2.5 KiB
Nix

{
flake.modules.homeManager.desktop-commands =
{ lib, ... }:
{
options.desktop = {
commands = {
browser = lib.mkOption {
type = lib.types.nonEmptyListOf lib.types.nonEmptyStr;
};
launcher = lib.mkOption {
type = lib.types.nonEmptyListOf lib.types.nonEmptyStr;
};
terminal = lib.mkOption {
type = lib.types.nonEmptyListOf lib.types.nonEmptyStr;
};
};
autostart = lib.mkOption {
type = lib.types.listOf (lib.types.nonEmptyListOf lib.types.nonEmptyStr);
default = [ ];
};
};
};
flake.modules.homeManager.vivaldi =
{ lib, pkgs, ... }:
let
command = lib.getExe pkgs.vivaldi;
in
{
desktop.commands.browser = [ command ];
home = {
packages = [ pkgs.vivaldi ];
sessionVariables.BROWSER = command;
};
xdg.mimeApps.defaultApplicationPackages = [ pkgs.vivaldi ];
};
flake.modules.homeManager.imv =
{ pkgs, ... }:
{
programs.imv.enable = true;
xdg.mimeApps.defaultApplicationPackages = [ pkgs.imv ];
};
flake.modules.homeManager.sioyek =
{ pkgs, ... }:
{
programs.sioyek.enable = true;
xdg.mimeApps.defaultApplicationPackages = [ pkgs.sioyek ];
};
flake.modules.homeManager.discord = {
programs.discord = {
enable = true;
settings.SKIP_HOST_UPDATE = true;
};
};
flake.modules.homeManager.workstation-apps =
{ pkgs, ... }:
{
home.packages = with pkgs; [
spotify
unzip
dbeaver-bin
onlyoffice-desktopeditors
pinta
];
};
flake.modules.homeManager.xdg =
{ config, ... }:
let
homeDir = config.home.homeDirectory;
localDir = "${homeDir}/.local";
mediaDir = "${homeDir}/media";
in
{
home.preferXdgDirectories = true;
xdg = {
enable = true;
cacheHome = "${localDir}/cache";
userDirs = {
enable = true;
createDirectories = true;
setSessionVariables = true;
download = "${homeDir}/downloads";
documents = "${homeDir}/documents";
projects = "${homeDir}/projects";
music = "${mediaDir}/music";
pictures = "${mediaDir}/images";
videos = "${mediaDir}/videos";
desktop = "${localDir}/desktop";
publicShare = "${localDir}/public";
templates = "${localDir}/templates";
};
mimeApps.enable = true;
};
};
}