Skip to content

Commit 041d283

Browse files
committed
Updates
1 parent 2cb1bac commit 041d283

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+894
-190
lines changed

bin/.binds.cache

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
::Group name::switch:on:Lid Switch::N/A::~/.config/hypr/bin/sleep.sh
2+
::Group name::return::N/A::~/.bin/add-todo
3+
::Group name::F::N/A::2
4+
::Group name::F::N/A::1
5+
::Group name::R::N/A::N/A
6+
::Group name::XF86AudioRaiseVolume::N/A::volumectl up
7+
::Group name::XF86AudioLowerVolume::N/A::volumectl down
8+
::Group name::XF86AudioMute::N/A::volumectl toggle
9+
::Group name::XF86MonBrightnessUp::N/A::brightnessctl set 2%+
10+
::Group name::XF86MonBrightnessDown::N/A::brightnessctl set 2%-
11+
::Group name::return::N/A::kitty zsh -c "tmux"
12+
::Group name::Q::N/A::N/A
13+
::Group name::DELETE::N/A::N/A
14+
::Group name::l::N/A::hyprlock;
15+
::Group name::E::N/A::thunar
16+
::Group name::V::N/A::N/A
17+
::Group name::P::N/A::N/A
18+
::Group name::D::N/A::wofi --conf ~/.config/wofi/config
19+
::Group name::j::N/A::~/.bin/wofi-jobs --conf ~/.config/wofi/config
20+
::Group name::equal::N/A::wofi-calc --conf ~/.config/wofi/config
21+
::Group name::h::N/A::~/.bin/wofi-hyprland-hidden --conf ~/.config/wofi/config
22+
::Group name::T::N/A::N/A
23+
::Group name::Tab::N/A::N/A
24+
::Group name::T::N/A::N/A
25+
::Group name::left::N/A::l
26+
::Group name::right::N/A::r
27+
::Group name::up::N/A::u
28+
::Group name::down::N/A::d
29+
::Group name::right::N/A::40 0
30+
::Group name::left::N/A::-40 0
31+
::Group name::up::N/A::0 -40
32+
::Group name::down::N/A::0 40
33+
::Group name::right::N/A::r
34+
::Group name::left::N/A::l
35+
::Group name::up::N/A::u
36+
::Group name::down::N/A::d
37+
::Group name::grave::N/A::special
38+
::Group name::grave::N/A::N/A
39+
::Group name::1::N/A::1 current
40+
::Group name::1::N/A::1
41+
::Group name::2::N/A::2 current
42+
::Group name::2::N/A::2
43+
::Group name::3::N/A::3 current
44+
::Group name::3::N/A::3
45+
::Group name::4::N/A::4 current
46+
::Group name::4::N/A::4
47+
::Group name::5::N/A::5 current
48+
::Group name::5::N/A::5
49+
::Group name::6::N/A::6 current
50+
::Group name::6::N/A::6
51+
::Group name::7::N/A::7 current
52+
::Group name::7::N/A::7
53+
::Group name::8::N/A::8 current
54+
::Group name::8::N/A::8
55+
::Group name::9::N/A::9 current
56+
::Group name::9::N/A::9
57+
::Group name::0::N/A::10 current
58+
::Group name::0::N/A::10
59+
::Group name::F1::N/A::11 current
60+
::Group name::F1::N/A::11
61+
::Group name::F2::N/A::12 current
62+
::Group name::F2::N/A::12
63+
::Group name::F3::N/A::13 current
64+
::Group name::F3::N/A::13
65+
::Group name::F4::N/A::14 current
66+
::Group name::F4::N/A::14
67+
::Group name::F5::N/A::15 current
68+
::Group name::F5::N/A::15
69+
::Group name::F6::N/A::16 current
70+
::Group name::F6::N/A::16
71+
::Group name::F7::N/A::17 current
72+
::Group name::F7::N/A::17
73+
::Group name::F8::N/A::18 current
74+
::Group name::F8::N/A::18
75+
::Group name::F9::N/A::19 current
76+
::Group name::F9::N/A::19
77+
::Group name::F10::N/A::20 current
78+
::Group name::F10::N/A::20
79+
::Group name::1::N/A::1
80+
::Group name::2::N/A::2
81+
::Group name::3::N/A::3
82+
::Group name::4::N/A::4
83+
::Group name::5::N/A::5
84+
::Group name::6::N/A::6
85+
::Group name::7::N/A::7
86+
::Group name::8::N/A::8
87+
::Group name::9::N/A::9
88+
::Group name::0::N/A::10
89+
::Group name::F1::N/A::11
90+
::Group name::F2::N/A::12
91+
::Group name::F3::N/A::13
92+
::Group name::F4::N/A::14
93+
::Group name::F5::N/A::15
94+
::Group name::F6::N/A::16
95+
::Group name::F7::N/A::17
96+
::Group name::F8::N/A::18
97+
::Group name::F9::N/A::19
98+
::Group name::F10::N/A::20
99+
::Group name::h::N/A::name:hidden
100+
::Group name::mouse_down::N/A::e+1
101+
::Group name::mouse_up::N/A::e-1
102+
::Group name::mouse:272::N/A::movewindow
103+
::Group name::mouse:273::N/A::resizewindow
104+
::Group name::mouse:274::N/A::N/A
105+
::Group name::XF86MonBrightnessUp::N/A::brightnessctl set 2%+
106+
::Group name::XF86MonBrightnessDown::N/A::brightnessctl set 2%-
107+
::Group name::XF86MonBrightnessUp::N/A::ddcutil setvcp 10 + 10
108+
::Group name::XF86MonBrightnessDown::N/A::ddcutil setvcp 10 - 10
109+
::Group name::XF86AudioRaiseVolume::N/A::pamixer --default-source -i 5
110+
::Group name::XF86AudioLowerVolume::N/A::pamixer --default-source -d 5
111+
::Group name::XF86AudioMicMute::N/A::volumectl -m toggle-mute
112+
::Group name::PRINT::N/A::grim -g "$(slurp)" - | swappy -f -
113+
::Group name::PRINT::N/A::grim - | swappy -f -
114+
::Group name::c::N/A::grim -g "$(slurp)" - | tesseract - - -l eng | wl-copy
115+
::Group name::comma::N/A::playerctl previous
116+
::Group name::period::N/A::playerctl next
117+
::Group name::comma::N/A::playerctl position 10-
118+
::Group name::period::N/A::playerctl position 10+
119+
::Group name::slash::N/A::playerctl play-pause
120+
::Group name::END::N/A::~/.bin/playerctl-remove-file
121+
::Group name::HOME::N/A::~/.bin/playerctl-pick-current-track
122+
::Group name::K::N/A::xdg-open $(~/.bin/rofi-recoll -c ~/.config/recoll)
123+
::Group name::W::N/A::~/.config/waybar/restart
124+
::Group name::page_up::N/A::~/.bin/switch-theme light >> ~/.tmp/switch.log
125+
::Group name::page_down::N/A::~/.bin/switch-theme dark >> ~/.tmp/switch.log
126+
::Group name::backslash::N/A::1password --ozone-platform=x11 --toggle
127+
::Group name::bracketright::N/A::~/.config/hypr/bin/wallpapers.py next
128+
::Group name::Tab::N/A::N/A
129+
::Group name::Tab::N/A::N/A
130+
::Group name::Tab::N/A::prev

bin/dela_create_cache

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#! /bin/bash
2+
FILE="${NOTES_DIR}/todo.cache.md"
3+
4+
FORMAT='- [$status] [[$file]] $title $tags'
5+
FILTER_COLORS="sed -r 's/\x1B\[([0-9]{1,3}(;[0-9]{1,2};?)?)?[mGK]//g' "
6+
7+
cd "${NOTES_DIR}"
8+
echo "# In Progress" >$FILE
9+
echo "" >>$FILE
10+
dela list -s='~' --format="${FORMAT}" | sed 's/\.md\]\]/\]\]/g' >>$FILE
11+
echo "" >>$FILE
12+
echo "" >>$FILE
13+
14+
echo "# Today" >>$FILE
15+
echo "" >>$FILE
16+
dela list --today --format="${FORMAT}" | sed 's/\.md\]\]/\]\]/g' >>$FILE
17+
echo "" >>$FILE
18+
echo "" >>$FILE
19+
20+
echo "# Reading List" >>$FILE
21+
echo "" >>$FILE
22+
dela list --tags="later" -s=" ,s" --format="${FORMAT}" | sed 's/\.md\]\]/\]\]/g' >>$FILE
23+
echo "" >>$FILE
24+
echo "" >>$FILE
25+
26+
echo "# Rest" >>$FILE
27+
echo "" >>$FILE
28+
dela list -s=' ' --format="${FORMAT}" | sed 's/\.md\]\]/\]\]/g' >>$FILE
29+
echo "" >>$FILE
30+
echo "" >>$FILE

bin/dela_open

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#! /bin/zsh
2+
FILE="${NOTES_DIR}/todo.cache.md"
3+
4+
cd $NOTES_DIR
5+
systemd-run --user --scope -p MemoryMax=infinity -p MemorySwapMax=infinity kitty --class dela zsh -c "nvim $FILE"

bin/generate_binds.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#! /bin/python3
2+
import json
3+
import os
4+
5+
# Define a mapping from modmask values to key names
6+
MODMASK_MAPPING = {
7+
1: "SHIFT",
8+
2: "CAPS_LOCK",
9+
4: "CONTROL",
10+
8: "ALT",
11+
16: "NUM_LOCK",
12+
32: "SUPER",
13+
64: "SUPER",
14+
65: "SHIFT+SUPER",
15+
128: "META"
16+
}
17+
18+
KEYS_MAPPING = {
19+
'mouse:272': 'LEFT CLICK',
20+
'mouse:273': 'RIGHT CLICK',
21+
'mouse:274': 'MIDDLE CLICK',
22+
}
23+
24+
25+
def process_binds():
26+
hyprbinds_path = os.path.expanduser("~/.tmp/hyprbinds")
27+
with open(hyprbinds_path, 'r') as f:
28+
binds = json.load(f)
29+
30+
hyprland_output_path = os.path.expanduser("~/.tmp/bindings/hyprland")
31+
os.makedirs(os.path.dirname(hyprland_output_path), exist_ok=True)
32+
33+
with open(hyprland_output_path, 'w') as file:
34+
for bind in binds:
35+
key = bind.get('key', 'N/A')
36+
key = KEYS_MAPPING.get(key, key)
37+
arg = bind.get('arg', '')
38+
modmask_value = bind.get('modmask', 0)
39+
dispatcher = bind.get('dispatcher', '')
40+
modmask_keys = MODMASK_MAPPING.get(modmask_value, "")
41+
formatted_line = f"::{modmask_keys} {key}::{arg}::{dispatcher}::\n"
42+
file.write(formatted_line)
43+
44+
if __name__ == '__main__':
45+
process_binds()

bin/screencast_postprocess

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/bin/bash
2+
3+
# Check if input file is provided
4+
if [ $# -ne 1 ]; then
5+
echo "Usage: $0 <input_video>"
6+
exit 1
7+
fi
8+
9+
INPUT="$1"
10+
BASENAME="${INPUT%.*}"
11+
OUTPUT="${BASENAME}_processed.mp4"
12+
13+
# Normalize audio and speed up video
14+
ffmpeg -i "$INPUT" \
15+
-filter_complex "[0:a]acompressor=threshold=-20dB:ratio=4:attack=5:release=100,volume=2.0[aout];[0:v]setpts=PTS/1.5[vout]" \
16+
-map "[vout]" -map "[aout]" \
17+
-r 30 -preset fast -crf 23 -c:v libx264 -c:a aac -b:a 192k "$OUTPUT"
18+
19+
echo "Processed video saved as: $OUTPUT"

bin/sync-git-repos

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
#!/bin/bash
2+
3+
# Ensure the required environment variables are set
4+
if [ -z "$FORGEJO_URL" ] || [ -z "$FORGEJO_API_TOKEN" ]; then
5+
echo "Error: FORGEJO_URL and FORGEJO_API_TOKEN must be set in the environment."
6+
exit 1
7+
fi
8+
9+
# Extract the hostname from the Forgejo URL
10+
FORGEJO_HOST=$(echo "$FORGEJO_URL" | awk -F[/:] '{print $4}')
11+
12+
# Determine the organization or user context
13+
if [ -n "$1" ]; then
14+
CONTEXT="$1"
15+
CONTEXT_TYPE="orgs"
16+
echo "Using organization: $CONTEXT"
17+
else
18+
if [ -z "$FORGEJO_USER" ]; then
19+
echo "Error: FORGEJO_USER must be set in the environment when no organization is provided."
20+
exit 1
21+
fi
22+
CONTEXT="$FORGEJO_USER"
23+
CONTEXT_TYPE="user"
24+
echo "No organization provided. Using user: $FORGEJO_USER"
25+
fi
26+
27+
# Use the current working directory as the repository directory
28+
REPO_DIR=$(pwd)
29+
30+
for dir in */; do
31+
if [ ! -d "$dir/.git" ]; then
32+
echo "Skipping $dir - not a Git repository."
33+
continue
34+
fi
35+
36+
repo_name=$(basename "$dir")
37+
echo "Processing repository: $repo_name"
38+
39+
# Construct the API endpoint for repository creation
40+
if [ "$CONTEXT_TYPE" == "orgs" ]; then
41+
API_ENDPOINT="$FORGEJO_URL/api/v1/orgs/$CONTEXT/repos"
42+
else
43+
API_ENDPOINT="$FORGEJO_URL/api/v1/user/repos"
44+
fi
45+
46+
# Check if the repository already exists in Forgejo
47+
if [ "$CONTEXT_TYPE" == "orgs" ]; then
48+
CHECK_REPO_URL="$FORGEJO_URL/api/v1/repos/$CONTEXT/$repo_name"
49+
else
50+
CHECK_REPO_URL="$FORGEJO_URL/api/v1/repos/$FORGEJO_USER/$repo_name"
51+
fi
52+
53+
check_repo_response=$(curl -s -o /dev/null -w "%{http_code}" -X GET "$CHECK_REPO_URL" \
54+
-H "Authorization: token $FORGEJO_API_TOKEN")
55+
56+
if [ "$check_repo_response" -eq 200 ]; then
57+
echo "Repository $repo_name already exists in $CONTEXT. Skipping creation."
58+
continue
59+
fi
60+
61+
# Create the repository
62+
create_repo_response=$(curl -s -o /dev/null -w "%{http_code}" -X POST "$API_ENDPOINT" \
63+
-H "Authorization: token $FORGEJO_API_TOKEN" \
64+
-H "Content-Type: application/json" \
65+
-d '{
66+
"name": "'"$repo_name"'",
67+
"private": false,
68+
"mirror": true
69+
}')
70+
71+
if [ "$create_repo_response" -ne 201 ]; then
72+
echo "Failed to create repository $repo_name in $CONTEXT on Forgejo."
73+
continue
74+
fi
75+
76+
echo "Repository $repo_name created successfully in $CONTEXT on Forgejo."
77+
78+
cd "$dir" || continue
79+
80+
# Check if the remote 'fj' exists
81+
if git remote | grep -q "^fj$"; then
82+
echo "Remote 'fj' already exists. Updating URL."
83+
if [ "$CONTEXT_TYPE" == "orgs" ]; then
84+
git remote set-url fj "ssh://${FORGEJO_SSH_USER}@$FORGEJO_HOST:${FORGEJO_SSH_PORT}/$CONTEXT/$repo_name.git"
85+
else
86+
git remote set-url fj "ssh://${FORGEJO_SSH_USER}@$FORGEJO_HOST:${FORGEJO_SSH_PORT}/${FORGEJO_USER}/$repo_name.git"
87+
fi
88+
else
89+
echo "Adding remote 'fj'."
90+
if [ "$CONTEXT_TYPE" == "orgs" ]; then
91+
git remote add fj "ssh://${FORGEJO_SSH_USER}@$FORGEJO_HOST:${FORGEJO_SSH_PORT}/$CONTEXT/$repo_name.git"
92+
else
93+
git remote add fj "ssh://${FORGEJO_SSH_USER}@$FORGEJO_HOST:${FORGEJO_SSH_PORT}/${FORGEJO_USER}/$repo_name.git"
94+
fi
95+
fi
96+
97+
git push --mirror fj --no-verify
98+
echo "Repository $repo_name mirrored to Forgejo."
99+
cd ..
100+
done
101+
102+
echo "Script completed."

bin/update-hyprland-git

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,6 @@ paru -S \
1414
hyprprop-git \
1515
hyprpicker-git \
1616
hyprpaper-git \
17+
hypridle-git \
1718
hyprland-protocols-git \
1819
xdg-desktop-portal-hyprland-git

0 commit comments

Comments
 (0)