diff --git a/home/.config/tmuxinator/CloudyDeep.yml b/home/.config/tmuxinator/CloudyDeep.yml new file mode 100644 index 0000000..76edf91 --- /dev/null +++ b/home/.config/tmuxinator/CloudyDeep.yml @@ -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 🍔" diff --git a/home/.config/tmuxinator/Development.yml b/home/.config/tmuxinator/Development.yml new file mode 100644 index 0000000..15c7988 --- /dev/null +++ b/home/.config/tmuxinator/Development.yml @@ -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 diff --git a/home/.config/tmuxinator/Dotfiles.yml b/home/.config/tmuxinator/Dotfiles.yml new file mode 100644 index 0000000..789d01f --- /dev/null +++ b/home/.config/tmuxinator/Dotfiles.yml @@ -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 diff --git a/home/.config/tmuxinator/Nixos.yml b/home/.config/tmuxinator/Nixos.yml new file mode 100644 index 0000000..701da09 --- /dev/null +++ b/home/.config/tmuxinator/Nixos.yml @@ -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 diff --git a/home/.config/tmuxinator/pytui.yml b/home/.config/tmuxinator/pytui.yml new file mode 100644 index 0000000..a122011 --- /dev/null +++ b/home/.config/tmuxinator/pytui.yml @@ -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 diff --git a/home/.config/tmuxinator/tmuxConfig.yml b/home/.config/tmuxinator/tmuxConfig.yml new file mode 100644 index 0000000..19f2d14 --- /dev/null +++ b/home/.config/tmuxinator/tmuxConfig.yml @@ -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 . diff --git a/home/common.nix b/home/common.nix index 452dfe8..75fcc71 100644 --- a/home/common.nix +++ b/home/common.nix @@ -16,6 +16,10 @@ recursive = true; executable = true; }; + home.file.".config/tmuxinator" = { + source = ./.config/tmuxinator; + recursive = true; + }; home.file.".ssh/allowed_signers".text = '' * ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH8P/3yzsruekSaZ9b+yk429VTcfCtI1j8jnkNbPAgnr th3r00t@nixos ''; @@ -74,6 +78,7 @@ python-pkgs.ptpython python-pkgs.ipython python-pkgs.pillow + python-pkgs.basedpyright ] ) ) diff --git a/home/xps13.nix b/home/xps13.nix index 2c670ac..1713272 100644 --- a/home/xps13.nix +++ b/home/xps13.nix @@ -219,7 +219,7 @@ enableGitIntegration = true; font = { name = "FiraCode Nerd Font Mono"; - size = 10.5; + size = 9; }; actionAliases = { "pytui" = "launch pytui"; diff --git a/modules/hyprland.nix b/modules/hyprland.nix index 40c0c02..4b0436b 100644 --- a/modules/hyprland.nix +++ b/modules/hyprland.nix @@ -67,7 +67,8 @@ monitor = eDP-1, preferred,0x0,2 monitor = DP-2, 2560x1080@74.99,auto,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 = footclient # $terminal = footclient -e tmux new-session zsh -c '~/.local/usr/bin/tmuxstartup.sh' @@ -78,13 +79,14 @@ $browser = qutebrowser $notes = kitty -T capture -e pytui -n $manpages = kitty -T capture -e pytui -m - $sysmon = kitty -T system-monitor -e bashtop + $sysmon = kitty -T system-monitor -e glances $editor = neovide $screenshot = hyprshot -f ~/Pictures/Screenshots/%Y-%m-%d-%H%M%S.png bind = $mainMod SHIFT, M, exec, hyprvirtmon.py bind = $mainMod SHIFT, P, exec, externalmon.py bind = $mainMod SHIFT, Return, exec, $terminal + bind = $mainMod, Return, exec, $terminal-notmux bind = $mainMod, D, exec, $editor bind = $mainMod, E, exec, $fileManager bind = $mainMod SHIFT, C, killactive @@ -97,7 +99,7 @@ bind = $mainMod CTRL, M, exec, $manpages # bind = $mainMod, P, exec, $menu bind = $mainMod, V, togglefloating - bind = $mainMod, P, pseudo, # dwindle + # bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, TAB, togglesplit, # dwindle bind = $mainMod, Y, fullscreen, 1 bind = $mainMod, T, togglegroup diff --git a/modules/tmux.nix b/modules/tmux.nix index da06490..59a0428 100644 --- a/modules/tmux.nix +++ b/modules/tmux.nix @@ -9,7 +9,7 @@ mouse = true; newSession = true; plugins = with pkgs; [ - tmuxPlugins.cpu + # tmuxPlugins.cpu { plugin = tmuxPlugins.resurrect; extraConfig = "set -g @resurrect-strategy-nvim 'session'"; @@ -26,6 +26,7 @@ tmuxPlugins.vim-tmux-focus-events tmuxPlugins.urlview tmuxPlugins.tmux-fzf + tmuxPlugins.sidebar { plugin = tmuxPlugins.tokyo-night-tmux; extraConfig = '' @@ -46,16 +47,23 @@ } ''; } - # { - # 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' - # ''; - # } + { + plugin = tmuxPlugins.pass; + extraConfig = '' + set -g @pass-key b + set -g @pass-copy-to-clipboard 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"; @@ -100,29 +108,19 @@ set -g escape-time 3 set-option -g status-position top set -g default-terminal 'tmux-256color' + 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-d run-shell 'dotfile-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 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 j run-shell 'popuptmux' bind r source-file ~/.config/tmux/tmux.conf \; display "Reloaded!" - bind i split-window -v -c '\ - #{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 F4 split-window -v 'ranger $PWD' bind-key -n C-f split-window 'ranger .' - bind F3 send-keys 'igrep .' + bind C-i split-window -v 'igrep .' ''; }; } diff --git a/modules/waybar.nix b/modules/waybar.nix index e966ac4..115fee2 100644 --- a/modules/waybar.nix +++ b/modules/waybar.nix @@ -6,7 +6,7 @@ mainBar = { layer = "top"; position = "top"; - height = 30; + height = 25; modules-left = [ "hyprland/workspaces" ]; modules-center = [ "hyprland/window" ]; modules-right = [ @@ -214,13 +214,13 @@ window#waybar { background-color: rgba(43, 48, 59, 0.5); border-bottom: 3px solid rgba(100, 114, 125, 0.5); -color: #ffffff; + color: #ffffff; transition-property: background-color; transition-duration: .5s; } window#waybar.hidden { -opacity: 0.2; + opacity: 0.2; } /*