Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion home-manager/packages/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
inputs,
}:
let
inherit (inputs.host) isDesktop;
inherit (inputs.host) isDesktop isDev;
in
with pkgs;
[
Expand Down Expand Up @@ -93,6 +93,13 @@ with pkgs;
zellij
zoxide
]
++ lib.optionals isDev [
gopls
lua-language-server
nil
nodePackages.typescript-language-server
pyright
]
++ lib.optionals stdenv.isLinux [
atop
below
Expand Down
5 changes: 3 additions & 2 deletions home-manager/programs/tmux/tmux.conf
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,9 @@ bind-key "_" split-window -fv -c "#{pane_current_path}"
bind-key "%" split-window -h -c "#{pane_current_path}"
bind-key '"' split-window -v -c "#{pane_current_path}"

# Capture full pane history to file
bind P capture-pane -S - \; save-buffer ~/tmux-history.txt \; delete-buffer \; display-message "Pane history saved to ~/tmux-history.txt"
# Yank pane history to clipboard
bind y run-shell 'tmux capture-pane -pS - | pbcopy && tmux display-message "Full pane history copied to clipboard"'
bind v run-shell 'tmux capture-pane -p | pbcopy && tmux display-message "Visible pane copied to clipboard"'
Comment on lines +93 to +94

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The use of pbcopy makes these bindings specific to macOS. To make your configuration more portable and work on Linux systems (both X11 and Wayland), you could use a shell fallback mechanism. Your Nix configuration already installs xclip and wl-clipboard for Linux. This change will attempt to use pbcopy first (for macOS), then wl-copy (for Wayland), and finally xclip (for X11).

bind y run-shell 'tmux capture-pane -pS - | (pbcopy || wl-copy || xclip -in -selection clipboard) && tmux display-message "Full pane history copied to clipboard"'
bind v run-shell 'tmux capture-pane -p | (pbcopy || wl-copy || xclip -in -selection clipboard) && tmux display-message "Visible pane copied to clipboard"'

Comment on lines +93 to +94

Copilot AI Feb 13, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The pbcopy command is macOS-specific and will fail on Linux systems. The codebase already has xclip installed on Linux (see home-manager/packages/default.nix line 126), and the tmux yank plugin is already configured. Consider using platform-conditional logic or relying on the tmux yank plugin which handles cross-platform clipboard operations automatically. Alternatively, use a shell conditional like command -v pbcopy >/dev/null && pbcopy || xclip -selection clipboard to handle both platforms.

Suggested change
bind y run-shell 'tmux capture-pane -pS - | pbcopy && tmux display-message "Full pane history copied to clipboard"'
bind v run-shell 'tmux capture-pane -p | pbcopy && tmux display-message "Visible pane copied to clipboard"'
bind y run-shell 'tmux capture-pane -pS - | sh -c "command -v pbcopy >/dev/null 2>&1 && pbcopy || xclip -selection clipboard" && tmux display-message "Full pane history copied to clipboard"'
bind v run-shell 'tmux capture-pane -p | sh -c "command -v pbcopy >/dev/null 2>&1 && pbcopy || xclip -selection clipboard" && tmux display-message "Visible pane copied to clipboard"'

Copilot uses AI. Check for mistakes.

# Pane number indicator
set -g display-panes-colour colour233
Expand Down
3 changes: 3 additions & 0 deletions lib/host.nix
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
# Desktop machines with GUI - default false, override in named-hosts
isDesktop = false;

# Install language server packages
isDev = true;

Copilot AI Feb 13, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new isLSP flag in lib/host.nix lacks test coverage. Following the established pattern seen with isDesktop and other host flags in tests/lib.nix (lines 54-58), a test should be added to validate that isLSP exists and is a boolean. This ensures consistency with the testing conventions used for other configuration flags in lib/host.nix.

Suggested change
isDev = true;
isLSP = true;
isDev = isLSP;

Copilot uses AI. Check for mistakes.

# Get the node name for OpenClaw remote mode
# Falls back to "unknown" if no hostname is detected
nodeName =
Expand Down
Loading