Commit Graph

74 Commits

Author SHA1 Message Date
Bananymous 8317bb13ca Shell: Cleanup code by defining argument types as nested types 2024-10-15 23:44:06 +03:00
Bananymous c40f244dff Shell: remove `env` builtin and add `type`
other shells don't seem to implement as a builtin, so i won't either
2024-10-15 23:42:01 +03:00
Bananymous a6aa048be0 userspace: Implement `env` as an executable 2024-10-15 23:42:01 +03:00
Bananymous 6a46a25f48 image: Add benchmark flag to measure performance of image operations 2024-10-13 22:05:13 +03:00
Bananymous d36b64e0c8 LibImage: name color to u32 function to to_argb from to_rgba
This is the actual format that it returns
2024-10-13 22:01:46 +03:00
Bananymous 8adc97980a Shell: rewrite the whole shell to use tokens instead of raw strings
tab completion is still running with raw strings and that has to be
fixed in the future.
2024-10-13 22:00:16 +03:00
Bananymous 3e68981b0b userspace: Remove start-gui from shell builtins and make it an alias
This makes way more sense :D
2024-10-07 18:01:33 +03:00
Bananymous 6fd76e8d1e Shell: Rewrite alias parsing to allow chained commands
You can now have "chained" commands in alias
e.g. `alias foo='echo hello && ls`
2024-10-07 18:01:33 +03:00
Bananymous dfcd15e7c4 Shell: Implement background processes with & 2024-10-07 18:01:33 +03:00
Bananymous 5fa359c28d ls: Print file name in quotes if it contains spaces 2024-10-07 18:01:32 +03:00
Bananymous 5bcfc9dd50 Shell: Always print prompt to new line
This is only done on non banan-os targets if terminal is detected to
support cursor position querying
2024-10-07 18:01:32 +03:00
Bananymous f67cad326a Shell: Don't crash when there are no tab completions available :D 2024-10-07 14:26:07 +03:00
Bananymous 9775e83374 Shell: Fix tab space escaping in tab completion 2024-10-07 04:19:36 +03:00
Bananymous 264d1798dc Shell: Clenup code and fix some bugs
Don't list tab completion multiple times, allow `clear` to work even
when ANSI CSI 3K is not supported, reset buffer index when cancelling
command with ctrl+c
2024-10-07 04:10:25 +03:00
Bananymous 1824988b9a Shell: Add support for simple aliases
Aliases do not support chained commands with pipes, &&, ... but this is
a good start.
2024-10-07 04:09:38 +03:00
Bananymous c54d9b3f60 Shell: Implement simple tab completion for commands and files 2024-10-07 01:44:44 +03:00
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