212 lines
19 KiB
Plaintext
212 lines
19 KiB
Plaintext
|
|
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.
|