{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreie6peak623tjomdcr73ldw2kekupvj7ws2f5kuytpjcbm24cimviy",
    "uri": "at://did:plc:hqad6xwuzg7oqfmwylfkvqfm/app.bsky.feed.post/3mlbkhc22hpp2"
  },
  "path": "/viewtopic.php?t=33412&p=273629#p273629",
  "publishedAt": "2026-05-07T15:18:11.000Z",
  "site": "http://forum.palemoon.org",
  "tags": [
    "https://repo.palemoon.org/Basilisk-Dev/ ... ranch/qt6/",
    "@Basilisk-Dev"
  ],
  "textContent": "> > Would your Qt6 code be available publicly for a test? I'd like to play around with it when I have some time. Unless it requires libraries that my system can't provide such as GLib 2.28+ and the likes, or too new building tools.\n>\n> https://repo.palemoon.org/Basilisk-Dev/ ... ranch/qt6/\n>\n> Please note that it is currently extremely buggy and is not suitable for every day use, but it does work from the standpoint that the browser launches and can browse sites.\n\nI did not realize that @Basilisk-Dev's Qt6 port was so far along. I asked a programmer friend to look at a diff file, and he had a few praising comments -\n\n===============================================================\n\n1. this is a real Qt6 backend, not just a superficial build flag experiment. It adds a new widget/qt platform backend, hooks it into the toolkit selection system as cairo-qt6, creates a QGuiApplication, pumps the Qt event loop, creates native QWindow objects, dispatches mouse/keyboard/focus/wheel events into UXP, adds Qt clipboard support, Qt look-and-feel colors, Qt print settings, Qt screen handling, and a gfxQtPlatform\n\n2. The branch appears to do the hard first step: it creates a selectable Qt toolkit target.\nThe build system adds:\n--enable-default-toolkit=cairo-qt6\nand maps that to:\nMOZ_WIDGET_TOOLKIT = qt\nThen old-configure.in checks for:\nQt6Core Qt6Gui Qt6Widgets Qt6PrintSupport\nand assigns those flags to TK_CFLAGS / TK_LIBS.\nThe new backend includes the expected platform pieces:\nwidget/qt/nsWindow.cpp\nwidget/qt/mozqwidget.cpp\nwidget/qt/nsAppShell.cpp\nwidget/qt/nsClipboard.cpp\nwidget/qt/nsLookAndFeel.cpp\nwidget/qt/nsScreenManagerQt.cpp\nwidget/qt/nsPrintSettingsQt.cpp\ngfx/thebes/gfxQtPlatform.cpp\ntoolkit/xre/nsQAppInstance.cpp\nThat is the right architecture, still Goanna/XUL using Qt underneath as the native windowing/event/clipboard/platform layer\n\n3. The Qt path does not appear to require libgtk-3-dev as the toolkit backend. It uses Qt6 packages instead.\nHowever, it still intentionally keeps several Linux desktop stack dependencies:\nPango\nFontconfig/Freetype\nGLib/GObject\nDBus\nX11/GLX\nXScreenSaver\nThat is not a problem, as a Linux browser backend can reasonably depend on those without depending on GTK3 itself.\n\n4. What already seems implemented - The following areas are meaningfully present:\n- App startup and event loop\nnsQAppInstance creates a QGuiApplication, and nsAppShell integrates with Qt’s event dispatcher. That is a core milestone\n- Native windows\nnsWindow creates MozQWidget, which is actually a QWindow subclass. It handles top-level windows, dialogs, popups, children, visibility, resizing, moving, focus, fullscreen, title, icons, and cursor shape\n- Painting path\nThere is a Qt graphics platform layer, Qt Cairo surface plumbing, and Xlib-backed drawing for X11. It is enough to plausibly render browser content\n- Keyboard and mouse input\nMouse buttons, motion, wheel events, keyboard down/press/up, context menu keys, app-command keys, and basic editor keybindings are mapped\n- Clipboard\nThere is a Qt clipboard implementation for text, HTML, images, arbitrary MIME, and X11 selection clipboard when Qt reports support\n- Look and feel\nQt palette colors and Qt default font are mapped into the browser’s look-and-feel system\n- Printing, partially\nPDF/PS print-to-file plumbing exists, using Qt print settings and UXP print targets\n\n5. Reasonable next priorities:\n- Make X11 the explicit first target\nDo not pretend it is Wayland-ready. Get Qt6/X11 stable first\n- Fix screen/HiDPI basics\nScreen coordinate swap, actual per-screen scale, actual window screen detection\n- Fix clipboard correctness\nEspecially generic MIME, image lifetime, primary selection behavior\n- Add real IME support\nThis is essential for non-English users\n- Add drag-and-drop\nFile drops, URL drops, internal tab/bookmark/content drag operations\n- Clarify printing scope\nEither support only print-to-PDF cleanly, or implement real Qt print dialog/native printing [_why not just use the Linux native cups printer dialogue here? -- Andy_]\n- Decide whether NPAPI/plugin support matters\nIf it matters, the missing plugin port/XEmbed story is a major item\n\n==================================================\n\nMaybe this work on Basilisk-Qt6 could be the test vehicle for transitioning to a longer-term solution, while leaving Pale Moon alone for the moment since gtk3 is not going anywhere soon?\n\n* * *",
  "title": "Browser Development • Re: Linux Pale Moon with Qt toolkit",
  "updatedAt": "2026-05-07T15:18:11.000Z"
}