1
0
forked from extern/nix-config

meta: Add river

river is a cool Wayland compositor that I've been trying for a few days
now. There are some bugs and unimplemented features, however, that make
me want to use Hyprland instead.
This commit is contained in:
Donovan Glover 2023-04-24 03:41:11 -04:00
parent 7bbd7281e5
commit 1c17a6dd22
No known key found for this signature in database
GPG Key ID: EA7408A77AE1BE65
2 changed files with 113 additions and 0 deletions

98
river/.config/river/init Executable file
View File

@ -0,0 +1,98 @@
#!/usr/bin/bash
riverctl map normal Super+Shift Return spawn kitty
riverctl map normal Super Q close
riverctl map normal Super+Shift E exit
riverctl map normal Super J focus-view next
riverctl map normal Super K focus-view previous
riverctl map normal Super+Shift J swap next
riverctl map normal Super+Shift K swap previous
riverctl map normal Super Period focus-output next
riverctl map normal Super Comma focus-output previous
riverctl map normal Super+Shift Period send-to-output next
riverctl map normal Super+Shift Comma send-to-output previous
riverctl map normal Super Return zoom
riverctl map normal Super H send-layout-cmd rivertile "main-ratio -0.05"
riverctl map normal Super L send-layout-cmd rivertile "main-ratio +0.05"
riverctl map normal Super+Shift H send-layout-cmd rivertile "main-count +1"
riverctl map normal Super+Shift L send-layout-cmd rivertile "main-count -1"
riverctl map normal Super+Alt H move left 100
riverctl map normal Super+Alt J move down 100
riverctl map normal Super+Alt K move up 100
riverctl map normal Super+Alt L move right 100
riverctl map normal Super+Alt+Control H snap left
riverctl map normal Super+Alt+Control J snap down
riverctl map normal Super+Alt+Control K snap up
riverctl map normal Super+Alt+Control L snap right
riverctl map normal Super+Alt+Shift H resize horizontal -100
riverctl map normal Super+Alt+Shift J resize vertical 100
riverctl map normal Super+Alt+Shift K resize vertical -100
riverctl map normal Super+Alt+Shift L resize horizontal 100
riverctl map-pointer normal Super BTN_LEFT move-view
riverctl map-pointer normal Super BTN_RIGHT resize-view
riverctl map-pointer normal Super BTN_MIDDLE toggle-float
riverctl map normal Super Tab focus-previous-tags
for i in $(seq 1 9)
do
tags=$((1 << ($i - 1)))
riverctl map normal Super $i set-focused-tags $tags
riverctl map normal Super+Shift $i set-view-tags $tags
riverctl map normal Super+Control $i toggle-focused-tags $tags
riverctl map normal Super+Shift+Control $i toggle-view-tags $tags
done
all_tags=$(((1 << 32) - 1))
riverctl map normal Super 0 set-focused-tags $all_tags
riverctl map normal Super+Shift 0 set-view-tags $all_tags
riverctl map normal Super Space toggle-float
riverctl map normal Super F toggle-fullscreen
riverctl map normal Super Up send-layout-cmd rivertile "main-location top"
riverctl map normal Super Right send-layout-cmd rivertile "main-location right"
riverctl map normal Super Down send-layout-cmd rivertile "main-location bottom"
riverctl map normal Super Left send-layout-cmd rivertile "main-location left"
for mode in normal locked
do
riverctl map $mode None XF86Eject spawn 'eject -T'
riverctl map $mode None XF86AudioRaiseVolume spawn 'wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ && notify-send -t 2000 "Raised volume to" "$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | tail -c 3)%"'
riverctl map $mode None XF86AudioLowerVolume spawn 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- && notify-send -t 2000 "Lowered volume to" "$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | tail -c 3)%"'
riverctl map $mode None XF86AudioMute spawn 'wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && notify-send -t 2000 "Muted" "$(wpctl get-volume @DEFAULT_AUDIO_SINK@)"'
riverctl map $mode None XF86AudioMedia spawn 'playerctl play-pause'
riverctl map $mode None XF86AudioPlay spawn 'playerctl play-pause'
riverctl map $mode None XF86AudioPrev spawn 'playerctl previous'
riverctl map $mode None XF86AudioNext spawn 'playerctl next'
riverctl map $mode None XF86MonBrightnessUp spawn 'brightnessctl set +5% && notify-send -t 2000 "Increased brightness to" "$(brightnessctl get)"'
riverctl map $mode None XF86MonBrightnessDown spawn 'brightnessctl set 5%- && notify-send -t 2000 "Decreased brightness to" "$(brightnessctl get)"'
done
riverctl background-color 0x111111
riverctl border-color-focused 0x93a1a1
riverctl border-color-unfocused 0x586e75
riverctl set-repeat 50 300
riverctl default-layout rivertile
dunst &
rivertile -view-padding 0 -outer-padding 0 &
fcitx5 -d # Japanese input support
wl-paste -p --watch wl-copy -pc & # Disable middle click paste
udiskie & # Auto-mount drives
yambar &
touchpad="pointer-2-7-SynPS/2_Synaptics_TouchPad"
riverctl input $touchpad accel-profile flat
riverctl input $touchpad disable-while-typing disabled
riverctl input $touchpad natural-scroll enabled
riverctl input $touchpad tap enabled
riverctl map normal Super Z spawn 'rofi -show'
riverctl map normal Super R spawn '~/.config/river/init'
riverctl map normal Super P spawn 'grim -g "$(slurp)" - | wl-copy'
riverctl focus-follows-cursor normal
riverctl map-switch normal lid close spawn swaylock
riverctl map-switch normal lid open spawn "brightnessctl --device='tpacpi::kbd_backlight' set 2"

15
river/README.md Normal file
View File

@ -0,0 +1,15 @@
# river
[river][river] is a dynamic wayland compositor inspired by bspwm and dwm.
## Use Cases
river can be used to:
- Have all the advantages of Wayland, with the advantages of bspwm and dwm at the same time.
You should not use river if:
- You should use river.
[river]: https://github.com/riverwm/river