From ed4235db4340285b97dba47ee36a0c49c631e3e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=9Eahin=20Akkaya?= Date: Sun, 20 Mar 2022 20:00:58 +0300 Subject: [PATCH] Use builtin bar of qtile instead of polybar --- .config/polybar/config.ini | 220 ------------------------------- .config/polybar/launch.sh | 12 -- .config/qtile/modules/screens.py | 164 ++++++++++++++++++++++- scripts/autostart.sh | 6 - 4 files changed, 162 insertions(+), 240 deletions(-) delete mode 100644 .config/polybar/config.ini delete mode 100755 .config/polybar/launch.sh diff --git a/.config/polybar/config.ini b/.config/polybar/config.ini deleted file mode 100644 index e8d408e..0000000 --- a/.config/polybar/config.ini +++ /dev/null @@ -1,220 +0,0 @@ -;========================================================== -; -; -; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗ -; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗ -; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝ -; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗ -; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║ -; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ -; -; -; To learn more about how to configure Polybar -; go to https://github.com/polybar/polybar -; -; The README contains a lot of information -; -;========================================================== - -[colors] -background = #282A2E -background-alt = #373B41 -foreground = #C5C8C6 -; BLUE = #62AEEF -primary = #62AEEF -; primary = #F0C674 -secondary = #8ABEB7 -alert = #A54242 -disabled = #707880 - -[bar/main] -width = 100% -height = 24pt -radius = 6 - -; dpi = 96 - -background = ${colors.background} -foreground = ${colors.foreground} - -line-size = 3pt - -border-size = 4pt -border-color = #00000000 - -padding-left = 0 -padding-right = 1 - -module-margin = 1 - -separator = | -separator-foreground = ${colors.disabled} - -; font-0 = "Material Icons:style=Regular:size=15;2" -font-0 = monospace;2 -font-1 = "Iosevka Nerd Font Mono:size=20;7" -; glyphs -font-2 = "Iosevka Nerd Font Mono:size=23;8" -; dot -; font-3 = "Iosevka Nerd Font Mono:size=18;8" -font-3 = "Material Icons:style=Regular:size=15;2" -; clock & mpd -font-4 = "Iosevka:style=bold:size=10;4" - -modules-left = xworkspaces xwindow -; enable wireguard after allowing passwordless sudo -; https://github.com/mil-ad/polybar-wireguard -; modules-right = wireguard bluetooth filesystem pulseaudio xkeyboard memory cpu wlan eth date -modules-right = bluetooth filesystem pulseaudio xkeyboard memory cpu wlan eth date - -cursor-click = pointer -cursor-scroll = ns-resize - -enable-ipc = true - -tray-position = left -; If true, the bar will not shift its -; contents when the tray changes -tray-detached = false -; wm-restack = generic -; wm-restack = bspwm -; wm-restack = i3 - -; override-redirect = true - -[module/xworkspaces] -type = internal/xworkspaces - -icon-0 = 1;1 -icon-1 = 2; -icon-2 = 3; -icon-3 = 4; -icon-4 = 5; -icon-5 = 6;6 -icon-6 = 7; -icon-7 = 8;既 -icon-8 = 9;ﭮ -icon-9 = 0; -label-active = %icon% -label-active-background = ${colors.background-alt} -label-active-underline= ${colors.primary} -label-active-foreground= ${colors.primary} -label-active-padding = 1 - -label-occupied = %icon% -label-occupied-underline = #999999 -label-occupied-padding = 1 - -label-urgent = %icon% -label-urgent-background = ${colors.alert} -label-urgent-padding = 1 - -label-empty = %icon% -label-empty-foreground = ${colors.disabled} -label-empty-padding = 1 - -[module/xwindow] -type = internal/xwindow -label = %title:0:37:...% - -[module/filesystem] -type = internal/fs -interval = 25 - -mount-0 = / - -label-mounted = %{F#62AEEF}%mountpoint%%{F-} %percentage_used%% - -label-unmounted = %mountpoint% not mounted -label-unmounted-foreground = ${colors.disabled} - -[module/pulseaudio] -type = internal/pulseaudio - -format-volume-prefix = "VOL " -format-volume-prefix-foreground = ${colors.primary} -format-volume = - -label-volume = %percentage%% - -label-muted = muted -label-muted-foreground = ${colors.disabled} - -[module/xkeyboard] -type = internal/xkeyboard -blacklist-0 = num lock - -label-layout = %icon% -layout-icon-0 = us;Programmer Colemak-DH with Turkish support; -layout-icon-1 = us;Programmer Colemak-DH ISO with Turkish support; -click-left = pavucontrol -label-layout-foreground = ${colors.primary} -; indicator-icon-0 = caps lock;-CL;+CL -; label-indicator-on = %icon% -label-indicator-padding = 2 -label-indicator-margin = 1 -label-indicator-foreground = ${colors.background} -label-indicator-background = ${colors.secondary} - -[module/memory] -type = internal/memory -interval = 2 -format-prefix = "RAM " -format-prefix-foreground = ${colors.primary} -label = %percentage_used:2%% - -[module/cpu] -type = internal/cpu -interval = 2 -format-prefix = "CPU " -format-prefix-foreground = ${colors.primary} -label = %percentage:2%% - -[network-base] -type = internal/network -interval = 5 -format-connected = -format-disconnected = -label-disconnected = %{F#62AEEF}%ifname%%{F#707880} disconnected - -[module/wlan] -inherit = network-base -interface-type = wireless -label-connected = %{F#62AEEF}%ifname%%{F-} %essid% %local_ip% - -[module/eth] -inherit = network-base -interface-type = wired -label-connected = %{F#62AEEF}%ifname%%{F-} %local_ip% - -[module/date] -type = internal/date -interval = 1 - -date = %H:%M -date-alt = %Y-%m-%d %H:%M:%S - -label = %date% -label-foreground = ${colors.primary} - - -[module/wireguard] -type = custom/script -exec = ~/GitRepositories/polybar-wireguard/polybar-wireguard -tail = false -label-foreground = ${colors.primary} -interval = 1 -click-left = ~/GitRepositories/polybar-wireguard/polybar-wireguard --toggle & - -[module/bluetooth] -type = custom/script -exec = rofi-bluetooth --status -label-foreground = ${colors.primary} -interval = 1 -click-left = rofi-bluetooth & - -[settings] -screenchange-reload = true -pseudo-transparency = true - -; vim:ft=dosini diff --git a/.config/polybar/launch.sh b/.config/polybar/launch.sh deleted file mode 100755 index 69b7d79..0000000 --- a/.config/polybar/launch.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/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 the bar -for m in $(polybar --list-monitors | cut -d":" -f1); do - MONITOR=$m polybar --reload main & -done diff --git a/.config/qtile/modules/screens.py b/.config/qtile/modules/screens.py index cd3b860..69ba000 100644 --- a/.config/qtile/modules/screens.py +++ b/.config/qtile/modules/screens.py @@ -1,3 +1,163 @@ -from libqtile.config import Screen +import re +import subprocess -screens = [Screen()] +from subprocess import check_output + +from libqtile import bar, widget +from libqtile.config import Screen +from libqtile.command import lazy + +# from libqtile.log_utils import logger + + +def create_sep(): + return widget.Sep(foreground="707880", size_percent=60) + + +def run_shell_command(command): + def inner(): + res = check_output(command.split()).decode("utf-8").strip() + return res or " " + + return inner + + +class CapsNumScrollLockIndicator(widget.CapsNumLockIndicator): + def get_indicators(self): + """Return a list with the current state of the keys.""" + try: + output = self.call_process(["xset", "q"]) + except subprocess.CalledProcessError as err: + output = err.output + return [] + indicators = re.findall(r"(?:Caps|Num|Scroll)\s+Lock:\s*(\w*)", output) + return indicators + + def poll(self): + """Poll content for the text box.""" + indicators = self.get_indicators() + on, off = "ﰉ", "ﰊ" + status = " ".join(indicators) + status = status.replace("off", off).replace("on", on)[::-1] + # reversed because it cames backwards somehow. + return status + + +screens = [ + Screen( + top=bar.Bar( + [ + # widget.CurrentLayout(), + widget.GroupBox( + active="62AEEF", # Active group font colour + block_highlight_text_color="62AEFF", # Selected group font colour + disable_drag=True, # Disable dragging and dropping of group names on widget + font="Iosevka Nerd Font", + fontsize=20, + foreground="ff0000", # Foreground colour + highlight_color=[ + "373B41", + # "282828", + ], # Active group highlight color when using 'line' highlight method. + highlight_method="line", # Method of highlighting ('border', 'block', 'text', or 'line')Uses *_border color settings + inactive="707880", # Inactive group font colour + invert_mouse_wheel=True, # Whether to invert mouse wheel group movement + padding_x=8, # X Padding. Overrides 'padding' if set + ), + widget.Prompt(), + create_sep(), + widget.WindowName(), + widget.Chord( + chords_colors={ + "launch": ("#ff0000", "#ffffff"), + }, + name_transform=lambda name: name.upper(), + ), + widget.GenPollText( + func=run_shell_command("wgd"), + fontsize=23, + font="Iosevka Nerd Font", + foreground="62AEEF", + fmt=" {}", + update_interval=1, + mouse_callbacks={"Button1": lazy.spawn("wgd --toggle")}, + ), + create_sep(), + widget.GenPollText( + func=run_shell_command("rofi-bluetooth --status"), + fontsize=18, + font="Iosevka Nerd Font", + foreground="62AEEF", + update_interval=1, + mouse_callbacks={"Button1": lazy.spawn("rofi-bluetooth")}, + ), + create_sep(), + widget.PulseVolume( + emoji=True, + limit_max_volume=True, + step=4, + update_interval=0.1, + fmt='VOL {}', + ), + create_sep(), + widget.KeyboardLayout( + configured_keyboards=["us cdhpt", "us cdhisopt"], + font="Iosevka Nerd Font Mono", + fontsize=23, + display_map={"us cdhpt": "", "us cdhisopt": ""}, + foreground="62AEFF", + ), + CapsNumScrollLockIndicator(update_interval=0.5, foreground="62AEFF"), + create_sep(), + widget.WidgetBox( + widgets=[ + widget.DF( + visible_on_warn=False, + format='{p} {r:.0f}%', + ), + create_sep(), + widget.Memory( + fmt='RAM {}', + format="{MemPercent: .0f}%", + ), + create_sep(), + widget.CPU( + format="{load_percent: .0f}%", + fmt='CPU {}', + ), + create_sep(), + ], + text_closed="[S<]", + text_open="[S>]", + foreground="62AEEF", + close_button_location="right", + ), + widget.WidgetBox( + widgets=[ + widget.Net(interface=["enp3s0"]), + widget.Wlan(format="{essid} {percent:2.0%}"), + create_sep(), + ], + text_closed="[N<]", + text_open="[N>]", + foreground="62AEEF", + close_button_location="right", + ), + widget.Battery(format="{char} {percent:2.0%} {hour:d}:{min:02d}"), + widget.Clock(format="%Y-%m-%d %a %I:%M %p"), + widget.Systray(), + ], + size=30, + background="#282A2E", + border_width=[0, 0, 0, 0], + margin=[4, 4, 4, 4], + border_color=[ + "000000", + "000000", + "000000", + "000000", + ], + opacity=0.95, + ), + ), +] diff --git a/scripts/autostart.sh b/scripts/autostart.sh index 83299f9..38cc434 100755 --- a/scripts/autostart.sh +++ b/scripts/autostart.sh @@ -12,10 +12,4 @@ function run { nitrogen --save --set-zoom-fill ~/Pictures/Wallpapers/default.jpg run picom & disown # --experimental-backends --vsync should prevent screen tearing on most setups if needed -# Low battery notifier -#~/.config/qtile/scripts/check_battery.sh & disown - -# Start welcome -#run eos-welcome & disown -$HOME/.config/polybar/launch.sh & disown /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & disown # start polkit agent from GNOME