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/components/Footer.astro b/src/components/Footer.astro
index f040204..f4d22b2 100644
--- a/src/components/Footer.astro
+++ b/src/components/Footer.astro
@@ -12,10 +12,10 @@ import gitLogo from "@icons/git-logo.svg?raw";
-
+
-
+
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
diff --git a/src/styles/docs/nav/search.css b/src/styles/docs/nav/search.css
index 87964ab..b1820c4 100644
--- a/src/styles/docs/nav/search.css
+++ b/src/styles/docs/nav/search.css
@@ -380,7 +380,6 @@ button[data-close-modal] {
#qs_search {
--pagefind-ui-primary: hsla(var(--accent-400));
--pagefind-ui-text: hsla(0 0 60);
- --pagefind-ui-font: Rubik;
--pagefind-ui-background: hsl(var(--blue) 10 15);
--pagefind-ui-border: hsl(var(--blue) 30 25);
--pagefind-ui-border-width: 1px;
diff --git a/src/styles/global.css b/src/styles/global.css
index cfe1fdc..6ff1e60 100644
--- a/src/styles/global.css
+++ b/src/styles/global.css
@@ -185,15 +185,15 @@ footer {
display: flex;
flex-direction: column;
justify-content: center;
- gap: 0.127rem;
+ gap: 0.2rem;
color: hsl(var(--text-dark));
- &>p {
+ & > p {
margin-bottom: 0.2rem;
color: hsl(0 0 40);
}
- &>a {
+ & > a {
text-decoration: none;
}
}
@@ -214,6 +214,12 @@ footer {
}
}
+@media not (min-width: 40rem) {
+ footer .credits > a {
+ padding: 0.2rem;
+ }
+}
+
@media (min-width: 40rem) {
html {
font-size: 16px;