Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion bin/omarchy-install-dev-env
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash

if [[ -z "$1" ]]; then
echo "Usage: omarchy-install-dev-env <ruby|node|bun|go|laravel|symfony|php|python|elixir|phoenix|rust|java|ocaml|dotnet>" >&2
echo "Usage: omarchy-install-dev-env <ruby|node|bun|go|laravel|symfony|php|python|elixir|phoenix|rust|java|ocaml|dotnet|railway>" >&2
exit 1
fi

Expand Down Expand Up @@ -125,4 +125,8 @@ dotnet)
echo -e "Installing .NET...\n"
mise use --global dotnet@latest
;;
railway)
echo -e "Installing Railway CLI...\n"
mise use --global railway@latest
;;
esac
31 changes: 27 additions & 4 deletions bin/omarchy-menu
Original file line number Diff line number Diff line change
Expand Up @@ -268,9 +268,17 @@ show_install_font_menu() {
}

show_install_development_menu() {
case $(menu "Install" "󰫏 Ruby on Rails\n Docker DB\n JavaScript\n Go\n PHP\n Python\n Elixir\n Zig\n Rust\n Java\n .NET\n OCaml") in
case $(menu "Development" "󰵮 Languages\n󰘳 CLI Tools\n Databases") in
*Languages*) show_install_dev_languages_menu ;;
*CLI*) show_install_dev_cli_menu ;;
*Database*) show_install_dev_databases_menu ;;
*) show_install_menu ;;
esac
}

show_install_dev_languages_menu() {
case $(menu "Languages" "󰫏 Ruby on Rails\n JavaScript\n Go\n PHP\n Python\n Elixir\n Zig\n Rust\n Java\n .NET\n OCaml") in
*Rails*) present_terminal "omarchy-install-dev-env ruby" ;;
*Docker*) present_terminal omarchy-install-docker-dbs ;;
*JavaScript*) show_install_javascript_menu ;;
*Go*) present_terminal "omarchy-install-dev-env go" ;;
*PHP*) show_install_php_menu ;;
Expand All @@ -281,7 +289,21 @@ show_install_development_menu() {
*Java*) present_terminal "omarchy-install-dev-env java" ;;
*NET*) present_terminal "omarchy-install-dev-env dotnet" ;;
*OCaml*) present_terminal "omarchy-install-dev-env ocaml" ;;
*) show_install_menu ;;
*) show_install_development_menu ;;
esac
}

show_install_dev_cli_menu() {
case $(menu "CLI Tools" " Railway CLI") in
*Railway*) present_terminal "omarchy-install-dev-env railway" ;;
*) show_install_development_menu ;;
esac
}

show_install_dev_databases_menu() {
case $(menu "Databases" " Docker DB") in
*Docker*) present_terminal omarchy-install-docker-dbs ;;
*) show_install_development_menu ;;
esac
}

Expand Down Expand Up @@ -312,13 +334,14 @@ show_install_elixir_menu() {
}

show_remove_menu() {
case $(menu "Remove" "󰣇 Package\n Web App\n TUI\n󰸌 Theme\n󰈷 Fingerprint\n Fido2") in
case $(menu "Remove" "󰣇 Package\n Web App\n TUI\n󰸌 Theme\n󰈷 Fingerprint\n Fido2\n󱚤 Mise") in
*Package*) terminal omarchy-pkg-remove ;;
*Web*) present_terminal omarchy-webapp-remove ;;
*TUI*) present_terminal omarchy-tui-remove ;;
*Theme*) present_terminal omarchy-theme-remove ;;
*Fingerprint*) present_terminal "omarchy-setup-fingerprint --remove" ;;
*Fido2*) present_terminal "omarchy-setup-fido2 --remove" ;;
*Mise*) present_terminal omarchy-mise-remove ;;
*) show_main_menu ;;
esac
}
Expand Down
58 changes: 58 additions & 0 deletions bin/omarchy-mise-remove
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#!/bin/bash

if ! command -v mise &> /dev/null; then
echo "mise is not installed or not in PATH"
exit 1
fi

chooser_gum() {
local items=("$@")
gum choose --no-limit --header "Select mise tools to uninstall..." --selected-prefix="✗ " "${items[@]}"
}

chooser_fzf() {
local items=("$@")
printf '%s\n' "${items[@]}" | fzf --multi --prompt="mise » " --header="Select mise tools to uninstall (TAB to select, ENTER to confirm)" --preview="echo {}" --color 'pointer:red,marker:red'
}

choose_many() {
local items=("$@")
if command -v gum &> /dev/null; then
chooser_gum "${items[@]}"
else
chooser_fzf "${items[@]}"
fi
}

installed_json=$(mise ls --installed --json)
if [[ -z "$installed_json" || "$installed_json" == "{}" ]]; then
echo "No mise tools installed."
exit 0
fi

mapfile -t entries < <(printf '%s' "$installed_json" | jq -r 'to_entries[] | .key as $tool | .value[] | select(.version != null) | "\($tool)@\(.version)"' )

if [[ ${#entries[@]} -eq 0 ]]; then
echo "No mise tools installed."
exit 0
fi

selection=$(choose_many "${entries[@]}")

selected_entries=()
while IFS= read -r line; do
[[ -n "$line" ]] && selected_entries+=("$line")
done <<< "$selection"

if [[ ${#selected_entries[@]} -eq 0 ]]; then
exit 0
fi

for entry in "${selected_entries[@]}"; do
mise uninstall --yes "$entry"
if [[ $? -ne 0 ]]; then
tool_only="${entry%@*}"
mise uninstall --yes "$tool_only" || true
fi
echo "Uninstalled: $entry"
done
33 changes: 33 additions & 0 deletions bin/omarchy-theme-set
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,39 @@ fi
# Trigger alacritty config reload
touch "$HOME/.config/alacritty/alacritty.toml"

# Setup tmux configuration if tmux is installed but config doesn't exist
if command -v tmux &>/dev/null && [[ ! -f ~/.tmux.conf ]]; then
cat > ~/.tmux.conf << 'EOF'
set -g default-terminal "screen-256color"
set -g history-limit 10000
set -g base-index 1
setw -g pane-base-index 1

set -g mouse on

setw -g mode-keys vi

set -g status-interval 5
set -g status-position bottom
set -g status-justify left

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 S-Left previous-window
bind -n S-Right next-window

source-file ~/.config/omarchy/current/theme/tmux.conf
EOF
fi

# Reload tmux configuration if tmux is running
if command -v tmux &>/dev/null && tmux list-sessions &>/dev/null; then
tmux source-file ~/.tmux.conf
fi

# Restart components to apply new theme
pkill -SIGUSR2 btop
omarchy-restart-waybar
Expand Down
31 changes: 31 additions & 0 deletions themes/catppuccin-latte/tmux.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
set -g status-position top
set-option -g status-style bg=default
set -g status-fg "#4c4f69"

set -g window-status-current-style "fg=#1e66f5,bold"
set -g window-status-style "fg=#8c8fa1"

set -g pane-border-style "fg=#acb0be"
set -g pane-active-border-style "fg=#1e66f5"

set -g message-style "bg=#1e66f5,fg=#eff1f5"
set -g message-command-style "bg=#bcc0cc,fg=#4c4f69"

set -g mode-style "bg=#1e66f5,fg=#eff1f5"

set -g copy-mode-match-style "bg=#dc8a78,fg=#eff1f5"
set -g copy-mode-current-match-style "bg=#1e66f5,fg=#eff1f5"

set -g status-left "#[fg=#1e66f5]#S#[fg=#acb0be] │ "
set -g status-right ""
set -g status-left-length 20
set -g status-right-length 0

set -g window-status-format "#[fg=#8c8fa1]#I#[fg=#acb0be]:#[fg=#8c8fa1]#W"
set -g window-status-current-format "#[fg=#1e66f5]#I#[fg=#4c4f69]:#[fg=#1e66f5,bold]#W"
set -g window-status-separator " "

set -g window-status-activity-style "none"
set -g window-status-bell-style "none"

set -g clock-mode-colour "#1e66f5"
31 changes: 31 additions & 0 deletions themes/catppuccin/tmux.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
set -g status-position top
set-option -g status-style bg=default
set -g status-fg "#cad3f5"

set -g window-status-current-style "fg=#8aadf4,bold"
set -g window-status-style "fg=#8087a2"

set -g pane-border-style "fg=#363a4f"
set -g pane-active-border-style "fg=#8aadf4"

set -g message-style "bg=#8aadf4,fg=#24273a"
set -g message-command-style "bg=#494d64,fg=#cad3f5"

set -g mode-style "bg=#8aadf4,fg=#24273a"

set -g copy-mode-match-style "bg=#494d64,fg=#cad3f5"
set -g copy-mode-current-match-style "bg=#8aadf4,fg=#24273a"

set -g status-left "#[fg=#8aadf4]#S#[fg=#5b6078] │ "
set -g status-right ""
set -g status-left-length 20
set -g status-right-length 0

set -g window-status-format "#[fg=#8087a2]#I#[fg=#5b6078]:#[fg=#8087a2]#W"
set -g window-status-current-format "#[fg=#8aadf4]#I#[fg=#cad3f5]:#[fg=#8aadf4,bold]#W"
set -g window-status-separator " "

set -g window-status-activity-style "none"
set -g window-status-bell-style "none"

set -g clock-mode-colour "#8aadf4"
31 changes: 31 additions & 0 deletions themes/everforest/tmux.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
set -g status-position top
set-option -g status-style bg=default
set -g status-fg "#d3c6aa"

set -g window-status-current-style "fg=#a7c080,bold"
set -g window-status-style "fg=#859289"

set -g pane-border-style "fg=#475258"
set -g pane-active-border-style "fg=#a7c080"

set -g message-style "bg=#a7c080,fg=#2d353b"
set -g message-command-style "bg=#475258,fg=#d3c6aa"

set -g mode-style "bg=#a7c080,fg=#2d353b"

set -g copy-mode-match-style "bg=#475258,fg=#d3c6aa"
set -g copy-mode-current-match-style "bg=#a7c080,fg=#2d353b"

set -g status-left "#[fg=#a7c080]#S#[fg=#5d4037] │ "
set -g status-right ""
set -g status-left-length 20
set -g status-right-length 0

set -g window-status-format "#[fg=#859289]#I#[fg=#5d4037]:#[fg=#859289]#W"
set -g window-status-current-format "#[fg=#a7c080]#I#[fg=#d3c6aa]:#[fg=#a7c080,bold]#W"
set -g window-status-separator " "

set -g window-status-activity-style "none"
set -g window-status-bell-style "none"

set -g clock-mode-colour "#a7c080"
31 changes: 31 additions & 0 deletions themes/gruvbox/tmux.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
set -g status-position top
set-option -g status-style bg=default
set -g status-fg "#d4be98"

set -g window-status-current-style "fg=#d8a657,bold"
set -g window-status-style "fg=#a89984"

set -g pane-border-style "fg=#3c3836"
set -g pane-active-border-style "fg=#d8a657"

set -g message-style "bg=#d8a657,fg=#282828"
set -g message-command-style "bg=#3c3836,fg=#d4be98"

set -g mode-style "bg=#d8a657,fg=#282828"

set -g copy-mode-match-style "bg=#3c3836,fg=#d4be98"
set -g copy-mode-current-match-style "bg=#d8a657,fg=#282828"

set -g status-left "#[fg=#d8a657]#S#[fg=#504945] │ "
set -g status-right ""
set -g status-left-length 20
set -g status-right-length 0

set -g window-status-format "#[fg=#a89984]#I#[fg=#504945]:#[fg=#a89984]#W"
set -g window-status-current-format "#[fg=#d8a657]#I#[fg=#d4be98]:#[fg=#d8a657,bold]#W"
set -g window-status-separator " "

set -g window-status-activity-style "none"
set -g window-status-bell-style "none"

set -g clock-mode-colour "#d8a657"
31 changes: 31 additions & 0 deletions themes/kanagawa/tmux.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
set -g status-position top
set-option -g status-style bg=default
set -g status-fg "#dcd7ba"

set -g window-status-current-style "fg=#7e9cd8,bold"
set -g window-status-style "fg=#727169"

set -g pane-border-style "fg=#16161d"
set -g pane-active-border-style "fg=#7e9cd8"

set -g message-style "bg=#7e9cd8,fg=#1f1f28"
set -g message-command-style "bg=#2d4f67,fg=#dcd7ba"

set -g mode-style "bg=#7e9cd8,fg=#1f1f28"

set -g copy-mode-match-style "bg=#2d4f67,fg=#c8c093"
set -g copy-mode-current-match-style "bg=#7e9cd8,fg=#1f1f28"

set -g status-left "#[fg=#7e9cd8]#S#[fg=#54546d] │ "
set -g status-right ""
set -g status-left-length 20
set -g status-right-length 0

set -g window-status-format "#[fg=#727169]#I#[fg=#54546d]:#[fg=#727169]#W"
set -g window-status-current-format "#[fg=#7e9cd8]#I#[fg=#dcd7ba]:#[fg=#7e9cd8,bold]#W"
set -g window-status-separator " "

set -g window-status-activity-style "none"
set -g window-status-bell-style "none"

set -g clock-mode-colour "#7e9cd8"
30 changes: 30 additions & 0 deletions themes/matte-black/tmux.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
set -g status-position top
set-option -g status-style bg=default
set -g status-fg "#bebebe"

set -g window-status-current-style "fg=#f59e0b,bold"
set -g window-status-style "fg=#8a8a8d"

set -g pane-border-style "fg=#1a1a1a"
set -g pane-active-border-style "fg=#f59e0b"

set -g message-style "bg=#f59e0b,fg=#000000"
set -g message-command-style "bg=#333333,fg=#bebebe"

set -g mode-style "bg=#f59e0b,fg=#000000"
set -g copy-mode-match-style "bg=#333333,fg=#bebebe"
set -g copy-mode-current-match-style "bg=#f59e0b,fg=#000000"

set -g status-left "#[fg=#f59e0b]#S#[fg=#333333] │ "
set -g status-right ""
set -g status-left-length 20
set -g status-right-length 0

set -g window-status-format "#[fg=#8a8a8d]#I#[fg=#333333]:#[fg=#8a8a8d]#W"
set -g window-status-current-format "#[fg=#f59e0b]#I#[fg=#bebebe]:#[fg=#f59e0b,bold]#W"
set -g window-status-separator " "

set -g window-status-activity-style "none"
set -g window-status-bell-style "none"

set -g clock-mode-colour "#f59e0b"
Loading