EmacsWiki: Chris Mc Mahan (original) (raw)
Emacs Notes
New code in github
[2014 10 14] It’s be a while since the last code update.
I’ve uploaded my latest emacs configuration files to github, including setup for OSX and for Windows (using Cygwin utilities on native Emacs).
You can find the repository here
Geektools and Org-mode
[2011 04 08] I’ve discovered GeekTools for OS X
I discovered Geek tools this week. This program can take any textual output and place it directly onto your desktop, similar to the Samurize program I used for Windows.
The first thing I though of was how to get my org-agenda to show on the desktop. With some help from others on the web, I’ve come up with the following configuration:
- Org-mode setup Create a suitable org-agenda, but make sure you assign it a file to which the output can be directed.
Here’s my agenda setup::
(setq org-agenda-custom-commands
'(("g" "GeekTool Agenda"
((agenda ""))
((org-agenda-todo-keyword-format "%-11s")
(org-agenda-prefix-format " %-10T%?-16t% s")
(org-agenda-show-inherited-tags nil)
(org-agenda-remove-tags 'prefix)
(org-agenda-tags-column 70))
("~/.org-agenda.txt"))))
The file that will hold the output is ~/.org-agenda.txt in this case.
Then you create a shell output within Geektools, with the following command line
/Applications/Emacs.app/Contents/MacOS/bin/emacsclient -e "(progn (org-store-agenda-views))"
I’m using the OSX version of emacs, but the idea is to point it to wherever you have the emacsclient installed. Make sure you tell the Geektools program to refresh this output every few minutes (I have it set to 5 minutes).
The biggest restriction to have this function correctly is that emacs must be running, either in daemon mode or server in order to accept the call from emacsclient.
As a side benefit, I creates a quick bash alias to print out the agenda onto my terminal window.
Github and other changes
[2010 08 24] Big changes these last months.
- I’m working primarily on a Linux system now (Ubuntu), and a MacbookPro at home, so my Windows/Cygwin configurations have become somewhat neglected.
- I’ve place my collection of emacs configuration files onto github here. Feel free to use them as much as you’d like.
- Orgmode has replaced Planner. Thanks to SachaChua for the help and inspiration to get this working. It’s now become a very important part of my programming and daily life.
Older stuff
I’m going to start contributing the codebase that I’ve been building up in the last 10 years of using emacs. A lot of it is for my own use, but may be helpful to others. My lisp skills are minimial at best, so any helpful suggestions are encouraged and most welcome!
I’m currently using the XP version of Emacs 22 on Windows XP with Cygwin installed.
My configuration for muse and planner mode
My .emacs file, which sets up variables and calls the other config files
Emacs configuration called by the .emacs file
Various helpful functions that I’ve created/borrowed over time. I should probably rename this file, since it only has a few macros recorded now.
View Mail configuration with Windows XP and Cygwin
I was having some serious difficulty getting the 8x versions of VM to compile under Windows XP emacs (native XP version, 22.2, using cygwin tools).
The solution I found was to edit the vm-8.xx/lisp/Makefile generated from the configuration and replace any occurrence of ‘`pwd`’ with the literal path, using the format drive/emacs/lisp/vm-8xxx/lisp as the build directory
Here’s the detailed instructions that work for my installation. Your configuration and paths might vary, but the idea is the same…
—
Compile View Mail (vm)
See CategoryViewMail for details of View Mail
Use the following command line to configure vm (from the vm distribution root directory):
./configure --with-emacs=emacs --with-other-dirs=c:/cygwin/home/mcmahan.cb/emacs-pkgs/bbdb-2.35/lisp
Once the configuration process is done, open the Makefile in the lisp subdirectory and make the following changes around line 124:
replace any occurrence of `pwd` with the full path to the vm lisp directory. This is because pwd in the cygwin environment returns /home/mcmahan.cb/…
but the Makefile requires the full path.
Here’s the new and old (commented) text from the Makefile
(build_dir="c:/cygwin/home/mcmahan.cb/emacs-pkgs/vm-8.0.9-544/lisp"
"$(EMACS_PROG)" $(FLAGS) -l autoload \
-f vm-built-autoloads "c:/cygwin/home/mcmahan.cb/emacs-pkgs/vm-8.0.9-544/lisp/$@" "c:/cygwin/home/mcmahan.cb/emacs-pkgs/vm-8.0.9-544/lisp")
Old Makefile text
(build_dir="pwd
"
"$(EMACS_PROG)" $(FLAGS) -l autoload \
-f vm-built-autoloads "/home/mcmahan.cb/emacs-pkgs/vm-8.0.9-544/lisp/$@" "pwd
")
Then run make from the vm distribution directory. Ensure the file vm-autoloads.el is built, and contains more than 3 or 4 lines.
EDB Database to store passwords and notes
I’ve been using a straight file with the excellent epg package that allows me to encrypt the file on saving and decrypt on opening.
Over the course of time, however, as the file grew, it became more and more apparent that I needed a better organization.
I picked up EDB this weekend and adapted my password file to become a full-fledged database. I also wrote a couple (hacked a couple, kludged a couple… verb of choice here) of helper functions that copy the location, username and password to a clipboard to help interacting with various web pages.
I’ve attached the edb control file here
My control file for the password EDB database
Here’s a sample entry for the data file. The key is to load the epg package, then name your password database with a .gpg extension. You’ll then be prompted to enter the password on opening the password database.
Problems:
- I still can’t find a decent way of navigating the windows within the frame to get the information from the current view/edit window when in the summary window
- the EPG package still prompts for user when saving the database file after changes are made. This shouldn’t be the case with this package. For some reason, however, when using in conjunction with EDB, it happens every time the database changes.
- A LOT of assumptions are made regarding window configuration and such. I’ve created a function (another kludge) to load the password database and configure the windows to my personal taste. Use, modify and fix however you see fit.
- Any help or comments would be most appreciated! I’m still trying to get my head around lisp programming, but that mystical light bulb has not appeared over my head yet.
Here’s the supporting password function to load the password database
(defun passwords () "Load the password database and associated control file, and set the window configuration" (interactive) (edb-interact (concat HOME_DIR "/edb/passwords.edb") (concat HOME_DIR "/edb/passwords.gpg")) (db-summary)
(delete-other-windows)
(split-window-vertically -14)
(other-window 1)
(switch-to-buffer (previous-buffer))
(other-window 1)
)
Here’s the password.gpg data file. This is an edb tagged format. Field names are: NM: Name LC: Location US: User PW: Password EM: Email CT: Category UD: Last update date NT: Notes (can be multi-line)
NM: Delicious bookmarks LC: http://del.icio.us US: jschmuckatelli PW: jschmuckatelli EM: jschmuckatelli@gmail.com CT: Web NT: social bookmarks
NM: Gmail LC: http://gmail.google.com US: jschmuckatelli PW: jschmuckatelli EM: jschmuckatelli@gmail.com CT: Web NT: Web-based email
NM: OpenDNS LC: www.opendns.com US: jschmuckatelli PW: jschmuckatelli EM: jschmuckatelli@gmail.com CT: Web UD: 2008-05-02 NT: alternate dns server with great features
NM: Wincustomize LC: http://www.wincustomize.com/ US: jschmuckatelli PW: jschmuckatelli EM: jschmuckatelli@gmail.com CT: Web NT: Customizations for Object Desktop apps
Welcome to the wiki! Lately it seems that most of the new emacs users (and emacswiki contributors) are planner users. Weird. 😊 – AlexSchroeder
Welcome to the wiki! =) Thanks for documenting that calendar thing; ClairChing wants to know how to set one of those up.. =) – SachaChua