question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Trying to use my custom config, but there is a Error while reading config file

See original GitHub issue

Issue description

I’m trying to create my custom config, but no matter what i change in my config, it always leads to this problem The thing that made me go here to ask about it is because it doesn’t look that my config.py is wrong, I’ve put a logger.warning() in each “category” of my config.py and it’s going through every single one of them I’ll put the .config/qtile/config.py and the .local/share/qtile/qtile.log for you to see

Qtile version

0.18.1

Stack traces

qtile.log

2021-10-11 23:22:54,022 WARNING libqtile config.py:<module>():L49 variables
2021-10-11 23:22:54,022 WARNING libqtile config.py:<module>():L108 keybindings
2021-10-11 23:22:54,022 WARNING libqtile config.py:<module>():L130 groups
2021-10-11 23:22:54,023 WARNING libqtile config.py:<module>():L142 layouts
2021-10-11 23:22:54,023 WARNING libqtile config.py:<module>():L156 Widget
2021-10-11 23:22:54,023 WARNING libqtile config.py:<module>():L188 screen
2021-10-11 23:22:54,023 WARNING libqtile config.py:<module>():L214 mouse
2021-10-11 23:22:54,023 WARNING libqtile config.py:<module>():L218 end
2021-10-11 23:22:54,023 ERROR libqtile manager.py:load_config():L116 Error while reading config file (No such key: ,)
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/libqtile/core/manager.py", line 114, in load_config
    self.config.validate()
  File "/usr/lib/python3.9/site-packages/libqtile/confreader.py", line 125, in validate
    raise ConfigError("No such key: %s" % k.key)
libqtile.confreader.ConfigError: No such key: ,

Configuration

config.py


#
## Imports                   
#

from typing import List  # noqa: F401

from libqtile import bar, layout, widget
from libqtile.config import Click, Drag, Group, Match, Screen, EzKey
from libqtile.lazy import lazy
from libqtile.utils import shuffle_down
from libqtile.log_utils import logger

#
## Variables
#

mod = 'mod4'
altMod = 'mod1'

terminal = "kitty"
browser = "firefox"
editor = "emacsclient -c -a 'emacs'"
emacs = "emacsclient -c -a 'emacs'"
fileManager = "pcmanfm"

border_focus = '#686de0'
border_normal = '#281c34'
border_width = 2
defMargin = 4
margin = defMargin

EzKey.modifier_keys = {
    'M': mod,
    'A': altMod,
    'S': 'shift',
    'C': 'control',
}

dgroups_key_binder = None
dgroups_app_rules = []  # type: List
follow_mouse_focus = True
bring_front_click = False
cursor_warp = False
auto_fullscreen = True
focus_on_window_activation = "smart"
reconfigure_screens = True
auto_minimize = True

logger.warning("variables")

#
## Keysbindings
#

keys = [
    # Base qtile
    EzKey("M-q",   lazy.restart(),     desc="Restarts Qtile"),
    EzKey("M-S-q", lazy.shutdown(),    desc="Close Qtile"),
    EzKey("M-S-c", lazy.window.kill(), desc="Kills Focused Window"),
   #EzKey("M-S-/", desc="Shows keybindings [TODO]"),

    # Run Menu
    EzKey("M-p", lazy.spawn("dmenu_run -i -p \"Run: \""), desc="Shows dmenu"),
   #EzKey("M-p", lazy.spawn("rofi -show run"),            desc="Shows rofi"),

    # Useful Programs
    EzKey("M-<Return>", lazy.spawn(terminal),    desc="Open Terminal ({})".format(terminal)),
    EzKey("M-b",        lazy.spawn(browser),     desc="Open Browser ({})".format(browser)),
    EzKey("M-e",        lazy.spawn(fileManager), desc="Open File Manager ({})".format(fileManager)),

    # Groups
    EzKey("M-,",   lazy.screen.prev_group(), desc="Goes to previous group"),
    EzKey("M-.",   lazy.screen.next_group(), desc="Goes to next group"),
    EzKey("M-S-,", lazy.window.prev_group(), desc="Moves window to the previous group"),
    EzKey("M-S-.", lazy.window.next_group(), desc="Moves window to the next group"),

    # Change window state
    EzKey("M-f",       lazy.toggle_floating(),   desc="Toggles window floating"),
    EzKey("M-<Space>", lazy.toggle_fullscreen(), desc="Toggles window Full Screen"),

    # Layouts
    EzKey("M-<Tab>", lazy.next_layout(), desc="Changes Layouts"),

    # Window Navigation
    EzKey("M-j",   lazy.layout.down(),         desc="Move focus to the up window"),
    EzKey("M-k",   lazy.layout.up(),           desc="Move focus to the down window"),
    EzKey("M-h",   lazy.layout.left(),         desc="Move focus to the left window"),
    EzKey("M-l",   lazy.layout.right(),        desc="Move focus to the right window"),
    EzKey("M-S-j", lazy.layout.shuffle_down(), desc="Suffle down on the Windows"),
    EzKey("M-S-k", lazy.layout.shuffle_up(),   desc="Suffle up on the Windows"),

    # Window Resizing
    EzKey("M-i",   lazy.layout.grow(),          desc="Grow focused Window"),
    EzKey("M-m",   lazy.layout.shrink(),        desc="Shrink focused Window"),
    EzKey("M-S-i", lazy.layout.grow_main(),     desc="Grow main Window"),
    EzKey("M-S-m", lazy.layout.shrink_main(),   desc="Shrink main Window"),
    EzKey("M-n",   lazy.layout.normalize(),     desc="Restore secondary Windows to its default ratio"),
     
    # Change Gaps Spacing TODO


    # Emacs Shortcuts
    EzKey("C-e", lazy.spawn(emacs), desc="Start Emacs Client")

    ]


logger.warning("keybindings")

#
## Groups
#

group_names = 'dev www sys doc vbox chat mus vid gfx'.split()
groups = [Group(name, layout='monadtall') for name in group_names]

for i, name in enumerate(group_names):
    indx = str(i + 1)
    keys += [
        # mod1 + letter of group = switch to group
        EzKey("M-{}".format(indx), lazy.group[name].toscreen(),
            desc="Switch to group {}".format(name)),

        # mod1 + shift + letter of group = switch to & move focused window to group
        EzKey("M-S-{}".format(indx), lazy.window.togroup(name),
            desc="Switch to & move focused window to group {}".format(name)),
    ]


logger.warning("groups")

#
## Layouts
#

layouts = [
    layout.MonadTall(),
    layout.Max(),
]


logger.warning("layouts")

#
## Widgets / Extentions
#

widget_defaults = dict(
    font='SauceCodePro NF',
    fontsize=12,
    padding=3,
)

extension_defaults = widget_defaults.copy()

logger.warning("Widget")

#
## Screens
#

screens = [
    Screen(
        bottom=bar.Bar(
            [
                widget.CurrentLayout(),
                widget.GroupBox(),
                widget.Prompt(),
                widget.WindowName(),
                widget.Chord(
                    chords_colors={
                        'launch': ("#ff0000", "#ffffff"),
                    },
                    name_transform=lambda name: name.upper(),
                ),
                widget.TextBox("default config", name="default"),
                widget.TextBox("Press &lt;M-r&gt; to spawn", foreground="#d75f5f"),
                widget.Systray(),
                widget.Clock(format='%Y-%m-%d %a %I:%M %p'),
                widget.QuickExit(),
            ],
            24,
        ),
    ),
]


logger.warning("screen")

#
## Mouse for 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())
]

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
])


logger.warning("mouse")

wmname = "LG3D"

logger.warning("end")

Maybe tomorrow I’ll try to update to the git version of qtile

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:5 (3 by maintainers)

github_iconTop GitHub Comments

1reaction
elParaguayocommented, Oct 12, 2021

Yeah, you’re trying to match key names as per this file: https://github.com/qtile/qtile/blob/master/libqtile/backend/x11/xkeysyms.py

1reaction
henriquekirchheckcommented, Oct 12, 2021

It worked, I also had to use <space> instead of <Space>

Read more comments on GitHub >

github_iconTop Results From Across the Web

Error while reading custom configuration file(app.config)
I figured out.Instead of using <section name ="CountryList1" type ="UtilityMethods.CountryList,CountryList,Version=2.0.0.0, ...
Read more >
Failed to read the configuration file. Please contact your ...
Configuration : Windows 10 Firefox 57.0.1. Problem description: Upon launch of FF, message is displayed and FF fails to launch.
Read more >
Error While Reading config File - Help - UiPath Forum
I have defined a variable 'config' in my workspace for the same but whenever I am trying to use this variable I am...
Read more >
ConfigurationManager Class (System.Configuration)
Provides access to configuration files for client applications. This class cannot be inherited.
Read more >
Configuration files · CLI11 Tutorial
If that is specified, the config will try to read that file. The third item is the help string, with a reasonable default,...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found