From 7d2b0c8681fd874389cdb67accb6ba8de83c4120 Mon Sep 17 00:00:00 2001 From: willemml Date: Sat, 3 Feb 2024 17:09:37 -0800 Subject: [PATCH] Adds waybar and fonts --- home/linux/fonts.nix | 9 ++ home/linux/hyprland.nix | 18 ++++ home/linux/waybar.nix | 158 ++++++++++++++++++++++++++++++++++++ nixos/profiles/hyprland.nix | 5 ++ 4 files changed, 190 insertions(+) create mode 100644 home/linux/fonts.nix create mode 100644 home/linux/waybar.nix diff --git a/home/linux/fonts.nix b/home/linux/fonts.nix new file mode 100644 index 0000000..cb2a975 --- /dev/null +++ b/home/linux/fonts.nix @@ -0,0 +1,9 @@ +{pkgs, ...}: { + fonts.fontconfig.enable = true; + home.packages = with pkgs; [ + rPackages.fontawesome + nerdfonts + ubuntu_font_family + noto-fonts-cjk-sans + ]; +} diff --git a/home/linux/hyprland.nix b/home/linux/hyprland.nix index d5c8945..f95b202 100644 --- a/home/linux/hyprland.nix +++ b/home/linux/hyprland.nix @@ -6,7 +6,9 @@ ... }: { imports = [ + ./fonts.nix ./swaylock.nix + ./waybar.nix ]; home.packages = with pkgs; [ @@ -27,6 +29,21 @@ enable = true; settings = { + decoration = { + #blur = false; + rounding = 5; + drop_shadow = false; + }; + + general = { + gaps_in = 3; + gaps_out = 3; + }; + + monitor = [ + "eDP-1, 3456x2160, 0x0, 1.2" + ]; + exec = [ "${pkgs.swaybg}/bin/swaybg -i ${config.stylix.image} -m fill" ]; @@ -46,6 +63,7 @@ force_default_wallpaper = 0; mouse_move_enables_dpms = true; key_press_enables_dpms = true; + vfr = true; }; "$mod" = "SUPER"; diff --git a/home/linux/waybar.nix b/home/linux/waybar.nix new file mode 100644 index 0000000..5d66959 --- /dev/null +++ b/home/linux/waybar.nix @@ -0,0 +1,158 @@ +{ + config, + pkgs, + stylix, + osConfig, + ... +}: let + networkInterface.eth = + if osConfig.networking.hostName == "voyager" + then "wlan0" + else ""; + hwmon = + if osConfig.networking.hostName == "voyager" + then "/sys/class/hwmon/hwmon4/temp1_input" + else ""; + colors = config.lib.stylix.colors.withHashtag; + primaryColor = colors.base04; + altColor = colors.base0C; +in { + programs.waybar = { + enable = true; + package = pkgs.waybar.overrideAttrs (oldAttrs: { + mesonFlags = oldAttrs.mesonFlags ++ ["-Dexperimental=true"]; + }); + + settings = { + mainBar = { + layer = "top"; + position = "top"; + height = 30; + spacing = 8; + margin = "3px 3px 0px 3px"; + modules-left = ["hyprland/workspaces"]; + modules-right = ["network" "cpu" "temperature" "memory" "disk" "pulseaudio" "battery" "tray" "clock"]; + + "hyprland/workspaces" = { + sort-by-number = true; + on-click = "activate"; + format = "{icon}"; + persistent-workspaces = { + "1" = "[]"; + "2" = "[]"; + "3" = "[]"; + "4" = "[]"; + }; + format-icons = { + "urgent" = ""; + "active" = ""; + "default" = ""; + }; + }; + + "tray"."spacing" = 2; + + "clock" = { + "format" = " {:%R} "; + "format-alt" = " {:%a, %b %d, %Y %R} "; + "tooltip-format" = "{calendar}"; + "calendar" = { + "mode" = "year"; + "mode-mon-col" = 3; + "weeks-pos" = "right"; + "on-scroll" = 1; + "on-click-right" = "mode"; + "format" = { + "months" = "{}"; + "days" = "{}"; + "weeks" = "W{}"; + "weekdays" = "{}"; + "today" = "{}"; + }; + }; + "actions" = { + "on-click-right" = "mode"; + "on-scroll-up" = "shift_up"; + "on-scroll-down" = "shift_down"; + }; + }; + + "cpu" = { + "interval" = 2; + "format" = "{usage}%  {avg_frequency}GHz"; + "on-click" = "${pkgs.alacritty}/bin/alacritty -e ${pkgs.bottom}/bin/btm"; + }; + + "battery" = { + "bat" = "macsmc-battery"; + "states" = { + "good" = 95; + "warning" = 30; + "critical" = 15; + }; + "format" = "{capacity}% {icon}"; + "format-full" = ""; + "format-icons" = [ + "" + "" + "" + "" + "" + ]; + }; + + "memory" = { + "format" = "{used:0.1f}G/{total:0.1f}G "; + "on-click" = "${pkgs.alacritty}/bin/alacritty -e ${pkgs.bottom}/bin/btm"; + }; + + "disk" = { + "format" = "{used}/{total} "; + "path" = "/"; + }; + + "network" = { + "interface" = "${networkInterface.eth}"; + "interval" = 2; + "format-ethernet" = "Up: {bandwidthUpBits} Down: {bandwidthDownBits} "; + "tooltip-format-ethernet" = "{ifname} "; + "format-wifi" = "Up: {bandwidthUpBits} Down: {bandwidthDownBits} ({signalStrength}%) "; + "tooltip-format-wifi" = "{ifname} {essid} ({signalStrength}%) "; + "format-disconnected" = "Disconnected ⚠"; + "on-click" = "${pkgs.alacritty}/bin/alacritty -e ${pkgs.networkmanager}/bin/nmtui"; + }; + + "pulseaudio" = { + "format" = "{volume}% {icon}"; + "format-bluetooth" = "{volume}% {icon}"; + "format-muted" = ""; + "format-icons" = { + "headphones" = ""; + "handsfree" = ""; + "headset" = ""; + "phone" = ""; + "portable" = ""; + "car" = ""; + "default" = [ + "" + "" + ]; + }; + "on-click" = "${pkgs.pavucontrol}/bin/pavucontrol"; + }; + + "temperature" = { + "hwmon-path" = "${hwmon}"; + "format" = "{}°C"; + "critical-threshold" = 80; + "on-click" = "${pkgs.alacritty}/bin/alacritty -e ${pkgs.bottom}/bin/btm"; + }; + }; + }; + style = '' + window#waybar { + border-radius: 5px; + } + ''; + }; +} diff --git a/nixos/profiles/hyprland.nix b/nixos/profiles/hyprland.nix index b48d068..45ef94a 100644 --- a/nixos/profiles/hyprland.nix +++ b/nixos/profiles/hyprland.nix @@ -8,6 +8,11 @@ programs.hyprland.enable = true; programs.hyprland.package = inputs.hyprland.packages.${pkgs.system}.hyprland; + programs.waybar.enable = true; + programs.waybar.package = pkgs.waybar.overrideAttrs (oldAttrs: { + mesonFlags = oldAttrs.mesonFlags ++ ["-Dexperimental=true"]; + }); + security.pam.services.swaylock.text = "auth include login"; nix.settings = {