Compare commits

...

2 commits

Author SHA1 Message Date
outfoxxed f5edced908
improve footer accessibility + fix search font 2024-10-25 13:04:04 -07:00
outfoxxed 74a18e301d
add about page 2024-10-25 13:03:25 -07:00
8 changed files with 83 additions and 6 deletions

1
.gitattributes vendored Normal file
View file

@ -0,0 +1 @@
*.mp4 filter=lfs diff=lfs merge=lfs -text

BIN
public/assets/simple-shell-livereload.mp4 (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -12,10 +12,10 @@ import gitLogo from "@icons/git-logo.svg?raw";
</a>
</section>
<section class="socials">
<a href="https://matrix.to/#/#quickshell:outfoxxed.me" target="_blank">
<a href="https://matrix.to/#/#quickshell:outfoxxed.me" target="_blank" aria-label="Join our matrix space">
<Fragment set:html={matrixLogo}/>
</a>
<a href="https://git.outfoxxed.me/outfoxxed/quickshell" target="_blank">
<a href="https://git.outfoxxed.me/outfoxxed/quickshell" target="_blank" aria-label="Visit our git server">
<Fragment set:html={gitLogo}/>
</a>
</section>

View file

@ -1,6 +1,7 @@
---
import "@styles/global.css";
import "@fontsource-variable/rubik";
import "@fontsource-variable/rubik/wght-italic.css";
interface Props {
title: string;

View file

@ -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" },

View file

@ -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.
<video width="100%" preload="metadata" controls>
<source src="/assets/simple-shell-livereload.mp4" type="video/mp4"/>
</video>
> [!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

View file

@ -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;

View file

@ -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;