summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorseraphim <18ycm9tx@anonaddy.me>2026-08-17 12:28:43 +0700
committerseraphim <18ycm9tx@anonaddy.me>2026-08-17 12:28:43 +0700
commita9d6537bc817f59f1b2eae83605128cc9cbf1219 (patch)
treee148ea303bd5a31d5aeffb77ff158373ccbe83b4
parent7dd785b1005aec643004c06eaa7af690b00cb48f (diff)
waybar+niri changes
-rw-r--r--foot/.config/foot/foot.ini3
-rw-r--r--niri/.config/niri/config.kdl9
-rwxr-xr-xniri/.config/niri/theme-switcher.sh54
-rw-r--r--waybar/.config/waybar/config.jsonc98
-rw-r--r--waybar/.config/waybar/style.css163
-rw-r--r--waybar/config.jsonc73
-rw-r--r--waybar/style.css49
7 files changed, 300 insertions, 149 deletions
diff --git a/foot/.config/foot/foot.ini b/foot/.config/foot/foot.ini
index ba33ebb..d3b8d81 100644
--- a/foot/.config/foot/foot.ini
+++ b/foot/.config/foot/foot.ini
@@ -1,6 +1,6 @@
[main]
include=~/.cache/wal/colors-foot.ini
-font=Jetbrains mono :size=12
+font=JetBrainsMono Nerd Font:size=12
pad=2x0
# paste the rest of your theme colors here
@@ -17,7 +17,6 @@ lines=10000
multiplier=1.5
[key-bindings]
-[key-bindings]
clipboard-copy=Control+Shift+c Control+Insert
clipboard-paste=Control+Shift+v Shift+Insert
primary-paste=none
diff --git a/niri/.config/niri/config.kdl b/niri/.config/niri/config.kdl
index 9189458..ee872de 100644
--- a/niri/.config/niri/config.kdl
+++ b/niri/.config/niri/config.kdl
@@ -157,12 +157,19 @@ overview {
//color "#00000080"
}
}
-
+layer-rule {
+ match namespace="^backdrop$"
+ place-within-backdrop true
+}
+debug {
+ honor-xdg-activation-with-invalid-serial
+}
binds {
// Application Launchers
Mod+Shift+T { spawn "telegram-desktop"; }
Mod+Shift+B { spawn "/opt/helium/helium" "--enable-features=UseOzonePlatform" "--ozone-platform=wayland"; }
Mod+D { spawn "vicinae" "toggle"; }
+ Mod+Ctrl+V { spawn "vicinae" "deeplink" "vicinae://launch/clipboard/history"; }
Mod+T hotkey-overlay-title="File Manager" { spawn "dolphin"; }
Mod+Alt+R { spawn "foot" "-e" "rmpc"; }
Mod+S hotkey-overlay-title="Terminal" { spawn "foot"; }
diff --git a/niri/.config/niri/theme-switcher.sh b/niri/.config/niri/theme-switcher.sh
index 5c92039..6a22b0a 100755
--- a/niri/.config/niri/theme-switcher.sh
+++ b/niri/.config/niri/theme-switcher.sh
@@ -4,35 +4,41 @@
LIGHT_WALLPAPER="$HOME/Pictures/wallpapers/day.jpg"
DARK_WALLPAPER="$HOME/Pictures/wallpapers/night.jpg"
+# paths to blurred pics for overview backdrop
+LIGHT_BLUR_WALLPAPER="$HOME/Pictures/wallpapers/day-blur.jpg"
+DARK_BLUR_WALLPAPER="$HOME/Pictures/wallpapers/night-blur.jpg"
+
STATE_FILE="/tmp/current_theme_state"
while true; do
- HOUR=$(date +%H)
- HOUR=$((10#$HOUR))
+ HOUR=$(date +%H)
+ HOUR=$((10#$HOUR))
+
+ if [ "$HOUR" -ge 9 ] && [ "$HOUR" -lt 18 ]; then
+ TARGET_STATE="light"
+ else
+ TARGET_STATE="dark"
+ fi
- if [ "$HOUR" -ge 9 ] && [ "$HOUR" -lt 18 ]; then
- TARGET_STATE="light"
+ CURRENT_STATE=$(cat "$STATE_FILE" 2>/dev/null)
+
+ if [ "$CURRENT_STATE" != "$TARGET_STATE" ]; then
+ if [ "$TARGET_STATE" = "light" ]; then
+ wal -n -l -i "$LIGHT_WALLPAPER"
+ awww img "$LIGHT_WALLPAPER"
+ awww -n backdrop img "$LIGHT_BLUR_WALLPAPER"
else
- TARGET_STATE="dark"
+ wal -n -i "$DARK_WALLPAPER"
+ awww img "$DARK_WALLPAPER"
+ awww -n backdrop img "$DARK_BLUR_WALLPAPER"
fi
- CURRENT_STATE=$(cat "$STATE_FILE" 2>/dev/null)
-
- if [ "$CURRENT_STATE" != "$TARGET_STATE" ]; then
- if [ "$TARGET_STATE" = "light" ]; then
- wal -n -l -i "$LIGHT_WALLPAPER"
- awww img "$LIGHT_WALLPAPER"
- else
- wal -n -i "$DARK_WALLPAPER"
- awww img "$DARK_WALLPAPER"
- fi
-
- killall -SIGUSR2 waybar
-
- killall -USR1 foot
-
- echo "$TARGET_STATE" >"$STATE_FILE"
- fi
-
- sleep 60
+ killall -SIGUSR2 waybar
+
+ killall -USR1 foot
+
+ echo "$TARGET_STATE" >"$STATE_FILE"
+ fi
+
+ sleep 60
done
diff --git a/waybar/.config/waybar/config.jsonc b/waybar/.config/waybar/config.jsonc
new file mode 100644
index 0000000..8fe5464
--- /dev/null
+++ b/waybar/.config/waybar/config.jsonc
@@ -0,0 +1,98 @@
+{
+ "exclusive": true,
+ "reload_style_on_change": true,
+ "position": "top",
+ "margin-top": 0,
+ "spacing": 0,
+ "height": 0,
+ "margin-bottom": 0,
+ "modules-left": [
+ "niri/workspaces",
+ "custom/separator",
+ "tray",
+ "custom/separator2",
+ "custom/separator5",
+ "custom/media",
+ "custom/separator6"
+ ],
+ "modules-center": ["custom/separator", "custom/clock", "custom/separator2"],
+ "modules-right": [
+ "custom/separator",
+ "custom/separator3",
+ "pulseaudio",
+ "custom/separator3",
+ "memory",
+ "custom/separator2"
+ ],
+ "niri/workspaces": {
+ "disable-scroll": true,
+ "format": "{index}"
+ },
+ "custom/separator": {
+ "format": "[",
+ "tooltip": false
+ },
+ "custom/separator2": {
+ "format": "]",
+ "tooltip": false
+ },
+ "custom/separator3": {
+ "format": "󰿟",
+ "tooltip": false
+ },
+ "custom/separator5": {
+ "exec": "sh -c 'if pgrep -x cliamp >/dev/null || playerctl status 2>/dev/null | grep -qE \"Playing|Paused\"; then echo \"{\\\"text\\\":\\\"[\\\",\\\"class\\\":\\\"show\\\"}\"; else echo \"{\\\"text\\\":\\\"\\\",\\\"class\\\":\\\"hide\\\"}\"; fi'",
+ "return-type": "json",
+ "interval": 2,
+ "format": "{}"
+ },
+ "custom/separator6": {
+ "exec": "sh -c 'if pgrep -x cliamp >/dev/null || playerctl status 2>/dev/null | grep -qE \"Playing|Paused\"; then echo \"{\\\"text\\\":\\\"]\\\",\\\"class\\\":\\\"show\\\"}\"; else echo \"{\\\"text\\\":\\\"\\\",\\\"class\\\":\\\"hide\\\"}\"; fi'",
+ "return-type": "json",
+ "interval": 2,
+ "format": "{}"
+ },
+
+ "memory": {
+ "interval": 2,
+ "format": "RAM {percentage:02}%",
+ "on-click": "foot btop",
+ "states": {
+ "warning": 50,
+ "critical": 80
+ }
+ },
+ "custom/clock": {
+ "exec": "date +'%H:%M %p - %A, %b %d' | tr '[:upper:]' '[:lower:]'",
+ "interval": 60,
+ "tooltip": false
+ },
+ "pulseaudio": {
+ "justify": "center",
+ "format": "vol {volume}%",
+ "on-click": "pavucontrol",
+ "on-click-right": "pamixer -t",
+ "tooltip-format": "Playing at {volume}%",
+ "scroll-step": 5,
+ "format-muted": "vol <span style='italic' weight='900' color='#df6124'>muted</span>",
+ "format-icons": {
+ "headphone": "",
+ "default": ["", "", ""]
+ },
+ "states": {
+ "warning": 50,
+ "critical": 10
+ }
+ },
+ "custom/media": {
+ "format": "{}",
+ "max-length": 30,
+ "interval": 2,
+ "exec": "playerctl metadata --format '{{ artist }} - {{ title }}' 2>/dev/null || echo \"\"",
+ "on-click": "playerctl play-pause"
+ },
+ "tray": {
+ "icon-size": 14,
+ "spacing": 3
+ }
+}
diff --git a/waybar/.config/waybar/style.css b/waybar/.config/waybar/style.css
new file mode 100644
index 0000000..17fc256
--- /dev/null
+++ b/waybar/.config/waybar/style.css
@@ -0,0 +1,163 @@
+@import "../../.cache/wal/colors-waybar.css";
+@define-color bg @background;
+@define-color fg @foreground;
+
+* {
+ border: none;
+ padding: 0px;
+ font-family: "JetBrains Mono Nerd Font";
+ transition: background-color .3s ease-out;
+ font-weight: bold;
+ font-size: 12px;
+}
+
+window#waybar {
+ background-color: transparent;
+}
+
+#waybar > box {
+ border-radius: 0px;
+ border-bottom: 1.5px solid rgba(255, 255, 255, 0.1);
+ margin: 0px 0px 2px 0px;
+ background-color: @background;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 1);
+ min-height: 25px;
+ transition-property: background-color;
+ transition-duration: .5s;
+}
+
+.modules-left {
+ margin-left: 4px;
+}
+
+.modules-right {
+ margin-right: 4px;
+}
+
+#workspaces {
+ margin: 0px 0px;
+ transition: 0.1s ease-in-out;
+ padding: 0px 0px;
+}
+
+#workspaces button {
+ all: initial;
+ padding: 0px 4px;
+ margin: 4px 2px;
+ min-width: 10px;
+ color: @foreground;
+ opacity: 1;
+ font-weight: 900;
+}
+
+#workspaces button.active {
+ color: @background;
+ background-color: #df6124;
+ padding: 0px 4px;
+ margin: 4px 2px;
+ opacity: 1.0;
+}
+
+#workspaces button.empty:hover,
+#workspaces button:hover {
+ background: transparent;
+ color: alpha(@foreground, 1);
+ transition: all 150ms ease;
+ opacity: 0.75;
+}
+
+#workspaces button.empty {
+ opacity: 0.4;
+ padding: 0px 4px;
+ margin: 4px 2px;
+ color: alpha(@foreground, 0.45);
+}
+
+#workspaces button.empty.active {
+ opacity: 1;
+ background-color: @foreground;
+ color: @background;
+}
+
+#memory,
+#custom-media,
+#tray,
+#cpu,
+#custom-clock,
+#bluetooth,
+#pulseaudio {
+ min-width: 12px;
+ padding: 0 4px;
+ margin: 1px 3px 1px 3px;
+ opacity: 1;
+}
+
+#tray {
+ opacity: 1;
+ padding-top: 2px;
+}
+
+#custom-separator6,
+#custom-separator5,
+#custom-separator4,
+#custom-separator3,
+#custom-separator2,
+#custom-separator {
+ opacity: 0.2;
+ padding-top: 2px;
+ padding-left: 2px;
+ padding-right: 2px;
+ font-size: 14px;
+}
+
+tooltip {
+ padding: 2px;
+}
+
+.hidden {
+ opacity: 0;
+}
+
+tooltip {
+ padding: 4px;
+ background: @background;
+ font-size: 10px;
+ border: 1.5px solid alpha(@foreground, 0.6);
+ border-radius: 8px;
+}
+
+tooltip label {
+ color: alpha(@foreground, 0.65);
+ font-weight: normal;
+}
+
+#custom-media {
+ opacity: 1;
+ color: @foreground;
+ animation: repeat;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: linear;
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+}
+
+@keyframes blink {
+ to {
+ color: #4a4a4a;
+ }
+}
+
+#pulseaudio.warning,
+#memory.warning,
+#cpu.warning {
+ color: #e3c1b1;
+ background-color: @background;
+}
+
+#pulseaudio.critical,
+#memory.critical,
+#cpu.critical {
+ color: #df6124;
+ background-color: @background;
+}
diff --git a/waybar/config.jsonc b/waybar/config.jsonc
deleted file mode 100644
index 4c55e55..0000000
--- a/waybar/config.jsonc
+++ /dev/null
@@ -1,73 +0,0 @@
-{
- "layer": "top",
- "position": "top",
- "height": 30,
- "spacing": 4,
- "modules-left": [
- "niri/workspaces"
- ],
- "modules-center": [
- "clock",
- "custom/media",
- "custom/layout"
- ],
- "modules-right": [
- "pulseaudio",
- "memory",
- "custom/power",
- "tray"
- ],
-
- "niri/workspaces": {
- "format": "{idx}/10",
- "disable-scroll": true
- },
-
- "clock": {
- "format": "[{:%H:%M}]"
- },
-
- "custom/media": {
- "format": "▶ {}",
- "max-length": 40,
- "interval": 2,
- "exec": "playerctl metadata --format '{{ artist }} - {{ title }}' 2>/dev/null",
- "on-click": "playerctl play-pause"
- },
-
- "custom/layout": {
- "format": "[{}]",
- "interval": 0,
- "exec": "niri msg -j keyboard-layouts | jq -r 'if .current_idx == 0 then \"En\" elif .current_idx == 1 then \"Ru\" else .names[.current_idx] end'; niri msg event-stream | while read -r line; do if echo \"$line\" | grep -q 'Keyboard layouts changed'; then niri msg -j keyboard-layouts | jq -r 'if .current_idx == 0 then \"En\" elif .current_idx == 1 then \"Ru\" else .names[.current_idx] end'; fi; done"
- },
-
- "tray": {
- "spacing": 10
- },
-
- "pulseaudio": {
- "format": "VOL {icon} {volume}%",
- "format-muted": "VOL [x_x ] 00%",
- "format-icons": [
- "[> ]",
- "[=> ]",
- "[==> ]",
- "[===> ]",
- "[====> ]",
- "[=====> ]",
- "[======> ]",
- "[=======>]"
- ],
- "on-click": "pavucontrol"
- },
-
- "memory": {
- "interval": 5,
- "format": "RAM [{percentage:02}%]"
- },
-
- "custom/power": {
- "format": "[ SYS ]",
- "on-click": "wlogout -b 2"
- }
-}
diff --git a/waybar/style.css b/waybar/style.css
deleted file mode 100644
index 4d7326f..0000000
--- a/waybar/style.css
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Импортируем цвета, сгенерированные pywal */
-@import "../../.cache/wal/colors-waybar.css";
-
-/* Modern Aesthetic Waybar Theme */
-* {
- font-family: "JetBrainsMono Nerd Font", "Fira Code", monospace;
- font-size: 14px;
- border: none;
- border-radius: 0;
-}
-
-window#waybar {
- /* @background и @foreground берутся из обоев */
- background-color: @background;
- color: @foreground;
-}
-
-#workspaces button {
- padding: 0 8px;
- background: transparent;
- color: @color7;
-}
-
-#workspaces button.active {
- color: @color2; /* Цвет активного окна из обоев */
- font-weight: bold;
-}
-
-#custom-media,
-#custom-workspace,
-#clock,
-#custom-layout,
-#tray,
-#pulseaudio,
-#memory,
-#custom-power {
- padding: 0 12px;
- color: @foreground;
-}
-
-/* Акценты для отдельных модулей */
-#custom-layout {
- color: @color3;
-}
-
-#custom-power {
- color: @color1; /* Обычно это красный или яркий цвет из обоев */
- font-weight: bold;
-}