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;