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.

71 lines
1.4 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. case $item in
  36. [OF]*)
  37. if [ "$on_focused_monitor" ]; then
  38. # focused desktop
  39. wm_infos="$wm_infos%{F#EEFFFF} ● %{F-}"
  40. else
  41. # active desktop
  42. wm_infos="$wm_infos%{F#FAE7BF} ● %{F-}"
  43. fi
  44. ;;
  45. U*)
  46. # urgent focused desktop
  47. wm_infos="$wm_infos%{F#FF0000} ● %{F-}"
  48. ;;
  49. o*)
  50. # inactive but occupied desktop
  51. wm_infos="$wm_infos%{F-} ● %{F-}"
  52. ;;
  53. f*)
  54. # inactive desktop
  55. wm_infos="$wm_infos%{F-} ○ %{F-}"
  56. ;;
  57. u*)
  58. # urgent desktop
  59. wm_infos="$wm_infos%{F#FF0000} ○ %{F-}"
  60. ;;
  61. esac
  62. ;;
  63. esac
  64. shift
  65. done
  66. wm_infos="$wm_infos%{F-} %{F-}"
  67. ;;
  68. esac
  69. printf "%s\n" "%{S+}%{l}  $title%{c}$wm_infos%{r}%{A:togglecal:}$sys_infos%{A} ⏻ "
  70. done