Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
emacs GUI/pure-wayland fails from su - {anyone}[workaround]
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Other Things Gentoo
View previous topic :: View next topic  
Author Message
CaptainBlood
Advocate
Advocate


Joined: 24 Jan 2010
Posts: 3840

PostPosted: Fri Jun 14, 2024 10:05 pm    Post subject: emacs GUI/pure-wayland fails from su - {anyone}[workaround] Reply with quote

regular user runs emacs(pure-gtk) fine.
However after
Code:
su -
emacs GUI throws:
Code:
Gtk warning Can not open display:


Seems like context is altered enough for emacs to try to launch under X where no xwayland allowed here.

Quite unfortunate as EDITOR=emacs is involved here to edit /etc/portage files.
EDITOR="emacs -nw" as a workaround...

Any idea how to fix?

Thks 4 ur attention, interest & support
_________________
USE="-* ..." in /etc/portage/make.conf here, i.e. a countermeasure to portage implicit braces, belt & diaper paradigm
LT: "I've been doing a passable imitation of the Fontana di Trevi, except my medium is mucus. Sooo much mucus. "


Last edited by CaptainBlood on Wed Aug 14, 2024 11:33 am; edited 6 times in total
Back to top
View user's profile Send private message
CaptainBlood
Advocate
Advocate


Joined: 24 Jan 2010
Posts: 3840

PostPosted: Sat Jun 15, 2024 3:10 am    Post subject: Re: emacs/pure-wayland fails under root Reply with quote

CaptainBlood wrote:
Seems like context is altered enough for emacs to try to launch under X where no xwayland allowed here.

Could be a safety feature too.... :roll:

Thks 4 ur attention, interest & support
_________________
USE="-* ..." in /etc/portage/make.conf here, i.e. a countermeasure to portage implicit braces, belt & diaper paradigm
LT: "I've been doing a passable imitation of the Fontana di Trevi, except my medium is mucus. Sooo much mucus. "
Back to top
View user's profile Send private message
CaptainBlood
Advocate
Advocate


Joined: 24 Jan 2010
Posts: 3840

PostPosted: Sat Jun 15, 2024 6:17 am    Post subject: Re: emacs/pure-wayland fails under root Reply with quote

CaptainBlood wrote:
Could be a safety feature too.... :roll:

Well, not really:

When launching pure wayland session as root, emacs GUI runs fine.

Problem remains how to run emacs GUI from EDIT
Code:
su - {anyone}
, which runs fine in X.


Thks 4 ur attention, interest & support[/code]
_________________
USE="-* ..." in /etc/portage/make.conf here, i.e. a countermeasure to portage implicit braces, belt & diaper paradigm
LT: "I've been doing a passable imitation of the Fontana di Trevi, except my medium is mucus. Sooo much mucus. "
Back to top
View user's profile Send private message
sMueggli
Guru
Guru


Joined: 03 Sep 2022
Posts: 489

PostPosted: Sat Jun 15, 2024 8:38 am    Post subject: Reply with quote

The fix is: Do not run Emacs as user "root". You do not need to run an editor with elevated privileges. You just need elevated privileges to edit some files. You can run Emacs with normal user privileges and gain the elevated privileges with TRAMP (see https://www.gnu.org/software/tramp/#Inline-methods)
Back to top
View user's profile Send private message
CaptainBlood
Advocate
Advocate


Joined: 24 Jan 2010
Posts: 3840

PostPosted: Sat Jun 15, 2024 12:04 pm    Post subject: Reply with quote

@sMueggli,

As far as root account is concerned, I agree on GUI forbidden principle.

Title changed as any user account is concerned:

Assuming wayland session running for my_user account,
emacs GUI will run fine except if launched from terminal after running
Code:
su - my_user


This doesn't occur in X.

As far as /etc/portage is concerned, here are a few scripts with params to select file(s) to edit.
One file per package paradigm here, many lines within.

If an opened read only buffer by my_user could later gained writable status on demand, that would be fine

The alternative would be to port my scripts to elisp, which is a little far for my skills

Thks 4 ut attention, interest & support.
_________________
USE="-* ..." in /etc/portage/make.conf here, i.e. a countermeasure to portage implicit braces, belt & diaper paradigm
LT: "I've been doing a passable imitation of the Fontana di Trevi, except my medium is mucus. Sooo much mucus. "
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 22602

PostPosted: Sat Jun 15, 2024 1:57 pm    Post subject: Reply with quote

That only works in X11 because a PAM hook propagates the required state. On my systems, I disabled that hook (pam_xauth.so) because I had no need of it and disagreed with some of its hardcoded defaults. Therefore, for me, root shells created by /bin/su - cannot run X11 programs - and I like it that way. Presumably, you need an equivalent pam_waylandauth.so (which may or may not exist, and probably does not have that specific name even if it does exist) to get this working in Wayland.
Back to top
View user's profile Send private message
CaptainBlood
Advocate
Advocate


Joined: 24 Jan 2010
Posts: 3840

PostPosted: Sat Jun 15, 2024 2:06 pm    Post subject: Reply with quote

@Hu,

Nice clarifications,
I'm currently investigating TRAMP /su::<absolute file path> instead.
Once working ask expected,, I'd just need to move my /usr/local/sbin scripts to /usr/local/bin.

Thks 4 ur attention, injterest and support.
_________________
USE="-* ..." in /etc/portage/make.conf here, i.e. a countermeasure to portage implicit braces, belt & diaper paradigm
LT: "I've been doing a passable imitation of the Fontana di Trevi, except my medium is mucus. Sooo much mucus. "
Back to top
View user's profile Send private message
CaptainBlood
Advocate
Advocate


Joined: 24 Jan 2010
Posts: 3840

PostPosted: Wed Aug 14, 2024 10:48 am    Post subject: Reply with quote

Adding to non root init.el
Code:
(defun edit-current-file-as-root ()
  "Edit the file that is associated with the current buffer as root"
  (interactive)
  (let ((filep (buffer-file-name)))
    (if filep (find-file (concat "/sudo::" filep))
      (message "Current buffer does not have an associated file."))))
from WikEmacs,
then replacing as a preference
Code:
"/sudo::"
by
Code:
"/su::"
did the trick here:
It allows to grant write to a read only file buffer.

Reminder:
Code:
;; No TRAMP saved password file
(connection-local-set-profile-variables 'remote-without-auth-sources '((auth-sources . nil)))
(connection-local-set-profiles '(:application tramp) 'remote-without-auth-sources)
may be required depending your security standards.
If you did TRAMP prior to this, you may have a file somewhere containing CLEAR text PASSWORD(S).
Can't recall its name. Maybe .tramp located in emacs config directory, e.g. where active init.el lies...
You may want to delete it.

Note: I likely may be missing a smarter way to prevent this.:roll:

Thks 4 ur attention, interest & support.
_________________
USE="-* ..." in /etc/portage/make.conf here, i.e. a countermeasure to portage implicit braces, belt & diaper paradigm
LT: "I've been doing a passable imitation of the Fontana di Trevi, except my medium is mucus. Sooo much mucus. "
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Other Things Gentoo All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum