<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Linden LAN &#187; Linux</title>
	<atom:link href="http://www.lindenlan.net/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lindenlan.net</link>
	<description></description>
	<lastBuildDate>Sat, 29 Nov 2014 04:54:20 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>No PHP For You!</title>
		<link>http://www.lindenlan.net/2008/12/14/no-php-for-you/</link>
		<comments>http://www.lindenlan.net/2008/12/14/no-php-for-you/#comments</comments>
		<pubDate>Sun, 14 Dec 2008 21:56:49 +0000</pubDate>
		<dc:creator><![CDATA[Brian]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.lindenlan.net/?p=270</guid>
		<description><![CDATA[On Ubuntu 8.10, I ran into a bit of problem. The Apache web server was working fine, but the following commands: sudo apt-get install php5 libapache-mod-php5 sudo /etc/init.d/apache2 restart failed to work after creating a phpinfo.php file in the /var/www/ root folder. Firefox complained, “You have chosen to open phpinfo.php which is a: PHP file.” [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>On Ubuntu 8.10, I ran into a bit of problem.  The Apache web server was working fine, but the following commands:<br/><br/></p>
<pre class="brush: bash">
sudo apt-get install php5 libapache-mod-php5
sudo /etc/init.d/apache2 restart
</pre>
<p>failed to work after creating a phpinfo.php file in the /var/www/ root folder.  Firefox complained, “You have chosen to open phpinfo.php which is a: PHP file.”  Apache was not using the PHP preprocessor for some reason.  A bunch of forum posts and blogs said to edit either /etc/apache2/httpd.conf or /etc/apache2/apache2.conf in order to associate the PHP mime type with the file extension.  That wouldn’t work because I had also installed phpmyadmin which has an apache.conf file that already has an AddType directive.  So, after some digging around, it turns out the module wasn’t even being loaded, even though that’s what you’d expect the package manager to handle when you tell it to install the module.  Any how, to fix the problem, just create symbolic links to the php5.load and php5.conf files in the /etc/apache2/mods-enabled/ folder.</p>
<pre class="brush: bash">
sudo ln -s /etc/apache2/mods-available/php5.load /etc/apache2/mods-enabled/php5.load
sudo ln -s /etc/apache2/mods-available/php5.conf /etc/apache2/mods-enabled/php5.conf
sudo /etc/init.d/apache2 restart
</pre>
<p>Update: Debian-based installs of Apache2 have some handy command line utils for managing the web server.  So to enable a mod, which automates the above, do this instead:</p>
<pre class="brush: bash">
sudo a2enmod php5
</pre>
<p>a2dismod is the command for disabling a mod.  For sites, there is also a2ensite and a2dissite.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lindenlan.net/2008/12/14/no-php-for-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Easy_Update Upgrade All</title>
		<link>http://www.lindenlan.net/2008/08/08/easy_update-upgrade-all/</link>
		<comments>http://www.lindenlan.net/2008/08/08/easy_update-upgrade-all/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 16:53:48 +0000</pubDate>
		<dc:creator><![CDATA[Brian]]></dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.lindenlan.net/2008/08/08/easy_update-upgrade-all/</guid>
		<description><![CDATA[I like Ruby, but I don’t like its performance, so I’m really anticipating Ruby 2.0. Meanwhile, I’ve been dabbling in Python. Learning a new language and comparing and contrasting them, really helps with determining each language’s strengths and weaknesses. For example, you can easily update all your Ruby gems. Unfortunately, python doesn’t have a direct [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>I like <a href="http://www.ruby-lang.org/">Ruby</a>, but I don’t like its performance, so I’m really anticipating Ruby 2.0.  Meanwhile, I’ve been dabbling in <a href="http://www.python.org/">Python</a>.  Learning a new language and comparing and contrasting them, really helps with determining each language’s strengths and weaknesses.  For example, you can easily update all your Ruby gems.  Unfortunately, python doesn’t have a direct way of doing this using easy_install.  Very odd.  I tried using the <a href="http://semanticmikeal.com/2007/04/easyinstall-upgrade-all.html">shell script method</a>, but for whatever reason it just didn’t work as advertised.  So I wrote a bash alias to take care of it.</p>
<p><span id="more-61"></span></p>
<pre class="brush: python">
alias easy_install_upgrade_all=&#039;python -c &quot;for dist in __import__(&#039;\&#039;&#039;pkg_resources&#039;\&#039;&#039;).working_set: print dist.project_name&quot; | while read package; do sudo easy_install -U &quot;${package}&quot; ; done&#039;
</pre>
<p>Put that alias in your <code>~/.bash_aliases</code> file, run <code>exec bash</code>, and you should be good to go (assuming your <code>.bashrc</code> file is setup to automatically load your <code>.bash_aliases</code> file).  Note the use of escaped single-quotes around “pkg_resources”.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lindenlan.net/2008/08/08/easy_update-upgrade-all/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>RSpec, Autotest, and Ruby-Libnotify</title>
		<link>http://www.lindenlan.net/2008/03/03/rspec-autotest-and-ruby-libnotify/</link>
		<comments>http://www.lindenlan.net/2008/03/03/rspec-autotest-and-ruby-libnotify/#comments</comments>
		<pubDate>Tue, 04 Mar 2008 04:35:37 +0000</pubDate>
		<dc:creator><![CDATA[Brian]]></dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.lindenlan.net/2008/03/03/rspec-autotest-and-ruby-libnotify/</guid>
		<description><![CDATA[After many false starts, I decided that I really needed to wrap my head around unit testing when writing Rails applications. I more or less completed a Rails 1.2.3 application without any formal tests, and I would like to upgrade it to 2.0.2 and make it RESTful in the process. At the same time, I’ve [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>After many false starts, I decided that I really needed to wrap my head around unit testing when writing Rails applications.  I more or less completed a Rails 1.2.3 application without any formal tests, and I would like to upgrade it to 2.0.2 and make it RESTful in the process.  At the same time, I’ve moved from a Windows development environment to a *nix one after installing Xubuntu on my laptop (an old Compaq Presario).  I’ve also switched from Cream to Emacs.  Despite my Windows desktop being more than twice as fast as my laptop, I just could not stand not being in a true *nix environment.  Too much of the Windows idiosyncrasies got on my nerves.  And my switch from Cream to Emacs was because I just didn’t like the instability of the hacks required to make Vim less of a modal editor.  If I tire of Emacs, I may try pure Vim instead, but I remember <a href="http://www.lindenlan.net/2006/10/27/i-have-cream-but-could-use-more-sugar/">installing Cream</a> simply because I didn’t like pure Vim to start with.  So with these various changes going on with my Rails programming environment, I figured it was an ideal time to learn to formally test my applications.  Of course the first part is setting up the testing environment so that it is easy to use, stays out of your way, and is informative.</p>
<p><span id="more-52"></span></p>
<p>RSpec is the current black when it comes to testing.  Seeing how it’s adopted by <a href="http://merbivore.com/">merb</a> by default and I’m targetting merb for an old app I shelved because Rails just didn’t have the high performance yet to pull it off, I figured it would be the test method I should learn.  It also helps that RSpec is just more readable than Test::Unit.  Installation is more or less trivial and is covered succinctly in the <a href="http://rspec.info/documentation/rails/install.html">RSpec documentation</a>.  Just remember to install RSpec as a plugin and not as a gem.  Autotest will puke otherwise.  You can also use the <code>-x</code> option if you want to install it as an svn external.  (Another option would be <a href="http://piston.rubyforge.org/">piston</a> another gem I need to look at.)</p>
<pre class="brush: bash">
ruby script/plugin install http://rspec.rubyforge.org/svn/tags/CURRENT/rspec
ruby script/plugin install http://rspec.rubyforge.org/svn/tags/CURRENT/rspec_on_rails
</pre>
<p>Then you bootstrap the plugin which installs the generators and rake tasks.</p>
<pre class="brush: bash">
ruby script/generate rspec
ruby script/generate rspec_model foo
rake db:migrate
rake spec
</pre>
<p>If all goes well, rspec should run and you should get a result similar to this:</p>
<pre class="brush: bash">
.
Finished in 0.313 seconds
1 example, 0 failures
</pre>
<p>Now that RSpec is running properly, we want it to run automatically.  That’s where ZenTest comes in.  (The capitalization is intentional.)</p>
<pre class="brush: bash">
sudo gem install ZenTest
</pre>
<p>ZenTest contains autotest.  You start autotest from the root of your Rails application.</p>
<pre class="brush: bash">
autotest
</pre>
<p>Autotest will then sit there continually checking your app folders for any file changes.  When one is detected that requires RSpec to run, autotest will fire off the rake task to do so.  Go ahead and edit <code>./app/models/foo.rb</code> by adding a blank line and then save it.  When you return to the terminal window you should see that the test ran and you got the same result as before.</p>
<p>There is a prettier and more informative alternative than the results provided in the terminal.  RSpec can produce HTML output as well.  Create a folder <code>./doc/spec/</code> for the output folder.  Now open up <code>./spec/spec.opts</code> in your editor and add the following lines.</p>
<pre class="brush: bash">
--format 
html:doc/spec/report.html
</pre>
<p>This will cause an HTML report to be generated every time a test is run, in addition to the terminal output.  The HTML report not only tells you what tests failed and passed but also where the failures occurred.  The HTML format is much easier to navigate than the terminal output.</p>
<p>Mac OS X users have a notification program called <a href="http://growl.info/">Growl</a> that autotest hooks into.  On Windows there’s <a href="http://www.fullphat.net/">Snarl</a>.  For Linux, there’s libnotify.  libnotify is not a standalone application like Growl or Snarl, but a library around which an application, or in this case, an applet must be written.  There’s a handful of how-tos that walk you thru hooking autotest to libnotify, but the one I considered the best was this blog post, <a href="http://www.ikhono.net/2007/12/16/gnome-autotest-notifications">Gnome autotest Notifications</a>.  If you follow those instructions, you should get a working notifier, but I would recommend replacing his .autotest file with my <a href='http://www.lindenlan.net/wp-content/uploads/2008/03/autotest.txt' title='Autotest File'>.autotest file</a>:</p>
<pre class="brush: ruby">
require &#039;rnotify&#039;
require &#039;gtk2&#039;
require &#039;launchy&#039;

module Autotest::RNotify
  class Notification
    attr_accessor :verbose, :image_root, :tray_icon, :notification, 
                  :image_pass, :image_pending, :image_fail,
                  :image_file_pass, :image_file_pending, :image_file_fail,
                  :status_image_pass, :status_image_pending, :status_image_fail
    
    def initialize(timeout = 5000, 
                   image_root = &quot;#{ENV[&#039;HOME&#039;]}/.autotest_images&quot; , 
                   report_url = &quot;doc/spec/report.html&quot;,
                   verbose = false)
      self.verbose = verbose
      self.image_root = image_root
      self.image_file_pass = &quot;#{image_root}/pass.png&quot;
      self.image_file_pending = &quot;#{image_root}/pending.png&quot;
      self.image_file_fail = &quot;#{image_root}/fail.png&quot;

      raise(&quot;#{image_file_pass} not found&quot;) unless File.exists?(image_file_pass)
      raise(&quot;#{image_file_pending} not found&quot;) unless File.exists?(image_file_pending)
      raise(&quot;#{image_file_fail} not found&quot;) unless File.exists?(image_file_fail)
      
      puts &#039;Autotest Hook: loading Notify&#039; if verbose
      Notify.init(&#039;Autotest&#039;) || raise(&#039;Failed to initialize Notify&#039;)

      puts &#039;Autotest Hook: initializing tray icon&#039; if verbose
      self.tray_icon = Gtk::StatusIcon.new
      tray_icon.pixbuf = Gdk::Pixbuf.new(image_file_pending,22,22)
      tray_icon.tooltip = &#039;RSpec Autotest&#039;

      puts &#039;Autotest Hook: Creating Notifier&#039; if verbose
      self.notification = Notify::Notification.new(&#039;X&#039;, nil, nil, tray_icon)

      notification.timeout = timeout

      puts &#039;Autotest Hook: Connecting mouse click event&#039; if verbose
      tray_icon.signal_connect(&quot;activate&quot;) do
        Launchy::Browser.new.visit(report_url)
      end
      
      Thread.new { Gtk.main }
      sleep 1
      tray_icon.embedded? || raise(&#039;Failed to set up tray icon&#039;)
    end
    
    def notify(icon, tray, title, message)
      notification.update(title, message, nil)
      notification.pixbuf_icon = icon
      tray_icon.tooltip = &quot;Last Result: #{message}&quot;
      tray_icon.pixbuf = tray
      notification.show
    end
    
    def passed(title, message)
      self.image_pass ||= Gdk::Pixbuf.new(image_file_pass, 48, 48)
      self.status_image_pass ||= Gdk::Pixbuf.new(image_file_pass, 22, 22)
      notify(image_pass, status_image_pass, title, message)
    end
    
    def pending(title, message)
      self.image_pending ||= Gdk::Pixbuf.new(image_file_pending, 48, 48)
      self.status_image_pending ||= Gdk::Pixbuf.new(image_file_pending, 22, 22)
      notify(image_pending, status_image_pending, title, message)
    end
    
    def failed(title, message) 
      self.image_fail ||= Gdk::Pixbuf.new(image_file_fail, 48, 48)
      self.status_image_fail ||= Gdk::Pixbuf.new(image_file_fail, 22, 22)
      notify(image_fail, status_image_fail, title, message)
    end
    
    def quit
      puts &#039;Autotest Hook: Shutting Down...&#039; if verbose
      #Notify.uninit
      Gtk.main_quit
    end
  end

  Autotest.add_hook :initialize do |at|
    @notify = Notification.new
  end

  Autotest.add_hook :ran_command do |at|
    results = at.results.last

    unless results.nil?
      output = results[/(\d+)\s+examples?,\s*(\d+)\s+failures?(,\s*(\d+)\s+pending)?/]
      if output
        failures = $~[2].to_i
        pending = $~[4].to_i
      end
      
      if failures &gt; 0
        @notify.failed(&quot;Tests Failed&quot;, output)
      elsif pending &gt; 0
        @notify.pending(&quot;Tests Pending&quot;, output)
      else
        unless at.tainted
          @notify.passed(&quot;All Tests Passed&quot;, output)
        else
          @notify.passed(&quot;Tests Passed&quot;, output)
        end
      end
    end
  end

  Autotest.add_hook :quit do |at|
    @notify.quit
  end
end
</pre>
<p>The improvements I made are to (a) forego using themeable icons and stick strictly with the <a href="http://www.thelucid.com/articles/2007/07/30/autotest-growl-fail-pass-smilies">Autotest Growl Fail/Pass Smilies</a> (b) run a check to make sure the images exist otherwise raise an error, and © load the RSpec HTML report when you click the icon in the system tray.  In order for the onclick event to work, you need to install the launchy gem.</p>
<pre class="brush: bash">
sudo gem install launchy
</pre>
<p>After all that is up and running, you should have a fully functioning test environment that will automatically run (after starting autotest in a terminal) with a notification applet running in your system tray that you can click to load a well-formatted HTML report in your browser.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lindenlan.net/2008/03/03/rspec-autotest-and-ruby-libnotify/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Automatically Login to gOS 2.0</title>
		<link>http://www.lindenlan.net/2008/01/20/automatically-login-to-gos-20/</link>
		<comments>http://www.lindenlan.net/2008/01/20/automatically-login-to-gos-20/#comments</comments>
		<pubDate>Mon, 21 Jan 2008 05:41:33 +0000</pubDate>
		<dc:creator><![CDATA[Brian]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://www.lindenlan.net/2008/01/20/automatically-login-to-gos-20/</guid>
		<description><![CDATA[The last couple of weekends I tinkered with the gOS 2.0 beta. It definitely looks better than the previous iteration. The gianormous icons were just way too big for a resolution of 1024x768. This will definitely make a more appealing internet appliance for my guests than my previous box. To make it login automatically as [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>The last couple of weekends I tinkered with the <a href="http://thinkgos.com/">gOS</a> 2.0 beta.   It definitely looks better than the previous iteration.  The gianormous icons were just way too big for a resolution of 1024x768.  This will definitely make a more appealing internet appliance for my guests than my <a href="http://www.lindenlan.net/2007/07/26/automatically-login-and-start-applications-on-deli-linux/">previous box</a>.  To make it login automatically as a guest user took a bit of work, though, since this capability was not part of the initial install.  </p>
<p><span id="more-45"></span></p>
<p>In order to create the guest user account, the easiest way is to use the Users and Groups application.  This is not installed by default.  You need to first install this via Synaptic/apt-get.  The package to install is <code>gnome-system-tools</code>.  It will install other complimentary administration utilities.  Once you start Users and Groups it will be straight-forward, as to how to add a user.  Just put in the username, real name and keep the “Desktop user” profile, set the password, and click OK.  Everything else you can safely ignore.</p>
<p>The next thing to setup is the auto-login.  gOS 2.0 uses Entrance as the display manager—worst misnomer ever by the way.  In Linux, the display manager is the name of the graphical login.  Why couldn’t they just call it the graphical login manager.  Anyhow, Entrance does not have an auto-login setting (yet?).  So to get that feature you need to install the Gnome display manager, <code>gdm</code>, again using Synaptic or apt-get.  During the configuration phase of the installation it should prompt you which display manager you want to be used by default.  Make sure to select gdm.  Afterwards, just open the Login Window preferences and go to the Security tab.  There you will find a checkbox to Enable Automatic Login.  Choose the guest account as the user and that’s all there is to it.</p>
<p>Optionally, you can install the greenos-gdm-theme.  This will make the login screen and OS have continuity.  Once installed, you set the display manager theme via the Login Window preferences.  Just select the “gos” theme and make sure the “Theme” setting is set to “Selected only.”</p>
<p>The last thing to do is to prevent Entrance from starting up.  You might think to simply uninstall it.  Don’t.  The problem with that method is that the <code>entrance</code> package is a dependency of the <code>entrance-theme-greenos</code> package which is a dependency of the <code>greenos-artwork</code> package.  Uninstalling Entrance, means uninstalling a good portion of the gOS theme art.  So the workaround is to install the Boot-Up Manager, <code>bum</code>.  After installing the Boot-Up Manager, start it up and simply uncheck “The enlightened login manager, entrance,”  and you’re good to go.</p>
<p>After finishing all this, it might have been much easier just to use the same method I used originally for <a href="http://www.lindenlan.net/2007/07/26/automatically-login-and-start-applications-on-deli-linux/">my first guest computer</a> rather than install <code>gdm</code>.  Something to try next time. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.lindenlan.net/2008/01/20/automatically-login-to-gos-20/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Automatically Login And Start Applications (On DeLi Linux)</title>
		<link>http://www.lindenlan.net/2007/07/26/automatically-login-and-start-applications-on-deli-linux/</link>
		<comments>http://www.lindenlan.net/2007/07/26/automatically-login-and-start-applications-on-deli-linux/#comments</comments>
		<pubDate>Fri, 27 Jul 2007 00:11:24 +0000</pubDate>
		<dc:creator><![CDATA[Brian]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://www.lindenlan.net/2007/07/26/automatically-login-and-start-applications-on-deli-linux/</guid>
		<description><![CDATA[My DeLi Linux computer’s main application is an internet access “kiosk” for guests who stay at my house. To this end I needed the machine to automatically login the guest user and launch Firefox. To automatically login the user and start the GUI, I added the following command to the guest’s /etc/rc.local file. NOTE: You [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>My <a href="http://delili.lens.hl-users.com/">DeLi Linux</a> computer’s main application is an internet access “kiosk” for guests who stay at my house.  To this end I needed the machine to automatically login the guest user and launch Firefox.  </p>
<p><span id="more-33"></span></p>
<p>To automatically login the user and start the GUI, I added the following command to the guest’s /etc/rc.local file.  NOTE: You have to be root to edit this file.  This <a href="http://www.delilinux.de/forum/topic.php?id=119">solution</a> was posted on the <a href="http://www.delilinux.de/forum/">DeLi Linux forum</a>, but I’m sure it’s applicable to any Linux distro.</p>
<pre class="brush: bash">
su - guest -c startx
</pre>
<p>To launch an application at startup, there are various ways.  The first is to edit the user account’s ~/.xinitrc file.  In the case of Firefox, you would change this section</p>
<pre class="brush: bash">
# start some nice programs

exec icewm-session
</pre>
<p>to</p>
<pre class="brush: bash">
# start some nice programs

firefox &amp;
exec icewm-session
</pre>
<p>The application you want to start must come <em>before</em> the <code>exec icewm-session</code> command.  However, I settled on using the method built into IceWM instead.  Create a file ~/.icewm/startup.  This file is executed by <code>icewm-session</code>.  An example, using Firefox:</p>
<pre class="brush: bash">
#!/bin/sh
firefox &amp;
</pre>
<p>Don’t forget to set the <code>startup</code> file as executable.</p>
<pre class="brush: bash">
chmod +x ~/.icewm/startup
</pre>
<p>I know there are <a href="http://www.unc.edu/~payst/?p=2">tutorials</a> <a href="http://ramblings.narrabilis.com/wp/firefox-fullscreen-kiosk-machine/">and</a> <a href="http://kiosk.mozdev.org/">projects</a> for creating an internet kiosk using Linux, but I really didn’t care to jump through all the hoops to lock down the machine since a) it would be used infrequently, b) it wasn’t going to be in public, and c) though the primary use will be for accessing the web, it may not be the only use.  You never know.  My guests may want to play some Minesweeper.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lindenlan.net/2007/07/26/automatically-login-and-start-applications-on-deli-linux/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Change The IceWM Start Menu Button (On DeLi Linux)</title>
		<link>http://www.lindenlan.net/2007/07/25/change-the-icewm-start-menu-button-on-deli-linux/</link>
		<comments>http://www.lindenlan.net/2007/07/25/change-the-icewm-start-menu-button-on-deli-linux/#comments</comments>
		<pubDate>Wed, 25 Jul 2007 23:21:09 +0000</pubDate>
		<dc:creator><![CDATA[Brian]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://www.lindenlan.net/2007/07/25/change-the-icewm-start-menu-button-on-deli-linux/</guid>
		<description><![CDATA[Changing the IceWM start menu button is actually easier than I expected, and you don’t even have to be logged in as root to do it. It turns out that you can override any theme image if it’s in the same relative location under ~/.icewm. Everything else will remain unchanged. So let’s change the start [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Changing the <a href="http://www.icewm.org/">IceWM</a> start menu button is actually easier than I expected, and you don’t even have to be logged in as root to do it.  It turns out that you can override any theme image if it’s in the same relative location under ~/.icewm.  Everything else will remain unchanged.  So let’s change the start menu button for the default theme in <a href="http://delili.lens.hl-users.com/">DeLi Linux</a> (goldiKwarc).</p>
<p><span id="more-32"></span></p>
<p>Open up a terminal (<code>mrxvt</code>) and enter the following commands.  NOTE: If you are not using DeLi Linux, your particular installation of IceWM may differ, and as a result, file locations may differ.</p>
<pre class="brush: bash">
cd ~/.icewm
mkdir themes
mkdir themes/goldiKwarc
mkdir themes/goldiKwarc/taskbar
cd themes/goldiKwarc/taskbar
ln -s /usr/share/icewm/themes/goldiKwarc/taskbar/icewm-alt.xpm icewm.xpm
</pre>
<p>From the start menu, select Logout…–&gt;Restart Icewm.  Once IceWM reloads, you should see <a href="http://en.wikipedia.org/wiki/Tux">Tux</a> smiling back at you.  If you want to use the start button from a different theme, just change the symbolic link command appropriately.  If you use one your own, you can either link, copy, or move the file to this folder.  This technique should work for any image in a theme as long as the relative location is the same.  Of course if you change a lot of images, you may want to consider <a href="http://www.icewm.org/themes/">creating a new theme</a> instead.</p>
<p>NOTE: <code>start.xpm</code> is another valid name.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lindenlan.net/2007/07/25/change-the-icewm-start-menu-button-on-deli-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Change The IceWM GUI Fonts (In DeLi Linux)</title>
		<link>http://www.lindenlan.net/2007/07/24/change-the-icewm-gui-fonts-in-deli-linux/</link>
		<comments>http://www.lindenlan.net/2007/07/24/change-the-icewm-gui-fonts-in-deli-linux/#comments</comments>
		<pubDate>Tue, 24 Jul 2007 21:22:27 +0000</pubDate>
		<dc:creator><![CDATA[Brian]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://www.lindenlan.net/2007/07/24/change-the-icewm-gui-fonts-in-deli-linux/</guid>
		<description><![CDATA[After loading DeLi Linux I was a little disappointed with the way things looked. Fonts were WAY too small. So I started poking around to find a way to rectify the situation. I saw this nifty little app in the IceWM Start menu called Font Selector (xfontsel). Unfortunately, the program is cursed with a name [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>After loading <a href="http://delili.lens.hl-users.com/">DeLi Linux</a> I was a little disappointed with the way things looked.  Fonts were WAY too small.  So I started poking around to find a way to rectify the situation.  I saw this nifty little app in the <a href="http://www.icewm.org/">IceWM</a> Start menu called Font Selector (<code>xfontsel</code>).  Unfortunately, the program is cursed with a name that makes you think it does more than it actually can.  The Font Selector simply previews fonts based on a series of properties you select.  Initially, it didn’t seem to be all that useful, until I figured out how that font selection syntax was used.</p>
<p><span id="more-31"></span></p>
<p>The default GUI fonts are a combination of Helvetica and Courier.  The default GUI fonts can be overridden, not surprisingly, by the currently selected theme.   Those font settings can then be overridden by a <code>prefoverride</code> file.   NOTE: If you are not using DeLi Linux, your particular installation of IceWM may differ, and as a result, file locations may differ.</p>
<pre class="brush: bash">
cp /usr/share/icewm/preferences ~/.icewm/prefoverride
</pre>
<p>FYI the ~/.icewm folder contains user-specific settings for IceWM.</p>
<p>Open the file using one of the installed editors (vi, X File Write, Beaver Text Editor, or XElvis).  Delete everything before line 753.  </p>
<p>Let’s work through an example.  On line 106 (previously line 858), you will find a setting for TitleFontName.  See anything familiar with the value?  It’s the same kind of string value used in the Font Selector.  </p>
<p>Start Font Selector and set the fndry to “adobe”, fmly to “helvetica”, wght to “medium”, slant to “r”, and ptSz to “120”.  If you happen to be using a theme that uses the default fonts then the font will match the font in the window title.</p>
<p>Let’s say you’d rather have a serif font instead of a sans serif font.  Let’s also say that you’d rather make the font larger.  So change fmly to “new century schoolbook” and ptSz to “140”.  Does it look good?</p>
<p>Now that you’re happy with the font, let’s apply it to the GUI.  Switch back to the text editor and change line 106 from:</p>
<pre class="brush: bash">
# TitleFontName=&quot;-adobe-helvetica-medium-r-*-*-*-120-*-*-*-*-*-*-*&quot;
</pre>
<p>to </p>
<pre class="brush: bash">
TitleFontName=&quot;-adobe-new century schoolbook-medium-r-*-*-*-140-*-*-*-*-*-*-*&quot;
</pre>
<p>Notice that the line is no longer commented out.  Save the file.</p>
<p>To see the change, go to the Start menu and select Logout…–&gt;Restart IceWM.  You’ll have to click the arrow next to Logout in order to see the submenu.  If all goes well, you’ll see the window title font change after IceWM reloads.</p>
<p>If you look through the rest of the file you’ll find many settings that you can override.  Repeat the above steps to adjust any GUI font you don’t like.  It’s fairly obvious which setting you will need to change by reading the setting’s name.  To make things easier you can apply the same change by globally finding and replacing text.  Just remember to uncomment any changed settings before restarting IceWM.  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.lindenlan.net/2007/07/24/change-the-icewm-gui-fonts-in-deli-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Serving Up Linux, DeLi-Style</title>
		<link>http://www.lindenlan.net/2007/07/23/serving-up-linux-deli-style/</link>
		<comments>http://www.lindenlan.net/2007/07/23/serving-up-linux-deli-style/#comments</comments>
		<pubDate>Mon, 23 Jul 2007 21:22:26 +0000</pubDate>
		<dc:creator><![CDATA[Brian]]></dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.lindenlan.net/2007/07/23/serving-up-linux-deli-style/</guid>
		<description><![CDATA[My beloved Mule keeps on trucking. She’s a Dell Dimension XPS P133c and has been quite the workhorse for me since I bought her back in 1996, serving many roles from desktop, to server, to testbed, and anything in between. It’s almost archaic by today’s standards which is why I’m glad Linux et al. are [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>My beloved Mule keeps on trucking.  She’s a <a href="http://support.dell.com/support/edocs/dta/XPSPCMT/">Dell Dimension XPS P133c</a> and has been quite the workhorse for me since I bought her back in 1996, serving many roles from desktop, to server, to testbed, and anything in between.  It’s almost archaic by today’s standards which is why I’m glad Linux et al. are around because you can breathe new life into your old machines using a lightweight distro. </p>
<p><span id="more-30"></span></p>
<p>Last year, I had put <a href="http://vectorlinux.com/">VectorLinux</a> 5.1 on there.  I even managed to configure an ISA network card.  DMAs, IRQs… boy, aren’t you glad plug-n-play was developed?  Unfortunately, Mule developed an X Windows issue.  I figured it was a good opportunity to upgrade to 5.8 and it would appear that they’ve improved the distro.  Unfortunately, it simply was also more than Mule could handle despite being a lightweight distro.  </p>
<p>I’ve since downgraded Mule to <a href="http://delili.lens.hl-users.com/">DeLi Linux</a>.  Since DeLi Linux is spec’d against a 486 with 16 MB of RAM, Mule has no problem handling the OS.  It’s true.  I’m quite impressed with the responsiveness, but that’s not surprising given the optimized nature of the distro.  This lightness does come at a price though.  Lots of useful utilities are missing.  The one glaring example are the utilities to help customize <a href="http://www.icewm.org/">IceWM</a>.  You are left to edit configuration files on your own.  It really isn’t that big of an issue for me since Mule’s next role will be an internet access computer in the guest room.  Once configured, I’m just going to put the computer in the room and forget about it.  However, for those who will use it as a day to day machine will be quite annoyed with trying to get the UI to look just the way they want.  For example, it’s not very obvious how to change the desktop wallpaper, and the included themes leave much to be desired if you’re used to something more flashy.</p>
<p>Given today’s prices for computer hardware, even used computer hardware.  You’re much better off buying something better to run a more fully featured distro.  However, if you have the hardware on hand and the intended application isn’t that taxing, you may want to consider resurrecting the computer using a lightweight distro.  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.lindenlan.net/2007/07/23/serving-up-linux-deli-style/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
