diff --git a/bootstrap/linux/chromium-flags.bash b/bootstrap/linux/chromium-flags.bash
index c3a9ae9..2ad6bbd 100755
--- a/bootstrap/linux/chromium-flags.bash
+++ b/bootstrap/linux/chromium-flags.bash
@@ -10,6 +10,31 @@ XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
BROWSER_FLAG=$DOTFILES/platforms/linux/chromium-flags.conf
ELECTRON_FLAG=$DOTFILES/platforms/linux/electron-flags.conf
+
+parse_args() {
+ while [[ $# -gt 0 ]]; do
+ case "$1" in
+ # --debug|-d)
+ # export LOG_LEVEL="DEBUG"
+ # log_debug "Debug mode enabled"
+ # shift
+ # ;;
+ --force|-f)
+ FORCE_FILE="true"
+ echo "Force update enabled"
+ shift
+ ;;
+ *)
+ echo "Unknown argument: $1"
+ echo "Usage: chromium-flags.sh [--debug|-d] [--force|-f]"
+ exit 1
+ ;;
+ esac
+ done
+}
+
+parse_args "$@"
+
# Browser Flags
browser_flags_path=(
@@ -24,23 +49,23 @@ browser_flags_path=(
electron_flags_path=(
"$XDG_CONFIG_HOME/electron-flags.conf" # General
"$XDG_CONFIG_HOME/code-flags.conf" # VSCode
- "$XDG_CONFIG_HOME/qq-electron-flags.conf" # Slack
+ "$XDG_CONFIG_HOME/qq-electron-flags.conf" # QQ
)
for path in "${browser_flags_path[@]}"; do
- if [ -f "$path" ]; then
+ if [ -f "$path" ] && [ "$FORCE_FILE" != "true" ]; then
echo "[INFO] Found Browser Flags: $path"
else
echo "[INFO] Creating Browser Flags: $path"
- ln -s "$BROWSER_FLAG" "$path"
+ ln -sf "$BROWSER_FLAG" "$path"
fi
done
for path in "${electron_flags_path[@]}"; do
- if [ -f "$path" ]; then
+ if [ -f "$path" ] && [ "$FORCE_FILE" != "true" ]; then
echo "[INFO] Found Electron Flags: $path"
else
echo "[INFO] Creating Electron Flags: $path"
- ln -s "$ELECTRON_FLAG" "$path"
+ ln -sf "$ELECTRON_FLAG" "$path"
fi
done
diff --git a/bootstrap/linux/chromium-flags.hypr.bash b/bootstrap/linux/chromium-flags.hypr.bash
new file mode 100755
index 0000000..982fb59
--- /dev/null
+++ b/bootstrap/linux/chromium-flags.hypr.bash
@@ -0,0 +1,71 @@
+#!/usr/bin/env bash
+# vim:ft=bash
+# chromium-flags.sh
+# Set Chromium & Electron Flags
+
+echo "[INFO] Set Chromium & Electron Flags"
+
+DOTFILES="${DOTFILES:-$HOME/.dotfiles}"
+XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
+BROWSER_FLAG=$DOTFILES/platforms/linux/chromium-flags.hypr.conf
+ELECTRON_FLAG=$DOTFILES/platforms/linux/electron-flags.hypr.conf
+
+
+parse_args() {
+ while [[ $# -gt 0 ]]; do
+ case "$1" in
+ # --debug|-d)
+ # export LOG_LEVEL="DEBUG"
+ # log_debug "Debug mode enabled"
+ # shift
+ # ;;
+ --force|-f)
+ FORCE_FILE="true"
+ echo "Force update enabled"
+ shift
+ ;;
+ *)
+ echo "Unknown argument: $1"
+ echo "Usage: chromium-flags.sh [--debug|-d] [--force|-f]"
+ exit 1
+ ;;
+ esac
+ done
+}
+
+parse_args "$@"
+
+# Browser Flags
+
+browser_flags_path=(
+ "$XDG_CONFIG_HOME/chromium-flags.conf" # Chromium
+ "$XDG_CONFIG_HOME/chrome-flags.conf" # Google Chrome
+ "$XDG_CONFIG_HOME/thorium-flags.conf" # Thorium
+ "$XDG_CONFIG_HOME/vivaldi-flags.conf" # Vivaldi
+ "$XDG_CONFIG_HOME/vivaldi-stable.conf" # Vivaldi
+
+)
+
+electron_flags_path=(
+ "$XDG_CONFIG_HOME/electron-flags.conf" # General
+ "$XDG_CONFIG_HOME/code-flags.conf" # VSCode
+ "$XDG_CONFIG_HOME/qq-electron-flags.conf" # QQ
+)
+
+for path in "${browser_flags_path[@]}"; do
+ if [ -f "$path" ] && [ "$FORCE_FILE" != "true" ]; then
+ echo "[INFO] Found Browser Flags: $path"
+ else
+ echo "[INFO] Creating Browser Flags: $path"
+ ln -sf "$BROWSER_FLAG" "$path"
+ fi
+done
+
+for path in "${electron_flags_path[@]}"; do
+ if [ -f "$path" ] && [ "$FORCE_FILE" != "true" ]; then
+ echo "[INFO] Found Electron Flags: $path"
+ else
+ echo "[INFO] Creating Electron Flags: $path"
+ ln -sf "$ELECTRON_FLAG" "$path"
+ fi
+done
diff --git a/platforms/linux/chromium-flags.hypr.conf b/platforms/linux/chromium-flags.hypr.conf
new file mode 100644
index 0000000..60a9ab2
--- /dev/null
+++ b/platforms/linux/chromium-flags.hypr.conf
@@ -0,0 +1,5 @@
+--UseOzonePlatform=wayland
+--ozone-platform=wayland
+--password-store=kwallet6
+--enable-wayland-ime
+--force-device-scale-factor=1.75
diff --git a/platforms/linux/electron-flags.hypr.conf b/platforms/linux/electron-flags.hypr.conf
new file mode 100644
index 0000000..312f3e6
--- /dev/null
+++ b/platforms/linux/electron-flags.hypr.conf
@@ -0,0 +1,5 @@
+--enable-features=WaylandWindowDecorations
+--enable-features=UseOzonePlatform
+--ozone-platform-hint=auto
+--enable-wayland-ime
+--force-device-scale-factor=1.75
diff --git a/platforms/linux/hypr/hypridle.conf b/platforms/linux/hypr/hypridle.conf
index 6451aac..540d279 100644
--- a/platforms/linux/hypr/hypridle.conf
+++ b/platforms/linux/hypr/hypridle.conf
@@ -9,6 +9,6 @@ general {
listener {
timeout = 600 # in seconds
- on-timeout = notify-send "You are idle!" # command to run when timeout has passed
+ on-timeout = swaylock # command to run when timeout has passed
on-resume = notify-send "Welcome back!" # command to run when activity is detected after timeout has fired.
}
diff --git a/platforms/linux/hypr/hyprland.conf b/platforms/linux/hypr/hyprland.conf
index 5330165..0812be1 100644
--- a/platforms/linux/hypr/hyprland.conf
+++ b/platforms/linux/hypr/hyprland.conf
@@ -44,7 +44,7 @@ xwayland {
# monitor=,preferred,auto,auto
# Format:
# MONITOR_NAME,RESOLUTION@REFRESH_RATE,OFFSET_XxOFFSET_Y,SCALE
-monitor=DP-2,3840x2160@60,0x0,1.875
+monitor=DP-2,3840x2160@60,0x0,1.667
###################
@@ -71,10 +71,11 @@ $menu = rofi
# Top Bar
exec-once = waybar &
# Notifications
-exec-once = mako &
+exec-once = dunst &
# exec-once = hyprpanel &
# wallpapers
-exec-once = hyprpaper &
+exec-once = swww-daemon &
+exec-once = hypridle &
# Authentication agent
exec-once = systemctl --user start hyprpolkitagent
# Input Method
@@ -106,8 +107,7 @@ env = QT_QPA_PLATFORMTHEME,qt6ct # for Qt apps
# https://discuss.kde.org/t/the-themes-i-use-with-qt6ct-are-not-applied-in-discover/17118
env = QT_QUICK_CONTROLS_STYLE,org.kde.desktop
-env = LC_CTYPE,zh_CN.UTF-8
-env = LC_ALL,zh_CN.UTF-8
+env = LC_CTYPE,en_GB.UTF-8
#####################
@@ -144,8 +144,8 @@ decoration {
rounding = 10
# Change transparency of focused and unfocused windows
- active_opacity = 1.0
- inactive_opacity = 1.0
+ active_opacity = 0.97
+ inactive_opacity = 0.85
shadow {
enabled = true
@@ -268,8 +268,11 @@ bind = $mainMod, R, exec, $terminal
bind = $mainMod, Q, killactive,
# bind = $mainMod, M, exit,
bind = $mainMod, F, exec, $fileManager
-bind = $mainMod, V, exec, cliphist list | rofi --dmenu | cliphist decode | wl-copy
-bind = $mainMod SHIFT, F, togglefloating
+bind = $mainMod, V, exec, cliphist list | $menu -dmenu | cliphist decode | wl-copy
+bind = $mainMod, W, exec, $menu -show window
+bind = $mainMod SHIFT, F, exec, hyprctl --batch "dispatch togglefloating ; dispatch resizeactive exact 800 1000 ; dispatch centerwindow 1;"
+
+
bind = alt, space, exec, $menu -show drun
bind = $mainMod, P, pseudo, # dwindle
@@ -284,12 +287,14 @@ bind = $mainMod, h, movefocus, l
bind = $mainMod, i, movefocus, r
bind = $mainMod, e, movefocus, u
bind = $mainMod, n, movefocus, d
-bind = $mainMod alt, h, swapwindow, l
-bind = $mainMod alt, i, swapwindow, r
-bind = $mainMod alt, e, swapwindow, u
-bind = $mainMod alt, n, swapwindow, d
+bind = $mainMod SHIFT, h, swapwindow, l
+bind = $mainMod SHIFT, i, swapwindow, r
+bind = $mainMod SHIFT, e, swapwindow, u
+bind = $mainMod SHIFT, n, swapwindow, d
-bind = $mainMod, c, exec, hyprshot -m region -o $HOME/Pictures/Screenshots/
+bind = $mainMod SHIFT, l, exec, swaylock
+
+bind = $mainMod, c, exec, grimblast copysave area $HOME/Pictures/Screenshots/"$(date +%Y%m%d-%H%M%S)"
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
@@ -359,3 +364,5 @@ windowrulev2 = suppressevent maximize, class:.*
# Fix some dragging issues with XWayland
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
+
+windowrulev2 = float, class:qt6ct,
diff --git a/platforms/linux/hypr/hyprpaper.conf b/platforms/linux/hypr/hyprpaper.conf
index 129a0a5..370cf06 100644
--- a/platforms/linux/hypr/hyprpaper.conf
+++ b/platforms/linux/hypr/hyprpaper.conf
@@ -9,4 +9,5 @@
# ln -sf $DOTFILES/platforms/linux/hypr $XDG_CONFIG_HOME/hypr
preload = ~/Pictures/Wallpaper/current.jpg
-wallpaper = DP-2, ~/Pictures/Wallpaper/current.jpg
+preload = ~/Pictures/Wallpaper/current.png
+wallpaper = DP-2, ~/Pictures/Wallpaper/current.png
diff --git a/platforms/linux/kde/kglobalshortcutsrc b/platforms/linux/kde/kglobalshortcutsrc
index a74c408..efa92bc 100644
--- a/platforms/linux/kde/kglobalshortcutsrc
+++ b/platforms/linux/kde/kglobalshortcutsrc
@@ -3,6 +3,14 @@ _k_friendly_name=活动管理器
switch-to-activity-32e1f2d2-08d1-4a8b-886a-0a062f999068=none,none,Switch to activity "Default"
switch-to-activity-e1ebfdac-0f52-47a5-9e7a-d9eb5cc26845=none,none,切换到活动“默认”
+[Clementine]
+_k_friendly_name=Clementine
+next_album=Shift+Media Next,none,Next album
+next_track=none,none,下一个曲目
+play_pause=none,none,播放/暂停
+prev_track=none,none,上一个曲目
+stop=none,none,停止
+
[KDE Keyboard Layout Switcher]
Switch keyboard layout to English (Colemak)=none,none,Switch keyboard layout to English (Colemak)
Switch keyboard layout to English (US)=none,none,Switch keyboard layout to English (US)
@@ -54,6 +62,11 @@ Reboot Without Confirmation=none,,重启 (无需确认)
Shut Down=none,,关机
_k_friendly_name=会话管理
+[ktorrent]
+_k_friendly_name=KTorrent
+queue_suspend=Alt+Shift+P,Alt+Shift+P,暂停种子
+show_kt=Alt+Shift+T,Alt+Shift+T,显示/隐藏 KTorrent
+
[kwin]
Activate Window Demanding Attention=Meta+Ctrl+A,Meta+Ctrl+A,激活请求注意的窗口
Cycle Overview=none,none,循环显示桌面概览和网格视图
diff --git a/platforms/linux/waybar/config b/platforms/linux/waybar/config
deleted file mode 100644
index d8ba47c..0000000
--- a/platforms/linux/waybar/config
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "include": "~/.config/waybar/modules",
- "name": "main-bar",
- "id": "main-bar",
- "layer": "top",
- "mode": "dock",
- "exclusive": true,
- "passthrough": false,
- "position": "top",
- "output": "DP-2",
- "height": 32,
- "width": "",
- "spacing": 6,
- "margin": 0,
- "margin-top": 0,
- "margin-bottom": 0,
- "margin-left": 0,
- "margin-right": 0,
- "fixed-center": true,
- "ipc": true,
- "modules-left": [
- "custom/menu",
- "hyprland/workspaces"
- ],
- // "modules-center": [
- // "hyprland/window",
- // "mpd"
- // ],
- "modules-right": [
- "tray",
- "pulseaudio",
- "custom/weather",
- "battery",
- "clock",
- "custom/power"
- ]
-}
\ No newline at end of file
diff --git a/platforms/linux/waybar/config.jsonc b/platforms/linux/waybar/config.jsonc
new file mode 100644
index 0000000..c4eb83b
--- /dev/null
+++ b/platforms/linux/waybar/config.jsonc
@@ -0,0 +1,213 @@
+// -*- mode: jsonc -*-
+{
+ // "layer": "top", // Waybar at top layer
+ // "position": "bottom", // Waybar position (top|bottom|left|right)
+ "include": [
+ "~/.config/waybar/modules/hyprland-workspace.jsonc"
+ ],
+ "height": 30, // Waybar height (to be removed for auto height)
+ // "width": 1280, // Waybar width
+ "spacing": 4, // Gaps between modules (4px)
+ // Choose the order of the modules
+ "modules-left": [
+ "hyprland/workspaces#rw",
+ "sway/mode",
+ "sway/scratchpad"
+ ],
+ "modules-center": [
+ "hyprland/window"
+ ],
+ "modules-right": [
+ "tray",
+ // "idle_inhibitor",
+ "pulseaudio",
+ "network",
+ // "power-profiles-daemon",
+ "cpu",
+ "memory",
+ "temperature",
+ "backlight",
+ // "hyprland/language",
+ "battery",
+ "clock"
+ ],
+ // Modules configuration
+ // "sway/workspaces": {
+ // "disable-scroll": true,
+ // "all-outputs": true,
+ // "warp-on-scroll": false,
+ // "format": "{name}: {icon}",
+ // "format-icons": {
+ // "1": "",
+ // "2": "",
+ // "3": "",
+ // "4": "",
+ // "5": "",
+ // "urgent": "",
+ // "focused": "",
+ // "default": ""
+ // }
+ // },
+ "keyboard-state": {
+ "numlock": true,
+ "capslock": true,
+ "format": "{name} {icon}",
+ "format-icons": {
+ "locked": "",
+ "unlocked": ""
+ }
+ },
+ "sway/mode": {
+ "format": "{}"
+ },
+ "sway/scratchpad": {
+ "format": "{icon} {count}",
+ "show-empty": false,
+ "format-icons": ["", ""],
+ "tooltip": true,
+ "tooltip-format": "{app}: {title}"
+ },
+ "mpd": {
+ "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ",
+ "format-disconnected": "Disconnected ",
+ "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
+ "unknown-tag": "N/A",
+ "interval": 5,
+ "consume-icons": {
+ "on": " "
+ },
+ "random-icons": {
+ "off": " ",
+ "on": " "
+ },
+ "repeat-icons": {
+ "on": " "
+ },
+ "single-icons": {
+ "on": "1 "
+ },
+ "state-icons": {
+ "paused": "",
+ "playing": ""
+ },
+ "tooltip-format": "MPD (connected)",
+ "tooltip-format-disconnected": "MPD (disconnected)"
+ },
+ "idle_inhibitor": {
+ "format": "{icon}",
+ "format-icons": {
+ "activated": "",
+ "deactivated": ""
+ }
+ },
+ "tray": {
+ // "icon-size": 21,
+ "spacing": 10
+ },
+ "clock": {
+ // "timezone": "America/New_York",
+ "tooltip-format": "{:%Y %B}\n{calendar}",
+ "format-alt": "{:%Y-%m-%d}"
+ },
+ "cpu": {
+ "format": "{usage}% ",
+ "tooltip": false
+ },
+ "memory": {
+ "format": "{}% "
+ },
+ "temperature": {
+ // "thermal-zone": 2,
+ // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
+ "critical-threshold": 80,
+ // "format-critical": "{temperatureC}°C {icon}",
+ "format": "{temperatureC}°C {icon}",
+ "format-icons": ["", "", ""]
+ },
+ "backlight": {
+ // "device": "acpi_video1",
+ "format": "{percent}% {icon}",
+ "format-icons": ["🌑", "🌘", "🌗", "🌖", "🌕"]
+ },
+ "battery": {
+ "states": {
+ // "good": 95,
+ "warning": 30,
+ "critical": 15
+ },
+ "format": "{capacity}% {icon}",
+ "format-full": "{capacity}% {icon}",
+ "format-charging": "{capacity}% ",
+ "format-plugged": "{capacity}% ",
+ "format-alt": "{time} {icon}",
+ // "format-good": "", // An empty format will hide the module
+ // "format-full": "",
+ "format-icons": ["", "", "", "", ""]
+ },
+ "battery#bat2": {
+ "bat": "BAT2"
+ },
+ "power-profiles-daemon": {
+ "format": "{icon}",
+ "tooltip-format": "Power profile: {profile}\nDriver: {driver}",
+ "tooltip": true,
+ "format-icons": {
+ "default": "",
+ "performance": "",
+ "balanced": "",
+ "power-saver": ""
+ }
+ },
+ "network": {
+ // "interface": "wlp2*", // (Optional) To force the use of this interface
+ "format-wifi": "{essid} ({signalStrength}%) ",
+ "format-ethernet": "{ipaddr}/{cidr} ",
+ "tooltip-format": "{ifname} via {gwaddr} ",
+ "format-linked": "{ifname} (No IP) ",
+ "format-disconnected": "Disconnected ⚠",
+ "format-alt": "{ifname}: {ipaddr}/{cidr}"
+ },
+ "pulseaudio": {
+ // "scroll-step": 1, // %, can be a float
+ "format": "{volume}% {icon} {format_source}",
+ "format-bluetooth": "{volume}% {icon} {format_source}",
+ "format-bluetooth-muted": " {icon} {format_source}",
+ "format-muted": " {format_source}",
+ "format-source": "{volume}% ",
+ "format-source-muted": "",
+ "format-icons": {
+ "headphone": "",
+ "hands-free": "",
+ "headset": "",
+ "phone": "",
+ "portable": "",
+ "car": "",
+ "default": ["", "", ""]
+ },
+ "on-click": "pavucontrol"
+ },
+ "custom/media": {
+ "format": "{icon} {}",
+ "return-type": "json",
+ "max-length": 40,
+ "format-icons": {
+ "spotify": "",
+ "default": "🎜"
+ },
+ "escape": true,
+ "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
+ // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
+ },
+ "custom/power": {
+ "format" : "⏻ ",
+ "tooltip": false,
+ "menu": "on-click",
+ "menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder
+ "menu-actions": {
+ "shutdown": "shutdown",
+ "reboot": "reboot",
+ "suspend": "systemctl suspend",
+ "hibernate": "systemctl hibernate"
+ }
+ }
+}
diff --git a/platforms/linux/waybar/modules b/platforms/linux/waybar/modules
deleted file mode 100644
index 48dd848..0000000
--- a/platforms/linux/waybar/modules
+++ /dev/null
@@ -1,149 +0,0 @@
-// Waybar modules configuration
-{
- // waybar-backlight
- "backlight": {
- "interval": 2,
- "align": 0,
- "rotate": 0,
- //"device": "amdgpu_bl0",
- "format": "{icon} {percent}%",
- "format-icons": [
- "",
- "",
- "",
- ""
- ],
- // Commands to execute on events
- "on-click": "",
- "on-click-middle": "",
- "on-click-right": "",
- "on-update": "",
- "on-scroll-up": "light -A 5%",
- "on-scroll-down": "light -U 5%",
- "smooth-scrolling-threshold": 1
- },
- "hyprland/workspaces": {
- "format": "{icon} {windows}",
- "format-window-separator": " ",
- "window-rewrite-default": "",
- "window-rewrite": {
- "title<.*youtube.*>": "",
- "class": "",
- "class<.*wezterm>": "",
- "class": "",
- "class": "",
- "class title<.*github.*>": "",
- "class": "",
- "obsidian": "",
- "foot": "",
- "Cider": "",
- "class": "",
- "code": "",
- "class<.*telegram.*>": "",
- "discord": "",
- "neovide": "",
- "class": "",
- "class<.*wechat.*>": "",
- "QQ": "",
- "class": "",
- "Zotero": "",
- "class": "",
- "class": "",
- }
- },
- // waybar-battery
- "battery": {
- "interval": 60,
- "align": 0,
- "rotate": 0,
- //"bat": "BAT1",
- //"adapter": "ACAD",
- "full-at": 100,
- "design-capacity": false,
- "states": {
- "good": 95,
- "warning": 30,
- "critical": 15
- },
- "format": "{icon} {capacity}%",
- "format-charging": " {capacity}%",
- "format-plugged": " {capacity}%",
- "format-full": "{icon} Full",
- //"format-good": "",
- "format-alt": "{icon} {time}",
- "format-icons": [
- "",
- "",
- "",
- "",
- ""
- ],
- "format-time": "{H}h {M}min",
- "tooltip": true
- },
- // waybar-clock
- "clock": {
- "interval": 1,
- "align": 0,
- "rotate": 0,
- "tooltip-format": "{:%B %Y}\n{calendar}",
- "format": " {:%H:%M:%S}",
- "format-alt": " {:%a %b %d, %G}"
- },
- // waybar-cpu
- "cpu": {
- "interval": 5,
- "format": " {usage}%"
- },
- // waybar-custom
- "custom/menu": {
- "format": " ",
- "tooltip": false,
- "on-click": "wofi"
- },
- "custom/power": {
- "format": "⏻",
- "tooltip": false,
- "on-click": "wlogout"
- },
- // weather-custom
- "custom/weather": {
- "format": "{}",
- "format-alt": "{alt}: {}",
- "format-alt-click": "click-right",
- "interval": 1800,
- "return-type": "json",
- "exec": "~/.config/hypr/scripts/weather.sh",
- "exec-if": "ping wttr.in -c1"
- },
- // waybar-tray
- "tray": {
- "icon-size": 16,
- "spacing": 10
- },
- "pulseaudio": {
- "format": "{volume}% {icon}",
- "format-bluetooth": "{volume}% {icon}",
- "format-muted": "",
- "format-icons": {
- "alsa_output.pci-0000_00_1f.3.analog-stereo": "",
- "alsa_output.pci-0000_00_1f.3.analog-stereo-muted": "",
- "headphone": "",
- "hands-free": "",
- "headset": "",
- "phone": "",
- "phone-muted": "",
- "portable": "",
- "car": "",
- "default": [
- "",
- ""
- ]
- },
- "scroll-step": 1,
- "on-click": "pavucontrol",
- "ignored-sinks": [
- "Easy Effects Sink"
- ]
- }
-}
diff --git a/platforms/linux/waybar/style.css b/platforms/linux/waybar/style.css
index c149fca..d22641d 100644
--- a/platforms/linux/waybar/style.css
+++ b/platforms/linux/waybar/style.css
@@ -1,184 +1,354 @@
-/** ********** Fonts ********** **/
+@define-color rosewater #f5e0dc;
+@define-color flamingo #f2cdcd;
+@define-color pink #f5c2e7;
+@define-color mauve #cba6f7;
+@define-color red #f38ba8;
+@define-color maroon #eba0ac;
+@define-color peach #fab387;
+@define-color yellow #f9e2af;
+@define-color green #a6e3a1;
+@define-color teal #94e2d5;
+@define-color sky #89dceb;
+@define-color sapphire #74c7ec;
+@define-color blue #89b4fa;
+@define-color lavender #b4befe;
+@define-color text #cdd6f4;
+@define-color subtext1 #bac2de;
+@define-color subtext0 #a6adc8;
+@define-color overlay2 #9399b2;
+@define-color overlay1 #7f849c;
+@define-color overlay0 #6c7086;
+@define-color surface2 #585b70;
+@define-color surface1 #45475a;
+@define-color surface0 #313244;
+@define-color base #1e1e2e;
+@define-color mantle #181825;
+@define-color crust #11111b;*
+
* {
- font-family: "JetBrains Mono", "Iosevka Nerd Font", archcraft, sans-serif;
- font-size: 12px;
+ font-family: 'Maple Mono NF SC', 'Noto Sans Mono', 'Font Awesome 6 Free', 'Font Awesome 6 Brands', monospace;
+ font-size: 13px;
}
-/** ********** Waybar Window ********** **/
window#waybar {
- background-color: #1e1e2e;
- color: #1e1e2e;
- border-bottom: 2px solid #313244;
+ /* background-color: rgba(43, 48, 59, 0.5); */
+ /* border-bottom: 3px solid rgba(100, 114, 125, 0.5); */
+ background-color: @base;
+ color: #ffffff;
transition-property: background-color;
transition-duration: .5s;
}
window#waybar.hidden {
- opacity: 0.5;
+ opacity: 0.2;
}
-/** ********** Backlight ********** **/
-#backlight {
- background-color: #cba6f7;
+/*
+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;
+}
+
+button {
+ /* Use box-shadow instead of border so the text isn't offset */
+ box-shadow: inset 0 -3px transparent;
+ /* Avoid rounded borders under each button name */
+ border: none;
+ border-radius: 0;
+}
+
+/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
+button:hover {
+ background: inherit;
+ box-shadow: inset 0 -3px #ffffff;
+}
+
+/* you can set a style on hover for any module like this */
+#pulseaudio:hover {
+ background-color: #a37800;
+}
+
+#workspaces button {
+ padding: 0 5px;
+ background-color: transparent;
+ color: #ffffff;
+}
+
+#workspaces button:hover {
+ background: rgba(0, 0, 0, 0.2);
+}
+
+#workspaces button.focused {
+ background-color: #64727D;
+ box-shadow: inset 0 -3px #ffffff;
+}
+
+#workspaces button.urgent {
+ background-color: #eb4d4b;
+}
+
+#mode {
+ background-color: #64727D;
+ box-shadow: inset 0 -3px #ffffff;
+}
+
+#clock,
+#battery,
+#cpu,
+#memory,
+#disk,
+#temperature,
+#backlight,
+#network,
+#pulseaudio,
+#wireplumber,
+#custom-media,
+#tray,
+#mode,
+#idle_inhibitor,
+#scratchpad,
+#power-profiles-daemon,
+#mpd {
+ padding: 0 10px;
+ color: #ffffff;
+}
+
+#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 ********** **/
#battery {
- background-color: #f9e2af;
+ background-color: #ffffff;
+ color: #000000;
}
-#battery.charging {
-}
-
-#battery.plugged {
+#battery.charging, #battery.plugged {
+ color: #ffffff;
+ background-color: #26A65B;
}
@keyframes blink {
to {
+ background-color: #ffffff;
color: #000000;
}
}
+/* Using steps() instead of linear as a timing function to limit cpu usage */
#battery.critical:not(.charging) {
- background-color: #f38ba8;
- color: #f38ba8;
+ background-color: #f53c3c;
+ color: #ffffff;
animation-name: blink;
animation-duration: 0.5s;
- animation-timing-function: linear;
+ animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
}
-/** ********** Clock ********** **/
-#clock {
- background-color: #a6e3a1;
+#power-profiles-daemon {
+ padding-right: 15px;
+}
+
+#power-profiles-daemon.performance {
+ background-color: #f53c3c;
+ color: #ffffff;
+}
+
+#power-profiles-daemon.balanced {
+ background-color: #2980b9;
+ color: #ffffff;
+}
+
+#power-profiles-daemon.power-saver {
+ background-color: #2ecc71;
+ color: #000000;
+}
+
+label:focus {
+ background-color: #000000;
}
-/** ********** CPU ********** **/
#cpu {
- background-color: #89dceb;
+ background-color: #2ecc71;
+ color: #000000;
}
-/** ********** Memory ********** **/
#memory {
- background-color: #eba0ac;
+ background-color: #9b59b6;
}
-/** ********** Disk ********** **/
#disk {
- background-color: #b4befe;
+ background-color: #964B00;
}
-/** ********** Tray ********** **/
-#tray {
- background-color: #cdd6f4;
+#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;
+}
+
+#wireplumber {
+ background-color: #fff0f5;
+ color: #000000;
+}
+
+#wireplumber.muted {
+ background-color: #f53c3c;
+}
+
+#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;
-}
-#tray > .active {
+ background-color: #eb4d4b;
+}
+
+#idle_inhibitor {
+ background-color: #2d3436;
+}
+
+#idle_inhibitor.activated {
+ background-color: #ecf0f1;
+ color: #2d3436;
}
-/** ********** MPD ********** **/
#mpd {
- background-color: #94e2d5;
+ background-color: #66cc99;
+ color: #2a5c45;
}
#mpd.disconnected {
- background-color: #f38ba8;
+ background-color: #f53c3c;
}
#mpd.stopped {
- background-color: #f5c2e7;
-}
-
-#mpd.playing {
- background-color: #74c7ec;
+ background-color: #90b1b1;
}
#mpd.paused {
+ background-color: #51a37a;
}
-/** ********** Pulseaudio ********** **/
-#pulseaudio {
- background-color: #fab387;
+#language {
+ background: #00b093;
+ color: #740864;
+ padding: 0 5px;
+ margin: 0 5px;
+ min-width: 16px;
}
-#pulseaudio.bluetooth {
- background-color: #f5c2e7;
-}
-#pulseaudio.muted {
- background-color: #313244;
- color: #cdd6f4;
+#keyboard-state {
+ background: #97e1ad;
+ color: #000000;
+ padding: 0 0px;
+ margin: 0 5px;
+ min-width: 16px;
}
-/** ********** Network ********** **/
-#network {
- background-color: #89b4fa;
+#keyboard-state > label {
+ padding: 0 5px;
}
-#network.disconnected,#network.disabled {
- background-color: #313244;
- color: #cdd6f4;
-}
-#network.linked {
-}
-#network.ethernet {
-}
-#network.wifi {
+#keyboard-state > label.locked {
+ background: rgba(0, 0, 0, 0.2);
}
-/** ********** Custom ********** **/
-#custom-menu, #custom-power, #custom-weather, #custom-updater {
- border-radius: 4px;
- margin: 6px 0px;
- padding: 2px 8px;
+#scratchpad {
+ background: rgba(0, 0, 0, 0.2);
}
-#custom-menu {
- background-color: #f5c2e7;
- margin-left: 6px;
- padding: 2px 6px;
- font-size: 16px;
+#scratchpad.empty {
+ background-color: transparent;
}
-#custom-power {
- background-color: #f38ba8;
- margin-right: 6px;
- padding: 2px 8px;
- font-size: 16px;
+#privacy {
+ padding: 0;
}
-#custom-updater {
- background-color: #e6ed7b;
- margin-right: 6px;
- padding: 2px 8px;
- font-size: 12px;
+#privacy-item {
+ padding: 0 5px;
+ color: white;
}
-#custom-weather {
- background-color: #cba6f7;
- margin-right: 6px;
- padding: 2px 8px;
- font-size: 12px;
+#privacy-item.screenshare {
+ background-color: #cf5700;
}
-/** Common style **/
-#backlight,
-#battery,
-#clock,
-#cpu,
-#disk,
-#mode,
-#memory,
-#mpd,
-#tray,
-#pulseaudio,
-#network {
- border-radius: 4px;
- margin: 6px 0px;
- padding: 2px 8px;
+#privacy-item.audio-in {
+ background-color: #1ca000;
+}
+
+#privacy-item.audio-out {
+ background-color: #0069d4;
}