{"id":35573,"date":"2019-10-31T22:05:08","date_gmt":"2019-10-31T19:05:08","guid":{"rendered":"https:\/\/prohoster.info\/blog\/vypusk-libhandy-0-0-10-biblioteki-dlya-sozdaniya-mobilnyh-variantov-prilozhenij-gtk-gnome\/"},"modified":"2019-10-31T22:05:08","modified_gmt":"2019-10-31T19:05:08","slug":"vypusk-libhandy-0-0-10-biblioteki-dlya-sozdaniya-mobilnyh-variantov-prilozhenij-gtk-gnome","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-libhandy-0-0-10-biblioteki-dlya-sozdaniya-mobilnyh-variantov-prilozhenij-gtk-gnome","title":{"rendered":"Release of libhandy 0.0.10, a library for creating mobile variants of GTK\/GNOME applications","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Purism, the company developing the Librem 5 smartphone and the free PureOS distribution, <noindex><a rel=\"nofollow\" href=\"https:\/\/puri.sm\/posts\/the-new-libhandy-0-0-10\/\">introduced<\/a><\/noindex>  release of the library <noindex><a rel=\"nofollow\" href=\"https:\/\/source.puri.sm\/Librem5\/libhandy\">libhandy 0.0.10<\/a><\/noindex>, which develops a set of widgets and objects for creating user interfaces for mobile devices using GTK and GNOME technologies. The library is being developed as part of the porting of GNOME applications for the user environment of the Librem 5 smartphone.<br \/>\nProject Code <noindex><a rel=\"nofollow\" href=\"https:\/\/source.puri.sm\/Librem5\/libhandy\">is distributed<\/a><\/noindex> under the GPL 2.1+ license. In addition to supporting applications in C, the library can be used to create mobile variants of application interfaces in Python, Rust, and Vala.<\/p>\n<p>Currently, the library consists of <noindex><a rel=\"nofollow\" href=\"https:\/\/honk.sigxcpu.org\/projects\/libhandy\/doc\/\">includes<\/a><\/noindex> 24 widgets covering various standard interface elements such as lists, panels, editing blocks, buttons, tabs, search forms, dialog boxes, etc. The suggested widgets allow for the creation of universal interfaces that function seamlessly on both large screens of PCs and laptops as well as on small touchscreen displays of smartphones. The application interface dynamically changes according to screen size and available input devices. <\/p>\n<p><center><video controls=\"\" style=\"width: 680px; height: 382px; max-width:100%\" src=\"https:\/\/puri.sm\/wp-content\/uploads\/2019\/06\/hdy-view-switcher-clocks.mp4\"><source type=\"video\/mp4\" src=\"https:\/\/puri.sm\/wp-content\/uploads\/2019\/06\/hdy-view-switcher-clocks.mp4\"><source type=\"video\/webm\" src=\"https:\/\/puri.sm\/wp-content\/uploads\/2019\/06\/hdy-view-switcher-clocks.webm\"><\/video><\/center><\/p>\n<p>The key goal of the project is to provide the ability to work with the same GNOME applications on smartphones and PCs. The software for the Librem 5 smartphone is based on the PureOS distribution, which uses a Debian package base, GNOME desktop, and a GNOME Shell adapted for smartphones. Using libhandy allows you to connect the smartphone to a monitor and obtain a typical GNOME desktop based on a single set of applications. Among the applications ported to libhandy are: GNOME Calls (Dialer), gnome-bluetooth, GNOME Settings, GNOME Web, Phosh (Dialer), Daty, PasswordSafe, Unifydmin, Fractal, Podcasts, GNOME Contacts, and GNOME Games. <\/p>\n<p>Libhandy 0.0.10 is the latest preliminary version before the formation of a significant 1.0 release. This new release introduces several new widgets:<\/p>\n<ul>\n<li class=\"l\">    <noindex><a rel=\"nofollow\" href=\"https:\/\/honk.sigxcpu.org\/projects\/libhandy\/doc\/HdyViewSwitcher.html\">HdyViewSwitcher<\/a><\/noindex> \u2014 An adaptive replacement for the GtkStackSwitcher widget, allowing for automatic tab layout (views) based on the screen width. On larger screens, icons and titles are placed on a single line, while on smaller ones, a compact layout is used where the title is displayed beneath the icon. For mobile devices, the button block moves to the bottom.<br \/>\n<center><img decoding=\"async\" alt=\"Release of libhandy 0.0.10, a library for creating mobile variants of GTK\/GNOME applications\" src=\"\/wp-content\/uploads\/b585f5d2d590e1dc1372f2f496cfe6d0.png\" style=\"display:block;margin: 0 auto;\" \/><\/center><\/p>\n<li class=\"l\">    <noindex><a rel=\"nofollow\" href=\"https:\/\/honk.sigxcpu.org\/projects\/libhandy\/doc\/HdySqueezer.html\">HdySqueezer<\/a><\/noindex> \u2014 A container for displaying a panel according to the available size, eliminating details when necessary (for wide screens, a full header panel for tab switching is displayed, but if there isn't enough space, a widget simulating the header is shown, and the tab switcher moves to the bottom of the screen);\n<li class=\"l\">    <noindex><a rel=\"nofollow\" href=\"https:\/\/honk.sigxcpu.org\/projects\/libhandy\/doc\/HdyHeaderBar.html\">HdyHeaderBar<\/a><\/noindex> \u2014 An implementation of an extended panel, similar to GtkHeaderBar, but designed for use in an adaptive interface, always centered and fully filling the header area in height;\n<li class=\"l\">    <noindex><a rel=\"nofollow\" href=\"https:\/\/honk.sigxcpu.org\/projects\/libhandy\/doc\/HdyPreferencesWindow.html\">HdyPreferencesWindow<\/a><\/noindex> \u2014 An adaptive version of a window for configuring settings, with options divided into tabs and groups;\n<p><center><video  controls=\"\" style=\"width: 680px; height: 382px; max-width:100%\" src=\"https:\/\/puri.sm\/wp-content\/uploads\/2019\/06\/hdy-preferences-window-web.mp4\" width=\"640\" height=\"360\"><source type=\"video\/mp4\" src=\"https:\/\/puri.sm\/wp-content\/uploads\/2019\/06\/hdy-preferences-window-web.mp4\"><source type=\"video\/webm\" src=\"https:\/\/puri.sm\/wp-content\/uploads\/2019\/06\/hdy-preferences-window-web.webm\"><\/video><\/center>\n<\/ul>\n<p>Notable improvements related to adapting GNOME applications for use on smartphones include:<\/p>\n<ul>\n<li class=\"l\"> In the interface for receiving and making calls (Calls), a PulseAudio loopback module is used to connect the modem and the device's sound codec in ALSA when a call is activated, and the module is unloaded after the call ends;\n<li class=\"l\"> In the messaging application (Messaging), an interface for viewing chat history has been implemented. An SQLite database is used to store history. A verification option for accounts has been added, which is now checked through a connection to the server, with a warning displayed in case of failure;\n<li class=\"l\"> In the XMPP client, support for exchanging encrypted messages through the plugin <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/gkdr\/lurch\">Lurch<\/a><\/noindex> with the implementation of end-to-end encryption mechanisms <noindex><a rel=\"nofollow\" href=\"https:\/\/conversations.im\/omemo\/\">OMEMO<\/a><\/noindex>. A special indicator has been added to the panel to signal whether encryption is applied in the current chat or not. There is also a new capability to view identity fingerprints, either for oneself or for another chat participant;\n<p><center><noindex><a rel=\"nofollow\" href=\"https:\/\/puri.sm\/wp-content\/uploads\/2019\/06\/722-682-max.png\"><img decoding=\"async\" alt=\"Release of libhandy 0.0.10, a library for creating mobile variants of GTK\/GNOME applications\" src=\"\/wp-content\/uploads\/d4356529a6c97dec4ff4ab2dd40addb9.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/center><\/p>\n<li class=\"l\"> In GNOME Web, new Libhandy 0.0.10 widgets have been implemented, allowing the configuration interface and browser panel to be adapted for mobile screens.\n<p><center><br \/>\n<video  controls=\"\" style=\"width: 680px; height: 382px; max-width:100%\" src=\"https:\/\/puri.sm\/wp-content\/uploads\/2019\/04\/HdyPreferenceswindow.mp4?_=2\" width=\"640\" height=\"360\"><source type=\"video\/mp4\" src=\"https:\/\/puri.sm\/wp-content\/uploads\/2019\/04\/HdyPreferenceswindow.mp4?_=2\"><source type=\"video\/webm\" src=\"https:\/\/puri.sm\/wp-content\/uploads\/2019\/06\/hdy-preferences-window-web.webm\"><\/video><\/center>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Source: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=50936\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Purism, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0430\u044f \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d Librem 5 \u0438 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0439 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 PureOS, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u0432\u044b\u043f\u0443\u0441\u043a \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 libhandy 0.0.10, \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0431\u043e\u0440 \u0432\u0438\u0434\u0436\u0435\u0442\u043e\u0432 \u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0434\u043b\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 GTK \u0438 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 GNOME. \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 GNOME \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u0430 Librem 5. \u041a\u043e\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 GPL [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-35573","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Purism, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0430\u044f \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d Librem 5 \u0438 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0439 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 PureOS, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u0432\u044b\u043f\u0443\u0441\u043a \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-libhandy-0-0-10-biblioteki-dlya-sozdaniya-mobilnyh-variantov-prilozhenij-gtk-gnome\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a libhandy 0.0.10, \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 GTK\/GNOME | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Purism, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0430\u044f \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d Librem 5 \u0438 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0439 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 PureOS, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u0432\u044b\u043f\u0443\u0441\u043a \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-libhandy-0-0-10-biblioteki-dlya-sozdaniya-mobilnyh-variantov-prilozhenij-gtk-gnome\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:05:08+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:05:08+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Release of libhandy 0.0.10, a library for creating mobile versions of GTK\/GNOME applications | ProHoster","description":"Purism, the company behind the Librem 5 smartphone and the PureOS free distribution, has released a new library.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-libhandy-0-0-10-biblioteki-dlya-sozdaniya-mobilnyh-variantov-prilozhenij-gtk-gnome","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a libhandy 0.0.10, \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 GTK\/GNOME | ProHoster","og:description":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Purism, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0430\u044f \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d Librem 5 \u0438 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0439 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 PureOS, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u0432\u044b\u043f\u0443\u0441\u043a \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-libhandy-0-0-10-biblioteki-dlya-sozdaniya-mobilnyh-variantov-prilozhenij-gtk-gnome","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:05:08+00:00","article:modified_time":"2019-10-31T19:05:08+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35573","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 23:50:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:59:36","updated":"2026-01-21 23:50:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/35573","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=35573"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/35573\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=35573"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=35573"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=35573"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}