diff options
| author | David T. Sadler <davidtsadler@googlemail.com> | 2026-06-21 19:17:44 +0100 |
|---|---|---|
| committer | David T. Sadler <davidtsadler@googlemail.com> | 2026-06-21 19:17:44 +0100 |
| commit | 63c8dad6d9da57bd9c8cfa19f9fdce99f3533d9e (patch) | |
| tree | c593d8a8724b6f59bed9d40ab1ae4ee2d7c0ef80 | |
| parent | 1d6ba877af1ecf2e2bc87b3eca1c2e5cb87dd97d (diff) | |
| parent | aebda32c2a09fcbdc1e645f55a0c6de3b9a2cfaf (diff) | |
Merge branch 'main' into howl
| -rwxr-xr-x | bin/.bin/add-bookmark.sh | 36 | ||||
| -rwxr-xr-x | bin/.bin/new-episode | 35 | ||||
| -rwxr-xr-x | bin/.bin/open-bookmark.sh | 23 | ||||
| -rw-r--r-- | bookmarks.txt | 2 | ||||
| -rw-r--r-- | dunst/.config/dunst/dunstrc | 56 | ||||
| -rwxr-xr-x | install.sh | 3 | ||||
| -rw-r--r-- | oxwm/.config/oxwm/config.lua | 16 | ||||
| -rw-r--r-- | rofi/.config/rofi/config.rasi | 3 | ||||
| -rw-r--r-- | rofi/.config/rofi/themes/nord.rasi | 76 |
9 files changed, 212 insertions, 38 deletions
diff --git a/bin/.bin/add-bookmark.sh b/bin/.bin/add-bookmark.sh new file mode 100755 index 0000000..9a8ab6b --- /dev/null +++ b/bin/.bin/add-bookmark.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +set -euo pipefail + +BOOKMARKS_FILE="$DOTFILES_REPO/bookmarks.txt" + +mkdir -p "$(dirname "$BOOKMARKS_FILE")" +touch "$BOOKMARKS_FILE" + +xdotool key --delay 50 ctrl+l ctrl+c Escape + +sleep 0.15 + +URL=$(xclip -selection clipboard -o) + +if [[ "$URL" =~ ^https?:// ]]; then + NAME=$(zenity --entry \ + --title="Add Bookmark" \ + --text="Enter a name for this bookmark:" \ + --entry-text="" 2>/dev/null) + + if [ -z "$NAME" ]; then + notify-send "Bookmark Cancelled" "No name was provided." + exit 0 + fi + + CLEAN_NAME=$(echo "$NAME" | tr '|' '-') + + if ! grep -q "|$URL$" "$BOOKMARKS_FILE"; then + echo "$CLEAN_NAME|$URL" >>"$BOOKMARKS_FILE" + notify-send "Bookmark Saved" "$CLEAN_NAME\n$URL" + else + notify-send "Bookmark" "This exact URL already exists!" + fi +else + notify-send "Bookmark Error" "Clipboard did not contain a valid URL." +fi diff --git a/bin/.bin/new-episode b/bin/.bin/new-episode deleted file mode 100755 index c8a2305..0000000 --- a/bin/.bin/new-episode +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env bash - -if [ -z "$1" ]; then - echo "Usage: new-episode <number> <name>" - exit 1 -fi - -EP_NUM=$(printf "%03d" "$1") - -# Capture the Name (Shift the first arg so we can join the rest). -shift -RAW_NAME="${*:-untitled}" - -# Create the Title (Capitalize first letter of every word). -# Using a simple sed regex to capitalize words. -EP_TITLE=$(echo "$RAW_NAME" | sed 's/\b./\U&/g') - -# Create the Filename Slug (Lower case and replace spaces with hyphens) -# tr '[:upper:]' '[:lower:]' handles the casing -# tr ' ' '-' handles the spaces -SLUG=$(echo "$RAW_NAME" | tr '[:upper:]' '[:lower:]' | tr ' ' '-') -FILENAME="episode-${EP_NUM}-${SLUG}.php" - -# Generate the file -cat <<EOF > "$FILENAME" -<?php - -declare(strict_types=1); - -/** - * Episode ${EP_NUM}: ${EP_TITLE} - * The Coding Brummie Fundamental PHP Series - */ - -EOF diff --git a/bin/.bin/open-bookmark.sh b/bin/.bin/open-bookmark.sh new file mode 100755 index 0000000..67e724b --- /dev/null +++ b/bin/.bin/open-bookmark.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +set -euo pipefail + +BOOKMARKS_FILE="$DOTFILES_REPO/bookmarks.txt" + +if [ ! -f "$BOOKMARKS_FILE" ] || [ ! -s "$BOOKMARKS_FILE" ]; then + notify-send "Bookmarks" "Your bookmarks file is empty or missing." + exit 1 +fi + +SELECTION=$(cut -d'|' -f1 "$BOOKMARKS_FILE" | rofi -dmenu -p "Go To:") + +if [ -z "$SELECTION" ]; then + exit 0 +fi + +URL=$(grep "^$SELECTION|" "$BOOKMARKS_FILE" | head -n 1 | cut -d'|' -f2) + +if [ -n "$URL" ]; then + firefox "$URL" & +else + notify-send "Error" "Could not resolve the URL for: $SELECTION" +fi diff --git a/bookmarks.txt b/bookmarks.txt new file mode 100644 index 0000000..d6954be --- /dev/null +++ b/bookmarks.txt @@ -0,0 +1,2 @@ +Gemini|https://gemini.google.com/app +davidtsadler.com|https://davidtsadler.com/ diff --git a/dunst/.config/dunst/dunstrc b/dunst/.config/dunst/dunstrc new file mode 100644 index 0000000..786d035 --- /dev/null +++ b/dunst/.config/dunst/dunstrc @@ -0,0 +1,56 @@ +[global] + ### Display Settings ### + monitor = 0 + follow = mouse + width = 300 + height = 150 + origin = top-right + offset = 10x50 + scale = 0 + notification_limit = 5 + + ### Progress Bar ### + progress_bar = true + progress_bar_height = 10 + progress_bar_frame_width = 1 + progress_bar_min_width = 150 + progress_bar_max_width = 300 + + ### Styling ### + frame_width = 2 + separator_height = 2 + padding = 8 + horizontal_padding = 8 + text_icon_padding = 0 + + # Official Nord Accent Colors + frame_color = "#88c0d0" # Nord8 (Ice Blue Frame) + separator_color = "#4c566a" # Nord3 + + ### Text Properties ### + font = JetBrains Mono 10 + line_height = 0 + format = "<b>%s</b>\n%b" + alignment = left + show_age_threshold = 60 + ellipsize = middle + ignore_newline = no + stack_duplicates = true + hide_duplicate_count = false + +[urgency_low] + # Nord Night backgrounds with bright snow text + background = "#2e3440" # Nord0 + foreground = "#d8dee9" # Nord4 + timeout = 4 + +[urgency_normal] + background = "#3b4252" # Nord1 + foreground = "#eceff4" # Nord6 + timeout = 6 + +[urgency_critical] + background = "#bf616a" # Nord11 (Aurora Red for warnings) + foreground = "#eceff4" # Nord6 + frame_color = "#bf616a" + timeout = 0 @@ -6,10 +6,13 @@ dotfiles=( alacritty bash bat + bin + dunst git lazygit nvim oxwm + rofi ssh starship tmux diff --git a/oxwm/.config/oxwm/config.lua b/oxwm/.config/oxwm/config.lua index d899890..80b6d27 100644 --- a/oxwm/.config/oxwm/config.lua +++ b/oxwm/.config/oxwm/config.lua @@ -275,8 +275,18 @@ oxwm.key.bind({ modkey, "Control", "Shift" }, "9", oxwm.tag.toggletag(8)) -- Example: Press Mod4+Space, then release and press T to spawn a terminal without auto starting anything. oxwm.key.chord({ { { modkey }, "Space" }, - { {}, "T" } -}, oxwm.spawn({ "alacritty", "-e", "bash" })) + { {}, "B" } +}, oxwm.spawn({ "firefox" })) + +oxwm.key.chord({ + { { modkey }, "b" }, + { {}, "a" } +}, oxwm.spawn({ "add-bookmark.sh" })) + +oxwm.key.chord({ + { { modkey }, "b" }, + { {}, "o" } +}, oxwm.spawn({ "open-bookmark.sh" })) ------------------------------------------------------------------------------- -- Autostart @@ -286,7 +296,7 @@ oxwm.key.chord({ -- Keycode 108 was found using the exv command and pressing the AltGr key in the popup window. oxwm.autostart("xmodmap -e 'keycode 108 = Super_R' -e 'add mod4 = Super_R'") +oxwm.autostart("dunst") -- oxwm.autostart("picom") -- oxwm.autostart("feh --bg-scale ~/wallpaper.jpg") --- oxwm.autostart("dunst") -- oxwm.autostart("nm-applet") diff --git a/rofi/.config/rofi/config.rasi b/rofi/.config/rofi/config.rasi new file mode 100644 index 0000000..5d67754 --- /dev/null +++ b/rofi/.config/rofi/config.rasi @@ -0,0 +1,3 @@ +configuration { +} +@theme "~/.config/rofi/themes/nord.rasi" diff --git a/rofi/.config/rofi/themes/nord.rasi b/rofi/.config/rofi/themes/nord.rasi new file mode 100644 index 0000000..a98e108 --- /dev/null +++ b/rofi/.config/rofi/themes/nord.rasi @@ -0,0 +1,76 @@ +* { + /* Nord Color Palette Blueprint */ + nord0: #2e3440; /* Polar Night (Base Background) */ + nord1: #3b4252; /* Polar Night (Elevated Background) */ + nord2: #434c5e; /* Polar Night (Selection Element) */ + nord3: #4c566a; /* Polar Night (Comments/Muted Text) */ + nord4: #d8dee9; /* Snow Storm (Primary Text) */ + nord5: #e5e9f0; /* Snow Storm (Bright Text) */ + nord6: #eceff4; /* Snow Storm (Blinding Text) */ + nord7: #8fbcbb; /* Frost (Teal Accent) */ + nord8: #88c0d0; /* Frost (Ice Blue Highlight) */ + nord9: #81a1c1; /* Frost (Flat Blue) */ + nord10: #5e81ac; /* Frost (Deep Blue) */ + + background-color: transparent; + text-color: @nord4; + accent-color: @nord8; + + font: "JetBrains Mono 12"; +} + +window { + background-color: @nord0; + border-color: @accent-color; + border: 2px; + border-radius: 6px; + width: 550px; + location: center; + anchor: center; + padding: 14px; +} + +inputbar { + spacing: 12px; + padding: 0px 0px 10px 0px; + border: 0px 0px 1px 0px; + border-color: @nord3; + children: [ prompt, entry ]; +} + +prompt { + text-color: @accent-color; + font: "JetBrains Mono Bold 12"; +} + +entry { + text-color: @nord5; + placeholder: "Search..."; + placeholder-color: @nord3; +} + +listview { + lines: 12; + columns: 1; + fixed-height: false; + spacing: 4px; + padding: 8px 0px 0px 0px; +} + +element { + padding: 6px 10px; + border-radius: 4px; +} + +element normal text { + text-color: @nord4; +} + +element selected { + background-color: @nord2; /* Highlight bar color */ +} + +element selected text { + text-color: @nord6; /* Text inside the highlight bar */ + font: "JetBrains Mono Bold 12"; +} |
