Commit Graph

221 Commits

Author SHA1 Message Date
Bananymous 843a6851c4 Userspace: Start work on a terminal emulator
Terminal is still missing some ANSI codes, cursor and pseudo terminal
support.

Shell's builtin start-gui now launches a Terminal instead of test
windows.
2024-06-03 18:04:33 +03:00
Bananymous 234051d6bc Shell: Optimize drawing characters at the end of a command 2024-06-03 18:03:19 +03:00
Bananymous 981c0eb8bc Shell: Only set terminal properties if STDIN is a TTY 2024-06-03 18:02:49 +03:00
Bananymous 6346d1b6c7 Shell: Add builtin command for starting window server and test windows 2024-06-02 17:27:40 +03:00
Bananymous 05ee242b80 WindowServer: Add window title to title bar and send close events 2024-06-02 17:27:09 +03:00
Bananymous ae3ae6fd0e WindowServer: Fix partial invalidation over cursor 2024-05-31 03:20:21 +03:00
Bananymous 011a5f57e1 WindowServer: Add title bars and clean up code 2024-05-31 03:02:58 +03:00
Bananymous c2b6ba0d5a Userspace: Start work on GUI and WindowServer
Current implementation can create custom windows and each window has
its own framebuffer. When window wants to write its framebuffer to the
screen it will send a message to the WindowServer using unix sockets.
2024-05-29 16:00:54 +03:00
Bananymous 8bc6c2eb20 Kernel: Move KeyEvent/MouseEvent from kernel to LibInput 2024-05-28 23:30:08 +03:00
Bananymous cc2cc2849e Whoami: Rewrite whoami using getlogin 2024-05-23 15:44:21 +03:00
Bananymous 06f4b0b29a BAN: Make String and StringView header only
This allows linking with libc without having to link ban
2024-05-23 15:43:26 +03:00
Bananymous 967f9a9174 Shell: Ignore tab as that just fucks up formatting 2024-05-07 14:16:17 +03:00
Bananymous 414f0f6cd9 Userspace: Don't link with libc
This fixes bug where sometimes cmake does not find libc from sysroot

LibC is linked per program in its own CMakeLists.txt
2024-04-03 14:46:18 +03:00
Bananymous 5dbe51a52e Userspace: Update printf formats to compile on 32 bit 2024-03-26 03:03:33 +02:00
Bananymous 7f5c850744 Userspace: Add us keymap and make it default 2024-03-19 12:30:57 +02:00
Bananymous b979023b9d Shell: Add test cases for stroul and strod in builtin `test-strtox` 2024-02-16 15:35:02 +02:00
Bananymous c469d9b3ff Shell: Add builtin test for strtol `test-strtol` 2024-02-14 22:38:16 +02:00
Bananymous 1f467580ee Userspace: Add test for popen 2024-02-14 17:23:26 +02:00
Bananymous 7eb5d220fd Userspace: Implement getopt for testing libc getopt() 2024-02-14 15:01:27 +02:00
Bananymous 420a7b60ca resolver: use select for client communication 2024-02-12 23:47:39 +02:00
Bananymous ccde8148a7 Userspace: Implement basic udp test program 2024-02-12 04:45:42 +02:00
Bananymous b9bbf42538 Userspace: Implement basic test program for tcp connection 2024-02-12 04:45:42 +02:00
Bananymous f117027175 resolver: dump errors to debug output 2024-02-08 18:34:15 +02:00
Bananymous 5a939cf252 Userspace: Add simple test for unix domain sockets 2024-02-08 13:18:54 +02:00
Bananymous 065ee9004c Userspace: Add DNS cache to resolver
Also the format of resolver reply is now just sockaddr_storage with
family set and address in the storage field.
2024-02-08 12:06:30 +02:00
Bananymous 2424f38a62 Userspace: Implement super simple DNS resolver in userspace
You connect to this service using unix domain sockets and send the
asked domain name. It will respond with ip address or 'unavailable'

There is no DNS cache implemented so all calls ask the nameserver.
2024-02-08 03:14:00 +02:00
Bananymous 40e341b0ee BAN: Remove unstable hash map and set
These can now be implemented safely with new linked list api
2024-02-06 17:35:15 +02:00
Bananymous f804e87f7d Kernel: Implement basic gateway for network interfaces 2024-02-05 18:18:56 +02:00
Bananymous b2291ce162 Kernel/BAN: Fix network strucute endianness 2024-02-05 18:18:56 +02:00
Bananymous 89805fb092 dhcp-client: Use dprintln for debug printing 2024-02-05 01:24:45 +02:00
Bananymous 692cec8458 Kernel/Userspace/LibC: Implement basic dprintln for userspace 2024-02-05 01:24:09 +02:00
Bananymous 79897e77dc dhcp-client: Remove packet send test :D 2024-02-03 18:04:31 +02:00
Bananymous 2138eeb87f Userspace: Implement super simple DHCP client 2024-02-03 02:41:06 +02:00
Bananymous 7cb71ec6fb test-sort: Test more algorithms and cleanup output format 2024-02-01 15:22:28 +02:00
Bananymous 9213dd13bc dd: Improve output format
Include written bytes and speed with units
2024-02-01 00:06:46 +02:00
Bananymous 210b24b6e3 AOC2023: Delete file that should not be committed... 2024-01-24 15:53:38 +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 64a63fa4be Userspace: Add loadkeys program to change keymap 2024-01-10 14:57:50 +02:00
Bananymous 51214ea1bf Kernel: Add load_keymap syscall and load Finnish keymap in init 2024-01-10 14:46:29 +02:00
Bananymous 40f55be587 Userspace: Write simple mouse test program
This program draws circle on framebuffer, that you can move with
mouse, resize with scroll, and recolor with mouse buttons.
2024-01-04 19:50:26 +02:00
Bananymous 753de3d9f0 ls: Write group name instead of gid in list mode 2024-01-03 00:15:13 +02:00
Bananymous 1bd33e76e5 cat/cat-mmap: print newline if file doesn't end in one 2024-01-02 23:27:13 +02:00
Bananymous 96d831c31a Kernel/LibC/Userspace: Implement chown and set tty owner on login 2024-01-02 22:19:38 +02:00
Bananymous 8b5e437936 AOC2023: Implement day25 part1
7 starts missing + partly broken day22. I might finish these soon...
2023-12-26 20:04:42 +02:00
Bananymous d87fa1a7ea AOC2023: Implement day24 part1 2023-12-26 14:10:49 +02:00
Bananymous 910a57089b AOC2023: Implement day23 part1
My day22 implementation is off by couple of bricks...
2023-12-26 00:56:35 +02:00
Bananymous 36590fb5c7 AOC2023: Implement day21 part1 2023-12-24 14:58:21 +02:00
Bananymous ce990c3026 AOC2023: Implement day20 part1 2023-12-24 13:39:26 +02:00
Bananymous 4146f2777b AOC2023: Implement 10 hour solution to day19 part2 2023-12-23 20:53:50 +02:00
Bananymous 64323c51e6 AOC2023: Implement day19 part 1 2023-12-23 18:47:44 +02:00