basic installation/getting started pages

This commit is contained in:
outfoxxed 2024-11-04 04:06:17 -08:00
parent 11256941d4
commit aabd966878
Signed by: outfoxxed
GPG key ID: 4C88A185FB89301E
4 changed files with 130 additions and 1 deletions

View file

@ -42,6 +42,8 @@ export function groupRoutes(routes: RouteData[]): GroupedRoutes {
tutorials: { tutorials: {
configuration: [ configuration: [
{ name: "About", type: "about" }, { name: "About", type: "about" },
{ name: "Installation", type: "installation" },
{ name: "Getting Started", type: "getting-started" },
{ name: "Intro", type: "intro" }, { name: "Intro", type: "intro" },
{ name: "Positioning", type: "positioning" }, { name: "Positioning", type: "positioning" },
{ name: "QML Overview", type: "qml-overview" }, { name: "QML Overview", type: "qml-overview" },
@ -54,6 +56,8 @@ export function groupRoutes(routes: RouteData[]): GroupedRoutes {
acc.tutorials = { acc.tutorials = {
configuration: [ configuration: [
{ name: "About", type: "about" }, { name: "About", type: "about" },
{ name: "Installation", type: "installation" },
{ name: "Getting Started", type: "getting-started" },
{ name: "Intro", type: "intro" }, { name: "Intro", type: "intro" },
{ name: "Positioning", type: "positioning" }, { name: "Positioning", type: "positioning" },
{ name: "QML Overview", type: "qml-overview" }, { name: "QML Overview", type: "qml-overview" },

View file

@ -0,0 +1,60 @@
---
layout: "@layouts/ConfigLayout.astro"
title: "Getting Started"
---
# {frontmatter.title}
See [Installation](./installation) if Quickshell isn't installed yet.
## Editor configuration
### Emacs
Install the [yuja/tree-sitter-qml](https://github.com/yuja/tree-sitter-qmljs) tree-sitter grammar,
and the [xhcoding/qml-ts-mode](https://github.com/xhcoding/qml-ts-mode) mode.
Both are packaged for nix via [outfoxxed/nix-qml-support](https://git.outfoxxed.me/outfoxxed/nix-qml-support).
Either `lsp-mode` or `eglot` should be usable for LSP ([caveats below](#language-server)).
The author's personal emacs config uses `lsp-mode` and `qml-ts-mode` as follows:
```elisp
(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
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](#language-server)),
install [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig)
and call `require("lspconfig").qmlljs.setup({})`.
## Language Server
The QML language has an associated language server,
[qmlls](https://doc.qt.io/qt-6/qtqml-tooling-qmlls.html).
Please note that the language server, along with quickshell's support of it,
is in development.
We are aware of the following issues:
- Qmlls does not work well when a file is not correctly structured.
This means that completions and lints won't work unless braces are closed
correctly and such.
- Qmlls cannot handle quickshell's singletons. This means you won't see
completions, and usages of singleton members may show a warning.
We're still investigating this problem and how to fix it.
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`.

View file

@ -0,0 +1,65 @@
---
layout: "@layouts/ConfigLayout.astro"
title: "Installation"
---
# {frontmatter.title}
> [!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.
# Nix
The Quickshell repo has an embedded flake.
You can use either `git+https://git.outfoxxed.me/outfoxxed/quickshell`
or `github:quickshell-mirror/quickshell`.
```nix
{
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.
# Arch
Quickshell is available from the aur by [mcgoth] under
the [quickshell](https://aur.archlinux.org/packages/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:
```sh
yay -S quickshell
```
(or your AUR helper of choice)
# Fedora
Quickshell is available from [errornointernet](https://github.com/errornointernet/)'s
Fedora COPR as [errornointernet/quickshell](https://copr.fedorainfracloud.org/coprs/errornointernet/quickshell).
Install using the command below:
```sh
sudo dnf copr enable errornointernet/quickshell
sudo dnf install quickshell
```
# Manual build
See [BUILD.md](https://git.outfoxxed.me/quickshell/quickshell/src/branch/master/BUILD.md)
for build instructions and configurations.

View file

@ -46,7 +46,7 @@
} }
} }
& p { & p, h1, h2, h3, h4, h5 {
margin-block: 0.618rem; margin-block: 0.618rem;
} }