Compare commits

..
26 Commits
Author SHA1 Message Date
Honney b3b3f9825b fix: changed some autostart apps 2026-09-08 23:28:11 +02:00
Hannes 48fb1e6a19 fixes to Notifications 2026-09-02 00:54:14 +02:00
Hannes d07e185ddf feat: update quickshell session to use qt6ct environment variable 2026-08-31 21:37:02 +02:00
Hannes 630634ca4e feat: add quickshell session to autostart sequence remove it from script and removed your Idle and back notifications 2026-08-27 16:08:02 +02:00
Hannes 22cf5c8b86 feat: add support for adjusting audio volume and mute on external audio sources 2026-08-25 14:07:40 +02:00
Hannes 6a1fec6c3d feat: add carla session to autostart script 2026-08-23 21:40:58 +02:00
Hannes 382762c60e perf: Improve hypridle configuration handling
- Use hyprctl dispatch for dpms actions
- Remove unnecessary bash scripts
- Update configuration consistency
2026-08-22 22:24:30 +02:00
Hannes 559d814b61 docs: Update autostart and hypridle configurations
- Updated commands to use tmux for hypridle and hyprpaper
- Removed unnecessary commands
- Updated host-specific commands
- Added ignore-inhibit configuration option to hypridle
- Improved configuration consistency
2026-08-22 22:02:42 +02:00
Hannes ae94b7c449 changes with hypridle 2026-08-22 21:53:57 +02:00
Honney f904ee817e changes in laptop monito setup 2026-08-22 15:46:34 +02:00
Hannes f8d3983603 added scripts for hyprlock 2026-08-22 15:42:30 +02:00
Hannes 50e7c7a9aa added colors.lua 2026-08-21 23:47:02 +02:00
Hannes 8deb311047 disabled hdr due to flickering in games 2026-08-21 19:47:08 +02:00
Honney c7db3bc09d added ocr screenshot 2026-08-16 22:39:33 +02:00
Honney 704df2f325 some small changes and updates 2026-08-15 23:48:11 +02:00
Your Name 0db513c848 move satty window 2026-08-14 12:56:07 +00:00
Your Name f3ae3073ee move satty window and default brush 2026-08-14 12:46:17 +00:00
Your Name f5fea497c9 floating satty 2026-08-14 12:44:01 +00:00
Your Name bac0151865 move from swappy to satty 2026-08-14 12:41:06 +00:00
Your Name 4e40d20092 updates to swappy in screenshots 2026-08-14 12:37:44 +00:00
Your Name da16f88ec3 updates to swappy in screenshots 2026-08-14 12:33:25 +00:00
Your Name 512e3285dd updated screenshot tools to add editor 2026-08-14 12:30:10 +00:00
Your Name 6a2a3ce6dd updated screenshot tools 2026-08-14 12:18:37 +00:00
Hannes b5ce934840 some updates 2026-08-14 13:52:56 +02:00
Hannes a5e11395ee Merge remote-tracking branch 'refs/remotes/origin/main' 2026-08-14 13:47:58 +02:00
Hannes bd0f18d3e5 moved user_config into config 2026-08-14 13:47:34 +02:00
35 changed files with 537 additions and 892 deletions
+3
View File
@@ -3,3 +3,6 @@
hyprlock.conf
hyprpaper.conf
scripts/autostart/workspace
config/color.lua
scripts/hypridle/screen_off.sh
scripts/hypridle/screen_on.sh
+3
View File
@@ -0,0 +1,3 @@
# Readme of the repository
## If hypridle screen turning off breaks
Remove scripts/hypridle/screen_off.sh and scripts/hypridle/screen_on.sh
+4 -4
View File
@@ -6,13 +6,15 @@ hl.on("hyprland.start", function ()
hl.exec_cmd("systemctl --user start hyprpolkitagent")
hl.exec_cmd("tmux new-session -d -s keyring '/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh,gpg'")
hl.exec_cmd("hypridle")
hl.exec_cmd("hyprpaper")
hl.exec_cmd("tmux new-session -d -s hypridle 'hypridle'")
hl.exec_cmd("tmux new-session -d -s hyprpaper 'hyprpaper'")
hl.exec_cmd("tmux new-session -d -s qs 'env QT_QPA_PLATFORMTHEME=qt6ct quickshell'")
if HOSTNAME == "honney-main" then
hl.exec_cmd("tmux new-session -d -s ydotool 'ydotoold'")
hl.exec_cmd("tmux new-session -d -s ollama '/usr/bin/ollama serve'")
hl.exec_cmd("tmux new-session -d -s fah 'cd ~/.local/share/fah && fah-client'")
hl.exec_cmd("tmux new-session -d -s carla 'carla -n /home/honney/Music/1Player.carxp'")
hl.exec_cmd("bash -c '~/.config/hypr/scripts/audio/1player.sh'")
hl.exec_cmd("bash -c '~/.config/hypr/scripts/goxlr/goxlr-start.sh > ~/.config/hypr/scripts/goxlr/goxlr-start.log'")
hl.exec_cmd("bash -c 'sleep 2 && ~/.config/hypr/scripts/wallpapers/random_wallpaper.sh > ~/.config/hypr/scripts/wallpapers/random_wallpaper.log'")
@@ -26,8 +28,6 @@ hl.on("hyprland.start", function ()
hl.exec_cmd("tmux new-session -d -s ollama '/usr/bin/ollama serve'")
hl.exec_cmd("nextcloud")
hl.exec_cmd("discord")
elseif HOSTNAME == "honney-opencode" then
hl.exec_cmd("tmux new-session -d -s oc 'cd ~/Projects && opencode web --hostname 0.0.0.0 --port 4096'")
end
hl.exec_cmd("bash -c '~/.config/hypr/scripts/autostart/autostart.sh > ~/.config/hypr/scripts/autostart/autostart.log'")
+6
View File
@@ -70,11 +70,15 @@ hl.bind("SUPER+P", hl.dsp.exec_cmd("~/.config/hypr/scripts/screenshot/screenshot
hl.bind("SUPER+ALT+P", hl.dsp.exec_cmd("~/.config/hypr/scripts/screenshot/screenshot_monitor.sh"))
hl.bind("SUPER+SHIFT+P", hl.dsp.exec_cmd("~/.config/hypr/scripts/screenshot/screenshot_area.sh"))
hl.bind("SUPER+SHIFT+S", hl.dsp.exec_cmd("~/.config/hypr/scripts/screenshot/screenshot_area_2.sh"))
hl.bind("SUPER+CTRL+O", hl.dsp.exec_cmd("~/.config/hypr/scripts/screenshot/screenshot_ocr.sh"))
-- Audio Control
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"))
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"))
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"))
hl.bind("ALT+XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ 0; wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 5%+"))
hl.bind("ALT+XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ 0; wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 5%-"))
hl.bind("ALT+XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"))
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"))
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause || playerctl play-pause"))
@@ -117,3 +121,5 @@ end
hl.bind("SUPER + SHIFT + W", hl.dsp.global("quickshell:Wallpaper"))
hl.bind("SUPER + SHIFT + J", hl.dsp.global("quickshell:JLearner"))
hl.bind("SUPER + SHIFT + L", hl.dsp.global("quickshell:WLogout"))
hl.bind("SUPER + SHIFT + R", hl.dsp.global("quickshell:QsReload"))
hl.bind("SUPER + SHIFT + N", hl.dsp.global("quickshell:NotificationHistory"))
@@ -32,3 +32,16 @@ if HOSTNAME == "honney-main" then
}
})
end
-- To find the device names: hyprctl devices -j
hl.device({
name = "evision-rgb-keyboard",
kb_layout = "us"
})
for i = 1, 9 do
hl.device({
name = "evision-rgb-keyboard-" .. tostring(i),
kb_layout = "us"
})
end
+135
View File
@@ -0,0 +1,135 @@
if HOSTNAME == "honney-main" then
hl.monitor({
output = "desc:BNQ BenQ EX2710U Y8P00876019",
mode = "3840x2160@144",
position = "0x0",
scale = 1,
transform = 0,
-- bitdepth = 10,
-- cm = "srgb",
-- sdr_eotf = "default",
-- sdrbrightness = 1.0,
-- sdrsaturation = 1.0,
-- vrr = 0,
-- supports_wide_color = 1,
-- supports_hdr = 1,
-- sdr_min_luminance = 0.2,
-- sdr_max_luminance = 600,
})
hl.monitor({
output = "desc:ASUSTek COMPUTER INC PA279CRV S5LMSB007609",
mode = "3840x2160@60",
position = "-3840x0",
scale = 1,
transform = 0,
-- bitdepth = 10,
-- cm = "srgb",
-- sdr_eotf = "default",
-- sdrbrightness = 1.0,
-- sdrsaturation = 1.0,
-- vrr = 0,
-- supports_wide_color = 1,
-- supports_hdr = 1,
-- sdr_min_luminance = 0.2,
-- sdr_max_luminance = 400,
})
hl.monitor({
output = "desc:LG Electronics LG ULTRAFINE 503NTKF3L437",
mode = "3840x2160@60",
position = "0x-2160",
scale = 1,
transform = 2,
-- bitdepth = 10,
-- cm = "srgb",
-- sdr_eotf = "default",
-- sdrbrightness = 1.0,
-- sdrsaturation = 1.0,
-- vrr = 0,
-- supports_wide_color = 1,
-- supports_hdr = 1,
-- sdr_min_luminance = 0.2,
-- sdr_max_luminance = 400,
})
hl.monitor({
output = "desc:LG Electronics LG ULTRAGEAR 107MAKR2RE65",
mode = "1920x1080@144",
position = "-1920x-1080",
scale = 1,
transform = 2,
bitdepth = 10,
})
hl.monitor({
output = "desc:Dell Inc. DELL P2419H D4CN3Q2",
mode = "1920x1080@60",
position = "-1920x-2160",
scale = 1,
transform = 0,
})
elseif HOSTNAME == "hp-laptop" then
hl.monitor({
output = "desc:BNQ BenQ EX2710U 0000000000001",
mode = "3840x2160@120",
position = "960x-2160",
scale = 1,
transform = 0,
-- bitdepth = 10,
-- cm = "srgb",
-- sdr_eotf = "default",
-- sdrbrightness = 1.0,
-- sdrsaturation = 1.0,
-- vrr = 0,
-- supports_wide_color = 1,
-- supports_hdr = 1,
-- sdr_min_luminance = 0.2,
-- sdr_max_luminance = 600,
})
hl.monitor({
output = "desc:ASUSTek COMPUTER INC PA279CRV S5LMSB007609",
mode = "1920x1080@60",
position = "-960x-1080",
scale = 1,
transform = 0,
-- bitdepth = 10,
-- cm = "srgb",
-- sdr_eotf = "default",
-- sdrbrightness = 1.0,
-- sdrsaturation = 1.0,
-- vrr = 0,
-- supports_wide_color = 1,
-- supports_hdr = 1,
-- sdr_min_luminance = 0.2,
-- sdr_max_luminance = 400,
})
hl.monitor({
output = "desc:BOE 0x08A8",
mode = "1920x1080@60",
position = "0x0",
scale = 1,
transform = 0,
})
-- hl.monitor({
-- output = "desc:AOC 24B3HA2 AVKS29A004767",
-- mode = "1920x1080@120",
-- position = "-1920x0",
-- scale = 1,
-- transform = 0,
-- })
elseif HOSTNAME == "arch" then
hl.monitor({
output = "desc:AOC CU34G2XP 1Q1R4HA002436",
mode = "3440x1440@180",
position = "0x0",
scale = 1,
transform = 0,
})
hl.monitor({
output = "desc:AOC 24G1WG4 0x0001A57A",
mode = "1920x1080@60",
position = "-1920x0",
scale = 1,
transform = 0,
})
end
-- mirror string Output name to mirror
-- icc string Absolute path to an ICC profile
+7 -4
View File
@@ -6,8 +6,9 @@ hl.config({
float_gaps = 0,
gaps_workspaces = 0,
col = {
inactive_border = 0xff00B7EB,
active_border = { colors = { "rgba(ff0000ff)", "rgba(ffff00ff)", "rgba(00ff00ff)", "rgba(00ffffff)", "rgba(0000ffff)", "rgba(ff00ffff)" }, angle = 45 },
inactive_border = INACTIVE_COLOR,
-- active_border = { colors = { "rgba(ff0000ff)", "rgba(ffff00ff)", "rgba(00ff00ff)", "rgba(00ffffff)", "rgba(0000ffff)", "rgba(ff00ffff)" }, angle = 45 },
active_border = ACTIVE_COLOR,
nogroup_border = 0xffffaaff,
nogroup_border_active = 0xffff00ff,
},
@@ -72,7 +73,7 @@ if USER == "honney" then
render = {
direct_scanout = 2,
cm_enabled = true,
cm_auto_hdr = 1,
cm_auto_hdr = 0,
}
})
elseif USER == "teo" then
@@ -134,6 +135,8 @@ hl.config({
background_color = 0x000000,
on_focus_under_fullscreen = 0,
middle_click_paste = false,
key_press_enables_dpms = true,
mouse_move_enables_dpms = true
}
})
@@ -154,7 +157,7 @@ end
if USER == "honney" then
hl.config({
quirks ={
prefer_hdr = 1,
prefer_hdr = 0,
}
})
else
+2
View File
@@ -0,0 +1,2 @@
ACTIVE_COLOR = 0xFFFF0000
INACTIVE_COLOR = 0xFF0000FF
+10 -12
View File
@@ -1,22 +1,20 @@
# listener {
# timeout = 200
# on-timeout = notify-send -u low "You are idle!"
# on-resume = notify-send -u low "Welcome back!"
# ignore_inhibit = true
# }
listener {
timeout = 300
on-timeout = hyprlock
}
# listener {
# timeout = 360
# on-timeout = bash -c 'for o in $(hyprctl monitors -j | jq -r ".[].name"); do wlopm --off "$o"; done'
# on-resume = bash -c 'for o in $(hyprctl monitors -j | jq -r ".[].name"); do wlopm --on "$o"; done'
# }
listener {
timeout = 360
on-timeout = hyprctl dispatch "hl.dsp.dpms({action = 'off'})"
on-resume = hyprctl dispatch "hl.dsp.dpms({action = 'on'})"
}
listener {
timeout = 250 # in seconds.
on-timeout = notify-send "You are idle!" # command to run when timeout has passed.
on-resume = notify-send "Welcome back!" # command to run when activity is detected after timeout has fired.
# alternative:
# on-timeout = wlopm --off '*'
# on-resume = wlopm --on '*'
}
+5 -4
View File
@@ -1,9 +1,10 @@
require("config/hostname")
require("config/color")
require("config/bind")
require("config/env")
require("config/theme")
require("config/autostart")
require("user_config/monitor")
require("user_config/input")
require("user_config/workspacerules")
require("user_config/windowrules")
require("config/monitor")
require("config/input")
require("config/workspacerules")
require("config/windowrules")
+20 -1
View File
@@ -23,6 +23,9 @@ REQUIRED_PKGS=(
jq
inetutils
tmux
grim
slurp
wl-clipboard
)
OPTIONAL_PKGS=(
@@ -38,7 +41,8 @@ OPTIONAL_PKGS=(
imagemagick "Image tools" OFF
playerctl "Media control" OFF
wlopm "Monitor power" OFF
hyprshot "Screenshot tool" OFF
satty "Screenshot editor" OFF
oxipng "PNG compressor" OFF
matugen "Theme generator" OFF
)
@@ -86,6 +90,21 @@ mkdir -p "$SCRIPT_DIR/scripts/autostart"
ok "hyprpaper config created"
}
[[ ! -f "$SCRIPT_DIR/config/color.lua" ]] && {
cp "$SCRIPT_DIR/examples/color.lua.example" "$SCRIPT_DIR/config/color.lua"
ok "color config created"
}
[[ ! -f "$SCRIPT_DIR/config/color.lua" ]] && {
cp "$SCRIPT_DIR/examples/color.lua.example" "$SCRIPT_DIR/config/color.lua"
ok "color config created"
}
[[ ! -f "$SCRIPT_DIR/config/color.lua" ]] && {
cp "$SCRIPT_DIR/examples/color.lua.example" "$SCRIPT_DIR/config/color.lua"
ok "color config created"
}
# ----------------------------
# Install
# ----------------------------
+99 -644
View File
@@ -14,518 +14,26 @@
<BeatsPerMinute>120</BeatsPerMinute>
</Transport>
<!-- LSP Mixer x8 Stereo -->
<!-- Simple Low Pass Filter -->
<Plugin>
<Info>
<Type>LV2</Type>
<Name>LSP Mixer x8 Stereo</Name>
<URI>http://lsp-plug.in/plugins/lv2/mixer_x8_stereo</URI>
<Type>LADSPA</Type>
<Name>Simple Low Pass Filter</Name>
<Binary>/usr/lib/ladspa/filter.so</Binary>
<Label>lpf</Label>
<UniqueID>1041</UniqueID>
</Info>
<Data>
<Active>Yes</Active>
<ControlChannel>1</ControlChannel>
<Options>0x1</Options>
<Options>0x0</Options>
<Parameter>
<Index>0</Index>
<Name>Enabled</Name>
<Symbol>enabled</Symbol>
<Value>1</Value>
<Name>Cutoff Frequency</Name>
<Value>0.00916666630655527</Value>
</Parameter>
<Parameter>
<Index>1</Index>
<Name>Mono output</Name>
<Symbol>mono</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>2</Index>
<Name>Output balance</Name>
<Symbol>bal</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>3</Index>
<Name>Dry amount</Name>
<Symbol>dry</Symbol>
<Value>1</Value>
</Parameter>
<Parameter>
<Index>4</Index>
<Name>Wet amount</Name>
<Symbol>wet</Symbol>
<Value>1</Value>
</Parameter>
<Parameter>
<Index>5</Index>
<Name>Output gain</Name>
<Symbol>g_out</Symbol>
<Value>1</Value>
</Parameter>
<Parameter>
<Index>10</Index>
<Name>Channel solo 1</Name>
<Symbol>cs_1</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>11</Index>
<Name>Channel mute 1</Name>
<Symbol>cm_1</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>12</Index>
<Name>Channel phase invert 1</Name>
<Symbol>ci_1</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>13</Index>
<Name>Channel pan left 1</Name>
<Symbol>cp_1l</Symbol>
<Value>-100</Value>
</Parameter>
<Parameter>
<Index>14</Index>
<Name>Channel pan right 1</Name>
<Symbol>cp_1r</Symbol>
<Value>100</Value>
</Parameter>
<Parameter>
<Index>15</Index>
<Name>Channel output balance 1</Name>
<Symbol>cb_1</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>16</Index>
<Name>Channel gain 1</Name>
<Symbol>cg_1</Symbol>
<Value>1</Value>
</Parameter>
<Parameter>
<Index>19</Index>
<Name>Channel solo 2</Name>
<Symbol>cs_2</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>20</Index>
<Name>Channel mute 2</Name>
<Symbol>cm_2</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>21</Index>
<Name>Channel phase invert 2</Name>
<Symbol>ci_2</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>22</Index>
<Name>Channel pan left 2</Name>
<Symbol>cp_2l</Symbol>
<Value>-100</Value>
</Parameter>
<Parameter>
<Index>23</Index>
<Name>Channel pan right 2</Name>
<Symbol>cp_2r</Symbol>
<Value>100</Value>
</Parameter>
<Parameter>
<Index>24</Index>
<Name>Channel output balance 2</Name>
<Symbol>cb_2</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>25</Index>
<Name>Channel gain 2</Name>
<Symbol>cg_2</Symbol>
<Value>1</Value>
</Parameter>
<Parameter>
<Index>28</Index>
<Name>Channel solo 3</Name>
<Symbol>cs_3</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>29</Index>
<Name>Channel mute 3</Name>
<Symbol>cm_3</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>30</Index>
<Name>Channel phase invert 3</Name>
<Symbol>ci_3</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>31</Index>
<Name>Channel pan left 3</Name>
<Symbol>cp_3l</Symbol>
<Value>-100</Value>
</Parameter>
<Parameter>
<Index>32</Index>
<Name>Channel pan right 3</Name>
<Symbol>cp_3r</Symbol>
<Value>100</Value>
</Parameter>
<Parameter>
<Index>33</Index>
<Name>Channel output balance 3</Name>
<Symbol>cb_3</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>34</Index>
<Name>Channel gain 3</Name>
<Symbol>cg_3</Symbol>
<Value>1</Value>
</Parameter>
<Parameter>
<Index>37</Index>
<Name>Channel solo 4</Name>
<Symbol>cs_4</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>38</Index>
<Name>Channel mute 4</Name>
<Symbol>cm_4</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>39</Index>
<Name>Channel phase invert 4</Name>
<Symbol>ci_4</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>40</Index>
<Name>Channel pan left 4</Name>
<Symbol>cp_4l</Symbol>
<Value>-100</Value>
</Parameter>
<Parameter>
<Index>41</Index>
<Name>Channel pan right 4</Name>
<Symbol>cp_4r</Symbol>
<Value>100</Value>
</Parameter>
<Parameter>
<Index>42</Index>
<Name>Channel output balance 4</Name>
<Symbol>cb_4</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>43</Index>
<Name>Channel gain 4</Name>
<Symbol>cg_4</Symbol>
<Value>1</Value>
</Parameter>
<Parameter>
<Index>46</Index>
<Name>Channel solo 5</Name>
<Symbol>cs_5</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>47</Index>
<Name>Channel mute 5</Name>
<Symbol>cm_5</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>48</Index>
<Name>Channel phase invert 5</Name>
<Symbol>ci_5</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>49</Index>
<Name>Channel pan left 5</Name>
<Symbol>cp_5l</Symbol>
<Value>-100</Value>
</Parameter>
<Parameter>
<Index>50</Index>
<Name>Channel pan right 5</Name>
<Symbol>cp_5r</Symbol>
<Value>100</Value>
</Parameter>
<Parameter>
<Index>51</Index>
<Name>Channel output balance 5</Name>
<Symbol>cb_5</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>52</Index>
<Name>Channel gain 5</Name>
<Symbol>cg_5</Symbol>
<Value>1</Value>
</Parameter>
<Parameter>
<Index>55</Index>
<Name>Channel solo 6</Name>
<Symbol>cs_6</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>56</Index>
<Name>Channel mute 6</Name>
<Symbol>cm_6</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>57</Index>
<Name>Channel phase invert 6</Name>
<Symbol>ci_6</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>58</Index>
<Name>Channel pan left 6</Name>
<Symbol>cp_6l</Symbol>
<Value>-100</Value>
</Parameter>
<Parameter>
<Index>59</Index>
<Name>Channel pan right 6</Name>
<Symbol>cp_6r</Symbol>
<Value>100</Value>
</Parameter>
<Parameter>
<Index>60</Index>
<Name>Channel output balance 6</Name>
<Symbol>cb_6</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>61</Index>
<Name>Channel gain 6</Name>
<Symbol>cg_6</Symbol>
<Value>1</Value>
</Parameter>
<Parameter>
<Index>64</Index>
<Name>Channel solo 7</Name>
<Symbol>cs_7</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>65</Index>
<Name>Channel mute 7</Name>
<Symbol>cm_7</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>66</Index>
<Name>Channel phase invert 7</Name>
<Symbol>ci_7</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>67</Index>
<Name>Channel pan left 7</Name>
<Symbol>cp_7l</Symbol>
<Value>-100</Value>
</Parameter>
<Parameter>
<Index>68</Index>
<Name>Channel pan right 7</Name>
<Symbol>cp_7r</Symbol>
<Value>100</Value>
</Parameter>
<Parameter>
<Index>69</Index>
<Name>Channel output balance 7</Name>
<Symbol>cb_7</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>70</Index>
<Name>Channel gain 7</Name>
<Symbol>cg_7</Symbol>
<Value>1</Value>
</Parameter>
<Parameter>
<Index>73</Index>
<Name>Channel solo 8</Name>
<Symbol>cs_8</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>74</Index>
<Name>Channel mute 8</Name>
<Symbol>cm_8</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>75</Index>
<Name>Channel phase invert 8</Name>
<Symbol>ci_8</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>76</Index>
<Name>Channel pan left 8</Name>
<Symbol>cp_8l</Symbol>
<Value>-100</Value>
</Parameter>
<Parameter>
<Index>77</Index>
<Name>Channel pan right 8</Name>
<Symbol>cp_8r</Symbol>
<Value>100</Value>
</Parameter>
<Parameter>
<Index>78</Index>
<Name>Channel output balance 8</Name>
<Symbol>cb_8</Symbol>
<Value>0</Value>
</Parameter>
<Parameter>
<Index>79</Index>
<Name>Channel gain 8</Name>
<Symbol>cg_8</Symbol>
<Value>1</Value>
</Parameter>
<CustomData>
<Type>http://lv2plug.in/ns/ext/atom#String</Type>
<Key>http://lsp-plug.in/plugins/lv2/mixer_x8_stereo/ports#send</Key>
<Value></Value>
</CustomData>
<CustomData>
<Type>http://lv2plug.in/ns/ext/atom#String</Type>
<Key>http://lsp-plug.in/plugins/lv2/mixer_x8_stereo/ports#return</Key>
<Value></Value>
</CustomData>
<CustomData>
<Type>http://lv2plug.in/ns/ext/atom#String</Type>
<Key>http://lsp-plug.in/plugins/lv2/mixer_x8_stereo/ports#ret_1</Key>
<Value></Value>
</CustomData>
<CustomData>
<Type>http://lv2plug.in/ns/ext/atom#String</Type>
<Key>http://lsp-plug.in/plugins/lv2/mixer_x8_stereo/ports#ret_2</Key>
<Value></Value>
</CustomData>
<CustomData>
<Type>http://lv2plug.in/ns/ext/atom#String</Type>
<Key>http://lsp-plug.in/plugins/lv2/mixer_x8_stereo/ports#ret_3</Key>
<Value></Value>
</CustomData>
<CustomData>
<Type>http://lv2plug.in/ns/ext/atom#String</Type>
<Key>http://lsp-plug.in/plugins/lv2/mixer_x8_stereo/ports#ret_4</Key>
<Value></Value>
</CustomData>
<CustomData>
<Type>http://lv2plug.in/ns/ext/atom#String</Type>
<Key>http://lsp-plug.in/plugins/lv2/mixer_x8_stereo/ports#ret_5</Key>
<Value></Value>
</CustomData>
<CustomData>
<Type>http://lv2plug.in/ns/ext/atom#String</Type>
<Key>http://lsp-plug.in/plugins/lv2/mixer_x8_stereo/ports#ret_6</Key>
<Value></Value>
</CustomData>
<CustomData>
<Type>http://lv2plug.in/ns/ext/atom#String</Type>
<Key>http://lsp-plug.in/plugins/lv2/mixer_x8_stereo/ports#ret_7</Key>
<Value></Value>
</CustomData>
<CustomData>
<Type>http://lv2plug.in/ns/ext/atom#String</Type>
<Key>http://lsp-plug.in/plugins/lv2/mixer_x8_stereo/ports#ret_8</Key>
<Value></Value>
</CustomData>
<CustomData>
<Type>http://lv2plug.in/ns/ext/atom#Object</Type>
<Key>http://lsp-plug.in/plugins/lv2/mixer_x8_stereo/preset_state</Key>
<Value>AAAAAFMAAABUAAAAAAAAAAEAAAARAAAAAAAAAAAAAABVAAAAAAAAAAQAAAAHAAAAAAAAAAAAAABWAAAAAAAAAAQAAAAHAAAAAAAAAAAAAAA=</Value>
</CustomData>
</Data>
</Plugin>
@@ -721,50 +229,43 @@
<CustomData>
<Type>http://lv2plug.in/ns/ext/atom#Object</Type>
<Key>http://lsp-plug.in/plugins/lv2/mixer_x4_mono/preset_state</Key>
<Value>AAAAAFMAAABUAAAAAAAAAAEAAAARAAAAAAAAAAAAAABVAAAAAAAAAAQAAAAHAAAAAAAAAAAAAABWAAAAAAAAAAQAAAAHAAAAAAAAAAAAAAA=</Value>
<Value>AAAAAFUAAABWAAAAAAAAAAEAAAARAAAAAAAAAAAAAABXAAAAAAAAAAQAAAAHAAAAAAAAAAAAAABYAAAAAAAAAAQAAAAHAAAAAAAAAAAAAAA=</Value>
</CustomData>
</Data>
</Plugin>
<!-- Simple Low Pass Filter -->
<Plugin>
<Info>
<Type>LADSPA</Type>
<Name>Simple Low Pass Filter</Name>
<Binary>/usr/lib/ladspa/filter.so</Binary>
<Label>lpf</Label>
<UniqueID>1041</UniqueID>
</Info>
<Data>
<Active>Yes</Active>
<ControlChannel>1</ControlChannel>
<Options>0x0</Options>
<Parameter>
<Index>0</Index>
<Name>Cutoff Frequency</Name>
<Value>0.00916666630655527</Value>
</Parameter>
</Data>
</Plugin>
<ExternalPatchbay>
<Connection>
<Source>GoXLR Chat Mic:capture_FL</Source>
<Target>WEBRTC VoiceEngine:input_FL</Target>
<Source>GoXLR Stream Mix 1:capture_FL</Source>
<Target>Ryzen HD Audio Controller Analog Surround 5.1:playback_FL</Target>
</Connection>
<Connection>
<Source>GoXLR Chat Mic:capture_FR</Source>
<Target>WEBRTC VoiceEngine:input_FR</Target>
<Source>GoXLR Stream Mix 1:capture_FL</Source>
<Target>LSP Mixer x4 Mono:Input</Target>
</Connection>
<Connection>
<Source>GoXLR Stream Mix 1:capture_FL</Source>
<Target>Ryzen HD Audio Controller Analog Surround 5.1:playback_RL</Target>
</Connection>
<Connection>
<Source>GoXLR Stream Mix 1:capture_FR</Source>
<Target>Ryzen HD Audio Controller Analog Surround 5.1:playback_FR</Target>
</Connection>
<Connection>
<Source>GoXLR Stream Mix 1:capture_FR</Source>
<Target>LSP Mixer x4 Mono:Audio input 1</Target>
</Connection>
<Connection>
<Source>GoXLR Stream Mix 1:capture_FR</Source>
<Target>Ryzen HD Audio Controller Analog Surround 5.1:playback_RR</Target>
</Connection>
<Connection>
<Source>GoXLR 0:capture_AUX0</Source>
<Target>Split GoXLR Broadcast Stream Mix:input_AUX0</Target>
<Target>Split GoXLR Stream Mix 1:input_AUX0</Target>
</Connection>
<Connection>
<Source>GoXLR 0:capture_AUX1</Source>
<Target>Split GoXLR Broadcast Stream Mix:input_AUX1</Target>
<Target>Split GoXLR Stream Mix 1:input_AUX1</Target>
</Connection>
<Connection>
<Source>GoXLR 0:capture_AUX2</Source>
@@ -791,20 +292,28 @@
<Target>GoXLR Utility:input_FR</Target>
</Connection>
<Connection>
<Source>GoXLR Broadcast Stream Mix:capture_FL</Source>
<Target>Carla.226/LSP Mixer x8 Stereo:Audio input left 2</Target>
<Source>Split GoXLR System:output_AUX0</Source>
<Target>GoXLR 0:playback_AUX0</Target>
</Connection>
<Connection>
<Source>GoXLR Broadcast Stream Mix:capture_FR</Source>
<Target>Carla.226/LSP Mixer x8 Stereo:Audio input right 2</Target>
<Source>Split GoXLR System:output_AUX1</Source>
<Target>GoXLR 0:playback_AUX1</Target>
</Connection>
<Connection>
<Source>Family 17h/19h/1ah HD Audio Controller Analog Stereo:capture_FL</Source>
<Target>Carla.226/LSP Mixer x8 Stereo:Audio input left 1</Target>
<Source>Split GoXLR Game:output_AUX2</Source>
<Target>GoXLR 0:playback_AUX2</Target>
</Connection>
<Connection>
<Source>Family 17h/19h/1ah HD Audio Controller Analog Stereo:capture_FR</Source>
<Target>Carla.226/LSP Mixer x8 Stereo:Audio input right 1</Target>
<Source>Split GoXLR Game:output_AUX3</Source>
<Target>GoXLR 0:playback_AUX3</Target>
</Connection>
<Connection>
<Source>Split GoXLR Music:output_AUX6</Source>
<Target>GoXLR 0:playback_AUX6</Target>
</Connection>
<Connection>
<Source>Split GoXLR Music:output_AUX7</Source>
<Target>GoXLR 0:playback_AUX7</Target>
</Connection>
<Connection>
<Source>Split GoXLR Sample:output_AUX8</Source>
@@ -823,52 +332,16 @@
<Target>GoXLR 0:playback_AUX5</Target>
</Connection>
<Connection>
<Source>Split GoXLR Music:output_AUX6</Source>
<Target>GoXLR 0:playback_AUX6</Target>
<Source>Simple Low Pass Filter:Output</Source>
<Target>Ryzen HD Audio Controller Analog Surround 5.1:playback_LFE</Target>
</Connection>
<Connection>
<Source>Split GoXLR Music:output_AUX7</Source>
<Target>GoXLR 0:playback_AUX7</Target>
<Source>LSP Mixer x4 Mono:Output</Source>
<Target>Simple Low Pass Filter:Input</Target>
</Connection>
<Connection>
<Source>Split GoXLR Game:output_AUX2</Source>
<Target>GoXLR 0:playback_AUX2</Target>
</Connection>
<Connection>
<Source>Split GoXLR Game:output_AUX3</Source>
<Target>GoXLR 0:playback_AUX3</Target>
</Connection>
<Connection>
<Source>Split GoXLR System:output_AUX0</Source>
<Target>GoXLR 0:playback_AUX0</Target>
</Connection>
<Connection>
<Source>Split GoXLR System:output_AUX1</Source>
<Target>GoXLR 0:playback_AUX1</Target>
</Connection>
<Connection>
<Source>Carla.226/LSP Mixer x8 Stereo:Output L</Source>
<Target>Family 17h/19h/1ah HD Audio Controller Analog Surround 5.1:playback_FL</Target>
</Connection>
<Connection>
<Source>Carla.226/LSP Mixer x8 Stereo:Output L</Source>
<Target>Carla.226/LSP Mixer x4 Mono:Audio input 1</Target>
</Connection>
<Connection>
<Source>Carla.226/LSP Mixer x8 Stereo:Output R</Source>
<Target>Family 17h/19h/1ah HD Audio Controller Analog Surround 5.1:playback_FR</Target>
</Connection>
<Connection>
<Source>Carla.226/LSP Mixer x8 Stereo:Output R</Source>
<Target>Carla.226/LSP Mixer x4 Mono:Audio input 2</Target>
</Connection>
<Connection>
<Source>WEBRTC VoiceEngine:output_FL</Source>
<Target>GoXLR Chat:playback_FL</Target>
</Connection>
<Connection>
<Source>WEBRTC VoiceEngine:output_FR</Source>
<Target>GoXLR Chat:playback_FR</Target>
<Source>LSP Mixer x4 Mono:Output</Source>
<Target>Ryzen HD Audio Controller Analog Surround 5.1:playback_FC</Target>
</Connection>
<Connection>
<Source>Floorp:output_FL</Source>
@@ -878,96 +351,78 @@
<Source>Floorp:output_FR</Source>
<Target>GoXLR System:playback_FR</Target>
</Connection>
<Connection>
<Source>Carla.226/LSP Mixer x4 Mono:Output</Source>
<Target>Family 17h/19h/1ah HD Audio Controller Analog Surround 5.1:playback_FC</Target>
</Connection>
<Connection>
<Source>Carla.226/LSP Mixer x4 Mono:Output</Source>
<Target>Carla.226/Simple Low Pass Filter:Input</Target>
</Connection>
<Connection>
<Source>Carla.226/Simple Low Pass Filter:Output</Source>
<Target>Family 17h/19h/1ah HD Audio Controller Analog Surround 5.1:playback_LFE</Target>
</Connection>
<Positions>
<Position x1="1105" y1="1578">
<Position x1="1119" y1="629">
<Name>GoXLR Chat Mic</Name>
</Position>
<Position x1="1034" y1="538" x2="1909" y2="1027">
<Position x1="1447" y1="1476">
<Name>GoXLR Stream Mix 1</Name>
</Position>
<Position x1="198" y1="1207" x2="1501" y2="777">
<Name>GoXLR 0</Name>
</Position>
<Position x1="1155" y1="1705">
<Position x1="575" y1="828">
<Name>GoXLR Sampler</Name>
</Position>
<Position x1="1463" y1="881">
<Name>GoXLR Broadcast Stream Mix</Name>
<Position x1="1119" y1="925" x2="2136" y2="1570">
<Name>Ryzen HD Audio Controller Analog Stereo</Name>
</Position>
<Position x1="1446" y1="1290" x2="2257" y2="1128">
<Name>Family 17h/19h/1ah HD Audio Controller Analog Stereo</Name>
</Position>
<Position x1="1301" y1="1233">
<Name>Split GoXLR Sample</Name>
</Position>
<Position x1="1300" y1="1081">
<Name>Split GoXLR Chat</Name>
</Position>
<Position x1="1299" y1="1151">
<Name>Split GoXLR Music</Name>
</Position>
<Position x1="1300" y1="1012">
<Name>Split GoXLR Game</Name>
</Position>
<Position x1="1308" y1="946">
<Position x1="1119" y1="999">
<Name>Split GoXLR System</Name>
</Position>
<Position x1="1241" y1="1586">
<Name>WEBRTC VoiceEngine</Name>
<Position x1="1119" y1="1073">
<Name>Split GoXLR Game</Name>
</Position>
<Position x1="1277" y1="1360">
<Name>Floorp</Name>
<Position x1="1119" y1="1147">
<Name>Split GoXLR Music</Name>
</Position>
<Position x1="1447" y1="1333">
<Position x1="1119" y1="1221">
<Name>Split GoXLR Sample</Name>
</Position>
<Position x1="1119" y1="1295">
<Name>Split GoXLR Chat</Name>
</Position>
<Position x1="1119" y1="1369">
<Name>GoXLR System</Name>
</Position>
<Position x1="1447" y1="1407">
<Name>GoXLR Sample</Name>
</Position>
<Position x1="1447" y1="1629">
<Name>GoXLR Chat</Name>
</Position>
<Position x1="1447" y1="1481">
<Name>GoXLR Music</Name>
</Position>
<Position x1="1447" y1="1555">
<Position x1="1119" y1="1443">
<Name>GoXLR Game</Name>
</Position>
<Position x1="1870" y1="1977" x2="2544" y2="1278">
<Name>Family 17h/19h/1ah HD Audio Controller Analog Surround 5.1</Name>
<Position x1="1119" y1="1517">
<Name>GoXLR Music</Name>
</Position>
<Position x1="1426" y1="401">
<Name>Split GoXLR Sampler</Name>
<Position x1="1119" y1="1591">
<Name>GoXLR Sample</Name>
</Position>
<Position x1="1413" y1="489">
<Position x1="1119" y1="1665">
<Name>GoXLR Chat</Name>
</Position>
<Position x1="835" y1="1844" x2="2058" y2="1445">
<Name>Ryzen HD Audio Controller Analog Surround 5.1</Name>
</Position>
<Position x1="1119" y1="1731">
<Name>Split GoXLR Chat Mic</Name>
</Position>
<Position x1="1424" y1="307">
<Name>Split GoXLR Broadcast Stream Mix</Name>
<Position x1="1119" y1="1731">
<Name>Split GoXLR Stream Mix 1</Name>
</Position>
<Position x1="1447" y1="1769" x2="1952" y2="2357">
<Position x1="1119" y1="1731">
<Name>Split GoXLR Sampler</Name>
</Position>
<Position x1="528" y1="1184" x2="2132" y2="1931">
<Name>Midi-Bridge</Name>
</Position>
<Position x1="1447" y1="1769" x2="1843" y2="1769">
<Position x1="1119" y1="1731" x2="1840" y2="2042">
<Name>BLE MIDI 1</Name>
</Position>
<Position x1="1874" y1="1252" pluginId="0">
<Name>Carla.226/LSP Mixer x8 Stereo</Name>
<Position x1="1825" y1="1600" pluginId="0">
<Name>Simple Low Pass Filter</Name>
</Position>
<Position x1="2211" y1="1377" pluginId="1">
<Name>Carla.226/LSP Mixer x4 Mono</Name>
<Position x1="1621" y1="1544" pluginId="1">
<Name>LSP Mixer x4 Mono</Name>
</Position>
<Position x1="2476" y1="1444" pluginId="2">
<Name>Carla.226/Simple Low Pass Filter</Name>
<Position x1="783" y1="825">
<Name>GoXLR Utility</Name>
</Position>
</Positions>
</ExternalPatchbay>
+1 -1
View File
@@ -8,4 +8,4 @@
killall carla
# start new session
nohup carla -n ~/.config/hypr/scripts/audio/1Player.carxp &
tmux new-session -d -s carla '~/.config/hypr/scripts/audio/1Player.carxp'
+1 -1
View File
@@ -9,4 +9,4 @@
killall carla
# start new session
nohup carla -n ~/.config/hypr/scripts/audio/2Player.carxp &
tmux new-session -d -s carla '~/.config/hypr/scripts/audio/2Player.carxp'
+1 -1
View File
@@ -116,4 +116,4 @@ for i in 4 3 2 1; do
fi
done
tmux new-session -d -s qs 'sleep 4 && quickshell'
# tmux new-session -d -s qs 'sleep 4 && quickshell'
+2 -3
View File
@@ -1,9 +1,8 @@
#!/bin/bash
# Source the functions file
notify-send "GoXLR inteface is starting"
notify-send --app-name "GOXLR client" --icon "goxlr-utility" -u normal "Starting" "GoXLR inteface is starting"
# nohup goxlr-daemon &
sleep 10
goxlr-client profiles device load 'Default'
notify-send "GoXLR start complete"
notify-send --app-name "GOXLR client" --icon "goxlr-utility" -u normal "Started" "GoXLR start complete"
+3 -6
View File
@@ -1,11 +1,8 @@
#!/bin/bash
# Source the functions file
source "$HOME/.config/function_helper.sh"
SCRIPT="goxlr-daemon"
SCRIPT2="$HOME/.config/hypr/scripts/goxlr/goxlr-settings-start.sh"
nohup "$SCRIPT" &
send_notification "normal" "GOXLR daemon Started" "Launched the GOXLR Daemon to control the Audio" "$HOME/.icons/BeautyLine-Garuda/apps/scalable/goxlr-utility.svg"
nohup "$SCRIPT2" &
tmux new-session -d -s goxlr "$SCRIPT" &
notify-send --app-name "GOXLR daemon" --icon "goxlr-utility" -u normal "Started" "Launched the GOXLR Daemon to control the Audio"
"$SCRIPT2"
+17
View File
@@ -0,0 +1,17 @@
#!/bin/bash
[ -f /sys/class/power_supply/BAT0/type ] || exit 1
type=$(</sys/class/power_supply/BAT0/type)
[ "$type" != "Battery" ] && exit 1
cap=$(</sys/class/power_supply/BAT0/capacity)
stat=$(</sys/class/power_supply/BAT0/status)
if [ "$stat" = "Discharging" ]; then
printf "󰁹 %s%%" "$cap"
elif [ "$stat" = "Charging" ]; then
printf "󰂄 %s%%" "$cap"
elif [ "$stat" = "Full" ]; then
printf "󰁹 %s%%" "Full"
else
printf ""
fi
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash
s=$(cut -d. -f1 /proc/uptime)
h=$((s / 3600))
m=$(((s % 3600) / 60))
printf "󱦟 %02d:%02dh" "$h" "$m"
+1 -1
View File
@@ -7,4 +7,4 @@ source "$HOME/.config/function_helper.sh"
send_notification "low" "Pressed Makropad Button" "Row 1, Colums 4" "$HOME/.icons/BeautyLine-Garuda/apps/scalable/keyboard.svg"
~/.config/hypr/scripts/writing/todo.sh
~/.config/hypr/scripts/makropad/writing/todo.sh
+1 -1
View File
@@ -5,4 +5,4 @@ source "$HOME/.config/function_helper.sh"
send_notification "low" "Pressed Makropad Button" "Row 2, Colums 4 (08)" "$HOME/.icons/BeautyLine-Garuda/apps/scalable/keyboard.svg"
~/.config/hypr/scripts/writing/tmdb.sh
~/.config/hypr/scripts/makropad/writing/tmdb.sh
+43 -9
View File
@@ -3,17 +3,51 @@
### ~/.config/hypr/scripts/screenshot/screenshot_area.sh
###
time=$(date +%Y-%m-%d-%I-%M-%S)
geometry=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | "\(.width)x\(.height)"')
time=$(date +%Y-%m-%d-%H%M%S)
dir="$(xdg-user-dir PICTURES)/Screenshots"
file="Screenshot_${time}_${geometry}.png"
file="Screenshot_${time}.png"
mkdir -p "$dir"
# Take screenshot of selected region using hyprshot
hyprshot -m region -o "$dir" -f "$file"
# Select a region with slurp; exit silently if cancelled (ESC/right-click)
geometry=$(slurp) || exit 1
# Optional: open in swappy for annotation (since hyprshot doesn't pipe to swappy directly)
# if command -v swappy >/dev/null 2>&1; then
# swappy -f "$dir/$file"
# fi
# Capture region, save it and copy to clipboard
grim -g "$geometry" "$dir/$file" || exit 1
wl-copy -t image/png < "$dir/$file"
if command -v notify-send >/dev/null 2>&1; then
notify-send --app-name "Screenshot" --icon "camera-photo" -u normal "Area" "Screenshot saved $file"
fi
# Open the editor if satty is available (blocks until it is closed).
# satty writes the annotated image to --output-filename on Ctrl+s (and on
# Esc/Enter here) and exits immediately. It is launched floating, without
# decorations, with the pen preselected and moved over the captured area.
if command -v satty >/dev/null 2>&1; then
x=$(cut -d, -f1 <<< "$geometry")
y=$(cut -d, -f2 <<< "$geometry" | cut -d' ' -f1)
satty --filename "$dir/$file" --output-filename "$dir/$file" \
--copy-command wl-copy --actions-on-escape save-to-file --early-exit \
--floating-hack --no-window-decoration --initial-tool brush &
pid=$!
for _ in $(seq 1 20); do
addr=$(hyprctl clients -j 2>/dev/null | jq -r --argjson p "$pid" '.[] | select(.pid == $p) | .address' | head -1)
[ -n "$addr" ] && break
sleep 0.1
done
if [ -n "$addr" ]; then
# Lua config (Hyprland 0.55+) dispatches through hl.dsp.*, so try
# hyprctl eval first, then the raw lua dispatch, then classic syntax.
hyprctl eval "hl.dispatch(hl.dsp.window.move({ x = $x, y = $y, window = 'address:$addr' }))" >/dev/null 2>&1 ||
hyprctl dispatch "hl.dsp.window.move({ x = $x, y = $y, window = 'address:$addr' })" >/dev/null 2>&1 ||
hyprctl dispatch movewindowpixel "exact $x $y,address:$addr" >/dev/null 2>&1
fi
wait "$pid"
wl-copy -t image/png < "$dir/$file"
fi
# Compress the resulting image in the background if oxipng is available
if command -v oxipng >/dev/null 2>&1; then
oxipng --strip safe -o 4 "$dir/$file" &
fi
+8 -8
View File
@@ -1,14 +1,14 @@
#!/bin/bash
###
### ~/.config/hypr/scripts/screenshot/screenshot_area.sh
### ~/.config/hypr/scripts/screenshot/screenshot_area_2.sh
###
time=$(date +%Y-%m-%d-%I-%M-%S)
geometry=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | "\(.width)x\(.height)"')
dir="$(xdg-user-dir PICTURES)/Screenshots"
file="Screenshot_${time}_${geometry}.png"
# Select a region with slurp; exit silently if cancelled (ESC/right-click)
geometry=$(slurp) || exit 1
mkdir -p "$dir"
# Capture region and copy to clipboard only
grim -g "$geometry" - | wl-copy -t image/png
# Take screenshot of selected region using hyprshot
hyprshot -m region -o "$dir" -f "$file" --clipboard-only
if command -v notify-send >/dev/null 2>&1; then
notify-send --app-name "Screenshot" --icon "camera-photo" -u normal "Area" "Screenshot copied to clipboard"
fi
+44 -9
View File
@@ -3,17 +3,52 @@
### ~/.config/hypr/scripts/screenshot/screenshot_monitor.sh
###
time=$(date +%Y-%m-%d-%I-%M-%S)
geometry=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | "\(.width)x\(.height)"')
time=$(date +%Y-%m-%d-%H%M%S)
dir="$(xdg-user-dir PICTURES)/Screenshots"
file="Screenshot_${time}_${geometry}.png"
monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | .name')
[ -n "$monitor" ] || exit 1
file="Screenshot_${time}_${monitor}.png"
mkdir -p "$dir"
# Take screenshot of selected region using hyprshot
hyprshot -m output -o "$dir" -f "$file"
# Capture the focused monitor, save it and copy to clipboard
grim -o "$monitor" "$dir/$file" || exit 1
wl-copy -t image/png < "$dir/$file"
# Optional: open in swappy for annotation (since hyprshot doesn't pipe to swappy directly)
# if command -v swappy >/dev/null 2>&1; then
# swappy -f "$dir/$file"
# fi
if command -v notify-send >/dev/null 2>&1; then
notify-send --app-name "Screenshot" --icon "camera-photo" -u normal "Monitor" "Screenshot saved $file"
fi
# Open the editor if satty is available (blocks until it is closed).
# satty writes the annotated image to --output-filename on Ctrl+s (and on
# Esc/Enter here) and exits immediately. It is launched floating, without
# decorations, with the pen preselected and moved over the captured area.
if command -v satty >/dev/null 2>&1; then
x=$(hyprctl monitors -j | jq -r --arg m "$monitor" '.[] | select(.name == $m) | .x')
y=$(hyprctl monitors -j | jq -r --arg m "$monitor" '.[] | select(.name == $m) | .y')
satty --filename "$dir/$file" --output-filename "$dir/$file" \
--copy-command wl-copy --actions-on-escape save-to-file --early-exit \
--floating-hack --no-window-decoration --initial-tool brush &
pid=$!
for _ in $(seq 1 20); do
addr=$(hyprctl clients -j 2>/dev/null | jq -r --argjson p "$pid" '.[] | select(.pid == $p) | .address' | head -1)
[ -n "$addr" ] && break
sleep 0.1
done
if [ -n "$addr" ]; then
# Lua config (Hyprland 0.55+) dispatches through hl.dsp.*, so try
# hyprctl eval first, then the raw lua dispatch, then classic syntax.
hyprctl eval "hl.dispatch(hl.dsp.window.move({ x = $x, y = $y, window = 'address:$addr' }))" >/dev/null 2>&1 ||
hyprctl dispatch "hl.dsp.window.move({ x = $x, y = $y, window = 'address:$addr' })" >/dev/null 2>&1 ||
hyprctl dispatch movewindowpixel "exact $x $y,address:$addr" >/dev/null 2>&1
fi
wait "$pid"
wl-copy -t image/png < "$dir/$file"
fi
# Compress the resulting image in the background if oxipng is available
if command -v oxipng >/dev/null 2>&1; then
oxipng --strip safe -o 4 "$dir/$file" &
fi
+38
View File
@@ -0,0 +1,38 @@
#!/bin/bash
###
### ~/.config/hypr/scripts/screenshot/ocr_area.sh
###
# Ensure dependencies exist
for cmd in slurp grim tesseract wl-copy; do
if ! command -v "$cmd" >/dev/null 2>&1; then
notify-send -a "OCR" -u critical "OCR Error" "Missing required command: $cmd"
exit 1
fi
done
# Select a region with slurp; exit silently if cancelled (ESC/right-click)
geometry=$(slurp) || exit 0
# Capture region directly from grim, pipe into tesseract, and save stdout to clipboard
text=$(grim -g "$geometry" - | tesseract - stdout --psm 6 2>/dev/null)
# Exit if no text was detected
if [ -z "$text" ]; then
if command -v notify-send >/dev/null 2>&1; then
notify-send -a "OCR" -i edit-select-all "OCR Failed" "No text recognized in selected area."
fi
exit 0
fi
# Copy detected text to Wayland clipboard
printf "%s" "$text" | wl-copy
# Notify user of successful extraction
if command -v notify-send >/dev/null 2>&1; then
# Truncate text preview for notification brevity
preview=$(echo "$text" | head -n 3)
notify-send --app-name "Screenshot" --icon "edit-find" -u normal "OCR" "Text Copied to Clipboard:\n$preview"
fi
# Install: sudo pacman -S grim slurp tesseract tesseract-data-eng wl-clipboard libnotify
+63 -9
View File
@@ -3,17 +3,71 @@
### ~/.config/hypr/scripts/screenshot/screenshot_window.sh
###
time=$(date +%Y-%m-%d-%I-%M-%S)
geometry=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | "\(.width)x\(.height)"')
time=$(date +%Y-%m-%d-%H%M%S)
dir="$(xdg-user-dir PICTURES)/Screenshots"
file="Screenshot_${time}_${geometry}.png"
file="Screenshot_${time}.png"
mkdir -p "$dir"
# Take screenshot of selected region using hyprshot
hyprshot -m window -o "$dir" -f "$file"
# Build selection boxes for windows on visible workspaces
ids=$(hyprctl monitors -j | jq -c '[.[].activeWorkspace.id]')
boxes=$(hyprctl clients -j | jq -r --argjson ids "$ids" '
[.[] | select(.workspace.id | IN($ids[]))] | .[] |
"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1]) \(.title)"
' | cut -d' ' -f1,2)
# Optional: open in swappy for annotation (since hyprshot doesn't pipe to swappy directly)
# if command -v swappy >/dev/null 2>&1; then
# swappy -f "$dir/$file"
# fi
# Let the user pick a window (click the box); exit silently if cancelled
geometry=$(slurp -r <<< "$boxes") || exit 1
# Expand the selection by border + gap so the capture includes the border
border=$(hyprctl getoption general:border_size -j | jq -r '(.int // 0)')
gap=$(hyprctl getoption general:gaps_out -j | jq -r '(.int // 0)')
pad=$(( border + gap ))
geometry=$(awk -v p="$pad" '
{
split($1, pos, ",");
split($2, size, "x");
printf "%d,%d %dx%d\n",
pos[1] - p, pos[2] - p, size[1] + p * 2, size[2] + p * 2
}' <<< "$geometry")
# Capture the window, save it and copy to clipboard
grim -g "$geometry" "$dir/$file" || exit 1
wl-copy -t image/png < "$dir/$file"
if command -v notify-send >/dev/null 2>&1; then
notify-send --app-name "Screenshot" --icon "camera-photo" -u normal "Window" "Screenshot saved $file"
fi
# Open the editor if satty is available (blocks until it is closed).
# satty writes the annotated image to --output-filename on Ctrl+s (and on
# Esc/Enter here) and exits immediately. It is launched floating, without
# decorations, with the pen preselected and moved over the captured area.
if command -v satty >/dev/null 2>&1; then
x=$(cut -d, -f1 <<< "$geometry")
y=$(cut -d, -f2 <<< "$geometry" | cut -d' ' -f1)
satty --filename "$dir/$file" --output-filename "$dir/$file" \
--copy-command wl-copy --actions-on-escape save-to-file --early-exit \
--floating-hack --no-window-decoration --initial-tool brush &
pid=$!
for _ in $(seq 1 20); do
addr=$(hyprctl clients -j 2>/dev/null | jq -r --argjson p "$pid" '.[] | select(.pid == $p) | .address' | head -1)
[ -n "$addr" ] && break
sleep 0.1
done
if [ -n "$addr" ]; then
# Lua config (Hyprland 0.55+) dispatches through hl.dsp.*, so try
# hyprctl eval first, then the raw lua dispatch, then classic syntax.
hyprctl eval "hl.dispatch(hl.dsp.window.move({ x = $x, y = $y, window = 'address:$addr' }))" >/dev/null 2>&1 ||
hyprctl dispatch "hl.dsp.window.move({ x = $x, y = $y, window = 'address:$addr' })" >/dev/null 2>&1 ||
hyprctl dispatch movewindowpixel "exact $x $y,address:$addr" >/dev/null 2>&1
fi
wait "$pid"
wl-copy -t image/png < "$dir/$file"
fi
# Compress the resulting image in the background if oxipng is available
if command -v oxipng >/dev/null 2>&1; then
oxipng --strip safe -o 4 "$dir/$file" &
fi
-1
View File
@@ -1 +0,0 @@
-31
View File
@@ -1,31 +0,0 @@
#!/bin/bash
timeout=50 # 10 seconds max (50 * 0.2s)
count=0
while (( count < timeout )); do
# Grab both address and floating status
read -r win_addr floating <<< $(hyprctl -j clients | jq -r '.[] | select(.title == "Grayjay") | "\(.address) \(.floating)"')
if [[ -n "$win_addr" ]]; then
# Add 0x prefix if missing
if [[ "$win_addr" != 0x* ]]; then
win_addr="0x$win_addr"
fi
# If the window is floating, toggle to make it tiled
if [[ "$floating" == "true" ]]; then
hyprctl dispatch togglefloating address:$win_addr
fi
# Move to workspace 2 silently
hyprctl dispatch movetoworkspacesilent 2,address:$win_addr
exit 0
fi
sleep 0.2
((count++))
done
echo "Grayjay window not found within timeout." >&2
exit 1
@@ -1,39 +0,0 @@
#!/bin/bash
timeout=50 # 10 seconds max (50 * 0.2s)
count=0
while (( count < timeout )); do
win_addr=$(hyprctl clients | awk '
/^Window/ { addr=$2 }
/title: GoXLR Utility/ { print addr }
')
if [[ -n "$win_addr" ]]; then
# Add 0x prefix if missing
if [[ "$win_addr" != 0x* ]]; then
win_addr="0x$win_addr"
fi
# Get fullscreen state (1 or 0)
fullscreen_state=$(hyprctl clients | awk -v addr="${win_addr#0x}" '
$1 == "Window" && $2 == addr { found=1 }
found && /^fullscreen:/ { print $2; exit }
')
if [[ "$fullscreen_state" == "1" ]]; then
hyprctl dispatch fullscreen address:$win_addr
echo "Fullscreen disabled for GoXLR Utility."
else
echo "GoXLR Utility is not fullscreen."
fi
exit 0
fi
sleep 0.2
((count++))
done
echo "GoXLR Utility window not found within timeout." >&2
exit 1
-101
View File
@@ -1,101 +0,0 @@
if HOSTNAME == "honney-main" then
hl.monitor({
output = "desc:BNQ BenQ EX2710U Y8P00876019",
mode = "3840x2160@144",
position = "0x0",
scale = 1,
transform = 0,
bitdepth = 10,
cm = "srgb",
sdr_eotf = "default",
sdrbrightness = 1.0,
sdrsaturation = 1.0,
vrr = 0,
supports_wide_color = 1,
supports_hdr = 1,
sdr_min_luminance = 0.2,
sdr_max_luminance = 600,
})
hl.monitor({
output = "desc:ASUSTek COMPUTER INC PA279CRV S5LMSB007609",
mode = "3840x2160@60",
position = "-3840x0",
scale = 1,
transform = 0,
bitdepth = 10,
cm = "srgb",
sdr_eotf = "default",
sdrbrightness = 1.0,
sdrsaturation = 1.0,
vrr = 0,
supports_wide_color = 1,
supports_hdr = 1,
sdr_min_luminance = 0.2,
sdr_max_luminance = 400,
})
hl.monitor({
output = "desc:LG Electronics LG ULTRAFINE 503NTKF3L437",
mode = "3840x2160@60",
position = "0x-2160",
scale = 1,
transform = 2,
bitdepth = 10,
cm = "srgb",
sdr_eotf = "default",
sdrbrightness = 1.0,
sdrsaturation = 1.0,
vrr = 0,
supports_wide_color = 1,
supports_hdr = 1,
sdr_min_luminance = 0.2,
sdr_max_luminance = 400,
})
hl.monitor({
output = "desc:LG Electronics LG ULTRAGEAR 107MAKR2RE65",
mode = "1920x1080@144",
position = "-1920x-1080",
scale = 1,
transform = 2,
bitdepth = 10,
})
hl.monitor({
output = "desc:Dell Inc. DELL P2419H D4CN3Q2",
mode = "1920x1080@60",
position = "-1920x-2160",
scale = 1,
transform = 0,
})
elseif HOSTNAME == "hp-laptop" then
hl.monitor({
output = "desc:BOE 0x08A8",
mode = "1920x1080@60",
position = "0x0",
scale = 1,
transform = 0,
})
hl.monitor({
output = "desc:AOC 24B3HA2 AVKS29A004767",
mode = "1920x1080@120",
position = "-1920x0",
scale = 1,
transform = 0,
})
elseif HOSTNAME == "arch" then
hl.monitor({
output = "desc:AOC CU34G2XP 1Q1R4HA002436",
mode = "3440x1440@180",
position = "0x0",
scale = 1,
transform = 0,
})
hl.monitor({
output = "desc:AOC 24G1WG4 0x0001A57A",
mode = "1920x1080@60",
position = "-1920x0",
scale = 1,
transform = 0,
})
end
-- mirror string Output name to mirror
-- icc string Absolute path to an ICC profile