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 = {