diff --git a/bin/blob-capture-edit b/bin/blob-capture-edit new file mode 100755 index 0000000..e5ab362 --- /dev/null +++ b/bin/blob-capture-edit @@ -0,0 +1,14 @@ +#!/bin/bash + +# blob:summary=Annotate an image in Satty and save it in place +# blob:group=capture +# blob:args= + +image_path="${1:-}" + +if [[ -z $image_path || ! -r $image_path ]]; then + echo "Usage: blob-capture-edit " >&2 + exit 1 +fi + +exec satty --filename "$image_path" --output-filename "$image_path" diff --git a/bin/blob-capture-screenshot b/bin/blob-capture-screenshot index c6da903..028b58c 100755 --- a/bin/blob-capture-screenshot +++ b/bin/blob-capture-screenshot @@ -16,7 +16,7 @@ fi pkill slurp && exit 0 -SCREENSHOT_EDITOR="${BLOB_SCREENSHOT_EDITOR:-tensaku-edit}" +SCREENSHOT_EDITOR="${BLOB_SCREENSHOT_EDITOR:-blob-capture-edit}" # Parse --editor flag from any position ARGS=() diff --git a/bin/blob-clipboard-open b/bin/blob-clipboard-open index dbb5b90..f3620e7 100755 --- a/bin/blob-clipboard-open +++ b/bin/blob-clipboard-open @@ -30,7 +30,7 @@ open_image() { local path="$1" [[ -r $path ]] || exit 1 - exec tensaku-edit "$path" + exec blob-capture-edit "$path" } open_text() { diff --git a/config/foot/foot.ini b/config/foot/foot.ini index 3b4ec60..3679265 100644 --- a/config/foot/foot.ini +++ b/config/foot/foot.ini @@ -20,7 +20,5 @@ primary-paste=none clipboard-paste=Shift+Insert Control+Shift+v XF86Paste [text-bindings] -# Send Shift+Return as CSI-u so TUIs can distinguish it from Return. \x1b[13;2u=Shift+Return -# Send Alt+Shift+Return as CSI-u so tmux can match M-S-Enter. \x1b[13;4u=Mod1+Shift+Return diff --git a/config/git/config b/config/git/config index 0f8e979..4c52784 100644 --- a/config/git/config +++ b/config/git/config @@ -6,7 +6,7 @@ ci = commit st = status [init] - defaultBranch = master + defaultBranch = main [pull] rebase = true # Rebase (instead of merge) on pull [push] diff --git a/config/hypr/hyprland.lua b/config/hypr/hyprland.lua index cdb6935..ec58a3c 100644 --- a/config/hypr/hyprland.lua +++ b/config/hypr/hyprland.lua @@ -1,7 +1,7 @@ -- Learn how to configure Hyprland: https://wiki.hypr.land/Configuring/Start/ -- Blob's bootstrap keeps path setup out of this user config. -dofile((os.getenv("BLOB_PATH") or "$HOME/.local/share/blob") .. "/default/hypr/bootstrap.lua") +dofile((os.getenv("BLOB_PATH") or (os.getenv("HOME") .. "/.local/share/blob")) .. "/default/hypr/bootstrap.lua") -- Disable all Blob default bindings. Add your own in hypr/bindings.lua. -- blob_default_bindings = false diff --git a/config/hypr/monitors.lua b/config/hypr/monitors.lua index 420fd51..3e2cb5e 100644 --- a/config/hypr/monitors.lua +++ b/config/hypr/monitors.lua @@ -1,10 +1,8 @@ -- See https://wiki.hypr.land/Configuring/Basics/Monitors/ -- List current monitors and supported resolutions with: hyprctl monitors all -local blob_gdk_scale = 2 local blob_monitor_scale = "auto" -hl.env("GDK_SCALE", tostring(blob_gdk_scale)) hl.monitor({ output = "", mode = "preferred", position = "auto", scale = blob_monitor_scale }) -- Configure a specific monitor. diff --git a/config/imv/config b/config/imv/config index f96aa6a..3569861 100644 --- a/config/imv/config +++ b/config/imv/config @@ -12,5 +12,5 @@ # Rotate the currently open image by 90 degrees = exec mogrify -rotate 90 "$imv_current_file" -# Edit the current image in Tensaku and quit the viewer - = exec tensaku-edit "$imv_current_file" & ; quit +# Annotate the current image in Satty and quit the viewer + = exec blob-capture-edit "$imv_current_file" & ; quit diff --git a/config/kitty/kitty.conf b/config/kitty/kitty.conf index 7cf92dd..39a28f3 100644 --- a/config/kitty/kitty.conf +++ b/config/kitty/kitty.conf @@ -1,9 +1,3 @@ -# vim:ft=kitty -# -# Colors come from the active theme, the same way foot.ini takes them: the -# theme pipeline renders default/themed/kitty.conf.tpl into the current-theme -# directory, and blob-restart-terminal signals kitty to reload it. - include ~/.local/state/blob/current/theme/kitty.conf @@ -16,9 +10,6 @@ font_size 14.0 adjust_line_height 115% disable_ligatures cursor -# Use CoreText's glyph rendering rather than kitty's own blending. -text_composition_strategy platform - # Window window_padding_width 18 @@ -61,10 +52,3 @@ visual_bell_duration 0.1 # Scrollback scrollback_lines 20000 - - -# macOS specific -macos_option_as_alt yes -macos_quit_when_last_window_closed yes -macos_show_window_title_in all -macos_traditional_fullscreen no diff --git a/config/lazygit/config.yml b/config/lazygit/config.yml deleted file mode 100644 index e69de29..0000000 diff --git a/default/hypr/apps/omarchy-shell.lua b/default/hypr/apps/blob-shell.lua similarity index 100% rename from default/hypr/apps/omarchy-shell.lua rename to default/hypr/apps/blob-shell.lua diff --git a/default/hypr/apps/jetbrains.lua b/default/hypr/apps/jetbrains.lua index 678e823..b473b75 100644 --- a/default/hypr/apps/jetbrains.lua +++ b/default/hypr/apps/jetbrains.lua @@ -1,2 +1,2 @@ --- Disable mouse focus (see https://github.com/basecamp/omarchy/pull/5183#issuecomment-4189299971). +-- Disable mouse focus for JetBrains IDEs. o.window("^(jetbrains-.*)$", { no_follow_mouse = true }) diff --git a/default/systemd/user/blob-speaker-tuning.service b/default/systemd/user/blob-speaker-tuning.service index c7a1387..3a42038 100644 --- a/default/systemd/user/blob-speaker-tuning.service +++ b/default/systemd/user/blob-speaker-tuning.service @@ -1,6 +1,5 @@ [Unit] Description=Blob speaker tuning filter-chain -Documentation=https://github.com/basecamp/omarchy/blob/master/docs/AUDIO-TUNING.md # WirePlumber does the linking, so starting before it is up risks the output being # linked before the speaker device has been discovered. After=pipewire.service wireplumber.service diff --git a/docs/commands.md b/docs/commands.md index 672c235..cfada73 100644 --- a/docs/commands.md +++ b/docs/commands.md @@ -83,6 +83,7 @@ of the `blob` listing. | Command | Does | Arguments | | --- | --- | --- | +| `blob-capture-edit` | Annotate an image in Satty and save it in place | | | `blob-capture-qr` | Decode a QR code from a screenshot region | - | | `blob-capture-record` | Start or stop screen recording | [--fullscreen] [--with-desktop-audio] [--with-microphone-audio] [--with-webcam] [--webcam-device=] [--webcam-size=] [--resolution=] [--stop-recording] | | `blob-capture-record-webcam` | Pick a webcam and start a screen recording with it | - | diff --git a/packages/blob.packages b/packages/blob.packages index 1d5307b..d240e69 100644 --- a/packages/blob.packages +++ b/packages/blob.packages @@ -125,6 +125,7 @@ tesseract tesseract-data-eng qrencode zbar +satty # Media: video and audio player, image viewer, PDF viewer mpv diff --git a/shell/Commons/Util.qml b/shell/Commons/Util.qml index ca265ac..2982ce2 100644 --- a/shell/Commons/Util.qml +++ b/shell/Commons/Util.qml @@ -57,7 +57,7 @@ QtObject { // Run an argv vector without a shell interpreting it: the constant `exec "$@"` // means the args only ever land in positional parameters, which bash expands // without re-tokenizing — so untrusted data ($(id), a filename) stays literal. - // The login shell (-l) keeps the PATH/session env GUI targets (tensaku, mpv, + // The login shell (-l) keeps the PATH/session env GUI targets (satty, mpv, // xdg-open) need. Prefer this over execDetached for anything built from input. function execArgv(argv) { Quickshell.execDetached(["bash", "-lc", 'exec "$@"', "bash"].concat(argv))