You are right, the following works as intended
groups = [Group(i) for i in "neio"]
for i in groups:
keys.append(
Key([mod], i.name, lazy.group[i.name].toscreen())
)
# Append ' key group
a = Group("'")
keys.append(
Key([mod], 'apostrophe', lazy.group[a.name].toscreen())
)
groups.append(a) # Here is the fix
But why is this the case? I don't see the 'groups' variable used anywhere
else in the config, except the for loop.
It turns out that if I rename the groups variable to something else, the
groups will be defined by default Qtile settings.
In other words, groups is a magic variable of some sort. I am not a very
good programmer, but isn't this a bit odd and counterintuitive? To me, the
following or something similar would make more sense:
from libqtile.config import Group
Group.groups = ....
Is groups a global variable?
Btw, thanks for the help, it works like a charm :)
On Thursday, April 2, 2015 at 10:49:00 AM UTC-4, Roger wrote:
>
>
> On Apr 2, 2015 11:37 AM, "Martin" <[email protected] <javascript:>>
> wrote:
> >
> > I would like to use the appostrophe character as a group, but I can't
> get it to work properly.
> >
> > This is what I try:
> >
> > # Regular key assignment
> > group_str = "hneio" # Apostrophe is right next to o character and would
> be super convenient to use
> > # Yes, my keyboard layout is a bit unusual
> >
> > groups = [Group(i) for i in group_str]
> >
> > for i in groups:
> > # mod1 + letter of group = switch to group
> > keys.append(
> > Key([mod], i.name, lazy.group[i.name].toscreen())
> > )
> > # mod1 + shift + letter of group = switch to & move focused window
> to group
> > keys.append(
> > Key([mod, "shift"], i.name, lazy.window.togroup(i.name))
> > )
> > # Append special ' key group outside for loop
> > a = Group("Q") # Name shouldn't be an issue
> you have to put this group, a, inside groups list
>
> > keys.append(
> > Key([mod], 'apostrophe', lazy.group[a.name].toscreen())
> > )
> > keys.append(
> > Key([mod, "shift"], 'apostrophe', lazy.window.togroup(a.name))
> > )
> >
> > Using MOD+' and MOD+SHIFT+' actually activates the lazy.group commands,
> but it gives an error and the output is
> >
> > 2015-04-02 10:28:01,394 qtile handle_KeyPress:855 KB command error
> toscreen: No object group['Q'] in path 'group['Q']'
> > 2015-04-02 10:28:03,433 qtile _xpoll:656 Handling: KeyPress
> > 2015-04-02 10:28:03,433 qtile handle_KeyPress:855 KB command error
> toscreen: No object group['Q'] in path 'group['Q']'
> > 2015-04-02 10:28:04,213 qtile _xpoll:656 Handling: KeyPress
> > 2015-04-02 10:28:04,214 qtile call:91 Command: togroup(('Q',), {})
> > 2015-04-02 10:28:04,214 qtile handle_KeyPress:855 KB command error
> togroup: No such group: Q
> > 2015-04-02 10:28:05,056 qtile _xpoll:656 Handling: KeyPress
> > 2015-04-02 10:28:05,056 qtile call:91 Command: togroup(('Q',), {})
> > 2015-04-02 10:28:05,057 qtile handle_KeyPress:855 KB command error
> togroup: No such group: Q
> >
> > Any idea of what is going wrong here? If I test the code, everything
> works but there is no Q group in the GroupBox widget and the command gives
> a non-critical error. Even if I don't use approstrophe, I cannot assign a
> group outside the for i in groups: for loop. Why not?
> >
> > I don't know how I would assign the apostrophe inside the for loop. I
> have tried:
> >
> > groups = [Group(i) for i in "hneio'"]
> > groups = [Group(i) for i in "hneio\'"]
> >
> > with no success.
> >
> > --
> > You received this message because you are subscribed to the Google
> Groups "qtile-dev" group.
> > To unsubscribe from this group and stop receiving emails from it, send
> an email to [email protected] <javascript:>.
> > For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google Groups
"qtile-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.