literate-dotfiles/dotfiles/polybar.org

858 lines
21 KiB
Org Mode
Raw Normal View History

2019-01-31 09:41:03 +01:00
#+TITLE: Polybar Configuration
2019-05-16 21:13:08 +02:00
:DRAWER:
2020-01-11 22:04:28 +01:00
#+STARTUP: overview
#+LANGUAGE: en
#+EMAIL: dehaeze.thomas@gmail.com
#+AUTHOR: Dehaeze Thomas
#+HTML_LINK_HOME: ./index.html
#+HTML_LINK_UP: ./index.html
2020-01-11 22:24:51 +01:00
#+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>
2020-01-11 22:04:28 +01:00
2019-12-30 17:21:56 +01:00
#+PROPERTY: header-args :comments no
2019-01-31 09:41:03 +01:00
#+PROPERTY: header-args+ :mkdirp yes
#+PROPERTY: header-args+ :tangle ~/.config/polybar/config
2019-05-16 21:13:08 +02:00
:END:
2019-01-31 09:41:03 +01:00
* 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}
2019-01-31 09:41:03 +01:00
#+end_src
* VM
#+begin_src conf
2019-04-04 10:27:43 +02:00
[global/wm]
2019-12-30 17:21:56 +01:00
margin-top = 0
margin-bottom = 0
2019-01-31 09:41:03 +01:00
#+end_src
* Top Bar
#+BEGIN_SRC conf
[bar/top]
enable-ipc = true
override-redirect = false
bottom = false
2019-05-16 21:13:08 +02:00
fixed-center = false
2019-01-31 09:41:03 +01:00
width = 100%
height = 27
radius = 0.0
background = ${colors.bg}
foreground = ${colors.fg}
2019-01-31 09:41:03 +01:00
2019-05-16 21:13:08 +02:00
line-size = 2
2019-01-31 09:41:03 +01:00
border-size = 0
padding-left = 2
padding-right = 12
2019-01-31 09:41:03 +01:00
module-margin-left = 1
module-margin-right = 1
2019-04-10 16:56:26 +02:00
font-0 = Hack Nerd Font:style=Medium,Regular:pixelsize=10;1
2019-01-31 09:41:03 +01:00
font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
font-2 = Weather Icons:size=10;1
2019-12-30 17:21:56 +01:00
modules-left = i3 bspwm xwindow
2019-05-16 21:13:08 +02:00
modules-center =
2020-03-20 14:38:52 +01:00
modules-right = pulseaudio mpd xbacklight redshift nordvpn lockscreen dunst packages unread_mail cpu battery temperature date
2019-12-30 17:21:56 +01:00
wm-restack = i3
2019-01-31 09:41:03 +01:00
tray-position = right
tray-detached = true
2019-05-16 21:13:08 +02:00
tray-padding = 0
tray-background = ${colors.bg}
2019-01-31 09:41:03 +01:00
#+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
2019-04-04 10:27:43 +02:00
format = <label-state> <label-mode>
index-sort = true
2019-01-31 09:41:03 +01:00
#+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
2019-01-31 09:41:03 +01:00
#+END_SRC
2019-12-30 17:21:56 +01:00
* 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}
2019-12-30 17:21:56 +01:00
label-focused-padding = 1
label-occupied = %icon%
label-occupied-underline = ${colors.fg}
2019-12-30 17:21:56 +01:00
label-occupied-padding = 1
label-urgent = %icon%
label-urgent-background = ${colors.red}
label-urgent-padding = 1
label-empty = %icon%
label-empty-foreground = ${colors.fg}
2019-12-30 17:21:56 +01:00
label-empty-padding = 1
#+end_src
2019-01-31 09:41:03 +01:00
* 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}
2019-01-31 09:41:03 +01:00
format-online-spacing = 0
format-online-padding = 0
2019-01-31 09:41:03 +01:00
label-offline = mpd is offline
format-offline = <label-offline>
format-offline-foreground = #777
2019-01-31 09:41:03 +01:00
label-song = %artist% - %title%
label-song-maxlen = 30
label-song-ellipsis = true
2019-01-31 09:41:03 +01:00
icon-prev = 寧
icon-stop = 栗
icon-play = 契
icon-pause = 
icon-next = 嶺
icon-random = 咽
icon-repeat = 凌
2019-01-31 09:41:03 +01:00
# 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}
2019-01-31 09:41:03 +01:00
bar-progress-width = 15
bar-progress-indicator = |
bar-progress-fill = ─
bar-progress-empty = ─
2019-01-31 09:41:03 +01:00
#+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 = 
2019-01-31 09:41:03 +01:00
#+END_SRC
* CPU Usage
#+BEGIN_SRC conf
2019-02-03 17:54:54 +01:00
[module/cpu]
type = internal/cpu
interval = 2
2019-01-31 09:41:03 +01:00
format-prefix-foreground = ${colors.fg}
2019-01-31 09:41:03 +01:00
format-underline = ${colors.bg}
2019-01-31 09:41:03 +01:00
label = %{A1:$TERMINAL -e "htop" &:} ﬙ %percentage:2%% %{A}
2019-01-31 09:41:03 +01:00
#+END_SRC
* Date
#+BEGIN_SRC conf
2019-02-03 17:54:54 +01:00
[module/date]
type = internal/date
interval = 1
2019-01-31 09:41:03 +01:00
2019-02-03 17:54:54 +01:00
# Open google calendar on left right
date = %{A1:$TERMINAL -e "ikhal" &:} %d-%m%{A}
date-alt = "%{A1:$TERMINAL -e \"ikhal\" &:} %d-%m-%Y%{A}"
2019-01-31 09:41:03 +01:00
2019-02-03 17:54:54 +01:00
time =  %H:%M
time-alt =  %H:%M:%S
2019-01-31 09:41:03 +01:00
2019-02-03 17:54:54 +01:00
label = %date% %time%
2019-01-31 09:41:03 +01:00
#+END_SRC
* Sound Volume
#+BEGIN_SRC conf
2019-02-03 17:54:54 +01:00
[module/pulseaudio]
type = internal/pulseaudio
sink = alsa_output.pci-0000_00_1f.3.analog-stereo
2019-02-03 17:54:54 +01:00
# 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}
2019-01-31 09:41:03 +01:00
#+END_SRC
* Battery
#+BEGIN_SRC conf
2019-02-03 17:54:54 +01:00
[module/battery]
type = internal/battery
battery = BAT0
adapter = ADP1
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}
format-full-prefix = %{A1:xfce4-power-manager-settings &:} %{A}
format-full-prefix-foreground = ${colors.fg}
format-full-underline = ${colors.bg}
2019-02-03 17:54:54 +01:00
ramp-capacity-0 = 
ramp-capacity-1 = 
ramp-capacity-2 = 
ramp-capacity-3 = 
ramp-capacity-4 = 
ramp-capacity-foreground = ${colors.fg}
2019-02-03 17:54:54 +01:00
animation-charging-0 = 
animation-charging-1 = 
animation-charging-2 = 
animation-charging-3 = 
animation-charging-4 = 
animation-charging-foreground = ${colors.fg}
2019-02-03 17:54:54 +01:00
animation-charging-framerate = 750
animation-discharging-0 = 
animation-discharging-1 = 
animation-discharging-2 = 
animation-discharging-3 = 
animation-discharging-4 = 
animation-discharging-foreground = ${color.fg}
2019-02-03 17:54:54 +01:00
animation-discharging-framerate = 750
#+END_SRC
* Temperature
2019-01-31 09:41:03 +01:00
#+BEGIN_SRC conf
[module/temperature]
type = internal/temperature
interval = 5
thermal-zone = 0
warn-temperature = 70
hwmon-path = /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input
2019-01-31 09:41:03 +01:00
format = %{A1:$TERMINAL -e "watch sensors" &:}<ramp> <label>%{A}
format-underline = ${colors.bg}
2019-01-31 09:41:03 +01:00
format-warn = <ramp> <label-warn>
format-warn-underline = ${colors.red}
label = %temperature-c%
label-warn = %temperature-c%
label-warn-foreground = ${colors.red}
ramp-0 = 
ramp-1 = 
ramp-2 = 
ramp-3 = 
ramp-4 = 
ramp-foreground = ${color.fg}
2019-01-31 09:41:03 +01:00
#+END_SRC
2019-02-03 17:54:54 +01:00
* Unread Mails
2019-01-31 09:41:03 +01:00
#+BEGIN_SRC conf
[module/unread_mail]
type = custom/script
2019-01-31 09:41:03 +01:00
2020-03-19 15:20:33 +01:00
:format-underline = ${colors.bg}
2019-12-16 11:38:04 +01:00
click-left = ~/.config/polybar/scripts/mail-open.sh
format = <label>
2019-12-16 11:38:04 +01:00
exec = ~/.config/polybar/scripts/mail-status.sh
interval = 1
2019-01-31 09:41:03 +01:00
#+END_SRC
2019-02-03 17:54:54 +01:00
** Unread Mail Scripts
2019-12-16 11:38:04 +01:00
:PROPERTIES:
:header-args: :tangle ~/.config/polybar/scripts/mail-status.sh
:header-args+: :comments both :mkdirp yes
:header-args+: :shebang "#!/usr/bin/env bash"
:END:
2019-02-03 17:54:54 +01:00
#+begin_src bash
2020-03-19 15:20:33 +01:00
mail_nb=`du -a ~/.mail/*/Inbox/new/* 2>/dev/null | wc -l`
2019-02-03 17:54:54 +01:00
2020-03-19 15:20:33 +01:00
if [ "$mail_nb" -eq "0" ]; then
echo "";
2019-02-03 17:54:54 +01:00
else
2020-03-19 15:20:33 +01:00
echo "%{F#859900} $mail_nb%{F-}";
2019-02-03 17:54:54 +01:00
fi
#+end_src
2019-12-16 11:38:04 +01:00
** 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" &
2019-12-16 11:38:04 +01:00
#+end_src
2019-01-31 09:41:03 +01:00
* Redshift
#+BEGIN_SRC conf
[module/redshift]
type = custom/script
2019-01-31 09:41:03 +01:00
label-font = 2
format-underline = ${colors.bg}
2019-12-16 11:38:04 +01:00
click-left = ~/.config/polybar/scripts/redshift-toggle.sh
format = <label>
2019-12-16 11:38:04 +01:00
exec = ~/.config/polybar/scripts/redshift-status.sh
interval = 2
2019-01-31 09:41:03 +01:00
#+END_SRC
2019-02-03 17:54:54 +01:00
** Redshift Scripts
2019-12-16 11:38:04 +01:00
:PROPERTIES:
:header-args: :tangle ~/.config/polybar/scripts/redshift-status.sh
:header-args+: :comments both :mkdirp yes
:header-args+: :shebang "#!/usr/bin/env bash"
:END:
2019-02-03 17:54:54 +01:00
#+begin_src bash
if pgrep -x "redshift" >/dev/null; then
2019-12-16 11:38:04 +01:00
echo "望";
2019-02-03 17:54:54 +01:00
else
2019-12-16 11:38:04 +01:00
echo "盛";
2019-02-03 17:54:54 +01:00
fi
2019-12-16 11:38:04 +01:00
#+end_src
2019-02-03 17:54:54 +01:00
2019-12-16 11:38:04 +01:00
** 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;
else
nohup redshift > /dev/null 2>&1 &
2019-02-03 17:54:54 +01:00
fi
2019-01-31 09:41:03 +01:00
#+end_src
2019-02-03 17:54:54 +01:00
* NordVPN
2019-01-31 09:41:03 +01:00
#+BEGIN_SRC conf
[module/nordvpn]
type = custom/script
2019-01-31 09:41:03 +01:00
format-underline = ${colors.bg}
2019-12-16 11:38:04 +01:00
click-left = ~/.config/polybar/scripts/nordvpn-toggle.sh
format = <label>
2019-12-16 11:38:04 +01:00
exec = ~/.config/polybar/scripts/nordvpn-status.sh
2019-05-16 21:13:08 +02:00
interval = 2
2019-01-31 09:41:03 +01:00
#+END_SRC
** TODO Nordvpn Status script
2019-12-16 11:38:04 +01:00
:PROPERTIES:
:header-args: :tangle ~/.config/polybar/scripts/nordvpn-status.sh
:header-args+: :comments both :mkdirp yes
:header-args+: :shebang "#!/usr/bin/env bash"
:END:
- [ ] Should check if there is a tmpfile, if there is not, run nordvpn status and create the tmpfile accordindly
2019-01-31 09:41:03 +01:00
#+BEGIN_SRC bash
tmpfile="/tmp/vpnstatus";
2019-01-31 09:41:03 +01:00
if [ -f $tmpfile ] && grep -q "on" $tmpfile; then
2019-05-16 21:13:08 +02:00
echo "%{F#859900}%{F-}";
2019-01-31 09:41:03 +01:00
else
2019-05-16 21:13:08 +02:00
echo "";
2019-01-31 09:41:03 +01:00
fi
#+END_SRC
2019-12-16 11:38:04 +01:00
** 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;
2019-12-16 11:38:04 +01:00
else
country=`cat ~/bin/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;
2019-12-16 11:38:04 +01:00
fi
#+END_SRC
2019-01-31 09:41:03 +01:00
* Packages
#+BEGIN_SRC conf
[module/packages]
type = custom/script
format-underline = ${colors.bg}
click-left = ~/.config/polybar/scripts/packages-update.sh
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
2020-03-19 15:20:33 +01:00
package_nb=`yay -Qu 2> /dev/null | wc -l`;
if [ "$package_nb" -eq "0" ]; then
echo "";
else
2020-03-19 15:20:33 +01:00
echo "%{F#859900} $package_nb%{F-}";
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]
2019-06-22 17:21:08 +02:00
type = custom/script
format-underline = ${colors.bg}
2019-12-16 11:38:04 +01:00
click-left = ~/.config/polybar/scripts/dunst-toggle.sh
2019-06-22 17:21:08 +02:00
format = <label>
2019-12-16 11:38:04 +01:00
exec = ~/.config/polybar/scripts/dunst-status.sh
2019-06-22 17:21:08 +02:00
interval = 2
#+END_SRC
** Dunst Status script
2019-12-16 11:38:04 +01:00
:PROPERTIES:
:header-args: :tangle ~/.config/polybar/scripts/dunst-status.sh
:header-args+: :comments both :mkdirp yes
:header-args+: :shebang "#!/usr/bin/env bash"
:END:
2019-06-22 17:21:08 +02:00
#+BEGIN_SRC bash
tmpfile="/tmp/dunststatus";
if [ -f $tmpfile ]; then
if grep -q "on" $tmpfile; then
echo "";
elif grep -q "off" $tmpfile; then
2019-12-16 11:38:04 +01:00
echo "";
2019-06-22 17:21:08 +02:00
fi
else
echo "";
fi
2019-01-31 09:41:03 +01:00
#+END_SRC
2019-12-16 11:38:04 +01:00
** 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 ]; then
if grep -q "on" $tmpfile; then
killall -SIGUSR1 dunst && echo "off" > $tmpfile;
elif grep -q "off" $tmpfile; then
killall -SIGUSR2 dunst && echo "on" > $tmpfile;
dunstify --replace=16549 "Dunst" "Activated";
fi
else
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
click-right = ~/scripts/lockscreen.sh
format = <label>
2019-12-16 11:38:04 +01:00
exec = ~/.config/polybar/scripts/lockscreen-status.sh
interval = 2
#+END_SRC
** Lock screen Status script
:PROPERTIES:
2019-12-16 11:38:04 +01:00
: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
2019-12-16 11:38:04 +01:00
echo "";
else
2019-12-16 11:38:04 +01:00
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 "~/scripts/lockscreen.sh" -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
2019-02-03 17:54:54 +01:00
* Weather
2019-01-31 09:41:03 +01:00
https://github.com/x70b1/polybar-scripts/tree/master/polybar-scripts/openweathermap-fullfeatured
#+begin_src conf
[module/weather]
type = custom/script
2019-02-03 17:54:54 +01:00
2019-12-16 11:38:04 +01:00
exec = ~/.config/polybar/scripts/weather-status.sh
click-left = ~/.config/polybar/scripts/weather-open.sh
2019-02-03 17:54:54 +01:00
2019-01-31 09:41:03 +01:00
interval = 600
label-font = 3
#+end_src
2019-05-16 21:13:08 +02:00
** Script to retrieve the weather
2019-02-03 17:54:54 +01:00
:PROPERTIES:
2019-12-16 11:38:04 +01:00
:header-args: :tangle ~/.config/polybar/scripts/weather-status.sh
2019-02-03 17:54:54 +01:00
:header-args+: :comments both :mkdirp yes
:header-args+: :shebang "#!/usr/bin/env bash"
:END:
#+BEGIN_SRC bash
get_icon() {
case $1 in
01d) icon="";;
01n) icon="";;
02d) icon="";;
02n) icon="";;
03*) icon="";;
04*) icon="";;
09d) icon="";;
09n) icon="";;
10d) icon="";;
10n) icon="";;
11d) icon="";;
11n) icon="";;
13d) icon="";;
13n) icon="";;
50d) icon="";;
50n) icon="";;
,*) icon="";
esac
echo $icon
}
get_duration() {
osname=$(uname -s)
case $osname in
,*BSD) date -r "$1" -u +%H:%M;;
,*) date --date="@$1" -u +%H:%M;;
esac
}
KEY="a705adc4ce0e271801051b9460ecb1cd"
CITY=""
UNITS="metric"
SYMBOL="°"
API="https://api.openweathermap.org/data/2.5"
if [ -n "$CITY" ]; then
if [ "$CITY" -eq "$CITY" ] 2>/dev/null; then
CITY_PARAM="id=$CITY"
else
CITY_PARAM="q=$CITY"
fi
current=$(curl -sf "$API/weather?appid=$KEY&$CITY_PARAM&units=$UNITS")
forecast=$(curl -sf "$API/forecast?appid=$KEY&$CITY_PARAM&units=$UNITS&cnt=1")
else
location=$(curl -sf https://location.services.mozilla.com/v1/geolocate?key=geoclue)
if [ -n "$location" ]; then
location_lat="$(echo "$location" | jq '.location.lat')"
location_lon="$(echo "$location" | jq '.location.lng')"
current=$(curl -sf "$API/weather?appid=$KEY&lat=$location_lat&lon=$location_lon&units=$UNITS")
forecast=$(curl -sf "$API/forecast?appid=$KEY&lat=$location_lat&lon=$location_lon&units=$UNITS&cnt=1")
fi
fi
if [ -n "$current" ] && [ -n "$forecast" ]; then
current_temp=$(echo "$current" | jq ".main.temp" | cut -d "." -f 1)
current_icon=$(echo "$current" | jq -r ".weather[0].icon")
forecast_temp=$(echo "$forecast" | jq ".list[].main.temp" | cut -d "." -f 1)
forecast_icon=$(echo "$forecast" | jq -r ".list[].weather[0].icon")
if [ "$current_temp" -gt "$forecast_temp" ]; then
trend="" #
elif [ "$forecast_temp" -gt "$current_temp" ]; then
trend="" #
else
trend="" #
fi
2019-01-31 09:41:03 +01:00
2019-02-03 17:54:54 +01:00
sun_rise=$(echo "$current" | jq ".sys.sunrise")
sun_set=$(echo "$current" | jq ".sys.sunset")
now=$(date +%s)
if [ "$sun_rise" -gt "$now" ]; then
daytime=" $(get_duration "$((sun_rise-now))")"
elif [ "$sun_set" -gt "$now" ]; then
daytime=" $(get_duration "$((sun_set-now))")"
else
daytime=" $(get_duration "$((sun_rise-now))")"
fi
echo "$(get_icon "$current_icon") $current_temp$SYMBOL $trend $(get_icon "$forecast_icon") $forecast_temp$SYMBOL $daytime"
fi
#+END_SRC
** TODO Open Weather Webpage
:PROPERTIES:
2019-12-16 11:38:04 +01:00
:header-args: :tangle ~/.config/polybar/scripts/weather-open.sh
2019-02-03 17:54:54 +01:00
:header-args+: :comments both :mkdirp yes
:header-args+: :shebang "#!/usr/bin/env bash"
:END:
- [ ] Find a way to open a web page with detailed forecast with the current location
#+BEGIN_SRC bash
# location=$(curl -sf https://location.services.mozilla.com/v1/geolocate?key=geoclue)
# if [ -n "$location" ]; then
# location_lat="$(echo "$location" | jq '.location.lat')"
# location_lon="$(echo "$location" | jq '.location.lng')"
# else
# fi
$BROWSER https://www.yahoo.com/news/weather/france/grenoble/grenoble-593720
#+END_SRC
2019-05-16 21:13:08 +02:00
* Network
2019-01-31 09:41:03 +01:00
#+begin_src conf
2019-05-16 21:13:08 +02:00
[module/wired-network]
2019-01-31 09:41:03 +01:00
type = internal/network
2019-05-16 21:13:08 +02:00
interface = enp0s20f0u9u4
label-connected = %local_ip%
label-connected-foreground = ${color.fg}
2019-05-16 21:13:08 +02:00
format-connected-prefix = " "
2019-01-31 09:41:03 +01:00
format-connected = <label-connected>
2019-05-16 21:13:08 +02:00
label-disconnected = ""
label-disconnected-foreground = ${colors.gray}
2019-01-31 09:41:03 +01:00
2019-05-16 21:13:08 +02:00
format-disconnected = <label-disconnected>
2019-01-31 09:41:03 +01:00
2019-05-16 21:13:08 +02:00
[module/wireless-network]
type = internal/network
interface = wlp2s0
2019-01-31 09:41:03 +01:00
2019-05-16 21:13:08 +02:00
label-connected = %essid%
label-connected-foreground = ${color.fg}
2019-01-31 09:41:03 +01:00
2019-05-16 21:13:08 +02:00
format-connected-prefix = " "
format-connected = <label-connected>
2019-01-31 09:41:03 +01:00
2019-05-16 21:13:08 +02:00
label-disconnected = ""
label-disconnected-foreground = ${colors.gray}
2019-05-16 21:13:08 +02:00
format-disconnected = <label-disconnected>
#+end_src
2019-01-31 09:41:03 +01:00
2019-05-16 21:13:08 +02:00
* Screenshot
2019-02-03 17:54:54 +01:00
2019-01-31 09:41:03 +01:00
#+BEGIN_SRC conf
[module/screenshot]
type = custom/text
2019-12-16 11:38:04 +01:00
content = ""
click-left = ~/bin/screenshot
2019-01-31 09:41:03 +01:00
#+END_SRC
2019-02-03 17:54:54 +01:00
2019-04-04 10:26:07 +02:00
* Scripts
** Launch
2019-12-16 11:38:04 +01:00
:PROPERTIES:
:header-args: :tangle ~/.config/polybar/scripts/launch.sh
:header-args+: :comments both :mkdirp yes
:header-args+: :shebang "#!/usr/bin/env bash"
:END:
2019-04-04 10:26:07 +02:00
#+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 &
2019-04-04 10:26:07 +02:00
echo "Polybar launched..."
#+end_src
** Toggle
2019-12-16 11:38:04 +01:00
:PROPERTIES:
:header-args: :tangle ~/.config/polybar/scripts/toggle.sh
:header-args+: :comments both :mkdirp yes
:header-args+: :shebang "#!/usr/bin/env bash"
:END:
2019-04-04 10:26:07 +02:00
#+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