Add foot terminal as an option
This commit is contained in:
@@ -22,6 +22,10 @@ if [[ -n $font_name ]]; then
|
||||
pkill -SIGUSR2 ghostty
|
||||
fi
|
||||
|
||||
if [[ -f ~/.config/foot/foot.ini ]]; then
|
||||
sed -i "s/^font=.*/font=$font_name:size=9/g" ~/.config/foot/foot.ini
|
||||
fi
|
||||
|
||||
sed -i "s/font_family = .*/font_family = $font_name/g" ~/.config/hypr/hyprlock.conf
|
||||
sed -i "s/font-family: .*/font-family: '$font_name';/g" ~/.config/waybar/style.css
|
||||
sed -i "s/font-family: .*/font-family: '$font_name';/g" ~/.config/swayosd/style.css
|
||||
@@ -37,6 +41,10 @@ if [[ -n $font_name ]]; then
|
||||
notify-send -u low " You must restart Ghostty to see font change"
|
||||
fi
|
||||
|
||||
if pgrep -x foot; then
|
||||
notify-send -u low " You must restart Foot to see font change"
|
||||
fi
|
||||
|
||||
omarchy-hook font-set "$font_name"
|
||||
else
|
||||
echo "Font '$font_name' not found."
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Install one of the approved terminals and set it as the default for Omarchy (Super + Return etc).
|
||||
# omarchy:args=<alacritty|ghostty|kitty>
|
||||
# omarchy:args=<alacritty|foot|ghostty|kitty>
|
||||
# omarchy:requires-sudo=true
|
||||
|
||||
if (($# == 0)); then
|
||||
echo "Usage: omarchy-install-terminal [alacritty|ghostty|kitty]"
|
||||
echo "Usage: omarchy-install-terminal [alacritty|foot|ghostty|kitty]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -14,6 +14,7 @@ package="$1"
|
||||
# Map package name to desktop entry ID
|
||||
case "$package" in
|
||||
alacritty) desktop_id="Alacritty.desktop" ;;
|
||||
foot) desktop_id="foot.desktop" ;;
|
||||
ghostty) desktop_id="com.mitchellh.ghostty.desktop" ;;
|
||||
kitty) desktop_id="kitty.desktop" ;;
|
||||
*)
|
||||
@@ -26,10 +27,15 @@ echo "Installing $package..."
|
||||
|
||||
# Install package
|
||||
if omarchy-pkg-add $package; then
|
||||
# Copy custom desktop entry for alacritty with X-TerminalArg* keys
|
||||
if [[ $package == "alacritty" ]]; then
|
||||
# Copy custom desktop entries with X-TerminalArg* keys
|
||||
if [[ $package == "alacritty" || $package == "foot" ]]; then
|
||||
mkdir -p ~/.local/share/applications
|
||||
cp $OMARCHY_PATH/applications/Alacritty.desktop ~/.local/share/applications/
|
||||
cp "$OMARCHY_PATH/applications/$desktop_id" ~/.local/share/applications/
|
||||
fi
|
||||
|
||||
# Copy default config for optional terminals when missing
|
||||
if [[ ! -e ~/.config/$package ]]; then
|
||||
cp -Rpf "$OMARCHY_PATH/config/$package" ~/.config/
|
||||
fi
|
||||
|
||||
# Update xdg-terminals.list to prioritize the proper terminal
|
||||
|
||||
@@ -37,6 +37,12 @@ for m in $(hyprctl monitors -j | jq -r '.[] | .name'); do
|
||||
--font-size=18 \
|
||||
-e omarchy-screensaver
|
||||
;;
|
||||
*foot*)
|
||||
hyprctl dispatch exec -- \
|
||||
foot --app-id=org.omarchy.screensaver \
|
||||
--config="$OMARCHY_PATH/default/foot/screensaver.ini" \
|
||||
-e omarchy-screensaver
|
||||
;;
|
||||
*kitty*)
|
||||
hyprctl dispatch exec -- \
|
||||
kitty --class=org.omarchy.screensaver \
|
||||
@@ -45,7 +51,7 @@ for m in $(hyprctl monitors -j | jq -r '.[] | .name'); do
|
||||
-e omarchy-screensaver
|
||||
;;
|
||||
*)
|
||||
notify-send -u low "✋ Screensaver only runs in Alacritty, Ghostty, or Kitty"
|
||||
notify-send -u low "✋ Screensaver only runs in Alacritty, Foot, Ghostty, or Kitty"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
+2
-1
@@ -394,8 +394,9 @@ show_install_editor_menu() {
|
||||
}
|
||||
|
||||
show_install_terminal_menu() {
|
||||
case $(menu "Install" " Alacritty\n Ghostty\n Kitty") in
|
||||
case $(menu "Install" " Alacritty\n Foot\n Ghostty\n Kitty") in
|
||||
*Alacritty*) install_terminal "alacritty" ;;
|
||||
*Foot*) install_terminal "foot" ;;
|
||||
*Ghostty*) install_terminal "ghostty" ;;
|
||||
*Kitty*) install_terminal "kitty" ;;
|
||||
*) show_install_menu ;;
|
||||
|
||||
@@ -62,6 +62,7 @@ omarchy-restart-mako
|
||||
omarchy-restart-helix
|
||||
|
||||
# Change app-specific themes
|
||||
omarchy-theme-set-foot
|
||||
omarchy-theme-set-gnome
|
||||
omarchy-theme-set-browser
|
||||
omarchy-theme-set-vscode
|
||||
|
||||
Executable
+27
@@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Apply current Omarchy theme colors to running Foot terminals
|
||||
|
||||
foot_theme=~/.config/omarchy/current/theme/foot.ini
|
||||
|
||||
if [[ ! -f $foot_theme ]] || ! pgrep -x foot >/dev/null; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
foot_osc=$(awk -F= '
|
||||
function color(value) { return "#" value }
|
||||
/^foreground=/ { printf "\033]10;%s\007", color($2) }
|
||||
/^background=/ { printf "\033]11;%s\007", color($2) }
|
||||
/^cursor=/ { split($2, parts, " "); printf "\033]12;%s\007", color(parts[2]) }
|
||||
/^selection-background=/ { printf "\033]17;%s\007", color($2) }
|
||||
/^selection-foreground=/ { printf "\033]19;%s\007", color($2) }
|
||||
/^regular[0-7]=/ { split($1, parts, "regular"); printf "\033]4;%d;%s\007", parts[2], color($2) }
|
||||
/^bright[0-7]=/ { split($1, parts, "bright"); printf "\033]4;%d;%s\007", parts[2] + 8, color($2) }
|
||||
' "$foot_theme")
|
||||
|
||||
for foot_pid in $(pgrep -x foot); do
|
||||
for child_pid in $(pgrep -P "$foot_pid"); do
|
||||
tty=$(readlink "/proc/$child_pid/fd/1" 2>/dev/null)
|
||||
[[ $tty == /dev/pts/* ]] && printf '%b' "$foot_osc" >"$tty"
|
||||
done
|
||||
done
|
||||
Reference in New Issue
Block a user