summaryrefslogtreecommitdiff
path: root/Base
AgeCommit message (Collapse)Author
2020-01-07Themes: Support rubberband selection theming0xtechnobabble
2020-01-04Base: Space out some names in app filesJami Kettunen
2020-01-04Base: Add an "audio" group that gets to write to /dev/audioAndreas Kling
2020-01-04Base: Add a "phys" group for users with physical accessAndreas Kling
Only users in this group can access the screen, mouse and keyboard.
2020-01-04SystemServer: Explicitly open /dev/null for services without StdIOAndreas Kling
Spawning services with nothing open at all on the standard I/O fds is way too harsh. We now open /dev/null for them instead.
2020-01-04SystemServer: Fetch any extra GIDs and call setgroups() before spawnAndreas Kling
We now pick up all the user's extra GIDs from /etc/group and make sure those are set before exec'ing a service. This means we finally get to enjoy being in more than one group. :^)
2020-01-04Base: Add "tty" group and make /dev/tty* be root:tty mode 610Andreas Kling
This fixes an issue where anyone could snoop on the virtual consoles.
2020-01-03Keymap+Base: Keycode fixes, remove workaroundTibor Nagy
Add missing keymap entries for the dollar sign and escape key and reformat the Hungarian keymap. Remove the workaround for "0x08", replace it with '\b'. Fix the octal/hex mixup in the value of escape key. (033 != 0x33, 033 == 0x1B)
2020-01-02Kernel: Make the purge() syscall superuser-onlyAndreas Kling
I don't think we need to give unprivileged users access to what is essentially a kernel testing mechanism.
2020-01-02Base: Move the modload and modunload command documentation to man8Andreas Kling
These are system administration commands, not intended for use by all users. These tend to go in section 8.
2020-01-02Base: Remove "idle" priority note from SystemServer(5)Andreas Kling
The "idle" priority was never meant to be exposed to userspace, as it's only used by the kernel's internal idle thread.
2020-01-02Base: Document EPERM error in module_load(2) and module_unload(2)Andreas Kling
Only the superuser can use these system calls.
2020-01-01Kernel: Disable x86 RDTSC instruction in userspaceAndreas Kling
It's still possible to read the TSC via the read_tsc() syscall, but we will now clear some of the bottom bits for unprivileged users.
2020-01-01Kernel: Prevent executing I/O instructions in userspaceAndreas Kling
All threads were running with iomapbase=0 in their TSS, which the CPU interprets as "there's an I/O permission bitmap starting at offset 0 into my TSS". Because of that, any bits that were 1 inside the TSS would allow the thread to execute I/O instructions on the port with that bit index. Fix this by always setting the iomapbase to sizeof(TSS32), and also setting the TSS descriptor's limit to sizeof(TSS32), effectively making the I/O permissions bitmap zero-length. This should make it no longer possible to do I/O from userspace. :^)
2020-01-01Kernel: Enable x86 UMIP (User Mode Instruction Prevention) if supportedAndreas Kling
This prevents code running outside of kernel mode from using the following instructions: * SGDT - Store Global Descriptor Table * SIDT - Store Interrupt Descriptor Table * SLDT - Store Local Descriptor Table * SMSW - Store Machine Status Word * STR - Store Task Register There's no need for userspace to be able to use these instructions so let's just disable them to prevent information leakage.
2019-12-31Base: Update Finnish keymap with proper AltGr supportJami Kettunen
2019-12-31Base: Add Hungarian keymapTibor Nagy
2019-12-31Crash: Add a "Test All Crash Types" optionShannon Booth
Add an option "-A", that will run all of the crash types in the crash program. In this mode, all crash tests are run in a child process so that the crash program does not crash. Crash uses the return status of the child process to ascertain whether the crash happened as expected.
2019-12-30Base: Remove misplaced backtick in syscall(1)Andreas Kling
2019-12-30Base: Add glyph spacing fields to fontsTibor Nagy
2019-12-30Base: Add man page for keymap(1)Jami Kettunen
2019-12-30Base: Add ASCII-friendly fi.jsonJami Kettunen
2019-12-29Base: Add man page for purge(8)Andreas Kling
2019-12-28Base: Add 2x upscaled Liza fontsTibor Nagy
2019-12-27WindowServer: Remove Clock from server.Hüseyin ASLITÜRK
We have clock applet.
2019-12-27PaintBrush: Add an "ellipse tool"Shannon Booth
The tool currently supports drawing an elliptical line of a specified thickness. Further improvements can include adding a fill mode, and holding down shift to draw a perfect circle. Closes #375.
2019-12-26PaintBrush: Add a "rectangle tool"Shannon Booth
Fill, line, and gradient modes initially supported :^)
2019-12-26Base: Add 3x upscaled Liza fontsTibor Nagy
Upscaled with hq3x then cleaned up the glyphs manually.
2019-12-26LibDraw: Add MenuBaseText and MenuSelectionText color rolesAndreas Kling
This allows the very aesthetic "Hotdog Stand" theme to have quite reasonable looking menus.
2019-12-26Base: Add Hotdog Stand themeConrad Pankoff
2019-12-25crash: Add "-X" option for attempting to execute non-executable memoryAndreas Kling
2019-12-24LibDraw: Add ColorRole::BaseText (to be painted on ColorRole::Base)Andreas Kling
2019-12-24Userland: Add syscall -l option and man pageMauri de Souza Nunes
2019-12-24LibDraw: Add Selection and SelectionText system theme colorsAndreas Kling
2019-12-24Base: Describe kernel modules, syscalls, and programsConrad Pankoff
2019-12-24Docs: Add cal(1) man pageAndrés Vieira
2019-12-24Themes: Add a simple "Dark" theme :^)Andreas Kling
2019-12-24LibDraw: Add Button and ButtonText system theme colorsAndreas Kling
These are now separate from the Window and WindowText colors.
2019-12-23WindowServer+LibGUI: Implement basic color themingAndreas Kling
Color themes are loaded from .ini files in /res/themes/ The theme can be switched from the "Themes" section in the system menu. The basic mechanism is that WindowServer broadcasts a SharedBuffer with all of the color values of the current theme. Clients receive this with the response to their initial WindowServer::Greet handshake. When the theme is changed, WindowServer tells everyone by sending out an UpdateSystemTheme message with a new SharedBuffer to use. This does feel somewhat bloated somehow, but I'm sure we can iterate on it over time and improve things. To get one of the theme colors, use the Color(SystemColor) constructor: painter.fill_rect(rect, SystemColor::HoverHighlight); Some things don't work 100% right without a reboot. Specifically, when constructing a GWidget, it will set its own background and foreground colors based on the current SystemColor::Window and SystemColor::Text. The widget is then stuck with these values, and they don't update on system theme change, only on app restart. All in all though, this is pretty cool. Merry Christmas! :^)
2019-12-16LibHTML: Support the :only-child pseudo classAndreas Kling
2019-12-16LibHTML: Support the :empty pseudo classAndreas Kling
2019-12-16LibHTML: Support the :first-child and :last-child pseudo classesAndreas Kling
2019-12-16WindowServer+MenuApplets: Move the "Audio" applet to its own programAndreas Kling
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. :^)
2019-12-14ProfileViewer: Show kernel frames with a red icon :^)Andreas Kling
2019-12-11LookupServer: Switch to a more privacy-respecting DNS providerValtteri Koskivuori
2019-12-10Fonts: Add two little marker glyphs to CsillaThin7x10Andreas Kling
ASCII values 0x1 and 0x2 of this font now contain little helper glyphs for showing left and right side markers around something.
2019-12-08WindowServer: Disambiguate "dragging" a bit, use "moving" more insteadAndreas Kling
Windows that are being moved around by the user are now called "moving" windows instead of "dragging" windows, to avoid confusion with the drag and drop stuff.
2019-12-08WindowServer: Add a dedicated drag cursorAndreas Kling
2019-12-05CPUGraph: Launch the CPUGraph menu applet on startupAndreas Kling
2019-12-04Taskbar: Add a quick launch barSergey Bugaev
This is a tiny bar at the left of the taskbar where you can put your most used apps to launch them with a single click. In a way, it's another replacement for the Launcher, in addition to the app menu. Unlike the launcher and the menu, it's not meant to be the primary way to launch apps; it's only a faster way to launch a few most often used utilities.