Bananymous
4f7828bab9
Shell: Allow escaping spaces in commands
2024-10-07 01:44:44 +03:00
Bananymous
ae073a336d
Shell: Move builtin commands to a hash map
...
This allows accessing builtin commands outside of `execute_builtin`
2024-10-07 01:44:44 +03:00
Bananymous
4f3c05851c
Shell: Expand ~ to home if its at the start of non quoted argument
2024-10-06 01:38:43 +03:00
Bananymous
4b13055125
Shell: Make builtin exit command read exit value from argument
...
Shell used to unconditionally return with exit code of 0
2024-10-06 01:24:34 +03:00
Bananymous
d542cd811d
Shell: Add support for &&, || and ;
2024-10-06 01:24:24 +03:00
Bananymous
f75cebac7e
Shell: Mark all functions as static
2024-10-05 19:11:58 +03:00
Bananymous
e302b6b635
Shell: Use sigaction instead of signal
...
This allows ctrl-c to work on linux :D
2024-10-05 19:07:59 +03:00
Bananymous
f709e88994
Shell: Cleanup argument handling and exiting
2024-10-04 17:54:01 +03:00
Bananymous
ab9a6d583b
Userspace: Set SHELL environment variable in init instead of shell
2024-10-04 17:24:37 +03:00
Bananymous
26d6bf338e
Shell: Ignore SIGTTOU and set pgroup from parent instead of child
...
This allows using the shell in linux!
2024-10-04 17:23:31 +03:00
Bananymous
b6e040dfc2
Kernel/Shell: Fix backspace and delete key byte sequences
2024-10-04 04:14:47 +03:00
Bananymous
7223e581a2
WindowServer: Fix 32 bit compilation with -Werror
...
There was a always false statement on 32 bit that the compliler was
warning about.
2024-09-27 15:33:25 +03:00
Bananymous
cea6dedccc
Userspace: Compile programs and libraries with -Wall -Wextra -Werror
2024-09-26 15:20:07 +03:00
Bananymous
57ae74f908
Terminal: Implement more ANSI escape handling
...
This patch adds L and M codes for inserting and deleting lines and SGR 7
for inverting colors
2024-09-26 15:07:08 +03:00
Bananymous
1a6804b4b4
Terminal: Make Terminal::handle_csi() return invalidated rectangle
...
When I updated Terminal to only do a single invalidation after all of
input text was printed, I forgot to change handle_csi
2024-09-26 15:05:11 +03:00
Bananymous
82e6a3582d
LibGUI: cleanup Window::shift_vertical and add copy_horizontal_slice
2024-09-26 15:00:14 +03:00
Bananymous
1b0086217c
Terminal: Do scrolling in putchar if necessary
...
I overlooked that handling *newline* scrolls would be enough. You can
definitely scroll more if printing a lot of text which wraps to the next
line.
2024-09-23 15:00:47 +03:00
Bananymous
fbb99de728
ls: Show symlink target with `-l`
2024-09-17 19:12:34 +03:00
Bananymous
a6b973003b
WindowServer: chmod the correct file
2024-09-17 18:35:27 +03:00
Bananymous
04ae53b6df
Shell: Add back accidentally deleted `cd` and `time` builtins
2024-09-17 16:38:45 +03:00
Bananymous
708a720d9d
Kernel: Remove SYS_OPEN
...
This can be done with SYS_OPENAT with fd set to AT_FDCWD
2024-09-17 16:16:47 +03:00
Bananymous
c3040a04a3
Terminal: Optimize printing a lot
...
Terminal used to run `yes` at around 400 lines per second
This patch pumps that to over 100'000 lines per second!
There are 2 optimizations done:
1. only invalidate window once after rendering is done
2. if printing more than `rows()` newlines skip prior data
2024-09-15 03:12:26 +03:00
Bananymous
d68ad893f0
Kernel/Shell: Add support for delete key
2024-09-14 22:45:48 +03:00
Bananymous
4ca147699d
Shell: use printf and putchar instead of fprintf and fputc
2024-09-14 22:37:09 +03:00
Bananymous
abed41b8fa
Shell: Remove builtin tests
...
Test should be programs in /bin instead
2024-09-14 22:28:33 +03:00
Bananymous
2604a55f80
Shell: Make ctrl+c start a new command
2024-09-14 22:27:32 +03:00
Bananymous
97da386ed6
WindowServer: Make focused window bounce by pressing F2
...
This was an awesome idea by [@Dcraftbg](https://github.com/Dcraftbg )
2024-09-12 20:09:23 +03:00
Bananymous
c706829a91
WindowServer: Make corner-radius a variable in config file!
2024-09-12 20:07:30 +03:00
Bananymous
6cd246a38e
WindowServer: Add support for rounded corners and transparency
2024-09-12 19:35:44 +03:00
Bananymous
43e88c0ae0
Terminal: Add alpha channel to colors
...
This doesn't do anything yet, but will when I add transparency support
for WindowServer
2024-09-12 19:34:25 +03:00
Bananymous
bf01b935bd
WindowServer: Start Terminal with Super+Enter
...
this allows doing something in GUI after Terminal is closed
also WindowServer is now stopped with Super+Shift+E
2024-09-11 22:18:08 +03:00
Bananymous
98c011e6a6
WindowServer: Open all fds as CLOEXEC
...
This will allow forking the window server cleanly :D
2024-09-11 22:17:31 +03:00
Bananymous
86dcb5c471
init: Don't leak pwent fd to child processes
2024-09-11 22:11:05 +03:00
Bananymous
4006a04817
DynamicLoader: Don't do file backed mapping over file bounds
2024-09-11 19:30:35 +03:00
Bananymous
19d16620a6
DynamicLoader: Don't do file backed mapping for filesz == 0
2024-09-05 14:50:05 +03:00
Bananymous
e8bcebfb8e
DynamicLoader: Use file backed mmap when possible
2024-09-05 13:59:39 +03:00
Bananymous
9aed8dbe6b
Toolchain: Build crtbeginS.o crtendS.o and shared libgcc
2024-09-05 12:58:21 +03:00
Bananymous
aa7e92b275
Userspace: Write a dynamic loader
...
This allows running executing dynamically linked executables!
2024-09-05 12:58:21 +03:00
Bananymous
f30947336a
BuildSystem: Cleanup cmake files
2024-09-05 12:52:25 +03:00
Bananymous
5f92807fdd
userspace: Allow building without SSE
...
I had added changes that had broken compilation without sse support
2024-09-02 21:25:00 +03:00
Bananymous
bec3e8654f
Shell: Implement escaping quotes in quoted strings
2024-08-24 17:13:50 +03:00
Bananymous
46b34817d2
snake: Remove random goto statements when regenerating apple's position
2024-08-16 17:36:37 +03:00
Bananymous
723e458bd7
Kernel/Terminal: Update terminal color themes and fix TTY bright/dark
2024-08-12 21:15:55 +03:00
Bananymous
1bd7b86e60
Terminal: Implement cursor blinking
...
This looks much nicer than the old static cursor
2024-08-12 14:24:17 +03:00
Bananymous
18e7cf2069
Terminal: Add cursor rendering
...
Cursor is now shown at the current position. It can be hidden (or shown)
with the ansi `\033[?25h` or `\033[?25l`
2024-08-12 00:50:06 +03:00
Bananymous
9e79ef2a91
Terminal: Use pseudo terminal instead of pipes
...
Terminal can now send signals from keyboard (ctrl+c) to programs running
in the terminal!
2024-08-11 01:02:59 +03:00
Bananymous
f08d429851
Terminal: Add utf8 parsing for input
...
This patch adds possibility to render multibyte utf8 codepoints!
2024-08-11 00:54:51 +03:00
Bananymous
1c67b5e812
Kernel: Fix wait syscall to report status of exited children
2024-08-09 16:52:35 +03:00
Bananymous
91d513a672
2000th COMMIT: userspace: Implement basic fetch program bananfetch
...
This patch adds a obligatory fetch program to banan-os!
This program (`bananfetch`) fetches some basic information about the
operating system and the hardware its running on!
2024-08-09 15:58:56 +03:00
Bananymous
a578527012
Kernel/LibC: Implement ioctl(TIOCGWINSZ)
...
This allows ncurses to get the window size!
2024-08-01 22:56:26 +03:00