Commit Graph

388 Commits

Author SHA1 Message Date
Kevin Lange
0a872f859e Prevent rotating panel + wallpaper 2016-09-03 19:46:18 +09:00
Kevin Lange
e671d988cf Mouse-initiated window rotation 2016-09-03 00:21:45 +09:00
Kevin Lange
2365244a18 Fix bad resizing bounding box on resize start 2016-09-02 23:51:11 +09:00
Kevin Lange
36de9ca511 Correct resizing rotated windows 2016-09-02 23:38:38 +09:00
Kevin Lange
46e38fba0b Make sure wallpaper frees properly 2016-09-02 19:49:11 +09:00
Kevin Lange
48ac4cd578 Experimental wallpaper selector 2016-09-02 19:30:28 +09:00
Kevin Lange
a9fabe285d Initial support for changing display modes 2016-08-30 15:45:58 +09:00
Kevin Lange
54d418cd8b First pass at modifier+arrows in terminal.
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)
2015-11-09 17:24:51 -08:00
Kevin Lange
eca744c9bc Support reloading wallpapers
With fade effects.
Send SIGUSR1 to the wallpaper app to refresh from config.
2015-11-08 18:20:56 -08:00
Kevin Lange
d877b60aaa New wallpaper: Yosemite 2015-10-15 16:15:13 -07:00
Kevin Lange
2959d53e3e Consider panel y offset when calculate tile bounds; add keybind to hide terminal by moving it up 2015-10-15 16:14:55 -07:00
Kevin Lange
02fbd0ef4b Fix weird VGA cursor positioning by moving it offscreen 2015-09-04 13:48:47 -07:00
Kevin Lange
139781d4fe Make sure some cursor updates are processed correctly 2015-08-31 14:00:23 -07:00
Kevin Lange
5e4791ae2b [yutani] Alternate cursor types.
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.
2015-08-30 20:05:35 -07:00
Kevin Lange
0553a0802f Support DEL, HOME, END, INS, shift+TAB
Adds support for these keys in lib/kbd, adds mappings to terminfo,
supports them in the terminal, and adds support for HOME, END and DEL
to the shell.

Closes #71.
2015-08-20 10:48:53 -07:00
Kevin Lange
879b637822 Remove extraneous debug trace from imgviewer 2015-08-06 15:07:01 -07:00
Kevin Lange
c3fd67d529 Add a basic image viewer to replace the one we ditched ages ago 2015-08-06 15:01:49 -07:00
Kevin Lange
3763680786 Bind Alt+F4 to SESSION_END which is accepted by applications as a close signal 2015-07-18 12:04:24 +09:00
Kevin Lange
3382200324 Move live-wizard out of gui/demo/ 2015-07-18 11:58:59 +09:00
Kevin Lange
5ad013594a Several improvements to window resizing
- Supports directional resizing, including restricted left/right/up/down
- Decoration-initiated resizing is now supported
  - Details of how the decorator determines up-restricted resizing
    still need some work.
- Corrected issues when attempting to resize to the other side of the
  origin.
- Corrected some other compositor issues.
2015-07-17 22:54:10 +09:00
Kevin Lange
d968d27636 Add some silly extra stuff to the tutorial 2015-07-12 19:40:47 +09:00
Kevin Lange
4cf6843441 Prune garbage from keyboard from before terminal started 2015-07-12 19:23:59 +09:00
Kevin Lange
06b57c14f8 Use pure-software cursor for VGA terminal, works better 2015-07-12 19:15:29 +09:00
Kevin Lange
7f608107dc Add half-filled character to VGA terminal mappings 2015-07-12 19:08:30 +09:00
Kevin Lange
a9b2f5a8c0 Bail immediately if not connected to Yutani in yutani-query 2015-07-12 19:08:13 +09:00
Kevin Lange
1d8a7b0056 Restructure live CD wizard to two processes 2015-07-12 18:57:12 +09:00
Kevin Lange
f129bbcdc6 More work on livecd welcome app [ci skip] 2015-06-22 23:54:56 -07:00
Kevin Lange
f8abc9a68c Actually add all the CD source files 2015-06-22 22:02:00 -07:00
Kevin Lange
1365f55ba6 Start work on live CD welcome tutorial 2015-06-18 23:25:09 -07:00
Kevin Lange
4501419126 More sysinfo stuff 2015-06-11 21:09:25 -07:00
Kevin Lange
20c9535d29 Clean up termemu and add a new kernel vga logging mechanism 2015-06-01 00:20:02 -07:00
Kevin Lange
afb5543771 move tracing from glogin out into a header, use it in yutani 2015-05-26 18:41:48 -07:00
Kevin Lange
7f66c10230 Bind scroll to volume up/down on volume icon 2015-05-18 22:19:30 -07:00
Kevin Lange
d8ac0fc902 Add a working (but read-only) volume knob to the panel. 2015-05-18 21:36:49 -07:00
Kevin Lange
8e61d4ee3a Cleanup unused functions in glogin 2015-05-15 22:51:47 -07:00
Kevin Lange
eb3e865036 Update pong description 2015-05-12 23:29:24 -07:00
Kevin Lange
de3e405b52 Make pong prettier 2015-05-12 20:51:07 -07:00
Kevin Lange
2a59b09a9a This is terrible: Yutani Pong 2015-05-11 22:20:27 -07:00
Kevin Lange
f0f286acb7 Yield after flipping display after glogin
Fixes very common issue where artifacts of the login widget were visible
after logging in before the desktop started up.
2015-05-09 22:11:55 -07:00
Kevin Lange
c661e3073d Add more icon search paths 2015-05-02 18:57:49 -07:00
Kevin Lange
a6f071f9c8 New scroll rows should set background colors. 2015-05-01 00:36:50 -07:00
Kevin Lange
365295010c Make animations in Yutani faster. 2015-04-30 18:06:36 -07:00
Kevin Lange
dd74cdcec2 Map Vim config'd tab/space characters in VGA terminal 2015-04-29 16:29:36 -07:00
Kevin Lange
4fd1ae9aa3 Support scrollwheel mice 2015-04-26 18:05:14 -07:00
Kevin Lange
a3f9ab465b Basic xterm (?1000 and ?1002) mouse support 2015-04-26 17:14:14 -07:00
Kevin Lange
278059d6a2 Use timers for animations (compositor, desktop)
Yutani, glogin, and wallpaper now use timing information from the kernel
to perform animations. Some animation lengths have been adjusted. The
animations should run at the same speed, though with varying
"smoothness" across different hardware (including non-KVM emulators).
2015-04-14 23:09:54 -07:00
Kevin Lange
e7ff3e20f8 Wallpaper from config, readd old wallpapers 2015-04-11 18:22:26 -07:00
Kevin Lange
78db32cb6f Config files, theming in glogin 2015-04-11 18:06:54 -07:00
Kevin Lange
e95cbda703 Merge pull request #83 from lioncash/leaks
compositor: get rid of a leak in window_actually_close
2015-04-10 17:02:55 -07:00
Lioncash
99c907bf95 compositor: get rid of a leak in window_actually_close
The function call allocates on the heap, so this would cause a leak.
2015-04-10 19:21:28 -04:00
Kevin Lange
1147d45cdb Don't blink the cursor in unfocused terminals 2015-04-05 15:50:52 -07:00
Kevin Lange
a243bb2849 Mouse warping and hiding (for games) 2015-04-05 15:41:00 -07:00
Kevin Lange
a9c0f36a0c Add a nifty animation when an application is started on the desktop. 2015-04-04 22:19:14 -07:00
Kevin Lange
f938569a77 Handle window move in TTK 2015-04-04 22:19:01 -07:00
Kevin Lange
9065454a75 Yutani now sends WINDOW_MOVE when windows move.
Window moves are non-lazy, so continuous updates are received while a
window is being dragged. Prior to this change, a client would not have
any idea where a window was outside of its own idea of when it last
requested a move (which may have been denied, or immediately overriden).
This allows applications to produce child windows in appropriate
locations, or to drag child windows (undocked toolbars, etc.) while they
are being moved.

This uses the same message format as the request format, as well as the
same message type, as has been previously done for various events.
2015-04-04 21:29:29 -07:00
Kevin Lange
338174a75c Various improvements to glogin 2015-04-04 18:39:55 -07:00
Kevin Lange
a7b1397c7d Fix debug output from yutani-server listed as 'yutani' 2015-04-03 09:59:19 -07:00
Kevin Lange
570bb3e1b7 Kill some debug output in wallpaper. 2015-04-03 09:58:38 -07:00
Kevin Lange
0bf67a5a8c some random extra test apps 2015-03-27 12:48:34 -07:00
Kevin Lange
9f34619078 Fix alt-tab 2014-11-06 11:31:24 -08:00
Kevin Lange
fe95e33422 Fall back to variable-width font in terminal 2014-09-08 21:17:46 -07:00
Kevin Lange
aaeb7d10f4 Port a bunch of other stuff to use getpwuid, etc. 2014-08-26 22:12:33 -07:00
Kevin Lange
a0a6ece24d Run $SHELL on terminal startup instead of hard-coded /bin/sh 2014-08-26 21:37:45 -07:00
Kevin Lange
9cc5ddd0e9 pwent stuff in libc, auth modules moved toa library 2014-08-26 21:34:29 -07:00
Kevin Lange
5d90fa8c24 Restore screenshot functionality to compositor (ctrl+super+s/w) 2014-08-05 17:32:29 -07:00
Kevin Lange
ae570f8f48 Toggle decorations in terminal with F12 2014-08-04 21:54:18 -07:00
Kevin Lange
d746209191 Fix critical problem with toast daemon 2014-08-01 22:51:39 -07:00
Kevin Lange
771b28a9c7 Fix crash on resizing plasma 2014-08-01 21:29:48 -07:00
Kevin Lange
49752793b7 Close button support in decorations library 2014-08-01 21:17:41 -07:00
Kevin Lange
62de55b5f4 Cleanup and function header comments in compositor. 2014-07-28 21:10:34 -07:00
Kevin Lange
9a9f3fdc17 silence debug output from menu 2014-06-28 23:15:38 -07:00
Kevin Lange
d5002a819c Add a bit of transparency to menus 2014-06-13 16:04:29 -07:00
Kevin Lange
1bd947f331 fix incorrect help text for teapot 2014-06-13 15:48:17 -07:00
Kevin Lange
c37b532948 More menu visual tweaks 2014-06-13 00:27:57 -07:00
Kevin Lange
3378a548a5 Fix clock event handling 2014-06-12 11:10:56 -07:00
Kevin Lange
e388d600db Finally, an applications menu. 2014-06-11 21:09:38 -07:00
Kevin Lange
f4e038f602 why is my clock multithreaded, staaahp 2014-06-11 19:23:52 -07:00
Kevin Lange
4d3bde2f3a more shape thresholds: teapot, clock-win 2014-06-11 19:02:15 -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
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
d3b4a7c5dc Tweak a few extraneous copyright headers 2014-06-07 23:29:17 -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
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
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
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
84420f9e5c Support closing packetfs connections 2014-05-28 19:21:56 -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
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
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
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
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
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
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