docs: add build, packaging and development instructions

This commit is contained in:
outfoxxed 2024-06-02 14:37:48 -07:00
parent 238ca8cf0b
commit bd504daf56
Signed by: outfoxxed
GPG key ID: 4C88A185FB89301E
3 changed files with 241 additions and 73 deletions

View file

@ -11,7 +11,7 @@ Hosted on: [outfoxxed's gitea], [github]
Documentation available at [quickshell.outfoxxed.me](https://quickshell.outfoxxed.me) or
can be built from the [quickshell-docs](https://git.outfoxxed.me/outfoxxed/quickshell-docs) repo.
Some fully working examples can be found in the [quickshell-examples](https://git.outfoxxed.me/outfoxxed/quickshell-examples)
Some fully working examples can be found in the [quickshell-examples](https://git.outfoxxed.me/outfoxxed/quickshell-examples)
repo.
Both the documentation and examples are included as submodules with revisions that work with the current
@ -48,84 +48,32 @@ This repo has a nix flake you can use to install the package directly:
Quickshell's binary is available at `quickshell.packages.<system>.default` to be added to
lists such as `environment.systemPackages` or `home.packages`.
`quickshell.packages.<system>.nvidia` is also available for nvidia users which fixes some
common crashes.
The package contains several features detailed in [BUILD.md](BUILD.md) which can be enabled
or disabled with overrides:
```nix
quickshell.packages.<system>.default.override {
enableWayland = true;
enableX11 = true;
enablePipewire = true;
withQtSvg = true;
withJemalloc = true;
}
```
Note: by default this package is built with clang as it is significantly faster.
## Manual
## Arch (AUR)
Quickshell has a third party [AUR package] available under the same name.
As is usual with the AUR it is not maintained by us and should be looked over before use.
If not using nix, you'll have to build from source.
[AUR package]: https://aur.archlinux.org/packages/quickshell
### Dependencies
To build quickshell at all, you will need the following packages (names may vary by distro)
## Anything else
See [BUILD.md](BUILD.md) for instructions on building and packaging quickshell.
- just
- cmake
- ninja
- pkg-config
- Qt6 [ QtBase, QtDeclarative ]
Jemalloc is recommended, in which case you will need:
- jemalloc
To build with wayland support you will additionally need:
- wayland
- wayland-scanner (may be part of wayland on some distros)
- wayland-protocols
- Qt6 [ QtWayland ]
To build with x11 support you will additionally need:
- libxcb
To build with pipewire support you will additionally need:
- libpipewire
### Building
To make a release build of quickshell run:
```sh
$ just release
```
If running an nvidia GPU, instead run:
```sh
$ just configure release -DNVIDIA_COMPAT=ON
$ just build
```
(These commands are just aliases for cmake commands you can run directly,
see the Justfile for more information.)
If you have all the dependencies installed and they are in expected
locations this will build correctly.
To install to /usr/local/bin run as root (usually `sudo`) in the same folder:
```
$ just install
```
### Building (Nix)
You can build directly using the provided nix flake or nix package.
```
nix build
nix build -f package.nix # calls default.nix with a basic callPackage expression
```
# Development
For nix there is a devshell available from `shell.nix` and as a devShell
output from the flake.
The Justfile contains various useful aliases:
- `just configure [<debug|release> [extra cmake args]]`
- `just build` (runs configure for debug mode)
- `just run [args]`
- `just clean`
- `just test [args]` (configure with `-DBUILD_TESTING=ON` first)
- `just fmt`
- `just lint`
# Contributing / Development
See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
#### License