Files
garandos/modules/home/noctalia/plugins.nix
T
GarandPLG 1d41bf6bf1 Add Tailscale plugin and enable on desktop/laptop
- Enable Tailscale plugin in home modules for Garand-Desktop and
  Garand-Laptop; keep it disabled in the default host.
- Introduce `tailscale.enable` option in noctalia plugins and add
  it to the noctalia-shell configuration with source URL handling.
- Provide default Tailscale settings (refresh interval, UI options,
  Taildrop configuration, login server, etc.).
- Add Tailscale widget to the right side of the bar widget list.
- Bump Helium AppImage to version 0.12.5.1 and update its sha256.
2026-06-02 18:10:19 +02:00

134 lines
4.3 KiB
Nix

{
lib,
config,
...
}: let
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
in {
options.nooctalia-plugins = {
mini-docker.enable = lib.mkEnableOption "Mini docker plugin";
timer.enable = lib.mkEnableOption "Timer plugin";
keybind-cheatsheet.enable = lib.mkEnableOption "Keybind cheatsheet plugin";
kde-connect.enable = lib.mkEnableOption "KDE Connect plugin";
screen-recorder.enable = lib.mkEnableOption "Screen-recorder plugin";
screenshot.enable = lib.mkEnableOption "Screenshot plugin";
ntfy-notifications.enable = lib.mkEnableOption "ntfy notifications plugin";
tailscale.enable = lib.mkEnableOption "Tailscale plugin";
};
config.programs.noctalia-shell = lib.mkForce {
plugins = {
sources = [
{
enabled = true;
name = "Noctalia Plugins";
url = sourceUrl;
}
];
states = {
mini-docker = lib.mkIf config.nooctalia-plugins.mini-docker.enable {
enabled = true;
sourceUrl = sourceUrl;
};
timer = lib.mkIf config.nooctalia-plugins.timer.enable {
enabled = true;
sourceUrl = sourceUrl;
};
keybind-cheatsheet = lib.mkIf config.nooctalia-plugins.keybind-cheatsheet.enable {
enabled = true;
sourceUrl = sourceUrl;
};
kde-connect = lib.mkIf config.nooctalia-plugins.kde-connect.enable {
enabled = true;
sourceUrl = sourceUrl;
};
screen-recorder = lib.mkIf config.nooctalia-plugins.screen-recorder.enable {
enabled = true;
sourceUrl = sourceUrl;
};
screenshot = lib.mkIf config.nooctalia-plugins.screenshot.enable {
enabled = true;
sourceUrl = sourceUrl;
};
ntfy-notifications = lib.mkIf config.nooctalia-plugins.ntfy-notifications.enable {
enabled = true;
sourceUrl = sourceUrl;
};
tailscale = lib.mkIf config.nooctalia-plugins.tailscale.enable {
enabled = true;
sourceUrl = sourceUrl;
};
};
version = 2;
};
pluginSettings = {
mini-docker.refreshInterval = 5000;
timer.compactMode = true;
keybind-cheatsheet = {
niriConfigPath = "~/.config/niri/config.kdl";
hyprlandConfigPath = "~/.config/hypr/hyprland.conf";
modKeyVariable = "SUPER";
windowHeight = 850;
windowWidth = 1100;
columnCount = 2;
autoHeight = true;
};
kde-connect = {
hideIfNoDeviceConnected = true;
};
screen-recorder = {
hideInactive = true;
iconColor = "none";
directory = "";
filenamePattern = "recording_yyyyMMdd_HHmmss";
frameRate = 60;
audioCodec = "aac";
videoCodec = "hevc";
quality = "ultra";
colorRange = "full";
showCursor = true;
copyToClipboard = false;
audioSource = "both";
videoSource = "portal";
resolution = "1920x1080";
replayEnabled = true;
replayDuration = 60;
customReplayDuration = 30;
replayStorage = "disk";
restorePortalSession = true;
customFrameRate = 6;
};
screenshot.mode = "region";
# ntfy-notifications = {
# serverUrl = "https://ntfy.garandplg.com";
# topics = "beszel,dockhand,jellyfin,nixos-unstable,radarr,rss-feeds,seerr,sonarr";
# authMethod = "basic";
# authToken = "";
# authUsername = ''$(cat ${config.sops.secrets."credentials/ntfy/username".path})'';
# authPassword = ''$(cat ${config.sops.secrets."credentials/ntfy/password".path})'';
# pollInterval = 30;
# enableToasts = true;
# maxMessages = 100;
# readMessageIds = [];
# };
tailscale = {
refreshInterval = 5000;
compactMode = true;
showIpAddress = false;
showPeerCount = false;
hideDisconnected = false;
hideMullvadExitNodes = true;
showSearchBar = false;
terminalCommand = "kitty";
sshUsername = "";
pingCount = 5;
defaultPeerAction = "copy-ip";
taildropEnabled = true;
taildropDownloadDir = "~/Downloads";
taildropReceiveMode = "operator";
loginServer = "https://hs.garandplg.com";
};
};
};
}