sway: add waybar

This commit is contained in:
Jozef Steinhübl 2024-08-15 20:36:20 +02:00
parent eec5faba96
commit 1aeb0e55a5
No known key found for this signature in database
GPG key ID: E6BC90C91973B08F
4 changed files with 241 additions and 18 deletions

View file

@ -33,22 +33,6 @@ input * {
xkb_numlock enabled xkb_numlock enabled
} }
# bar # waybar, configuration in ~/.config/waybar
bar {
font pango:FiraCode Nerd Font Mono 12
position top
gaps 10px
wrap_scroll yes
status_command while ~/.config/sway/status.sh; do sleep 1; done
colors {
background #282828
statusline #ffffff
focused_workspace #181818 #181818 #ffffff
inactive_workspace #282828 #282828 #ffffff
urgent_workspace #fe4f58 #fe4f58 #181818
}
}
include /etc/sway/config.d/* include /etc/sway/config.d/*

View file

@ -0,0 +1,70 @@
// -*- mode: jsonc -*-
{
"height": 24,
"spacing": 4,
"modules-left": ["sway/workspaces"],
"modules-center": ["sway/window"],
"modules-right": [
"mpris",
"wireplumber",
"backlight",
"clock",
"battery",
"tray",
],
// Modules configuration
"sway/workspaces": {
"all-outputs": true,
"warp-on-scroll": false,
"enable-bar-scroll": true,
"disable-scroll-wraparound": true,
},
"sway/window": {
"format": "{title}",
"max-length": 40,
"all-outputs": true,
},
"mpris": {
"format": " {status_icon} {dynamic}",
"interval": 1,
"dynamic-len": 40,
"status-icons": {
"playing": "▶",
"paused": "⏸",
"stopped": "",
},
"dynamic-order": ["title", "artist"],
},
"wireplumber": {
"scroll-step": 5,
"format": "{icon} {volume}%",
"format-muted": "",
"format-icons": ["", "", ""],
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
},
"backlight": {
"format": "{icon} {percent}%",
"format-icons": ["", "", "", "", "", "", "", "", ""],
},
"clock": {
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format-alt": "{:%Y-%m-%d}",
},
"battery": {
"states": {
"good": 95,
"warning": 30,
"critical": 15,
},
"format": "{icon} {capacity}%",
"format-full": "{icon} {capacity}%",
"format-charging": " {capacity}%",
"format-plugged": " {capacity}%",
"format-alt": "{icon} {time}",
"format-icons": ["", "", "", "", ""],
},
"tray": {
"icon-size": 14,
"spacing": 10,
},
}

169
.config/waybar/style.css Normal file
View file

@ -0,0 +1,169 @@
/* https://github.com/OriginCode/dotfiles/blob/0093b62068c36f1ca89deb1514b6b2e0c6c3b1a9/waybar/.config/waybar/style.css */
* {
font-size: 14px;
border-radius: 5px;
}
window#waybar {
/* `otf-font-awesome` is required to be installed for icons */
font-family: FontAwesome, monospace;
background-color: transparent;
border-bottom: 0px;
color: #ebdbb2;
transition-property: background-color;
transition-duration: 0.5s;
}
window#waybar.hidden {
opacity: 0.2;
}
window#waybar.empty #window {
background-color: transparent;
}
.modules-right {
margin: 10px 10px 0 0;
}
.modules-center {
margin: 10px 0 0 0;
}
.modules-left {
margin: 10px 0 0 10px;
}
button {
/* Use box-shadow instead of border so the text isn't offset */
/* box-shadow: inset 0 -3px transparent; */
border: none;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
/*
button:hover {
background: inherit;
box-shadow: inset 0 -3px #ebdbb2;
} */
#workspaces {
background-color: #282828;
}
#workspaces button {
padding: 0 5px;
background-color: transparent;
color: #ebdbb2;
border-radius: 0;
}
#workspaces button:first-child {
border-radius: 5px 0 0 5px;
}
#workspaces button:last-child {
border-radius: 0 5px 5px 0;
}
#workspaces button:hover {
color: #d79921;
}
#workspaces button.focused {
background-color: #665c54;
/* box-shadow: inset 0 -3px #ffffff; */
}
#workspaces button.urgent {
background-color: #b16286;
}
#idle_inhibitor,
#cava,
#scratchpad,
#mode,
#window,
#clock,
#battery,
#backlight,
#wireplumber,
#tray,
#mpris,
#load {
padding: 0 10px;
background-color: #282828;
color: #ebdbb2;
}
#mode {
background-color: #689d6a;
color: #282828;
/* box-shadow: inset 0 -3px #ffffff; */
}
/* If workspaces is the leftmost module, omit left margin */
.modules-left > widget:first-child > #workspaces {
margin-left: 0;
}
/* If workspaces is the rightmost module, omit right margin */
.modules-right > widget:last-child > #workspaces {
margin-right: 0;
}
#cava {
padding: 0 5px;
}
#battery.charging,
#battery.plugged {
background-color: #98971a;
color: #282828;
}
@keyframes blink {
to {
background-color: #282828;
color: #ebdbb2;
}
}
/* Using steps() instead of linear as a timing function to limit cpu usage */
#battery.critical:not(.charging) {
background-color: #cc241d;
color: #ebdbb2;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
}
label:focus {
background-color: #000000;
}
#wireplumber.muted {
background-color: #458588;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
}
#mpris.playing {
background-color: #d79921;
color: #282828;
}
#tray menu {
font-family: sans-serif;
}
#scratchpad.empty {
background: transparent;
}

2
goog
View file

@ -8,7 +8,7 @@ from common.sync import sync
from common.util import expand from common.util import expand
stuff: list[str] = [ stuff: list[str] = [
*expand("~/.config/{fish,kitty,nvim,pipewire,sway,swaylock,xdg-desktop-portal,zed}/**"), *expand("~/.config/{fish,kitty,nvim,pipewire,sway,swaylock,waybar,xdg-desktop-portal,zed}/**"),
"~/.icons/**", "~/.icons/**",
*expand("~/.local/bin/{yarn}"), *expand("~/.local/bin/{yarn}"),
"~/.profile", "~/.profile",