Compare commits

..

6 commits

10 changed files with 59 additions and 25 deletions

View file

@ -1,7 +1,7 @@
#! /usr/bin/bash #! /usr/bin/bash
alias em="emacs --no-init-file --no-splash --no-window-system" alias em="emacs --no-init-file --no-splash --no-window-system"
alias ll="exa --binary --group --long" alias ll="eza --binary --group --long"
alias la="ll --all" alias la="ll --all"
alias tree="ll --tree" alias tree="ll --tree"
alias llblk="lsblk -o NAME,TYPE,FSTYPE,SIZE,MOUNTPOINT,LABEL,PARTLABEL,UUID,PARTUUID" alias llblk="lsblk --output NAME,TYPE,FSTYPE,SIZE,MOUNTPOINT,LABEL,PARTLABEL,UUID,PARTUUID"

View file

@ -15,6 +15,6 @@ WantedBy=default.target
[Service] [Service]
# keep-sorted start # keep-sorted start
ExecStartPre=mkdir -p %h/.local/share/ollama ExecStartPre=mkdir --parents %h/.local/share/ollama
Restart=always Restart=always
# keep-sorted end # keep-sorted end

View file

@ -0,0 +1,17 @@
[Unit]
Description=A local PlantUML server
[Container]
# keep-sorted start
ContainerName=plantuml
Image=docker.io/plantuml/plantuml-server:jetty
Network=private
PublishPort=8080:8080
ReadOnly=true
# keep-sorted end
[Install]
WantedBy=default.target
[Service]
Restart=always

View file

@ -186,6 +186,22 @@
(use-package org-contacts (use-package org-contacts
:after org-contrib) :after org-contrib)
(use-package deflate
:ensure (:repo "https://github.com/skuro/deflate"))
(use-package plantuml-mode
:ensure (:repo "https://github.com/skuro/plantuml-mode")
:custom
;; keep-sorted start
(plantuml-default-exec-mode 'server)
(plantuml-output-type "svg")
(plantuml-server-url "http://localhost:8080")
;; keep-sorted end
:init
(add-to-list 'auto-mode-alist '("\\.plantuml\\'" . plantuml-mode))
(add-to-list 'org-src-lang-modes '("plantuml" . plantuml))
(org-babel-do-load-languages 'org-babel-load-languages '((plantuml . t)))
)
(use-package age (use-package age
:custom :custom
(age-default-identity "~/.age/key") (age-default-identity "~/.age/key")
@ -265,7 +281,7 @@
(eglot-ensure)))) (eglot-ensure))))
(use-package python (use-package python
:bind (:map python-mode-map :bind (:map python-ts-mode-map
("C-c C-p" . nil) ("C-c C-p" . nil)
("C-c C-l" . nil) ("C-c C-l" . nil)
("C-c t" . elpy-test)) ("C-c t" . elpy-test))

View file

@ -32,15 +32,15 @@ include /etc/sway/config-vars.d/*
# #
# output HDMI-A-1 resolution 1920x1080 position 1920,0 # output HDMI-A-1 resolution 1920x1080 position 1920,0
# #
# You can get the names of your outputs by running: swaymsg -t get_outputs # You can get the names of your outputs by running: swaymsg --type get_outputs
### Idle configuration ### Idle configuration
# #
exec swayidle -w \ exec swayidle -w \
timeout 300 'swaylock -f -c 000000' \ timeout 300 'swaylock --daemonize --color 000000' \
timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \ timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
before-sleep 'swaylock -f -c 000000' before-sleep 'swaylock --daemonize --color 000000'
# This will lock your screen after 300 seconds of inactivity, then turn off # This will lock your screen after 300 seconds of inactivity, then turn off
# your displays after another 300 seconds, and turn your screens back on when # your displays after another 300 seconds, and turn your screens back on when
@ -58,7 +58,7 @@ input type:touchpad {
tap enabled tap enabled
} }
# You can get the names of your inputs by running: swaymsg -t get_inputs # You can get the names of your inputs by running: swaymsg --type get_inputs
# Read `man 5 sway-input` for more information about this section. # Read `man 5 sway-input` for more information about this section.
### Key bindings ### Key bindings
@ -99,9 +99,9 @@ input type:touchpad {
# Lock screen # Lock screen
# Black # Black
bindsym $wm_mod+l exec swaylock -f -c 000000 bindsym $wm_mod+l exec swaylock --daemonize --color 000000
# Random color # Random color
bindsym $wm_mod+semicolon exec swaylock -f -c $(dd if=/dev/urandom bs=1 count=3 2>/dev/null | hexdump -e '"%02x"') bindsym $wm_mod+semicolon exec swaylock --daemonize --color $(dd if=/dev/urandom bs=1 count=3 2>/dev/null | hexdump --format '"%02x"')
# Exit sway (logs you out of your Wayland session) # Exit sway (logs you out of your Wayland session)
bindsym $wm_mod+Delete exec leave bindsym $wm_mod+Delete exec leave

View file

@ -3,7 +3,7 @@
set -euo pipefail set -euo pipefail
IFS=$'\n\t' IFS=$'\n\t'
if ! PARSED_OPTIONS=$(getopt -o "" --long "offline,volatile" --name "$0" -- "$@"); then if ! PARSED_OPTIONS=$(getopt --options "" --long "offline,volatile" --name "$0" -- "$@"); then
echo "Error parsing options." >&2 echo "Error parsing options." >&2
exit 1 exit 1
fi fi

View file

@ -1,6 +1,6 @@
#! /usr/bin/sh #! /usr/bin/sh
recordings=$(pgrep wf-recorder | wc -l) recordings=$(pgrep wf-recorder | wc --lines)
if [ "${recordings}" = "0" ]; then if [ "${recordings}" = "0" ]; then
recs="" recs=""
else else
@ -19,7 +19,7 @@ else
numlock="⮔" numlock="⮔"
fi fi
touchpad=$(swaymsg -t get_inputs | jq -r '[.[] | select(.type == "touchpad")][0] | .libinput.send_events') touchpad=$(swaymsg --type get_inputs | jq --raw-output '[.[] | select(.type == "touchpad")][0] | .libinput.send_events')
if [ "${touchpad}" = "enabled" ]; then if [ "${touchpad}" = "enabled" ]; then
touchpad_active="✅" touchpad_active="✅"
else else
@ -29,8 +29,8 @@ fi
today=$(date +'%Y-%m-%d') today=$(date +'%Y-%m-%d')
now=$(date +'%H:%M:%S') now=$(date +'%H:%M:%S')
hour=$(echo "${now}" | cut -d: -f1 -) hour=$(echo "${now}" | cut --delimiter ":" --fields 1 -)
minute=$(echo "${now}" | cut -d: -f2 -) minute=$(echo "${now}" | cut --delimiter ":" --fields 2 -)
if [ "${minute}" -lt 30 ]; then if [ "${minute}" -lt 30 ]; then
case "${hour}" in case "${hour}" in
"00"|"12") clock_face="🕛";; "00"|"12") clock_face="🕛";;
@ -64,7 +64,7 @@ else
fi fi
audio_mute=$(pactl get-sink-mute @DEFAULT_SINK@ | awk '{print $2}') audio_mute=$(pactl get-sink-mute @DEFAULT_SINK@ | awk '{print $2}')
audio_volume=$(pactl get-sink-volume @DEFAULT_SINK@ | grep -o '[0-9]\+%' | head -n 1 | tr -d %) audio_volume=$(pactl get-sink-volume @DEFAULT_SINK@ | grep --only-matching '[0-9]\+%' | head --lines 1 | tr --delete %)
audio_symbol="❔" audio_symbol="❔"
if [ "${audio_mute}" = "yes" ]; then if [ "${audio_mute}" = "yes" ]; then
audio_symbol="🔇" audio_symbol="🔇"
@ -81,7 +81,7 @@ else
fi fi
mike_mute=$(pactl get-source-mute @DEFAULT_SOURCE@ | awk '{print $2}') mike_mute=$(pactl get-source-mute @DEFAULT_SOURCE@ | awk '{print $2}')
mike_volume=$(pactl get-source-volume @DEFAULT_SOURCE@ | grep -o '[0-9]\+%' | head -n 1 | tr -d %) mike_volume=$(pactl get-source-volume @DEFAULT_SOURCE@ | grep --only-matching '[0-9]\+%' | head --lines 1 | tr --delete %)
mike_symbol="❔" mike_symbol="❔"
if [ "${mike_mute}" = "yes" ]; then if [ "${mike_mute}" = "yes" ]; then
mike_symbol="🍌" mike_symbol="🍌"

View file

@ -37,15 +37,15 @@ else
fi fi
get_focused_monitor() { get_focused_monitor() {
swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name' swaymsg --type get_outputs | jq --raw-output '.[] | select(.focused) | .name'
} }
get_focused_window() { get_focused_window() {
swaymsg -t get_tree | jq -j '.. | select(.type?) | select(.focused).rect | "\(.x),\(.y) \(.width)x\(.height)"' swaymsg --type get_tree | jq --join-output '.. | select(.type?) | select(.focused).rect | "\(.x),\(.y) \(.width)x\(.height)"'
} }
select_window() { select_window() {
swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"' | slurp swaymsg --type get_tree | jq --raw-output '.. | select(.pid? and .visible?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"' | slurp
} }
case "${option}" in case "${option}" in
@ -68,11 +68,11 @@ case "${option}" in
"📷 Select window → 📋") "📷 Select window → 📋")
grim -g "$(select_window)" - | wl-copy;; grim -g "$(select_window)" - | wl-copy;;
"📽 Record focused monitor") "📽 Record focused monitor")
wf-recorder -o "$(get_focused_monitor)" -f "$(recording_filename)";; wf-recorder --output "$(get_focused_monitor)" -f "$(recording_filename)";;
"📽 Record select region") "📽 Record select region")
wf-recorder -g "$(slurp)" -f "$(recording_filename)";; wf-recorder --geometry "$(slurp)" -f "$(recording_filename)";;
"📽 Record focused window") "📽 Record focused window")
wf-recorder -g "$(get_focused_window)" -f "$(recording_filename)";; wf-recorder --geometry "$(get_focused_window)" -f "$(recording_filename)";;
"📽 Record select window") "📽 Record select window")
wf-recorder -g "$(select_window)" -f "$(recording_filename)";; wf-recorder --geometry "$(select_window)" -f "$(recording_filename)";;
esac esac

View file

@ -6,6 +6,7 @@ IFS=$'\n\t'
IMAGES=( IMAGES=(
# keep-sorted start # keep-sorted start
docker.io/ollama/ollama:latest docker.io/ollama/ollama:latest
docker.io/plantuml/plantuml-server:jetty
ghcr.io/hadolint/hadolint:latest ghcr.io/hadolint/hadolint:latest
lscr.io/linuxserver/transmission:latest lscr.io/linuxserver/transmission:latest
# keep-sorted end # keep-sorted end

View file

@ -3,7 +3,7 @@
set -euo pipefail set -euo pipefail
IFS=$'\n\t' IFS=$'\n\t'
podman --transient-store run --rm -ti \ podman --transient-store run --interactive --rm --tty \
--env WAYLAND_DISPLAY \ --env WAYLAND_DISPLAY \
--env XDG_RUNTIME_DIR=/tmp \ --env XDG_RUNTIME_DIR=/tmp \
--hostname localhost \ --hostname localhost \