Add enable XDG PWA entries and enable Signal

This commit is contained in:
2025-12-08 21:43:17 +01:00
parent 29c62adbd1
commit 629e7b6a9e
9 changed files with 90 additions and 6 deletions

View File

@@ -53,4 +53,20 @@ _: {
Learning tools Learning tools
*/ */
anki.enable = true; # Anki: spacedrepetition flashcard program anki.enable = true; # Anki: spacedrepetition flashcard program
/*
XDG desktop entries (PWA)
*/
xdgDesktopEntries = {
enable = true; # Enable XDG desktop entries
entries = {
messenger.enable = true; # Messenger: Facebook Messenger
mastodon.enable = true; # Mastodon: a decentralized social network
garandcloud.enable = true; # GarandCloud: my Nextcloud instance
chatgpt.enable = true; # ChatGPT: a large language model
claude.enable = true; # Claude: a large language model
glance.enable = true; # Glance: my home server dashboard
microsoftTeams.enable = true; # Microsoft Teams: a collaboration tool
};
};
} }

View File

@@ -47,6 +47,7 @@ _: {
mattermost.enable = true; # Mattermost: opensource Slack alternative mattermost.enable = true; # Mattermost: opensource Slack alternative
slack.enable = true; # Slack: team communication and collaboration tool slack.enable = true; # Slack: team communication and collaboration tool
tutanota.enable = true; # Tutanota: secure email client tutanota.enable = true; # Tutanota: secure email client
signal.enable = true; # Signal: secure messaging app
/* /*
Productivity / Knowledge Management Productivity / Knowledge Management

View File

@@ -53,4 +53,20 @@ _: {
Learning tools Learning tools
*/ */
anki.enable = true; # Anki: spacedrepetition flashcard program anki.enable = true; # Anki: spacedrepetition flashcard program
/*
XDG desktop entries (PWA)
*/
xdgDesktopEntries = {
enable = true; # Enable XDG desktop entries
entries = {
messenger.enable = true; # Messenger: Facebook Messenger
mastodon.enable = true; # Mastodon: a decentralized social network
garandcloud.enable = true; # GarandCloud: my Nextcloud instance
chatgpt.enable = true; # ChatGPT: a large language model
claude.enable = true; # Claude: a large language model
glance.enable = true; # Glance: my home server dashboard
microsoftTeams.enable = true; # Microsoft Teams: a collaboration tool
};
};
} }

View File

@@ -47,6 +47,7 @@ _: {
mattermost.enable = true; # Mattermost: opensource Slack alternative mattermost.enable = true; # Mattermost: opensource Slack alternative
slack.enable = true; # Slack: team communication and collaboration tool slack.enable = true; # Slack: team communication and collaboration tool
tutanota.enable = true; # Tutanota: secure email client tutanota.enable = true; # Tutanota: secure email client
signal.enable = true; # Signal: secure messaging app
/* /*
Productivity / Knowledge Management Productivity / Knowledge Management

View File

@@ -53,4 +53,20 @@ _: {
Learning tools Learning tools
*/ */
anki.enable = true; # Anki: spacedrepetition flashcard program anki.enable = true; # Anki: spacedrepetition flashcard program
/*
XDG desktop entries (PWA)
*/
xdgDesktopEntries = {
enable = true; # Enable XDG desktop entries
entries = {
messenger.enable = true; # Messenger: Facebook Messenger
mastodon.enable = true; # Mastodon: a decentralized social network
garandcloud.enable = true; # GarandCloud: my Nextcloud instance
chatgpt.enable = true; # ChatGPT: a large language model
claude.enable = true; # Claude: a large language model
glance.enable = true; # Glance: my home server dashboard
microsoftTeams.enable = true; # Microsoft Teams: a collaboration tool
};
};
} }

View File

@@ -47,6 +47,7 @@ _: {
mattermost.enable = true; # Mattermost: opensource Slack alternative mattermost.enable = true; # Mattermost: opensource Slack alternative
slack.enable = true; # Slack: team communication and collaboration tool slack.enable = true; # Slack: team communication and collaboration tool
tutanota.enable = true; # Tutanota: secure email client tutanota.enable = true; # Tutanota: secure email client
signal.enable = true; # Signal: secure messaging app
/* /*
Productivity / Knowledge Management Productivity / Knowledge Management

View File

@@ -42,6 +42,7 @@
lazydocker = lazydocker; lazydocker = lazydocker;
distrobox = [distrobox pkgs.boxbuddy]; distrobox = [distrobox pkgs.boxbuddy];
winboat = [winboat freerdp]; winboat = [winboat freerdp];
signal = signal-desktop;
}; };
in { in {
imports = builtins.attrValues (builtins.mapAttrs mkPackage packages); imports = builtins.attrValues (builtins.mapAttrs mkPackage packages);

View File

@@ -56,6 +56,7 @@ in {
# ============================================================================= # =============================================================================
"$modifier CONTROL, G, exec, gimp" "$modifier CONTROL, G, exec, gimp"
"$modifier CONTROL, M, exec, mattermost-desktop" "$modifier CONTROL, M, exec, mattermost-desktop"
"$modifier CONTROL, S, exec, signal-desktop"
# ============================================================================= # =============================================================================
# NARZĘDZIA SYSTEMOWE # NARZĘDZIA SYSTEMOWE

View File

@@ -1,4 +1,9 @@
{pkgs, ...}: let {
pkgs,
lib,
config,
...
}: let
fetchIcon = url: sha256: fetchIcon = url: sha256:
pkgs.fetchurl { pkgs.fetchurl {
inherit url sha256; inherit url sha256;
@@ -66,9 +71,35 @@
} }
]; ];
in { in {
xdg.desktopEntries = builtins.listToAttrs (builtins.map (app: { options.xdgDesktopEntries = {
name = app.name; enable = lib.mkEnableOption "PWA Apps";
value = makeEntry app; entries = builtins.listToAttrs (
}) builtins.map (app: {
apps); name = app.name;
value = {
enable = lib.mkEnableOption "Enable ${app.displayName} PWA";
};
})
apps
);
};
config.xdg.desktopEntries = lib.mkIf config.xdgDesktopEntries.enable (
builtins.listToAttrs (
builtins.concatMap (
app: let
entryConfig = config.xdgDesktopEntries.entries.${app.name};
in
if entryConfig.enable
then [
{
name = app.name;
value = makeEntry app;
}
]
else []
)
apps
)
);
} }