├── .dockerignore
├── .gitattributes
├── .github
├── FUNDING.yml
└── workflows
│ └── github-actions.yml
├── .gitignore
├── .yarn
├── patches
│ └── pkg-npm-5.8.1-db9700609f.patch
└── releases
│ └── yarn-4.5.0.cjs
├── .yarnrc.yml
├── LICENSE
├── README.md
├── docker
├── 10_nvidia.json
├── Dockerfile
├── build.sh
├── compositor-proxy-cli-build.sh
├── compositor-proxy-cli-install.sh
└── docker-entrypoint.sh
├── docs
├── .gitignore
├── 404.html
├── CNAME
├── Gemfile
├── Gemfile.lock
├── _config.yml
├── hello.png
├── index.md
└── pages
│ ├── components
│ ├── client-generator.md
│ ├── client-protocol.md
│ ├── common.md
│ ├── compositor-generator.md
│ ├── compositor-protocol.md
│ ├── compositor-proxy-cli.md
│ ├── compositor-proxy-generator.md
│ ├── compositor-proxy.md
│ ├── compositor-shell.md
│ ├── compositor-wasm.md
│ ├── compositor.md
│ ├── ffmpeg-h264.md
│ ├── index.md
│ ├── libraries.md
│ └── xtsb.md
│ ├── design
│ └── index.md
│ ├── future_plans
│ └── index.md
│ ├── getting_started
│ ├── img.png
│ ├── img_1.png
│ ├── img_1_small.jpg
│ ├── img_2.png
│ ├── img_2_small.jpg
│ ├── img_3.png
│ ├── img_3_small.jpg
│ ├── img_small.jpg
│ └── index.md
│ └── sdk
│ └── index.md
├── examples
├── compositor
│ └── experimental-fullscreen
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── index.html
│ │ ├── package.json
│ │ ├── public
│ │ ├── GTK_logo.svg
│ │ └── app.webmanifest
│ │ ├── src
│ │ └── index.ts
│ │ ├── tsconfig.json
│ │ └── vite.config.ts
├── docker-compose
│ ├── Dockerfile
│ ├── applications.json
│ └── docker-compose.yml
├── sdk
│ ├── gtk4
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── build-aux
│ │ │ └── meson
│ │ │ │ └── gen-demo-header.py
│ │ ├── build.sh
│ │ ├── demos
│ │ │ ├── constraint-editor
│ │ │ │ ├── constraint-editor-application.c
│ │ │ │ ├── constraint-editor-application.h
│ │ │ │ ├── constraint-editor-window.c
│ │ │ │ ├── constraint-editor-window.h
│ │ │ │ ├── constraint-editor-window.ui
│ │ │ │ ├── constraint-editor.c
│ │ │ │ ├── constraint-editor.css
│ │ │ │ ├── constraint-editor.gresource.xml
│ │ │ │ ├── constraint-editor.h
│ │ │ │ ├── constraint-editor.ui
│ │ │ │ ├── constraint-view-child.c
│ │ │ │ ├── constraint-view-child.h
│ │ │ │ ├── constraint-view.c
│ │ │ │ ├── constraint-view.h
│ │ │ │ ├── guide-editor.c
│ │ │ │ ├── guide-editor.h
│ │ │ │ ├── guide-editor.ui
│ │ │ │ ├── main.c
│ │ │ │ └── meson.build
│ │ │ ├── gtk-demo
│ │ │ │ ├── alias_cursor.png
│ │ │ │ ├── alienplanet.glsl
│ │ │ │ ├── all_scroll_cursor.png
│ │ │ │ ├── alphatest.png
│ │ │ │ ├── apple-red.png
│ │ │ │ ├── application.c
│ │ │ │ ├── application.ui
│ │ │ │ ├── application_demo.c
│ │ │ │ ├── assistant.c
│ │ │ │ ├── background.glsl
│ │ │ │ ├── background.jpg
│ │ │ │ ├── bbb.png
│ │ │ │ ├── blendmodes.ui
│ │ │ │ ├── blends.png
│ │ │ │ ├── bluroverlay.c
│ │ │ │ ├── bluroverlay.h
│ │ │ │ ├── brick.png
│ │ │ │ ├── brick2.png
│ │ │ │ ├── builder.c
│ │ │ │ ├── cell_cursor.png
│ │ │ │ ├── clipboard.c
│ │ │ │ ├── clipboard.ui
│ │ │ │ ├── cmy.jpg
│ │ │ │ ├── cogs.glsl
│ │ │ │ ├── cogs2.glsl
│ │ │ │ ├── col_resize_cursor.png
│ │ │ │ ├── color.names.txt
│ │ │ │ ├── combobox.c
│ │ │ │ ├── constraints.c
│ │ │ │ ├── constraints_builder.c
│ │ │ │ ├── constraints_builder.ui
│ │ │ │ ├── constraints_interactive.c
│ │ │ │ ├── constraints_vfl.c
│ │ │ │ ├── context_menu_cursor.png
│ │ │ │ ├── copy_cursor.png
│ │ │ │ ├── crosshair_cursor.png
│ │ │ │ ├── crosswarp.glsl
│ │ │ │ ├── css_accordion.c
│ │ │ │ ├── css_accordion.css
│ │ │ │ ├── css_basics.c
│ │ │ │ ├── css_basics.css
│ │ │ │ ├── css_blendmodes.c
│ │ │ │ ├── css_blendmodes.css
│ │ │ │ ├── css_multiplebgs.c
│ │ │ │ ├── css_multiplebgs.css
│ │ │ │ ├── css_pixbufs.c
│ │ │ │ ├── css_pixbufs.css
│ │ │ │ ├── css_shadows.c
│ │ │ │ ├── css_shadows.css
│ │ │ │ ├── cssview.css
│ │ │ │ ├── cursors.c
│ │ │ │ ├── cursors.ui
│ │ │ │ ├── data
│ │ │ │ │ ├── scalable
│ │ │ │ │ │ └── apps
│ │ │ │ │ │ │ └── org.gtk.Demo4.svg
│ │ │ │ │ └── symbolic
│ │ │ │ │ │ └── apps
│ │ │ │ │ │ └── org.gtk.Demo4-symbolic.svg
│ │ │ │ ├── decor1.png
│ │ │ │ ├── decor2.png
│ │ │ │ ├── default_cursor.png
│ │ │ │ ├── demo.gresource.xml
│ │ │ │ ├── demo.ui
│ │ │ │ ├── demo2layout.c
│ │ │ │ ├── demo2layout.h
│ │ │ │ ├── demo2widget.c
│ │ │ │ ├── demo2widget.h
│ │ │ │ ├── demo3widget.c
│ │ │ │ ├── demo3widget.h
│ │ │ │ ├── demo3widget.ui
│ │ │ │ ├── demo4widget.c
│ │ │ │ ├── demo4widget.h
│ │ │ │ ├── demochild.c
│ │ │ │ ├── demochild.h
│ │ │ │ ├── demoimage.c
│ │ │ │ ├── demoimage.h
│ │ │ │ ├── demolayout.c
│ │ │ │ ├── demolayout.h
│ │ │ │ ├── demotaggedentry.c
│ │ │ │ ├── demotaggedentry.h
│ │ │ │ ├── demowidget.c
│ │ │ │ ├── demowidget.h
│ │ │ │ ├── dialog.c
│ │ │ │ ├── dnd.c
│ │ │ │ ├── dnd.css
│ │ │ │ ├── drawingarea.c
│ │ │ │ ├── dropdown.c
│ │ │ │ ├── ducky.png
│ │ │ │ ├── e_resize_cursor.png
│ │ │ │ ├── editable_cells.c
│ │ │ │ ├── entry_completion.c
│ │ │ │ ├── entry_undo.c
│ │ │ │ ├── errorstates.c
│ │ │ │ ├── errorstates.ui
│ │ │ │ ├── ew_resize_cursor.png
│ │ │ │ ├── expander.c
│ │ │ │ ├── filtermodel.c
│ │ │ │ ├── filtermodel.ui
│ │ │ │ ├── fishbowl.c
│ │ │ │ ├── fishbowl.ui
│ │ │ │ ├── fixed.c
│ │ │ │ ├── fixed.css
│ │ │ │ ├── floppybuddy.gif
│ │ │ │ ├── flowbox.c
│ │ │ │ ├── font_features.c
│ │ │ │ ├── font_features.ui
│ │ │ │ ├── fontify.c
│ │ │ │ ├── fontify.h
│ │ │ │ ├── fontplane.c
│ │ │ │ ├── fontplane.h
│ │ │ │ ├── fontrendering.c
│ │ │ │ ├── fontrendering.ui
│ │ │ │ ├── four_point_transform.c
│ │ │ │ ├── four_point_transform.h
│ │ │ │ ├── frames.c
│ │ │ │ ├── frames.ui
│ │ │ │ ├── gears.c
│ │ │ │ ├── geninclude.py
│ │ │ │ ├── gestures.c
│ │ │ │ ├── glarea-gl.fs.glsl
│ │ │ │ ├── glarea-gl.vs.glsl
│ │ │ │ ├── glarea-gles.fs.glsl
│ │ │ │ ├── glarea-gles.vs.glsl
│ │ │ │ ├── glarea.c
│ │ │ │ ├── glowingstars.glsl
│ │ │ │ ├── gltransition.c
│ │ │ │ ├── gnome-applets.png
│ │ │ │ ├── gnome-calendar.png
│ │ │ │ ├── gnome-foot.png
│ │ │ │ ├── gnome-fs-directory.png
│ │ │ │ ├── gnome-fs-regular.png
│ │ │ │ ├── gnome-gimp.png
│ │ │ │ ├── gnome-gmush.png
│ │ │ │ ├── gnome-gsame.png
│ │ │ │ ├── gnu-keys.png
│ │ │ │ ├── grab_cursor.png
│ │ │ │ ├── grabbing_cursor.png
│ │ │ │ ├── gskshaderpaintable.c
│ │ │ │ ├── gskshaderpaintable.h
│ │ │ │ ├── gtk-logo.webm
│ │ │ │ ├── gtk
│ │ │ │ │ ├── gtkpagesetupunixdialog.h
│ │ │ │ │ ├── gtkprinter.h
│ │ │ │ │ ├── gtkprintjob.h
│ │ │ │ │ ├── gtkprintunixdialog.h
│ │ │ │ │ ├── gtkunixprint-autocleanups.h
│ │ │ │ │ └── gtkunixprint.h
│ │ │ │ ├── gtk_logo_cursor.png
│ │ │ │ ├── gtkfishbowl.c
│ │ │ │ ├── gtkfishbowl.h
│ │ │ │ ├── gtkgears.c
│ │ │ │ ├── gtkgears.h
│ │ │ │ ├── gtkshaderbin.c
│ │ │ │ ├── gtkshaderbin.h
│ │ │ │ ├── gtkshaderstack.c
│ │ │ │ ├── gtkshaderstack.h
│ │ │ │ ├── gtkshadertoy.c
│ │ │ │ ├── gtkshadertoy.h
│ │ │ │ ├── hand_cursor.png
│ │ │ │ ├── headerbar.c
│ │ │ │ ├── help-overlay.ui
│ │ │ │ ├── help_cursor.png
│ │ │ │ ├── hsla.c
│ │ │ │ ├── hsla.h
│ │ │ │ ├── hypertext.c
│ │ │ │ ├── icons
│ │ │ │ │ ├── 16x16
│ │ │ │ │ │ ├── actions
│ │ │ │ │ │ │ ├── application-exit.png
│ │ │ │ │ │ │ ├── document-edit-symbolic.symbolic.png
│ │ │ │ │ │ │ ├── document-new.png
│ │ │ │ │ │ │ ├── document-open.png
│ │ │ │ │ │ │ ├── document-save.png
│ │ │ │ │ │ │ ├── edit-copy.png
│ │ │ │ │ │ │ ├── edit-cut.png
│ │ │ │ │ │ │ ├── edit-paste.png
│ │ │ │ │ │ │ ├── go-home.png
│ │ │ │ │ │ │ ├── go-up.png
│ │ │ │ │ │ │ ├── mail-send-receive-symbolic.symbolic.png
│ │ │ │ │ │ │ ├── process-stop.png
│ │ │ │ │ │ │ └── view-fullscreen-symbolic.symbolic.png
│ │ │ │ │ │ ├── categories
│ │ │ │ │ │ │ └── applications-other.png
│ │ │ │ │ │ ├── emotes
│ │ │ │ │ │ │ ├── face-cool.png
│ │ │ │ │ │ │ └── face-laugh-symbolic.symbolic.png
│ │ │ │ │ │ └── status
│ │ │ │ │ │ │ └── battery-caution-charging-symbolic.symbolic.png
│ │ │ │ │ └── 48x48
│ │ │ │ │ │ └── status
│ │ │ │ │ │ └── starred.png
│ │ │ │ ├── iconscroll.c
│ │ │ │ ├── iconscroll.ui
│ │ │ │ ├── iconview.c
│ │ │ │ ├── iconview_edit.c
│ │ │ │ ├── images.c
│ │ │ │ ├── infobar.c
│ │ │ │ ├── kaleidoscope.glsl
│ │ │ │ ├── language-names.c
│ │ │ │ ├── language-names.h
│ │ │ │ ├── layoutmanager.c
│ │ │ │ ├── layoutmanager2.c
│ │ │ │ ├── links.c
│ │ │ │ ├── list_store.c
│ │ │ │ ├── listbox.c
│ │ │ │ ├── listbox.ui
│ │ │ │ ├── listbox_controls.c
│ │ │ │ ├── listbox_controls.ui
│ │ │ │ ├── listview_applauncher.c
│ │ │ │ ├── listview_clocks.c
│ │ │ │ ├── listview_colors.c
│ │ │ │ ├── listview_colors.css
│ │ │ │ ├── listview_filebrowser.c
│ │ │ │ ├── listview_filebrowser.css
│ │ │ │ ├── listview_filebrowser.ui
│ │ │ │ ├── listview_minesweeper.c
│ │ │ │ ├── listview_minesweeper.ui
│ │ │ │ ├── listview_minesweeper_cell.ui
│ │ │ │ ├── listview_settings.c
│ │ │ │ ├── listview_settings.ui
│ │ │ │ ├── listview_ucd.c
│ │ │ │ ├── listview_weather.c
│ │ │ │ ├── listview_weather.txt
│ │ │ │ ├── listview_words.c
│ │ │ │ ├── main-listitem.ui
│ │ │ │ ├── main.c
│ │ │ │ ├── main.ui
│ │ │ │ ├── mandelbrot.glsl
│ │ │ │ ├── markup.c
│ │ │ │ ├── markup.txt
│ │ │ │ ├── mask.c
│ │ │ │ ├── menu.c
│ │ │ │ ├── menus.ui
│ │ │ │ ├── meson.build
│ │ │ │ ├── messages.txt
│ │ │ │ ├── move_cursor.png
│ │ │ │ ├── n_resize_cursor.png
│ │ │ │ ├── ne_resize_cursor.png
│ │ │ │ ├── neon.glsl
│ │ │ │ ├── nesw_resize_cursor.png
│ │ │ │ ├── no_drop_cursor.png
│ │ │ │ ├── none_cursor.png
│ │ │ │ ├── not_allowed_cursor.png
│ │ │ │ ├── ns_resize_cursor.png
│ │ │ │ ├── nw_resize_cursor.png
│ │ │ │ ├── nwse_resize_cursor.png
│ │ │ │ ├── open-type-layout.h
│ │ │ │ ├── org.gtk.Demo4.appdata.xml.in
│ │ │ │ ├── org.gtk.Demo4.desktop
│ │ │ │ ├── org.gtk.Demo4.gschema.xml
│ │ │ │ ├── org.gtk.gtk4.NodeEditor.Devel.svg
│ │ │ │ ├── overlay.c
│ │ │ │ ├── overlay_decorative.c
│ │ │ │ ├── pagesetup.c
│ │ │ │ ├── paint.c
│ │ │ │ ├── paintable.c
│ │ │ │ ├── paintable.h
│ │ │ │ ├── paintable_animated.c
│ │ │ │ ├── paintable_emblem.c
│ │ │ │ ├── paintable_mediastream.c
│ │ │ │ ├── paintable_svg.c
│ │ │ │ ├── paintable_symbolic.c
│ │ │ │ ├── panes.c
│ │ │ │ ├── password_entry.c
│ │ │ │ ├── peg_solitaire.c
│ │ │ │ ├── pickers.c
│ │ │ │ ├── pixbufpaintable.c
│ │ │ │ ├── pixbufpaintable.h
│ │ │ │ ├── pointer_cursor.png
│ │ │ │ ├── portland-rose.jpg
│ │ │ │ ├── printing.c
│ │ │ │ ├── progress_cursor.png
│ │ │ │ ├── puzzlepiece.c
│ │ │ │ ├── puzzlepiece.h
│ │ │ │ ├── radial.glsl
│ │ │ │ ├── read_more.c
│ │ │ │ ├── reset.css
│ │ │ │ ├── revealer.c
│ │ │ │ ├── revealer.ui
│ │ │ │ ├── ripple.glsl
│ │ │ │ ├── rotated_text.c
│ │ │ │ ├── row_resize_cursor.png
│ │ │ │ ├── s_resize_cursor.png
│ │ │ │ ├── scale.c
│ │ │ │ ├── scale.ui
│ │ │ │ ├── script-names.c
│ │ │ │ ├── script-names.h
│ │ │ │ ├── se_resize_cursor.png
│ │ │ │ ├── search_entry.c
│ │ │ │ ├── search_entry2.c
│ │ │ │ ├── shadertoy.c
│ │ │ │ ├── shortcut_triggers.c
│ │ │ │ ├── shortcuts-boxes.ui
│ │ │ │ ├── shortcuts-builder.ui
│ │ │ │ ├── shortcuts-clocks.ui
│ │ │ │ ├── shortcuts-gedit.ui
│ │ │ │ ├── shortcuts.c
│ │ │ │ ├── shortcuts.ui
│ │ │ │ ├── sidebar.c
│ │ │ │ ├── singular_value_decomposition.c
│ │ │ │ ├── singular_value_decomposition.h
│ │ │ │ ├── sizegroup.c
│ │ │ │ ├── sliding_puzzle.c
│ │ │ │ ├── spinbutton.c
│ │ │ │ ├── spinbutton.ui
│ │ │ │ ├── spinner.c
│ │ │ │ ├── stack.c
│ │ │ │ ├── stack.ui
│ │ │ │ ├── suggestionentry.c
│ │ │ │ ├── suggestionentry.css
│ │ │ │ ├── suggestionentry.h
│ │ │ │ ├── svgpaintable.c
│ │ │ │ ├── svgpaintable.h
│ │ │ │ ├── sw_resize_cursor.png
│ │ │ │ ├── tabs.c
│ │ │ │ ├── tagged_entry.c
│ │ │ │ ├── tagstyle.css
│ │ │ │ ├── text_cursor.png
│ │ │ │ ├── textmask.c
│ │ │ │ ├── textscroll.c
│ │ │ │ ├── textundo.c
│ │ │ │ ├── textview.c
│ │ │ │ ├── themes.c
│ │ │ │ ├── themes.ui
│ │ │ │ ├── theming.ui
│ │ │ │ ├── theming_style_classes.c
│ │ │ │ ├── transparent.c
│ │ │ │ ├── tree_store.c
│ │ │ │ ├── ucdnames.data
│ │ │ │ ├── unicode-names.c
│ │ │ │ ├── unicode-names.h
│ │ │ │ ├── vertical_text_cursor.png
│ │ │ │ ├── video_player.c
│ │ │ │ ├── w_resize_cursor.png
│ │ │ │ ├── wait_cursor.png
│ │ │ │ ├── wind.glsl
│ │ │ │ ├── zoom_in_cursor.png
│ │ │ │ └── zoom_out_cursor.png
│ │ │ ├── icon-browser
│ │ │ │ ├── data
│ │ │ │ │ ├── scalable
│ │ │ │ │ │ └── apps
│ │ │ │ │ │ │ └── org.gtk.IconBrowser4.svg
│ │ │ │ │ └── symbolic
│ │ │ │ │ │ └── apps
│ │ │ │ │ │ └── org.gtk.IconBrowser4-symbolic.svg
│ │ │ │ ├── icon.list
│ │ │ │ ├── iconbrowser.gresource.xml
│ │ │ │ ├── iconbrowserapp.c
│ │ │ │ ├── iconbrowserapp.h
│ │ │ │ ├── iconbrowsercontext.c
│ │ │ │ ├── iconbrowsercontext.h
│ │ │ │ ├── iconbrowsericon.c
│ │ │ │ ├── iconbrowsericon.h
│ │ │ │ ├── iconbrowserwin.c
│ │ │ │ ├── iconbrowserwin.h
│ │ │ │ ├── main.c
│ │ │ │ ├── meson.build
│ │ │ │ ├── org.gtk.IconBrowser4.appdata.xml.in
│ │ │ │ ├── org.gtk.IconBrowser4.desktop
│ │ │ │ └── window.ui
│ │ │ ├── meson.build
│ │ │ ├── node-editor
│ │ │ │ ├── data
│ │ │ │ │ ├── scalable
│ │ │ │ │ │ └── apps
│ │ │ │ │ │ │ ├── org.gtk.gtk4.NodeEditor.Devel.svg
│ │ │ │ │ │ │ └── org.gtk.gtk4.NodeEditor.svg
│ │ │ │ │ └── symbolic
│ │ │ │ │ │ └── apps
│ │ │ │ │ │ └── org.gtk.gtk4.NodeEditor-symbolic.svg
│ │ │ │ ├── gsk
│ │ │ │ │ ├── gskrendernode.h
│ │ │ │ │ ├── gskrendernodeparserprivate.h
│ │ │ │ │ └── gskrendernodeprivate.h
│ │ │ │ ├── gtkrendererpaintable.c
│ │ │ │ ├── gtkrendererpaintableprivate.h
│ │ │ │ ├── help-window.ui
│ │ │ │ ├── main.c
│ │ │ │ ├── meson.build
│ │ │ │ ├── node-editor-application.c
│ │ │ │ ├── node-editor-application.h
│ │ │ │ ├── node-editor-window.c
│ │ │ │ ├── node-editor-window.h
│ │ │ │ ├── node-editor-window.ui
│ │ │ │ ├── node-editor.gresource.xml
│ │ │ │ ├── node-format.md
│ │ │ │ ├── org.gtk.gtk4.NodeEditor.appdata.xml.in
│ │ │ │ └── org.gtk.gtk4.NodeEditor.desktop
│ │ │ ├── print-editor
│ │ │ │ ├── data
│ │ │ │ │ ├── scalable
│ │ │ │ │ │ └── apps
│ │ │ │ │ │ │ ├── org.gtk.PrintEditor4.Devel.svg
│ │ │ │ │ │ │ └── org.gtk.PrintEditor4.svg
│ │ │ │ │ └── symbolic
│ │ │ │ │ │ └── apps
│ │ │ │ │ │ └── org.gtk.PrintEditor4-symbolic.svg
│ │ │ │ ├── meson.build
│ │ │ │ ├── org.gtk.PrintEditor4.appdata.xml
│ │ │ │ ├── org.gtk.PrintEditor4.desktop
│ │ │ │ └── print-editor.c
│ │ │ └── widget-factory
│ │ │ │ ├── beach.jpg
│ │ │ │ ├── data
│ │ │ │ ├── scalable
│ │ │ │ │ └── apps
│ │ │ │ │ │ └── org.gtk.WidgetFactory4.svg
│ │ │ │ └── symbolic
│ │ │ │ │ └── apps
│ │ │ │ │ └── org.gtk.WidgetFactory4-symbolic.svg
│ │ │ │ ├── gtk-logo.webm
│ │ │ │ ├── help-overlay.ui
│ │ │ │ ├── icons
│ │ │ │ ├── 16x16
│ │ │ │ │ ├── actions
│ │ │ │ │ │ ├── call-start-symbolic.symbolic.png
│ │ │ │ │ │ ├── call-stop-symbolic.symbolic.png
│ │ │ │ │ │ ├── document-new-symbolic.symbolic.png
│ │ │ │ │ │ ├── document-new.png
│ │ │ │ │ │ ├── document-save.png
│ │ │ │ │ │ ├── document-send-symbolic.symbolic.png
│ │ │ │ │ │ ├── edit-find.png
│ │ │ │ │ │ ├── format-indent-less-symbolic-rtl.symbolic.png
│ │ │ │ │ │ ├── format-indent-less-symbolic.symbolic.png
│ │ │ │ │ │ ├── format-indent-more-symbolic-rtl.symbolic.png
│ │ │ │ │ │ ├── format-indent-more-symbolic.symbolic.png
│ │ │ │ │ │ ├── format-justify-center-symbolic.symbolic.png
│ │ │ │ │ │ ├── format-justify-fill-symbolic.symbolic.png
│ │ │ │ │ │ ├── format-justify-left-symbolic.symbolic.png
│ │ │ │ │ │ ├── format-justify-right-symbolic.symbolic.png
│ │ │ │ │ │ ├── insert-image.png
│ │ │ │ │ │ ├── insert-link-symbolic.symbolic.png
│ │ │ │ │ │ ├── send-to-symbolic.symbolic.png
│ │ │ │ │ │ ├── star-new-symbolic.symbolic.png
│ │ │ │ │ │ ├── view-continuous-symbolic.symbolic.png
│ │ │ │ │ │ ├── view-dual-symbolic.symbolic.png
│ │ │ │ │ │ ├── view-fullscreen-symbolic.symbolic.png
│ │ │ │ │ │ ├── view-grid-symbolic.symbolic.png
│ │ │ │ │ │ ├── view-paged-symbolic.symbolic.png
│ │ │ │ │ │ ├── zoom-in-symbolic.symbolic.png
│ │ │ │ │ │ ├── zoom-in.png
│ │ │ │ │ │ ├── zoom-original-symbolic.symbolic.png
│ │ │ │ │ │ ├── zoom-original.png
│ │ │ │ │ │ ├── zoom-out-symbolic.symbolic.png
│ │ │ │ │ │ └── zoom-out.png
│ │ │ │ │ ├── apps
│ │ │ │ │ │ └── preferences-desktop-locale-symbolic.symbolic.png
│ │ │ │ │ ├── devices
│ │ │ │ │ │ ├── audio-headphones-symbolic.symbolic.png
│ │ │ │ │ │ ├── audio-input-microphone-symbolic.symbolic.png
│ │ │ │ │ │ ├── audio-speakers-symbolic.symbolic.png
│ │ │ │ │ │ ├── camera-photo-symbolic.symbolic.png
│ │ │ │ │ │ ├── camera-web-symbolic.symbolic.png
│ │ │ │ │ │ ├── drive-optical-symbolic.symbolic.png
│ │ │ │ │ │ ├── network-wired-symbolic.symbolic.png
│ │ │ │ │ │ ├── network-wireless-symbolic.symbolic.png
│ │ │ │ │ │ └── phone-symbolic.symbolic.png
│ │ │ │ │ ├── emblems
│ │ │ │ │ │ ├── emblem-default-symbolic.symbolic.png
│ │ │ │ │ │ └── emblem-shared-symbolic.symbolic.png
│ │ │ │ │ ├── emotes
│ │ │ │ │ │ └── face-monkey-symbolic.symbolic.png
│ │ │ │ │ └── status
│ │ │ │ │ │ ├── appointment-soon-symbolic.symbolic.png
│ │ │ │ │ │ ├── microphone-sensitivity-high-symbolic.symbolic.png
│ │ │ │ │ │ ├── microphone-sensitivity-low-symbolic.symbolic.png
│ │ │ │ │ │ ├── microphone-sensitivity-medium-symbolic.symbolic.png
│ │ │ │ │ │ ├── microphone-sensitivity-muted-symbolic.symbolic.png
│ │ │ │ │ │ ├── weather-clear-night-symbolic.symbolic.png
│ │ │ │ │ │ ├── weather-few-clouds-night-symbolic.symbolic.png
│ │ │ │ │ │ ├── weather-fog-symbolic.symbolic.png
│ │ │ │ │ │ ├── weather-overcast-symbolic.symbolic.png
│ │ │ │ │ │ ├── weather-severe-alert-symbolic.symbolic.png
│ │ │ │ │ │ ├── weather-showers-symbolic.symbolic.png
│ │ │ │ │ │ └── weather-snow-symbolic.symbolic.png
│ │ │ │ └── scalable
│ │ │ │ │ ├── actions
│ │ │ │ │ ├── call-start-symbolic.svg
│ │ │ │ │ ├── call-stop-symbolic.svg
│ │ │ │ │ ├── document-new-symbolic.svg
│ │ │ │ │ ├── format-indent-less-symbolic-rtl.svg
│ │ │ │ │ ├── format-indent-less-symbolic.svg
│ │ │ │ │ ├── format-indent-more-symbolic-rtl.svg
│ │ │ │ │ ├── format-indent-more-symbolic.svg
│ │ │ │ │ ├── format-justify-center-symbolic.svg
│ │ │ │ │ ├── format-justify-fill-symbolic.svg
│ │ │ │ │ ├── format-justify-left-symbolic.svg
│ │ │ │ │ ├── format-justify-right-symbolic.svg
│ │ │ │ │ ├── insert-link-symbolic.svg
│ │ │ │ │ ├── star-new-symbolic.svg
│ │ │ │ │ ├── view-continuous-symbolic.svg
│ │ │ │ │ ├── view-dual-symbolic.svg
│ │ │ │ │ ├── view-fullscreen-symbolic.svg
│ │ │ │ │ ├── view-grid-symbolic.svg
│ │ │ │ │ ├── view-paged-symbolic.svg
│ │ │ │ │ ├── zoom-in-symbolic.svg
│ │ │ │ │ ├── zoom-original-symbolic.svg
│ │ │ │ │ └── zoom-out-symbolic.svg
│ │ │ │ │ ├── devices
│ │ │ │ │ ├── audio-headphones-symbolic.svg
│ │ │ │ │ ├── audio-input-microphone-symbolic.svg
│ │ │ │ │ ├── audio-speakers-symbolic.svg
│ │ │ │ │ ├── camera-photo-symbolic.svg
│ │ │ │ │ ├── camera-web-symbolic.svg
│ │ │ │ │ ├── drive-optical-symbolic.svg
│ │ │ │ │ ├── network-wired-symbolic.svg
│ │ │ │ │ ├── network-wireless-symbolic.svg
│ │ │ │ │ └── phone-symbolic.svg
│ │ │ │ │ └── status
│ │ │ │ │ ├── weather-clear-night-symbolic.svg
│ │ │ │ │ ├── weather-few-clouds-night-symbolic.svg
│ │ │ │ │ ├── weather-fog-symbolic.svg
│ │ │ │ │ ├── weather-overcast-symbolic.svg
│ │ │ │ │ ├── weather-severe-alert-symbolic.svg
│ │ │ │ │ ├── weather-showers-symbolic.svg
│ │ │ │ │ └── weather-snow-symbolic.svg
│ │ │ │ ├── meson.build
│ │ │ │ ├── nyc.jpg
│ │ │ │ ├── org.gtk.WidgetFactory4.appdata.xml.in
│ │ │ │ ├── org.gtk.WidgetFactory4.desktop
│ │ │ │ ├── portland-rose.jpg
│ │ │ │ ├── sunset.jpg
│ │ │ │ ├── widget-factory.c
│ │ │ │ ├── widget-factory.css
│ │ │ │ ├── widget-factory.gresource.xml
│ │ │ │ └── widget-factory.ui
│ │ ├── examples
│ │ │ ├── README
│ │ │ ├── action-namespace.c
│ │ │ ├── application1
│ │ │ │ ├── Makefile.example
│ │ │ │ ├── README
│ │ │ │ ├── exampleapp.c
│ │ │ │ ├── exampleapp.h
│ │ │ │ ├── exampleapp.png
│ │ │ │ ├── exampleappwin.c
│ │ │ │ ├── exampleappwin.h
│ │ │ │ ├── main.c
│ │ │ │ ├── meson.build
│ │ │ │ └── org.gtk.exampleapp.desktop
│ │ │ ├── application2
│ │ │ │ ├── Makefile.example
│ │ │ │ ├── README
│ │ │ │ ├── exampleapp.c
│ │ │ │ ├── exampleapp.gresource.xml
│ │ │ │ ├── exampleapp.h
│ │ │ │ ├── exampleappwin.c
│ │ │ │ ├── exampleappwin.h
│ │ │ │ ├── main.c
│ │ │ │ ├── meson.build
│ │ │ │ └── window.ui
│ │ │ ├── application3
│ │ │ │ ├── Makefile.example
│ │ │ │ ├── README
│ │ │ │ ├── exampleapp.c
│ │ │ │ ├── exampleapp.gresource.xml
│ │ │ │ ├── exampleapp.h
│ │ │ │ ├── exampleappwin.c
│ │ │ │ ├── exampleappwin.h
│ │ │ │ ├── main.c
│ │ │ │ ├── meson.build
│ │ │ │ └── window.ui
│ │ │ ├── application4
│ │ │ │ ├── Makefile.example
│ │ │ │ ├── README
│ │ │ │ ├── exampleapp.c
│ │ │ │ ├── exampleapp.gresource.xml
│ │ │ │ ├── exampleapp.h
│ │ │ │ ├── exampleappwin.c
│ │ │ │ ├── exampleappwin.h
│ │ │ │ ├── gears-menu.ui
│ │ │ │ ├── main.c
│ │ │ │ ├── meson.build
│ │ │ │ └── window.ui
│ │ │ ├── application5
│ │ │ │ ├── Makefile.example
│ │ │ │ ├── exampleapp.c
│ │ │ │ ├── exampleapp.gresource.xml
│ │ │ │ ├── exampleapp.h
│ │ │ │ ├── exampleappwin.c
│ │ │ │ ├── exampleappwin.h
│ │ │ │ ├── gears-menu.ui
│ │ │ │ ├── main.c
│ │ │ │ ├── meson.build
│ │ │ │ ├── org.gtk.exampleapp.gschema.xml
│ │ │ │ └── window.ui
│ │ │ ├── application6
│ │ │ │ ├── Makefile.example
│ │ │ │ ├── exampleapp.c
│ │ │ │ ├── exampleapp.gresource.xml
│ │ │ │ ├── exampleapp.h
│ │ │ │ ├── exampleappprefs.c
│ │ │ │ ├── exampleappprefs.h
│ │ │ │ ├── exampleappwin.c
│ │ │ │ ├── exampleappwin.h
│ │ │ │ ├── gears-menu.ui
│ │ │ │ ├── main.c
│ │ │ │ ├── meson.build
│ │ │ │ ├── org.gtk.exampleapp.gschema.xml
│ │ │ │ ├── prefs.ui
│ │ │ │ └── window.ui
│ │ │ ├── application7
│ │ │ │ ├── Makefile.example
│ │ │ │ ├── README
│ │ │ │ ├── exampleapp.c
│ │ │ │ ├── exampleapp.gresource.xml
│ │ │ │ ├── exampleapp.h
│ │ │ │ ├── exampleappprefs.c
│ │ │ │ ├── exampleappprefs.h
│ │ │ │ ├── exampleappwin.c
│ │ │ │ ├── exampleappwin.h
│ │ │ │ ├── gears-menu.ui
│ │ │ │ ├── main.c
│ │ │ │ ├── meson.build
│ │ │ │ ├── org.gtk.exampleapp.gschema.xml
│ │ │ │ ├── prefs.ui
│ │ │ │ └── window.ui
│ │ │ ├── application8
│ │ │ │ ├── Makefile.example
│ │ │ │ ├── README
│ │ │ │ ├── exampleapp.c
│ │ │ │ ├── exampleapp.gresource.xml
│ │ │ │ ├── exampleapp.h
│ │ │ │ ├── exampleappprefs.c
│ │ │ │ ├── exampleappprefs.h
│ │ │ │ ├── exampleappwin.c
│ │ │ │ ├── exampleappwin.h
│ │ │ │ ├── gears-menu.ui
│ │ │ │ ├── main.c
│ │ │ │ ├── meson.build
│ │ │ │ ├── org.gtk.exampleapp.gschema.xml
│ │ │ │ ├── prefs.ui
│ │ │ │ └── window.ui
│ │ │ ├── application9
│ │ │ │ ├── Makefile.example
│ │ │ │ ├── README
│ │ │ │ ├── exampleapp.c
│ │ │ │ ├── exampleapp.gresource.xml
│ │ │ │ ├── exampleapp.h
│ │ │ │ ├── exampleappprefs.c
│ │ │ │ ├── exampleappprefs.h
│ │ │ │ ├── exampleappwin.c
│ │ │ │ ├── exampleappwin.h
│ │ │ │ ├── gears-menu.ui
│ │ │ │ ├── main.c
│ │ │ │ ├── meson.build
│ │ │ │ ├── org.gtk.exampleapp.gschema.xml
│ │ │ │ ├── prefs.ui
│ │ │ │ └── window.ui
│ │ │ ├── bp
│ │ │ │ ├── bloatpad.c
│ │ │ │ ├── bloatpad.gresources.xml
│ │ │ │ ├── gtk
│ │ │ │ │ ├── help-overlay.ui
│ │ │ │ │ └── menus.ui
│ │ │ │ ├── icons
│ │ │ │ │ └── 16x16
│ │ │ │ │ │ └── actions
│ │ │ │ │ │ ├── format-justify-center-symbolic.symbolic.png
│ │ │ │ │ │ ├── format-justify-left-symbolic.symbolic.png
│ │ │ │ │ │ ├── format-justify-right-symbolic.symbolic.png
│ │ │ │ │ │ ├── view-fullscreen-symbolic.symbolic.png
│ │ │ │ │ │ └── view-restore-symbolic.symbolic.png
│ │ │ │ └── meson.build
│ │ │ ├── builder.c
│ │ │ ├── builder.ui
│ │ │ ├── drawing.c
│ │ │ ├── grid-packing.c
│ │ │ ├── hello
│ │ │ │ ├── README.md
│ │ │ │ ├── hello-world.c
│ │ │ │ └── meson.build
│ │ │ ├── labels.js
│ │ │ ├── meson.build
│ │ │ ├── plugman.c
│ │ │ ├── search-bar.c
│ │ │ ├── squares.py
│ │ │ ├── sunny.c
│ │ │ └── window-default.c
│ │ ├── fonts
│ │ │ └── inter
│ │ │ │ ├── Inter-Black.otf
│ │ │ │ ├── Inter-BlackItalic.otf
│ │ │ │ ├── Inter-Bold.otf
│ │ │ │ ├── Inter-BoldItalic.otf
│ │ │ │ ├── Inter-ExtraBold.otf
│ │ │ │ ├── Inter-ExtraBoldItalic.otf
│ │ │ │ ├── Inter-ExtraLight.otf
│ │ │ │ ├── Inter-ExtraLightItalic.otf
│ │ │ │ ├── Inter-Italic.otf
│ │ │ │ ├── Inter-Light.otf
│ │ │ │ ├── Inter-LightItalic.otf
│ │ │ │ ├── Inter-Medium.otf
│ │ │ │ ├── Inter-MediumItalic.otf
│ │ │ │ ├── Inter-Regular.otf
│ │ │ │ ├── Inter-SemiBold.otf
│ │ │ │ ├── Inter-SemiBoldItalic.otf
│ │ │ │ ├── Inter-Thin.otf
│ │ │ │ ├── Inter-ThinItalic.otf
│ │ │ │ ├── InterDisplay-Black.otf
│ │ │ │ ├── InterDisplay-BlackItalic.otf
│ │ │ │ ├── InterDisplay-Bold.otf
│ │ │ │ ├── InterDisplay-BoldItalic.otf
│ │ │ │ ├── InterDisplay-ExtraBold.otf
│ │ │ │ ├── InterDisplay-ExtraBoldItalic.otf
│ │ │ │ ├── InterDisplay-ExtraLight.otf
│ │ │ │ ├── InterDisplay-ExtraLightItalic.otf
│ │ │ │ ├── InterDisplay-Italic.otf
│ │ │ │ ├── InterDisplay-Light.otf
│ │ │ │ ├── InterDisplay-LightItalic.otf
│ │ │ │ ├── InterDisplay-Medium.otf
│ │ │ │ ├── InterDisplay-MediumItalic.otf
│ │ │ │ ├── InterDisplay-Regular.otf
│ │ │ │ ├── InterDisplay-SemiBold.otf
│ │ │ │ ├── InterDisplay-SemiBoldItalic.otf
│ │ │ │ ├── InterDisplay-Thin.otf
│ │ │ │ └── InterDisplay-ThinItalic.otf
│ │ ├── meson.build
│ │ └── meson_options.txt
│ ├── simple-shm
│ │ ├── .gitignore
│ │ ├── build.sh
│ │ └── src
│ │ │ └── simple-shm.c
│ └── weston
│ │ ├── .gitignore
│ │ ├── build.sh
│ │ ├── clients
│ │ ├── calibrator.c
│ │ ├── cliptest.c
│ │ ├── content_protection.c
│ │ ├── dnd.c
│ │ ├── editor.c
│ │ ├── eventdemo.c
│ │ ├── flower.c
│ │ ├── fullscreen.c
│ │ ├── image.c
│ │ ├── keyboard.c
│ │ ├── meson.build
│ │ ├── multi-resource.c
│ │ ├── presentation-shm.c
│ │ ├── resizor.c
│ │ ├── scaler.c
│ │ ├── screenshot.c
│ │ ├── simple-damage.c
│ │ ├── simple-egl.c
│ │ ├── simple-im.c
│ │ ├── simple-shm.c
│ │ ├── simple-touch.c
│ │ ├── smoke.c
│ │ ├── stacking.c
│ │ ├── subsurfaces.c
│ │ ├── terminal.c
│ │ ├── transformed.c
│ │ ├── window.c
│ │ └── window.h
│ │ ├── data
│ │ ├── COPYING
│ │ ├── background.png
│ │ ├── border.png
│ │ ├── fullscreen.png
│ │ ├── home.png
│ │ ├── icon_editor.png
│ │ ├── icon_flower.png
│ │ ├── icon_ivi_clickdot.png
│ │ ├── icon_ivi_flower.png
│ │ ├── icon_ivi_simple-egl.png
│ │ ├── icon_ivi_simple-shm.png
│ │ ├── icon_ivi_smoke.png
│ │ ├── icon_terminal.png
│ │ ├── icon_window.png
│ │ ├── icons.svg
│ │ ├── meson.build
│ │ ├── panel.png
│ │ ├── pattern.png
│ │ ├── random.png
│ │ ├── sidebyside.png
│ │ ├── sign_close.png
│ │ ├── sign_maximize.png
│ │ ├── sign_minimize.png
│ │ ├── terminal.png
│ │ ├── tiling.png
│ │ ├── wayland.png
│ │ └── wayland.svg
│ │ ├── fonts
│ │ └── inter
│ │ │ ├── Inter-Black.otf
│ │ │ ├── Inter-BlackItalic.otf
│ │ │ ├── Inter-Bold.otf
│ │ │ ├── Inter-BoldItalic.otf
│ │ │ ├── Inter-ExtraBold.otf
│ │ │ ├── Inter-ExtraBoldItalic.otf
│ │ │ ├── Inter-ExtraLight.otf
│ │ │ ├── Inter-ExtraLightItalic.otf
│ │ │ ├── Inter-Italic.otf
│ │ │ ├── Inter-Light.otf
│ │ │ ├── Inter-LightItalic.otf
│ │ │ ├── Inter-Medium.otf
│ │ │ ├── Inter-MediumItalic.otf
│ │ │ ├── Inter-Regular.otf
│ │ │ ├── Inter-SemiBold.otf
│ │ │ ├── Inter-SemiBoldItalic.otf
│ │ │ ├── Inter-Thin.otf
│ │ │ ├── Inter-ThinItalic.otf
│ │ │ ├── InterDisplay-Black.otf
│ │ │ ├── InterDisplay-BlackItalic.otf
│ │ │ ├── InterDisplay-Bold.otf
│ │ │ ├── InterDisplay-BoldItalic.otf
│ │ │ ├── InterDisplay-ExtraBold.otf
│ │ │ ├── InterDisplay-ExtraBoldItalic.otf
│ │ │ ├── InterDisplay-ExtraLight.otf
│ │ │ ├── InterDisplay-ExtraLightItalic.otf
│ │ │ ├── InterDisplay-Italic.otf
│ │ │ ├── InterDisplay-Light.otf
│ │ │ ├── InterDisplay-LightItalic.otf
│ │ │ ├── InterDisplay-Medium.otf
│ │ │ ├── InterDisplay-MediumItalic.otf
│ │ │ ├── InterDisplay-Regular.otf
│ │ │ ├── InterDisplay-SemiBold.otf
│ │ │ ├── InterDisplay-SemiBoldItalic.otf
│ │ │ ├── InterDisplay-Thin.otf
│ │ │ └── InterDisplay-ThinItalic.otf
│ │ ├── include
│ │ ├── libweston
│ │ │ ├── backend-drm.h
│ │ │ ├── backend-headless.h
│ │ │ ├── backend-rdp.h
│ │ │ ├── backend-vnc.h
│ │ │ ├── backend-wayland.h
│ │ │ ├── backend-x11.h
│ │ │ ├── config-parser.h
│ │ │ ├── desktop.h
│ │ │ ├── libweston.h
│ │ │ ├── matrix.h
│ │ │ ├── meson.build
│ │ │ ├── pipewire-plugin.h
│ │ │ ├── plugin-registry.h
│ │ │ ├── remoting-plugin.h
│ │ │ ├── version.h.in
│ │ │ ├── weston-log.h
│ │ │ ├── windowed-output-api.h
│ │ │ ├── xwayland-api.h
│ │ │ └── zalloc.h
│ │ ├── linux
│ │ │ └── input.h
│ │ └── meson.build
│ │ ├── meson.build
│ │ ├── meson_options.txt
│ │ ├── protocol
│ │ └── meson.build
│ │ ├── set_env.js
│ │ └── shared
│ │ ├── cairo-util.c
│ │ ├── cairo-util.h
│ │ ├── config-parser.c
│ │ ├── fd-util.h
│ │ ├── file-util.c
│ │ ├── file-util.h
│ │ ├── frame.c
│ │ ├── helpers.h
│ │ ├── image-loader.c
│ │ ├── image-loader.h
│ │ ├── matrix.c
│ │ ├── meson.build
│ │ ├── option-parser.c
│ │ ├── os-compatibility.c
│ │ ├── os-compatibility.h
│ │ ├── platform.h
│ │ ├── process-util.c
│ │ ├── process-util.h
│ │ ├── string-helpers.h
│ │ ├── timespec-util.h
│ │ ├── weston-drm-fourcc.h
│ │ ├── weston-egl-ext.h
│ │ ├── xalloc.h
│ │ ├── xcb-xwayland.c
│ │ └── xcb-xwayland.h
└── webapps
│ ├── gtk4
│ ├── .gitignore
│ ├── README.md
│ ├── package.json
│ └── vite.config.ts
│ ├── simple-shm
│ ├── .gitignore
│ ├── README.md
│ ├── app.html
│ ├── package.json
│ ├── src
│ │ └── index.ts
│ ├── tsconfig.json
│ └── vite.config.ts
│ ├── webgl
│ ├── .gitignore
│ ├── README.md
│ ├── app.html
│ ├── package.json
│ ├── src
│ │ ├── demo.frag
│ │ ├── demo.vert
│ │ ├── glsl.d.ts
│ │ ├── index.ts
│ │ └── webgl-demo.ts
│ ├── tsconfig.json
│ └── vite.config.ts
│ └── weston-clients
│ ├── README.md
│ ├── dist
│ ├── package.json
│ └── vite.config.mts
├── libs
├── client-generator
│ ├── .gitignore
│ ├── .npmignore
│ ├── LICENSE
│ ├── ProtocolArguments.mjs
│ ├── ProtocolParser.mjs
│ ├── index.mjs
│ └── package.json
├── client-protocol
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── .npmignore
│ ├── .prettierrc.js
│ ├── LICENSE
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ ├── protocol
│ │ │ ├── index.ts
│ │ │ ├── wayland.ts
│ │ │ ├── web_bitmapbuf.ts
│ │ │ └── xdg_shell.ts
│ │ └── westfield-runtime-client.ts
│ └── tsconfig.json
├── common
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── .prettierrc.js
│ ├── LICENSE
│ ├── package.json
│ ├── src
│ │ ├── Connection.ts
│ │ └── index.ts
│ └── tsconfig.json
├── compositor-ffmpeg-h264
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── .prettierrc.js
│ ├── LICENSE
│ ├── README.md
│ ├── build_wasm.sh
│ ├── native
│ │ ├── decoder.c
│ │ └── decoder.h
│ ├── package.json
│ ├── src
│ │ ├── H264Decoder.ts
│ │ ├── H264Worker.ts
│ │ ├── index.ts
│ │ └── libav-h264.js
│ └── tsconfig.json
├── compositor-generator
│ ├── .gitignore
│ ├── LICENSE
│ ├── ProtocolArguments.mjs
│ ├── ProtocolParser.mjs
│ ├── index.mjs
│ └── package.json
├── compositor-protocol
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── .prettierrc.js
│ ├── LICENSE
│ ├── index.js
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ ├── protocol
│ │ │ ├── index.ts
│ │ │ ├── wayland.ts
│ │ │ ├── web_bitmapbuf.ts
│ │ │ └── xdg_shell.ts
│ │ └── westfield-runtime-server.ts
│ └── tsconfig.json
├── compositor-proxy-generator
│ ├── .gitignore
│ ├── LICENSE
│ ├── package.json
│ └── src
│ │ ├── EndpointProtocolArguments.mjs
│ │ ├── EndpointProtocolParser.mjs
│ │ └── index.mjs
├── compositor-wasm
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── .prettierrc.js
│ ├── LICENSE
│ ├── README.md
│ ├── build_wasm.sh
│ ├── emscripten-build.ini
│ ├── package.json
│ ├── pixman
│ │ └── build.sh
│ ├── src
│ │ └── index.ts
│ ├── tsconfig.json
│ └── xkbcommon
│ │ ├── build.sh
│ │ └── changes.patch
└── xtsb
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── .prettierrc.js
│ ├── LICENSE
│ ├── README.md
│ ├── package.json
│ ├── protocol
│ ├── composite.xml
│ ├── render.xml
│ ├── shape.xml
│ ├── xfixes.xml
│ └── xproto.xml
│ ├── src
│ ├── Protocol.ts
│ ├── auth.ts
│ ├── connection.ts
│ ├── index.node.ts
│ ├── index.ts
│ ├── index.web.ts
│ ├── nodeConnection.ts
│ ├── struct.ts
│ ├── webConnection.ts
│ ├── xcb.ts
│ ├── xcbComposite.ts
│ ├── xcbRender.ts
│ ├── xcbShape.ts
│ ├── xcbXFixes.ts
│ └── xjsbInternals.ts
│ ├── test
│ ├── 0.connection.spec.ts
│ ├── setupXvfb.ts
│ └── struct.spec.ts
│ ├── tsconfig.json
│ ├── tsconfig.node.json
│ └── xcbgen
│ ├── __init__.py
│ ├── align.py
│ ├── error.py
│ ├── expr.py
│ ├── matcher.py
│ ├── state.py
│ ├── ts_client.py
│ └── xtypes.py
├── package.json
├── packages
├── compositor-proxy-cli
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── .prettierrc.js
│ ├── example-applications.json
│ ├── package.json
│ ├── src
│ │ ├── SessionProcess.ts
│ │ ├── app-config-schema.json
│ │ ├── app-config.d.ts
│ │ ├── main-args.ts
│ │ ├── main-controller.ts
│ │ └── main.ts
│ ├── tsconfig.json
│ └── wait-until-ready.sh
├── compositor-proxy
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── .prettierrc.js
│ ├── CMakeLists.txt
│ ├── native
│ │ ├── encoding
│ │ │ └── src
│ │ │ │ ├── encoder.h
│ │ │ │ ├── gst_frame_encoder.c
│ │ │ │ ├── gst_frame_encoder_drm_formats.h
│ │ │ │ ├── gst_main_loop.c
│ │ │ │ └── node_encoder.c
│ │ ├── node-api
│ │ │ ├── LICENSE
│ │ │ ├── js_native_api.h
│ │ │ ├── js_native_api_types.h
│ │ │ ├── node_api.h
│ │ │ └── node_api_types.h
│ │ ├── poll
│ │ │ └── src
│ │ │ │ ├── poll.c
│ │ │ │ ├── uv.h
│ │ │ │ └── uv
│ │ │ │ ├── errno.h
│ │ │ │ ├── linux.h
│ │ │ │ ├── threadpool.h
│ │ │ │ ├── unix.h
│ │ │ │ └── version.h
│ │ └── wayland
│ │ │ ├── changes.diff
│ │ │ ├── generate_patched_wayland_server.sh
│ │ │ ├── generate_wayland_server_patch.sh
│ │ │ └── src
│ │ │ ├── addon.c
│ │ │ ├── addon.h
│ │ │ ├── drm-protocol.c
│ │ │ ├── drm-protocol.h
│ │ │ ├── drm_format_set.c
│ │ │ ├── drm_format_set.h
│ │ │ ├── linux-dmabuf-unstable-v1-protocol.c
│ │ │ ├── linux-dmabuf-unstable-v1-protocol.h
│ │ │ ├── node-addon
│ │ │ └── wayland-server-addon.c
│ │ │ ├── wayland-server
│ │ │ ├── connection.c
│ │ │ ├── event-loop.c
│ │ │ ├── wayland-os.c
│ │ │ ├── wayland-os.h
│ │ │ ├── wayland-private.h
│ │ │ ├── wayland-protocol.c
│ │ │ ├── wayland-server-core.h
│ │ │ ├── wayland-server-private.h
│ │ │ ├── wayland-server-protocol.h
│ │ │ ├── wayland-server.c
│ │ │ ├── wayland-server.h
│ │ │ ├── wayland-shm.c
│ │ │ ├── wayland-util.c
│ │ │ ├── wayland-util.h
│ │ │ ├── wayland-version.h
│ │ │ ├── westfield-wayland-server-extra.h
│ │ │ └── westfield-wayland-server.h
│ │ │ ├── wayland-upstream
│ │ │ ├── connection.c
│ │ │ ├── event-loop.c
│ │ │ ├── wayland-os.c
│ │ │ ├── wayland-os.h
│ │ │ ├── wayland-private.h
│ │ │ ├── wayland-protocol.c
│ │ │ ├── wayland-server-core.h
│ │ │ ├── wayland-server-protocol.h
│ │ │ ├── wayland-server.c
│ │ │ ├── wayland-server.h
│ │ │ ├── wayland-shm.c
│ │ │ ├── wayland-util.c
│ │ │ ├── wayland-util.h
│ │ │ └── wayland-version.h
│ │ │ ├── westfield-buffer.c
│ │ │ ├── westfield-buffer.h
│ │ │ ├── westfield-dmabuf.c
│ │ │ ├── westfield-dmabuf.h
│ │ │ ├── westfield-egl.c
│ │ │ ├── westfield-egl.h
│ │ │ ├── westfield-fdutils.c
│ │ │ ├── westfield-fdutils.h
│ │ │ ├── westfield-surface.h
│ │ │ ├── westfield-util.h
│ │ │ ├── westfield-xwayland.c
│ │ │ ├── westfield-xwayland.h
│ │ │ ├── westfield.h
│ │ │ ├── wlr_drm.c
│ │ │ ├── wlr_drm.h
│ │ │ ├── wlr_linux_dmabuf_v1.c
│ │ │ └── wlr_linux_dmabuf_v1.h
│ ├── package.json
│ ├── src
│ │ ├── Channel.ts
│ │ ├── FrameFeedback.ts
│ │ ├── Logger.ts
│ │ ├── NativeAppContext.ts
│ │ ├── NativeWaylandClientSession.ts
│ │ ├── NativeWaylandCompositorSession.ts
│ │ ├── ProxyBuffer.ts
│ │ ├── Session.ts
│ │ ├── SessionController.ts
│ │ ├── SurfaceBufferEncoding.ts
│ │ ├── XWaylandSession.ts
│ │ ├── addons
│ │ │ ├── proxy-encoding-addon.d.ts
│ │ │ ├── proxy-encoding-addon.node
│ │ │ ├── proxy-poll-addon.d.ts
│ │ │ ├── proxy-poll-addon.node
│ │ │ ├── wayland-server-addon.d.ts
│ │ │ └── wayland-server-addon.node
│ │ ├── config.ts
│ │ ├── encoding
│ │ │ └── Encoder.ts
│ │ ├── index.ts
│ │ ├── io
│ │ │ ├── ProxyInputOutput.ts
│ │ │ └── types.d.ts
│ │ ├── kcp.ts
│ │ ├── protocol
│ │ │ ├── wl_buffer_interceptor.js
│ │ │ ├── wl_buffer_interface.js
│ │ │ ├── wl_callback_interceptor.js
│ │ │ ├── wl_callback_interface.js
│ │ │ ├── wl_compositor_interceptor.js
│ │ │ ├── wl_compositor_interface.js
│ │ │ ├── wl_data_device_interceptor.js
│ │ │ ├── wl_data_device_interface.js
│ │ │ ├── wl_data_device_manager_interceptor.js
│ │ │ ├── wl_data_device_manager_interface.js
│ │ │ ├── wl_data_offer_interceptor.js
│ │ │ ├── wl_data_offer_interface.js
│ │ │ ├── wl_data_source_interceptor.js
│ │ │ ├── wl_data_source_interface.js
│ │ │ ├── wl_display_interceptor.js
│ │ │ ├── wl_display_interface.js
│ │ │ ├── wl_drm_interceptor.js
│ │ │ ├── wl_drm_interface.js
│ │ │ ├── wl_keyboard_interceptor.js
│ │ │ ├── wl_keyboard_interface.js
│ │ │ ├── wl_output_interceptor.js
│ │ │ ├── wl_output_interface.js
│ │ │ ├── wl_pointer_interceptor.js
│ │ │ ├── wl_pointer_interface.js
│ │ │ ├── wl_region_interceptor.js
│ │ │ ├── wl_region_interface.js
│ │ │ ├── wl_registry_interceptor.js
│ │ │ ├── wl_registry_interface.js
│ │ │ ├── wl_seat_interceptor.js
│ │ │ ├── wl_seat_interface.js
│ │ │ ├── wl_shell_interceptor.js
│ │ │ ├── wl_shell_interface.js
│ │ │ ├── wl_shell_surface_interceptor.js
│ │ │ ├── wl_shell_surface_interface.js
│ │ │ ├── wl_shm_interceptor.js
│ │ │ ├── wl_shm_interface.js
│ │ │ ├── wl_shm_pool_interceptor.js
│ │ │ ├── wl_shm_pool_interface.js
│ │ │ ├── wl_subcompositor_interceptor.d.ts
│ │ │ ├── wl_subcompositor_interceptor.js
│ │ │ ├── wl_subcompositor_interface.js
│ │ │ ├── wl_subsurface_interceptor.d.ts
│ │ │ ├── wl_subsurface_interceptor.js
│ │ │ ├── wl_subsurface_interface.js
│ │ │ ├── wl_surface_interceptor.d.ts
│ │ │ ├── wl_surface_interceptor.js
│ │ │ ├── wl_surface_interface.js
│ │ │ ├── wl_touch_interceptor.js
│ │ │ ├── wl_touch_interface.js
│ │ │ ├── xdg_popup_interceptor.js
│ │ │ ├── xdg_popup_interface.js
│ │ │ ├── xdg_positioner_interceptor.js
│ │ │ ├── xdg_positioner_interface.js
│ │ │ ├── xdg_surface_interceptor.js
│ │ │ ├── xdg_surface_interface.js
│ │ │ ├── xdg_toplevel_interceptor.js
│ │ │ ├── xdg_toplevel_interface.js
│ │ │ ├── xdg_wm_base_interceptor.js
│ │ │ └── xdg_wm_base_interface.js
│ │ └── wayland-server.ts
│ └── tsconfig.json
├── compositor-shell
│ ├── .eslintrc.cjs
│ ├── .gitignore
│ ├── .prettierrc.cjs
│ ├── index.html
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── simple-shm-web
│ │ └── weston
│ ├── src
│ │ ├── App.tsx
│ │ ├── AppBar.tsx
│ │ ├── Icons.tsx
│ │ ├── index.css
│ │ └── index.ts
│ ├── tailwind.config.js
│ ├── tsconfig.json
│ └── vite.config.ts
└── compositor
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── .prettierrc.js
│ ├── openapitools.json
│ ├── package.json
│ ├── src
│ ├── @types
│ │ └── import-png.d.ts
│ ├── AxisEvent.ts
│ ├── BufferContents.ts
│ ├── BufferImplementation.ts
│ ├── ButtonEvent.ts
│ ├── Callback.ts
│ ├── Compositor.ts
│ ├── DataDeviceManager.ts
│ ├── DataOffer.ts
│ ├── DataSource.ts
│ ├── Globals.ts
│ ├── ImageBitmapBuffer.ts
│ ├── InputOutput.ts
│ ├── InputQueue.ts
│ ├── KeyEvent.ts
│ ├── Keyboard.ts
│ ├── Loop.ts
│ ├── Output.ts
│ ├── Pointer.ts
│ ├── Region.ts
│ ├── Seat.ts
│ ├── Session.ts
│ ├── Shell.ts
│ ├── ShellSurface.ts
│ ├── Shm.ts
│ ├── Subcompositor.ts
│ ├── Subsurface.ts
│ ├── Surface.ts
│ ├── SurfaceChild.ts
│ ├── SurfaceRole.ts
│ ├── Touch.ts
│ ├── UserShellApi.ts
│ ├── View.ts
│ ├── WaylandDataSource.ts
│ ├── XdgPopup.ts
│ ├── XdgPositioner.ts
│ ├── XdgSurface.ts
│ ├── XdgToplevel.ts
│ ├── XdgWmBase.ts
│ ├── Xkb.ts
│ ├── assets
│ │ ├── e-resize.png
│ │ ├── left_ptr.png
│ │ ├── n-resize.png
│ │ ├── ne-resize.png
│ │ ├── nw-resize.png
│ │ ├── s-resize.png
│ │ ├── se-resize.png
│ │ ├── sign_close.png
│ │ ├── sign_maximize.png
│ │ ├── sign_minimize.png
│ │ ├── sw-resize.png
│ │ └── w-resize.png
│ ├── browser
│ │ ├── BrowserDataSource.ts
│ │ ├── BrowserTextDataSource.ts
│ │ ├── attributes.ts
│ │ ├── capabilities.ts
│ │ ├── dnd.ts
│ │ ├── input.ts
│ │ ├── pointer.ts
│ │ ├── selection.ts
│ │ └── text-selection.ts
│ ├── custom-typings.d.ts
│ ├── desktop
│ │ ├── AlwaysFullScreenDesktopSurface.ts
│ │ ├── Desktop.ts
│ │ └── FloatingDesktopSurface.ts
│ ├── index.ts
│ ├── math
│ │ ├── Mat4.ts
│ │ ├── Point.ts
│ │ ├── Rect.ts
│ │ ├── Size.ts
│ │ ├── Transformations.ts
│ │ └── Vec4.ts
│ ├── polyfill
│ │ └── createImageBitmap.js
│ ├── remote
│ │ ├── BufferStream.ts
│ │ ├── Channel.ts
│ │ ├── DecodedFrame.ts
│ │ ├── EncodedFrame.ts
│ │ ├── EncoderFeedback.ts
│ │ ├── EncodingMimeTypes.ts
│ │ ├── H264NALDecoder.worker.ts
│ │ ├── RemoteAppLauncher.ts
│ │ ├── RemoteInputOutput.ts
│ │ ├── RemoteOutOfBandChannel.ts
│ │ ├── StreamingBuffer.ts
│ │ ├── api.ts
│ │ ├── buffer-decoder.ts
│ │ ├── kcp.ts
│ │ ├── reconnecting-websocket.ts
│ │ ├── wasm-buffer-decoder.ts
│ │ ├── webcodec-buffer-decoder.ts
│ │ ├── websocket-events.ts
│ │ └── xwayland
│ │ │ ├── CursorType.ts
│ │ │ ├── XConstants.ts
│ │ │ ├── XDataSource.ts
│ │ │ ├── XDnDDataSource.ts
│ │ │ ├── XWaylandShell.ts
│ │ │ ├── XWaylandShellSurface.ts
│ │ │ ├── XWindow.ts
│ │ │ ├── XWindowFrame.ts
│ │ │ ├── XWindowManager.ts
│ │ │ └── XWindowManagerConnection.ts
│ ├── render
│ │ ├── Program.ts
│ │ ├── RGBXandAToRGBA.ts
│ │ ├── RGBandA2RGBAShader.ts
│ │ ├── RenderState.ts
│ │ ├── Renderer.ts
│ │ ├── Scene.ts
│ │ ├── SceneShader.ts
│ │ ├── ShaderCompiler.ts
│ │ ├── ShaderSources.ts
│ │ ├── Texture.ts
│ │ ├── YUV2RGBShader.ts
│ │ ├── YUVA2RGBA.ts
│ │ └── YUVA2RGBAShader.ts
│ └── web
│ │ ├── WebAppLauncher.ts
│ │ ├── WebBuffersFactory.ts
│ │ ├── WebConnectionHandler.ts
│ │ └── WebInputOutput.ts
│ └── tsconfig.json
├── protocol
├── wayland-drm.xml
├── wayland.xml
├── web-bitmapbuf-unstable-v1.xml
└── xdg-shell.xml
├── publish.sh
├── sdk
├── .gitignore
├── README.md
├── build.sh
├── sdk_env.sh
├── sysrootlibs
│ ├── .gitignore
│ ├── cairo
│ │ ├── .gitignore
│ │ ├── build.sh
│ │ └── changes.patch
│ ├── cygepoll
│ │ ├── .gitignore
│ │ ├── build.sh
│ │ └── changes.patch
│ ├── egl-stub
│ │ ├── .gitignore
│ │ └── build.sh
│ ├── emscripten-build.ini
│ ├── epoxy-emscripten
│ │ ├── .gitignore
│ │ └── build.sh
│ ├── expat
│ │ ├── .gitignore
│ │ └── build.sh
│ ├── fontconfig
│ │ ├── .gitignore
│ │ ├── build.sh
│ │ ├── changes.patch
│ │ └── emscripten-build.ini
│ ├── freetype
│ │ ├── .gitignore
│ │ └── build.sh
│ ├── fribidi
│ │ ├── .gitignore
│ │ └── build.sh
│ ├── gdk-pixbuf
│ │ ├── .gitignore
│ │ ├── build.sh
│ │ └── changes.patch
│ ├── glesv2-stub
│ │ ├── .gitignore
│ │ └── build.sh
│ ├── glib
│ │ ├── .gitignore
│ │ ├── build.sh
│ │ └── emscripten-build.ini
│ ├── graphene
│ │ ├── .gitignore
│ │ └── build.sh
│ ├── gtk4
│ │ ├── .gitignore
│ │ ├── build.sh
│ │ └── changes.patch
│ ├── harfbuzz
│ │ ├── .gitignore
│ │ ├── build.sh
│ │ ├── build_freetype_nocairo_noglib.sh
│ │ └── build_nofreetype_nocairo_noglib.sh
│ ├── icu
│ │ ├── .gitignore
│ │ └── build.sh
│ ├── jpeg
│ │ ├── .gitignore
│ │ └── build.sh
│ ├── jslibraries
│ │ ├── app_template.html
│ │ ├── library_unixsockfs.js
│ │ └── pre-main.js
│ ├── libffi
│ │ ├── .gitignore
│ │ └── build.sh
│ ├── pango
│ │ ├── .gitignore
│ │ ├── build.sh
│ │ ├── changes.patch
│ │ └── emscripten-build.ini
│ ├── pcre2
│ │ ├── .gitignore
│ │ └── build.sh
│ ├── pixman
│ │ ├── .gitignore
│ │ └── build.sh
│ ├── png
│ │ ├── .gitignore
│ │ └── build.sh
│ ├── sass
│ │ ├── .gitignore
│ │ └── build.sh
│ ├── sassc
│ │ ├── .gitignore
│ │ └── build.sh
│ ├── tiff4
│ │ ├── .gitignore
│ │ └── build.sh
│ ├── uapi-stub
│ │ ├── .gitignore
│ │ └── build.sh
│ ├── upoll
│ │ ├── .gitignore
│ │ └── build.sh
│ ├── wayland-protocols
│ │ ├── .gitignore
│ │ └── build.sh
│ ├── wayland
│ │ ├── .gitignore
│ │ ├── build.sh
│ │ └── changes.patch
│ ├── xkbcommon
│ │ ├── .gitignore
│ │ ├── build.sh
│ │ └── changes.patch
│ ├── xml2
│ │ ├── .gitignore
│ │ └── build.sh
│ └── zlib
│ │ ├── .gitignore
│ │ └── build.sh
└── toolkit
│ ├── .gitignore
│ ├── bin
│ ├── gf++
│ ├── gf_file_packager
│ ├── gfar
│ ├── gfcc
│ ├── gfnm
│ ├── gfranlib
│ └── wayland-scanner
│ └── meson-gf-cross.ini
└── yarn.lock
/.gitattributes:
--------------------------------------------------------------------------------
1 | /.yarn/** linguist-vendored
2 | /.yarn/releases/* binary
3 | /.yarn/plugins/**/* binary
4 | /.pnp.* binary linguist-generated
5 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: [Zubnix]
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | .pnp.*
3 | .yarn/*
4 | !.yarn/patches
5 | !.yarn/plugins
6 | !.yarn/releases
7 | !.yarn/sdks
8 | !.yarn/versions
9 | node_modules
10 | token
--------------------------------------------------------------------------------
/.yarnrc.yml:
--------------------------------------------------------------------------------
1 | compressionLevel: mixed
2 |
3 | enableGlobalCache: false
4 |
5 | nodeLinker: pnpm
6 |
7 | npmPublishAccess: public
8 |
9 | npmRegistryServer: "https://registry.npmjs.org/"
10 |
11 | yarnPath: .yarn/releases/yarn-4.5.0.cjs
12 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Greenfield
2 | ==
3 | ### The in-browser wayland compositor
4 |
5 | Greenfield is the [Wayland compositor](https://en.wikipedia.org/wiki/Wayland_%28display_server_protocol%29) for the web. It runs native Linux applications remotely,
6 | or WebAssembly applications directly in your browser.
7 |
8 | Visit the [documentation](http://udev.be/greenfield), or have [a look on how it all began](https://wayouttheresoftware.blogspot.com/2023/07/some-history-about-greenfield.html)
9 |
10 | 
11 |
--------------------------------------------------------------------------------
/docker/10_nvidia.json:
--------------------------------------------------------------------------------
1 | {
2 | "file_format_version" : "1.0.0",
3 | "ICD" : {
4 | "library_path" : "libEGL_nvidia.so.0"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/docker/build.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -e
3 | set -x
4 |
5 | tag_postfix=$(date +%Y%m%d)
6 | tag="docker.io/udevbe/compositor-proxy-cli:${tag_postfix}"
7 |
8 | docker build --pull .. -t "${tag}" -f Dockerfile
9 | printf "Build complete %s\n" "${tag}"
10 |
--------------------------------------------------------------------------------
/docker/docker-entrypoint.sh:
--------------------------------------------------------------------------------
1 | #!/bin/env bash
2 | set -e
3 | touch "$XAUTHORITY"
4 | xauth add "${HOST}":1 . "$(xxd -l 16 -p /dev/urandom)"
5 |
6 | BASEDIR=$(dirname "$0")
7 | "$BASEDIR"/compositor-proxy-cli "$@"
8 |
--------------------------------------------------------------------------------
/docs/.gitignore:
--------------------------------------------------------------------------------
1 | _site
2 | .sass-cache
3 | .jekyll-cache
4 | .jekyll-metadata
5 | vendor
6 |
--------------------------------------------------------------------------------
/docs/404.html:
--------------------------------------------------------------------------------
1 | ---
2 | permalink: /404.html
3 | layout: default
4 | ---
5 |
6 |
19 |
20 |
21 |
404
22 |
23 |
Page not found :(
24 |
The requested page could not be found.
25 |
26 |
--------------------------------------------------------------------------------
/docs/CNAME:
--------------------------------------------------------------------------------
1 | greenfield.app
--------------------------------------------------------------------------------
/docs/hello.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/docs/hello.png
--------------------------------------------------------------------------------
/docs/pages/components/client-generator.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Client Generator
4 | grand_parent: Components
5 | parent: Libraries
6 | nav_order: 1
7 | ---
--------------------------------------------------------------------------------
/docs/pages/components/client-protocol.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Client Protocol
4 | grand_parent: Components
5 | parent: Libraries
6 | nav_order: 2
7 | ---
--------------------------------------------------------------------------------
/docs/pages/components/common.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Common
4 | grand_parent: Components
5 | parent: Libraries
6 | nav_order: 3
7 | ---
--------------------------------------------------------------------------------
/docs/pages/components/compositor-generator.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Compositor Generator
4 | grand_parent: Components
5 | parent: Libraries
6 | nav_order: 5
7 | ---
--------------------------------------------------------------------------------
/docs/pages/components/compositor-protocol.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Compositor Protocol
4 | grand_parent: Components
5 | parent: Libraries
6 | nav_order: 6
7 | ---
--------------------------------------------------------------------------------
/docs/pages/components/compositor-proxy-cli.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Compositor Proxy CLI
4 | parent: Components
5 | nav_order: 4
6 | ---
--------------------------------------------------------------------------------
/docs/pages/components/compositor-proxy-generator.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Compositor Proxy Generator
4 | grand_parent: Components
5 | parent: Libraries
6 | nav_order: 7
7 | ---
--------------------------------------------------------------------------------
/docs/pages/components/compositor-proxy.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Compositor Proxy
4 | parent: Components
5 | nav_order: 3
6 | ---
--------------------------------------------------------------------------------
/docs/pages/components/compositor-shell.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Compositor Shell
4 | parent: Components
5 | nav_order: 2
6 | ---
--------------------------------------------------------------------------------
/docs/pages/components/compositor-wasm.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: WebAssembly Ports
4 | grand_parent: Components
5 | parent: Libraries
6 | nav_order: 8
7 | ---
--------------------------------------------------------------------------------
/docs/pages/components/compositor.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Compositor
4 | parent: Components
5 | nav_order: 1
6 | ---
--------------------------------------------------------------------------------
/docs/pages/components/ffmpeg-h264.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: FFmpeg H.264
4 | grand_parent: Components
5 | parent: Libraries
6 | nav_order: 4
7 | ---
--------------------------------------------------------------------------------
/docs/pages/components/libraries.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Libraries
4 | nav_order: 5
5 | has_children: true
6 | parent: Components
7 | has_toc: true
8 | ---
9 |
10 | Libraries
11 | =========
12 |
13 | The core Greenfield components depend on a number of custom, purpose made libraries.
14 | Their goals, usage and build instructions can be found here.
--------------------------------------------------------------------------------
/docs/pages/getting_started/img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/docs/pages/getting_started/img.png
--------------------------------------------------------------------------------
/docs/pages/getting_started/img_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/docs/pages/getting_started/img_1.png
--------------------------------------------------------------------------------
/docs/pages/getting_started/img_1_small.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/docs/pages/getting_started/img_1_small.jpg
--------------------------------------------------------------------------------
/docs/pages/getting_started/img_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/docs/pages/getting_started/img_2.png
--------------------------------------------------------------------------------
/docs/pages/getting_started/img_2_small.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/docs/pages/getting_started/img_2_small.jpg
--------------------------------------------------------------------------------
/docs/pages/getting_started/img_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/docs/pages/getting_started/img_3.png
--------------------------------------------------------------------------------
/docs/pages/getting_started/img_3_small.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/docs/pages/getting_started/img_3_small.jpg
--------------------------------------------------------------------------------
/docs/pages/getting_started/img_small.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/docs/pages/getting_started/img_small.jpg
--------------------------------------------------------------------------------
/examples/compositor/experimental-fullscreen/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | dist
3 |
--------------------------------------------------------------------------------
/examples/compositor/experimental-fullscreen/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | New Application
6 |
7 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/examples/compositor/experimental-fullscreen/public/GTK_logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/examples/compositor/experimental-fullscreen/public/app.webmanifest:
--------------------------------------------------------------------------------
1 | {
2 | "name": "gtk4-demo",
3 | "display": "standalone",
4 | "start_url": ".",
5 | "icons": [
6 | {
7 | "src": "GTK_logo.svg",
8 | "sizes": "any"
9 | }
10 | ]
11 | }
--------------------------------------------------------------------------------
/examples/compositor/experimental-fullscreen/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "moduleResolution": "Node16",
4 | "target": "es2018",
5 | "module": "esnext",
6 | "esModuleInterop": true,
7 | "strict": true,
8 | "sourceMap": true,
9 | "outDir": "dist",
10 | "lib": [
11 | "dom",
12 | "dom.iterable",
13 | "esnext"
14 | ]
15 | },
16 | "include": ["src"]
17 | }
18 |
--------------------------------------------------------------------------------
/examples/compositor/experimental-fullscreen/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "vite";
2 |
3 | export default defineConfig({
4 | base: "./",
5 | server: {
6 | host: 'localhost',
7 | port: 8080,
8 | strictPort: true,
9 | cors: false,
10 | headers: {
11 | 'Cross-Origin-Opener-Policy': 'same-origin',
12 | 'Cross-Origin-Embedder-Policy': 'require-corp',
13 | },
14 | }
15 | });
16 |
--------------------------------------------------------------------------------
/examples/docker-compose/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM udevbe/compositor-proxy-cli:20231106
2 |
3 | RUN apt-get update && apt-get install -y \
4 | mesa-utils \
5 | gtk-3-examples \
6 | gtk-4-examples \
7 | xterm \
8 | && rm -rf /var/lib/apt/lists/*
9 |
--------------------------------------------------------------------------------
/examples/docker-compose/applications.json:
--------------------------------------------------------------------------------
1 | {
2 | "/glxgears": {
3 | "name": "GLX Gears",
4 | "executable": "glxgears",
5 | "args": [],
6 | "env": {}
7 | },
8 | "/gtk3demo": {
9 | "name": "GTK3 Demo",
10 | "executable": "gtk3-demo",
11 | "args": [],
12 | "env": {}
13 | },
14 | "/gtk4demo": {
15 | "name": "GTK4 Demo",
16 | "executable": "gtk4-demo",
17 | "args": [],
18 | "env": {}
19 | },
20 | "/xterm": {
21 | "name": "XTerm",
22 | "executable": "xterm",
23 | "args": [],
24 | "env": {}
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/.gitignore:
--------------------------------------------------------------------------------
1 | build
--------------------------------------------------------------------------------
/examples/sdk/gtk4/README.md:
--------------------------------------------------------------------------------
1 | Currently broken because of a stack overflow bug. If you're feeling adventurous you can enable the gtk4 build in the sdk and gives this example a try.
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/constraint-editor/constraint-editor.css:
--------------------------------------------------------------------------------
1 | constraintview {
2 | background: black;
3 | color: white;
4 | }
5 |
6 | constraintview .child {
7 | background: red;
8 | }
9 |
10 | constraintview .guide {
11 | background: blue;
12 | }
13 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/constraint-editor/constraint-editor.gresource.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | constraint-editor-window.ui
5 | constraint-editor.ui
6 | guide-editor.ui
7 | constraint-editor.css
8 |
9 |
10 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/alias_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/alias_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/all_scroll_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/all_scroll_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/alphatest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/alphatest.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/apple-red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/apple-red.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/background.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/background.jpg
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/bbb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/bbb.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/blends.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/blends.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/brick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/brick.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/brick2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/brick2.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/cell_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/cell_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/cmy.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/cmy.jpg
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/col_resize_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/col_resize_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/context_menu_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/context_menu_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/copy_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/copy_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/crosshair_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/crosshair_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/decor1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/decor1.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/decor2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/decor2.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/default_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/default_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/demo2widget.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | #define DEMO2_TYPE_WIDGET (demo2_widget_get_type ())
6 | G_DECLARE_FINAL_TYPE (Demo2Widget, demo2_widget, DEMO2, WIDGET, GtkWidget)
7 |
8 | GtkWidget * demo2_widget_new (void);
9 |
10 | void demo2_widget_add_child (Demo2Widget *self,
11 | GtkWidget *child);
12 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/demo3widget.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | #define DEMO3_TYPE_WIDGET (demo3_widget_get_type ())
6 | G_DECLARE_FINAL_TYPE (Demo3Widget, demo3_widget, DEMO3, WIDGET, GtkWidget)
7 |
8 | GtkWidget * demo3_widget_new (const char *resource);
9 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/demo4widget.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | #define DEMO4_TYPE_WIDGET (demo4_widget_get_type ())
6 | G_DECLARE_FINAL_TYPE (Demo4Widget, demo4_widget, DEMO4, WIDGET, GtkWidget)
7 |
8 | GtkWidget * demo4_widget_new (void);
9 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/demochild.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | #define DEMO_TYPE_CHILD (demo_child_get_type ())
6 | G_DECLARE_FINAL_TYPE (DemoChild, demo_child, DEMO, CHILD, GtkWidget)
7 |
8 | GtkWidget * demo_child_new (const char *color);
9 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/demoimage.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | G_BEGIN_DECLS
6 |
7 | #define DEMO_TYPE_IMAGE (demo_image_get_type ())
8 |
9 | G_DECLARE_FINAL_TYPE(DemoImage, demo_image, DEMO, IMAGE, GtkWidget)
10 |
11 | GtkWidget * demo_image_new (const char *icon_name);
12 |
13 | G_END_DECLS
14 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/demolayout.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | #define DEMO_TYPE_LAYOUT (demo_layout_get_type ())
6 |
7 | G_DECLARE_FINAL_TYPE (DemoLayout, demo_layout, DEMO, LAYOUT, GtkLayoutManager)
8 |
9 | GtkLayoutManager * demo_layout_new (void);
10 |
11 | void demo_layout_set_position (DemoLayout *layout,
12 | float position);
13 | void demo_layout_shuffle (DemoLayout *layout);
14 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/demowidget.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | #define DEMO_TYPE_WIDGET (demo_widget_get_type ())
6 | G_DECLARE_FINAL_TYPE (DemoWidget, demo_widget, DEMO, WIDGET, GtkWidget)
7 |
8 | GtkWidget * demo_widget_new (void);
9 |
10 | void demo_widget_add_child (DemoWidget *self,
11 | GtkWidget *child);
12 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/ducky.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/ducky.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/e_resize_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/e_resize_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/ew_resize_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/ew_resize_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/floppybuddy.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/floppybuddy.gif
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/fontify.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | void fontify (const char *format,
6 | GtkTextBuffer *buffer);
7 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/four_point_transform.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | void perspective_3d (graphene_point3d_t *p1,
6 | graphene_point3d_t *p2,
7 | graphene_point3d_t *p3,
8 | graphene_point3d_t *p4,
9 | graphene_point3d_t *q1,
10 | graphene_point3d_t *q2,
11 | graphene_point3d_t *q3,
12 | graphene_point3d_t *q4,
13 | graphene_matrix_t *m);
14 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/glarea-gl.fs.glsl:
--------------------------------------------------------------------------------
1 | #version 330
2 |
3 | out vec4 outputColor;
4 |
5 | void main() {
6 | float lerpVal = gl_FragCoord.y / 500.0f;
7 |
8 | outputColor = mix(vec4(1.0f, 0.85f, 0.35f, 1.0f), vec4(0.2f, 0.2f, 0.2f, 1.0f), lerpVal);
9 | }
10 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/glarea-gl.vs.glsl:
--------------------------------------------------------------------------------
1 | #version 330
2 |
3 | layout(location = 0) in vec4 position;
4 | uniform mat4 mvp;
5 |
6 | void main() {
7 | gl_Position = mvp * position;
8 | }
9 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/glarea-gles.fs.glsl:
--------------------------------------------------------------------------------
1 | precision highp float;
2 |
3 | void main() {
4 | float lerpVal = gl_FragCoord.y / 500.0;
5 |
6 | gl_FragColor = mix(vec4(1.0, 0.85, 0.35, 1.0), vec4(0.2, 0.2, 0.2, 1.0), lerpVal);
7 | }
8 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/glarea-gles.vs.glsl:
--------------------------------------------------------------------------------
1 | attribute vec4 position;
2 |
3 | uniform mat4 mvp;
4 |
5 | void main() {
6 | gl_Position = mvp * position;
7 | }
8 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/gnome-applets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/gnome-applets.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/gnome-calendar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/gnome-calendar.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/gnome-foot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/gnome-foot.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/gnome-fs-directory.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/gnome-fs-directory.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/gnome-fs-regular.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/gnome-fs-regular.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/gnome-gimp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/gnome-gimp.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/gnome-gmush.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/gnome-gmush.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/gnome-gsame.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/gnome-gsame.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/gnu-keys.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/gnu-keys.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/grab_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/grab_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/grabbing_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/grabbing_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/gtk-logo.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/gtk-logo.webm
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/gtk_logo_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/gtk_logo_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/hand_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/hand_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/help_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/help_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/hsla.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | typedef struct _GdkHSLA GdkHSLA;
4 |
5 | struct _GdkHSLA {
6 | float hue;
7 | float saturation;
8 | float lightness;
9 | float alpha;
10 | };
11 |
12 | void hsla_init_from_rgba (GdkHSLA *hsla,
13 | const GdkRGBA *rgba);
14 | void rgba_init_from_hsla (GdkRGBA *rgba,
15 | const GdkHSLA *hsla);
16 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/application-exit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/application-exit.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/document-edit-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/document-edit-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/document-new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/document-new.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/document-open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/document-open.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/document-save.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/document-save.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/edit-copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/edit-copy.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/edit-cut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/edit-cut.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/edit-paste.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/edit-paste.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/go-home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/go-home.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/go-up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/go-up.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/mail-send-receive-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/mail-send-receive-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/process-stop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/process-stop.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/view-fullscreen-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/actions/view-fullscreen-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/categories/applications-other.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/categories/applications-other.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/emotes/face-cool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/emotes/face-cool.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/emotes/face-laugh-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/emotes/face-laugh-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/status/battery-caution-charging-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/icons/16x16/status/battery-caution-charging-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/icons/48x48/status/starred.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/icons/48x48/status/starred.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/language-names.h:
--------------------------------------------------------------------------------
1 | #ifndef LANGUAGE_NAMES_H
2 | #define LANGUAGE_NAMES_H
3 |
4 | #include
5 |
6 | G_BEGIN_DECLS
7 |
8 | const char * get_language_name (PangoLanguage *language);
9 | const char * get_language_name_for_tag (guint32 tag);
10 |
11 | G_END_DECLS
12 |
13 | #endif
14 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/listview_colors.css:
--------------------------------------------------------------------------------
1 | .view.compact > child {
2 | padding: 1px;
3 | }
4 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/listview_filebrowser.css:
--------------------------------------------------------------------------------
1 | listview.viewswitcher {
2 | border: 1px solid gray;
3 | }
4 |
5 | listview.viewswitcher > row {
6 | padding: 5px;
7 | }
8 |
9 | listview.viewswitcher row:selected {
10 | background: gray;
11 | }
12 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/listview_minesweeper_cell.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/move_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/move_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/n_resize_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/n_resize_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/ne_resize_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/ne_resize_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/nesw_resize_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/nesw_resize_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/no_drop_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/no_drop_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/none_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/none_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/not_allowed_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/not_allowed_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/ns_resize_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/ns_resize_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/nw_resize_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/nw_resize_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/nwse_resize_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/nwse_resize_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/org.gtk.Demo4.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Name=GTK Demo
3 | Comment=GTK code examples and demonstrations
4 | Exec=gtk4-demo
5 | Icon=org.gtk.Demo4
6 | Terminal=false
7 | Type=Application
8 | StartupNotify=true
9 | Categories=Development;GTK;
10 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/pixbufpaintable.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | G_BEGIN_DECLS
6 |
7 | #define PIXBUF_TYPE_PAINTABLE (pixbuf_paintable_get_type ())
8 |
9 | G_DECLARE_FINAL_TYPE(PixbufPaintable, pixbuf_paintable, PIXBUF, PAINTABLE, GObject)
10 |
11 | GdkPaintable * pixbuf_paintable_new_from_resource (const char *path);
12 |
13 | G_END_DECLS
14 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/pointer_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/pointer_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/portland-rose.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/portland-rose.jpg
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/progress_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/progress_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/reset.css:
--------------------------------------------------------------------------------
1 | /* @import this colorsheet to get the default values for every property.
2 | * This is useful when writing special CSS tests that should not be
3 | * inluenced by themes - not even the default ones.
4 | * Keep in mind that the output will be very ugly and not look like
5 | * anything GTK.
6 | * Also, when adding new style properties, please add them here.
7 | */
8 |
9 | * {
10 | all: unset;
11 | }
12 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/row_resize_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/row_resize_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/s_resize_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/s_resize_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/script-names.h:
--------------------------------------------------------------------------------
1 | #ifndef SCRIPT_NAMES_H
2 | #define SCRIPT_NAMES_H
3 |
4 | #include
5 |
6 | G_BEGIN_DECLS
7 |
8 | const char * get_script_name (GUnicodeScript script);
9 | const char * get_script_name_for_tag (guint32 tag);
10 |
11 | G_END_DECLS
12 |
13 | #endif
14 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/se_resize_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/se_resize_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/svgpaintable.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | G_BEGIN_DECLS
6 |
7 | #define SVG_TYPE_PAINTABLE (svg_paintable_get_type ())
8 |
9 | G_DECLARE_FINAL_TYPE (SvgPaintable, svg_paintable, SVG, PAINTABLE, GObject)
10 |
11 | GdkPaintable * svg_paintable_new (GFile *file);
12 |
13 | G_END_DECLS
14 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/sw_resize_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/sw_resize_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/tagstyle.css:
--------------------------------------------------------------------------------
1 | tag {
2 | margin: 4px 0px;
3 | padding: 4px;
4 | border-radius: 4px;
5 | background: lightskyblue;
6 | }
7 | tag box {
8 | border-spacing: 4px;
9 | }
10 | tag label,
11 | tag image {
12 | color: white;
13 | }
14 | tag button {
15 | min-height: 0;
16 | min-width: 0;
17 | padding: 0;
18 | border: 1px solid white;
19 | }
20 |
21 | entry.tagged {
22 | border-spacing: 4px;
23 | }
24 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/text_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/text_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/ucdnames.data:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/ucdnames.data
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/unicode-names.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | const char * get_unicode_type_name (GUnicodeType type);
6 | const char * get_break_type_name (GUnicodeBreakType type);
7 | const char * get_combining_class_name (int cclass);
8 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/vertical_text_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/vertical_text_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/w_resize_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/w_resize_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/wait_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/wait_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/zoom_in_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/zoom_in_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/gtk-demo/zoom_out_cursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/gtk-demo/zoom_out_cursor.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/icon-browser/iconbrowser.gresource.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | window.ui
5 | icon.list
6 |
7 |
8 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/icon-browser/iconbrowserapp.h:
--------------------------------------------------------------------------------
1 | #ifndef __ICON_BROWSER_APP_H
2 | #define __ICON_BROWSER_APP_H
3 |
4 | #include
5 |
6 |
7 | #define ICON_BROWSER_APP_TYPE (icon_browser_app_get_type ())
8 | #define ICON_BROWSER_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ICON_BROWSER_APP_TYPE, IconBrowserApp))
9 |
10 |
11 | typedef struct _IconBrowserApp IconBrowserApp;
12 | typedef struct _IconBrowserAppClass IconBrowserAppClass;
13 |
14 |
15 | GType icon_browser_app_get_type (void);
16 | IconBrowserApp *icon_browser_app_new (void);
17 |
18 |
19 | #endif /* __ICON_BROWSER_APP_H */
20 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/icon-browser/iconbrowsercontext.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | #define IB_TYPE_CONTEXT (ib_context_get_type ())
6 | G_DECLARE_FINAL_TYPE (IbContext, ib_context, IB, CONTEXT, GObject)
7 |
8 | IbContext *ib_context_new (const char *id,
9 | const char *name,
10 | const char *description);
11 |
12 | const char *ib_context_get_id (IbContext *context);
13 | const char *ib_context_get_name (IbContext *context);
14 | const char *ib_context_get_description (IbContext *context);
15 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/icon-browser/main.c:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | int
5 | main (int argc, char *argv[])
6 | {
7 | return g_application_run (G_APPLICATION (icon_browser_app_new ()), argc, argv);
8 | }
9 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/icon-browser/org.gtk.IconBrowser4.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Name=Icon Browser
3 | Comment=An application that shows themed icons
4 | Exec=gtk4-icon-browser
5 | Icon=org.gtk.IconBrowser4
6 | Terminal=false
7 | Type=Application
8 | StartupNotify=true
9 | Categories=Development;GTK;
10 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/node-editor/gsk/gskrendernodeparserprivate.h:
--------------------------------------------------------------------------------
1 |
2 | #ifndef __GSK_RENDER_NODE_PARSER_PRIVATE_H__
3 | #define __GSK_RENDER_NODE_PARSER_PRIVATE_H__
4 |
5 | #include "gskrendernode.h"
6 |
7 | GskRenderNode * gsk_render_node_deserialize_from_bytes (GBytes *bytes,
8 | GskParseErrorFunc error_func,
9 | gpointer user_data);
10 |
11 | #endif
12 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/node-editor/node-editor.gresource.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | node-editor-window.ui
5 | help-window.ui
6 | node-format.md
7 | data/scalable/apps/org.gtk.gtk4.NodeEditor.svg
8 |
9 |
10 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/node-editor/org.gtk.gtk4.NodeEditor.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Name=Node Editor
3 | Comment=An application that edits render nodes
4 | Exec=gtk4-node-editor
5 | Icon=org.gtk.gtk4.NodeEditor
6 | Terminal=false
7 | Type=Application
8 | StartupNotify=true
9 | Categories=Development;GTK;
10 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/print-editor/org.gtk.PrintEditor4.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Name=Print Editor
3 | Comment=A simple editor demonstrating GTK printing
4 | Exec=gtk4-print-editor %f
5 | Icon=org.gtk.PrintEditor4
6 | Terminal=false
7 | Type=Application
8 | StartupNotify=true
9 | Categories=Development;GTK;
10 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/beach.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/beach.jpg
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/gtk-logo.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/gtk-logo.webm
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/call-start-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/call-start-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/call-stop-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/call-stop-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/document-new-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/document-new-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/document-new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/document-new.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/document-save.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/document-save.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/document-send-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/document-send-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/edit-find.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/edit-find.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/format-indent-less-symbolic-rtl.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/format-indent-less-symbolic-rtl.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/format-indent-less-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/format-indent-less-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/format-indent-more-symbolic-rtl.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/format-indent-more-symbolic-rtl.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/format-indent-more-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/format-indent-more-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/format-justify-center-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/format-justify-center-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/format-justify-fill-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/format-justify-fill-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/format-justify-left-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/format-justify-left-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/format-justify-right-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/format-justify-right-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/insert-image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/insert-image.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/insert-link-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/insert-link-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/send-to-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/send-to-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/star-new-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/star-new-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/view-continuous-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/view-continuous-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/view-dual-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/view-dual-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/view-fullscreen-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/view-fullscreen-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/view-grid-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/view-grid-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/view-paged-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/view-paged-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/zoom-in-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/zoom-in-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/zoom-in.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/zoom-in.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/zoom-original-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/zoom-original-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/zoom-original.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/zoom-original.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/zoom-out-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/zoom-out-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/zoom-out.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/actions/zoom-out.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/apps/preferences-desktop-locale-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/apps/preferences-desktop-locale-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/devices/audio-headphones-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/devices/audio-headphones-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/devices/audio-input-microphone-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/devices/audio-input-microphone-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/devices/audio-speakers-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/devices/audio-speakers-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/devices/camera-photo-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/devices/camera-photo-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/devices/camera-web-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/devices/camera-web-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/devices/drive-optical-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/devices/drive-optical-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/devices/network-wired-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/devices/network-wired-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/devices/network-wireless-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/devices/network-wireless-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/devices/phone-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/devices/phone-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/emblems/emblem-default-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/emblems/emblem-default-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/emblems/emblem-shared-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/emblems/emblem-shared-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/emotes/face-monkey-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/emotes/face-monkey-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/appointment-soon-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/appointment-soon-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/microphone-sensitivity-high-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/microphone-sensitivity-high-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/microphone-sensitivity-low-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/microphone-sensitivity-low-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/microphone-sensitivity-medium-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/microphone-sensitivity-medium-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/microphone-sensitivity-muted-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/microphone-sensitivity-muted-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/weather-clear-night-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/weather-clear-night-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/weather-few-clouds-night-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/weather-few-clouds-night-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/weather-fog-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/weather-fog-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/weather-overcast-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/weather-overcast-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/weather-severe-alert-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/weather-severe-alert-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/weather-showers-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/weather-showers-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/weather-snow-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/icons/16x16/status/weather-snow-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/scalable/actions/format-indent-less-symbolic-rtl.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/scalable/actions/format-indent-more-symbolic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/scalable/actions/format-justify-center-symbolic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/scalable/actions/format-justify-fill-symbolic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/scalable/actions/format-justify-left-symbolic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/scalable/actions/format-justify-right-symbolic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/scalable/actions/star-new-symbolic.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/scalable/actions/zoom-in-symbolic.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/scalable/actions/zoom-original-symbolic.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/scalable/actions/zoom-out-symbolic.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/scalable/devices/audio-speakers-symbolic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/scalable/devices/camera-photo-symbolic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/icons/scalable/devices/camera-web-symbolic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/nyc.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/nyc.jpg
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/org.gtk.WidgetFactory4.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Name=Widget Factory
3 | Comment=A showcase for GTK widgets, designed for testing themes.
4 | Exec=gtk4-widget-factory
5 | Icon=org.gtk.WidgetFactory4
6 | Terminal=false
7 | Type=Application
8 | StartupNotify=true
9 | Categories=Development;GTK;
10 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/portland-rose.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/portland-rose.jpg
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/sunset.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/demos/widget-factory/sunset.jpg
--------------------------------------------------------------------------------
/examples/sdk/gtk4/demos/widget-factory/widget-factory.css:
--------------------------------------------------------------------------------
1 | .small-button {
2 | padding: 0;
3 | outline-width: 0;
4 | }
5 |
6 | .toolbar {
7 | -gtk-icon-style: symbolic;
8 | }
9 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application1/Makefile.example:
--------------------------------------------------------------------------------
1 | CC ?= gcc
2 | PKGCONFIG = $(shell which pkg-config)
3 | CFLAGS = $(shell $(PKGCONFIG) --cflags gtk4)
4 | LIBS = $(shell $(PKGCONFIG) --libs gtk4)
5 |
6 | SRC = main.c exampleapp.c exampleappwin.c
7 |
8 | OBJS = $(SRC:.c=.o)
9 |
10 | all: exampleapp
11 |
12 | %.o: %.c
13 | $(CC) -c -o $(@F) $(CFLAGS) $<
14 |
15 | exampleapp: $(OBJS)
16 | $(CC) -o $(@F) $(OBJS) $(LIBS)
17 |
18 | clean:
19 | rm -f $(OBJS)
20 | rm -f exampleapp
21 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application1/README:
--------------------------------------------------------------------------------
1 | Step 1: A trivial application
2 |
3 | To make gnome-shell use the desktop file and icon for this example
4 | while running it uninstalled, do the following:
5 |
6 | mkdir -p ~/.local/share/applications
7 | sed -e "s#@bindir@#$PWD#" org.gtk.exampleapp.desktop \
8 | > ~/.local/share/applications/org.gtk.exampleapp.desktop
9 |
10 | mkdir -p ~/.local/share/icons/hicolor/48x48/apps
11 | cp exampleapp.png ~/.local/share/icons/hicolor/48x48/apps
12 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application1/exampleapp.h:
--------------------------------------------------------------------------------
1 | #ifndef __EXAMPLEAPP_H
2 | #define __EXAMPLEAPP_H
3 |
4 | #include
5 |
6 |
7 | #define EXAMPLE_APP_TYPE (example_app_get_type ())
8 | G_DECLARE_FINAL_TYPE (ExampleApp, example_app, EXAMPLE, APP, GtkApplication)
9 |
10 | ExampleApp *example_app_new (void);
11 |
12 |
13 | #endif /* __EXAMPLEAPP_H */
14 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application1/exampleapp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/examples/application1/exampleapp.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application1/exampleappwin.h:
--------------------------------------------------------------------------------
1 | #ifndef __EXAMPLEAPPWIN_H
2 | #define __EXAMPLEAPPWIN_H
3 |
4 | #include
5 | #include "exampleapp.h"
6 |
7 |
8 | #define EXAMPLE_APP_WINDOW_TYPE (example_app_window_get_type ())
9 | G_DECLARE_FINAL_TYPE (ExampleAppWindow, example_app_window, EXAMPLE, APP_WINDOW, GtkApplicationWindow)
10 |
11 |
12 | ExampleAppWindow *example_app_window_new (ExampleApp *app);
13 | void example_app_window_open (ExampleAppWindow *win,
14 | GFile *file);
15 |
16 |
17 | #endif /* __EXAMPLEAPPWIN_H */
18 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application1/main.c:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include "exampleapp.h"
4 |
5 | int
6 | main (int argc, char *argv[])
7 | {
8 | return g_application_run (G_APPLICATION (example_app_new ()), argc, argv);
9 | }
10 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application1/meson.build:
--------------------------------------------------------------------------------
1 | executable('exampleapp',
2 | 'exampleapp.c', 'exampleappwin.c', 'main.c',
3 | dependencies: libgtk_dep,
4 | c_args: common_cflags,
5 | name_suffix: 'html')
6 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application1/org.gtk.exampleapp.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Type=Application
3 | Name=Example
4 | Icon=exampleapp
5 | StartupNotify=true
6 | Exec=@bindir@/exampleapp
7 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application2/README:
--------------------------------------------------------------------------------
1 | Step 2: Populating the window
2 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application2/exampleapp.gresource.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | window.ui
5 |
6 |
7 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application2/exampleapp.h:
--------------------------------------------------------------------------------
1 | #ifndef __EXAMPLEAPP_H
2 | #define __EXAMPLEAPP_H
3 |
4 | #include
5 |
6 |
7 | #define EXAMPLE_APP_TYPE (example_app_get_type ())
8 | G_DECLARE_FINAL_TYPE (ExampleApp, example_app, EXAMPLE, APP, GtkApplication)
9 |
10 |
11 | ExampleApp *example_app_new (void);
12 |
13 |
14 | #endif /* __EXAMPLEAPP_H */
15 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application2/exampleappwin.h:
--------------------------------------------------------------------------------
1 | #ifndef __EXAMPLEAPPWIN_H
2 | #define __EXAMPLEAPPWIN_H
3 |
4 | #include
5 | #include "exampleapp.h"
6 |
7 |
8 | #define EXAMPLE_APP_WINDOW_TYPE (example_app_window_get_type ())
9 | G_DECLARE_FINAL_TYPE (ExampleAppWindow, example_app_window, EXAMPLE, APP_WINDOW, GtkApplicationWindow)
10 |
11 |
12 | ExampleAppWindow *example_app_window_new (ExampleApp *app);
13 | void example_app_window_open (ExampleAppWindow *win,
14 | GFile *file);
15 |
16 |
17 | #endif /* __EXAMPLEAPPWIN_H */
18 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application2/main.c:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include "exampleapp.h"
4 |
5 | int
6 | main (int argc, char *argv[])
7 | {
8 | return g_application_run (G_APPLICATION (example_app_new ()), argc, argv);
9 | }
10 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application2/meson.build:
--------------------------------------------------------------------------------
1 | app2_resources = gnome.compile_resources('exampleapp2_resources',
2 | 'exampleapp.gresource.xml',
3 | source_dir: meson.current_source_dir())
4 |
5 | executable('exampleapp2',
6 | 'exampleapp.c', 'exampleappwin.c', 'main.c', app2_resources,
7 | dependencies: libgtk_dep,
8 | c_args: common_cflags,
9 | name_suffix: 'html')
10 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application2/window.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Example Application
5 | 600
6 | 400
7 |
8 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application3/README:
--------------------------------------------------------------------------------
1 | Step 3: Opening files, add a stack switcher
2 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application3/exampleapp.gresource.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | window.ui
5 |
6 |
7 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application3/exampleapp.h:
--------------------------------------------------------------------------------
1 | #ifndef __EXAMPLEAPP_H
2 | #define __EXAMPLEAPP_H
3 |
4 | #include
5 |
6 |
7 | #define EXAMPLE_APP_TYPE (example_app_get_type ())
8 | G_DECLARE_FINAL_TYPE (ExampleApp, example_app, EXAMPLE, APP, GtkApplication)
9 |
10 |
11 | ExampleApp *example_app_new (void);
12 |
13 |
14 | #endif /* __EXAMPLEAPP_H */
15 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application3/exampleappwin.h:
--------------------------------------------------------------------------------
1 | #ifndef __EXAMPLEAPPWIN_H
2 | #define __EXAMPLEAPPWIN_H
3 |
4 | #include
5 | #include "exampleapp.h"
6 |
7 |
8 | #define EXAMPLE_APP_WINDOW_TYPE (example_app_window_get_type ())
9 | G_DECLARE_FINAL_TYPE (ExampleAppWindow, example_app_window, EXAMPLE, APP_WINDOW, GtkApplicationWindow)
10 |
11 |
12 | ExampleAppWindow *example_app_window_new (ExampleApp *app);
13 | void example_app_window_open (ExampleAppWindow *win,
14 | GFile *file);
15 |
16 |
17 | #endif /* __EXAMPLEAPPWIN_H */
18 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application3/main.c:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include "exampleapp.h"
4 |
5 | int
6 | main (int argc, char *argv[])
7 | {
8 | return g_application_run (G_APPLICATION (example_app_new ()), argc, argv);
9 | }
10 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application3/meson.build:
--------------------------------------------------------------------------------
1 | app3_resources = gnome.compile_resources('exampleapp3_resources',
2 | 'exampleapp.gresource.xml',
3 | source_dir: meson.current_source_dir())
4 |
5 | executable('exampleapp3',
6 | 'exampleapp.c', 'exampleappwin.c', 'main.c', app3_resources,
7 | dependencies: libgtk_dep,
8 | c_args: common_cflags,
9 | name_suffix: 'html')
10 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application4/README:
--------------------------------------------------------------------------------
1 | Step 4: Add a menu
2 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application4/exampleapp.gresource.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | window.ui
5 | gears-menu.ui
6 |
7 |
8 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application4/exampleapp.h:
--------------------------------------------------------------------------------
1 | #ifndef __EXAMPLEAPP_H
2 | #define __EXAMPLEAPP_H
3 |
4 | #include
5 |
6 |
7 | #define EXAMPLE_APP_TYPE (example_app_get_type ())
8 | G_DECLARE_FINAL_TYPE (ExampleApp, example_app, EXAMPLE, APP, GtkApplication)
9 |
10 |
11 | ExampleApp *example_app_new (void);
12 |
13 |
14 | #endif /* __EXAMPLEAPP_H */
15 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application4/exampleappwin.h:
--------------------------------------------------------------------------------
1 | #ifndef __EXAMPLEAPPWIN_H
2 | #define __EXAMPLEAPPWIN_H
3 |
4 | #include
5 | #include "exampleapp.h"
6 |
7 |
8 | #define EXAMPLE_APP_WINDOW_TYPE (example_app_window_get_type ())
9 | G_DECLARE_FINAL_TYPE (ExampleAppWindow, example_app_window, EXAMPLE, APP_WINDOW, GtkApplicationWindow)
10 |
11 |
12 | ExampleAppWindow *example_app_window_new (ExampleApp *app);
13 | void example_app_window_open (ExampleAppWindow *win,
14 | GFile *file);
15 |
16 |
17 | #endif /* __EXAMPLEAPPWIN_H */
18 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application4/gears-menu.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
17 |
18 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application4/main.c:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include "exampleapp.h"
4 |
5 | int
6 | main (int argc, char *argv[])
7 | {
8 | return g_application_run (G_APPLICATION (example_app_new ()), argc, argv);
9 | }
10 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application4/meson.build:
--------------------------------------------------------------------------------
1 | app4_resources = gnome.compile_resources('exampleapp4_resources',
2 | 'exampleapp.gresource.xml',
3 | source_dir: meson.current_source_dir())
4 |
5 | executable('exampleapp4',
6 | 'exampleapp.c', 'exampleappwin.c', 'main.c', app4_resources,
7 | dependencies: libgtk_dep,
8 | c_args: common_cflags,
9 | name_suffix: 'html')
10 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application5/exampleapp.gresource.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | window.ui
5 | gears-menu.ui
6 |
7 |
8 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application5/exampleapp.h:
--------------------------------------------------------------------------------
1 | #ifndef __EXAMPLEAPP_H
2 | #define __EXAMPLEAPP_H
3 |
4 | #include
5 |
6 |
7 | #define EXAMPLE_APP_TYPE (example_app_get_type ())
8 | G_DECLARE_FINAL_TYPE (ExampleApp, example_app, EXAMPLE, APP, GtkApplication)
9 |
10 |
11 | ExampleApp *example_app_new (void);
12 |
13 |
14 | #endif /* __EXAMPLEAPP_H */
15 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application5/exampleappwin.h:
--------------------------------------------------------------------------------
1 | #ifndef __EXAMPLEAPPWIN_H
2 | #define __EXAMPLEAPPWIN_H
3 |
4 | #include
5 | #include "exampleapp.h"
6 |
7 |
8 | #define EXAMPLE_APP_WINDOW_TYPE (example_app_window_get_type ())
9 | G_DECLARE_FINAL_TYPE (ExampleAppWindow, example_app_window, EXAMPLE, APP_WINDOW, GtkApplicationWindow)
10 |
11 |
12 | ExampleAppWindow *example_app_window_new (ExampleApp *app);
13 | void example_app_window_open (ExampleAppWindow *win,
14 | GFile *file);
15 |
16 |
17 | #endif /* __EXAMPLEAPPWIN_H */
18 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application5/gears-menu.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
17 |
18 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application5/main.c:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include "exampleapp.h"
4 |
5 | int
6 | main (int argc, char *argv[])
7 | {
8 | /* Since this example is running uninstalled,
9 | * we have to help it find its schema. This
10 | * is *not* necessary in properly installed
11 | * application.
12 | */
13 | g_setenv ("GSETTINGS_SCHEMA_DIR", ".", FALSE);
14 |
15 | return g_application_run (G_APPLICATION (example_app_new ()), argc, argv);
16 | }
17 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application5/meson.build:
--------------------------------------------------------------------------------
1 | app5_resources = gnome.compile_resources('exampleapp5_resources',
2 | 'exampleapp.gresource.xml',
3 | source_dir: meson.current_source_dir())
4 |
5 | app5_schemas = gnome.compile_schemas()
6 |
7 | executable('exampleapp5',
8 | 'exampleapp.c', 'exampleappwin.c', 'main.c', app5_resources, app5_schemas,
9 | dependencies: libgtk_dep,
10 | c_args: common_cflags,
11 | name_suffix: 'html')
12 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application6/exampleapp.gresource.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | window.ui
5 | gears-menu.ui
6 | prefs.ui
7 |
8 |
9 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application6/exampleapp.h:
--------------------------------------------------------------------------------
1 | #ifndef __EXAMPLEAPP_H
2 | #define __EXAMPLEAPP_H
3 |
4 | #include
5 |
6 |
7 | #define EXAMPLE_APP_TYPE (example_app_get_type ())
8 | G_DECLARE_FINAL_TYPE (ExampleApp, example_app, EXAMPLE, APP, GtkApplication)
9 |
10 |
11 | ExampleApp *example_app_new (void);
12 |
13 |
14 | #endif /* __EXAMPLEAPP_H */
15 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application6/exampleappprefs.h:
--------------------------------------------------------------------------------
1 | #ifndef __EXAMPLEAPPPREFS_H
2 | #define __EXAMPLEAPPPREFS_H
3 |
4 | #include
5 | #include "exampleappwin.h"
6 |
7 |
8 | #define EXAMPLE_APP_PREFS_TYPE (example_app_prefs_get_type ())
9 | G_DECLARE_FINAL_TYPE (ExampleAppPrefs, example_app_prefs, EXAMPLE, APP_PREFS, GtkDialog)
10 |
11 |
12 | ExampleAppPrefs *example_app_prefs_new (ExampleAppWindow *win);
13 |
14 |
15 | #endif /* __EXAMPLEAPPPREFS_H */
16 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application6/gears-menu.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
17 |
18 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application6/main.c:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include "exampleapp.h"
4 |
5 | int
6 | main (int argc, char *argv[])
7 | {
8 | /* Since this example is running uninstalled,
9 | * we have to help it find its schema. This
10 | * is *not* necessary in properly installed
11 | * application.
12 | */
13 | g_setenv ("GSETTINGS_SCHEMA_DIR", ".", FALSE);
14 |
15 | return g_application_run (G_APPLICATION (example_app_new ()), argc, argv);
16 | }
17 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application6/meson.build:
--------------------------------------------------------------------------------
1 | app6_resources = gnome.compile_resources('exampleapp6_resources',
2 | 'exampleapp.gresource.xml',
3 | source_dir: meson.current_source_dir())
4 |
5 | app6_schemas = gnome.compile_schemas()
6 |
7 | executable('exampleapp6',
8 | 'exampleapp.c',
9 | 'exampleappwin.c',
10 | 'main.c',
11 | 'exampleappprefs.c',
12 | app6_resources,
13 | app6_schemas,
14 | dependencies: libgtk_dep,
15 | c_args: common_cflags,
16 | name_suffix: 'html')
17 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application7/README:
--------------------------------------------------------------------------------
1 | Step 7: A search bar
2 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application7/exampleapp.gresource.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | window.ui
5 | gears-menu.ui
6 | prefs.ui
7 |
8 |
9 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application7/exampleapp.h:
--------------------------------------------------------------------------------
1 | #ifndef __EXAMPLEAPP_H
2 | #define __EXAMPLEAPP_H
3 |
4 | #include
5 |
6 |
7 | #define EXAMPLE_APP_TYPE (example_app_get_type ())
8 | G_DECLARE_FINAL_TYPE (ExampleApp, example_app, EXAMPLE, APP, GtkApplication)
9 |
10 |
11 | ExampleApp *example_app_new (void);
12 |
13 |
14 | #endif /* __EXAMPLEAPP_H */
15 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application7/exampleappprefs.h:
--------------------------------------------------------------------------------
1 | #ifndef __EXAMPLEAPPPREFS_H
2 | #define __EXAMPLEAPPPREFS_H
3 |
4 | #include
5 | #include "exampleappwin.h"
6 |
7 |
8 | #define EXAMPLE_APP_PREFS_TYPE (example_app_prefs_get_type ())
9 | G_DECLARE_FINAL_TYPE (ExampleAppPrefs, example_app_prefs, EXAMPLE, APP_PREFS, GtkDialog)
10 |
11 |
12 | ExampleAppPrefs *example_app_prefs_new (ExampleAppWindow *win);
13 |
14 |
15 | #endif /* __EXAMPLEAPPPREFS_H */
16 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application7/gears-menu.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
17 |
18 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application7/main.c:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include "exampleapp.h"
4 |
5 | int
6 | main (int argc, char *argv[])
7 | {
8 | /* Since this example is running uninstalled,
9 | * we have to help it find its schema. This
10 | * is *not* necessary in properly installed
11 | * application.
12 | */
13 | g_setenv ("GSETTINGS_SCHEMA_DIR", ".", FALSE);
14 |
15 | return g_application_run (G_APPLICATION (example_app_new ()), argc, argv);
16 | }
17 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application7/meson.build:
--------------------------------------------------------------------------------
1 | app7_resources = gnome.compile_resources('exampleapp7_resources',
2 | 'exampleapp.gresource.xml',
3 | source_dir: meson.current_source_dir())
4 |
5 | app7_schemas = gnome.compile_schemas()
6 |
7 | executable('exampleapp7',
8 | 'main.c',
9 | 'exampleapp.c',
10 | 'exampleappwin.c',
11 | 'exampleappprefs.c',
12 | app7_resources,
13 | app7_schemas,
14 | dependencies: libgtk_dep,
15 | c_args: common_cflags,
16 | name_suffix: 'html')
17 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application8/README:
--------------------------------------------------------------------------------
1 | Step 8: Adding a sidebar
2 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application8/exampleapp.gresource.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | window.ui
5 | gears-menu.ui
6 | prefs.ui
7 |
8 |
9 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application8/exampleapp.h:
--------------------------------------------------------------------------------
1 | #ifndef __EXAMPLEAPP_H
2 | #define __EXAMPLEAPP_H
3 |
4 | #include
5 |
6 |
7 | #define EXAMPLE_APP_TYPE (example_app_get_type ())
8 | G_DECLARE_FINAL_TYPE (ExampleApp, example_app, EXAMPLE, APP, GtkApplication)
9 |
10 |
11 | ExampleApp *example_app_new (void);
12 |
13 |
14 | #endif /* __EXAMPLEAPP_H */
15 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application8/exampleappprefs.h:
--------------------------------------------------------------------------------
1 | #ifndef __EXAMPLEAPPPREFS_H
2 | #define __EXAMPLEAPPPREFS_H
3 |
4 | #include
5 | #include "exampleappwin.h"
6 |
7 |
8 | #define EXAMPLE_APP_PREFS_TYPE (example_app_prefs_get_type ())
9 | G_DECLARE_FINAL_TYPE (ExampleAppPrefs, example_app_prefs, EXAMPLE, APP_PREFS, GtkDialog)
10 |
11 |
12 | ExampleAppPrefs *example_app_prefs_new (ExampleAppWindow *win);
13 |
14 |
15 | #endif /* __EXAMPLEAPPPREFS_H */
16 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application8/main.c:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include "exampleapp.h"
4 |
5 | int
6 | main (int argc, char *argv[])
7 | {
8 | /* Since this example is running uninstalled,
9 | * we have to help it find its schema. This
10 | * is *not* necessary in properly installed
11 | * application.
12 | */
13 | g_setenv ("GSETTINGS_SCHEMA_DIR", ".", FALSE);
14 |
15 | return g_application_run (G_APPLICATION (example_app_new ()), argc, argv);
16 | }
17 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application8/meson.build:
--------------------------------------------------------------------------------
1 | app8_resources = gnome.compile_resources('exampleapp8 resources',
2 | 'exampleapp.gresource.xml',
3 | source_dir: meson.current_source_dir())
4 |
5 | app8_schemas = gnome.compile_schemas()
6 |
7 | executable('exampleapp8',
8 | 'main.c',
9 | 'exampleapp.c',
10 | 'exampleappwin.c',
11 | 'exampleappprefs.c',
12 | app8_resources,
13 | app8_schemas,
14 | dependencies: libgtk_dep,
15 | c_args: common_cflags,
16 | name_suffix: 'html')
17 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application9/README:
--------------------------------------------------------------------------------
1 | Step 9: Using properties
2 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application9/exampleapp.gresource.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | window.ui
5 | gears-menu.ui
6 | prefs.ui
7 |
8 |
9 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application9/exampleapp.h:
--------------------------------------------------------------------------------
1 | #ifndef __EXAMPLEAPP_H
2 | #define __EXAMPLEAPP_H
3 |
4 | #include
5 |
6 |
7 | #define EXAMPLE_APP_TYPE (example_app_get_type ())
8 | G_DECLARE_FINAL_TYPE (ExampleApp, example_app, EXAMPLE, APP, GtkApplication)
9 |
10 |
11 | ExampleApp *example_app_new (void);
12 |
13 |
14 | #endif /* __EXAMPLEAPP_H */
15 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application9/exampleappprefs.h:
--------------------------------------------------------------------------------
1 | #ifndef __EXAMPLEAPPPREFS_H
2 | #define __EXAMPLEAPPPREFS_H
3 |
4 | #include
5 | #include "exampleappwin.h"
6 |
7 |
8 | #define EXAMPLE_APP_PREFS_TYPE (example_app_prefs_get_type ())
9 | G_DECLARE_FINAL_TYPE (ExampleAppPrefs, example_app_prefs, EXAMPLE, APP_PREFS, GtkDialog)
10 |
11 |
12 | ExampleAppPrefs *example_app_prefs_new (ExampleAppWindow *win);
13 |
14 |
15 | #endif /* __EXAMPLEAPPPREFS_H */
16 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application9/main.c:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include "exampleapp.h"
4 |
5 | int
6 | main (int argc, char *argv[])
7 | {
8 | /* Since this example is running uninstalled,
9 | * we have to help it find its schema. This
10 | * is *not* necessary in properly installed
11 | * application.
12 | */
13 | g_setenv ("GSETTINGS_SCHEMA_DIR", ".", FALSE);
14 |
15 | return g_application_run (G_APPLICATION (example_app_new ()), argc, argv);
16 | }
17 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/application9/meson.build:
--------------------------------------------------------------------------------
1 | app9_resources = gnome.compile_resources('exampleapp9_resources',
2 | 'exampleapp.gresource.xml',
3 | source_dir: meson.current_source_dir())
4 |
5 | app9_schemas = gnome.compile_schemas()
6 |
7 | executable('exampleapp9',
8 | 'main.c',
9 | 'exampleapp.c',
10 | 'exampleappwin.c',
11 | 'exampleappprefs.c',
12 | app9_resources,
13 | app9_schemas,
14 | dependencies: libgtk_dep,
15 | c_args: common_cflags,
16 | name_suffix: 'html')
17 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/bp/icons/16x16/actions/format-justify-center-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/examples/bp/icons/16x16/actions/format-justify-center-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/bp/icons/16x16/actions/format-justify-left-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/examples/bp/icons/16x16/actions/format-justify-left-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/bp/icons/16x16/actions/format-justify-right-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/examples/bp/icons/16x16/actions/format-justify-right-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/bp/icons/16x16/actions/view-fullscreen-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/examples/bp/icons/16x16/actions/view-fullscreen-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/bp/icons/16x16/actions/view-restore-symbolic.symbolic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/examples/bp/icons/16x16/actions/view-restore-symbolic.symbolic.png
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/bp/meson.build:
--------------------------------------------------------------------------------
1 | bp_resources = gnome.compile_resources('bloatpad_resources',
2 | 'bloatpad.gresources.xml',
3 | source_dir: meson.current_source_dir())
4 |
5 | executable('bloatpad', 'bloatpad.c', bp_resources, dependencies: libgtk_dep, c_args: common_cflags,name_suffix: 'html')
6 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/hello/README.md:
--------------------------------------------------------------------------------
1 | A trivial example
2 | =================
3 |
4 | This is a very minimal example of an app that can be built against GTK.
5 | We use this in CI to test that building against the installed GTK works.
6 |
7 | That is why there is a standalone meson.build in this subdirectory.
8 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/examples/hello/meson.build:
--------------------------------------------------------------------------------
1 | project('hello', 'c',
2 | version: '4.3.0',
3 | meson_version: '>= 0.50.0',
4 | )
5 |
6 | executable('hello',
7 | [ 'hello-world.c' ],
8 | dependencies: [ dependency('gtk4') ],
9 | install: false,
10 | name_suffix: 'html'
11 | )
12 |
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/Inter-Black.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/Inter-Black.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/Inter-BlackItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/Inter-BlackItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/Inter-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/Inter-Bold.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/Inter-BoldItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/Inter-BoldItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/Inter-ExtraBold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/Inter-ExtraBold.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/Inter-ExtraBoldItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/Inter-ExtraBoldItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/Inter-ExtraLight.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/Inter-ExtraLight.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/Inter-ExtraLightItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/Inter-ExtraLightItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/Inter-Italic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/Inter-Italic.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/Inter-Light.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/Inter-Light.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/Inter-LightItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/Inter-LightItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/Inter-Medium.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/Inter-Medium.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/Inter-MediumItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/Inter-MediumItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/Inter-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/Inter-Regular.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/Inter-SemiBold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/Inter-SemiBold.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/Inter-SemiBoldItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/Inter-SemiBoldItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/Inter-Thin.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/Inter-Thin.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/Inter-ThinItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/Inter-ThinItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/InterDisplay-Black.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/InterDisplay-Black.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/InterDisplay-BlackItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/InterDisplay-BlackItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/InterDisplay-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/InterDisplay-Bold.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/InterDisplay-BoldItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/InterDisplay-BoldItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/InterDisplay-ExtraBold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/InterDisplay-ExtraBold.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/InterDisplay-ExtraBoldItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/InterDisplay-ExtraBoldItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/InterDisplay-ExtraLight.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/InterDisplay-ExtraLight.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/InterDisplay-ExtraLightItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/InterDisplay-ExtraLightItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/InterDisplay-Italic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/InterDisplay-Italic.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/InterDisplay-Light.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/InterDisplay-Light.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/InterDisplay-LightItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/InterDisplay-LightItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/InterDisplay-Medium.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/InterDisplay-Medium.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/InterDisplay-MediumItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/InterDisplay-MediumItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/InterDisplay-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/InterDisplay-Regular.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/InterDisplay-SemiBold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/InterDisplay-SemiBold.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/InterDisplay-SemiBoldItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/InterDisplay-SemiBoldItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/InterDisplay-Thin.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/InterDisplay-Thin.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/fonts/inter/InterDisplay-ThinItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/gtk4/fonts/inter/InterDisplay-ThinItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/gtk4/meson_options.txt:
--------------------------------------------------------------------------------
1 | option('demos',
2 | type: 'boolean',
3 | value: true,
4 | description : 'Build demo programs')
5 |
6 | option('profile',
7 | type: 'combo',
8 | choices: [ 'default', 'devel' ],
9 | value: 'default',
10 | description : 'Profile to use for demos')
11 |
12 | option('build-examples',
13 | type: 'boolean',
14 | value: true,
15 | description : 'Build examples')
16 |
--------------------------------------------------------------------------------
/examples/sdk/simple-shm/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | /src/glue.js
3 | /src/xdg-shell-client-protocol.c
4 | /src/xdg-shell-client-protocol.h
5 |
--------------------------------------------------------------------------------
/examples/sdk/weston/.gitignore:
--------------------------------------------------------------------------------
1 | build
--------------------------------------------------------------------------------
/examples/sdk/weston/data/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/data/background.png
--------------------------------------------------------------------------------
/examples/sdk/weston/data/border.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/data/border.png
--------------------------------------------------------------------------------
/examples/sdk/weston/data/fullscreen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/data/fullscreen.png
--------------------------------------------------------------------------------
/examples/sdk/weston/data/home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/data/home.png
--------------------------------------------------------------------------------
/examples/sdk/weston/data/icon_editor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/data/icon_editor.png
--------------------------------------------------------------------------------
/examples/sdk/weston/data/icon_flower.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/data/icon_flower.png
--------------------------------------------------------------------------------
/examples/sdk/weston/data/icon_ivi_clickdot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/data/icon_ivi_clickdot.png
--------------------------------------------------------------------------------
/examples/sdk/weston/data/icon_ivi_flower.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/data/icon_ivi_flower.png
--------------------------------------------------------------------------------
/examples/sdk/weston/data/icon_ivi_simple-egl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/data/icon_ivi_simple-egl.png
--------------------------------------------------------------------------------
/examples/sdk/weston/data/icon_ivi_simple-shm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/data/icon_ivi_simple-shm.png
--------------------------------------------------------------------------------
/examples/sdk/weston/data/icon_ivi_smoke.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/data/icon_ivi_smoke.png
--------------------------------------------------------------------------------
/examples/sdk/weston/data/icon_terminal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/data/icon_terminal.png
--------------------------------------------------------------------------------
/examples/sdk/weston/data/icon_window.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/data/icon_window.png
--------------------------------------------------------------------------------
/examples/sdk/weston/data/panel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/data/panel.png
--------------------------------------------------------------------------------
/examples/sdk/weston/data/pattern.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/data/pattern.png
--------------------------------------------------------------------------------
/examples/sdk/weston/data/random.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/data/random.png
--------------------------------------------------------------------------------
/examples/sdk/weston/data/sidebyside.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/data/sidebyside.png
--------------------------------------------------------------------------------
/examples/sdk/weston/data/sign_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/data/sign_close.png
--------------------------------------------------------------------------------
/examples/sdk/weston/data/sign_maximize.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/data/sign_maximize.png
--------------------------------------------------------------------------------
/examples/sdk/weston/data/sign_minimize.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/data/sign_minimize.png
--------------------------------------------------------------------------------
/examples/sdk/weston/data/terminal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/data/terminal.png
--------------------------------------------------------------------------------
/examples/sdk/weston/data/tiling.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/data/tiling.png
--------------------------------------------------------------------------------
/examples/sdk/weston/data/wayland.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/data/wayland.png
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/Inter-Black.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/Inter-Black.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/Inter-BlackItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/Inter-BlackItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/Inter-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/Inter-Bold.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/Inter-BoldItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/Inter-BoldItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/Inter-ExtraBold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/Inter-ExtraBold.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/Inter-ExtraBoldItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/Inter-ExtraBoldItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/Inter-ExtraLight.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/Inter-ExtraLight.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/Inter-ExtraLightItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/Inter-ExtraLightItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/Inter-Italic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/Inter-Italic.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/Inter-Light.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/Inter-Light.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/Inter-LightItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/Inter-LightItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/Inter-Medium.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/Inter-Medium.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/Inter-MediumItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/Inter-MediumItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/Inter-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/Inter-Regular.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/Inter-SemiBold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/Inter-SemiBold.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/Inter-SemiBoldItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/Inter-SemiBoldItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/Inter-Thin.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/Inter-Thin.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/Inter-ThinItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/Inter-ThinItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/InterDisplay-Black.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/InterDisplay-Black.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/InterDisplay-BlackItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/InterDisplay-BlackItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/InterDisplay-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/InterDisplay-Bold.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/InterDisplay-BoldItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/InterDisplay-BoldItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/InterDisplay-ExtraBold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/InterDisplay-ExtraBold.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/InterDisplay-ExtraBoldItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/InterDisplay-ExtraBoldItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/InterDisplay-ExtraLight.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/InterDisplay-ExtraLight.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/InterDisplay-ExtraLightItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/InterDisplay-ExtraLightItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/InterDisplay-Italic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/InterDisplay-Italic.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/InterDisplay-Light.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/InterDisplay-Light.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/InterDisplay-LightItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/InterDisplay-LightItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/InterDisplay-Medium.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/InterDisplay-Medium.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/InterDisplay-MediumItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/InterDisplay-MediumItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/InterDisplay-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/InterDisplay-Regular.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/InterDisplay-SemiBold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/InterDisplay-SemiBold.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/InterDisplay-SemiBoldItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/InterDisplay-SemiBoldItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/InterDisplay-Thin.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/InterDisplay-Thin.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/fonts/inter/InterDisplay-ThinItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/examples/sdk/weston/fonts/inter/InterDisplay-ThinItalic.otf
--------------------------------------------------------------------------------
/examples/sdk/weston/include/meson.build:
--------------------------------------------------------------------------------
1 | subdir('libweston')
2 |
--------------------------------------------------------------------------------
/examples/sdk/weston/set_env.js:
--------------------------------------------------------------------------------
1 |
2 | var setEnv = function() {
3 | ENV.WESTON_DATA_DIR = "/data"
4 | }
5 |
6 | Module.preRun = Module.preRun ? [...Module.preRun, setEnv] : [setEnv]
7 |
--------------------------------------------------------------------------------
/examples/webapps/gtk4/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | dist
3 |
--------------------------------------------------------------------------------
/examples/webapps/gtk4/README.md:
--------------------------------------------------------------------------------
1 | Web Assembly build of Weston's demo client 'eventdemo'.
2 |
3 | - `yarn preview`
4 |
5 | The demo-compositor will now be able to launch this demo webapp.
6 |
7 | Type `web://localhost:9003` in the compositor URL bar and press enter to launch it
8 |
--------------------------------------------------------------------------------
/examples/webapps/gtk4/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "vite";
2 |
3 | export default defineConfig({
4 | base: "./",
5 | });
6 |
--------------------------------------------------------------------------------
/examples/webapps/simple-shm/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | dist
3 |
--------------------------------------------------------------------------------
/examples/webapps/simple-shm/README.md:
--------------------------------------------------------------------------------
1 | JavaScript port of Weston's demo client "simple-shm".
2 |
3 | - `yarn install`
4 | - `yarn start`
5 |
6 | The demo-compositor will now be able to launch this demo webapp.
7 |
8 | Type `web://localhost:9002` in the compositor URL bar and press enter to launch it
9 |
10 |
--------------------------------------------------------------------------------
/examples/webapps/simple-shm/app.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Greenfield WebApp Demo
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/examples/webapps/simple-shm/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "moduleResolution": "Node16",
4 | "target": "es2018",
5 | "module": "esnext",
6 | "esModuleInterop": true,
7 | "strict": true,
8 | "sourceMap": true,
9 | "outDir": "dist",
10 | "lib": [
11 | "dom",
12 | "dom.iterable",
13 | "esnext",
14 | ]
15 | },
16 | "include": ["src"]
17 | }
18 |
--------------------------------------------------------------------------------
/examples/webapps/simple-shm/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "vite";
2 |
3 | export default defineConfig({
4 | base: "./",
5 | build: {
6 | rollupOptions: {
7 | input: {
8 | app: './app.html'
9 | }
10 | }
11 | }
12 | });
13 |
--------------------------------------------------------------------------------
/examples/webapps/webgl/.gitignore:
--------------------------------------------------------------------------------
1 | dist/
2 | node_modules
3 |
--------------------------------------------------------------------------------
/examples/webapps/webgl/README.md:
--------------------------------------------------------------------------------
1 | - `yarn install`
2 | - `yarn start`
3 |
4 | The demo-compositor will now be able to launch this demo webapp.
--------------------------------------------------------------------------------
/examples/webapps/webgl/app.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Greenfield WebApp Demo
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/examples/webapps/webgl/src/demo.frag:
--------------------------------------------------------------------------------
1 | varying lowp vec4 vColor;
2 |
3 | void main(void) {
4 | gl_FragColor = vColor;
5 | }
6 |
--------------------------------------------------------------------------------
/examples/webapps/webgl/src/demo.vert:
--------------------------------------------------------------------------------
1 | attribute vec4 aVertexPosition;
2 | attribute vec4 aVertexColor;
3 |
4 | uniform mat4 uModelViewMatrix;
5 | uniform mat4 uProjectionMatrix;
6 |
7 | varying lowp vec4 vColor;
8 |
9 | void main(void) {
10 | gl_Position = uProjectionMatrix * uModelViewMatrix * aVertexPosition;
11 | vColor = aVertexColor;
12 | }
13 |
--------------------------------------------------------------------------------
/examples/webapps/webgl/src/glsl.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.vert' {
2 | const value: string
3 | export default value
4 | }
5 |
6 | declare module '*.frag' {
7 | const value: string
8 | export default value
9 | }
10 |
--------------------------------------------------------------------------------
/examples/webapps/webgl/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "moduleResolution": "Node16",
4 | "target": "es2018",
5 | "module": "esnext",
6 | "esModuleInterop": true,
7 | "strict": true,
8 | "sourceMap": true,
9 | "outDir": "dist",
10 | "lib": [
11 | "dom",
12 | "dom.iterable",
13 | "esnext",
14 | ]
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/examples/webapps/webgl/vite.config.ts:
--------------------------------------------------------------------------------
1 | import glsl from 'vite-plugin-glsl'
2 | import { defineConfig } from 'vite'
3 |
4 | export default defineConfig({
5 | plugins: [glsl()],
6 | base: "./",
7 | build: {
8 | rollupOptions: {
9 | input: {
10 | app: './app.html'
11 | }
12 | }
13 | }
14 | })
15 |
--------------------------------------------------------------------------------
/examples/webapps/weston-clients/README.md:
--------------------------------------------------------------------------------
1 | Web Assembly build of Weston's demo client 'eventdemo'.
2 |
3 | - `yarn preview`
4 |
5 | The demo-compositor will now be able to launch this demo webapp.
6 |
7 | Type `web://localhost:9003` in the compositor URL bar and press enter to launch it
8 |
--------------------------------------------------------------------------------
/examples/webapps/weston-clients/dist:
--------------------------------------------------------------------------------
1 | ../../sdk/weston/build/clients
--------------------------------------------------------------------------------
/examples/webapps/weston-clients/vite.config.mts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "vite";
2 |
3 | export default defineConfig({
4 | preview: {
5 | port: 9003,
6 | strictPort: true,
7 | headers: {
8 | "Cross-Origin-Opener-Policy": "same-origin",
9 | "Cross-Origin-Embedder-Policy": "require-corp",
10 | "Cross-Origin-Resource-Policy": "same-origin"
11 | }
12 | }
13 | });
14 |
--------------------------------------------------------------------------------
/libs/client-generator/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/libs/client-generator/.npmignore:
--------------------------------------------------------------------------------
1 | index.spec.xml
--------------------------------------------------------------------------------
/libs/client-protocol/.gitignore:
--------------------------------------------------------------------------------
1 | dist
2 | types
3 | node_modules
4 |
--------------------------------------------------------------------------------
/libs/client-protocol/.npmignore:
--------------------------------------------------------------------------------
1 | spec
2 | westfield-client-core.spec.js
--------------------------------------------------------------------------------
/libs/client-protocol/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | semi: false,
3 | trailingComma: 'all',
4 | singleQuote: true,
5 | printWidth: 120,
6 | }
7 |
--------------------------------------------------------------------------------
/libs/client-protocol/src/protocol/index.ts:
--------------------------------------------------------------------------------
1 | export * from './wayland'
2 | export * from './xdg_shell'
3 | export * from './web_bitmapbuf'
4 |
--------------------------------------------------------------------------------
/libs/common/.gitignore:
--------------------------------------------------------------------------------
1 | dist
2 | types
3 | node_modules
4 |
--------------------------------------------------------------------------------
/libs/common/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | semi: false,
3 | trailingComma: 'all',
4 | singleQuote: true,
5 | printWidth: 120,
6 | }
7 |
--------------------------------------------------------------------------------
/libs/common/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Connection'
2 |
--------------------------------------------------------------------------------
/libs/compositor-ffmpeg-h264/.gitignore:
--------------------------------------------------------------------------------
1 | ffmpeg-build
2 | emsdk
3 | dist
4 | types
5 | ffmpeg
6 | node_modules
7 |
8 |
--------------------------------------------------------------------------------
/libs/compositor-ffmpeg-h264/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | semi: false,
3 | trailingComma: 'all',
4 | singleQuote: true,
5 | printWidth: 120,
6 | }
7 |
--------------------------------------------------------------------------------
/libs/compositor-ffmpeg-h264/README.md:
--------------------------------------------------------------------------------
1 | Port of ffmpeg's h264 decoder, all other functionality is removed. After decoding you get I420 planes back, see demo for a full working example.
2 |
3 | - `yarn install`
4 | - `yarn build-wasm`
5 | - `yarn build`
--------------------------------------------------------------------------------
/libs/compositor-ffmpeg-h264/src/index.ts:
--------------------------------------------------------------------------------
1 | export { init } from './H264Worker'
2 | export type FfmpegH264Frame = {
3 | ptr: number
4 | yPlane: Uint8Array
5 | uPlane: Uint8Array
6 | vPlane: Uint8Array
7 | stride: number
8 | }
9 |
--------------------------------------------------------------------------------
/libs/compositor-generator/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/libs/compositor-protocol/.gitignore:
--------------------------------------------------------------------------------
1 | dist
2 | types
3 | node_modules
4 |
--------------------------------------------------------------------------------
/libs/compositor-protocol/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | semi: false,
3 | trailingComma: 'all',
4 | singleQuote: true,
5 | printWidth: 120,
6 | }
7 |
--------------------------------------------------------------------------------
/libs/compositor-protocol/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './westfield-runtime-server'
2 | export * from './protocol'
3 |
--------------------------------------------------------------------------------
/libs/compositor-protocol/src/protocol/index.ts:
--------------------------------------------------------------------------------
1 | export * from './wayland'
2 | export * from './web_bitmapbuf'
3 | export * from './xdg_shell'
4 |
--------------------------------------------------------------------------------
/libs/compositor-proxy-generator/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/libs/compositor-wasm/.gitignore:
--------------------------------------------------------------------------------
1 | emsdk
2 | pixman/repo
3 | xkbcommon/repo
4 | xkbcommon/repo-xkeyboard-config
5 | xkbcommon/repo-xml2
6 | dist
7 | types
8 | node_modules
9 | src/libpixman.js
10 | src/libxkbcommon.js
11 | emscripten-toolchain.ini
12 |
--------------------------------------------------------------------------------
/libs/compositor-wasm/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | semi: false,
3 | trailingComma: 'all',
4 | singleQuote: true,
5 | printWidth: 120,
6 | }
7 |
--------------------------------------------------------------------------------
/libs/compositor-wasm/README.md:
--------------------------------------------------------------------------------
1 | # Usage
2 | - `yarn install`
3 | - `yarn build`
4 |
5 | To build on Mac you'll need `bison` >=3.8
6 |
--------------------------------------------------------------------------------
/libs/compositor-wasm/build_wasm.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | set -e
3 |
4 | PACKAGE_DIR=$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")
5 | export PACKAGE_DIR
6 |
7 | EMSDK_VERSION="3.1.46"
8 | git -C emsdk pull || git clone https://github.com/emscripten-core/emsdk.git emsdk
9 | pushd 'emsdk'
10 | ./emsdk install ${EMSDK_VERSION}
11 | ./emsdk activate ${EMSDK_VERSION}
12 | source ./emsdk_env.sh
13 | popd
14 |
15 | printf '%s\n' "[constants]" "toolchain = '$PACKAGE_DIR/emsdk/upstream/emscripten'" > "$PACKAGE_DIR/emscripten-toolchain.ini"
16 |
17 | ./xkbcommon/build.sh
18 | ./pixman/build.sh
19 |
--------------------------------------------------------------------------------
/libs/xtsb/.gitignore:
--------------------------------------------------------------------------------
1 | dist
2 | coverage
3 | node_modules
4 | xcbgen/__pycache__/
5 |
--------------------------------------------------------------------------------
/libs/xtsb/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | semi: false,
3 | trailingComma: 'all',
4 | singleQuote: true,
5 | printWidth: 120,
6 | }
7 |
--------------------------------------------------------------------------------
/libs/xtsb/src/Protocol.ts:
--------------------------------------------------------------------------------
1 | import { XConnection } from './connection'
2 |
3 | export default class Protocol {
4 | constructor(
5 | public xConnection: XConnection,
6 | public readonly majorOpcode: number,
7 | public readonly firstEvent: number,
8 | public readonly firstError: number,
9 | ) {}
10 | }
11 |
--------------------------------------------------------------------------------
/libs/xtsb/src/index.node.ts:
--------------------------------------------------------------------------------
1 | export * from './xcb'
2 | export { getRender } from './xcbRender'
3 | export * as Render from './xcbRender'
4 | export { getShape } from './xcbShape'
5 | export * as Shape from './xcbShape'
6 | export { getXFixes } from './xcbXFixes'
7 | export * as XFixes from './xcbXFixes'
8 | export { getComposite } from './xcbComposite'
9 | export * as Composite from './xcbComposite'
10 | export * from './connection'
11 | export * from './nodeConnection'
12 |
--------------------------------------------------------------------------------
/libs/xtsb/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './xcb'
2 | export { getRender } from './xcbRender'
3 | export * as Render from './xcbRender'
4 | export { getShape } from './xcbShape'
5 | export * as Shape from './xcbShape'
6 | export { getXFixes } from './xcbXFixes'
7 | export * as XFixes from './xcbXFixes'
8 | export { getComposite } from './xcbComposite'
9 | export * as Composite from './xcbComposite'
10 | export * from './connection'
11 | export * from './webConnection'
12 | export * from './nodeConnection'
13 |
--------------------------------------------------------------------------------
/libs/xtsb/src/index.web.ts:
--------------------------------------------------------------------------------
1 | export * from './xcb'
2 | export { getRender } from './xcbRender'
3 | export * as Render from './xcbRender'
4 | export { getShape } from './xcbShape'
5 | export * as Shape from './xcbShape'
6 | export { getXFixes } from './xcbXFixes'
7 | export * as XFixes from './xcbXFixes'
8 | export { getComposite } from './xcbComposite'
9 | export * as Composite from './xcbComposite'
10 | export * from './connection'
11 | export * from './webConnection'
12 |
--------------------------------------------------------------------------------
/libs/xtsb/tsconfig.node.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "@tsconfig/node18/tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "./dist/main",
5 | "resolveJsonModule": true,
6 | "allowJs": true,
7 | "declaration": true,
8 | "declarationDir": "dist/types",
9 | "pretty": true
10 | },
11 | "include": [
12 | "src",
13 | "src/index.d.ts"
14 | ],
15 | "exclude": [
16 | ".eslintrc.js",
17 | ".prettierrc.js",
18 | "jest.config.js",
19 | "**/*.spec.ts",
20 | "test",
21 | "**/webConnection.ts",
22 | "**/index.web.ts"
23 | ],
24 | "ts-node": {
25 | "files": true
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/libs/xtsb/xcbgen/__init__.py:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/libs/xtsb/xcbgen/error.py:
--------------------------------------------------------------------------------
1 | class ResolveException(Exception):
2 | '''
3 | Gets thrown when a type doesn't resolve in the XML.
4 | '''
5 | pass
6 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "workspaces": [
3 | "libs/*",
4 | "packages/*",
5 | "examples/webapps/*",
6 | "examples/compositor/*"
7 | ],
8 | "packageManager": "yarn@4.5.0",
9 | "resolutions": {
10 | "pkg@^5.8.1": "patch:pkg@npm%3A5.8.1#./.yarn/patches/pkg-npm-5.8.1-db9700609f.patch"
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/packages/compositor-proxy-cli/.gitignore:
--------------------------------------------------------------------------------
1 | dist
2 | node_modules
3 | package/
4 |
--------------------------------------------------------------------------------
/packages/compositor-proxy-cli/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | semi: false,
3 | trailingComma: 'all',
4 | singleQuote: true,
5 | printWidth: 120,
6 | }
7 |
--------------------------------------------------------------------------------
/packages/compositor-proxy-cli/example-applications.json:
--------------------------------------------------------------------------------
1 | {
2 | "/gtk4-demo": {
3 | "name": "GTK Demo",
4 | "executable": "gtk4-demo",
5 | "args": [],
6 | "env": {}
7 | },
8 | "/kwrite": {
9 | "name": "KWrite",
10 | "executable": "kwrite",
11 | "args": [
12 | "-platform",
13 | "wayland"
14 | ],
15 | "env": {}
16 | },
17 | "/xterm": {
18 | "name": "XTerm",
19 | "executable": "xterm",
20 | "args": [],
21 | "env": {}
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/packages/compositor-proxy-cli/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "@tsconfig/node18/tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "./dist",
5 | "resolveJsonModule": true,
6 | "allowJs": true,
7 | "rootDirs": ["src"],
8 | "pretty": true,
9 | "sourceMap": true
10 | },
11 | "exclude": [".eslintrc.js", ".prettierrc.js"]
12 | }
13 |
--------------------------------------------------------------------------------
/packages/compositor-proxy-cli/wait-until-ready.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 |
3 | # If the file is already deleted, the inotify command will exit with an error code, resulting in a k8s pod restart. We add an || true to mitigate this.
4 | inotifywait /var/run/compositor-proxy/starting || true
5 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/.gitignore:
--------------------------------------------------------------------------------
1 | build
2 | dist
3 | types
4 | node_modules
5 | src/encoding/proxy-encoding-addon.node
6 | src/encoding/libproxy-encoding.so
7 | src/proxy-poll-addon.node
8 | src/cli/app-config.d.ts
9 | ../compositor-proxy-cli/package/compositor-proxy
10 | ../compositor-proxy-cli/package/libproxy-encoding.so
11 | ../compositor-proxy-cli/package/libwayland-server.so.0
12 | ../compositor-proxy-cli/package/libwestfield.so
13 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | semi: false,
3 | trailingComma: 'all',
4 | singleQuote: true,
5 | printWidth: 120,
6 | }
7 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/native/wayland/src/wayland-server/westfield-wayland-server.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by erik on 24/05/22.
3 | //
4 |
5 | #ifndef WESTFIELD_WESTFIELD_WAYLAND_SERVER_H
6 | #define WESTFIELD_WESTFIELD_WAYLAND_SERVER_H
7 | #include "wayland-server.h"
8 | #include "westfield-wayland-server-extra.h"
9 |
10 | #endif //WESTFIELD_WESTFIELD_WAYLAND_SERVER_H
11 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/native/wayland/src/westfield-fdutils.h:
--------------------------------------------------------------------------------
1 | #ifndef WESTFIELD_WESTFIELD_FDUTILS_H
2 | #define WESTFIELD_WESTFIELD_FDUTILS_H
3 |
4 | #include
5 |
6 | int
7 | westfield_os_create_anonymous_file(size_t size);
8 |
9 | #endif //WESTFIELD_WESTFIELD_FDUTILS_H
--------------------------------------------------------------------------------
/packages/compositor-proxy/native/wayland/src/westfield-surface.h:
--------------------------------------------------------------------------------
1 | #ifndef WESTFIELD_WESTFIELD_SURFACE_H
2 | #define WESTFIELD_WESTFIELD_SURFACE_H
3 | #include "addon.h"
4 |
5 | struct westfield_surface {
6 | struct addon_set addons;
7 | void *data;
8 | };
9 |
10 | #endif //WESTFIELD_WESTFIELD_SURFACE_H
11 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/native/wayland/src/westfield-util.h:
--------------------------------------------------------------------------------
1 | #ifndef WESTFIELD_WESTFIELD_UTIL_H
2 | #define WESTFIELD_WESTFIELD_UTIL_H
3 |
4 | #include
5 | #include
6 | #include
7 | #include
8 |
9 | #define wfl_log(std, fmt, ...) \
10 | fprintf(std, fmt "\n", ##__VA_ARGS__)
11 |
12 | #define wfl_log_errno(std, fmt, ...) \
13 | wfl_log(std, fmt ": %s", ##__VA_ARGS__, strerror(errno))
14 |
15 |
16 | #endif //WESTFIELD_WESTFIELD_UTIL_H
17 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/native/wayland/src/westfield.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by erik on 23/05/22.
3 | //
4 |
5 | #ifndef WESTFIELD_WESTFIELD_H
6 | #define WESTFIELD_WESTFIELD_H
7 |
8 | #include "westfield-fdutils.h"
9 | #include "westfield-egl.h"
10 | #include "westfield-xwayland.h"
11 | #include "wayland-server/westfield-wayland-server.h"
12 |
13 | #endif //WESTFIELD_WESTFIELD_H
14 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/addons/proxy-encoding-addon.node:
--------------------------------------------------------------------------------
1 | ../../dist/addons/proxy-encoding-addon.node
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/addons/proxy-poll-addon.d.ts:
--------------------------------------------------------------------------------
1 | declare namespace nodePoll {
2 | export type PollHandle = unknown
3 |
4 | export function startPoll(fd: number, handlePollEvent: (status: number, events: number) => void): PollHandle
5 |
6 | export function stopPoll(pollHandle: PollHandle)
7 | }
8 |
9 | export = nodePoll
10 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/addons/proxy-poll-addon.node:
--------------------------------------------------------------------------------
1 | ../../dist/addons/proxy-poll-addon.node
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/addons/wayland-server-addon.node:
--------------------------------------------------------------------------------
1 | ../../dist/addons/wayland-server-addon.node
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/index.ts:
--------------------------------------------------------------------------------
1 | export { createLogger } from './Logger.js'
2 | export { initSurfaceBufferEncoding } from './SurfaceBufferEncoding.js'
3 | export { createSessionController, SessionController } from './SessionController.js'
4 | export { createSession, Session } from './Session.js'
5 | export { launchApplication, NativeAppContext, RemoteAppContextAttributes } from './NativeAppContext.js'
6 | export { Configschema } from './config.js'
7 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/wl_buffer_interceptor.js:
--------------------------------------------------------------------------------
1 | const { createWlResource, unmarshallArgs } = require('../wayland-server')
2 |
3 | class wl_buffer_interceptor {
4 | constructor (wlClient, interceptors, version, wlResource, userData, creationArgs, id) {
5 | this.wlClient = wlClient
6 | this.wlResource = wlResource
7 | this.userData = userData
8 | this.creationArgs = creationArgs
9 | this.id = id
10 | this.requestHandlers = {
11 | }
12 | this.eventHandlers = {
13 | }
14 | }
15 |
16 | }
17 | module.exports = wl_buffer_interceptor
18 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/wl_buffer_interface.js:
--------------------------------------------------------------------------------
1 | const { createWlInterface, createWlMessage, initWlInterface } = require('../wayland-server')
2 |
3 | const wlInterface = createWlInterface()
4 | module.exports = wlInterface
5 | const requests = [
6 | createWlMessage('destroy', '', [])
7 | ]
8 |
9 | const events = [
10 | createWlMessage('release', '', [])
11 | ]
12 |
13 | initWlInterface(wlInterface, 'wl_buffer', 1, requests, events)
14 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/wl_callback_interceptor.js:
--------------------------------------------------------------------------------
1 | const { createWlResource, unmarshallArgs } = require('../wayland-server')
2 |
3 | class wl_callback_interceptor {
4 | constructor (wlClient, interceptors, version, wlResource, userData, creationArgs, id) {
5 | this.wlClient = wlClient
6 | this.wlResource = wlResource
7 | this.userData = userData
8 | this.creationArgs = creationArgs
9 | this.id = id
10 | this.requestHandlers = {
11 | }
12 | this.eventHandlers = {
13 | }
14 | }
15 |
16 | }
17 | module.exports = wl_callback_interceptor
18 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/wl_callback_interface.js:
--------------------------------------------------------------------------------
1 | const { createWlInterface, createWlMessage, initWlInterface } = require('../wayland-server')
2 |
3 | const wlInterface = createWlInterface()
4 | module.exports = wlInterface
5 | const requests = [
6 |
7 | ]
8 |
9 | const events = [
10 | createWlMessage('done', 'u', [null])
11 | ]
12 |
13 | initWlInterface(wlInterface, 'wl_callback', 1, requests, events)
14 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/wl_compositor_interface.js:
--------------------------------------------------------------------------------
1 | const { createWlInterface, createWlMessage, initWlInterface } = require('../wayland-server')
2 |
3 | const wlInterface = createWlInterface()
4 | module.exports = wlInterface
5 | const requests = [
6 | createWlMessage('create_surface', 'n', [require('./wl_surface_interface')]),
7 | createWlMessage('create_region', 'n', [require('./wl_region_interface')])
8 | ]
9 |
10 | const events = [
11 |
12 | ]
13 |
14 | initWlInterface(wlInterface, 'wl_compositor', 4, requests, events)
15 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/wl_data_device_manager_interface.js:
--------------------------------------------------------------------------------
1 | const { createWlInterface, createWlMessage, initWlInterface } = require('../wayland-server')
2 |
3 | const wlInterface = createWlInterface()
4 | module.exports = wlInterface
5 | const requests = [
6 | createWlMessage('create_data_source', 'n', [require('./wl_data_source_interface')]),
7 | createWlMessage('get_data_device', 'no', [require('./wl_data_device_interface'), require('./wl_seat_interface')])
8 | ]
9 |
10 | const events = [
11 |
12 | ]
13 |
14 | initWlInterface(wlInterface, 'wl_data_device_manager', 3, requests, events)
15 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/wl_data_offer_interceptor.js:
--------------------------------------------------------------------------------
1 | const { createWlResource, unmarshallArgs } = require('../wayland-server')
2 |
3 | class wl_data_offer_interceptor {
4 | constructor (wlClient, interceptors, version, wlResource, userData, creationArgs, id) {
5 | this.wlClient = wlClient
6 | this.wlResource = wlResource
7 | this.userData = userData
8 | this.creationArgs = creationArgs
9 | this.id = id
10 | this.requestHandlers = {
11 | }
12 | this.eventHandlers = {
13 | }
14 | }
15 |
16 | }
17 | module.exports = wl_data_offer_interceptor
18 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/wl_data_source_interceptor.js:
--------------------------------------------------------------------------------
1 | const { createWlResource, unmarshallArgs } = require('../wayland-server')
2 |
3 | class wl_data_source_interceptor {
4 | constructor (wlClient, interceptors, version, wlResource, userData, creationArgs, id) {
5 | this.wlClient = wlClient
6 | this.wlResource = wlResource
7 | this.userData = userData
8 | this.creationArgs = creationArgs
9 | this.id = id
10 | this.requestHandlers = {
11 | }
12 | this.eventHandlers = {
13 | }
14 | }
15 |
16 | }
17 | module.exports = wl_data_source_interceptor
18 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/wl_display_interface.js:
--------------------------------------------------------------------------------
1 | const { createWlInterface, createWlMessage, initWlInterface } = require('../wayland-server')
2 |
3 | const wlInterface = createWlInterface()
4 | module.exports = wlInterface
5 | const requests = [
6 | createWlMessage('sync', 'n', [require('./wl_callback_interface')]),
7 | createWlMessage('get_registry', 'n', [require('./wl_registry_interface')])
8 | ]
9 |
10 | const events = [
11 | createWlMessage('error', 'ous', [null, null, null]),
12 | createWlMessage('delete_id', 'u', [null])
13 | ]
14 |
15 | initWlInterface(wlInterface, 'wl_display', 1, requests, events)
16 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/wl_keyboard_interceptor.js:
--------------------------------------------------------------------------------
1 | const { createWlResource, unmarshallArgs } = require('../wayland-server')
2 |
3 | class wl_keyboard_interceptor {
4 | constructor (wlClient, interceptors, version, wlResource, userData, creationArgs, id) {
5 | this.wlClient = wlClient
6 | this.wlResource = wlResource
7 | this.userData = userData
8 | this.creationArgs = creationArgs
9 | this.id = id
10 | this.requestHandlers = {
11 | }
12 | this.eventHandlers = {
13 | }
14 | }
15 |
16 | }
17 | module.exports = wl_keyboard_interceptor
18 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/wl_output_interceptor.js:
--------------------------------------------------------------------------------
1 | const { createWlResource, unmarshallArgs } = require('../wayland-server')
2 |
3 | class wl_output_interceptor {
4 | constructor (wlClient, interceptors, version, wlResource, userData, creationArgs, id) {
5 | this.wlClient = wlClient
6 | this.wlResource = wlResource
7 | this.userData = userData
8 | this.creationArgs = creationArgs
9 | this.id = id
10 | this.requestHandlers = {
11 | }
12 | this.eventHandlers = {
13 | }
14 | }
15 |
16 | }
17 | module.exports = wl_output_interceptor
18 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/wl_output_interface.js:
--------------------------------------------------------------------------------
1 | const { createWlInterface, createWlMessage, initWlInterface } = require('../wayland-server')
2 |
3 | const wlInterface = createWlInterface()
4 | module.exports = wlInterface
5 | const requests = [
6 | createWlMessage('release', '', [])
7 | ]
8 |
9 | const events = [
10 | createWlMessage('geometry', 'iiiiissi', [null, null, null, null, null, null, null, null]),
11 | createWlMessage('mode', 'uiii', [null, null, null, null]),
12 | createWlMessage('done', '', []),
13 | createWlMessage('scale', 'i', [null])
14 | ]
15 |
16 | initWlInterface(wlInterface, 'wl_output', 3, requests, events)
17 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/wl_pointer_interceptor.js:
--------------------------------------------------------------------------------
1 | const { createWlResource, unmarshallArgs } = require('../wayland-server')
2 |
3 | class wl_pointer_interceptor {
4 | constructor (wlClient, interceptors, version, wlResource, userData, creationArgs, id) {
5 | this.wlClient = wlClient
6 | this.wlResource = wlResource
7 | this.userData = userData
8 | this.creationArgs = creationArgs
9 | this.id = id
10 | this.requestHandlers = {
11 | }
12 | this.eventHandlers = {
13 | }
14 | }
15 |
16 | }
17 | module.exports = wl_pointer_interceptor
18 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/wl_region_interceptor.js:
--------------------------------------------------------------------------------
1 | const { createWlResource, unmarshallArgs } = require('../wayland-server')
2 |
3 | class wl_region_interceptor {
4 | constructor (wlClient, interceptors, version, wlResource, userData, creationArgs, id) {
5 | this.wlClient = wlClient
6 | this.wlResource = wlResource
7 | this.userData = userData
8 | this.creationArgs = creationArgs
9 | this.id = id
10 | this.requestHandlers = {
11 | }
12 | this.eventHandlers = {
13 | }
14 | }
15 |
16 | }
17 | module.exports = wl_region_interceptor
18 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/wl_region_interface.js:
--------------------------------------------------------------------------------
1 | const { createWlInterface, createWlMessage, initWlInterface } = require('../wayland-server')
2 |
3 | const wlInterface = createWlInterface()
4 | module.exports = wlInterface
5 | const requests = [
6 | createWlMessage('destroy', '', []),
7 | createWlMessage('add', 'iiii', [null, null, null, null]),
8 | createWlMessage('subtract', 'iiii', [null, null, null, null])
9 | ]
10 |
11 | const events = [
12 |
13 | ]
14 |
15 | initWlInterface(wlInterface, 'wl_region', 1, requests, events)
16 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/wl_registry_interface.js:
--------------------------------------------------------------------------------
1 | const { createWlInterface, createWlMessage, initWlInterface } = require('../wayland-server')
2 |
3 | const wlInterface = createWlInterface()
4 | module.exports = wlInterface
5 | const requests = [
6 | createWlMessage('bind', 'un', [null, null])
7 | ]
8 |
9 | const events = [
10 | createWlMessage('global', 'usu', [null, null, null]),
11 | createWlMessage('global_remove', 'u', [null])
12 | ]
13 |
14 | initWlInterface(wlInterface, 'wl_registry', 1, requests, events)
15 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/wl_shell_interface.js:
--------------------------------------------------------------------------------
1 | const { createWlInterface, createWlMessage, initWlInterface } = require('../wayland-server')
2 |
3 | const wlInterface = createWlInterface()
4 | module.exports = wlInterface
5 | const requests = [
6 | createWlMessage('get_shell_surface', 'no', [require('./wl_shell_surface_interface'), require('./wl_surface_interface')])
7 | ]
8 |
9 | const events = [
10 |
11 | ]
12 |
13 | initWlInterface(wlInterface, 'wl_shell', 1, requests, events)
14 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/wl_shell_surface_interceptor.js:
--------------------------------------------------------------------------------
1 | const { createWlResource, unmarshallArgs } = require('../wayland-server')
2 |
3 | class wl_shell_surface_interceptor {
4 | constructor (wlClient, interceptors, version, wlResource, userData, creationArgs, id) {
5 | this.wlClient = wlClient
6 | this.wlResource = wlResource
7 | this.userData = userData
8 | this.creationArgs = creationArgs
9 | this.id = id
10 | this.requestHandlers = {
11 | }
12 | this.eventHandlers = {
13 | }
14 | }
15 |
16 | }
17 | module.exports = wl_shell_surface_interceptor
18 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/wl_shm_interface.js:
--------------------------------------------------------------------------------
1 | const { createWlInterface, createWlMessage, initWlInterface } = require('../wayland-server')
2 |
3 | const wlInterface = createWlInterface()
4 | module.exports = wlInterface
5 | const requests = [
6 | createWlMessage('create_pool', 'nhi', [require('./wl_shm_pool_interface'), null, null])
7 | ]
8 |
9 | const events = [
10 | createWlMessage('format', 'u', [null])
11 | ]
12 |
13 | initWlInterface(wlInterface, 'wl_shm', 1, requests, events)
14 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/wl_shm_pool_interface.js:
--------------------------------------------------------------------------------
1 | const { createWlInterface, createWlMessage, initWlInterface } = require('../wayland-server')
2 |
3 | const wlInterface = createWlInterface()
4 | module.exports = wlInterface
5 | const requests = [
6 | createWlMessage('create_buffer', 'niiiiu', [require('./wl_buffer_interface'), null, null, null, null, null]),
7 | createWlMessage('destroy', '', []),
8 | createWlMessage('resize', 'i', [null])
9 | ]
10 |
11 | const events = [
12 |
13 | ]
14 |
15 | initWlInterface(wlInterface, 'wl_shm_pool', 1, requests, events)
16 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/wl_subcompositor_interface.js:
--------------------------------------------------------------------------------
1 | const { createWlInterface, createWlMessage, initWlInterface } = require('../wayland-server')
2 |
3 | const wlInterface = createWlInterface()
4 | module.exports = wlInterface
5 | const requests = [
6 | createWlMessage('destroy', '', []),
7 | createWlMessage('get_subsurface', 'noo', [require('./wl_subsurface_interface'), require('./wl_surface_interface'), require('./wl_surface_interface')])
8 | ]
9 |
10 | const events = [
11 |
12 | ]
13 |
14 | initWlInterface(wlInterface, 'wl_subcompositor', 1, requests, events)
15 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/wl_subsurface_interceptor.js:
--------------------------------------------------------------------------------
1 | const { createWlResource, unmarshallArgs } = require('../wayland-server')
2 |
3 | class wl_subsurface_interceptor {
4 | constructor (wlClient, interceptors, version, wlResource, userData, creationArgs, id) {
5 | this.wlClient = wlClient
6 | this.wlResource = wlResource
7 | this.userData = userData
8 | this.creationArgs = creationArgs
9 | this.id = id
10 | this.requestHandlers = {
11 | }
12 | this.eventHandlers = {
13 | }
14 | }
15 |
16 | }
17 | module.exports = wl_subsurface_interceptor
18 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/wl_touch_interceptor.js:
--------------------------------------------------------------------------------
1 | const { createWlResource, unmarshallArgs } = require('../wayland-server')
2 |
3 | class wl_touch_interceptor {
4 | constructor (wlClient, interceptors, version, wlResource, userData, creationArgs, id) {
5 | this.wlClient = wlClient
6 | this.wlResource = wlResource
7 | this.userData = userData
8 | this.creationArgs = creationArgs
9 | this.id = id
10 | this.requestHandlers = {
11 | }
12 | this.eventHandlers = {
13 | }
14 | }
15 |
16 | }
17 | module.exports = wl_touch_interceptor
18 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/xdg_popup_interceptor.js:
--------------------------------------------------------------------------------
1 | const { createWlResource, unmarshallArgs } = require('../wayland-server')
2 |
3 | class xdg_popup_interceptor {
4 | constructor (wlClient, interceptors, version, wlResource, userData, creationArgs, id) {
5 | this.wlClient = wlClient
6 | this.wlResource = wlResource
7 | this.userData = userData
8 | this.creationArgs = creationArgs
9 | this.id = id
10 | this.requestHandlers = {
11 | }
12 | this.eventHandlers = {
13 | }
14 | }
15 |
16 | }
17 | module.exports = xdg_popup_interceptor
18 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/xdg_popup_interface.js:
--------------------------------------------------------------------------------
1 | const { createWlInterface, createWlMessage, initWlInterface } = require('../wayland-server')
2 |
3 | const wlInterface = createWlInterface()
4 | module.exports = wlInterface
5 | const requests = [
6 | createWlMessage('destroy', '', []),
7 | createWlMessage('grab', 'ou', [require('./wl_seat_interface'), null])
8 | ]
9 |
10 | const events = [
11 | createWlMessage('configure', 'iiii', [null, null, null, null]),
12 | createWlMessage('popup_done', '', [])
13 | ]
14 |
15 | initWlInterface(wlInterface, 'xdg_popup', 1, requests, events)
16 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/xdg_positioner_interceptor.js:
--------------------------------------------------------------------------------
1 | const { createWlResource, unmarshallArgs } = require('../wayland-server')
2 |
3 | class xdg_positioner_interceptor {
4 | constructor (wlClient, interceptors, version, wlResource, userData, creationArgs, id) {
5 | this.wlClient = wlClient
6 | this.wlResource = wlResource
7 | this.userData = userData
8 | this.creationArgs = creationArgs
9 | this.id = id
10 | this.requestHandlers = {
11 | }
12 | this.eventHandlers = {
13 | }
14 | }
15 |
16 | }
17 | module.exports = xdg_positioner_interceptor
18 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/src/protocol/xdg_toplevel_interceptor.js:
--------------------------------------------------------------------------------
1 | const { createWlResource, unmarshallArgs } = require('../wayland-server')
2 |
3 | class xdg_toplevel_interceptor {
4 | constructor (wlClient, interceptors, version, wlResource, userData, creationArgs, id) {
5 | this.wlClient = wlClient
6 | this.wlResource = wlResource
7 | this.userData = userData
8 | this.creationArgs = creationArgs
9 | this.id = id
10 | this.requestHandlers = {
11 | }
12 | this.eventHandlers = {
13 | }
14 | }
15 |
16 | }
17 | module.exports = xdg_toplevel_interceptor
18 |
--------------------------------------------------------------------------------
/packages/compositor-proxy/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "@tsconfig/node18/tsconfig.json",
3 | "compilerOptions": {
4 | "resolveJsonModule": true,
5 | "allowJs": true,
6 | "rootDirs": ["src"],
7 | "pretty": true,
8 | "declarationDir": "types",
9 | "outDir": "dist",
10 | "declaration": true,
11 | "sourceMap": true,
12 | },
13 | "exclude": [".eslintrc.js", ".prettierrc.js"]
14 | }
15 |
--------------------------------------------------------------------------------
/packages/compositor-shell/.gitignore:
--------------------------------------------------------------------------------
1 | dist
2 | types
3 | node_modules
4 |
--------------------------------------------------------------------------------
/packages/compositor-shell/.prettierrc.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | semi: false,
3 | trailingComma: 'all',
4 | singleQuote: true,
5 | printWidth: 120,
6 | plugins: [],
7 | pluginSearchDirs: false
8 | }
9 |
--------------------------------------------------------------------------------
/packages/compositor-shell/postcss.config.js:
--------------------------------------------------------------------------------
1 | // eslint-disable-next-line @typescript-eslint/no-var-requires
2 | import { join, dirname } from 'node:path'
3 | import { fileURLToPath } from 'node:url'
4 | const __filename = fileURLToPath(import.meta.url)
5 | const __dirname = dirname(__filename)
6 |
7 | export default {
8 | plugins: {
9 | tailwindcss: {
10 | config: join(__dirname, 'tailwind.config.js'),
11 | },
12 | autoprefixer: {},
13 | },
14 | }
15 |
--------------------------------------------------------------------------------
/packages/compositor-shell/public/simple-shm-web:
--------------------------------------------------------------------------------
1 | ../../../examples/webapps/simple-shm/dist
--------------------------------------------------------------------------------
/packages/compositor-shell/public/weston:
--------------------------------------------------------------------------------
1 | ../../../examples/sdk/weston/build/clients/
--------------------------------------------------------------------------------
/packages/compositor-shell/src/index.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
--------------------------------------------------------------------------------
/packages/compositor-shell/src/index.ts:
--------------------------------------------------------------------------------
1 | import './index.css'
2 | import { main } from './App'
3 |
4 | window.onload = () => {
5 | main()
6 | }
7 |
--------------------------------------------------------------------------------
/packages/compositor-shell/tailwind.config.js:
--------------------------------------------------------------------------------
1 | // eslint-disable-next-line @typescript-eslint/no-var-requires
2 | import { join, dirname } from 'node:path'
3 | import { fileURLToPath } from 'node:url'
4 | const __filename = fileURLToPath(import.meta.url)
5 | const __dirname = dirname(__filename)
6 |
7 | export default {
8 | content: [join(__dirname, '/index.html'), join(__dirname, '/src/**/*.{js,ts,jsx,tsx}')],
9 | theme: {
10 | extend: {},
11 | },
12 | plugins: [require('@tailwindcss/typography')],
13 | }
14 |
--------------------------------------------------------------------------------
/packages/compositor-shell/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite'
2 | import preact from '@preact/preset-vite'
3 |
4 | export default defineConfig({
5 | plugins: [preact()],
6 | server: {
7 | host: 'localhost',
8 | port: 8080,
9 | strictPort: true,
10 | cors: false,
11 | headers: {
12 | 'Cross-Origin-Opener-Policy': 'same-origin',
13 | 'Cross-Origin-Embedder-Policy': 'require-corp',
14 | },
15 | },
16 | })
17 |
--------------------------------------------------------------------------------
/packages/compositor/.gitignore:
--------------------------------------------------------------------------------
1 | dist
2 | types
3 | node_modules
4 |
--------------------------------------------------------------------------------
/packages/compositor/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | semi: false,
3 | trailingComma: 'all',
4 | singleQuote: true,
5 | printWidth: 120,
6 | }
7 |
--------------------------------------------------------------------------------
/packages/compositor/openapitools.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "node_modules/@openapitools/openapi-generator-cli/config.schema.json",
3 | "spaces": 2,
4 | "generator-cli": {
5 | "version": "5.4.0",
6 | "generators": {
7 | "webfs": {
8 | "additionalProperties": {
9 | "typescriptThreePlus": true,
10 | "supportsES6": true,
11 | "npmVersion": "16.0.0"
12 | },
13 | "glob": "./compositor-proxy-api.yaml",
14 | "output": "src/api",
15 | "generatorName": "typescript-fetch"
16 | }
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/packages/compositor/src/@types/import-png.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.png' {
2 | const value: any
3 | export default value
4 | }
5 |
--------------------------------------------------------------------------------
/packages/compositor/src/Loop.ts:
--------------------------------------------------------------------------------
1 | export function queueCancellableMicrotask(handler: () => void): () => void {
2 | let canceled = false
3 | setTimeout(() => {
4 | if (canceled) {
5 | return
6 | }
7 | handler()
8 | })
9 | return () => {
10 | canceled = true
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/packages/compositor/src/assets/e-resize.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/packages/compositor/src/assets/e-resize.png
--------------------------------------------------------------------------------
/packages/compositor/src/assets/left_ptr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/packages/compositor/src/assets/left_ptr.png
--------------------------------------------------------------------------------
/packages/compositor/src/assets/n-resize.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/packages/compositor/src/assets/n-resize.png
--------------------------------------------------------------------------------
/packages/compositor/src/assets/ne-resize.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/packages/compositor/src/assets/ne-resize.png
--------------------------------------------------------------------------------
/packages/compositor/src/assets/nw-resize.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/packages/compositor/src/assets/nw-resize.png
--------------------------------------------------------------------------------
/packages/compositor/src/assets/s-resize.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/packages/compositor/src/assets/s-resize.png
--------------------------------------------------------------------------------
/packages/compositor/src/assets/se-resize.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/packages/compositor/src/assets/se-resize.png
--------------------------------------------------------------------------------
/packages/compositor/src/assets/sign_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/packages/compositor/src/assets/sign_close.png
--------------------------------------------------------------------------------
/packages/compositor/src/assets/sign_maximize.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/packages/compositor/src/assets/sign_maximize.png
--------------------------------------------------------------------------------
/packages/compositor/src/assets/sign_minimize.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/packages/compositor/src/assets/sign_minimize.png
--------------------------------------------------------------------------------
/packages/compositor/src/assets/sw-resize.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/packages/compositor/src/assets/sw-resize.png
--------------------------------------------------------------------------------
/packages/compositor/src/assets/w-resize.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udevbe/greenfield/20b31ad63c3f9e130887fce435e2d6fcc40e0abd/packages/compositor/src/assets/w-resize.png
--------------------------------------------------------------------------------
/packages/compositor/src/browser/attributes.ts:
--------------------------------------------------------------------------------
1 | export const hasTouch = 'ontouchstart' in document.documentElement
2 | export const userAgent = window.navigator.userAgent
3 |
4 | export const orientation = () => {
5 | const { angle, type, unlock } = window.screen.orientation
6 | return {
7 | angle,
8 | type,
9 | unlock,
10 | }
11 | }
12 | export const clientWidth = () => window.document.body.clientWidth
13 | export const clientHeight = () => window.document.body.clientHeight
14 |
--------------------------------------------------------------------------------
/packages/compositor/src/custom-typings.d.ts:
--------------------------------------------------------------------------------
1 | import { InputOutput } from './InputOutput'
2 | import { ClientEncodersFeedback } from './remote/EncoderFeedback'
3 |
4 | declare module '@gfld/compositor-protocol' {
5 | export interface ClientUserData {
6 | readonly baseURL?: string
7 | readonly clientEncodersFeedback?: ClientEncodersFeedback
8 | readonly inputOutput: InputOutput
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/packages/compositor/src/remote/xwayland/CursorType.ts:
--------------------------------------------------------------------------------
1 | export enum CursorType {
2 | XWM_CURSOR_TOP,
3 | XWM_CURSOR_BOTTOM,
4 | XWM_CURSOR_LEFT,
5 | XWM_CURSOR_RIGHT,
6 | XWM_CURSOR_TOP_LEFT,
7 | XWM_CURSOR_TOP_RIGHT,
8 | XWM_CURSOR_BOTTOM_LEFT,
9 | XWM_CURSOR_BOTTOM_RIGHT,
10 | XWM_CURSOR_LEFT_PTR,
11 | }
12 |
--------------------------------------------------------------------------------
/publish.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 |
3 | printf "\n!!! Make sure you are logged in by running 'yarn npm login' first !!!\n\n"
4 |
5 | export TOKEN="$(cat token)"
6 | yarn workspaces foreach -vA --exclude root-workspace* --exclude @gfld/example* --exclude @gfld/compositor-proxy-cli --exclude @gfld/compositor-shell npm publish --tolerate-republish
--------------------------------------------------------------------------------
/sdk/.gitignore:
--------------------------------------------------------------------------------
1 | emsdk
2 | build-sysroot
3 | sysroot
4 |
--------------------------------------------------------------------------------
/sdk/sdk_env.sh:
--------------------------------------------------------------------------------
1 | CURRENT_SCRIPT=
2 | _SDK_DIR="."
3 |
4 | if [ -n "${BASH_SOURCE-}" ]; then
5 | CURRENT_SCRIPT="$BASH_SOURCE"
6 | elif [ -n "${ZSH_VERSION-}" ]; then
7 | CURRENT_SCRIPT="${(%):-%x}"
8 | elif [ -n "${KSH_VERSION-}" ]; then
9 | CURRENT_SCRIPT=${.sh.file}
10 | fi
11 |
12 | _SDK_DIR=$(dirname "$(readlink -f "$CURRENT_SCRIPT")")
13 | export PKG_CONFIG_LIBDIR="$_SDK_DIR/sysroot/lib/pkgconfig:$_SDK_DIR/sysroot/share/pkgconfig:$_SDK_DIR/build-sysroot/lib/pkgconfig"
14 |
15 | export _SDK_DIR
16 | export PATH="$_SDK_DIR/toolkit/bin:$PATH"
17 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/.gitignore:
--------------------------------------------------------------------------------
1 | emscripten-toolchain.ini
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/cairo/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/cairo/changes.patch:
--------------------------------------------------------------------------------
1 | diff --git a/src/cairo-ft.h b/src/cairo-ft.h
2 | index a23e032..921a96e 100644
3 | --- a/src/cairo-ft.h
4 | +++ b/src/cairo-ft.h
5 | @@ -45,6 +45,7 @@
6 |
7 | #include
8 | #include FT_FREETYPE_H
9 | +#include FT_COLOR_H
10 |
11 | #if CAIRO_HAS_FC_FONT
12 | #include
13 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/cygepoll/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/egl-stub/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/epoxy-emscripten/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/expat/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/fontconfig/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/freetype/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/fribidi/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/gdk-pixbuf/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/gdk-pixbuf/changes.patch:
--------------------------------------------------------------------------------
1 | diff --git a/gdk-pixbuf/meson.build b/gdk-pixbuf/meson.build
2 | index 8c944ba..f88168f 100644
3 | --- a/gdk-pixbuf/meson.build
4 | +++ b/gdk-pixbuf/meson.build
5 | @@ -289,9 +289,9 @@ if native_windows_loaders
6 | endif
7 |
8 | gdkpixbuf_bin = [
9 | - [ 'gdk-pixbuf-csource' ],
10 | - [ 'gdk-pixbuf-pixdata' ],
11 | - [ 'gdk-pixbuf-query-loaders', [ 'queryloaders.c' ] ],
12 | +# [ 'gdk-pixbuf-csource' ],
13 | +# [ 'gdk-pixbuf-pixdata' ],
14 | +# [ 'gdk-pixbuf-query-loaders', [ 'queryloaders.c' ] ],
15 | ]
16 |
17 | foreach bin: gdkpixbuf_bin
18 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/glesv2-stub/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/glib/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/graphene/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/gtk4/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/harfbuzz/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/icu/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/jpeg/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/jslibraries/app_template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Unnamed App
4 |
5 |
6 |
16 | {{{ SCRIPT }}}
17 |
18 |
19 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/libffi/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/pango/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/pango/changes.patch:
--------------------------------------------------------------------------------
1 | diff --git a/meson.build b/meson.build
2 | index ed878ef..6643e31 100644
3 | --- a/meson.build
4 | +++ b/meson.build
5 | @@ -577,7 +577,6 @@ pango_inc = include_directories('pango')
6 | subdir('pango')
7 | subdir('utils')
8 | subdir('examples')
9 | -subdir('tests')
10 | subdir('tools')
11 |
12 | if get_option('gtk_doc')
13 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/pcre2/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/pixman/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/png/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/sass/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/sassc/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/tiff4/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/uapi-stub/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/upoll/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/wayland-protocols/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/wayland/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/xkbcommon/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/xml2/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/sysrootlibs/zlib/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/sdk/toolkit/.gitignore:
--------------------------------------------------------------------------------
1 | meson-gf-toolchain.ini
2 |
--------------------------------------------------------------------------------
/sdk/toolkit/bin/gf_file_packager:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | "$_SDK_DIR"/emsdk/upstream/emscripten/tools/file_packager "$@"
4 |
--------------------------------------------------------------------------------
/sdk/toolkit/bin/gfar:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | _SDK_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")/../.."
4 | "$_SDK_DIR"/emsdk/upstream/emscripten/emar "$@"
5 |
--------------------------------------------------------------------------------
/sdk/toolkit/bin/gfnm:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | _SDK_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")/../.."
4 | "$_SDK_DIR"/emsdk/upstream/emscripten/emnm "$@"
--------------------------------------------------------------------------------
/sdk/toolkit/bin/gfranlib:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | _SDK_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")/../.."
4 | "$_SDK_DIR"/emsdk/upstream/emscripten/emranlib "$@"
--------------------------------------------------------------------------------
/sdk/toolkit/bin/wayland-scanner:
--------------------------------------------------------------------------------
1 | ../../build-sysroot/bin/wayland-scanner
--------------------------------------------------------------------------------