{"id":48198,"date":"2025-02-24T05:55:39","date_gmt":"2025-02-24T05:55:39","guid":{"rendered":"https:\/\/ubuntuhandbook.org\/?p=48198"},"modified":"2025-02-24T05:55:39","modified_gmt":"2025-02-24T05:55:39","slug":"gnu-emacs-30-1-android-improved-touchscreen","status":"publish","type":"post","link":"https:\/\/ubuntuhandbook.org\/index.php\/2025\/02\/gnu-emacs-30-1-android-improved-touchscreen\/","title":{"rendered":"GNU Emacs 30.1 Released with Android &#038; Improved Touchscreen Support"},"content":{"rendered":"<p><a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2021\/12\/emacs-icon.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-thumbnail wp-image-36513\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2021\/12\/emacs-icon-250x250.webp\" alt=\"\" width=\"250\" height=\"250\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2021\/12\/emacs-icon-250x250.webp 250w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2021\/12\/emacs-icon-300x300.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2021\/12\/emacs-icon-600x600.webp 600w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2021\/12\/emacs-icon-768x768.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2021\/12\/emacs-icon.webp 1200w\" sizes=\"auto, (max-width: 250px) 100vw, 250px\" \/><\/a><\/p>\n<p>GNU Emacs text editor released new 30.1 version on Sunday with many new features.<\/p>\n<p>Emacs is finally <b>ported to Android<\/b> operating system. Though, it requires to be compiled on another computer with Android NDK, SDK and Java compiler. See the &#8220;INSTALL&#8221; file under <code>java<\/code> sub-folder of the source for details.<\/p>\n<p><a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2025\/02\/emacs301.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-48199\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2025\/02\/emacs301-700x694.webp\" alt=\"\" width=\"610\" height=\"605\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2025\/02\/emacs301-700x694.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2025\/02\/emacs301-300x298.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2025\/02\/emacs301.webp 752w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/a><\/p>\n<p><!--more--><\/p>\n<p>The new release also improved touchscreen devices support. It now supports tapping tool-bar buttons and opening menus. And, countless packages (such as Dired and Custom) have been adjusted to better understand touch screen input.<\/p>\n<p>Emacs 30.1 introduced new <code>trusted-content<\/code> option. It defines list of files and directories whose content that Emacs trusts. Meaning it might execute the code within those files and directories even without any explicit user request.<\/p>\n<p><a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2025\/02\/emacs-trusted-content.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-48200\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2025\/02\/emacs-trusted-content-700x536.webp\" alt=\"\" width=\"610\" height=\"467\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2025\/02\/emacs-trusted-content-700x536.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2025\/02\/emacs-trusted-content-300x230.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2025\/02\/emacs-trusted-content-768x588.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2025\/02\/emacs-trusted-content.webp 864w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/a><\/p>\n<p>The release also introduced new <code>which-key<\/code> package, which implements the global minor mode <code>which-key-mode<\/code> that displays a table of key bindings upon entering a partial key chord and waiting for a moment.<\/p>\n<p>The 30.1 release now has native JSON support without external libjansson library is required, and <code>--with-json<\/code> configure option has been removed as it no longer required. And, native compilation is enabled by default in the release, though user can disable it by using <code>--with-native-compilation=no<\/code> configure option.<\/p>\n<p>On Linux, the <code>emacsclient.desktop<\/code> now arranges for Emacs to be default app for <code>org-protocol<\/code>. The &#8216;org-protocol&#8217; links should now open in Emacs automatically without any configuration.<\/p>\n<p>Other change include new <code>tool-bar-position<\/code> parameter to set tool bar to bottom, default to ossaudio for sound on NetBSD and OpenBSD, as well as following changes:<\/p>\n<ul>\n<li>New package <code>Compat<\/code>, <code>EditorConfig<\/code>, and <code>Window-Tool-Bar<\/code>.<\/li>\n<li>New configure option <code>--disable-gc-mark-trace<\/code>, gains 5% better garbage collection performance, but makes more difficult to find GC-related bugs.<\/li>\n<li>New library Track-Changes and PEG.<\/li>\n<li>New major mode &#8216;elixir-ts-mode&#8217;, &#8216;heex-ts-mode&#8217;, &#8216;html-ts-mode&#8217;, &#8216;lua-ts-mode&#8217;, and &#8216;php-ts-mode&#8217;.<\/li>\n<li>Support for styled underline face attributes.<\/li>\n<li>Support for underline colors on TTY frames.<\/li>\n<li>Support Unicode Standard v15.1.<\/li>\n<li>Modeline elements can be right-aligned.<\/li>\n<\/ul>\n<p>There are as well numerous new options, commands, and improvements, see the <a href=\"https:\/\/www.gnu.org\/savannah-checkouts\/gnu\/emacs\/news\/NEWS.30.1\" target=\"_blank\" rel=\"noopener\">NEWS page<\/a> for details.<\/p>\n<h3>How to Get GNU Emacs 30.1<\/h3>\n<p>GNU Emacs has an official download page for Linux, BSDs, Haiku, Windows, and macOS support:<\/p>\n<div class=\"wp-block-buttons aligncenter\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link has-vivid-cyan-blue-to-vivid-purple-gradient-background has-text-color has-background\" href=\"https:\/\/www.gnu.org\/savannah-checkouts\/gnu\/emacs\/emacs.html#Releases\" target=\"_blank\" rel=\"noreferrer noopener\">Emacs Download Page<\/a><\/div>\n<\/div>\n<p>For Linux, besides building from the <a href=\"https:\/\/ftp.gnu.org\/gnu\/emacs\/\" target=\"_blank\" rel=\"noopener\">source tarball<\/a>, user may choose the <a href=\"https:\/\/snapcraft.io\/emacs\" target=\"_blank\" rel=\"noopener\">Snap package<\/a> available in Ubuntu Software or App Center, or <a href=\"https:\/\/flathub.org\/apps\/org.gnu.emacs\" target=\"_blank\" rel=\"noopener\">Flatpak package<\/a> that runs in sandbox environment. However, both are not updated at the moment of writing.<\/p>\n<p>For Ubuntu users who prefer the classic .deb package, I&#8217;ll backport the new release package into PPA (if possible) and update this <a href=\"https:\/\/ubuntuhandbook.org\/index.php\/2023\/08\/gnu-emacs-29-1-ubuntu-ppa\/\" rel=\"noopener\" target=\"_blank\">how to install<\/a> guide.<\/p>","protected":false},"excerpt":{"rendered":"<p>GNU Emacs text editor released new 30.1 version on Sunday with many new features. Emacs is finally ported to Android operating system. Though, it requires to be compiled on another computer with Android NDK, SDK and Java compiler. See the &#8220;INSTALL&#8221; file under java sub-folder of the source for details.<\/p>\n","protected":false},"author":1,"featured_media":36513,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[596,597],"class_list":["post-48198","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news","tag-emacs","tag-text-editor"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts\/48198","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/comments?post=48198"}],"version-history":[{"count":0,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts\/48198\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/media\/36513"}],"wp:attachment":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/media?parent=48198"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/categories?post=48198"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/tags?post=48198"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}