1d41bf6bf1
- 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.
134 lines
4.3 KiB
Nix
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";
|
|
};
|
|
};
|
|
};
|
|
}
|