diff --git a/home/sam/home.nix b/home/sam/home.nix index 588a486..bc19bde 100644 --- a/home/sam/home.nix +++ b/home/sam/home.nix @@ -24,6 +24,45 @@ home.homeDirectory = "/home/sam"; home.stateVersion = "25.11"; +systemd.user.services.kdeconnect-indicator = { + Unit = { + Description = "KDE Connect indicator"; + }; + + Service = { + Type = "simple"; + ExecStart = "${pkgs.kdePackages.kdeconnect-kde}/bin/kdeconnect-indicator"; + Restart = "on-failure"; + RestartSec = "2s"; + }; + + Install = { + WantedBy = [ "default.target" ]; + }; +}; + + + +systemd.user.services.vorta = { + Unit = { + Description = "Vorta (BorgBackup GUI)"; + }; + + Service = { + Type = "simple"; + ExecStart = '' + ${pkgs.bash}/bin/bash -lc 'for i in $(seq 1 100); do for s in "$XDG_RUNTIME_DIR"/wayland-*; do if [ -S "$s" ]; then exec ${pkgs.vorta}/bin/vorta; fi; done; sleep 0.2; done; exit 1' + ''; + Restart = "on-failure"; + RestartSec = "2s"; + }; + + Install = { + WantedBy = [ "default.target" ]; + }; +}; + + programs.home-manager.enable = true; @@ -93,22 +132,26 @@ dconf.settings."org/gnome/desktop/interface" = { programs.neovim = { enable = true; defaultEditor = true; + extraPackages = with pkgs; [ tree-sitter gcc gnumake]; }; # --- # Packages (NOW list + a few safe essentials) # --- home.packages = with pkgs; [ + tmux + vorta + borgbackup carapace - aider-chat -opencode -goose-cli -gemini-cli-bin - -lua-language-server - marksman - nodePackages.typescript - nodePackages.typescript-language-server + aider-chat + opencode + goose-cli + gemini-cli-bin + + lua-language-server + marksman + nodePackages.typescript + nodePackages.typescript-language-server nodejs diff --git a/hosts/sam-4screen-desktop/configuration.nix b/hosts/sam-4screen-desktop/configuration.nix index 6d4b611..abca1fb 100644 --- a/hosts/sam-4screen-desktop/configuration.nix +++ b/hosts/sam-4screen-desktop/configuration.nix @@ -120,6 +120,11 @@ home-manager.backupFileExtension = "hm-bak"; # --- # Users # --- + + + programs.kdeconnect.enable = true; + services.gvfs.enable = true; + services.tumbler.enable = true; programs.zsh.enable = true; users.users.sam = { @@ -322,7 +327,14 @@ fonts.packages = with pkgs; [ # Minimal system packages needed for the session and core usability environment.systemPackages = with pkgs; [ + uv + (pkgs.callPackage ../../pkgs/agentpipe-bin.nix { }) (pkgs.callPackage ../../pkgs/sidecar-bin.nix { }) + xfce.thunar + xfce.tumbler + ffmpegthumbnailer + poppler-utils + kdePackages.kdeconnect-kde tmux brave vorta diff --git a/pkgs/agentpipe-bin.nix b/pkgs/agentpipe-bin.nix new file mode 100644 index 0000000..914ce2f --- /dev/null +++ b/pkgs/agentpipe-bin.nix @@ -0,0 +1,47 @@ +{ lib, stdenvNoCC, fetchurl }: + +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "agentpipe"; + version = "0.7.0"; + + src = fetchurl { + url = + "https://github.com/kevinelliott/agentpipe/releases/download/v${finalAttrs.version}/agentpipe_linux_amd64.tar.gz"; + sha256 ="sha256-3ofsrInUlcY1UN6LszOZGYJY0SgNB8FTwlyOXx/cznk="; + }; + + dontConfigure = true; + dontBuild = true; + +unpackPhase = '' + tar -xzf "$src" +''; + +installPhase = '' + mkdir -p "$out/bin" + + bin="" + if [ -f "./agentpipe" ]; then + bin="./agentpipe" + else + bin="$(find . -maxdepth 3 -type f -name agentpipe -print -quit)" + fi + + if [ -z "$bin" ]; then + echo "agentpipe binary not found after unpack. Contents:" >&2 + find . -maxdepth 3 -type f -print >&2 + exit 1 + fi + + install -m0755 "$bin" "$out/bin/agentpipe" +''; + + + meta = with lib; { + description = "AgentPipe multi-agent orchestrator CLI/TUI"; + homepage = "https://github.com/kevinelliott/agentpipe"; + license = licenses.mit; + platforms = [ "x86_64-linux" ]; + mainProgram = "agentpipe"; + }; +})