config 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  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. },
  109. "sway/mode": {
  110. "format": "<span style=\"italic\"> {}</span>", // Icon: expand-arrows-alt
  111. "tooltip": false
  112. },
  113. "sway/window": {
  114. "format": "{}",
  115. "max-length": 120
  116. },
  117. "sway/workspaces": {
  118. "all-outputs": false,
  119. "disable-scroll": true,
  120. "format": "{icon} {name}",
  121. "format-icons": {
  122. "1:www": "龜", // Icon: firefox-browser
  123. "2:mail": "", // Icon: mail
  124. "3:editor": "", // Icon: code
  125. "4:terminals": "", // Icon: terminal
  126. "5:portal": "", // Icon: terminal
  127. "urgent": "",
  128. "focused": "",
  129. "default": ""
  130. }
  131. },
  132. "pulseaudio": {
  133. //"scroll-step": 1,
  134. "format": "{icon} {volume}%",
  135. "format-bluetooth": "{icon} {volume}%",
  136. "format-muted": "",
  137. "format-icons": {
  138. "headphones": "",
  139. "handsfree": "",
  140. "headset": "",
  141. "phone": "",
  142. "portable": "",
  143. "car": "",
  144. "default": ["", ""]
  145. },
  146. "on-click": "pavucontrol"
  147. },
  148. "temperature": {
  149. "critical-threshold": 80,
  150. "interval": 5,
  151. "format": "{icon} {temperatureC}°C",
  152. "format-icons": [
  153. "", // Icon: temperature-empty
  154. "", // Icon: temperature-quarter
  155. "", // Icon: temperature-half
  156. "", // Icon: temperature-three-quarters
  157. "" // Icon: temperature-full
  158. ],
  159. "tooltip": true
  160. },
  161. "tray": {
  162. "icon-size": 21,
  163. "spacing": 10
  164. }
  165. }