Simple and flexbile QtQuick based desktop shell toolkit.
Find a file
2024-03-29 05:41:39 -07:00
docs@a036d378c0 core/easingcurve: add EasingCurve type 2024-03-21 02:54:21 -07:00
examples@57078cd364 misc: update submodules 2024-03-14 05:01:56 -07:00
src core/screen: expose x and y positions 2024-03-29 05:41:39 -07:00
.clang-format feat(wayland): custom layershell implementation 2024-02-24 02:06:40 -08:00
.clang-tidy feat: completely redesign hot reloader 2024-02-16 17:09:50 -08:00
.editorconfig feat: begin work on docs, also minor refactoring 2024-02-12 16:00:42 -08:00
.gitignore docs: add build instructions to README 2024-03-07 06:19:09 -08:00
.gitmodules docs: mention quickshell-examples in README 2024-03-08 05:11:14 -08:00
CMakeLists.txt core/window: backing windows can now be destroyed and recreated 2024-03-27 00:45:53 -07:00
default.nix core/window: backing windows can now be destroyed and recreated 2024-03-27 00:45:53 -07:00
flake.lock build: nix packaging 2024-03-04 05:13:58 -08:00
flake.nix core/window: backing windows can now be destroyed and recreated 2024-03-27 00:45:53 -07:00
Justfile build: improve parallelism by removing core dependency on modules 2024-03-12 00:04:20 -07:00
LICENSE misc: add LGPL license 2024-03-04 06:10:03 -08:00
LICENSE-GPL misc: add LGPL license 2024-03-04 06:10:03 -08:00
README.md core/window: backing windows can now be destroyed and recreated 2024-03-27 00:45:53 -07:00
shell.nix build: greatly speed up build times using pch 2024-03-11 18:18:55 -07:00

quickshell

Simple and flexbile QtQuick based desktop shell toolkit.

Hosts: outfoxxed's gitea, github

Documentation available at quickshell.outfoxxed.me or can be built from the quickshell-docs repo.

Some fully working examples can be found in the quickshell-examples repo.

Both the documentation and examples are included as submodules with revisions that work with the current version of quickshell.

You can clone everything with

$ git clone --recursive https://git.outfoxxed.me/outfoxxed/quickshell.git

Or clone missing submodules later with

$ git submodule update --init --recursive

Installation

Nix

This repo has a nix flake you can use to install the package directly:

{
  inputs = {
    nixpkgs.url = "nixpkgs/nixos-unstable";

    quickshell = {
      url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };
}

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.

Note: by default this package is built with clang as it is significantly faster.

Manual

If not using nix, you'll have to build from source.

Dependencies

To build quickshell at all, you will need the following packages (names may vary by distro)

  • just
  • cmake
  • pkg-config
  • ninja
  • Qt6 [ QtBase, QtDeclarative ]

To build with wayland support you will additionally need:

  • wayland
  • wayland-scanner (may be part of wayland on some distros)
  • wayland-protocols
  • Qt6 [ QtWayland ]

Building

To make a release build of quickshell run:

$ just release

If running an nvidia GPU, instead run:

$ 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

License

Licensed under the GNU LGPL 3.
Unless you explicitly state otherwise, any contribution submitted for inclusion shall be licensed as above, without any additional terms or conditions.