diff options
Diffstat (limited to 'share')
| -rw-r--r-- | share/hm-modules/hyprdesktop.nix | 1 | ||||
| -rw-r--r-- | share/home/eww/config/eww.scss | 20 | ||||
| -rw-r--r-- | share/home/eww/config/eww.yuck | 89 | ||||
| -rw-r--r-- | share/home/eww/default.nix | 6 | ||||
| -rw-r--r-- | share/home/hyprdesktop.nix | 4 | ||||
| -rw-r--r-- | share/home/waybar.css | 322 | ||||
| -rw-r--r-- | share/home/waybar.nix | 48 |
7 files changed, 372 insertions, 118 deletions
diff --git a/share/hm-modules/hyprdesktop.nix b/share/hm-modules/hyprdesktop.nix new file mode 100644 index 0000000..ffcd441 --- /dev/null +++ b/share/hm-modules/hyprdesktop.nix @@ -0,0 +1 @@ +{ } diff --git a/share/home/eww/config/eww.scss b/share/home/eww/config/eww.scss deleted file mode 100644 index 44d6acf..0000000 --- a/share/home/eww/config/eww.scss +++ /dev/null @@ -1,20 +0,0 @@ -* { - all: unset; // Unsets everything so you can style everything from scratch -} - -.bar { - background-color: #3a3a3a; - color: #fff; - padding: 1rem .25rem; -} - -.workspaces { - font-size: 2em; -} - - -.card { -// background-color: #1d2021; - margin: 1px; - padding: 5px 2px; -} diff --git a/share/home/eww/config/eww.yuck b/share/home/eww/config/eww.yuck deleted file mode 100644 index 6b5b719..0000000 --- a/share/home/eww/config/eww.yuck +++ /dev/null @@ -1,89 +0,0 @@ -(defwidget bar [] - (centerbox :orientation "v" - :class "bar" - (workspaces) - ;; TODO - add a command runner button here - "" - (sidestuff))) - -(defwidget workspace-btn [n ?icon] - (button :onclick "hyprctl dispatch 'workspace ${n}'" - :halign "baseline" - :hexpand true - "${icon ?: n}")) - -;; TODO - add indicator that signifies that there is at least one window open on -;; the workspace -(defwidget workspaces [] - (box :class "workspaces" - :orientation "v" - :space-evenly true - :valign "start" - :halign "center" - (workspace-btn :n 1 :icon "") - (workspace-btn :n 2 :icon "") - (workspace-btn :n 3 :icon "") - (workspace-btn :n 4 :icon "") - (workspace-btn :n 5 :icon "") - (workspace-btn :n 6 :icon "") - (workspace-btn :n 7 :icon "") - (workspace-btn :n 8 :icon "") - (workspace-btn :n 9 :icon ""))) - - -(defwidget sidestuff [] - (box :class "sidestuff" - :orientation "v" - :space-evenly false - :spacing 10 - :valign "end" - ;(netstats :device "wlp2s0") - (battery :device "BAT0") - (clock))) - -(defwidget metric [icon ?font-size] - (box :class "metric card" - :orientation "v" - (label :class "metric-icon" - :style {font-size != "" ? "font-size: ${font-size}rem;" : ""} - :text icon) - (children))) - -;; TODO - Add down speed and format them into human-readable values -(defwidget netstats [device] - (box :class "netstats" - :orientation "v" - :space-evenly false - :valign "end" - :halign "center" - device - "up" - {EWW_NET[device].NET_UP})) - -;; TODO - make the icon change based on the percentage left -(defwidget battery [device] - (metric :icon "" - :font-size 1.5 - "${EWW_BATTERY[device].capacity}%")) - -(defwidget clock [] - (box :class "card" - :orientation "v" - :valign "end" - :spacing -2 - {formattime(EWW_TIME, "%R")} - {formattime(EWW_TIME, "%a")} - {formattime(EWW_TIME, "%-d.")} - {formattime(EWW_TIME, "%b")} - {formattime(EWW_TIME, "%Y")})) - -(defwindow bar - :monitor 0 - :geometry (geometry :width "1.5%" - :height "98%" - :anchor "right center") - :stacking "fg" - :windowtype "dock" - :exclusive true - (bar)) - diff --git a/share/home/eww/default.nix b/share/home/eww/default.nix deleted file mode 100644 index 7b7bf47..0000000 --- a/share/home/eww/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ ... }: { - programs.eww = { - enable = true; - configDir = ./config; - }; -} diff --git a/share/home/hyprdesktop.nix b/share/home/hyprdesktop.nix index 707556e..0adaf43 100644 --- a/share/home/hyprdesktop.nix +++ b/share/home/hyprdesktop.nix @@ -12,7 +12,7 @@ ./minimal.nix ./wpaperd.nix ./tofi.nix - ./eww + ./waybar.nix ./git.nix ./mpv.nix ./kitty.nix @@ -114,8 +114,6 @@ # No fade-in animation for the lanucher layerrule = noanim, launcher - - exec-once = eww --config ${config.programs.eww.configDir} open bar ''; }; diff --git a/share/home/waybar.css b/share/home/waybar.css new file mode 100644 index 0000000..b585939 --- /dev/null +++ b/share/home/waybar.css @@ -0,0 +1,322 @@ +* { + /* `otf-font-awesome` is required to be installed for icons */ + font-family: FontAwesome, Roboto, 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 #ffffff; +} + +#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; + box-shadow: inset 0 -3px #ffffff; +} + +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#backlight, +#network, +#pulseaudio, +#wireplumber, +#custom-media, +#tray, +#mode, +#idle_inhibitor, +#scratchpad, +#power-profiles-daemon, +#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 { + background-color: #64727D; +} + +#battery { + background-color: #ffffff; + color: #000000; +} + +#battery.charging, #battery.plugged { + color: #ffffff; + background-color: #26A65B; +} + +@keyframes blink { + to { + background-color: #ffffff; + color: #000000; + } +} + +/* Using steps() instead of linear as a timing function to limit cpu usage */ +#battery.critical:not(.charging) { + background-color: #f53c3c; + color: #ffffff; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; +} + +#power-profiles-daemon { + padding-right: 15px; +} + +#power-profiles-daemon.performance { + background-color: #f53c3c; + color: #ffffff; +} + +#power-profiles-daemon.balanced { + background-color: #2980b9; + color: #ffffff; +} + +#power-profiles-daemon.power-saver { + background-color: #2ecc71; + color: #000000; +} + +label:focus { + background-color: #000000; +} + +#cpu { + background-color: #2ecc71; + color: #000000; +} + +#memory { + background-color: #9b59b6; +} + +#disk { + background-color: #964B00; +} + +#backlight { + background-color: #90b1b1; +} + +#network { + background-color: #2980b9; +} + +#network.disconnected { + background-color: #f53c3c; +} + +#pulseaudio { + background-color: #f1c40f; + color: #000000; +} + +#pulseaudio.muted { + background-color: #90b1b1; + color: #2a5c45; +} + +#wireplumber { + background-color: #fff0f5; + color: #000000; +} + +#wireplumber.muted { + background-color: #f53c3c; +} + +#custom-media { + background-color: #66cc99; + color: #2a5c45; + min-width: 100px; +} + +#custom-media.custom-spotify { + background-color: #66cc99; +} + +#custom-media.custom-vlc { + background-color: #ffa000; +} + +#temperature { + background-color: #f0932b; +} + +#temperature.critical { + background-color: #eb4d4b; +} + +#tray { + background-color: #2980b9; +} + +#tray > .passive { + -gtk-icon-effect: dim; +} + +#tray > .needs-attention { + -gtk-icon-effect: highlight; + background-color: #eb4d4b; +} + +#idle_inhibitor { + background-color: #2d3436; +} + +#idle_inhibitor.activated { + background-color: #ecf0f1; + color: #2d3436; +} + +#mpd { + background-color: #66cc99; + color: #2a5c45; +} + +#mpd.disconnected { + background-color: #f53c3c; +} + +#mpd.stopped { + background-color: #90b1b1; +} + +#mpd.paused { + background-color: #51a37a; +} + +#language { + background: #00b093; + color: #740864; + padding: 0 5px; + margin: 0 5px; + min-width: 16px; +} + +#keyboard-state { + background: #97e1ad; + color: #000000; + padding: 0 0px; + margin: 0 5px; + min-width: 16px; +} + +#keyboard-state > label { + padding: 0 5px; +} + +#keyboard-state > label.locked { + background: rgba(0, 0, 0, 0.2); +} + +#scratchpad { + background: rgba(0, 0, 0, 0.2); +} + +#scratchpad.empty { + background-color: transparent; +} + +#privacy { + padding: 0; +} + +#privacy-item { + padding: 0 5px; + color: white; +} + +#privacy-item.screenshare { + background-color: #cf5700; +} + +#privacy-item.audio-in { + background-color: #1ca000; +} + +#privacy-item.audio-out { + background-color: #0069d4; +} diff --git a/share/home/waybar.nix b/share/home/waybar.nix new file mode 100644 index 0000000..6f85d96 --- /dev/null +++ b/share/home/waybar.nix @@ -0,0 +1,48 @@ +{ lib, ... }: { + programs.waybar = { + enable = true; + systemd = { + enable = true; + target = "hyprland-session.target"; + }; + settings.mainBar = { + layer = "top"; + position = "right"; + width = 15; + reload_style_on_change = true; + + modules-left = [ "hyprland/workspaces" ]; + modules-right = [ + "battery" + "network" + "cpu" + "memory" + "temperature" + "backlight" + "keyboard-state" + "clock" + "tray" + ]; + + battery = { + format = lib.concatStringsSep "\n" [ + "{icon} {capacity}%" + " {power:4.1f} W" + ]; + interval = 2; + format-icons = [ "" "" "" "" "" "" "" "" "" "" ]; + }; + + keyboard-state = { + numlock = true; + capslock = true; + format = "{name} {icon}"; + format-icons = { + locked = ""; + unlocked = ""; + }; + }; + }; # end of settings.mainBar + style = builtins.readFile ./waybar.css; + }; +} |
