all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#74134: 29.4; emacs-pgtk and emacs-gtk-x11 does not react the same way to c-s-u
@ 2024-10-31 12:19 joakim
  2024-10-31 14:34 ` Eli Zaretskii
  0 siblings, 1 reply; 3+ messages in thread
From: joakim @ 2024-10-31 12:19 UTC (permalink / raw)
  To: 74134


I would like to be able to enter unicode chars the same way you do in
other applications under wayland or x11, using control shift u + 4 hex
chars ret.

In emacs-pgtk it seems like c-s-u tries to do this, because a little U
with underscore appears, same as in firefox, but then you cant type the
hex code.

In emacs-gtk-x11, c-s-u works as advertized in the emacs manual at
least, it runs universal-argument.

I would prefer it if c-s-u could be configuered to enter unicode same as
in other applications, if possible.

Regards
/Joakim


In GNU Emacs 29.4 (build 1, x86_64-redhat-linux-gnu, GTK+ Version
 3.24.43, cairo version 1.18.0) of 2024-10-10 built on
 4825182c94fc4195b65c80c30f523a16
System Description: Fedora Linux 41 (Workstation Edition)

Configured using:
 'configure --build=x86_64-redhat-linux-gnu
 --host=x86_64-redhat-linux-gnu --program-prefix=
 --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr
 --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
 --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64
 --libexecdir=/usr/libexec --localstatedir=/var --runstatedir=/run
 --sharedstatedir=/var/lib --mandir=/usr/share/man
 --infodir=/usr/share/info --with-cairo --with-dbus --with-gif
 --with-gpm=no --with-harfbuzz --with-jpeg --with-json --with-modules
 --with-native-compilation=aot --with-pgtk --with-png --with-rsvg
 --with-sqlite3 --with-tiff --with-tree-sitter --with-webp --with-xpm
 build_alias=x86_64-redhat-linux-gnu host_alias=x86_64-redhat-linux-gnu
 CC=gcc 'CFLAGS=-DMAIL_USE_LOCKF -O2 -flto=auto -ffat-lto-objects
 -fexceptions -g -grecord-gcc-switches -pipe -Wall
 -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3
 -Wp,-D_GLIBCXX_ASSERTIONS
 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong
 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64
 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection
 -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer
 -mno-omit-leaf-frame-pointer ' 'LDFLAGS=-Wl,-z,relro -Wl,--as-needed
 -Wl,-z,pack-relative-relocs -Wl,-z,now
 -specs=/usr/lib/rpm/redhat/redhat-hardened-ld
 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1
 -specs=/usr/lib/rpm/redhat/redhat-package-notes '
 PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig CXX=g++
 'CXXFLAGS=-O2 -flto=auto -ffat-lto-objects -fexceptions -g
 -grecord-gcc-switches -pipe -Wall -Werror=format-security
 -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS
 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong
 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64
 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection
 -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer
 -mno-omit-leaf-frame-pointer ''

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY
PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM GTK3 ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Messages

Minor modes in effect:
  which-key-mode: t
  recentf-mode: t
  desktop-save-mode: t
  keyfreq-autosave-mode: t
  keyfreq-mode: t
  winner-mode: t
  projectile-mode: t
  smartparens-global-strict-mode: t
  global-highlight-parentheses-mode: t
  highlight-parentheses-mode: t
  company-quickhelp-mode: t
  company-quickhelp-local-mode: t
  global-company-mode: t
  company-mode: t
  shx-global-mode: t
  erc-stamp-mode: t
  diredfl-global-mode: t
  zen-reward-mode: t
  repeat-mode: t
  magit-gptcommit-mode: t
  magit-auto-revert-mode: t
  global-git-commit-mode: t
  server-mode: t
  selected-window-accent-mode: t
  gcmh-mode: t
  global-treesit-auto-mode: t
  savehist-mode: t
  vertico-mode: t
  marginalia-mode: t
  shell-dirtrack-mode: t
  async-bytecomp-package-mode: t
  override-global-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  global-prettify-symbols-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  abbrev-mode: t

Load-path shadows:
/home/joakim/.emacs.d/elpa/transient-20241008.1824/transient hides /usr/share/emacs/29.4/lisp/transient
/home/joakim/.emacs.d/elpa/use-package-ensure-system-package-20221209.2013/use-package-ensure-system-package hides /usr/share/emacs/29.4/lisp/use-package/use-package-ensure-system-package

Features:
(shadow mail-extr gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime
smime gnutls dig emacsbug mule-util company-oddmuse company-keywords
company-etags etags fileloop company-gtags company-dabbrev-code
company-dabbrev company-files company-clang company-capf company-cmake
company-semantic company-template company-bbdb init which-key spray
face-remap wgrep memory-usage recentf tree-widget desktop frameset
keyfreq zygospore winner ace-window avy restclient nginx-mode yaml-mode
dockerfile-mode sh-script smie executable geiser hy-mode hy-jedhy
hy-shell hy-font-lock hy-base autodisass-java-bytecode ad-javap-mode
meghanada projectile ibuf-ext ibuffer ibuffer-loaddefs
smartparens-config smartparens-rst smartparens-markdown smartparens-org
smartparens-text smartparens-python smartparens-ess smartparens loadhist
highlight-parentheses company-quickhelp pos-tip company shx
bash-completion ob-cypher n4js cypher-mode cmake-mode rst
use-package-ensure-system-package use-package use-package-delight
use-package-diminish system-packages printing ps-print ps-print-loaddefs
lpr gnus-alias nnmairix nnml gnus-sum shr pixel-fill kinsoku url-file
svg dom gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap
nnmail mail-source utf7 gnus-spec gnus-int gnus-range gnus-win gnus nnoo
nnheader range sort bbdb bbdb-site timezone erc-match erc-ezbounce
erc-hl-nicks erc-button erc-fill erc-stamp erc-goodies erc erc-backend
erc-networks erc-common erc-compat erc-loaddefs pastebin secrets dbus
xml diredfl popup sauron disp-table emms-setup emms emms-compat
casual-dired casual-dired-settings dired-aux casual-dired-version
casual-dired-sort-by casual-dired-utils casual-dired-variables elint
checkdoc casual-lib casual-lib-version image-dired image-dired-tags
image-dired-external image-dired-util image-mode exif wdired dired-x
repeat llm-openai llm-provider-utils llm-models llm-request-plz url-http
url-auth url-gw nsm plz-event-source plz-media-type plz magit-gptcommit
llm magit-bookmark magit-submodule magit-blame magit-stash magit-reflog
magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote
magit-commit magit-sequence magit-notes magit-worktree magit-tag
magit-merge magit-branch magit-reset magit-files magit-refs magit-status
magit magit-repos magit-apply magit-wip magit-log which-func imenu
magit-diff smerge-mode diff diff-mode magit-core magit-autorevert
magit-margin magit-transient magit-process git-commit with-editor server
log-edit message sendmail yank-media puny rfc822 mml mml-sec epa epg
rfc6068 epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse
rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev
mail-utils gmm-utils mailheader pcvs-util add-log magit-mode benchmark
magit-git magit-base magit-section cursor-sensor crm
selected-window-accent-mode dired-quick-sort hydra lv ls-lisp pdfgrep
grep syncthing syncthing-update syncthing-watcher syncthing-network
syncthing-errors syncthing-keyboard syncthing-draw let-alist
syncthing-faces syncthing-common syncthing-state syncthing-constants
wid-edit syncthing-custom syncthing-groups autorevert filenotify gcmh ag
vc-svn find-dired dired dired-loaddefs csound-mode csound-manual-lookup
csound-skeleton autoinsert csound-indentation csound-repl highlight
facemenu csound-repl-interaction shut-up multi csound-score
csound-font-lock csound-eldoc csound-util csound-opcodes transient
treesit-auto orderless savehist vertico marginalia consult bookmark pp
detached-init modus-operandi-theme modus-themes highlight-indent-guides
ada-mode wisi-process-parse align ada-skel wisi-skel skeleton
ada-indent-user-options ada-core uniquify-files gnat-compiler wisi-prj
wisi wisi-fringe wisi-parse-common semantic/lex semantic/fw mode-local
find-file ob-shell ob-python python treesit ob-julia ob-ess-julia
ess-julia julia-mode julia-mode-latexsubs ess-r-mode ess-r-flymake
ess-r-xref xref ess-trns ess-r-package ess-r-completion ess-roxy
ess-r-syntax ess-rd hideshow ess-s-lang ess-help ess-mode ess-inf
ess-tracebug derived ess lisp-mnt ess-utils ess-custom tramp
tramp-loaddefs trampver tramp-integration files-x tramp-compat shell
parse-time iso8601 flymake-proc flymake project compile
text-property-search thingatpt helm-org-rifle helm helm-global-bindings
helm-core async-bytecomp helm-source helm-multi-match helm-lib async f
ob-gnuplot ob-plantuml ob-dot general org-ql ts compat compat-30
org-duration peg org-habit org-agenda org-element org-persist xdg org-id
avl-tree generator org-refile kurecolor dash s color edmacro kmacro
use-package-bind-key bind-key yasnippet-snippets yasnippet outshine
advice outshine-org-cmds outorg easy-mmode org ob ob-tangle ob-ref
ob-lob ob-table ob-exp org-macro org-src ob-comint org-pcomplete
org-list org-footnote org-faces org-entities time-date ob-emacs-lisp
ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys
oc org-loaddefs find-func cal-menu calendar cal-loaddefs org-version
org-compat org-macs format-spec noutline outline cl flyspell ispell
finder-inf boxquote rect use-package-ensure use-package-core comp
comp-cstr warnings icons cl-extra help-mode pcomplete comint ansi-osc
ansi-color ring generic-x lfe-start ace-window-autoloads
ada-mode-autoloads ag-autoloads autodisass-java-bytecode-autoloads
bash-completion-autoloads bbdb-autoloads boxquote-autoloads
calfw-autoloads calfw-org-autoloads casual-dired-autoloads
casual-lib-autoloads char-menu-autoloads avy-menu-autoloads
avy-autoloads charmap-autoloads cider-autoloads clojure-mode-autoloads
cmake-mode-autoloads combobulate-autoloads company-quickhelp-autoloads
csound-mode-autoloads detached-autoloads dired-quick-sort-autoloads
diredfl-autoloads dockerfile-mode-autoloads editorconfig-autoloads
embark-consult-autoloads consult-autoloads embark-autoloads
emms-autoloads erc-hl-nicks-autoloads expand-region-autoloads
flymake-kondor-autoloads gcmh-autoloads geiser-autoloads
general-autoloads gnat-compiler-autoloads gnus-alias-autoloads
go-mode-autoloads groovy-mode-autoloads haskell-mode-autoloads
helm-org-autoloads helm-easymenu helm-org-rifle-autoloads helm-autoloads
helm-core-autoloads async-autoloads helpful-autoloads
elisp-refs-autoloads highlight-autoloads
highlight-indent-guides-autoloads highlight-parentheses-autoloads
hy-mode-autoloads hydra-autoloads ivy-yasnippet-autoloads ivy-autoloads
js2-mode-autoloads jupyter-autoloads keyfreq-autoloads
kotlin-mode-autoloads kurecolor-autoloads lua-mode-autoloads
lv-autoloads magit-gptcommit-autoloads llm-autoloads magit-autoloads
pcase marginalia-autoloads markdown-mode-autoloads meghanada-autoloads
flycheck-autoloads company-autoloads memory-usage-autoloads
multi-autoloads multitran-autoloads n4js-autoloads nginx-mode-autoloads
ob-cypher-autoloads dash-functional-autoloads cypher-mode-autoloads
ob-ess-julia-autoloads julia-mode-autoloads ess-autoloads
orderless-autoloads org-ai-autoloads org-ql-autoloads f-autoloads
org-roam-autoloads magit-section-autoloads emacsql-autoloads
org-super-agenda-autoloads ht-autoloads origami-autoloads
outshine-autoloads outorg-autoloads ov-autoloads ox-hugo-autoloads
ox-reveal-autoloads parseedn-autoloads parseclj-autoloads
pastebin-autoloads pdfgrep-autoloads peg-autoloads
plz-event-source-autoloads plz-media-type-autoloads plz-autoloads
popup-autoloads pos-tip-autoloads projectile-autoloads
protobuf-mode-autoloads queue-autoloads restclient-autoloads
rust-mode-autoloads sauron-autoloads
selected-window-accent-mode-autoloads sesman-autoloads shut-up-autoloads
shx-autoloads simple-httpd-autoloads smartparens-autoloads
spinner-autoloads spray-autoloads syncthing-autoloads tomelr-autoloads
transient-autoloads transient-showcase-autoloads treesit-auto-autoloads
ts-autoloads s-autoloads dash-autoloads tuareg-autoloads rx
caml-autoloads uniquify-files-autoloads
use-package-ensure-system-package-autoloads system-packages-autoloads
vertico-autoloads webpaste-autoloads request-autoloads
websocket-autoloads wfnames-autoloads wgrep-autoloads
which-key-autoloads wiki-summary-autoloads wisi-autoloads
with-editor-autoloads info compat-autoloads yaml-mode-autoloads
yasnippet-snippets-autoloads yasnippet-autoloads zmq-autoloads
zygospore-autoloads package browse-url url url-proxy url-privacy
url-expand url-methods url-history url-cookie generate-lisp-file
url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq
eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv
bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip
cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode mwheel term/pgtk-win pgtk-win term/common-win pgtk-dnd
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq
simple cl-generic indonesian philippine cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button
loaddefs theme-loaddefs faces cus-face macroexp files window
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget keymap hashtable-print-readable backquote threads dbusbind
inotify dynamic-setting system-font-setting font-render-setting cairo
gtk pgtk multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 1264979 1755608)
 (symbols 48 66097 1396)
 (strings 32 298878 95845)
 (string-bytes 1 11361094)
 (vectors 16 90426)
 (vector-slots 8 1761510 1269568)
 (floats 8 1161 2537)
 (intervals 56 948 162)
 (buffers 984 12))
-- 
Joakim Verona
joakim@verona.se





^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#74134: 29.4; emacs-pgtk and emacs-gtk-x11 does not react the same way to c-s-u
  2024-10-31 12:19 bug#74134: 29.4; emacs-pgtk and emacs-gtk-x11 does not react the same way to c-s-u joakim
@ 2024-10-31 14:34 ` Eli Zaretskii
  2024-10-31 19:39   ` joakim
  0 siblings, 1 reply; 3+ messages in thread
From: Eli Zaretskii @ 2024-10-31 14:34 UTC (permalink / raw)
  To: joakim, Po Lu; +Cc: 74134

> From: joakim@verona.se
> Date: Thu, 31 Oct 2024 13:19:40 +0100
> 
> 
> I would like to be able to enter unicode chars the same way you do in
> other applications under wayland or x11, using control shift u + 4 hex
> chars ret.
> 
> In emacs-pgtk it seems like c-s-u tries to do this, because a little U
> with underscore appears, same as in firefox, but then you cant type the
> hex code.
> 
> In emacs-gtk-x11, c-s-u works as advertized in the emacs manual at
> least, it runs universal-argument.
> 
> I would prefer it if c-s-u could be configuered to enter unicode same as
> in other applications, if possible.

Isn't this the following known issue from PROBLEMS?

  ** Certain keys such as 'C-S-u' are not reported correctly.

  Some keys with modifiers such as Shift and Control might not be
  reported correctly due to incorrectly written GTK input method
  modules.  This is known to happen to 'C-S-u' and 'C->', which are
  misreported as 'C-u' and '>'.

  To disable the use of GTK input methods, evaluate:

    (pgtk-use-im-context nil)

  This will also cause system input methods and features such as the
  Compose key to stop working.

  On X Windows, users should not use Emacs configured with PGTK, since
  this and many other problems do not exist on the regular X builds.





^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#74134: 29.4; emacs-pgtk and emacs-gtk-x11 does not react the same way to c-s-u
  2024-10-31 14:34 ` Eli Zaretskii
@ 2024-10-31 19:39   ` joakim
  0 siblings, 0 replies; 3+ messages in thread
From: joakim @ 2024-10-31 19:39 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Po Lu, 74134

Eli Zaretskii <eliz@gnu.org> writes:

>> From: joakim@verona.se
>> Date: Thu, 31 Oct 2024 13:19:40 +0100
>> 
>> 
>> I would like to be able to enter unicode chars the same way you do in
>> other applications under wayland or x11, using control shift u + 4 hex
>> chars ret.
>> 
>> In emacs-pgtk it seems like c-s-u tries to do this, because a little U
>> with underscore appears, same as in firefox, but then you cant type the
>> hex code.
>> 
>> In emacs-gtk-x11, c-s-u works as advertized in the emacs manual at
>> least, it runs universal-argument.
>> 
>> I would prefer it if c-s-u could be configuered to enter unicode same as
>> in other applications, if possible.
>
> Isn't this the following known issue from PROBLEMS?
>
>   ** Certain keys such as 'C-S-u' are not reported correctly.
>
>   Some keys with modifiers such as Shift and Control might not be
>   reported correctly due to incorrectly written GTK input method
>   modules.  This is known to happen to 'C-S-u' and 'C->', which are
>   misreported as 'C-u' and '>'.
>
>   To disable the use of GTK input methods, evaluate:
>
>     (pgtk-use-im-context nil)
>
>   This will also cause system input methods and features such as the
>   Compose key to stop working.
>
>   On X Windows, users should not use Emacs configured with PGTK, since
>   this and many other problems do not exist on the regular X builds.

Thanks!

    (pgtk-use-im-context nil)

inhibited the broken gtk input method c-s-u behaviour, and now the code below can be
made to emulate the behaviour in other applications.


;; enable standard linux unicode input
(define-key global-map (kbd "C-S-u") 'read-unicode-char)

(defun read-unicode-char (c1 c2 c3 c4 _trailing_space_ignored)
  "Convert unicode input C1 C2 C3 C4 to the corresponding insert char call."
  (interactive "c\nc\nc\nc\nc")
  (insert-char (string-to-number (format "%c%c%c%c" c1 c2 c3 c4) 16)))

PS
I'm using Sway/Wayland and emacs-pgtk looks better than emacs-gtk-x11
there. Maybe I'll go back to X11 when the novelty of Sway faded.




-- 
Joakim Verona
joakim@verona.se





^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-10-31 19:39 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-31 12:19 bug#74134: 29.4; emacs-pgtk and emacs-gtk-x11 does not react the same way to c-s-u joakim
2024-10-31 14:34 ` Eli Zaretskii
2024-10-31 19:39   ` joakim

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.