diff --git a/modules/home-manager/reo101-river/default.nix b/modules/home-manager/reo101-river/default.nix
index 5c95fd9..6210e7c 100644
--- a/modules/home-manager/reo101-river/default.nix
+++ b/modules/home-manager/reo101-river/default.nix
@@ -45,6 +45,14 @@ in
source = ./river;
};
+ home.file.".config/waybar/config" = {
+ source = ./waybar;
+ };
+
+ home.file.".config/waybar/style.css" = {
+ source = ./style.css;
+ };
+
systemd.user.services."swww" = {
Unit = {
Description = "swww Daemon";
diff --git a/modules/home-manager/reo101-river/river b/modules/home-manager/reo101-river/river
index 13c6d0b..8129fa5 100644
--- a/modules/home-manager/reo101-river/river
+++ b/modules/home-manager/reo101-river/river
@@ -13,7 +13,7 @@ riverctl map normal Super Q close
riverctl map normal Super+Shift Q exit
# Super+F11 to screenshot
-riverctl map normal Super F11 spawn 'grim -g "$(slurp)" - | wl-copy'
+riverctl map normal Super F10 spawn 'grim -g "$(slurp)" - | wl-copy'
# export PATH="${HOME}/.local/bin:${PATH}"
riverctl map normal Super D PATH="${HOME}/.local/bin:${PATH}" dmenu_run
@@ -161,9 +161,18 @@ riverctl float-filter-add "flameshot"
riverctl spawn "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=river"
riverctl spawn "systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=river"
+# Start audio server and manager
pipewire &
wireplumber &
+
+# Start statusbar
waybar &
+# Set wallpaper
+{
+ swww init
+ local last_bg = "${HOME}/Wallpapers/last"
+ [ -f "${last_bg}" ] && swww img "${last_bg}"
+}
+
exec rivertile -view-padding 6 -outer-padding 6
-# exec dbus-update-activation-environment WAYLAND_DISPLAY
diff --git a/modules/home-manager/reo101-river/style.css b/modules/home-manager/reo101-river/style.css
new file mode 100644
index 0000000..c89e05d
--- /dev/null
+++ b/modules/home-manager/reo101-river/style.css
@@ -0,0 +1,146 @@
+* {
+ border: none;
+ border-radius: 0;
+ min-height: 0;
+ font-family: "FiraCode Nerd Font";
+ font-size: 15px;
+}
+
+window#waybar {
+ /* background-color: rgba(43, 48, 59, 0.65); */
+ background-color: transparent;
+ color: white;
+}
+
+/* window#waybar.hidden { */
+/* opacity: 0.2; */
+/* } */
+
+#tags button {
+ padding: 0px 5px;
+ margin: 3px 3px;
+ /* background-color: #161320; */
+ background-color: rgba(0, 0, 0, 0.2);
+ color: #D9E0EE;
+ /* Use box-shadow instead of border so the text isn't offset */
+ box-shadow: inset 0 -3px transparent;
+ /* Avoid rounded borders under each workspace name */
+ border: none;
+ border-radius: 3;
+}
+
+/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
+#tags button:hover {
+ /* background: rgba(0, 0, 0, 0.2); */
+ box-shadow: inset 0 -3px #D9E0EE;
+}
+
+#tags button.occupied {
+ box-shadow: inset 0 -3px white;
+}
+
+#tags button.focused {
+ background-color: black;
+ box-shadow: inset 0 -3px green;
+}
+
+#tags button.urgent {
+ background-color: #F28FAD;
+}
+
+#mode {
+ background-color: #64727D;
+ border-bottom: 3px solid #D9E0EE;
+}
+
+#clock,
+#battery,
+#cpu,
+#memory,
+#disk,
+#temperature,
+#backlight,
+#network,
+#pulseaudio,
+#custom-media,
+#tray,
+#mode,
+#idle_inhibitor,
+#mpd,
+#language,
+#idle_inhibitor {
+ padding: 5px 10px;
+ margin: 3px 3px;
+ color: #D9E0EE;
+ border-radius: 3;
+ /* background-color: #161320; */
+ background-color: black;
+}
+
+#window,
+#tags {
+ margin: 0 4px;
+}
+
+/* If workspaces is the leftmost module, omit left margin */
+.modules-left > widget:first-child > #tags {
+ margin-left: 9px;
+}
+
+/* If workspaces is the rightmost module, omit right margin */
+.modules-right > widget:last-child > #tags {
+ margin-right: 0;
+}
+
+#clock {
+ min-width: 45px;
+ margin-right: 11px;
+}
+
+#battery {
+ min-width: 55px;
+}
+
+@keyframes blink {
+ to {
+ background-color: #ffffff;
+ color: #000000;
+ }
+}
+
+#battery.critical:not(.charging) {
+ background-color: #f53c3c;
+ color: #D9E0EE;
+ animation-name: blink;
+ animation-duration: 0.5s;
+ animation-timing-function: linear;
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+}
+
+label:focus {
+ background-color: #D9E0EE;
+}
+
+#backlight {
+ min-width: 55px;
+}
+
+#network {
+ min-width: 150px;
+}
+
+#tray {
+ /* background-color: #161320; */
+ background-color: black;
+}
+
+#tray > .passive {
+ -gtk-icon-effect: dim;
+}
+
+#tray > .needs-attention {
+ -gtk-icon-effect: highlight;
+ background-color: #F28FAD;
+}
+
diff --git a/modules/home-manager/reo101-river/waybar b/modules/home-manager/reo101-river/waybar
new file mode 100644
index 0000000..570eb8a
--- /dev/null
+++ b/modules/home-manager/reo101-river/waybar
@@ -0,0 +1,91 @@
+{
+ "layer": "bottom", // Waybar at top layer
+ "position": "top", // Waybar position (top|bottom|left|right)
+ "height": 30, // Waybar height (to be removed for auto height)
+ "spacing": 4, // Gaps between modules (4px)
+ "modules-left": ["river/tags"],
+ // "modules-center": ["sway/window"],
+ // "modules-right": ["idle_inhibitor", "pulseaudio", "network", "backlight",
+ // "battery", "cpu","memory", "temperature", "clock",
+ // "tray"],
+ "modules-right": [ "tray", "network", "pulseaudio", "battery", "clock" ],
+
+ "river/tags": {
+ "num-tags": 9
+ },
+
+ "idle_inhibitor": {
+ "format": "{icon}",
+ "format-icons": {
+ "activated": " ",
+ "deactivated": " "
+ }
+ },
+ "tray": {
+ // "icon-size": 21,
+ "spacing": 10
+ },
+ "clock": {
+ "tooltip-format":
+ "{:%Y %B}\n{calendar}",
+ "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": "{capacity}% {icon}",
+ "format-full": "{capacity}% {icon}",
+ "format-icons": [" ", " ", " ", " ", " "]
+ },
+ "network": {
+ "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": "",
+ "default": ["", "", ""]
+ },
+ "on-click": "pavucontrol"
+ },
+}
+
+// vim: ft=jsonc: