Compare commits

..

3 commits

Author SHA1 Message Date
Jet
cf18c87bff
feat: make zellij persist 2026-04-05 20:33:43 -07:00
Jet
3ed33ed2cb
fix: use desktop applications for the startup 2026-04-05 20:27:00 -07:00
Jet
ff48beff2c
feat: add tailscale extension 2026-04-05 20:19:17 -07:00
2 changed files with 57 additions and 14 deletions

View file

@ -39,6 +39,18 @@
];
};
systemd.services.tailscale-set-operator = {
description = "Set Tailscale operator user";
after = [ "tailscaled.service" ];
requires = [ "tailscaled.service" ];
wantedBy = [ "multi-user.target" ];
serviceConfig.Type = "oneshot";
path = [ pkgs.tailscale ];
script = ''
tailscale set --operator=jet
'';
};
time.timeZone = "America/Los_Angeles";
i18n.defaultLocale = "en_US.UTF-8";

View file

@ -12,16 +12,16 @@ let
zenStartup = pkgs.makeDesktopItem {
name = "zen-startup";
desktopName = "Zen Startup";
comment = "Launch Zen in fullscreen";
exec = "${config.programs.zen-browser.package}/bin/zen --fullscreen";
comment = "Launch Zen Browser";
exec = "${config.programs.zen-browser.package}/bin/zen-beta";
terminal = false;
categories = [ "Network" ];
};
kittyZellijStartup = pkgs.makeDesktopItem {
name = "kitty-zellij-startup";
desktopName = "Kitty Zellij Startup";
comment = "Open Kitty, pick a directory, and launch Zellij";
exec = "${pkgs.kitty}/bin/kitty --start-as=fullscreen ${zellijNewTabZoxide}/bin/zellij-new-tab-zoxide";
comment = "Open Kitty and attach to the main Zellij session";
exec = "${pkgs.kitty}/bin/kitty --start-as=fullscreen ${zellijPersistentSession}/bin/zellij-persistent-session";
terminal = false;
categories = [
"TerminalEmulator"
@ -59,6 +59,20 @@ let
terminal = false;
categories = [ "Network" ];
};
tailscaleQsExtension = pkgs.stdenvNoCC.mkDerivation {
pname = "tailscale-gnome-qs";
version = "5";
src = pkgs.fetchzip {
url = "https://github.com/tailscale-qs/tailscale-gnome-qs/archive/refs/tags/v5.tar.gz";
sha256 = "0b9jy8pyxvpkxf3adlwq42kii14jn5g7xyxggjzg87pb5jg4zfg2";
};
dontBuild = true;
installPhase = ''
mkdir -p "$out/share/gnome-shell/extensions"
cp -r "$src/tailscale-gnome-qs@tailscale-qs.github.io" \
"$out/share/gnome-shell/extensions/tailscale-gnome-qs@tailscale-qs.github.io"
'';
};
nasaApodWallpaper = pkgs.writeShellApplication {
name = "nasa-apod-wallpaper";
runtimeInputs = [
@ -210,6 +224,15 @@ let
exec ${pkgs.zellij}/bin/zellij -l "$layout_file"
'';
};
zellijPersistentSession = pkgs.writeShellApplication {
name = "zellij-persistent-session";
runtimeInputs = [ pkgs.zellij ];
text = ''
set -euo pipefail
exec ${pkgs.zellij}/bin/zellij attach --create main --force-run-commands
'';
};
zellijSyncTabName = pkgs.writeShellApplication {
name = "zellij-sync-tab-name";
runtimeInputs = [
@ -290,6 +313,7 @@ in
"system-monitor@paradoxxx.zero.gmail.com"
"clipboard-indicator@tudmotu.com"
"emoji-copy@felipeftn"
"tailscale-gnome-qs@tailscale-qs.github.io"
];
};
};
@ -465,9 +489,11 @@ in
show_startup_tips = false;
show_release_notes = false;
attach_to_session = false;
on_force_close = "quit";
session_serialization = false;
attach_to_session = true;
session_name = "main";
on_force_close = "detach";
session_serialization = true;
serialize_pane_viewport = true;
ui = {
pane_frames = {
@ -684,7 +710,7 @@ in
xdg.desktopEntries.kitty = {
name = "Kitty";
genericName = "Terminal Emulator";
exec = "${pkgs.kitty}/bin/kitty --start-as=fullscreen ${zellijNewTabZoxide}/bin/zellij-new-tab-zoxide";
exec = "${pkgs.kitty}/bin/kitty --start-as=fullscreen ${zellijPersistentSession}/bin/zellij-persistent-session";
icon = "kitty";
type = "Application";
categories = [
@ -738,15 +764,20 @@ in
xdg.autostart = {
enable = true;
entries = [
zenStartup
kittyZellijStartup
signalStartup
betterbirdStartup
vesktopStartup
zulipStartup
"${zenStartup}/share/applications/zen-startup.desktop"
"${kittyZellijStartup}/share/applications/kitty-zellij-startup.desktop"
"${signalStartup}/share/applications/signal-startup.desktop"
"${betterbirdStartup}/share/applications/betterbird-startup.desktop"
"${vesktopStartup}/share/applications/vesktop-startup.desktop"
"${zulipStartup}/share/applications/zulip-startup.desktop"
];
};
home.file.".local/share/gnome-shell/extensions/tailscale-gnome-qs@tailscale-qs.github.io" = {
source = "${tailscaleQsExtension}/share/gnome-shell/extensions/tailscale-gnome-qs@tailscale-qs.github.io";
recursive = true;
};
systemd.user.services.nasa-apod-wallpaper = {
Unit = {
Description = "Fetch NASA APOD wallpaper";