From 89b88b908264afac04c350c447908ea45c0d0de7 Mon Sep 17 00:00:00 2001 From: Jacob Bachmann Date: Thu, 22 Aug 2024 11:27:48 +0200 Subject: [PATCH] feat: add tailscale --- modules/vpn.nix | 2 ++ users/gandalf/modules/gui/sway/default.nix | 3 ++- users/gandalf/modules/gui/waybar.nix | 29 +++++++++++++++++++++- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/modules/vpn.nix b/modules/vpn.nix index 5871669..f5f4bc6 100644 --- a/modules/vpn.nix +++ b/modules/vpn.nix @@ -7,4 +7,6 @@ services.mullvad-vpn.enable = true; + services.tailscale.enable = true; + } diff --git a/users/gandalf/modules/gui/sway/default.nix b/users/gandalf/modules/gui/sway/default.nix index f1aa1c2..9042265 100644 --- a/users/gandalf/modules/gui/sway/default.nix +++ b/users/gandalf/modules/gui/sway/default.nix @@ -84,7 +84,7 @@ in terminal = "${pkgs.alacritty}/bin/alacritty"; menu = "${pkgs.wofi}/bin/wofi"; # TODO for some reason bar only works when used with exec - bars = []; + bars = [ ]; startup = with pkgs; [ # TODO activate with systemd prbly requires a graphical.target? # { command = "${nixosConfig.systemd.package}/bin/systemctl --user import-environment XDG_SESSION_TYPE XDG_CURRENT_DESKTOP"; } @@ -103,6 +103,7 @@ in { command = "${plasma5Packages.kdeconnect-kde}/bin/kdeconnect-indicator"; } { command = "${system-config-printer}/bin/system-config-printer-applet"; } { command = "${emote}/bin/emote"; } + { command = "${polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; } ]; input = { "2:7:SynPS/2_Synaptics_TouchPad" = { diff --git a/users/gandalf/modules/gui/waybar.nix b/users/gandalf/modules/gui/waybar.nix index 31dd5b9..4346591 100644 --- a/users/gandalf/modules/gui/waybar.nix +++ b/users/gandalf/modules/gui/waybar.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{ pkgs, nixosConfig, ... }: let check-battery = pkgs.writeShellScript "check-battery" '' bat=/sys/class/power_supply/BAT0 @@ -18,6 +18,20 @@ let rm $FILE fi ''; + tailscale-status = pkgs.writeShellScript "tailscale-status" '' + if ${nixosConfig.services.tailscale.package}/bin/tailscale status > /dev/null 2>&1; then + echo  + else + echo  + fi + ''; + tailscale-toggle = pkgs.writeShellScript "tailscale-toggle" '' + if ${nixosConfig.services.tailscale.package}/bin/tailscale status > /dev/null 2>&1; then + pkexec ${nixosConfig.services.tailscale.package}/bin/tailscale down + else + pkexec ${nixosConfig.services.tailscale.package}/bin/tailscale up --accept-routes --exit-node=j4m35-bl0nd + fi + ''; in { xdg.configFile = { @@ -115,6 +129,7 @@ in "modules-right": [ "tray", "network", + "custom/tailscale", "pulseaudio", "disk", "custom/mem", @@ -135,6 +150,11 @@ in "tooltip-format-ethernet": "{ifname} ", "tooltip-format-wifi": "{essid} ({signalStrength}%) " }, + "custom/tailscale": { + "exec": "${tailscale-status}", + "interval": 1, + "on-click": "${tailscale-toggle}", + }, "pulseaudio": { "format": "{volume}% {icon} {format_source}", "format-bluetooth": "{volume}% {icon} {format_source}", @@ -268,6 +288,13 @@ in background: transparent; } + window.swaybar #custom-tailscale { + padding-right: 10px; + transition: none; + color: black; + background: transparent; + } + window.swaybar #pulseaudio { padding-left: 10px; padding-right: 10px;