Evie Litherland-Smith
077b04ca73
teams-for-linux seems to have support issues with new teams updates, so switching to just using chromium as my browser as that should work better Add chromium package back, also waybar rewrite and window rules, set as default browser for mimeapps Update chromium configs; Add ManagedBookmarks and alphabetise the other config options. Add ublock-origin, simplelogin and catppuccin theme plugins
349 lines
9.5 KiB
Nix
349 lines
9.5 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
fonts,
|
|
scheme,
|
|
accentColour ? "base07",
|
|
...
|
|
}: {
|
|
systemd.user.targets.tray.Unit = {
|
|
Description = "Home Manager System Tray";
|
|
Requires = ["graphical-session-pre.target"];
|
|
};
|
|
programs.waybar = {
|
|
enable = true;
|
|
settings.main = {
|
|
layer = "top";
|
|
position = "top";
|
|
# Layout
|
|
"modules-left" = [
|
|
"hyprland/workspaces"
|
|
];
|
|
"modules-center" = [
|
|
"hyprland/window"
|
|
"mpris"
|
|
];
|
|
"modules-right" = [
|
|
"custom/notification"
|
|
"pulseaudio"
|
|
"network"
|
|
"bluetooth"
|
|
"clock#calendar"
|
|
"clock"
|
|
"backlight"
|
|
"battery"
|
|
"custom/weather"
|
|
"tray"
|
|
];
|
|
# Module config
|
|
"hyprland/window" = {
|
|
"format" = "{title}";
|
|
"rewrite" = {
|
|
"(.*) - GNU Emacs at (.*)" = " $1 [$2]";
|
|
"(Alacritty.*)" = " $1";
|
|
"(.*) - mpv" = " $1";
|
|
"(btm)" = " Resource Usage [$1]";
|
|
"(cava)" = " Music Visualiser [$1]";
|
|
"(.*) - Thunar" = " $1";
|
|
"Nyxt - (.*)" = " $1";
|
|
"Mozilla Firefox" = " $1";
|
|
"(.*) — Mozilla Firefox" = " $1";
|
|
"(.*) - Chromium" = " $1";
|
|
"((?:.*)WebCord.*)" = " $1";
|
|
"(Signal.*)" = " $1";
|
|
"(WhatsApp for Linux.*)" = " $1";
|
|
"([Ss]team)" = " $1";
|
|
"(Prism Launcher.*)" = " Minecraft ($1)";
|
|
"(.*) Microsoft Teams(?: classic)" = "$1 ";
|
|
"(X2Go Client)" = " $1";
|
|
"(NoMachine|Nxplayer.bin) (.*)" = " $1 $2";
|
|
};
|
|
"separate-outputs" = true;
|
|
};
|
|
"hyprland/workspaces" = {
|
|
format = "{icon}";
|
|
format-icons = {
|
|
"1" = " ";
|
|
"2" = " ";
|
|
"3" = " ";
|
|
"4" = " ";
|
|
"5" = " ";
|
|
"6" = " ";
|
|
"7" = " ";
|
|
"8" = " ";
|
|
"9" = " ";
|
|
"10" = " ";
|
|
default = " ";
|
|
urgent = " ";
|
|
};
|
|
show-special = false;
|
|
sort-by-number = true;
|
|
all-outputs = false;
|
|
persistent-workspaces = {
|
|
"1" = [];
|
|
"2" = [];
|
|
"3" = [];
|
|
"4" = [];
|
|
"5" = [];
|
|
};
|
|
};
|
|
mpris = {
|
|
"format" = "{status_icon} {player_icon} {artist} - {title}";
|
|
"tooltip-format" = "{player_icon} ({player}) {dynamic}";
|
|
"title-len" = 48;
|
|
"interval" = 1;
|
|
"dynamic-order" = [
|
|
"album"
|
|
"artist"
|
|
"title"
|
|
"position"
|
|
"length"
|
|
];
|
|
"player-icons" = {
|
|
"default" = " ";
|
|
"emms" = " ";
|
|
"firefox" = " ";
|
|
"mpv" = " ";
|
|
};
|
|
"status-icons" = {
|
|
"playing" = "";
|
|
"paused" = "";
|
|
"stopped" = "";
|
|
};
|
|
"ignored-players" = [];
|
|
};
|
|
pulseaudio = {
|
|
scroll-step = 5;
|
|
format = "{format_source}{icon}{volume}%";
|
|
format-muted = "{format_source} ";
|
|
format-source = " ";
|
|
format-source-muted = " ";
|
|
format-icons = {
|
|
car = " ";
|
|
default = [" " " " " "];
|
|
hands-free = " ";
|
|
headset = " ";
|
|
phone = " ";
|
|
portable = " ";
|
|
headphone = " ";
|
|
};
|
|
on-click = "${pkgs.pavucontrol}/bin/pavucontrol";
|
|
on-click-right = "${pkgs.pamixer}/bin/pamixer -t";
|
|
on-scroll-up = "${pkgs.pamixer}/bin/pamixer -i 5";
|
|
on-scroll-down = "${pkgs.pamixer}/bin/pamixer -d 5";
|
|
};
|
|
disk = {
|
|
format = " {percentage_used}%";
|
|
path = config.home.homeDirectory;
|
|
};
|
|
cpu = {
|
|
format = " {usage}%";
|
|
tooltip = false;
|
|
};
|
|
memory = {format = " {}%";};
|
|
temperature = {
|
|
critical-threshold = 80;
|
|
format = "{icon} {temperatureC}°C";
|
|
format-icons = ["" "" ""];
|
|
};
|
|
network = {
|
|
format-icons = [" " " " " " " "];
|
|
format-wifi = "{icon}";
|
|
format-ethernet = " ";
|
|
tooltip-format = "{essid} ({signalStrength}%)";
|
|
format-linked = " ";
|
|
format-disconnected = " ";
|
|
};
|
|
bluetooth = {
|
|
format = "";
|
|
format-disabled = "";
|
|
format-off = "";
|
|
format-on = "";
|
|
format-connected = "";
|
|
tooltip-format = "{status} | {device_alias}";
|
|
on-click = "${pkgs.bluez}/bin/bluetoothctl power on";
|
|
on-click-right = "${pkgs.bluez}/bin/bluetoothctl power off";
|
|
};
|
|
"clock#calendar" = {
|
|
# format = "{: %Y-%m-%d}";
|
|
format = "{:%Y-%m-%d}"; # TEMP, see https://github.com/Alexays/Waybar/issues/3021
|
|
tooltip-format = "<tt><small>{calendar}</small></tt>";
|
|
calendar = {
|
|
mode = "month";
|
|
mode-mon-col = 3;
|
|
weeks-pos = "left";
|
|
on-scroll = 1;
|
|
on-click-right = "mode";
|
|
format = {
|
|
months = "<span color='#ffead3'><b>{}</b></span>";
|
|
days = "<span color='#ecc6d9'><b>{}</b></span>";
|
|
weeks = "<span color='#99ffdd'><b>W{}</b></span>";
|
|
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
|
|
today = "<span color='#ff6699'><b><u>{}</u></b></span>";
|
|
};
|
|
};
|
|
actions = {
|
|
on-click-right = "mode";
|
|
on-scroll-up = "shift_up";
|
|
on-scroll-down = "shift_down";
|
|
};
|
|
};
|
|
clock = {
|
|
# format = "{: %R}";
|
|
format = "{:%R}"; # TEMP, see https://github.com/Alexays/Waybar/issues/3021
|
|
};
|
|
backlight = {
|
|
format = "{icon}";
|
|
tooltip-format = "{percent}%";
|
|
format-icons = [" " " " " " " " " " " " " " " " " "];
|
|
};
|
|
battery = {
|
|
states = {
|
|
warning = 30;
|
|
critical = 20;
|
|
};
|
|
format = "{icon}";
|
|
format-charging = " ";
|
|
format-plugged = " ";
|
|
tooltip-format = "{capacity}% {time}";
|
|
format-icons = [" " " " " " " " " " " " " " " " " " " " " "];
|
|
};
|
|
"custom/notification" = let
|
|
swaync = pkgs.swaynotificationcenter;
|
|
in {
|
|
"tooltip" = false;
|
|
"format" = "{icon}{}";
|
|
"format-icons" = {
|
|
"notification" = " ";
|
|
"none" = " ";
|
|
"dnd-notification" = " ";
|
|
"dnd-none" = " ";
|
|
"inhibited-notification" = " ";
|
|
"inhibited-none" = " ";
|
|
"dnd-inhibited-notification" = " ";
|
|
"dnd-inhibited-none" = " ";
|
|
};
|
|
"return-type" = "json";
|
|
"exec-if" = "which ${swaync}/bin/swaync-client";
|
|
"exec" = "${swaync}/bin/swaync-client -swb";
|
|
"on-click" = "${swaync}/bin/swaync-client -t -sw";
|
|
"on-click-right" = "${swaync}/bin/swaync-client -d -sw";
|
|
"escape" = true;
|
|
};
|
|
"custom/weather" = let
|
|
date-format = "%Y-%m-%d";
|
|
custom-indicator = "{ICON}{temp_C}({FeelsLikeC})";
|
|
in {
|
|
"format" = "{}°";
|
|
"tooltip" = true;
|
|
"interval" = 900; # Every 15 minutes
|
|
"exec" = ''${pkgs.wttrbar}/bin/wttrbar --location Didcot --date-format "${date-format}" --custom-indicator "${custom-indicator}"'';
|
|
"return-type" = "json";
|
|
};
|
|
tray = {
|
|
icon-size = fonts.sizes.desktop;
|
|
show-passive-items = true;
|
|
spacing = 5;
|
|
};
|
|
};
|
|
style = with scheme.withHashtag; let
|
|
accent = scheme.withHashtag.${accentColour};
|
|
in ''
|
|
* {
|
|
all: unset;
|
|
font-size: ${toString fonts.sizes.desktop}px;
|
|
font-family: "${fonts.monospace.name}";
|
|
}
|
|
|
|
window {
|
|
background: transparent;
|
|
}
|
|
|
|
window > box {
|
|
color: ${base05};
|
|
background: alpha(${base00}, 0.8);
|
|
margin: 5px 10px 0px;
|
|
padding: 0px;
|
|
border: 1px solid ${accent};
|
|
border-radius: 10px;
|
|
}
|
|
|
|
tooltip {
|
|
/* TODO make transparent when I can fix the blurls issue */
|
|
/* background: alpha(${base00}, 0.8); */
|
|
background: ${base00};
|
|
border: 1px solid ${accent};
|
|
border-radius: 10px;
|
|
}
|
|
|
|
tooltip label {
|
|
color: ${base05};
|
|
border: none;
|
|
padding: 5px;
|
|
margin: 0px;
|
|
}
|
|
|
|
#workspaces,
|
|
#window,
|
|
#mpris,
|
|
#pulseaudio,
|
|
#network,
|
|
#bluetooth,
|
|
#backlight,
|
|
#battery,
|
|
#clock,
|
|
#custom-notification,
|
|
#custom-weather,
|
|
#tray {
|
|
margin: 0px;
|
|
padding: 1px 5px;
|
|
}
|
|
|
|
#workspaces,
|
|
#window,
|
|
#mpris,
|
|
#tray,
|
|
#backlight,
|
|
#battery,
|
|
#custom-weather {
|
|
color: ${base05};
|
|
}
|
|
|
|
#workspaces button {
|
|
background: transparent;
|
|
color: ${base05};
|
|
margin: 0px;
|
|
padding: 0px 5px;
|
|
}
|
|
#workspaces button.empty {
|
|
color: ${base03};
|
|
}
|
|
#workspaces button.active {
|
|
color: ${accent};
|
|
}
|
|
#workspaces button.urgent {
|
|
color: ${base09};
|
|
}
|
|
|
|
#custom-notification {
|
|
color: ${base08};
|
|
}
|
|
#pulseaudio {
|
|
color: ${base09};
|
|
}
|
|
#network {
|
|
color: ${base0A};
|
|
}
|
|
#bluetooth {
|
|
color: ${base0B};
|
|
}
|
|
#clock.calendar {
|
|
color: ${base0C};
|
|
}
|
|
#clock {
|
|
color: ${base0D};
|
|
}
|
|
'';
|
|
};
|
|
}
|