r/hyprland
Not able to use iGPU for rendering Hyprland.
I am not able to use iGPU as the primary renderer for Hyprland, the setup used to work fine before, but doesn't work now (for some reason I wasn't able to debug. I checked the wiki, but that only mentions AQ_DRM_DEVICES which is properly set as I understand. I am Arch.
❯ lspci -d ::03xx
01:00.0 3D controller: NVIDIA Corporation GA107 [GeForce RTX 2050] (rev a1)
05:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] (rev c6)
❯ l /dev/dri/by-path/
Permissions Size User Date Modified Name
lrwxrwxrwx - root 21 May 15:11 pci-0000:01:00.0-card -> ../card0
lrwxrwxrwx - root 21 May 15:11 pci-0000:01:00.0-render -> ../renderD129
lrwxrwxrwx - root 21 May 15:11 pci-0000:05:00.0-card -> ../card1
lrwxrwxrwx - root 21 May 15:11 pci-0000:05:00.0-render -> ../renderD128
❯ cat ~/.config/hypr/nvidia.lua
local env = hl.env
local igpu = true
if not igpu then
-- nvidia mode
env('__GLX_VENDOR_LIBRARY_NAME', 'nvidia')
env('__GL_VRR_ALLOWED', '1')
else
-- igpu mode
env('LIBVA_DRIVER_NAME', 'radeonsi')
env('__GLX_VENDOR_LIBRARY_NAME', 'mesa')
env('AQ_DRM_DEVICES', '/dev/dri/card1:/dev/dri/card0')
end
hl.config {
cursor = {
no_hardware_cursors = true,
},
}
❯ sudo lsof /dev/nvidia*
[sudo] password for sauceguy:
lsof: WARNING: can't stat() fuse.portal file system /run/user/1000/doc
Output information may be incomplete.
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Hyprland 1359 sauceguy 46u CHR 195,255 0t0 879 /dev/nvidiactl
Hyprland 1359 sauceguy 47u CHR 195,0 0t0 881 /dev/nvidia0
Hyprland 1359 sauceguy 48u CHR 195,0 0t0 881 /dev/nvidia0
Hyprland 1359 sauceguy 49u CHR 195,0 0t0 881 /dev/nvidia0
Hyprland 1359 sauceguy 50u CHR 195,255 0t0 879 /dev/nvidiactl
A problem with the previous setup was that if I started any game on the dGPU, then Hyprland too switched to the dGPU, even after closing the game, which inhibited sleep, ate battery, and needed a reboot to fix.
How do I fix this?
GitHub - ragnarokxg/hyprland-converter: Hyprland Config Transpiler (0.55+)
I present to anyone a hyperlang to Lua converter. I have tested it on my own config and though not completely perfect it converted close to 95% of the code for me.
If you run into any bugs please let me know so I can address it right away.
Now I understand what people were saying about the Lua configuration in hyprland.
I just had a problem building the hyprland configuration in Lua. After reading, researching, and racking my brain, I managed to get it working. Now, whether it's correct or not, I don't know, I just know it's working. When I thought it was solved, the navigation bar stopped working because I was using `hyprctl dispatch`, and that doesn't work in Lua. It's mandatory to use `hyprctl eval 'hl.config(...)'`. These are somewhat annoying differences to figure out and adapt to, but with patience, it works.
[Hyprland] Day 6 of learning Elkowars Wacky Widgets
Just started playing around with (Eww) on Hyprland. Spent the last six days setting up the layout grid, mapping the widget data, and testing out custom layer rules.
The dashboard is about 90% finished now. I still need to find a better spot to integrate that music widget on the bottom left into the main dashboard mesh lol.
any flag to remove this warning? (i dont want to use start-hyprland for some reason so yea)
on gentoo if that matters
[Hyprland] Hollow Knight rice
Lore accurate Hollow Knight rice.
Any HK/SS fans here?
Wallpaper: wallpaper
GTK theme: Graphite-dark
Icon theme: GreyStone
I built Mofakir: A native, local AI desktop assistant for Linux that actually interacts with your system (Hyprland / Wayland)
Hey everyone,
I wanted to share an open-source project I’ve been working on called Mofakir. I was tired of AI assistants being trapped inside web browsers, so I built a lightweight, native PyQt6 GUI agent designed specifically for Linux environments.
I’ve attached a demo video showing it in action on my setup!
What it actually does
It acts as a bridge between a local LLM and your OS:
- Context Aware: It can see your active screen, read copied text, or analyze image paths directly from your clipboard.
- Agentic Terminal Control: It can run local bash commands. For safety, harmless commands (
ls,uptime) run instantly in the background, while destructive commands (mkdir, package installs) trigger an interactive Approve/Deny GUI prompt. - Obsidian Integration: It uses the Local REST API to read, search, and write notes directly to your local vaults.
- Window Management: It can move active windows and manage workspaces on Hyprland.
- Offline Voice: Features automatic multilingual STT (via Whisper-cli) and fully offline TTS (via Piper).
My Hardware & Experience
I built and daily-drive this on Arch Linux and NixOS using Hyprland. My machine has 32GB of RAM, an AMD Ryzen 7 8845HS CPU, and I currently have it pointed to a local llama.cpp server running Gemma-4-e2b. I've also tested it out with GPT OSS (OpenRouter API).
Running it completely locally is incredibly satisfying. Gemma-4-e2b is surprisingly capable at navigating the system and figuring out which tools to call.
The Potential
While it works great on my current hardware with a smaller model, the agentic architecture scales directly with the model's intelligence. Hooking this up to heavier 32B+ parameters (or fast cloud endpoints) turns it into an absolute powerhouse for complex bash pipelines and deep code analysis.
If you want to try it out, hack on it, or break it, the repo on: https://github.com/bonnjalal/Mofakir
There is a Nix Flake available, as well as an interactive install script for standard distros.
Would love to hear your feedback or ideas for new tools to add to it!
Any way to have a bind call multiple dispatches at once?
I'm trying to make a bind that will close all windows in my active workspace, this is what I came up with.
hl.bind(mod .. "+ SHIFT + W", function()
for i, window in ipairs(hl.get_windows({ workspace = hl.get_active_workspace() })) do
hl.timer(function()
hl.dispatch(hl.dsp.window.close(window))
end, { timeout = i * 50, type = "oneshot" })
end
end)
Only thing that's throwing me off is how I needed to include the timer in it, calling window.close directly in the for loop-
hl.bind(mod .. "+ SHIFT + W", function()
for _, window in ipairs(hl.get_windows({ workspace = hl.get_active_workspace() })) do
hl.dispatch(hl.dsp.window.close(window))
end
end)
-causes only one window to close rather than all of them.
So is there a way to do this without timer or is this my best bet?
What advantages I get from moving from hyprlang to lua?
I have no past experiences in lua, and i've been thinking about moving to lua in terms of config files in hyprland. What are some meaningful advantages I get from changing my config files to lua?
The moon can now... well.. spin.
And also a ton of very cool effects. Worked my ass off today
My first set-up on hyprland
https://github.com/amitpadhan525/linux-dotfiles
This is my 1st set-up on hyprland
I face some problem after lua programming introduced.
But stii i create this , thanks to hyprland wiki.
Are we winning the ricing competition with this one?
Had some fun over the past days doing this, lol
zoom with v0.55?
how do i cursorzoom in v0.55+? i used to have
"bind = SUPER, F1, exec, hyprctl -q keyword cursor:zoom_factor 1
binde = SUPER, F2, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor | awk '/^float.*/ {v = $2 * 1.1; print (v > 3 ? 3 : v)}')
bind = SUPER, F3, exec, hyprctl -q keyword cursor:zoom_factor 1.75"
but keywords dont work anymore and i dont see any keyword or cursor zoom equivalent in the wiki. ik it still exists bc
"hl.gesture({
fingers = 2,
direction = "pinchin",
action = "cursorZoom",
zoom_level = 1.25,
mode = "mult",
})
hl.gesture({
fingers = 2,
direction = "pinch",
action = "cursorZoom",
zoom_level = 1,
mode = "live",
})" works tho. any help is appreciated, thanks!
Hyprland Newbie seeking answers
So basically I love Fedora. I had to shift to windows because of work stuff but now that it's done, I am going back to fedora. I knew Hyprland is best on Arch, but I still wanted it. After some high difficulty, I somehow installed it. The problem is that, I have Nvidia graphic card on my Asus Laptop, which is worse in this situation.
The first issue is that when I log in, the hardware cursor stays on screen and it never disappears. While the second cursor which is active keeps moving. I tried to ask GPT and other old forums, but none worked.
The log in screen is always the default one, Gnome. So I can't configure the HyprLock with it. I have to first log in through Default Fedora Gnome screen and then it goes to HyprLock. I tried to disable Gnome desktop manager, it ended up in disaster.
Please help.
[Hyprland] My first rice, still learning
my first rice! :D ... im already dead inside.
I have come full Lua-circle
After years with Gnome and then Openbox, I switched to Awesome, which had a Lua config.
Then I used Qtile for a while, which is written and configured in Python. You could inject random stuff deep into the window manager. The config is just a module. This was quite unstable.
After a while, I switched to i3 and used it for almost 10 years.
Eventually, it was time to try out Wayland, but just switching to Sway felt like a compromise, so I switched to Hyprland in January. It took a while to get everything working again, and now I have to switch to a Lua config again.
I'm not complaining, I just think it's funny.
I think I am going insane with this moon theme...
I have finished the next idea I had in mind. Thank god i had my rice as a backbone so I only need to change the visuals. Sorry for posting so often but i think this is AWESOME.