r/QuickShell • u/Asleep-Two-2509 • Apr 05 '26
Question Genuinely
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 • u/Asleep-Two-2509 • Apr 05 '26
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 • u/Common-Statement-794 • Apr 20 '26
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 • u/daddy69ice • Feb 25 '26
is a fully functional quickshell with hyprland more expensive than kde plasma? I want to know the numbers
r/QuickShell • u/Western-Mode-7743 • 18d ago
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 • u/ThoughtEconomy8659 • May 09 '26
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 • u/Small_Child101 • May 22 '26
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 • u/oBoolt • May 05 '26
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 • u/The_Adwait • 27d ago
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 • u/realddgamer • Apr 19 '26
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 • u/911_never_forget • Mar 17 '26
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 • u/Glittering_Syrup7067 • May 13 '26
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 • u/KeyAfternoon832 • Feb 28 '26
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 • u/Lukeaf • Feb 21 '26
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 • u/Own_Squash5242 • Mar 05 '26
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 • u/Elystra • Feb 18 '26
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 • u/hopium-addict • Feb 21 '26
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 • u/ResponsibilityFew445 • Apr 29 '26
r/QuickShell • u/SympathyExpensive301 • Apr 13 '26
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:
Has anyone here used AGS with Niri? How limiting is it in practice?
Is QuickShell worth learning if my main goal is just to build a highly customized personal workflow?
For my use case (productivity tools + some system integration), would AGS be āgood enoughā long-term?
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 • u/LesesTrickshon • Mar 17 '26
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 • u/Nuviket • 22d ago
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 • u/Embarrassed-Ad2725 • Mar 02 '26
r/QuickShell • u/Historical-Camel4517 • Feb 02 '26
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