waybar changes 2
This commit is contained in:
@@ -1,81 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib) mkIf mkEnableOption;
|
|
||||||
cfg = config.home.programs.hyprpanel;
|
|
||||||
in {
|
|
||||||
options = {
|
|
||||||
home.programs.hyprpanel.enable = mkEnableOption "Enables hyprpanel";
|
|
||||||
};
|
|
||||||
imports = [inputs.hyprpanel.homeManagerModules.hyprpanel];
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
programs.hyprpanel = {
|
|
||||||
# Enable the module.
|
|
||||||
# Default: false
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# Automatically restart HyprPanel with systemd.
|
|
||||||
# Useful when updating your config so that you
|
|
||||||
# don't need to manually restart it.
|
|
||||||
# Default: false
|
|
||||||
systemd.enable = true;
|
|
||||||
|
|
||||||
# Add '/nix/store/.../hyprpanel' to the
|
|
||||||
# 'exec-once' in your Hyprland config.
|
|
||||||
# Default: false
|
|
||||||
hyprland.enable = false;
|
|
||||||
|
|
||||||
# Fix the overwrite issue with HyprPanel.
|
|
||||||
# See below for more information.
|
|
||||||
# Default: false
|
|
||||||
overwrite.enable = false;
|
|
||||||
|
|
||||||
# Import a specific theme from './themes/*.json'.
|
|
||||||
# Default: ""
|
|
||||||
theme = "gruvbox_split";
|
|
||||||
|
|
||||||
# Configure bar layouts for monitors.
|
|
||||||
# See 'https://hyprpanel.com/configuration/panel.html'.
|
|
||||||
# Default: null
|
|
||||||
layout = {
|
|
||||||
"bar.layouts" = {
|
|
||||||
"0" = {
|
|
||||||
left = ["dashboard"];
|
|
||||||
middle = ["workspaces"];
|
|
||||||
right = ["volume" "systray" "notifications"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Configure and theme *most* of the options from the GUI.
|
|
||||||
# See './nix/module.nix:103'.
|
|
||||||
# Default: <same as gui>
|
|
||||||
settings = {
|
|
||||||
bar.launcher.autoDetectIcon = true;
|
|
||||||
bar.workspaces.show_icons = true;
|
|
||||||
|
|
||||||
menus.clock = {
|
|
||||||
time = {
|
|
||||||
military = true;
|
|
||||||
hideSeconds = true;
|
|
||||||
};
|
|
||||||
weather.unit = "metric";
|
|
||||||
};
|
|
||||||
|
|
||||||
menus.dashboard.directories.enabled = false;
|
|
||||||
menus.dashboard.stats.enable_gpu = true;
|
|
||||||
|
|
||||||
theme.bar.transparent = true;
|
|
||||||
|
|
||||||
theme.font = {
|
|
||||||
name = "Input Mono Narrow Light";
|
|
||||||
size = "16px";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,164 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib) mkIf mkEnableOption singleton;
|
|
||||||
inherit (builtins) toJSON;
|
|
||||||
cfg = config.home.programs.ironbar;
|
|
||||||
in {
|
|
||||||
options = {
|
|
||||||
home.programs.ironbar.enable = mkEnableOption "Enables ironbar";
|
|
||||||
};
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
home.packages = with pkgs; [ironbar];
|
|
||||||
|
|
||||||
xdg.configFile = {
|
|
||||||
"ironbar/config.json".text = toJSON {
|
|
||||||
name = "main";
|
|
||||||
icon_theme = "Fluent-dark";
|
|
||||||
position = "bottom";
|
|
||||||
anchor_to_edges = true;
|
|
||||||
|
|
||||||
start = [
|
|
||||||
{
|
|
||||||
name = "startMenu";
|
|
||||||
type = "label";
|
|
||||||
label = "❄";
|
|
||||||
on_mouse_enter = "tuirun-toggle.sh";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
center = singleton {
|
|
||||||
type = "launcher";
|
|
||||||
icon_size = 39;
|
|
||||||
|
|
||||||
favorites = [
|
|
||||||
"zen"
|
|
||||||
"alacritty"
|
|
||||||
"thunar"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
end = [
|
|
||||||
{
|
|
||||||
type = "tray";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "upower";
|
|
||||||
show_if = "upower -e | grep BAT";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "clock";
|
|
||||||
format = "%x(%a)%R";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
"ironbar/style.css".text =
|
|
||||||
# css
|
|
||||||
''
|
|
||||||
* {
|
|
||||||
font-family: "Input Sans Narrow", "Font Awesome 6 Free Solid";
|
|
||||||
font-size: 13px;
|
|
||||||
text-shadow: 2px 2px #3c3836;
|
|
||||||
border: none;
|
|
||||||
border-radius: 0;
|
|
||||||
outline: none;
|
|
||||||
font-weight: 500;
|
|
||||||
background: none;
|
|
||||||
color: #fbf1c7;
|
|
||||||
}
|
|
||||||
|
|
||||||
.background {
|
|
||||||
background: alpha(#3c3836, 0.925);
|
|
||||||
}
|
|
||||||
|
|
||||||
button:hover {
|
|
||||||
background: alpha(#504945, 0.8);
|
|
||||||
}
|
|
||||||
|
|
||||||
#bar {
|
|
||||||
border-top: 1px solid alpha(#504945, 0.925);
|
|
||||||
}
|
|
||||||
|
|
||||||
.label, .script, .tray {
|
|
||||||
padding-left: 0.5em;
|
|
||||||
padding-right: 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tray .item {
|
|
||||||
padding-left: 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.upower {
|
|
||||||
padding-left: 0.2em;
|
|
||||||
padding-right: 0.2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.upower .label {
|
|
||||||
padding-left: 0;
|
|
||||||
padding-right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.popup {
|
|
||||||
border: 1px solid #504945;
|
|
||||||
padding: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.popup-clock .calendar-clock {
|
|
||||||
font-family: "Input Mono Narrow";
|
|
||||||
font-size: 2.5em;
|
|
||||||
padding-bottom: 0.1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.popup-clock .calendar .header {
|
|
||||||
padding-top: 1em;
|
|
||||||
border-top: 1px solid #504945;
|
|
||||||
font-size: 1.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.popup-clock .calendar {
|
|
||||||
padding: 0.2em 0.4em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.popup-clock .calendar:selected {
|
|
||||||
color: #32302f;
|
|
||||||
}
|
|
||||||
|
|
||||||
.launcher .item {
|
|
||||||
padding-left: 1em;
|
|
||||||
padding-right: 1em;
|
|
||||||
margin-right: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
button:active {
|
|
||||||
background: alpha(#7c6f64, 0.8);
|
|
||||||
}
|
|
||||||
|
|
||||||
.launcher .open {
|
|
||||||
box-shadow: inset 0 -2px alpha(#7c6f64, 0.8);
|
|
||||||
}
|
|
||||||
|
|
||||||
.launcher .focused {
|
|
||||||
box-shadow: inset 0 -2px alpha(#32302f, 0.8);
|
|
||||||
background: alpha(#504945, 0.8);
|
|
||||||
}
|
|
||||||
|
|
||||||
.popup-launcher {
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.popup-launcher .popup-item:not(:first-child) {
|
|
||||||
border-top: 1px solid #504945;
|
|
||||||
}
|
|
||||||
|
|
||||||
#startMenu {
|
|
||||||
padding-left: 1em;
|
|
||||||
padding-right: 0.5em;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
output() {
|
|
||||||
if [ -f "$HOME/decrypted/.lock" ]; then
|
|
||||||
printf '{"text": ""}\n'
|
|
||||||
else
|
|
||||||
printf '{"text": ""}\n'
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
check() {
|
|
||||||
[ ! -d "$HOME/decrypted" ] && return
|
|
||||||
|
|
||||||
output
|
|
||||||
inotifywait -q "$HOME/decrypted/.lock" > /dev/null 2>&1
|
|
||||||
output
|
|
||||||
inotifywait -q "$HOME/decrypted" > /dev/null
|
|
||||||
check
|
|
||||||
}
|
|
||||||
|
|
||||||
check
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
check() {
|
|
||||||
[ ! -d "$HOME/.mail" ] && return
|
|
||||||
|
|
||||||
notmuch new > /dev/null
|
|
||||||
count="$(notmuch count 'tag:unread')"
|
|
||||||
tooltip="There are $count new emails"
|
|
||||||
if [ "$count" = "0" ]; then
|
|
||||||
printf '{"text": ""}\n'
|
|
||||||
else
|
|
||||||
printf '{"text": "%s", "tooltip": "%s", "alt": "icon"}\n' "$count" "$tooltip"
|
|
||||||
fi
|
|
||||||
inotifywait -q -e move -e create -e delete "$HOME/.mail/cnst/INBOX/cur" > /dev/null
|
|
||||||
check
|
|
||||||
}
|
|
||||||
|
|
||||||
check
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
output="$(progress -q)"
|
|
||||||
text="$(printf "%s" "$output" | sed 's/\[[^]]*\] //g' | awk 'BEGIN { ORS=" " } NR%3==1 { op=$1 } NR%3==2 { pct=($1+0); if (op != "gpg" && op != "coreutils" && pct > 0 && pct < 100) { print op, $1 } }')"
|
|
||||||
tooltip="$(printf "%s" "$output" | perl -pe 's/\n/\\n/g' | perl -pe 's/(?:\\n)+$//')"
|
|
||||||
|
|
||||||
printf '{"text": "%s", "tooltip": "%s"}\n' "$text" "$tooltip"
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
if pgrep -x wf-recorder >/dev/null; then
|
|
||||||
printf '{"text": " "}\n'
|
|
||||||
else
|
|
||||||
printf '{"text": ""}\n'
|
|
||||||
fi
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
socket="${XDG_RUNTIME_DIR:-/run/user/$UID}/yubikey-touch-detector.socket"
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
touch_reasons=()
|
|
||||||
|
|
||||||
if [ ! -e "$socket" ]; then
|
|
||||||
printf '{"text": "Waiting for YubiKey socket"}\n'
|
|
||||||
while [ ! -e "$socket" ]; do sleep 1; done
|
|
||||||
fi
|
|
||||||
printf '{"text": ""}\n'
|
|
||||||
|
|
||||||
while read -n5 cmd; do
|
|
||||||
reason="${cmd:0:3}"
|
|
||||||
|
|
||||||
if [ "${cmd:4:1}" = "1" ]; then
|
|
||||||
touch_reasons+=("$reason")
|
|
||||||
else
|
|
||||||
for i in "${!touch_reasons[@]}"; do
|
|
||||||
if [ "${touch_reasons[i]}" = "$reason" ]; then
|
|
||||||
unset 'touch_reasons[i]'
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "${#touch_reasons[@]}" -eq 0 ]; then
|
|
||||||
printf '{"text": ""}\n'
|
|
||||||
else
|
|
||||||
tooltip="YubiKey is waiting for a touch, reasons: ${touch_reasons[@]}"
|
|
||||||
printf '{"text": " ", "tooltip": "%s"}\n' "$tooltip"
|
|
||||||
fi
|
|
||||||
done < <(nc -U "$socket")
|
|
||||||
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
Reference in New Issue
Block a user