diff options
Diffstat (limited to '.config/qtile')
-rw-r--r-- | .config/qtile/README.org | 539 |
1 files changed, 0 insertions, 539 deletions
diff --git a/.config/qtile/README.org b/.config/qtile/README.org deleted file mode 100644 index a82676a..0000000 --- a/.config/qtile/README.org +++ /dev/null @@ -1,539 +0,0 @@ -#+PROPERTY: header-args:python :tangle ./config.py - -* Qtile configuration -* Table of Contents -:PROPERTIES: -:TOC: :include all :ignore this -:END: -:CONTENTS: -- [[#imports][Imports]] -- [[#colors][Colors]] -- [[#keybindings][Keybindings]] - - [[#keyboard][Keyboard]] - - [[#mouse][Mouse]] -- [[#panel][Panel]] - - [[#groups][Groups]] - - [[#layouts][Layouts]] - - [[#widgets][Widgets]] - - [[#defaults][Defaults]] - - [[#custom-widgets][Custom Widgets]] - - [[#widget-list][Widget List]] -- [[#screens][Screens]] -- [[#settings][Settings]] - - [[#cursor][Cursor]] - - [[#wname][Wname]] -:END: -** Imports -#+begin_src python -import os -import subprocess -from libqtile import layout, bar, widget, hook -from libqtile.config import Click, Drag, Group, Match, Screen, Rule, Key -from libqtile.command import lazy -from libqtile.dgroups import simple_key_binder -from colors import gruvbox, nord_fox, my_colors, dracula -from spotify_widget import Spotify -#+end_src -** Colors -#+begin_src python :tangle ./colors.py -nord_fox = { - 'bg': "#2e3440", - 'fg': "#b9bfca", - 'fg_gutter': "#4b5668", - 'black': "#3b4252", - 'red': "#bf616a", - 'green': "#a3be8c", - 'yellow': "#ebcb8b", - 'blue': "#81a1c1", - 'magenta': "#b48ead", - 'cyan': "#88c0d0", - 'white': "#e5e9f0", - 'orange': "#c9826b", - 'pink': "#bf88bc", -} - -gruvbox = { - 'bg': '#282828', - 'fg': '#d4be98', - 'dark-red': '#ea6962', - 'red': '#ea6962', - 'dark-green': '#a9b665', - 'green': '#a9b665', - 'dark-yellow': '#e78a4e', - 'yellow': '#d8a657', - 'dark-blue': '#7daea3', - 'blue': '#7daea3', - 'dark-magenta': '#d3869b', - 'magenta': '#d3869b', - 'dark-cyan': '#89b482', - 'cyan': '#89b482', - 'dark-gray': '#665c54', - 'gray': '#928374', - - 'fg4': '#766f64', - 'fg3': '#665c54', - 'fg2': '#504945', - 'fg1': '#3c3836', - 'bg0': '#32302f', - 'fg0': '#1d2021', - 'fg9': '#ebdbb2' -} - -my_colors = { - "black" : "#000000", - "black2": "#2F343F", - "blue" : "#3384d0", - "red" : "#ff0000", - "grey" : "#a9a9a9", - "grey2" : "#C0C5CE", - "cyan" : "#6790EB", - "green" : "#62FF00", - "white" : "#F3F4F5", - "orange": "#FBA922", -} -dracula = { - "bg" : "#282a36" , - "fg" : "#f8f8f2", - "curr": "#44475a", - "cyan": "#8be9fd", - "green": "#50fa7b", - "orange": "#ffb86c", - "purple": "#bd93f9", - "red" : "#ff5555", -} - -#+end_src -** Keybindings -*** Keyboard -#+begin_src python - mod = "mod4" - browser = "qutebrowser" - term = "alacritty" - editor = "emacsclient -c -a 'emacs'" - dgroups_key_binder = simple_key_binder("mod4") #Change groups - keys = [ - Key([mod], "Return", - lazy.spawn(term), - ), - Key([mod, "shift"], "a", - lazy.spawn('anki'), - ), - Key([mod, "shift"], "m", - lazy.spawn("spotify"), - ), - Key([mod], "Tab", - lazy.spawn("rofi -show drun"), - ), - Key([mod], "r", - lazy.spawn("rofi -show run"), - ), - Key([mod], "w", - lazy.spawn("rofi -show window"), - ), - Key([mod], "p", - lazy.spawn("passmenu -p 'Password for: '"), - ), - Key([mod], "b", - lazy.spawn(browser), - ), - Key([mod, "shift"], "c", - lazy.next_layout(), - ), - Key([mod], "q", - lazy.window.kill(), - ), - Key([mod, "shift"], "r", - lazy.restart(), - ), - Key([mod, "shift"], "0", - lazy.shutdown(), - ), - Key([mod, "shift"], "e", - lazy.spawn(editor), - ), - ### Switch focus of monitors - Key([mod], "period", - lazy.next_screen(), - ), - ### Treetab controls - Key([mod, "shift"], "h", - lazy.layout.move_left(), - ), - Key([mod, "shift"], "l", - lazy.layout.move_right(), - ), - ### Window controls - Key([mod], "j", - lazy.layout.down(), - ), - Key([mod], "k", - lazy.layout.up(), - ), - Key([mod, "shift"], "j", - lazy.layout.shuffle_down(), - lazy.layout.section_down(), - ), - Key([mod, "shift"], "k", - lazy.layout.shuffle_up(), - lazy.layout.section_up(), - ), - Key([mod], "h", - lazy.layout.shrink(), - lazy.layout.decrease_nmaster(), - ), - Key([mod], "l", - lazy.layout.grow(), - lazy.layout.increase_nmaster(), - ), - Key([mod], "n", - lazy.layout.normalize(), - ), - Key([mod], "m", - lazy.layout.maximize(), - ), - Key([mod, "shift"], "f", - lazy.window.toggle_floating(), - ), - Key([mod], "f", - lazy.window.toggle_fullscreen(), - ), - ### Stack controls - Key([mod, "shift"], "Tab", - lazy.layout.rotate(), - lazy.layout.flip(), - ), - Key([mod, "shift"], "space", - lazy.layout.toggle_split(), - ), - ### Volume controls - Key([], "XF86AudioLowerVolume", - lazy.spawn('amixer sset Master 5%-'), - ), - Key([], "XF86AudioRaiseVolume", - lazy.spawn('amixer sset Master 5%+'), - ), - ### Spotify - Key([mod, "shift"], "p", - lazy.spawn("spotify-control play-pause"), - ), - Key([mod, "shift"], "n", - lazy.spawn("spotify-control next"), - ), - Key([mod, "shift"], "b", - lazy.spawn("spotify-control previous"), - ), - ### Change languages - Key([mod], "F1", - lazy.spawn("setxkbmap us -option caps:swapescape"), - ), - Key([mod],"F2", - lazy.spawn("setxkbmap gr"), - ), - ] - -#+end_src -*** Mouse -#+begin_src python - mouse = [ - Drag([mod], "Button1", lazy.window.set_position_floating(), start=lazy.window.get_position()), - Drag([mod], "Button3", lazy.window.set_size_floating(), start=lazy.window.get_size()), - Click([mod], "Button2", lazy.window.bring_to_front()), - ] -#+end_src - -** Panel -*** Groups -#+begin_src python -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], - )) -#+end_src -*** Layouts -#+begin_src python -def init_layout_theme(): - return {"margin":5, - "border_width":2, - "border_focus": dracula["cyan"], - "border_normal": dracula["bg"], - } - -layout_theme = init_layout_theme() - - -layouts = [ - layout.MonadTall(**layout_theme), - #layout.MonadWide(**layout_theme), - #layout.Matrix(**layout_theme), - #layout.Bsp(**layout_theme), - layout.Floating(**layout_theme), - # layout.RatioTile(**layout_theme), - layout.Max(**layout_theme) -] -#+end_src - -*** Widgets -**** Defaults -#+begin_src python -def init_widgets_defaults(): - return dict(font="Noto Sans", - fontsize = 12, - padding = 2, - foreground =dracula["fg"], - background = dracula["bg"] - ) - -widget_defaults = init_widgets_defaults() -#+end_src -**** Custom Widgets -***** Spotify -- A custom widget, pulls metadata via dbus, displaying song and artist of current playing song through spotify -- Qtile provides a similar widget named *Mpris2* - - /I wanted to play around with dbus, so I made this one/ -#+begin_src python :tangle ./spotify_widget.py -import dbus -import subprocess -from functools import partial -from libqtile.widget import base - -class Spotify(base.ThreadPoolText): - """A simple Spotify widget, made using dbus-python. - Show the song and artist of now listening song and allow basic mouse - control from the bar using spotify-control( - Github: https://github.com/J00LZ/spotify-control - AUR: https://aur.archlinux.org/packages/spotify-control - ): - - toggle pause (or play if stopped) on left click; - - skip forward in playlist on scroll up; - - skip backward in playlist on scroll down. - """ - - defaults = [ - ("color", "00ff00", "Text"), - ("update_interval", 0.5, "Update Time in seconds."), - ] - - def __init__(self, **config): - base.ThreadPoolText.__init__(self, "", **config) - self.add_defaults(Spotify.defaults) - self.local = None - self.add_callbacks( - { - "Button1": partial(subprocess.Popen, ["spotify-control", "play-pause"]), - "Button4": partial(subprocess.Popen, ["spotify-control", "next"]), - "Button5": partial(subprocess.Popen, ["spotify-control", "previous"]), - } - ) - - def now_playing(self): - """Return current song""" - session_bus = dbus.SessionBus() - bus_data = ("org.mpris.MediaPlayer2.spotify", "/org/mpris/MediaPlayer2") - spotify_bus = session_bus.get_object(*bus_data) - interface = dbus.Interface(spotify_bus, "org.freedesktop.DBus.Properties") - metadata = interface.Get("org.mpris.MediaPlayer2.Player", "Metadata") - data = { - "artist" : next(iter(metadata.get("xesam:albumArtist"))), - "song" : metadata.get("xesam:title") - } - song = data["song"] + " ♫ " + data["artist"] - self.layout.colour = self.color - return song - - def poll(self): - """Poll content for the text box.""" - try: - return self.now_playing() - except : - return "Spotify is not responding" -#+end_src -**** Widget List -#+begin_src python -def init_widgets_list(): - widgets_list = [ - widget.Spacer( - length=7, - ), - widget.Image( - filename = "~/.config/qtile/rms.png", - scale = "True", - margin = 2, - ), - 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.Image( - # filename = "~/.config/qtile/spotify2.png", - # scale = True, - # ), - # Spotify( - # fontsize = 12, - # background = dracula["bg"], - # color = dracula["green"], - # fmt = '{}', - # font = "JetBrains Mono Bold" - # ), - # widget.Moc( - # font = "JetBrains Mono", - # fontsize= 13, - # play_color=dracula["green"], - # paddig = 10, - # ), - widget.Spacer( - length=10, - ), - widget.Image( - filename = "~/.config/qtile/volume1.png", - scale = True, - ), - widget.Spacer( - length=7, - padding = 10, - ), - widget.Volume( - fontsize = 15, - fmt = '{} ' , - background = dracula["bg"], - foreground = dracula['orange'], - font = "JetBrains Mono", - margin = 10, - ), - # widget.Mpris2( - # fontsize= 16, - # background = my_colors["red"], - # objname="org.mpris.MediaPlayer2.spotify" - # ), - widget.Spacer( - length=7, - padding = 10, - ), - widget.Image( - filename = "~/.config/qtile/ram2.png", - scale = True, - ), - 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.Spacer( - length=7 - ), - widget.Image( - filename = "~/.config/qtile/cpu1.png", - scale = True, - ), - 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.Spacer( - length=5 - ), - 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.Spacer( - length=6 - ), - widget.Systray( - background= dracula["bg"], - icon_size=20, - padding = 10, - margin = 10, - ), - widget.Spacer( - length=5 - ), - ] - return widgets_list -#+end_src - -** Screens -#+begin_src python -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() -#+end_src - -** Settings -*** Cursor -#+begin_src python -follow_mouse_focus = True -bring_front_click = False -cursor_warp = True -auto_fullscreen = True -focus_on_window_activation = "smart" # or smart -#+end_src -*** Wname -#+begin_src python -wmname = "Qtile-Apo11o" -#+end_src |