Time |
Nick |
Message |
10:01 |
walterbender |
This is the first of what might be a new series of mini developer tutorials |
10:01 |
|
The idea emerged in discussion in IRC last week. |
10:02 |
tomeu |
hi! |
10:02 |
walterbender |
We all have pockets of knowledge about how to do things... this is a forum to share them. |
10:03 |
|
I thought I would kick it off the series, but hopefully others will jump in. |
10:03 |
|
#topic keyboard shortcuts |
10:03 |
tomeu |
we could take at the end about topics for further sessions |
10:03 |
walterbender |
#TOPIC keyboard shortcuts |
10:03 |
tomeu |
the bot may be a bit slow? |
10:04 |
walterbender |
OK. Let's cover todays topic and then discuss the meta issues. |
10:04 |
|
Before I begin, let me remind everyone that we have an almanac for developers in the wiki. |
10:04 |
|
http://wiki.sugarlabs.org/go/D[…]ment_Team/Almanac |
10:05 |
|
One of the sections is on tool buttons. |
10:05 |
|
http://wiki.sugarlabs.org/go/D[…]aphics.toolbutton |
10:05 |
|
I managed to follow these instructions in order to create the toolbars for Turtle Art |
10:06 |
|
http://git.sugarlabs.org/proje[…]line/trees/master |
10:06 |
|
http://git.sugarlabs.org/proje[…]tleArtActivity.py |
10:07 |
|
The relevant code is line 35, lines 74,75, and 81-88 |
10:08 |
|
There are classes for each toolbar and then callbacks for each button |
10:08 |
|
when you define a button, beginning on line 699... |
10:09 |
garycmartin |
was in wrong room |
10:09 |
walterbender |
you define things such as tooltip and the callback itself |
10:09 |
|
For a keyboard shortcut, simply add a call to props.accelerator as in the examples |
10:10 |
|
e.g., self.palette.props.accelerator = '<Alt>p' |
10:10 |
|
And it magically works. |
10:10 |
|
I added a new section in the almanac to document this tip |
10:10 |
|
http://wiki.sugarlabs.org/go/D[…]to_my_tool_button.3F |
10:10 |
|
Any quesitons? |
10:11 |
lucian1900 |
walterbender: how do users set up keyboard shortcuts? |
10:11 |
tomeu |
modifying python files :p |
10:11 |
walterbender |
lucian1900: you mean to override the Sugar defaults? |
10:11 |
lucian1900 |
tomeu: besides that? |
10:11 |
|
walterbender: yes, like for different langauges |
10:11 |
walterbender |
lucian1900: I don't think we have a way of doing that |
10:12 |
lucian1900 |
walterbender: alright |
10:12 |
tomeu |
lucian1900: translators can override the accelerators when they translate |
10:12 |
walterbender |
lucian1900: if you want to add keyboard shortcuts for your javascript activities... |
10:12 |
tomeu |
though for that, the string needs to be _('<Alt>p') |
10:12 |
walterbender |
we need to investigate |
10:12 |
lucian1900 |
tomeu: it requires the translators to know python |
10:12 |
|
tomeu: or at least have an idea about it. right? |
10:12 |
walterbender |
tomeu: good point. I'll update the documentation (and TA) |
10:12 |
tomeu |
lucian1900: no, they just translate it as with any other string, in pootle |
10:13 |
|
lucian1900: but they do need to know what an accelerator is, and need to create some guidelines for that language |
10:13 |
lucian1900 |
tomeu: right |
10:13 |
tomeu |
some translation teams choose to leave the same as in english, other translate them |
10:13 |
garycmartin |
tomeu: FWIW I retested using non numeric or alpha as a shortcut and it's still failing here (wanted to use + and = for zoom in and out) |
10:14 |
tomeu |
hmm |
10:15 |
|
garycmartin: how does it fail? |
10:16 |
garycmartin |
tomeu: /usr/lib/python2.6/site-packages/sugar/graphics/toolbutton.py:47: GtkWarning: gtk_accel_group_connect: assertion `accel_key > 0' failed (I think is the error |
10:16 |
tomeu |
cool, let me see |
10:18 |
walterbender |
While tomeu is debugging, I'd like to switch to the meta topic. OK? |
10:18 |
tomeu |
sure |
10:19 |
walterbender |
#topic mini tutorials |
10:19 |
|
a bunch of questions: |
10:19 |
|
1. was it useful? |
10:19 |
|
2. should we do it again? |
10:19 |
|
3. if so, how do we organize it? |
10:20 |
|
4. should we archive the minutes outside of the almanac and the general meeting archive? |
10:20 |
|
re 1. I learned two things today, so for me it was useful |
10:21 |
|
I learned that there was a hole in the almanac's documentation |
10:21 |
|
and I learned that you could use gettext for tooltips... |
10:22 |
|
I think I filled in the hole... |
10:22 |
lucian1900 |
1. i learned how shortcuts work and how to define toolbars |
10:22 |
walterbender |
I also learned that there is more to the topic than I had been considering... |
10:22 |
|
so I think we should do more of these... |
10:23 |
lucian1900 |
2. sure, it's at least a reason read and write a bit of sugar code |
10:23 |
|
3. irc seems fine, at least for me |
10:24 |
|
4. i have no idea |
10:24 |
walterbender |
lucian1900: I don't know if this format was useful to newbies... |
10:24 |
|
lucian1900: I don't know if irc is useful to newbies |
10:24 |
tomeu |
garycmartin: here is the code that parses the string: http://git.gnome.org/cgit/gtk+[…]ccelgroup.c#n1110 |
10:25 |
walterbender |
lucian1900: and I certainly didn't do a very good job of advertizing |
10:25 |
lucian1900 |
walterbender: yes, advertising was poor :P |
10:26 |
|
walterbender: grated irc is not that common with us younger folk, but it does the job |
10:26 |
|
walterbender: and it's established enough that anyone the least bit technial can figure it out |
10:26 |
tomeu |
about the developer meetings, now is a good moment to work in projects that are upstream to us, as we give them time to get stuff released in time for the next distro releases |
10:26 |
|
that's why sugar devs might not be direclty hacking on sugar right now |
10:27 |
walterbender |
lucian1900: maybe we could try using jabber for a meeting? |
10:27 |
tomeu |
once we get back to the regular dev meetings, may be easier to coordinate this other meet-ups |
10:27 |
|
wonder what alternatives to irc exist |
10:27 |
lucian1900 |
walterbender: besides gtalk, jabber isn't very popular |
10:28 |
tomeu |
lucian1900: is there any technology being used in place of irc? |
10:28 |
lucian1900 |
lucian1900: mainly IM and stuff like facebook afaik |
10:29 |
|
s/lucian1900/tomeu |
10:29 |
walterbender |
lucian1900: maybe we should use facebook for the next one |
10:29 |
lucian1900 |
walterbender: heh |
10:29 |
walterbender |
lucian1900: seriously. |
10:29 |
lucian1900 |
walterbender: i don't think it has good group chat facilities |
10:29 |
|
for group chats, irc and IMs are still the best |
10:30 |
walterbender |
what about an IM instead of IRC? |
10:30 |
tomeu |
do you know any open source project using any IM technology instead of irc? |
10:30 |
walterbender |
tomeu: no. But I have evidence that we are losing people. Maybe an IM meeting on how to use IRC??? |
10:31 |
lucian1900 |
walterbender: heh |
10:31 |
tomeu |
walterbender: don't know myself, we should pick the brains of someone not in irc yet |
10:31 |
lucian1900 |
walterbender: we should find some really good irc clients to recommend for each platform |
10:32 |
|
walterbender: for me, proxy support for example is a problem |
10:32 |
walterbender |
tomeu: I agree. |
10:32 |
|
lucian1900: I use chatzilla these days... easy since it is a firefox addon |
10:32 |
garycmartin-5069 |
sorry my VM locked up, back on an XO now... |
10:32 |
tomeu |
garycmartin-5069: what do you think about irc being too alien to newcomers? what could be done about it? switch to something else? make it easier to use irc? |
10:33 |
|
the problem I see is that lots of sugar coding is done in cooperation with other FOSS projects |
10:33 |
|
and the people working on those projects are on IRC |
10:34 |
walterbender |
tomeu: I think that the non-technical issues may be better handled in less austere environments... |
10:34 |
tomeu |
I'm in irc.gimpnet for gtk/gnome and abiword, irc.freenode for sugar, fedora and gnash, irc.mozilla for asloa nd xulrunner, ... |
10:34 |
|
walterbender: oh, totally |
10:34 |
garycmartin-5069 |
tomeu: sorry missed the last ~5min. Is Chat considered stable enough now? I must say I used IRC a 10+ years ago but never since until Sugar/OLPC |
10:35 |
tomeu |
garycmartin: well, I would ask if it's appropriate, rather than stable, to host dozens of people at the same time |
10:35 |
|
but maybe could be with little work |
10:35 |
walterbender |
I'd really like to try using Chat for a meeting of some sort, if only to understand the limitations |
10:37 |
garycmartin-5069 |
tomeu: I think the main downside still is that you can't copy paste from the main screen, but we would need a reliable jabber server. The sooner we start dog-fooding the sooner we'll see and fix the issues. |
10:37 |
tomeu |
yeah, we need to improve the jabber side of things |
10:37 |
|
garycmartin-5069: about accelerators, you need to pass '<Alt>plus' |
10:38 |
|
garycmartin-5069: the names are taken from /usr/include/X11/keysymdef.h |
10:38 |
walterbender |
tomeu: I'll make note of it in the almanac!! |
10:38 |
tomeu |
#define XK_plus 0x002b /* U+002B PLUS SIGN */ |
10:38 |
|
without XK_ |
10:38 |
|
walterbender: don't know why the gtk docs don't say where the names come from |
10:39 |
|
had to look into the source code of gtk, gdk and X11 to get to it |
10:39 |
garycmartin-5069 |
tomeu: Ahh intersting, I was googling for ages trying to find where they came from :-) thanks! |
10:39 |
tomeu |
unfortunately, it's handy to have the sources at hand |
10:41 |
|
hi FGrose |
10:42 |
walterbender |
tomeu: well, now it is documented in the Almanac :) |
10:42 |
FGrose |
tomeu: Hi |
10:42 |
walterbender |
so, to wrap up: |
10:42 |
tomeu |
thanks! |
10:43 |
walterbender |
#TODO hold a mini tutorial in Chat on how to use IRC |
10:43 |
|
#TODO do a better job of advertizing |
10:43 |
|
#TODO define some mechanism for scheduling |
10:45 |
|
anything else to add to this five minute meeting (that has lasted 45 minutes :) ) |
10:46 |
FGrose |
walterbender: Do you have a wiki home page? |
10:46 |
walterbender |
FGrose: User:Walter |
10:47 |
FGrose |
walterbender: For the tutorial series? |
10:47 |
walterbender |
FGrose: no. Not yet. |
10:47 |
garycmartin-5069 |
walterbender: thanks for running it! (though I'll need to read the back logs and see what was covered) |
10:47 |
lucian1900 |
walterbender: yep, thanks for the session :) |
10:47 |
walterbender |
FGrose: I'll set something up in the wiki and solicit contributors in my blog |
10:48 |
|
FGrose: and I'll finally figure out how to use the calendaring system you set up!! |
10:48 |
garycmartin-5069 |
walterbender: Were there any specific activties you see as missing accelerator support? |
10:49 |
walterbender |
garycmartin-5069: nothing in particular, just in general, it was not well documented |
10:49 |
tomeu |
would be nice to have tickets in trac about adding missing accelerators |
10:49 |
|
in activities and in the shell |
10:49 |
walterbender |
garycmartin-5069: and I think that especially in light of non-XO keyboards, we'll want to use more rather than less |
10:49 |
tomeu |
that way, people will be able to to give their opinions about using one accelerator or another |
10:51 |
garycmartin-5069 |
walterbender: Write seems to accept things like <ctrl>b for bold, but it's not using acceleratorsin the toolbar, might be a little more to unpick there. |
10:53 |
walterbender |
garycmartin-5069: I don't think Write is doing that using PyGTK. I think it is buried somewhere in the abiword library |
10:54 |
|
garycmartin-5069: for most activity developers, the props.accelerator mechanism should be sufficient |
10:55 |
garycmartin-5069 |
walterbender: yea, but having them in the toolbar (even if we let the events 'fall thru' to the actual code) would be useful documentation. |
10:55 |
homunq_ |
hi |
10:55 |
|
missed the 5 minutes |
10:55 |
|
but I like the backlog |
10:55 |
|
I do think we should start to have stricter standards for accelerators, though. |
10:56 |
walterbender |
garycmartin-5069: you are correct in regards to that specific case. I suppose that it should be easy enough to add to the Python wrapper... |
10:56 |
homunq_ |
I'd advocate alt reserved for activities, and ctrl reserved for sugar. |
10:56 |
walterbender |
homunq_: I mention this in the Almanac entry I made. |
10:56 |
tomeu |
walterbender, garycmartin: Write uses an abiword plugin to set the accelerators in a xml file, we should unset there the ones we set in gtk |
10:57 |
|
see keybindings.xml in the Write dir |
10:57 |
walterbender |
homunq_: on a meta topic, this mini tutorial caused a lot of additional issues to be raised... not a bad thing |
10:57 |
|
garycmartin-5069: do you want to file a ticket for Write? |
10:58 |
|
garycmartin-5069: and include Tomeu's comment re xml? |
10:58 |
garycmartin-5069 |
walterbender: sure, was just wondering if I should try to poke it myself (as I raised it) but a ticket is a good start :-) |
10:58 |
tomeu |
yeah, tickets are good discussion outcomes |
10:59 |
walterbender |
garycmartin-5069: go for it... |
11:00 |
|
well, given that it is now UTC 15:00, I'll end the meeting |
11:00 |
|
3 |
11:00 |
|
2 |
11:00 |
|
1 |
11:00 |
|
#end-meeting |
11:01 |
FGrose |
walterbender: #endmeeting |
11:01 |
walterbender |
#endmeeting |