diff --git a/modules/home/waybar/settings.nix b/modules/home/waybar/settings.nix index bcd9f71..d3477be 100644 --- a/modules/home/waybar/settings.nix +++ b/modules/home/waybar/settings.nix @@ -1,131 +1,177 @@ { ... }: { - programs.waybar.settings = [ - { - "layer" = "top"; - "position" = "top"; - modules-left = [ - "custom/launcher" - "wlr/workspaces" - "temperature" - "idle_inhibitor" - ]; - modules-center = [ - "clock" - ]; - modules-right = [ - "pulseaudio" - "pulseaudio#microphone" - "memory" - "cpu" - "disk" - # "keyboard-state" + programs.waybar.settings.mainBar = { + position= "top"; + layer= "top"; + height= 35; + margin-top= 0; + margin-bottom= 0; + margin-left= 0; + margin-right= 0; + modules-left= [ + "custom/launcher" + "custom/playerctl#backward" + "custom/playerctl#play" + "custom/playerctl#foward" + "custom/playerlabel" + ]; + modules-center= [ + "cava#left" + "hyprland/workspaces" + "cava#right" + ]; + modules-right= [ + "tray" + "pulseaudio" "network" - "cava" - "tray" - ]; - "custom/launcher" = { - "format" = " "; - "on-click" = "pkill wofi || wofi"; - "tooltip" = false; - }; - "idle_inhibitor" = { - "format" = "{icon}"; - "format-icons" = { - "activated" = ""; - "deactivated" = ""; + "clock" + ]; + clock= { + format = " {:%a, %d %b, %I:%M %p}"; + tooltip= "true"; + tooltip-format= "{:%Y %B}\n{calendar}"; + format-alt= " {:%d/%m}"; + }; + "wlr/workspaces"= { + active-only= false; + all-outputs= false; + disable-scroll= false; + on-scroll-up= "hyprctl dispatch workspace e-1"; + on-scroll-down= "hyprctl dispatch workspace e+1"; + format = "{name}"; + on-click= "activate"; + format-icons= { + urgent= ""; + active= ""; + default = ""; + sort-by-number= true; }; - }; - "disk" = { - "path" = "/home"; - "format" = "󰋊 {percentage_used}%"; - }; - "custom/wall" = { - "on-click" = "wallpaper_random"; - "on-click-middle" = "default_wall"; - "on-click-right" = "killall dynamic_wallpaper || dynamic_wallpaper &"; - "format" = " ﴔ "; - "tooltip" = false; - }; - "wlr/workspaces" = { - "format" = "{icon}"; - "on-click" = "activate"; - }; - "pulseaudio" = { - "scroll-step" = 5; - "format" = "{icon} {volume}%"; - "format-muted" = "󰸈 Muted"; - "format-icons" = { - "default" = [ "" "" "󱄠" ]; + }; + "cava#left" = { + framerate = 60; + autosens = 1; + bars = 18; + lower_cutoff_freq = 50; + higher_cutoff_freq = 10000; + method = "pipewire"; + source = "auto"; + stereo = true; + reverse = false; + bar_delimiter = 0; + monstercat = false; + waves = false; + input_delay = 2; + format-icons = [ + "" + "" + "" + "" + "" + "" + "" + "" + ]; + }; + "cava#right" = { + framerate = 60; + autosens = 1; + bars = 18; + lower_cutoff_freq = 50; + higher_cutoff_freq = 10000; + method = "pipewire"; + source = "auto"; + stereo = true; + reverse = false; + bar_delimiter = 0; + monstercat = false; + waves = false; + input_delay = 2; + format-icons = [ + "" + "" + "" + "" + "" + "" + "" + "" + ]; + }; + "custom/playerctl#backward"= { + format= "󰙣 "; + on-click= "playerctl previous"; + on-scroll-up = "playerctl volume .05+"; + on-scroll-down = "playerctl volume .05-"; + }; + "custom/playerctl#play"= { + format= "{icon}"; + return-type= "json"; + exec= "playerctl -a metadata --format '{\"text\": \"{{artist}} - {{markup_escape(title)}}\", \"tooltip\": \"{{playerName}} : {{markup_escape(title)}}\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\"}' -F"; + on-click= "playerctl play-pause"; + on-scroll-up = "playerctl volume .05+"; + on-scroll-down = "playerctl volume .05-"; + format-icons= { + Playing = "󰏥 "; + Paused = ""; + Stopped = ""; }; - "on-click" = "pamixer -t"; - "on-click-right" = "pavucontrol"; - "on-click-middle" = "$HOME/.local/bin/toggle_sound_output"; - "tooltip" = false; - }; - "pulseaudio#microphone" = { - "format" = "{format_source}"; - "format-source" = "󰍬 {volume}%"; - "format-source-muted" = "󰍭 Muted"; - "on-click" = "pamixer --default-source -t"; - "on-scroll-up" = "pamixer --default-source -i 5"; - "on-scroll-down" = "pamixer --default-source -d 5"; - "scroll-step" = 5; - "on-click-right" = "pavucontrol"; - }; - "clock" = { - "interval" = 1; - "format" = "{:%I:%M %p %A %b %d}"; - "tooltip" = true; - "tooltip-format" = "{calendar}"; - }; - "memory" = { - "interval" = 1; - "format" = "󰟜 {percentage}%"; - "states" = { - "warning" = 85; + }; + "custom/playerctl#foward"= { + format= "󰙡 "; + on-click= "playerctl next"; + on-scroll-up = "playerctl volume .05+"; + on-scroll-down = "playerctl volume .05-"; + }; + "custom/playerlabel"= { + format= "󰎈 {} 󰎈"; + return-type= "json"; + max-length= 40; + exec = "playerctl -a metadata --format '{\"text\": \"{{artist}} - {{markup_escape(title)}}\", \"tooltip\": \"{{playerName}} : {{markup_escape(title)}}\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\"}' -F"; + on-click= ""; + }; + + memory= { + format= "󰍛 {}%"; + format-alt= "󰍛 {used}/{total} GiB"; + interval= 5; + }; + cpu= { + format= "󰻠 {usage}%"; + format-alt= "󰻠 {avg_frequency} GHz"; + interval= 5; + }; + network = { + format-wifi = " {signalStrength}%"; + format-ethernet = "󰈀 100% "; + tooltip-format = "Connected to {essid} {ifname} via {gwaddr}"; + format-linked = "{ifname} (No IP)"; + format-disconnected = "󰖪 0% "; + }; + tray= { + icon-size= 20; + spacing= 8; + }; + pulseaudio= { + format= "{icon} {volume}%"; + format-muted= "󰝟"; + format-icons= { + default= ["󰕿" "󰖀" "󰕾"]; }; - }; - "cpu" = { - "interval" = 1; - "format" = "󰇖 {usage}%"; - }; - "network" = { - "interval" = 1; - "format" = "󰣺 Connected"; - "format-alt" = " {bandwidthUpBytes}  {bandwidthDownBytes}"; - "format-disconnected" = "󰣼 Disconnected"; - "tooltip" = false; - }; - "temperature" = { - "tooltip" = false; - "thermal-zone" = 2; - "hwmon-path" = "/sys/class/hwmon/hwmon2/temp1_input"; - "format" = " {temperatureC}°C"; - }; - "cava" = { - "framerate" = 60; - "autosens" = 1; - "sensitivity" = 10; - "bars" = 6; - "lower_cutoff_freq" = 50; - "higher_cutoff_freq" = 10000; - "method" = "pulse"; - "source" = "auto"; - "stereo" = true; - "reverse" = false; - "bar_delimiter" = 0; - "monstercat" = false; - "waves" = false; - "noise_reduction" = 0.77; - "input_delay" = 2; - "format-icons" = [ "▁" "▂" "▃" "▄" "▅" "▆" "▇" "█" ]; - "on-click-right" = "playerctl play-pause"; - }; - "tray" = { - "icon-size" = 12; - "spacing" = 5; - }; - } - ]; + # on-scroll-up= "bash ~/.scripts/volume up"; + # on-scroll-down= "bash ~/.scripts/volume down"; + scroll-step= 5; + on-click= "pavucontrol"; + }; + "custom/randwall"= { + format= "󰏘"; + # on-click= "bash $HOME/.config/hypr/randwall.sh"; + # on-click-right= "bash $HOME/.config/hypr/wall.sh"; + }; + "custom/launcher"= { + format= ""; + # on-click= "bash $HOME/.config/rofi/launcher.sh"; + # on-click-right= "bash $HOME/.config/rofi/run.sh"; + tooltip= "false"; + }; + }; } diff --git a/modules/home/waybar/style.nix b/modules/home/waybar/style.nix index dfcf0ba..97c91c0 100644 --- a/modules/home/waybar/style.nix +++ b/modules/home/waybar/style.nix @@ -1,92 +1,143 @@ -{ ... }: +{ + custom ? { + font = "JetBrainsMono Nerd Font"; + fontsize = "12"; + primary_accent = "cba6f7"; + secondary_accent = "89b4fa"; + tertiary_accent = "f5f5f5"; + background = "11111B"; + }, + ... +}: { programs.waybar.style = '' * { - font-family: JetBrainsMono Nerd Font; - font-weight: normal; + border: none; + border-radius: 0px; + font-family: ${custom.font}; font-size: 14px; min-height: 0; - transition-property: background-color; - transition-duration: 0.5s; } window#waybar { - background-color: transparent; + background: ${custom.palette.primary_background_rgba}; } - window>box { - margin-left: 10px; - margin-right: 10px; - margin-top: 8px; - border: 2px solid #595959; - border-radius: 0px; - background-color: rgba(31, 31, 31, 1); + #cava.left, #cava.right { + background: #${custom.palette.tertiary_background_hex}; + margin: 5px; + padding: 8px 16px; + color: #${custom.primary_accent}; + } + #cava.left { + border-radius: 24px 10px 24px 10px; + } + #cava.right { + border-radius: 10px 24px 10px 24px; } - #workspaces { - padding-left: 0px; - padding-right: 4px; - border-radius: 0px; + background: #${custom.palette.tertiary_background_hex}; + margin: 5px 5px; + padding: 8px 5px; + border-radius: 16px; + color: #${custom.primary_accent} } - #workspaces button { - padding-top: 5px; - border-radius: 0px; - padding-bottom: 5px; - padding-left: 8px; - padding-right: 8px; + padding: 0px 5px; + margin: 0px 3px; + border-radius: 16px; + color: transparent; + background: ${custom.palette.primary_background_rgba}; + transition: all 0.3s ease-in-out; } #workspaces button.active { - background-color: #595959; - color: rgb(23, 23, 23); + background-color: #${custom.secondary_accent}; + color: #${custom.background}; + border-radius: 16px; + min-width: 50px; + background-size: 400% 400%; + transition: all 0.3s ease-in-out; } - #workspaces button.urgent { - color: #fff000; + #workspaces button:hover { + background-color: #${custom.tertiary_accent}; + color: #${custom.background}; + border-radius: 16px; + min-width: 50px; + background-size: 400% 400%; } - tooltip { - background: rgb(48, 45, 65); + #tray, #pulseaudio, #network, + #custom-playerctl.backward, #custom-playerctl.play, #custom-playerctl.foward{ + background: #${custom.palette.tertiary_background_hex}; + font-weight: bold; + margin: 5px 0px; } - - tooltip label { - color: rgb(217, 224, 238); + #tray, #pulseaudio, #network { + color: #${custom.tertiary_accent}; + border-radius: 10px 24px 10px 24px; + padding: 0 20px; + margin-left: 7px; } - - #custom-launcher { + #clock { + color: #${custom.tertiary_accent}; + background: #${custom.palette.tertiary_background_hex}; + border-radius: 0px 0px 0px 40px; + padding: 10px 10px 15px 25px; + margin-left: 7px; + font-weight: bold; font-size: 16px; - padding-left: 10px; - padding-right: 6px; - color: #6896BA; + } + #custom-launcher { + color: #${custom.secondary_accent}; + background: #${custom.palette.tertiary_background_hex}; + border-radius: 0px 0px 40px 0px; + margin: 0px; + padding: 0px 35px 0px 15px; + font-size: 28px; } - #clock, - #memory, - #temperature, - #cpu, - #mpd, - #custom-wall, - #temperature, - #backlight, - #pulseaudio, - #network, - #battery, - #disk, - #idle_inhibitor { - padding-left: 10px; - padding-right: 10px; - padding-top: 0px; - padding-bottom: 0px; - color: #B9B9B9; + #custom-playerctl.backward, #custom-playerctl.play, #custom-playerctl.foward { + background: #${custom.palette.tertiary_background_hex}; + font-size: 22px; } - #cava { - padding-left: 10px; - padding-right: 10px; + #custom-playerctl.backward:hover, #custom-playerctl.play:hover, #custom-playerctl.foward:hover{ + color: #${custom.tertiary_accent}; } - #tray { - padding-right: 8px; - padding-left: 10px; + #custom-playerctl.backward { + color: #${custom.primary_accent}; + border-radius: 24px 0px 0px 10px; + padding-left: 16px; + margin-left: 7px; + } + #custom-playerctl.play { + color: #${custom.secondary_accent}; + padding: 0 5px; + } + #custom-playerctl.foward { + color: #${custom.primary_accent}; + border-radius: 0px 10px 24px 0px; + padding-right: 12px; + margin-right: 7px + } + #custom-playerlabel { + background: #${custom.palette.tertiary_background_hex}; + color: #${custom.tertiary_accent}; + padding: 0 20px; + border-radius: 24px 10px 24px 10px; + margin: 5px 0; + font-weight: bold; + } + #window{ + background: #${custom.palette.tertiary_background_hex}; + padding-left: 15px; + padding-right: 15px; + border-radius: 16px; + margin-top: 5px; + margin-bottom: 5px; + font-weight: normal; + font-style: normal; } ''; } diff --git a/modules/home/waybar/tmp.nix b/modules/home/waybar/tmp.nix new file mode 100644 index 0000000..ea5562f --- /dev/null +++ b/modules/home/waybar/tmp.nix @@ -0,0 +1,333 @@ +{ + custom ? { + font = "JetBrainsMono Nerd Font"; + fontsize = "12"; + primary_accent = "cba6f7"; + secondary_accent = "89b4fa"; + tertiary_accent = "f5f5f5"; + background = "11111B"; + }, + ... +}: +{ + programs.waybar = { + enable = true; + settings.mainBar = { + position= "top"; + layer= "top"; + height= 35; + margin-top= 0; + margin-bottom= 0; + margin-left= 0; + margin-right= 0; + modules-left= [ + "custom/launcher" + "custom/playerctl#backward" + "custom/playerctl#play" + "custom/playerctl#foward" + "custom/playerlabel" + ]; + modules-center= [ + "cava#left" + "hyprland/workspaces" + "cava#right" + ]; + modules-right= [ + "tray" + "battery" + "pulseaudio" + "network" + "clock" + ]; + clock= { + format = " {:%a, %d %b, %I:%M %p}"; + tooltip= "true"; + tooltip-format= "{:%Y %B}\n{calendar}"; + format-alt= " {:%d/%m}"; + }; + "wlr/workspaces"= { + active-only= false; + all-outputs= false; + disable-scroll= false; + on-scroll-up= "hyprctl dispatch workspace e-1"; + on-scroll-down= "hyprctl dispatch workspace e+1"; + format = "{name}"; + on-click= "activate"; + format-icons= { + urgent= ""; + active= ""; + default = ""; + sort-by-number= true; + }; + }; + "cava#left" = { + framerate = 60; + autosens = 1; + bars = 18; + lower_cutoff_freq = 50; + higher_cutoff_freq = 10000; + method = "pipewire"; + source = "auto"; + stereo = true; + reverse = false; + bar_delimiter = 0; + monstercat = false; + waves = false; + input_delay = 2; + format-icons = [ + "" + "" + "" + "" + "" + "" + "" + "" + ]; + }; + "cava#right" = { + framerate = 60; + autosens = 1; + bars = 18; + lower_cutoff_freq = 50; + higher_cutoff_freq = 10000; + method = "pipewire"; + source = "auto"; + stereo = true; + reverse = false; + bar_delimiter = 0; + monstercat = false; + waves = false; + input_delay = 2; + format-icons = [ + "" + "" + "" + "" + "" + "" + "" + "" + ]; + }; + "custom/playerctl#backward"= { + format= "󰙣 "; + on-click= "playerctl previous"; + on-scroll-up = "playerctl volume .05+"; + on-scroll-down = "playerctl volume .05-"; + }; + "custom/playerctl#play"= { + format= "{icon}"; + return-type= "json"; + exec= "playerctl -a metadata --format '{\"text\": \"{{artist}} - {{markup_escape(title)}}\", \"tooltip\": \"{{playerName}} : {{markup_escape(title)}}\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\"}' -F"; + on-click= "playerctl play-pause"; + on-scroll-up = "playerctl volume .05+"; + on-scroll-down = "playerctl volume .05-"; + format-icons= { + Playing = "󰏥 "; + Paused = ""; + Stopped = ""; + }; + }; + "custom/playerctl#foward"= { + format= "󰙡 "; + on-click= "playerctl next"; + on-scroll-up = "playerctl volume .05+"; + on-scroll-down = "playerctl volume .05-"; + }; + "custom/playerlabel"= { + format= "󰎈 {} 󰎈"; + return-type= "json"; + max-length= 40; + exec = "playerctl -a metadata --format '{\"text\": \"{{artist}} - {{markup_escape(title)}}\", \"tooltip\": \"{{playerName}} : {{markup_escape(title)}}\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\"}' -F"; + on-click= ""; + }; + battery= { + states= { + good= 95; + warning= 30; + critical= 15; + }; + format="{icon} {capacity}%"; + format-charging= " {capacity}%"; + format-plugged= " {capacity}% "; + format-alt= "{icon} {time}"; + format-icons= ["" "" "" "" ""]; + }; + + memory= { + format= "󰍛 {}%"; + format-alt= "󰍛 {used}/{total} GiB"; + interval= 5; + }; + cpu= { + format= "󰻠 {usage}%"; + format-alt= "󰻠 {avg_frequency} GHz"; + interval= 5; + }; + network = { + format-wifi = " {signalStrength}%"; + format-ethernet = "󰈀 100% "; + tooltip-format = "Connected to {essid} {ifname} via {gwaddr}"; + format-linked = "{ifname} (No IP)"; + format-disconnected = "󰖪 0% "; + }; + tray= { + icon-size= 20; + spacing= 8; + }; + pulseaudio= { + format= "{icon} {volume}%"; + format-muted= "󰝟"; + format-icons= { + default= ["󰕿" "󰖀" "󰕾"]; + }; + # on-scroll-up= "bash ~/.scripts/volume up"; + # on-scroll-down= "bash ~/.scripts/volume down"; + scroll-step= 5; + on-click= "pavucontrol"; + }; + "custom/randwall"= { + format= "󰏘"; + # on-click= "bash $HOME/.config/hypr/randwall.sh"; + # on-click-right= "bash $HOME/.config/hypr/wall.sh"; + }; + "custom/launcher"= { + format= ""; + # on-click= "bash $HOME/.config/rofi/launcher.sh"; + # on-click-right= "bash $HOME/.config/rofi/run.sh"; + tooltip= "false"; + }; + }; + style = '' + * { + border: none; + border-radius: 0px; + font-family: ${custom.font}; + font-size: 14px; + min-height: 0; + } + + window#waybar { + background: ${custom.palette.primary_background_rgba}; + } + + #cava.left, #cava.right { + background: #${custom.palette.tertiary_background_hex}; + margin: 5px; + padding: 8px 16px; + color: #${custom.primary_accent}; + } + #cava.left { + border-radius: 24px 10px 24px 10px; + } + #cava.right { + border-radius: 10px 24px 10px 24px; + } + #workspaces { + background: #${custom.palette.tertiary_background_hex}; + margin: 5px 5px; + padding: 8px 5px; + border-radius: 16px; + color: #${custom.primary_accent} + } + #workspaces button { + padding: 0px 5px; + margin: 0px 3px; + border-radius: 16px; + color: transparent; + background: ${custom.palette.primary_background_rgba}; + transition: all 0.3s ease-in-out; + } + + #workspaces button.active { + background-color: #${custom.secondary_accent}; + color: #${custom.background}; + border-radius: 16px; + min-width: 50px; + background-size: 400% 400%; + transition: all 0.3s ease-in-out; + } + + #workspaces button:hover { + background-color: #${custom.tertiary_accent}; + color: #${custom.background}; + border-radius: 16px; + min-width: 50px; + background-size: 400% 400%; + } + + #tray, #pulseaudio, #network, #battery, + #custom-playerctl.backward, #custom-playerctl.play, #custom-playerctl.foward{ + background: #${custom.palette.tertiary_background_hex}; + font-weight: bold; + margin: 5px 0px; + } + #tray, #pulseaudio, #network, #battery{ + color: #${custom.tertiary_accent}; + border-radius: 10px 24px 10px 24px; + padding: 0 20px; + margin-left: 7px; + } + #clock { + color: #${custom.tertiary_accent}; + background: #${custom.palette.tertiary_background_hex}; + border-radius: 0px 0px 0px 40px; + padding: 10px 10px 15px 25px; + margin-left: 7px; + font-weight: bold; + font-size: 16px; + } + #custom-launcher { + color: #${custom.secondary_accent}; + background: #${custom.palette.tertiary_background_hex}; + border-radius: 0px 0px 40px 0px; + margin: 0px; + padding: 0px 35px 0px 15px; + font-size: 28px; + } + + #custom-playerctl.backward, #custom-playerctl.play, #custom-playerctl.foward { + background: #${custom.palette.tertiary_background_hex}; + font-size: 22px; + } + #custom-playerctl.backward:hover, #custom-playerctl.play:hover, #custom-playerctl.foward:hover{ + color: #${custom.tertiary_accent}; + } + #custom-playerctl.backward { + color: #${custom.primary_accent}; + border-radius: 24px 0px 0px 10px; + padding-left: 16px; + margin-left: 7px; + } + #custom-playerctl.play { + color: #${custom.secondary_accent}; + padding: 0 5px; + } + #custom-playerctl.foward { + color: #${custom.primary_accent}; + border-radius: 0px 10px 24px 0px; + padding-right: 12px; + margin-right: 7px + } + #custom-playerlabel { + background: #${custom.palette.tertiary_background_hex}; + color: #${custom.tertiary_accent}; + padding: 0 20px; + border-radius: 24px 10px 24px 10px; + margin: 5px 0; + font-weight: bold; + } + #window{ + background: #${custom.palette.tertiary_background_hex}; + padding-left: 15px; + padding-right: 15px; + border-radius: 16px; + margin-top: 5px; + margin-bottom: 5px; + font-weight: normal; + font-style: normal; + } + ''; + }; +} \ No newline at end of file diff --git a/modules/home/waybar/waybar.nix b/modules/home/waybar/waybar.nix index a207a98..621df33 100644 --- a/modules/home/waybar/waybar.nix +++ b/modules/home/waybar/waybar.nix @@ -2,10 +2,10 @@ { programs.waybar = { enable = true; - systemd = { - enable = false; - target = "graphical-session.target"; - }; + # systemd = { + # enable = false; + # target = "graphical-session.target"; + # }; }; programs.waybar.package = pkgs.waybar.overrideAttrs (oa: { mesonFlags = (oa.mesonFlags or [ ]) ++ [ "-Dexperimental=true" ];