Commit Graph

548 Commits

Author SHA1 Message Date
Kevin Lange
9b5cf9cec5 Video as a module, kill device_init 2014-03-19 18:56:07 -07:00
Kevin Lange
ee30393e48 Keyboard + Mouse as modules 2014-03-16 15:13:27 -07:00
Kevin Lange
af14fd2e72 oops 2014-03-15 20:54:20 -07:00
Kevin Lange
82a917d270 no more serial syscall
More cleanup

Oopsy
2014-03-15 20:51:11 -07:00
Kevin Lange
cc4391d783 Initial work on modules
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).
2014-03-09 19:36:28 -07:00
Kevin Lange
3fd6a447ef python2 2014-02-12 13:33:19 -08:00
Kevin Lange
ed3c578e64 clean up some legacy util stuff 2013-12-13 20:50:04 -08:00
Kevin Lange
faec73e73d Workaround an issue where terminals werne't closing 2013-12-02 21:05:30 -08:00
Kevin Lange
a9d5009060 Fix terminal alpha rendering in fullscreen mode 2013-11-28 16:14:41 -08:00
Kevin Lange
1e2ed1e89a Add a clock to the VGA warning
mostly so it doesn't immediately quit, but also so it's not eating CPU
cycles while being useless
2013-11-27 19:08:07 -08:00
Kevin Lange
a024385a3c Fix some missing termios stuff 2013-11-22 21:54:47 -08:00
Kevin Lange
59cdfbe9a6 Make teapot close with q like everyone else 2013-10-19 00:29:00 -07:00
Kevin Lange
5d1aa1f6b8 Special-case some block drawing to make it look better 2013-09-01 18:32:46 -07:00
Kevin Lange
a1784a5da1 Fix handling of line endings at right side of screen 2013-08-21 18:30:20 -07:00
Kevin Lange
1e50d39d67 kill nlcr/no-nlcr stuff from terminal 2013-08-19 19:37:13 -07:00
Kevin Lange
720a62d6aa ICANON support (still a bit rough)
This is a massive hack and I admit it.
2013-07-27 22:01:08 -07:00
Kevin Lange
40f0c41932 Preliminary termios support
This is some initial work on support real PTYs.
Canonical mode is not supported at the moment.
2013-07-27 00:18:29 -07:00
Kevin Lange
fd259ce8ab Rough screenshot support
Still needs to be moved to the print screen key. Ctrl+Shift+P for whole
screen, Ctrl+Shift+Alt+P for active window.
2013-07-22 22:42:24 -07:00
Kevin Lange
9f50d7a3bf WHY AM I PRINTING THIS 2013-07-22 22:41:56 -07:00
Kevin Lange
caf16396c1 More threads, less stat 2013-07-20 02:11:27 -07:00
Kevin Lange
ab0045918f clean up cd shell command 2013-06-29 18:48:57 -07:00
Kevin Lange
bc0c06e005 Add a little warning app to vga mode 2013-06-28 19:02:11 -07:00
Kevin Lange
69f3cd3b05 Kill the VGA terminal.
I am going to replace it after I finish making the ANSI escape parser
modular again (it became a bit less modular during the development of
this terminal).

These changes are part of an effort to make the terminal more efficient.
Another goal is to make the terminal use the "new-style" compositor
interface, which is still in development.
2013-06-28 18:51:30 -07:00
Kevin Lange
570905a7d2 Kill the font loading bar 2013-06-28 00:55:02 -07:00
Kevin Lange
a0b589b56b Drop legacy fullscreen from plasma 2013-06-28 00:43:35 -07:00
Kevin Lange
9a40a41f03 Drop legacy fullscreen support and add new fullscreen support 2013-06-28 00:42:40 -07:00
Kevin Lange
43a795fa9a Compositor can now take an argument for what to run on startup 2013-06-28 00:33:03 -07:00
Kevin Lange
15be8f2138 thinking about this still 2013-06-28 00:15:32 -07:00
Kevin Lange
a36421ae4e Like I said, use FAST/GOOD macros instead 2013-06-18 23:48:04 -07:00
Kevin Lange
b6ec637f74 Use nearest-neighbor scaling
Major speed improvement, though it might make things like "Scale
windows" look a bit less polished; windows that are scaled up in scale
mode are rendered with bilinear scaling. Will probably replace with the
FAST/GOOD macros later.

Also, add the framework for Alt+Tab window picking (not implemented yet)
2013-06-18 23:43:56 -07:00
Kevin Lange
32ee59c51c Fix up/down for meta keys 2013-06-18 23:42:53 -07:00
Kevin Lange
2888fc776f Add alt key support to terminal 2013-06-15 15:23:10 -07:00
Kevin Lange
b7254576d4 Don't lock up when a client isn't paying attention
Also fix the mouse to account for this... development.
Smoother mouse movement all around, though it may make things slightlys
lower by spamming lots of mouse packets. Just write good clients and
everything will be fine...
2013-06-12 23:37:07 -07:00
Kevin Lange
d213172368 woops, kill that 2013-06-12 20:39:57 -07:00
Kevin Lange
ea52ca3fb0 kill old unused stuff 2013-06-12 17:52:15 -07:00
Kevin Lange
cf91715ab5 Missed one 2013-06-10 10:39:58 -07:00
Kevin Lange
abc8298b4b Fix logout (actually login problem) 2013-06-10 00:55:33 -07:00
Kevin Lange
4c9be9361a Compositor animations - actual
There are both some good changes and some terribly hacky changes in this
commit.

- Server uses a different struct than client now for windows, so
  arbitrary compositor things like effect parameters can be added
  without having to rebuild everything. That's good.
- Client window structs no longer attempt to track or use window
  locations. That's good.
- Windows do not destroy in response to the destory command, but rather,
  a special animation is triggered; the end state for this animation
  calls the actually window destruction code. That's a hack.
- Animations are based on rendered frames, not on time. That's a hack.
2013-05-29 21:31:59 -07:00
Kevin Lange
ae59df2514 Fix up some toaru-specific bits in the shell 2013-05-28 22:00:27 -07:00
Kevin Lange
046f17a81a ^A and ^E in shell 2013-05-28 19:01:52 -07:00
Kevin Lange
c3995aaa55 Workaround window corruption on startup 2013-05-22 22:59:23 -07:00
Kevin Lange
80445dafcc Various shell and terminal cleanups 2013-05-22 21:59:28 -07:00
Kevin Lange
3e59074974 [terminal] redraw cursor on focus change 2013-05-22 20:56:52 -07:00
Kevin Lange
9c2b45e0aa Unbreak sh's 'Command not found'... 2013-05-22 19:18:14 -07:00
Kevin Lange
48fe17ff19 Merge branch 'strawberry-dev' of github.com:klange/toaruos into strawberry-dev 2013-05-21 23:33:31 -07:00
Kevin Lange
0420002212 Quick hack: Animation demo 2013-05-21 21:11:30 -07:00
Kevin Lange
d9f22b293a wat 2013-05-15 19:09:58 -07:00
Kevin Lange
fd7c103c78 Teapot Mesa shader example 2013-05-13 02:59:10 -07:00
Kevin Lange
416d483fd6 Box drawing and new wcwidth
Currently a brute-force method, going
to replace this with a Markus Khun-esque interval
search shortly.
2013-05-11 13:20:20 -07:00
Kevin Lange
04dccab9a4 Swap /bin and /usr/bin in PATH 2013-05-10 19:34:01 -07:00
Kevin Lange
8d20462288 work around -onlcr 2013-05-09 23:56:49 -07:00
Kevin Lange
e809b4e3da Add back in Command not found message 2013-05-08 01:05:38 -07:00
Kevin Lange
096628fb1d Make sh use execvp directly 2013-05-08 00:45:46 -07:00
Kevin Lange
0789c46bfe Add /usr/bin to default PATH 2013-05-08 00:45:27 -07:00
Kevin Lange
8f3b31466f add kill app 2013-05-06 01:29:04 -07:00
Kevin Lange
1e664bef2b Integrate signals into libc 2013-05-05 15:00:24 -07:00
Kevin Lange
fcdec09eaf Unfocused terminal cursor box 2013-05-04 23:22:54 -07:00
Kevin Lange
907566b259 Fix terminal padding opacity 2013-05-03 00:20:16 -07:00
Kevin Lange
8ceb3f990a New panel layout and background 2013-05-02 23:33:57 -07:00
Kevin Lange
8af7d27445 Make terminal darker 2013-05-01 18:35:03 -07:00
Kevin Lange
8b39566b43 Kill some code duplication in the terminal 2013-04-27 01:43:24 -07:00
Kevin Lange
6aa623216d But clear the buffer on ^C 2013-04-27 01:16:17 -07:00
Kevin Lange
b575e5e2e4 Flush buffer on switch to raw mode 2013-04-27 01:14:21 -07:00
Kevin Lange
47977a3bdc Fix some C++ derps with window.h header 2013-04-26 01:04:09 -07:00
Kevin Lange
cbaa9e13d6 Add a test app to print open() flag values 2013-04-24 00:20:25 -07:00
Kevin Lange
9f7fa061ea Fix how 'touch' opens files. 2013-04-24 00:20:07 -07:00
Kevin Lange
716ce11c83 Move old loader test 2013-04-23 23:08:42 -07:00
Kevin Lange
a2a890e1a8 Fresh new VFS syscalls: unlink, chmod, umask 2013-04-23 01:14:33 -07:00
Kevin Lange
01a4b5f22d fix USER setting in login 2013-04-22 22:37:17 -07:00
Kevin Lange
038a899b45 i have no idea why I'm messing with this clock 2013-04-16 23:05:29 -07:00
Kevin Lange
3871cfcf31 Fix up the serial console so it works again 2013-04-15 01:26:03 -07:00
Kevin Lange
025d5ee0c8 READMEs for third-party stuff are cool 2013-04-13 21:02:43 -07:00
Kevin Lange
b6dd8f47c6 More curses samples 2013-04-13 20:59:36 -07:00
Kevin Lange
cd677b44c3 Fix up some terminal bits, add F keys 2013-04-13 20:21:40 -07:00
Kevin Lange
f76616d06e ncurses in build.py 2013-04-13 17:35:20 -07:00
Kevin Lange
d169157a6c Fix build script for ttk-core 2013-04-12 22:00:31 -07:00
Kevin Lange
0a140ce941 gears (a port of glxgears) SEE LICENSE IN FILE 2013-04-12 21:20:38 -07:00
Kevin Lange
b6d131240f Add osmesa (GL) and mpeg2 (video library) to build.py
Despite not actually being in the toolchain yet.
2013-04-10 19:30:54 -07:00
Kevin Lange
4d9d9b6df7 Merge pull request #31 from martica/safe-cp
Let's not overwrite directories
2013-04-10 10:16:21 -07:00
Kevin Lange
b583e6c60a Fix sane apps not exiting 2013-04-10 00:18:40 -07:00
Kevin Lange
89fed507b3 Asynchrous sane window events 2013-04-10 00:10:00 -07:00
Tyler Bindon
ccfcd53943 Use source filename when copying to directory 2013-04-10 05:50:06 +00:00
Tyler Bindon
bd26aff1fd Let's not overwrite directories 2013-04-10 04:25:04 +00:00
Kevin Lange
5177d6fa76 more work on ttk 2013-04-08 20:44:42 -07:00
Kevin Lange
7ed7f85769 Various windowing and TTK improvements 2013-04-07 16:21:00 -07:00
Kevin Lange
969d454083 disable visual bell in terminal 2013-04-02 23:02:54 -07:00
Kevin Lange
5152ed6305 pid_t for pid on fork 2013-04-02 15:25:40 -07:00
Kevin Lange
21e4497d53 [grok.org.uk advisory] fix nyancat strcpy 2013-04-02 15:23:44 -07:00
Kevin Lange
6fba751f9c [grok.org.uk advisory] format string in sh 2013-04-02 15:16:12 -07:00
Kevin Lange
f411f84047 Fix scale mode 2013-04-02 02:14:35 -07:00
Kevin Lange
724a7e2745 Translate by integer coordinates for crisp 90d rotations 2013-04-02 02:10:45 -07:00
Kevin Lange
c0cc4a8907 For simplicity, use integer degrees for rotation.
Ensures crisp 180s, still working on 90s.
2013-04-02 01:39:48 -07:00
Kevin Lange
17879bd850 EXPERIMENTAL: Rotating windows.
* Dumb bounding box top_at logic replaced with select buffer
* Select buffer rendered through cairo with AA disabled
  Using rectangles for window shapes - this should easily
  be expandable to 1bpp bitmaps. Currently, the select buffer
  is very inefficient, using twice the space it needs (plus,
  it's double buffered, so in reality, 4x the space needed),
  however, it's also very accurate and fast, and I like that.
* Window rotation is controlled through Ctrl+Shift+{z,x,c} where
  z = rotate 1 degree left
  x = rotate 1 degree right
  c = reset rotation
* Input is remapped based on window rotation, so you *can* use the
  draw app, and it is totally epic.
2013-04-02 01:26:32 -07:00
Kevin Lange
4a66259cb8 Fix a couple minor rendering issues in the terminal 2013-04-01 21:25:53 -07:00
Kevin Lange
ed233cad89 Clean up formatting for (terminal) login prompt 2013-03-31 13:01:28 -07:00
Kevin Lange
7c4cd8dd51 fix nulldev, add zerodev 2013-03-31 13:01:05 -07:00
Kevin Lange
02a6d7ebc1 Replace Elementary icons 2013-03-30 21:20:47 -07:00
Kevin Lange
5375fb38c4 Proper alpha support in shmemfonts 2013-03-29 01:02:42 -07:00
Kevin Lange
e2d5411a96 Use alpha channel in text rendering in terminal 2013-03-29 00:39:23 -07:00
Kevin Lange
8e48ee8cfa Fix alpha blitting once and for all 2013-03-29 00:34:12 -07:00
Kevin Lange
2d7a29d17e Premulitply PNGs when loaded 2013-03-28 20:04:26 -07:00
Kevin Lange
98b6ae5867 esh -> sh, clean up
* 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.
2013-03-28 00:12:48 -07:00
Kevin Lange
c06c3a483e Fix ^R in esh...
... such that it doesn't clear the right hand side of the prompt, which
now contains the date and time.
2013-03-27 18:30:19 -07:00
Kevin Lange
f2274f0d2f New prompt format 2013-03-27 17:42:57 -07:00
Kevin Lange
eff6aa9114 RGB color support in terminal 2013-03-27 17:42:47 -07:00
Kevin Lange
faae12f1cd Fix bg=16 in terminal being interpreted as transparent
This fixes a bug in Vim and one introduced an hour ago in Nyancat.
This bug was also present in early versions of bim.

Problem: If the background is set to 16 (all black) explicitly, we still
treat it as if it is the default color and thus make it transparent.
This is wrong, only the default background, as set by resetting either
the bg itself (with mode 49) or the full display parameter set (with 0)
should show up transparent.

Solution: By using flag to indicate wether the background is "default",
we can detect other uses of background color 16 without having fudge
with other colors like 0. The flag is ANSI_SPECBG, where SPEC means
"special", and thus it is set any time the background changes
explicitly, and is unset in raw cells or places where we are in default
mode.
2013-03-27 00:22:15 -07:00
Kevin Lange
4fc6fe741a Add usleep to newlib, silence some warnings 2013-03-26 23:30:09 -07:00
Kevin Lange
5867eec659 Deprecate legacy terminal size feedback 2013-03-25 22:24:26 -07:00
Kevin Lange
479827eb1b Clean up terminal resizes; fix scale 2013-03-22 22:08:21 -07:00
Kevin Lange
bc2e4741c7 Random bits and pieces 2013-03-22 15:11:19 -07:00
Kevin Lange
fa79c89e54 Some fixes and cleanup 2013-03-22 11:58:22 -07:00
Kevin Lange
ef459bdaad More rough stubs and fixes 2013-03-20 21:24:55 -07:00
Kevin Lange
21aeb34ea4 Rough ioctl with support for winsize 2013-03-18 23:57:40 -07:00
Kevin Lange
6f94ce2296 procfs extensions and ps command 2013-03-18 21:52:45 -07:00
Kevin Lange
71342f842d procfs, and more pty cleanup 2013-03-18 00:52:12 -07:00
Kevin Lange
e02cf79e2a Rough PTY support (needs work) 2013-03-17 16:34:23 -07:00
Kevin Lange
3b5b532a27 device file coloring in ls 2013-03-17 16:32:10 -07:00
Kevin Lange
eb92cccecd Cleanup 2013-03-15 00:52:09 -07:00
Kevin Lange
8dd2686b40 Really hack VFS implementation 2013-03-15 00:20:55 -07:00
Kevin Lange
22f04f137b Relatively compliant uname() implementation
Also, sleep() as a function (implemented by way of nanosleep) and new
absolute and relative sleep system calls added to newlib.

[ci skip] I damn well know this is going to break CI.
2013-03-13 21:55:25 -07:00
Kevin Lange
a8020854e4 TTK as a library 2013-02-12 00:04:31 -08:00
Kevin Lange
afa3750144 Fix docstring for build.py
[ci skip]
2013-02-10 20:10:13 -08:00
Kevin Lange
2f9fb19a4d Strip binaries again 2013-02-10 02:06:29 -08:00
Kevin Lange
4dbdaf342d compositor2 -> compositor 2013-02-10 02:01:31 -08:00
Kevin Lange
b2f94bd393 Completely new build system for userspace 2013-02-10 01:36:35 -08:00
Kevin Lange
f8aa509f36 Fix right shift 2013-02-01 22:39:57 -08:00
Kevin Lange
ef7c49b94c Global initializers. 2013-01-25 15:59:33 -08:00
Kevin Lange
82c55c0a58 plasma demo 2013-01-17 22:10:28 -08:00
Kevin Lange
ae7c7f66ae terminal snow 2012-12-29 16:36:00 +09:00
Kevin Lange
79be121b93 Fix lock hangs that broke everything 2012-12-13 19:45:39 -08:00
Kevin Lange
999c96c56b Replace old nyancat with updated version 2012-12-13 19:45:24 -08:00
Kevin Lange
23233e2b97 xenl like a good terminal should 2012-12-13 19:26:45 -08:00
Kevin Lange
8e9ee3d68e Decoration themes, sort of
A surprise x-mas gift, the old theme is back when WM_THEME=simple is set
2012-12-12 22:42:48 -08:00
Kevin Lange
5ab8df4120 login screen tweaks 2012-12-10 21:53:14 -08:00
Kevin Lange
edf0dcca19 threaded event processor should block
rather than yield-looping on an fstat
2012-12-10 21:19:13 -08:00
Kevin Lange
ada6136e42 Dirty semaphore implementation in userspace 2012-12-10 21:04:18 -08:00
Kevin Lange
3a977369af Timed process sleeping (and bug fixes) 2012-12-10 20:28:31 -08:00
Kevin Lange
e5e67c6410 Fix some a quick crash bug 2012-12-10 00:29:04 -08:00
Kevin Lange
21214256d7 restore terminal cursor blinking 2012-12-09 23:17:41 -08:00
Kevin Lange
8fb898be66 Restructure windowed applications for speed 2012-12-09 23:07:04 -08:00
Kevin Lange
643e827cb3 fix buffered backspace 2012-12-09 20:12:51 -08:00
Kevin Lange
5f17cbc27f primitive scrollback support in terminal 2012-12-09 19:57:04 -08:00
Kevin Lange
e83f88bacb Add time support to vfs 2012-12-09 16:59:55 -08:00
Kevin Lange
960fd2486c Minor improvements to ls 2012-12-09 16:03:22 -08:00
Kevin Lange
cd929b1ceb Fix some minor input issues 2012-12-08 00:24:43 -08:00
Kevin Lange
609cd514f1 set toolchain path 2012-12-07 20:35:33 -08:00
Kevin Lange
942c49806b retool build utils 2012-12-05 21:40:30 -08:00
Kevin Lange
af7e77953f fix test-borders (I moved the decoration files)
this does some lulzy stuff when you try to run it :D
[ci skip]
2012-12-04 13:06:21 -08:00
Kevin Lange
7ec90ee2ef Sync old compositor to new compositor
It still looks bad, as I haven't forced alpha blitting for everything,
but it supports all the new features now.
2012-12-02 21:47:44 -08:00
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