I am batman

This commit is contained in:
2026-07-10 20:07:29 -04:00
commit 4aac54bff6
175 changed files with 18136 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
{ ... }:
{
imports = [ (import ./waybar.nix) ]
++ [ (import ./settings.nix) ]
++ [ (import ./style.nix) ];
}

244
modules/waybar/settings.nix Normal file
View File

@@ -0,0 +1,244 @@
{ ... }:
{
programs.waybar.settings.mainBar = {
position= "top";
layer= "top";
height= 30;
margin-top= 4;
margin-bottom= 0;
margin-left= 4;
margin-right= 4;
modules-left= [
"custom/icon"
"custom/separator"
"custom/separator"
"custom/separator"
"custom/separator"
"clock"
"custom/separator"
"custom/swaync"
];
modules-center= [
"hyprland/workspaces"
];
modules-right= [
#"hyprland/window"
"custom/cava_mviz"
"network"
"pulseaudio#audio"
"pulseaudio#mic"
"battery"
"custom/power"
"custom/separator"
];
"hyprland/window" = {
format = "<b>{}</b>";
exec = "hyprctl activewindow | grep class | awk '{print $2}'";
separate-outputs = true;
max-length = 35;
};
# clock= {
# calendar = {
# format = { today = "<span color='#b4befe'><b>{}</b></span>"; };
# };
# # format = " {:%H:%M}";
# format = "{:%H:%M}";
# tooltip= "true";
# tooltip-format= "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
# format-alt= " {:%d/%m}";
# };
#
clock = {
format = "{:%H:%M}";
tooltip = true;
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
on-click = "$HOME/.local/share/bin/open-calendar-floating.sh";
};
"hyprland/workspaces" = {
format = "{icon}";
format-icons = {
active = ""; # filled circle
default = ""; # empty circle
};
persistent-workspaces = {
"*" = 2; # always show exactly 3 workspaces
};
sort-by-number = true;
on-scroll-up = "hyprctl dispatch workspace e-1";
on-scroll-down = "hyprctl dispatch workspace e+1";
on-click = "activate";
};
memory= {
format= " {}%";
interval= 2;
};
cpu= {
format= " {usage}%";
format-alt= " {avg_frequency} GHz";
interval= 2;
};
network = {
format-wifi = " ";
format-ethernet = "";
tooltip-format = "Connected to {essid} {ifname} via {gwaddr}";
format-linked = "{ifname} (No IP)";
format-disconnected = " ";
on-click = "bash $HOME/.dotfiles/scripts/rofi-network.sh";
};
# network = {
# format-wifi = " ";
# format-ethernet = "";
# tooltip-format = "Connected to {essid} {ifname} via {gwaddr}";
# format-linked = "{ifname} (No IP)";
# format-disconnected = " ";
# };
#
backlight = {
format = "{icon} {percent}%";
format-icons = [
""
""
""
""
""
""
""
""
""
];
interval = 2;
};
"custom/right-arr" = {
format = " ";
};
battery = {
format = "{icon} {capacity}% ";
format-alt = "{icon} {time}";
format-charging = " {capacity}% ";
format-icons = [" " " " " " " "];
};
tray= {
icon-size= 20;
spacing= 8;
};
"pulseaudio#audio" = {
format = "{format_source}";
format-source = " {volume} ";
format-source-muted = " 󰸈 {volume} ";
on-click = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
on-scroll-up = "wpctl set-volume @DEFAULT_AUDIO_SINK@ -1%";
on-scroll-down = "wpctl set-volume @DEFAULT_AUDIO_SINK@ +1%";
scroll-step = 5;
tooltip = false;
};
"pulseaudio#mic" = {
format = "{format_source}";
format-source = " {volume} ";
format-source-muted = " {volume} ";
on-click = "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle";
on-scroll-up = "wpctl set-volume @DEFAULT_AUDIO_SOURCE@ -1%";
on-scroll-down = "wpctl set-volume @DEFAULT_AUDIO_SOURCE@ +1%";
scroll-step = 5;
tooltip = true;
};
"pulseaudio/slider" = {
min = 0;
max = 100;
orientation = "horizontal";
};
# pulseaudio= {
# format= "{icon} <b>{volume}</b> {format_source}";
# format-source = "  <b>{volume}</b> ";
# format-source-muted = "  ";
# format-bluetooth = " ᛒ <b>{volume}</b> ";
# format-bluetooth-muted = " ";
# format-muted= " {format_source}";
# format-icons= {
# default= ["" "" ""];
# };
# scroll-step= 5;
#
# };
#
"custom/cava_mviz" = {
exec = "~/.local/share/bin/waybar-cava.sh";
format = "<span></span> {} <span></span>";
tooltip = false;
};
"custom/swaync" = {
tooltip = true;
"tooltip-format" = "Left Click: Launch Notification Center\nRight Click: Do not Disturb";
format = " {icon} ";
"format-icons" = {
notification = "<span foreground='red'><sup></sup></span>";
none = "";
"dnd-notification" = "<span foreground='red'><sup></sup></span>";
"dnd-none" = "";
"inhibited-notification" = "<span foreground='red'><sup></sup></span>";
"inhibited-none" = "";
"dnd-inhibited-notification" = "<span foreground='red'><sup></sup></span>";
"dnd-inhibited-none" = "";
};
"return-type" = "json";
"exec-if" = "which swaync-client";
exec = "swaync-client -swb";
"on-click" = "systemctl --user start swaync.service; swaync-client -t";
"on-click-right" = "systemctl --user start swaync.service; swaync-client -d";
escape = true;
};
"custom/icon"= {
format= "";
on-click= "sh -c 'rofi -show drun -theme fullscreen-grid &'";
tooltip= "App Launcher";
};
"custom/separtor" = {
format = " ";
};
"custom/browser" = {
format = " ";
};
"custom/window-icon" = {
# to be added
};
"custom/power" = {
format = " ";
tooltip = "Power menu";
on-click = "sh -c 'wlogout &'";
};
};
}

183
modules/waybar/style.nix Normal file
View File

@@ -0,0 +1,183 @@
{ ... }:
let custom = {
font = "JetBrainsMono Nerd Font";
font_size = "14px";
font_weight = "bold";
};
in
{
programs.waybar.style = ''
@import url("colors-waybar.css"); /* Dynamically generated by pywal */
* {
padding: 0;
margin: 0;
font-family: ${custom.font};
font-size: ${custom.font_size};
font-weight: ${custom.font_weight};
}
window#waybar {
background-color: transparent;
}
.modules-left {
background-color: @color0;
opacity: 0.9;
border-radius: 4px;
padding-right: 8px;
padding-left: 15px;
}
.modules-center {
background-color: @color0;
border-radius: 4px;
opacity: 0.9;
padding-right: 10px;
padding-left: 10px;
}
.modules-right {
background-color: @color0;
border-radius: 4px;
opacity: 0.9;
padding-right: 15px;
padding-left: 15px;
}
#custom-icon {
font-size: 24px;
color: @color4;
padding-right: 10px;
margin-right: 5px;
}
#cpu,
#memory,
#temperature {
font-size: 14px;
background: @color0;
margin-top: 5px;
margin-bottom: 5px;
}
#cpu {
color: #8ec07c;
padding: 0px 10px 0px 12px;
border-radius: 5px 0px 0px 5px;
}
#memory {
color: #000000;
padding: 0px 10px 0px 0px;
}
#temperature {
color: #000000;
padding: 0px 12px 0px 0px;
border-radius: 0px 5px 5px 0px;
}
#window {
margin-right: 10px;
margin-left: 10px;
color: #000000;
}
#workspaces button:nth-child(1) label {
color: @color4;
margin: 0px 8px;
}
#workspaces button:nth-child(2) label {
color: @color5;
margin: 0px 8px;
}
#workspaces button:nth-child(3) label {
color: @color6;
margin: 0px 8px;
}
#workspaces button:nth-child(4) label {
color: @color7;
margin: 0px 8px;
}
#workspaces button:nth-child(5) label {
color: @color8;
margin: 0px 8px;
}
#workspaces button:nth-child(6) label {
color: @color8;
margin: 0px 8px;
}
#battery {
color: @color8;
margin: 0px 10px 0px 0px;
}
#pulseaudio,
#backlight {
font-size: 14px;
background: @color0;
margin-top: 5px;
margin-bottom: 5px;
color: @color4;
padding: 0px 10px 0px 10px;
border-radius: 5px 0px 0px 5px;
}
#pulseaudio {
color: @color5;
padding: 0px 10px 0px 0px;
border-radius: 0px 5px 5px 0px;
}
#custom-swaync {
color: @color7;
}
#custom-cava_mviz {
color: @color8;
}
#custom-right-arr {
color: @color4;
}
#custom-power {
color: @color7
}
#network {
color: @color4;
margin-right: 10px;
}
#custom-dot {
color: @color5;
padding-left: 10px;
padding-right: 10px;
}
#custom-dot-alt {
color: #a5adcb;
padding-left: 10px;
padding-right: 10px;
}
#clock {
padding-left: 10px;
color: @color4;
background-color: @color0;
padding-right: 10px;
margin-top: 5px;
margin-bottom: 5px;
border-radius: 5px;
}
'';
}

View File

@@ -0,0 +1,9 @@
{ pkgs, ... }:
{
programs.waybar = {
enable = true;
};
programs.waybar.package = pkgs.waybar.overrideAttrs (oa: {
mesonFlags = (oa.mesonFlags or [ ]) ++ [ "-Dexperimental=true" ];
});
}