[river] Add river configuration

This commit is contained in:
Midgard 2024-07-03 15:23:57 +02:00
parent dc91c35031
commit 04965032ac
Signed by untrusted user who does not match committer: midgard
GPG key ID: 511C112F1331BBB4
2 changed files with 224 additions and 0 deletions

180
river/init Executable file
View file

@ -0,0 +1,180 @@
#!/bin/sh
in_sway=false
if [ -n "$SWAYSOCK" ]; then
in_sway=true
fi
riverctl focus-output DP-1
SWAYSOCK="" yambar >/dev/null 2>&1 &
if ! $in_sway; then
swaybg -i $HOME/img/bg/vallei_la_roche_less_contrast.jpg -m fill &
fi
riverctl keyboard-layout -options 'compose:menu,shift:both_capslock,altwin:swap_lalt_lwin' be_custom
riverctl keyboard-layout -options 'compose:menu,shift:both_capslock,caps:none' be
riverctl set-repeat 70 170
riverctl hide-cursor timeout 3000
xrdb -merge "$HOME/.Xresources"
DOTOOL_XKB_LAYOUT=be dotoold &
wl-paste --watch clipman store &
riverctl map normal $mod c spawn "clipman pick --tool rofi"
if $in_sway; then
mod=Alt
else
mod=Super
fi
riverctl default-attach-mode above
riverctl border-width 1
riverctl border-color-focused 0xffffff88
riverctl border-color-unfocused 0xffffff00
riverctl focus-follows-cursor normal
riverctl set-cursor-warp on-output-change
riverctl map normal $mod Return spawn foot
riverctl map normal $mod O spawn swaylock -c 000000 -l -f -i ~/img/bg/amy_sunflowers_painted_lock.png
riverctl map normal $mod D spawn "killall rofi || rofi -show combi"
riverctl map normal $mod K focus-view previous
riverctl map normal $mod J focus-view next
riverctl map normal $mod H focus-output previous
riverctl map normal $mod L focus-output next
riverctl map normal $mod+Shift K swap previous
riverctl map normal $mod+Shift J swap next
riverctl map normal $mod+Shift H send-to-output -current-tags previous
riverctl map normal $mod+Shift L send-to-output -current-tags next
riverctl map normal $mod+Control K focus-view up
riverctl map normal $mod+Control J focus-view down
riverctl map normal $mod+Control H focus-view left
riverctl map normal $mod+Control L focus-view right
riverctl map normal $mod+Control+Shift K swap up
riverctl map normal $mod+Control+Shift J swap down
riverctl map normal $mod+Control+Shift H swap left
riverctl map normal $mod+Control+Shift L swap right
#riverctl map normal $mod X focus-output next
#riverctl map normal $mod+Shift X send-to-output -current-tags next
riverctl map normal $mod Z zoom
riverctl map normal $mod+Shift Q close
riverctl map normal $mod space toggle-float
riverctl map normal $mod F toggle-fullscreen
riverctl map-pointer normal $mod BTN_RIGHT resize-view
riverctl map-pointer normal $mod BTN_LEFT move-view
riverctl map normal $mod twosuperior focus-previous-tags
riverctl map normal $mod+Shift twosuperior send-to-previous-tags
map_tags() {
local tag=$((1 << ($2 - 1)))
riverctl map normal $mod "$1" set-focused-tags "$tag"
riverctl map normal $mod+Control "$1" toggle-focused-tags "$tag"
riverctl map normal $mod+Shift "$1" set-view-tags "$tag"
riverctl map normal $mod+Shift+Control "$1" toggle-view-tags "$tag"
}
map_tags ampersand 1
map_tags eacute 2
map_tags quotedbl 3
map_tags apostrophe 4
map_tags parenleft 5
map_tags section 6
map_tags egrave 7
map_tags exclam 8
map_tags ccedilla 9
map_tags agrave 10
map_tags parenright 11
riverctl map normal $mod T set-view-tags $(((1 << 11) - 1))
# Set the default layout generator to be river-ultitile and start it.
# River will send the process group of the init executable SIGTERM on exit.
riverctl default-layout river-ultitile
if $in_sway; then
~/dev/river-ultitile/zig-out/bin/river-ultitile &
# Mod+U and Mod+I to increase/decrease the main size
riverctl map normal $mod U send-layout-cmd river-ultitile "set integer main-size += 5"
riverctl map normal $mod I send-layout-cmd river-ultitile "set integer main-size -= 5"
# Mod+Shift+U and Mod+Shift+I to decrease/increase the main count
riverctl map normal $mod+Shift U send-layout-cmd river-ultitile "set integer main-count -= 1"
riverctl map normal $mod+Shift I send-layout-cmd river-ultitile "set integer main-count += 1"
# Mod+{Up,Right,Down,Left} to change layout
riverctl map normal $mod Up send-layout-cmd river-ultitile "set string layout = vstack"
riverctl map normal $mod Right send-layout-cmd river-ultitile "set string layout = hstack"
riverctl map normal $mod Down send-layout-cmd river-ultitile "set string layout = monocle"
riverctl map normal $mod Left send-layout-cmd river-ultitile "set string layout = main"
else
~/.local/bin/river-ultitile &
# Mod+U and Mod+I to increase/decrease the main size
riverctl map normal $mod U send-layout-cmd river-ultitile "edit main-center.main stretch+5"
riverctl map normal $mod I send-layout-cmd river-ultitile "edit main-center.main stretch-5"
# Mod+Shift+U and Mod+Shift+I to decrease/increase the main count
riverctl map normal $mod+Shift U send-layout-cmd river-ultitile "edit main-center.main max-views-1"
riverctl map normal $mod+Shift I send-layout-cmd river-ultitile "edit main-center.main max-views+1"
# Mod+{Up,Right,Down,Left} to change layout orientation
riverctl map normal $mod Up send-layout-cmd river-ultitile "default layout vstack"
riverctl map normal $mod Right send-layout-cmd river-ultitile "default layout hstack"
riverctl map normal $mod Down send-layout-cmd river-ultitile "default layout main-center"
riverctl map normal $mod Left send-layout-cmd river-ultitile "default layout main-left"
# And for monocle
riverctl map normal $mod M send-layout-cmd river-ultitile "default layout monocle"
# Cycle through layout
#riverctl map normal $mod W send-layout-cmd river-ultitile "main-location-cycle left,monocle"
ultitile() {
riverctl send-layout-cmd river-ultitile "$*"
}
ultitile new layout hstack type=hsplit padding=5 margin=5 max-views=unlimited
ultitile new layout vstack type=vsplit padding=5 margin=5 max-views=unlimited
ultitile new layout main-left type=hsplit padding=5 margin=5
ultitile new tile main-left.left type=vsplit stretch=40 order=2
ultitile new tile main-left.main type=vsplit stretch=60 order=1 max-views=1
ultitile new layout main-center type=hsplit padding=5 margin=5
ultitile new tile main-center.left type=vsplit stretch=25 order=2 suborder=0
ultitile new tile main-center.main type=vsplit stretch=50 order=1 max-views=1
ultitile new tile main-center.right type=vsplit stretch=25 order=2 suborder=1
ultitile new layout monocle type=overlay max-views=unlimited
ultitile default layout main-center
riverctl spawn 'foot sh -c "vi ~/todo2.txt; bash"'
riverctl spawn 'foot sh -c "vi ~/todo.txt; bash"'
sleep 0.2
riverctl set-view-tags $((1 << (10 - 1)))
riverctl set-view-tags $((1 << (10 - 1)))
sleep 0.2
riverctl spawn 'foot sh -c "toxic; bash"'
sleep 0.2
riverctl set-view-tags $((1 << (11 - 1)))
fi

View file

@ -84,6 +84,50 @@ bar:
#default: {string: {text: "{name}", foreground: *col_fg_alt, margin: 7}}
#conditions:
#state == focused: {string: {text: "{name}", margin: 7}}
#
- river:
content:
map:
margin: 7
default:
string:
foreground: *col_fg
text: "{id}: {state}"
conditions:
state == focused:
string:
foreground: *col_fg
text: "{id}"
state == unfocused:
string:
foreground: *col_visible_ws
text: "{id}"
state == urgent:
string:
foreground: *col_fg_alert
text: "{id}"
~occupied: {empty: {}}
state == invisible:
string:
foreground: *col_fg_alt
text: "{id}"
title:
- map:
default: {empty: {}}
conditions:
seat != default: {string: { text: "{seat}" }}
- map:
default: {empty: {}}
conditions:
mode != normal: {string: { text: "{mode}" }}
- map:
default:
string:
text: "{title}"
left-margin: 10
foreground: *col_fg_alt
conditions:
title == "": {empty: {}}
- script:
path: /home/midgard/.config/yambar/sway.py