Commit Graph

333 Commits

Author SHA1 Message Date
Kevin Lange
cea692b577 And now with more login.
* Also cleaning up some kernel logging options here.
* You can log in as local or root with passwords local and toor
* Graphical sessions are still buggy, so don't kill that terminal.
2012-09-12 23:19:07 -07:00
Kevin Lange
b4ae49b056 Graphical Login Manager (without the login part)
* Some-what managed sessions
* Cool fade in effect from the bootscreen
* Not terribly unawesome rendering of everything else
2012-09-12 22:10:10 -07:00
Kevin Lange
994af55611 PNG wallpapers; compositor bug fixes; oh my!
* Fresh new wallpaper as a PNG from gnome-look:
  http://gnome-look.org/content/show.php/Echo?content=137142
  (By user hyperdude111, released as "do whatever you want")
* Terminal bug fix for --geometry option, which was derping on height
  vs. width.
* Compositor bug fix for wallpaper app not showing up at the bottom.
  Fixed by doing a better job of reordering the windows on a REORDER
  call (which we weren't actually doing).
2012-09-12 20:10:48 -07:00
Kevin Lange
ba358a51ff Bump kernel version
* Panel now displays actual kernel version using the uname hack
2012-09-12 20:08:30 -07:00
Kevin Lange
46d8f11c88 Add libpng/zlib to the toolchain
* Also some minor updates to the toolchain in general.
* Replacing the old bitmap wallpaper (not the actual wallpaper, but the
  terminal one) with a fresh new wallpaper as a PNG.
2012-09-12 20:06:22 -07:00
Kevin Lange
3a5fda0d9c Super fast terminal scrolling.
* Uses memmove to shift terminal cells and graphics memory.
* Can cat cat super-fast!

Verified in windowed, fullscreen, and VGA modes.

[ci skip]
2012-09-10 23:42:45 -07:00
Kevin Lange
688e2f19bd Updated READMEs, TODOs, fonts, Bim.
* A minor bug has been fixed in bim's write_file method
* The VL Gothic fonts have been updated (and the proportional version of
  the font is now included)
* The README and TODO have both been updated to reflect current plans.
2012-09-09 20:48:43 -07:00
Kevin Lange
c8cfd50fd7 Rudimentary support for moving the viewport horiz.
Rough, still a bit broken, needs cursor tracking.

[ci skip]
2012-09-08 22:25:32 -07:00
Kevin Lange
fe07b4b9bb Support for multiple buffers (tabs) in bim.
:tabp and :tabn will switch between them.
:q will try to (fully) close the current tab, :q! will force it.
:qall will try to close all tabs; maybe I'll :qall! later.
2012-09-08 20:20:38 -07:00
Kevin Lange
3a62d779f0 Include a working implementation of wcwidth()
Terminal and Bim both use this third-party implementation of wcwidth()
Please see the README for copyright and license information.

[ci skip]
2012-09-08 16:47:43 -07:00
Kevin Lange
58ca0b984c Add write support; make sacrifices to the gods
- Write support!
- The widths of characters is now determined with freetype ;-;
  I really wish wcwidth() was a real thing, but it's not.
  This is a sacrifice that had to be made.

  If you are building FOR Linux -rather than toaru- you might need to
  poke at some things to make sure it builds, but in my experience it is
  working just fine (and IMEs now work properly).

  [ci skip]
2012-09-08 15:54:56 -07:00
Kevin Lange
d424e70aa6 [bim] Insert linebreaks into the middle of lines
[ci skip]
2012-09-08 15:23:10 -07:00
Kevin Lange
df8afae9b9 Linux support for bim; fix a bug when opening
[ci skip]
2012-09-08 14:37:48 -07:00
Kevin Lange
b63f0a11f7 Refresh the statusbar when the cursor moves
Because we weren't always doing that, especially on normal-mode
movements. [ci skip]
2012-09-08 02:39:45 -07:00
Kevin Lange
d2374903f1 This is Bim, a Bad IMitation of Vim.
It's an editor, but it is incomplete. For example, write is not
supported yet, so you can open existing files and make modifications,
but you can not save them. Use it as a fun little scratchpad, I guess.
2012-09-08 01:47:19 -07:00
Kevin Lange
ea1146ea17 More minor fixes to the terminal 2012-09-08 00:17:43 -07:00
Kevin Lange
af6be648d4 A lot of refactoring 2012-09-07 20:17:00 -07:00
Kevin Lange
12bf07364c Pull the font and palette out of the terminal code
Honestly, the latter should be configurable to an extent.

[ci skip]
2012-09-06 19:46:36 -07:00
Kevin Lange
7939ccb93f Minor bugfixes and readme updates.
[ci skip]
2012-09-06 14:54:05 -07:00
Kevin Lange
9948dcc4c3 Add a hacky method to get the terminal dimensions
\033[1003z will stuff them into stdin like 80,24.
This is a hack, just like the "disable local echo" hack used for
passwords and it should, ideally, be replaced with a proper system as
defined in POSIX for terminal control, but for, it works, and that's
pretty cool because it means `ls` can stop being stupid.
2012-09-05 22:47:52 -07:00
Kevin Lange
1a1a8bcdad Fix redrawing and scrolling for wide chars
[ci skip]
2012-09-05 20:42:54 -07:00
Kevin Lange
ac52d41144 Unicode Text Support
* Some applications now support UTF-8 text through the use of a very
  simple decoder.
* The terminal uses a slow, but accurate method to determine the width
  of a character the first time it is printed to the screen. Characters
  are now stored in the terminal in two bytes, rather than one, and may
  in the future be increased to 3 or 4 bytes to ensure support for
  Unicode supplemental planes.
* A simple font-fallback method is employed in the applications that
  support unicode that will make use of the VL Gothic fonts if the
  DejaVu font does not have a character. No guarantees are made for
  support of writing systems other than extended Latin and Japanese.
2012-09-05 20:19:52 -07:00
Kevin Lange
07955c83c6 Fix dozens of build warnings and other oddities.
* Finally bring syscall.h up to speed and include all syscalls in the
  syscall module of the C library.
* Remove the third-party obfuscated C demos (we have nyancat, good
  enough)
* Fix userspace apps to build without complaining about undeclared
  strtok_r by disable __STRICT_ANSI__
* Fix .eh_frame by including the proper stuff with libgcc.
2012-09-04 20:27:49 -07:00
Kevin Lange
efa51d0d56 Don't print silly messages in the terminal...
[ci skip]
2012-09-03 23:54:04 -07:00
Kevin Lange
8ed06789ed New debug printing facilities.
- Can now register a userspace file descriptor as the output for kernel
  print statements through kprintf()
- Can set logging levels for debug print messages, which are separate
  from kernel log events and meant to be more readily visible. Log
  events are recorded in a buffer to be viewed later, though nothing
  actually using logging at the moment.
- Serial output is disabled by default now. You can enable it yourself
  by appending the logtoserial argument to the kernel on boot.
2012-09-03 22:35:11 -07:00
Kevin Lange
bba242dd62 Add a testing framework.
This is an automated system by which we boot qemu headless and use the
serial line to capture output from a testing application that is started
on bootup, running with the VGA terminal shell. This might be expanded
to boot to the graphical display within VNC and perform more advanced
tests with the Python shim using a VNC module for Python; we'll see.
2012-09-02 02:24:25 -07:00
Kevin Lange
c88d6dcb4f Add or update the heading comments for user apps.
Adds useful descriptions to ones that were lacking them, updates ones
that were innacurate, etc.
2012-07-06 21:08:28 -07:00
Kevin Lange
6dae6ac0a7 Add a simple touch command (not exactly compliant) 2012-05-31 20:37:16 +09:00
Kevin Lange
e9e4d89ac8 Toolchain installer now does freetype 2012-05-17 11:50:25 -04:00
Kevin Lange
b7647f108f Build toolchain should produce working gcc now 2012-05-16 23:08:43 -04:00
Kevin Lange
5457de3906 System Debugging Functions syscall 2012-05-16 20:51:37 -04:00
Kevin Lange
99d12d70a6 New WIP dynamic loader. 2012-05-01 13:40:04 -05:00
Kevin Lange
f2d729aee2 Add some write-verification tools [copy seems to work] 2012-04-30 19:01:55 -05:00
Kevin Lange
327523aabf Various bits of cleanup 2012-04-19 20:21:19 -05:00
Kevin Lange
14c9c1039a Graphics testing application with a cool animation. 2012-04-17 18:37:00 -05:00
Kevin Lange
1869a37582 Fix an off-by-one in the pure int alpha_blend 2012-04-17 18:36:29 -05:00
Kevin Lange
1ea3fc5652 Added thickness settings to draw app 2012-04-17 16:06:44 -05:00
Kevin Lange
de684b66c1 Move the Draw quit button into its titlebar for lulz 2012-04-17 15:41:14 -05:00
Kevin Lange
4cb3f0020b Minor stuff 2012-04-17 15:34:34 -05:00
Kevin Lange
40130c6782 Negative mouse coordinates. 2012-04-17 14:25:03 -05:00
Kevin Lange
0b6045918b Centered text for buttons 2012-04-17 13:55:54 -05:00
Kevin Lange
efcae21316 Shared memory fonts library 2012-04-17 13:46:46 -05:00
Kevin Lange
4f2c122af5 Context-based graphics library.
All graphics library commands now take a gfx_context_t pointer, which
points to a simple datastructure describing a rendering context (width,
height, depth, total size, front buffer, backbuffer; where backbuffer =
front buffer when not in double-buffering mode, thus we always render to
backbuffer except on a flip). This may have caused a minor speed
reduction, but I don't really care as it's far more important that we
support multiple graphics contexts.

TODO:
- Shared Memory Fonts library (there are a couple of apps that use these
  so-called "shmem fonts" on their own; we need a dedicated library for
  them)
- Break off "TTK" GUI toolkit into its own library. Since it's just a
  callback-based button framework, this shouldn't be too hard right now.
  Also, with the previous tick, I'll be able to put labels on controls
  and start using text in more places.
2012-04-17 13:21:34 -05:00
Kevin Lange
35074fedec Quit button? Quit button. 2012-04-13 22:20:36 -05:00
Kevin Lange
9987416fad Drawing app has buttons (working on a toolkit) 2012-04-13 01:21:01 -05:00
Kevin Lange
9d4e560b8b Minor mouse fixes 2012-04-12 23:30:04 -05:00
Kevin Lange
5a1a45bc09 Faster mouse response
- Discard lots of packets
- Don't yield?
2012-04-12 23:21:38 -05:00
Kevin Lange
0eaf3a99a3 Separate pthread; add mouse move events? 2012-04-12 22:42:24 -05:00
Kevin Lange
3e70898674 Yeah, disable debug flags while we're still working on initrds... 2012-04-11 16:03:20 -05:00
Kevin Lange
285acf68a0 Reenable login prompts (vga textmode only) 2012-04-11 15:24:24 -05:00
Kevin Lange
d45b8be815 Let nyancat run with proper VGA term support 2012-04-11 00:04:26 -05:00
Kevin Lange
ac7720f396 Reenable support for a VGA text-mode terminal. 2012-04-10 23:35:12 -05:00
Kevin Lange
e60cd2b49e Collect, but do not send, mouse events. 2012-04-10 22:34:36 -05:00
Kevin Lange
e89fb94d2f Exiting terminals, but there's a problem somewhere... 2012-04-10 21:55:41 -05:00
Kevin Lange
eb56624581 Fix up clock appearance 2012-03-29 12:12:06 -05:00
Kevin Lange
3d9d947701 Graphical analogue clock 2012-03-28 20:34:28 -05:00
Kevin Lange
650e85598f Remove Andy Sloane's Donut Mark (It didn't work) 2012-03-28 16:22:48 -05:00
Kevin Lange
76f96a431e Fix some graphics-related things 2012-03-28 15:54:31 -05:00
Kevin Lange
e6addf3419 The panel app uses a hardcoded version number, update it 2012-03-28 01:16:35 -05:00
Kevin Lange
f68ca25622 Boot-to-shell through kernel argument 'single' 2012-03-27 21:47:25 -05:00
Kevin Lange
958262e69d Fix argv[0] bug 2012-03-27 21:36:39 -05:00
Kevin Lange
639881f931 Make things faster, better, stronger, etc. 2012-03-27 19:09:11 -05:00
Kevin Lange
0448e530ec Render moving windows in a cool way 2012-03-27 18:19:35 -05:00
Kevin Lange
9fd73be686 Trying a few fixes... We're still doing some things very, very wrong. 2012-03-27 16:52:46 -05:00
Kevin Lange
fb6e5d59e3 Completely rewrite rendering model for compositor.
We know longer accept DAMAGE and REDRAW commands. Instead, we just loop
and redraw everything anyway (efficiently, mind you). Pipes still have
issues when closed and various other different things.
2012-03-27 13:58:21 -05:00
Kevin Lange
182de81a79 [userspace] Various. BOOT TO TERMINAL 2012-03-23 17:44:37 -05:00
Kevin Lange
103dccf604 ಠ_ಠ 2012-03-20 16:37:49 -05:00
Kevin Lange
3a60e4e6bd Comment the C++ test program 2012-03-20 16:30:59 -05:00
Kevin Lange
1038ceab72 There is something terribly wrong with how we're doing this. 2012-03-20 16:23:24 -05:00
Kevin Lange
c35af17b78 By executing ios_base::Init(), we cout will work... 2012-03-20 16:22:50 -05:00
Kevin Lange
2e4543d956 Oops, silly me. Minor little bug fixed 2012-03-16 20:05:56 -05:00
Kevin Lange
fc00d3f1f9 Terminal improvements 2012-03-16 17:09:00 -05:00
Kevin Lange
816ddc8f3e Lots of process cleanup implemented; improved cursor rendering 2012-03-14 22:03:55 -05:00
Kevin Lange
ffbe7b7b38 A bunch of stuff. 2012-03-14 15:04:12 -05:00
Kevin Lange
2c4e4e5d03 Fix up destroy() so we can (in theory) delete windows from their owning apps 2012-03-13 17:44:19 -05:00
Kevin Lange
03ee7ed9a9 Fix a kernel elf loader bug that was breaking getopt() 2012-03-13 17:43:35 -05:00
Kevin Lange
2791e7fd35 We've been doing some really stupid shit here... 2012-03-10 18:20:34 -06:00
Kevin Lange
db617812e4 Disable resizing of windows 2012-03-10 12:39:13 -06:00
Kevin Lange
f8ca55805a window_destroy is broken and screws up everything 2012-03-10 09:12:40 -06:00
Kevin Lange
73c6171226 Last minute bug fixes 2012-03-08 23:36:40 -06:00
Kevin Lange
a8f32e077f lol 2012-03-08 15:43:00 -06:00
Kevin Lange
ca43444cc5 don't take location for View app 2012-03-08 02:50:33 -06:00
Kevin Lange
c7500735f4 Adjust Nyancat 2012-03-08 01:10:36 -06:00
Kevin Lange
19a12bec78 lol panel 2012-03-07 23:44:02 -06:00
Kevin Lange
c15402af4c Use window server to determine window size for wallpaper 2012-03-07 22:40:58 -06:00
Kevin Lange
7a9961a9b2 Wallpaper application for scalable wallpaper support 2012-03-07 22:31:24 -06:00
Kevin Lange
a9519bd18a Minor updates to userspace apps 2012-03-07 19:35:15 -06:00
Kevin Lange
f3f0a58b95 Cleaner makefile for userspace 2012-03-06 15:32:26 -06:00
Kevin Lange
8fb8edba3a I have no idea idea what I'm doing. 2012-03-01 21:13:52 -06:00
Kevin Lange
a1a6303bee Faster is_top by way of a depth map 2012-02-26 00:45:46 -06:00
Kevin Lange
70fa12eaf6 remove some old test applications 2012-02-26 00:17:14 -06:00
Kevin Lange
2b0d6f6759 Some very simplistic window management 2012-02-25 23:52:09 -06:00
Kevin Lange
35f5266acf *sigh*... 2012-02-25 22:47:20 -06:00
Kevin Lange
61967e17e4 Use shmem fonts for terminal 2012-02-25 21:28:33 -06:00
Kevin Lange
7e71b3c2af Fix focusing 2012-02-23 01:40:37 -06:00
Kevin Lange
52dd077032 Multiple terminals, fixed focusing, getopt is borked 2012-02-23 01:30:56 -06:00
Kevin Lange
ef82703d5d Terminal actually handles input properly [kbd only] 2012-02-23 00:58:14 -06:00
Kevin Lange
db8a75071d We have a terminal. In a window. Seriously. 2012-02-23 00:36:49 -06:00
Kevin Lange
442ad96588 lolz 2012-02-23 00:02:00 -06:00
Kevin Lange
0ab782da19 Merge markus' changes 2012-02-20 23:34:09 -06:00
Kevin Lange
2da22312a5 Merge branch 'master' of github.com:klange/osdev 2012-02-20 23:32:10 -06:00
Kevin Lange
de7a984938 Fix a bunch of bugs in signal handling and scheduling 2012-02-20 23:31:00 -06:00
Kevin Lange
5de319b816 Work on Shmem fonts
Still need to pass sizes around to shm_* functions as a pointer rather
than the actual size so we can retreive sizes; additionally, *p = 0
should mean "we don't want to create this buffer, we only want to
access it if it exists".
2012-02-20 18:33:09 -06:00
Kevin Lange
16b71c532f [compositor] Load up fonts into shm 2012-02-20 12:18:13 -06:00
Kevin Lange
6268eb3f4e Actually allocate a buffer for double buffering... 2012-02-20 09:23:10 -06:00
Kevin Lange
d768932265 Stop specifing core2 for arch in userspace.
This was creating binaries with invalid opcodes on i7 desktop kvm.
Which is hilarious.
2012-02-20 08:39:00 -06:00
Kevin Lange
a222c3f56a Various bits of graphical fun stuff 2012-02-19 22:35:20 -06:00
Kevin Lange
d048006b9c Fix bitmap loading pinkness bug 2012-02-19 21:43:13 -06:00
Kevin Lange
e335a2970a [glogin] Working on the graphical login application 2012-02-19 21:29:40 -06:00
Kevin Lange
e1beca4127 CPU detection moved to userspace app 2012-02-19 19:39:18 -06:00
Kevin Lange
a97194f0bf You stack'd when you should have queue'd! 2012-02-17 15:31:40 -06:00
Kevin Lange
b30cd50864 Keyboard handling in the compositor 2012-02-17 01:28:12 -06:00
Markus Schober
71fd14d6f7 shm_obtain takes a (size_t *), altering it according to the size of the
block it returned.

Conflicts:
	userspace/compositor.c
2012-02-16 03:43:30 -06:00
Markus Schober
6dc90b1ac2 shm_obtain takes a (size_t *) and modifies the value based on the true
size of the block returned.
2012-02-16 03:34:42 -06:00
Markus Schober
79e67dbe16 drawlines will totally tell you if you gave it a key 2012-02-15 23:14:36 -06:00
Kevin Lange
678ed81c65 Extensive stability fixes. I think I finally squashed those stack bugs. 2012-02-16 22:43:41 -06:00
Kevin Lange
8fb69d44cd I have no frickin' clue what's causing these startup crashes. Requires further investigation. 2012-02-16 15:09:56 -06:00
Kevin Lange
a1d821de9b Various fixes 2012-02-16 14:38:50 -06:00
Kevin Lange
a72f9bc7cf Fix stack bug. 2012-02-16 14:31:40 -06:00
Kevin Lange
4694c67936 Add lock options to thread demo app 2012-02-16 01:48:51 -06:00
Kevin Lange
af860d46f2 Update threadtest to actually demonstrate the classic concurrency bug 2012-02-16 01:34:12 -06:00
Kevin Lange
c67d2796ef Finish threading (might still be some bugs) 2012-02-16 01:06:44 -06:00
Kevin Lange
cffbb02240 Stuff and things 2012-02-15 20:50:31 -06:00
Kevin Lange
3980460484 top/left offsets are SIGNED; add julia fractal thingy 2012-02-13 19:46:00 -06:00
Kevin Lange
86fc80a5e6 Fix overlaps by actually assigning real indexes... 2012-02-13 16:35:57 -06:00
Kevin Lange
c211c61369 Well, that works. 2012-02-13 16:21:52 -06:00
Kevin Lange
9e4d78e721 Fix off-by-one rendering issue 2012-02-12 22:42:25 -06:00
Kevin Lange
749c22c2eb There are some heisenbugs here. I can taste them. 2012-02-12 22:24:02 -06:00
Kevin Lange
1f3d78f8ea Redraw root... 2012-02-12 19:34:19 -06:00
Kevin Lange
abf1e5c837 THIS... IS... SPAAAAARTAAA!!! 2012-02-12 19:30:36 -06:00
Kevin Lange
de0bbe739b Fix a bunch of system calls... 2012-02-12 18:47:01 -06:00
Kevin Lange
e453b08dd6 Debugging, use proper signals, etc. 2012-02-12 17:00:21 -06:00
Kevin Lange
9b1e227c0f Fix a dozen different things. 2012-02-12 16:45:23 -06:00
Markus Schober
c47e199802 Working on window functionality 2012-02-12 05:24:40 -06:00
Kevin Lange
adf2b02b4b [user] Remove the keyboard event loop from julia2
It doesn't even need one; eventually, we'll have window management and
you'll just close the app. It should technically just sit in a loop
endlessly after rendering (or waitforsignal, which we don't have yet).
2012-02-11 22:43:26 -06:00
Kevin Lange
ec391b013e Fix merge conflict 2012-02-11 18:02:14 -06:00
Kevin Lange
49adc34013 Fix buffer overwrites and other issues in compositor 2012-02-11 18:01:21 -06:00
Markus Schober
b06b4fc576 Compositor doesn't clobber the heap anymore. 2012-02-11 17:57:22 -06:00
Markus Schober
a3384aac9e The new compositor is armed and (almost) fully operational! 2012-02-11 15:54:01 -06:00
Kevin Lange
824f2dfb94 fix typos 2012-02-11 01:23:27 -06:00
Kevin Lange
a4178b9248 Magic, identifiers, etc. 2012-02-11 01:20:17 -06:00
Kevin Lange
3411eb380f Protocol refinements 2012-02-11 00:06:09 -06:00
Kevin Lange
9315c95452 Command formats and numbers 2012-02-10 23:29:08 -06:00
Kevin Lange
bc692e83df New compositing work 2012-02-10 23:23:20 -06:00
Markus Schober
d28726fae7 [userspace] really simple second compositor built on shm 2012-02-10 22:54:50 -06:00
Markus Schober
45903b204b fixed a subtle bug in shm; added a bunch of utilities to test it 2012-02-10 22:31:38 -06:00
Kevin Lange
e5f3e49c9d [user] lock application (silly, command line) 2012-02-09 15:29:32 -06:00
Kevin Lange
71842055f4 Fix off-by-one 2012-02-08 22:42:11 -06:00
Kevin Lange
3eb42fe0f0 Fix RPG rendering, finally 2012-02-08 21:22:30 -06:00
Kevin Lange
d1bb652db3 Various.
[init] Reenable freetype in the Terminal spawned from init
[nyancat] Fix timing and update animations
[esh] Fix bug with child pid collection and signal handling
2012-02-08 15:56:27 -06:00