Evie Litherland-Smith
83e0b05e96
Upscale default wallpaper (now default.png rather than default.jpg) Set Vanguard to use a local animated wallpaper, as the file is quite big after upscaling so I'm not putting it in this repo... Deleted a bunch of wallpapers files from the repo but they're backed up in syncthing Removed overskride and nm-connection-editor from waybar shortcut, open terminal with bluetoothctl and nmtui respectively instead Move twinkle to only be installed on work machine
415 lines
12 KiB
Nix
415 lines
12 KiB
Nix
{ config, pkgs, ... }:
|
|
{
|
|
imports = [ ./avizo.nix ];
|
|
stylix.targets.waybar.enable = false;
|
|
systemd.user.targets.tray.Unit = {
|
|
Description = "Home Manager System Tray";
|
|
Requires = [ "graphical-session.target" ];
|
|
};
|
|
home.packages = [ pkgs.playerctl ]; # For MPRIS to work
|
|
programs.waybar = {
|
|
enable = true;
|
|
systemd.enable = true;
|
|
settings.main =
|
|
let
|
|
terminal = "${config.programs.alacritty.package}/bin/alacritty -e";
|
|
in
|
|
{
|
|
name = "main";
|
|
layer = "top";
|
|
position = "left";
|
|
# Layout
|
|
"modules-left" = [
|
|
"hyprland/workspaces"
|
|
"mpris"
|
|
];
|
|
"modules-center" = [ ];
|
|
"modules-right" = [
|
|
"custom/notification"
|
|
"pulseaudio"
|
|
"network"
|
|
"bluetooth"
|
|
"clock#calendar"
|
|
"clock"
|
|
"backlight"
|
|
"battery"
|
|
"custom/weather"
|
|
"systemd-failed-units"
|
|
"tray"
|
|
];
|
|
# Module config
|
|
"hyprland/workspaces" = {
|
|
format = "{icon}";
|
|
format-icons = {
|
|
"1" = "";
|
|
"2" = "";
|
|
"3" = "";
|
|
"4" = "";
|
|
"5" = "";
|
|
"6" = "";
|
|
"7" = "";
|
|
default = "";
|
|
};
|
|
all-outputs = false;
|
|
persistent-workspaces = {
|
|
"1" = [ ];
|
|
"2" = [ ];
|
|
"3" = [ ];
|
|
"4" = [ ];
|
|
"5" = [ ];
|
|
"6" = [ ];
|
|
"7" = [ ];
|
|
};
|
|
};
|
|
"hyprland/window" = {
|
|
"format" = "{title}";
|
|
"max-length" = 50;
|
|
"rewrite" = {
|
|
"(.*) - GNU Emacs at (.*)" = " $1 [$2]";
|
|
"(alacritty.*)" = " $1";
|
|
"(.*) - mpv" = " $1";
|
|
"swayimg: (.*)" = " $1";
|
|
"swappy" = " swappy";
|
|
"(?:/nix/.*)(btm)" = " Resource Usage [$1]";
|
|
"(?:/nix/.*)(cava)" = " Music Visualiser [$1]";
|
|
"Mozilla Firefox" = " $1";
|
|
"(.*) — Mozilla Firefox" = " $1";
|
|
"Nyxt - (.*)" = " $1";
|
|
"(.*) - Chromium" = " $1";
|
|
"(Signal.*)" = " $1";
|
|
"(WhatsApp for Linux.*)" = " $1";
|
|
"((?:.*)WebCord.*)" = " $1";
|
|
"(Cartridges.*)" = " $1";
|
|
"([Ss]team.*)" = " $1";
|
|
"(Prism Launcher.*)" = " Minecraft ($1)";
|
|
"(.*)(?: *)PrusaSlicer-(.*)" = " $1 PrusaSlicer ($2)";
|
|
"(.*)(?: *)PrusaSlicer G-code Viewer-(.*)" = " $1 G-code Viewer ($2)";
|
|
"FreeCAD (.*)" = " FreeCAD $1";
|
|
"(.*) - Blender.* " = " $1";
|
|
"(Remmina Remote Desktop Client)" = " $1";
|
|
"(NoMachine|Nxplayer.bin)(?: *)(.*)" = " $1 $2";
|
|
};
|
|
};
|
|
mpris = {
|
|
"format" = "{player_icon}\n{status_icon}";
|
|
"tooltip-format" = "{player_icon} ({player}) {status_icon}\n{title}\n{album}\n{artist}";
|
|
"interval" = 1;
|
|
"dynamic-order" = [
|
|
"album"
|
|
"artist"
|
|
"title"
|
|
"position"
|
|
"length"
|
|
];
|
|
"player-icons" = {
|
|
"default" = "";
|
|
};
|
|
"status-icons" = {
|
|
"playing" = "";
|
|
"paused" = "";
|
|
"stopped" = "";
|
|
};
|
|
"ignored-players" = [
|
|
"com"
|
|
"org"
|
|
"firefox"
|
|
];
|
|
};
|
|
pulseaudio = {
|
|
scroll-step = 5;
|
|
format = "{format_source}\n{icon}";
|
|
# format-muted = "{format_source} {icon}";
|
|
format-source = "";
|
|
format-source-muted = "";
|
|
format-icons = {
|
|
car = "";
|
|
default = [
|
|
""
|
|
""
|
|
""
|
|
];
|
|
default-muted = "";
|
|
hands-free = "";
|
|
headset = "";
|
|
phone = "";
|
|
portable = "";
|
|
headphone = "";
|
|
};
|
|
tooltip = true;
|
|
tooltip-format = "{desc} ({volume}%)";
|
|
on-click = "${pkgs.pavucontrol}/bin/pavucontrol";
|
|
on-click-right = "${config.services.avizo.package}/bin/volumectl %";
|
|
on-scroll-up = "${config.services.avizo.package}/bin/volumectl -u + 5";
|
|
on-scroll-down = "${config.services.avizo.package}/bin/volumectl -u - 5";
|
|
};
|
|
network = {
|
|
format-icons = [
|
|
""
|
|
""
|
|
""
|
|
""
|
|
];
|
|
format-wifi = "{icon}";
|
|
format-ethernet = "";
|
|
format-linked = "";
|
|
format-disconnected = "";
|
|
tooltip-format = "{essid} ({signalStrength}%)";
|
|
on-click = "${terminal} ${pkgs.networkmanager}/bin/nmtui";
|
|
};
|
|
bluetooth = {
|
|
format = "";
|
|
format-disabled = "";
|
|
format-off = "";
|
|
format-on = "";
|
|
format-connected = "";
|
|
tooltip-format = "{status} | {device_alias}";
|
|
on-click = "${terminal} ${pkgs.bluez}/bin/bluetoothctl";
|
|
};
|
|
"clock#calendar" =
|
|
let
|
|
size = "${toString config.stylix.fonts.sizes.popups}pt";
|
|
in
|
|
{
|
|
format = "";
|
|
tooltip-format = "<span size='${size}'>{calendar}</span>";
|
|
calendar = {
|
|
mode = "month";
|
|
weeks-pos = "left";
|
|
on-scroll = 1;
|
|
format =
|
|
let
|
|
scheme = config.lib.stylix.scheme.withHashtag;
|
|
in
|
|
{
|
|
months = "<span color='${scheme.red}'><b>{}</b></span>";
|
|
weeks = "<span color='${scheme.cyan}'><i>W{}</i></span>";
|
|
weekdays = "<span color='${scheme.orange}'><u>{}</u></span>";
|
|
days = "<span color='${scheme.base05}'>{}</span>";
|
|
today = "<span color='${scheme.magenta}'><b><u>{}</u></b></span>";
|
|
};
|
|
};
|
|
actions = {
|
|
on-scroll-up = "shift_up";
|
|
on-scroll-down = "shift_down";
|
|
};
|
|
};
|
|
clock = {
|
|
format = "{:%H\n%M}";
|
|
tooltip = false;
|
|
};
|
|
backlight = {
|
|
format = "{icon}";
|
|
tooltip-format = "{percent}%";
|
|
format-icons = [
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
];
|
|
};
|
|
battery = {
|
|
states = {
|
|
warning = 20;
|
|
critical = 10;
|
|
};
|
|
format = "{icon}";
|
|
format-time = "{H}:{m}";
|
|
format-charging = "";
|
|
format-plugged = "";
|
|
# format-warning = "{icon}{capacity}%";
|
|
# format-critical = "{icon}{capacity}% ({time})";
|
|
tooltip-format = "{capacity}% | {power}W | {time}";
|
|
format-icons = [
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
];
|
|
};
|
|
"systemd-failed-units" = {
|
|
hide-on-ok = true;
|
|
format = "";
|
|
system = true;
|
|
user = false;
|
|
};
|
|
"custom/notification" =
|
|
let
|
|
makoctl = "${config.services.mako.package}/bin/makoctl";
|
|
jq = "${pkgs.jq}/bin/jq";
|
|
in
|
|
{
|
|
exec = "( ${makoctl} list | ${jq} -e '.data[] | length > 0' >/dev/null && echo '' ) || echo '' ";
|
|
format = "{}";
|
|
tooltip = false;
|
|
on-click = "${makoctl} dismiss -a";
|
|
interval = 3;
|
|
};
|
|
"custom/weather" =
|
|
let
|
|
date-format = "%Y-%m-%d";
|
|
custom-indicator = "{ICON}"; # "{temp_C}°C({FeelsLikeC}°C)";
|
|
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 = 20;
|
|
show-passive-items = true;
|
|
spacing = 5;
|
|
};
|
|
};
|
|
style =
|
|
let
|
|
scheme = config.lib.stylix.scheme.withHashtag;
|
|
opacity = config.stylix.opacity.desktop;
|
|
in
|
|
''
|
|
* {
|
|
all: unset;
|
|
font-family: ${config.stylix.fonts.monospace.name};
|
|
font-size: ${toString (config.stylix.fonts.sizes.desktop + 2)}px;
|
|
}
|
|
|
|
window {
|
|
background: transparent;
|
|
box-shadow: none;
|
|
border: none;
|
|
}
|
|
|
|
window > box {
|
|
color: ${scheme.base05};
|
|
background: alpha(${scheme.base00}, ${toString opacity});
|
|
margin: 5px 0px 5px 6px;
|
|
padding: 2px;
|
|
border: 1px solid ${scheme.base04};
|
|
border-radius: 10px;
|
|
}
|
|
|
|
tooltip {
|
|
background: ${scheme.base00};
|
|
border: 2px solid ${scheme.base0E};
|
|
border-radius: 10px;
|
|
box-shadow: none;
|
|
padding: 10px;
|
|
}
|
|
|
|
tooltip label {
|
|
color: ${scheme.base05};
|
|
border: none;
|
|
padding: 5px;
|
|
margin: 0px;
|
|
}
|
|
|
|
#workspaces,
|
|
#window,
|
|
#mpris,
|
|
#custom-notification,
|
|
#pulseaudio,
|
|
#network,
|
|
#bluetooth,
|
|
#clock,
|
|
#backlight,
|
|
#battery,
|
|
#custom-weather,
|
|
#tray {
|
|
margin: 0px;
|
|
padding: 2px 4px 2px 3px;
|
|
}
|
|
|
|
#workspaces {
|
|
background: ${scheme.base00};
|
|
border-radius: 5px;
|
|
margin: 3px 2px;
|
|
padding: 2px 3px;
|
|
}
|
|
|
|
#workspaces button {
|
|
padding: 2px 5px 2px 1px;
|
|
}
|
|
#workspaces button.empty {
|
|
color: ${scheme.base03};
|
|
}
|
|
#workspaces button.active {
|
|
color: ${scheme.base0E};
|
|
}
|
|
#workspaces button.urgent {
|
|
color: ${scheme.base09};
|
|
}
|
|
|
|
#mpris.paused {
|
|
color: ${scheme.base03};
|
|
}
|
|
|
|
#custom-notification {
|
|
color: ${scheme.base08};
|
|
}
|
|
#pulseaudio {
|
|
color: ${scheme.base09};
|
|
}
|
|
#network {
|
|
color: ${scheme.base0A};
|
|
padding: 2px 6px 2px 1px;
|
|
}
|
|
#bluetooth {
|
|
color: ${scheme.base0B};
|
|
}
|
|
#clock.calendar {
|
|
color: ${scheme.base0C};
|
|
padding: 2px 3px 2px 3px;
|
|
}
|
|
#clock {
|
|
color: ${scheme.base0D};
|
|
padding: 2px 1px 2px 2px;
|
|
}
|
|
|
|
#backlight {
|
|
padding: 2px 3px 2px 3px;
|
|
}
|
|
#battery {
|
|
padding: 2px 2px 2px 4px;
|
|
}
|
|
#battery.warning {
|
|
color: ${scheme.base09};
|
|
}
|
|
#battery.critical {
|
|
color: ${scheme.base08};
|
|
}
|
|
#battery.charging,
|
|
#battery.plugged {
|
|
color: ${scheme.base0B};
|
|
}
|
|
|
|
#systemd-failed-units {
|
|
padding: 2px 4px 2px 1px;
|
|
}
|
|
#systemd-failed-units.ok {
|
|
color: ${scheme.base0B}
|
|
}
|
|
#systemd-failed-units.degraded {
|
|
color: ${scheme.base08}
|
|
}
|
|
|
|
#custom-weather,
|
|
#tray {
|
|
padding: 2px 2px 2px 3px;
|
|
}
|
|
'';
|
|
};
|
|
}
|