diff --git a/bin/omarchy-launch-editor b/bin/omarchy-launch-editor new file mode 100755 index 00000000..11be2ad2 --- /dev/null +++ b/bin/omarchy-launch-editor @@ -0,0 +1,13 @@ +#!/bin/bash + +case "$EDITOR" in +nvim | vim | nano | micro | hx) + exec setsid uwsm app -- "$TERMINAL" -e "$EDITOR" "$@" + ;; +code | codium | subl | gedit | kate | zeditor) + exec setsid uwsm app -- "$EDITOR" "$@" + ;; +*) + exec setsid uwsm app -- "$TERMINAL" -e nvim "$@" + ;; +esac diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 5d9a45e2..c42db9e8 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -44,9 +44,9 @@ present_terminal() { omarchy-launch-floating-terminal-with-presentation $1 } -edit_in_nvim() { +open_in_editor() { notify-send "Editing config file" "$1" - $TERMINAL -e nvim "$1" + omarchy-launch-editor "$1" } install() { @@ -142,9 +142,9 @@ show_style_menu() { *Theme*) show_theme_menu ;; *Font*) show_font_menu ;; *Background*) omarchy-theme-bg-next ;; - *Hyprland*) edit_in_nvim ~/.config/hypr/looknfeel.conf ;; - *Screensaver*) edit_in_nvim ~/.config/omarchy/branding/screensaver.txt ;; - *About*) edit_in_nvim ~/.config/omarchy/branding/about.txt ;; + *Hyprland*) open_in_editor ~/.config/hypr/looknfeel.conf ;; + *Screensaver*) open_in_editor ~/.config/omarchy/branding/screensaver.txt ;; + *About*) open_in_editor ~/.config/omarchy/branding/about.txt ;; *) show_main_menu ;; esac } @@ -171,7 +171,7 @@ show_setup_menu() { local options=" Audio\n Wifi\n󰂯 Bluetooth\n󱐋 Power Profile\n󰍹 Monitors" [ -f ~/.config/hypr/bindings.conf ] && options="$options\n Keybindings" [ -f ~/.config/hypr/input.conf ] && options="$options\n Input" - options="$options\n󰱔 DNS\n Config\n󰈷 Fingerprint\n Fido2" + options="$options\n Defaults\n󰱔 DNS\n Security\n Config" case $(menu "Setup" "$options") in *Audio*) $TERMINAL --class=Wiremix -e wiremix ;; @@ -184,13 +184,13 @@ show_setup_menu() { blueberry ;; *Power*) show_setup_power_menu ;; - *Monitors*) edit_in_nvim ~/.config/hypr/monitors.conf ;; - *Keybindings*) edit_in_nvim ~/.config/hypr/bindings.conf ;; - *Input*) edit_in_nvim ~/.config/hypr/input.conf ;; + *Monitors*) open_in_editor ~/.config/hypr/monitors.conf ;; + *Keybindings*) open_in_editor ~/.config/hypr/bindings.conf ;; + *Input*) open_in_editor ~/.config/hypr/input.conf ;; + *Defaults*) open_in_editor ~/.config/uwsm/default ;; *DNS*) present_terminal omarchy-setup-dns ;; + *Security*) show_setup_security_menu ;; *Config*) show_setup_config_menu ;; - *Fingerprint*) present_terminal omarchy-setup-fingerprint ;; - *Fido2*) present_terminal omarchy-setup-fido2 ;; *) show_main_menu ;; esac } @@ -207,18 +207,26 @@ show_setup_power_menu() { show_setup_config_menu() { case $(menu "Setup" " Hyprland\n Hypridle\n Hyprlock\n Hyprsunset\n Swayosd\n󰌧 Walker\n󰍜 Waybar\n󰞅 XCompose") in - *Hyprland*) edit_in_nvim ~/.config/hypr/hyprland.conf ;; - *Hypridle*) edit_in_nvim ~/.config/hypr/hypridle.conf && omarchy-restart-hypridle ;; - *Hyprlock*) edit_in_nvim ~/.config/hypr/hyprlock.conf ;; - *Hyprsunset*) edit_in_nvim ~/.config/hypr/hyprsunset.conf && omarchy-restart-hyprsunset ;; - *Swayosd*) edit_in_nvim ~/.config/swayosd/config.toml && omarchy-restart-swayosd ;; - *Walker*) edit_in_nvim ~/.config/walker/config.toml && omarchy-restart-walker ;; - *Waybar*) edit_in_nvim ~/.config/waybar/config.jsonc && omarchy-restart-waybar ;; - *XCompose*) edit_in_nvim ~/.XCompose && omarchy-restart-xcompose ;; + *Hyprland*) open_in_editor ~/.config/hypr/hyprland.conf ;; + *Hypridle*) open_in_editor ~/.config/hypr/hypridle.conf && omarchy-restart-hypridle ;; + *Hyprlock*) open_in_editor ~/.config/hypr/hyprlock.conf ;; + *Hyprsunset*) open_in_editor ~/.config/hypr/hyprsunset.conf && omarchy-restart-hyprsunset ;; + *Swayosd*) open_in_editor ~/.config/swayosd/config.toml && omarchy-restart-swayosd ;; + *Walker*) open_in_editor ~/.config/walker/config.toml && omarchy-restart-walker ;; + *Waybar*) open_in_editor ~/.config/waybar/config.jsonc && omarchy-restart-waybar ;; + *XCompose*) open_in_editor ~/.XCompose && omarchy-restart-xcompose ;; *) show_main_menu ;; esac } +show_setup_security_menu() { + case $(menu "Setup" "󰈷 Fingerprint\n Fido2") in + *Fingerprint*) present_terminal omarchy-setup-fingerprint ;; + *Fido2*) present_terminal omarchy-setup-fido2 ;; + *) show_setup_menu ;; + esac +} + show_install_menu() { case $(menu "Install" "󰣇 Package\n󰣇 AUR\n Web App\n TUI\n Service\n Style\n󰵮 Development\n Editor\n󱚤 AI\n Gaming") in *Package*) terminal omarchy-pkg-install ;; diff --git a/config/hypr/bindings.conf b/config/hypr/bindings.conf index 8f7b054c..6076049b 100644 --- a/config/hypr/bindings.conf +++ b/config/hypr/bindings.conf @@ -7,7 +7,7 @@ bindd = SUPER, F, File manager, exec, uwsm app -- nautilus --new-window bindd = SUPER, B, Browser, exec, $browser bindd = SUPER SHIFT, B, Browser (private), exec, $browser --private bindd = SUPER, M, Music, exec, omarchy-launch-or-focus spotify -bindd = SUPER, N, Neovim, exec, $terminal -e nvim +bindd = SUPER, N, Editor, exec, omarchy-launch-editor bindd = SUPER, T, Activity, exec, $terminal -e btop bindd = SUPER, D, Docker, exec, $terminal -e lazydocker bindd = SUPER, G, Signal, exec, omarchy-launch-or-focus signal "uwsm app -- signal-desktop" diff --git a/config/uwsm/default b/config/uwsm/default new file mode 100644 index 00000000..c072e320 --- /dev/null +++ b/config/uwsm/default @@ -0,0 +1,4 @@ +# Changes require a relaunch of Hyprland to take effect. + +export TERMINAL=alacritty +export EDITOR=nvim diff --git a/config/uwsm/env b/config/uwsm/env index cabab25c..4fbfa76c 100644 --- a/config/uwsm/env +++ b/config/uwsm/env @@ -4,8 +4,8 @@ export OMARCHY_PATH=$HOME/.local/share/omarchy export PATH=$OMARCHY_PATH/bin/:$PATH -# Set terminal used by all default commands -export TERMINAL=alacritty +# Set default terminal and editor +source ~/.config/uwsm/default # Activate mise if present on the system omarchy-cmd-present mise && eval "$(mise activate bash)" diff --git a/default/bash/envs b/default/bash/envs index 603a8961..932ad3ec 100644 --- a/default/bash/envs +++ b/default/bash/envs @@ -1,4 +1,3 @@ # Editor used by CLI -export EDITOR="nvim" export SUDO_EDITOR="$EDITOR" export BAT_THEME=ansi diff --git a/default/bashrc b/default/bashrc index 03fb323e..f9ea4fd4 100644 --- a/default/bashrc +++ b/default/bashrc @@ -6,9 +6,3 @@ source ~/.local/share/omarchy/default/bash/rc # # Make an alias for invoking commands you use constantly # alias p='python' -# -# Use VSCode instead of neovim as your default editor -# export EDITOR="code" -# -# Set a custom prompt with the directory revealed (alternatively use https://starship.rs) -# PS1="\W \[\e]0;\w\a\]$PS1" diff --git a/migrations/1758019332.sh b/migrations/1758019332.sh index 1dac8fd1..ee539d89 100644 --- a/migrations/1758019332.sh +++ b/migrations/1758019332.sh @@ -1,10 +1,16 @@ -echo "Ensure $TERMINAL is set in uwsm env so entire system can rely on it" +echo "Set \$TERMINAL and \$EDITOR in ~/.config/uwsm/default so entire system can rely on it" -if ! grep -q "export TERMINAL" ~/.config/uwsm/env; then - omarchy-refresh-config uwsm/env - omarchy-state set relaunch-required -fi +# Set terminal and editor default in uwsm +omarchy-refresh-config uwsm/default +omarchy-refresh-config uwsm/env +omarchy-state set relaunch-required +# Ensure scrolltouchpad setting applies to all terminals if grep -q "scrolltouchpad 1.5, class:Alacritty" ~/.config/hypr/input.conf; then sed -i 's/windowrule = scrolltouchpad 1\.5, class:Alacritty/windowrule = scrolltouchpad 1.5, tag:terminal/' ~/.config/hypr/input.conf fi + +# Use default editor for keybinding +if grep -q "bindd = SUPER, N, Neovim" ~/.config/hypr/bindings.conf; then + sed -i '/SUPER, N, Neovim, exec/ c\bindd = SUPER, N, Editor, exec, omarchy-launch-editor' ~/.config/hypr/bindings.conf +fi