This commit is contained in:
2025-08-13 21:46:48 +02:00
commit c3e2e6509b
818 changed files with 54187 additions and 0 deletions

22
tmux/.github/README.md vendored Normal file
View File

@@ -0,0 +1,22 @@
<div align="center">
<a href="#"><img src="./title.png"></a>
</div>
<div align="center">
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/palette/macchiato.png" width="90%"/><br>
</div>
<div align="center">
<a href="https://dotfiles-docs.vercel.app/app-confs/tmux.html#about"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-about.png"></a>
<a href="https://dotfiles-docs.vercel.app/app-confs/tmux.html#setup"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-setup.png"></a>
<a href="https://dotfiles-docs.vercel.app/app-confs/tmux.html#gallery"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-gallery.png"></a>
</div>
<br>
> [!NOTE]
> All the information about the tmux setup is on the documentation website: https://dotfiles-docs.vercel.app/app-confs/tmux.html

BIN
tmux/.github/overview-1.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 401 KiB

BIN
tmux/.github/overview-2.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 732 KiB

BIN
tmux/.github/overview-3.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 KiB

BIN
tmux/.github/title.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

57
tmux/conf/binds.conf Normal file
View File

@@ -0,0 +1,57 @@
# Set new prefix (Alt+Space)
unbind C-b
set -g prefix M-Space
bind Space send-prefix
# Config reload
bind C-r source-file ~/.config/tmux/tmux.conf \; display-message "tmux.conf reloaded"
# Vim mode
setw -g mode-keys vi
set -g status-keys vi
bind 'v' copy-mode
bind -T copy-mode-vi v send -X begin-selection
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "wl-copy"
bind p paste-buffer
bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "wl-copy"
# Split windows
bind | split-window -hc "#{pane_current_path}"
bind-key "\\" split-window -fh -c "#{pane_current_path}"
bind - split-window -vc "#{pane_current_path}"
# Maintain the same path when creating a new window
bind c new-window -c "#{pane_current_path}"
bind-key C command-prompt -p "Enter window name:" "new-window -n '%%'"
# Move to the next and prev window
bind-key l next-window
bind-key h previous-window
bind-key -n C-M-l next-window
bind-key -n C-M-h previous-window
# Change window name
bind-key r command-prompt -I "#W" "rename-window '%%'"
bind-key R command-prompt -I "#W" "rename-session '%%'"
# Move to the next and prev session
bind j switch-client -n
bind k switch-client -p
# Close a window
bind-key Q kill-window
# Close a pane
bind-key q kill-pane
# Close a session
bind-key M-q kill-session
# Swap windows
bind -r "<" swap-window -d -t -1
bind -r ">" swap-window -d -t +1
# Projects
bind-key Enter popup -E -h 80% -w 80% "dev"

31
tmux/conf/options.conf Normal file
View File

@@ -0,0 +1,31 @@
# Enable mouse
set -g mouse on
# Theming and layout
set -g default-terminal "${TERM}"
set -g status-position top
set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm'
set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m'
# Windows and panes
set -g base-index 1
setw -g pane-base-index 1
set-window-option -g pane-base-index 1
set-option -g renumber-windows 1
setw -g aggressive-resize on
# Shell
set-option -g default-shell $SHELL
set-option -g default-command $SHELL
# Environment
set-environment -g TMUX_DATA_DIR "${HOME}/.local/share/tmux"
# Ohers
set -g history-limit 100000
set-option -g lock-after-time 0
set -s escape-time 0
set -g set-titles on
set -g allow-passthrough on
set -ga update-environment TERM
set -ga update-environment TERM_PROGRAM

61
tmux/conf/plugins.conf Normal file
View File

@@ -0,0 +1,61 @@
# Plugins Declaration
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'catppuccin/tmux#v0.3.0'
set -g @plugin 'omerxx/tmux-sessionx'
set -g @plugin 'wfxr/tmux-fzf-url'
set -g @plugin 'omerxx/tmux-floax'
set -g @plugin 'mrjones2014/smart-splits.nvim'
# Plugin Options
# Catppuccin
set -g @catppuccin_directory_text "#{pane_current_path}"
set -g @catppuccin_window_current_text "#{window_name}"
set -g @catppuccin_window_default_text "#{window_name}"
set -g @catppuccin_flavor 'macchiato'
set -g @catppuccin_window_left_separator "█"
set -g @catppuccin_window_right_separator "█"
set -g @catppuccin_window_number_position "right"
set -g @catppuccin_window_middle_separator " █"
set -g @catppuccin_window_default_fill "number"
set -g @catppuccin_window_current_background "#{thm_gray}"
set -g @catppuccin_status_modules_right "directory user host"
set -g @catppuccin_status_modules_left "session"
set -g @catppuccin_status_left_separator "█"
set -g @catppuccin_status_right_separator ""
set -g @catppuccin_status_fill "all"
set -g @catppuccin_status_connect_separator "yes"
# Sessionx
set -g @sessionx-bind 'space'
set -g @sessionx-filter-current 'true'
set -g @sessionx-preview-location 'top'
set -g @sessionx-preview-ratio '65%'
set -g @sessionx-window-height '80%'
set -g @sessionx-window-width '75%'
set -g @sessionx-tmuxinator-mode 'on'
set -g @sessionx-bind-window-mode 'alt-w'
set -g @sessionx-bind-tree-mode 'alt-t'
set -g @sessionx-bind-new-window 'alt-c'
set -g @sessionx-bind-rename-session 'alt-r'
set -g @sessionx-bind-kill-session 'alt-q'
set -g @sessionx-bind-configuration-path 'alt-e'
set -g @sessionx-bind-back 'alt-b'
set -g @sessionx-ls-command 'eza -a --icons --group-directories-first --color always'
set -g @sessionx-filtered-sessions 'scratch'
# fzf-url
set -g @fzf-url-bind 'u'
# Floax
set -g @floax-bind '-n M-p'
set -g @floax-border-color 'white'
set -g @floax-text-color 'white'
# smart-splits
set -g @smart-splits_resize_left_key 'C-left'
set -g @smart-splits_resize_down_key 'C-down'
set -g @smart-splits_resize_up_key 'C-up'
set -g @smart-splits_resize_right_key 'C-right'

11
tmux/tmux.conf Normal file
View File

@@ -0,0 +1,11 @@
# Import
source-file ~/.config/tmux/conf/plugins.conf
source-file ~/.config/tmux/conf/binds.conf
source-file ~/.config/tmux/conf/options.conf
run '~/.config/tmux/plugins/tpm/tpm'
# Padding for the status bar (Need to put it here to work correctly)
set -Fg 'status-format[1]' '#{status-format[0]}'
set -g 'status-format[1]' ''
set -g status 2