Simple and flexbile QtQuick based desktop shell toolkit.
Find a file
Nydragon 31adcaac76
i3/sway: add support for the I3 and Sway IPC
sway: add urgent and focused dispatchers to workspaces

flake: add sway toggle

WIP sway: add monitor status

sway: handle multiple ipc events in one line

sway: reuse socket connection for dispatches & better command type handling

WIP sway: add associated monitor to a workspace

i3/sway: update to allow for i3 compatibility

i3/sway: manage setting the focused monitors

i3/sway: fix multi monitor crash

i3/sway: fix linting errors

i3/sway: update nix package flag naming to i3

i3/sway: add documentation, fix module.md and impl monitorFor

i3/sway: handle more workspace ipc events

i3/sway: fix review

i3/sway: fix crash due to newline breaking up an IPC message

i3/sway: handle broken messages by forwarding to the next magic sequence

i3/sway: break loop when buffer is empty

i3/sway: fix monitor focus & focused monitor signal not being emitted

i3/sway: use datastreams instead of qbytearrays for socket reading

i3/sway: fix lint issues

i3/sway: drop second socket connection, remove dispatch return value, recreate IPC connection on fatal error

i3/sway: handle run_command responses

i3/sway: remove reconnection on unknown event

i3/sway: fix formatting, lint & avoid writing to socket if connection is not open
2024-11-24 12:50:22 +01:00
.github all: fix clang 18 lints 2024-11-24 03:36:04 -08:00
ci ci: use qt6.7.2 from cached nixpkgs commit 2024-11-23 05:39:27 -08:00
cmake build: add qs_add_link_dependencies 2024-11-19 13:58:34 -08:00
src i3/sway: add support for the I3 and Sway IPC 2024-11-24 12:50:22 +01:00
.clang-format feat(wayland): custom layershell implementation 2024-02-24 02:06:40 -08:00
.clang-tidy all: fix clang 18 lints 2024-11-24 03:36:04 -08:00
.editorconfig ci: test compilation against supported qt version / compiler matrix 2024-11-23 05:20:51 -08:00
.gitignore misc: remove the docs and examples submodules 2024-06-02 15:23:19 -07:00
BUILD.md i3/sway: add support for the I3 and Sway IPC 2024-11-24 12:50:22 +01:00
CMakeLists.txt i3/sway: add support for the I3 and Sway IPC 2024-11-24 12:50:22 +01:00
CONTRIBUTING.md docs: mention member reference syntax in CONTRIBUTING 2024-07-21 17:44:09 -07:00
default.nix i3/sway: add support for the I3 and Sway IPC 2024-11-24 12:50:22 +01:00
flake.lock ci: test compilation against supported qt version / compiler matrix 2024-11-23 05:20:51 -08:00
flake.nix all: remove NVIDIA workarounds 2024-06-02 15:36:33 -07:00
Justfile build: add justfile entry to lint only changed files 2024-11-24 12:50:10 +01: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 crash: print warning messages for run/buildtime Qt version mismatch 2024-10-17 14:58:45 -07:00
shell.nix ci: run lints and test compile on arch 2024-11-24 02:09:41 -08:00

quickshell

Flexbile QtQuick based desktop shell toolkit.

Hosted on: 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.

Breaking Changes

Quickshell is still in alpha and there will be breaking changes.

Commits with breaking qml api changes will contain a ! at the end of the scope (thing!: foo) and the commit description will contain details about the broken api.

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";

      # THIS IS IMPORTANT
      # Mismatched system dependencies will lead to crashes and other issues.
      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.

The package contains several features detailed in BUILD.md which can be enabled or disabled with overrides:

quickshell.packages.<system>.default.override {
  withJemalloc = true;
  withQtSvg = true;
  withWayland = true;
  withX11 = true;
  withPipewire = true;
  withPam = true;
  withHyprland = true;
}

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

Arch (AUR)

Quickshell has a third party AUR package available under the same name. It is not managed by us and should be looked over before use.

Caution

The AUR provides no way to force the quickshell package to rebuild when the Qt version changes. If you experience crashes after updating Qt, please try rebuilding Quickshell against the current Qt version before opening an issue.

Fedora (COPR)

Quickshell has a third party Fedora COPR package available under the same name. It is not managed by us and should be looked over before use.

Anything else

See BUILD.md for instructions on building and packaging quickshell.

Contributing / Development

See CONTRIBUTING.md for details.

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.