import os import subprocess from libqtile import layout, bar, widget, hook from libqtile.config import Click, Drag, Group, Match, Screen, Rule from libqtile.command import lazy from keys import MyKeys from libqtile.dgroups import simple_key_binder from colors import gruvbox, nord_fox, my_colors, dracula from spotify_widget import Spotify @hook.subscribe.startup_once def start_once(): autostart_path = os.path.expanduser('~/.config/autostart/autostart.sh') subprocess.run([autostart_path]) ## Keybindings my_keys = MyKeys(mod="mod4", browser="qutebrowser", term="alacritty", editor = "emacsclient -c -a 'emacs'") keys = my_keys.init_keys() dgroups_key_binder = simple_key_binder("mod4") mouse = my_keys.init_mouse() ## Groups and layouts groups = [] group_names = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0",] group_labels = ["Ⅰ", "Ⅱ", "Ⅲ", "Ⅳ", "Ⅴ", "Ⅵ", "Ⅶ", "Ⅷ", "Ⅸ", "Ⅹ",] group_layouts = ["monadtall", "monadtall", "monadtall", "monadtall", "monadtall", "monadtall", "monadtall", "monadtall", "monadtall", "monadtall",] for i in range(len(group_names)): groups.append( Group( name=group_names[i], layout=group_layouts[i].lower(), label=group_labels[i], )) def init_layout_theme(): return {"margin":5, "border_width":2, "border_focus": "#5e81ac", "border_normal": "#4c566a" } layout_theme = init_layout_theme() layouts = [ #layout.MonadTall(margin=8, border_width=2, border_focus="#5e81ac", border_normal="#4c566a"), layout.MonadTall(**layout_theme), #layout.MonadWide(margin=8, border_width=2, border_focus="#5e81ac", border_normal="#4c566a"), # layout.MonadWide(**layout_theme), # layout.Matrix(**layout_theme), # layout.Bsp(**layout_theme), layout.Floating(**layout_theme), # layout.RatioTile(**layout_theme), layout.Max(**layout_theme) ] # Widgets def init_widgets_defaults(): return dict(font="Noto Sans", fontsize = 12, padding = 2, foreground =dracula["fg"], background = dracula["bg"] ) widget_defaults = init_widgets_defaults() def init_widgets_list(): widgets_list = [ widget.Spacer( length=7, ), widget.Image( filename = "~/.config/qtile/rms.png", scale = "True", ), widget.Spacer( length=7, ), widget.GroupBox( font="FontAwesome", fontsize = 20, padding = 3, margin = 4, borderwidth = 1, active = dracula["cyan"], inactive = dracula["curr"], rounded = False, highlight_method = "line", this_current_screen_border = dracula["red"], other_current_screen_border = dracula["curr"], ), widget.CurrentLayout( font = "Noto Sans Bold", foreground = dracula["fg"], background = "#5B4B8A", ), widget.Spacer( length=5 ), widget.WindowName( font="JetBrains Mono Bold", fontsize = 12, foreground = dracula["green"], background = dracula["bg"] ), #widget.Notify( # font = "sansmono", # fontsize = "14", # ), #widget.Pomodoro( # font = 'sansmono', # fontsize = 17, # color_inactive = my_colors['blue'], # length_pomodori = 35, # ), #widget.Sep( # linewidth = 1, # padding = 10, # foreground = my_colors["black2"], # background = my_colors["black"] # ), # widget.TextBox( # font="FontAwesome", # text= '|' + str(subprocess.check_output("uname -r", shell=True).strip()).replace('b','') + '|', # foreground=my_colors["grey2"], # background=my_colors["black"], # padding = 0, # fontsize=14 # ), widget.Sep( linewidth = 1, padding = 10, foreground = my_colors["black2"], background = dracula["bg"] ), Spotify( fontsize = 12, background = dracula["bg"], color = dracula["green"], fmt = '{}', font = "JetBrains Mono Bold" ), widget.Volume( fontsize = 13, fmt = '|{}| ' , background = dracula["bg"], foreground = dracula['purple'], font = "JetBrains Mono" ), # widget.Mpris2( # fontsize= 16, # background = my_colors["red"], # objname="org.mpris.MediaPlayer2.spotify" # ), widget.Sep( linewidth = 1, padding = 10, foreground = my_colors["black2"], background = dracula["bg"] ), widget.Memory( measure_mem="G", fontsize=15, foreground = dracula["cyan"], background = dracula["bg"], font='JetBrains Mono Bold', ), widget.MemoryGraph( type='box', graph_color = dracula["cyan"], foreground = dracula["fg"], background = dracula["bg"], ), widget.Sep( linewidth = 1, padding = 10, foreground = my_colors["black2"], background = dracula["bg"], ), widget.ThermalSensor( threshold=50, fontsize=15, font='JetBrains Mono Bold', foreground = dracula["cyan"], background = dracula["bg"], ), widget.CPUGraph( type='box', graph_color = dracula["cyan"], background = dracula["bg"], ), widget.Sep( linewidth = 1, padding = 10, foreground = my_colors["black2"], background = dracula["bg"], ), widget.TextBox( font="FontAwesome", text="  ", foreground=dracula["orange"], background=dracula["bg"], padding = 2, fontsize=18 ), widget.Clock( font='JetBrains Mono Bold', foreground = dracula["cyan"], background = dracula["bg"], fontsize = 18, format="%d-%m-%Y | %H:%M" ), widget.Sep( linewidth = 1, padding = 3, foreground = my_colors["black2"], background = dracula["bg"] ), widget.Systray( background= dracula["bg"], icon_size=21, padding = 10 ), widget.Sep( linewidth = 1, padding = 20, foreground = my_colors["black2"], background = dracula["bg"] ), ] return widgets_list def init_bot_widgets(): bot_widgets = [ widget.Spacer( length=7, ), widget.Image( filename = "~/Pictures/rms/rms.png", scale = "True", ), widget.Spacer( length=7, ), widget.Spacer( length=5 ), widget.WindowName( font="JetBrains Mono Bold", fontsize = 12, foreground = dracula["green"], background = dracula["bg"] ), widget.Spacer( length=7, ), widget.Sep( linewidth = 1, padding = 10, foreground = my_colors["black2"], background = dracula["bg"] ), widget.Memory( measure_mem="G", fontsize=15, foreground = dracula["cyan"], background = dracula["bg"], font='JetBrains Mono Bold', ), widget.MemoryGraph( type='box', graph_color = dracula["cyan"], foreground = dracula["fg"], background = dracula["bg"], ), widget.Sep( linewidth = 1, padding = 10, foreground = my_colors["black2"], background = dracula["bg"], ), widget.ThermalSensor( threshold=50, fontsize=15, font='JetBrains Mono Bold', foreground = dracula["cyan"], background = dracula["bg"], ), widget.CPUGraph( type='box', graph_color = dracula["cyan"], background = dracula["bg"], ), widget.Sep( linewidth = 1, padding = 10, foreground = my_colors["black2"], background = dracula["bg"], ), widget.TextBox( font="FontAwesome", text="  ", foreground=dracula["orange"], background=dracula["bg"], padding = 2, fontsize=18 ), widget.Clock( font='JetBrains Mono Bold', foreground = dracula["cyan"], background = dracula["bg"], fontsize = 18, format="%d-%m-%Y | %H:%M" ), widget.Sep( linewidth = 1, padding = 3, foreground = my_colors["black2"], background = dracula["bg"] ), ] return bot_widgets widgets_list = init_widgets_list() def init_widgets_screen1(): widgets_screen1 = init_widgets_list() return widgets_screen1 def init_widgets_screen2(): widgets_screen2 = init_widgets_list() return widgets_screen2[:-2] widgets_screen1 = init_widgets_screen1() widgets_screen2 = init_widgets_screen2() def init_screens(): return [Screen(top=bar.Bar(widgets=init_widgets_screen1(), size=33, margin = [6,20,3,20]),), Screen(top=bar.Bar(widgets=init_widgets_screen2(), size=28, margin = 7))] screens = init_screens() follow_mouse_focus = True bring_front_click = False cursor_warp = True auto_fullscreen = True focus_on_window_activation = "smart" # or smart wmname = "Qtile-Apo11o"