config 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. // =============================================================================
  2. //
  3. // Waybar configuration
  4. //
  5. // Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration
  6. //
  7. // =============================================================================
  8. {
  9. // -------------------------------------------------------------------------
  10. // Global configuration
  11. // -------------------------------------------------------------------------
  12. "layer": "top",
  13. "position": "top",
  14. // If height property would be not present, it'd be calculated dynamically
  15. "height": 30,
  16. "modules-left": [
  17. "sway/workspaces",
  18. "sway/mode"
  19. ],
  20. "modules-center": [
  21. "sway/window"
  22. ],
  23. "modules-right": [
  24. "custom/brightness",
  25. "pulseaudio",
  26. "network",
  27. "memory",
  28. "cpu",
  29. "custom/keyboard-layout",
  30. "tray",
  31. "clock#date",
  32. "clock#time"
  33. ],
  34. // -------------------------------------------------------------------------
  35. // Modules
  36. // -------------------------------------------------------------------------
  37. "custom/brightness": {
  38. "exec": "~/.config/sway/scripts/get-monitor-brightness.sh",
  39. "return-type": "json",
  40. "interval": 2,
  41. "on-click": "~/.config/sway/scripts/brightness-slider.sh",
  42. "on-scroll-up": "ddcutil setvcp --sn 6L1M413 10 + 5 && pkill -RTMIN+8 waybar",
  43. "on-scroll-down": "ddcutil setvcp --sn 6L1M413 10 - 5 && pkill -RTMIN+8 waybar",
  44. // "signal": 8,
  45. "format": "🖵 {}",
  46. "smooth-scrolling-threshold": 1
  47. },
  48. "battery": {
  49. "interval": 10,
  50. "states": {
  51. "warning": 30,
  52. "critical": 15
  53. },
  54. // Connected to AC
  55. "format": " {icon} {capacity}%", // Icon: bolt
  56. // Not connected to AC
  57. "format-discharging": "{icon} {capacity}%",
  58. "format-icons": [
  59. "", // Icon: battery-full
  60. "", // Icon: battery-three-quarters
  61. "", // Icon: battery-half
  62. "", // Icon: battery-quarter
  63. "" // Icon: battery-empty
  64. ],
  65. "tooltip": true
  66. },
  67. "clock#time": {
  68. "interval": 1,
  69. "format": "{:%H:%M:%S}",
  70. "tooltip": false
  71. },
  72. "clock#date": {
  73. "interval": 10,
  74. "format": " {:%e %b %Y}", // Icon: calendar-alt
  75. "tooltip-format": "{:%e %B %Y}"
  76. },
  77. "cpu": {
  78. "interval": 5,
  79. "format": " {usage}% ({load})", // Icon: microchip
  80. "states": {
  81. "warning": 70,
  82. "critical": 90
  83. }
  84. },
  85. "custom/keyboard-layout": {
  86. "exec": "swaymsg -t get_inputs | grep -m1 'xkb_active_layout_name' | cut -d '\"' -f4",
  87. // Interval set only as a fallback, as the value is updated by signal
  88. "interval": 30,
  89. "format": " {}", // Icon: keyboard
  90. // Signal sent by Sway key binding (~/.config/sway/key-bindings)
  91. "signal": 1, // SIGHUP
  92. "tooltip": false
  93. },
  94. "memory": {
  95. "interval": 5,
  96. "format": " {}%", // Icon: memory
  97. "states": {
  98. "warning": 70,
  99. "critical": 90
  100. }
  101. },
  102. "network": {
  103. "interval": 5,
  104. "format-wifi": " {essid} ({signalStrength}%)", // Icon: wifi
  105. "format-ethernet": " {ifname}: {ipaddr}/{cidr}", // Icon: ethernet
  106. "format-disconnected": "⚠ Disconnected",
  107. "tooltip-format": "{ifname}: {ipaddr}",
  108. "on-click": "~/.config/waybar/scripts/iwd-connect.sh"
  109. },
  110. "sway/mode": {
  111. "format": "<span style=\"italic\"> {}</span>", // Icon: expand-arrows-alt
  112. "tooltip": false
  113. },
  114. "sway/window": {
  115. "format": "{}",
  116. "max-length": 120
  117. },
  118. "sway/workspaces": {
  119. "all-outputs": false,
  120. "disable-scroll": true,
  121. "format": "{icon} {name}",
  122. "format-icons": {
  123. "1:www": "龜", // Icon: firefox-browser
  124. "2:mail": "", // Icon: mail
  125. "3:editor": "", // Icon: code
  126. "4:terminals": "", // Icon: terminal
  127. "5:portal": "", // Icon: terminal
  128. "urgent": "",
  129. "focused": "",
  130. "default": ""
  131. }
  132. },
  133. "pulseaudio": {
  134. //"scroll-step": 1,
  135. "format": "{icon} {volume}%",
  136. "format-bluetooth": "{icon} {volume}%",
  137. "format-muted": "",
  138. "format-icons": {
  139. "headphones": "",
  140. "handsfree": "",
  141. "headset": "",
  142. "phone": "",
  143. "portable": "",
  144. "car": "",
  145. "default": ["", ""]
  146. },
  147. "on-click": "pavucontrol"
  148. },
  149. "temperature": {
  150. "critical-threshold": 80,
  151. "interval": 5,
  152. "format": "{icon} {temperatureC}°C",
  153. "format-icons": [
  154. "", // Icon: temperature-empty
  155. "", // Icon: temperature-quarter
  156. "", // Icon: temperature-half
  157. "", // Icon: temperature-three-quarters
  158. "" // Icon: temperature-full
  159. ],
  160. "tooltip": true
  161. },
  162. "tray": {
  163. "icon-size": 21,
  164. "spacing": 10
  165. }
  166. }