Commit Graph

58 Commits

Author SHA1 Message Date
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