Added tmuxinator and other tmux plugins

This commit is contained in:
2025-09-14 11:42:35 -04:00
parent 9fe6d7b62d
commit d9fd53fbc3
11 changed files with 308 additions and 31 deletions

View File

@@ -0,0 +1,58 @@
# /home/th3r00t/.config/tmuxinator/CloudyDeep.yml
name: CloudyDeep
root: ~/Projects/cloudydeep/
# Optional tmux socket
# socket_name: foo
# Note that the pre and post options have been deprecated and will be replaced by
# project hooks.
# Project hooks
# Runs on project start, always
# on_project_start: command
# Run on project start, the first time
# on_project_first_start: command
# Run on project start, after the first time
# on_project_restart: command
# Run on project exit ( detaching from tmux session )
# on_project_exit: command
# Run on project stop
# on_project_stop: command
# Runs in each window and pane before window/pane specific commands. Useful for setting up interpreter versions.
# pre_window: rbenv shell 2.0.0-p247
# Pass command line options to tmux. Useful for specifying a different tmux.conf.
# tmux_options: -f ~/.tmux.mac.conf
# Change the command to call tmux. This can be used by derivatives/wrappers like byobu.
# tmux_command: byobu
# Specifies (by name or index) which window will be selected on project startup. If not set, the first window is used.
startup_window: Backend
# Specifies (by index) which pane of the specified window will be selected on project startup. If not set, the first pane is used.
# startup_pane: 1
# Controls whether the tmux session should be attached to automatically. Defaults to true.
# attach: false
enable_pane_titles: true
windows:
- Backend:
layout: 5c3f,189x62,0,0[189x46,0,0,6,189x15,0,47,7]
panes:
- nvim
- inotify_test_pytest.sh
- Frontend:
root: ~/Projects/cloudydeep/src/frontend/
layout: 5c3f,189x62,0,0[189x46,0,0,6,189x15,0,47,7]
panes:
- nvim
- cowsay "bun run something here 🍔"

View File

@@ -0,0 +1,56 @@
# /home/th3r00t/.config/tmuxinator/Development.yml
name: Development
root: ~/Projects/
# Optional tmux socket
# socket_name: foo
# Note that the pre and post options have been deprecated and will be replaced by
# project hooks.
# Project hooks
# Runs on project start, always
# on_project_start: command
# Run on project start, the first time
# on_project_first_start: command
# Run on project start, after the first time
# on_project_restart: command
# Run on project exit ( detaching from tmux session )
# on_project_exit: command
# Run on project stop
# on_project_stop: command
# Runs in each window and pane before window/pane specific commands. Useful for setting up interpreter versions.
# pre_window: rbenv shell 2.0.0-p247
# Pass command line options to tmux. Useful for specifying a different tmux.conf.
# tmux_options: -f ~/.tmux.mac.conf
# Change the command to call tmux. This can be used by derivatives/wrappers like byobu.
# tmux_command: byobu
# Specifies (by name or index) which window will be selected on project startup. If not set, the first window is used.
startup_window: Editor
# Specifies (by index) which pane of the specified window will be selected on project startup. If not set, the first pane is used.
# startup_pane: 1
# Controls whether the tmux session should be attached to automatically. Defaults to true.
# attach: false
enable_pane_titles: true
windows:
- Editor:
panes:
- nvim
- Debugger:
panes:
- clear;fastfetch;misfortune|cowsay|lolcat
- Testing:
panes:
- clear;fastfetch;misfortune|cowsay|lolcat

View File

@@ -0,0 +1,36 @@
# /home/th3r00t/.config/tmuxinator/Dotfiles.yml
name: Nixos
root: /etc/nixos/
# Optional tmux socket
# socket_name: foo
# Runs on project start, always
on_project_start: export BROWSER=w3m
# Run on project start, the first time
# on_project_first_start: command
# Run on project start, after the first time
# on_project_restart: command
# Run on project exit ( detaching from tmux session )
# on_project_exit: command
# Run on project stop
# on_project_stop: command
# Specifies (by name or index) which window will be selected on project startup. If not set, the first window is used.
startup_window: Editor
# Specifies (by index) which pane of the specified window will be selected on project startup. If not set, the first pane is used.
# startup_pane: 1
# Controls whether the tmux session should be attached to automatically. Defaults to true.
# attach: false
enable_pane_titles: true
windows:
- Git:
- lazygit
- Editor:
- nvim

View File

@@ -0,0 +1,42 @@
# /home/th3r00t/.config/tmuxinator/Dashboard.yml
name: Dashboard
root: ~/
# Optional tmux socket
# socket_name: foo
# Runs on project start, always
# on_project_start: export BROWSER=qutebrowser
# Run on project start, the first time
# on_project_first_start: command
# Run on project start, after the first time
# on_project_restart: command
# Run on project exit ( detaching from tmux session )
# on_project_exit: command
# Run on project stop
# on_project_stop: command
# Specifies (by name or index) which window will be selected on project startup. If not set, the first window is used.
startup_window: Dash
# Specifies (by index) which pane of the specified window will be selected on project startup. If not set, the first pane is used.
# startup_pane: 1
# Controls whether the tmux session should be attached to automatically. Defaults to true.
# attach: false
enable_pane_titles: true
windows:
- Dash:
- clear;fastfetch;misfortune|cowsay|lolcat
- IRC:
- irssi
- Email:
- mbsync -a;neomutt
- Music:
- musikcube
- Podcasts:
- castero

View File

@@ -0,0 +1,56 @@
# /home/th3r00t/.config/tmuxinator/pytui.yml
name: pytui
root: ~/Projects/pytui
# Optional tmux socket
# socket_name: foo
# Note that the pre and post options have been deprecated and will be replaced by
# project hooks.
# Project hooks
# Runs on project start, always
# on_project_start: command
# Run on project start, the first time
on_project_first_start: uv sync
# Run on project start, after the first time
# on_project_restart: command
# Run on project exit ( detaching from tmux session )
# on_project_exit: command
# Run on project stop
# on_project_stop: command
# Runs in each window and pane before window/pane specific commands. Useful for setting up interpreter versions.
# pre_window: rbenv shell 2.0.0-p247
# Pass command line options to tmux. Useful for specifying a different tmux.conf.
# tmux_options: -f ~/.tmux.mac.conf
# Change the command to call tmux. This can be used by derivatives/wrappers like byobu.
# tmux_command: byobu
# Specifies (by name or index) which window will be selected on project startup. If not set, the first window is used.
startup_window: Editor
# Specifies (by index) which pane of the specified window will be selected on project startup. If not set, the first pane is used.
# startup_pane: 1
# Controls whether the tmux session should be attached to automatically. Defaults to true.
# attach: false
enable_pane_titles: true
windows:
- Editor:
panes:
- ranger
- Debugger:
panes:
- clear;fastfetch;misfortune|cowsay|lolcat
- Testing:
panes:
- clear;fastfetch;misfortune|cowsay|lolcat

View File

@@ -0,0 +1,24 @@
# /home/th3r00t/.config/tmuxinator/tmuxConfig.yml
name: tmuxConfig
root: ~/
# Optional tmux socket
# socket_name: foo
# Specifies (by name or index) which window will be selected on project startup. If not set, the first window is used.
startup_window: tmux
# Specifies (by index) which pane of the specified window will be selected on project startup. If not set, the first pane is used.
# startup_pane: 1
# Controls whether the tmux session should be attached to automatically. Defaults to true.
# attach: false
enable_pane_titles: true
windows:
- tmux:
- nvim .tmux.conf
- tmuxinator:
root: ~/.config/tmuxinator/
panes:
- ranger .

View File

@@ -16,6 +16,10 @@
recursive = true; recursive = true;
executable = true; executable = true;
}; };
home.file.".config/tmuxinator" = {
source = ./.config/tmuxinator;
recursive = true;
};
home.file.".ssh/allowed_signers".text = '' home.file.".ssh/allowed_signers".text = ''
* ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH8P/3yzsruekSaZ9b+yk429VTcfCtI1j8jnkNbPAgnr th3r00t@nixos * ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH8P/3yzsruekSaZ9b+yk429VTcfCtI1j8jnkNbPAgnr th3r00t@nixos
''; '';
@@ -74,6 +78,7 @@
python-pkgs.ptpython python-pkgs.ptpython
python-pkgs.ipython python-pkgs.ipython
python-pkgs.pillow python-pkgs.pillow
python-pkgs.basedpyright
] ]
) )
) )

View File

@@ -219,7 +219,7 @@
enableGitIntegration = true; enableGitIntegration = true;
font = { font = {
name = "FiraCode Nerd Font Mono"; name = "FiraCode Nerd Font Mono";
size = 10.5; size = 9;
}; };
actionAliases = { actionAliases = {
"pytui" = "launch pytui"; "pytui" = "launch pytui";

View File

@@ -67,7 +67,8 @@
monitor = eDP-1, preferred,0x0,2 monitor = eDP-1, preferred,0x0,2
monitor = DP-2, 2560x1080@74.99,auto,1 monitor = DP-2, 2560x1080@74.99,auto,1
# monitor = Virtual-1, 2800x1752@120, 1920x0, 1 # monitor = Virtual-1, 2800x1752@120, 1920x0, 1
$terminal = kitty $terminal-notmux = kitty
$terminal = kitty -e tmux new-session zsh -c 'tmuxstartup.sh'
# $terminal = ghostty # $terminal = ghostty
# $terminal = footclient # $terminal = footclient
# $terminal = footclient -e tmux new-session zsh -c '~/.local/usr/bin/tmuxstartup.sh' # $terminal = footclient -e tmux new-session zsh -c '~/.local/usr/bin/tmuxstartup.sh'
@@ -78,13 +79,14 @@
$browser = qutebrowser $browser = qutebrowser
$notes = kitty -T capture -e pytui -n $notes = kitty -T capture -e pytui -n
$manpages = kitty -T capture -e pytui -m $manpages = kitty -T capture -e pytui -m
$sysmon = kitty -T system-monitor -e bashtop $sysmon = kitty -T system-monitor -e glances
$editor = neovide $editor = neovide
$screenshot = hyprshot -f ~/Pictures/Screenshots/%Y-%m-%d-%H%M%S.png $screenshot = hyprshot -f ~/Pictures/Screenshots/%Y-%m-%d-%H%M%S.png
bind = $mainMod SHIFT, M, exec, hyprvirtmon.py bind = $mainMod SHIFT, M, exec, hyprvirtmon.py
bind = $mainMod SHIFT, P, exec, externalmon.py bind = $mainMod SHIFT, P, exec, externalmon.py
bind = $mainMod SHIFT, Return, exec, $terminal bind = $mainMod SHIFT, Return, exec, $terminal
bind = $mainMod, Return, exec, $terminal-notmux
bind = $mainMod, D, exec, $editor bind = $mainMod, D, exec, $editor
bind = $mainMod, E, exec, $fileManager bind = $mainMod, E, exec, $fileManager
bind = $mainMod SHIFT, C, killactive bind = $mainMod SHIFT, C, killactive
@@ -97,7 +99,7 @@
bind = $mainMod CTRL, M, exec, $manpages bind = $mainMod CTRL, M, exec, $manpages
# bind = $mainMod, P, exec, $menu # bind = $mainMod, P, exec, $menu
bind = $mainMod, V, togglefloating bind = $mainMod, V, togglefloating
bind = $mainMod, P, pseudo, # dwindle # bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, TAB, togglesplit, # dwindle bind = $mainMod, TAB, togglesplit, # dwindle
bind = $mainMod, Y, fullscreen, 1 bind = $mainMod, Y, fullscreen, 1
bind = $mainMod, T, togglegroup bind = $mainMod, T, togglegroup

View File

@@ -9,7 +9,7 @@
mouse = true; mouse = true;
newSession = true; newSession = true;
plugins = with pkgs; [ plugins = with pkgs; [
tmuxPlugins.cpu # tmuxPlugins.cpu
{ {
plugin = tmuxPlugins.resurrect; plugin = tmuxPlugins.resurrect;
extraConfig = "set -g @resurrect-strategy-nvim 'session'"; extraConfig = "set -g @resurrect-strategy-nvim 'session'";
@@ -26,6 +26,7 @@
tmuxPlugins.vim-tmux-focus-events tmuxPlugins.vim-tmux-focus-events
tmuxPlugins.urlview tmuxPlugins.urlview
tmuxPlugins.tmux-fzf tmuxPlugins.tmux-fzf
tmuxPlugins.sidebar
{ {
plugin = tmuxPlugins.tokyo-night-tmux; plugin = tmuxPlugins.tokyo-night-tmux;
extraConfig = '' extraConfig = ''
@@ -46,16 +47,23 @@
} }
''; '';
} }
# { {
# plugin = tmuxPlugins.tilish; plugin = tmuxPlugins.pass;
# extraConfig = '' extraConfig = ''
# set -g @tilish-navigator 'on' set -g @pass-key b
# set -g @tilish-default 'main-vertical' set -g @pass-copy-to-clipboard on
# set -g @tilish-enforce 'none' '';
# set -g escape-time 0 }
# set -g @tilish-dmenu 'on' {
# ''; plugin = tmuxPlugins.tilish;
# } extraConfig = ''
set -g @tilish-navigator 'on'
set -g @tilish-default 'main-vertical'
set -g @tilish-enforce 'none'
set -g escape-time 0
set -g @tilish-dmenu 'on'
'';
}
]; ];
prefix = "C-a"; prefix = "C-a";
@@ -100,29 +108,19 @@
set -g escape-time 3 set -g escape-time 3
set-option -g status-position top set-option -g status-position top
set -g default-terminal 'tmux-256color' set -g default-terminal 'tmux-256color'
bind-key b choose-tree -Z "run-shell 'tmux swap-pane -s %%'" bind-key b choose-tree -Z "run-shell 'tmux swap-pane -s %%'"
# bind C-p display-popup -E -w 60% -h 70% 'tmuxsessions.sh'
bind C-p run-shell 'tmuxsessions.sh' bind C-p run-shell 'tmuxsessions.sh'
bind C-d run-shell 'dotfile-picker.sh' bind C-d run-shell 'dotfile-picker.sh'
bind [ run-shell 'project-picker.sh' bind [ run-shell 'project-picker.sh'
# bind C-c display-popup -E -w 50% -h 50% 'nvim +":cd ~/org" ~/org/refile.norg'
# bind C-c display-popup -E -w 50% -h 50% 'nvim +"VimwikiIndex"
bind C-c display-popup -E -w 60% -h 60% "pytui -n" bind C-c display-popup -E -w 60% -h 60% "pytui -n"
bind m display-popup -E -w 60% -h 60% "pytui -m" bind m display-popup -E -w 60% -h 60% "pytui -m"
# bind C-w display-popup -E -w 40% -h 60% "pytui -D"
bind C-o display-popup -E -w 50% -h 50% 'igrep ~/wiki/notes' bind C-o display-popup -E -w 50% -h 50% 'igrep ~/wiki/notes'
bind j run-shell 'popuptmux' bind j run-shell 'popuptmux'
bind r source-file ~/.config/tmux/tmux.conf \; display "Reloaded!" bind r source-file ~/.config/tmux/tmux.conf \; display "Reloaded!"
bind i split-window -v -c '\ bind-key -n F4 split-window -v 'ranger $PWD'
#{pane_current_path}' 'emojicherrypick.py --menu fzf\
'
bind-key -n F4 run-shell 'ranger'
# bind-key -n C-e split-window -v -c '\
#{pane_current_path}' 'vifm\'
bind-key -n C-f split-window 'ranger .' bind-key -n C-f split-window 'ranger .'
bind F3 send-keys 'igrep .' bind C-i split-window -v 'igrep .'
''; '';
}; };
} }

View File

@@ -6,7 +6,7 @@
mainBar = { mainBar = {
layer = "top"; layer = "top";
position = "top"; position = "top";
height = 30; height = 25;
modules-left = [ "hyprland/workspaces" ]; modules-left = [ "hyprland/workspaces" ];
modules-center = [ "hyprland/window" ]; modules-center = [ "hyprland/window" ];
modules-right = [ modules-right = [
@@ -214,13 +214,13 @@
window#waybar { window#waybar {
background-color: rgba(43, 48, 59, 0.5); background-color: rgba(43, 48, 59, 0.5);
border-bottom: 3px solid rgba(100, 114, 125, 0.5); border-bottom: 3px solid rgba(100, 114, 125, 0.5);
color: #ffffff; color: #ffffff;
transition-property: background-color; transition-property: background-color;
transition-duration: .5s; transition-duration: .5s;
} }
window#waybar.hidden { window#waybar.hidden {
opacity: 0.2; opacity: 0.2;
} }
/* /*