Episode: 585
Title: HPR0585: QSK1: Devil in the Details
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr0585/hpr0585.mp3
Transcribed: 2025-10-07 23:33:07

---

Welcome to Hacker Public Radio, the following presentation is a syndication of the QSK podcast
used with kind permission of us woodmen. We are using this episode today because we do not
have enough shows on our own. Please consider recording a show today.
You may land me at Hacker Public Radio not on for more information.
This podcast is a proud member of the Fusion Podcast Network. Find us at Fusion Podcast Network.com.
Welcome to the Black Sparrow Media, the Internet Broadcast Network.
Hello everybody and welcome to the very first issue of the QSK netcast.
My name is Russ. I've also been known as K5TUX over at the Linux and the Hamsack podcast.
This is going to be a solo effort for me at least most of the time.
Sometimes I may bring on a guest or two or maybe even have a round table to discuss the topics
that I have in mind. But for the most part it's just going to be me talking from the top of my
head to you, my listeners, whoever they may be. There may be one of you, there may be a thousand of
you. Right now there are none of you because there has not been an episode put out so far.
But I'm going to change that right now with QSK number one. The first bit is what does QSK mean?
Well, as many of you may know, I'm a ham radio operator and ham radio operators use what are
called Q codes. Q codes are a shorthand, particularly used for communication using Morse code,
to indicate using shorthand a certain bit of text or information that you want to get across. Well,
QSK means I can hear you in between my transmissions. So the whole point of using QSK is the
title for this podcast or this netcast is that in between doing whatever it is you're doing,
you can hear me and you can listen to the netcast and hopefully I'll have something interesting to
say. I'm going to try and limit these discussions to 15 minutes or less, but depending on how things
go, it could be longer than that. It could be shorter than that. It's all about the topic and
making sure I get the information out and how long that takes is how long it takes. I've been a
podcaster now for about three years. So hopefully this will go pretty well and I do appreciate
everybody's stopping by to check out and listen. We are reviving the Black Sparrow Media
Internet broadcast network. You can find that over at blacksparrowmedia.net.
I am a part of that network as our Linux and the ham shack and the resident frequency podcast and
we're looking for new people all the time. I expect that we'll grow pretty quickly. I'm also a member
of the Fusion podcast network. These are the guys that bring you hacked and a few other offerings
coming into the works and since I was just starting this up, I thought I would join them over there
and see if I could start off with a broad listenership and hopefully that will work out for me
and work out for them as well. Rather than bore everybody with a long introduction and an
episode that is just talking about me, I guess we'll get kind of into the meat of the matter.
This netcast is basically going to be about stuff that I'm interested in. It'll probably take
a mostly technological bent, but there may be a few things in it that are simply my ranting about
something, social issues, the state of the economy, legal troubles, whatever may strike my fancy.
You can be guaranteed that about 80% of the content is going to be technological in nature
and will probably have something to do with free software, open source, Linux, BSD, things
along those lines. I may throw a few curveballs in there, we'll see how it goes.
So this episode is going to be about a topic that I have just discovered. It's an application that
does something that I've been looking to do for a little while and this was a seriously nice fit
for the project that I had in mind. It worked so well that I figured I would make my first
episode about this particular application. In one way, this is a very general use application
and in another way it's pretty specific and or esoteric, but we'll get through to the
generalized part of it first. What is the application you might ask? It's an application called
Devil's Pie and it's spelled just like it sounds, DEVILSPIE. It's a pretty interesting name for
an application that does what it does as far as I can tell there's no reason for it to be called
Devil's Pie, but we'll not worry about that for right now. And what you ask doesn't do. Well,
let me give you a little background on Devil's Pie. It comes originally from the Sawfish Window
Manager project. This is a Window Manager project for X Windows. It's usually run on Linux or BSD
to give you your desktop environment. Sawfish isn't used very much anymore. It came out of the
Sawmill project and was renamed after they found a conflict with the naming. It was supposed to be a
heavier weight Window Manager that was able to do more interesting things with your Windows
than some of the lighter weight Window Managers like Matacity. Overall, I happen to be a Debian
and or Ubuntu user. I also use Linux Mint and several other distributions based on Debian.
I also happen to use the GNOME desktop. That's my favorite desktop. For those of you who use KDE,
this could also apply, but it's specifically about the Matacity Window Manager, which is
more or less specific to GNOME in Ubuntu or Debian installs. That's the part that's a little bit
esoteric about this. I saw in the documentation that it was actually included in early Red Hat
and other RPM distributions. I don't know if those were GNOME desktop based or KDE desktop based
or something else desktop based. As I said initially, this is specifically about the Matacity
Window Manager. So why did Devil's Pie come to my attention? Well, it's very simple. I'm setting up
a media PC. I have a projector in my living room and I wanted a PC to be able to show some video
content. I wanted the video content on the screen to be interesting and dynamic as well as
just showing movies and other media content. So I wanted to do it in a way that was kind of cool
to look at as well as being a media PC. I started out with a blank Ubuntu install 9.10 Karma
Koala on a Dell Dimension 4550. Not particularly high-powered, it does have an Nvidia chipset card
in it with 256 megs of RAM that does the video decoding pretty well. I found this outstanding image
of a movie theater interior all done in glorious reds, very vibrant reds, with a huge red curtain
showing about four rows of seating, four or five rows of seating. It kind of gives you the
fifth row center point of view, which is supposed to be the best seat in the house.
And then what I do is when I want to watch a video or audio content, I load up some of the video or
audio content applications that I have, things like XBMC, which is the Xbox Media Center,
or a boxy, or even some of the built-in Linux applications for watching movies like Totem,
or some of the other stuff like Banshee, or what have you. What I wanted this experience to look
like is when a movie was playing that the screen would show up flanked by the curtains and be
viewed as if it were from the audience's point of view. Because I have a very large screen
when it's projected on the wall, it's about seven feet or so diagonal. It was something that
would look really cool to me if it could just be shown as a movie like it was literally being
projected on the wall. Well, it works okay by default, but the biggest problem is I wanted to be
able to remove the window decoration, things like the maximize and minimize buttons, the title bar
and things like that, so that when I was running XBMC or boxy and showing a video, it looked like
just the cool curtain background, the interior of the movie theater, and a movie screen.
Unfortunately, Matacity does not have the ability to do this. My first experience with trying to
make this work was to install the open box window manager under GNOME instead of Matacity.
That worked all right, but switching back and forth between window managers is kind of a pain in the
butt. So I went out there and did a Google search trying to find an answer to my problem,
and the answer turns out to be Devil's Pie. This application was written back around 2001 or
2002 time frame if I have done my research correctly. It's written by Ross Burton, and it's been
packaged in various RPM and Debian based distributions for a while. So if you're running Ubuntu or Debian,
you can apt-get install Devil's Pie. I believe if you're running a Fedora or other RPM based
distribution, you can do a yum install Devil's Pie as well. Now, as far as I know, this is only
going to work well with Matacity under GNOME. If you have some other kind of configuration, Devil's Pie
is really not going to help you out. So what I did was I apt-get installed it on my Ubuntu machine,
and I checked out the configuration file. It's pretty straightforward. It uses an EMAX-like
configuration syntax. So if you're familiar with how to configure the EMAX text editor,
you'll be very familiar with how to configure Devil's Pie. The ManPage for Devil's Pie is pretty
straightforward. It doesn't contain a lot of information, but it does give you some basic hints
on how to use each of its options. If you do a search for Devil's Pie on Google, you'll find
lots of tutorial help, which will get you started in the right direction and do basic things.
If this is the kind of thing you're interested in, as I said before, one of the things I wanted to
do was be able to remove the window decoration from my windows so that I just had a video screen
that looked like a movie projector screen. The easiest way to do that was to set up a configuration
file. This is a little complicated, but it shouldn't be too bad. Devil's Pie reads two different
configuration files. You can use the directory slash Etsy slash Devil's Pie, or you can use the
directory in your home directory, .Devil's Pie. In there, you want to put configuration files which
have the suffix .ds. That's .delta Sierra. Devil's Pie will read any file in either of those
directories with a .ds suffix and execute the EMAX style code contained within. Now you can either
run Devil's Pie from the command line or you can go to your system under Ubuntu, go to
Preferences and then Startup Applications and under Startup Applications, you'll insert slash
user slash bin slash Devil's Pie, call it Devil's Pie or something else so you know what it is,
and then restart your accession. That will run Devil's Pie. Of course, it won't do anything
until you have configuration files, so we'll get to that now. In my case, I put everything in the
slash Etsy slash Devil's Pie directory so it would be globally configured and mine was pretty
simple. I only wanted to do a couple of things. Going to read this out, but I'm going to leave out
the punctuation. I will post the information on this script in the show notes and also some
screenshots which are actually photographs of the end result so you can see what happened.
But the configuration file for my xbmc for example, and this can be either application specific
or global, but I have mine application specific. I have a file called xbmc.ds and in there it says
if contains application underscore name quote xbmc unquote geometry 1180 by 720 plus 49 plus 49
undecorate and that's it. You close out the if statement. Now what that does is since Devil's Pie runs
as a demon in the background, every time an application is open that requires a window to be generated,
it checks its code to see if it needs to do something to that window when it's opened up.
In the case of xbmc, when I started up on my system, it will do two things. It will undecorate
the window which means it will remove all of the stuff around the outside so it's just a plain
window. There's no sliders, there's no maximized minimized, there's no menu, there's no title bar,
there's no nothing, and then it will force the geometry of that window to be 1180 by 720
so it can show 720p resolution high definition video and it will be offset 49 pixels by 49
pixels from the upper left corner. Now I happen to be viewing a 1280 by 1024 screen so what this does
is it basically centers horizontally the window on the screen and leaves it slightly towards the top
which happens to mesh perfectly with the background image I have on the screen and if you go to the
website, you'll be able to see that and how it looks. So with the Devil's Pie demon running in the
background and that configuration file and I did a similar one for boxy so boxy starts up the same
way, it's located in the same place on the screen with no window decoration so they all look the
same when I want to run either application. So if I watch a movie in either application, they are
shown at 720 vertical lines, they are centered on the screen and positioned properly within the
background, there's no window decorations and it looks like the perfect movie watching experience
from the person sitting in the room as if they're fifth row center. So you may be wondering well that's
a pretty specific use case scenario, is there something else that this can do? Well you might be
interested to know that there are several configuration directives you can give to Devil's Pie to do
other things and here's a few of them that might be interesting to you. One of them is center. Center
says that each time a window pops up on the screen whether you set a particular one or set it
globally the window will be centered on the screen regardless of its size. Now this is when it opens
so you can adjust it later. This is specifically when the window is drawn the very first time
when it opens up. You can use the focus directive which means that when the window opens up it's
automatically given focus. This can be a good thing because there's another option which I don't
have in front of me which does the opposite it actually pushes the window to the background so you
can open a window and make sure that it's always under other windows when it opens up. That way it
doesn't necessarily interfere with what you have on your screen already. There's the full screen
directive which does exactly what it says it does when the window opens up it will be in full screen
mode. There's opacity which given the value between 0 and 100 sets the opacity of the window.
0 opacity means it'll be completely translucent and you won't even see it. 50% means it's 50%
opaque which means it'll be kind of faded out and of course 100% opaque means it'll be just like a
normal window. The pin directive allows you to put a window on more than one desktop if you happen
to have four desktops configured for yourself. If you pin a window to one two three or four of those
desktops it will exist on whatever desktops you specify when the application opens. This might be
particularly useful if you're running a lot of windows and you want to be able to see one particular
window no matter what desktop you're on. IRC junkies may find this to be particularly useful.
You can use the set desktop directive so that when the window opens it will be on a particular desktop
only one in this particular case but you may not want it to open up in the first desktop or the
desktop you happen to be in. Maybe you want your IRC client to always open in the fourth desktop.
Well you can do that as well. There's maximize which will set the window to maximize when it's
opened. There's minimize which will set it to minimize when it's opened and you can set any
combination or all combinations of these directives in any application or all applications depending
on how you configure your .ds files. There's also the debug directive which will tell you what
devil's pie is doing while it's doing it so you can figure out if you've got a configuration error
or if you've got some other problem that you know is keeping your devil's pie from doing what
it's supposed to do. Now there is a pointer in the website about devil's pie that someone has
written a graphical configuration utility for setting up the configuration files. You can find
that at code.google.com slash p slash g devil's pie. It's based on Python with Python GTK.
So again an open source application and I'm not sure if I said it originally but where you can
get devil's pie if you don't add dash get or if you're just interested in reading about it the
change log and so on and so forth. Ross Burton's blog is at Bertanini.com slash blog slash
computers slash devil's pie. That will take you to the place where the author has all the information
what he's been doing with it what changes have been made what distributions it's contained within
and there's even some links to some pointers tutorials and several other bits of information that
might be helpful for anyone who's interested in using this application. I was excited about this
because it's an application that works straight out of the box. It's been around for a long time
so it's good and stable. It did exactly what I wanted it to when I started it up. It took a few
minutes to figure out the configuration syntax and make sure it was doing exactly what I wanted it to
but it worked fantastic. The if statement structure inside the configuration files makes it so
that you can set the window by the name of the application when it starts up by the name of the
window and there are lots of other options that I haven't discussed. They're a little more deeper
into things than most people will probably need to get but definitely check out the man page
if you install it or do a Google for the GNOME or other tutorials that will help you out with
Devil's Pie if this is something that you find interesting or that might work for you in some way.
So that's pretty much it for the first QSK netcast. I do want to thank you for tuning in. I do hope
everybody got a little something out of this netcast. The one thing that's going to keep me going
is feedback. So if you like to send me some feedback you can go ahead and do that at info,
at QSKcast.info. That's Quebec, Sierra, Kilo, Charlie, Alpha, Sierra, Tango.info. Go ahead and send me
questions or comments about this netcast. Rip me to shreds, do whatever you think is necessary,
just let me hear from you. I really appreciate it. If you want to give me any hints on future
episodes that you'd like to hear from me, you can send me those as well. We also have a phone number
that's area code 417-2004811. Make sure you click the appropriate menu option when you get into
that number. You can leave me a voicemail and if you're interested in having that plate on the
air just let me know and we'll do that for you. I definitely want to like to get as much feedback
as I can so I have something to address in the next episode. You can find me as JR Woodman on just
about every social network out on the internet, particularly Twitter, Identica, Facebook, MySpace,
FourSquare. You name it. I'm probably out there somewhere. Again, thank you very much for listening.
This has been episode one of the QSK Netcast, a proud member of the Fusion Podcast Network
and the Black Sparrow Media Internet Broadcast Network. We'll see you all next time around. Thanks very
much.
Thank you for listening to H such a public radio. HPR is sponsored by tarrow.net so head on over to
the C-A-R-O dot-E-T for all of us in a week.
