summaryrefslogtreecommitdiff
path: root/Documentation
AgeCommit message (Collapse)Author
2021-04-04Meta: Removed commas from command in macOS prereqs (#6109)Will
The commas cause Homebrew to attempt to install "osxfuse," instead of osxfuse. "osxfuse," doesn't exist.
2021-04-03Documentation: Add supported and tested motherboards to the listLiav A
I tested both motherboards and they seem to boot Serenity correctly :)
2021-04-03Documentation: Clarify that AHCI is supported but may suffer from bugsLiav A
We do support AHCI now, but the implementation could be incomplete for some chipsets. Also, we should write the acronym "Non-volatile Memory Express" as NVMe. not NVME.
2021-04-02Documentation: Split brew install commands into core and fuse+ext2thislooksfun
If you don't need/want to use Fuse+ex2 then half of the existing install command is unnecessary, and it's hard to pick out which you do and don't need to, for example, build Lagom. This makes it clear which commands you can skip if you don't need ex2 support.
2021-04-02Documentation: Add cmake to brew installsthislooksfun
MacOS does not ship with CMake, so we have to install it before it can be used!
2021-04-02Documentation: Update macOS build path in BuildInstructions.mdthislooksfun
This is a follow-up to d0427b610c52a88f2e0a13f76fbe4c7c26769999.
2021-03-11Documentation: Update build path in BuildInstructions.mdLinus Groh
Build/ is now /Build/i686/. No need to mention other targets just yet.
2021-03-11Documentation: Clean up BuildInstructions.md a bitLinus Groh
- Fix headings - Consistent & more accurate code block language specifiers - Add some newlines where appropriate - Remove the strange "run ninja but actually you don't have to run ninja as ninja install takes care of that" part - Don't repeat specific build commands in "Ports" section - Reword "Keymap" section to more generic "Customize disk image"
2021-03-10Documentation: Add Serenity installation guide for VMwareBrendan Coles
2021-03-08Everywhere: Remove unnecessary whitespace at the end of some lines.Emanuele Torre
2021-03-04Documentation: Re-arrange Linux prerequisites in build instructionsDan MacDonald
2021-03-03Documentation: Add instruction about entitlements in BuildInstructionsElliot Maisl
The QEMU's `--accel hvf` command was recently enabled in the `run.sh` script, but it sadly doesn't work on macOS Big Sur: you need to first sign your code by adding an `entitlements.xml` file and running a simple command.
2021-03-01Meta: Use ninja instead of make in the WSL docs (#5575)Paweł Łukasik
Co-authored-by: Paweł Łukasik <lukasik.pawel@gmail.com>
2021-02-28Documentation: Add RunningTests documentAndrew Kaster
This page explains how to run host tests with Lagom and on-target tests with run-tests-and-shutdown.sh
2021-02-26Documentation: Update CLion configuration documentationItamar
Closes #5512
2021-02-21Documentation: Combine two "cd" commands in build instructions (#5457)Jorropo
2021-02-21Documentation: QtCreator likes BOMs, our linter doesn'tBen Wiederhake
2021-02-14Documentation: Update build dependencies on OpenBSDjoshua stein
2021-02-08Documentation: QtCreator and <syscall.h>Ben Wiederhake
2021-02-08Documentation: Update QtCreator includes for Debug.hBen Wiederhake
Including 'Build/' is unfortunate, but this seems to be what everyone does, short of creating a symlink/hardlink from /AK/Debug.h to /Build/AK/Debug.h. This feels like a crutch, but it's a better crutch than having a workaround that could easily break or corrupt commits (i.e., the symlinks).
2021-02-06Documentation: Clarify macOS build instructionsjarhill0
I just ran through successfully building and running SerenityOS under macOS. I ran into two main things that I struggled with, which were - properly enabling osxfuse (through System Preferences) - running the suggested command about compiler versions in such a way that would be compatible with Ninja (as it turns out, I just needed to add `-G Ninja` to the command) This commit clarifies those things for anyone who may follow
2021-02-01Documentation: Keymaps are nice, document them!Ben Wiederhake
fixup! Meta+Documentation: Fix sync-local.sh support, document keymaps
2021-01-26Documentation: Fix typo in CodingStyle.md (#5121)Dexter
2021-01-25Documentation: Add instructions for network bootingJean-Baptiste Boric
2021-01-22Everywhere: Fix typosLinus Groh
2021-01-22Meta: Get building on NixOS (#5005)Jonathan Turner
2021-01-22Meta: Document QtCreator 'lic' auto-completeBen Wiederhake
2021-01-20WindowServer: In HighDPI mode, load high-res window buttons and high-res cursorsNico Weber
Bitmap::load_from_file("foo.png", 2) will now look for "foo-2x.png" and try load that as a bitmap with scale factor 2 if it exists. If it doesn't, it falls back to the 1x bitmap as normal. Only places that know that they'll draw the bitmap to a 2x painter should pass "2" for the second argument. Use this new API in WindowServer for loading window buttons and cursors. As a testing aid, ctrl-shift-super-i can force HighDPI icons off in HighDPI mode. Toggling between low-res and high-res icons makes it easy to see if the high-res version of an icon looks right: It should look like the low-res version, just less jaggy. We'll likely have to grow a better API for loading scaled resources, but for now this suffices. Things to check: - `chres 640 480` followed by `chres 640 480 2` followed by `chres 640 480` - window buttons in window context menu (in task bar and on title bar) still have low-res icons - ctrl-shift-super-i in high-res mode toggles sharpness of window buttons and of arrow cursorf - arrow cursor hotspot is still where you'd expect
2021-01-20LibGfx: Give Bitmap a scale factorNico Weber
Gfx::Bitmap can now store its scale factor. Normally it's 1, but in high dpi mode it can be 2. If a Bitmap with a scale factor of 2 is blitted to a Painter with scale factor of 2, the pixels can be copied over without any resampling. (When blitting a Bitmap with a scale factor of 1 to a Painter with scale factor of 2, the Bitmap is painted at twice its width and height at paint time. Blitting a Bitmap with a scale factor of 2 to a Painter with scale factor 1 is not supported.) A Bitmap with scale factor of 2 reports the same width() and height() as one with scale factor 1. That's important because many places in the codebase use a bitmap's width() and height() to layout Widgets, and all widget coordinates are in logical coordinates as well, per Documentation/HighDPI.md. Bitmap grows physical_width() / physical_height() to access the actual pixel size. Update a few callers that work with pixels to call this instead. Make Painter's constructor take its scale factor from the target bitmap that's passed in, and update its various blit() methods to handle blitting a 2x bitmap to a 2x painter. This allows removing some gnarly code in Compositor. (In return, put some new gnarly code in LibGfxScaleDemo to preserve behavior there.) No intended behavior change.
2021-01-19Docs: Start outlining options for highdpi resource handlingNico Weber
2021-01-17Documentation: Add `patch` to fedora build deps (#4968)Andrew Thurman
2021-01-17DisplaySettings: Add UI for switching the scale factorNico Weber
For now, only support 1x and 2x scale. I tried doing something "smarter" first where the UI would try to keep the physical resolution constant when toggling between 1x and 2x, but many of the smaller 1x resolutions map to 2x logical resolutions that Compositor rejects (e.g. 1024x768 becomes 512x384, which is less than the minimum 640x480 that Compositor wants) and it felt complicated and overly magical. So this instead just gives you a 1x/2x toggle and a dropdown with logical (!) resolutions. That is, 800x600 @ 2x gives you a physical resolution of 1600x1200. If we don't like this after trying it for a while, we can change the UI then.
2021-01-15Documentation: Make serenity.includes more easily copyableBen Wiederhake
2021-01-15Documentation: Recommend ninja by defaultBen Wiederhake
2021-01-15WindowServer: Make HighDPI awareNico Weber
Almost all logic stays in "logical" (unscaled coordinates), which means the patch is small and things like DnD, window moving and resizing, menu handling, menuapplets, etc all work without changes. Screen knows about phyiscal coordinates and mouse handling internally is in physical coordinates (so that two 1 pixel movements in succession can translate to one 1 logical coordinate mouse movement -- only a single event is sent in this case, on the 2nd moved pixel). Compositor also knows about physical pixels for its backbuffers. This is a temporary state -- in a follow-up, I'll try to let Bitmaps know about their intrinsic scale, then Compositor won't have to know about pixels any longer. Most of Compositor's logic stays in view units, just blitting to and from back buffers and the cursor save buffer has to be done in pixels. The back buffer Painter gets a scale applied which transparently handles all drawing. (But since the backbuffer and cursor save buffer are also HighDPI, they currently need to be drawn using a hack temporary unscaled Painter object. This will also go away once Bitmaps know about their intrinsic scale.) With this, editing WindowServer.ini to say Width=800 Height=600 ScaleFactor=2 and booting brings up a fully-functional HighDPI UI. (Except for minimizing windows, which will crash the window server until #4932 is merged. And I didn't test the window switcher since the win-tab shortcut doesn't work on my system.) It's all pixel-scaled, but it looks pretty decent :^)
2021-01-14Documentation: UsingQtCreator: Include Userland in includes pathsbcoles
2021-01-12LibGfx: Make it possible to apply an (integer) scale to a PainterNico Weber
This adds a scale factor to Painter, which will be used for HighDPI support. It's also a step towards general affine transforms on Painters. All of Painter's public API takes logical coordinates, while some internals deal with physical coordinates now. If scale == 1, logical and physical coordinates are the same. For scale == 2, a 200x100 bitmap would be covered by a logical {0, 0, 100, 50} rect, while its physical size would be {0, 0, 200, 100}. Most of Painter's functions just assert that scale() == 1 is for now, but most functions called by WindowServer are updated to handle arbitrary (integer) scale. Also add a new Demo "LibGfxScaleDemo" that covers the converted functions and that can be used to iteratively add scaling support to more functions. To make Painter's interface deal with logical coordinates only, make translation() and clip_rect() non-public.
2021-01-12Docs: Add design doc and implementation plan for highdpiNico Weber
I have a local branch that gets us past implementation stage 1 in this doc, and it seems like a useful enough checkpoint to upstream it and then iterate in tree.
2020-12-31Meta+Docs+CI: Require clang-format >= 11Linus Groh
2020-12-30Docs: Update WSL notes with some workarounds for known issuesPeter Nelson
2020-12-29Build: Support non-i686 toolchainsmeme
* Add SERENITY_ARCH option to CMake for selecting the target toolchain * Port all build scripts but continue to use i686 * Update GitHub Actions cache to include BuildIt.sh
2020-12-27Documentation: Update macOS build instructions cask invocation (#4561)Nathan Lanza
brew deprecated `brew cask` and requires `brew install --cask` instead
2020-12-24Meta: Update install guide with link to hardware compatibility listDan MacDonald
2020-12-16Meta: Add Hardware Compatbility ListDan MacDonald
2020-12-11Meta: Update bare metal installation guideDan MacDonald
2020-11-07Documentation: Update required GCC version to >= 10Linus Groh
I initially thought as long as Lagom is not built >= 9 would be fine, but LagomCore is always built for the code generators.
2020-10-18Documentation: Remove outdated comment about global git identityAndreas Kling
This was used by the toolchain build script at one point but is now only used when running BuildIt.sh with --dev.
2020-10-18Documentation: Remove "flock" from dependenciesAndreas Kling
The build system no longer uses "flock", so stop telling people they need to install it.
2020-10-12Toolchain: Upgrade to GCC 10.2.0Andreas Kling
2020-10-03Everywhere: Fix more typosLinus Groh