summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorKjetil Orbekk <kj@orbekk.com>2023-04-23 08:12:13 -0400
committerKjetil Orbekk <kj@orbekk.com>2023-04-23 08:12:13 -0400
commitc53b4178cbab1b920dce367cebc5a854203fae80 (patch)
treef3f71d08988666a3ea223751aaca294ce27ed769 /desktop
parentf28455a6793d1d6fd486a0fa7139cb279bb1313d (diff)
Wayland config
Diffstat (limited to 'desktop')
-rwxr-xr-xdesktop/.config/river/init180
-rw-r--r--desktop/.config/swaylock/config2
-rw-r--r--desktop/.config/waybar/config127
-rwxr-xr-xdesktop/.xsession5
4 files changed, 314 insertions, 0 deletions
diff --git a/desktop/.config/river/init b/desktop/.config/river/init
new file mode 100755
index 0000000..f39ba2f
--- /dev/null
+++ b/desktop/.config/river/init
@@ -0,0 +1,180 @@
+#!/bin/sh
+
+riverctl spawn "waybar"
+riverctl spawn "nm-applet --indicator"
+riverctl spawn "swayidle timeout 300 swaylock before-sleep swaylock"
+riverctl spawn "dbus-update-activation-environment --systemd WAYLAND_DISPLAY QT_QPT_PLATFORM XDG_CURRENT_DESKTOP=river"
+riverctl spawn "systemctl --user import-environment WAYLAND_DISPLAY QT_QPA_PLATFORM"
+riverctl spawn "systemctl --user set-environment XDG_CURRENT_DESKTOP=river"
+riverctl spawn dunst
+riverctl spawn firefox
+
+# Super+Shift+Return to start an instance of foot (https://codeberg.org/dnkl/foot)
+riverctl map normal Super+Shift Return spawn foot
+riverctl map normal Super T spawn "emacsclient -c"
+riverctl map normal Super D spawn "rofi -show run"
+riverctl map normal Super S spawn "rofipass"
+
+# Super+Q to close the focused view
+riverctl map normal Super+Shift C close
+
+# Super+Shift+E to exit river
+# riverctl map normal Super+Shift E exit
+
+# Super+J and Super+K to focus the next/previous view in the layout stack
+riverctl map normal Super J focus-view next
+riverctl map normal Super K 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
+
+# Lock screen
+riverctl map normal Super+Shift Z spawn "swaylock"
+
+# 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 rivertile(1)
+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"
+
+# Super+Shift+H and Super+Shift+L to increment/decrement the main count of rivertile(1)
+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"
+
+# Super+Alt+{H,J,K,L} to move views
+#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
+
+# 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
+
+# Super+Alt+Shift+{H,J,K,L} to resize views
+# 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
+
+# Super + Left Mouse Button to move views
+riverctl map-pointer normal Super BTN_LEFT move-view
+
+# Super + Right Mouse Button to resize views
+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
+
+function tag_bindings() {
+ i=$1
+ key=$2
+ tags=$((1 << ($i - 1)))
+ echo binding key $key to $i
+
+ # Super+[1-9] to focus tag [0-8]
+ riverctl map normal Super $key set-focused-tags $tags
+
+ # Super+Shift+[1-9] to tag focused view with tag [0-8]
+ riverctl map normal Super+Shift $key set-view-tags $tags
+
+ # Super+Control+[1-9] to toggle focus of tag [0-8]
+ riverctl map normal Super+Control $key toggle-focused-tags $tags
+
+ # Super+Shift+Control+[1-9] to toggle tag [0-8] of focused view
+ riverctl map normal Super+Shift+Control $key toggle-view-tags $tags
+}
+
+tag_bindings 1 apostrophe
+tag_bindings 2 comma
+tag_bindings 3 period
+tag_bindings 4 P
+tag_bindings 5 Y
+tag_bindings 6 A
+tag_bindings 7 O
+tag_bindings 8 E
+tag_bindings 9 U
+tag_bindings 10 I
+
+# Super+0 to focus all tags
+# Super+Shift+0 to tag focused view with all tags
+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
+
+# toggle float
+riverctl map normal Super+Shift F toggle-float
+
+# Super+F to toggle fullscreen
+riverctl map normal Super F toggle-fullscreen
+
+# Super+{Up,Right,Down,Left} to change layout orientation
+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"
+
+# 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
+riverctl declare-mode passthrough
+
+# Super+F11 to enter passthrough mode
+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'
+
+ # Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer)
+ riverctl map $mode None XF86AudioRaiseVolume spawn 'pamixer -i 5'
+ riverctl map $mode None XF86AudioLowerVolume spawn 'pamixer -d 5'
+ riverctl map $mode None XF86AudioMute spawn 'pamixer --toggle-mute'
+
+ # Control MPRIS aware media players with playerctl (https://github.com/altdesktop/playerctl)
+ 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'
+
+ # Control screen backlight brightness with light (https://github.com/haikarainen/light)
+ riverctl map $mode None XF86MonBrightnessUp spawn 'light -A 5'
+ riverctl map $mode None XF86MonBrightnessDown spawn 'light -U 5'
+done
+
+# Set background and border color
+riverctl background-color 0x2a3462
+riverctl border-color-focused 0xfc20bb
+riverctl border-color-unfocused 0x1b1d1e
+
+# Set keyboard repeat rate
+riverctl set-repeat 50 300
+
+# Make all views with an app-id that starts with "float" and title "foo" start floating.
+riverctl float-filter-add app-id 'Rofi'
+
+# Make all views with app-id "bar" and any title use client-side decorations
+#riverctl rule-add csd -app-id "bar"
+
+# Set the default layout generator to be rivertile and start it.
+# River will send the process group of the init executable SIGTERM on exit.
+riverctl default-layout rivertile
+rivertile -view-padding 2 -outer-padding 0 &
diff --git a/desktop/.config/swaylock/config b/desktop/.config/swaylock/config
new file mode 100644
index 0000000..f27508a
--- /dev/null
+++ b/desktop/.config/swaylock/config
@@ -0,0 +1,2 @@
+color=171b24
+indicator-idle-visible \ No newline at end of file
diff --git a/desktop/.config/waybar/config b/desktop/.config/waybar/config
new file mode 100644
index 0000000..5037e75
--- /dev/null
+++ b/desktop/.config/waybar/config
@@ -0,0 +1,127 @@
+{
+ // "layer": "top", // Waybar at top layer
+ // "position": "bottom", // Waybar position (top|bottom|left|right)
+ "height": 30, // Waybar height (to be removed for auto height)
+ // "width": 1280, // Waybar width
+ "spacing": 4, // Gaps between modules (4px)
+ // Choose the order of the modules
+ "modules-left": ["river/tags", "river/mode", "custom/media"],
+ "modules-center": ["river/window"],
+ "modules-right": ["idle_inhibitor", "pulseaudio", "network", "cpu", "memory", "temperature", "backlight", "battery", "battery#bat2", "clock", "tray"],
+ "keyboard-state": {
+ "numlock": true,
+ "capslock": true,
+ "format": "{name} {icon}",
+ "format-icons": {
+ "locked": "",
+ "unlocked": ""
+ }
+ },
+ "river/tags": {
+ "num-tags": 10
+ },
+ "sway/mode": {
+ "format": "<span style=\"italic\">{}</span>"
+ },
+ "sway/scratchpad": {
+ "format": "{icon} {count}",
+ "show-empty": false,
+ "format-icons": ["", ""],
+ "tooltip": true,
+ "tooltip-format": "{app}: {title}"
+ },
+ "idle_inhibitor": {
+ "format": "{icon}",
+ "format-icons": {
+ "activated": "",
+ "deactivated": ""
+ }
+ },
+ "tray": {
+ // "icon-size": 21,
+ "spacing": 10
+ },
+ "clock": {
+ // "timezone": "America/New_York",
+ "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
+ "format-alt": "{:%Y-%m-%d}"
+ },
+ "cpu": {
+ "format": "{usage}% ",
+ "tooltip": false
+ },
+ "memory": {
+ "format": "{}% "
+ },
+ "temperature": {
+ // "thermal-zone": 2,
+ // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
+ "critical-threshold": 80,
+ // "format-critical": "{temperatureC}°C {icon}",
+ "format": "{temperatureC}°C {icon}",
+ "format-icons": ["", "", ""]
+ },
+ "backlight": {
+ // "device": "acpi_video1",
+ "format": "{percent}% {icon}",
+ "format-icons": ["", "", "", "", "", "", "", "", ""]
+ },
+ "battery": {
+ "states": {
+ // "good": 95,
+ "warning": 30,
+ "critical": 15
+ },
+ "format": "{capacity}% {icon}",
+ "format-charging": "{capacity}% ",
+ "format-plugged": "{capacity}% ",
+ "format-alt": "{time} {icon}",
+ // "format-good": "", // An empty format will hide the module
+ // "format-full": "",
+ "format-icons": ["", "", "", "", ""]
+ },
+ "battery#bat2": {
+ "bat": "BAT2"
+ },
+ "network": {
+ // "interface": "wlp2*", // (Optional) To force the use of this interface
+ "format-wifi": "{essid} ({signalStrength}%) ",
+ "format-ethernet": "{ipaddr}/{cidr} ",
+ "tooltip-format": "{ifname} via {gwaddr} ",
+ "format-linked": "{ifname} (No IP) ",
+ "format-disconnected": "Disconnected ⚠",
+ "format-alt": "{ifname}: {ipaddr}/{cidr}"
+ },
+ "pulseaudio": {
+ // "scroll-step": 1, // %, can be a float
+ "format": "{volume}% {icon} {format_source}",
+ "format-bluetooth": "{volume}% {icon} {format_source}",
+ "format-bluetooth-muted": " {icon} {format_source}",
+ "format-muted": " {format_source}",
+ "format-source": "{volume}% ",
+ "format-source-muted": "",
+ "format-icons": {
+ "headphone": "",
+ "hands-free": "",
+ "headset": "",
+ "phone": "",
+ "portable": "",
+ "car": "",
+ "default": ["", "", ""]
+ },
+ "on-click": "pavucontrol"
+ },
+ "custom/media": {
+ "format": "{icon} {}",
+ "return-type": "json",
+ "max-length": 40,
+ "format-icons": {
+ "spotify": "",
+ "default": "🎜"
+ },
+ "escape": true,
+ "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
+ // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
+ }
+}
+
diff --git a/desktop/.xsession b/desktop/.xsession
index 6e25f3c..dc687d4 100755
--- a/desktop/.xsession
+++ b/desktop/.xsession
@@ -11,6 +11,11 @@ fi
source ~/.zshenv
+if [[ $(hostname) =~ pincer* ]]; then
+ exec river
+ exit 0
+fi
+
find_planck_keyboard() {
xinput list | grep -q "OLKB Planck"
}