Mnemovore

Posts Tagged ‘configuration

.dotfiles

leave a comment »

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

Advertisements

Written by aperturefever

June 8, 2010 at 11:17 am

Updating stumpwmrc

leave a comment »

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.

Written by aperturefever

May 10, 2010 at 10:55 am

Musca/dzen2 tips and tricks – Part 1

leave a comment »

So you decided to give musca a go. Here are some stuff i use in my setup. I hope someone out there finds these useful.

One thing that musca lacks is a toolbar, but as the author suggests, dzen2 is a nice alternative. And guess what, he’s right.
dzen2 is so customizable that you ‘re to able to do nice magic with it. For example:

Why open a terminal to find your disk space or waste useful resources to have it displayed on conky?
Add sth like that in your .musca_start and you ll be able to call a new command named dfh to watch your disk space status.

alias dfh exec (echo Disk Usage; df -h ; sleep 4) | dzen2 -l 17 -fg white -bg grey10 -w 400 -fn '-*-dina-medium-r-normal-*-*-*-*-*-*-*-*-*' -e 'onstart=uncollapse' 

Weather conditions are vital for astro-sessions so having some extra info is practical too
e.g. for Greece using the weatherget application i have sth like this:

alias weatherget exec (echo Weather Report; weatherget -s GRXX0004 --metric ; sleep 4) | dzen2 -l 17 -fg white -bg grey10 -w 400 -fn '-*-dina-medium-r-normal-*-*-*-*-*-*-*-*-*' -e 'onstart=uncollapse'

At the time setting rules is not ready in musca. But guess what! Musca is so groovy that you can actually “emulate” such configuration. Example.. I want to have gimp start in stacked mode or in a preconfigured tiled layout.

alias g1mp exec gimp
hook on ^g1mp stack on

or
if gimpfoo is a layout that suits your tastes for gimp window placement

hook on ^g1mp load gimpfoo

So when pressing Mod+m and typing g1mp you’ll have gimp in stacked mode 😀

to be continued! 😀

Written by aperturefever

June 8, 2009 at 7:23 pm

Back to ol’ Xplanet

leave a comment »

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

Written by aperturefever

May 8, 2009 at 5:59 pm