Files
FxNet/modules/hm/vivaldi.nix

84 lines
2.3 KiB
Nix

{
pkgs,
lib,
config,
osConfig,
...
}:
let
conf = config.programs.vivaldi;
vivaldiCMD = if conf.flatpak then "flatpak run com.vivaldi.Vivaldi" else "vivaldi";
vivaldiIcon = if conf.flatpak then "com.vivaldi.Vivaldi" else "vivaldi";
in
{
options = {
programs.vivaldi.flatpak = lib.mkEnableOption "Use flatpak verion of Vivaldi";
};
config = lib.mkIf (conf.enable || conf.flatpak) {
home.file.vivaldiKDEScript = {
target = ".local/bin/vivaldi-kde.sh";
text = ''
#!/bin/sh
${vivaldiCMD} --profile-directory=$(qdbus org.kde.ActivityManager /ActivityManager/Activities org.kde.ActivityManager.Activities.ActivityName $(qdbus org.kde.ActivityManager /ActivityManager/Activities org.kde.ActivityManager.Activities.CurrentActivity)) "$@"
'';
executable = true;
};
programs.vivaldi = {
nativeMessagingHosts =
[ ]
++ lib.optionals (osConfig.services.desktopManager.plasma6.enable) [
pkgs.kdePackages.plasma-browser-integration
];
};
xdg.desktopEntries = {
vivaldi-stable-kde = {
name = "Vivaldi-KDE";
settings = {
OnlyShowIn = "KDE";
};
genericName = "Web Browser for KDE";
exec = "${config.home.file.vivaldiKDEScript.source} %U";
terminal = false;
actions = {
"newPrivateWindow" = {
name = "New Private Window";
exec = "${config.home.file.vivaldiKDEScript.source} --incognito --remote";
};
"newWindow" = {
name = "New Window";
exec = "${config.home.file.vivaldiKDEScript.source} --new-window";
};
};
icon = "${vivaldiIcon}";
startupNotify = true;
categories = [
"Application"
"Network"
"WebBrowser"
];
mimeType = [
"application/pdf"
"application/rdf+xml"
"application/rss+xml"
"application/xhtml+xml"
"application/xhtml_xml"
"application/xml"
"image/gif"
"image/jpeg"
"image/png"
"image/webp"
"text/html"
"text/xml"
"x-scheme-handler/ftp"
"x-scheme-handler/http"
"x-scheme-handler/https"
"x-scheme-handler/mailto"
];
};
};
};
}