fix tmux keybindings and colors
This commit is contained in:
@@ -1,94 +1,81 @@
|
|||||||
# Tmux theme colors (generated by matugen)
|
# Tmux theme colors (generated by matugen)
|
||||||
# Do not edit manually - run `matugen` to regenerate
|
# Uses Material Design 3 semantic color system
|
||||||
|
|
||||||
# =============================================
|
# =============================================
|
||||||
# Theme Colors
|
# Semantic Color Roles
|
||||||
# =============================================
|
# =============================================
|
||||||
|
|
||||||
# Primary colors
|
# Primary - main brand color
|
||||||
PRIMARY={{colors.primary.default.hex}}
|
PRIMARY={{colors.primary.default.hex}}
|
||||||
ON_PRIMARY={{colors.on_primary.default.hex}}
|
ON_PRIMARY={{colors.on_primary.default.hex}}
|
||||||
PRIMARY_CONTAINER={{colors.primary_container.default.hex}}
|
|
||||||
ON_PRIMARY_CONTAINER={{colors.on_primary_container.default.hex}}
|
|
||||||
|
|
||||||
# Secondary colors
|
# Secondary - complementary accent
|
||||||
SECONDARY={{colors.secondary.default.hex}}
|
SECONDARY={{colors.secondary.default.hex}}
|
||||||
ON_SECONDARY={{colors.on_secondary.default.hex}}
|
ON_SECONDARY={{colors.on_secondary.default.hex}}
|
||||||
SECONDARY_CONTAINER={{colors.secondary_container.default.hex}}
|
|
||||||
ON_SECONDARY_CONTAINER={{colors.on_secondary_container.default.hex}}
|
|
||||||
|
|
||||||
# Tertiary colors
|
# Tertiary - contrasting accent
|
||||||
TERTIARY={{colors.tertiary.default.hex}}
|
TERTIARY={{colors.tertiary.default.hex}}
|
||||||
ON_TERTIARY={{colors.on_tertiary.default.hex}}
|
ON_TERTIARY={{colors.on_tertiary.default.hex}}
|
||||||
TERTIARY_CONTAINER={{colors.tertiary_container.default.hex}}
|
|
||||||
ON_TERTIARY_CONTAINER={{colors.on_tertiary_container.default.hex}}
|
|
||||||
|
|
||||||
# Surface colors
|
# Surface - backgrounds at different elevations
|
||||||
SURFACE={{colors.surface.default.hex}}
|
SURFACE={{colors.surface.default.hex}}
|
||||||
SURFACE_DIM={{colors.surface_dim.default.hex}}
|
|
||||||
SURFACE_BRIGHT={{colors.surface_bright.default.hex}}
|
|
||||||
SURFACE_CONTAINER={{colors.surface_container.default.hex}}
|
SURFACE_CONTAINER={{colors.surface_container.default.hex}}
|
||||||
SURFACE_CONTAINER_LOW={{colors.surface_container_low.default.hex}}
|
|
||||||
SURFACE_CONTAINER_HIGH={{colors.surface_container_high.default.hex}}
|
|
||||||
SURFACE_VARIANT={{colors.surface_variant.default.hex}}
|
SURFACE_VARIANT={{colors.surface_variant.default.hex}}
|
||||||
|
INVERSE_SURFACE={{colors.inverse_surface.default.hex}}
|
||||||
|
|
||||||
# Text colors
|
# On colors - text/icons on surfaces
|
||||||
ON_SURFACE={{colors.on_surface.default.hex}}
|
ON_SURFACE={{colors.on_surface.default.hex}}
|
||||||
ON_SURFACE_VARIANT={{colors.on_surface_variant.default.hex}}
|
ON_SURFACE_VARIANT={{colors.on_surface_variant.default.hex}}
|
||||||
|
INVERSE_ON_SURFACE={{colors.inverse_on_surface.default.hex}}
|
||||||
|
|
||||||
# Utility colors
|
# Outlines - borders and dividers
|
||||||
OUTLINE={{colors.outline.default.hex}}
|
OUTLINE={{colors.outline.default.hex}}
|
||||||
OUTLINE_VARIANT={{colors.outline_variant.default.hex}}
|
OUTLINE_VARIANT={{colors.outline_variant.default.hex}}
|
||||||
|
|
||||||
|
# Error - destructive actions
|
||||||
ERROR={{colors.error.default.hex}}
|
ERROR={{colors.error.default.hex}}
|
||||||
ON_ERROR={{colors.on_error.default.hex}}
|
ON_ERROR={{colors.on_error.default.hex}}
|
||||||
ERROR_CONTAINER={{colors.error_container.default.hex}}
|
|
||||||
ON_ERROR_CONTAINER={{colors.on_error_container.default.hex}}
|
|
||||||
INVERSE_SURFACE={{colors.inverse_surface.default.hex}}
|
|
||||||
INVERSE_ON_SURFACE={{colors.inverse_on_surface.default.hex}}
|
|
||||||
INVERSE_PRIMARY={{colors.inverse_primary.default.hex}}
|
|
||||||
SCRIM={{colors.scrim.default.hex}}
|
|
||||||
SHADOW={{colors.shadow.default.hex}}
|
|
||||||
|
|
||||||
# =============================================
|
# =============================================
|
||||||
# Tmux Styling using theme colors
|
# Tmux Styling with Semantic Colors
|
||||||
# =============================================
|
# =============================================
|
||||||
|
|
||||||
# Status bar styling
|
# Status bar - surface container for elevation
|
||||||
set -g status-style "bg={{colors.surface.default.hex}},fg={{colors.on_surface.default.hex}}"
|
set -g status-style "bg={{colors.surface_container.default.hex}},fg={{colors.on_surface.default.hex}}"
|
||||||
set -g status-left "#[fg={{colors.on_primary.default.hex}},bg={{colors.primary.default.hex}},bold] #S #[default] "
|
|
||||||
|
|
||||||
# Status bar right side - date and time
|
# Left side - primary with on-primary text (max contrast)
|
||||||
|
set -g status-left "#[fg={{colors.on_primary.default.hex}},bg={{colors.primary.default.hex}},bold] #S #[bg={{colors.surface_container.default.hex}}] "
|
||||||
|
|
||||||
|
# Right side - muted text
|
||||||
set -g status-right "#[fg={{colors.on_surface_variant.default.hex}}]%Y-%m-%d #[fg={{colors.on_surface.default.hex}}]%H:%M #[default]"
|
set -g status-right "#[fg={{colors.on_surface_variant.default.hex}}]%Y-%m-%d #[fg={{colors.on_surface.default.hex}}]%H:%M #[default]"
|
||||||
|
|
||||||
# Window status format
|
# Window tabs - variant for inactive, primary for active
|
||||||
set -g window-status-format "#[fg={{colors.on_surface_variant.default.hex}}] #I:#W "
|
set -g window-status-format "#[fg={{colors.on_surface_variant.default.hex}}] #I:#W "
|
||||||
set -g window-status-current-format "#[fg={{colors.on_primary_container.default.hex}},bg={{colors.primary_container.default.hex}},bold] #I:#W #[default]"
|
set -g window-status-current-format "#[fg={{colors.on_primary.default.hex}},bg={{colors.primary.default.hex}},bold] #I:#W #[default]"
|
||||||
set -g window-status-separator ""
|
set -g window-status-separator ""
|
||||||
set -g status-justify left
|
set -g status-justify left
|
||||||
|
|
||||||
# Pane borders
|
# Pane borders - outline for inactive, primary for active
|
||||||
set -g pane-border-style "fg={{colors.outline_variant.default.hex}}"
|
set -g pane-border-style "fg={{colors.outline_variant.default.hex}}"
|
||||||
set -g pane-active-border-style "fg={{colors.primary.default.hex}}"
|
set -g pane-active-border-style "fg={{colors.primary.default.hex}}"
|
||||||
|
|
||||||
# Message styling (for confirm dialogs like kill-pane) - use high contrast
|
# Messages - surface variant bg with on-surface text
|
||||||
set -g message-style "fg={{colors.on_surface.default.hex}},bg={{colors.primary.default.hex}},bold"
|
set -g message-style "bg={{colors.surface_variant.default.hex}},fg={{colors.on_surface.default.hex}},bold"
|
||||||
set -g message-command-style "fg={{colors.on_surface.default.hex}},bg={{colors.secondary.default.hex}}"
|
set -g message-command-style "bg={{colors.surface_container.default.hex}},fg={{colors.on_surface.default.hex}}"
|
||||||
|
|
||||||
# Mode styling (copy mode, etc.)
|
# Copy mode - tertiary accent
|
||||||
set -g mode-style "fg={{colors.on_tertiary.default.hex}},bg={{colors.tertiary_container.default.hex}}"
|
set -g mode-style "bg={{colors.tertiary.default.hex}},fg={{colors.on_tertiary.default.hex}}"
|
||||||
|
|
||||||
# Clock mode
|
# Clock
|
||||||
set -g clock-mode-color "{{colors.primary.default.hex}}"
|
set -g clock-mode-color "{{colors.primary.default.hex}}"
|
||||||
|
|
||||||
# Selection highlighting
|
# Selection highlighting
|
||||||
set -g copy-mode-match-style "fg={{colors.on_tertiary.default.hex}},bg={{colors.tertiary_container.default.hex}}"
|
set -g copy-mode-match-style "bg={{colors.tertiary_container.default.hex}},fg={{colors.on_tertiary_container.default.hex}}"
|
||||||
set -g copy-mode-current-match-style "fg={{colors.on_primary.default.hex}},bg={{colors.primary_container.default.hex}},bold"
|
set -g copy-mode-current-match-style "bg={{colors.primary.default.hex}},fg={{colors.on_primary.default.hex}},bold"
|
||||||
|
|
||||||
# Popup styling
|
# Popups and menus
|
||||||
set -g popup-style "bg={{colors.surface_container.default.hex}},fg={{colors.on_surface.default.hex}}"
|
set -g popup-style "bg={{colors.surface_container.default.hex}},fg={{colors.on_surface.default.hex}}"
|
||||||
set -g popup-border-style "fg={{colors.outline.default.hex}}"
|
set -g popup-border-style "fg={{colors.outline.default.hex}}"
|
||||||
|
|
||||||
# Menu styling
|
|
||||||
set -g menu-style "bg={{colors.surface_container.default.hex}},fg={{colors.on_surface.default.hex}}"
|
set -g menu-style "bg={{colors.surface_container.default.hex}},fg={{colors.on_surface.default.hex}}"
|
||||||
set -g menu-selected-style "bg={{colors.primary_container.default.hex}},fg={{colors.on_primary_container.default.hex}}"
|
set -g menu-selected-style "bg={{colors.primary.default.hex}},fg={{colors.on_primary.default.hex}}"
|
||||||
set -g menu-border-style "fg={{colors.outline.default.hex}}"
|
set -g menu-border-style "fg={{colors.outline.default.hex}}"
|
||||||
|
|||||||
+29
-8
@@ -92,8 +92,8 @@ bind -n M-Down select-pane -D
|
|||||||
bind -n M-Up select-pane -U
|
bind -n M-Up select-pane -U
|
||||||
bind -n M-Right select-pane -R
|
bind -n M-Right select-pane -R
|
||||||
|
|
||||||
# Resize panes - Ctrl+R then arrows (no prefix needed)
|
# Resize panes - Ctrl+S then r, then arrows
|
||||||
bind -n C-r switch-client -T resize-pane
|
bind r switch-client -T resize-pane
|
||||||
bind -T resize-pane Left resize-pane -L 5 \; switch-client -T resize-pane
|
bind -T resize-pane Left resize-pane -L 5 \; switch-client -T resize-pane
|
||||||
bind -T resize-pane Right resize-pane -R 5 \; switch-client -T resize-pane
|
bind -T resize-pane Right resize-pane -R 5 \; switch-client -T resize-pane
|
||||||
bind -T resize-pane Up resize-pane -U 5 \; switch-client -T resize-pane
|
bind -T resize-pane Up resize-pane -U 5 \; switch-client -T resize-pane
|
||||||
@@ -115,8 +115,8 @@ bind j command-prompt -p "join pane from window #:" "join-pane -s '%%'"
|
|||||||
bind > swap-pane -D
|
bind > swap-pane -D
|
||||||
bind < swap-pane -U
|
bind < swap-pane -U
|
||||||
|
|
||||||
# Move panes around - Ctrl+E then arrows (no prefix needed, stays in mode)
|
# Move panes around - Ctrl+s m then arrows
|
||||||
bind -n C-e switch-client -T move-pane
|
bind m switch-client -T move-pane
|
||||||
bind -T move-pane Left swap-pane -s '{left-of}' \; switch-client -T move-pane
|
bind -T move-pane Left swap-pane -s '{left-of}' \; switch-client -T move-pane
|
||||||
bind -T move-pane Right swap-pane -s '{right-of}' \; switch-client -T move-pane
|
bind -T move-pane Right swap-pane -s '{right-of}' \; switch-client -T move-pane
|
||||||
bind -T move-pane Up swap-pane -s '{up-of}' \; switch-client -T move-pane
|
bind -T move-pane Up swap-pane -s '{up-of}' \; switch-client -T move-pane
|
||||||
@@ -125,8 +125,8 @@ bind -T move-pane Escape switch-client -T root
|
|||||||
bind -T move-pane Enter switch-client -T root
|
bind -T move-pane Enter switch-client -T root
|
||||||
|
|
||||||
# Mark pane + swap with marked pane (advanced)
|
# Mark pane + swap with marked pane (advanced)
|
||||||
bind m select-pane -m # Mark current pane
|
bind M select-pane -m # Mark current pane (capital M)
|
||||||
bind M swap-pane # Swap with marked pane
|
bind * swap-pane # Swap with marked pane
|
||||||
|
|
||||||
# Move pane to another window by number
|
# Move pane to another window by number
|
||||||
bind @ command-prompt -p "send pane to window #:" "join-pane -t ':%%'"
|
bind @ command-prompt -p "send pane to window #:" "join-pane -t ':%%'"
|
||||||
@@ -227,8 +227,8 @@ set -g status-right-length 150
|
|||||||
# Other Useful Bindings
|
# Other Useful Bindings
|
||||||
# -----------------------------------------
|
# -----------------------------------------
|
||||||
|
|
||||||
# Prefix + r to reload config
|
# Prefix + . to reload config
|
||||||
bind r source-file ~/.config/tmux/tmux.conf \; display "Config reloaded!"
|
bind . source-file ~/.config/tmux/tmux.conf \; display "Config reloaded!"
|
||||||
|
|
||||||
# Prefix + x to kill current pane (with confirmation)
|
# Prefix + x to kill current pane (with confirmation)
|
||||||
bind x confirm-before -p "kill-pane #P? (y/n)" kill-pane
|
bind x confirm-before -p "kill-pane #P? (y/n)" kill-pane
|
||||||
@@ -242,6 +242,27 @@ bind S set synchronize-panes
|
|||||||
# Zoom current pane (toggle full-screen for pane)
|
# Zoom current pane (toggle full-screen for pane)
|
||||||
bind z resize-pane -Z
|
bind z resize-pane -Z
|
||||||
|
|
||||||
|
# -----------------------------------------
|
||||||
|
# Plugins (local dotfiles)
|
||||||
|
# -----------------------------------------
|
||||||
|
|
||||||
|
# Set plugin path to dotfiles location
|
||||||
|
set-environment -g TMUX_PLUGIN_MANAGER_PATH '~/.config/tmux/plugins/'
|
||||||
|
|
||||||
|
# Resurrect settings
|
||||||
|
set -g @resurrect-save 'S'
|
||||||
|
set -g @resurrect-restore 'L'
|
||||||
|
set -g @resurrect-capture-pane-contents 'on'
|
||||||
|
set -g @resurrect-strategy-nvim 'session'
|
||||||
|
|
||||||
|
# Continuum settings - auto-save every 15 minutes
|
||||||
|
set -g @continuum-save-interval '15'
|
||||||
|
set -g @continuum-restore 'on'
|
||||||
|
|
||||||
|
# Load plugins directly (bypass TPM)
|
||||||
|
run '~/.config/tmux/plugins/tmux-resurrect/resurrect.tmux'
|
||||||
|
run '~/.config/tmux/plugins/tmux-continuum/continuum.tmux'
|
||||||
|
|
||||||
# -----------------------------------------
|
# -----------------------------------------
|
||||||
# Notification Settings
|
# Notification Settings
|
||||||
# -----------------------------------------
|
# -----------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user