###########  INFO  ####################################################
# tmux config - torsten
# last modified - november 2025
#
# tmux config – Kurzinfo
#
# (i)   Voraussetzungen:
#       - tmux >= 3.x
#       - X11:    sudo apt install xclip
#       - Wayland: sudo apt install wl-clipboard
#
# (ii)  Umbelegungen:
#       - Steuersequenz zum Ausführen von tmux-Befehlen: Ctrl+A
#       - Vim copy-mode (vi-keys)
#       - Maus aktiv (Scroll, Resize, Select)
#       - Pane-Navigation → Alt+Pfeiltasten
#       - Window-Navigation → Ctrl+Left/Right
#       - Kopieren → Enter / y → System-Clipboard
#
# (iii) Hinweise:
#       - Terminal: tmux-256color
#       - history-limit 100000
#       - escape-time 0
#       - Reload der Config: Ctrl+A gefolgt von r
###############################################################

#######   USAGE   #############################################
# Kopieren in tmux
#
# tmux → Ubuntu-Clipboard:
#     Ctrl + A
#     [
#     SPACE (Auswahl starten)
#     Text mit Pfeiltasten oder h/j/k/l auswählen
#     ENTER (geht direkt ins Ubuntu-Clipboard)
#
# Ubuntu-Clipboard → tmux:
#     Shift + Ctrl + V
#
# Ubuntu-Clipboard → andere Programme:
#     Ctrl + V
#
# Hinweis:
#     Normales Terminal-Markieren mit der Maus funktioniert nur,
#     wenn man zusätzlich SHIFT hält (z. B. Shift + Linksklick),
#     weil tmux die Maus sonst selbst abfängt.
#
# Kurz:
#     tmux → Clipboard:  Ctrl+A → [ → SPACE → markieren → ENTER
#     Clipboard → tmux:  Shift+Ctrl+V
###############################################################






# --- Prefix auf Ctrl+Space ---
# remap to ctrl+a - besser erreichbar und wie in screen
unbind C-b
set -g prefix C-a
bind C-a send-prefix

set -g repeat-time 500

# --- Maus aktivieren ---
set -g mouse on
# --- Scroll- und History-Optimierung ---
set -g history-limit 100000

bind -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"

# --- Farben / Terminal ---
set -g default-terminal "tmux-256color"
set -as terminal-overrides ",xterm-256color:RGB"

# --- Pane Splits ergonomisch ---
#bind sh split-window -h
#bind sv split-window -v
#unbind '"'
#unbind %

# --- Fenster und Pane Navigation ---
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D

bind -n C-Left previous-window
bind -n C-Right next-window

# --- Copy Mode (vim-style) ---
setw -g mode-keys vi
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"

# --- Statusbar ---
set -g status-bg black
set -g status-fg white
set -g status-left "#[fg=green]#S #[fg=cyan]|"
set -g status-right "#[fg=cyan]%Y-%m-%d %H:%M #[fg=green]#W"

# --- Pane-Borders ---
set -g pane-active-border-style "fg=green"
set -g pane-border-style "fg=grey"

# --- Verbesserte Performance ---
set -g escape-time 0
setw -g aggressive-resize on
#

bind -T prefix MouseDrag1Pane send -M
bind -T root MouseDrag1Pane send -M

