GTK+ Hackfest 2016

Toronto, CA, June 13-16, 2016

Primary contact: Matthias Clasen <mclasen@redhat.com>
Secondary contact: Allison Lortie <desrt@desrt.ca>

Relevant GNOME teams

The GTK+ team and designers

Description

GTK+ has had a very active 3.20 development cycle. We've not only completely revamped CSS matching with CSS nodes, we've also taken big steps towards the CSS box model with CSS gadgets. The hackfest will give us a chance to spend time on evaluating whether these changes were successful, what fallout we need to address, and what the next steps are to build on all the new capabilities that GTK+ has gained with this.

Agenda

More detailed notes on some of these below

  • Gadget post-mortem: what's next ?
  • Move container interface up to GtkWidget

  • Input handling without windows, event controllers
  • Requirements for GDK backends: menu positioning, global coordinates, root windows, etc
  • Do we still need a separate libgdk ? Do we want to separate widgets from the core tookit instead ?
  • Animations: Review what we have; do we need helpers ? API ?
  • Portals: Make them happen
  • GTK4, API stability wrt xdg-app
  • 2nd rendering API bypassing GtkWidget::draw using GL

  • textview/sourceview replacements
  • action/menu/accels: what do we need
  • expand flags: propagation considered harmful?
  • Responsive layouts (see designer wishlist below)

Possible other topics:

  • Meet and greet the Eclipse team (who are consumers of GTK+)
  • Designer wishlist:
    • Support for responsive layouts (can discuss what this means in practice)
      • @media queries in CSS

      • Equivalent of overflow: hidden

    • Combobox replacements
    • New tab widget: https://wiki.gnome.org/Design/OS/Tabs, prototype in the wip/matthiasc/tab-strip branch

    • In-app notifications - bringing these into GTK+, how they should behave
    • Emoji display and insertion
    • Path bar widget
    • Application sandboxing - design of authentication experience, portals
    • Missing bits and pieces from ListBox

  • Performance issues: Endless has a number of these
  • When GdkWindow goes, we need to position widgets without resizing them - can we make that work in gtk3?

  • Should we plan ahead for gtk4 in terms of e.g. ideal class hierarchies? How would the toplevel window hierarchy look?
  • Lots of apps (eventually) have a large amount of custom widgets. It would be beneficial to have more copy-in/git-submodule style libraries providing custom-but-general widgets (like libgd). How can we make writing and maintaining such libraries easier?
  • Make managing sets of keyboard shortcuts easier for complex applications (Builder, Gimp, Inkscape, etc)
  • Can we drop functionality from gtkwindow.c to make it more manageable?
  • SVG what to do - if we had an svg renderer that we can depend on, svg integration in css could be nicer: e.g we could properly resize images instead of scaling them
  • How do we deal with themes in the future? Should we encourage theming more? Do we need to document all the style classes we (both GTK and GNOME) use? Do we even want to guarantee to keep them for API stability? What's the way forward with themes?
  • Managing visibility: show-hide transitions and the trouble with them. What to do ?
  • Future of GRegex: 755693

Dates and Venue

We plan to meet the Red Hat Toronto Offices.

Red Hat Toronto | 90 Eglinton Avenue East, Suite 502 | Toronto, Ontario M4P 2Y3 | Canada | Tel: 647-259-2555

Matthias has reserved the 'Cygnus' meeting room (16 seats) from June 13-16.

Getting in, Getting around

The local transit agency (subway, streetcar, bus) is the TTC (Toronto Transit Commission). Cash fares are $3, but you can buy tokens at machines in subway stations for a very small discount ($2.90/per). Weekly passes cost $42.25, so they're probably not worth it. The TTC is currently in the middle of rolling out an electronic prepaid farecard system called PRESTO which is accepted on all streetcars and at some subway stations. PRESTO is not currently accepted at Eglinton station (which is the station located near the Red Hat office) but it may be there by the time of the hackfest.

Toronto has two commercial airports: YTZ and YYZ.

Toronto "Billy Bishop" Island Airport (YTZ) is a smaller airport with short-haul flights (propeller only). It is located on Toronto Island, immediately adjacent to downtown Toronto. It has a free shuttle bus to a location nearby the main train station (Union Station). If you're planning to catch the subway, you may as well walk to Queens Quay (pronounced "key") to catch the streetcar eastbound, which has a convenient direct connection to the subway at Union. You will probably only arrive at this airport if travelling from a nearby city (Boston, Chicago, Montréal, etc.). It is also common to arrive here if you take an international flight that connects in Montréal. This is a nice airport, and it's slightly amusing to ride the ferry, but there is not a whole lot of benefit to arriving here instead of at YYZ and the flights can be more expensive.

The "big" airport of Toronto is Toronto Pearson (YYZ). It has a very large number of international connections. It is located far away from the downtown core, but there are good options for connecting. For the price of a normal transit fare ($3) you can take an express bus (#192 Airport Rocket) to Kipling subway station and from there catch a subway to downtown without paying again. Expect this journey to take a bit over an hour (with a couple of connections required). There is also the new (and fancy) Union-Pearson "UP" Express train. This costs $9 per direction if you buy a PRESTO card or $12 without. The $6 deposit on the PRESTO card makes this decision break-even (unless you plan to use it for local transit as well). The UP Express takes you to Union station in about 25 minutes. Once there, you will need to buy a separate TTC fare if you want to take the subway to your hotel.

Some feedback I received on this section:

  • RE: PRESTO - if you're a visitor to toronto and don't very often, don't even bother with it. Just buy tokens or use cash fares (exact change required for cash). Please be aware the when on streetcars and buses that proof of payment is required at all times, so please make sure to take a transfer!! Billy Bishop Airport - If in a close city like boston, chicago or new york, this is almost always the better airport to use. There's no reason to use the ferry, as there's a tunnel to and from the island open 24/7. Being a smaller airport, there is much less traffic through it, which is benefitical with wait times through security and customs. Airfare through Porter is very commonly on sale, and the trip to eglinton station (through union) is much easier. Again, with YYZ (pearson) airport, I wouldn't bother mentioning the PRESTO card for the UP Express, you have to pay $6CAD

    for one, so it probably totally negates the discounted fares for the amount of time people are in the city for.

Accommodation

The area in which the Red Hat office is located is a fairly built up neighbourhood, but it is not very close to the centre of the city. It is, however, located immediately adjacent to the Eglinton (pronounced "Eglington") subway stop on the main north/south subway line. For this reason, it might be better to stay somewhere more central and take the subway each day.

The most widely recommend hostel in Toronto is The Planet Traveler hostel. This is located just west of University of Toronto and adjacent to the (conspicuously) hip Kensington Market neighbourhood and Chinatown. There are tonnes of great restaurants around this area. From here it's possible to walk (or take a streetcar) to Queen's Park or College stations for a fast subway connection to the office (direction "Finch"). There are not many traditional hotels in this neighbourhood.

Another great Toronto neighbourhood is the central downtown area located in the area around Yonge and Dundas. Just north of here (just east of University of Toronto and near the Gay district) is Yonge and College. Here you will find Holiday Inn Toronto Downtown Centre at ~C$170/night. This hotel is immediately adjacent to College subway station (with a direct connection to the Red Hat office). There are tonnes of great restaurants around this area.

It takes about 20 minutes to walk between these two neighbourhoods (or 7 minutes by streetcar).

For those who would prefer to stay closer to the Red Hat office, there is the Best Western Roehampton Hotel located within a 5 minute walk of the office. Rates are ~C$150/night.

Crashing on somebody's couch is also a possibility.

Attendants

Name

Role

Travel costs

Foundation member

Accommodation

Arrival

Departure

Confirmed

Roommate

Total sponsorship request

Matthias Clasen

GTK+ maintainer

(./)

Holiday Inn

Sunday

Friday

yes

Benjamin

-

Allison Lortie

Threat to global stability

local

-

-

-

-

-

ChristianHergert

GTK+, Text Widgets, GSK, rendering

yes

Holiday Inn

12th, 20:18

16th, 20:55

yes

Alex

-

BehdadEsfahbod

Text & emoji

No

-

CarlosGarnacho

Foo and bar

yes

Holiday Inn

Allan

AllanDay

Frequent annoyance

yes

Holiday Inn

11th, 17:40

16th, 20:40

yes

Carlos

-

WilliamHua

Tour guide

local

No

-

BenjaminOtte

CSS, rendering, layout

yes

12th, 14:45

17th, 17:15

yes

Matthias

-

AlexanderLarsson

rendering, portals

yes

Holiday Inn

12th, 12:25

16th, 21:05

yes

Christian

-

JonasAdahl

Most jet lagged

39557 TWD (~US$1223) (Taipei-Toronto)

yes

Airbnb

12th, 21:55

20th, 01:45

yes

Philip Chimento

39557 TWD (~US$1223)

LarsUebernickel

GLib/GTK+

€866.56

yes

Sun, 12th

Wed, 15

yes

€866.56

Eric Williams

Eclipse/SWT

local

no

-

-

-

yes

-

-

Leo Ufimtsev

Eclipse/SWT

local

no

-

-

-

yes

-

-

PhilipChimento

British Columbian

-

no

Airbnb

20:30 YYZ, Sun 12th

19th

yes

Jonas

-

PhilipWithnall

DX, tooling

Sorted

11:10 at YYZ on 2016-06-13 (AC869)

09:05 at YYZ on 2016-06-20 (AC868)

SimonMcVittie

D-Bus, Debian, Flatpak

Holiday Inn

15:00, YYZ, 12th (TS623)

22:05, YYZ, 16th (TS422)

The room we have reserved fits ~16 people.

People we'd love to have, who sadly can't make it this time:

Name

Role

EmmanueleBassi

GTK, GSK, rendering

CosimoCecchi

Gadgets, performance and custom widgets

Open Issues

Use this space to expand on the agenda topics above.

  • Requirements for GDK backends: The background for this is that both Wayland and Mir don't let clients position windows in a global coordinate system. 756579 has much discussion and patches that suggest to address this by moving popup positioning to GDK

  • We should determine the ultimate fate of commandline options (675819)

  • We should write an outline of how we want the GDK API to look in a world where
    • display-screen is 1-1
    • monitors are more important
    • child windows are on the way out
    • seats have appeared
    • some ideas are here: Projects/GTK+/gdk4

  • gtk.org is very out of date for informatoin (and lacks https). we need to revamp it as we have gotten lots of valid criticism on news sites about it (HN, reddit, etc).

Notes

Blog posts

Here we will link all the blog posts published during or after the hackfest, including information about the work done.

Hackfests/GTK2016 (last edited 2016-07-19 09:13:20 by JonasAdahl)