Fixed waybar

This commit is contained in:
2026-04-05 12:12:59 +02:00
parent 45f853b376
commit 0d4654203c
14 changed files with 121 additions and 925 deletions

View File

@@ -157,6 +157,22 @@ window#waybar.hidden {
margin-right: 20px;
}
#custom-mako {
color: @red;
margin-top: 6px;
margin-bottom: 6px;
padding-left: 6px;
padding-right: 6px;
}
#custom-mako.enabled {
color: @red;
}
#custom-mako.disabled {
color: @overlay1;
}
/* SwayNC */
#custom-notification {
font-family: "NotoSansMono Nerd Font";

View File

@@ -4,6 +4,8 @@
let
common = import ./common.nix;
wm = if compositor == "hyprland" then import ./hyprland-wm.nix else import ./niri-wm.nix;
workspaceModule = if compositor == "hyprland" then "hyprland/workspaces" else "niri/workspaces";
notificationModule = if compositor == "hyprland" then "custom/mako" else "custom/swaync";
in
{
enable = true;
@@ -18,10 +20,8 @@ in
"clock"
];
modules-center = [
"hyprland/workspaces"
"niri/workspaces"
"custom/mako"
"custom/swaync"
workspaceModule
notificationModule
];
modules-right = [
"group/hardware"
@@ -40,8 +40,7 @@ in
"custom/wallpaper"
];
modules-center = [
"hyprland/workspaces"
"niri/workspaces"
workspaceModule
];
modules-right = [ "custom/weather" ];
}

View File

@@ -3,19 +3,15 @@
"hyprland/workspaces" = {
format = "{icon}";
format-icons = {
default = "";
active = "";
default = " ";
active = " ";
};
};
"custom/mako" = {
tooltip = false;
format = "{icon}";
format-icons = {
enabled = " ";
disabled = " ";
};
format = "{}";
return-type = "json";
exec = "makoctl mode | grep -q do-not-disturb && echo '{\"text\":\"\",\"class\":\"disabled\"}' || echo '{\"text\":\"\",\"class\":\"enabled\"}'";
exec = "sh ~/.config/waybar/mako.sh";
on-click = "makoctl mode -t do-not-disturb";
interval = 1;
};

View File

@@ -1,181 +0,0 @@
{
widgets = {
"group/media" = {
orientation = "horizontal";
modules = [
"mpris"
"custom/cava"
"wireplumber"
];
};
mpris = {
format = "{player_icon}";
format-paused = "{status_icon}";
max-length = 100;
player-icons = {
default = "||";
mpv = "||";
};
status-icons = {
paused = "";
};
};
"custom/cava" = {
exec = "sh ~/.config/waybar/cava.sh";
format = "{} ";
on-click = "hyprctl dispatch focuswindow class:spotify";
};
wireplumber = {
format = "{volume}%";
format-muted = "";
max-volume = 110;
scroll-step = 0.2;
};
"group/hardware" = {
orientation = "horizontal";
modules = [
"cpu"
"network"
"memory"
"disk"
"temperature"
];
};
network = {
# Wifi
tooltip = true;
format-wifi = "{icon} ";
format-icons = [
"󰤟"
"󰤢"
"󰤥"
];
rotate = 0;
# Ethernet
format-ethernet = "{bandwidthTotalBits}";
tooltip-format = "Network: <big><b>{essid}</b></big>\nSignal strength: <b>{signaldBm}dBm ({signalStrength}%)</b>\nFrequency: <b>{frequency}MHz</b>\nInterface: <b>{ifname}</b>\nIP: <b>{ipaddr}/{cidr}</b>\nGateway: <b>{gwaddr}</b>\nNetmask: <b>{netmask}</b>\nCurrent󰈀 : <b>{bandwidthTotalBits}</b>\nUp 󰶣: <b>{bandwidthUpBits}</b>\nDown 󰶡: <b>{bandwidthDownBits}</b>";
format-linked = "󰈀 {ifname} (No IP)";
format-disconnected = " ";
tooltip-format-disconnected = "Disconnected";
interval = 2;
};
memory = {
interval = 1;
#rotate = 270;
format = "{icon} {percentage}%";
format-icons = [
"󰝦"
"󰪞"
"󰪟"
"󰪠"
"󰪡"
"󰪢"
"󰪣"
"󰪤"
"󰪥"
];
max-length = 10;
};
cpu = {
interval = 1;
format = "{icon} {usage}%";
#rotate = 270;
format-icons = [
"󰝦"
"󰪞"
"󰪟"
"󰪠"
"󰪡"
"󰪢"
"󰪣"
"󰪤"
"󰪥"
];
};
temperature = {
format = " {temperatureC}°C";
thermal-zone = 0;
hwmon-path = "/sys/class/thermal/thermal_zone1/temp";
critical-threshold = 80;
};
disk = {
format = " {percentage_free}%";
tooltip = true;
tooltip-format = "{free} / {total} ({percentage_free})";
};
clock = {
format = "{:%a %b %d, %I:%M %p}";
rotate = 0;
on-click = " ";
tooltip-format = "<tt>{calendar}</tt>";
calendar = {
mode = "month";
mode-mon-col = 3;
on-scroll = 1;
on-click-right = "mode";
format = {
months = "<span color='#cba6f7'><b>{}</b></span>";
weekdays = "<span color='#74c7ec'><b>{}</b></span>";
today = "<span color='#f38ba8'><b>{}</b></span>";
};
};
actions = {
on-click-right = "mode";
on-click-forward = "tz_up";
on-click-backward = "tz_down";
on-scroll-up = "shift_up";
on-scroll-down = "shift_down";
};
};
"custom/nixicon" = {
format = " ";
on-click = "rofi -show drun -theme $HOME/.config/rofi/custom.rasi";
tooltip = false;
};
"custom/weather" = {
format = "{}";
return-type = "json";
exec = ''
curl -s -X GET "https://api.openweathermap.org/data/2.5/weather?lat=52.281311&lon=10.527029&appid=$(cat $OPENWEATHER_API_KEY)&units=metric&lang=en" | jq -c '{text: "\(.name) \(.main.temp)C°"}'
'';
interval = 120;
on-click = ''
data=$(curl -s -X GET "https://api.openweathermap.org/data/2.5/weather?lat=52.281311&lon=10.527029&appid=$(cat $OPENWEATHER_API_KEY)&units=metric&lang=en")
city=$(echo "$data" | jq -r '.name')
temp=$(echo "$data" | jq -r '.main.temp')
feels=$(echo "$data" | jq -r '.main.feels_like')
humidity=$(echo "$data" | jq -r '.main.humidity')
wind=$(echo "$data" | jq -r '.wind.speed')
clouds=$(echo "$data" | jq -r '.clouds.all')
sunrise=$(echo "$data" | jq -r '.sys.sunrise | strftime("%H:%M")')
sunset=$(echo "$data" | jq -r '.sys.sunset | strftime("%H:%M")')
notify-send "$city" "Temperature: $temp °C\nFeels Like: $feels °C\nHumidity: $humidity%\nWind: $wind m/s\nClouds: $clouds%\nSunrise at: $sunrise\nSunset at: $sunset" -u normal --icon="$HOME/Pictures/Avatar/avatar_weather_no_bg.png"
'';
};
"custom/wallpaper" = {
format = "{} ";
exec = "basename $(swww query | grep -oP 'image: \\K.*')";
interval = 5;
on-click = "waypaper";
tooltip = true;
tooltip-format = "{}";
max-length = 30;
};
};
}

View File

@@ -1,42 +0,0 @@
#!/bin/bash
# Not my own work. Credit to original author
#----- Optimized bars animation without much CPU usage increase --------
bar="▁▂▃▄▅▆▇█"
dict="s/;//g"
# Calculate the length of the bar outside the loop
bar_length=${#bar}
# Create dictionary to replace char with bar
for ((i = 0; i < bar_length; i++)); do
dict+=";s/$i/${bar:$i:1}/g"
done
# Create cava config
config_file="/tmp/bar_cava_config"
cat >"$config_file" <<EOF
[general]
# Older systems show significant CPU use with default framerate
# Setting maximum framerate to 30
# You can increase the value if you wish
framerate = 60
bars = 14
[input]
method = pulse
source = auto
[output]
method = raw
raw_target = /dev/stdout
data_format = ascii
ascii_max_range = 7
EOF
# Kill cava if it's already running
pkill -f "cava -p $config_file"
# Read stdout from cava and perform substitution in a single sed command
cava -p "$config_file" | sed -u "$dict"

View File

@@ -1,6 +0,0 @@
#!/bin/sh
if makoctl mode | grep -q do-not-disturb; then
echo '{"text":"󰂛","class":"disabled"}'
else
echo '{"text":"󰂚","class":"enabled"}'
fi

View File

@@ -1,329 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="535"
height="535"
viewBox="0 0 501.56251 501.56249"
id="svg2"
version="1.1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
sodipodi:docname="nix-snowflake.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs4">
<linearGradient
inkscape:collect="always"
id="linearGradient5562">
<stop
style="stop-color:#699ad7;stop-opacity:1"
offset="0"
id="stop5564" />
<stop
id="stop5566"
offset="0.24345198"
style="stop-color:#7eb1dd;stop-opacity:1" />
<stop
style="stop-color:#7ebae4;stop-opacity:1"
offset="1"
id="stop5568" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient5053">
<stop
style="stop-color:#415e9a;stop-opacity:1"
offset="0"
id="stop5055" />
<stop
id="stop5057"
offset="0.23168644"
style="stop-color:#4a6baf;stop-opacity:1" />
<stop
style="stop-color:#5277c3;stop-opacity:1"
offset="1"
id="stop5059" />
</linearGradient>
<linearGradient
id="linearGradient5960"
inkscape:collect="always">
<stop
id="stop5962"
offset="0"
style="stop-color:#637ddf;stop-opacity:1" />
<stop
style="stop-color:#649afa;stop-opacity:1"
offset="0.23168644"
id="stop5964" />
<stop
id="stop5966"
offset="1"
style="stop-color:#719efa;stop-opacity:1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient5867">
<stop
style="stop-color:#7363df;stop-opacity:1"
offset="0"
id="stop5869" />
<stop
id="stop5871"
offset="0.23168644"
style="stop-color:#6478fa;stop-opacity:1" />
<stop
style="stop-color:#719efa;stop-opacity:1"
offset="1"
id="stop5873" />
</linearGradient>
<linearGradient
y2="515.97058"
x2="282.26105"
y1="338.62445"
x1="213.95642"
gradientTransform="translate(-197.75174,-337.1451)"
gradientUnits="userSpaceOnUse"
id="linearGradient5855-8"
xlink:href="#linearGradient5867"
inkscape:collect="always" />
<linearGradient
y2="247.58188"
x2="-702.75317"
y1="102.74675"
x1="-775.20807"
gradientTransform="translate(983.36076,601.38885)"
gradientUnits="userSpaceOnUse"
id="linearGradient4544"
xlink:href="#linearGradient5960"
inkscape:collect="always" />
<clipPath
id="clipPath4501"
clipPathUnits="userSpaceOnUse">
<circle
r="241.06563"
cy="686.09473"
cx="335.13995"
id="circle4503"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#adadad;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
</clipPath>
<clipPath
id="clipPath5410"
clipPathUnits="userSpaceOnUse">
<circle
r="241.13741"
cy="340.98975"
cx="335.98114"
id="circle5412"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
</clipPath>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5053"
id="linearGradient5137"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(864.55062,-2197.497)"
x1="-584.19934"
y1="782.33563"
x2="-496.29703"
y2="937.71399" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5053"
id="linearGradient5147"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(864.55062,-2197.497)"
x1="-584.19934"
y1="782.33563"
x2="-496.29703"
y2="937.71399" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5562"
id="linearGradient5162"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(70.505061,-1761.3076)"
x1="200.59668"
y1="351.41116"
x2="290.08701"
y2="506.18814" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5562"
id="linearGradient5172"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(70.505061,-1761.3076)"
x1="200.59668"
y1="351.41116"
x2="290.08701"
y2="506.18814" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5562"
id="linearGradient5182"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(70.505061,-1761.3076)"
x1="200.59668"
y1="351.41116"
x2="290.08701"
y2="506.18814" />
<linearGradient
y2="506.18814"
x2="290.08701"
y1="351.41116"
x1="200.59668"
gradientTransform="translate(70.505061,-1761.3076)"
gradientUnits="userSpaceOnUse"
id="linearGradient5201"
xlink:href="#linearGradient5562"
inkscape:collect="always" />
<linearGradient
y2="937.71399"
x2="-496.29703"
y1="782.33563"
x1="-584.19934"
gradientTransform="translate(864.55062,-2197.497)"
gradientUnits="userSpaceOnUse"
id="linearGradient5205"
xlink:href="#linearGradient5053"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5562"
id="linearGradient4328"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(70.650339,-1055.1511)"
x1="200.59668"
y1="351.41116"
x2="290.08701"
y2="506.18814" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5053"
id="linearGradient4330"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(864.69589,-1491.3405)"
x1="-584.19934"
y1="782.33563"
x2="-496.29703"
y2="937.71399" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.70904368"
inkscape:cx="99.429699"
inkscape:cy="195.33352"
inkscape:document-units="px"
inkscape:current-layer="layer3"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1050"
inkscape:window-x="1920"
inkscape:window-y="30"
inkscape:window-maximized="1"
inkscape:snap-global="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="gradient-logo"
style="display:inline;opacity:1"
transform="translate(-156.41121,933.30685)">
<g
id="g2"
transform="matrix(0.99994059,0,0,0.99994059,-0.06321798,33.188377)"
style="stroke-width:1.00006">
<path
sodipodi:nodetypes="cccccccccc"
inkscape:connector-curvature="0"
id="path3336-6"
d="m 309.54892,-710.38827 122.19683,211.67512 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4901 -33.22946,-57.8257 z"
style="opacity:1;fill:url(#linearGradient4328);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.00018;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<use
height="100%"
width="100%"
transform="rotate(60,407.11155,-715.78724)"
id="use3439-6"
inkscape:transform-center-y="151.59082"
inkscape:transform-center-x="124.43045"
xlink:href="#path3336-6"
y="0"
x="0"
style="stroke-width:1.00006" />
<use
height="100%"
width="100%"
transform="rotate(-60,407.31177,-715.70016)"
id="use3445-0"
inkscape:transform-center-y="75.573958"
inkscape:transform-center-x="-168.20651"
xlink:href="#path3336-6"
y="0"
x="0"
style="stroke-width:1.00006" />
<use
height="100%"
width="100%"
transform="rotate(180,407.41868,-715.7565)"
id="use3449-5"
inkscape:transform-center-y="-139.94592"
inkscape:transform-center-x="59.669705"
xlink:href="#path3336-6"
y="0"
x="0"
style="stroke-width:1.00006" />
<path
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient4330);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.00018;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 309.54892,-710.38827 122.19683,211.67512 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4901 -33.22946,-57.8256 z"
id="path4260-0"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccc" />
<use
height="100%"
width="100%"
transform="rotate(120,407.33916,-716.08356)"
id="use4354-5"
xlink:href="#path4260-0"
y="0"
x="0"
style="display:inline;stroke-width:1.00006" />
<use
height="100%"
width="100%"
transform="rotate(-120,407.28823,-715.86995)"
id="use4362-2"
xlink:href="#path4260-0"
y="0"
x="0"
style="display:inline;stroke-width:1.00006" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -1,191 +0,0 @@
@import "catppuccin.css";
* {
border: none;
font-family: "FiraCode Nerd Font";
font-size: 15px;
min-height: 10px;
}
window#waybar {
background: @crust;
}
window#waybar.hidden {
opacity: 0.2;
}
󠀰
/* - Genera rules for visible modules -- */
#media,
#clock,
#cpu,
#memory,
#disk,
#temperature,
#network,
#custom-wallpaper,
#media,
#custom-weather {
color: @crust;
margin-top: 6px;
margin-bottom: 6px;
padding-left: 10px;
padding-right: 10px;
transition: none;
}
/* Separation to the left */
#custom-nixicon,
#cpu {
margin-left: 5px;
border-top-left-radius: 10px;
border-bottom-left-radius: 10px;
}
/* Separation to the rigth */
#clock,
#temperature {
margin-right: 20px;
border-top-right-radius: 10px;
border-bottom-right-radius: 10px;
}
/* -- Specific styles -- */
#custom-nixicon {
background-image: url("nix-snowflake.svg");
background-size: contain;
background-repeat: no-repeat;
background-position: center;
min-height: 24px;
min-width: 24px;
padding: 0px;
padding-right: 15px;
padding-left: 10px;
margin-top: 6px;
margin-bottom: 6px;
margin-left: 15px;
}
/* Hardware Group */
#clock {
background: @yellow;
}
#cpu {
background: @blue;
}
#memory {
background: @red;
}
#disk {
background: @peach;
}
#temperature {
background: @sky;
}
#network {
background: @lavender;
padding-right: 13px;
}
/* Workspace */
#workspaces {
border-radius: 10px;
margin: 6px 5px;
padding: 0px 6px;
}
#workspaces button {
color: @text;
background: transparent;
padding: 4px 4px;
transition: color 0.3s ease, text-shadow 0.3s ease, transform 0.3s ease;
border: none;
}
#workspaces button.occupied {
color: @red;
}
#workspaces button.active {
color: @green;
text-shadow: 0 0 4px @green;
}
#workspaces button:hover {
color: @teal;
border: none;
}
#workspaces button.active:hover {}
/* Media Group */
#media {
background: @overlay2;
border-radius: 10px;
color: @crust;
margin-left: 20px;
}
#custom-cava {
color: @sky;
}
#wireplumber, #custom-cava, #mpris {
margin-left: 10px;
margin-right: 5px;
}
#wireplumber {
margin-right: 5px;
}
/* Weather */
#custom-weather {
background: @sky;
color: @crust;
border-radius: 10px;
margin-right: 20px;
}
#custom-mako {
color: @red;
margin-top: 6px;
margin-bottom: 6px;
padding-left: 6px;
padding-right: 6px;
}
#custom-mako.enabled {
color: @red;
}
#custom-mako.disabled {
color: @overlay1;
}
/* SwayNC */
#custom-notification {
font-family: "NotoSansMono Nerd Font";
background: @green;
border-radius: 10px;
padding-left: 10px;
padding-right: 5px;
}
/* Wallpaper */
#custom-wallpaper {
background: @red;
color: @mantle;
border-radius: 10px;
margin-left: 5px;
}

View File

@@ -1 +0,0 @@
*{border:none;min-height:10px;font-family:FiraCode Nerd Font;font-size:15px}window#waybar{background:@crust}window#waybar.hidden{opacity:.2}󠀰 #media,#clock,#cpu,#memory,#disk,#temperature,#network,#custom-wallpaper,#media,#custom-weather{color:@crust;margin-top:6px;margin-bottom:6px;padding-left:10px;padding-right:10px;transition:none}#custom-nixicon,#cpu{border-top-left-radius:10px;border-bottom-left-radius:10px;margin-left:5px}#clock,#temperature{border-top-right-radius:10px;border-bottom-right-radius:10px;margin-right:20px}#custom-nixicon{background-image:url(nix-snowflake.svg);background-position:50%;background-repeat:no-repeat;background-size:contain;min-width:24px;min-height:24px;margin-top:6px;margin-bottom:6px;margin-left:15px;padding:0 15px 0 10px}#clock{background:@yellow}#cpu{background:@blue}#memory{background:@red}#disk{background:@peach}#temperature{background:@sky}#network{background:@lavender;padding-right:13px}#workspaces{border-radius:10px;margin:6px 5px;padding:0 6px}#workspaces button{color:@text;background:0 0;border:none;padding:4px;transition:color .3s,text-shadow .3s,transform .3s}#workspaces button.occupied{color:@red}#workspaces button.active{color:@green;text-shadow:0 0 4px @green}#workspaces button:hover{color:@teal;border:none}#media{background:@overlay2;color:@crust;border-radius:10px;margin-left:20px}#custom-cava{color:@green}#wireplumber,#custom-cava,#mpris{margin-left:10px;margin-right:5px}#wireplumber{margin-right:5px}#custom-weather{background:@sky;color:@crust;border-radius:10px;margin-right:20px}#custom-notification{background:@green;border-radius:10px;padding-left:10px;padding-right:5px;font-family:NotoSansMono Nerd Font}#custom-wallpaper{background:@red;color:@mantle;border-radius:10px;margin-left:5px}

View File

@@ -1,20 +0,0 @@
{
pkgs,
compositor ? "hyprland",
...
}:
{
programs.waybar = {
enable = true;
package = pkgs.waybar;
}
// (import ./dual.nix { inherit compositor; });
home = {
packages = with pkgs; [ cava ];
file.".config/waybar" = {
source = ./configs;
recursive = true;
};
};
}

View File

@@ -1,51 +0,0 @@
{
compositor ? "hyprland",
}:
let
common = import ./common.nix;
wm = if compositor == "hyprland" then import ./hyprland-wm.nix else import ./niri-wm.nix;
workspaceModule = if compositor == "hyprland" then "hyprland/workspaces" else "niri/workspaces";
notificationModule = if compositor == "hyprland" then "custom/mako" else "custom/swaync";
in
{
enable = true;
settings = {
mainBar = {
layer = "top";
position = "top";
height = 30;
output = [ "DP-1" ];
modules-left = [
"custom/nixicon"
"clock"
];
modules-center = [
workspaceModule
notificationModule
];
modules-right = [
"group/hardware"
];
}
// common.widgets
// wm.widgets;
secondBar = {
layer = "top";
position = "top";
height = 30;
output = [ "HDMI-A-2" ];
modules-left = [
"group/media"
"custom/wallpaper"
];
modules-center = [
workspaceModule
];
modules-right = [ "custom/weather" ];
}
// common.widgets
// wm.widgets;
};
}

View File

@@ -1,19 +0,0 @@
{
widgets = {
"hyprland/workspaces" = {
format = "{icon}";
format-icons = {
default = " ";
active = " ";
};
};
"custom/mako" = {
tooltip = false;
format = "{}";
return-type = "json";
exec = "sh ~/.config/waybar/mako.sh";
on-click = "makoctl mode -t do-not-disturb";
interval = 1;
};
};
}

View File

@@ -1,31 +0,0 @@
{
widgets = {
"niri/workspaces" = {
format = "{icon}";
format-icons = {
default = "";
active = "";
};
};
"custom/swaync" = {
tooltip = false;
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 = "swaync-client -t -sw";
on-click-right = "swaync-client -d -sw";
escape = true;
};
};
}

View File

@@ -1,4 +1,5 @@
{ pkgs, ... }: {
{ pkgs, ... }:
{
home.packages = with pkgs; [
eza # ls replacement
tdf # terminal pdf viewer
@@ -40,31 +41,32 @@
tab_bar_min_tabs = 1;
tab_bar_edge = "bottom";
tab_bar_style = "custom"; # Should be changed to custom
tab_title_template =
"{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{title}";
tab_title_template = "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{title}";
symbol_map = let
mappings = [
"U+23FB-U+23FE"
"U+2B58"
"U+E200-U+E2A9"
"U+E0A0-U+E0A3"
"U+E0B0-U+E0BF"
"U+E0C0-U+E0C8"
"U+E0CC-U+E0CF"
"U+E0D0-U+E0D2"
"U+E0D4"
"U+E700-U+E7C5"
"U+F000-U+F2E0"
"U+2665"
"U+26A1"
"U+F400-U+F4A8"
"U+F67C"
"U+E000-U+E00A"
"U+F300-U+F313"
"U+E5FA-U+E62B"
];
in (builtins.concatStringsSep "," mappings) + " Symbols Nerd Font Mono";
symbol_map =
let
mappings = [
"U+23FB-U+23FE"
"U+2B58"
"U+E200-U+E2A9"
"U+E0A0-U+E0A3"
"U+E0B0-U+E0BF"
"U+E0C0-U+E0C8"
"U+E0CC-U+E0CF"
"U+E0D0-U+E0D2"
"U+E0D4"
"U+E700-U+E7C5"
"U+F000-U+F2E0"
"U+2665"
"U+26A1"
"U+F400-U+F4A8"
"U+F67C"
"U+E000-U+E00A"
"U+F300-U+F313"
"U+E5FA-U+E62B"
];
in
(builtins.concatStringsSep "," mappings) + " Symbols Nerd Font Mono";
};
};
@@ -75,15 +77,24 @@
urls = [
{
url = "https://www.tagesschau.de/xml/rss2";
tags = [ "news" "de" ];
tags = [
"news"
"de"
];
}
{
url = "https://www.spiegel.de/schlagzeilen/index.rss";
tags = [ "news" "de" ];
tags = [
"news"
"de"
];
}
{
url = "https://www.focus.de/rss";
tags = [ "news" "de" ];
tags = [
"news"
"de"
];
}
{
url = "https://feeds.feedburner.com/blogspot/rkEL";
@@ -92,7 +103,9 @@
];
};
programs.cava = { enable = true; };
programs.cava = {
enable = true;
};
programs.yazi = {
enable = true;
@@ -100,7 +113,13 @@
enableZshIntegration = true;
enableFishIntegration = true;
settings = { ration = [ 1 3 4 ]; };
settings = {
ration = [
1
3
4
];
};
};
programs.fzf = {
@@ -109,8 +128,7 @@
enableZshIntegration = true;
enableFishIntegration = true;
defaultCommand = "fd --type f --strip-cwd-prefix --hidden --exclude .git";
fileWidgetCommand =
"fd --type f --strip-cwd-prefix --hidden --exclude .git";
fileWidgetCommand = "fd --type f --strip-cwd-prefix --hidden --exclude .git";
defaultOptions = [
"--height 100%"
"--border sharp"
@@ -121,7 +139,44 @@
};
# TODO: Install OpenCode
# TODO: Install NuShell
programs.nushell = {
enable = true;
shellAliases = {
# ls = "eza --icons=always";
la = "ls -la";
#tree = "eza --icons=always -T";
i = "kitty +kitten icat";
# cat = "bat --color=always --style=numbers";
grep = "rg";
};
extraConfig = ''
$env.config = {
show_banner: false
}
# Starship
$env.STARSHIP_SHELL = "nu"
mkdir ~/.cache/starship
starship init nu | save -f ~/.cache/starship/init.nu
# fzf picker for nvim
def f [] { nvim (fzf) }
# llm | glow
def l [...args] { llm prompt -m groq/llama-3.3-70b-versatile -t std ...$args | glow }
# Fastfetch on shell start
fastfetch
'';
extraEnv = ''
starship init nu | save -f ~/.cache/starship/init.nu
use ~/.cache/starship/init.nu
'';
};
programs.fish = {
enable = true;
@@ -132,11 +187,13 @@
tree = "eza --icons=always -T";
i = "kitty +kitten icat";
cat = "bat --color=always --style=numbers";
grep = "ripgrep";
nix-switch = if pkgs.stdenv.isDarwin then
"darwin-rebuild switch --flake ~/.config/nix#(hostname -s)"
else
"sudo nixos-rebuild switch --flake ~/.config/nix#(hostname -s)";
grep = "rg";
cp = "rsync -ah --progress";
nix-switch =
if pkgs.stdenv.isDarwin then
"darwin-rebuild switch --flake ~/.config/nix#(hostname -s)"
else
"sudo nixos-rebuild switch --flake ~/.config/nix#(hostname -s)";
};
interactiveShellInit = ''
@@ -192,8 +249,7 @@
# Git status module settings
git_status = {
format =
"[[(*$conflicted$untracked$modified$staged$renamed$deleted)](red) ($ahead_behind$stashed)]($style)";
format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](red) ($ahead_behind$stashed)]($style)";
style = "bold #a6e3a1";
conflicted = "";
untracked = "";