Bananymous
db7ffcf9d5
Kernel/Terminal: Add support for bracketed paste mode
...
This gets rid of annoying warnings when running some programs like bash
2025-11-18 05:40:36 +02:00
Bananymous
34bdcb12e5
Kernel: Fix termios and enter key handling
...
Enter key now produces expected \r which gets converted to \n by default
by the ICRNL input flag.
Also input flags are now handled always, not just when ICANON is set.
I don't know why I though ICANON should disable input handling
2025-08-19 16:23:30 +03:00
Bananymous
e8491b34b8
Kernel/LibC: Rework TIOC{G,S}WINSZ more linux like
...
Userspace can freely set terminal size, kernel just updates it when for
example new font is loaded. Also SIGWINCH is now sent by kernel instead
of userspace.
2025-06-28 19:40:54 +03:00
Bananymous
3283359ac8
Kernel: Cleanup ANSI DSR
2025-06-19 19:05:49 +03:00
Bananymous
9c86e5e54d
Kernel: Add ANSI SGR 39 and 49
...
Also debug log unimplemented ANSI SRGs, this makes finding missing
commonly used ANSI SGR codes more easy
2025-06-18 20:34:55 +03:00
Bananymous
b668173cba
Kernel: Fix pseudo terminal writability
2025-06-06 11:09:50 +03:00
Bananymous
cfeabc4580
Kernel/Terminal: Fix ANSI SGR 8 bit color parsing
2025-06-05 20:43:57 +03:00
Bananymous
f79db874bf
Kernel: Fix ANSI CSI 1J
...
I was accidentally clearing the whole screen when I needed to clear from
cursor to the end of the screen
2025-06-05 02:38:57 +03:00
Bananymous
8de19aff3c
Kernel/Terminal: Fix 24 bit ANSI SGR color parsing
2025-06-05 02:38:07 +03:00
Bananymous
4c0b7d44b4
Kernel: Enable ECHOE and ECHOK, support VKILL, fix VEOF
2025-06-02 16:26:53 +03:00
Bananymous
fb466b5af7
Kernel: use termios c_cc values instead of hardcoded characters
2025-06-02 15:54:11 +03:00
Bananymous
8ff9c030bf
Kernel: Add better termios support
...
I'm not sure if this is correct but at least it's better than before :)
2025-06-01 13:48:03 +03:00
Bananymous
a7bd4acd46
Kernel: Remove static variables from virtual tty
2025-05-13 10:16:21 +03:00
Bananymous
9f4cb5c4dd
Kernel: Make pseudo terminals not overwrite old data
...
If pseudo terminal buffer was filled, old implementation would overwrite
old data. This is bad if producer is capable of producing more data than
consumer can handle.
2025-04-23 22:03:53 +03:00
Bananymous
a8edb8870e
Kernel: Add support for 8bit and 24bit ANSI SGR
2025-04-23 22:03:53 +03:00
Bananymous
dabc3c6cc4
Kernel: Don't wrap cursor immediatly at cols()
...
This prevents unwanted scrolling when writing to bottom right cell
2025-04-23 22:03:53 +03:00
Bananymous
cc7c1ad30d
Kernel: Add per terminal palette for TerminalDriver
...
This allows better color approximation on text mode and in future will
allow user to possibly change the palette
2025-04-23 18:44:37 +03:00
Bananymous
20e17a28cf
Kernel: Fix \b handling
...
Don't clear the character, only move cursor backwards
2025-04-23 06:33:11 +03:00
Bananymous
28bf2d6374
Kernel/Terminal: Add support for ANSI DSR
2025-04-23 06:14:56 +03:00
Bananymous
8a00b53050
Kernel/Terminal: Fix ANSI SGR m for multiple values
2025-04-23 05:29:22 +03:00
Bananymous
85505b0482
Kernel: Fix ANSI SGR color invert
2025-04-18 17:31:46 +03:00
Bananymous
9258c73484
Kernel: Optimize VTTY cursor rendering
...
cursor is now only updated once after all consecutive `putchar`s are
handled.
2025-04-18 03:55:56 +03:00
Bananymous
40d1d20cd6
Kernel: Move cursor handling from TTY -> TerminalDriver
2025-04-18 02:43:41 +03:00
Bananymous
c0942d78cb
Kernel: Fix TTY ANSI ? handling
2025-04-18 02:42:49 +03:00
Bananymous
cef8779bf7
Kernel: Improve error handling when setting TTY font
2025-04-18 02:42:24 +03:00
Bananymous
554b13ac50
Kernel: Restructure terminal initialization
...
This is still very ugly and will be rewritten in the future :D
2025-04-18 01:19:59 +03:00
Bananymous
439fb57d88
Kernel: Fix ANSI CSI @ and b for VirtualTTY
2025-04-17 23:24:17 +03:00
Bananymous
faa5252191
Kernel: Fix TTY ANSI CSI m and prevent crash :)
2025-02-06 20:58:03 +02:00
Bananymous
d1c3d3d5aa
Kernel: Fix ANSI CSI L
...
With my new memcpy implementation this crashed. I have no idea how this
was not crashing before :D
2025-01-28 18:41:53 +02:00
Bananymous
12a37500b0
Kernel: Fix triple-fault in vitual tty
...
This was happening when printing non-utf8 data while having virtual tty
as the debug console.
2024-12-09 03:35:51 +02:00
Bananymous
51b6329c86
Kernel: Make backspace \b and delete 0x7F
...
This is what `vim` seems to expect and imo makes way more sense.
2024-12-05 17:34:37 +02:00
Bananymous
b89fc3fe87
Kernel: Implement ANSI SGR 7 to invert colors
...
This allows vim's visual selection to show up
2024-09-26 15:08:11 +03:00
Bananymous
8e08046519
Kernel: Add asserts about having locked TTY's write lock
...
This for some reason fixes booting on real hardware? :D
2024-09-18 00:56:48 +03:00
Bananymous
7c4b9218f2
Kernel: VirtualTTY now resets ansi state before printing anything
2024-08-25 17:56:06 +03:00
Bananymous
37cd4ed504
Kernel: Add support for CSI @, b, d to VirtualTerminal
2024-08-22 14:04:45 +03:00
Bananymous
723e458bd7
Kernel/Terminal: Update terminal color themes and fix TTY bright/dark
2024-08-12 21:15:55 +03:00
Bananymous
a5a097fa4a
Kernel/LibC: Add initial pseudo terminal support
...
This patch implements posix_openpt() and ptsname()
grantpt() and unlockpt() are left in LibC as stubs, as posix_openpt
currently does all of the needed work.
2024-08-11 01:02:59 +03:00
Bananymous
7e7c3a1bb3
Kernel: VirtualTTY now handles dark colors
...
I have seemingly forgot to add these before
2024-08-09 15:52:42 +03:00
Bananymous
e72424e01a
Kernel: Implement ANSI CSI M and fix ANSI CSI L
...
There are not maybe not correct, but work much better than the old ones
2024-08-05 15:53:01 +03:00
Bananymous
af78a2d080
Kernel: Implement ANSI CSI L for TTY
...
vim seems to be using this, so I decided its needed
2024-08-01 22:08:46 +03:00
Bananymous
7a0fb9a57f
Kernel: Fix TTY scroll clearing first and/or last characters from line
2024-07-16 22:49:49 +03:00
Bananymous
58fcd2b2fe
Kernel: Fix multi-interface USB device initialization
2024-07-16 22:29:18 +03:00
Bananymous
42237a3bc8
Kernel: Implement fast scrolling for TTY
2024-06-28 23:15:03 +03:00
Bananymous
67dfe0bcf3
BAN: Allow String::formatted to fail
2024-06-25 11:04:03 +03:00
Bananymous
0501f3bd99
Kernel: Move font code to its own library LibFont
2024-05-31 10:47:05 +03:00
Bananymous
d94f6388b7
Kernel: Fix all broken locks from new mutexes
2024-02-28 22:45:34 +02:00
Bananymous
9594ee8e47
Kernel: Start making device numbers unique for each device
2024-02-22 15:53:48 +02:00
Bananymous
dfe5a2d665
All: Cleanup all files
...
Add newline to end of files and remove whitespace from end of lines
2024-01-24 15:53:38 +02:00
Bananymous
96d831c31a
Kernel/LibC/Userspace: Implement chown and set tty owner on login
2024-01-02 22:19:38 +02:00
Bananymous
f21d4e794c
Kernel: Rework whole ATA driver structure
...
Make ATA driver more compatible when we are adding SATA support
2023-10-08 02:50:23 +03:00