Saturday, April 19, 2014

Integrate Rox-filer With Your Openbox Desktop

Awhile back I wrote about Rox-filer and I promised to augment that post with another detailing how to integrated it with your Openbox desktop, and right on schedule I'm here to do that now, several months later. Why Rox-filer, you ask? Besides being lightning quick, it's also somewhat similar to the old Mac OS 9 Finder so it brings back a bit of that Mac feel to your computer. It has its quirks and it takes a little extra work to set up things like desktop icons, mounting external devices, and integrating it with your Openbox menu, but it shouldn't take long with clear and well-articulated instructions. Okay, I can see your ironically raised eyebrows, but remember, this blog is free ;-)

Let's start with desktop icons. Rox has a Pinboard function that allows it to draw the desktop background and enable dragging and dropping icons onto it. It's not quite like other file managers where you drag and drop and the files get moved to the Desktop folder. Instead, dragging and dropping creates an iconified link on your desktop. The actual file remains in its original location.

So first you go into Rox's preferences by right-clicking on a Rox window and selecting "Options." Then click the "Desktop" section and make sure "Pinboard only" or "Panel and Pinboard" is selected (the Rox panel is somewhat gauche and ugly so I won't use it here). Next, in a terminal enter "rox --pinboard=MyPinboard" ("rox --pinboard=" with nothing after the equal sign conversely kills it). Here your desktop should turn a dull grey, because Rox is now painting your desktop. To get back your wallpaper, right-click on the desktop and choose "Backdrop..." and drag and drop your wallpaper file to the popup window. If you're wondering where your Openbox menu went, don't be alarmed. Go back into Rox's preferences, and in the "Compatibility" section click "Pass all backdrop mouse clicks to window manager." This gives you your Openbox menu back.

So now that you have it all set up, you can drag files (and applications) to your desktop. These are launchable icons that are right-clickable to bring down extra options, including removal. There are other options in the preferences for fine-tuning including choosing your icon theme, so make use. Once you're satisfied, you can put the command "rox --pinboard=MyPinboard" in your autostart file (don't forget the "&" at the end if it's an Openbox autostart file).

Now let's move on to mounting external media. It's easy for optical discs. You just open the mount point in Rox (/media/cdrom0 on Debian) and it automatically mounts. You can set the mount point as a Rox bookmark or add a pipe menu in your Openbox menu (more on that below) for shortcuts. Mounting external drives is basically the same, but they need unique entries in /etc/fstab for something called static mounting. At least you only have to do it once ;-)

(EDIT: Thanks to a tip in comments, you can automount any external media with udisks-glue. The steps are: install udisks-glue, then add "udisks-glue &" without quotes to ~/.config/openbox/autostart, and that's it! Your mounted drives will now show up in /media. So with that you can probably disregard the next few paragraphs until you get to pipe menus. And on the subject of pipe menus and udisks-glue, take a look at obdevicemenu.)

First, create a mount point in /mnt with sudo mkdir /mnt/name of your drive. Next, you want to get the UUID (universally unique identifier) of the device by plugging it in and entering in a terminal sudo blkid /dev/sdb1. Or it may be sdc1 if you have two internal drives taking up sda and sdb. You'll know when you plug in the device with your /dev directory open. Just see what gets added, sdb1 or sdc1, whichever. The "1" at the end refers to the first partition, so if you're attaching, say, a Mac in Target Disk Mode, you'll likely enter sdb3 because OS X system partitions are usually the third on a disk.

Once the blkid command reveals your UUID (and your file system under "TYPE"), create a new line in /etc/fstab that looks something like this (all on one line):

UUID=5956-17FF /mnt/FLASH_DRIVE vfat user,noauto,noatime,nofail,rw,flush 0 0

That's for my thumb drive. The "vfat" is its file system, the flush option is specifically for vfat file systems, and the nofail prevents failure messages at boot when the drive might not be attached. For non-thumb drives you may want user,noauto,noatime,nofail,rw,defaults.

Now to mount when you attach it, just open the mount point for that specific drive in Rox and it mounts. Unmounting should work by closing the folder and getting a dialog, but if it doesn't you can right-click on the folder and choose the unmount or eject options. And you can create bookmarks of your mount points for shortcuts, too.

I mentioned earlier you can add shortcuts in your Openbox menu in the form of pipe menus. With pipe menus, you can browse the contents of your home folder from right inside your Openbox menu and launch files or choose a folder to open in Rox. You can also open mount points to mount devices.

This involves getting a script file and adding entries to Openbox's menu.xml that call the script and create the pipe menus. So first go to this Archbang wiki page and copy and paste the contents of the script into a new file. You just need to make one change. Where it says "spacefm", change it to "rox-filer" or whatever your file manager is. Save it as obpipemenu-places and make it executable with sudo chmod a+x.

Next, add the correct entries to ~/.config/openbox/menu.xml, placing the entries in the file where you want them to appear in the menu. Mine look like this:

<menu execute="/home/dan/Source/scripts/obpipemenu-places" id="browse" label="home folder"/>

<menu execute="/home/dan/Source/scripts/obpipemenu-places /media" id="browse2" label="media"/>

<menu execute="/home/dan/Source/scripts/obpipemenu-places /mnt" id="browse3" label="mnt"/>


Save the file, then choose Reconfigure from your Openbox menu (or openbox --reconfigure from the terminal) and you should see something like this:

Openbox and Rox

One more note on integration, Roxterm has a lot of drag and drop compatibility with Rox-filer similar to the Finder and Terminal.app in OS X.

Bugs/Workarounds:

You didn't think all this would be bug-free, did you? There are a couple of conflicts with Conky I can point out. First, right-clicking on the desktop may cause your Conky output to blink. Since this is annoying, you can stop it by going into the "Compatibility" section in the preferences and selecting "Override window manager control of the pinboard and panels." Also, Conky transparency doesn't play well with Rox's pinboard. It'll show a black background on your Conky window. This might not be apparent at first if you have your previous wallpaper program running, too, but when you kill it and just have Rox drawing your desktop, you'll see it. The solution is to have both wallpaper programs running simultaneously, oddly enough. I use feh, which is low resource, anyway.

I also found a window focus bug. When I open a Rox window with the Pinboard running, the first click on the window unfocuses it, or if I first right-click on it, it brings down the Openbox menu as if I were clicking on the desktop. This is also annoying. To fix it, go into Rox's preferences, in the "Compatibility" section, and deselect "Pass all backdrop mouse clicks to window manager." But now you can't bring down your Openbox menu, right? Well, you can do it with a keybinding. I actually prefer this instead of hunting for an open space on the desktop to right-click on. Rather, you just hit a key combo wherever your cursor happens to be. To set a keybinding, edit your ~/.config/openbox/rc.xml by inserting the following into the <keyboard> section where all the keybindings are:

<keybind key="W-KP_Enter">
  <action name="ShowMenu"><menu>root-menu</menu></action>
</keybind>

The "W" in "W-KP_Enter" refers to the Windows key (Apple key on Apple keyboards) and "KP_Enter" is the Enter key on my iBook. If you look at the other keybindings, you'll see that "S" refers to Shift, "C" is Control, and "A" is Alt. You can look up the other keys with the xev command, such as the spacebar being "space".

I think that about covers it. Oh, wait, I forgot setting up default applications. That can be done with the "Set Run Action..." menu item when right-clicking on a file. Drag and drop your chosen application's .desktop file from /usr/share/applications into the popup window, and you're all set.

You can also add an "Open With..." function, only in Rox it's called "Send To..." To add applications to your "Send To..." menu, select "Send To..." and then "Customize" and it'll open a folder at ~/.config/rox.sourceforge.net/SendTo to drag and drop symlinks from /usr/share/applications into. To drop a symlink, choose "Link (relative)" from the resulting menu. You can also divide the applications by file type by adding hidden folders like .text, .image, and .video into the SendTo folder and dragging the proper symlinks into their respective folders. You should rename the symlinks to get rid of the ".desktop" at the end. Now you should see a menu of applications popup when you click on "Send To..." :-)))

You're still here? Go. Go home.

Ferris Bueller

Wednesday, March 26, 2014

Some Video Notes

If you've used youtube-dl from the command line lately, you may have noticed some breakage when passing a Youtube link to a video player, such as:

mplayer -quiet -framedrop -cache 8192 cache-min 10 $(youtube-dl -gf 18 "http://www.youtube.com/watch?v=aP_-P_BS6KY")

Homie won't play that. It's 'cause lately Youtube has been returning HTTPS links which Mplayer and VLC can't stream. As a temporary fix, youtube-dl's developer added the option "--prefer-insecure" which, when added to the youtube-dl command, will return HTTP links which Mplayer and VLC can play.

mplayer -quiet -framedrop -cache 8192 cache-min 10 $(youtube-dl -gf 18 --prefer-insecure "http://www.youtube.com/watch?v=aP_-P_BS6KY")

Mein developer cautions that this could break at any moment and that he'll look for a more permanent fix in the future.

This situation (I've upgraded the severity from snafu to situation) can also adversely affect any Greasemonkey scripts you have for link extraction, though in my observation it's hit and miss. Thankfully none of this seems to affect OS X's PPC Media Center, but if you're on Linux or utilizing scripts that have command line args, you'll definitely want to upgrade youtube-dl (youtube-dl -U) and try out the new option.

Also Youtube related, Nathan left a comment on my Some Cross-Platform Flash Alternatives post and mentions Minitube is now available for Debian Jessie and also works on Wheezy by...Well, I'll just let him explain it:
Another Flash alternative you can do is downloading the Debian Testing version of Minitube here: https://packages.debian.org/jessie/minitube . It works perfectly if you install it on Wheezy with dpkg, and then do a "sudo apt-get -f install" to install all the required dependencies. You can then add Minitube to Open With (It's in /usr/bin), and simply right-clicking any link to a YouTube video will open it in Minitube.
Cool!

And one final cool thing, there's a new fork of mplayer2 called mpv. It's available in Jessie, too, though I haven't tried using the above method to get it onto a Wheezy box. I never liked mplayer2 'cause it used a bit more CPU than MPlayer, but mpv seems to have fixed that. Also, G3 users will be happy to know you won't have to compile it with the configuration option "--disable-altivec" to prevent a crash when playing video. Mpv works out of the box, no compiling necessary.

Now let's get back at the productivity Nazis at Lifehacker and watch some frickin' videos at work!

Saturday, March 22, 2014

Compton Comes to Debian

(EDIT: This is also excellent for LXDE in case any of you got the impression this was for Openbox only.)

No, not the city, the compositor. Compton is a compositor program, like xcompmgr or cairo-compmgr, that adds effects to your desktop such as shadows and transparency. In fact, Compton is actually a sequel to xcompmgr that aims to improve and expand on the original with a whole host of bug fixes and new features, in particular adjusting window opacity.

Adjusting window opacity--for example, making all background windows transparent--is a feature I've been wanting for a long time. On OS X, there used to be an input manager called SetAlphaValue that did this, but it only worked for Cocoa windows and didn't work for the Finder or iTunes. For Linux, XFCE has had its own built-in compositor for awhile, and it's probably the only thing that's tempted me to switch, but I'm determined to be an Openbox loyalist. Xcompmgr is what we were stuck with, until Compton came along. The only problem was it wasn't in Debian's repositories, and for some excellent reason which is now completely lost to me, I never tried compiling it. But I don't have to dwell on my laziness anymore, because Compton has now arrived. It's now in the Jessie and Sid repositories, which I just noticed a week ago.

So after installing it, what do you do with it? Well, like xcompmgr, you can input all the settings from the command line (-cCf -D1 -t -8 -l -13 -r 10 -o .4), but with Compton you can also put all that junk in ~/.config/compton.conf and just enter "compton -b" in your autostart file (the -b daemonizes it). Here's my compton.conf:

# Shadow
# Enable client-side shadows on windows.
shadow = true;
# Avoid drawing shadows on dock/panel windows.
no-dock-shadow = true;
# Don't draw shadows on DND windows.
no-dnd-shadow = false;
# Zero the part of the shadow's mask behind
# the window (experimental).
clear-shadow = true;
# The blur radius for shadows. (default 12)
shadow-radius = 7;
# The left offset for shadows. (default -15)
shadow-offset-x = -11;
# The top offset for shadows. (default -15)
shadow-offset-y = -8;
# The translucency for shadows. (default .75)
shadow-opacity = 0.5;

# The shadow exclude options are helpful if you
# have shadows enabled. Due to the way compton
# draws its shadows, certain applications will
# have visual glitches (most applications are
# fine, only apps that do weird things with
# xshapes or argb are affected).
# This list includes all the affected apps I
# found in my testing. The "! name~=''" part
# excludes shadows on any "Unknown" windows,
# this prevents a visual glitch with the XFWM
# alt tab switcher (also prevents shadows on
# Openbox menu, so I commented it out).

shadow-exclude = [
# "! name~=''",
"name = 'Notification'",
"name = 'Plank'",
"name = 'Docky'",
"name *= 'Firefox'",
"name *= 'VLC'",
"name *= 'Chrome'",
"name *= 'Chromium'",
"class_g = 'Conky'",
"class_g = 'Kupfer'",
"class_g = 'Synapse'",
"class_g ?= 'Notify-osd'",
"class_g ?= 'Cairo-dock'",
"class_g ?= 'Xfce4-notifyd'",
"class_g ?= 'Xfce4-power-manager'"
];

# Opacity
# The opacity for menus. (default 1.0)
menu-opacity = 0.94;
# Default opacity of inactive windows.
# (0.0 - 1.0)
inactive-opacity = 0.6;
# Exclude applications from opacity.
focus-exclude = [
"name *= 'mplayer2'",
"name *= 'VLC'",
"class_g = 'XScreenSaver'"
];

# XRender backend: Step size for alpha pictures.
# Increasing it may result in less X resource
# usage, though some of your effects may become
# disabled.
alpha-step = 0.04;

# This prevents opacity being ignored for some
# apps. For example without this enabled
# xfce4-notifyd is 100% opacity no matter what.
detect-client-opacity = true;

# Keeps Openbox OSD focused.
mark-ovredir-focused = true;

# Limit Compton to repaint at most once every
# 1 /refresh_rate second to boost performance.
# Incompatible with certain VSync methods.
sw-opti = true;

# Unredirect all windows if a full-screen
# opaque window is detected, to maximize
# performance for full-screen windows.
# This option prevented my Openbox desktop from
# loading when put in my autostart file, so I
# commented it out.
#unredir-if-possible = true;


Basically, this creates subtle shadows around windows and menus and makes all background windows transparent. Also, menus are slightly transparent. There are some glitches as not every application draws windows exactly the same, but as you can see, you can enter exclusion rules for both shadows and opacity if any are giving you problems. The excluded applications are from sample compton.conf files I copied and pasted from the web (obviously I'm not using Chrome), but I've added the opacity exclusions for my screensaver and video players. Also I found a couple of Openbox-specific glitches that are noted in the comments.



So, looks good, you say? But what about performance? Surely this luxurious fanciness slows your desktop to a crawl, does it not? Well, I don't have 3d acceleration on this laptop, so I have to use the XRender backend instead of glx. And even then, performance is good. Menus and window switching are slightly less responsive, but not enough to be annoying. CPU usage increases, but it's only momentary. All-in-all I give Compton an A+ and think maybe it's time for a Jessie upgrade on all my computers.

Saturday, March 8, 2014

PPC Media Center Update

Just a quick FYI, Adam A.'s youtube-dl GUI wrapper that I posted about has been updated to support Comedy Central while cutting out the commercial breaks. Here's the Mediafire link, and I'll keep the original post updated with the newest version, too. And if you haven't downloaded this yet, really, you must. We won't hold your previous delinquency against you.

Tuesday, March 4, 2014

Hmmm...

I don't know what this is about, but I'll leave it here to get your hopes up ;-)

Thursday, February 27, 2014

It's a Cold Dark Universe

What better way to remind us of the universe as a cold, uncaring vast expanse and the prevalent threat of sudden death than space sims. The tradition started with the '80s classic Elite has been carried on with many 21st century titles that focus varyingly on trading, mining, combat, or just flying around in the space sim version of lurking. Among these sims are many freeware titles, and now that I've recently done a run down of first-person-shooters still available on PowerPC, I figured I'd do the same for space simulators.



We should start with Oolite since it's the most directly inspired by the original Elite. Like Elite, Oolite is open-ended, meaning what you do in the universe is entirely up to you. Wanna be a pirate? Go for it. Out of the box, the graphics are somewhat rudimentary, but you can change this by installing among tons of expansion packs -- ships, skins, HUDS, sound packs, and more. The stable release requires Tiger and is a universal binary, but their development release seems to require Intel and Leopard, so it looks like PowerPC development for OS X is dead unless someone wants to take the source code and run with it. Debian users can install the development release from their testing repositories, but given the state of PowerPC graphics drivers on Linux...ugh.



Similar to Oolite but perhaps more elaborate is Vega Strike. Their OS X download is a version behind the latest release and seems stuck there. I think they're looking for packagers. One weakness compared to the others on this list is its startup time, which is disconcertingly leisurely. It's also more demanding in the graphics department, though you can tone it down in the settings to play fluidly on almost any configuration at the expense of prettiness. Like Oolite, this is open-ended, too, though the universe here seems a bit more populated. Unlike Oolite, it's so complex it's hard to get into and start playing right away. Thankfully it comes with an extensive PDF manual. The more you're into this genre, the more you'll enjoy this.



Finally there's Babylon 5: I've Found Her. If you think Babylon 5 refers to the TV show, you are correct! IFH is a fan-made game from a couple of Russian developers, probably the best fan-made game you'll come across. Unlike Oolite and Vega Strike, IFH is mission-oriented rather than open-ended. It puts you in the cockpit of a starfury and is mostly focused on shoot 'em up style action, though there is some exploring as well. Fan-contributed missions can be downloaded from the FTP link in this thread (the unpacked files have to be manually installed into the app package -- ooo, fun). There's also a Simulator mode for quick dogfighting action. For training purposes, of course. Not to satisfy any blood lust. That would be unseemly.

Another option is FreeSpace Open, which requires the purchase of the original FreeSpace 2, and you also need a Windows system to extract FreeSpace 2's data files. Instructions for installing this on OS X are at the FreeSpace Wiki, though from the look of Youtube clips, FreeSpace Open might be too graphics intensive for all but the fastest G5s.

Friday, February 7, 2014

New GUI App for Youtube-dl

I ought to complain more often. Just a few weeks ago I wrote a post about Vevo branded videos on Youtube breaking third party downloaders. Youtube-dl was the only one that worked, and it being command line, was slightly inconvenient. Well, lo and behold, good fortune knocked on my door (sent me email) and Adam A. left me a cool new Applescript app called PPC Media Center. It's a simple and elegant GUI frontend for youtube-dl, and I can report on good authority that it's awesome.



Basically you call it by copying a video link to the clipboard, launching the app, and pasting the URL in the text field. You can also assign a hotkey (with a tool like Spark) and use it to launch PPCMC QuickLaunch.app which automatically pastes the URL for you. There's more about that in the documentation. Then you'll see three buttons, all of which are fairly descriptive. From my testing on Youtube, the download and streaming buttons will give you choices of quality and then you're on your way. Streaming opens in Quicktime, and downloading opens a Terminal window to show your progress. The "Check for Updates" button did just that and asked my administrative password to update youtube-dl in my /usr/local/bin.

All that and a cool icon.

Another cool thing, this being Applescript, is you can edit the script inside the app package with Script Editor.app. There's a little about adding site quality profiles in the documentation, and I wonder if it's super complicated to change the player from Quicktime to VLC or Mplayer. As the documentation notes, if you do make changes use the "Save" and not "Save As" command to avoid damaging the app bundle, and keep a backup copy of the original.

PPC Media Center requires OS X PowerPC (Tiger or Leopard) and youtube-dl. Download link below (updated version supports Comedy Central):

PPC_Media_Center_(G.U.I._for_youtube-dl).dmg.zip

One more note, you may notice on the right I've added a new link to my blogroll. It's Mac OS 9 Lives, and it has a special focus on audio workstations and music producing which was always a strength of the classic Mac OS and still is. They also have an active forum section, so go check them out!

Tuesday, January 21, 2014

Tor Browser Bundle for PowerPC

A little birdie left a comment saying there was an unofficial Tor Browser Bundle for Tiger and Leopard at sourceforge.net/projects/osxpowerpcpackages. Given that I wrote a long torturous post about how to use Tor without the bundle since Tor officially dropped PowerPC, I naturally wanted to check this out.

So I downloaded it and it turns out it's no joke. It really is the Tor Browser Bundle for PowerPC. From the ReadMe:
The packages in this directory are UNOFFICIAL builds of the Tor Browser Bundle for Mac OS X Tiger (10.4) and Leopard (10.5), PowerPC architecture. Optimized builds are available for the different PowerPC versions, namely, the G3, G4 (7450) and G5.

The bundle is based on the official Tor Browser Bundle with changes to make it work on older Mac OS X versions and the PowerPC architecture. Most notably, Qt is downgraded to the last Mac OS X 10.4 compatible version (4.7.4) and Firefox is patched with suitable parts from the TenFourFox changeset.

Note that the 2.3.25-15 bundle version is already outdated. More current version based on Tor Browser Bundle 3.5 is in the works.
As said, it's a bit outdated so it's more proof of concept, but everything works. It all comes in one app bundle, and inside it are Vidalia and Firefox, with Firefox having its own profile in TorBrowser.app/Library/Application Support/, so you can run this side-by-side with TenFourFox with no problems.

It also sets your user agent to the default Tor user agent, has private browsing enabled, and sets network.proxy.socks_remote_dns to "true," so all your bases are covered. It comes with two add-ons, HTTPS Everywhere and NoScript. NoScript is set to allow scripts by default, so you want to click the "Forbid Scripts" option.

Basically all you need to do is start the application, watch Vidalia establish a connection until Firefox opens to a page announcing you're browsing anonymously. Easy like it's supposed to be.

I'm also intrigued by the account name on that Sourceforge page. It's called "OS X PowerPC Packages" with the description, "A repository providing binaries of open source packages built for OS X Tiger (10.4) and Leopard (10.5) PowerPC." So maybe there'll be more in the future.

Sunday, January 12, 2014

Vevo Videos on Youtube

For a few months now you may have noticed Vevo titles on Youtube aren't working with Mactubes and a number of Greasemonkey scripts. If you like watching music videos, this puts a serious crimp on things as most "official" video releases are Vevo vids. Right now, the only third party tool I know of that can get around this is youtube-dl. So install* it if you don't have it, or update your copy with:

youtube-dl -U

With the newer version you can either download the videos or retrieve the links and stream them through a player like Mplayer (see Some Cross Platform Flash Alternatives). Both methods work.

*On the download page, if you don't have curl or wget, you can just click the download link at the top and then move it to your /usr/local/bin before running the chmod command. It can also be installed with Tigerbrew or Macports.