summaryrefslogtreecommitdiff
path: root/home-modules/desktop/wayland
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--home-modules/desktop/wayland/default.nix3
-rw-r--r--home-modules/desktop/wayland/mako.ini25
-rw-r--r--home-modules/desktop/wayland/mako.nix12
-rw-r--r--home-modules/desktop/wayland/waybar.css230
-rw-r--r--home-modules/desktop/wayland/waybar.nix131
5 files changed, 401 insertions, 0 deletions
diff --git a/home-modules/desktop/wayland/default.nix b/home-modules/desktop/wayland/default.nix
new file mode 100644
index 0000000..9be2fe9
--- /dev/null
+++ b/home-modules/desktop/wayland/default.nix
@@ -0,0 +1,3 @@
+{pkgs, hostconfig, ...}: {
+ imports = [./waybar.nix ./mako.nix];
+}
diff --git a/home-modules/desktop/wayland/mako.ini b/home-modules/desktop/wayland/mako.ini
new file mode 100644
index 0000000..27b16c8
--- /dev/null
+++ b/home-modules/desktop/wayland/mako.ini
@@ -0,0 +1,25 @@
+max-visible=4
+max-history=8
+sort=-time
+
+font=Hermit 12
+
+background-color=#ED45B8AA
+text-color=#FFFFFFFF
+
+margin=10
+padding=5
+border-radius=5
+progress-color=source #FFFFFFFF
+#max-icon-size=64
+default-timeout=4000
+
+on-button-middle=exec makoctl menu -n "$id" wofi -dp "Select action: "
+
+[urgency=normal]
+border-color=#FFFFFFFF
+
+[urgency=high]
+border-color=#FF5544
+default-timeout=0
+
diff --git a/home-modules/desktop/wayland/mako.nix b/home-modules/desktop/wayland/mako.nix
new file mode 100644
index 0000000..15c7969
--- /dev/null
+++ b/home-modules/desktop/wayland/mako.nix
@@ -0,0 +1,12 @@
+{pkgs, config, hostconfig, lib,...}: {
+ options.homeprogs.mako.enable = lib.mkEnableOption "Enable Mako notification manager";
+ config = lib.mkIf config.homeprogs.mako.enable {
+ services.mako = {
+ enable = true;
+ };
+ xdg.configFile."mako/config".source = ./mako.ini;
+
+ };
+
+
+}
diff --git a/home-modules/desktop/wayland/waybar.css b/home-modules/desktop/wayland/waybar.css
new file mode 100644
index 0000000..3c90892
--- /dev/null
+++ b/home-modules/desktop/wayland/waybar.css
@@ -0,0 +1,230 @@
+* {
+ /* `otf-font-awesome` is required to be installed for icons */
+ font-family: Hermit, Minecraftia ,FontAwesome, Helvetica, Arial, sans-serif;
+ font-size: 13px;
+}
+
+window#waybar {
+ background-color: rgba(43, 48, 59, 0.5);
+ border-bottom: 3px solid rgba(100, 114, 125, 0.5);
+ color: #ffffff;
+ transition-property: background-color;
+ transition-duration: .5s;
+}
+
+window#waybar.hidden {
+ opacity: 0.2;
+}
+
+/*
+window#waybar.empty {
+ background-color: transparent;
+}
+window#waybar.solo {
+ background-color: #FFFFFF;
+}
+*/
+
+window#waybar.termite {
+ background-color: #3F3F3F;
+}
+
+window#waybar.chromium {
+ background-color: #000000;
+ border: none;
+}
+
+button {
+ /* Use box-shadow instead of border so the text isn't offset */
+ box-shadow: inset 0 -3px transparent;
+ /* Avoid rounded borders under each button name */
+ border: none;
+ border-radius: 0;
+}
+
+/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
+button:hover {
+ background: inherit;
+ box-shadow: inset 0 -3px #ed45b8;
+}
+
+#workspaces button {
+ padding: 0 5px;
+ background-color: transparent;
+ color: #ffffff;
+}
+
+#workspaces button:hover {
+ background: rgba(0, 0, 0, 0.2);
+}
+
+#workspaces button.focused {
+ background-color: #64727D;
+ box-shadow: inset 0 -3px #ffffff;
+}
+
+#workspaces button.urgent {
+ background-color: #eb4d4b;
+}
+
+#mode {
+ background-color: #64727D;
+ border-bottom: 3px solid #ffffff;
+}
+
+#clock,
+#battery,
+#cpu,
+#memory,
+#disk,
+#temperature,
+#backlight,
+#network,
+#pulseaudio,
+#wireplumber,
+#custom-media,
+#tray,
+#mode,
+#idle_inhibitor,
+#scratchpad,
+#mpd {
+ padding: 0 10px;
+ color: #ffffff;
+}
+
+#window,
+#workspaces {
+ margin: 0 4px;
+}
+
+/* If workspaces is the leftmost module, omit left margin */
+.modules-left > widget:first-child > #workspaces {
+ margin-left: 0;
+}
+
+/* If workspaces is the rightmost module, omit right margin */
+.modules-right > widget:last-child > #workspaces {
+ margin-right: 0;
+}
+
+#clock {
+ color: #000000;
+ background-color: #ffffff;
+}
+
+#battery {
+ color: #000000;
+ background-color: #ffffff;
+}
+
+#battery.charging, #battery.plugged {
+}
+
+@keyframes blink {
+ to {
+ color: #FFFFFF;
+ background-color: #000000 ;
+ }
+}
+
+#battery.critical:not(.charging) {
+ background-color: #f53c3c;
+ color: #ffffff;
+ animation-name: blink;
+ animation-duration: 0.5s;
+ animation-timing-function: linear;
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+}
+
+label:focus {
+ background-color: #000000;
+}
+
+#cpu {
+}
+
+#memory {
+}
+
+#disk {
+}
+
+#backlight {
+}
+
+#network {
+}
+
+#network.disconnected {
+}
+
+#wireplumber {
+ background-color: #fff0f5;
+ color: #000000;
+}
+
+#wireplumber.muted {
+ background-color: #f53c3c;
+}
+
+#temperature {
+}
+
+#temperature.critical {
+}
+
+#tray {
+ background-color: #ed45b8;
+}
+
+#tray > .passive {
+ -gtk-icon-effect: dim;
+}
+
+#tray > .needs-attention {
+ -gtk-icon-effect: highlight;
+ background-color: #eb4d4b;
+}
+
+#idle_inhibitor {
+}
+
+#idle_inhibitor.activated {
+}
+
+#mpd {
+}
+
+#mpd.disconnected {
+}
+
+#mpd.stopped {
+}
+
+#mpd.paused {
+}
+
+#language {
+ background: #ed45b8;
+ color: #740864;
+ padding: 0 5px;
+ margin: 0 5px;
+ min-width: 16px;
+}
+
+#keyboard-state {
+ background: #ed45b8;
+ color: #000000;
+ padding: 0 0px;
+ margin: 0 5px;
+ min-width: 16px;
+}
+
+#keyboard-state > label {
+ padding: 0 5px;
+}
+
+#keyboard-state > label.locked {
+ background: rgba(255, 0, 0, 0.2);
+}
diff --git a/home-modules/desktop/wayland/waybar.nix b/home-modules/desktop/wayland/waybar.nix
new file mode 100644
index 0000000..5f3c532
--- /dev/null
+++ b/home-modules/desktop/wayland/waybar.nix
@@ -0,0 +1,131 @@
+{pkgs, hostconfig, lib, config,...}: {
+ options.homeprogs.waybar.enable = lib.mkEnableOption "Enable waybar";
+
+ config = lib.mkIf config.homeprogs.waybar.enable {
+ programs.waybar = {
+ enable = true;
+ settings = [{
+ layer = "top";
+ position = "top";
+ height = 30;
+ spacing = 6;
+ modules-left = [
+ "hyprland/workspaces"
+ "hyprland/window"
+ ];
+
+ modules-center = [
+ "clock"
+ "hyprland/language"
+ "tray"
+ "battery"
+ ];
+
+ modules-right = [
+ "idle_inhibitor"
+ "wireplumber"
+ "network"
+ "cpu"
+ "memory"
+ "disk"
+ "temperature"
+ "backlight"
+ ];
+ wireplumber = {
+ scroll-step = 1; #%, can be a float
+ format = "{volume}% ";
+ format-muted = "Muted";
+ on-click = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
+ on-click-right = "pavucontrol";
+ };
+
+ network = {
+ # interface = "wlp2*"; # (Optional) To force the use of this interface
+ format-wifi = "({signalStrength}%) ";
+ format-ethernet = "{ifname} ";
+ tooltip-format = "{ifname} via {gwaddr} ";
+ format-linked = "{ifname} (No IP) ";
+ format-disconnected = "Disconnected ⚠";
+ format-alt= "{essid}: {ipaddr}/{cidr}";
+ };
+
+ "hyprland/workspaces" = {
+ all-outputs = false;
+ active-only = false;
+ format = "{name}";
+ format-icons = {
+ urgent = "";
+ focused = "";
+ default = "";
+ };
+ };
+
+ "hyprland/window" = {
+ max-length = 200;
+ separate-outputs = true;
+ };
+
+
+ keyboard-state = {
+ numlock = false;
+ format = "{name} {icon}";
+ format-icons = {
+ locked = "";
+ unlocked = "";
+ };
+ };
+ idle_inhibitor = {
+ format = "{icon}";
+ format-icons = {
+ activated = "";
+ deactivated = "";
+ };
+ };
+ tray = {
+ icon-size = 21;
+ spacing = 10;
+ };
+ clock = {
+ timezone = "Europe/Amsterdam";
+ 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 = 1;
+ # 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 = ["" "" "" "" ""];
+ };
+ }];
+ style = ./waybar.css;
+ };
+ };
+}