1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 15:27:35 +00:00

Virtual consoles kinda work!

We now make three VirtualConsoles at boot: tty0, tty1, and tty2.
We launch an instance of /bin/sh in each one.
You switch between them with Alt+1/2/3

How very very cool :^)
This commit is contained in:
Andreas Kling 2018-10-30 15:33:37 +01:00
parent 68739dc43e
commit 7a7956a595
24 changed files with 251 additions and 103 deletions

View file

@ -19,17 +19,25 @@ public:
private:
// ^KeyboardClient
void onKeyPress(byte) override;
virtual void onKeyPress(byte) override;
// ^ConsoleImplementation
void onConsoleReceive(byte) override;
virtual void onConsoleReceive(byte) override;
void onChar(byte);
// ^TTY
virtual void onTTYWrite(byte) override;
virtual String ttyName() const override;
void onChar(byte, bool shouldEmit);
byte* m_buffer;
unsigned m_index;
bool m_active { false };
void scrollUp();
void setCursor(unsigned row, unsigned column);
void putCharacterAt(unsigned row, unsigned column, byte ch);
void escape$H(const Vector<unsigned>&);
void escape$J(const Vector<unsigned>&);
void escape$m(const Vector<unsigned>&);
@ -56,6 +64,4 @@ private:
EscapeState m_escState { Normal };
Vector<byte> m_parameters;
Vector<byte> m_intermediates;
};