diff --git a/bin/omarchy-theme-refresh b/bin/omarchy-theme-refresh new file mode 100755 index 00000000..e967f289 --- /dev/null +++ b/bin/omarchy-theme-refresh @@ -0,0 +1,9 @@ +#!/bin/bash + +# Refresh the current theme from its templates. + +THEME_NAME_PATH="$HOME/.config/omarchy/current/theme.name" + +if [[ -f $THEME_NAME_PATH ]]; then + omarchy-theme-set "$(cat $THEME_NAME_PATH)" +fi diff --git a/config/tmux/tmux.conf b/config/tmux/tmux.conf new file mode 100644 index 00000000..8d323824 --- /dev/null +++ b/config/tmux/tmux.conf @@ -0,0 +1,52 @@ +# Theme +source-file ~/.config/omarchy/current/theme/tmux.conf + +# General +set -g default-terminal "tmux-256color" +set -ag terminal-overrides ",*:RGB" +set -g mouse on +set -g base-index 1 +setw -g pane-base-index 1 +set -g renumber-windows on +set -g history-limit 50000 +set -g escape-time 0 +set -g focus-events on +set -g set-clipboard on +setw -g aggressive-resize on +set -g detach-on-destroy off + +# Status bar +set -g status-position top +set -g status-interval 5 +set -g status-left-length 30 +set -g status-right-length 50 +set -g window-status-separator "" + +# Reload config +bind M-r source-file ~/.config/tmux/tmux.conf + +# Rename window / session +bind r command-prompt -I "#W" "rename-window -- '%%'" +bind R command-prompt -I "#S" "rename-session -- '%%'" + +# Vi mode for copy +setw -g mode-keys vi +bind -T copy-mode-vi v send -X begin-selection +bind -T copy-mode-vi y send -X copy-selection-and-cancel + +# Pane resizing +bind -r S-Left resize-pane -L 10 +bind -r S-Down resize-pane -D 10 +bind -r S-Up resize-pane -U 10 +bind -r S-Right resize-pane -R 10 + +# Saner splits that open in the same directory +bind | split-window -h -c "#{pane_current_path}" +bind - split-window -v -c "#{pane_current_path}" + +# New windows in same directory +bind c new-window -c "#{pane_current_path}" + +# Sessions +bind C new-session +bind X kill-session diff --git a/default/bash/aliases b/default/bash/aliases index 4bca0799..9571c678 100644 --- a/default/bash/aliases +++ b/default/bash/aliases @@ -34,6 +34,7 @@ alias ....='cd ../../..' alias c='opencode' alias d='docker' alias r='rails' +alias t='tmux attach || tmux new -s Work' n() { if [ "$#" -eq 0 ]; then nvim .; else nvim "$@"; fi; } # Git diff --git a/default/themed/tmux.conf.tpl b/default/themed/tmux.conf.tpl new file mode 100644 index 00000000..fc16df59 --- /dev/null +++ b/default/themed/tmux.conf.tpl @@ -0,0 +1,11 @@ +set -g status-style "bg={{ background }},fg={{ foreground }}" +set -g status-left "#[fg={{ background }},bg={{ accent }},bold] #S #[bg={{ background }}] " +set -g status-right "#[fg={{ accent }}]#{?client_prefix,PREFIX ,}#[fg={{ color8 }}]#h " +set -g window-status-format "#[fg={{ color8 }}] #I:#W " +set -g window-status-current-format "#[fg={{ accent }},bold] #I:#W " +set -g pane-border-style "fg={{ color8 }}" +set -g pane-active-border-style "fg={{ accent }}" +set -g message-style "bg={{ background }},fg={{ accent }}" +set -g message-command-style "bg={{ background }},fg={{ accent }}" +set -g mode-style "bg={{ accent }},fg={{ background }}" +setw -g clock-mode-colour "{{ accent }}" diff --git a/install/omarchy-base.packages b/install/omarchy-base.packages index 17eade58..5c5adda9 100644 --- a/install/omarchy-base.packages +++ b/install/omarchy-base.packages @@ -120,6 +120,7 @@ swayosd system-config-printer tldr tree-sitter-cli +tmux tobi-try ttf-cascadia-mono-nerd ttf-ia-writer diff --git a/migrations/1770638893.sh b/migrations/1770638893.sh new file mode 100644 index 00000000..0e5f2e54 --- /dev/null +++ b/migrations/1770638893.sh @@ -0,0 +1,9 @@ +echo "Add Tmux as an option with themed styling" + +omarchy-pkg-add tmux + +if [[ ! -f ~/.config/tmux/tmux.conf ]]; then + mkdir -p ~/.config/tmux + cp $OMARCHY_PATH/config/tmux/tmux.conf ~/.config/tmux/tmux.conf + omarchy-theme-refresh +fi