299 Commits

Author SHA1 Message Date
Kevin Lange
69426c90a1 Change the way the terminal resize escape operates
It now takes sizes in cells and calculates the correct window size.

Thus, \033[3000;127;45z should set the terminal to the "standard" size
available in 1024x768 full-screen mode, and which is specified in the
terminfo file provide.
2012-12-01 00:10:59 -08:00
Kevin Lange
c6daef72a3 Major terminal improvements.
* Speed improvements
* Crash fixers
* Significant overhaul to escape handling based on extensive use of the
  new serial console and a remote connection to a Linux box.
* Updated included terminfo file to accurately reflect terminal
  behavior.

Some fun facts:
* vim runs great on a remote console (though the serial line slows a lot
  of things down, it still runs rather smoothly)
* going to fix GNU screen, maybe in next commit, dunno
* tested with htop, less, and a bunch of other stuff
2012-11-30 23:28:49 -08:00
Kevin Lange
659d044614 Terminal fixes 2012-11-30 15:50:06 -08:00
Kevin Lange
ed5b9543fb Big commit: Serial console
* fix some terminal bugs (some, not all)
* add a serial device to the VFS
* fix up serial so it works better
* add a serial-console application
* fix a bug in some other stuff relating to allocations
* change size of the terminal described by toaru.terminfo
* adds a new system call
2012-11-28 23:05:19 -08:00
Kevin Lange
fd30e9b6e3 Bump the logo up more in the login screen.
[ci skip]
2012-11-24 01:01:57 -08:00
Kevin Lange
8f8bd9d5e9 Completely redesign login screen 2012-11-24 00:18:53 -08:00
Kevin Lange
7e27418637 Strip userspace binaries... 2012-11-22 16:27:58 -08:00
Kevin Lange
b5d88b13fc kill a bunch of debug printing 2012-11-21 23:29:57 -08:00
Kevin Lange
c93b5617e8 Support C++ (roughly) in toolchain
* Reenables building of libstdc++
* Enables building of g++
* WARNING: The static binary loader does NOT support static
  initializer functions! You must run them yourself (see
  userspace/test-cpp.cpp for an example that initializes the standard
  streams in order to use cout) until this is fixed.
* C++ stuff is slow to load, try to manually strip, it'll speed things
  up a bit.
2012-11-20 19:28:22 -08:00
Kevin Lange
ae6b72606b General support for focused/inactive windows 2012-11-19 21:24:21 -08:00
Kevin Lange
07a5ee3c55 Brand new, super-great window decorations 2012-11-18 20:41:30 -08:00
Kevin Lange
3ca6f4bae9 Change border test text to demo utf8 support
[ci skip]
2012-11-18 20:18:55 -08:00
Kevin Lange
25f418e887 Support UTF-8 in shmemfonts w/ fallbacks 2012-11-18 20:14:57 -08:00
Kevin Lange
7b7697698e New window borders in a test app.
This'll be ported to the decorations library soon.
2012-11-18 19:35:47 -08:00
Kevin Lange
1081fba885 Updates to the shmem font lib
Supports multiple fonts now!

Loads up with all the standard fonts.
2012-11-18 19:35:17 -08:00
Kevin Lange
dd560bf6e6 Support fallback to classic compositor
So that I don't need to keep changing this or worry about bad commits,
support falling back to the classic compositor if the new compositor
doesn't work.
2012-11-17 12:59:18 -08:00
Kevin Lange
c5dc55512f new panel background with alpha transparency 2012-11-17 12:57:16 -08:00
Kevin Lange
61efb78777 Oops, switch init back to original compositor 2012-11-17 12:57:00 -08:00
Kevin Lange
32a6b4c42a Aspect-aware scaling for wallpapers 2012-11-16 18:37:39 -08:00
Kevin Lange
94dc368904 Fix signature for draw_sprite_scaled 2012-11-16 18:37:12 -08:00
Kevin Lange
9930624043 cleanup some userspace stuff 2012-11-15 23:33:45 -08:00
Kevin Lange
6d49ba5284 Fix julia generator with cairo compositor 2012-10-21 20:46:53 -07:00
Kevin Lange
92b27e72da Fix redraw in julia on resize 2012-10-18 23:43:10 -07:00
Kevin Lange
c4b4155b38 Local user wallpapers, ignored by git 2012-10-16 20:42:48 -07:00
Kevin Lange
df4d1cca39 Text shadows in various places.
- Desktop icons use the shadowing
- The login screen uses shadows instead of poorly-executed strokes
- The blur_test app has been updated to show multiple blur levels,
  but does not use the library function.
2012-10-16 19:05:58 -07:00
Kevin Lange
8b29bd7e21 Make the blur test app interactive
Type to change the text.
Resize if you need more space.
Alt+F4 to quit.

(And remember, focus follows mouse, but does not go through transparent
windows, so if you're in the right box, you'll be fine)
2012-10-16 00:16:27 -07:00
Kevin Lange
8c1a213696 Fix VGA terminal bug (and tests) 2012-10-15 23:49:56 -07:00
Kevin Lange
8ef81b6924 Graphics library functions for Gaussian blur
And a demo app. Going to use this for soft shadows somewhere.
2012-10-15 23:04:33 -07:00
Kevin Lange
6515e90b10 Icon titles 2012-10-15 19:23:47 -07:00
Kevin Lange
7f28dff33d F-keys :D 2012-10-14 22:38:43 -07:00
Kevin Lange
7d5eb42400 Userspace keyboard handling
Kernel driver sends raw scancodes, compositor or terminal handle the
rest. Support for F* keys will be added soon, in the mean time userspace
applications can know about the status of modifiers (control, shift,
alt, and super).

Compositor actions have been changed to Alt+Left Click for move and
Alt+Middle Click for resize. I'll work on adding more mouse events once
I get them to be faster (they're annoyingly slow at the moment... I want
more accuracy and less latency).
2012-10-14 19:53:16 -07:00
Kevin Lange
82d41b5e8e Clean up the RPG's handling of resizes a bit.
Not perfect, still got some things that need to be cleaned up.

[ci skip]
2012-10-13 22:19:06 -07:00
Kevin Lange
fd259230b6 Change color of resize outline 2012-10-13 21:24:12 -07:00
Kevin Lange
79ec8ccdb7 Support resizing in all graphics apps
Sort of. game has issues.
2012-10-13 20:44:59 -07:00
Kevin Lange
ba7bacf054 Julia fractals can handle resizes 2012-10-13 20:20:52 -07:00
Kevin Lange
217f66e23e Mouse-driven window resizing 2012-10-13 20:19:43 -07:00
Kevin Lange
8996ccb592 Merge terminal settings commands into esh
They are now part of the built-in set.

set scale [n]
set size  [w] [h]
set alpha [0 or 1]
2012-10-13 20:17:29 -07:00
Kevin Lange
d56ba02437 Resizing is working okay. 2012-10-13 13:02:58 -07:00
Kevin Lange
8b69e7ef68 Get rid of the awkward mouse acceleration 2012-10-12 00:17:23 -07:00
Kevin Lange
0387b2d2c3 Allow windows to disable alpha transparency.
Also add functionality to the terminal to toggle it on and off.
There's a small, but nice-to-have performance increase from disabling
alpha transparency in the terminal.

Also, the display server sets DISPLAY=... to the shmem endpoint for the
compositor, so if getenv("DISPLAY") returns a pointer, you can assume
you are in a graphical environment, instead of having to rely on things
like arguments. Good for those applications that want to be able to run
both full-screen and windowed.
2012-10-11 23:55:53 -07:00
Kevin Lange
a60a78d157 Updated toolchain stuff with some new headers.
I'm working on termios support... it's stubs for now, though.
2012-10-09 21:02:43 -07:00
Kevin Lange
66a35ba224 Separate out keyboard stuff into a library.
Eventually this will be used to do ALL keyboard interpreting, so we can
ditch the kernel map and support proper input and special keys.
2012-10-08 22:33:46 -07:00
Kevin Lange
5f869316c1 Remove keyboard test 2012-10-08 20:09:43 -07:00
Kevin Lange
b1c6919b53 Deprecate full-screen applications
Rename game-win to game and julia-win to julia.
2012-10-08 20:08:02 -07:00
Kevin Lange
5249138dcd Environment variables, integrated with newlib.
* Patched crt0 to support a pre_main
* pre_main sets up environment variables, can do other things later,
  but then just jumps to main with the same arguments.
* Updated a bunch of apps to pass environment variables around.
2012-10-08 00:17:50 -07:00
Kevin Lange
99b48f72e0 Fix cursor position after tab-tab complete 2012-10-07 20:57:58 -07:00
Kevin Lange
ad6d8f013e Fix some things I missed previously.
- Environment loading in esh was broken.
- I dropped the 'exit' command from esh somewhere along the line.
2012-10-07 20:54:11 -07:00
Kevin Lange
deaa6ad513 Rough support for environment variables
- libc functions not implemented yet
- see `env` for an example of reading variables
- see `esh` for an example of how to set and maintain variables for
  sending to other applications

  Both of the above will be the basis for the libc implementation.
2012-10-07 20:46:35 -07:00
Kevin Lange
272a2a3809 Fix history bugs from previous.
- Fix history scrolling after ^L
- Fix duplicate entry pruning.
2012-10-07 15:58:30 -07:00
Kevin Lange
484cf903cd Fixes for multiline history
(Also fixed a bug with backspace handling in the terminal)
2012-10-07 12:22:39 -07:00