Age | Commit message (Collapse) | Author |
|
|
|
The LaunchServer is personal to "anon" and we don't want other users
accessing it to launch anything.
|
|
Step one of moving DesktopServices::open handling out of process. This
makes it easier to do things like read in associations for which program
opens which files or protocols. This gives users the ability to modify
the associations without having to rebuild :^)
|
|
|
|
This commit adds the standard /etc/protocols file to
the base files to be used by netdb's protoent family of functions.
|
|
Adding the services database file to /etc/services. This is the most
common location for this file in *nix systems.
|
|
The ResourceGraph menu applet now supports a few command line options:
--cpu / -C to display a CPU usage graph
--memory / -M to display a memory usage graph
--name / -n to set a name which is used to order applets
--color / -c to set the graph color (supports anything
Gfx::Color::from_string() understands)
The SystemServer.ini and WindowServer.ini config files have been updated
to spawn and show two ResourceGraph menu applets, one for CPU usage
(green) and one for memory usage (cyan) - this matches the colors in the
SystemMonitor graphs.
|
|
The plan is to extend what currently is known as "CPUGraph" and let the
SystemServer spawn multiple instances of it - which then can show memory
or network usages as well :^)
Simply renaming the applet is the first step.
|
|
|
|
Prior to this, we ran the DHCP client as a high-priority service, but
making the system feel laggy "for some network stuff" is not the
greatest of ideas :^)
|
|
This adds a DHCPClient...Server that leases IPv4s.
|
|
This reverts commit a60ea79a41845767ce40f225de20da7c99534ad1.
Reverting these changes since they broke things.
Fixes #1608.
|
|
|
|
|
|
Services can now have their initial working directory
configured via `SystemServer.ini`.
This commit also configures Terminal's working directory
to be /home/anon
|
|
This allows anon to shut down and reboot the system.
Fixes #775.
|
|
I probably would've done INI config removal in another commit, but it
fit well here because I didn't want to pledge wpath for SystemMenu if I
didn't need to.
Frankly, that's something that I think should be done: allow ConfigFile
to be used read-only.
|
|
Only thing I don't like right now is the fact that we rely on the shell.
|
|
Fixes #1231.
|
|
This patch adds NotificationServer, which runs as the "notify" user
and provides an IPC API for desktop notifications.
LibGUI gains the GUI::Notification class for showing notifications.
NotificationServer is spawned on demand and will unspawn after
dimissing all visible notifications. :^)
Finally, this also comes with a small /bin/notify utility.
|
|
This was actually rather painless and straightforward. WindowServer now
runs as the "window" user. Users in the "window" group can connect to
it via the socket in /tmp/portal/window as usual.
|
|
This is in preparation for running WindowServer as a separate user.
|
|
Now, we have UserName applet.
|
|
|
|
Then bind-mount /dev and /bin while adding back the appropriate permissions :^)
|
|
Notably, /tmp is now mounted nodev,nosuid :^)
|
|
This is probably not the final design we'll want for this, but for now
let's run the HTTP client code as a separate user to reduce exposure
for the standard "anon" user account.
Note that "protocol" is also added to the "lookup" group, in order to
allow ProtocolServer to contact LookupServer for DNS requests.
|
|
LookupServer now runs as lookup:lookup, allowing connections from other
members of the "lookup" group.
This is enforced through file system permissions by having the service
socket (/tmp/portal/lookup) be mode 0660.
Now the LookupServer program can't overwrite other people's files if it
starts misbehaving. That's pretty cool :^)
|
|
|
|
Only users in this group can access the screen, mouse and keyboard.
|
|
This fixes an issue where anyone could snoop on the virtual consoles.
|
|
We have clock applet.
|
|
This patch introduces the second MenuApplet: Audio. To make this work,
menu applet windows now also receive mouse events.
There's still some problem with mute/unmute via clicking not actually
working, but the call goes from the applet program over IPC to the
AudioServer, where something goes wrong with the state change message.
Need to look at that separately.
Anyways, it's pretty cool to have more applets running in their own
separate processes. :^)
|
|
|
|
|
|
For services explicitly configured as lazy, SystemServer will now listen
on the socket and only spawn the service once a client attempts to connect
to the socket.
|
|
|
|
|
|
|
|
|
|
When reaping a child, SystemServer will now match up child's pid with its own
record of the services, and respawn the service if keepalive is enabled for it.
For example, we want to restart the WindowServer if it crashes, but we wouldn't
want to restart the Terminal if it gets closed.
|
|
This replaces the hardcoded services list with a very simple config
file in /etc/SystemServer.ini :^)
Closes https://github.com/SerenityOS/serenity/issues/610
|
|
|
|
|
|
loading cursors causes a page-fault?
|
|
Also show setuid and setgid bits in "ls -l" output. :^)
|
|
I didn't like seeing /users next to /usr. /home looks nicer.
|
|
|
|
To start painting, call:
gui$get_window_backing_store()
Then finish up with:
gui$release_window_backing_store()
Process will retain the underlying GraphicsBitmap behind the scenes.
This fixes racing between the WindowServer and GUI clients.
This patch also adds a WSWindowLocker that is exactly what it sounds like.
|
|
This is really neat. :^)
|