Tastendruck vorgaukeln per Skript

mo_no

mo_no

Linux User seit 2.0.35
Hallo!
Gibt es eine Möglichkeit in einem Skript einen Tastendruck vorzugaukeln?

Praktisch soll das ganze so aussehen, dass einmal per Strg + Alt + F2 auf die Konsole 2
gewechselt wird und anschließend wieder per Strg + Alt + F7 wieder zum X-Server.
Dieses Skript werde ich dann in die ~/.xsession schreiben.
Das ganze werde ich bei dem Rechner eines Bekannten anwenden,
da der X11 Vesa Treiber erst nach dieser Prozedur sauber läuft.
(Andere Treiber laufen gar nicht; der fbdev kommt nicht in Frage!)

mo_no
 
......und zwischen <Strg>+<Alt>+<F2> und <Strg>+<Alt>+<F7> passiert garnichts? Dann solltest du ja auch gleich <Strg>+<Alt>+<Backspace> machen können. Das scheint mir alles andere als eine saubere Lösung zu sein.

Da wäre eigentlich zu klären, warum der X-Server beim ersten Boot nicht sauber startet. Fehlen beim ersten Boot vielleicht Treiber, die erst nach einem X-Server Neustart vorhanden sind? Wenn ja, dann vielleicht die fehlenden Module vor X-Server Start mit einem Bootscript laden.

Hans
 
oder nach dem hochfahren (init 5) ein init 3 && init 5 ;)
 
Eure beiden Tipps würden nichts bringen.
Der X-Server darf nicht beendet werden!!!
Es muss einfach einmal zwischen X11 ==> Console ==> X11
geschaltet werden und dann ist die Bilddarstellung gut.

Mit dem fbdev Treiber läufts besser, allerdings laufen dann einige Programme (u.a. Spiele)
nicht im Vollbildmodus.

Deshalb wäre es schön, wenn man den Tastendruck automatisieren könnte.
 
Ich glaube nicht, dass man so etwas mit einem einfachen Shell-Script erledigen kann. Ich schaue mal gerade ein paar Programmiererforen durch und gucke mal, ob ich was entdecken kann... interessiert mich nämlich gerade auch. ;)

Mfg, Lord Kefir

[edit]
Mist... mit der Win32-Api wäre das so einfach... :devil:
[/edit]
 
Zuletzt bearbeitet:
ist zwar auch keine direkte antwort auf deine frage, aber probier mal:

xrefresh

Code:
   Xrefresh  is  a simple X program that causes all or part of your screen
       to be repainted.  This is useful when system messages  have  messed  up
       your  screen.  Xrefresh maps a window on top of the desired area of the
       screen and then immediately unmaps it, causing  refresh  events  to  be
       sent  to  all applications.  By default, a window with no background is
       used, causing all applications to repaint ``smoothly.''   However,  the
       various options can be used to indicate that a solid background (of any
       color) or the root window background should be used instead.

wenn mich nicht alles täuscht, sollte das nen ähnlichen effekt haben, wie das wechseln zwischen "konsole" und x-server.

btw. ich hab vor einiger zeit übrigens auch mal nach nem programm, das maus und tastatur simulieren kann gesucht, hab aber nix gefunden.
für windows gibts aber einige solcher programme (im namen kommt glaub ich immer "makro" vor). z.b. sollen sich mit diesen programmen bestimmte abläufe automatisieren lassen.
 
Ist bei KDE nicht irgendsowas dabei?
*Ma nachschau*

EDIT:
Ok, hab mich vertan, das Ding von KDE kann nur Mausklicks simulieren...
 
Zuletzt bearbeitet:
NaRF schrieb:
ist zwar auch keine direkte antwort auf deine frage, aber
btw. ich hab vor einiger zeit übrigens auch mal nach nem programm, das maus und tastatur simulieren kann gesucht, hab aber nix gefunden.
für windows gibts aber einige solcher programme (im namen kommt glaub ich immer "makro" vor). z.b. sollen sich mit diesen programmen bestimmte abläufe automatisieren lassen.

Das liegt wohl daran, dass es unter Windows eine eindeutige API gibt - unter Linux muss man ja erst einmal überlegen, ob ein X-Server verwendet wird oder nicht etc.

Die einzige Lösung wäre ein hardwarenahes Programm. Mit Standard-C lässt sich so etwas nicht realisieren. Wäre ja eigentlich mal ein Anreiz für mich, mich endlich mal mit solch einem Thema zu befassen... ;)

Mfg, Lord Kefir
 
Ich benutze SuspendToDisk mittels hibernate. Da gibts eine hibernate-Option namens SwitchToTextMode. Wenn ich dann von X aus ein hibernate veranlasse, wird erst auf die Textkonsole gewechselt und dann der Rechner eingefroren. Beim wiederaufwachen geht alles rückwärts.

Wenn jemand Zeit und Lust nachzuschauen wie die das machen, man müsste ja nur den ganzen hibernate-Vorgang dazwischen weglassen.
 
Also Lust hätte ich schon... nur gerade wenig Zeit. Denke aber mal, dass ich in den nächsten zwei Tagen zwischendurch dazu kommen könnte :)

Mfg, Lord Kefir
 
wieso nicht einfach als root:
Code:
chvt 2 && sleep 2 && chvt 7
eingeben? (vielleicht noch die pause anpassen...)
Oder hab' ich da was falsch verstanden?

Tipp: solte es das sein was du suchst, einfach
Code:
sleep 10 && chvt 2 && sleep 2 && chvt 7
in rc.local (<- natürlich abhängig vom rc-System) eintragen. Die 10 Sekunden sollten locker reichen bis X gestartet ist.
 
Zuletzt bearbeitet:
chvt :hilfe2:

oops, den kannte ich ja noch nicht. Man lernt nie aus.

Hans
 
@ CMW

Hey cool!
Ich kannte den Befehl chvt noch gar nicht.
Dies ist natürlich die beste und eleganteste Lösung! DANKE! ;)
 
Mist, habe heute Morgen extra einen Lösungsansatz in C zusammengefrickelt... naja, ist ja auch egal ;)

Mfg, Lord Kefir
 

Ähnliche Themen

Keine grafische Oberfläche (Debian Installation)

Ubuntu X / dbus problem

Zurück
Oben