192 lines
5.9 KiB
Nix
192 lines
5.9 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 =
|
|
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
let
|
|
command = lib.getExe pkgs.vivaldi;
|
|
appCommand = id: "${command} --profile-directory=Default --app-id=${id}";
|
|
actualId = "ahoihnifhakgijcmjlhbcgehigihinlo";
|
|
outlookId = "eoficlgicibekocmfdomjbfnjmehnhcd";
|
|
whatsappId = "hnpfjngllnobngcgfapefoaidbinmjnm";
|
|
actualDesktop = pkgs.makeDesktopItem {
|
|
name = "vivaldi-${actualId}-Default";
|
|
desktopName = "Actual";
|
|
exec = appCommand actualId;
|
|
icon = "vivaldi-${actualId}-Default";
|
|
extraConfig.StartupWMClass = "crx_${actualId}";
|
|
actions = {
|
|
Accounts = {
|
|
name = "Accounts";
|
|
exec = "${appCommand actualId} --app-launch-url-for-shortcuts-menu-item=${config.facts.services.actual.origin}/accounts";
|
|
};
|
|
"Add-Transaction" = {
|
|
name = "Add Transaction";
|
|
exec = "${appCommand actualId} --app-launch-url-for-shortcuts-menu-item=${config.facts.services.actual.origin}/transactions/new";
|
|
};
|
|
Reports = {
|
|
name = "Reports";
|
|
exec = "${appCommand actualId} --app-launch-url-for-shortcuts-menu-item=${config.facts.services.actual.origin}/reports";
|
|
};
|
|
};
|
|
};
|
|
whatsappDesktop = pkgs.makeDesktopItem {
|
|
name = "vivaldi-${whatsappId}-Default";
|
|
desktopName = "WhatsApp Web";
|
|
exec = appCommand whatsappId;
|
|
icon = "vivaldi-${whatsappId}-Default";
|
|
extraConfig.StartupWMClass = "crx_${whatsappId}";
|
|
};
|
|
outlookDesktop = pkgs.makeDesktopItem {
|
|
name = "vivaldi-${outlookId}-Default";
|
|
desktopName = "Outlook";
|
|
exec = "${appCommand outlookId} %U";
|
|
icon = "vivaldi-${outlookId}-Default";
|
|
mimeTypes = [ "x-scheme-handler/mailto" ];
|
|
extraConfig.StartupWMClass = "crx_${outlookId}";
|
|
actions = {
|
|
Calendar = {
|
|
name = "Open calendar";
|
|
exec = "${appCommand outlookId} --app-launch-url-for-shortcuts-menu-item=https://outlook.cloud.microsoft/calendar";
|
|
};
|
|
Compose = {
|
|
name = "New message";
|
|
exec = "${appCommand outlookId} --app-launch-url-for-shortcuts-menu-item=https://outlook.cloud.microsoft/mail/deeplink/compose";
|
|
};
|
|
Event = {
|
|
name = "New event";
|
|
exec = "${appCommand outlookId} --app-launch-url-for-shortcuts-menu-item=https://outlook.cloud.microsoft/calendar/deeplink/compose";
|
|
};
|
|
};
|
|
};
|
|
in
|
|
{
|
|
desktop.commands.browser = [ command ];
|
|
home = {
|
|
packages = [ pkgs.vivaldi ];
|
|
sessionVariables.BROWSER = command;
|
|
};
|
|
xdg = {
|
|
dataFile = {
|
|
"applications/vivaldi-${actualId}-Default.desktop" = {
|
|
force = true;
|
|
source = "${actualDesktop}/share/applications/vivaldi-${actualId}-Default.desktop";
|
|
};
|
|
"applications/vivaldi-${whatsappId}-Default.desktop" = {
|
|
force = true;
|
|
source = "${whatsappDesktop}/share/applications/vivaldi-${whatsappId}-Default.desktop";
|
|
};
|
|
"applications/vivaldi-${outlookId}-Default.desktop" = {
|
|
force = true;
|
|
source = "${outlookDesktop}/share/applications/vivaldi-${outlookId}-Default.desktop";
|
|
};
|
|
};
|
|
mimeApps.defaultApplicationPackages = [ pkgs.vivaldi ];
|
|
};
|
|
};
|
|
|
|
flake.modules.homeManager.nautilus =
|
|
{ config, pkgs, ... }:
|
|
{
|
|
home.packages = [ pkgs.nautilus ];
|
|
gtk.gtk3.bookmarks = [
|
|
"sftp://${config.facts.topology.server.sshAlias} Orion VPS"
|
|
];
|
|
xdg.mimeApps.defaultApplicationPackages = [ pkgs.nautilus ];
|
|
};
|
|
|
|
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
|
|
zellij
|
|
];
|
|
};
|
|
|
|
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;
|
|
};
|
|
};
|
|
}
|