summaryrefslogtreecommitdiff
path: root/.config/qtile
diff options
context:
space:
mode:
Diffstat (limited to '.config/qtile')
-rw-r--r--.config/qtile/README.org539
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