The default wallpaper is now a symlink, which can be replaced
appropriately as the wallpaper changes in the future, thus future
wallpaper changes won't necessitate changes to applications which have
fallbacks. TODO: write an imagemagick script to generate the bootloader
wallpaper.
This is kinda rough and needs a finishing touch.
- Adds ncurses-specific terminfo entries for modifiers.
- Supports modifiers in the terminal itself.
- Updates the vim config to understand ctrl-arrows.
- Adds limited support for some modifiers in lib/kbd
(as used by rline)
- Adds limited support for Ctrl+Arrows to rline
(needs major improvements, only jumps to spaces)
Resize and drag cursors have been added.
These new cursor types are exposed in two ways:
- Window drag and resize will automatically use the resize cursors if
a cursor is enabled for the window.
- Clients can use new values for yutani_window_show_mouse to set the
current cursor type, or reset it to the previous normal or hidden
state.
The latter functionality is now used in the decoration library to
present the appropriate resize cursor when the mouse is hovered over the
decoration borders.
More cursor options may be added in the future.
Cursor themes will be added in the future as well.
Cursors are stored in /usr/share/cursor
The arrow cursor has been moved to /usr/share/cursor/normal.png
ADDENDUM: A critical heisenbug with window resizing has been fixed in
this commit involving a race with window dimensions and
potentially also buffers.
This is a bit of a hack. /dev is presented as a new pseudo file type
until I finish the VFS overhaul. This fake file presents a directory
with entries for all of the VFS nodes that are children of it. The
future VFS will do this on its own, thus making this superfluous.
There's a lot here, so let's through it:
- Lots of work to include a symbol table in the kernel. We can't rely on
our bootloader to give us our own ELF information, so we do this
separately. This probably should be changed to output a C source
rather than assembly, but that's a TODO.
- Makefile can now generate modules. It works basically the same way any
other kernel object works, expect with a slightly different linking
scheme.
- Commands have been added to the debug shell to load modules, but they
don't work yet - still need to get through relocation and linking.
- Commands have been added to the debug shell to print the symbol list,
as well as print symbol values (but note that printing symbol values
is kinda dangerous if you don't know what they are, so don't just go
printing things willy-nilly).
This is still a work in progress. ext2 writes are quite broken, so they
have been completely disabled, but there's a new tmpfs mounted to /tmp
that you can try to poke at. I'm still fixing up quirks in the VFS that
make it incompatible with a bunch of stuff, but I did manage to write
some files with vim, and swap files appear to be working at least
somewhat. It's all still broken as fuck.
* login should set some environment variables now
* init should start terminals as login shells, so --single doesn't really
mean "single user" any more, just sorta single terminal session
* system() should work now since esh now accepts -c; not that vim is
still going to be unhappy because it does crazy shit.