summaryrefslogtreecommitdiff
path: root/Base/etc
AgeCommit message (Collapse)Author
2021-10-24Base: Make /usr/Tests read-only since it's now suid capableBrian Gianforcaro
Commit cf0dbc906 recently added the ability for setuid binaries to be located in /usr/Tests. This should really now be read only to mitigate the potential misuse of any of the setuid binaries.
2021-10-22Tests: Add a unit test to ensure the /dev/mem device works correctlyLiav A
To ensure everything works as expected, a unit test was added with multiple scenarios. This binary has to have the SetUID flag, and we also bind-mount the /usr/Tests directory to allow running of SetUID binaries.
2021-10-17LoginServer: Add --auto-login switchPeter Elliott
Auto login will automatically log in a user without prompting for a password, but will still allow logouts and subsequent password logins.
2021-10-17LoginServer: Process logins and start SystemServer in user modePeter Elliott
2021-10-17SystemServer: Add per user mode (--user)Peter Elliott
System server running in user mode will form the basis of a "session" for login purposes in serenity.
2021-09-08Base: Add PixelPaint (*.pp) file type iconsJack Delahunt
2021-09-08SystemServer: Don't rely on fstab to specify where to mount the ProcFSLiav A
For now, just hardcode the mounting in SystemServer code.
2021-08-27Base: Add FontEditor alias to shellrcthankyouverycool
2021-08-26Userland: Introduce ConfigServer and LibConfigAndreas Kling
ConfigServer is an IPC service that provides access to application configuration and settings. The idea is to replace all uses of Core::ConfigFile with IPC requests to ConfigServer. This first cut of the API is pretty similar to Core::ConfigFile. The old: auto config = Core::ConfigFile::open_for_app("App"); auto value = config->read_entry("Group", "Key"); The new: auto value = Config::read_string("App", "Group", "Key"); ConfigServer uses the ~/.config directory as its backing store and all the files remain human-editable. :^)
2021-08-24Userland: Remove IRC ClientAndreas Kling
The IRC Client application made some sense while our main communication hub was an IRC channel. Now that we've moved on, IRC is just a random protocol with no particular relevance to this project. This also has the benefit of removing one major client of the single- process Web::InProcessWebView class.
2021-08-23WindowServer: Add support for cursor themesMaciej Zygmanowski
Now you can specify a CursorTheme key in /etc/WindowServer.ini. The cursors are loaded from /res/cursor-themes/<name> directory. This directory contains a Config.ini file with format similar to previous Cursor section, except it uses relative paths. This commit adds also Default theme, which uses cursors being previously in /res/cursors. The WidgetGallery is updated to match the new cursor path format.
2021-08-22Base: Add csv file associationKarol Kosek
2021-08-12Base: Make /bin/Shell the login shell by defaultJean-Baptiste Boric
2021-07-22DesktopPicker: Make sure the applet always ends up in the same placeAndreas Kling
2021-07-19Applets: Add DesktopPicker appletPeter Elliott
This applet displays a grid of desktops, and shows the user what virtual desktop they are on. When clicked, the desktop will be changed.
2021-07-14SpiceAgent: Add a new spice agent service :^)x-yl
A SPICE agent communicates with the host OS to provide nifty features like clipboard sharing :^) This patch implements only plain-text clipboard sharing. See: github.com/freedesktop/spice-protocol/blob/master/spice/vd_agent.h
2021-07-10FileSystemAccessServer: Add service for accessing veiled files nicelyTimothy
Adds new service FileSystemAccessServer which allows programs to request a file descriptor for any file on the file system. The user can be prompted to choose the path with a FilePicker, or the path can be provided by the application which will show a MessageBox showing the pid and name of the calling process and allows the user to approve or deny the request.
2021-07-08SystemServer: Add entry for SQLServer in SystemServer.iniJan de Visser
2021-07-03WindowServer: Add API to change virtual desktop settingsTom
This also adds the ability to query how many virtual desktops are set up, and for the Taskbar to be notified when the active virtual desktop has changed.
2021-06-30FileIconProvider: Use sound icon for flac file extensionngc6302h
2021-06-29Base: Set UBSAN to deadly for TestRunner serviceAndrew Kaster
This will run all the tests that are children of this service with deadly UBSAN, ensuring we don't get any UBSAN regressions in on-target tests anymore. :^)
2021-06-25WindowServer: Add an Overlay class for flicker-free overlay renderingTom
An Overlay is similar to a transparent window, but has less overhead and does not get rendered within the window stack. Basically, the area that an Overlay occupies forces transparency rendering for any window underneath, which allows us to render them flicker-free. This also adds a new API that allows displaying the screen numbers, e.g. while the user configures the screen layout in DisplaySettings Because other things like drag&drop or the window-size label are not yet converted to use this new mechanism, they will be drawn over the screen-number currently.
2021-06-25AudioServer: Make AudioServer boot in text modekleines Filmröllchen
This way, we can have Audio on the console :^)
2021-06-20WindowServer: Add initial support for rendering on multiple screensTom
This allows WindowServer to use multiple framebuffer devices and compose the desktop with any arbitrary layout. Currently, it is assumed that it is configured contiguous and non-overlapping, but this should eventually be enforced. To make rendering efficient, each window now also tracks on which screens it needs to be rendered. This way we don't have to iterate all the windows for each screen but instead use the same rendering loop and then only render to the screen (or screens) that the window actually uses.
2021-06-12Base: Add Sectigo certs to ca_certs.iniPaul Irwin
Adds Sectigo RSA Domain, Extended, and Organization cert subjects to ca_certs.ini. These are the new names for the old Comodo CA certs that are already trusted.
2021-06-06Base: Make anon's helper services run with 600 socket permissionsAndreas Kling
Some of these were using 660 permissions which meant that other users in the "users" group could connect to anon's service processes. Let's tighten things up by not allowing that. :^)
2021-06-06Clipboard: Remove unnecessary UID separationAndreas Kling
This process is already sandboxed to the point where the UID doesn't matter, so let's just stop having the separate "clipboard" user.
2021-06-06NotificationServer: Remove unnecessary UID separationAndreas Kling
This process is already sandboxed to the point where the UID doesn't matter, so let's just stop having the separate "notify" user.
2021-06-06Base: Tidy up /etc/shadowAndreas Kling
Prune removed user accounts and sort by UID, same as /etc/passwd
2021-06-04Shell: Add TMPDIR environment variableJelle Raaijmakers
https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/ V1_chap08.html TMPDIR This variable shall represent a pathname of a directory made available for programs that need a place to create temporary files. Ports like PHP benefit from having this environment variable set, and there exist a lot of scripts that assume the presence of such an environment variable.
2021-05-30pls: Drastically simplify this programAndreas Kling
Since this program is setuid-root, it should be as simple as possible. To that end, remove `/etc/plsusers` and use filesystem permissions to achieve the same thing. `/bin/pls` is now only executable by `root` or members of the `wheel` group. Also remove all the logic that went to great lengths to `unveil()` a minimal set of filesystem paths that may be used for the command. The complexity-to-benefit ratio did not seem justified, and I think we're better off keeping this simple. Finally, remove pledge promises the moment they are no longer needed.
2021-05-29Userland: Check sudoers file perms and owner in plsJesse Buhagiar
As per comment found in #6319 by @bcoles, `pls` should check the permissions and owner of the sudoers file to ensure that it hasn't been compromised.
2021-05-29Userland: Implement `pls`, a sudo cloneJesse Buhagiar
2021-05-24Base: Document the Shell's new termios allow-listAli Mohammad Pur
Also add `stty` to that list by default.
2021-05-22Userland: Remove SymbolServer and the "symbol" user+groupAndreas Kling
2021-05-21WindowServer: Store system font queries in WindowServer.ini :^)Andreas Kling
Changes to the system font settings are now persisted in /etc. Note that you still need to restart the system for changes to fully apply in all programs.
2021-05-14Userland: Rename QuickShow => Image ViewerAndreas Kling
The old name was a bit too ambiguous. This one is crystal clear. :^)
2021-05-13Services: Add InspectorServer to reverse the direction of InspectorAndreas Kling
This service daemon will act as an intermediary between the Inspector program and the inspectable programs it wants to inspect. Programs can make themselves available for inspection by connecting to /tmp/portal/inspectables using the Core::EventLoop RPC protocol.
2021-05-11Shell: Add an option to autosave history every N msAli Mohammad Pur
...and set it to 10 seconds by default.
2021-05-11Userland: Implement a magnifier appValtteri Koskivuori
This utility is useful for making sure those UI elements are pixel perfect. A simple 2x/4x magnification around the mouse cursor, shown in a window.
2021-05-09Userland: Preserve keyboard mapping preference on reboot (#6955)Ömer Kurttekin
2021-05-06Base: Remove unnecessary UID separation of multi-process BrowserAndreas Kling
After looking closely at this, I realized that we've been running all the service processes under separate user accounts even though there's actually no need to. Since we already use pledge() and unveil() to limit the scope and access of these programs, separating them to another UID doesn't achieve anything meaningful. So let's bring them back to the "anon" user account and simplify things. Programs affected: - ImageDecoder - RequestServer - WebContent - WebSocket Longer term, I'd like for all of these to get spawned for the current desktop user somehow, possibly by some kind of session manager, or perhaps by the Browser program itself. But for now they remain under SystemServer's control.
2021-05-05Base: Start LookupServer on bootSergey Bugaev
I can't say I like starting yet another thing on boot... but now that LookupServer provides mDNS (and optionaly DNS) services to other hosts, we have to start it on boot, not when the first local client connects.
2021-05-01Ports: Use sendfd()/recvfd() for mm_send_fd()/mm_receive_fd()Gunnar Beutner
2021-05-01LibC: Implement support for getspnam() and friendsGunnar Beutner
2021-04-29WindowServer: Move configuration file to /etc/WindowServer.iniAndreas Kling
This was in the /etc/WindowServer/ directory which had nothing else in it, so let's just get rid of the directory and move this up one step.
2021-04-29Everywhere: Use "the SerenityOS developers." in copyright headersLinus Groh
We had some inconsistencies before: - Sometimes "The", sometimes "the" - Sometimes trailing ".", sometimes no trailing "." I picked the most common one (lowecase "the", trailing ".") and applied it to all copyright headers. By using the exact same string everywhere we can ensure nothing gets missed during a global search (and replace), and that these inconsistencies are not spread any further (as copyright headers are commonly copied to new files).
2021-04-25Services: Rename ProtocolServer to RequestServerDexesTTP
The current ProtocolServer was really only used for requests, and with the recent introduction of the WebSocket service, long-lasting connections with another server are not part of it. To better reflect this, this commit renames it to RequestServer. This commit also changes the existing 'protocol' portal to 'request', the existing 'protocol' user and group to 'request', and most mentions of the 'download' aspect of the request to 'request' when relevant, to make everything consistent across the system. Note that LibProtocol still exists as-is, but the more generic Client class and the more specific Download class have both been renamed to a more accurate RequestClient and Request to match the new names. This commit only change names, not behaviors.
2021-04-25Services: Add a WebSocket serviceDexesTTP
The WebSocket service isolates communication with a WebSocket to its own isolated process. Similar to other isolating services, it has its own user and group.
2021-04-25Tests: Add environment variable for tests onlyAndrew Kaster
This is useful for CI where we don't want to spend a minute and a half benchmarking Vector::append, and we don't have a good way to pass test-specific arguments yet. :)