850 lines
21 KiB
Org Mode
850 lines
21 KiB
Org Mode
#+TITLE: Polybar Configuration
|
|
:DRAWER:
|
|
#+STARTUP: overview
|
|
|
|
#+LANGUAGE: en
|
|
#+EMAIL: dehaeze.thomas@gmail.com
|
|
#+AUTHOR: Dehaeze Thomas
|
|
|
|
#+HTML_LINK_HOME: ./index.html
|
|
#+HTML_LINK_UP: ./index.html
|
|
|
|
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="./css/htmlize.css"/>
|
|
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="./css/readtheorg.css"/>
|
|
#+HTML_HEAD: <script type="text/javascript" src="./js/jquery.min.js"></script>
|
|
#+HTML_HEAD: <script type="text/javascript" src="./js/bootstrap.min.js"></script>
|
|
#+HTML_HEAD: <script type="text/javascript" src="./js/jquery.stickytableheaders.min.js"></script>
|
|
#+HTML_HEAD: <script type="text/javascript" src="./js/readtheorg.js"></script>
|
|
|
|
#+PROPERTY: header-args :comments no
|
|
#+PROPERTY: header-args+ :mkdirp yes
|
|
#+PROPERTY: header-args+ :tangle ~/.config/polybar/config
|
|
:END:
|
|
|
|
* Colors
|
|
#+begin_src conf
|
|
[colors]
|
|
bg = ${xrdb:background}
|
|
red = ${xrdb:color1}
|
|
green = ${xrdb:color2}
|
|
yellow = ${xrdb:color3}
|
|
blue = ${xrdb:color4}
|
|
purple = ${xrdb:color5}
|
|
aqua = ${xrdb:color6}
|
|
gray = ${colors.color7}
|
|
darkgray = ${colors.color8}
|
|
darkred = ${xrdb:color9}
|
|
darkgreen = ${xrdb:color10}
|
|
darkyellow = ${xrdb:color11}
|
|
darkblue = ${xrdb:color12}
|
|
darkpurple = ${xrdb:color13}
|
|
darkaqua = ${xrdb:color14}
|
|
fg = ${xrdb:foreground}
|
|
#+end_src
|
|
|
|
* VM
|
|
#+begin_src conf
|
|
[global/wm]
|
|
margin-top = 0
|
|
margin-bottom = 0
|
|
#+end_src
|
|
|
|
* Top Bar
|
|
#+BEGIN_SRC conf
|
|
[bar/top]
|
|
enable-ipc = true
|
|
override-redirect = false
|
|
bottom = false
|
|
fixed-center = false
|
|
|
|
width = 100%
|
|
height = 27
|
|
radius = 0.0
|
|
|
|
background = ${colors.bg}
|
|
foreground = ${colors.fg}
|
|
|
|
line-size = 2
|
|
|
|
border-size = 0
|
|
|
|
padding-left = 2
|
|
padding-right = 12
|
|
|
|
module-margin-left = 1
|
|
module-margin-right = 1
|
|
|
|
font-0 = Hack Nerd Font:style=Medium,Regular:pixelsize=10;1
|
|
font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
|
|
font-2 = Weather Icons:size=10;1
|
|
|
|
modules-left = i3 bspwm xwindow
|
|
modules-center =
|
|
modules-right = pulseaudio xbacklight redshift wireguard nordvpn lockscreen dunst packages unread_news unread_mail temperature battery date
|
|
|
|
wm-restack = i3
|
|
|
|
tray-position = right
|
|
tray-detached = true
|
|
tray-padding = 0
|
|
tray-background = ${colors.bg}
|
|
#+END_SRC
|
|
|
|
* Show Windows Title
|
|
#+BEGIN_SRC conf
|
|
[module/xwindow]
|
|
type = internal/xwindow
|
|
label = %title:0:30:...%
|
|
#+END_SRC
|
|
|
|
* I3 - Information about workspaces and active one
|
|
#+BEGIN_SRC conf
|
|
[module/i3]
|
|
type = internal/i3
|
|
|
|
enable-scroll = false
|
|
wrapping-scroll = false
|
|
#+END_SRC
|
|
|
|
#+BEGIN_SRC conf
|
|
format = <label-state> <label-mode>
|
|
index-sort = true
|
|
#+END_SRC
|
|
|
|
#+BEGIN_SRC conf
|
|
label-mode-foreground = ${colors.bg}
|
|
label-mode-background = ${colors.fg}
|
|
label-mode-padding = 1
|
|
|
|
# focused = Active workspace on focused monitor
|
|
label-focused = %icon% %index%
|
|
label-focused-foreground = ${colors.fg}
|
|
label-focused-background = ${colors.bg}
|
|
label-focused-underline = ${colors.aqua}
|
|
label-focused-padding = 1
|
|
|
|
# unfocused = Inactive workspace on any monitor
|
|
label-unfocused = %icon% %index%
|
|
label-unfocused-foreground = ${colors.fg}
|
|
label-unfocused-background = ${colors.bg}
|
|
label-unfocused-underline = ${colors.bg}
|
|
label-unfocused-padding = 1
|
|
|
|
# visible = Active workspace on unfocused monitor
|
|
label-visible = %icon% %index%
|
|
label-visible-background = ${colors.bg}
|
|
label-visible-underline = ${colors.aqua}
|
|
label-visible-padding = 1
|
|
|
|
# urgent = Workspace with urgency hint set
|
|
label-urgent = %icon% %index%
|
|
label-urgent-background = ${colors.red}
|
|
label-urgent-padding = 1
|
|
#+END_SRC
|
|
|
|
* BSPWM
|
|
#+begin_src conf
|
|
[module/bspwm]
|
|
type = internal/bspwm
|
|
|
|
pin-workspaces = true
|
|
enable-click = true
|
|
enable-scroll = false
|
|
|
|
; Use fuzzy (partial) matching on labels when assigning
|
|
; icons to workspaces
|
|
; Example: code;♚ will apply the icon to all workspaces
|
|
; containing 'code' in the label
|
|
fuzzy-match = false
|
|
|
|
|
|
ws-icon-0 = code;
|
|
ws-icon-1 = web;
|
|
ws-icon-2 = mail;
|
|
ws-icon-3 = misc;
|
|
ws-icon-4 = figs;ﬧ
|
|
ws-icon-default =
|
|
|
|
label-focused = %icon%
|
|
label-focused-foreground = ${colors.bg}
|
|
label-focused-background = ${colors.aqua}
|
|
label-focused-underline= ${colors.aqua}
|
|
label-focused-padding = 1
|
|
|
|
label-occupied = %icon%
|
|
label-occupied-underline = ${colors.fg}
|
|
label-occupied-padding = 1
|
|
|
|
label-urgent = %icon%
|
|
label-urgent-background = ${colors.red}
|
|
label-urgent-padding = 1
|
|
|
|
label-empty = %icon%
|
|
label-empty-foreground = ${colors.fg}
|
|
label-empty-padding = 1
|
|
#+end_src
|
|
|
|
* Music using MPD
|
|
#+BEGIN_SRC conf
|
|
[module/mpd]
|
|
type = internal/mpd
|
|
format-online = <icon-prev> <toggle> <icon-next> %{A1:$TERMINAL -e "ncmpcpp" &:}<label-song>%{A}
|
|
|
|
format-online-spacing = 0
|
|
format-online-padding = 0
|
|
|
|
label-offline = mpd is offline
|
|
format-offline = <label-offline>
|
|
format-offline-foreground = #777
|
|
|
|
label-song = %artist% - %title%
|
|
label-song-maxlen = 30
|
|
label-song-ellipsis = true
|
|
|
|
icon-prev = 寧
|
|
icon-stop = 栗
|
|
icon-play = 契
|
|
icon-pause =
|
|
icon-next = 嶺
|
|
icon-random = 咽
|
|
icon-repeat = 凌
|
|
|
|
# Used to display the state of random/repeat/repeatone/single
|
|
# Only applies if <icon-[random|repeat|repeatone|single]> is used
|
|
toggle-on-foreground = ${colors.fg}
|
|
toggle-off-foreground = ${colors.gray}
|
|
|
|
bar-progress-width = 15
|
|
bar-progress-indicator = |
|
|
bar-progress-fill = ─
|
|
bar-progress-empty = ─
|
|
#+END_SRC
|
|
|
|
* Backlight level
|
|
#+BEGIN_SRC conf
|
|
[module/xbacklight]
|
|
type = internal/xbacklight
|
|
|
|
format = <ramp>
|
|
ramp-0 =
|
|
ramp-1 =
|
|
ramp-2 =
|
|
ramp-3 =
|
|
ramp-4 =
|
|
ramp-5 =
|
|
ramp-6 =
|
|
ramp-7 =
|
|
ramp-8 =
|
|
ramp-9 =
|
|
ramp-10 =
|
|
ramp-11 =
|
|
#+END_SRC
|
|
|
|
* CPU Usage
|
|
#+BEGIN_SRC conf
|
|
[module/cpu]
|
|
type = internal/cpu
|
|
interval = 2
|
|
|
|
format-prefix-foreground = ${colors.fg}
|
|
format-underline = ${colors.bg}
|
|
|
|
label = %{A1:$TERMINAL -e "htop" &:} %percentage:2%%%{A}
|
|
#+END_SRC
|
|
|
|
* Date
|
|
#+BEGIN_SRC conf
|
|
[module/date]
|
|
type = internal/date
|
|
interval = 1
|
|
|
|
# Open google calendar on left right
|
|
date = %{A1:$TERMINAL -e "ikhal" &:} %d-%m%{A}
|
|
date-alt = "%{A1:$TERMINAL -e \"ikhal\" &:} %d-%m-%Y%{A}"
|
|
|
|
time = %H:%M
|
|
time-alt = %H:%M:%S
|
|
|
|
label = %date% %time%
|
|
#+END_SRC
|
|
|
|
* Sound Volume
|
|
#+BEGIN_SRC conf
|
|
[module/pulseaudio]
|
|
type = internal/pulseaudio
|
|
|
|
sink = alsa_output.pci-0000_00_1f.3.analog-stereo
|
|
|
|
# Open pavucontrol on left right
|
|
format-volume =%{A1:pavucontrol &:}<label-volume> <bar-volume>%{A}
|
|
|
|
label-volume = %percentage%%
|
|
label-volume-foreground = ${root.foreground}
|
|
|
|
label-muted = ﱝ muted
|
|
|
|
bar-volume-width = 10
|
|
bar-volume-foreground-0 = ${colors.green}
|
|
bar-volume-foreground-1 = ${colors.green}
|
|
bar-volume-foreground-2 = ${colors.blue}
|
|
bar-volume-foreground-3 = ${colors.blue}
|
|
bar-volume-foreground-4 = ${colors.red}
|
|
bar-volume-foreground-5 = ${colors.red}
|
|
bar-volume-foreground-6 = ${colors.red}
|
|
bar-volume-gradient = false
|
|
bar-volume-indicator = |
|
|
bar-volume-indicator-font = 2
|
|
bar-volume-fill = ─
|
|
bar-volume-fill-font = 2
|
|
bar-volume-empty = ─
|
|
bar-volume-empty-font = 2
|
|
bar-volume-empty-foreground = ${colors.fg}
|
|
#+END_SRC
|
|
|
|
* Battery
|
|
#+BEGIN_SRC conf
|
|
[module/battery]
|
|
type = internal/battery
|
|
|
|
battery = BAT0
|
|
adapter = AC
|
|
full-at = 95
|
|
|
|
format-charging = %{A1:xfce4-power-manager-settings &:}<ramp-capacity> <label-charging>%{A}
|
|
format-charging-underline = ${colors.blue}
|
|
|
|
format-discharging = %{A1:xfce4-power-manager-settings &:}<ramp-capacity> <label-discharging>%{A}
|
|
format-discharging-underline = ${colors.red}
|
|
|
|
label-full = %{A1:xfce4-power-manager-settings &:} %{A}
|
|
format-full-underline = ${colors.bg}
|
|
|
|
ramp-capacity-0 =
|
|
ramp-capacity-1 =
|
|
ramp-capacity-2 =
|
|
ramp-capacity-3 =
|
|
ramp-capacity-4 =
|
|
#+END_SRC
|
|
|
|
* Temperature
|
|
#+begin_src conf
|
|
[module/temperature]
|
|
type = internal/temperature
|
|
interval = 2
|
|
thermal-zone = 0
|
|
warn-temperature = 70
|
|
hwmon-path = /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input
|
|
units = false
|
|
format = %{A1:$TERMINAL --class="Floating" -e "watch sensors" &:}<ramp> <label>%{A}
|
|
format-warn = <ramp> <label-warn>
|
|
label = %temperature-c%°C
|
|
label-warn = %temperature-c%°C
|
|
label-warn-foreground = ${colors.fg}
|
|
format-warn-underline = ${colors.red}
|
|
ramp-0 =
|
|
ramp-1 =
|
|
ramp-2 =
|
|
ramp-3 =
|
|
ramp-4 =
|
|
ramp-foreground = ${colors.fg}
|
|
#+end_src
|
|
|
|
* Unread Mails
|
|
#+BEGIN_SRC conf
|
|
[module/unread_mail]
|
|
type = custom/script
|
|
|
|
format-underline = ${colors.bg}
|
|
click-left = ~/.config/polybar/scripts/mail-open.sh >/dev/null 2>%1 &
|
|
click-right = ~/.config/polybar/scripts/mail-refresh.sh >/dev/null 2>%1 &
|
|
format = <label>
|
|
exec = ~/.config/polybar/scripts/mail-status.sh
|
|
interval = 2
|
|
#+END_SRC
|
|
|
|
** Unread Mail Scripts
|
|
:PROPERTIES:
|
|
:header-args: :tangle ~/.config/polybar/scripts/mail-status.sh
|
|
:header-args+: :comments both :mkdirp yes
|
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
|
:END:
|
|
#+begin_src bash
|
|
mail_nb=`du -a ~/.mail/*/Inbox/new/* 2>/dev/null | wc -l`
|
|
|
|
if [ "$mail_nb" -eq "0" ]; then
|
|
echo "";
|
|
else
|
|
echo "%{F#859900} $mail_nb%{F-}";
|
|
fi
|
|
#+end_src
|
|
|
|
** Refresh Mail Scripts
|
|
:PROPERTIES:
|
|
:header-args: :tangle ~/.config/polybar/scripts/mail-refresh.sh
|
|
:header-args+: :comments both :mkdirp yes
|
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
|
:END:
|
|
#+begin_src bash
|
|
dunstify --replace=98465 "Mails " "Syncing...";
|
|
checkmail -q && \
|
|
mail_nb=`du -a ~/.mail/*/Inbox/new/* 2>/dev/null | wc -l` && \
|
|
if [ "$mail_nb" -eq "0" ]; then
|
|
dunstify --replace=98465 "Mails " "No new mail";
|
|
fi
|
|
#+end_src
|
|
|
|
** Open Mails
|
|
:PROPERTIES:
|
|
:header-args: :tangle ~/.config/polybar/scripts/mail-open.sh
|
|
:header-args+: :comments both :mkdirp yes
|
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
|
:END:
|
|
#+begin_src bash
|
|
$TERMINAL -e "tmux new-session -A -s neomutt neomutt"
|
|
#+end_src
|
|
|
|
* Unread News
|
|
#+BEGIN_SRC conf
|
|
[module/unread_news]
|
|
type = custom/script
|
|
|
|
format-underline = ${colors.bg}
|
|
click-left = ~/.config/polybar/scripts/news-open.sh >/dev/null 2>%1 &
|
|
click-right = ~/.config/polybar/scripts/news-refresh.sh >/dev/null 2>%1 &
|
|
format = <label>
|
|
exec = ~/.config/polybar/scripts/news-status.sh
|
|
interval = 60
|
|
#+END_SRC
|
|
|
|
** Unread News Scripts
|
|
:PROPERTIES:
|
|
:header-args: :tangle ~/.config/polybar/scripts/news-status.sh
|
|
:header-args+: :comments both :mkdirp yes
|
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
|
:END:
|
|
#+begin_src bash
|
|
news_nb=`newsboat -x print-unread 2>/dev/null | cut -d " " -f1`
|
|
|
|
if [ -z "$news_nb" ] || [ "$news_nb" -eq "0" ]; then
|
|
echo "";
|
|
else
|
|
echo "%{F#859900} $news_nb%{F-}";
|
|
fi
|
|
#+end_src
|
|
|
|
** Refresh News Scripts
|
|
:PROPERTIES:
|
|
:header-args: :tangle ~/.config/polybar/scripts/news-refresh.sh
|
|
:header-args+: :comments both :mkdirp yes
|
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
|
:END:
|
|
#+begin_src bash
|
|
dunstify --replace=38492 "Newsboat " "Reloading...";
|
|
|
|
if pgrep -x "newsboat" >/dev/null; then
|
|
# If newsboat is already running, try to refresh in the tmux session
|
|
tmux send-keys -t newsboat R
|
|
else
|
|
newsboat -x reload && /
|
|
news_nb=`newsboat -x print-unread | cut -d " " -f1` && \
|
|
dunstify --replace=38492 "Newsboat " "$news_nb Unread News";
|
|
fi
|
|
#+end_src
|
|
|
|
** Open Newsboat
|
|
:PROPERTIES:
|
|
:header-args: :tangle ~/.config/polybar/scripts/news-open.sh
|
|
:header-args+: :comments both :mkdirp yes
|
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
|
:END:
|
|
#+begin_src bash
|
|
$TERMINAL -e "tmux new-session -A -s newsboat newsboat"
|
|
#+end_src
|
|
|
|
* Redshift
|
|
#+BEGIN_SRC conf
|
|
[module/redshift]
|
|
type = custom/script
|
|
|
|
format-underline = ${colors.bg}
|
|
click-left = ~/.config/polybar/scripts/redshift-toggle.sh >/dev/null 2>%1 &
|
|
format = <label>
|
|
exec = ~/.config/polybar/scripts/redshift-status.sh
|
|
interval = 2
|
|
#+END_SRC
|
|
|
|
** Redshift - Status
|
|
:PROPERTIES:
|
|
:header-args: :tangle ~/.config/polybar/scripts/redshift-status.sh
|
|
:header-args+: :comments both :mkdirp yes
|
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
|
:END:
|
|
#+begin_src bash
|
|
if pgrep -x "redshift" >/dev/null; then
|
|
echo "望";
|
|
else
|
|
echo "盛";
|
|
fi
|
|
#+end_src
|
|
|
|
** Toggle Redshift
|
|
:PROPERTIES:
|
|
:header-args: :tangle ~/.config/polybar/scripts/redshift-toggle.sh
|
|
:header-args+: :comments both :mkdirp yes
|
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
|
:END:
|
|
#+begin_src bash
|
|
if pgrep -x "redshift" >/dev/null; then
|
|
killall redshift && \
|
|
dunstify --replace=36492 "Redshift 望" "Turned off";
|
|
else
|
|
nohup redshift > /dev/null 2>&1 &
|
|
dunstify --replace=36492 "Redshift 望" "Starting...";
|
|
fi
|
|
#+end_src
|
|
|
|
* NordVPN
|
|
#+BEGIN_SRC conf
|
|
[module/nordvpn]
|
|
type = custom/script
|
|
|
|
format-underline = ${colors.bg}
|
|
click-left = ~/.config/polybar/scripts/nordvpn-toggle.sh >/dev/null 2>%1 &
|
|
format = <label>
|
|
exec = ~/.config/polybar/scripts/nordvpn-status.sh
|
|
interval = 2
|
|
#+END_SRC
|
|
|
|
** Nordvpn Status script
|
|
:PROPERTIES:
|
|
:header-args: :tangle ~/.config/polybar/scripts/nordvpn-status.sh
|
|
:header-args+: :comments both :mkdirp yes
|
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
|
:END:
|
|
|
|
#+BEGIN_SRC bash
|
|
tmpfile="/tmp/vpnstatus";
|
|
|
|
if [ -f $tmpfile ] && grep -q "on" $tmpfile; then
|
|
echo "%{F#859900}%{F-}";
|
|
else
|
|
echo "";
|
|
fi
|
|
#+END_SRC
|
|
|
|
** Nordvpn Toggle
|
|
:PROPERTIES:
|
|
:header-args: :tangle ~/.config/polybar/scripts/nordvpn-toggle.sh
|
|
:header-args+: :comments both :mkdirp yes
|
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
|
:END:
|
|
#+BEGIN_SRC bash
|
|
tmpfile="/tmp/vpnstatus";
|
|
|
|
if [ -f $tmpfile ] && grep -q "on" $tmpfile; then
|
|
nordvpn disconnect && \
|
|
dunstify --replace=23198 "VPN" "Disconnected" && \
|
|
echo "off" > $tmpfile;
|
|
else
|
|
country=`cat ~/.local/data/nordvpn_countries.txt | sed 's/\s*\t\s*/ /g ; s/\s/\n/g ; s/_/ /g ; /^[a-zA-Z]/!d ; s/\(.*\)/\L\1/' | rofi -i -dmenu | sed 's/\s/_/g'`;
|
|
dunstify --replace=23198 "VPN" "Connecting to $country...";
|
|
nordvpn connect $country && \
|
|
dunstify --replace=23198 "VPN" "Connected to $country" && \
|
|
echo "on" > $tmpfile;
|
|
fi
|
|
#+END_SRC
|
|
|
|
* Packages
|
|
#+BEGIN_SRC conf
|
|
[module/packages]
|
|
type = custom/script
|
|
|
|
format-underline = ${colors.bg}
|
|
click-left = ~/.config/polybar/scripts/packages-update.sh >/dev/null 2>%1 &
|
|
click-right = ~/.config/polybar/scripts/packages-refresh.sh >/dev/null 2>%1 &
|
|
format = <label>
|
|
exec = ~/.config/polybar/scripts/packages-status.sh
|
|
interval = 600
|
|
#+END_SRC
|
|
|
|
** Packages Status script
|
|
:PROPERTIES:
|
|
:header-args: :tangle ~/.config/polybar/scripts/packages-status.sh
|
|
:header-args+: :comments both :mkdirp yes
|
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
|
:END:
|
|
#+BEGIN_SRC bash
|
|
yay -Sy > /dev/null 2>&1 && \
|
|
package_nb=`yay -Qu 2> /dev/null | wc -l` || \
|
|
package_nb=0
|
|
|
|
|
|
if [ "$package_nb" -eq "0" ]; then
|
|
echo "";
|
|
else
|
|
echo "%{F#859900} $package_nb%{F-}";
|
|
fi
|
|
#+END_SRC
|
|
|
|
** Refresh New Packages script
|
|
:PROPERTIES:
|
|
:header-args: :tangle ~/.config/polybar/scripts/packages-refresh.sh
|
|
:header-args+: :comments both :mkdirp yes
|
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
|
:END:
|
|
#+BEGIN_SRC bash
|
|
dunstify --replace=64654 'Packages ' "Refreshing..."
|
|
|
|
yay -Sy > /dev/null 2>&1 && \
|
|
package_nb=`yay -Qu 2> /dev/null | wc -l`;
|
|
|
|
if [ "$package_nb" -eq "0" ]; then
|
|
dunstify --replace=64654 'Packages ' "No upgrade available"
|
|
else
|
|
dunstify --replace=64654 'Packages ' "$(package_nb) upgrade(s) available"
|
|
fi
|
|
#+END_SRC
|
|
|
|
** Packages Update
|
|
:PROPERTIES:
|
|
:header-args: :tangle ~/.config/polybar/scripts/packages-update.sh
|
|
:header-args+: :comments both :mkdirp yes
|
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
|
:END:
|
|
#+BEGIN_SRC bash
|
|
$TERMINAL -e "yay"
|
|
#+END_SRC
|
|
|
|
* Dunst
|
|
#+BEGIN_SRC conf
|
|
[module/dunst]
|
|
type = custom/script
|
|
|
|
format-underline = ${colors.bg}
|
|
click-left = ~/.config/polybar/scripts/dunst-toggle.sh >/dev/null 2>%1 &
|
|
format = <label>
|
|
exec = ~/.config/polybar/scripts/dunst-status.sh
|
|
interval = 2
|
|
#+END_SRC
|
|
|
|
** Dunst Status script
|
|
:PROPERTIES:
|
|
:header-args: :tangle ~/.config/polybar/scripts/dunst-status.sh
|
|
:header-args+: :comments both :mkdirp yes
|
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
|
:END:
|
|
#+BEGIN_SRC bash
|
|
tmpfile="/tmp/dunststatus";
|
|
|
|
if [ -f $tmpfile ]; then
|
|
if grep -q "on" $tmpfile; then
|
|
echo "";
|
|
elif grep -q "off" $tmpfile; then
|
|
echo "";
|
|
fi
|
|
else
|
|
echo "";
|
|
fi
|
|
#+END_SRC
|
|
|
|
** Dunst Toggle
|
|
:PROPERTIES:
|
|
:header-args: :tangle ~/.config/polybar/scripts/dunst-toggle.sh
|
|
:header-args+: :comments both :mkdirp yes
|
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
|
:END:
|
|
#+BEGIN_SRC bash
|
|
tmpfile="/tmp/dunststatus";
|
|
|
|
if [ -f $tmpfile ] && grep -q "off" $tmpfile ; then
|
|
killall -SIGUSR2 dunst && \
|
|
echo "on" > $tmpfile;
|
|
dunstify --replace=16549 "Notifications " "Activated";
|
|
else
|
|
dunstify --replace=16549 "Notifications " "Deactivated";
|
|
sleep 1 && \
|
|
killall -SIGUSR1 dunst && \
|
|
echo "off" > $tmpfile;
|
|
fi
|
|
#+END_SRC
|
|
|
|
* Lock Screen
|
|
#+BEGIN_SRC conf
|
|
[module/lockscreen]
|
|
type = custom/script
|
|
|
|
format-underline = ${colors.bg}
|
|
click-left = ~/.config/polybar/scripts/lockscreen-toggle.sh >/dev/null 2>%1 &
|
|
click-right = ~/.local/bin/lockscreen >/dev/null 2>%1 &
|
|
format = <label>
|
|
exec = ~/.config/polybar/scripts/lockscreen-status.sh
|
|
|
|
interval = 2
|
|
#+END_SRC
|
|
|
|
** Lock screen Status script
|
|
:PROPERTIES:
|
|
:header-args: :tangle ~/.config/polybar/scripts/lockscreen-status.sh
|
|
:header-args+: :comments both :mkdirp yes
|
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
|
:END:
|
|
#+BEGIN_SRC bash
|
|
if pgrep -x "xautolock" >/dev/null
|
|
then
|
|
echo "";
|
|
else
|
|
echo "";
|
|
fi
|
|
#+END_SRC
|
|
|
|
** Toggle Automatic Lock Screen
|
|
:PROPERTIES:
|
|
:header-args: :tangle ~/.config/polybar/scripts/lockscreen-toggle.sh
|
|
:header-args+: :comments both :mkdirp yes
|
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
|
:END:
|
|
|
|
#+begin_src bash
|
|
if pgrep -x "xautolock" >/dev/null ; then
|
|
pkill xautolock && \
|
|
dunstify --replace=13602 'Lock Screen ' 'Desactivated'
|
|
else
|
|
xautolock -locker "~/.local/bin/lockscreen" -detectsleep -time 30 -notify 60 -notifier "dunstify --replace=31846 -u critical -t 10000 -- 'Locking Screen' '60 seconds'" &
|
|
dunstify --replace=13602 'Lock Screen ' 'Activated'
|
|
fi
|
|
#+end_src
|
|
|
|
* Network
|
|
#+begin_src conf
|
|
[module/wired-network]
|
|
type = internal/network
|
|
interface = enp0s20f0u9u4
|
|
|
|
label-connected = %local_ip%
|
|
label-connected-foreground = ${color.fg}
|
|
|
|
format-connected-prefix = " "
|
|
format-connected = <label-connected>
|
|
|
|
label-disconnected = ""
|
|
label-disconnected-foreground = ${colors.gray}
|
|
|
|
format-disconnected = <label-disconnected>
|
|
|
|
[module/wireless-network]
|
|
type = internal/network
|
|
interface = wlp2s0
|
|
|
|
label-connected = %essid%
|
|
label-connected-foreground = ${color.fg}
|
|
|
|
format-connected-prefix = " "
|
|
format-connected = <label-connected>
|
|
|
|
label-disconnected = ""
|
|
label-disconnected-foreground = ${colors.gray}
|
|
|
|
format-disconnected = <label-disconnected>
|
|
#+end_src
|
|
|
|
* Wireguard
|
|
#+BEGIN_SRC conf
|
|
[module/wireguard]
|
|
type = custom/script
|
|
|
|
format-underline = ${colors.bg}
|
|
click-left = ~/.config/polybar/scripts/wireguard-toggle.sh >/dev/null 2>%1 &
|
|
format = <label>
|
|
exec = ~/.config/polybar/scripts/wireguard-status.sh
|
|
|
|
interval = 2
|
|
#+END_SRC
|
|
|
|
** Wireguard Connection Status
|
|
:PROPERTIES:
|
|
:header-args: :tangle ~/.config/polybar/scripts/wireguard-status.sh
|
|
:header-args+: :comments both :mkdirp yes
|
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
|
:END:
|
|
|
|
#+begin_src bash
|
|
config="pivpn"
|
|
|
|
connection=$(sudo wg show "$config" 2>/dev/null | head -n 1 | awk '{print $NF }')
|
|
|
|
if [ "$connection" = "$config" ]; then
|
|
echo "%{F#859900}%{F-}"
|
|
else
|
|
echo ""
|
|
fi
|
|
#+end_src
|
|
|
|
** Toggle Wireguard Connection
|
|
:PROPERTIES:
|
|
:header-args: :tangle ~/.config/polybar/scripts/wireguard-toggle.sh
|
|
:header-args+: :comments both :mkdirp yes
|
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
|
:END:
|
|
|
|
#+begin_src bash
|
|
config="pivpn"
|
|
|
|
connection=$(sudo wg show "$config" 2>/dev/null | head -n 1 | awk '{print $NF }')
|
|
|
|
if [ "$connection" = "$config" ]; then
|
|
sudo wg-quick down "$config" && \
|
|
dunstify --replace=83244 "Wireguard" "Disconnected from $config"
|
|
else
|
|
sudo wg-quick up "$config" && \
|
|
dunstify --replace=83244 "Wireguard" "Connected to $config"
|
|
fi
|
|
#+end_src
|
|
|
|
* Screenshot
|
|
|
|
#+BEGIN_SRC conf
|
|
[module/screenshot]
|
|
type = custom/text
|
|
content = ""
|
|
click-left = ~/.local/bin/screenshot >/dev/null 2>%1 &
|
|
#+END_SRC
|
|
|
|
* Scripts
|
|
** Launch
|
|
:PROPERTIES:
|
|
:header-args: :tangle ~/.config/polybar/scripts/launch.sh
|
|
:header-args+: :comments both :mkdirp yes
|
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
|
:END:
|
|
|
|
#+begin_src bash
|
|
# Terminate already running bar instances
|
|
killall -q polybar
|
|
|
|
# Wait until the processes have been shut down
|
|
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
|
|
|
# Launch Polybar, using default config location ~/.config/polybar/config
|
|
polybar top >>/tmp/polybar.log 2>&1 &
|
|
# polybar bottom &
|
|
|
|
echo "Polybar launched..."
|
|
#+end_src
|
|
|
|
** Toggle
|
|
:PROPERTIES:
|
|
:header-args: :tangle ~/.config/polybar/scripts/toggle.sh
|
|
:header-args+: :comments both :mkdirp yes
|
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
|
:END:
|
|
|
|
#+begin_src bash
|
|
# Usage : toggle.sh top
|
|
|
|
pid=$(pgrep -f "polybar $1")
|
|
|
|
if [ ! -z "$pid" ]; then
|
|
polybar-msg -p $pid cmd toggle >/dev/null 2>&1
|
|
fi
|
|
#+end_src
|