Switch to waybar

This commit is contained in:
Bad 2022-06-29 13:52:31 +02:00
parent 3e9863bb6a
commit 10268bc53f
6 changed files with 301 additions and 56 deletions

View file

@ -1,7 +1,7 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
home-manager.users.mae = { home-manager.users.mae = {
imports = [ ../mae/home-manager-base.nix ../profiles/sway/desktop.nix ]; imports = [ ../mae/home-manager-base.nix ];
}; };
users = (import ../mae/user.nix { inherit pkgs; }); users = (import ../mae/user.nix { inherit pkgs; });
} }

View file

@ -1,7 +1,7 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
home-manager.users.mae = { home-manager.users.mae = {
imports = [ ../mae/home-manager-base.nix ../profiles/sway/laptop.nix ]; imports = [ ../mae/home-manager-base.nix ];
}; };
users = (import ../mae/user.nix { inherit pkgs; }); users = (import ../mae/user.nix { inherit pkgs; });
} }

View file

@ -1,6 +1,6 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
imports = [ ../profiles/direnv ../profiles/git ../profiles/zsh ../profiles/neovim ../profiles/syncthing ../profiles/kdeconnect ../profiles/podman ../profiles/alacritty ../profiles/tmux ../profiles/mpv ]; imports = [ ../profiles/direnv ../profiles/git ../profiles/zsh ../profiles/neovim ../profiles/syncthing ../profiles/kdeconnect ../profiles/podman ../profiles/alacritty ../profiles/tmux ../profiles/mpv ../profiles/sway ];
home.sessionVariables = { home.sessionVariables = {
XDG_DATA_DIRS = "$XDG_DATA_DIRS:/var/lib/flatpak/exports/share:$HOME/.local/share/flatpak/exports/share"; XDG_DATA_DIRS = "$XDG_DATA_DIRS:/var/lib/flatpak/exports/share:$HOME/.local/share/flatpak/exports/share";

View file

@ -25,10 +25,8 @@ in
}; };
}; };
bars = [{ bars = [{
id = "top";
statusCommand = "${pkgs.i3status-rust}/bin/i3status-rs";
position = "top"; position = "top";
trayOutput = "*"; command = "${pkgs.waybar}/bin/waybar";
}]; }];
floating.criteria = [{ title = "Steam - Update News"; }]; floating.criteria = [{ title = "Steam - Update News"; }];
startup = [ startup = [
@ -55,6 +53,41 @@ in
export _JAVA_AWT_WM_NONREPARENTING=1 export _JAVA_AWT_WM_NONREPARENTING=1
''; '';
}; };
programs.waybar = {
enable = true;
settings = {
mainBar = {
layer = "top";
position = "top";
modules-left = [ "sway/workspaces" "sway/mode" ];
modules-center = [ ];
modules-right = [ "custom/riley-gender" "disk" "battery" "backlight" "pulseaudio" "clock" "tray" ];
"custom/riley-gender" = {
interval = "360";
exec = pkgs.writeShellScript "hello-from-waybar" ''
set -euo pipefail
gender="$(${pkgs.curl}/bin/curl 'https://rly.cx/api/gender')"
pronouns="$(${pkgs.curl}/bin/curl 'https://rly.cx/api/pronouns')"
echo -n "Riley: $gender ($pronouns)"
'';
};
backlight = {
on-scroll-up = "${pkgs.brightnessctl}/bin/brightnessctl s +1%";
on-scroll-down = "${pkgs.brightnessctl}/bin/brightnessctl s 1%- -n 1";
};
clock = {
format = "{:%a %d %b %H:%M}";
};
disk = {
format = "{percentage_free}%({free})";
};
pulseaudio = {
on-click-right = "${pkgs.pulseaudio}/bin/pactl set-sink-mute @DEFAULT_SINK@ toggle";
};
};
};
style = ./waybar.css;
};
programs.rofi = { programs.rofi = {
enable = true; enable = true;
@ -71,47 +104,5 @@ in
defaultTimeout = 2000; defaultTimeout = 2000;
}; };
programs.i3status-rust = {
enable = true;
bars.bar_0 = {
blocks = [
{
block = "custom";
command = ''
set -euo pipefail
gender="$(${pkgs.curl}/bin/curl 'https://rly.cx/api/gender')"
pronouns="$(${pkgs.curl}/bin/curl 'https://rly.cx/api/pronouns')"
echo -n "Riley: $gender ($pronouns)"
'';
interval = 360;
}
{
block = "disk_space";
path = "/";
info_type = "available";
unit = "GB";
interval = 60;
warning = 20.0;
alert = 10.0;
}
{
block = "memory";
display_type = "memory";
format_mem = "{mem_used}/{mem_total}({mem_used_percents})";
format_swap = "{swap_used}/{swap_total}({swap_used_percents})";
}
{
block = "cpu";
interval = 1;
}
{ block = "sound"; }
{
block = "time";
interval = 60;
format = "%a %d/%m %R";
}
];
};
};
home.packages = [ scripts.lockscreen ]; home.packages = [ scripts.lockscreen ];
} }

View file

@ -1,8 +0,0 @@
{ pkgs, lib, ... }:
let
desk = (import ./desktop.nix { inherit pkgs lib; });
desk_blocks = desk.programs.i3status-rust.bars.bar_0.blocks;
lap_blocks = [{ block = "backlight"; } { block = "battery"; }] ++ desk_blocks;
lap = lib.recursiveUpdate desk { programs.i3status-rust.bars.bar_0.blocks = lap_blocks; };
in
lap

View file

@ -0,0 +1,262 @@
* {
/* `otf-font-awesome` is required to be installed for icons */
font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif;
font-size: 11px;
}
window#waybar {
background-color: rgba(43, 48, 59, 0.5);
color: #ffffff;
transition-property: background-color;
transition-duration: .5s;
}
window#waybar.hidden {
opacity: 0.2;
}
/*
window#waybar.empty {
background-color: transparent;
}
window#waybar.solo {
background-color: #FFFFFF;
}
*/
window#waybar.termite {
background-color: #3F3F3F;
}
window#waybar.chromium {
background-color: #000000;
border: none;
}
#workspaces button {
padding: 0 5px;
background-color: transparent;
color: #ffffff;
/* Use box-shadow instead of border so the text isn't offset */
box-shadow: inset 0 -3px transparent;
/* Avoid rounded borders under each workspace name */
border: none;
border-radius: 0;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
#workspaces button:hover {
background: rgba(0, 0, 0, 0.2);
box-shadow: inset 0 -3px #ffffff;
}
#workspaces button.focused {
background-color: #64727D;
box-shadow: inset 0 -3px #ffffff;
}
#workspaces button.urgent {
background-color: #eb4d4b;
}
#mode {
background-color: #64727D;
border-bottom: 3px solid #ffffff;
}
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#network,
#pulseaudio,
#custom-media,
#mode,
#idle_inhibitor,
#custom-riley-gender,
#mpd {
padding: 0 10px;
color: #ffffff;
}
#tray * {
padding: 0 5px;
}
#custom-riley-gender {
background-color: #7D9EFF;
}
#window,
#workspaces {
margin: 0 4px;
}
/* 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;
}
#clock {
background-color: #64727D;
}
#battery {
background-color: #ffffff;
color: #000000;
}
#battery.charging, #battery.plugged {
color: #ffffff;
background-color: #26A65B;
}
@keyframes blink {
to {
background-color: #ffffff;
color: #000000;
}
}
#battery.critical:not(.charging) {
background-color: #f53c3c;
color: #ffffff;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
label:focus {
background-color: #000000;
}
#cpu {
background-color: #2ecc71;
color: #000000;
}
#memory {
background-color: #9b59b6;
}
#disk {
background-color: #964B00;
}
#backlight {
background-color: #90b1b1;
}
#network {
background-color: #2980b9;
}
#network.disconnected {
background-color: #f53c3c;
}
#pulseaudio {
background-color: #f1c40f;
color: #000000;
}
#pulseaudio.muted {
background-color: #90b1b1;
color: #2a5c45;
}
#custom-media {
background-color: #66cc99;
color: #2a5c45;
min-width: 100px;
}
#custom-media.custom-spotify {
background-color: #66cc99;
}
#custom-media.custom-vlc {
background-color: #ffa000;
}
#temperature {
background-color: #f0932b;
}
#temperature.critical {
background-color: #eb4d4b;
}
#tray {
background-color: #2980b9;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: #eb4d4b;
}
#idle_inhibitor {
background-color: #2d3436;
}
#idle_inhibitor.activated {
background-color: #ecf0f1;
color: #2d3436;
}
#mpd {
background-color: #66cc99;
color: #2a5c45;
}
#mpd.disconnected {
background-color: #f53c3c;
}
#mpd.stopped {
background-color: #90b1b1;
}
#mpd.paused {
background-color: #51a37a;
}
#language {
background: #00b093;
color: #740864;
padding: 0 5px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state {
background: #97e1ad;
color: #000000;
padding: 0 0px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state > label {
padding: 0 5px;
}
#keyboard-state > label.locked {
background: rgba(0, 0, 0, 0.2);
}