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.