-->
NOTE
Quickshell is still in a somewhat early stage of development. There will be breaking changes before 1.0, however a migration guide will be provided.
All packages currently track quickshell’s master branch. This may change in the future.
The Quickshell repo has an embedded flake.
You can use either git+https://git.outfoxxed.me/outfoxxed/quickshell
or github:quickshell-mirror/quickshell
.
{
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";
};
};
}
The package is available as quickshell.packages.<system>.default
, which you can add to
environment.systemPackages
or home.packages
if you use home-manager.
Quickshell is available from the aur by [mcgoth] under the quickshell package.
WARNING
When using the AUR package, quickshell may break any time Qt is updated. The AUR gives us no way to actually fix this, but Quickshell will attempt to warn you if it detects a breakage when updating. If warned of a breakage, please reinstall the package
Install using the command below:
yay -S quickshell
(or your AUR helper of choice)
Quickshell is available from errornointernet’s Fedora COPR as errornointernet/quickshell.
Install using the command below:
sudo dnf copr enable errornointernet/quickshell
sudo dnf install quickshell
See BUILD.md for build instructions and configurations.
See Installation if Quickshell isn’t installed yet.
Install the yuja/tree-sitter-qml tree-sitter grammar, and the xhcoding/qml-ts-mode mode.
Both are packaged for nix via outfoxxed/nix-qml-support.
Either lsp-mode
or eglot
should be usable for LSP (caveats below).
The author’s personal emacs config uses lsp-mode
and qml-ts-mode
as follows:
(use-package qml-ts-mode
:after lsp-mode
:config
(add-to-list 'lsp-language-id-configuration '(qml-ts-mode . "qml-ts"))
(lsp-register-client
(make-lsp-client :new-connection (lsp-stdio-connection "qmlls")
:activation-fn (lsp-activate-on "qml-ts")
:server-id 'qmlls))
(add-hook 'qml-ts-mode-hook (lambda ()
(setq-local electric-indent-chars '(?\n ?\( ?\) ?{ ?} ?\[ ?\] ?\; ?,))
(lsp-deferred))))
Neovim has built-in syntax highlighting for QML, however tree-sitter highlighting
may work better than the built-in highlighting. You can install the grammar
using :TSInstall qmljs
.
To use the language server (caveats below),
install nvim-lspconfig
and call require("lspconfig").qmlljs.setup({})
.
The QML language has an associated language server, qmlls. Please note that the language server, along with quickshell’s support of it, is in development.
We are aware of the following issues:
Keeping in mind the above caveats, qmlls should be able to guide you towards more correct code should you chose to use it.
NOTE
Nix users should note that qmlls will not be able to pick up qml modules
that are not in QML2_IMPORT_PATH
.
Create your first configuration by reading the Intro.