summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
2019-02-06Clean up LDFLAGS a bit.Andreas Kling
While working on the ELF loader I was trying to keep binaries as simple as possible so I could understand them easily. Now that the ELF loader is mature and working fine, we can move closer towards ld defaults.
2019-02-05Kernel: Reading from a slave PTY should give EOF if master PTY is closed.Andreas Kling
2019-02-05Handle WindowCloseRequest in FontEditor and /bin/guitest.Andreas Kling
2019-02-05Add a simple close button ("X") to windows.Andreas Kling
Clicking the button generates a WindowCloseRequest event which the client app then has to deal with. The default behavior for GWindow is to close() itself. I also added a flag, GWindow::should_exit_event_loop_on_close() which does what it sounds like it does. This patch exposed some bugs in GWindow and GWidget teardown.
2019-02-05Clock: Turns the clock window from guitest2 into a separate program.Andreas Kling
We can't not have a desktop clock app. :^)
2019-02-05Show the amount of memory in GraphicsBitmaps in /bin/top.Andreas Kling
This seems like an extremely relevant metric to track.
2019-02-05Rename LizaBold to LizaRegular and LizaBlack to LizaBold.Andreas Kling
LizaRegular is quickly becoming my favorite bitmap font. It's so pretty :^)
2019-02-04Kernel: Ignore SIGCHLD by default.Andreas Kling
Also use an enum for the rather-confusing return value in dispatch_signal(). I will go through the rest of the signals and set them up with the appropriate default dispositions at some other point.
2019-02-04Kernel: Process should send SIGCHLD to its parent when it dies.Andreas Kling
2019-02-04LibGUI: Use LightGray as the base UI color.Andreas Kling
This feels nicely reminiscent of the gap in time between Win3.11 and Win95, one of my favorite eras in UI look-and-feel.
2019-02-04Add a /bin/top program for process table monitoring.Andreas Kling
It automagically computes %CPU usage based on the number of times a process has been scheduled between samples. The colonel task is used as idle timer. This is pretty cool. :^)
2019-02-03Add /dev/{stdin,stdout,stderr} as symlinks to /proc/self/fd/{0,1,2}Andreas Kling
Also change /bin/cat to open /dev/stdin if no arguments are provided.
2019-02-03Kernel: Oops, I mixed up st_dev and st_rdev in struct stat.Andreas Kling
2019-02-03LibC: Implement various things to get GNU bc building and running.Andreas Kling
Looks like that's all we needed, and bc now runs. :^)
2019-02-03guitest2: Stop showing the font test window by default.Andreas Kling
2019-02-03Userland: Make /bin/date pretty-print the date, too.Andreas Kling
2019-02-03Userland: Pretty-print modification times in /bin/ls.Andreas Kling
2019-02-02Start working on a simple graphical font editor.Andreas Kling
Editing fonts by editing text files is really slow and boring. A simple font editor seems like a good way to take LibGUI for a spin.
2019-02-02Add basic automatic dependency management to Makefiles.Andreas Kling
2019-01-31Userland: /bin/ls shouldn't display inode numbers by default.Andreas Kling
Added the -i option to ls which turns on inode number display.
2019-01-31Big, possibly complete sweep of naming changes.Andreas Kling
2019-01-31Add a simple clock window to guitest2.Andreas Kling
This is driven by mousedown events right now, since there are no timers.
2019-01-31Make stat() work on device files again.Andreas Kling
FileDescriptor will now keep a pointer to the original inode even after opening it resolves to a character device. Fixed up /bin/ls to display major and minor device numbers instead of size for device files.
2019-01-30LibGUI: Implement destroying individual windows without exiting the process.Andreas Kling
2019-01-30Add a /dev/pts filesystem and make PTY allocation dynamic.Andreas Kling
You can now open as many PTY pairs as you like. Well, it's actually capped at 8 for now, but it's just a constant and trivial to change. Unregistering a PTY pair is untested because I didn't want to start mucking with that in Terminal right now.
2019-01-29Implement basic chmod() syscall and /bin/chmod helper.Andreas Kling
Only raw octal modes are supported right now. This patch also changes mode_t from 32-bit to 16-bit to match the on-disk type used by Ext2FS. I also ran into EPERM being errno=0 which was confusing, so I inserted an ESUCCESS in its place.
2019-01-28Expose the kernel log buffer through /proc/dmesg.Andreas Kling
Also add a /bin/dmesg program for convenience.
2019-01-28Add support for removing directories.Andreas Kling
It's really only supported in Ext2FS since SynthFS doesn't really want you mucking around with its files. This is pretty neat though :^) I ran into some trouble with HashMap while working on this but opted to work around it and leave that for a separate investigation.
2019-01-27LibGUI: More work on GCheckBox.Andreas Kling
- Make it track the mouse cursor just like GButton does so that changes only get committed if the mouseup event happens while inside the widget rect. - Draw a focus rect around the box when appropriate. - When focused, support toggling the checked state with the space bar.
2019-01-27/bin/cp: Handle partial write() case.Andreas Kling
2019-01-27Userland: Make a simple /bin/cp for copying files.Andreas Kling
2019-01-26LibGUI: Flesh out focus implementation and more GTextBox work.Andreas Kling
2019-01-26LibGUI: Start bringing up GTextBox in the standalone world.Andreas Kling
2019-01-26Refactor GUI rendering model to be two-phased.Andreas Kling
Instead of clients painting whenever they feel like it, we now ask that they paint in response to a paint message. After finishing painting, clients notify the WindowServer about the rect(s) they painted into and then flush eventually happens, etc. This stuff leaves us with a lot of badly named things. Need to fix that.
2019-01-25Let's not auto-start guitest. guitest2 is so much more useful.Andreas Kling
2019-01-25sh: Discard the current line on interrupt.Andreas Kling
2019-01-25Terminal: Support VKILL and VERASE. Also ignore null characters.Andreas Kling
2019-01-25sh: Support basic backspacing on the command line.Andreas Kling
It's weird that I didn't do this sooner. I don't know how many tims I've had to retype a misspelled command. :^)
2019-01-25Terminal: Support setting the window title using Xterm escape sequences.Andreas Kling
Use this in the /bin/sh prompt to keep the window title in sync with the shell's working directory. :^)
2019-01-24Let userland retain the window backing store while drawing into it.Andreas Kling
To start painting, call: gui$get_window_backing_store() Then finish up with: gui$release_window_backing_store() Process will retain the underlying GraphicsBitmap behind the scenes. This fixes racing between the WindowServer and GUI clients. This patch also adds a WSWindowLocker that is exactly what it sounds like.
2019-01-23LibC: Tweak execvp() and execve() prototypes.Andreas Kling
2019-01-22Add unlink() syscall and /bin/rm.Andreas Kling
This patch adds most of the plumbing for working file deletion in Ext2FS. Directory entries are removed and inode link counts updated. We don't yet update the inode or block bitmaps, I will do that separately.
2019-01-22Kernel: Support open() with O_CREAT.Andreas Kling
It's now possible to create zero-length files! :^) Also hook up the new functionality in /bin/touch.
2019-01-21guitest2: Add a launcher button for guitest.Andreas Kling
2019-01-21WindowServer: Don't invalidate already frontmost window for moving to front.Andreas Kling
2019-01-21LibGUI: Mass coding style fixes.Andreas Kling
2019-01-21guitest2: Add a simple launcher so I can easily spawn more Terminals.Andreas Kling
Also update GButton coding style.
2019-01-20LibGUI: Hook up GWindow event dispatch for paint and mouse events.Andreas Kling
2019-01-20Make it possible for userspace to alter window title/geometry.Andreas Kling
I'm not in love with this syscall API but it allows me to make progress.
2019-01-20Start bringing up LibGUI properly (formerly Widgets.)Andreas Kling