diff --git a/AGENTS.md b/AGENTS.md index cc30886..2c251d9 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -53,4 +53,4 @@ Migration format: - First is shebang line - Start with an `echo` describing what the migration does -- Use `$OKUB_PATH` to reference the omadeb directory +- Use `$OMADEB_PATH` to reference the omadeb directory diff --git a/applications/install/alacritty.sh b/applications/install/alacritty.sh deleted file mode 100644 index 496fded..0000000 --- a/applications/install/alacritty.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -omadeb-pkg-add alacritty - -# Migrate alacritty config format if needed -alacritty migrate 2>/dev/null || true - -# Create custom desktop entry with X-TerminalArg* keys -cp $OMADEB_PATH/applications/desktop/Alacritty.desktop ~/.local/share/applications/ - -# Add to xdg-terminals if xdg-terminal-exec is installed (only for noble users) -mkdir -p ~/.local/share/xdg-terminals -cp ~/.local/share/applications/Alacritty.desktop ~/.local/share/xdg-terminals/ \ No newline at end of file diff --git a/applications/install/claude-code.sh b/applications/install/claude-code.sh deleted file mode 100644 index 69b47ae..0000000 --- a/applications/install/claude-code.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -curl -fsSL https://claude.ai/install.sh | bash \ No newline at end of file diff --git a/applications/install/cursor.sh b/applications/install/cursor.sh index 60474f5..b6c3deb 100644 --- a/applications/install/cursor.sh +++ b/applications/install/cursor.sh @@ -4,8 +4,7 @@ cd /tmp curl -L "https://www.cursor.com/api/download?platform=linux-x64&releaseTrack=stable" | jq -r '.downloadUrl' | xargs curl -L -o cursor.appimage sudo mv cursor.appimage /opt/cursor.appimage sudo chmod +x /opt/cursor.appimage -omadeb-pkg-add fuse3 -omadeb-pkg-add libfuse2t64 +omadeb-pkg-add fuse3 libfuse2t64 DESKTOP_FILE="/usr/share/applications/cursor.desktop" diff --git a/applications/install/github-copilot-cli.sh b/applications/install/github-copilot-cli.sh deleted file mode 100644 index bced5d7..0000000 --- a/applications/install/github-copilot-cli.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -curl -fsSL https://opencode.ai/install | bash \ No newline at end of file diff --git a/applications/install/gitlab-cli.sh b/applications/install/gitlab-cli.sh deleted file mode 100644 index 1fa8c2a..0000000 --- a/applications/install/gitlab-cli.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -LATEST_URL=$(curl -s https://gitlab.com/api/v4/projects/gitlab-org%2Fcli/releases | grep -o '"direct_asset_url":"[^"]*linux_amd64\.deb"' | head -1 | cut -d '"' -f 4) -if [[ -n $LATEST_URL ]]; then - DEB_FILE=$(basename "$LATEST_URL") - curl -L -o "/tmp/$DEB_FILE" "$LATEST_URL" - sudo dpkg -i "/tmp/$DEB_FILE" - sudo apt install -f -y - rm "/tmp/$DEB_FILE" -fi \ No newline at end of file diff --git a/applications/install/kitty.sh b/applications/install/kitty.sh deleted file mode 100644 index 1c66a92..0000000 --- a/applications/install/kitty.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -# Install Kitty terminal emulator -curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh /dev/stdin - -# Create symbolic links to add kitty and kitten to PATH (assuming ~/.local/bin is in -# your system-wide PATH) -ln -sf ~/.local/kitty.app/bin/kitty ~/.local/kitty.app/bin/kitten ~/.local/bin/ -# Place the kitty.desktop file somewhere it can be found by the OS -cp ~/.local/kitty.app/share/applications/kitty.desktop ~/.local/share/applications/ -# If you want to open text files and images in kitty via your file manager also add the kitty-open.desktop file -cp ~/.local/kitty.app/share/applications/kitty-open.desktop ~/.local/share/applications/ -# Update the paths to the kitty and its icon in the kitty desktop file(s) -sed -i "s|Icon=kitty|Icon=$(readlink -f ~)/.local/kitty.app/share/icons/hicolor/256x256/apps/kitty.png|g" ~/.local/share/applications/kitty*.desktop -sed -i "s|Exec=kitty|Exec=$(readlink -f ~)/.local/kitty.app/bin/kitty|g" ~/.local/share/applications/kitty*.desktop \ No newline at end of file diff --git a/applications/install/opencode.sh b/applications/install/opencode.sh deleted file mode 100644 index 0b38b05..0000000 --- a/applications/install/opencode.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -curl -fsSL https://opencode.ai/install | bash - -omadeb-refresh-config opencode/opencode.json \ No newline at end of file diff --git a/applications/install/starship.sh b/applications/install/starship.sh deleted file mode 100644 index c67514b..0000000 --- a/applications/install/starship.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -cd /tmp -curl -sLo starship.tar.gz "https://github.com/starship/starship/releases/latest/download/starship-x86_64-unknown-linux-musl.tar.gz" -tar -xf starship.tar.gz starship -install -m 755 starship ~/.local/bin -rm starship.tar.gz starship -cd - \ No newline at end of file diff --git a/applications/remove/alacritty.sh b/applications/remove/alacritty.sh deleted file mode 100644 index 27c0c54..0000000 --- a/applications/remove/alacritty.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -omadeb-pkg-drop alacritty -rm -f ~/.local/share/xdg-terminals/Alacritty.desktop -rm -f ~/.local/share/applications/Alacritty.desktop \ No newline at end of file diff --git a/applications/remove/claude-code.sh b/applications/remove/claude-code.sh deleted file mode 100644 index b71d45b..0000000 --- a/applications/remove/claude-code.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -rm -f ~/.local/bin/claude -rm -rf ~/.local/share/claude - -# Remove user settings and state -rm -rf ~/.claude -rm ~/.claude.json \ No newline at end of file diff --git a/applications/remove/github-copilot-cli.sh b/applications/remove/github-copilot-cli.sh deleted file mode 100644 index 086a2ed..0000000 --- a/applications/remove/github-copilot-cli.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -sudo rm -rf /usr/local/bin/copilot -sudo rm -rf $HOME/.local/bin/copilot \ No newline at end of file diff --git a/applications/remove/kitty.sh b/applications/remove/kitty.sh deleted file mode 100644 index 99f91e8..0000000 --- a/applications/remove/kitty.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -# Kitty terminal installation script removal -rm -rf ~/.local/kitty.app -rm -f ~/.local/bin/kitty -rm -f ~/.local/bin/kitten -rm -f ~/.local/share/applications/kitty.desktop -rm -f ~/.local/share/applications/kitty-open.desktop -rm -f ~/.config/xdg-terminals.list \ No newline at end of file diff --git a/applications/remove/libreoffice.sh b/applications/remove/libreoffice.sh deleted file mode 100644 index 5ee7c12..0000000 --- a/applications/remove/libreoffice.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -omadeb-pkg-drop "libreoffice*" -sudo apt-get -y clean -sudo apt-get -y autoremove \ No newline at end of file diff --git a/applications/remove/opencode.sh b/applications/remove/opencode.sh deleted file mode 100644 index 0630c0b..0000000 --- a/applications/remove/opencode.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -opencode uninstall \ No newline at end of file diff --git a/applications/remove/starship.sh b/applications/remove/starship.sh deleted file mode 100644 index c6e2724..0000000 --- a/applications/remove/starship.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -rm -rf ~/.local/bin/starship -rm -rf ~/.cache/starship \ No newline at end of file diff --git a/bin/omadeb-apps b/bin/omadeb-apps index 61b11e7..a5c5275 100755 --- a/bin/omadeb-apps +++ b/bin/omadeb-apps @@ -1,5 +1,5 @@ #!/bin/bash -# Launch an application using omadeb-launch-wofi. +# Launch an application using omadeb-launch-walker. -omadeb-launch-wofi --show drun --sort-order=alphabetical --width 600 --height 350 --prompt "Launch…" +omadeb-launch-walker -p "Launch..." \ No newline at end of file diff --git a/bin/omadeb-channel-set b/bin/omadeb-channel-set index b6f3982..4f09f57 100755 --- a/bin/omadeb-channel-set +++ b/bin/omadeb-channel-set @@ -16,9 +16,7 @@ else fi case "$channel" in -"stable") omadeb-branch-set "main" ;; -"dev") omadeb-branch-set "dev" ;; +"stable") omadeb-branch-set "main" && omadeb-refresh-apt "stable" ;; +"dev") omadeb-branch-set "dev" && omadeb-refresh-apt "dev" ;; *) echo "Unknown channel: $channel"; exit 1; ;; -esac - -omadeb-update -y \ No newline at end of file +esac \ No newline at end of file diff --git a/bin/omadeb-cmd-first-run b/bin/omadeb-cmd-first-run index 8a460eb..33d05ff 100755 --- a/bin/omadeb-cmd-first-run +++ b/bin/omadeb-cmd-first-run @@ -9,6 +9,7 @@ FIRST_RUN_MODE=~/.local/state/omadeb/first-run.mode if [[ -f $FIRST_RUN_MODE ]]; then bash "$OMADEB_PATH/install/first-run/firewall.sh" + bash "$OMADEB_PATH/install/first-run/elephant.sh" sudo rm -f /etc/sudoers.d/first-run bash "$OMADEB_PATH/install/first-run/welcome.sh" diff --git a/bin/omadeb-font-set b/bin/omadeb-font-set index dc25dcb..f1b43cb 100755 --- a/bin/omadeb-font-set +++ b/bin/omadeb-font-set @@ -16,6 +16,15 @@ if [[ -n $font_name && $font_name != "CNCLD" ]]; then pkill -USR1 kitty fi + if [[ -f ~/.config/ghostty/config ]]; then + sed -i "s/font-family = \".*\"/font-family = \"$font_name\"/g" ~/.config/ghostty/config + pkill -SIGUSR2 ghostty + fi + + if pgrep -x ghostty; then + omadeb-notify -u low " You must restart Ghostty to see font change" + fi + omadeb-hook font-set "$font_name" else echo "Font '$font_name' not found." diff --git a/bin/omadeb-install-terminal b/bin/omadeb-install-terminal index edd1052..6a49fa5 100755 --- a/bin/omadeb-install-terminal +++ b/bin/omadeb-install-terminal @@ -3,7 +3,7 @@ # Install one of the approved terminals and set it as the default for Omadeb (Super + Return etc). if (($# == 0)); then - echo "Usage: omadeb-install-terminal [alacritty|kitty]" + echo "Usage: omadeb-install-terminal [alacritty|ghostty|kitty]" exit 1 fi @@ -12,6 +12,7 @@ package="$1" # Map package name to desktop entry ID case "$package" in alacritty) desktop_id="Alacritty.desktop" ;; +ghostty) desktop_id="com.mitchellh.ghostty.desktop" ;; kitty) desktop_id="kitty.desktop" ;; *) echo "Unknown terminal: $package" @@ -19,31 +20,40 @@ kitty) desktop_id="kitty.desktop" ;; ;; esac +desktop_path="/usr/share/applications/$desktop_id" + # Install package -if omadeb-app-install "$package"; then +if omadeb-pkg-install "$package"; then # Set as default terminal echo "Setting $package as new default terminal..." omadeb-env-set TERMINAL "$package" - # Delete existing config file if it exists - rm -f ~/.config/xdg-terminals.list - rm -f ~/.config/gnome-xdg-terminals.list + # Copy custom desktop entry for alacritty with X-TerminalArg* keys + if [[ $package == "alacritty" ]]; then + desktop_path="$OMADEB_PATH/applications/desktop/Alacritty.desktop" + + mkdir -p ~/.local/share/applications + cp "$desktop_path" ~/.local/share/applications/ + fi + + # Copy custom desktop entries with proper X-TerminalArg* keys + mkdir -p ~/.local/share/xdg-terminals ~/.local/share/applications + cp "$desktop_path" "$HOME/.local/share/xdg-terminals/$desktop_id" + cp "$desktop_path" "$HOME/.local/share/applications/$desktop_id" - # Create the current config file with only the selected terminal - cat > "~/.config/xdg-terminals.list" << EOF + # Delete existing config file if it exists + rm -f ~/.config/xdg-terminals.list + rm -f ~/.config/gnome-xdg-terminals.list + + # Create the current config file with only the selected terminal + touch ~/.config/xdg-terminals.list + cat >~/.config/xdg-terminals.list < /dev/null || elephant & + +# Resolve effective dimensions: defaults, overridden by caller args +width=644; minheight=300; maxheight=300 +args=("$@") +for i in "${!args[@]}"; do + case "${args[i]}" in + --width) width="${args[i+1]}" ;; + --minheight) minheight="${args[i+1]}" ;; + --maxheight) maxheight="${args[i+1]}" ;; + esac +done + +# Kill ALL walker processes (client + service) when dimensions change. +# Not killing on dim change causes the service to cap new windows to its initially-cached size. +dims_key="w${width}x${minheight}-${maxheight}" +mkdir -p "$(dirname "$DIMS_FILE")" +if [[ $(cat "$DIMS_FILE" 2>/dev/null) != $dims_key ]] && pgrep -x walker > /dev/null; then + pkill -x walker + while pgrep -x walker > /dev/null; do sleep 0.05; done +fi +echo "$dims_key" > "$DIMS_FILE" + +# Inject defaults only for dimensions not explicitly passed by the caller. +defaults=() +[[ $* != *--width* ]] && defaults+=(--width $width) +[[ $* != *--minheight* ]] && defaults+=(--minheight $minheight) +[[ $* != *--maxheight* && $* != *--minheight* ]] && defaults+=(--maxheight $maxheight) + +exec walker "${defaults[@]}" "$@" diff --git a/bin/omadeb-launch-wofi b/bin/omadeb-launch-wofi deleted file mode 100755 index 6f24964..0000000 --- a/bin/omadeb-launch-wofi +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -if pgrep -x wofi > /dev/null; then - pkill wofi -fi - -if [ $XDG_SESSION_TYPE = "x11" ]; then - exec wofi --normal-window --cache-file=/dev/null $@ -else - exec wofi --cache-file=/dev/null $@ -fi \ No newline at end of file diff --git a/bin/omadeb-menu b/bin/omadeb-menu index 2a6693a..4f12be9 100755 --- a/bin/omadeb-menu +++ b/bin/omadeb-menu @@ -20,8 +20,8 @@ back_to() { } toggle_existing_menu() { - if pgrep -x "wofi" > /dev/null; then - pkill -x "wofi" + if pgrep -f "walker.*--dmenu" >/dev/null; then + walker --close >/dev/null 2>&1 exit 0 fi } @@ -35,18 +35,14 @@ menu() { read -r -a args <<<"$extra" if [[ -n $preselect ]]; then - options=$(echo -e "$options" | sed "s|^$preselect$|$preselect|") + local index + index=$(echo -e "$options" | grep -nxF "$preselect" | cut -d: -f1) + if [[ -n $index ]]; then + args+=("-c" "$index") + fi fi - # Show Wofi menu (with markup support) - selection=$(echo -e "$options" | omadeb-launch-wofi \ - --show dmenu \ - --allow-markup \ - --prompt "$prompt..." \ - "${args[@]}" \ - "$wofi_options" 2>>/dev/null) - - echo -e "$selection" + echo -e "$options" | omadeb-launch-walker --dmenu --width 295 --minheight 1 --maxheight 630 -p "$prompt…" "${args[@]}" 2>/dev/null } terminal() { @@ -58,7 +54,7 @@ present_terminal() { } open_in_editor() { - omadeb-notify "Editing config file" "$1" + omadeb-notify -u low "Editing config file" "$1" omadeb-launch-editor "$1" } @@ -86,20 +82,24 @@ remove_app() { present_terminal "echo 'Removing $1...'; omadeb-app-remove $2" } +remove_font() { + present_terminal "echo 'Removing $1...'; omadeb-remove-font $2" +} + show_learn_menu() { - case $(menu "Learn" " Keybindings\n Omadeb\n Debian\n Neovim\n Zellij\n󱆃 Bash" "--width 250 --height 280") in + case $(menu "Learn" " Keybindings\n Omadeb\n Debian\n󰊬 GNOME\n Neovim\n󱆃 Bash") in *Keybindings*) omadeb-launch-webapp "https://omadeb.omakasui.org/manual/essentials/hotkeys" "Omadeb Keybindings" ;; *Omadeb*) omadeb-launch-webapp "https://omadeb.omakasui.org/manual" "Omadeb" ;; *Debian*) omadeb-launch-webapp "https://www.debian.org/doc/" "Debian" ;; + *GNOME*) omadeb-launch-webapp "https://help.gnome.org/" "GNOME" ;; *Bash*) omadeb-launch-webapp "https://devhints.io/bash" "Bash" ;; *Neovim*) omadeb-launch-webapp "https://www.lazyvim.org/keymaps" "Neovim" ;; - *Zellij*) omadeb-launch-webapp "https://zellij.dev/documentation/keybindings.html" "Zellij" ;; *) show_main_menu ;; esac } show_trigger_menu() { - case $(menu "Trigger" " Share\n󰔎 Toggle" "--width 250 --height 130") in + case $(menu "Trigger" " Share\n󰔎 Toggle") in *Share*) show_share_menu ;; *Toggle*) show_toggle_menu ;; *) show_main_menu ;; @@ -107,7 +107,7 @@ show_trigger_menu() { } show_share_menu() { - case $(menu "Share" " Clipboard\n File \n Folder" "--width 250 --height 170") in + case $(menu "Share" " Clipboard\n File \n Folder") in *Clipboard*) omadeb-cmd-share clipboard ;; *File*) terminal bash -c "omadeb-cmd-share file" ;; *Folder*) terminal bash -c "omadeb-cmd-share folder" ;; @@ -116,7 +116,7 @@ show_share_menu() { } show_toggle_menu() { - case $(menu "Toggle" "󰔎 Nightlight" "--width 250 --height 80") in + case $(menu "Toggle" "󰔎 Nightlight") in *Nightlight*) omadeb-toggle-nightlight ;; *) back_to show_trigger_menu ;; esac @@ -124,25 +124,20 @@ show_toggle_menu() { show_style_menu() { - case $(menu "Style" "󰸌 Theme\n Font\n Background" "--width 250 --height 180") in + case $(menu "Style" "󰸌 Theme\n Font\n Background") in *Theme*) show_theme_menu ;; *Font*) show_font_menu ;; - *Background*) omadeb-theme-bg-next ;; + *Background*) show_background_menu ;; *) show_main_menu ;; esac } show_theme_menu() { - theme=$(menu "Theme" "$(omadeb-theme-list)" "--width 250 --height 470 -O alphabetical" "$(omadeb-theme-current)") - if [[ $theme == "CNCLD" || -z $theme ]]; then - back_to show_style_menu - else - omadeb-theme-set "$theme" - fi + omadeb-launch-walker -m menus:omadebthemes --width 800 --minheight 400 } show_font_menu() { - case $(menu "Font" " Family\n󰧴 Size" "--width 250 --height 130") in + case $(menu "Font" " Family\n󰧴 Size") in *Family*) show_font_family_menu ;; *Size*) present_terminal omadeb-font-size-set ;; *) show_main_menu ;; @@ -158,14 +153,17 @@ show_font_family_menu() { fi } +show_background_menu() { + omadeb-launch-walker -m menus:omadebBackgroundSelector --width 800 --minheight 400 +} + show_setup_menu() { - case $(menu "Setup" " System Sleep\n Folders\n Keybindings\n Starship\n Zellij\n󰌧 Wofi\n󰞅 XCompose" "--width 250 --height 320") in + case $(menu "Setup" "󰤆 System Sleep\n Folders\n Keybindings\n Starship\n󰌧 Walker\n󰞅 XCompose") in *System*) show_setup_system_menu ;; *Folders*) show_setup_folders_menu ;; *Keybindings*) show_setup_keybindings_menu ;; *Starship*) edit_in_nvim ~/.config/starship.toml ;; - *Zellij*) edit_in_nvim ~/.config/zellij/config.kdl ;; - *Wofi*) edit_in_nvim ~/.config/wofi/config ;; + *Walker*) open_in_editor ~/.config/walker/config.toml && omadeb-restart-walker ;; *XCompose*) open_in_editor ~/.XCompose && omadeb-restart-xcompose ;; *) show_main_menu ;; esac @@ -180,14 +178,14 @@ show_setup_system_menu() { options="$options󰒲 Disable Suspend" fi - case $(menu "System" "$options" "--width 250 --height 80") in + case $(menu "System" "$options") in *Suspend*) omadeb-toggle-suspend ;; *) show_setup_menu ;; esac } show_setup_folders_menu() { - case $(menu "Folders" "󰮝 Add\n󰮞 Remove" "--width 250 --height 130") in + case $(menu "Folders" "󰮝 Add\n󰮞 Remove") in *Add*) present_terminal omadeb-app-folder-add ;; *Remove*) present_terminal omadeb-app-folder-remove ;; *) show_setup_menu ;; @@ -195,7 +193,7 @@ show_setup_folders_menu() { } show_setup_keybindings_menu() { - case $(menu "Keybindings" " Add\n Remove" "--width 250 --height 130") in + case $(menu "Keybindings" " Add\n Remove") in *Add*) present_terminal omadeb-keybinding-add ;; *Remove*) present_terminal omadeb-keybinding-remove ;; *) show_setup_menu ;; @@ -203,8 +201,8 @@ show_setup_keybindings_menu() { } show_install_menu() { - case $(menu "Install" " Package\n Web App\n TUI\n Service\n Browser\n Utility\n Style\n󰵮 Development\n Editor\n Terminal\n󱚤 AI\n Gaming" "--width 250 --height 510") in - *Package*) present_terminal omadeb-pkg-install ;; + case $(menu "Install" " Package\n Web App\n TUI\n Service\n Browser\n Utility\n Style\n󰵮 Development\n Editor\n Terminal\n󱚤 AI\n Gaming") in + *Package*) terminal omadeb-pkg-install ;; *Web*) present_terminal omadeb-webapp-install ;; *TUI*) present_terminal omadeb-tui-install ;; *Service*) show_install_service_menu ;; @@ -221,7 +219,7 @@ show_install_menu() { } show_install_service_menu() { - case $(menu "Install" " 1password\n Bitwarden\n Discord\n Dropbox\n LibreOffice\n LocalSend\n ObsStudio\n Obsidian\n Signal\n Spotify\n Typora\n Tailscale\n Zoom" "--width 250 --height 550") in + case $(menu "Install" " 1password\n Bitwarden\n Discord\n Dropbox\n LibreOffice\n LocalSend\n ObsStudio\n Obsidian\n Signal\n Spotify\n Typora\n Tailscale\n Zoom") in *1password*) install_app "1password" "1password" ;; *Bitwarden*) install_app "Bitwarden" "bitwarden" ;; *Discord*) install_app "Discord" "discord" ;; @@ -240,28 +238,28 @@ show_install_service_menu() { } show_install_browser_menu() { - case $(menu "Install" " Brave\n Chromium\n Firefox\n Zen" "--width 250 --height 210") in + case $(menu "Install" " Brave\n Chromium\n Firefox\n Zen") in *Brave*) install_app "Brave" "brave" ;; *Chromium*) install "Chromium" "chromium" ;; *Firefox*) install "Firefox" "firefox-esr" ;; - *Zen*) install "Zen Browser" "zen" ;; + *Zen*) install_app "Zen Browser" "zen" ;; *) show_install_menu ;; esac } show_install_utility_menu() { - case $(menu "Install" " ASDControl\n Flameshot\n Pinta\n Starship\n Xournalpp" "--width 250 --height 245") in + case $(menu "Install" " ASDControl\n Flameshot\n Pinta\n Starship\n Xournalpp") in *ASDControl*) install_app "ASDControl" "asdcontrol" ;; *Flameshot*) install "Flameshot" "flameshot" ;; *Pinta*) install_app "Pinta" "pinta" ;; - *Starship*) install_app "Starship" "starship" ;; + *Starship*) install "Starship" "starship" ;; *Xournalpp*) install "Xournalpp" "xournalpp" ;; *) show_install_menu ;; esac } show_install_style_menu() { - case $(menu "Install" "󰸌 Theme\n Background\n Font" "--width 250 --height 170") in + case $(menu "Install" "󰸌 Theme\n Background\n Font") in *Theme*) present_terminal omadeb-theme-install ;; *Background*) omadeb-theme-bg-install ;; *Font*) show_install_font_menu ;; @@ -270,7 +268,7 @@ show_install_style_menu() { } show_install_font_menu() { - case $(menu "Install" " Cascadia Mono\n JetBrains Mono\n iA Fonts\n Microsoft Core Fonts" "--width 350 --height 210") in + case $(menu "Install" " Cascadia Mono\n JetBrains Mono\n iA Fonts\n Microsoft Core Fonts" "--width 350") in *Cascadia*) install_font "Cascadia Mono" "cascadia-mono" "Cascadia Mono Nerd Font" ;; *JetBrains*) install_font "JetBrains Mono" "jetbrains-mono" "JetBrains Mono" ;; *iA*) install_font "iA Fonts" "iafonts" "iA Fonts Nerd Font" ;; @@ -280,8 +278,8 @@ show_install_font_menu() { } show_install_development_menu() { - case $(menu "Install" " Docker\n󱘲 Databases\n󰊢 Git\n󰫏 Ruby on Rails\n JavaScript\n Go\n PHP\n Python\n Elixir\n Zig\n Rust\n Java\n .NET\n OCaml\n Clojure\n Scala" "--width 250 --height 600") in - *Docker*) install "Docker" "docker" ;; + case $(menu "Install" " Docker\n󱘲 Databases\n󰊢 Git\n󰫏 Ruby on Rails\n JavaScript\n Go\n PHP\n Python\n Elixir\n Zig\n Rust\n Java\n .NET\n OCaml\n Clojure\n Scala") in + *Docker*) install "Docker" "docker" ;; *Databases*) show_install_databases_menu ;; *Git*) show_install_git_menu ;; *Rails*) present_terminal "omadeb-install-dev-env ruby" ;; @@ -302,7 +300,7 @@ show_install_development_menu() { } show_install_databases_menu() { - case $(menu "Install Databases" " MySQL\n PostgreSQL\n MariaDB\n Redis\n MongoDB\n󱘲 MSSQL" "--width 250 --height 280") in + case $(menu "Install Databases" " MySQL\n PostgreSQL\n MariaDB\n Redis\n MongoDB\n󱘲 MSSQL") in *MySQL*) present_terminal "omadeb-install-docker-dbs mysql" ;; *PostgreSQL*) present_terminal "omadeb-install-docker-dbs postgresql" ;; *MariaDB*) present_terminal "omadeb-install-docker-dbs mariadb" ;; @@ -314,15 +312,15 @@ show_install_databases_menu() { } show_install_git_menu() { - case $(menu "Install Git" " Github CLI\n Gitlab CLI" "--width 250 --height 130") in + case $(menu "Install Git" " Github CLI\n Gitlab CLI") in *Github*) install_app "Github CLI" "github-cli" ;; - *Gitlab*) install_app "Gitlab CLI" "gitlab-cli" ;; + *Gitlab*) install "Gitlab CLI" "glab" ;; *) show_install_development_menu ;; esac } show_install_javascript_menu() { - case $(menu "Install" " Node.js\n Bun\n Deno" "--width 250 --height 170") in + case $(menu "Install" " Node.js\n Bun\n Deno") in *Node*) present_terminal "omadeb-install-dev-env node" ;; *Bun*) present_terminal "omadeb-install-dev-env bun" ;; *Deno*) present_terminal "omadeb-install-dev-env deno" ;; @@ -331,7 +329,7 @@ show_install_javascript_menu() { } show_install_elixir_menu() { - case $(menu "Install" " Elixir\n Phoenix" "--width 250 --height 130") in + case $(menu "Install" " Elixir\n Phoenix") in *Elixir*) present_terminal "omadeb-install-dev-env elixir" ;; *Phoenix*) present_terminal "omadeb-install-dev-env phoenix" ;; *) show_install_development_menu ;; @@ -339,7 +337,7 @@ show_install_elixir_menu() { } show_install_editor_menu() { - case $(menu "Install" " VSCode\n Cursor\n Zed\n Emacs" "--width 250 --height 210") in + case $(menu "Install" " VSCode\n Cursor\n Zed\n Emacs") in *VSCode*) install_app "Visual Studio Code" "visual-studio-code" ;; *Cursor*) install_app "Cursor" "cursor" ;; *Zed*) install_app "Zed" "zed" ;; @@ -349,25 +347,23 @@ show_install_editor_menu() { } show_install_terminal_menu() { - case $(menu "Install" " Alacritty\n Kitty" "--width 250 --height 130") in + case $(menu "Install" " Alacritty\n Ghostty\n Kitty") in *Alacritty*) install_terminal "alacritty" ;; + *Ghostty*) install_terminal "ghostty" ;; *Kitty*) install_terminal "kitty" ;; *) show_install_menu ;; esac } show_install_ai_menu() { - case $(menu "Install" "󱚤 Claude Code\n󱚤 Copilot CLI\n󱚤 Ollama\n󱚤 OpenCode" "--width 250 --height 210") in - *Claude*) install_app "Claude Code" "claude-code" ;; - *Copilot*) install_app "Github Copilot CLI" "github-copilot-cli" ;; + case $(menu "Install" "󱚤 Ollama") in *Ollama*) install_app "Ollama" "ollama" ;; - *OpenCode*) install_app "OpenCode" "opencode" ;; *) show_install_menu ;; esac } show_install_gaming_menu() { - case $(menu "Install" " Steam\n RetroArch\n󰍳 Minecraft" "--width 250 --height 170") in + case $(menu "Install" " Steam\n RetroArch\n󰍳 Minecraft") in *Steam*) install_app "Steam" "steam" ;; *RetroArch*) install_app "RetroArch" "retroarch" ;; *Minecraft*) install_app "Minecraft" "minecraft" ;; @@ -376,8 +372,8 @@ show_install_gaming_menu() { } show_remove_menu() { - case $(menu "Remove" " Package\n Web App\n TUI\n󰀻 App\n Style\n󰵮 Development\n󰏓 Preinstalls" "--width 250 --height 320") in - *Package*) present_terminal omadeb-pkg-remove ;; + case $(menu "Remove" " Package\n Web App\n TUI\n󰀻 App\n Style\n󰵮 Development\n󰏓 Preinstalls") in + *Package*) terminal omadeb-pkg-remove ;; *Web*) present_terminal omadeb-webapp-remove ;; *TUI*) present_terminal omadeb-tui-remove ;; *App*) present_terminal omadeb-app-remove ;; @@ -389,7 +385,7 @@ show_remove_menu() { } show_remove_style_menu() { - case $(menu "Remove" "󰸌 Theme\n Font" "--width 250 --height 130") in + case $(menu "Remove" "󰸌 Theme\n Font") in *Theme*) present_terminal omadeb-theme-remove ;; *Font*) show_remove_font_menu ;; *) show_remove_menu ;; @@ -397,17 +393,17 @@ show_remove_style_menu() { } show_remove_font_menu() { - case $(menu "Remove Font" " Cascadia Mono\n JetBrains Mono\n iA Fonts\n Microsoft Core Fonts" "--width 350 --height 210") in - *Cascadia*) present_terminal "omadeb-remove-font cascadia-mono" ;; - *JetBrains*) present_terminal "omadeb-remove-font jetbrains-mono" ;; - *iA*) present_terminal "omadeb-remove-font iafonts" ;; - *Microsoft*) present_terminal "omadeb-remove-font mscore" ;; + case $(menu "Remove Font" " Cascadia Mono\n JetBrains Mono\n iA Fonts\n Microsoft Core Fonts" "--width 350") in + *Cascadia*) remove_font "Cascadia Mono" "cascadia-mono" ;; + *JetBrains*) remove_font "JetBrains Mono" "jetbrains-mono" ;; + *iA*) remove_font "iA Fonts" "iafonts" ;; + *Microsoft*) remove_font "Microsoft Core Fonts" "mscore" ;; *) show_remove_menu ;; esac } show_remove_development_menu() { - case $(menu "Remove Development Environment" "󰫏 Ruby on Rails\n JavaScript\n Go\n PHP\n Python\n Elixir\n Zig\n Rust\n Java\n .NET\n OCaml\n Clojure\n Scala" "--width 250 --height 510") in + case $(menu "Remove Development Environment" "󰫏 Ruby on Rails\n JavaScript\n Go\n PHP\n Python\n Elixir\n Zig\n Rust\n Java\n .NET\n OCaml\n Clojure\n Scala") in *Rails*) present_terminal "omadeb-remove-dev-env ruby" ;; *JavaScript*) show_remove_javascript_menu ;; *Go*) present_terminal "omadeb-remove-dev-env go" ;; @@ -428,11 +424,12 @@ show_remove_development_menu() { show_update_menu() { local brand_name=$(omadeb-brand) - case $(menu "Update" "󰟢 $brand_name\n󰔫 Channel\n Config\n󰸌 Themes\n󰇅 Hardware\n Firmware\n Password" "--width 250 --height 320") in + case $(menu "Update" "󰟢 $brand_name\n󰔫 Channel\n Config\n󰸌 Themes\n Process\n󰇅 Hardware\n Firmware\n Password") in *$brand_name*) present_terminal omadeb-update ;; *Channel*) show_update_channel_menu ;; *Config*) show_update_config_menu ;; *Themes*) present_terminal omadeb-theme-update ;; + *Process*) show_update_process_menu ;; *Hardware*) show_update_hardware_menu ;; *Firmware*) present_terminal omadeb-update-firmware ;; *Password*) show_update_password_menu ;; @@ -441,7 +438,7 @@ show_update_menu() { } show_update_channel_menu() { - case $(menu "Update channel" "🟢 Stable\n🔴 Dev" "--width 250 --height 130") in + case $(menu "Update channel" "🟢 Stable\n🔴 Dev") in *Stable*) present_terminal "omadeb-channel-set stable" ;; *Dev*) present_terminal "omadeb-channel-set dev" ;; *) show_update_menu ;; @@ -449,27 +446,34 @@ show_update_channel_menu() { } show_update_config_menu() { - case $(menu "Use default config" " Gnome\n󰍂 GDM\n Keybindings\n󱣴 Plymouth\n󰌧 Wofi\n Starship\n Zellij" "--width 250 --height 320") in + case $(menu "Use default config" " Gnome\n󰍂 GDM\n Keybindings\n󱣴 Plymouth\n Starship\n Tmux\n󰌧 Walker") in *Gnome*) present_terminal omadeb-refresh-gnome ;; *GDM*) present_terminal omadeb-refresh-gdm ;; *Keybindings*) present_terminal omadeb-refresh-keybindings ;; *Plymouth*) present_terminal omadeb-refresh-plymouth ;; - *Wofi*) present_terminal omadeb-refresh-wofi ;; *Starship*) present_terminal omadeb-refresh-config starship.toml ;; - *Zellij*) present_terminal omadeb-refresh-config zellij/config.kdl ;; + *Tmux*) present_terminal omadeb-refresh-tmux ;; + *Walker*) present_terminal omadeb-refresh-walker ;; + *) show_update_menu ;; + esac +} + +show_update_process_menu() { + case $(menu "Restart" "󰌧 Walker") in + *Walker*) omadeb-restart-walker ;; *) show_update_menu ;; esac } show_update_hardware_menu() { - case $(menu "Restart" " Audio" "--width 250 --height 80") in + case $(menu "Restart" " Audio") in *Audio*) present_terminal omadeb-restart-pipewire ;; *) show_update_menu ;; esac } show_update_password_menu() { - case $(menu "Update Password" " User" "--width 250 --height 80") in + case $(menu "Update Password" " User") in *User*) present_terminal passwd ;; *) show_update_menu ;; esac @@ -480,16 +484,11 @@ show_about() { } show_system_menu() { - local options=" Lock" + local options="󰌾 Lock" [[ ! -f ~/.local/state/omadeb/toggles/suspend-off ]] && options="$options\n󰒲 Suspend" - options="$options\n Logout\n󰜉 Restart\n󰐥 Shutdown" - - local height=250 - if [[ -f ~/.local/state/omadeb/toggles/suspend-off ]]; then - height=210 - fi + options="$options\n󰌾 Logout\n󰜉 Restart\n󰐥 Shutdown" - case $(menu "System" "$options" "--width 250 --height $height") in + case $(menu "System" "$options") in *Lock*) omadeb-system-lock-screen ;; *Suspend*) systemctl suspend ;; *Logout*) omadeb-system-logout ;; @@ -500,7 +499,7 @@ show_system_menu() { } show_main_menu() { - go_to_menu "$(menu "Go" "󰀻 Apps\n󰧑 Learn\n󱓞 Trigger\n Style\n Setup\n󰉉 Install\n󰭌 Remove\n Update\n About\n System" "--width 250 --height 440")" + go_to_menu "$(menu "Go" "󰀻 Apps\n󰧑 Learn\n󱓞 Trigger\n Style\n Setup\n󰉉 Install\n󰭌 Remove\n󰑐 Update\n About\n󰤆 System")" } go_to_menu() { @@ -510,6 +509,7 @@ go_to_menu() { *trigger*) show_trigger_menu ;; *toggle*) show_toggle_menu ;; *style*) show_style_menu ;; + *background*) show_background_menu ;; *theme*) show_theme_menu ;; *setup*) show_setup_menu ;; *install*) show_install_menu ;; diff --git a/bin/omadeb-npx-install b/bin/omadeb-npx-install new file mode 100755 index 0000000..abba21a --- /dev/null +++ b/bin/omadeb-npx-install @@ -0,0 +1,24 @@ +#!/bin/bash + +# Install an npx wrapper for a given npm package. +# Usage: omadeb-npx-install [command-name] +# +# If command-name is omitted, it defaults to the package name. +# Example: omadeb-npx-install opencode-ai opencode + +if [[ -z $1 ]]; then + echo "Usage: omadeb-npx-install [command-name]" + exit 1 +fi + +package=$1 +command=${2:-$1} + +mkdir -p "$HOME/.local/bin" + +cat > "$HOME/.local/bin/$command" < /dev/null + +sudo apt-get update diff --git a/bin/omadeb-refresh-tmux b/bin/omadeb-refresh-tmux new file mode 100755 index 0000000..7e1ce30 --- /dev/null +++ b/bin/omadeb-refresh-tmux @@ -0,0 +1,6 @@ +#!/bin/bash + +# Overwrite the user tmux config with the Omabuntu default and reload tmux. + +omadeb-refresh-config tmux/tmux.conf +omadeb-restart-tmux diff --git a/bin/omadeb-refresh-walker b/bin/omadeb-refresh-walker new file mode 100755 index 0000000..8909041 --- /dev/null +++ b/bin/omadeb-refresh-walker @@ -0,0 +1,21 @@ +#!/bin/bash + +# Overwrite the user configs for the Walker application launcher (which also powers the Omadeb Menu) and restart the services. + +# Ensure walker is set to autostart +mkdir -p ~/.config/autostart/ +cp $OMADEB_PATH/default/walker/walker.desktop ~/.config/autostart/ + +# And restarts if it crashes or is killed +mkdir -p ~/.config/systemd/user/app-walker@autostart.service.d/ +cp $OMADEB_PATH/default/walker/restart.conf ~/.config/systemd/user/app-walker@autostart.service.d/restart.conf + +systemctl --user daemon-reload + +# Refresh configs +omadeb-refresh-config walker/config.toml +omadeb-refresh-config elephant/calc.toml +omadeb-refresh-config elephant/desktopapplications.toml + +# Restart service +omadeb-restart-walker diff --git a/bin/omadeb-reinstall-configs b/bin/omadeb-reinstall-configs index 249fc62..7609ece 100755 --- a/bin/omadeb-reinstall-configs +++ b/bin/omadeb-reinstall-configs @@ -19,4 +19,4 @@ omadeb-refresh-gnome omadeb-refresh-keybindings omadeb-refresh-gdm omadeb-refresh-plymouth -omadeb-nvim-setup +omadeb-setup-nvim diff --git a/bin/omadeb-remove-preinstalls b/bin/omadeb-remove-preinstalls index 4dccc7a..9ab05fd 100755 --- a/bin/omadeb-remove-preinstalls +++ b/bin/omadeb-remove-preinstalls @@ -9,6 +9,10 @@ if gum confirm "Are you sure you want to remove all preinstalled web apps, TUI w omadeb-webapp-remove-all omadeb-tui-remove-all + # Remove npx stubs + rm -f ~/.local/bin/codex ~/.local/bin/gemini ~/.local/bin/copilot ~/.local/bin/claude \ + ~/.local/bin/opencode ~/.local/bin/playwright-cli ~/.local/bin/pi + omadeb-app-remove \ spotify \ libreoffice \ diff --git a/bin/omadeb-restart-terminal b/bin/omadeb-restart-terminal index 6a3b972..38e707c 100755 --- a/bin/omadeb-restart-terminal +++ b/bin/omadeb-restart-terminal @@ -6,4 +6,8 @@ fi if pgrep -x kitty >/dev/null; then killall -SIGUSR1 kitty >/dev/null +fi + +if pgrep -x ghostty >/dev/null; then + killall -SIGUSR2 ghostty fi \ No newline at end of file diff --git a/bin/omadeb-restart-tmux b/bin/omadeb-restart-tmux new file mode 100755 index 0000000..b1ce760 --- /dev/null +++ b/bin/omadeb-restart-tmux @@ -0,0 +1,7 @@ +#!/bin/bash + +# Restart tmux if running with the latest configuration + +if pgrep -x tmux; then + tmux source-file ~/.config/tmux/tmux.conf +fi diff --git a/bin/omadeb-restart-walker b/bin/omadeb-restart-walker new file mode 100755 index 0000000..fb1a9ea --- /dev/null +++ b/bin/omadeb-restart-walker @@ -0,0 +1,22 @@ +#!/bin/bash + +restart_services() { + if systemctl --user is-enabled elephant.service &>/dev/null; then + systemctl --user restart elephant.service + fi + + if systemctl --user is-enabled app-walker@autostart.service &>/dev/null; then + systemctl --user restart app-walker@autostart.service + else + echo -e "\e[31mUnable to restart Walker -- RESTART MANUALLY\e[0m" + fi +} + +if (( EUID == 0 )); then + SCRIPT_OWNER=$(stat -c '%U' "$0") + USER_UID=$(id -u "$SCRIPT_OWNER") + systemd-run --uid="$SCRIPT_OWNER" --setenv=XDG_RUNTIME_DIR="/run/user/$USER_UID" \ + bash -c "$(declare -f restart_services); restart_services" +else + restart_services +fi diff --git a/bin/omadeb-terminal-set-nautilus b/bin/omadeb-terminal-set-nautilus index ab7a898..11e7751 100755 --- a/bin/omadeb-terminal-set-nautilus +++ b/bin/omadeb-terminal-set-nautilus @@ -1,6 +1,6 @@ #!/bin/bash -# Set the default terminal emulator for Nautilus to match the one set for Omabuntu. +# Set the default terminal emulator for Nautilus to match the one set for Omadeb. if [[ -z $1 ]]; then echo "Usage: omadeb-terminal-set-nautilus [terminal-emulator]" diff --git a/bin/omadeb-theme-set-vscode b/bin/omadeb-theme-set-vscode index 5ccd828..dcd1e43 100755 --- a/bin/omadeb-theme-set-vscode +++ b/bin/omadeb-theme-set-vscode @@ -35,5 +35,6 @@ set_theme() { } set_theme "code" "$HOME/.config/Code/User/settings.json" "$HOME/.local/state/omadeb/toggles/skip-vscode-theme-changes" +set_theme "code-insiders" "$HOME/.config/Code - Insiders/User/settings.json" "$HOME/.local/state/omadeb/toggles/skip-vscode-insiders-theme-changes" set_theme "codium" "$HOME/.config/VSCodium/User/settings.json" "$HOME/.local/state/omadeb/toggles/skip-codium-theme-changes" set_theme "cursor" "$HOME/.config/Cursor/User/settings.json" "$HOME/.local/state/omadeb/toggles/skip-cursor-theme-changes" \ No newline at end of file diff --git a/bin/omadeb-toggle-nightlight b/bin/omadeb-toggle-nightlight index fa46791..87cf3b4 100755 --- a/bin/omadeb-toggle-nightlight +++ b/bin/omadeb-toggle-nightlight @@ -6,9 +6,9 @@ current_state=$(gsettings get org.gnome.settings-daemon.plugins.color night-ligh if [[ $current_state == "true" ]]; then gsettings set org.gnome.settings-daemon.plugins.color night-light-enabled false sleep 0.5 # Wait for the setting to apply - omadeb-notify "Night Light" " Daylight screen temperature" + omadeb-notify -u low "Night Light" " Daylight screen temperature" else gsettings set org.gnome.settings-daemon.plugins.color night-light-enabled true sleep 0.5 # Wait for the setting to apply - omadeb-notify "Night Light" " Nightlight screen temperature" + omadeb-notify -u low "Night Light" " Nightlight screen temperature" fi \ No newline at end of file diff --git a/bin/omadeb-toggle-suspend b/bin/omadeb-toggle-suspend index 561bafd..d687b3a 100755 --- a/bin/omadeb-toggle-suspend +++ b/bin/omadeb-toggle-suspend @@ -4,9 +4,9 @@ STATE_FILE=~/.local/state/omadeb/toggles/suspend-off if [[ -f $STATE_FILE ]]; then rm -f $STATE_FILE - omadeb-notify "Suspend" "󰒲 Suspend now available in system menu" + omadeb-notify -u low "Suspend" "󰒲 Suspend now available in system menu" else mkdir -p "$(dirname $STATE_FILE)" touch $STATE_FILE - omadeb-notify "Suspend" "󰒲 Suspend removed from system menu" + omadeb-notify -u low "Suspend" "󰒲 Suspend removed from system menu" fi \ No newline at end of file diff --git a/bin/omadeb-update-keyring b/bin/omadeb-update-keyring index 99c1747..8800ebe 100755 --- a/bin/omadeb-update-keyring +++ b/bin/omadeb-update-keyring @@ -8,7 +8,7 @@ SOURCES_PATH="/etc/apt/sources.list.d/omakasui.list" _install_sources() { echo "deb [arch=$(dpkg --print-architecture) signed-by=$KEYRING_PATH] \ - https://packages.omakasui.org $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") main" \ + https://packages.omakasui.org $(. /etc/os-release && echo $VERSION_CODENAME) main" \ | sudo tee "$SOURCES_PATH" > /dev/null } diff --git a/boot.sh b/boot.sh index c322231..5bc289c 100755 --- a/boot.sh +++ b/boot.sh @@ -32,5 +32,12 @@ cd ~/.local/share/omadeb git fetch origin "${OMADEB_REF}" && git checkout "${OMADEB_REF}" cd - +# Set channel based on branch (dev branch uses dev channel, everything else uses stable) +if [[ $OMADEB_REF == "dev" ]]; then + export OMADEB_CHANNEL=dev +else + export OMADEB_CHANNEL=stable +fi + echo -e "\nInstallation starting..." source ~/.local/share/omadeb/install.sh diff --git a/config/alacritty/alacritty.toml b/config/alacritty/alacritty.toml index ddea865..a1afc7e 100644 --- a/config/alacritty/alacritty.toml +++ b/config/alacritty/alacritty.toml @@ -1,7 +1,4 @@ -import = [ "~/.config/omadeb/current/theme/alacritty.toml" ] - -[shell] -program = "zellij" +general.import = [ "~/.config/omadeb/current/theme/alacritty.toml" ] [env] TERM = "xterm-256color" diff --git a/config/elephant/calc.toml b/config/elephant/calc.toml new file mode 100644 index 0000000..95d00d1 --- /dev/null +++ b/config/elephant/calc.toml @@ -0,0 +1 @@ +async = false diff --git a/config/elephant/desktopapplications.toml b/config/elephant/desktopapplications.toml new file mode 100644 index 0000000..de17325 --- /dev/null +++ b/config/elephant/desktopapplications.toml @@ -0,0 +1,3 @@ +show_actions = false +only_search_title = true +history = false diff --git a/config/elephant/symbols.toml b/config/elephant/symbols.toml new file mode 100644 index 0000000..6636016 --- /dev/null +++ b/config/elephant/symbols.toml @@ -0,0 +1 @@ +command = 'wl-copy' diff --git a/config/environment.d/omadeb.conf b/config/environment.d/omadeb.conf new file mode 100644 index 0000000..1573532 --- /dev/null +++ b/config/environment.d/omadeb.conf @@ -0,0 +1,2 @@ +OMADEB_PATH=$HOME/.local/share/omadeb +PATH=$OMADEB_PATH/bin:$PATH diff --git a/config/fastfetch/config.jsonc b/config/fastfetch/config.jsonc index 307353b..4eb9eb5 100644 --- a/config/fastfetch/config.jsonc +++ b/config/fastfetch/config.jsonc @@ -70,6 +70,11 @@ "keyColor": "blue", "text": "branch=$(omadeb-version-branch); echo \"$branch\"", }, + { + "type": "os", + "key": "│ ├", + "keyColor": "blue", + }, { "type": "kernel", "key": "│ ├", diff --git a/config/ghostty/config b/config/ghostty/config new file mode 100644 index 0000000..bbc54fb --- /dev/null +++ b/config/ghostty/config @@ -0,0 +1,37 @@ +# Dynamic theme colors +config-file = ?"~/.config/omadeb/current/theme/ghostty.conf" + +# Font +font-family = "Cascadia Mono Nerd Font" +font-style = Regular +font-size = 9 + +# Window +window-theme = ghostty +window-padding-x = 14 +window-padding-y = 14 +confirm-close-surface=false +resize-overlay = never +gtk-toolbar-style = flat + +# Cursor styling +cursor-style = "block" +cursor-style-blink = false + +# Cursor styling + SSH session terminfo +# (all shell integration options must be passed together) +shell-integration-features = no-cursor,ssh-env + +# Keyboard bindings +keybind = shift+insert=paste_from_clipboard +keybind = control+insert=copy_to_clipboard +keybind = super+control+shift+alt+arrow_down=resize_split:down,100 +keybind = super+control+shift+alt+arrow_up=resize_split:up,100 +keybind = super+control+shift+alt+arrow_left=resize_split:left,100 +keybind = super+control+shift+alt+arrow_right=resize_split:right,100 + +# Slowdown mouse scrolling +mouse-scroll-multiplier = 0.95 + +# Fix general slowness on hyprland (https://github.com/ghostty-org/ghostty/discussions/3224) +async-backend = epoll diff --git a/config/tmux/tmux.conf b/config/tmux/tmux.conf new file mode 100644 index 0000000..083abb6 --- /dev/null +++ b/config/tmux/tmux.conf @@ -0,0 +1,94 @@ +# Prefix +set -g prefix C-Space +set -g prefix2 C-b +bind C-Space send-prefix + +# Reload config +bind q source-file ~/.config/tmux/tmux.conf \; display "Configuration reloaded" + +# 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 Controls +bind h split-window -v -c "#{pane_current_path}" +bind v split-window -h -c "#{pane_current_path}" +bind x kill-pane + +bind -n C-M-Left select-pane -L +bind -n C-M-Right select-pane -R +bind -n C-M-Up select-pane -U +bind -n C-M-Down select-pane -D + +bind -n C-M-S-Left resize-pane -L 5 +bind -n C-M-S-Down resize-pane -D 5 +bind -n C-M-S-Up resize-pane -U 5 +bind -n C-M-S-Right resize-pane -R 5 + +# Window navigation +bind r command-prompt -I "#W" "rename-window -- '%%'" +bind c new-window -c "#{pane_current_path}" +bind k kill-window + +bind -n M-1 select-window -t 1 +bind -n M-2 select-window -t 2 +bind -n M-3 select-window -t 3 +bind -n M-4 select-window -t 4 +bind -n M-5 select-window -t 5 +bind -n M-6 select-window -t 6 +bind -n M-7 select-window -t 7 +bind -n M-8 select-window -t 8 +bind -n M-9 select-window -t 9 + +bind -n M-Left select-window -t -1 +bind -n M-Right select-window -t +1 +bind -n M-S-Left swap-window -t -1 \; select-window -t -1 +bind -n M-S-Right swap-window -t +1 \; select-window -t +1 + +# Session controls +bind R command-prompt -I "#S" "rename-session -- '%%'" +bind C new-session -c "#{pane_current_path}" +bind K kill-session +bind P switch-client -p +bind N switch-client -n + +bind -n M-Up switch-client -p +bind -n M-Down switch-client -n + +# 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 +set -g allow-passthrough 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 "" +set -gw automatic-rename on +set -gw automatic-rename-format '#{b:pane_current_path}' + +# Theme +set -g status-style "bg=default,fg=default" +set -g status-left "#[fg=black,bg=blue,bold] #S #[bg=default] " +set -g status-right "#[fg=blue]#{?pane_in_mode,COPY ,}#{?client_prefix,PREFIX ,}#{?window_zoomed_flag,ZOOM ,}#[fg=brightblack]#h " +set -g window-status-format "#[fg=brightblack] #I:#W " +set -g window-status-current-format "#[fg=blue,bold] #I:#W " +set -g pane-border-style "fg=brightblack" +set -g pane-active-border-style "fg=blue" +set -g message-style "bg=default,fg=blue" +set -g message-command-style "bg=default,fg=blue" +set -g mode-style "bg=blue,fg=black" +setw -g clock-mode-colour blue diff --git a/config/walker/config.toml b/config/walker/config.toml new file mode 100644 index 0000000..c2368bc --- /dev/null +++ b/config/walker/config.toml @@ -0,0 +1,49 @@ +force_keyboard_focus = true # forces keyboard forcus to stay in Walker +selection_wrap = true # wrap list if at bottom or top +theme = "omadeb-default" # theme to use +additional_theme_location = "~/.local/share/omadeb/default/walker/themes/" +hide_action_hints = true # globally hide the action hints + +[placeholders] +"default" = { input = "󰍉 Search...", list = "No Results" } # placeholders for input and empty list, key is the providers name, so f.e. "desktopapplications" or "menus:other" + +[keybinds] +quick_activate = [] + +[columns] +symbols = 1 # providers to be queried by default + +[providers] +max_results = 256 # 256 should be enough for everyone +default = [ + "desktopapplications", + "websearch", +] + +[[providers.prefixes]] +prefix = "/" +provider = "providerlist" + +[[providers.prefixes]] +prefix = "." +provider = "files" + +[[providers.prefixes]] +prefix = ":" +provider = "symbols" + +[[providers.prefixes]] +prefix = "=" +provider = "calc" + +[[providers.prefixes]] +prefix = "@" +provider = "websearch" + +[[providers.prefixes]] +prefix = "$" +provider = "clipboard" + +[[emergencies]] +text = "Restart Walker" +command = "omadeb-restart-walker" diff --git a/config/wofi/config b/config/wofi/config deleted file mode 100644 index adf78c7..0000000 --- a/config/wofi/config +++ /dev/null @@ -1,15 +0,0 @@ -width=600 -height=350 -location=center -show=drun -prompt=Search... -filter_rate=100 -allow_markup=true -no_actions=true -halign=fill -orientation=vertical -content_halign=fill -insensitive=true -allow_images=true -image_size=40 -gtk_dark=true diff --git a/config/wofi/select.css b/config/wofi/select.css deleted file mode 100644 index 1d6cbc3..0000000 --- a/config/wofi/select.css +++ /dev/null @@ -1,11 +0,0 @@ -/* Use by power menu, theme selector, and other menus without visible search bar */ - -@import ".config/wofi/style.css"; - -#input { - display: none; - opacity: 0; - margin-top: -200px; -} - -@import ".config/omadeb/current/theme/wofi.css"; diff --git a/config/wofi/style.css b/config/wofi/style.css deleted file mode 100644 index 8e46db2..0000000 --- a/config/wofi/style.css +++ /dev/null @@ -1,73 +0,0 @@ -/* Colors are defined by theme file and can be referenced via @base, @text, @selected-text, and @border */ - -* { - font-family: "CaskaydiaMono Nerd Font", monospace; - font-size: 18px; -} - -window { - margin: 0px; - padding: 0px; - background-color: transparent; - opacity: 0.95; -} - -#inner-box { - margin: 0; - padding: 0; - border: none; - background-color: @base; -} - -#outer-box { - padding: 20px; - background-color: @base; - border: 2px solid @border; - border-radius: 14px; -} - -#scroll { - margin: 0; - padding: 0; - border: none; - background-color: @base; -} - -#input { - margin: 0; - padding: 10px; - border: none; - background-color: @base; - color: @text; -} - -#input:focus { - outline: none; - box-shadow: none; - border: none; -} - -#text { - margin: 5px; - border: none; - color: @text; -} - -#entry { - background-color: @base; -} - -#entry:selected { - outline: none; - border: none; -} - -#entry:selected #text { - color: @selected-text; -} - -#entry image { - -gtk-icon-transform: scale(0.7); -} - -@import ".config/omadeb/current/theme/wofi.css"; diff --git a/config/zellij/config.kdl b/config/zellij/config.kdl deleted file mode 100644 index e46049b..0000000 --- a/config/zellij/config.kdl +++ /dev/null @@ -1,214 +0,0 @@ -theme "current" -default_layout "compact" -on_force_close "quit" - -default_mode "locked" -keybinds clear-defaults=true { - locked { - bind "Ctrl g" { SwitchToMode "normal"; } - } - pane { - bind "Left" { MoveFocus "left"; } - bind "Down" { MoveFocus "down"; } - bind "Up" { MoveFocus "up"; } - bind "Right" { MoveFocus "right"; } - bind "c" { SwitchToMode "renamepane"; PaneNameInput 0; } - bind "d" { NewPane "down"; SwitchToMode "locked"; } - bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "locked"; } - bind "f" { ToggleFocusFullscreen; SwitchToMode "locked"; } - bind "h" { MoveFocus "left"; } - bind "j" { MoveFocus "down"; } - bind "k" { MoveFocus "up"; } - bind "l" { MoveFocus "right"; } - bind "n" { NewPane; SwitchToMode "locked"; } - bind "p" { SwitchToMode "normal"; } - bind "r" { NewPane "right"; SwitchToMode "locked"; } - bind "w" { ToggleFloatingPanes; SwitchToMode "locked"; } - bind "x" { CloseFocus; SwitchToMode "locked"; } - bind "z" { TogglePaneFrames; SwitchToMode "locked"; } - bind "Tab" { SwitchFocus; } - } - tab { - bind "Left" { GoToPreviousTab; } - bind "Down" { GoToNextTab; } - bind "Up" { GoToPreviousTab; } - bind "Right" { GoToNextTab; } - bind "1" { GoToTab 1; SwitchToMode "locked"; } - bind "2" { GoToTab 2; SwitchToMode "locked"; } - bind "3" { GoToTab 3; SwitchToMode "locked"; } - bind "4" { GoToTab 4; SwitchToMode "locked"; } - bind "5" { GoToTab 5; SwitchToMode "locked"; } - bind "6" { GoToTab 6; SwitchToMode "locked"; } - bind "7" { GoToTab 7; SwitchToMode "locked"; } - bind "8" { GoToTab 8; SwitchToMode "locked"; } - bind "9" { GoToTab 9; SwitchToMode "locked"; } - bind "[" { BreakPaneLeft; SwitchToMode "locked"; } - bind "]" { BreakPaneRight; SwitchToMode "locked"; } - bind "b" { BreakPane; SwitchToMode "locked"; } - bind "h" { GoToPreviousTab; } - bind "j" { GoToNextTab; } - bind "k" { GoToPreviousTab; } - bind "l" { GoToNextTab; } - bind "n" { NewTab; SwitchToMode "locked"; } - bind "r" { SwitchToMode "renametab"; TabNameInput 0; } - bind "s" { ToggleActiveSyncTab; SwitchToMode "locked"; } - bind "t" { SwitchToMode "normal"; } - bind "x" { CloseTab; SwitchToMode "locked"; } - bind "Tab" { ToggleTab; } - } - resize { - bind "Left" { Resize "Increase left"; } - bind "Down" { Resize "Increase down"; } - bind "Up" { Resize "Increase up"; } - bind "Right" { Resize "Increase right"; } - bind "+" { Resize "Increase"; } - bind "-" { Resize "Decrease"; } - bind "=" { Resize "Increase"; } - bind "H" { Resize "Decrease left"; } - bind "J" { Resize "Decrease down"; } - bind "K" { Resize "Decrease up"; } - bind "L" { Resize "Decrease right"; } - bind "h" { Resize "Increase left"; } - bind "j" { Resize "Increase down"; } - bind "k" { Resize "Increase up"; } - bind "l" { Resize "Increase right"; } - bind "r" { SwitchToMode "normal"; } - } - move { - bind "Left" { MovePane "left"; } - bind "Down" { MovePane "down"; } - bind "Up" { MovePane "up"; } - bind "Right" { MovePane "right"; } - bind "h" { MovePane "left"; } - bind "j" { MovePane "down"; } - bind "k" { MovePane "up"; } - bind "l" { MovePane "right"; } - bind "m" { SwitchToMode "normal"; } - bind "n" { MovePane; } - bind "p" { MovePaneBackwards; } - bind "Tab" { MovePane; } - } - scroll { - bind "Alt Left" { MoveFocusOrTab "left"; SwitchToMode "locked"; } - bind "Alt Down" { MoveFocus "down"; SwitchToMode "locked"; } - bind "Alt Up" { MoveFocus "up"; SwitchToMode "locked"; } - bind "Alt Right" { MoveFocusOrTab "right"; SwitchToMode "locked"; } - bind "e" { EditScrollback; SwitchToMode "locked"; } - bind "f" { SwitchToMode "entersearch"; SearchInput 0; } - bind "Alt h" { MoveFocusOrTab "left"; SwitchToMode "locked"; } - bind "Alt j" { MoveFocus "down"; SwitchToMode "locked"; } - bind "Alt k" { MoveFocus "up"; SwitchToMode "locked"; } - bind "Alt l" { MoveFocusOrTab "right"; SwitchToMode "locked"; } - bind "s" { SwitchToMode "normal"; } - } - search { - bind "c" { SearchToggleOption "CaseSensitivity"; } - bind "n" { Search "down"; } - bind "o" { SearchToggleOption "WholeWord"; } - bind "p" { Search "up"; } - bind "w" { SearchToggleOption "Wrap"; } - } - session { - bind "c" { - LaunchOrFocusPlugin "configuration" { - floating true - move_to_focused_tab true - } - SwitchToMode "locked" - } - bind "d" { Detach; } - bind "o" { SwitchToMode "normal"; } - bind "p" { - LaunchOrFocusPlugin "plugin-manager" { - floating true - move_to_focused_tab true - } - SwitchToMode "locked" - } - bind "w" { - LaunchOrFocusPlugin "session-manager" { - floating true - move_to_focused_tab true - } - SwitchToMode "locked" - } - } - shared_among "normal" "locked" { - bind "Alt Left" { MoveFocusOrTab "left"; } - bind "Alt Down" { MoveFocus "down"; } - bind "Alt Up" { MoveFocus "up"; } - bind "Alt Right" { MoveFocusOrTab "right"; } - bind "Alt +" { Resize "Increase"; } - bind "Alt -" { Resize "Decrease"; } - bind "Alt =" { Resize "Increase"; } - bind "Alt [" { PreviousSwapLayout; } - bind "Alt ]" { NextSwapLayout; } - bind "Alt f" { ToggleFloatingPanes; } - bind "Alt h" { MoveFocusOrTab "left"; } - bind "Alt i" { MoveTab "left"; } - bind "Alt j" { MoveFocus "down"; } - bind "Alt k" { MoveFocus "up"; } - bind "Alt l" { MoveFocusOrTab "right"; } - bind "Alt n" { NewPane; } - bind "Alt o" { MoveTab "right"; } - } - shared_except "locked" "renametab" "renamepane" { - bind "Ctrl g" { SwitchToMode "locked"; } - bind "Ctrl q" { Quit; } - } - shared_except "locked" "entersearch" { - bind "Enter" { SwitchToMode "locked"; } - } - shared_except "locked" "entersearch" "renametab" "renamepane" { - bind "Esc" { SwitchToMode "locked"; } - } - shared_except "locked" "entersearch" "renametab" "renamepane" "move" { - bind "m" { SwitchToMode "move"; } - } - shared_except "locked" "entersearch" "search" "renametab" "renamepane" "session" { - bind "o" { SwitchToMode "session"; } - } - shared_except "locked" "tab" "entersearch" "renametab" "renamepane" { - bind "t" { SwitchToMode "tab"; } - } - shared_except "locked" "tab" "scroll" "entersearch" "renametab" "renamepane" { - bind "s" { SwitchToMode "scroll"; } - } - shared_among "normal" "resize" "tab" "scroll" "prompt" "tmux" { - bind "p" { SwitchToMode "pane"; } - } - shared_except "locked" "resize" "pane" "tab" "entersearch" "renametab" "renamepane" { - bind "r" { SwitchToMode "resize"; } - } - shared_among "scroll" "search" { - bind "PageDown" { PageScrollDown; } - bind "PageUp" { PageScrollUp; } - bind "Left" { PageScrollUp; } - bind "Down" { ScrollDown; } - bind "Up" { ScrollUp; } - bind "Right" { PageScrollDown; } - bind "Ctrl b" { PageScrollUp; } - bind "Ctrl c" { ScrollToBottom; SwitchToMode "locked"; } - bind "d" { HalfPageScrollDown; } - bind "Ctrl f" { PageScrollDown; } - bind "h" { PageScrollUp; } - bind "j" { ScrollDown; } - bind "k" { ScrollUp; } - bind "l" { PageScrollDown; } - bind "u" { HalfPageScrollUp; } - } - entersearch { - bind "Ctrl c" { SwitchToMode "scroll"; } - bind "Esc" { SwitchToMode "scroll"; } - bind "Enter" { SwitchToMode "search"; } - } - renametab { - bind "Esc" { UndoRenameTab; SwitchToMode "tab"; } - } - shared_among "renametab" "renamepane" { - bind "Ctrl c" { SwitchToMode "locked"; } - } - renamepane { - bind "Esc" { UndoRenamePane; SwitchToMode "pane"; } - } -} \ No newline at end of file diff --git a/default/bash/aliases b/default/bash/aliases index 7875524..e86bfe9 100644 --- a/default/bash/aliases +++ b/default/bash/aliases @@ -40,6 +40,9 @@ alias r='rails' alias bat='batcat' alias lzg='lazygit' alias lzd='lazydocker' +if command -v tmux &> /dev/null; then + alias t='tmux attach || tmux new -s Work' +fi n() { if [ "$#" -eq 0 ]; then command nvim . ; else command nvim "$@"; fi; } # Browser diff --git a/default/bash/fns/tmux b/default/bash/fns/tmux new file mode 100644 index 0000000..1146864 --- /dev/null +++ b/default/bash/fns/tmux @@ -0,0 +1,99 @@ +if command -v tmux &> /dev/null; then + # Create a Tmux Dev Layout with editor, ai, and terminal + # Usage: tdl [] + tdl() { + [[ -z $1 ]] && { echo "Usage: tdl []"; return 1; } + [[ -z $TMUX ]] && { echo "You must start tmux to use tdl."; return 1; } + + local current_dir="${PWD}" + local editor_pane ai_pane ai2_pane + local ai="$1" + local ai2="$2" + + # Use TMUX_PANE for the pane we're running in (stable even if active window changes) + editor_pane="$TMUX_PANE" + + # Name the current window after the base directory name + tmux rename-window -t "$editor_pane" "$(basename "$current_dir")" + + # Split window vertically - top 85%, bottom 15% (target editor pane explicitly) + tmux split-window -v -p 15 -t "$editor_pane" -c "$current_dir" + + # Split editor pane horizontally - AI on right 30% (capture new pane ID directly) + ai_pane=$(tmux split-window -h -p 30 -t "$editor_pane" -c "$current_dir" -P -F '#{pane_id}') + + # If second AI provided, split the AI pane vertically + if [[ -n $ai2 ]]; then + ai2_pane=$(tmux split-window -v -t "$ai_pane" -c "$current_dir" -P -F '#{pane_id}') + tmux send-keys -t "$ai2_pane" "$ai2" C-m + fi + + # Run ai in the right pane + tmux send-keys -t "$ai_pane" "$ai" C-m + + # Run nvim in the left pane + tmux send-keys -t "$editor_pane" "$EDITOR ." C-m + + # Select the nvim pane for focus + tmux select-pane -t "$editor_pane" + } + + # Create multiple tdl windows with one per subdirectory in the current directory + # Usage: tdlm [] + tdlm() { + [[ -z $1 ]] && { echo "Usage: tdlm []"; return 1; } + [[ -z $TMUX ]] && { echo "You must start tmux to use tdlm."; return 1; } + + local ai="$1" + local ai2="$2" + local base_dir="$PWD" + local first=true + + # Rename the session to the current directory name (replace dots/colons which tmux disallows) + tmux rename-session "$(basename "$base_dir" | tr '.:' '--')" + + for dir in "$base_dir"/*/; do + [[ -d $dir ]] || continue + local dirpath="${dir%/}" + + if $first; then + # Reuse the current window for the first project + tmux send-keys -t "$TMUX_PANE" "cd '$dirpath' && tdl $ai $ai2" C-m + first=false + else + local pane_id=$(tmux new-window -c "$dirpath" -P -F '#{pane_id}') + tmux send-keys -t "$pane_id" "tdl $ai $ai2" C-m + fi + done + } + + # Create a multi-pane swarm layout with the same command started in each pane (great for AI) + # Usage: tsl + tsl() { + [[ -z $1 || -z $2 ]] && { echo "Usage: tsl "; return 1; } + [[ -z $TMUX ]] && { echo "You must start tmux to use tsl."; return 1; } + + local count="$1" + local cmd="$2" + local current_dir="${PWD}" + local -a panes + + tmux rename-window -t "$TMUX_PANE" "$(basename "$current_dir")" + + panes+=("$TMUX_PANE") + + while (( ${#panes[@]} < count )); do + local new_pane + local split_target="${panes[-1]}" + new_pane=$(tmux split-window -h -t "$split_target" -c "$current_dir" -P -F '#{pane_id}') + panes+=("$new_pane") + tmux select-layout -t "${panes[0]}" tiled + done + + for pane in "${panes[@]}"; do + tmux send-keys -t "$pane" "$cmd" C-m + done + + tmux select-pane -t "${panes[0]}" + } +fi diff --git a/default/bash/fns/transcoding b/default/bash/fns/transcoding index c4692f1..ca2a88d 100644 --- a/default/bash/fns/transcoding +++ b/default/bash/fns/transcoding @@ -20,23 +20,31 @@ img2jpg() { img="$1" shift - convert "$img" "$@" -quality 95 -strip "${img%.*}-converted.jpg" + convert "$img" "$@" -quality 85 -strip "${img%.*}-converted.jpg" } -# Transcode any image to a small JPG (max 1080px wide) that's great for sharing online +# Transcode any image to a small JPG (max 1080px wide) img2jpg-small() { img="$1" shift - convert "$img" "$@" -resize 1080x\> -quality 95 -strip "${img%.*}-small.jpg" + convert "$img" "$@" -resize 1080x\> -quality 85 -strip "${img%.*}-small.jpg" } -# Transcode any image to a medium JPG (max 1800px wide) that's great for sharing online +# Transcode any image to a 4K JPG (max 2160px wide) img2jpg-medium() { img="$1" shift - convert "$img" "$@" -resize 1800x\> -quality 95 -strip "${img%.*}-medium.jpg" + convert "$img" "$@" -resize 2160x\> -quality 85 -strip "${img%.*}-medium.jpg" +} + +# Transcode any image to a 6K JPG (max 3160px wide) +img2jpg-large() { + img="$1" + shift + + convert "$img" "$@" -resize 3160x\> -quality 85 -strip "${img%.*}-large.jpg" } # Transcode any image to compressed-but-lossless PNG diff --git a/default/bash/fns/worktrees b/default/bash/fns/worktrees index 112005f..19267e0 100644 --- a/default/bash/fns/worktrees +++ b/default/bash/fns/worktrees @@ -7,11 +7,11 @@ ga() { local branch="$1" local base="$(basename "$PWD")" - local path="../${base}--${branch}" + local wt_path="../${base}--${branch}" - git worktree add -b "$branch" "$path" - mise trust "$path" - cd "$path" + git worktree add -b "$branch" "$wt_path" + mise trust "$wt_path" + cd "$wt_path" } # Remove worktree and branch from within active worktree directory. diff --git a/default/elephant/omadeb_background_selector.lua b/default/elephant/omadeb_background_selector.lua new file mode 100644 index 0000000..7ab779a --- /dev/null +++ b/default/elephant/omadeb_background_selector.lua @@ -0,0 +1,73 @@ +Name = "omadebBackgroundSelector" +NamePretty = "Omadeb Background Selector" +Cache = false +HideFromProviderlist = true +SearchName = true + +local function ShellEscape(s) + return "'" .. s:gsub("'", "'\\''") .. "'" +end + +function FormatName(filename) + -- Remove leading number and dash + local name = filename:gsub("^%d+", ""):gsub("^%-", "") + -- Remove extension + name = name:gsub("%.[^%.]+$", "") + -- Replace dashes with spaces + name = name:gsub("-", " ") + -- Capitalize each word + name = name:gsub("%S+", function(word) + return word:sub(1, 1):upper() .. word:sub(2):lower() + end) + return name +end + +function GetEntries() + local entries = {} + local home = os.getenv("HOME") + + -- Read current theme name + local theme_name_file = io.open(home .. "/.config/omadeb/current/theme.name", "r") + local theme_name = theme_name_file and theme_name_file:read("*l") or nil + if theme_name_file then + theme_name_file:close() + end + + -- Directories to search + local dirs = { + home .. "/.config/omadeb/current/theme/backgrounds", + } + if theme_name then + table.insert(dirs, home .. "/.config/omadeb/backgrounds/" .. theme_name) + end + + -- Track added files to avoid duplicates + local seen = {} + + for _, wallpaper_dir in ipairs(dirs) do + local handle = io.popen( + "find " .. ShellEscape(wallpaper_dir) + .. " -maxdepth 1 -type f \\( -name '*.jpg' -o -name '*.jpeg' -o -name '*.png' -o -name '*.gif' -o -name '*.bmp' -o -name '*.webp' \\) 2>/dev/null | sort" + ) + if handle then + for background in handle:lines() do + local filename = background:match("([^/]+)$") + if filename and not seen[filename] then + seen[filename] = true + table.insert(entries, { + Text = FormatName(filename), + Value = background, + Actions = { + activate = "omadeb-theme-bg-set " .. ShellEscape(background), + }, + Preview = background, + PreviewType = "file", + }) + end + end + handle:close() + end + end + + return entries +end diff --git a/default/elephant/omadeb_themes.lua b/default/elephant/omadeb_themes.lua new file mode 100644 index 0000000..5058955 --- /dev/null +++ b/default/elephant/omadeb_themes.lua @@ -0,0 +1,96 @@ +-- +-- Dynamic Omadeb Theme Menu for Elephant/Walker +-- +Name = "omadebthemes" +NamePretty = "Omadeb Themes" +HideFromProviderlist = true + +-- Check if file exists using Lua (no subprocess) +local function file_exists(path) + local f = io.open(path, "r") + if f then + f:close() + return true + end + return false +end + +-- Get first matching file from directory using ls (single call for fallback) +local function first_image_in_dir(dir) + local handle = io.popen("ls -1 '" .. dir .. "' 2>/dev/null | head -n 1") + if handle then + local file = handle:read("*l") + handle:close() + if file and file ~= "" then + return dir .. "/" .. file + end + end + return nil +end + +-- The main function elephant will call +function GetEntries() + local entries = {} + local user_theme_dir = os.getenv("HOME") .. "/.config/omadeb/themes" + local omadeb_path = os.getenv("OMADEB_PATH") or "" + local default_theme_dir = omadeb_path .. "/themes" + + local seen_themes = {} + + -- Helper function to process themes from a directory + local function process_themes_from_dir(theme_dir) + -- Single find call to get all theme directories + local handle = io.popen("find -L '" .. theme_dir .. "' -mindepth 1 -maxdepth 1 -type d 2>/dev/null") + if not handle then + return + end + + for theme_path in handle:lines() do + local theme_name = theme_path:match(".*/(.+)$") + + if theme_name and not seen_themes[theme_name] then + seen_themes[theme_name] = true + + -- Check for preview images directly (no subprocess) + local preview_path = nil + local preview_png = theme_path .. "/preview.png" + local preview_jpg = theme_path .. "/preview.jpg" + + if file_exists(preview_png) then + preview_path = preview_png + elseif file_exists(preview_jpg) then + preview_path = preview_jpg + else + -- Fallback: get first image from backgrounds (one ls call) + preview_path = first_image_in_dir(theme_path .. "/backgrounds") + end + + if preview_path and preview_path ~= "" then + local display_name = theme_name:gsub("_", " "):gsub("%-", " ") + display_name = display_name:gsub("(%a)([%w_']*)", function(first, rest) + return first:upper() .. rest:lower() + end) + display_name = display_name .. " " + + table.insert(entries, { + Text = display_name, + Preview = preview_path, + PreviewType = "file", + Actions = { + activate = "omadeb-theme-set " .. theme_name, + }, + }) + end + end + end + + handle:close() + end + + -- Process user themes first (they take precedence) + process_themes_from_dir(user_theme_dir) + -- Then process default themes (only if not already seen) + process_themes_from_dir(default_theme_dir) + + return entries +end diff --git a/default/omadeb-skill/SKILL.md b/default/omadeb-skill/SKILL.md index 5998097..b670263 100644 --- a/default/omadeb-skill/SKILL.md +++ b/default/omadeb-skill/SKILL.md @@ -2,7 +2,7 @@ name: omadeb description: > REQUIRED for end-user customization of Linux desktop, window manager, or system config. - Use when editing ~/.config/alacritty/, ~/.config/kitty/, ~/.config/wofi/, + Use when editing ~/.config/alacritty/, ~/.config/kitty/, , ~/.config/ghostty/, ~/.config/walker/, ~/.config/omadeb/, or working with GNOME settings. Triggers: GNOME extensions, keybindings, themes, wallpaper, terminal config, night light, dock settings, settings, display config, and user-facing omadeb commands. Excludes Omadeb @@ -21,7 +21,7 @@ It is not for contributing to Omadeb source code. **ALWAYS invoke this skill for end-user requests involving ANY of these:** - Editing ANY file in `~/.config/omadeb/` -- Editing terminal configs (alacritty, kitty) +- Editing terminal configs (alacritty, kitty, ghostty) - Working with GNOME settings (gsettings) - GNOME extensions, dock, keybindings, appearance - Themes, wallpapers, fonts, appearance changes @@ -73,15 +73,15 @@ If the request is to develop Omadeb itself, this skill is out of scope. Follow r Omadeb is built on: -| Component | Purpose | Config Location | -| ------------------- | -------------------- | -------------------------- | -| **Debian 13+** | Base OS | `/etc/`, `~/.config/` | -| **GNOME** | Desktop environment | GNOME settings (gsettings) | -| **Alacritty/Kitty** | Terminals | `~/.config//` | -| **Wofi** | Application launcher | `~/.config/wofi/` | -| **Neovim/LazyVim** | Text editor | `~/.config/nvim/` | -| **Zellij** | Terminal multiplexer | `~/.config/zellij/` | -| **Starship** | Shell prompt | `~/.config/starship.toml` | +| Component | Purpose | Config Location | +| --------------------------- | -------------------- | -------------------------- | +| **Debian 13+** | Base OS | `/etc/`, `~/.config/` | +| **GNOME** | Desktop environment | GNOME settings (gsettings) | +| **Alacritty/Kitty/Ghostty** | Terminals | `~/.config//` | +| **Walker** | Application launcher | `~/.config/walker/` | +| **Neovim/LazyVim** | Text editor | `~/.config/nvim/` | +| **Zellij** | Terminal multiplexer | `~/.config/zellij/` | +| **Starship** | Shell prompt | `~/.config/starship.toml` | ## Command Discovery @@ -151,6 +151,7 @@ gsettings set org.gnome.desktop.wm.keybindings close "['w']" ``` ~/.config/alacritty/alacritty.toml ~/.config/kitty/kitty.conf +~/.config/ghostty/config ``` **Commands:** `omadeb-restart-terminal`, `omadeb-install-terminal alacritty|kitty` @@ -158,13 +159,11 @@ gsettings set org.gnome.desktop.wm.keybindings close "['w']" ### Wofi (Application Launcher) ``` -~/.config/wofi/ -├── config # Main configuration -├── style.css # Styling -└── search.css # Search-specific styles +~/.config/walker/ +├── config.toml # Main configuration ``` -**Commands:** `omadeb-apps` (launches wofi), `omadeb-refresh-wofi` +**Commands:** `omadeb-apps` (launches walker), `omadeb-refresh-walker` ### Other Configs @@ -240,7 +239,7 @@ When customizations go wrong: # Reset specific config (creates backup automatically) omadeb-refresh-gnome omadeb-refresh-alacritty -omadeb-refresh-wofi +omadeb-refresh-walker # The refresh command: # 1. Backs up current config with timestamp diff --git a/default/themed/ghostty.conf.tpl b/default/themed/ghostty.conf.tpl new file mode 100644 index 0000000..bafc649 --- /dev/null +++ b/default/themed/ghostty.conf.tpl @@ -0,0 +1,22 @@ +background = {{ background }} +foreground = {{ foreground }} +cursor-color = {{ cursor }} +selection-background = {{ selection_background }} +selection-foreground = {{ selection_foreground }} + +palette = 0={{ color0 }} +palette = 1={{ color1 }} +palette = 2={{ color2 }} +palette = 3={{ color3 }} +palette = 4={{ color4 }} +palette = 5={{ color5 }} +palette = 6={{ color6 }} +palette = 7={{ color7 }} +palette = 8={{ color8 }} +palette = 9={{ color9 }} +palette = 10={{ color10 }} +palette = 11={{ color11 }} +palette = 12={{ color12 }} +palette = 13={{ color13 }} +palette = 14={{ color14 }} +palette = 15={{ color15 }} diff --git a/default/themed/walker.css.tpl b/default/themed/walker.css.tpl new file mode 100644 index 0000000..123ca92 --- /dev/null +++ b/default/themed/walker.css.tpl @@ -0,0 +1,6 @@ +@define-color selected-text {{ accent }}; +@define-color text {{ foreground }}; +@define-color base {{ background }}; +@define-color border {{ foreground }}; +@define-color foreground {{ foreground }}; +@define-color background {{ background }}; diff --git a/default/themed/wofi.css.tpl b/default/themed/wofi.css.tpl deleted file mode 100644 index 09a7c6f..0000000 --- a/default/themed/wofi.css.tpl +++ /dev/null @@ -1,5 +0,0 @@ -@define-color selected-text {{ accent }}; -@define-color text {{ foreground }}; -@define-color base {{ background }}; -@define-color base-rgba rgba({{ background_rgb }}, 0.95); -@define-color border {{ foreground }}; diff --git a/default/walker/restart.conf b/default/walker/restart.conf new file mode 100644 index 0000000..5794031 --- /dev/null +++ b/default/walker/restart.conf @@ -0,0 +1,3 @@ +[Service] +Restart=always +RestartSec=2 diff --git a/default/walker/themes/omadeb-default/layout.xml b/default/walker/themes/omadeb-default/layout.xml new file mode 100644 index 0000000..3b7bda7 --- /dev/null +++ b/default/walker/themes/omadeb-default/layout.xml @@ -0,0 +1,156 @@ + + + + + + true + Walker + + + + 644 + hidden + horizontal + center + center + + + + vertical + true + true + 10 + + + + hidden + horizontal + fill + true + true + + + + fill + true + true + + + + + + + + horizontal + 10 + true + true + + + + true + 100 + Waiting for elephant... + + + + + + No Results + 0.0 + true + + + + + + true + false + true + 600 + 300 + 0 + true + true + automatic + automatic + + + + 1 + false + + + + + + + + + + + + + + true + 10 + + + + 10 + + + + + + true + end + 10 + + + + + + + + + 0 + false + + + + + + + + diff --git a/default/walker/themes/omadeb-default/style.css b/default/walker/themes/omadeb-default/style.css new file mode 100644 index 0000000..818c75a --- /dev/null +++ b/default/walker/themes/omadeb-default/style.css @@ -0,0 +1,116 @@ +@import "../../../../../../../.config/omadeb/current/theme/walker.css"; + +* { + all: unset; +} + +* { + font-family: monospace; + font-size: 18px; + color: @text; +} + +scrollbar { + opacity: 0; +} + +.normal-icons { + -gtk-icon-size: 16px; +} + +.large-icons { + -gtk-icon-size: 32px; +} + +.box-wrapper { + background: alpha(@base, 0.95); + padding: 20px; + border: 2px solid @border; +} + +.preview-box { +} + +.box { +} + +.search-container { + background: @base; + padding: 10px; +} + +.input placeholder { + opacity: 0.5; +} + +.input { +} + +.input:focus, +.input:active { + box-shadow: none; + outline: none; +} + +.content-container { +} + +.placeholder { +} + +.scroll { +} + +.list { +} + +child, +child > * { +} + +child:hover .item-box { +} + +child:selected .item-box { +} + +child:selected .item-box * { + color: @selected-text; +} + +.item-box { + padding-left: 14px; +} + +.item-text-box { + all: unset; + padding: 14px 0; +} + +.item-text { +} + +.item-subtext { + font-size: 0px; + min-height: 0px; + margin: 0px; + padding: 0px; +} + +.item-image { + margin-right: 14px; + -gtk-icon-transform: scale(0.9); +} + +.current { + font-style: italic; +} + +.keybind-hints { + background: @background; + padding: 10px; + margin-top: 10px; +} + +.preview { +} diff --git a/default/walker/walker.desktop b/default/walker/walker.desktop new file mode 100644 index 0000000..fa7bdfe --- /dev/null +++ b/default/walker/walker.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Name=Walker +Comment=Walker Service +Exec=walker --gapplication-service +StartupNotify=false +Terminal=false +Type=Application diff --git a/install/config/all.sh b/install/config/all.sh index 99c450e..fdf83c5 100644 --- a/install/config/all.sh +++ b/install/config/all.sh @@ -11,6 +11,7 @@ run_logged $OMADEB_INSTALL/config/mimetypes.sh run_logged $OMADEB_INSTALL/config/docker.sh run_logged $OMADEB_INSTALL/config/terminal.sh run_logged $OMADEB_INSTALL/config/localdb.sh +run_logged $OMADEB_INSTALL/config/walker-elephant.sh run_logged $OMADEB_INSTALL/config/fast-shutdown.sh run_logged $OMADEB_INSTALL/config/omadeb-ai-skill.sh run_logged $OMADEB_INSTALL/config/hardware/fix-fkeys.sh @@ -21,4 +22,5 @@ source $OMADEB_INSTALL/config/gnome/request-confirm.sh run_logged $OMADEB_INSTALL/config/gnome/extensions.sh run_logged $OMADEB_INSTALL/config/gnome/hotkeys.sh run_logged $OMADEB_INSTALL/config/gnome/settings.sh -run_logged $OMADEB_INSTALL/config/theme.sh \ No newline at end of file +run_logged $OMADEB_INSTALL/config/theme.sh +run_logged $OMADEB_INSTALL/config/zellij.sh \ No newline at end of file diff --git a/install/config/gnome/hotkeys.sh b/install/config/gnome/hotkeys.sh index ac6c0e3..8752287 100644 --- a/install/config/gnome/hotkeys.sh +++ b/install/config/gnome/hotkeys.sh @@ -46,7 +46,11 @@ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-5 "['5 gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-6 "['6']" # Reserve slots for input source switching -gsettings set org.gnome.desktop.wm.keybindings switch-input-source "@as []" +gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['space']" +gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward "['space']" + +# Set some utility hotkeys +gsettings set org.gnome.mutter.wayland.keybindings restore-shortcuts "['Escape']" # Empty the custom keybindings to start fresh gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "[]" @@ -60,8 +64,8 @@ omadeb-keybinding-add 'Omadeb Menu' 'omadeb-menu' 'space' # Set omadeb theme switcher to Super+Shift+Control+Space omadeb-keybinding-add 'Omadeb Themes' 'omadeb-menu theme' 'space' -# Set omadeb next background to Super+Shift+Control -omadeb-keybinding-add 'Omadeb Background Next' 'omadeb-theme-bg-next' 'space' +# Set omadeb next background to Super+Control+Space +omadeb-keybinding-add 'Omadeb Background Next' 'omadeb-menu background' 'space' # Set flameshot (with the sh fix for starting under Wayland) on alternate print screen key omadeb-keybinding-add 'Flameshot' 'sh -c -- "flameshot gui"' 'Print' @@ -84,6 +88,7 @@ omadeb-keybinding-add 'Omadeb System' 'omadeb-menu system' 'Escape' # Set applications hotkeys omadeb-keybinding-add 'Terminal' 'xdg-terminal-exec' 'Return' omadeb-keybinding-add 'Default Terminal' 'xdg-terminal-exec' 't' +omadeb-keybinding-add 'Terminal (Tmux)' 'xdg-terminal-exec bash -c "tmux attach || tmux new -s Work"' 'Return' omadeb-keybinding-add 'Browser' 'omadeb-launch-browser --new-window' 'b' omadeb-keybinding-add 'Browser (Alt)' 'omadeb-launch-browser --new-window' 'Return' omadeb-keybinding-add 'Incognito Browser' 'omadeb-launch-browser --private' 'b' diff --git a/install/config/terminal.sh b/install/config/terminal.sh index ef117ef..3206ce3 100644 --- a/install/config/terminal.sh +++ b/install/config/terminal.sh @@ -1,7 +1,4 @@ #!/bin/bash -# Force migrate alacritty config format in first run -alacritty migrate 2>/dev/null || true - # Remove existing xdg-terminals config files to avoid conflicts with new format rm -f ~/.config/gnome-xdg-terminals.list \ No newline at end of file diff --git a/install/config/theme.sh b/install/config/theme.sh index 391beb7..4d4b064 100644 --- a/install/config/theme.sh +++ b/install/config/theme.sh @@ -10,10 +10,5 @@ mkdir -p ~/.config/omadeb/themes omadeb-theme-set "Tokyo Night" # Set specific app links for current theme -ln -snf ~/.config/omadeb/current/theme/neovim.lua ~/.config/nvim/lua/plugins/theme.lua - mkdir -p ~/.config/btop/themes -ln -snf ~/.config/omadeb/current/theme/btop.theme ~/.config/btop/themes/current.theme - -mkdir -p ~/.config/zellij/themes -ln -snf ~/.config/omadeb/current/theme/zellij.kdl ~/.config/zellij/themes/current.kdl \ No newline at end of file +ln -snf ~/.config/omadeb/current/theme/btop.theme ~/.config/btop/themes/current.theme \ No newline at end of file diff --git a/install/config/walker-elephant.sh b/install/config/walker-elephant.sh new file mode 100644 index 0000000..867e7de --- /dev/null +++ b/install/config/walker-elephant.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +# Ensure Walker service is started automatically on boot +mkdir -p ~/.config/autostart/ +cp $OMADEB_PATH/default/walker/walker.desktop ~/.config/autostart/ + +# And is restarted if it crashes or is killed +mkdir -p ~/.config/systemd/user/app-walker@autostart.service.d/ +cp $OMADEB_PATH/default/walker/restart.conf ~/.config/systemd/user/app-walker@autostart.service.d/restart.conf + +# Create apt hook to restart walker after updates +sudo mkdir -p /etc/apt/apt.conf.d +sudo tee /etc/apt/apt.conf.d/99restart-walker << EOF +DPkg::Post-Invoke { + "if dpkg -l walker 2>/dev/null | grep -q '^ii'; then $OMADEB_PATH/bin/omadeb-restart-walker; fi"; +}; +EOF + +# Link the visual theme menu config +mkdir -p ~/.config/elephant/menus +ln -snf $OMADEB_PATH/default/elephant/omadeb_themes.lua ~/.config/elephant/menus/omadeb_themes.lua +ln -snf $OMADEB_PATH/default/elephant/omadeb_background_selector.lua ~/.config/elephant/menus/omadeb_background_selector.lua diff --git a/install/config/zellij.sh b/install/config/zellij.sh new file mode 100644 index 0000000..571ea00 --- /dev/null +++ b/install/config/zellij.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +# Setup Zellij config file +omadeb-setup-zellij \ No newline at end of file diff --git a/install/first-run/elephant.sh b/install/first-run/elephant.sh new file mode 100644 index 0000000..9517f6b --- /dev/null +++ b/install/first-run/elephant.sh @@ -0,0 +1,2 @@ +elephant service enable +systemctl --user start elephant.service diff --git a/install/first-run/welcome.sh b/install/first-run/welcome.sh index 7e72199..d8bfd36 100644 --- a/install/first-run/welcome.sh +++ b/install/first-run/welcome.sh @@ -1 +1 @@ -omadeb-notify " Learn Keybindings" "Super + Space for application launcher.\nSuper + Alt + Space for Omadeb Menu." -u critical +notify-send -i ~/.config/omadeb/branding/notify.png -a "Omadeb" " Learn Keybindings" "Super + Space for application launcher.\nSuper + Alt + Space for Omadeb Menu." -u critical diff --git a/install/helpers/mirror.sh b/install/helpers/mirror.sh index c2e458e..6e8b540 100644 --- a/install/helpers/mirror.sh +++ b/install/helpers/mirror.sh @@ -46,8 +46,16 @@ curl -fsSL https://keyrings.omakasui.org/omakasui-packages.gpg.key \ | gpg --dearmor \ | sudo tee /usr/share/keyrings/omakasui-packages.gpg > /dev/null +codename=$(. /etc/os-release && echo $VERSION_CODENAME) + +if [[ ${OMADEB_CHANNEL:-stable} == "dev" ]]; then + suite="${codename}-dev" +else + suite="$codename" +fi + echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/omakasui-packages.gpg] \ - https://packages.omakasui.org $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") main" \ + https://packages.omakasui.org $suite main" \ | sudo tee /etc/apt/sources.list.d/omakasui.list # Refresh the APT cache diff --git a/install/omadeb-base.packages b/install/omadeb-base.packages index d37e5cb..efe04ac 100644 --- a/install/omadeb-base.packages +++ b/install/omadeb-base.packages @@ -1,5 +1,6 @@ # Omadeb core package list installed via install/packaging/base.sh +alacritty apache2-utils autoconf bat @@ -50,12 +51,11 @@ libyaml-dev mpv mupdf mupdf-tools +nautilus-open-any-terminal obs-studio omadeb-nvim -omakasui-yaru-theme-gtk -omakasui-yaru-theme-icon -omakasui-yaru-theme-sound -omakasui-yaru-theme-gnome-shell +omadeb-walker +omadeb-zellij pipx pkg-config plocate @@ -68,15 +68,20 @@ redis-tools ripgrep rustc sqlite3 +starship systemd-container +tmux ufw ufw-docker unzip -xdg-terminal-exec -xournalpp wget wl-clipboard -wofi +xdg-terminal-exec +xournalpp +yaru-theme-gtk +yaru-theme-icon +yaru-theme-sound +yaru-theme-gnome-shell zellij zlib1g-dev zoxide diff --git a/install/packaging/all.sh b/install/packaging/all.sh index ff9ae5a..2eaf761 100644 --- a/install/packaging/all.sh +++ b/install/packaging/all.sh @@ -9,4 +9,5 @@ run_logged $OMADEB_INSTALL/packaging/icons.sh run_logged $OMADEB_INSTALL/packaging/apps.sh run_logged $OMADEB_INSTALL/packaging/webapps.sh run_logged $OMADEB_INSTALL/packaging/tuis.sh +run_logged $OMADEB_INSTALL/packaging/npx.sh diff --git a/install/packaging/npx.sh b/install/packaging/npx.sh new file mode 100755 index 0000000..e0530e3 --- /dev/null +++ b/install/packaging/npx.sh @@ -0,0 +1,7 @@ +omadeb-npx-install @anthropic-ai/claude-code claude +omadeb-npx-install @openai/codex codex +omadeb-npx-install @google/gemini-cli gemini +omadeb-npx-install @github/copilot copilot +omadeb-npx-install opencode-ai opencode +omadeb-npx-install playwright playwright-cli +omadeb-npx-install @mariozechner/pi-coding-agent pi diff --git a/install/packaging/nvim.sh b/install/packaging/nvim.sh index f6aa5f2..5f7ef87 100644 --- a/install/packaging/nvim.sh +++ b/install/packaging/nvim.sh @@ -1,4 +1,4 @@ #!/bin/bash # Setup all the configs and plugins -omadeb-nvim-setup \ No newline at end of file +omadeb-setup-nvim \ No newline at end of file diff --git a/install/packaging/tools.sh b/install/packaging/tools.sh index 39f2776..8ab1292 100644 --- a/install/packaging/tools.sh +++ b/install/packaging/tools.sh @@ -1,8 +1,5 @@ #!/bin/bash -# Install Alacritty -source ~/.local/share/omadeb/applications/install/alacritty.sh - # Install mise source ~/.local/share/omadeb/applications/install/mise.sh @@ -10,7 +7,4 @@ source ~/.local/share/omadeb/applications/install/mise.sh source ~/.local/share/omadeb/applications/install/docker.sh # Install GitHub CLI -source ~/.local/share/omadeb/applications/install/github-cli.sh - -# Install Starship -source ~/.local/share/omadeb/applications/install/starship.sh \ No newline at end of file +source ~/.local/share/omadeb/applications/install/github-cli.sh \ No newline at end of file diff --git a/migrations/.gitkeep b/migrations/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/migrations/1773228002.sh b/migrations/1773228002.sh index f803ef5..a437e1e 100644 --- a/migrations/1773228002.sh +++ b/migrations/1773228002.sh @@ -13,7 +13,7 @@ curl -fsSL https://keyrings.omakasui.org/omakasui-packages.gpg.key \ | sudo tee /usr/share/keyrings/omakasui-packages.gpg > /dev/null echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/omakasui-packages.gpg] \ - https://packages.omakasui.org $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") main" \ + https://packages.omakasui.org $(. /etc/os-release && echo $VERSION_CODENAME) main" \ | sudo tee /etc/apt/sources.list.d/omakasui.list > /dev/null sudo apt update @@ -26,7 +26,7 @@ echo -e "\e[32m\nRefresh Omakasui packages\e[0m" # Gum omadeb-pkg-add gum -# Lazygit, Lazydocker, Zellij, Fastfetch +# Lazygit, Lazydocker, Fastfetch if omadeb-pkg-present omakasui-lazygit; then omadeb-pkg-drop omakasui-lazygit fi @@ -37,11 +37,6 @@ if omadeb-pkg-present omakasui-lazydocker; then fi omadeb-pkg-add lazydocker -if omadeb-pkg-present omakasui-zellij; then - omadeb-pkg-drop omakasui-zellij -fi -omadeb-pkg-add zellij - sudo add-apt-repository --remove -y ppa:zhangsongcui3371/fastfetch if omadeb-pkg-present omakasui-fastfetch; then omadeb-pkg-drop omakasui-fastfetch @@ -71,7 +66,7 @@ if omadeb-pkg-present omadeb-nvim; then else omadeb-pkg-add omadeb-nvim # Will trigger to overwrite configs or not to pickup new hot-reload themes - omadeb-nvim-setup + omadeb-setup-nvim fi # Nautilus diff --git a/migrations/1773385186.sh b/migrations/1773385186.sh new file mode 100644 index 0000000..2fde41c --- /dev/null +++ b/migrations/1773385186.sh @@ -0,0 +1,5 @@ +# Check if we're on the dev branch and refresh APT references if so +if [[ "$(omadeb-version-branch)" == "dev" ]]; then + echo "Updating APT repository references for dev branch..." + omadeb-refresh-apt "dev" +fi \ No newline at end of file diff --git a/migrations/1773662751.sh b/migrations/1773662751.sh deleted file mode 100644 index 00b69a3..0000000 --- a/migrations/1773662751.sh +++ /dev/null @@ -1,5 +0,0 @@ -echo "Migrate from omakasui-nvim to omadeb-nvim" -if omadeb-pkg-present omakasui-nvim; then - omadeb-pkg-drop omakasui-nvim -fi -omadeb-pkg-add omadeb-nvim \ No newline at end of file diff --git a/migrations/1773662752.sh b/migrations/1773662752.sh new file mode 100644 index 0000000..84b0d5e --- /dev/null +++ b/migrations/1773662752.sh @@ -0,0 +1,23 @@ +echo "Migrate to Walker from Wofi" +omadeb-pkg-add omadeb-walker +omadeb-pkg-drop wofi + +# Apply Walker and Elephant changes immediately +mkdir -p ~/.config/walker/ +cp -f $OMADEB_PATH/config/walker/config.toml ~/.config/walker/config.toml + +mkdir -p ~/.config/elephant/ +cp -f $OMADEB_PATH/config/elephant/calc.toml ~/.config/elephant/calc.toml +cp -f $OMADEB_PATH/config/elephant/desktopapplications.toml ~/.config/elephant/desktopapplications.toml +cp -f $OMADEB_PATH/config/elephant/symbols.toml ~/.config/elephant/symbols.toml + +bash $OMADEB_PATH/install/config/walker-elephant.sh + +# Set omadeb next background to Super+Shift+Control +omadeb-keybinding-remove 'Omadeb Background Next' +omadeb-keybinding-add 'Omadeb Background Next' 'omadeb-menu background' 'space' + +bash $OMADEB_PATH/install/first-run/elephant.sh + +# Require a logout to apply the new keybinding and menu changes +omadeb-state set logout-required diff --git a/migrations/1773740225.sh b/migrations/1773740225.sh new file mode 100644 index 0000000..85db80c --- /dev/null +++ b/migrations/1773740225.sh @@ -0,0 +1,3 @@ +echo "Install npx wrappers for AI CLI tools and playwright" + +source "$OMADEB_PATH/install/packaging/npx.sh" diff --git a/migrations/1773748584.sh b/migrations/1773748584.sh new file mode 100644 index 0000000..663610d --- /dev/null +++ b/migrations/1773748584.sh @@ -0,0 +1,2 @@ +echo "Updating Fastfetch configuration..." +omadeb-refresh-fastfetch \ No newline at end of file diff --git a/migrations/1774282954.sh b/migrations/1774282954.sh new file mode 100644 index 0000000..81f4548 --- /dev/null +++ b/migrations/1774282954.sh @@ -0,0 +1,12 @@ +echo "Update alacritty configs" +omadeb-refresh-config alacritty/alacritty.toml + +if omadeb-cmd-present zellij; then + echo "Setting up omadeb-zellij configuration" + if omadeb-pkg-present omakasui-zellij; then + omadeb-pkg-drop omakasui-zellij + fi + omadeb-pkg-add zellij omadeb-zellij + # Set up the configuration for zellij + omadeb-setup-zellij +fi \ No newline at end of file diff --git a/migrations/1774306815.sh b/migrations/1774306815.sh new file mode 100644 index 0000000..81bdfe9 --- /dev/null +++ b/migrations/1774306815.sh @@ -0,0 +1,12 @@ +echo "Add Tmux as an option with themed styling" + +omadeb-pkg-add tmux + +if [[ ! -f ~/.config/tmux/tmux.conf ]]; then + mkdir -p ~/.config/tmux + cp $OMADEB_PATH/config/tmux/tmux.conf ~/.config/tmux/tmux.conf + omadeb-restart-tmux +fi + +echo "Add Tmux binding (Super+Alt+Return)" +omadeb-keybinding-add 'Terminal (Tmux)' 'xdg-terminal-exec bash -c "tmux attach || tmux new -s Work"' 'Return' \ No newline at end of file diff --git a/migrations/1774362298.sh b/migrations/1774362298.sh new file mode 100644 index 0000000..22a37c7 --- /dev/null +++ b/migrations/1774362298.sh @@ -0,0 +1,3 @@ +echo "Add hotkeys for input source switching" +gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['space']" +gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward "['space']" \ No newline at end of file diff --git a/migrations/1775170358.sh b/migrations/1775170358.sh new file mode 100644 index 0000000..b4b05c6 --- /dev/null +++ b/migrations/1775170358.sh @@ -0,0 +1,2 @@ +echo 'Prevent conflicts with Super+Escape, which we use for the system menu' +gsettings set org.gnome.mutter.wayland.keybindings restore-shortcuts "['Escape']" \ No newline at end of file diff --git a/themes/catppuccin-latte/preview.png b/themes/catppuccin-latte/preview.png new file mode 100644 index 0000000..f1eaf1a Binary files /dev/null and b/themes/catppuccin-latte/preview.png differ diff --git a/themes/catppuccin/preview.png b/themes/catppuccin/preview.png new file mode 100644 index 0000000..b20b30c Binary files /dev/null and b/themes/catppuccin/preview.png differ diff --git a/themes/ethereal/preview.png b/themes/ethereal/preview.png new file mode 100644 index 0000000..028a50f Binary files /dev/null and b/themes/ethereal/preview.png differ diff --git a/themes/everforest/preview.png b/themes/everforest/preview.png new file mode 100644 index 0000000..410be81 Binary files /dev/null and b/themes/everforest/preview.png differ diff --git a/themes/flexoki-light/preview.png b/themes/flexoki-light/preview.png new file mode 100644 index 0000000..3414494 Binary files /dev/null and b/themes/flexoki-light/preview.png differ diff --git a/themes/gruvbox/backgrounds/2-flower-basket.jpg b/themes/gruvbox/backgrounds/2-flower-basket.jpg new file mode 100644 index 0000000..42af8d1 Binary files /dev/null and b/themes/gruvbox/backgrounds/2-flower-basket.jpg differ diff --git a/themes/gruvbox/backgrounds/3-village-square.jpg b/themes/gruvbox/backgrounds/3-village-square.jpg new file mode 100644 index 0000000..0ff0160 Binary files /dev/null and b/themes/gruvbox/backgrounds/3-village-square.jpg differ diff --git a/themes/gruvbox/backgrounds/4-idyllic-procession.jpg b/themes/gruvbox/backgrounds/4-idyllic-procession.jpg new file mode 100644 index 0000000..3742024 Binary files /dev/null and b/themes/gruvbox/backgrounds/4-idyllic-procession.jpg differ diff --git a/themes/gruvbox/backgrounds/2-leaves.jpg b/themes/gruvbox/backgrounds/5-leaves.jpg similarity index 100% rename from themes/gruvbox/backgrounds/2-leaves.jpg rename to themes/gruvbox/backgrounds/5-leaves.jpg diff --git a/themes/gruvbox/preview.png b/themes/gruvbox/preview.png new file mode 100644 index 0000000..4ea4b46 Binary files /dev/null and b/themes/gruvbox/preview.png differ diff --git a/themes/hackerman/preview.png b/themes/hackerman/preview.png new file mode 100644 index 0000000..a7b3423 Binary files /dev/null and b/themes/hackerman/preview.png differ diff --git a/themes/kanagawa/preview.png b/themes/kanagawa/preview.png new file mode 100644 index 0000000..67816c0 Binary files /dev/null and b/themes/kanagawa/preview.png differ diff --git a/themes/lumon/accent.theme b/themes/lumon/accent.theme new file mode 100644 index 0000000..f5ac3db --- /dev/null +++ b/themes/lumon/accent.theme @@ -0,0 +1 @@ +blue \ No newline at end of file diff --git a/themes/lumon/backgrounds/01-united-in-severance.jpg b/themes/lumon/backgrounds/01-united-in-severance.jpg new file mode 100644 index 0000000..d07b636 Binary files /dev/null and b/themes/lumon/backgrounds/01-united-in-severance.jpg differ diff --git a/themes/lumon/btop.theme b/themes/lumon/btop.theme new file mode 100644 index 0000000..d9d0572 --- /dev/null +++ b/themes/lumon/btop.theme @@ -0,0 +1,64 @@ +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="" +theme_background=false + +# Main text color +theme[main_fg]="#c7d2de" + +# Title color for boxes +theme[title]="#9fcfe9" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#b5deef" + +# Background color of selected item in processes box +theme[selected_bg]="#355066" + +# Foreground color of selected item in processes box +theme[selected_fg]="#c7d2de" + +# Color of inactive/disabled text +theme[inactive_fg]="#355066" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#9fcfe9" + +# Box outline and divider line color +theme[cpu_box]="#79abd2" +theme[mem_box]="#79abd2" +theme[net_box]="#79abd2" +theme[proc_box]="#79abd2" +theme[div_line]="#355066" + +# Gradient for all meters and graphs +theme[temp_start]="#b5deef" +theme[temp_mid]="#92c7e7" +theme[temp_end]="#79abd2" + +theme[cpu_start]="#b5deef" +theme[cpu_mid]="#92c7e7" +theme[cpu_end]="#79abd2" + +theme[free_start]="#92c7e7" +theme[free_mid]="#86b6da" +theme[free_end]="#86b6da" + +theme[cached_start]="#86b6da" +theme[cached_mid]="#86b6da" +theme[cached_end]="#86b6da" + +theme[available_start]="#b5deef" +theme[available_mid]="#b5deef" +theme[available_end]="#b5deef" + +theme[used_start]="#79abd2" +theme[used_mid]="#79abd2" +theme[used_end]="#79abd2" + +theme[download_start]="#86b6da" +theme[download_mid]="#b5deef" +theme[download_end]="#92c7e7" + +theme[upload_start]="#86b6da" +theme[upload_mid]="#b5deef" +theme[upload_end]="#92c7e7" diff --git a/themes/lumon/chromium.theme b/themes/lumon/chromium.theme new file mode 100644 index 0000000..fdf694b --- /dev/null +++ b/themes/lumon/chromium.theme @@ -0,0 +1 @@ +14,31,41 diff --git a/themes/lumon/colors.toml b/themes/lumon/colors.toml new file mode 100644 index 0000000..b94e758 --- /dev/null +++ b/themes/lumon/colors.toml @@ -0,0 +1,35 @@ +# Accent and UI colors +accent = "#f2fcff" +active_border_color = "#f2fcff" +active_tab_background = "#6fb8e3" + +# Cursor colors +cursor = "#f2fcff" + +# Primary colors +foreground = "#d6e2ee" +background = "#16242d" + +# Selection colors +selection_foreground = "#1b2d40" +selection_background = "#4d9ed3" + +# Normal colors (ANSI 0-7) +color0 = "#1b2d40" +color1 = "#4d86b0" +color2 = "#5e95bc" +color3 = "#6fa4c9" +color4 = "#6fb8e3" +color5 = "#8bc9eb" +color6 = "#b4e4f6" +color7 = "#d6e2ee" + +# Bright colors (ANSI 8-15) +color8 = "#304860" +color9 = "#73a6cb" +color10 = "#86b7d8" +color11 = "#9dcae5" +color12 = "#f2fcff" +color13 = "#b1d8ee" +color14 = "#d1eef8" +color15 = "#ffffff" diff --git a/themes/lumon/gtk.theme b/themes/lumon/gtk.theme new file mode 100644 index 0000000..66be38a --- /dev/null +++ b/themes/lumon/gtk.theme @@ -0,0 +1 @@ +Yaru-blue \ No newline at end of file diff --git a/themes/lumon/neovim.lua b/themes/lumon/neovim.lua new file mode 100644 index 0000000..b364ffd --- /dev/null +++ b/themes/lumon/neovim.lua @@ -0,0 +1,12 @@ +return { + { + "omacom-io/lumon.nvim", + priority = 1000, + }, + { + "LazyVim/LazyVim", + opts = { + colorscheme = "lumon", + }, + }, +} diff --git a/themes/lumon/preview.png b/themes/lumon/preview.png new file mode 100644 index 0000000..ea2d840 Binary files /dev/null and b/themes/lumon/preview.png differ diff --git a/themes/lumon/vscode.json b/themes/lumon/vscode.json new file mode 100644 index 0000000..c06d86f --- /dev/null +++ b/themes/lumon/vscode.json @@ -0,0 +1,4 @@ +{ + "name": "Lumon Theme", + "extension": "oldjobobo.lumon-theme" +} diff --git a/themes/lumon/zellij.kdl b/themes/lumon/zellij.kdl new file mode 100644 index 0000000..eddec09 --- /dev/null +++ b/themes/lumon/zellij.kdl @@ -0,0 +1,120 @@ +themes { + current { + text_unselected { + base 214 226 238 + background 22 36 45 + emphasis_0 77 134 176 + emphasis_1 214 226 238 + emphasis_2 111 184 227 + emphasis_3 242 252 255 + } + text_selected { + base 214 226 238 + background 48 72 96 + emphasis_0 77 134 176 + emphasis_1 214 226 238 + emphasis_2 111 184 227 + emphasis_3 242 252 255 + } + ribbon_selected { + base 22 36 45 + background 111 184 227 + emphasis_0 242 252 255 + emphasis_1 77 134 176 + emphasis_2 115 166 203 + emphasis_3 214 226 238 + } + ribbon_unselected { + base 214 226 238 + background 48 72 96 + emphasis_0 242 252 255 + emphasis_1 77 134 176 + emphasis_2 115 166 203 + emphasis_3 214 226 238 + } + table_title { + base 111 184 227 + background 22 36 45 + emphasis_0 77 134 176 + emphasis_1 214 226 238 + emphasis_2 111 184 227 + emphasis_3 242 252 255 + } + table_cell_selected { + base 214 226 238 + background 48 72 96 + emphasis_0 77 134 176 + emphasis_1 214 226 238 + emphasis_2 111 184 227 + emphasis_3 242 252 255 + } + table_cell_unselected { + base 214 226 238 + background 22 36 45 + emphasis_0 77 134 176 + emphasis_1 214 226 238 + emphasis_2 111 184 227 + emphasis_3 242 252 255 + } + list_selected { + base 214 226 238 + background 48 72 96 + emphasis_0 77 134 176 + emphasis_1 214 226 238 + emphasis_2 111 184 227 + emphasis_3 242 252 255 + } + list_unselected { + base 214 226 238 + background 22 36 45 + emphasis_0 77 134 176 + emphasis_1 214 226 238 + emphasis_2 111 184 227 + emphasis_3 242 252 255 + } + frame_selected { + base 111 184 227 + background 22 36 45 + emphasis_0 77 134 176 + emphasis_1 214 226 238 + emphasis_2 242 252 255 + emphasis_3 115 166 203 + } + frame_highlight { + base 242 252 255 + background 22 36 45 + emphasis_0 242 252 255 + emphasis_1 242 252 255 + emphasis_2 242 252 255 + emphasis_3 242 252 255 + } + exit_code_success { + base 111 184 227 + background 22 36 45 + emphasis_0 214 226 238 + emphasis_1 48 72 96 + emphasis_2 115 166 203 + emphasis_3 242 252 255 + } + exit_code_error { + base 77 134 176 + background 22 36 45 + emphasis_0 27 45 64 + emphasis_1 115 166 203 + emphasis_2 214 226 238 + emphasis_3 48 72 96 + } + multiplayer_user_colors { + player_1 77 134 176 + player_2 111 184 227 + player_3 242 252 255 + player_4 27 45 64 + player_5 115 166 203 + player_6 214 226 238 + player_7 48 72 96 + player_8 77 134 176 + player_9 111 184 227 + player_10 242 252 255 + } + } +} diff --git a/themes/matte-black/preview.png b/themes/matte-black/preview.png new file mode 100644 index 0000000..eb7f63a Binary files /dev/null and b/themes/matte-black/preview.png differ diff --git a/themes/miasma/neovim.lua b/themes/miasma/neovim.lua index f6a3103..a46c690 100644 --- a/themes/miasma/neovim.lua +++ b/themes/miasma/neovim.lua @@ -1,6 +1,6 @@ return { { - "xero/miasma.nvim", + "OldJobobo/miasma.nvim", priority = 1000, }, { diff --git a/themes/miasma/preview.png b/themes/miasma/preview.png new file mode 100644 index 0000000..adae453 Binary files /dev/null and b/themes/miasma/preview.png differ diff --git a/themes/nord/preview.png b/themes/nord/preview.png new file mode 100644 index 0000000..2b81ec8 Binary files /dev/null and b/themes/nord/preview.png differ diff --git a/themes/osaka-jade/preview.png b/themes/osaka-jade/preview.png new file mode 100644 index 0000000..82b86ae Binary files /dev/null and b/themes/osaka-jade/preview.png differ diff --git a/themes/retro-82/accent.theme b/themes/retro-82/accent.theme new file mode 100644 index 0000000..f8c1e5c --- /dev/null +++ b/themes/retro-82/accent.theme @@ -0,0 +1 @@ +orange diff --git a/themes/retro-82/backgrounds/1-in-the-groove.jpg b/themes/retro-82/backgrounds/1-in-the-groove.jpg new file mode 100644 index 0000000..c9537a4 Binary files /dev/null and b/themes/retro-82/backgrounds/1-in-the-groove.jpg differ diff --git a/themes/retro-82/backgrounds/2-dusk-guardian.jpg b/themes/retro-82/backgrounds/2-dusk-guardian.jpg new file mode 100644 index 0000000..4f30b56 Binary files /dev/null and b/themes/retro-82/backgrounds/2-dusk-guardian.jpg differ diff --git a/themes/retro-82/backgrounds/3-glassy-lines.jpg b/themes/retro-82/backgrounds/3-glassy-lines.jpg new file mode 100644 index 0000000..c1106dc Binary files /dev/null and b/themes/retro-82/backgrounds/3-glassy-lines.jpg differ diff --git a/themes/retro-82/backgrounds/4-gateway.jpg b/themes/retro-82/backgrounds/4-gateway.jpg new file mode 100644 index 0000000..067baa4 Binary files /dev/null and b/themes/retro-82/backgrounds/4-gateway.jpg differ diff --git a/themes/retro-82/backgrounds/5-zen-boat.jpg b/themes/retro-82/backgrounds/5-zen-boat.jpg new file mode 100644 index 0000000..4a4821e Binary files /dev/null and b/themes/retro-82/backgrounds/5-zen-boat.jpg differ diff --git a/themes/retro-82/backgrounds/6-abstract-pyramids.jpg b/themes/retro-82/backgrounds/6-abstract-pyramids.jpg new file mode 100644 index 0000000..6dd9d0a Binary files /dev/null and b/themes/retro-82/backgrounds/6-abstract-pyramids.jpg differ diff --git a/themes/retro-82/backgrounds/7-the-journey.jpg b/themes/retro-82/backgrounds/7-the-journey.jpg new file mode 100644 index 0000000..03fc55c Binary files /dev/null and b/themes/retro-82/backgrounds/7-the-journey.jpg differ diff --git a/themes/retro-82/backgrounds/8-glitter-glass.jpg b/themes/retro-82/backgrounds/8-glitter-glass.jpg new file mode 100644 index 0000000..dfa5322 Binary files /dev/null and b/themes/retro-82/backgrounds/8-glitter-glass.jpg differ diff --git a/themes/retro-82/btop.theme b/themes/retro-82/btop.theme new file mode 100644 index 0000000..ded67f1 --- /dev/null +++ b/themes/retro-82/btop.theme @@ -0,0 +1,63 @@ +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="" + +# Main text color +theme[main_fg]="#f6dcac" + +# Title color for boxes +theme[title]="#3f8f8a" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#8cbfb8" + +# Background color of selected item in processes box +theme[selected_bg]="#134e5a" + +# Foreground color of selected item in processes box +theme[selected_fg]="#f6dcac" + +# Color of inactive/disabled text +theme[inactive_fg]="#134e5a" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#3f8f8a" + +# Box outline and divider line color +theme[cpu_box]="#e97b3c" +theme[mem_box]="#e97b3c" +theme[net_box]="#e97b3c" +theme[proc_box]="#e97b3c" +theme[div_line]="#134e5a" + +# Gradient for all meters and graphs +theme[temp_start]="#a7c9c6" +theme[temp_mid]="#8cbfb8" +theme[temp_end]="#028391" + +theme[cpu_start]="#a7c9c6" +theme[cpu_mid]="#e97b3c" +theme[cpu_end]="#f85525" + +theme[free_start]="#faa968" +theme[free_mid]="#e97b3c" +theme[free_end]="#f85525" + +theme[cached_start]="#faa968" +theme[cached_mid]="#e97b3c" +theme[cached_end]="#f85525" + +theme[available_start]="#faa968" +theme[available_mid]="#e97b3c" +theme[available_end]="#f85525" + +theme[used_start]="#faa968" +theme[used_mid]="#e97b3c" +theme[used_end]="#f85525" + +theme[download_start]="#faa968" +theme[download_mid]="#e97b3c" +theme[download_end]="#f85525" + +theme[upload_start]="#faa968" +theme[upload_mid]="#e97b3c" +theme[upload_end]="#f85525" diff --git a/themes/retro-82/chromium.theme b/themes/retro-82/chromium.theme new file mode 100644 index 0000000..efb75ae --- /dev/null +++ b/themes/retro-82/chromium.theme @@ -0,0 +1 @@ +0,23,46 diff --git a/themes/retro-82/colors.toml b/themes/retro-82/colors.toml new file mode 100644 index 0000000..21cf810 --- /dev/null +++ b/themes/retro-82/colors.toml @@ -0,0 +1,35 @@ +# Accent and UI colors +accent = "#faa968" +active_border_color = "#faa968" +active_tab_background = "#faa968" + +# Cursor colors +cursor = "#f6dcac" + +# Primary colors +foreground = "#f6dcac" +background = "#05182e" + +# Selection colors +selection_foreground = "#00172e" +selection_background = "#faa968" + +# Normal colors (ANSI 0-7) +color0 = "#00172e" +color1 = "#f85525" +color2 = "#028391" +color3 = "#e97b3c" +color4 = "#faa968" +color5 = "#3f8f8a" +color6 = "#8cbfb8" +color7 = "#a7c9c6" + +# Bright colors (ANSI 8-15) +color8 = "#134e5a" +color9 = "#f85525" +color10 = "#028391" +color11 = "#e97b3c" +color12 = "#faa968" +color13 = "#3f8f8a" +color14 = "#8cbfb8" +color15 = "#f6dcac" diff --git a/themes/retro-82/gtk.theme b/themes/retro-82/gtk.theme new file mode 100644 index 0000000..6b2981a --- /dev/null +++ b/themes/retro-82/gtk.theme @@ -0,0 +1 @@ +Yaru diff --git a/themes/retro-82/neovim.lua b/themes/retro-82/neovim.lua new file mode 100644 index 0000000..f824c8d --- /dev/null +++ b/themes/retro-82/neovim.lua @@ -0,0 +1,12 @@ +return { + { + "OldJobobo/retro-82.nvim", + priority = 1000, + }, + { + "LazyVim/LazyVim", + opts = { + colorscheme = "retro-82", + }, + }, +} diff --git a/themes/retro-82/preview.png b/themes/retro-82/preview.png new file mode 100644 index 0000000..5ee09b8 Binary files /dev/null and b/themes/retro-82/preview.png differ diff --git a/themes/retro-82/vscode.json b/themes/retro-82/vscode.json new file mode 100644 index 0000000..e2b3bbd --- /dev/null +++ b/themes/retro-82/vscode.json @@ -0,0 +1,4 @@ +{ + "name": "Retro '82", + "extension": "oldjobobo.retro-82-theme" +} diff --git a/themes/retro-82/zellij.kdl b/themes/retro-82/zellij.kdl new file mode 100644 index 0000000..a403d1a --- /dev/null +++ b/themes/retro-82/zellij.kdl @@ -0,0 +1,138 @@ +// 8"""8 eeeee eeee +// 8 8 eeee eeeee eeeee eeeee 8 8 8 +// 82ee8e 8 8 8 8 8 82 82ee8 8 +// 82 8 82ee 82 8eee8e 8 8 82 82 eee8 +// 82 8 82 82 82 8 8 8 82 82 82 +// 82 8 82ee 82 82 8 82ee8 82eee82 82ee +// +// background #00172e → 0 23 46 +// foreground #f6dcac → 246 220 172 +// accent #faa968 → 250 169 104 +// orange #e97b3c → 233 123 60 +// red #f85525 → 248 85 37 +// teal #028391 → 2 131 145 +// teal mid #3f8f8a → 63 143 138 +// cyan #8cbfb8 → 140 191 184 +// white #a7c9c6 → 167 201 198 +// dark teal #134e5a → 19 78 90 + +themes { + current { + text_unselected { + base 246 220 172 + background 0 23 46 + emphasis_0 250 169 104 + emphasis_1 140 191 184 + emphasis_2 63 143 138 + emphasis_3 19 78 90 + } + text_selected { + base 0 23 46 + background 250 169 104 + emphasis_0 246 220 172 + emphasis_1 167 201 198 + emphasis_2 140 191 184 + emphasis_3 63 143 138 + } + ribbon_selected { + base 0 23 46 + background 250 169 104 + emphasis_0 233 123 60 + emphasis_1 246 220 172 + emphasis_2 167 201 198 + emphasis_3 140 191 184 + } + ribbon_unselected { + base 246 220 172 + background 0 23 46 + emphasis_0 250 169 104 + emphasis_1 140 191 184 + emphasis_2 63 143 138 + emphasis_3 19 78 90 + } + table_title { + base 246 220 172 + background 0 23 46 + emphasis_0 250 169 104 + emphasis_1 140 191 184 + emphasis_2 63 143 138 + emphasis_3 19 78 90 + } + table_cell_selected { + base 0 23 46 + background 250 169 104 + emphasis_0 246 220 172 + emphasis_1 167 201 198 + emphasis_2 140 191 184 + emphasis_3 63 143 138 + } + table_cell_unselected { + base 246 220 172 + background 0 23 46 + emphasis_0 250 169 104 + emphasis_1 140 191 184 + emphasis_2 63 143 138 + emphasis_3 19 78 90 + } + list_selected { + base 0 23 46 + background 250 169 104 + emphasis_0 246 220 172 + emphasis_1 167 201 198 + emphasis_2 140 191 184 + emphasis_3 63 143 138 + } + list_unselected { + base 246 220 172 + background 0 23 46 + emphasis_0 250 169 104 + emphasis_1 140 191 184 + emphasis_2 63 143 138 + emphasis_3 19 78 90 + } + frame_selected { + base 250 169 104 + background 0 23 46 + emphasis_0 233 123 60 + emphasis_1 246 220 172 + emphasis_2 167 201 198 + emphasis_3 140 191 184 + } + frame_highlight { + base 246 220 172 + background 0 23 46 + emphasis_0 250 169 104 + emphasis_1 140 191 184 + emphasis_2 63 143 138 + emphasis_3 19 78 90 + } + exit_code_success { + base 2 131 145 + background 0 23 46 + emphasis_0 246 220 172 + emphasis_1 167 201 198 + emphasis_2 140 191 184 + emphasis_3 63 143 138 + } + exit_code_error { + base 248 85 37 + background 0 23 46 + emphasis_0 250 169 104 + emphasis_1 233 123 60 + emphasis_2 246 220 172 + emphasis_3 140 191 184 + } + multiplayer_user_colors { + player_1 248 85 37 + player_2 2 131 145 + player_3 233 123 60 + player_4 250 169 104 + player_5 63 143 138 + player_6 140 191 184 + player_7 167 201 198 + player_8 246 220 172 + player_9 19 78 90 + player_10 248 85 37 + } + } +} \ No newline at end of file diff --git a/themes/ristretto/preview.png b/themes/ristretto/preview.png new file mode 100644 index 0000000..5ea9ede Binary files /dev/null and b/themes/ristretto/preview.png differ diff --git a/themes/rose-pine/preview.png b/themes/rose-pine/preview.png new file mode 100644 index 0000000..20068b3 Binary files /dev/null and b/themes/rose-pine/preview.png differ diff --git a/themes/tokyo-night/preview.png b/themes/tokyo-night/preview.png new file mode 100644 index 0000000..4db0d9b Binary files /dev/null and b/themes/tokyo-night/preview.png differ diff --git a/themes/vantablack/preview.png b/themes/vantablack/preview.png new file mode 100644 index 0000000..0471204 Binary files /dev/null and b/themes/vantablack/preview.png differ diff --git a/themes/white/accent.theme b/themes/white/accent.theme index f5ac3db..6d68215 100644 --- a/themes/white/accent.theme +++ b/themes/white/accent.theme @@ -1 +1 @@ -blue \ No newline at end of file +bark \ No newline at end of file diff --git a/themes/white/gtk.theme b/themes/white/gtk.theme index 6ce2f14..7fe265c 100644 --- a/themes/white/gtk.theme +++ b/themes/white/gtk.theme @@ -1 +1 @@ -Yaru-blue +Yaru-bark diff --git a/themes/white/preview.png b/themes/white/preview.png new file mode 100644 index 0000000..73fea6d Binary files /dev/null and b/themes/white/preview.png differ diff --git a/version b/version index 1464c52..589268e 100644 --- a/version +++ b/version @@ -1 +1 @@ -1.0.5 \ No newline at end of file +1.3.0 \ No newline at end of file