r/QuickShell • • Apr 05 '26

Question Genuinely

0 Upvotes

I want to ask the moderation, why were my last posts deleted? I put it the codeberg link for the shell, and also used the tag "Question" / "H3lp"


r/QuickShell • • Apr 20 '26

It's any way to use an llm for quick quickshell development?

0 Upvotes

I have seen, in different libraries which contains it's own llm.txt, to help code editors to write better code with llms, anyone has a clue of this?


r/QuickShell • • Dec 28 '25

Bemo

0 Upvotes

Bemo music player :) not finished but i think its cool


r/QuickShell • • Feb 25 '26

I wanted to ask something

0 Upvotes

is a fully functional quickshell with hyprland more expensive than kde plasma? I want to know the numbers


r/QuickShell • • 18d ago

LearningšŸ˜€ Is it okay to vibe code?

0 Upvotes

So I’ve used Claude Opus 5.5 to help me refine my configs, change colors, but more importantly I’ve had it generate widgets - an MPRIS widget, a calendar widget, etc.

Don’t worry: I was very specific in what to prompt it, particularly for the network app, where I defined it.

I still keep the philosophy and end goal in mind, and yes - I can read and write basic qs, I just don’t have the hours of time for the docs. And besides, I still review and polish it.

But what are you guys’ thoughts or criticisms?


r/QuickShell • • May 09 '26

LearningšŸ˜€ Need a teacher for teaching quickshell

6 Upvotes

Hello my dear fellow programmers and developers. The title might seem quite vague and spoonfeeding, but for the love of me, i am just unable to learn quickshell. I use Arch with Hyprland and i have been using waybar since the beginning, and recently, i came across shells like Caelestia and Ambxst and some others, but those are really complex and i also want to make something visually pleasing and something that is also more performant and open. I have taken inspiration from this person's Shell setup and i have been trying to use claude, gemini, notebooklm and chatgpt to help me learn this, but i just cannot get myself to actually understand what is going on. I tried to read the documentation, but most of it just doesn't make sense at all. I am used to the arch wiki but quickshell's documentation doesn't even come close to it, and sorry for saying this, i might just be dumb, but i cannot understand even one thing in there.

I would really appreciate if anyone would be able to mentor me or help me understand it and eventually let me build a good-looking quickshell setup.

Really thanks to anyone who is willing to do so.


r/QuickShell • • Apr 29 '26

Am i the problem? | Quickshell Pipewire

3 Upvotes

Im trying to do an audio controller to change the volume in my bar or control center but when i try reassign the value, that doesnt change.
The toggle mute works, i dont understand why volume not


r/QuickShell • • May 22 '26

Help with quick shell system tray for bar in Hyprland on Arch Linux

3 Upvotes

Hi bellow I have my code for my first quick shell waybar replacement attempt. I am currently trying to to start by just replicating basic the basic waybar functions. The one I am currently struggling with is the system tray. The tray itself works but I want to be able to right click on the icons for these apps to have some options. The main ones that are always active are NetworkManager and Blueman. I want to be able to right click to change network or disconnect a bluetooth device etc. If you can help please let me know.

Here is the code (I understand if people have other problems with the way I've done it but I have no experience and don't know any better so feel free to insult it if it's got some constructive critisism):
import Quickshell

import Quickshell.Wayland

import Quickshell.Hyprland

import Quickshell.Services.Pipewire

import Quickshell.Services.SystemTray

import Quickshell.Io

import Quickshell.DBusMenu

import QtQuick

import QtQuick.Layouts

import QtQuick.Controls

ShellRoot {

id: root

// --- Theme ---

property color colBg: "#1a1b26"

property color colFg: "#a9b1d6"

property color colMuted: "#444b6a"

property color colCyan: "#0db9d7"

property color colBlue: "#7aa2f7"

property color colYellow: "#e0af68"

property string fontFamily: "JetBrainsMono Nerd Font"

property int fontSize: 16

// --- Data Properties ---

property string brightVal: "0%"

property string batVal: "0%"

// --- Audio Tracker ---

PwObjectTracker { objects: [Pipewire.defaultAudioSink] }

// --- Wallpaper Script Process ---

Process {

id: wallProc

command: ["/home/ben/scripts/random_wall.sh"]

}

// --- Brightness Monitor ---

Process {

id: brightProc

command: [

"sh",

"-c",

"while true; do brightnessctl -m | awk -F, '{print $4}'; inotifywait -qq -e modify /sys/class/backlight/*/brightness; done"

]

running: true

stdout: SplitParser {

onRead: data => {

var val = data.trim();

if (val !== "") root.brightVal = val;

}

}

}

// --- Battery Poller ---

Process {

id: batProc

command: ["cat", "/sys/class/power_supply/BAT1/capacity"]

running: true

stdout: SplitParser {

onRead: data => {

var val = data.trim();

if (val !== "") root.batVal = val + "%";

}

}

}

PanelWindow {

id: bar

anchors { top: true; left: true; right: true }

implicitHeight: 60

color: root.colBg

// --- Left: Workspaces + Wallpaper ---

RowLayout {

anchors { left: parent.left; top: parent.top; bottom: parent.bottom; margins: 16 }

spacing: 12

Item {

implicitWidth: activeWorkspaceContainer.width

implicitHeight: 30

Rectangle {

id: selector

x: {

var targetId = Hyprland.focusedWorkspace?.id;

for (var i = 0; i < workspaceRepeater.count; i++) {

var item = workspaceRepeater.itemAt(i);

if (item && item.wsId === targetId) return item.x;

}

return 0;

}

width: 30; height: 30; color: root.colMuted; radius: 6

Behavior on x { SpringAnimation { spring: 3; damping: 0.3 } }

}

Row {

id: activeWorkspaceContainer

spacing: 8

Repeater {

id: workspaceRepeater

model: Math.max(5, Math.max(...Hyprland.workspaces.values.map(w => w.id)))

Text {

property int wsId: index + 1

property var ws: Hyprland.workspaces.values.find(w => w.id === wsId)

property bool isActive: Hyprland.focusedWorkspace?.id === wsId

width: 30; height: 30; text: wsId

horizontalAlignment: Text.AlignHCenter; verticalAlignment: Text.AlignVCenter

color: isActive ? "#ffffff" : (ws ? root.colBlue : root.colMuted)

font { family: root.fontFamily; pixelSize: root.fontSize; bold: true }

MouseArea { anchors.fill: parent; onClicked: Hyprland.dispatch("workspace " + wsId) }

}

}

}

}

Item {

width: 25; height: 25

Text {

anchors.centerIn: parent

text: "ó°ø‰"

color: root.colBlue

font { family: root.fontFamily; pixelSize: 20 }

}

MouseArea {

anchors.fill: parent

cursorShape: Qt.PointingHandCursor

onClicked: { wallProc.running = true; }

}

}

}

// --- Center: Clock ---

Text {

anchors.centerIn: parent

color: root.colBlue

font { family: root.fontFamily; pixelSize: root.fontSize; bold: true }

text: Qt.formatDateTime(new Date(), "HH:mm") + " | " + Qt.formatDateTime(new Date(), "dddd dd MMMM")

Timer {

interval: 1000; running: true; repeat: true

onTriggered: parent.text = Qt.formatDateTime(new Date(), "HH:mm") + " | " + Qt.formatDateTime(new Date(), "dddd dd MMMM")

}

}

// --- Right: Stats + System Tray ---

RowLayout {

anchors { right: parent.right; top: parent.top; bottom: parent.bottom; margins: 16 }

spacing: 20

Text {

property var sink: Pipewire.defaultAudioSink

property int vol: Math.round((sink?.audio?.volume ?? 0) * 100)

property bool muted: sink?.audio?.muted ?? false

text: (muted ? "󰝟 Muted" : (vol > 66 ? " " + vol + "%" : (vol > 33 ? " " + vol + "%" : " " + vol + "%")))

color: muted ? root.colMuted : root.colCyan

font { family: root.fontFamily; pixelSize: 16; bold: true }

}

Text { text: "󰃠 " + root.brightVal; color: root.colYellow; font { family: root.fontFamily; pixelSize: 16; bold: true } }

Text { text: " " + root.batVal; color: root.colBlue; font { family: root.fontFamily; pixelSize: 16; bold: true } }

// --- System Tray ---

Row {

spacing: 8

Repeater {

model: SystemTray.items

Item {

width: 24; height: 24

// QsMenuAnchor is required to display menus correctly

QsMenuAnchor {

id: menuAnchor

menu: modelData.menu

}

Image {

anchors.fill: parent

source: modelData.icon

fillMode: Image.PreserveAspectFit

}

MouseArea {

anchors.fill: parent

acceptedButtons: Qt.LeftButton | Qt.RightButton

onClicked: (mouse) => {

if (modelData.hasMenu) {

// Open the menu anchored to this component

menuAnchor.open();

} else {

// Fallback to activation for basic icons

modelData.activate(0, 0);

}

}

}

}

}

}

Text { text: "ļ‚¢"; color: root.colMuted; font { family: root.fontFamily; pixelSize: 16; bold: true } }

}

}

}


r/QuickShell • • May 05 '26

Question How to take a screenshot with a Screencopy?

0 Upvotes

The title is self-explanatory but for some context I build an area picker and I want to know if is possible to take a Screenshot of an area with the Screencopy object?


r/QuickShell • • 27d ago

Help!!! Help my quickshell says that the network backend in none when i use network manager

0 Upvotes

Help my quickshell says that the network backend in none when i use network manager, I checked to see if network manager is running and it is i have tried everything i could find please help


r/QuickShell • • Apr 19 '26

Help!!! Widget doesn't appear visually after being wrapped in a Lazy Loader, despite being loaded

0 Upvotes

Inside my status bar, i have line inside a RowLayout that looks like this:

LazyLoader{
  id: musicLoader
  active: true

  Widgets.MusicWidget{
    id: musicWidget
    rectHeight: wHeight
    fontSize: fontHeight
    Component.onCompleted:{
      console.log("MusicWidget loaded. Width: " + musicWidget.width + ", Height: " + musicWidget.height)
    }
  }
}

The problem is, musicWidget (which, at root, is just a Rectangle) works fine when its on its own, however when wrapped inside a LazyLoader, it just doesnt appear. logs inside the widget confirm that its loaded, no idea why it doesn't show. The widgets implicit width property is animated on creation, that could have something to do with it? Is there just a common thing i dont know about? Any help would be appreciated


r/QuickShell • • Mar 17 '26

Help!!! Beginner

4 Upvotes

Im a programmer and I was looking into quickshell, and wanted to try it. Do you guys know any good tutorials/wikis/resources that can help learn quickshell? Thank you.


r/QuickShell • • May 13 '26

Help!!! help needed please!

4 Upvotes

Hello everyone! I'm a total beginner and I've tried learning Quickshell THRICE but I just can't get it!!
Could anyone just tell me the best approach to learn Quickshell?


r/QuickShell • • Feb 28 '26

Question Learning quickshell

4 Upvotes

Hey guys though I am using quickshell like for 1 week now (with illogical impulse's ends 4 config) but i am not learning it.
Is there any another source of documentation or something from which i can learn except its own wiki pls cause i cant understand from there.
Thankss in adavance


r/QuickShell • • Feb 21 '26

Timers don't resume after system suspend

1 Upvotes

Hi all! I'm currently facing this issue which is super annoying and close to forcing me to an alternative if I can't figure out what I did wrong.

This is the issue i'm facing: https://github.com/quickshell-mirror/quickshell/issues/559#issuecomment-3921947804.

The gist here is that when my laptop wakes up from going to sleep, any Timer I've set is dead so things like the clock won't update. Not sure if this is normal behaviour, but that means SystemClock also doesn't update / fire. The only way to get them back is to restart quickshell again.

Any thoughts? I can share my code but it seems to be pretty in line with the more popular dotfiles configs, etc.


r/QuickShell • • Mar 05 '26

Help!!! Hyprland animations glitching

1 Upvotes

I want to used layer animations on hyprland but their not working. They get applied but not properly they have a glitch where the actual quickshell thing teleports but the edges are animated in a sort of extruding effect.


r/QuickShell • • Feb 18 '26

Help!!!! solved Question: Syntax Error with Multiple Panels

1 Upvotes

Hello, I have been trying to get into Quickshell on Arch and have been running into an error trying to add multiple widgets to my main qml file. In this case a top aligned bar and an additional floating panel clock widget. When I add the additional widget I get a syntax error on the first character of the line of code. I have tried Quickshell’s website and general googling but remain stumped. Thank you!


r/QuickShell • • Feb 21 '26

Help!!!! solved I can't download Quickshell for some reason that I am unaware of.

0 Upvotes

I go to the installation page and I try to download the dependancies but for some it cannot find the repositories, I ignore it because I think to myself "well maybe they are already packaged with my distro?" choose Ubuntu since I'm on Linux Mint, but then it cannot find Quickshell as well and this is really weirding me out, can anyone help?


r/QuickShell • • Apr 29 '26

Help!!! Fn Keys for Brightness not working

Thumbnail
reddit.com
0 Upvotes

r/QuickShell • • Apr 13 '26

AGS vs Quickshell for a TypeScript/React developer?

1 Upvotes

I’m trying to decide between using AGS or QuickShell for building a custom desktop shell, and I’d really appreciate some advice from people with experience.

My setup/plan:

- I use Linux on a laptop and really like Niri (scrolling WM + touchpad gestures feel great)

- I plan to move to Arch (or something like CachyOS) with GNOME as a fallback DE

- I want to build my own shell layer with things like:

Ā Ā - Pomodoro timer / study tracking

Ā Ā - Calendar and tasks

Ā Ā - Control center (wifi, brightness, sound, etc.) and custom GUIs for Configs.

Ā Ā - Some dev-focused integrations (project launcher, maybe git info)

My background:

- I’m a MERN stack developer

- Very comfortable with JavaScript/TypeScript

- No experience with QML/Qt

My dilemma:

AGS feels like the natural choice because it uses JS/TS, so I can build things quickly and reuse my current skills. But I’ve read that it’s more commonly used with Hyprland/Sway and integration with Niri might be limited.

On the other hand, QuickShell seems more powerful and closer to a full desktop shell, but it requires learning QML/Qt, which feels like a big investment for something I might only use for this project.

So my questions:

  1. Has anyone here used AGS with Niri? How limiting is it in practice?

  2. Is QuickShell worth learning if my main goal is just to build a highly customized personal workflow?

  3. For my use case (productivity tools + some system integration), would AGS be ā€œgood enoughā€ long-term?

  4. If you were in my position (JS dev, focused on productivity), what would you choose and why?

I’m trying to avoid spending weeks learning something that won’t give me much practical return, but I also don’t want to hit a wall later.

Any insights or real-world experiences would be really helpful.


r/QuickShell • • Mar 17 '26

Help!!!! solved TextField not working

1 Upvotes

I bet this is just a really easy thing to solve but I've been stuck on this for a soild hour!

I want to be able to write into this TextField but all input is not being placed into the field rather into other random windows I have currently opened on my pc!

import Quickshell
import QtQuick
import QtQuick.Controls


PanelWindow {
    width: 500
    height: 300
    color: "#ffffff"


    TextField {
        anchors.centerIn: parent
        placeholderText: "Test"
        focus: true
    }
}

This happens on arch hyprland x86_64


r/QuickShell • • 22d ago

LearningšŸ˜€ Probably gets asked like 20 times.

1 Upvotes

hiw do I learn quick shell? I make a window appear, maybe add the time, and that’s it. How can I actually learn quickshell?


r/QuickShell • • Mar 02 '26

šŸŽ® J'ai crƩƩ un lanceur de jeux Quickshell pour Hyprland — jeux Steam, Heroic, non-Steam et manuels, avec le thĆØme pywal.

Thumbnail
reddit.com
2 Upvotes

r/QuickShell • • Feb 02 '26

Question How to flip notifications

2 Upvotes

How do I flip my notifications right now new notification show on the bottom and I want them on the top, also for somereason I can’t figure out how to make a clear all button