Is there any way to let it snow on my linux mint destkop?
Use xsnow
after having killed the desktop application that covers the root window. Run xkill
and click on the desktop. That works at least in LXDE where pcmanfm
usually handles the desktop, but should work in other environments as long as they don't require there being a desktop window in the background and don't restart it automatically when it dies.
I thought that a lua script (started by Conky) would be a good tool for this job. There's loads of conky examples on the internet (e.g. here and here), which could be used to make it snow on your desktop only when it's snowing outside, for example.
I saw on a forum that some guy had posted some video tutorials on how to write a lua script for fireworks as well as snow, but unfortunately he's taken them down from YouTube...
There is however some leftover code that could be used as a template, but unfortunately doesn't work in isolation.
If I had the time and inclination to learn lua and fix this myself, here's what I'd do:
- Install conky. Mint probably has it in its package manager.
- Save that snowfall fragment somewhere (e.g. ~/.conky/lua/snowfall.lua)
Add the following lines to ~/.conkyrc
lua_load /path/to/home/.conky/lua/snowfall.lua
lua_draw_hook_pre snowdayRun
conky
. Look for errors, and debug / comment lines out / add functions where necessary...
This is the basics of the snowday
function, as usable by conky
. I'd love to see this work actually!
What's missing? The timer
and Vector
classes, at least..
function conky_snowday()
timer.Stop("fuller")
local emt2 = ParticleEmitter(Vector(0,0,400))
timer.Create("fuller", 0.1, 0, function()
for i=1, 1000 do
local snowparty = emt2:Add("particle/snow",LocalPlayer():GetPos() + Vector(0,0,1000))
snowparty:SetVelocity(Vector(math.random(-700,700),math.random(-700,700),math.random(-300,-100)))
snowparty:SetDieTime(4)
snowparty:SetStartAlpha(0)
snowparty:SetEndAlpha(255)
snowparty:SetStartSize(5)
snowparty:SetEndSize(math.random(0,3))
snowparty:SetColor(255,255,255)
snowparty:SetRoll(math.random(0,360))
end
end)
emt2:Finish()
end