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
2024-11-24 03:36:04 -08:00
2024-11-19 13:58:34 -08:00
2024-11-24 03:36:04 -08:00
2024-06-02 15:36:33 -07:00
2024-03-04 06:10:03 -08:00
2024-03-04 06:10:03 -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.
Languages
C++ 93.1%
QML 3.4%
CMake 2.9%
Nix 0.5%