CLI config/dotfiles
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
1.5 KiB

  1. #! /bin/sh
  2. #
  3. # Panel output config for lemonbar
  4. while read -r line ; do
  5. case $line in
  6. S*)
  7. # clock output
  8. sys_infos="%{F-}${line#?}%{F-}"
  9. ;;
  10. T*)
  11. # xtitle output
  12. title="%{F-}${line#?}%{F-}"
  13. ;;
  14. W*)
  15. # bspwm state
  16. wm_infos=""
  17. IFS=':'
  18. set -- ${line#?}
  19. while [ $# -gt 0 ] ; do
  20. item=$1
  21. name=${item#?}
  22. case $item in
  23. [mM]*)
  24. case $item in
  25. m*)
  26. on_focused_monitor=
  27. ;;
  28. M*)
  29. on_focused_monitor=1
  30. ;;
  31. esac
  32. wm_infos="$wm_infos%{F-} %{F-}"
  33. ;;
  34. [fFoOuU]*)
  35. wm_infos="${wm_infos}%{A:bspc desktop -f ${name}:}"
  36. case $item in
  37. [OF]*)
  38. if [ "$on_focused_monitor" ]; then
  39. # focused desktop
  40. wm_infos="$wm_infos%{F#EEFFFF} ● %{F-}"
  41. else
  42. # active desktop
  43. wm_infos="$wm_infos%{F#FAE7BF} ● %{F-}"
  44. fi
  45. ;;
  46. U*)
  47. # urgent focused desktop
  48. wm_infos="$wm_infos%{F#FF0000} ● %{F-}"
  49. ;;
  50. o*)
  51. # inactive but occupied desktop
  52. wm_infos="$wm_infos%{F-} ● %{F-}"
  53. ;;
  54. f*)
  55. # inactive desktop
  56. wm_infos="$wm_infos%{F-} ○ %{F-}"
  57. ;;
  58. u*)
  59. # urgent desktop
  60. wm_infos="$wm_infos%{F#FF0000} ○ %{F-}"
  61. ;;
  62. esac
  63. wm_infos="${wm_infos}%{A}"
  64. ;;
  65. esac
  66. shift
  67. done
  68. wm_infos="$wm_infos%{F-} %{F-}"
  69. ;;
  70. esac
  71. printf "%s\n" "%{S+}%{l}%{A:sysmenu:}  %{A}$title%{c}$wm_infos%{r}%{A:togglecal:}$sys_infos%{A} %{A:powermenu:}⏻%{A} "
  72. done