Another small linux astronomy software review

This is a newer version of my post regarding linux astronomy software. Most of the programs mentioned in my previous article are updated constantly so there’s no need to re-dig these. Some new (or maybe unknown to most) apps could be of great assistance to your collection. I still believe that the best software for you is the one that you know to use best but sometimes we need more features or more automation to possible calculations or planning for our observations. For example i really like xephem but its so feature-complete that sometimes its scary!So, here we go..

For those with windows background i’m sure you had Virtual Moon Atlas installed for these bright full moon nights. Maybe justmoon is a bit old (but still kickin) so VMA has now a linux port with an installer to make our life easier. I found it a bit buggy or maybe it was my faulty configuration but anyhow its an atlas and its very usable. The search tool is very practical and i found especially nice the option to use a *very* high resolution texture for moon. You get very nice and detailed views and feels pretty much like moonwalking πŸ˜‰

For all you aavso explorers fear not! Xvarstar is here to make your difficult task less cumbersome. Its main task is to search the GCVS catalogue for entries with criteria such as star name, magnitude, type, constellation, amplitude and of course a combo of all the above.

Another very interesting tool is ORSA. Its an interactive app used for computation and simulation of celestial mechanics. Asteroids, comets, artificial satellites, Solar and extra-Solar planetary systems can be accurately reproduced in your screen. It’s very nice to know how all this greatness works..

Where is M13? is a nice reference tool for dso. Every amateur astronomer should have this installed, because its another digital atlas for deep sky objects with many physical and positioning information. Knowing where an object is, in galactic terms (galactic coordinates) makes you understand where it actually is from a way different point of view.

Now, some apps for amateur telescope making. Most of these if not all, are for windows but have been tested with wine and dosbox and they seem to work flawlessly.

Aberrator is a freeware utility that creates planetary and star images that will be shown by your telescope along with possible distortions that me be produced. In the home page you will find some info about 3 optical design apps written by advanced amateur telescope makers.

Newt has been mentioned in my previous post. Just wanted to add that version 2.0 can be used with dosbox. A trully awesome application.

Last but not least, we have PLOP. It shows you how you may build an optimal mirror cell for your mirror, by providing you with info about possible errors in your build, an automatically generated mesh so you may be able to visualize your cell’s properties and show the graphical thermal distribution on your mirror. A must for any amateur telescope maker.

Advertisements

Dvorak keyboard layout

Being messing with dvorak keyboard layout for a while. For some reason it seems logical to use it and its very comforting and forgiving to my wrists and especially my right hand ring finger which hurts me a lot the past 2 months. Below there are some interesting links that got me rolling.

http://www.dvzine.org

http://learn.dvorak.nl

http://freshmeat.net/projects/dvorakng/

and of course %setxkbmap dvorak

I found out that the best practice is to bind a pic in a key combo and use it when you need it. (e.g. in stumpwm i’veΒ  added (define-key *root-map* (kbd "M-a") "exec qiv ~/Images/dvorak.gif") and when i forget a letter i just refresh my memory using the pic of the layout.)

Change keyboard layouts snippet

Its just an easy practical way to add a keyboard shortcut for changing layouts without messing with your xorg.conf. Just place this in your xinitrc.

setxkbmap -layout us,gr -option grp:alt_shift_toggle -option grp_led:scroll

This way you change between layouts using left alt shift combo and when its activated the scroll lock led lights up.

.dotfiles

I’ve uploaded some of my configs in github;. I see that it’s a common trend to do so and probably will be a gathering point for any coding i do, although i’ve notΒ  really decided between bitbucket and github. For small projects i think hg is the way to go although git is much more complex and is best for large projects. Anyway time will tell.

UPDATE: I’ve updated everything but im so friggin bored to add them in repo..summer..so nice.. ;p

Updating stumpwmrc

Posting the stumpwm configuration that I’m using for about a year now. It’s located also in the downloads section. My only task now is to find a way to use the conky configuration i have in musca along with the modeline to get rid some of its weird bugs.

;;Aperturefever/gammalyrae stump config
;;;;;;;;;;;;
;;  Misc  ;;
;;;;;;;;;;;;

(in-package :stumpwm)

(setf *default-package* :stumpwm)

;(set-font "-xos4-terminus-medium-r-normal--14-140-72-72-c-80-iso8859-7")
(set-font "-xos4-terminus-medium-r-normal--0-0-72-72-c-0-iso8859-7")
;(set-font "-*-dina-medium-r-normal-*-*-*-*-*-*-*-*-*")
;(set-font "-lispm-fixed-medium-r-normal-*-13-*-*-*-*-*-*-*")
;(set-font "-artwiz-smoothansi-medium-r-normal--13-130-75-75-m-60-iso8859-1")

;; Set up X cursor and colors.
(stumpwm:run-shell-command "xsetroot -cursor_name left_ptr -fg  white  -bg black")
;(stumpwm:run-shell-command "setxkbmap dvorak && xmodmap -e \'keycode 115 = F20\'")
;(stumpwm:run-shell-command "stumpbar")

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;   Lisp monitoring Scripts   ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(load "/home/shevek/progs/stumpwm/contrib/battery.lisp")
(load "/home/shevek/progs/stumpwm/contrib/cpu.lisp")
(load "/home/shevek/progs/stumpwm/contrib/net.lisp")
(load "/home/shevek/progs/stumpwm/contrib/mem.lisp")
;(load "/home/shevek/progs/stumpwm/contrib/wifi.lisp")

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;        Eye Candy         ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;; STARTUP MESSAGE

(setf *startup-message* nil)
(setf *startup-message* " ^2 ^b Hello George!^B Welcome to Stumpwm!^b ~& ^n Don't forget to check your ^8* TODO ^n list!!")

;;;; EXEC INPUT BAR NAMING

(defcommand my-shell-command (command) ((:string "sh$ "))
(check-type command string)
(shell-command command))

;;;; FRAMENUMBERING - check keybindings george---notifier

(setf *frame-number-map* "1234567890")

;;;; MESSAGE WINDOW

(set-bg-color "grey20")
;(set-fg-color "#97b26b")
;(set-fg-color "#20CBFE")
(set-fg-color "#a1b5cd")
;(set-fg-color "orange")
(set-border-color "grey10")
(set-msg-border-width 1)

(setf *message-window-gravity* :top-right
*timeout-wait*           6
*input-window-gravity*   :bottom-right)

;;;; SET THE TWO REMAINING COLOR SLOTS

(setf *colors* (append *colors*
(list "cyan" ;;"lightskyblue"
"coral")))
(update-color-map (current-screen))

;;;; MODE-LINE

(setf *mode-line-background-color* "grey20"
*mode-line-foreground-color* "#a1b5cd"
*mode-line-border-color*  "grey10"
*mode-line-border-width* 1
*mode-line-timeout*       5
*mode-line-position* :top
;*window-format* "< %n%s%m%30t >"
*window-format* "^B%m%n^b %15t"
*group-format*  "^8*%t%s  "

*screen-mode-line-format*
(list "^6*::^n  %g  ^6*::^n%w^6* :: ^8*CPU: ^n%f %C ^3*%t ^6*:: ^n^r%M ^6*:: ^n%b ^6*:: ^n %l ^6*::^8* - "
'(:eval (run-shell-command "date +\"%T %d-%m-%Y\" | tr -d '[:cntrl:]'" t))))

;; turn on/off the mode line for the current screen only.
(enable-mode-line (current-screen) (current-head) t)

;;;; WINDOWS
(setf *maxsize-border-width* 3)
(set-frame-outline-width 1)
(set-focus-color   "dimgray")
(set-unfocus-color "grey10")
(set-normal-gravity :center)
(setf *normal-border-width* 3)
(setf *window-border-style* :thin)  ; thick,thin,none,tight

;;;; Display Keybinding - My version...

(defun key-press-hook (key key-seq cmd)
(declare (ignore key))
(unless (eq *top-map* *resize-map*)
(let ((*message-window-gravity* :bottom-right))
(message "Key sequence: ~A - "
(print-key-seq (reverse key-seq)) cmd))))

;; Give 'em time to read it.
(sleep 0.5)

(defmacro replace-hook (hook fn)
`(remove-hook ,hook ,fn)
`(add-hook ,hook ,fn))

(replace-hook *key-press-hook* 'key-press-hook)

;;;; Code by Male ---- Original...
;;;; Display the keysequence in progress
;;(defun key-press-hook (key key-seq cmd)
;;  (declare (ignore key))
;;  (unless (eq *top-map* *resize-map*)
;;    (let ((*message-window-gravity* :bottom-right))
;;      (message "Key sequence: ~A" (print-key-seq (reverse key-seq))))
;;    (when (stringp cmd)
;;      ;; Give 'em time to read it.
;;      (sleep 0.5))))

;;(defmacro replace-hook (hook fn)
;; `(remove-hook ,hook ,fn)
;; `(add-hook ,hook ,fn))

;;(replace-hook *key-press-hook* 'key-press-hook)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;       Keybindings      ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; change the prefix key to something else
(run-shell-command "xmodmap -e \'keycode 133 = F20\'" t)
(set-prefix-key (kbd "F20"))

(message "Loading stumpwmrc..")

(define-key *root-map* (kbd "Return") "exec urxvt")
(define-key *root-map* (kbd "b") "exec firefox")
(define-key *root-map* (kbd "a") "exec vup")
(define-key *root-map* (kbd "z") "exec vdown")
(define-key *root-map* (kbd "x") "exec vmute")
(define-key *root-map* (kbd "quoteleft") "gnext")
(define-key *root-map* (kbd "w") "windowlist")
(define-key *root-map* (kbd "M-g") "google")
(define-key *root-map* (kbd "M-w") "wikipedia")
(define-key *root-map* (kbd "M-i") "imdb")
;; Dirty ;(define-key *root-map*  (kbd "M-9") "exec setxkbmap us && xmodmap -e 'keycode 115 = F20' -e 'clear Lock'")
;; Dirty ;(define-key *root-map*  (kbd "M-0") "exec setxkbmap dvorak && xmodmap -e 'keycode 115 = F20' -e 'clear Lock'")
(define-key *root-map* (kbd "M-a") "exec qiv /mnt/mercury/dvorak.gif")
(define-key *root-map* (kbd "M-x") "exec ratmenu")
(define-key *root-map* (kbd "m") "fclear")

;(define-key *root-map* (kbd "1") "fselect 1")
;(define-key *root-map* (kbd "2") "fselect 2")
;(define-key *root-map* (kbd "3") "fselect 3")
;(define-key *root-map* (kbd "4") "fselect 4")
;(define-key *root-map* (kbd "5") "fselect 5")
;(define-key *root-map* (kbd "6") "fselect 6")
;(define-key *root-map* (kbd "7") "fselect 7")
;(define-key *root-map* (kbd "8") "fselect 8")
;(define-key *root-map* (kbd "9") "fselect 9")
;(define-key *root-map* (kbd "0") "fselect 0")

;;;;;;;;;;;;;;;;;;
;;    Groups    ;;
;;;;;;;;;;;;;;;;;;

;; Rename the first group to Main
(setf (group-name (first (screen-groups (current-screen)))) "Main")
;; Create the other groups.
(run-commands "gnewbg www" "gnewbg devel" "gnewbg media" "gnewbg chat")
;;;;;;;;;;;;;;;;;;;;;;;
;;  Custom Commands  ;;
;;;;;;;;;;;;;;;;;;;;;;;

(defun shell-command (command)
"Stumpwm might hang here :/"
(check-type command string)
(echo-string (current-screen) (run-shell-command command t)))

(defcommand weatherget () ()
"Display weather info in Greece."
(shell-command "weatherget -s GRXX0004 --metric"))

(defcommand dfh () ()
"Disk"
(shell-command "df -h"))

(defcommand moon () ()
"Moon Info"
(shell-command "less ~/sources/stumpwm/astroinfo/moon"))

(defcommand mocpinfo () ()
"MOC info"
(shell-command "mocpinfo"))

(defcommand mocosd () ()
"MOC info"
(shell-command "mocosd"))

(defcommand monitoroff () ()
"Monitor Off"
(shell-command "sleep 1 && xset dpms force off"))

(defcommand dmenu () ()
(run-shell-command "dmenu_run -nb grey20 -nf orange -fn '-windows-dina-medium-r-normal--13-80-96-96-c-70-microsoft-cp1252'"))
(define-key *root-map* (kbd "[") "dmenu")

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;    Web jump (works for Google, Wikipedia and Imdb)    ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defmacro make-web-jump (name url-prefix)
`(defcommand ,name (search) ((:rest ,(string-capitalize (string-downcase (concatenate 'string (symbol-name name) ": ")))))
(run-shell-command (format nil "firefox '~A=~A'"
,url-prefix (substitute #\+ #\Space search)))))

(make-web-jump imdb "http://www.imdb.com/find?q")
(make-web-jump google "http://www.google.com/search?q")
(make-web-jump wikipedia "http://en.wikipedia.org/wiki/Special:Search?search")

;;;;;;;;;;;;;;;;;;;;;;;;;
;;;  Qwerty - Dvorak  ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;

;; keyboard layout
(defvar *keyboard-layout* :qwerty)
;(run-shell-command "setxkbmap us")
;(run-shell-command "xmodmap -e \'clear Lock\' && xmodmap -e \'keycode 66 = Tab\'")

(defcommand toggle-keyboard-layout () ()
(cond ((eq *keyboard-layout* :qwerty)
(setf *keyboard-layout* :dvorak)
(message "^7* Selected keyboard layout:^2* Dvorak")
(run-shell-command "xmodmap ~/.Xmodmap && setxkbmap dvorak"))
((eq *keyboard-layout* :dvorak)
(setf *keyboard-layout* :qwerty)
(message "^7* Selected keyboard layout:^3* Qwerty")
(run-shell-command "xmodmap ~/.Xmodmap && setxkbmap us"))))

(define-key *root-map* (kbd "F12") "toggle-keyboard-layout")

;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;   Some mousey stuff    ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(setf *mouse-focus-policy* :click) ;; :click, :ignore, :sloppy

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Astro info and calculations ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;   Some Startup progies   ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defcommand firefox () ()
"run firefox"
(run-or-raise "firefox" '(:class "Firefox")))

(defcommand dolphin () ()
"run firefox"
(run-or-raise "dolphin" '(:class "dolphin")))

(defcommand amarok () ()
"run firefox"
(run-or-raise "amarok" '(:class "Amarok")))

(defcommand pidgin () ()
"run firefox"
(run-or-raise "pidgin" '(:class "Pidgin")))

(defcommand Urxvt () ()
"run an urxvt instance"
(run-or-raise "xterm -name Urxvt" '(:instance "Urxvt")))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;  Window placement rules  ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; Clear rules
(clear-window-placement-rules)

(define-frame-preference "Main"
;; frame raise lock (lock AND raise == jumpto)
(0 t   t :class "Urxvt"))

(define-frame-preference "media"
;; frame raise lock (lock AND raise == jumpto)
(0 t   t :class "dolphin"))

(define-frame-preference "media"
;; frame raise lock (lock AND raise == jumpto)
(0 t   t :class "Amarok"))

(define-frame-preference "www"
;; frame raise lock (lock AND raise == jumpto)
(0 t   t :class "Firefox"))

(define-frame-preference "chat"
;; frame raise lock (lock AND raise == jumpto)
(0 t   t :class "Pidgin"))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;   Random Background   ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;(defvar *background-image-path* "/mnt/mercury/Images/EyeStrain")
;(defun select-random-background-image ()
;  "Select a random image"
;  (let ((file-list (directory (concatenate 'string *background-image-path* "*.jpg")))
;        (*random-state* (make-random-state t)))
;    (namestring (nth (random (length file-list)) file-list))))
;
;(run-shell-command (concatenate 'string "display -window root " (select-random-background-image)))

;;;;;;;;;;;;;;;;;;;;;;
;;;  Show me Info  ;;;
;;;;;;;;;;;;;;;;;;;;;;

(setf *debug-level* 10)

I will also post some calculations to be placed in it for quick reference(probably bind it in a command or sth). E.g. calculating how fast does a comet or an asteroid move using a formula like this: 2 * pi * sqrt(2/r – (1-e)/q) AU/year, maybe formulas to convert right ascension and declination to altitude and azimuth and a way to easily find my current longitude and latitude.

Quick dual head setup

Mostly a note to self. A quick way to setup dual screens without messing with the xorg.conf is to run

xrandr -q

to see any info you need regarding the devices and their specifications and then issue

xrandr --output VGA1 --right-of LVDS1 --auto

(Orientation options: right, left, above or below) It works perfectly even if both screens have different resolutions. For this screen all i do is add these two lines in my .xinitrc

xrandr --output VGA1 --off
xrandr --output LVDS1 --mode 1280x800 --output VGA1 --mode 1024x768 --right-of LVDS1 --auto

Back to ol’ Xplanet

One of my favorite eye candy programs from the past is xplanet (the other one is electricsheep :D). It works perfectly with almost all window managers and the final product is not only beautiful but also very informative. The documentation is pretty straight forward and easy to understand but i haven’t seen any configurations lying around in the web. Anyway i provide here my own along with a small (wannabe) guide for it. As of the images or scripts that were used for this, i’ll just provide the necessary links.

Lets assume that we got xplanet sources and have them installed and working. As the README suggests, i took the default configuration provided and xplanet and built upon it. The base configuration provides sth like this:

2009-05-08-162930_1280x800_scrot

Very nice huh? The default image provided is very nice but if you want to move a step forward or want sth with a bit more resolution you can get one of the monthly versions of Nasa’s Visible Earth.

The first 3 things that are missing from the image are, the moon, clouds, and finally background stars.

Well by default, all celestial objects of our solar system are loaded so you ll probably see it if you have xplanet refreshing every (eg 10 minutes) the problem is that moon is small and you ll likely see it rarely. So to watch the moon more ofter i added to my conf

[earth]
magnify 40
[moon]
magnify 10

A little bit more magnification to moon and it will look like a twin planet πŸ˜›

Next step is the clouds, which are explained pretty much in the main page. There are 2 scripts that are used to fetch the cloud image. Both will do the job, i just altered them a bit to get the 4096 version of the clouds and save them to my .xplanet dir to keep things tidy. The cloud images are updated every 3 hours so i just added the script to a cronjob with

0 */03 * * * /path/to/script/

If you’ve created a .xplanet dir to store your configuration just throw the image in and add

cloud_map=clouds_4096.jpg

to your xplanet.conf. If you prefer to store it in another folder eg. images in .xplanet just add

cloud_map=images/clouds_4096.jpg

Finally you need a nice background to complete the picture. According to documentation all you must do is to start xplanet with xplanet -config xplanet.conf -starmap /usr/share/xplanet/stars/BSC. I even used the commands that are suggested by the FAQ but it wasnt very nice. I found out that the provided solution is very nice if you set the -fov(field of view) option to eg 50. If you prefer this solution its a good idea to use the constellations marker file and start it by adding

marker_file=constellations
marker_file=brightStars

You can find it in /usr/share/xplanet/arcs/constellations.
This will draw all the constellations around and with brightStars you’ll get the names.
Personally i dont use the above method. I just got a nice star field from an image search, played a bit with its contrast and brightness and used it as a background with the -background option. I also changed the default earth and specular images with the ones found here and the result looks like this:

2009-05-08-175325_1280x800_scrot

Take a closer look at the marker_file option. With default supplied marker files you can add borders, coastlines, hamradio stations, capital names etc. You can also add information about volcanoes, storms, satellites and quakes using the Totalmarker binary. For example in my setup i have set a cron job that connects every hour to Norad and gets the appropriate tle files to mark the position and path of the requested satellites on the xplanet image.

0 */01 * * *  /path/.xplanet/Totalmarker -Norad

2009-05-08-201510_1280x800_scrot

Well all that info about earthquake and volcanoes and such its really nice but it gets pretty crowded so i prefer to keep track only of the satellites (ISS, HUBBLE, etc)

All the above is for earth alone. Its possible to view all planets of the solar system with the -body option and of course gather info for their artificial satellites and moons. In my setup i use the images provided by this site, which are very very nice and detailed. You can get my conf from the downloads page. To launch it and update it every 10minutes you can use the below command:
nice -n 19 xplanet -config ~/.xplanet/xplanet.conf -transparency -utclabel -background ~/.xplanet/starfield-1.jpg -wait 300 -hibernate 600

Another nice option here is -random πŸ˜‰

2009-05-08-202751_1280x800_scrot

2009-05-08-202816_1280x800_scrot

ad hoc-ing around

The past days i got a wireless adapter and setup an ad hoc network to be able to use some wireless devices. There’s still the matter of WEP vs WAP(2) thing but nevertheless with a good password you’re good to go in both cases. Also there’s the option to increase/decrease the signal strength so security is just a matter of usage.

Anyway, i made a small console script for WEP and a bit of configuration for WAP(wpa_supplicant) and :

#!/bin/bash
#
# TODO: Option to set signal strength
#
 
echo "Create Ad-Hoc Network"
echo "_____________________"
echo

INTERFACE="wlan0"

echo -n "Type prefered ESSID (e.g. My Network, Conan's home, etc): "
read ESSID
echo -n "Insert prefered Mode (e.g. ad-hoc, master, managed etc): "
read MODE
echo -n "Channel (e.g.auto, 3, etc)  : "
read CHANNEL
echo -n "Desired pass key : "
read KEY
echo -n "IP Address : "
read IP_ADDRESS
echo -n "Netmask : "
read NETMASK
echo

ifconfig $INTERFACE up
ifconfig $INTERFACE $IP_ADDRESS netmask $NETMASK
iwconfig $INTERFACE mode $MODE
iwconfig $INTERFACE essid $ESSID
iwconfig $INTERFACE channel $CHANNEL


echo "Setting up key passphrase.."
iwconfig $INTERFACE key $KEY

echo -n "Seems that all is good.."
echo -n "Press any key to continue..."
read

Yeah i know its very simple but it works for me πŸ˜› If one of the steps fails you ll see an indication.

As for WPA i changed a bit my wpa_supplicant.conf to look like this:

ctrl_interface=/var/run/wpa_supplicant

# By default, only root (group 0) may use wpa_cli

ctrl_interface_group=0
eapol_version=1
ap_scan=2
fast_reauth=1

# WPA protected network, supply your own ESSID and WPAPSK here:
network={
#  scan_ssid=0
  ssid="CONAN-DUDE"
  mode=1
  proto=WPA2
  key_mgmt=WPA-PSK
  pairwise=CCMP TKIP
  group=CCMP TKIP #WEP104 WEP40
  psk="*****************************"
}

# Plaintext connection (no WPA, no IEEE 802.1X),
# nice for hotel/airport types of WiFi network.
network={
  key_mgmt=NONE
  priority=0
}

and just issued the below (in a script)

killall wpa_supplicant
ifconfig wlan0 down
ifconfig wlan0 up
iwconfig wlan0 essid "CONAN-DUDE" channel auto
iwconfig wlan0 mode ad-hoc
wpa_supplicant -D wext -iwlan0 -dd -Bw -c /etc/wpa_supplicant.conf
dhclient wlan0

I have the intel 3945 wireless adapter so wext is the option for it.
For testing i run
iwlist wlan0 scan

I still have a masochistic preference for wired networks though ;p

Musca – A new tiling window manager

Searching for something in freshmeat a couple of days ago, i stumbled upon a small tiling window manager named Musca. You’ll say “What? Another one? For what reason?”. Hey! Why not? Well we all know that the 3 kings are ratpoison, dwm and ion. All features that were first introduced by them made tiling window management what it is today. Now take all the features that you actually liked in all of them and implement them in something new. The result is Musca. Musca is a tiling window manager that is written from scratch in C and has many features including:

  • Extremely small (binary is 97Kb and zipped package 37Kb), light and elegant
  • Simple configuration via config.h (Yes it needs recompiling)
  • Manual window tiling, that means no restrictions on layout setups
  • Group management support, that means no pesky tagging but actual groups
  • Simple mouse tasking, following click to focus philosophy
  • Frame management is followed by color indication so you actually know in what mode your frames are.(ie the catch-all mode that forces all windows opened in a specific frame is green)
  • Musca has multiscreen support out of the box and can manage groups to screens automatically
  • Uses dmenu as requirement for windows,groups and wm management
  • No obstructive status bars, panels, and such but you can use one if you like (e.g. trayer,dzen2 etc)
  • It is named after a star constellation…Yes that’s a plus. πŸ˜€
  • A nice feature called unmanaged_windows ( remember remember πŸ˜€ ). That let’s you make musca ignore windows and not assign them in frames. πŸ˜‰

I really like Musca. Its light, small and configurable. Its still in devel state but its very usable and i have put aside stumpwm for now.Β  I had all my key bindings configured in seconds and Musca’s engine/group management philosophy was like second nature since, i use ratpoison and stumpwm. πŸ™‚

Musca is actively developed and created by Sean Pringle. His website can be found here where he hosts his projects and other fun stuff.

UPDATE: New version of Musca, as of 9th March, is out with a *TON* of features that simplifies a lot of stuff including

  • floating support (via stack Musca command)
  • Added new commands!
  • Layout saving..thats means ENDLESS CAPABILITIES!!
  • Musca now has an external command interface for client management
  • Now you can undo layouts πŸ˜€ No more accidental layout windows
  • External startup configuration file to configure your window manager
  • Its getting better and better each day!! πŸ˜€

UPDATE:Β  The post is a bit old of course. Musca is more mature now and has even more features πŸ˜€

A pic of musca running on my Slackware 12.2 Laptop

2009-03-09-190658_1280x800_scrot1

Stumpwm – mania

After some years with fluxbox (with tons of eye candy) and the last 2 years using a combo of ratpoison and dwm, I finally ended up with stumpwm. Stumpwm is the Lisp(y) brother of ratpoison and its actively maintained by Shawn Betts. Ratpoison still kicks buttocks but stumpwm has more features and since its based on lisp, is more configurable[and since im learning lisp it’s good exercise!!]. Most ppl use laptops in observations and i think its a good idea to use a tiling window manager like ratpoison or stumpwm. All my astronomy programs run smoothly and in fullscreen (which is very good for my eyes), plus i have keybinds for calculations that show results in the stumpwm engine.. which is very practical. Of course any kind of coding becomes better and the reason is the absence of obstructive applets, eye-candy panels and such. You have the space to focus on your work which might be a maximized window or a custom layout that suits your need.

In its default state is very spartan and it might require a day or two to fully bringΒ  it to your liking. Also according to this post there’s floating support added in the git version. It works pretty well with no resizing yet, but that’s not a problem.. You can check my .stumpwmrc in the ‘Downloads’ page and a screencast which shows a portion of stumpwm’s features, made by male in here. Below, a screenshot with stumpwm running on slack 12.2

UPDATE: Just changed modeline readbility.. seems sexier now..

2009-02-12-145643_1280x800_scrot1