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
*/
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
slack.enable = true; # Slack: team communication and collaboration tool
tutanota.enable = true; # Tutanota: secure email client
signal.enable = true; # Signal: secure messaging app
/*
Productivity / Knowledge Management

View File

@@ -53,4 +53,20 @@ _: {
Learning tools
*/
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
slack.enable = true; # Slack: team communication and collaboration tool
tutanota.enable = true; # Tutanota: secure email client
signal.enable = true; # Signal: secure messaging app
/*
Productivity / Knowledge Management

View File

@@ -53,4 +53,20 @@ _: {
Learning tools
*/
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
slack.enable = true; # Slack: team communication and collaboration tool
tutanota.enable = true; # Tutanota: secure email client
signal.enable = true; # Signal: secure messaging app
/*
Productivity / Knowledge Management

View File

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

View File

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

View File

@@ -1,4 +1,9 @@
{pkgs, ...}: let
{
pkgs,
lib,
config,
...
}: let
fetchIcon = url: sha256:
pkgs.fetchurl {
inherit url sha256;
@@ -66,9 +71,35 @@
}
];
in {
xdg.desktopEntries = builtins.listToAttrs (builtins.map (app: {
options.xdgDesktopEntries = {
enable = lib.mkEnableOption "PWA Apps";
entries = builtins.listToAttrs (
builtins.map (app: {
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;
})
apps);
}
]
else []
)
apps
)
);
}