Commit Graph

93 Commits

Author SHA1 Message Date
Bananymous 73349e5e75 WindowServer: don't set window location to (0,0) when fullscreening 2024-11-15 20:43:41 +02:00
Bananymous 74ae411b69 WindowServer: Skip invalidation on other windows in fullscreen mode 2024-11-15 20:42:07 +02:00
Bananymous d458592fb1 WindowServer: Don't focus unfocusable windows on window creation 2024-11-15 20:41:42 +02:00
Bananymous a859558840 LibGUI: Window Creation takes attributes as an argument
This reduces windows showing/moving once they are opened and setting
their attributes.
2024-11-14 20:57:34 +02:00
Bananymous bda2c663da WindowServer: Implement fullscreen windows
If window size does not match framebuffer size, window data will be
scaled to framebuffer using nearest sampling for best performance.
2024-11-13 19:10:15 +02:00
Bananymous 5e041e6e5a WindowServer: Make all terminating signals exit cleanly
This allows window server to restore input handling to TTY if window
server crashes on page fault or some other unexpected exception.
2024-11-13 17:32:13 +02:00
Bananymous d19264eea8 WindowServer: Implement partial window resizing
This patch adds support for client side resizing, so clients can request
the server to resize their windows. WindowServer will respond with
resize event when and if the resizing is complete.
2024-11-13 17:30:12 +02:00
Bananymous 6bd51ac345 LibGUI: Client window now exits if it loses connection from server
This can be prevented by installing callback for socket errors.
2024-11-10 14:02:23 +02:00
Bananymous cf21eb4b39 TaskBar: Cleanup TaskBar string generation 2024-11-08 02:57:35 +02:00
Bananymous da8170c5b6 LibGUI: Add support for focusable windows and mouse capturing
These are essential parts of a window server! This allows making TaskBar
non-focusable.
2024-11-08 02:55:10 +02:00
Bananymous f4be37700f Kernel/userspace: rework floating point math
SSE is now unconditionally enabled any where and most of math.h is now
actually implemented. using __builtin_<func> lead to many hangs where
the builtin function would just call itself.
2024-11-03 20:28:15 +02:00
Bananymous 5fde2cf91a TaskBar: Ignore window close events and exit on connection close
This prevents user from killing the task bar with keyboard shortcuts
2024-10-18 17:19:05 +03:00
Bananymous d57e797147 WindowServer: Don't kill window on key event, instead send close event
This allows notifying the client about window close and let client
handle it as it wants
2024-10-18 17:17:58 +03:00
Bananymous e99a271465 Userspace: Implement basic task bar
This bar only shows current time but its something to work on later!
2024-10-18 03:36:03 +03:00
Bananymous d266c7f93b LibGUI: Implement attributes for windows
Windows can now change whether they have title bar, rounded corners,
alpha channel and whether they are movable. Also windows can also change
their own position
2024-10-18 03:32:12 +03:00
Bananymous d7e5c56e94 userspace: Use SOCK_STREAM instead of SOCK_SEQPACKET for WindowServer
This makes more sense if we have longer packages
2024-10-17 01:44:48 +03:00
Bananymous 91381546d5 Shell: Don't crash if history file does not exist :D 2024-10-16 00:41:28 +03:00
Bananymous 41e2b898ab Shell: Implement history file for persistent history storage 2024-10-16 00:21:58 +03:00
Bananymous 6e981d1222 Shell: Add support for inline environment variables
e.g. `foo=$(echo lol) Shell -c 'echo $foo'` will now print lol!
2024-10-15 23:45:08 +03:00
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