Commit Graph

1000 Commits

Author SHA1 Message Date
Kevin Lange
17e332b5e7 expose mounting to userspace 2014-06-09 20:13:11 -07:00
Kevin Lange
b59871ca67 More random terminal cleanup while we're here 2014-06-08 19:47:24 -07:00
Kevin Lange
30e5829fc6 cd home in graphical session, too 2014-06-08 13:33:59 -07:00
Kevin Lange
6492fb2d8e add which 2014-06-08 12:02:21 -07:00
Kevin Lange
775895e5ea remove extraneous test command from sh 2014-06-08 12:02:15 -07:00
Kevin Lange
06bd230076 fix out-of-order reference to cwd in sh prompt 2014-06-08 01:33:40 -07:00
Kevin Lange
546ec13ec2 Use diamond as Unicode replacement character in vga text-mode 2014-06-08 00:32:00 -07:00
Kevin Lange
827bd1fe04 Fix horizontal lines in vga text mode 2014-06-08 00:29:56 -07:00
Kevin Lange
01c3cb5581 Cleanup/fix ~ handling in shell 2014-06-08 00:21:23 -07:00
Kevin Lange
1ad63b4eae Dump user into their homedir on login 2014-06-08 00:13:07 -07:00
Kevin Lange
d3b4a7c5dc Tweak a few extraneous copyright headers 2014-06-07 23:29:17 -07:00
Kevin Lange
6f1a76a2c4 Merge 2048 license into the source file 2014-06-07 23:25:12 -07:00
Kevin Lange
cd6f175d02 Replace [accidentally] missing minix license from stty 2014-06-07 23:22:40 -07:00
Kevin Lange
ef7d72c1e1 License headers and a tool to generate them 2014-06-07 23:13:29 -07:00
Kevin Lange
e4732df6e1 And support dynamic (24-bit, 32-bit) colors as well 2014-06-07 22:20:27 -07:00
Kevin Lange
eccbd5d41e Map 256-color palette to VGA colors 2014-06-07 22:14:03 -07:00
Kevin Lange
b114700751 Fix scrolling/overhang in vga terminal 2014-06-07 22:13:51 -07:00
Kevin Lange
b6a50e4041 Fix missing linefeed before last argument in ls 2014-06-07 19:33:29 -07:00
Kevin Lange
7fa3a6ce32 fancy pstree 2014-06-07 18:32:19 -07:00
Kevin Lange
36feea1673 Support multiple paths in ls, with more expected output 2014-06-07 16:20:54 -07:00
Kevin Lange
b2f0324370 show s in right place for setuid binaries 2014-06-07 15:11:08 -07:00
Kevin Lange
9d3cef60cf support c (char device) and b (block device) in ls -l 2014-06-07 15:05:24 -07:00
Kevin Lange
8d897bedac move random test that ended up in userspace/ over to userspace/test 2014-06-06 13:54:03 -07:00
Kevin Lange
5a59d1b4b5 flush before exit in echo [xxx: this needs to happen on exit] 2014-06-06 11:42:19 -07:00
Kevin Lange
2680ee8660 use save/restore in prompt rather than ramming to the left 2014-06-06 11:42:04 -07:00
Kevin Lange
55e52e2c33 make sure init is init and not just some kernel thread with ppid=0 2014-06-05 23:48:36 -07:00
Kevin Lange
72b63109b2 Add a simple pstree [not fancy yet] 2014-06-05 23:41:33 -07:00
Kevin Lange
40c399e43a Differentiate shell prompt for root 2014-06-05 22:36:03 -07:00
Kevin Lange
94c976a903 More awesome improvements to ls 2014-06-05 22:19:55 -07:00
Kevin Lange
6c72d9c3ae Various improvements to ls, like -h 2014-06-05 21:34:10 -07:00
Kevin Lange
51d0f31f42 use setuid in login/glogin 2014-06-03 23:14:03 -07:00
Kevin Lange
f019dc7b7a Ditch zlists and selectbuffers for better methods 2014-06-01 13:09:58 -07:00
Kevin Lange
067797031f Fix window shape blurring during transforms 2014-06-01 02:12:00 -07:00
Kevin Lange
a4b5f6a107 Add some extra toggles to gears 2014-06-01 01:56:01 -07:00
Kevin Lange
fb6ce15372 Blur alpha channel in box blur 2014-06-01 01:55:50 -07:00
Kevin Lange
eb4d05b86b Faster blurring with box blur (will use in compositor in future) 2014-06-01 01:33:25 -07:00
Kevin Lange
fdc5265aff Handle resize in gears 2014-05-31 22:12:57 -07:00
Kevin Lange
226002057f Slightly different debug method for shapes and bounds 2014-05-31 21:54:52 -07:00
Kevin Lange
cc7bb71b06 (Optionally, manually updated) alpha-based window shapes 2014-05-31 21:37:07 -07:00
Kevin Lange
1b3401b71b Change some styling in the 'classic' decorations theme 2014-05-30 22:28:02 -07:00
Kevin Lange
5813ea96e1 remove the debug print in tab completion in sh 2014-05-30 22:00:07 -07:00
Kevin Lange
7e67bf0727 Break out of that particular escape on linefeed 2014-05-30 21:29:29 -07:00
Kevin Lange
e157147550 Fix buffer overflow in termemu 2014-05-30 21:20:13 -07:00
Kevin Lange
41b7bb88f7 Allow builtins in pipelines 2014-05-30 20:50:19 -07:00
Kevin Lange
6296aff867 Fix handling of eof in login 2014-05-30 17:05:49 -07:00
Kevin Lange
8ed59a8cb8 Hacky implementation of pipes in shell 2014-05-30 16:23:40 -07:00
Kevin Lange
1edb302b94 support ^D in shell rline 2014-05-29 21:46:38 -07:00
Kevin Lange
84420f9e5c Support closing packetfs connections 2014-05-28 19:21:56 -07:00
Kevin Lange
8c5b5f3f0c hostnames won't start with -, let's naively pretend... 2014-05-27 23:45:00 -07:00
Kevin Lange
952b6de6bb Add some test apps that helped track it down 2014-05-27 22:52:55 -07:00
Kevin Lange
d696f51f8b Real unix pipes 2014-05-27 21:38:30 -07:00
Kevin Lange
e1a1c1058f system() blocks, let's call sh -c ourselves... 2014-05-26 13:46:55 -07:00
Kevin Lange
a576c84f28 Load desktop icons from a file 2014-05-26 13:36:38 -07:00
Kevin Lange
45cfecc043 Present the nested compositor at 50,50 instead of 0,0 2014-05-26 12:57:39 -07:00
Kevin Lange
ab2a9f056f Quick and dirty display server nesting - lots of mouse event changes 2014-05-26 12:43:22 -07:00
Kevin Lange
ed36fe9c7f Remove vga-warning (why do I still have this?) 2014-05-26 00:18:20 -07:00
Kevin Lange
f054cebdce naive implementation of sudo and possibly insecure setuid support 2014-05-25 21:59:51 -07:00
Kevin Lange
095675b012 Be sure cleanup in i>image_size exit case 2014-05-23 18:56:49 -07:00
Kevin Lange
9cf5cafd28 Merge pull request #49 from lioncash/forgot-one
Forgot one other leak case
2014-05-23 16:43:38 -07:00
Lioncash
2d313df844 Forgot one other leak case 2014-05-23 19:42:17 -04:00
Lioncash
85a84291b6 Fix some potential memory leaks within graphics.c 2014-05-23 19:36:32 -04:00
Kevin Lange
ad303097d3 Merge pull request #47 from lioncash/dat-overflow-doe
Fix a sprintf size typo which would overwrite the error buffer in bim's open_file func
2014-05-21 18:06:38 -07:00
Lioncash
b3ba650ac2 Fix a sprintf size typo which would overwrite the error buffer in bim's open_file func 2014-05-21 21:03:45 -04:00
Kevin Lange
29e7f0def1 Fix null pointer trying to alt-tab without windows 2014-05-19 18:38:16 -07:00
Kevin Lange
dcdf53db89 Make a bunch of apps respond to session end message 2014-05-19 18:34:05 -07:00
Kevin Lange
ce0dacb912 Use spinlock.h instead of continually definign this as static in a bunch of apps 2014-05-18 19:34:49 -07:00
Kevin Lange
0cdfcf766e Support frameless non-fullscreen terminals 2014-05-18 19:23:05 -07:00
Kevin Lange
dde993c79c Store decoration theme settings in /etc/passwd 2014-05-18 18:13:14 -07:00
Kevin Lange
71946d8a97 Invert resize rounding behavior for terminal 2014-05-18 18:10:18 -07:00
Kevin Lange
a1e8a40b22 More gridding options 2014-05-18 18:08:34 -07:00
Kevin Lange
4c99c387f5 Expose pc speaker as device file 2014-05-18 16:11:14 -07:00
Kevin Lange
6379aa19ff Bring a few more apps up to speed with new yutani features 2014-05-18 13:57:33 -07:00
Kevin Lange
068f933a71 Kill some excessive debug output in the terminal 2014-05-18 12:24:17 -07:00
Kevin Lange
2675532013 Add a terminal option to disable rounding resizes to cell widths 2014-05-18 12:18:34 -07:00
Kevin Lange
6e028b6550 left-right tiling 2014-05-18 12:15:18 -07:00
Kevin Lange
3cb7b18c60 Client-initiated window drag 2014-05-18 11:54:20 -07:00
Kevin Lange
d9830f7989 Major refactor of panel 2014-05-12 20:11:58 -07:00
Kevin Lange
c231d1c090 Cleanup some direct system calls in userspace 2014-05-11 17:40:16 -07:00
Kevin Lange
4d310b3c03 Make sure wallpaper and panel clean up dead children 2014-05-10 20:09:16 -07:00
Kevin Lange
bcb86108ce Fix terminal damage rects 2014-05-10 14:02:49 -07:00
Kevin Lange
c042d04fc0 remove extraneous debug output 2014-05-09 23:04:30 -07:00
Kevin Lange
0061105b29 Make the alt-tab slick and operate as expected 2014-05-09 23:03:47 -07:00
Kevin Lange
d3273d934a Simple key binding system, plus alt-tab and ctrl-alt-t 2014-05-09 22:01:24 -07:00
Kevin Lange
e6418d3b92 cheap integration test with expect 2014-05-08 21:13:44 -07:00
Kevin Lange
ee9ff92b60 Clean up some legacy /etc stuff 2014-05-07 00:10:34 -07:00
Kevin Lange
50824abdec And actually load the right file... 2014-05-05 22:03:57 -07:00
Kevin Lange
4bcd567bb5 Uh, draw the logout button for the logout button 2014-05-05 22:00:20 -07:00
Kevin Lange
2fbc220546 Cleanup panel 2014-05-05 21:47:45 -07:00
Kevin Lange
c6dd91a113 Maintain window ordering in panel list 2014-05-05 21:18:13 -07:00
Kevin Lange
1bef69e527 Panel icons for game and julia fractals 2014-05-03 17:51:33 -07:00
Kevin Lange
49aebbbb8d advertise windows in ttk 2014-05-03 17:28:53 -07:00
Kevin Lange
0947432963 Actually make an effort to release textures from closed windows 2014-05-03 15:41:16 -07:00
Kevin Lange
a4b70a6cda Rudimentary fullscreen shortcut 2014-05-03 15:36:09 -07:00
Kevin Lange
6a8281611d + is totally valid in names, let's be silly 2014-05-03 14:06:55 -07:00
Kevin Lange
15ff21f104 Support icons other than the precached ones 2014-05-03 13:51:37 -07:00
Kevin Lange
9fce12f10c Only used scaled rendering if icon is not correct size 2014-05-03 13:22:40 -07:00
Kevin Lange
601768c4bf Panel icon support 2014-05-03 13:20:16 -07:00
Kevin Lange
d55c5953e1 Handle focused windows properly 2014-05-03 12:22:16 -07:00
Kevin Lange
2070d255e2 New window advertisement format 2014-05-03 12:07:03 -07:00
Kevin Lange
2d7b15b231 Don't readvertise RPG window every time 2014-05-02 23:20:48 -07:00
Kevin Lange
e3a23bad5b Brand new Makefile-based userspace build system 2014-05-02 22:38:39 -07:00
Kevin Lange
04435920fe Yutani client library does not depend on pthreads 2014-05-02 19:33:22 -07:00
Kevin Lange
0cdc07b021 Update nyancat to 1.4.4 2014-05-01 11:17:22 -07:00
Kevin Lange
5d4b0df120 Make sure toast daemon doesn't block its death signal 2014-04-29 00:52:31 -07:00
Kevin Lange
74d710fe5f Supplementary plane support (emojis) 2014-04-29 00:29:19 -07:00
Kevin Lange
29841b03fc Fix waitpid calls to account for EINTR 2014-04-29 00:28:41 -07:00
Kevin Lange
4d8335ad75 Implement proper wait/waitpid.
This is a pretty big commit, so let's run through it in parts:

- All of the userspace changes are to switch away from syscall_wait
  Mostly, this is to waitpid; some things were tweaked to do things
  "properly" instead of waiting for particular processes. Init has
  been fixed to do a proper spin wait.
- syscall_wait is gone - as are its uses. newlib bindings have been
  using just waitpid for a while now.
- waitpid now performs like a Unix waitpid
- process reaping is no longer a "do this on next change thing":
  it happens when a process is waited on, like it should
  (That means we can have real zombies: terminated processes that
  have not yet been waited on)
- Reparenting of children to init has been implemented, so you
  can fork-daemonize!

Overall, this is pretty big... So I hope it doesn't break everything.
2014-04-27 01:37:33 -07:00
Kevin Lange
cb19356d50 Break out some magic numbers in toast daemon 2014-04-26 18:05:56 -07:00
Kevin Lange
d79bd92b6c Updated toast theme 2014-04-25 23:16:58 -07:00
Kevin Lange
29065dd94c Fix bad divide in premultiply 2014-04-25 19:47:27 -07:00
Kevin Lange
273b4ce9fa Don't draw logo after login 2014-04-24 22:41:23 -07:00
Kevin Lange
a56a6a6f9c fix some dumb stuff in Draw 2014-04-24 22:38:53 -07:00
Kevin Lange
1487ad17e5 Fix focus default in terminal 2014-04-24 22:36:20 -07:00
Kevin Lange
af6ad29235 Finish port of ttk-demo to yutani 2014-04-23 21:15:12 -07:00
Kevin Lange
1b3dcea6a1 Toast notification daemon 2014-04-21 19:46:38 -07:00
Kevin Lange
deeb1c42a5 fix bad operation ordering for window allocation 2014-04-20 13:47:59 -07:00
Kevin Lange
3241d36e6d Mouse enter/leave/move for non-focused window 2014-04-20 13:44:17 -07:00
Kevin Lange
d967fae3a5 Track down the root of that malloc problem 2014-04-20 13:19:52 -07:00
Kevin Lange
30a79e8ac6 Change focus from panel 2014-04-20 01:24:10 -07:00
Kevin Lange
140f5a71e0 Reenable scrollback (bit glitchy) 2014-04-19 19:51:11 -07:00
Kevin Lange
6300959b12 Ensure thread safety during window buffer things 2014-04-19 19:11:10 -07:00
Kevin Lange
05e3276858 Workaround a weird glitch in newlib's malloc 2014-04-19 19:10:44 -07:00
Kevin Lange
40124cac49 various minor pieces of cleanup 2014-04-19 18:37:37 -07:00
Kevin Lange
6c5a14c839 Fix timings for logo animation in login window 2014-04-19 18:12:13 -07:00
Kevin Lange
77b830ace5 Regular mouse movement events
Demonstrated in the wallpaper with hover states for the icons
2014-04-19 17:44:20 -07:00
Kevin Lange
c5c895bc06 Don't send sigint to wallpaper on session exit 2014-04-19 17:11:07 -07:00
Kevin Lange
30d4eade35 fix missing break in game 2014-04-19 17:08:14 -07:00
Kevin Lange
48e0ddd99e Rudimentary animation system
This is actually the same as the animation system from the old
compositor, but with some added bits for damage rects.
2014-04-19 16:59:32 -07:00
Kevin Lange
9e152263c7 fix terminal rendering on scroll 2014-04-19 15:00:26 -07:00
Kevin Lange
68892b9023 Terminal should only resize to nice sizes if it can. 2014-04-18 20:07:46 -07:00
Kevin Lange
fb67eca4ff support resize in terminal 2014-04-18 19:46:05 -07:00
Kevin Lange
3591981f58 should mark windows win they request to be moved 2014-04-18 19:45:55 -07:00
Kevin Lange
9264a203dd Quick and dirty session ending support with a broadcast event 2014-04-18 19:23:45 -07:00
Kevin Lange
700e711606 Start on panel functionality: Window title advertisement 2014-04-18 00:18:19 -07:00
Kevin Lange
0535ccd993 mouse-initiated window resizes 2014-04-17 00:24:54 -07:00
Kevin Lange
b3410b4b4b Basic resize support (client-initiated) 2014-04-16 23:50:57 -07:00
Kevin Lange
092b08e496 Use an asynch poll loop to eat events in rpg demo (like we used to) 2014-04-16 18:51:09 -07:00
Kevin Lange
e8bbfd3221 Add an ioctl to query available pex data 2014-04-16 18:29:49 -07:00
Kevin Lange
939749edf9 unbork terminal 2014-04-16 11:18:40 -07:00
Kevin Lange
9a985ff5fc Speed up terminal rendering a bit with regions 2014-04-16 00:59:58 -07:00
Kevin Lange
7827244d64 Add a subregion damage command 2014-04-16 00:00:52 -07:00
Kevin Lange
2cd36c2edf unbreak ^C and make window rotation use the right bindings 2014-04-15 23:26:27 -07:00
Kevin Lange
c1e53f9bc2 Kill debug output from yutani client library 2014-04-15 22:48:31 -07:00
Kevin Lange
16d7a9e032 Make wallpaper icons work again 2014-04-15 21:27:07 -07:00
Kevin Lange
d48b00a767 Kill window.h/window.c 2014-04-15 21:22:45 -07:00
Kevin Lange
262f06a979 port a bunch of other things 2014-04-15 21:16:46 -07:00
Kevin Lange
32fca2fa1b port make-it-snow to yutani 2014-04-15 20:43:08 -07:00
Kevin Lange
0c46b42667 port cairo and pixman demos 2014-04-15 20:38:47 -07:00
Kevin Lange
6065112552 port teapot to yutani 2014-04-15 20:31:14 -07:00
Kevin Lange
4801031d6d port gears to yutani 2014-04-15 20:22:12 -07:00
Kevin Lange
80854c820f fix missing free from yutani poll 2014-04-15 20:22:02 -07:00
Kevin Lange
0ba7947052 port clock-win to yutani 2014-04-15 20:08:21 -07:00
Kevin Lange
39af77be57 port drawlines to yutani 2014-04-15 20:08:12 -07:00
Kevin Lange
b8551d2174 Kill the old compositor 2014-04-15 19:45:56 -07:00
Kevin Lange
c08aa78052 Make draw-beta super speedy 2014-04-15 00:04:39 -07:00
Kevin Lange
73b0fd1f6c Verify mouse events work with a port of Draw 2014-04-14 23:46:13 -07:00
Kevin Lange
f4c6ef10ad Basic mouse events to windows 2014-04-14 23:24:44 -07:00
Kevin Lange
e39c08965e Bring back rotation 2014-04-14 22:42:40 -07:00
Kevin Lange
00ecfff45f make kbd library reentrant 2014-04-14 21:03:23 -07:00
Kevin Lange
17f176c888 Basic window movement in Yutani 2014-04-13 21:52:16 -07:00
Kevin Lange
6db3fe2ec2 Focus change events 2014-04-13 18:28:42 -07:00
Kevin Lange
f0ca89685b Support window focus change 2014-04-13 17:58:19 -07:00
Kevin Lange
731c1303c2 Use env to store compositor endpoint 2014-04-12 18:59:43 -07:00
Kevin Lange
e52728fcba Run fullscreen terminal under yutani 2014-04-12 18:15:44 -07:00
Kevin Lange
9a8cd903c0 Fix argument handling in yutani 2014-04-12 16:20:46 -07:00
Kevin Lange
3d7a3969eb Support launching arbitrary debug shells 2014-04-11 22:43:39 -07:00
Kevin Lange
bb5b6a0830 Add args parsing and some error handling to yutani 2014-04-11 22:43:18 -07:00
Kevin Lange
d85f3fd4ce Resurrect vga terminal 2014-04-11 20:03:01 -07:00
Kevin Lange
a5621fee66 prepare glogin-beta for eventual cairo port 2014-04-10 21:59:03 -07:00
Kevin Lange
dbcb8b39f7 Use a render thread. 2014-04-07 00:51:59 -07:00
Kevin Lange
44d177a466 Use cairo to flip framebuffer with clips 2014-04-07 00:23:20 -07:00
Kevin Lange
e919ec4548 idgi, but this seems to work 2014-04-06 21:03:50 -07:00
Kevin Lange
58f32b064d Port stuff from old compositor
lots of stacking functionality ported
still need window focus and mouse events, plus mouse move and other
server-side control...
2014-04-06 20:42:29 -07:00
Kevin Lange
4002901d0d Run login app and have it run terminal 2014-04-06 18:48:40 -07:00
Kevin Lange
7009e4ec1c Continued progress on Yutani 2014-04-06 18:21:35 -07:00
Kevin Lange
60d66da7e6 Quick port of Terminal to yutani 2014-04-06 13:25:04 -07:00
Kevin Lange
489cc1221f Bump 2048 to newest remote master 2014-04-06 13:24:44 -07:00
Kevin Lange
058574d5a8 fix some missing frees 2014-04-06 00:30:00 -07:00
Kevin Lange
ed82bbd55e quick hacks to get key events flowing 2014-04-05 19:26:49 -07:00
Kevin Lange
6ea113d8b2 Very early work on yutani 2014-04-05 18:36:07 -07:00
Kevin Lange
490d1dd9f0 Fix compositor keyboard after I broke it 2014-04-05 17:06:28 -07:00
Kevin Lange
5ead18d352 Fix typo 2014-04-05 15:44:38 -07:00
Kevin Lange
51d398fc76 Remove special handling for tty access, make init do it 2014-04-05 15:43:14 -07:00
Kevin Lange
a8d599b570 Remove calls to syscall_print 2014-04-05 15:25:34 -07:00
Kevin Lange
5277e3ce64 More PEX cleanup 2014-04-02 22:50:32 -07:00
Kevin Lange
c7500d8aeb cleanup debug messages from test-pex 2014-04-02 00:47:41 -07:00
Kevin Lange
d810a9cca1 Fix packet sending 2014-04-02 00:42:35 -07:00
Kevin Lange
272afa1999 Rudimentary packetfs 2014-04-02 00:26:15 -07:00
Kevin Lange
af0467946e colors for dev files in ls -l 2014-04-01 23:15:04 -07:00
Kevin Lange
6d2e151eff fix derp in cat 2014-04-01 22:59:29 -07:00
Kevin Lange
2205c11ae0 Cleaner desktop launch 2014-04-01 21:39:08 -07:00
Kevin Lange
ace9e62ccc Actually, do the fade, but not the scale 2014-04-01 21:29:36 -07:00
Kevin Lange
b53d912e3e Updated login screen 2014-04-01 21:23:56 -07:00
Kevin Lange
091ab50a3f Add a non-vignetting blur function 2014-04-01 21:23:22 -07:00
Kevin Lange
3140c8e4b2 Disable animations for backrounds and panels 2014-04-01 21:22:58 -07:00
Kevin Lange
d7086574ca Build updates 2014-03-27 23:37:38 -07:00
Kevin Lange
37f2a70ab5 Add 2048 from mevdschee, with license and README 2014-03-26 21:17:29 -07:00
Kevin Lange
927d16950a cleanup for ansi library 2014-03-24 21:35:27 -07:00
Kevin Lange
543ca3eb5e initial work to separate ansi/term stuff to library 2014-03-24 21:08:07 -07:00
Kevin Lange
2cfdec3435 remove unnecessary include 2014-03-24 20:21:44 -07:00
Kevin Lange
8980f568a3 Consolidate datastructure libraries 2014-03-24 20:18:40 -07:00
Kevin Lange
c7414e579f fix run-tests (not that it's used) 2014-03-23 20:26:03 -07:00
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
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