[Workaround] MATE: Standard-Terminal-Wrapper von mutt

KDE, Gnome, Windowmanager, X11, Grafiktreiber und alles was dazu notwendig ist. Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
JueShire
Beiträge: 42
Registriert: 15.08.2008 19:26:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Frankfurt am Main

[Workaround] MATE: Standard-Terminal-Wrapper von mutt

Beitrag von JueShire » 15.02.2018 08:59:26

Hallo,

mein Problem: Aufruf von 'mutt' öffnet das Programm in 'xterm'.
Gewünschte Lösung: Aufruf von 'mutt' öffnet das Programm in 'mate-terminal(.wrapper)'.

Versuchte Lösungen:
- in MATE die Standard-Terminal-Applikation auf MATE-terminal setzen;
- mit 'update-alternatives' den Standard von 'x-terminal-emulator' auf 'mate-terminal' setzen;
- Umgebungvariable 'TERM' auf '/usr/bin/mate-terminal' setzen;
- '/usr/share/applications/mutt.desktop' auf Einstellungsmöglichkeiten checken (keine gefunden).

Leider alles erfolglos - 'mutt' wird immer noch in 'xterm' geöffnet. Hat jemand einen weiteren Lösungsvorschlag?

Gruß,
Jürgen
Zuletzt geändert von JueShire am 23.02.2018 12:35:40, insgesamt 1-mal geändert.

Benutzeravatar
smutbert
Moderator
Beiträge: 8315
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: MATE: Standard-Terminal-Wrapper von mutt

Beitrag von smutbert » 15.02.2018 10:22:54

Meiner Meinung nach hätte einer deiner beiden ersten Ansätze Abhilfe bringen sollen. Jedenfalls obliegt es mit dem "terminal=true" in der .desktop-Datei der Desktopumgebung den passenden Terminalemulator auszuwählen.

Die einfache (und häßliche) Lösung wäre es, die /usr/share/applications/mutt.deskop (?) nach ~/.local/share/applications zu kopieren und dort den Eintrag Exec=... so anzupassen

Code: Alles auswählen

Exec=mate-terminal -e mutt
oder vielleicht auch

Code: Alles auswählen

Exec=x-terminal-emulator -e mutt
(und das terminal=true zu entfernen).

Ansonsten könntest du, wenn es die Abhängigkeiten zulassen, auch einmal ausprobieren was passiert, wenn du Debianxterm deinstallierst. Weil das nicht immer ganz unproblematisch ist, hab ich mir einmal ein xterm-dummy-Paket mit Debianequivs gebaut, das xterm als Provides hatte und als einzigen Inhalt ein Shellskript namens /usr/local/bin/xterm (local damit es nicht mit dem richtigen xterm kollidieren kann, auch wenn es nicht schön ist), das lediglich x-terminal-emulator aufgerufen hat.

Benutzeravatar
JueShire
Beiträge: 42
Registriert: 15.08.2008 19:26:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Frankfurt am Main

Re: MATE: Standard-Terminal-Wrapper von mutt

Beitrag von JueShire » 15.02.2018 11:06:55

Ansonsten könntest du, wenn es die Abhängigkeiten zulassen, auch einmal ausprobieren was passiert, wenn du xterm deinstallierst
Beginnend hatte ich kein xterm installiert, sondern nur mate-terminal. Der Effekt war, dass mutt gar nicht startete, weil es kein Terminal fand.

Ich bin nun aber einen Schritt weiter. Nachdem ich die Umgebungsvariable händisch auf TERM=/usr/bin/mate-terminal gesetzt habe, bekomme ich für einen minimalen Augenblick folgendes eingeblendet:

Code: Alles auswählen

E558: Terminal not found in terminfo
'/usr/bin/mate-terminal' not known. Available builtin terminals are:
und dann folgt eine Aufzählung.

Die man-page von terminfo ist aber so lang, dass ich mir das für ein Wochenende aufsparen muss...
Bisweilen setze ich TERM auf xterm zurück, und manipuliere xterm über .Xresources.

Benutzeravatar
smutbert
Moderator
Beiträge: 8315
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: MATE: Standard-Terminal-Wrapper von mutt

Beitrag von smutbert » 15.02.2018 11:18:26

$TERM und terminfo dienen ja afaik dazu, dass Programme erkennen (können) auf was für einer Art Terminal sie laufen, also welche Fähigkeiten das Terminal besitzt. Bei gnome-terminal ist der Wert auf xterm-256color gesetzt und ich vermute sehr stark, dass Werte wie xterm oder xterm-256color auch für mate-terminal nicht verkehrt sind, das hat aber nichts mit der Auswahl des Terminalemulators zu tun, die ja schon längst stattgefunden haben muss, wenn ein Programm, das im Terminal läuft terminfo verwendet oder direkt $TERM auswerten will.
Ich vermute du hast nur erreicht, dass mutt/terminfo nicht erkennt auf was für einem terminal es läuft und daher die Fehlermeldung von terminfo erhalten.

Ich muss mir zum Testen erst einen zweiten Terminalemulator installieren…

KP97
Beiträge: 3403
Registriert: 01.02.2013 15:07:36

Re: MATE: Standard-Terminal-Wrapper von mutt

Beitrag von KP97 » 15.02.2018 17:33:53

Als schnelle (dirty) Lösung könntest Du in /usr/bin xterm auskommentieren und einen Link von mate-terminal auf xterm setzen.
Eigentlich kann man aber xterm entfernen, wenn ein weiteres terminal installiert ist.
Vielleicht hat @smutbert aber noch eine "ordentliche" Lösung.

Benutzeravatar
JueShire
Beiträge: 42
Registriert: 15.08.2008 19:26:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Frankfurt am Main

Re: MATE: Standard-Terminal-Wrapper von mutt

Beitrag von JueShire » 19.02.2018 12:31:45

Danke für die bisherigen Hinweise. Eine quick-and-dirty-Lösung brauche ich nicht, da ich muttt bis auf weiteres im xterm nutze.

Aber mich interessiert die Ursache, und MATE scheint irgendein Problem mit den Umgebungsvariablen zu haben, denn ein

Code: Alles auswählen

echo $TERM
ergibt immer

Code: Alles auswählen

xterm
und zwar völlig egal, wie ich die Umgebungsvariablen zu setzen versuche - ich habe es über .bash_profile, .profile, .xsessionrc und sogar über /etc/environment versucht.
Kann mir irgendjemand sagen, welche Einstellungen MATE beim Start (über lightdm) liest resp. wo ich diese Informationen finde?

Benutzeravatar
smutbert
Moderator
Beiträge: 8315
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: MATE: Standard-Terminal-Wrapper von mutt

Beitrag von smutbert » 19.02.2018 15:15:27

xterm ist für mate-terminal (und viele andere) ja auch ein komplett richtiger Wert!

Ich meine es schon geschrieben zu haben, aber vielleicht habe ich mich ungeschickt ausgedrückt: $TERM wird normalerweise überhaupt erst vom Terminalemulator gesetzt, damit die shell und Anwendungen, die im Terminal laufen bzw. gestartet werden überhaupt etwas über die Eigenschaften und Fähigkeiten des Terminals in Erfahrung bringen können.

Bei der Auswahl des zu startenden Terminals hat $TERM seine Finger bestimmt nicht im Spiel.


Ich hab diesen Thread in der Zwischenzeit allerdings komplett vergessen... ich werde versuchen das mit mate-terminal heute noch bei mir auszuprobieren.

Benutzeravatar
smutbert
Moderator
Beiträge: 8315
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: MATE: Standard-Terminal-Wrapper von mutt

Beitrag von smutbert » 19.02.2018 23:16:43

So jetzt habe ich es auch ausprobiert:

Tatsächlich kann man einstellen was man will, es ändert sich nichts. Bei mir wird hartnäckig gnome-terminal statt mate-terminal gestartet und ich habe Hinweise gefunden, dass sich mate schon mindestens seit gut 5 Jahren so verhält: https://forums.linuxmint.com/viewtopic.php?t=113734
Lösungsvorschläge gibt es viele im Netz, aber keine ordentlichen. Nur Workarounds, die entweder darin bestehen alle Terminalemulatoren bis auf den, den man nutzen will, zu deinstallieren und/oder einen symbolischen Link namens xterm auf das gewünschte Terminal zu erstellen oder die .desktop-Datei (von mutt) anzupassen.

Mein bevorzugter Workaround bestünde in

Code: Alles auswählen

# ln -s /etc/alternatives/x-terminal-emulator /usr/local/bin/xterm
allerdings habe ich vergessen zu testen ob das unter Mate auch so funktioniert.

Benutzeravatar
JueShire
Beiträge: 42
Registriert: 15.08.2008 19:26:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Frankfurt am Main

Re: MATE: Standard-Terminal-Wrapper von mutt

Beitrag von JueShire » 23.02.2018 12:35:07

Danke für die Tests und Recherche.

Als einfacher Workaround, der keine Effekte auf andere Anwendungen hat, hat sich eine Anpassung von
/usr/share/applications/mutt.desktop
erwiesen, in dem dort

Code: Alles auswählen

Exec=mate-terminal -e mutt
und

Code: Alles auswählen

Terminal=false
gesetzt wird.

jkoerner

Re: [Workaround] MATE: Standard-Terminal-Wrapper von mutt

Beitrag von jkoerner » 23.02.2018 20:58:05

Ich bin mir zwar nicht ganz sicher, aber es kann sein, daß beim nächsten update von mutt deine Einstellungen verschwunden sind. Ich habe meine diesbezüglichen Einstellungen unter ~.local/share/applications/exo-mail-reader.desktop festgelegt*. Die Datei in /usr/share/applications/ lösche ich nach jedem mutt-update.
* hat geschrieben:[Desktop Entry]
Hidden=false
Exec=/usr/bin/urxvt -geometry 110x55 -e mutt -f ~/Mail/mail/
Icon=mutt
Name[de_DE]=Mutt
Type=Application
NoDisplay=false
Version=1.0
StartupNotify=false
Comment=E-Mail-Programm
Categories=Network;X-XFCE;X-Xfce-Toplevel;
Terminal=false
Name=Mutt
Icon[de_DE]=mutt
Comment[de_DE]=E-Mail-Programm

Benutzeravatar
smutbert
Moderator
Beiträge: 8315
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: [Workaround] MATE: Standard-Terminal-Wrapper von mutt

Beitrag von smutbert » 23.02.2018 21:02:42

So ähnlich hätte ich diesen Workaround auch vorgeschlagen:
Wenn du die Anpassung in einer Kopie der Datei in »~/.local/share/applications/mutt.desktop« ignoriert das DE für diesen Benutzer die systemweite Datei »/usr/share/applications/mutt.desktop« – bei Updates musst du also nichts unternehmen, um deine Änderungen beizubehalten.

Antworten