def main(qtile): dynamic_groups = { 'music': {'exclusive': False, 'spawn': 'clementine'}, 'www': {'exclusive': False, 'layout': 'max'}, 'io': {'exclusive': False, 'layout': 'pidgin'}, 'java': {'exclusive': False, 'layout': 'stack'}, } # persist any already set up groups global static_groups for group in static_groups: dynamic_groups[group] = {'persist': True} apps = [ {'match': Match(wm_class=['Firefox', 'google-chrome', 'Google-chrome']), 'group': 'www'}, {'match': Match(wm_class=['Pidgin'], role=['Buddy List']), 'group': 'io'}, {'match': Match(wm_class=['Clementine', 'Viridian']), 'group': 'music'}, {'match': Match(wm_class=['sun-awt-X11-XFramePeer', 'GroupWise']), 'group': 'java'}, ] dgroups = DGroups(qtile, dynamic_groups, apps, simple_key_binder('mod3'))
def main(qtile): groups = { 'term': {'init': True, 'persist': True, 'layout': 'ratiotile', 'spawn': 'urxvt', 'exclusive': True}, 'www': {'init': True, 'exclusive': True, 'spawn': 'chromium' }, 'emacs': {'persist': True, 'spawn': 'emacs', 'exclusive': True}, } apps = [ {'match': Match( wm_type=['dialog', 'utility', 'splash']), 'float': True}, {'match': Match( wm_class=['Chromium', 'Chromium-browser', 'Chrome', 'Minefield'], role=['browser']), 'group': 'www'}, {'match': Match(title=['Developer Tools']), 'group': 'www-inspector'}, {'match': Match(wm_class=['URxvt']), 'group': 'term'}, {'match': Match(wm_class=['Emacs']), 'group': 'emacs'} ] DGroups(qtile, groups, apps, simple_key_binder(mod))
def main(qtile): dynamic_groups = { 'music': { 'exclusive': False, 'spawn': 'clementine' }, 'www': { 'exclusive': False, 'layout': 'max' }, 'io': { 'exclusive': False, 'layout': 'pidgin' }, 'java': { 'exclusive': False, 'layout': 'stack' }, } # persist any already set up groups global static_groups for group in static_groups: dynamic_groups[group] = {'persist': True} apps = [ { 'match': Match(wm_class=['Firefox', 'google-chrome', 'Google-chrome']), 'group': 'www' }, { 'match': Match(wm_class=['Pidgin'], role=['Buddy List']), 'group': 'io' }, { 'match': Match(wm_class=['Clementine', 'Viridian']), 'group': 'music' }, { 'match': Match(wm_class=['sun-awt-X11-XFramePeer', 'GroupWise']), 'group': 'java' }, ] dgroups = DGroups(qtile, dynamic_groups, apps, simple_key_binder('mod3'))
def main(qtile): groups = { "h4x": {"init": True, "persist": True, "exclusive": True}, "design": {}, "www": {"exclusive": True}, # master set the master window/windows of layout "emesene": {"layout": "tile", "master": Match(role=["main"])}, "gajim": {"layout": "tile", "master": Match(role=["roster"]), "exclusive": True}, } apps = [ {"match": Match(wm_class=["Gimp"]), "group": "design", "float": True}, {"match": Match(wm_class=["Terminator", "Qterminal"]), "group": "h4x"}, {"match": Match(wm_class=["emesene"]), "group": "emesene"}, {"match": Match(wm_class=["Chromium-browser", "Minefield"], role=["browser"]), "group": "www"}, {"match": Match(wm_class=["Gajim.py"]), "group": "gajim"}, {"match": Match(wm_class=["Wine"]), "float": True, "group": "wine"}, {"match": Match(wm_class=["Xephyr"]), "float": True}, # Everything i want to be float, but don't want to change group { "match": Match( title=["nested", "gscreenshot"], wm_class=["Guake.py", "MPlayer", "Exe", re.compile("Gnome-keyring-prompt.*?"), "Terminal"], wm_type=["dialog", "utility", "splash"], ), "float": True, "intrusive": True, }, ] dgroups = DGroups(qtile, groups, apps, simple_key_binder(mod)) # fast switching from/to terminal key = Key([], "F12", lazy.function(TermHack(qtile, "h4x"))) qtile.mapKey(key) # fast switching to urgent key = Key(["shift"], "F12", lazy.function(to_urgent)) qtile.mapKey(key)
Group("🏠", layout='monadtall'), Group("🌎", layout='max'), Group("🎮", layout='floating'), Group("🧲", layout='monadtall'), Group("▶️", layout='monadtall'), Group("🐧", layout='monadtall'), Group("🦘", layout='monadtall'), Group("🌲", layout='monadtall'), Group("⭐", layout='monadtall'), Group("👻", layout='floating') ] # Allow MODKEY+[0 through 9] to bind to groups, see https://docs.qtile.org/en/stable/manual/config/groups.html # MOD4 + index Number : Switch to Group[index] # MOD4 + shift + index Number : Send active window to another Group dgroups_key_binder = simple_key_binder("mod4") layout_theme = { "border_width": 2, "margin": 8, "border_focus": "e1acff", "border_normal": "1D2330" } layouts = [ #layout.Tile(shift_windows=True, **layout_theme), # layout.VerticalTile(**layout_theme), layout.MonadTall(**layout_theme), layout.Max(**layout_theme), layout.TreeTab(font="Cantarell", fontsize=10,
# Everything i want to be float, but don't want to change group Rule(Match(title=['nested', 'gscreenshot'], wm_class=['Guake.py', 'Exe', 'Onboard', 'Florence', 'Terminal', 'Gpaint', 'Kolourpaint', 'Wrapper', 'Gcr-prompter', 'Ghost', re.compile('Gnome-keyring-prompt.*?')], ), float=True, intrusive=True), # floating windows Rule(Match(wm_class=['Wine', 'Xephyr']), float=True), ] # auto bind keys to dgroups mod+1 to 9 dgroups_key_binder = simple_key_binder(mod) # Layouts Config # ------------------- # Layout Theme layout_theme = { "border_width": 2, "margin": 3, "border_focus": "#005F0C", "border_normal": "#555555" } layouts = [ layout.Max(**layout_theme),
matches=[Match(wm_class=['Google-chrome', 'google-chrome'])]), Group('misc', layout='vtile', matches=[Match(wm_class=['Keepassx'])]), Group('terms', layout='vtile', matches=[Match(title=['term'])]), Group('www-f', layout='vtile', matches=[Match(wm_class=['Firefox'])]), Group('gimp', layout='gimp', matches=[Match(wm_class=['Gimp'])]), Group('miscterms', layout='vtile', matches=[Match(title=['miscterm'])]), Group('monitoring', layout='matrix', matches=[Match(title=['feh', 'mplayer2'])]), ] dgroups_key_binder = simple_key_binder(MOD_KEY) border_args = { 'border_width': 1, } layouts = [ layout.VerticalTile(name='vtile'), layout.Matrix(name='matrix'), # layout.Slice('top', 192, name='im', role='irssi', # fallback=layout.Slice('bottom', 256, role='buddy_list', # fallback=layout.Stack(stacks=1))), layout.Slice('left', 192, name='gimp', fallback=layout.Slice('right', 256, fallback=layout.Stack(num_stacks=1, **border_args))), ]
"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()) ] groups = [Group("%d" % (n + 1)) for n in range(5)] groups.append(Group('Xephyr', init=False, matches=[Match(wm_class=['Xephyr'])])) dgroups_key_binder = simple_key_binder(mod) dgroups_app_rules = [] layouts = [ layout.MonadTall(border_focus="#a0a0d0", border_normal="#202030", border_width=1), layout.Max() ] cyan = ["#00afff", "#8cfcff"] red = ["#bb0000", "#990000"] lt_grey = ["#828282", "#a4a4a4"] med_grey = ["#494949", "#595959"] grey = ["#656565", "#323232"] dk_grey = ["#040404", "#292929"]
) ] # groups from libqtile.config import Group, Match groups = [ Group("a"), Group("b"), Group("c", matches=[Match(wm_class=["Firefox"])]), ] # allow mod3+1 through mod3+0 to bind to groups; if you bind your groups # by hand in your config, you don't need to do this. from libqtile.dgroups import simple_key_binder dgroups_key_binder = simple_key_binder("mod3") # Layouts: http://docs.qtile.org/en/latest/manual/ref/layouts.html from libqtile import layout layouts = [ layout.Max(), layout.Stack(stacks=2) ] # Client-Server Scripting Model from libqtile.command import Client c = Client() print c.screen.info()["index"]
screens = [Screen(top=_top_bar)] # Drag floating layouts. mouse = [ Drag(['mod4'], "Button1", lazy.window.set_position_floating(), start=lazy.window.get_position()), Drag(['mod4'], "Button3", lazy.window.set_size_floating(), start=lazy.window.get_size()), Click(['mod4'], "Button2", lazy.window.bring_to_front()) ] dgroups_key_binder = simple_key_binder('mod4', '123qw') dgroups_app_rules = [] # type: List main = None # WARNING: this is deprecated and will be removed soon follow_mouse_focus = True bring_front_click = False cursor_warp = False floating_layout = layout.Floating(float_rules=[ # Run the utility of `xprop` to see the wm class and name of an X client. *layout.Floating.default_float_rules, Match(wm_class='confirmreset'), # gitk Match(wm_class='makebranch'), # gitk Match(wm_class='maketag'), # gitk Match(wm_class='ssh-askpass'), # ssh-askpass Match(title='branchdialog'), # gitk Match(title='pinentry'), # GPG key password entry ])
from libqtile.dgroups import simple_key_binder from libqtile.config import Group from grayskull.constants import MOD_KEY groupings = [ Group("www"), Group("chat"), Group("editor"), Group("term"), Group("etc"), ] bindings = simple_key_binder(MOD_KEY, "uiop7")
def main(qtile): groups = { 'h4x': { 'init': True, 'persist': True, 'exclusive': True }, 'design': {}, 'www': { 'exclusive': True }, # master set the master window/windows of layout 'emesene': { 'layout': 'tile', 'master': Match(role=['main']) }, 'gajim': { 'layout': 'tile', 'master': Match(role=['roster']), 'exclusive': True }, } apps = [ { 'match': Match(wm_class=['Gimp']), 'group': 'design', 'float': True }, { 'match': Match(wm_class=['Terminator', 'Qterminal']), 'group': 'h4x' }, { 'match': Match(wm_class=['emesene']), 'group': 'emesene' }, { 'match': Match(wm_class=['Chromium-browser', 'Minefield'], role=['browser']), 'group': 'www' }, { 'match': Match(wm_class=['Gajim.py']), 'group': 'gajim' }, { 'match': Match(wm_class=['Wine']), 'float': True, 'group': 'wine' }, { 'match': Match(wm_class=['Xephyr']), 'float': True }, # Everything i want to be float, but don't want to change group { 'match': Match(title=['nested', 'gscreenshot'], wm_class=[ 'Guake.py', 'MPlayer', 'Exe', re.compile('Gnome-keyring-prompt.*?'), 'Terminal' ], wm_type=['dialog', 'utility', 'splash']), 'float': True, 'intrusive': True }, ] dgroups = DGroups(qtile, groups, apps, simple_key_binder(mod)) # fast switching from/to terminal key = Key([], "F12", lazy.function(TermHack(qtile, 'h4x'))) qtile.mapKey(key) # fast switching to urgent key = Key(['shift'], "F12", lazy.function(to_urgent)) qtile.mapKey(key)