From 74a18e301d97a2e8adb47d1ff8b2ad70e39ea59c Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Fri, 25 Oct 2024 13:03:25 -0700 Subject: [PATCH] add about page --- .gitattributes | 1 + public/assets/simple-shell-livereload.mp4 | 3 ++ src/config/Head.astro | 1 + src/config/io/helpers.ts | 2 + src/pages/docs/configuration/about.mdx | 65 +++++++++++++++++++++++ 5 files changed, 72 insertions(+) create mode 100644 .gitattributes create mode 100644 public/assets/simple-shell-livereload.mp4 create mode 100644 src/pages/docs/configuration/about.mdx diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..f8ff2b5 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.mp4 filter=lfs diff=lfs merge=lfs -text diff --git a/public/assets/simple-shell-livereload.mp4 b/public/assets/simple-shell-livereload.mp4 new file mode 100644 index 0000000..acd1dd5 --- /dev/null +++ b/public/assets/simple-shell-livereload.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c919ceef83c2e3bf9030b231ecb1e23ec2a1ad6bc5e98bc63cc201a1a3d16082 +size 2321959 diff --git a/src/config/Head.astro b/src/config/Head.astro index 17b3e51..8a05b81 100644 --- a/src/config/Head.astro +++ b/src/config/Head.astro @@ -1,6 +1,7 @@ --- import "@styles/global.css"; import "@fontsource-variable/rubik"; +import "@fontsource-variable/rubik/wght-italic.css"; interface Props { title: string; diff --git a/src/config/io/helpers.ts b/src/config/io/helpers.ts index 7f8e361..136d810 100644 --- a/src/config/io/helpers.ts +++ b/src/config/io/helpers.ts @@ -41,6 +41,7 @@ export function groupRoutes(routes: RouteData[]): GroupedRoutes { const defaultValue = { tutorials: { configuration: [ + { name: "About", type: "about" }, { name: "Intro", type: "intro" }, { name: "Positioning", type: "positioning" }, { name: "QML Overview", type: "qml-overview" }, @@ -52,6 +53,7 @@ export function groupRoutes(routes: RouteData[]): GroupedRoutes { if (!acc.tutorials) { acc.tutorials = { configuration: [ + { name: "About", type: "about" }, { name: "Intro", type: "intro" }, { name: "Positioning", type: "positioning" }, { name: "QML Overview", type: "qml-overview" }, diff --git a/src/pages/docs/configuration/about.mdx b/src/pages/docs/configuration/about.mdx new file mode 100644 index 0000000..8fa1a1f --- /dev/null +++ b/src/pages/docs/configuration/about.mdx @@ -0,0 +1,65 @@ +--- +layout: "@layouts/ConfigLayout.astro" +title: "About Quickshell" +--- +import { Icon } from "astro-icon/components"; + +# About Quickshell +Quickshell is a framework for building various desktop components, such as *status bars, +docks, panels, and overlays*, collectively known as the desktop shell. + +With Quickshell, you can create a desktop shell that is entirely your own. +It can look and feel however you want, to the extent of your ability to +use the [QML](https://doc.qt.io/qt-6/qmlreference.html) language. + +We provide a set of [easy to use libraries](/docs/types) for interacting with your +operating system, and *instant config reloading* so you can see your changes in real time, +as shown below. + + + +> [!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. + +# Feature Overview +Quickshell, QtQuick and the QML language provide the following notable features: +- Full customization. You are not limited to a predetermined set of modules. +- Full hot reloading. Your changes will be visible instantly on save. +- A fully reactive language, which means as properties change, all usages + will be re-evaluated. Manual signal usage can be largely avoided. +- Full support for animations, which can be entirely custom. +- Support for GLSL shaders. (further ease of use integrations are in progress) +- Support for third party QML modules. + +Quickshell provides operating system integrations for the following features: +- Panel windows (docks, status bars, desktop backgrounds, overlays) + - Wayland compositors require the `zwlr_layer_shell_v1` protocol. + - Many X11 window managers implement struts incorrectly, + causing anchors and exclusive zone not to work as intended. +- Lock screens + - Wayland compositors require the `ext_session_lock_v1` protocol. + - Currently unsupported on X11. +- Popup windows + - Unsupported on lockscreens. + - Clicking outside a popup to dismiss only works under [Hyprland](https://hyprland.org). +- Floating / Normal windows +- Display manager / Login screen (via Greetd) +- Management of other application windows (taskbar) + - Wayland compositors require the `zwlr_foreign_toplevel_management` protocol. + - Currently unsupported on X11. +- System Tray (StatusNotifierItem only, no XEmbed) +- Notification Daemon / Server +- Audio Controls (via PipeWire) +- Media Controls (MPRIS compatible players) +- Battery / power status (via upower) + +The following features are planned, but are not yet implemented: +- Bluetooth controls +- Ability to take a screenshot without using an external tool +- Embedded previews of other windows +- Hot reloading of GLSL shaders +- Bundling an optimized version of a configuration as an executable +- Larger set of builtin controls