diff --git a/home-environments/radio/files/.config/fnott/fnott.ini b/home-environments/radio/files/.config/fnott/fnott.ini new file mode 100644 index 0000000..e9d6724 --- /dev/null +++ b/home-environments/radio/files/.config/fnott/fnott.ini @@ -0,0 +1,67 @@ +# -*- conf -*- + +# For documentation on these options, see `man fnott.ini` +# Global values +# output=# +# min-width= +max-width=350 +max-height=500 +stacking-order=top-down +# anchor=top-right +# edge-margin-vertical=10 +# edge-margin-horizontal=10 +# notification-margin=10 +# icon-theme=hicolor +max-icon-size=25 +# selection-helper=dmenu +# play-sound=aplay ${filename} +# layer=top + +# Default values, may be overridden in 'urgency' specific sections +background=000000FF + +border-color=ddddddFF +border-size=1 + +padding-vertical=20 +padding-horizontal=30 + +# dpi-aware=auto + +title-font=Meslo LG M DZ:size=7 +title-color=ddddddFF +title-format=%s\n +# title-format=%a%A + +summary-font=Meslo LG M DZ:size=7 +summary-color=ddddddFF +summary-format=%b\n +# summary-format=%s\n + +body-font=Meslo LG M DZ:size=7 +# body-color=7fbbb3FF +body-format= +# body-format=%b\n + +# progress-bar-height=20 +# progress-bar-color=ffffffff + +# sound-file= +# icon= + +# Timeout values are in seconds. 0 to disable +max-timeout=3 +default-timeout=3 +idle-timeout=3 + +# [low] +# background=2b2b2bff +# title-color=888888ff +# summary-color=888888ff +# body-color=888888ff + +# [normal] + +# [critical] +# background=6c3333ff + diff --git a/home-environments/radio/files/.config/fuzzel/fuzzel.ini b/home-environments/radio/files/.config/fuzzel/fuzzel.ini new file mode 100644 index 0000000..0a3648c --- /dev/null +++ b/home-environments/radio/files/.config/fuzzel/fuzzel.ini @@ -0,0 +1,92 @@ +# output= +font=Meslo LG M DZ:size=10 +dpi-aware=auto +# prompt=> +# icon-theme=hicolor +icons-enabled=no +fields=filename,name,generic +# password-character=* +# filter-desktop=no +# fuzzy=yes +# show-actions=no +terminal=foot -e +# launch-prefix= + +lines=10 +width=60 +tabs=8 +horizontal-pad=30 +vertical-pad=8 +inner-pad=0 + +# image-size-ratio=0.5 + +# line-height= +# letter-spacing=0 + +layer = top +exit-on-keyboard-focus-loss = yes + +[colors] +background=000000FF +text=ddddddFF +match=9688d9FF +selection=313131FF +selection-text=9688d9FF +selection-match=ddddddFF +border=8185e0ff + +[border] +width=1 +radius=0 + +[dmenu] +# mode=text # text|index +# exit-immediately-if-empty=no + +[key-bindings] +# cancel=Escape Control+g +# execute=Return KP_Enter Control+y +# execute-or-next=Tab +# cursor-left=Left Control+b +# cursor-left-word=Control+Left Mod1+b +# cursor-right=Right Control+f +# cursor-right-word=Control+Right Mod1+f +# cursor-home=Home Control+a +# cursor-end=End Control+e +# delete-prev=BackSpace +# delete-prev-word=Mod1+BackSpace Control+BackSpace +# delete-next=Delete KP_Delete Control+d +# delete-next-word=Mod1+d Control+Delete Control+KP_Delete +# delete-line=Control+k +# prev=Up Control+p +# prev-with-wrap=ISO_Left_Tab +# prev-page=Page_Up KP_Page_Up +# next=Down Control+n +# next-with-wrap=none +# next-page=Page_Down KP_Page_Down + +# custom-N: *dmenu mode only*. Like execute, but with a non-zero +# exit-code; custom-1 exits with code 10, custom-2 with 11, custom-3 +# with 12, and so on. + +# custom-1=Mod1+1 +# custom-2=Mod1+2 +# custom-3=Mod1+3 +# custom-4=Mod1+4 +# custom-5=Mod1+5 +# custom-6=Mod1+6 +# custom-7=Mod1+7 +# custom-8=Mod1+8 +# custom-9=Mod1+9 +# custom-10=Mod1+0 +# custom-11=Mod1+exclam +# custom-12=Mod1+at +# custom-13=Mod1+numbersign +# custom-14=Mod1+dollar +# custom-15=Mod1+percent +# custom-16=Mod1+dead_circumflex +# custom-17=Mod1+ampersand +# custom-18=Mod1+asterix +# custom-19=Mod1+parentleft + diff --git a/home-environments/radio/files/.config/river/init b/home-environments/radio/files/.config/river/init index 6b67bae..c3a6537 100755 --- a/home-environments/radio/files/.config/river/init +++ b/home-environments/radio/files/.config/river/init @@ -1,50 +1,25 @@ #!/bin/sh -# Set up keyboard layout +# Window layout _______________________________________________________________ + +# Set the default layout generator to be rivercarro and start it. +# River will send the process group of the init executable SIGTERM on exit. +riverctl default-layout rivercarro +rivercarro -inner-gaps 10 -outer-gaps 10 -no-smart-gaps & + +# Keyboard ____________________________________________________________________ + +# layout riverctl keyboard-layout\ -options grp:menu_switch,parens:swap_brackets,caps:swapescape \ us,br -# close the focused view -riverctl map normal Super q close +# repeat rate +riverctl set-repeat 50 300 -# spawn $TERMINAL -riverctl map normal Super Return spawn foot +# Bindings ____________________________________________________________________ -# spawn $EDITOR -riverctl map normal Super e spawn "foot -e $EDITOR" - -# audio - -# status bar -riverctl spawn waybar - -# browser -riverctl map normal Super B spawn $BROWSER - -# notifications -riverctl spawn fnott - -# go to last tag -riverctl map normal Super Escape focus-previous-tags - -# application launcher -riverctl map normal Super Semicolon spawn fuzzel - -# wallpaper -riverctl spawn "swaybg -i ~/media/pictures/wallpapers/wall.png" - -# grab videos from clipboard -riverctl map normal Super V spawn "wl-paste | xargs vid" -riverctl map normal Super+Shift V spawn "wl-paste | xargs vd" - -# screenshot -riverctl map normal Printscreen \ - spawn "grim ~/media/pictures/screenshots/$(date +'%Y-%m-%d--%H-%M-%S.png')" - -# lock screen -riverctl map normal Super+Shift S \ - spawn "swaylock -k -i ~/media/pictures/wallpapers/lockscreen" +## layout related keybindings _________________________________________________ # toggle monocle layout riverctl map normal Super M send-layout-cmd rivercarro "main-location monocle" @@ -54,41 +29,28 @@ riverctl map normal Super T send-layout-cmd rivercarro "main-location left" riverctl map normal Super Tab focus-view next riverctl map normal Super+Shift Tab focus-view previous -# Super+Shift+J and Super+Shift+K to swap the focused view with the next/previous -# view in the layout stack -riverctl map normal Super+Shift J swap next -riverctl map normal Super+Shift K swap previous - -# Super+Period and Super+Comma to focus the next/previous output -riverctl map normal Super Period focus-output next -riverctl map normal Super Comma focus-output previous - -# Super+Shift+{Period,Comma} to send the focused view to the next/previous output -riverctl map normal Super+Shift Period send-to-output next -riverctl map normal Super+Shift Comma send-to-output previous - -# Super+Return to bump the focused view to the top of the layout stack -#riverctl map normal Super Return zoom - # Super+H and Super+L to decrease/increase the main ratio of rivercarro(1) riverctl map normal Super H send-layout-cmd rivercarro "main-ratio -0.05" riverctl map normal Super L send-layout-cmd rivercarro "main-ratio +0.05" -# Super+Shift+H and Super+Shift+L to increment/decrement the main count of rivercarro(1) +# Super+Shift+H and Super+Shift+L to (re)move views from rivercarro(1) main riverctl map normal Super+Shift H send-layout-cmd rivercarro "main-count +1" riverctl map normal Super+Shift L send-layout-cmd rivercarro "main-count -1" -# Super+Alt+{H,J,K,L} to move views -riverctl map -repeat normal Super+Shift H move left 10 -riverctl map -repeat normal Super+Shift J move down 10 -riverctl map -repeat normal Super+Shift K move up 10 -riverctl map -repeat normal Super+Shift L move right 10 +# Super+Return to bump the focused view to the top of the layout stack +#riverctl map normal Super Return zoom -# Super+Alt+Control+{H,J,K,L} to snap views to screen edges -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 +## view related keybindings ___________________________________________________ + +# Super+Control+{J,K} to swap views +riverctl map -repeat normal Super+Shift J swap next +riverctl map -repeat normal Super+Shift K swap previous + +# Super+Alt+{H,J,K,L} to move views +riverctl map -repeat normal Super+Control H move left 10 +riverctl map -repeat normal Super+Control J move down 10 +riverctl map -repeat normal Super+Control K move up 10 +riverctl map -repeat normal Super+Control L move right 10 # Super+Alt+Shift+{H,J,K,L} to resize views riverctl map -repeat normal Super+Alt H resize horizontal -10 @@ -105,8 +67,56 @@ riverctl map-pointer normal Super BTN_RIGHT resize-view # Super + Middle Mouse Button to toggle float riverctl map-pointer normal Super BTN_MIDDLE toggle-float -for i in $(seq 1 9) -do +# Super+Space to toggle float +riverctl map normal Super Space toggle-float + +# Super+F to toggle fullscreen +riverctl map normal Super F toggle-fullscreen + +# close the focused view +riverctl map normal Super q close + +## Application related keybindings ____________________________________________ + +# $TERMINAL +riverctl map normal Super Return spawn foot + +# $EDITOR +riverctl map normal Super e spawn "foot -e $EDITOR" + +# file manager +riverctl map normal Super e spawn "foot -e lf" + +# $BROWSER +riverctl map normal Super b spawn $BROWSER + +# application launcher +riverctl map normal Super Semicolon spawn fuzzel + +# webcam (TODO: fix) +#riverctl map normal XF86WebCam spawn cam + +# rss reader (TODO: fix) +#riverctl map normal XF86Launch1 spawn newsraft + +# telegram +riverctl map normal Super a spawn telegram-desktop + +# keepassxc +riverctl map normal Super c spawn keepassxc + +# loot some ships +riverctl map normal Super z spawn anna + +# guix repl +riverctl map normal Super g spawn "foot -e guix repl" + +## Tag related keybindings ____________________________________________________ + +# go to last tag +riverctl map normal Super Escape focus-previous-tags + +for i in $(seq 1 9); do tags=$((1 << ($i - 1))) # Super+[1-9] to focus tag [0-8] @@ -128,11 +138,54 @@ 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 -# Super+Space to toggle float -riverctl map normal Super Space toggle-float +## Clipboard related keybindings ______________________________________________ -# Super+F to toggle fullscreen -riverctl map normal Super F toggle-fullscreen +# grab videos from clipboard +riverctl map normal Super V spawn "wl-paste | xargs vid" +riverctl map normal Super+Shift V spawn "wl-paste | xargs vd" + +riverctl map normal Super p spawn 'grim -g "$(slurp)" -t png - | wl-copy -t image/png' + +# screenshot (TODO: fix) +# riverctl map normal Print \ +# spawn "grim ~/media/pictures/screenshots/$(date +'%Y-%m-%d--%H-%M-%S.png')" + +## Audio related keybindings __________________________________________________ +for mode in normal locked +do + riverctl map -repeat $mode None XF86AudioRaiseVolume \ + spawn 'wpctl set-volume -l 2.0 @DEFAULT_AUDIO_SINK@ 1%+' + riverctl map -repeat $mode None XF86AudioLowerVolume \ + spawn 'wpctl set-volume -l 2.0 @DEFAULT_AUDIO_SINK@ 1%-' + riverctl map -repeat $mode None XF86AudioMute \ + spawn 'wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle' + riverctl map -repeat $mode None XF86AudioMicMute \ + spawn 'wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle' + + # control mpv playlist listening on socket /tmp/mpv-socket + riverctl map $mode Super XF86AudioLowerVolume \ + spawn "echo '{ \"command\": [\"keypress\", \"<\"] }' | socat - /tmp/mpv-socket" + riverctl map $mode Super XF86AudioRaiseVolume \ + spawn "echo '{ \"command\": [\"keypress\", \">\"] }' | socat - /tmp/mpv-socket" + riverctl map $mode Super XF86AudioMute \ + spawn "echo '{ \"command\": [\"keypress\", \"p\"] }' | socat - /tmp/mpv-socket" + riverctl map $mode Super A \ + spawn "echo '{ \"command\": [\"keypress\", \"N\"] }' | socat - /tmp/mpv-socket" + + # Control screen backlight brightness + riverctl map $mode None XF86MonBrightnessUp \ + spawn 'brightnessctl set +5%' + riverctl map $mode Shift XF86MonBrightnessUp \ + spawn 'brightnessctl set +10%' + riverctl map $mode None XF86MonBrightnessDown \ + spawn 'brightnessctl set 5%-' + riverctl map $mode Shift XF86MonBrightnessDown \ + spawn 'brightnessctl set 10%-' +done + +# lock screen +riverctl map normal Super+Shift S \ + spawn "swaylock -k -i ~/media/pictures/wallpapers/lockscreen" # Declare a passthrough mode. This mode has only a single mapping to return to # normal mode. This makes it useful for testing a nested wayland compositor @@ -144,57 +197,37 @@ riverctl map normal Super F11 enter-mode passthrough # Super+F11 to return to normal mode riverctl map passthrough Super F11 enter-mode normal -# Various media key mapping examples for both normal and locked mode which do -# not have a modifier -for mode in normal locked -do - # Eject the optical drive (well if you still have one that is) - riverctl map $mode None XF86Eject spawn 'eject -T' +# Autostart applications ______________________________________________________ - # # Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer) - # riverctl map $mode None XF86AudioRaiseVolume spawn 'pamixer --allow-boost -i 5' - # riverctl map $mode Shift XF86AudioRaiseVolume spawn 'pamixer --allow-boost -i 10' - # riverctl map $mode None XF86AudioLowerVolume spawn 'pamixer --allow-boost -d 5' - # riverctl map $mode Shift XF86AudioLowerVolume spawn 'pamixer --allow-boost -d 10' - # riverctl map $mode None XF86AudioMute spawn 'pamixer -t' - # riverctl map $mode None XF86AudioMicMute spawn 'pamixer -t --source 4' +# status bar +riverctl spawn waybar - # one day pipewire wil work... - riverctl map $mode None XF86AudioRaiseVolume spawn 'wpctl set-volume -l 2.0 @DEFAULT_AUDIO_SINK@ 5%+' - riverctl map $mode Shift XF86AudioRaiseVolume spawn 'wpctl set-volume -l 2.0 @DEFAULT_AUDIO_SINK@ 10%+' - riverctl map $mode None XF86AudioLowerVolume spawn 'wpctl set-volume -l 2.0 @DEFAULT_AUDIO_SINK@ 5%-' - riverctl map $mode Shift XF86AudioLowerVolume spawn 'wpctl set-volume -l 2.0 @DEFAULT_AUDIO_SINK@ 10%-' - riverctl map $mode None XF86AudioMute spawn 'wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle' - riverctl map $mode None XF86AudioMicMute spawn 'wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle' +# password manager +riverctl spawn keepassxc - # control mpv playlist listening on socket /tmp/mpv-socket - riverctl map $mode Super XF86AudioLowerVolume spawn "echo '{ \"command\": [\"keypress\", \"<\"] }' | socat - /tmp/mpv-socket" - riverctl map $mode Super XF86AudioRaiseVolume spawn "echo '{ \"command\": [\"keypress\", \">\"] }' | socat - /tmp/mpv-socket" - riverctl map $mode Super XF86AudioMute spawn "echo '{ \"command\": [\"keypress\", \"p\"] }' | socat - /tmp/mpv-socket" - riverctl map $mode Super A spawn "echo '{ \"command\": [\"keypress\", \"N\"] }' | socat - /tmp/mpv-socket" +# notifications +riverctl spawn fnott - # Control screen backlight brightness with light (https://github.com/haikarainen/light) - riverctl map $mode None XF86MonBrightnessUp spawn 'brightnessctl set +5%' - riverctl map $mode Shift XF86MonBrightnessUp spawn 'brightnessctl set +10%' - riverctl map $mode None XF86MonBrightnessDown spawn 'brightnessctl set 5%-' - riverctl map $mode Shift XF86MonBrightnessDown spawn 'brightnessctl set 10%-' -done +# wayneko +riverctl spawn wayneko --background-colour 0x606060 + +# Decorations _________________________________________________________________ + +# wallpaper +riverctl spawn "swaybg -i ~/media/pictures/wallpapers/wall.png" # Set background and border color riverctl border-color-focused 0x8581e0 riverctl border-color-unfocused 0x313131 riverctl border-width 1 -# Set keyboard repeat rate -riverctl set-repeat 50 300 +# Application rules ___________________________________________________________ -# Make all views with an app-id that starts with "float" and title "foo" start floating. -riverctl rule-add -title 'Telegram Desktop' float +# float windows +riverctl rule-add -app-id 'KeePassXC' float +riverctl rule-add -app-id 'Pavucontrol' float +riverctl rule-add -app-id 'TelegramDesktop' float -# Make all views with app-id "bar" and any title use client-side decorations -riverctl rule-add -app-id "bar" csd - -# Set the default layout generator to be rivercarro and start it. -# River will send the process group of the init executable SIGTERM on exit. -riverctl default-layout rivercarro -rivercarro -inner-gaps 10 -outer-gaps 10 -no-smart-gaps & +# client side decorations +riverctl rule-add -app-id 'Pavucontrol' csd +riverctl rule-add -app-id "TelegramDesktop" csd diff --git a/home-environments/radio/files/.config/waybar/config b/home-environments/radio/files/.config/waybar/config index b19f173..3d350d8 100644 --- a/home-environments/radio/files/.config/waybar/config +++ b/home-environments/radio/files/.config/waybar/config @@ -20,7 +20,7 @@ }, "river/window": { - "format": "ICON {}", + "format": "{}", "max-length": 75, "tooltip": false }, @@ -30,10 +30,9 @@ "tooltip": false }, "clock": { - "format": "{:%r}", - "interval": 1, + "format": "{:%a %d %b %H:%M}", + "interval": 5, "tooltip-format": "{calendar}", - "format-alt": "{:%Y-%m-%d}" }, "cpu": { "format": "{usage}%", diff --git a/home-environments/radio/files/.config/waybar/style.css b/home-environments/radio/files/.config/waybar/style.css index 78c718e..cd8cf77 100644 --- a/home-environments/radio/files/.config/waybar/style.css +++ b/home-environments/radio/files/.config/waybar/style.css @@ -92,6 +92,7 @@ tooltip label { margin-left: 3px; margin-right: 3px; background: @normal-bg; + color: @focused-fg; } #pulseaudio,#wireplumber,#network,#cpu,#memory,#backlight,#battery,#clock, #custom-arrow1, #custom-arrow2 {