diff --git a/.gitmodules b/.gitmodules index 46c231d..2becda0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -15,3 +15,9 @@ [submodule "homedir_files/config/kickstart.nvim"] path = homedir_files/config/kickstart.nvim url = https://github.com/jerinjoy/kickstart.nvim.git +[submodule "homedir_files/tmux/plugins/tmux-yank"] + path = homedir_files/tmux/plugins/tmux-yank + url = https://github.com/tmux-plugins/tmux-yank.git +[submodule "homedir_files/tmux/plugins/tmux-prefix-highlight"] + path = homedir_files/tmux/plugins/tmux-prefix-highlight + url = https://github.com/tmux-plugins/tmux-prefix-highlight.git diff --git a/homedir_files/config/zellij/config.kdl b/homedir_files/config/zellij/config.kdl index 12a1a94..0cec3a2 100644 --- a/homedir_files/config/zellij/config.kdl +++ b/homedir_files/config/zellij/config.kdl @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 Jerin Joy +// +// SPDX-License-Identifier: Apache-2.0 + theme "tokyo-night-storm" // pane_frames false diff --git a/homedir_files/tmux.conf b/homedir_files/tmux.conf index 0448752..ae4573b 100644 --- a/homedir_files/tmux.conf +++ b/homedir_files/tmux.conf @@ -42,23 +42,51 @@ bind p paste-buffer #bind-key -t vi-copy 'V' begin-selection #bind-key -t vi-copy 'y' copy-selection +## Changes for tmux-yank START +set -g set-clipboard on + +# Copy-mode-vi keys that copy to system clipboard +bind -T copy-mode-vi y send -X copy-selection-and-cancel +bind -T copy-mode-vi Y send -X copy-line +bind -T copy-mode-vi v send -X begin-selection +bind -T copy-mode-vi V send -X select-line +bind -T copy-mode-vi C-v send -X rectangle-toggle + +# quick entry for copy-mode +bind Escape copy-mode + +# treat - and _ as part of words (nicer for code) +# (Remove - and _ from the separator list) +set -g word-separators ' @./:,;|=*()[]{}<>' + +set -g @plugin 'tmux-plugins/tmux-yank' +## Changes for tmux-yank END + # Move the panes up or down with j/k bind j resize-pane -D 10 bind k resize-pane -U 10 bind l resize-pane -L 10 bind h resize-pane -R 10 -#set -g mouse on +##### Smart splits: keep current working directory ##### +bind \| split-window -h -c "#{pane_current_path}" +bind - split-window -v -c "#{pane_current_path}" + +##### One-key mouse toggle ##### +set -g mouse off +bind m set -g mouse \; display-message "mouse: #{?mouse,ON,OFF}" # List of plugins set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-sensible' +set -g @plugin 'tmux-plugins/tmux-prefix-highlight' # Themes # source-file ~/.tmux/themes/tokyo-night-storm.tmux -source-file ~/.tmux/themes/monochrome.tmux -# source-file ~/.tmux/themes/catppuccin-mocha.tmux +# source-file ~/.tmux/themes/monochrome.tmux +source-file ~/.tmux/themes/catppuccin-mocha.tmux # source-file ~/.tmux/themes/catppuccin-latte.tmux +# source-file ~/.tmux/themes/material-bright.tmux # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) run -b '~/.tmux/plugins/tpm/tpm' diff --git a/homedir_files/tmux/plugins/tmux-prefix-highlight b/homedir_files/tmux/plugins/tmux-prefix-highlight new file mode 160000 index 0000000..06cbb4e --- /dev/null +++ b/homedir_files/tmux/plugins/tmux-prefix-highlight @@ -0,0 +1 @@ +Subproject commit 06cbb4ecd3a0a918ce355c70dc56d79debd455c7 diff --git a/homedir_files/tmux/plugins/tmux-yank b/homedir_files/tmux/plugins/tmux-yank new file mode 160000 index 0000000..acfd36e --- /dev/null +++ b/homedir_files/tmux/plugins/tmux-yank @@ -0,0 +1 @@ +Subproject commit acfd36e4fcba99f8310a7dfb432111c242fe7392 diff --git a/homedir_files/tmux/themes/_template.tmux b/homedir_files/tmux/themes/_template.tmux index a3595c1..de111dc 100644 --- a/homedir_files/tmux/themes/_template.tmux +++ b/homedir_files/tmux/themes/_template.tmux @@ -1,3 +1,8 @@ + +# SPDX-FileCopyrightText: 2023 Jerin Joy +# +# SPDX-License-Identifier: Apache-2.0 +# ##### Shared tmux theme template (uses palette vars) ##### # Bar basics @@ -9,6 +14,13 @@ set -g status-right-length 100 set -g status-interval 5 set -g window-status-separator "" +# style (uses your palette) +set -g @prefix_highlight_prefix_prompt '⌃A' +set -g @prefix_highlight_fg '#{@dark}' +set -g @prefix_highlight_bg '#{@c2}' # amber pops on your dark bar +set -g @prefix_highlight_show_copy_mode 'on' +set -g @prefix_highlight_copy_mode_attr 'fg=#{@dark},bg=#{@c1},bold' + ##### LEFT — session name pill → band ##### set -g status-left '#[fg=#{@session_bg},bg=#{@bar_bg}]#[fg=#{@dark},bg=#{@session_bg},bold] #S #[fg=#{@session_bg},bg=#{@band_bg}]' @@ -22,8 +34,7 @@ setw -g window-status-format "#[bg=#{@band_bg},fg=#{?#{==:#I,1},#{@c1},#{?#{==:# setw -g window-status-current-format '#[fg=#{@active_bg},bg=#{@band_bg}]#[fg=#{@dark},bg=#{@active_bg},bold] #I #W* #[fg=#{@active_bg},bg=#{@band_bg}]' ##### RIGHT — time pill (arrow on left) ##### -set -g @time_fmt "+%a %m/%d %H:%M" -set -g status-right '#[fg=#{@session_bg},bg=#{@bar_bg}]#[fg=#{@dark},bg=#{@session_bg},bold] %a %m/%d %H:%M #[fg=#{@session_bg},bg=#{@band_bg}]' +set -g status-right '#{prefix_highlight} #[fg=#{@time_bg},bg=#{@bar_bg}]#[fg=#{@dark},bg=#{@time_bg},bold] %a %m/%d %H:%M #[fg=#{@time_bg},bg=#{@bar_bg}]' ##### Panes / messages ##### set -g pane-border-style "fg=#{@pane_border}" diff --git a/homedir_files/tmux/themes/catppuccin-latte.tmux b/homedir_files/tmux/themes/catppuccin-latte.tmux index 4c0ace3..e84ae3e 100644 --- a/homedir_files/tmux/themes/catppuccin-latte.tmux +++ b/homedir_files/tmux/themes/catppuccin-latte.tmux @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 Jerin Joy +# +# SPDX-License-Identifier: Apache-2.0 +# # --- Catppuccin LATTE (dark background tuned) --- set -g @bar_bg "#1e1e2e" # Dark base (Mocha Base, good neutral) set -g @band_bg "#313244" # Surface0 (subtle divider) @@ -16,7 +20,6 @@ set -g @c5 "#fe640b" # Orange (bold) set -g @session_bg "#40a02b" # Green (session pill, lively) set -g @active_bg "#df8e1d" # Yellow (active tab, stands out) set -g @time_bg "#1e66f5" # Blue (time pill, crisp contrast) -set -g @time_fg "#eff1f5" # Light fg on dark blue # Borders / messages set -g @pane_border "#45475a" # Neutral gray border @@ -24,4 +27,4 @@ set -g @pane_active_border "#1e66f5" # Blue (focus) set -g @msg_fg "#df8e1d" # Yellow (messages pop) # Shared layout -source-file ~/.tmux/themes/_template.tmux \ No newline at end of file +source-file ~/.tmux/themes/_template.tmux diff --git a/homedir_files/tmux/themes/catppuccin-mocha.tmux b/homedir_files/tmux/themes/catppuccin-mocha.tmux index 753642a..2f9c3ae 100644 --- a/homedir_files/tmux/themes/catppuccin-mocha.tmux +++ b/homedir_files/tmux/themes/catppuccin-mocha.tmux @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 Jerin Joy +# +# SPDX-License-Identifier: Apache-2.0 +# # --- Catppuccin Mocha tuned vars --- set -g @bar_bg "#11111b" # Mantle set -g @band_bg "#1e1e2e" # Base @@ -16,7 +20,6 @@ set -g @c5 "#fab387" # Peach set -g @session_bg "#89dceb" # Sky blue (session pill) set -g @active_bg "#facc15" # Bright yellow (active tab) set -g @time_bg "#74c7ec" # Sapphire (time pill) -set -g @time_fg "#11111b" # Dark fg for contrast # borders / messages set -g @pane_border "#45475a" # Overlay0 diff --git a/homedir_files/tmux/themes/material-bright.tmux b/homedir_files/tmux/themes/material-bright.tmux new file mode 100644 index 0000000..6ac9e2f --- /dev/null +++ b/homedir_files/tmux/themes/material-bright.tmux @@ -0,0 +1,30 @@ +# SPDX-FileCopyrightText: 2023 Jerin Joy +# +# SPDX-License-Identifier: Apache-2.0 +# +# --- Material Design (bright on dark) --- +set -g @bar_bg "#121212" # Bar background (MD dark base) +set -g @band_bg "#1e1e1e" # Band/divider (slightly lighter than bar) +set -g @text "#e0e0e0" # Primary text on dark +set -g @muted "#b0bec5" # Blue Grey 200 (muted text) +set -g @dark "#0b0b0d" # Very dark for pill text when bg is bright + +# Accents (Material palette – colorful but readable on dark) +set -g @c1 "#2196f3" # Blue 500 +set -g @c2 "#ffc107" # Amber 500 +set -g @c3 "#26a69a" # Teal 400 +set -g @c4 "#ff7043" # Deep Orange 400 +set -g @c5 "#ab47bc" # Purple 400 + +# Pills +set -g @session_bg "#90CAF9" # Green 500 (session pill) +set -g @active_bg "#FB8C00" # Amber 500 (active tab) +set -g @time_bg "#90CAF9" + +# Borders / messages +set -g @pane_border "#424242" # Neutral border +set -g @pane_active_border "#2979ff" # Blue A400 (focused pane) +set -g @msg_fg "#ff4081" # Pink A200 (messages pop) + +# Shared layout template +source-file ~/.tmux/themes/_template.tmux diff --git a/homedir_files/tmux/themes/monochrome.tmux b/homedir_files/tmux/themes/monochrome.tmux index 229c52f..2126bb3 100644 --- a/homedir_files/tmux/themes/monochrome.tmux +++ b/homedir_files/tmux/themes/monochrome.tmux @@ -1,5 +1,8 @@ +# SPDX-FileCopyrightText: 2023 Jerin Joy +# +# SPDX-License-Identifier: Apache-2.0 +# # --- Monochrome (dark, filled pills unified) --- -# Base set -g @bar_bg "#1e1e2e" # Dark base set -g @band_bg "#1e1e2e" # Match bar so it blends in set -g @text "#e6e6e6" # Soft white @@ -15,11 +18,8 @@ set -g @c5 "#fe640b" # Orange (bold) # Pills set -g @session_bg "#b3b3b3" # Mid gray session pill -set -g @battery_bg "#6e6e6e" # Dark gray battery pill -set -g @time_bg "#{@session_bg}" - -# Active tab standout set -g @active_bg "#f5f5f5" # Bright fill for active tab +set -g @time_bg "#b3b3b3" # Borders/messages set -g @pane_border "#3b3b4a" @@ -27,4 +27,4 @@ set -g @pane_active_border "#a7a7a7" set -g @msg_fg "#cccccc" # Shared layout -source-file ~/.tmux/themes/_template.tmux \ No newline at end of file +source-file ~/.tmux/themes/_template.tmux diff --git a/homedir_files/tmux/themes/tokyo-night-storm.tmux b/homedir_files/tmux/themes/tokyo-night-storm.tmux index c54b458..a6a8273 100644 --- a/homedir_files/tmux/themes/tokyo-night-storm.tmux +++ b/homedir_files/tmux/themes/tokyo-night-storm.tmux @@ -1,3 +1,8 @@ + +# SPDX-FileCopyrightText: 2023 Jerin Joy +# +# SPDX-License-Identifier: Apache-2.0 +# # --- Tokyo Night Storm palette vars --- set -g @bar_bg "#24283b" set -g @band_bg "#1f2335" @@ -16,7 +21,6 @@ set -g @c5 "#bb9af7" # pink set -g @session_bg "#9ece6a" # green left pill set -g @active_bg "#e0af68" # yellow active tab set -g @time_bg "#9ece6a" # green time pill -set -g @time_fg "#1a1b26" # borders / messages set -g @pane_border "#565f89"