From df03e677e106d1264343e3871f9ba0dc027efc2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Lafuente?= Date: Tue, 7 Jan 2025 22:23:05 +0100 Subject: [PATCH] mako -> swaync --- dotfiles/swaync.css | 432 +++++++++++++++++++++++++++++++++ dotfiles/waybar.css | 8 +- home-manager/sway.nix | 34 +-- home-manager/waybar.nix | 26 ++ nixos/common-configuration.nix | 12 +- 5 files changed, 495 insertions(+), 17 deletions(-) create mode 100644 dotfiles/swaync.css diff --git a/dotfiles/swaync.css b/dotfiles/swaync.css new file mode 100644 index 00000000..043cbcb1 --- /dev/null +++ b/dotfiles/swaync.css @@ -0,0 +1,432 @@ +* { + font-size: 14px; + font-family: "Noto Sans"; + transition: 100ms; + box-shadow: unset; +} + +.control-center .notification-row { + background-color: unset; +} + +.control-center .notification-row .notification-background .notification, +.control-center + .notification-row + .notification-background + .notification + .notification-content, +.floating-notifications + .notification-row + .notification-background + .notification, +.floating-notifications.background + .notification-background + .notification + .notification-content { + margin-bottom: unset; +} + +.control-center .notification-row .notification-background .notification { + margin-top: 0.15rem; +} + +.control-center .notification-row .notification-background .notification box, +.control-center .notification-row .notification-background .notification widget, +.control-center + .notification-row + .notification-background + .notification + .notification-content, +.floating-notifications + .notification-row + .notification-background + .notification + box, +.floating-notifications + .notification-row + .notification-background + .notification + widget, +.floating-notifications.background + .notification-background + .notification + .notification-content { + border: unset; + border-radius: 1.159rem; + -gtk-outline-radius: 1.159rem; +} + +.floating-notifications.background + .notification-background + .notification + .notification-content, +.control-center .notification-background .notification .notification-content { + /* border-top: 1px solid rgba(164, 162, 167, 0.15); + border-left: 1px solid rgba(164, 162, 167, 0.15); + border-right: 1px solid rgba(128, 127, 132, 0.15); + border-bottom: 1px solid rgba(128, 127, 132, 0.15);*/ + background-color: #1d1d22; + padding: 0.818rem; + padding-right: unset; + margin-right: unset; +} + +.control-center + .notification-row + .notification-background + .notification.low + .notification-content + label, +.control-center + .notification-row + .notification-background + .notification.normal + .notification-content + label, +.floating-notifications.background + .notification-background + .notification.low + .notification-content + label, +.floating-notifications.background + .notification-background + .notification.normal + .notification-content + label { + color: #c7c5d0; +} + +.control-center + .notification-row + .notification-background + .notification..notification-content + image, +.control-center + .notification-row + .notification-background + .notification.normal + .notification-content + image, +.floating-notifications.background + .notification-background + .notification.low + .notification-content + image, +.floating-notifications.background + .notification-background + .notification.normal + .notification-content + image { + background-color: unset; + color: #e2e0f9; +} + +.control-center + .notification-row + .notification-background + .notification.low + .notification-content + .body, +.control-center + .notification-row + .notification-background + .notification.normal + .notification-content + .body, +.floating-notifications.background + .notification-background + .notification.low + .notification-content + .body, +.floating-notifications.background + .notification-background + .notification.normal + .notification-content + .body { + color: #92919a; +} + +.control-center + .notification-row + .notification-background + .notification.critical + .notification-content, +.floating-notifications.background + .notification-background + .notification.critical + .notification-content { + background-color: #ffb4a9; +} + +.control-center + .notification-row + .notification-background + .notification.critical + .notification-content + image, +.floating-notifications.background + .notification-background + .notification.critical + .notification-content + image { + background-color: unset; + color: #ffb4a9; +} + +.control-center + .notification-row + .notification-background + .notification.critical + .notification-content + label, +.floating-notifications.background + .notification-background + .notification.critical + .notification-content + label { + color: #680003; +} + +.control-center + .notification-row + .notification-background + .notification + .notification-content + .summary, +.floating-notifications.background + .notification-background + .notification + .notification-content + .summary { + font-family: "Gabarito", "Lexend", sans-serif; + font-size: 0.9909rem; + font-weight: 500; +} + +.control-center + .notification-row + .notification-background + .notification + .notification-content + .time, +.floating-notifications.background + .notification-background + .notification + .notification-content + .time { + font-family: "Geist", "AR One Sans", "Inter", "Roboto", "Noto Sans", "Ubuntu", + sans-serif; + font-size: 0.8291rem; + font-weight: 500; + margin-right: 1rem; + padding-right: unset; +} + +.control-center + .notification-row + .notification-background + .notification + .notification-content + .body, +.floating-notifications.background + .notification-background + .notification + .notification-content + .body { + font-family: "Noto Sans", sans-serif; + font-size: 0.8891rem; + font-weight: 400; + margin-top: 0.31rem; + padding-right: unset; + margin-right: unset; +} + +.control-center .notification-row .close-button, +.floating-notifications.background .close-button { + background-color: unset; + border-radius: 100%; + border: none; + box-shadow: none; + margin-right: 13px; + margin-top: 6px; + margin-bottom: unset; + padding-bottom: unset; + min-height: 20px; + min-width: 20px; + text-shadow: none; +} + +.control-center .notification-row .close-button:hover, +.floating-notifications.background .close-button:hover { + background-color: rgba(255, 255, 255, 0.15); +} + +.control-center { + border-radius: 1.705rem; + -gtk-outline-radius: 1.705rem; + border-top: 1px solid rgba(164, 162, 167, 0.19); + border-left: 1px solid rgba(164, 162, 167, 0.19); + border-right: 1px solid rgba(128, 127, 132, 0.145); + border-bottom: 1px solid rgba(128, 127, 132, 0.145); + box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.45); + margin: 7px; + background-color: #14141b; + padding: 1.023rem; +} + +.control-center trough { + background-color: #45475a; + border-radius: 9999px; + -gtk-outline-radius: 9999px; + min-width: 0.545rem; + background-color: transparent; +} + +.control-center slider { + border-radius: 9999px; + -gtk-outline-radius: 9999px; + min-width: 0.273rem; + min-height: 2.045rem; + background-color: rgba(199, 197, 208, 0.31); +} + +.control-center slider:hover { + background-color: rgba(199, 197, 208, 0.448); +} + +.control-center slider:active { + background-color: #77767e; +} + +/* title widget */ + +.widget-title { + padding: 0.341rem; + margin: unset; +} + +.widget-title label { + font-family: "Gabarito", "Lexend", sans-serif; + font-size: 1.364rem; + color: #e4e1e6; + margin-left: 0.941rem; +} + +.widget-title button { + border: unset; + background-color: unset; + border-radius: 1.159rem; + -gtk-outline-radius: 1.159rem; + padding: 0.141rem 0.141rem; + margin-right: 0.841rem; +} + +.widget-title button label { + font-family: "Gabarito", sans-serif; + font-size: 1.0409rem; + color: #e4e1e6; + margin-right: 0.841rem; +} + +.widget-title button:hover { + background-color: rgba(128, 128, 128, 0.3); +} + +.widget-title button:active { + background-color: rgba(128, 128, 128, 0.7); +} + +/* Buttons widget */ + +.widget-buttons-grid { + border-radius: 1.159rem; + -gtk-outline-radius: 1.159rem; + padding: 0.341rem; + background-color: rgba(28, 28, 34, 0.35); + padding: unset; +} + +.widget-buttons-grid > flowbox { + padding: unset; +} + +.widget-buttons-grid > flowbox > flowboxchild > button:first-child { + margin-left: unset; +} + +.widget-buttons-grid > flowbox > flowboxchild > button { + border: none; + background-color: unset; + border-radius: 9999px; + min-width: 5.522rem; + min-height: 2.927rem; + padding: unset; + margin: unset; +} + +.widget-buttons-grid > flowbox > flowboxchild > button label { + font-family: "Materials Symbol Rounded"; + font-size: 1.3027rem; + color: #e4e1e6; +} + +.widget-buttons-grid > flowbox > flowboxchild > button:hover { + background-color: rgba(128, 128, 128, 0.3); +} + +.widget-buttons-grid > flowbox > flowboxchild > button:checked { + /* OnePlus McClaren edition Orange accent */ + background-color: #ff9f34; +} + +.widget-buttons-grid > flowbox > flowboxchild > button:checked label { + color: #14141b; +} + +/* Volume widget */ + +.widget-volume { + background-color: rgba(28, 28, 34, 0.35); + padding: 8px; + margin: 8px; + -gtk-outline-radius: 1.159rem; + -gtk-outline-radius: 1.159rem; +} + +.widget-volume trough { + /* OnePlus McClaren edition Orange accent */ + border: unset; + background-color: rgba(128, 128, 128, 0.4); +} + +.widget-volume trough slider { + /* OnePlus McClaren edition Orange accent */ + color: unset; + background-color: #ff9f34; + border-radius: 100%; + min-height: 1.25rem; +} + +/* Mpris widget */ + +.widget-mpris { + background-color: rgba(28, 28, 34, 0.35); + padding: 8px; + margin: 8px; + border-radius: 1.159rem; + -gtk-outline-radius: 1.159rem; +} + +.widget-mpris-player { + padding: 8px; + margin: 8px; +} + +.widget-mpris-title { + font-weight: bold; + font-size: 1.25rem; +} + +.widget-mpris-subtitle { + font-size: 1.1rem; +} diff --git a/dotfiles/waybar.css b/dotfiles/waybar.css index ddf95f85..c6c9fd6a 100644 --- a/dotfiles/waybar.css +++ b/dotfiles/waybar.css @@ -32,7 +32,6 @@ window#waybar { background: #64727d; border-bottom: 3px solid #ffffff; } - #clock, #battery, #cpu, @@ -147,3 +146,10 @@ window#waybar { color: #2d3436; border-bottom: none; } + +#custom-notification { + font-family: "NotoSansMono Nerd Font"; + color: #fbf1c7; + font-size: 14px; + padding: 2px 4px; +} diff --git a/home-manager/sway.nix b/home-manager/sway.nix index 2c247712..92b44122 100644 --- a/home-manager/sway.nix +++ b/home-manager/sway.nix @@ -335,21 +335,20 @@ in services.systembus-notify.enable = true; - # TODO replace with wired? Also volnoti? - services.mako = { - enable = true; - font = "Hack 14"; - padding = "10"; - margin = "30"; - format = ''%a\n%s\n%b''; - height = 1500; - width = 700; - backgroundColor = "#285577FF"; - defaultTimeout = 10000; - ignoreTimeout = false; - anchor = "top-right"; - borderSize = 3; - }; + # services.mako = { + # enable = true; + # font = "Hack 14"; + # padding = "10"; + # margin = "30"; + # format = ''%a\n%s\n%b''; + # height = 1500; + # width = 700; + # backgroundColor = "#285577FF"; + # defaultTimeout = 10000; + # ignoreTimeout = false; + # anchor = "top-right"; + # borderSize = 3; + # }; systemd.user.services.clipman = { @@ -389,6 +388,11 @@ in }; + services.swaync = { + enable = true; + style = builtins.readFile ../dotfiles/swaync.css; + }; + services.avizo = { enable = true; }; diff --git a/home-manager/waybar.nix b/home-manager/waybar.nix index 4b4cb051..d311c9aa 100644 --- a/home-manager/waybar.nix +++ b/home-manager/waybar.nix @@ -1,5 +1,10 @@ # https://developer.gnome.org/pygtk/stable/pango-markup-language.html { pkgs }: + +let + swaync-client = "${pkgs.swaynotificationcenter}/bin/swaync-client"; +in + { layer = "top"; # Waybar at top layer position = "bottom"; # Waybar position (top|bottom|left|right) @@ -22,9 +27,30 @@ "battery" "pulseaudio" "tray" + "custom/notification" "clock" ]; + "custom/notification" = { + "tooltip" = false; + "format" = "{icon}"; + "format-icons" = { + "notification" = "󰅸 "; + "none" = "󰂜 "; + "dnd-notification" = "󰅸 "; + "dnd-none" = "󱏨 "; + "inhibited-notification" = "󰅸 "; + "inhibited-none" = "󰂜 "; + "dnd-inhibited-notification" = "󰅸 "; + "dnd-inhibited-none" = "󱏨 "; + }; + "return-type" = "json"; + "exec" = "${swaync-client} -swb"; + "on-click" = "${swaync-client} -t -sw"; + "on-click-right" = "${swaync-client} -d -sw"; + "escape" = true; + }; + # Modules configuration "sway/workspaces" = { disable-scroll = false; diff --git a/nixos/common-configuration.nix b/nixos/common-configuration.nix index c81e46c7..eed43961 100644 --- a/nixos/common-configuration.nix +++ b/nixos/common-configuration.nix @@ -161,7 +161,7 @@ in { enable = true; extraPackages = with pkgs; [ - mako + # mako wofi wdisplays waybar @@ -222,6 +222,9 @@ in services.udisks2.enable = true; services.udev.packages = with pkgs; [ libu2f-host yubikey-personalization ]; + # TODO better users + # systemd.sysusers.enable + users.mutableUsers = false; users.users.root = { hashedPasswordFile = config.sops.secrets.rootPassword.path; @@ -282,6 +285,13 @@ in }; + # services.metabase = { + # enable = true; + # listen.port = 63000; + # ssl.enable = false; + # }; + + # The NixOS release to be compatible with for stateful data such as databases. system.stateVersion = "23.11"; }