From 511c7cd548b459ec5ff95ec5887362dbe714b6ab Mon Sep 17 00:00:00 2001 From: pika Date: Sat, 8 Mar 2025 22:37:32 +0100 Subject: [PATCH] addet tmux conf redefined --- .tmux.conf | 137 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 85 insertions(+), 52 deletions(-) diff --git a/.tmux.conf b/.tmux.conf index 5093c6f..31fec0e 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -1,71 +1,104 @@ -set-option -sa terminal-overrides ",xterm*:Tc" +# ─────────────────────────────────────────────────────────────────────────── +# General tmux Settings +# ─────────────────────────────────────────────────────────────────────────── + +# Enable 256 color support for tmux +set-option -sa terminal-overrides ",xterm-256color*:Tc" + +# Enable mouse support (for scrolling, resizing, etc.) set -g mouse on -# Set prefix +# ─────────────────────────────────────────────────────────────────────────── +# Key Bindings +# ─────────────────────────────────────────────────────────────────────────── + +# Set the prefix key to C-Space instead of default C-b unbind C-b set -g prefix C-Space bind C-Space send-prefix -# ─< Start windows and panes at 1, not 0 >────────────────────────────────────────────────── +# ─────────────────────────────────────────────────────────────────────────── +# Window and Pane Indexing +# ─────────────────────────────────────────────────────────────────────────── + +# Start windows and panes at index 1 instead of 0 set -g base-index 1 set -g pane-base-index 1 set-window-option -g pane-base-index 1 set-option -g renumber-windows on -# ────────────────────────────────────< List of plugins >────────────────────────────────── +# ─────────────────────────────────────────────────────────────────────────── +# Split Panes in the Current Directory +# ─────────────────────────────────────────────────────────────────────────── -# ─< Import Plugins >───────────────────────────────────────────────────────────────────── -set -g @plugin 'tmux-plugins/tpm' - -# ────────────────────────────< tmux settings everybody agreed >──────────────────────────── -set -g @plugin 'tmux-plugins/tmux-sensible' - -# ────────────────────────────────────< yank for tmux >────────────────────────────────── -set -g @plugin 'tmux-plugins/tmux-yank' - -# ────────────────────< tmux session plugin for after reboot sessions >────────────────── -set -g @plugin 'tmux-plugins/tmux-resurrect' - -# ─────────────────────────────────< tmux battery plugin >─────────────────────────────── -# set -g @plugin 'tmux-plugins/tmux-battery' - -# ─────────────────────────────────────< colorschemes >───────────────────────────────────── -# set -g @plugin 'catppuccin/tmux' -# set -g @plugin 'janoamaral/tokyo-night-tmux' -set -g @plugin 'egel/tmux-gruvbox' - -# set desired theme options... -set -g @tmux-gruvbox 'dark256' # or 'dark', 'light', 'light256' - -# ────────────────────────────────────< copyct plugin >────────────────────────────────── -set -g @plugin 'tmux-plugins/tmux-copycat' - -# ────────────────────────────────< ethernet speed plugin >────────────────────────────── -# set -g @plugin 'tmux-plugins/tmux-net-speed' -# set -g @net_speed_interfaces 'eth0 enp7s0 wlan0' - -# ─────────────────────────────────────────< Themes >───────────────────────────────────────── -# ─< catppuccin >───────────────────────────────────────────────────────────────────────── -# set -g @catppuccin_flavour 'mocha' # latte, frappe, mocha or macchiato - -# ─< tokyo-night >──────────────────────────────────────────────────────────────────────── -set -g @tokyo-night-tmux_window_id_style digital -set -g @tokyo-night-tmux_pane_id_style hsquare -set -g @tokyo-night-tmux_zoom_id_style dsquare - -run '~/.tmux/plugins/tpm/tpm' - -# ─< Split panes in current directory >─────────────────────────────────────────────────── -bind j split-window -v -c "#{pane_current_path}" +# Split horizontally or vertically while preserving the current directory bind h split-window -h -c "#{pane_current_path}" +bind j split-window -v -c "#{pane_current_path}" -# ─< Make pane fullscreen >───────────────────────────────────────────────────────────────── +# ─────────────────────────────────────────────────────────────────────────── +# Make Pane Fullscreen +# ─────────────────────────────────────────────────────────────────────────── + +# Toggle the current pane between normal and fullscreen mode bind -n C-f resize-pane -Z -# ───────────────────────────────────< Navigate the panes >─────────────────────────────────── -# ─< Switch to the left pane with Prefix + h >──────────────────────────────────────────────── +# ─────────────────────────────────────────────────────────────────────────── +# Navigation between Panes +# ─────────────────────────────────────────────────────────────────────────── +# Use C-h and C-l to switch between panes bind -n C-h select-pane -L - -# ─< Switch to the right pane with Prefix + l >─────────────────────────────────────────────── bind -n C-l select-pane -R + +# ─────────────────────────────────────────────────────────────────────────── +# Plugins +# ─────────────────────────────────────────────────────────────────────────── + +# Use TPM (Tmux Plugin Manager) to manage plugins +set -g @plugin 'tmux-plugins/tpm' + +# List of Plugins to Install +set -g @plugin 'nhdaly/tmux-better-mouse-mode' +set -g @plugin 'egel/tmux-gruvbox' # Gruvbox theme for tmux +set -g @plugin 'tmux-plugins/tmux-sensible' # Sensible tmux defaults +set -g @plugin 'tmux-plugins/tmux-yank' # Yank (copy-paste) support +set -g @plugin 'b0o/tmux-autoreload' # Auto-reload tmux config when updated + +# Initialize TPM (Tmux Plugin Manager) +run '~/.tmux/plugins/tpm/tpm' + +# ─────────────────────────────────────────────────────────────────────────── +# Gruvbox Theme Configuration +# ─────────────────────────────────────────────────────────────────────────── + +# Gruvbox color scheme settings +set -g @tmux-gruvbox 'dark256' # Can be 'dark', 'dark256', 'light', 'light256' +set -g @tmux-gruvbox-right-status-z '#h #{tmux_mode_indicator}' # Hostname and tmux mode indicator +set -g @tmux-gruvbox-right-status-x '%d.%m.%Y' # Date format (e.g., 30.01.2024) +# Customize status line to show the mode indicator when in prefix mode +set -g status on +set -g status-interval 2 # Refresh every 2 seconds + +# Ensure that when prefix is pressed, the mode indicator is shown +set -g mode-keys vi # Use vi keybindings in copy mode +set -g status-left-length 30 # Limit length of the left status line +set -g status-right-length 60 # Limit length of the right status line + +# ─────────────────────────────────────────────────────────────────────────── +# Additional Settings (Optional) +# ─────────────────────────────────────────────────────────────────────────── + +# Allow pane splitting and navigation using Emacs-like bindings +# 'C-h' (left) and 'C-l' (right) to switch between panes. +# This is already defined earlier in the config. + +# ─────────────────────────────────────────────────────────────────────────── +# Auto-reload tmux config on changes (with TPM) +# ─────────────────────────────────────────────────────────────────────────── + +# Reload tmux configuration without restarting tmux +bind r source-file ~/.tmux.conf \; display-message "Config reloaded!" + +# ─────────────────────────────────────────────────────────────────────────── +# Other customizations or plugins can go below as needed. +# ───────────────────────────────────────────────────────────────────────────