Files
dotfiles/home/kutu/config.rb
T

168 lines
3.2 KiB
Ruby

tmp_src = "@src@"
if tmp_src == "@src@"
SRC = "~/main/ocaml/epq/scripts"
else
SRC = tmp_src
end
MAX_PROJECTS = 3
SPECIAL = {
terminal: { cmd: 'kitty' },
browser: { cmd: 'firefox' },
misc: { cmd: nil }
}
$current = 0
system "bash #{SRC}/startup.sh >/dev/null 2>&1 &"
def project_ws(n)
:"p#{n}"
end
def go_project(n)
$current = n
jump_ws project_ws($current)
end
def in_project?(ws)
!SPECIAL.key?(ws)
end
def go_special(name, ws)
cfg = SPECIAL.fetch(name)
if ws == name
target = project_ws($current)
jump_ws target
else
jump_ws name
system("#{cfg[:cmd]} >/dev/null 2>&1 &") if cfg[:cmd] && ws_empty?(name)
end
end
bind 'q' do |x|
kill x
end
bind 'w' do
system 'kitty >/dev/null 2>&1 &'
end
bind 'e' do
system "bash #{SRC}/power.sh >/dev/null 2>&1 &"
end
bind 'd' do
system "bash #{SRC}/run.sh >/dev/null 2>&1 &"
end
bind 'v' do
system 'CM_LAUNCHER=rofi clipmenu >/dev/null 2>&1 &'
end
bind 'a' do
system 'bash', '-c', "
maim -c 0.3,0.5,1.0,0.8 -s | tee /tmp/screenshot_temp.png | xclip -selection clipboard -t image/png;
if [ -s '/tmp/screenshot_temp.png' ]; then
mv /tmp/screenshot_temp.png ~/screenshots/$(date +%Y-%m-%d_%H:%M:%S).png;
fi
"
end
bind 123, :none do
system 'bash', '-c', %q(
pactl set-sink-volume @DEFAULT_SINK@ +5%;
vol=$(pactl get-sink-volume @DEFAULT_SINK@ | grep -o '[0-9]\+%' | head -n1);
dunstify "Volume Adjusted" "" -h int:value:$vol -r 997
)
end
bind 122, :none do
system 'bash', '-c', %q(
pactl set-sink-volume @DEFAULT_SINK@ -5%;
vol=$(pactl get-sink-volume @DEFAULT_SINK@ | grep -o '[0-9]\+%' | head -n1);
dunstify "Volume Adjusted" "" -h int:value:$vol -r 997
)
end
bind 121, :none do
system 'bash', '-c', %q(
pactl set-sink-mute @DEFAULT_SINK@ toggle;
vol=$(pactl get-sink-volume @DEFAULT_SINK@ | grep -o '[0-9]\+%' | head -n1);
dunstify "Volume Adjusted" "" -h int:value:$vol -r 997
)
end
bind 232, :none do
system 'bash', '-c', %q(
brightnessctl set 5%-;
pct=$(brightnessctl -m | cut -d, -f4 | tr -d ' %');
dunstify "Brightness" "" -h int:value:$pct -r 998
)
end
bind 233, :none do
system 'bash', '-c', %q(
brightnessctl set 5%+;
pct=$(brightnessctl -m | cut -d, -f4 | tr -d ' %');
dunstify "Brightness" "" -h int:value:$pct -r 998
)
end
bind 'x' do
system 'kitty -e fish -c "editor" >/dev/null 2>&1 &'
end
bind 'c' do
system 'kitty -e fish -c "y" >/dev/null 2>&1 &'
end
bind 's' do |x|
toggle_float x
end
bind 'f' do
system 'kitty -e fish -c "btop" >/dev/null 2>&1 &'
end
bind 80, :none do |_, ws|
go_special :terminal, ws
end
bind 79, :none do |_, ws|
go_special :browser, ws
end
bind 89 do |_, ws|
go_special :misc, ws
end
bind 118, :none do
system 'bash', '-c',
'dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause >/dev/null 2>&1 &'
end
(0..MAX_PROJECTS - 1).each do |n|
bind (n + 1).to_s do
go_project(n)
end
end
bind 86, :none do |_, ws|
next unless in_project?(ws)
n = (($current - 1 + MAX_PROJECTS) % MAX_PROJECTS)
go_project(n)
end
bind 82, :none do |_, ws|
next unless in_project?(ws)
n = (($current + 1) % MAX_PROJECTS)
go_project(n)
end
go_project(0)