Frage

Ich Schreibe eine Konsolenanwendung, die Verwendung der F1-Taste (Hilfe).Leider, während die Konsole (KDE) nicht verwenden Sie diese Taste, Gnome-Terminal, damit Sie die F1-Taste wird unerreichbar für meine Anwendung.Ich glaube nicht, dass es einen Weg gibt, um zu erkennen, ob die F1-Taste ist bereits abgebildet in der GUI-Seite der Dinge (Gnome-Terminal), aber wenn es ist, die Antwort wird davon entbindet, diese Frage.:)

Ergo, meine nächste beste Wette ist zu versuchen, zu erkennen, ob ich die Ausführung in Gnome-Terminal.Gibt es eine Möglichkeit, das zu tun?Ich bin in Erster Linie daran interessiert, Lesen Sie dies innerhalb Ruby, aber wenn es getan werden kann, die über die shell-oder Umgebungsvariablen oder virtuelles Dateisystem (/proc, /dev, etc.) dann wird ausreichen.

Ich bin der Hoffnung, für einen zuverlässigen Weg, dies zu tun, aber ich kann Regeln für die "best guess" - Ansätze wie grepping die Umgebungsvariablen für Hinweise, die können lassen Sie mich davon ausgehen, dass das Gnome-Terminal ist die Verpackung-terminal.

Zusätzliche info:andere Tasten sind auch "gestohlen", die von Gnome-Terminal.Ich beabsichtige, eine gewisse informative Nachricht über alternative Schlüssel für Gnome-Benutzer.

War es hilfreich?

Lösung

Googleage hat ergeben, dass ich in der Lage könnte auf Gnome-Terminal verlassen, um die COLORUmgebungsVariable zu ‚gnome-terminal‘.

Andere Tipps

Für zsh:

[[ "$COLORTERM" == "gnome-terminal" ]] || [[ ${$(ps -p $(ps -p $$ -o ppid=) -o cmd=):t} == gnome-terminal* ]]

gnome-terminal verwendet $COLORTERM zu setzen, aber diese (in 3.12.0-67-g1d5c1b6) fallen gelassen wurde.

Normalerweise verwenden Sie TERMCAP info aka term. Dies sagt Ihnen, welche Art von Terminal Sie arbeiten mit und auch das, was die Tasten sind.

Es ist die Wahl des Benutzers und seit Gnome-Terminal meldet sich als wahrscheinlich eine Art von x-Begriff, wie Konsole wahrscheinlich der Fall ist, gibt es wahrscheinlich eine Möglichkeit für den Benutzer ein F1-Tastendruck zu erstellen. Daher vermute ich, dass die Anschlussfähigkeiten der beiden wird als gleichwertig zu melden.

Diese Untersuchung von Funktion Taste Escape-Codes könnte sein, Sie interessieren, ohne wirklich zu erklären, wie, wenn es überhaupt möglich ist, dass der GNOME-Terminal vorgenommen werden könnte, eine F1-Presse zu erzeugen. Das Denken des Mac OS X-Terminal ich wieder eine lange Zeit verwendet wird, fing es PageUp und Pagedown für die Bildlaufleiste, während Befehl PageUp und Befehl BildAb sie weitergegeben an das Endgerät über.

Eine ziemlich grobe Methode, wenn Sie an die Shell wie delegieren diese fühlen - sonst in C oder C ++, Sie haben durch Ihre / proc waten, wenn Sie eine haben:

ps x | grep `ps o ppid,fname | grep bash | grep -v grep | head -1 | awk '{print $1}'` | grep 'gnome-terminal' | wc -l

Wenn Sie von Ihrem eigenen Programm ausgeführt wird, durch das System () zum Beispiel können Sie mit zu ‚grep‘ Ihr Programm den Namen nicht ‚bash‘

Ich weiß, es ist definitiv "Hack wie ein Pirat";)

FWIW, ist dies eine Einstellung in gnome-terminal; Benutzer können bearbeiten gehen. -> Tastaturkürzel in den gnome-terminal-Menüs und die F1-Tastenkombination ändern oder löschen

Ich wähle einfach die $TERM für den terminal-emulator von meiner Wahl und fügen Sie einen alias für das laichen ein neues terminal im aktuellen Verzeichnis.

if [[ $TERM == 'xterm' ]] ; then
  alias nw='gnome-terminal --working-directory=$PWD'
fi
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top