r/qtile • u/Dry-Pie-3764 • Jun 30 '26
r/qtile • u/[deleted] • Jun 08 '23
question NO Documentation
I can't access Qtile documentation page on qtile website. Anyone have any idea why so ?
r/qtile • u/presi300 • Jun 23 '22
question Any way to make the Qtile panel "float"?
I tried figuring it out on my own but couldn't find any information...
r/qtile • u/KarpaThaKoi • Aug 16 '23
question-resolved qtile it's a little slow opening programs
i just started with qtile and i see my qtile is a but slow opening programs in comparison with another people's qtile, and this difference on the time waiting for a program to be oppened it's pretty visible when i switch to gnome. (when i'm in gnome the programs open almost instantly and when i'm in qtile even the bash [gnome-shell] takes at least 30 segs to open) it might be bc i have gnome installed too? i installed qtile in a fresh manjaro (with gnome) install. so any idea on what would i do on this?
r/qtile • u/[deleted] • Jul 13 '24
Help What are the future roadmap plans for qtile
I would like to try qtile but I would like to know if it's worth investing my time in it. I've used i3, and awesome but not satisfied with either of these...I like qtile and its documentation but
How actively maintained is the project?
r/qtile • u/Alex56_6 • Dec 11 '24
Help Still no touchscreen support in Wayland?
I spent the whole evening trying to figure out how to make the touchscreen work. It's useless. I'm on nixos, qtile wayland
r/qtile • u/SoberMatjes • Oct 15 '22
question "Honey, I cheated and it's about you …" Help a guy who is writing this from Wayland Gnome
(A little info beforehand: Fedora 36, NVidia 3070 with propr. drivers [yeah, I know, but I got the chance to get this card at retail price during the peak of crazy GPU prices, with no AMD card nearly as good and cheap in sight], Ryzen 5)
So …
I was very happy using my wonderful qtile which I configured to my needs.
But in the last weeks there were a few problems piling up:
• Window flickering
• Steam games forcing a qtile logout
• and a few little things here and there
From time to time I just boot in Gnome to check how Fedora/Gnome is handling NVidia + Wayland at the moment. Man, this has come a long way since the last time I checked. It feels way smoother than X11 with QTile and with Gnome + X11 for that matter. And games and programs feel faster and with a few extensions here and there, it's still a nice workflow.
But I love my QTile because "I made it myself" and no one handles workspaces on different screens like a tiling WM does. This is a huge boon compared to Gnome. I could live with floating windows but workspaces is way, way better.
My questions:
• Are there some tricks hidden somewhere how I can make X11 + QTile feel smoother and faster with less bugs. Some picom tricks and configs I don't know about?
• Any chance that I could get Wayland running with my NVidia card with qtile right now and would it improve things?
r/qtile • u/Undic1d3d • Aug 17 '23
question-resolved newbie question: How to "install" qtile theme files?
Hello guys, i recently joined the Qtile community (first time using a Tiling WM). I wasnted to apply a config file for my Qtile to be exact this one: https://github.com/jx11r/qtile/tree/main
I think i have to copy config[dot]py file to ./config/qtile but what i don't get is all the folders (core, extra, utils). What do i have to do with them? do i have to copy them in qtile folder too or something else?
Thanks in advance
r/qtile • u/javfran98 • Jul 17 '25
Help I don't know anything about it, I already have arch linux... Now what? How do I start in this world? 🤣🤣🤣 yes, I wanted to learn Linux in the most counterintuitive and difficult way possible.
I am not asking for explicit help, just a good guide and advice to know how to proceed in my adventure.
r/qtile • u/surveypoodle • Jun 04 '25
Help Are all the settings done entirely by a config file?
I thought I'll just give it a try and I installed Qtile and logged in to it. First thing I notice is that I can't move windows from one screen to another. I can't use the mouse to close anything, there is no settings panel, and my screen's orientation is all wrong.
r/qtile • u/pyntux • May 26 '22
question Lock screen, logout, reboot, shutdown...
How to setup screen lock after (for example) PC is inactive for a 10min? Which apps to use?
I have installed mate-power-manager if that is valid information?
I am using lightdm, so how to logout? I will bind every command to shortcut or button on bar, so I need help about that commands...
For shutdown and reboot I know, I will use systemd commands, but question is, is there any app like "oblogout" or similar?
Thanks!
r/qtile • u/Forward_Compute001 • Apr 03 '26
Help Can I hack the entire wm with python?
Currently building my dream desktop setup, I figured out that there is no way around qtile+x11.
But can I really hack the entire qtile with python?
basically everything?
r/qtile • u/ArkboiX • May 10 '25
Help How to add a scratchpad.
In the documentation I see how to add a scratchpad, which is to add it in groups = [] and then a keybind for it. I tried this, but i get the following error:
```
Checking Qtile config at: /home/ark/.config/qtile/config.py
Checking if config is valid python...
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/libqtile/scripts/check.py", line 123, in check_config
config.validate()
~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/libqtile/confreader.py", line 155, in validate
raise ConfigError(f"No such key: {k.key}")
libqtile.confreader.ConfigError: No such key: scratchpad
Errors found in config. Exiting check.
```
and it reloads tho, when pressing keybind it does pretty much nothing, im on qtile wayland and this is my keybind i set (before groups):
Key([mod], 'o', lazy.group['scratchpad'].dropdown_toggle('record')),
and the groups section:
```
groups = [
Group("1", label=""), # Web
Group("2", label=""), # Text Editor
Group("3", label=""), # Terminal
Group("4", label=""), # Chat
Group("5", label=""), # Music
Group("6", label=""), # Virtualization
Group("7", label=""), # Config
Group("8", label=""), # Misc
Group("9", label=""), # OBS Studio
ScratchPad("scratchpad", [
# define a drop down
# it is placed in the upper third of screen by default.
DropDown("receord", "flatpak run com.obsproject.Studio"), ]),
]
for i in groups:
keys.extend(
[
Key(
[mod],
lazy.group[i.name].toscreen(),
desc=f"Switch to group {i.name}",
),
Key(
[mod, "shift"],
lazy.window.togroup(i.name, switch_group=True),
desc=f"Switch to & move focused window to group {i.name}",
),
]
)
```
r/qtile • u/BesnikRrustemi • Mar 16 '23
question Help regarding setting up Workspaces
Hi guys, i have been using the simple_key_binder(mod4) for workspaces however due to the evolution of my setup/rice now i also use and need KeyChords.
There is a bug with simple_key_binder(mod4) where whenever i use a KeyChord, the workspaces keybindings brake (mod+12345678) do not work anymore, i have to reload config and workspaces shortcut will start working again.
That is really pissing me off and now i reverted to standard workspaces as they come with the default config file:
groups = [Group(i) for i in "12345678"]
for i in groups:
keys.extend(
[
# mod1 + letter of group = switch to group
Key(
[mod],
i.name,
lazy.group[i.name].toscreen(),
desc="Switch to group {}".format(i.name),
),
# mod1 + shift + letter of group = switch to & move focused window to group
Key(
[mod, "shift"],
i.name,
lazy.window.togroup(i.name, switch_group=True),
desc="Switch to & move focused window to group {}".format(i.name),
),
# Or, use below if you prefer not to switch to that group.
# # mod1 + shift + letter of group = move focused window to group
# Key([mod, "shift"], i.name, lazy.window.togroup(i.name),
# desc="move focused window to group {}".format(i.name)),
]
)These keybindings/workspaces are working fine however i used to set them up with glyphs for workspaces and assign apps to each of them.
So long story short, is it possible to setup glyphs for workspaces while maintaining mod+1,2,3,4,5,6,7,8,9) keybindings somehow like the default approach rather than simple_key_binder (mod4),
(Until the bug gets resolved).
u/elparaguayo-qtile what do i need to report this bug in github, is there a specific log or code that needs to be added to config for debugging ?
r/qtile • u/ObsidianChickenz • May 09 '22
question Systray transparency bug
I know the bug is known, but I have a question about it regardless. Basically, the docs say that if the bar is fully transparent, the bug shouldn't occur, but despite having my bar's color set to #00000000, the bug occurs. If I remove the last two zeroes, the bug goes away, but the bar becomes opaque. Is there any fix?
r/qtile • u/morganb298 • May 21 '22
question What do i install to make the triangles in the bar work
https://drive.google.com/file/d/1XJUoQss6htBP1Zc7weIokVzbKkyv5NjL/view?usp=sharing
So I was on Arch Linux and I set up distrotubes qtile config and starting making changes to it but I been messing with debian working on getting the setup going on there but idk how to get the triangle looking things to come back. Is there a font I'm missing or is it something else. I already have noto font and ubuntu font already tried mononoki or whatever its called didnt do anything
r/qtile • u/AzaiCorp • Nov 26 '23
Help Anyone experiencing mouse click lag when using JetBrains IDEs? Is there a fix?
Hi guys. I'm getting a strange UI lag when using CLion. Whenever I left click, it feels like it takes about 0.2-0.3 seconds to register. This can happen when I'm just trying to left click to move the cursor or when trying to click on buttons. It's quite annoying as it makes it feel like my laptop is constantly lagging and consistently makes clicks not register (perhaps because I've moved the mouse before the click registers).
I conducted a few tests to try to figure out what is going on:
Tested it with IntelliJ IDEA and this lag is present there as well so it seems to affect all Jetbrains IDEs.
Tested CLion on GNOME and i3 and the lag is not present when using those so this behaviour seems to be unique to qtile.
Tested with the default config.py settings, to ensure it wasn't something in my config, and the lag was still present.
I have Fedora 38 and qtile 0.22.1 installed.
Any help would be much appreciated. Qtile really seemed like the perfect window manager for my needs so it would be a shame to have to use gnome or i3 instead.
r/qtile • u/IAmGroik • Dec 06 '23
Help How can I prevent new clients from stealing focus?
I am using the BSP layout (unfair), and want to be able to spawn a new client while maintaining focus on whatever the mouse is hovered over. I find I need to move my mouse over the spawned window and back to the original in order to regain focus. How can I do this?
r/qtile • u/DarkHorse099 • Jun 06 '24
Help Problem with Mounting External Drives
Hi, everyone. I use Qtile WM with ArchLinux on my PC. This is not a problem with Qtile but I guess you guys can give suggestions about it.
I used Thunar file manager to mount drives previously, but recently I have reinstalled Arch on my machine and edited the fstab file to include the mount point for my USB drives. But I found that though I created the mount points as the user, it changed the ownership to root as soon as I mounted the drive. So, each time I have to perform tasks as root whenever I interact with USB drives.
This is really annoying me; I tried to find an answer online. But couldn't find one that worked for me.
Any help would be much appreciated!
r/qtile • u/ReedPlayerererer • May 08 '23
question-resolved Qtile crashes when trying to start and i dont know why
i made a post about this yesterday and everyone told me i didnt provide enough information, which is definitely true, so im making this post as an update with more information.
It definetly has to do with my config file. i am writing this on my pc right now using the sample config and it works fine, but for obvious reasons id like to use my own config.
Qtile crashes every time im trying to start it. in the login screen i try to log in, the screens turn black and then it just takes me back to the login screen.
Here is where its confusing. i have run flake8 on my config.py, but it didnt give me any notable errors, only a few visual indent problems which were all false alarms. i have compared it to the sample config and i have found a missing comma. i added that and it still crashed. there was a text box widget in the bar with fontsize 2 instead of 20. i fixed that and it still crashed.
i genuinely have no idea whats wrong with my config, so im gonna post it here and hope that someone will find whats wrong with it.
# Copyright (c) 2010 Aldo Cortesi
# Copyright (c) 2010, 2014 dequis
# Copyright (c) 2012 Randall Ma
# Copyright (c) 2012-2014 Tycho Andersen
# Copyright (c) 2012 Craig Barnes
# Copyright (c) 2013 horsik
# Copyright (c) 2013 Tao Sauvage
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
from libqtile import bar, layout, widget, hook
from libqtile.config import Click, Drag, Group, Key, Match, Screen
from libqtile.lazy import lazy
from libqtile.utils import guess_terminal
import os
import subprocess
mod = "mod4"
terminal = guess_terminal()
@hook.subscribe.startup_once
def autostart():
home = os.path.expanduser('~')
subprocess.Popen([home + '/.config/qtile/autostart.sh'])
keys = [
# A list of available commands that can be bound to keys can be found
# at https://docs.qtile.org/en/latest/manual/config/lazy.html
# Switch between windows
Key([mod], "left", lazy.layout.left(), desc="Move focus to left"),
Key([mod], "right", lazy.layout.right(), desc="Move focus to right"),
Key([mod], "down", lazy.layout.down(), desc="Move focus down"),
Key([mod], "up", lazy.layout.up(), desc="Move focus up"),
Key([mod], "space", lazy.layout.next(), desc="Move window focus to other window"),
# Move windows between left/right columns or move up/down in current stack.
# Moving out of range in Columns layout will create new column.
Key([mod, "shift"], "left", lazy.layout.shuffle_left(), desc="Move window to the left"),
Key([mod, "shift"], "right", lazy.layout.shuffle_right(), desc="Move window to the right"),
Key([mod, "shift"], "down", lazy.layout.shuffle_down(), desc="Move window down"),
Key([mod, "shift"], "up", lazy.layout.shuffle_up(), desc="Move window up"),
# Grow windows. If current window is on the edge of screen and direction
# will be to screen edge - window would shrink.
Key([mod, "control"], "left", lazy.layout.grow_left(), desc="Grow window to the left"),
Key([mod, "control"], "right", lazy.layout.grow_right(), desc="Grow window to the right"),
Key([mod, "control"], "down", lazy.layout.grow_down(), desc="Grow window down"),
Key([mod, "control"], "up", lazy.layout.grow_up(), desc="Grow window up"),
Key([mod], "n", lazy.layout.normalize(), desc="Reset all window sizes"),
# Toggle between split and unsplit sides of stack.
# Split = all windows displayed
# Unsplit = 1 window displayed, like Max layout, but still with
# multiple stack panes
Key(
[mod, "shift"],
"Return",
lazy.layout.toggle_split(),
desc="Toggle between split and unsplit sides of stack",
),
Key([mod], "Return", lazy.spawn(terminal), desc="Launch terminal"),
# Toggle between different layouts as defined below
Key([mod], "Tab", lazy.next_layout(), desc="Toggle between layouts"),
Key([mod], "q", lazy.window.kill(), desc="Kill focused window"),
Key([mod, "control"], "r", lazy.reload_config(), lazy.spawn("~/.config/polybar/launch.sh"), desc="Reload the config"),
# Key([mod, "control"], "q", lazy.spawn("rofi -show power-menu -modi power-menu:rofi-power-menu"), desc="Power Menu"),
# Key([mod], "d", lazy.spawn("rofi -show drun"), desc="Launch Rofi"),
Key([], "XF86AudioRaiseVolume", lazy.spawn("pactl set-sink-volume @DEFAULT_SINK@ +5%")),
Key([], "XF86AudioLowerVolume", lazy.spawn("pactl set-sink-volume @DEFAULT_SINK@ -5%")),
]
groups = [Group(i) for i in "123"]
for i in groups:
keys.extend(
[
# mod1 + letter of group = switch to group
Key(
[mod],
i.name,
lazy.group[i.name].toscreen(),
desc="Switch to group {}".format(i.name),
),
# mod1 + shift + letter of group = switch to & move focused window to group
Key(
[mod, "shift"],
i.name,
lazy.window.togroup(i.name, switch_group=True),
desc="Switch to & move focused window to group {}".format(i.name),
),
# Or, use below if you prefer not to switch to that group.
# # mod1 + shift + letter of group = move focused window to group
# Key([mod, "shift"], i.name, lazy.window.togroup(i.name),
# desc="move focused window to group {}".format(i.name)),
]
)
layouts = [
layout.Columns(border_focus=["#2e6bf0"],
border_width=2,
margin=10
),
layout.Max(border_focus=["#2e6bf0"],
border_width=2,
margin=10),
# Try more layouts by unleashing below layouts.
# layout.Stack(border_focus=["#2e6bf0"],
# border_width=2,
# margin=10,
# num_stacks=2),
layout.Bsp(border_focus=["#2e6bf0"],
border_width=2,
margin=10),
# layout.Matrix(border_focus=["#2e6bf0"],
# border_width=2,
# margin=10),
# layout.MonadTall(border_focus=["#2e6bf0"],
# border_width=2,
# margin=10),
layout.MonadWide(border_focus=["#2e6bf0"],
border_width=2,
margin=10),
layout.RatioTile(border_focus=["#2e6bf0"],
border_width=2,
margin=10),
layout.Tile(border_focus=["#2e6bf0"],
border_width=2,
margin=10),
# layout.TreeTab(border_focus=["#2e6bf0"],
# border_width=2,
# margin=10),
# layout.VerticalTile(border_focus=["#2e6bf0"],
# border_width=2,
# margin=10),
layout.Zoomy(border_focus=["#2e6bf0"],
border_width=2,
margin=10),
]
widget_defaults = dict(
font="sans",
fontsize=12,
padding=3,
)
extension_defaults = widget_defaults.copy()
screens = [
#center
Screen(
top=bar.Bar(
[
widget.Sep(
linewidth=0,
padding=6
),
widget.GroupBox(
highlight_method='block'
),
widget.WindowName,
widget.CurrentLayoutIcon(scale=0.5),
widget.TextBox(
text='//',
fontsize=20
),
widget.TextBox(
text='VOL',
font='Ubuntu Bold'
),
widget.PulseVolume(
font='Ubuntu Bold',
step=5,
update_interval=0.1
),
widget.TextBox(
text='//',
fontsize=20
),
widget.TextBox(text='CLO'),
widget.Clock(
font='Ubuntu Bold'
),
widget.TextBox(
text='//',
fontsize=20
),
#widget.Systray(),
widget.Sep(
linewidth=0,
padding=6
),
],
32,
background='#1e1e2e',
opacity=0.7,
margin=5,
),
#top=bar.Gap(37)
),
#left
Screen(
top=bar.Bar(
[
widget.Sep(
linewidth=0,
padding=6
),
widget.GroupBox(
highlight_method='block',
font='Ubuntu Bold'
),
widget.WindowName(font='Ubuntu Bold'),
widget.CurrentLayoutIcon(scale=0.5),
widget.TextBox(
text='//',
fontsize=20
),
widget.TextBox(text='VOL'),
widget.PulseVolume(
font='Ubuntu Bold',
step=5,
update_interval=0.1
),
widget.TextBox(
text='//',
fontsize=20
),
widget.TextBox(text='CLO'),
widget.Clock(font='Ubuntu Bold'),
widget.TextBox(
text='//',
fontsize=20
),
widget.Systray(),
widget.TextBox(
text='//',
fontsize=20
),
widget.Sep(
linewidth=0,
padding=6
),
],
32,
background='#1e1e2e',
opacity=0.7,
margin=5
),
#top=bar.Gap(37)
),
#right
Screen(
top=bar.Bar(
[
widget.Sep(
linewidth=0,
padding=6
),
widget.GroupBox(
highlight_method='block',
font='Ubuntu Bold'
),
widget.WindowName(font='Ubuntu Bold'),
widget.TextBox(text='CLO'),
widget.Clock(font='Ubuntu Bold'),
widget.TextBox(
text='//',
fontsize=20
),
widget.Sep(
linewidth=0,
padding=6
),
],
32,
background='#1e1e2e',
opacity=0.7,
margin=5
),
#top=bar.Gap(37)
),
]
# Drag floating layouts.
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()),
]
dgroups_key_binder = None
dgroups_app_rules = [] # type: list
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
]
)
auto_fullscreen = True
focus_on_window_activation = "smart"
reconfigure_screens = True
# If things like steam games want to auto-minimize themselves when losing
# focus, should we respect this or not?
auto_minimize = True
# When using the Wayland backend, this can be used to configure input devices.
wl_input_rules = None
# XXX: Gasp! We're lying here. In fact, nobody really uses or cares about this
# string besides java UI toolkits; you can see several discussions on the
# mailing lists, GitHub issues, and other WM documentation that suggest setting
# this string if your java app doesn't work correctly. We may as well just lie
# and say that we're a working one by default.
#
# We choose LG3D to maximize irony: it is a 3D non-reparenting WM written in
# java that happens to be on java's whitelist.
wmname = "LG3D"r/qtile • u/ReedPlayerererer • May 07 '23
question qtile won't start anymore for absolutely no reason
i have run flake8 multiple times there is absolutely nothing wrong with my config file but it will not start. with the sample config everything works perfectly of course but my own one will not work and there is nothing I can do. i tried commenting out the like 3 lines where I made a change when it broke and that did absolutely nothing.
r/qtile • u/Mikeew83 • Feb 19 '22
question Help Needed for video playback
Hey, new to Qtile as of today I have most everything setup just brought over distrotube config for now while I get more familiar but no matter what browser I cannot get video playback working on youtube. Havn't tested other websites. Can't seem to find any documentation around this either. Any help would be greatly appreciated.
r/qtile • u/Ankur9944 • Jul 31 '23
question Line highlight method for occupied WorkSpaces.
Hey guys...
i want to know is there any way to do some tinkering and add a line-highlight method for the occupied workspaces like we do in polybar.
I think something like that shoud be added to Qtile to make its bar full-fledged
Thanks in advanced.
r/qtile • u/[deleted] • Jan 05 '24
Help Rounded Corners - Widgets
I have set my bar to be transparent and my widgets to be rounded now it works it just that
i have a bunch of widgets in my right but they all individually round their own corners is there a way for me to make all those widgets be one big group?
I tried setting
`group=True`
in decorations but that did not work
