108 lines
2.6 KiB
Nix
108 lines
2.6 KiB
Nix
{ pkgs, lib, ... }:
|
|
# Categories: https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry
|
|
let
|
|
# chrome-cmd = link: "${pkgs.google-chrome}/bin/google-chrome-stable --app=${link}";
|
|
# vivaldi-cmd = link: "${pkgs.vivaldi}/bin/vivaldi --app=${link}";
|
|
# firefox-cmd = link: "firefox --new-window ${link}";
|
|
open-cmd = link: "${pkgs.xdg-utils}/bin/xdg-open ${link}";
|
|
webAppBuilder =
|
|
{ desktopName
|
|
, name ? builtins.replaceStrings [ " " ] [ "_" ] desktopName
|
|
, link
|
|
, cmd ? open-cmd
|
|
, icon ? lib.toLower name
|
|
, comment ? null
|
|
, categories ? [ "Network" ]
|
|
,
|
|
}:
|
|
pkgs.makeDesktopItem {
|
|
inherit
|
|
name
|
|
icon
|
|
desktopName
|
|
comment
|
|
categories
|
|
;
|
|
exec = cmd link;
|
|
};
|
|
links = [
|
|
{
|
|
link = "https://chess.com";
|
|
desktopName = "Chess.com";
|
|
categories = [ "Game" ];
|
|
}
|
|
{
|
|
link = "https://google.com/calendar";
|
|
desktopName = "Google Calendar";
|
|
categories = [ "Office" ];
|
|
}
|
|
{
|
|
link = "https://keep.google.com";
|
|
desktopName = "Google Keep";
|
|
categories = [ "Office" ];
|
|
}
|
|
{
|
|
link = "https://play.google.com/books";
|
|
desktopName = "Google Play Books";
|
|
categories = [ "Office" "Viewer" ];
|
|
}
|
|
# {
|
|
# link = "https://outlook.office365.com/";
|
|
# desktopName = "Outlook";
|
|
# categories = [ "Office" ];
|
|
# }
|
|
# {
|
|
# link = "https://teams.microsoft.com";
|
|
# desktopName = "Teams";
|
|
# categories = [ "Office" ];
|
|
# }
|
|
{
|
|
link = "https://monkeytype.com/";
|
|
desktopName = "Monkeytype";
|
|
categories = [ "Game" ];
|
|
}
|
|
{
|
|
link = "https://www.netflix.com";
|
|
desktopName = "Netflix";
|
|
categories = [ "AudioVideo" ];
|
|
}
|
|
{
|
|
link = "https://notion.so";
|
|
desktopName = "Notion";
|
|
categories = [ "Office" ];
|
|
}
|
|
{
|
|
link = "https://app.plex.tv";
|
|
desktopName = "Plex";
|
|
categories = [ "AudioVideo" ];
|
|
}
|
|
{
|
|
link = "https://primevideo.com";
|
|
desktopName = "Prime Video";
|
|
categories = [ "AudioVideo" ];
|
|
}
|
|
{
|
|
link = "https://mail.protonmail.com";
|
|
desktopName = "Protonmail";
|
|
categories = [ "Office" ];
|
|
}
|
|
{
|
|
link = "https://www.twitch.tv";
|
|
desktopName = "Twitch";
|
|
categories = [ "AudioVideo" ];
|
|
}
|
|
{
|
|
link = "https://web.whatsapp.com/";
|
|
desktopName = "WhatsApp";
|
|
}
|
|
# {
|
|
# link = "https://www.youtube.com";
|
|
# desktopName = "YouTube";
|
|
# categories = [ "AudioVideo" ];
|
|
# }
|
|
];
|
|
|
|
in
|
|
{
|
|
home.packages = map webAppBuilder links;
|
|
}
|