diff --git a/home/jonas/home.nix b/home/jonas/home.nix index 98a6b53..e5bf586 100644 --- a/home/jonas/home.nix +++ b/home/jonas/home.nix @@ -7,9 +7,10 @@ ./borg.nix ./doom.nix ./firefox.nix - ./hyprland.nix + ./hyprland ./plasma.nix ./ssh.nix + ./waybar ./yubikey.nix ./zsh.nix ]; diff --git a/home/jonas/hyprland.nix b/home/jonas/hyprland/config.nix similarity index 58% rename from home/jonas/hyprland.nix rename to home/jonas/hyprland/config.nix index 3c75f26..9883bba 100644 --- a/home/jonas/hyprland.nix +++ b/home/jonas/hyprland/config.nix @@ -1,150 +1,13 @@ { - inputs, config, pkgs, + lib, ... }: { - programs.rofi.enable = true; - home.packages = [ - pkgs.kitty - pkgs.pulsemixer - pkgs.pavucontrol - pkgs.qpaeq - ]; - - programs.wpaperd = { - enable = true; - settings = { - default = { - path = ./static/wallpaper/nord.png; - }; - }; - }; - - programs.waybar.enable = true; - programs.waybar.settings.mainBar = { - position = "top"; - layer = "top"; - height = 5; - margin-top = 0; - margin-bottom = 0; - margin-left = 0; - margin-right = 0; - modules-left = [ - "custom/launcher" - "hyprland/workspaces" - ]; - modules-center = [ - "hyprland/window" - ]; - modules-right = [ - "clock" - "cpu" - "memory" - "disk" - "battery" - "network" - "tray" - ]; - clock = { - calendar = { - format = {today = "{}";}; - }; - format = " {:%H:%M}"; - tooltip = "true"; - tooltip-format = "{:%Y %B}\n{calendar}"; - format-alt = " {:%d/%m}"; - }; - "hyprland/workspaces" = { - active-only = false; - disable-scroll = true; - format = "{icon}"; - on-click = "activate"; - format-icons = { - "1" = "󰈹"; - "2" = ""; - "3" = "󰘙"; - "4" = "󰙯"; - "5" = ""; - "6" = ""; - urgent = ""; - default = ""; - sort-by-number = true; - }; - persistent-workspaces = { - "1" = []; - "2" = []; - "3" = []; - "4" = []; - "5" = []; - }; - }; - memory = { - format = "󰟜 {}%"; - format-alt = "󰟜 {used} GiB"; #  - interval = 2; - }; - cpu = { - format = " {usage}%"; - format-alt = " {avg_frequency} GHz"; - interval = 2; - }; - disk = { - # path = "/"; - format = "󰋊 {percentage_used}%"; - interval = 60; - }; - network = { - format-wifi = " {signalStrength}%"; - format-ethernet = "󰀂 "; - tooltip-format = "Connected to {essid} {ifname} via {gwaddr}"; - format-linked = "{ifname} (No IP)"; - format-disconnected = "󰖪 "; - }; - tray = { - icon-size = 20; - spacing = 8; - }; - pulseaudio = { - format = "{icon} {volume}%"; - format-muted = "󰖁 {volume}%"; - format-icons = { - default = [" "]; - }; - scroll-step = 5; - on-click = "pamixer -t"; - }; - battery = { - format = "{icon} {capacity}%"; - format-icons = [" " " " " " " " " "]; - format-charging = " {capacity}%"; - format-full = " {capacity}%"; - format-warning = " {capacity}%"; - interval = 5; - states = { - warning = 20; - }; - format-time = "{H}h{M}m"; - tooltip = true; - tooltip-format = "{time}"; - }; - "custom/launcher" = { - format = ""; - on-click = "${pkgs.rofi}/bin/rofi -show drun"; - tooltip = "false"; - }; - }; - - wayland.windowManager.hyprland = { - enable = true; - systemd.variables = ["--all"]; - xwayland.enable = true; + wayland.windowManager.hyprland = lib.mkIf config.wayland.windowManager.hyprland.enable { settings = { exec-once = [ "${pkgs.wpaperd}/bin/wpaperd &" - "${pkgs.waybar}/bin/waybar &" - "${pkgs.networkmanagerapplet}/bin/nm-applet &" - "${pkgs.pasystray}/bin/pasystray &" ]; "$mod" = "SUPER"; diff --git a/home/jonas/hyprland/default.nix b/home/jonas/hyprland/default.nix new file mode 100644 index 0000000..fbd3986 --- /dev/null +++ b/home/jonas/hyprland/default.nix @@ -0,0 +1,6 @@ +{...}: { + imports = [ + ./config.nix + ./hyprland.nix + ]; +} diff --git a/home/jonas/hyprland/hyprland.nix b/home/jonas/hyprland/hyprland.nix new file mode 100644 index 0000000..fb570eb --- /dev/null +++ b/home/jonas/hyprland/hyprland.nix @@ -0,0 +1,20 @@ +{ + config, + pkgs, + ... +}: { + wayland.windowManager.hyprland = { + enable = true; + systemd.variables = ["--all"]; + xwayland.enable = true; + }; + + programs.wpaperd = { + enable = true; + settings = { + default = { + path = ../static/wallpaper/nord.png; + }; + }; + }; +} diff --git a/home/jonas/waybar/config.nix b/home/jonas/waybar/config.nix new file mode 100644 index 0000000..1c663c1 --- /dev/null +++ b/home/jonas/waybar/config.nix @@ -0,0 +1,131 @@ +{ + config, + pkgs, + lib, + ... +}: let + for_hyprland = config.programs.waybar.enable && config.wayland.windowManager.hyprland.enable; +in { + wayland.windowManager.hyprland = lib.mkIf for_hyprland { + settings = { + exec-once = [ + "${pkgs.waybar}/bin/waybar &" + "${pkgs.networkmanagerapplet}/bin/nm-applet &" + "${pkgs.pasystray}/bin/pasystray &" + ]; + }; + }; + + programs.waybar.settings.mainBar = lib.mkIf for_hyprland { + position = "top"; + layer = "top"; + height = 5; + margin-top = 0; + margin-bottom = 0; + margin-left = 0; + margin-right = 0; + modules-left = [ + "custom/launcher" + "hyprland/workspaces" + ]; + modules-center = [ + "hyprland/window" + ]; + modules-right = [ + "clock" + "cpu" + "memory" + "disk" + "battery" + "network" + "tray" + ]; + clock = { + calendar = { + format = {today = "{}";}; + }; + format = " {:%H:%M}"; + tooltip = "true"; + tooltip-format = "{:%Y %B}\n{calendar}"; + format-alt = " {:%d/%m}"; + }; + "hyprland/workspaces" = { + active-only = false; + disable-scroll = true; + format = "{icon}"; + on-click = "activate"; + format-icons = { + "1" = "󰈹"; + "2" = ""; + "3" = "󰘙"; + "4" = "󰙯"; + "5" = ""; + "6" = ""; + urgent = ""; + default = ""; + sort-by-number = true; + }; + persistent-workspaces = { + "1" = []; + "2" = []; + "3" = []; + "4" = []; + "5" = []; + }; + }; + memory = { + format = "󰟜 {}%"; + format-alt = "󰟜 {used} GiB"; #  + interval = 2; + }; + cpu = { + format = " {usage}%"; + format-alt = " {avg_frequency} GHz"; + interval = 2; + }; + disk = { + # path = "/"; + format = "󰋊 {percentage_used}%"; + interval = 60; + }; + network = { + format-wifi = " {signalStrength}%"; + format-ethernet = "󰀂 "; + tooltip-format = "Connected to {essid} {ifname} via {gwaddr}"; + format-linked = "{ifname} (No IP)"; + format-disconnected = "󰖪 "; + }; + tray = { + icon-size = 20; + spacing = 8; + }; + pulseaudio = { + format = "{icon} {volume}%"; + format-muted = "󰖁 {volume}%"; + format-icons = { + default = [" "]; + }; + scroll-step = 5; + on-click = "pamixer -t"; + }; + battery = { + format = "{icon} {capacity}%"; + format-icons = [" " " " " " " " " "]; + format-charging = " {capacity}%"; + format-full = " {capacity}%"; + format-warning = " {capacity}%"; + interval = 5; + states = { + warning = 20; + }; + format-time = "{H}h{M}m"; + tooltip = true; + tooltip-format = "{time}"; + }; + "custom/launcher" = { + format = ""; + on-click = "${pkgs.rofi}/bin/rofi -show drun"; + tooltip = "false"; + }; + }; +} diff --git a/home/jonas/waybar/default.nix b/home/jonas/waybar/default.nix new file mode 100644 index 0000000..664dd7a --- /dev/null +++ b/home/jonas/waybar/default.nix @@ -0,0 +1,6 @@ +{...}: { + imports = [ + ./waybar.nix + ./config.nix + ]; +} diff --git a/home/jonas/waybar/waybar.nix b/home/jonas/waybar/waybar.nix new file mode 100644 index 0000000..dc49b46 --- /dev/null +++ b/home/jonas/waybar/waybar.nix @@ -0,0 +1,7 @@ +{ + config, + pkgs, + ... +}: { + programs.waybar.enable = true; +}