diff options
Diffstat (limited to '')
| -rw-r--r-- | home-modules/desktop/wayland/default.nix | 3 | ||||
| -rw-r--r-- | home-modules/desktop/wayland/mako.ini | 25 | ||||
| -rw-r--r-- | home-modules/desktop/wayland/mako.nix | 12 | ||||
| -rw-r--r-- | home-modules/desktop/wayland/waybar.css | 230 | ||||
| -rw-r--r-- | home-modules/desktop/wayland/waybar.nix | 131 |
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; + }; + }; +} |
