Commit graph

898 commits

Author SHA1 Message Date
Ben Wiederhake 58dd9f2d2a SystemMenu: Add 'Themes' icon 2020-07-28 16:29:44 +02:00
Ben Wiederhake a9d30a59d9 SystemMenu: Add icons for categories 2020-07-28 16:29:44 +02:00
thankyouverycool 5cfbf88b4d Base: Add icons and af files for Profiler and Inspector 2020-07-28 16:29:36 +02:00
Andreas Kling e3437414f0 Base: Remove old ladybug icon 2020-07-27 19:57:20 +02:00
Andreas Kling e26c6805dd Base: Add man page about set_process_name(2) 2020-07-27 19:10:18 +02:00
thankyouverycool 3e10c38837 Base: Add characters to default fonts
Updates the Extended-A block for Katica and Csilla. Corrects some
heights, accents and capitalizations. Slims the 'A', 'C', and 'G'
in CsillaThin.
2020-07-27 00:05:20 +02:00
Estanislao Pérez Nartallo b09b8d99f2 Userland: Add Spanish keymap 2020-07-26 18:34:29 +02:00
Matthew Olsson 2e73082203 Base: Add SVG test file to welcome page 2020-07-26 14:53:43 +02:00
thankyouverycool bbcdab2baa Base+MenuApplet: Add new controls and icons for AudioApplet
Adds a classic volume slider to the AudioApplet. Percent text
and mute state can now be toggled via checkboxes. Left click opens,
right click mutes. Updates existing icons and adds unique icons for
muted vs zero volume states.
2020-07-26 11:32:12 +02:00
Luke 08221139a5 test-web: Add ability to change page mid-test
This allows you to not have to write a separate test file
for the same thing but in a different situation.

This doesn't handle when you change the page with location.href
however.

Changes the name of the page load handlers to prevent confusion
with this.
2020-07-25 12:35:15 +02:00
Benoît Lormeau 1d6a3a5e8f Base: Complete the french keymap and fix the numeric keypad
Accentuated letters and other characters from the Unicode Block
"Latin-1 Supplement" were added; they weren't supported in the past.
Regarding the numpad: there was a `"", ` too much in the keymap, which
was shifting the keys when pressed (e.g. I would get a '9' instead of a '+')
2020-07-25 12:34:54 +02:00
Luke 60599d03dd LibWeb+test-web: Create test-web program, add doctype test
LibWeb currently has no test suite or program. Let's change that :^)

test-web is mostly a copy of test-js, but modified for LibWeb.
test-web imports both LibJS/Tests/test-common.js and
LibWeb/Test/test-common.js

LibWeb's suite provides the ability to specify the page to load,
what to do before the page is loaded, and what to do after it's
loaded.

This also provides a test of document.doctype and its close sibling
document.compatMode.

Currently, this isn't added to Lagom because of CodeGenerators.
2020-07-23 13:11:41 +02:00
Benoît Lormeau 0e172f8ed7 Base: rename audio volume icons with descriptive names 2020-07-21 19:02:25 +02:00
Benoît Lormeau 4916cfa3a3 AudioApplet: Scrolling the Audio applet will adjust the main mix volume
The Audio applet now dislays the main mix volume next to the speaker
icon. A click on the applet still mutes the global mixer. By scrolling
the mouse wheel while on the applet, you can decrease/increase the mixer
volume. Different icons will be painted depending on the volume and the
mute state.

Happy listening :^)
2020-07-21 19:02:25 +02:00
Andreas Kling 3a62029dee Base: Add special icons for the home directory
It's filetype-folder but with little houses on them. :^)
2020-07-19 21:36:54 +02:00
Nullspeak 51b2b0d5e5 WindowServer: New title bar vars for themes
The theming system can now control title bar height, title button
size, title stripe color and the title text shadow color.
The implemented theme metrics system could be later extended to LibGUI
to allow themes to change widget padding, border width, etc.
2020-07-17 23:19:08 +02:00
thankyouverycool 09152a6fe1 Base: Add missing single quotes to en.json keymap
This replaces the double quote in map and alt_map with the correct
single quote character.
2020-07-14 17:58:52 +02:00
Nico Weber 46661f02c6 Csilla: Make 'W' and 'w' even thinner
'W' doesn't have to go up to the edges which makes 'WWW'
look better, and it imho looks fine in other contexts too.
Update 'w' to match.

Don't change Katica since it has enough room for the current W.
2020-07-13 17:36:56 +02:00
Nico Weber 20378b8640 Default Fonts: Tweak 'F' and 'W'
In all default fonts, make the lower bar of the F one pixel shorter to
match the middle bare of the E.

Make the W in CsillaThin a bit shorter on the sides and make it
go less high in the middle. This makes it look more like the W in
CsillaBold, makes the middle high spot in W match the height of
the same spot in X Y E F H. Making it shorter on the side makes
the letter look better when its next ot other full-width letters,
e.g. in "WWW".

Make the w in Katica10 match new new W in CsillaThin. The bold
letters already match, and in general it looks like Csilla is
a monospace version of Katica.
2020-07-13 10:19:32 +02:00
thankyouverycool bd0a4cbbf9 Base: Update 16x16 filetype-folder icons
Update folder-open icon to match current folder icon, and shift
the current folder icon right 1 pixel for smoove animation.
2020-07-10 19:44:18 +02:00
thankyouverycool 066ae29c07 Base+Demos: Add icons to WidgetGallery 2020-07-08 23:48:26 +02:00
Linus Groh 899dcba158 WindowServer+LibGUI: Add "wait" cursor 2020-07-07 23:11:39 +02:00
Linus Groh b8a8e417f1 WindowServer+LibGUI: Add "help" cursor 2020-07-07 23:11:39 +02:00
Linus Groh 62866208ee WindowServer+LibGUI: Add "resize row/column" cursors 2020-07-07 23:11:39 +02:00
Andreas Kling 8d8bb07476 UserspaceEmulator: Start building a userspace X86 emulator :^)
This introduces a new X86 CPU emulator for running SerenityOS userspace
programs in a virtualized interpreter environment.

The main goal is to be able to instrument memory accesses and catch
interesting bugs that are very hard to find otherwise. But before we
can do fancy things like that, we have to build a competent emulator
able to actually run programs.

This initial version is able to run a very small program that makes
some tiny syscalls, but nothing more.
2020-07-07 22:44:58 +02:00
Linus Groh 8f3151eea8 Base: Add link to test-common.js in test-js(1) man page
This is an easy way to view this file as the link will open it in Text
Editor :^)
2020-07-07 17:42:50 +02:00
Linus Groh e0e100f009 Base: Add "alias ll='ls -l'" to /etc/shellrc 2020-07-07 16:43:59 +02:00
Linus Groh d0de3ce0bf Base: Remove "alias sd=SystemDialog" from /etc/shellrc
SystemDialog is no longer a standalone binary.
2020-07-07 16:43:59 +02:00
Nico Weber 564c4634c0 man pages: Consistently use "Otherwise, " in the few places that said "^Else, " 2020-07-07 16:37:46 +02:00
thankyouverycool 27109c3467 Base+Help: Add new Help app icons
This adds a new 32x32 Help application icon, a new open book icon,
copies the current book icon as Help's 16x16 icon, and updates
the Help application file to reflect these changes.
2020-07-07 13:38:35 +02:00
Andreas Kling 81ea9d1ef6 Base: Turn a whole bunch of /bin symlinks into shell aliases :^) 2020-07-07 11:35:22 +02:00
Andreas Kling 1bc6bb0421 Shell: Run both /etc/shellrc and ~/.shellrc on startup
The global script runs before the local (per-user) one.
2020-07-07 11:35:22 +02:00
Linus Groh 4c845b35ac Base: Add man page for test-js(1) 2020-07-07 10:39:48 +02:00
Linus Groh 8b76a1e548 js: Remove test mode
Now that we have a standalone test-js program, the "-t" test mode of the
js REPL is unused and can simply be removed. Required functionality has
been duplicated in test-js (isStrictMode function, loading of testing
utilities).

Also remove outdated information about tests from the js(1) man page.
2020-07-07 00:21:30 +02:00
Matthew Olsson 474159277f Base: Add information box emoji
ℹ️
2020-07-06 23:40:35 +02:00
Andreas Kling 1056dde7c9 ProtocolServer: Run with low priority
Dr. Bugaev says this is the most appropriate priority. :^)
2020-07-06 15:41:15 +02:00
Andreas Kling 6f059ee830 ProtocolServer: Turn this into a multi-instance service
Everyone who connects to ProtocolServer now gets his own instance.
This means that different users can no longer talk to the same exact
ProtocolServer process, enhanching security and stability.
2020-07-06 13:30:11 +02:00
Nico Weber 0d851b1930 Add manpages for posix_spawn 2020-07-06 10:01:14 +02:00
Andreas Kling 6b3a7b1ce7 Base: Add man pages for gettid(), getpid(), and getppid() 2020-07-05 19:37:43 +02:00
AnotherTest bc3285abb0 Shell: Read and evaluate an init file on start
This behaviour is overridable with the `--skip-init' flag.
The default file is at '~/shell-init.sh'
2020-07-05 15:43:14 +02:00
Sergey Bugaev a8489967a3 Kernel: Add Plan9FS :^)
This is an (incomplete, and not very stable) implementation of the client side
of the 9P protocol.
2020-07-05 12:26:27 +02:00
Andreas Kling a378500b45 Base: Remove /home/anon/myfile.txt
I added this file while originally testing the kernel's file system
support. We have plenty of random files lying around these days. :^)
2020-07-04 21:21:04 +02:00
Andreas Kling 67f999b701 Base: Set a reasonable HoverHighlight color in Redmond theme
Buttons turning deep blue when hovered was a bit too weird. :^)
2020-07-04 20:27:09 +02:00
Andreas Kling 36150a118d SystemMonitor: New 16x16 icon in the same style as Terminal 2020-07-04 20:03:09 +02:00
Andreas Kling a409e6d27d Base: New "generic window" icon based on the Terminal app icon 2020-07-04 20:03:09 +02:00
Andreas Kling 10fadd734c Terminal: New 16x16 icon in a more '90s style :^) 2020-07-04 20:03:09 +02:00
Andreas Kling bc1ec588f0 TextEditor: Tweak 16x16 icon
In keeping with the slightly-higher-contrast theme.
2020-07-04 19:44:27 +02:00
Andreas Kling da66d99566 Base: Add TextEditor to the quick-launch area in the Taskbar :^)
I'm always starting text editors by opening a Terminal and typing "te"
which is a bit silly when I can have an icon for it instead!
2020-07-03 21:34:12 +02:00
Nico Weber 1f323076f0 Add man pages for seteuid() and friends.
Also add an overview page that explains the general concepts.
2020-07-03 19:37:28 +02:00
Matthew Olsson d5beaa497f Base: Add green check mark and red X emojis 2020-07-03 19:30:13 +02:00
Andreas Kling dfc0a35295 Base: Tweak resource graph colors to match SystemMonitor 2020-06-30 23:11:07 +02:00
Andreas Kling 14477eb565 Terminal: Bump the default ScrollLength to 4
This feels so much better than scrolling one line at a time. :^)
2020-06-30 18:33:09 +02:00
Sahan Fernando 0fc8931d5f Userland: Add watch tool 2020-06-30 12:46:23 +02:00
devashish 58a5af1dcd LaunchServer: Associate JPEG files with QuickShow 2020-06-27 18:33:11 +02:00
AnotherTest 880c3fb83f Userland: Add a 'test' utility
This adds an incomplete implementation of the test util, missing some
user/group checks, and `-l STRING`.
It also symlinks '[' to 'test'.
2020-06-27 16:08:52 +02:00
Hüseyin ASLITÜRK b05fd9b15b Base: Test web page and images for PGM image file type 2020-06-27 13:01:27 +02:00
Hüseyin ASLITÜRK 57ef3b27ec Base: Add PGM file type to QuickShow file type list 2020-06-27 13:01:27 +02:00
Kevin Meyer ebbcef926a Base: Fix sendfd's man page return section 2020-06-27 11:50:31 +02:00
Andreas Kling 9d8565cf9a LibWeb: Add CanvasRenderingContext2D.rotate()
This is pretty limited since we don't have wholesale mapping through
the context transform, but we have to start somewhere. :^)
2020-06-26 18:27:12 +02:00
Sergey Bugaev f08aa6324e Base: Mention that sendfd & recvfd were introduced in plan9port 2020-06-25 15:49:04 +02:00
Andreas Kling c689be0dbc Base: Add "sendfd" and "recvfd" promises to pledge(2)
And as it turns out, these are not even extensions! :^)
2020-06-25 10:58:37 +02:00
Andreas Kling 55a22b50c9 Base: Fix wording in recvfd(2)
recvfd() returns a *non-negative* integer on success. 0 is a valid fd.
2020-06-25 10:58:37 +02:00
Andreas Kling 1a7ccc1569 Base: Add man pages for recvfd(2) and sendfd(2) :^) 2020-06-24 23:08:18 +02:00
Andreas Kling cd02144a06 Base: Update motd since it was a little outdated :^) 2020-06-24 22:55:45 +02:00
Devashish 8b71b839fa LibGfx+LibWeb: Add JPEG decoder and integrate with LibWeb
This patch adds support for JPEG decoding. The JPEG decoder is capable
of handling standard 2x1 horizontal, 2x1 vertical and quartered chroma
subsampling. The implemented Inverse DCT performs with a decent speed.

As of interchange formats, since we tend to ignore the metadata in APPn
markers, the decoder can handle any format compatible with JFIF, which
includes EXIFs and sometimes WebMs too. The decoder does not support
progressive JPEGs yet.
2020-06-23 13:51:19 +02:00
Andreas Kling e3782a7f99 ImageDecoder: Add a new service for out-of-process image decoding :^)
The new ImageDecoder service (available for members of "image" via
/tmp/portal/image) allows you to decode images in a separate process.

This will allow programs to confidently load untrusted images, since
the bulk of the security concerns are sandboxed to a separate process.

The only API right now is a synchronous IPC DecodeImage() call that
takes a shbuf with encoded image data and returns a shared buffer and
metadata for the decoded image.

It also comes with a very simple library for interfacing with the
ImageDecoder service: LibImageDecoderClient. The name is a bit of a
mouthful but I guess we can rename it later if we think of something
nicer to call it.

There's obviously a bit of overhead to spawning a separate process
for every image decode, so this is mostly only appropriate for
untrusted images (e.g stuff downloaded from the web) and not necessary
for trusted local images (e.g stuff in /res)
2020-06-22 21:47:00 +02:00
Hüseyin ASLITÜRK f361d25ec8 Base: Test web page and images for PPM image file type 2020-06-22 18:11:22 +02:00
Hüseyin ASLITÜRK 7f30d933b5 Base: Add PPM file type to QuickShow file type list 2020-06-22 18:11:22 +02:00
Andreas Kling 59537cf257 WebContent: Turn it into a MultiInstance service :^)
Port the WebContent service to the new MultiInstance mechanism that
Sergey added. This means that every new WebContentView gets its very
own segregated WebContent process.
2020-06-21 21:54:30 +02:00
Hüseyin ASLITÜRK 5d0734d9ea Base: Test web page and images for PBM image file type 2020-06-21 16:42:46 +02:00
Hüseyin ASLITÜRK 58c3356472 Base: Add pbm file type to QuickShow file type list 2020-06-21 16:42:46 +02:00
Matthew Olsson 3f5c80e490 LibGfx: Add BMP suite html files 2020-06-21 10:08:25 +02:00
LepkoQQ 1f584911b2 Base: Add some more characters to Katica and Csilla fonts 2020-06-20 17:04:03 +02:00
LepkoQQ 412e566967 Base: Fix slovenian keymap 2020-06-20 17:04:03 +02:00
Andreas Kling 2188ed54b0 Base: Note that the "setkeymap" pledge promise is an extension 2020-06-19 21:15:25 +02:00
Tom Lebreux 605a21b892 Userland: Add base64 tool 2020-06-18 23:21:41 +02:00
Andreas Kling 0609eefd57 Kernel: Add "setkeymap" pledge promise 2020-06-18 22:19:36 +02:00
Andreas Kling 3f87c98f44 Base: Fix broken ACID2 browser bookmark :^) 2020-06-18 16:47:04 +02:00
Hüseyin ASLITÜRK 4e43cd8252 Base: Add a new download-animation.gif 2020-06-18 16:35:57 +02:00
LepkoQQ 73bcc01143 Base: Add slovenian keymap 2020-06-18 16:28:20 +02:00
LepkoQQ 83edbd05cf Base: Add slovenian characters to Katica and Csilla fonts 2020-06-18 16:28:20 +02:00
Andreas Kling c45c5ded34 WebContent: Start work on browser process separation :^)
The "WebContent" service provides a very restricted instance of LibWeb
running as an unprivileged user account. This will be used to implement
process separation in Browser, among other things.

This first cut of the service only spawns a single WebContent process
when someone connects to /tmp/portal/webcontent. We will soon switch
this over to spawning a new process for each connection.

Since this feature is very immature, we'll be bringing it up inside of
Demos/WebView as a separate demo program. Eventually this will become
a reusable widget that anyone can embed and easily get out-of-process
web content in their GUI.

This is pretty, pretty cool! :^)
2020-06-17 20:09:44 +02:00
Andreas Kling de12cf6821 Base: Move all the HTML test content into /res/html/misc 2020-06-17 20:09:44 +02:00
Andreas Kling 723f4e5ee6 Meta: Scale back overly informal user-facing strings
We were getting a little overly memey in some places, so let's scale
things back to business-casual.

Informal language is fine in comments, commits and debug logs,
but let's keep the runtime nice and presentable. :^)
2020-06-17 18:35:49 +02:00
Andreas Kling d7bf609376 Base: Various icons overhauled + more contrast
I booted the system on a much better screen than the one I normally use
and the variance in contrast between different icons bothered me.
Here's an attempt to fix that, while also redoing some icons that I've
wanted to redo for a while. :^)
2020-06-17 15:20:53 +02:00
Sergey Bugaev 8ecac16c03 Base+Meta: Rename the wheel group to goodboys :^) 2020-06-17 15:02:03 +02:00
Sergey Bugaev fd985b1f48 Base: Document readlink(1) and readlink(2) :^) 2020-06-17 15:02:03 +02:00
Hüseyin ASLITÜRK 016fc9c133 Base: Add a new icon for zoom reset 2020-06-16 14:42:18 +02:00
Hüseyin ASLITÜRK cfaed04464 Base: Typo correction in trq.json 2020-06-16 13:15:17 +02:00
Paul Roukema eb11ab2480 Base: Add some interlaced PNGs to the local copies of the pngsuite tests 2020-06-13 19:47:43 +02:00
Hüseyin ASLITÜRK 8733da652e Base: Add numpad keys to keymap files 2020-06-13 12:36:30 +02:00
Andreas Kling c91981eba8 LibWeb: Handle negative values when collapsing vertical margins
In the presence of negative margins, we subtract the largest negative
margin from max(0, largest positive margin).
2020-06-12 18:47:18 +02:00
Andreas Kling 21b1f1653d LibWeb: Implement very basic margin collapsing
We now collapse a block's top margin with the previous sibling's
bottom margin so that the larger margin wins.
2020-06-12 18:47:18 +02:00
Andreas Kling 260427f0ad LibWeb: Some improvements to absolute positioning
Absolutely positioned blocks now register themselves with their
containing block (and note that the containing block of an absolutely
positioned box is the nearest non-statically positioned block ancestor
or the ICB as fallback.)

Containing blocks then drive the layout of their tracked absolutely
positioned descendants as a separate layout pass.

This is very far from perfect but the general direction seems good.
2020-06-12 13:43:46 +02:00
Andreas Kling 2b489f492d Base: Put the ACID2 test on the browser bookmarks bar :^) 2020-06-10 16:14:09 +02:00
Sergey Bugaev f2d40ac2b2 Base: Document new SystemServer abilities 2020-06-09 21:12:34 +02:00
Hüseyin ASLITÜRK ddeb0ab1ad Applications: Add new KeyboardSettings application
GUI application to manage Keyboard settings.
2020-06-08 09:28:18 +02:00
Hüseyin ASLITÜRK 57a99015a1 Base: Add Keyboard application icons 2020-06-08 09:28:18 +02:00
Hüseyin ASLITÜRK eba285bdb8 Base: Move DisplaySettings app to Settings menu 2020-06-08 09:28:18 +02:00
nanoproductions 07e726729c
Base: Add "Discord" theme (#2515)
A new theme for Serenity which brings colors from the Discord theme
colors. Some colors were modified to ensure great looks on Serenity.
2020-06-06 14:45:10 +02:00
Sergey Bugaev 4643f51eaa Base: Document find(1) 2020-06-06 14:42:31 +02:00
Andreas Kling 422bbe98a5 LibWeb: Start adding support for the <iframe> element! :^)
This patch introduces a bunch of things:

- Subframes (Web::Frame::create_subframe())
- HTMLIFrameElement (loads and owns the hosted Web::Frame)
- LayoutFrame (layout and rendering of the hosted frame)

There's still a huge number of things missing, like scrolling, overflow
handling, event handling, scripting, etc. But we can make a little
iframe in a document and it actually renders another document there.
I think that's pretty cool! :^)
2020-06-05 23:36:02 +02:00
Hüseyin ASLITÜRK 9e829a198c Base: Use new app-pixel-paint.png for app icon in system menu 2020-06-04 12:34:31 +02:00
Hüseyin ASLITÜRK f32e971d8b Base: Rename app-paintbrush.png to app-pixel-paint.png 2020-06-04 12:34:31 +02:00
Hüseyin ASLITÜRK ff55d00261 Base: Fix incorrect json value for escape character 2020-06-03 21:52:40 +02:00
Hüseyin ASLITÜRK ed20800320 Base: New icon for KeyboardMapper application 2020-06-03 21:52:40 +02:00
FalseHonesty f958c693ee HackStudio: Support debugging variables with Enum types
Variables with enum types can now be both viewed and modified in the
variables view!
2020-06-03 08:12:50 +02:00
Andreas Kling ffae239e91 Base: Fix bad URL in welcome page 2020-06-02 22:05:29 +02:00
Andreas Kling d4ddb0013c LibWeb: Share decoded images at the Resource level :^)
This patch adds ImageResource as a subclass of Resource. This new class
also keeps a Gfx::ImageDecoder so that we can share decoded bitmaps
between all clients of an image resource inside LibWeb.

With this, we now share both encoded and decoded data for images. :^)

I had to change how the purgeable-volatile flag is updated to keep the
volatile-images-outside-the-visible-viewport optimization working.
HTMLImageElement now inherits from ImageResourceClient (a subclass of
ResourceClient with additional image-specific stuff) and informs its
ImageResource about whether it's inside the viewport or outside.

This is pretty awesome! :^)
2020-06-02 20:32:38 +02:00
Keith daa3f59a55
Base: Fix misspelling in getopt(3) (#2473) 2020-06-02 07:40:26 +02:00
FalseHonesty 75e42648e1 HackStudio: Allow changing variable values in debugger
This patch adds a context menu to variables in the debugger variable
tree view that has an option to set the value of a variable. An input
box will pop up asking for the new value of the variable, which
is then parsed and used to set the actual variable.
2020-05-31 10:52:25 +02:00
Sergey Bugaev e5e8e8ab96 Base: Add Faux Pas and Silver themes 2020-05-30 17:51:24 +02:00
Sergey Bugaev 52711921c6 Base: Document getopt 2020-05-30 15:01:18 +02:00
Andreas Kling 6f85422e8a Base: Add HTML spec (multipage) to the default Browser bookmarks :^) 2020-05-30 12:25:37 +02:00
Sergey Bugaev 3847d00727 Kernel+Userland: Support remounting filesystems :^)
This makes it possible to change flags of a mount after the fact, with the
caveats outlined in the man page.
2020-05-29 07:53:30 +02:00
Sergey Bugaev 53647e347f Kernel+Base: Mount root filesystem read-only :^)
We remount /home and /root as read-write, to keep the ability to modify files
there. /tmp remains read-write, as it is mounted from a TmpFS.
2020-05-29 07:53:30 +02:00
Sergey Bugaev 39cde80545 Base: Document MS_RDONLY
Also fix a couple of issues with the man pages.
2020-05-29 07:53:30 +02:00
AnotherTest ca6e361279 Base: Add manpage for xargs 2020-05-28 11:01:08 +02:00
Nick Vella e53fa97cfb LibGUI, About: Implement system-wide W2k-esque About dialog
The new About dialog reads version information from /res/version.ini,
which is generated at build time.
2020-05-27 11:44:19 +02:00
Sergey Bugaev ae21b8ee56 Base: Replace TTYServer with text mode Shell
Now that we have SystemServer that can (re)spawn the Shell, we don't need a
separate server just for that.

The two shells (on tty0 and tty1) are configured to only be started when booting
in text mode. This means you can now simply say boot_mode=text on the kernel
command line, and SystemServer will set up the system and spawn a comfy root
shell for you :^)
2020-05-27 11:19:38 +02:00
Sergey Bugaev 856e4853f4 SystemServer: Add BootModes and Environment service options
SystemServer will now look at the boot mode, as specified on the kernel command
line, and only launch the services configured for that boot mode.
2020-05-27 11:19:38 +02:00
Sergey Bugaev f746bbda17 Base: Document the sigaction promise
Also add a few generic words about pledge().
2020-05-26 14:35:10 +02:00
FalseHonesty b352a6b59d LibWeb: Implement vendor specific CSS color style for System Palette
Add "-libweb-palette-foo-bar" CSS color properties to allow CSS to
style itself using the currently selected System Theme.
2020-05-26 10:17:50 +02:00
Linus Groh 67b742bf32 LibWeb: Add document.querySelector() 2020-05-26 00:12:20 +02:00
Hüseyin ASLITÜRK 6e505b853e Base: Add more characters to Katica and Csilla
Symbols for Latin-1 Unicode completed for Katica and Csilla Thin fonts.
2020-05-26 00:11:26 +02:00
Sergey Bugaev 174ac5d348 Demos: Add Eyes demo
This is a neat clone of xeyes. It demoes the new ellipse filling functionality,
as well as the existing global mouse cursor tracking functionality :^)
2020-05-24 23:30:12 +02:00
Andreas Kling bdc19563ef Browser: Add new icons for the add/remove bookmark toolbar button
Here's a freshly drawn icon without antialiasing so it fits better with
the system visual style. :^)
2020-05-24 18:46:48 +02:00
Magentah a1fe34bcd8 Keymap: Added keymap file for Japanese keyboard, without IME
configuration keys.
2020-05-24 02:13:22 +02:00
Andreas Kling e44c87cfff LibWeb: Implement enough HTML parsing to handle a small simple DOM :^)
We can now parse a little DOM like this:

<!DOCTYPE html>
<html>
    <head></head>
    <body>
        <div></div>
    </body>
</html>

This is pretty slow work, but the incremental progress is satisfying!
2020-05-24 00:49:22 +02:00
Andreas Kling 634ce37663 LibWeb: Make hit-testing work with display: inline-block;
When hit testing encountered a block with inline children, we assumed
that the inline children are nothing but text boxes. An inline-block
box is actually a block child of a block with inline children, so we
have to handle that scenario as well. :^)

Fixes #2353.
2020-05-23 21:08:25 +02:00
Bryan Steele b5c0703e14 Base: Add a really bad, but yummy Slice of Pizza emoji 🍕 2020-05-23 19:49:42 +02:00
Spencer Dixon ecb03716d4 Base: Add red heart emoji ❤️ 2020-05-23 16:33:05 +02:00
Andreas Kling 6caa5661f3 LibWeb: Teach HTMLTokenizer how to tokenize attributes
Properly tokenize single-quoted, double-quoted and unquoted attributes!
2020-05-23 01:22:15 +02:00
Andreas Kling 272b35d2e1 LibWeb: Begin work on a spec-compliant HTML parser
In order to actually view the web as it is, we're gonna need a proper
HTML parser. So let's build one!

This patch introduces the Web::HTMLTokenizer class, which currently
operates on a StringView input stream where it fetches (ASCII only atm)
codepoints and tokenizes acccording to the HTML spec tokenization algo.

The tokenizer state machine looks a bit weird but is written in a way
that tries to mimic the spec as closely as possible, in order to make
development easier and bugs less likely.

This initial version is far from finished, but it can parse a trivial
document with a DOCTYPE and open/close tags. :^)
2020-05-22 21:46:13 +02:00
Linus Groh 65d94a1e74 Base: Add simple setInterval() test 2020-05-21 15:18:08 +02:00
Hüseyin ASLITÜRK 8790d6bafc Base: Extend fonts to 384 character to support LatinExtendedA 2020-05-21 01:19:42 +02:00
Hüseyin ASLITÜRK ec9f1af0fb Base: Add HTML character escape test document
Test page for Turkish and Swedish custom characters.
2020-05-21 01:19:42 +02:00
Hüseyin ASLITÜRK 7aa9cf472b Base: Add markdown file icon 2020-05-21 01:19:13 +02:00
Andreas Kling 58fa9c6e89 PixelPaint: Rename from PaintBrush :^) 2020-05-20 20:35:35 +02:00
Andreas Kling ff4eaa12b4 ClipboardHistory: Always place the applet at the same location :^) 2020-05-20 20:24:44 +02:00
Linus Groh a51adf27bf Base: Add more characters to Katica10 and CsillaThin7x10
£, ×, ÷, Ä, à, á, â, ã, ä, ñ, ò, ó, ô, õ, ù, ú, û, ß
2020-05-20 19:19:16 +02:00
Sergey Bugaev 7d8bfe4f3a Base: Tweak SystemServer.ini
Notably, adjust service priorities.
2020-05-20 15:42:48 +02:00
Hüseyin ASLITÜRK da23514431 Base: Add MessageBox question icon 2020-05-20 13:54:10 +02:00
Hüseyin ASLITÜRK 426cdaf65b Base: Add new characters to Katica and Csilla 2020-05-20 13:40:24 +02:00
Andreas Kling 3b11e471bd LibWeb: Allow reloading the current page with location.reload() 2020-05-18 22:05:13 +02:00
Andreas Kling 71007f6ebb LibWeb: Add location.protocol and location.host 2020-05-18 21:59:16 +02:00
Andreas Kling efdfdbabdb LibWeb: Allow navigating to a new URL by setting window.location.href 2020-05-18 21:52:50 +02:00
Andreas Kling 1ec4db04cd LibWeb: Add a simple window.location object with some getters :^) 2020-05-18 21:42:40 +02:00
Andreas Kling 42651200d4 Base: Tweak browser toolbar icons to make them a bit livelier :^) 2020-05-18 19:38:20 +02:00
Nicholas Hollett 02cc3ac21f Base: Add file type & protocol definitions for known handlers.
This matches the existing user configuration in /home/anon/LaunchServer.ini
2020-05-18 11:27:27 +02:00
Nicholas Hollett 3c5f75ed53 LaunchServer: Discover handlers from *.af files, allow launching based on a known handler
Adds metadata about apps for what file types and protocols they can
handle, then consumes that in the LaunchServer. The LaunchServer can
then use that to offer multiple options for what apps can open a given
URL. Callers can then pass back the handler name to the LaunchServer to
use an alternate app :)
2020-05-18 11:27:27 +02:00
Andreas Kling 5aba8cc750 Base: Add thinking face emoji (U+1F914) 🤔 2020-05-18 09:52:48 +02:00
jarhill0 50c116e57b Base: Add smiling face with horns emoji (U+1F608) 😈 2020-05-18 09:36:00 +02:00
jarhill0 50336dc6ff Base: Add splashing sweat emoji (U+1F4A6) 💦 2020-05-18 09:36:00 +02:00
jarhill0 ec8edee19e Base: Add cherries emoji (U+1F352) 🍒 2020-05-18 09:36:00 +02:00
jarhill0 5fa40080cd Base: Add peach emoji (U+1F351) 🍑 2020-05-18 09:36:00 +02:00
jarhill0 aabad11dbf Base: Add eggplant emoji (U+1F346) 🍆 2020-05-18 09:36:00 +02:00
jarhill0 054385ae0e Base: Add Cancer emoji (U+264B) 2020-05-18 09:36:00 +02:00
Linus Groh ab2bb583a4 Base: Add "smiling face with sunglasses" emoji (U+1F60E) 2020-05-17 09:43:51 +02:00
Linus Groh 99a2f9517e Base: Add "smiling face with open mouth and tightly-closed eyes" emoji (U+1F606) 2020-05-17 09:43:51 +02:00
Linus Groh 09e5c37e4e Base: Add "smiling face with open mouth and smiling eyes" emoji (U+1F604) 2020-05-17 09:43:51 +02:00
Linus Groh dcb35739a0 Base: Add "smiling face with open mouth" emoji (U+1F603) 2020-05-17 09:43:51 +02:00
Linus Groh 1f9dcd9174 Base: Add "grinning face" emoji (U+1F600) 2020-05-17 09:43:51 +02:00
Linus Groh 3fb9cad019 Base: Add "no entry" emoji (U+26D4) 2020-05-17 09:43:51 +02:00
Linus Groh 0e15d51a73 Base: Add "warning sign" emoji (U+26A0) 2020-05-17 09:43:51 +02:00
Linus Groh edb795218d Base: Add "eyes" emoji (U+1F440) 2020-05-17 09:43:51 +02:00
Linus Groh bb0c137bdf Base: Add "smiling face with smiling eyes" emoji (U+1F60A) 2020-05-17 09:43:51 +02:00
jarhill0 c52f4923ed Base: Add "Grimacing Face" emoji 2020-05-16 22:49:00 +02:00
jarhill0 ede82e5caa Base: Add "Face Without Mouth" emoji 2020-05-16 22:49:00 +02:00
jarhill0 a2bd4f0c27 Base: add Upside-Down Face emoji
This is not simply an inversion of the Slightly Smiling Face emoji.
The facial features were flipped vertically but the underlying "face"
was kept the same, because for both emojis the top is lighter than the
bottom.
2020-05-16 22:49:00 +02:00
Linus Groh ccc4cf915a Base: Add file containing all emojis we support to /home/anon 2020-05-16 22:25:33 +02:00
Linus Groh b0ae32d09a Base: Add "Fire" emoji (U+1F525) 2020-05-16 22:25:33 +02:00
Linus Groh 9f064d4439 Base: Add "Thumbs down sign" emoji (U+1F44E)
...yes, just a mirrored copy of the thumbs up emoji :^)
2020-05-16 20:57:53 +02:00
Andreas Kling 5ee79e6657 Base: Add a basic "Thumbs up sign" emoji (U+1F44D) :^) 2020-05-16 20:04:15 +02:00
Sergey Bugaev f7ae66cee3 ClipboardHistory: Add a clipboard history applet :^)
It will listen for clipboard content changes in the backgroud. Once you click
on its icon, it will pop up a window listing all recorded clipboard contents.
You can then double-click on an item to copy it again.
2020-05-16 09:13:25 +02:00
Sergey Bugaev 00c166e2ca Base: Allow NotificationServer to access the Clipboard
Otherwise it fails to even start.
2020-05-15 11:43:58 +02:00
Andreas Kling 244efe050a Clipboard: Move the system clipboard to a dedicated service process :^)
This commit moves the clipboard from WindowServer into a new Clipboard
service program. Clipboard runs as the unprivileged "clipboard" user
and with a much tighter pledge than WindowServer.

To keep things working as before, all GUI::Application users now make
a connection to Clipboard after making the connection to WindowServer.
It could be interesting to connect to Clipboard on demand, but right
now that would necessitate expanding every GUI app's pledge to include
"unix" and also unveiling the clipboard portal, which I prefer not to.
2020-05-14 22:53:58 +02:00
Linus Groh 7bfd24ca76 LibWeb: Support the :root pseudo class 2020-05-14 08:49:51 +02:00
Andreas Kling 23ee68c63e PaintBrush: Borrow the "move" cursor for the "move" tool :^) 2020-05-13 00:11:47 +02:00
Andreas Kling 5f9d80d8bc LibWeb: Add basic support for CSS percentages
Many properties can now have percentage values that get resolved in
layout. The reference value (what is this a percentage *of*?) differs
per property, so I've added a helper where you provide a reference
value as an added parameter to the existing length_or_fallback().
2020-05-11 23:07:30 +02:00
Ben Wiederhake 87b6578516 FontEditor: Fix link to icon after it moved
Fixup for 6f2837cb13
2020-05-11 09:29:30 +02:00
Linus Groh 4c1a765076 LibWeb: Add basic support for "border-style: {dotted,dashed}" 2020-05-10 19:41:00 +02:00
Andreas Kling 61e112d3b7 DisplaySettings: Tweak app icon 2020-05-10 14:40:36 +02:00
Andreas Kling 5af4ad097f Base: Open .font files in FontEditor again
This broke when we introduced LaunchServer.
2020-05-10 14:24:04 +02:00
Linus Groh d3d29ea1cc Demos: Add LibGfx Demo :^) 2020-05-10 13:34:59 +02:00
Andres Vieira cbbfc08f1d Docs: Add unzip(1) man page 2020-05-09 23:50:44 +02:00
Andres Vieira 78f334f447 Base: Add a "zip" folder to /home/anon/ with a .zip file to test 2020-05-09 23:50:44 +02:00
Andreas Kling 7b34f5bb92 LaunchServer: Don't use SystemServer keepalive 2020-05-09 16:57:35 +02:00
Andreas Kling 68991855ef Base: Open https:// URLs in Browser 2020-05-09 15:17:29 +02:00
Andreas Kling 3d41cc849c LaunchServer: Run with portal permissions 600
The LaunchServer is personal to "anon" and we don't want other users
accessing it to launch anything.
2020-05-09 15:16:16 +02:00
Nicholas Hollett 2708cc0f72 LaunchServer: Add the LaunchServer to centralise file associations.
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 :^)
2020-05-09 15:12:56 +02:00
Hüseyin ASLITÜRK 6f2837cb13 Base: Move 32px font editor app icon under 32x32 folder 2020-05-09 10:00:13 +02:00
Andreas Kling 5bfd893292 Kernel+Userland: Add "settime" pledge promise for setting system time
We now require the "settime" promise from pledged processes who want to
change the system time.
2020-05-08 22:54:17 +02:00
Hüseyin ASLITÜRK cef2dce9a1 Base: Add emoji files for 26A1, 2B06 and 2B07 2020-05-08 09:49:41 +02:00
Linus Groh c1a6841cb2 Base: Add "`" to GB keymap 2020-05-07 22:13:46 +02:00
AnotherTest a82419469f LibWeb: Add canvas.fill
This implements only one of the two forms of this function,
ctx.fill(winding_rule).
Also tweaks the quadratic curve demo to have a nice looking filled
shape.
2020-05-06 14:50:29 +02:00
Andreas Kling e73ad78ba6 LibWeb: Add support for "display: inline-block"
This display type is implemented using a LayoutBlock that is_inline().
Basically it behaves like a block internally, and its children are laid
out in the normal block layout fashion. Externally however, it behaves
like an atomic inline-level box.

Layout of inline-block boxes happens in three stages:

1. The outer dimensions of the block are computed during the recursive
   normal layout pass. We skip positioning, but lay out children.

2. Later on, during line layout in the *containing block*, the inline
   block now contributes a linebox fragment. When linebox fragments are
   positioned, we learn the final position of the inline block. That's
   when we set the inline block's position.

3. We re-layout the inline block's children once again. This is done to
   make sure they end up in the right position. The layout tree doesn't
   use relative offsets, so after we position the inline block in (2),
   its children will not have its positions updated. Relayout moves
   all children of inline blocks to the right place.

This is a rather naive approach but it does get the basic behavior into
place so we can iterate on it. :^)
2020-05-05 16:18:28 +02:00
Sergey Bugaev 983e541584 Base: Fix a typo 2020-05-05 11:07:06 +02:00
AnotherTest 0a55679de4 LibWeb: Add canvas.quadraticCurveTo()
Also adds a test, and removes debug spam ™️
2020-05-05 09:21:07 +02:00
Sergey Bugaev 718271c9df Base: Document unveil(2)
Also, escape underscores in chroot_with_mount_flags.
2020-05-04 21:44:50 +02:00
Ben Wiederhake fe178b6234 SystemMenu+MouseDemo: Add menu entry and nice icons 2020-05-04 09:58:14 +02:00
Andreas Kling a83d74b38c Base: Add browser bookmark for Google :^) 2020-05-03 23:01:58 +02:00
Shannon Booth 0e403a43a4 Terminal: Add config for startup command
This is useful when working on a program as you can put the command into
the config file, instead of having to type it up each time on boot.
2020-05-02 14:12:57 +02:00
Brendan Coles 548ecceb75 Screensaver: Add app-screensaver.png 16x16 icon 2020-05-02 14:12:45 +02:00
AnotherTest 72d56b46b5 LibTLS: Make enough stuff work to have a demo run
...maybe, sometimes :^)
2020-05-02 12:24:10 +02:00
Brendan Coles 905de7df58 Fire: Add app-fire.png 16x16 icon 2020-05-02 11:42:29 +02:00
Brendan Coles 6c1e842a7e Cube: Add app-cube.png 16x16 icon 2020-05-02 11:42:21 +02:00
Andreas Kling e9b7a51a9a Base: Tweak MessageBox icons a tiny bit 2020-05-02 01:29:55 +02:00
LepkoQQ c7f0de14b5 LibGfx: Decode paletted and grayscale images with 1/2/4 bit depth
When dealing with png data that has less than 8 bits per pixel, round
up to the next byte when allocating per row buffers and streamers. This
fixes decoding odd sized PNGs with less than 8 bits per pixel.

Also added a test page with some odd sized palleted PNGs.
2020-05-02 01:28:18 +02:00
Linus Groh e37065cc8b Base: Update js(1) manpage
Syntax highlighting is now enabled by default!
2020-05-02 01:23:50 +02:00
Andreas Kling b5039a047f Base: Adjust filetype icons to be right-aligned for consistency
Established convention is for the flavor icon to go on the right side.
2020-05-01 17:23:41 +02:00
Hüseyin ASLITÜRK d8477074b9 Base: Icons for INI, Object and Library file types 2020-05-01 16:58:18 +02:00
Andreas Kling 23d99e92b9 WindowServer: Add action icons to the window menus 2020-04-30 12:58:38 +02:00
Andreas Kling e8a5c10382 Base: Add back the OG grid wallpaper from back in the day, now as a PNG 2020-04-30 12:31:02 +02:00
Andreas Kling 51df4bdbfc DisplaySettings: Rename from DisplayProperties 2020-04-29 15:53:51 +02:00
Andreas Kling 40fe076e10 Base: Tweak default desktop background color slightly 2020-04-29 14:37:10 +02:00
Linus Groh 8f2300afb5 mkdir: Add -p option to create parent directories 2020-04-28 09:36:09 +02:00
Linus Groh 6fd7966d81 mkdir: Use ArgParser, support creating multiple directories 2020-04-28 09:36:09 +02:00
Andreas Kling e3232eb25b LibWeb: Support loading data: URLs transparently via ResourceLoader
This is pretty darn cool! :^)
2020-04-26 22:57:00 +02:00
Hüseyin ASLITÜRK 59f87d12d0 Base: 32x32 icons for cplusplus and header file types 2020-04-26 21:31:41 +02:00
Andres Vieira 88368df9a2 Base+Browser: Add an icon for the serenity Browser and make it use it
Browser was using the filetype-html icon instead of a dedicated one, so
we now have the globe from that icon reimagined and in good Buggie
company :^)
2020-04-26 21:13:57 +02:00
LepkoQQ b094c064d8 Base: Add test page for decoding different basic png formats. 2020-04-26 20:29:17 +02:00
LepkoQQ 35dda6222e Base: Improve cursor arrow to feel more symetrical 2020-04-26 18:17:46 +02:00
Linus Groh 4d0a344da0 Base+LibGUI: Add icon for Python files 2020-04-26 01:12:14 +02:00
Linus Groh a36ceffb56 Emoji: Rename U+1F600.png to U+1F41E.png (ladybug)
The image for U+1F600 "GRINNING FACE" shows a ladybug, but the
codepoint of that emoji is actually U+1F41E "LADY BEETLE" :^)
2020-04-26 01:12:03 +02:00
Andreas Kling cba9550f1c HackStudio: Toolbar icon overhaul 2020-04-25 14:17:02 +02:00
Itamar 74f41d5f98 HackStudio: Add cpp debugger
The HackStudio debugger integrates with LibDebug to provide
source-level debugging.

The user can set breakpoints at various positions in the source code,
and then run the program in debug mode.

When the program is stopped, the current execution position is
displayed, and the user can insert/remove breakpoints, continue
execution, or single step the program.
2020-04-25 13:16:46 +02:00
Itamar 393560d8a2 HackStudio: GUI support for setting breakpoints on source code lines 2020-04-25 13:16:46 +02:00
Brendan Coles 6dde2c7f47 Browser: Add Browser.ini configuration file
The Browser can now load a home page URL from the user's Browser.ini
configuration file rather than using a hard-coded URL.
2020-04-25 10:55:55 +02:00
Andreas Kling 45a932a600 Base: New "cut" action icon 2020-04-24 20:42:34 +02:00
Andreas Kling 9d8620f956 Browser: Add icons for the "new tab" and "close tab" actions 2020-04-24 20:42:34 +02:00
Andreas Kling 2b64cf3efe Base: New "open" and "save" action icons 2020-04-24 20:42:34 +02:00
Andreas Kling 7db0194d4b Base: Tweak Calendar app icon 2020-04-24 20:42:34 +02:00
Andreas Kling 4218b00cb4 Base: Tweak ladybug icon 2020-04-24 17:10:59 +02:00
Linus Groh 746dd5b190 LibJS: Implement computed properties in object expressions 2020-04-23 23:56:04 +02:00
Andreas Kling 5fc02c6f1d Base: Nudge Redmond theme closer to the Windows 95 colors :^) 2020-04-23 19:59:12 +02:00
Andreas Kling 42ddd551ef Base: Tweak filetype-javascript icon and add 32x32 version 2020-04-23 19:08:33 +02:00
Andreas Kling 0f8dca9441 Base: Tweak new/open/save icons (make them a bit smaller) 2020-04-23 18:52:33 +02:00
Andreas Kling 2454c3b7fb Applications: Remove ChanViewer app
The HTTP JSON API this relied on is no longer available via HTTP and
I would rather make the website work in Browser anyway. :^)
2020-04-23 18:38:54 +02:00
Andreas Kling 9142890822 Base: Tweak icons with arrows in them (to be more pointy) 2020-04-23 18:35:15 +02:00
Andreas Kling 622806f570 Base: Tweak go-home icon 2020-04-23 18:31:03 +02:00
Emanuele Torre a804615b9b Base: Close head tag in canvas-path.html and give the document a title 2020-04-23 09:42:43 +02:00
Brendan Coles 9ab4a8179a TextEditor: Add "Find Previous" 16x16 icon 2020-04-22 17:14:36 +02:00
Brendan Coles 802c06ab7b Base: Add missing Syntax color settings for Joi theme 2020-04-22 11:48:38 +02:00
Brendan Coles 7e01e38cf4 Base: Add Sunshine theme 2020-04-22 11:47:42 +02:00
Hüseyin ASLITÜRK 84317df579 Base: Add QuickShow application to system menu 2020-04-21 12:03:35 +02:00
Brendan Coles a47b9fe490 TextEditor: Add "Find Next" 16x16 icon 2020-04-21 09:49:47 +02:00
angel 441c2715bb LibGUI: Add Select all action to TextEditor
Previously, TextEditor processed the Select all command directly on the
keydown event handler. For this reason, WindowManager would not process
it as an action for the focused control and an action with the same
keyboard shortcut from the parent could override the TextEditor's one
even when it is focused.

For instance, when pressing Ctrl+A on the FileManager's path bar, all
files were selected instead, which is not the expected behavior.

Now the Select all command is an actual action on TextEditor, so that
WindowManager can process it correctly before any other actions. I also
added an icon for it!
2020-04-20 22:43:40 +02:00
Andreas Kling badbe8bc99 Solitaire: Sharpen 16x16 icon 2020-04-20 15:24:59 +02:00
Andreas Kling 8311b24620 Solitaire: Use a pre-scaled buggie image for the back of cards
Instead of scaling on the fly, which is not super aesthetic yet.
2020-04-20 15:24:59 +02:00