dotfiles
April 17, 2010 3:09 AM   Subscribe

dotfiles.org is a place to upload, download, and share your dotfiles.
posted by vostok (28 comments total) 15 users marked this as a favorite
 
Oh yeah, you look so good in my .bash_profile baby. Never mind that ln -s .bash_profile .bashrc command I just entered, that's just so I can see you baby when i use screen. .bashrc means nothing to me, I swear.
posted by treepour at 3:38 AM on April 17, 2010 [3 favorites]


Surely, .plan files?
         (__)  
         (OO)      
  /-------\/   -- MOOO!!           alt.etc.beans.metafilter
 / |     || 
*  ||----|| 
   ~~    ~~ 
   
                                                       (o o)
----------------------------kilory was here--------ooO-(_)-Ooo-------


posted by cavalier at 4:16 AM on April 17, 2010 [4 favorites]


*shakes fist at preview*
posted by cavalier at 4:17 AM on April 17, 2010


be wary: sendmail.cf bites, in both senses.
posted by oonh at 4:29 AM on April 17, 2010


It's not a very useful site. There's no way to sign up for an account. There's no decent way to search for a file by anything other than user name. Most of the files I looked at were barely commented. Maybe if I was a registered user it would be better, but I'd like to see an area where people discussed why they coded things the way they did, or where you could ask someone a question about their dot file.
posted by Obscure Reference at 5:07 AM on April 17, 2010 [1 favorite]


See also: searching github for 'dotfiles'.

It's interesting to see what approaches people take - I'm in awe at the time and ingenuity people take crafting, eg, a .vimrc, but worry that, if I customised a given bit of software that much, I'd forget how to use it with its defaults! I'm afraid I'm of the lazy 'find something that works to your liking out of the box' school (eg. tmux rather than screen, cmus rather than mpd and a client).

That said, I do use this insanely huge and complicated .zshrc from grml.org (again, because I'm lazy and it just works).
posted by a little headband I put around my throat at 5:14 AM on April 17, 2010 [3 favorites]


It's not a very useful site. There's no way to sign up for an account. There's no decent way to search for a file by anything other than user name.

It went offline for ages, and that 'Please bear with us as we work to restore functionality to dotfiles.org.' message has been there ever since it came back. Perhaps they were so busy tweaking their dotfiles that they forgot to make a backup.
posted by a little headband I put around my throat at 5:22 AM on April 17, 2010


Surely, .plan files?

If webfinger catches on, they could make a comeback!
posted by a little headband I put around my throat at 5:25 AM on April 17, 2010


There's a "please bear with us as we work to restore functionality" message at the top of the page, so maybe there are good features that I can't see right now.

As it is, though, the site is pretty annoying. The only way to find dotfiles that are relevant to my needs would be to click through and read all 1,474 of them. Some kind of search or tagging would be helpful.

I'd prefer to see the dotfile contents stored as fragments organized by purpose, rather than as the whole files from individual users. For example, it'd be useful to be able to browse all of the dotfile stuff related to "listing files" or "setting up your prompt" or whatever.
posted by sriracha at 5:29 AM on April 17, 2010


And if you like this, try the bash sections on stackoverflow, shell-fu, commandlinefu, and shelldorado.
posted by eclectist at 5:58 AM on April 17, 2010 [2 favorites]


Sup non-unix folks.

"Dotfiles" are files on linux and other unix-alike systems that are hidden from normal view. Not hidden in any very secure way, they just don't show up when you look in a directory the normal way. If you really want to look at them it's easy to do.

They can in principle be any type of file, but this post is about text files, specifically the sort that are used to store settings for programs.

Sometimes these settings are ordinary boring things like display preferences, email signatures, and the like. But some applications have scripting languages built into them that allow you to, essentially, reprogram the application whenever you want, even if it's already running. In particular, a lot of programmer's text editors have this ability; Emacs provides the scripting language LISP, for example.

In that case, dotfiles contain programs written in the scripting language that the program uses, and the program in the dotfile is executed whenever you start the program that reads the dotfile. This can change the program (the one that *reads* the dotfile) into pretty much whatever you want, if you're willing to take the time to code a really elaborate dotfile, and you're willing to accept the limitations inherent in whatever program this is. If you're making a dotfile for a text editor, you can make it play games and browse the web and check your email, but you probably can't make it display videos. Not that this stops people from trying.

Why make such elaborate dotfiles when you could just code a new program? Well, scripting languages in general try to make things easy for the programmer, and application-scripting languages in particular let the programmer use the functions already made for this particular program. So if the program that the programmer wants is very similar to an already-existing program with a scripting interface, the programmer will probably save themself some time and effort by writing a dotfile to make the existing program behave the way they want.

That is what this post is about.
posted by LogicalDash at 6:26 AM on April 17, 2010 [7 favorites]


Sup non-unix folks.

The first rule of *nix club: you don't talk about *nix club.

*gets LART*
posted by Cat Pie Hurts at 6:59 AM on April 17, 2010 [1 favorite]


LogicalDash: "Emacs provides the scripting language LISP, for example."

it goes far beyond this: emacs is pretty much a c program that can open a file, and display it in a window, and tell that you typed something on a keyboard - plus a lisp compiler and interpreter. About 95% of what emacs does, even if you don't have a .emacs file, is execute lisp code. Which has some very far reaching consequences. In other programs a web browser or an irc client or a shell or an implementation of tetris or eliza would have to be a plugin - in emacs they are just another bit of code loaded by the emacs vm, existing on the same level as basic text editing functionality.
posted by idiopath at 7:42 AM on April 17, 2010 [1 favorite]


Oh yeah, you look so good in my .bash_profile baby. Never mind that ln -s .bash_profile .bashrc command I just entered, that's just so I can see you baby when i use screen. .bashrc means nothing to me, I swear.

Sorry, sugar, I only date superusers.
posted by l33tpolicywonk at 7:53 AM on April 17, 2010 [1 favorite]


it goes far beyond this: emacs is pretty much a c program that can open a file, and display it in a window, and tell that you typed something on a keyboard - plus a lisp compiler and interpreter.

Or to put it another way, the classic EMACS joke - it's a crappy operating system that comes with a good editor.
posted by DecemberBoy at 8:03 AM on April 17, 2010


By the way, oooh yeah honey, you like big dotfiles? Those big, complex, sexy dotfiles? Come over and check out my .vimrc sometime. If you're really feeling it, I'll even show you my xmonad.hs.
posted by DecemberBoy at 8:06 AM on April 17, 2010


.
posted by mazola at 8:11 AM on April 17, 2010 [2 favorites]


DecemberBoy: "he classic EMACS joke"

No, the classic joke is that it is a decent operating system, that comes with a crappy editor.
posted by idiopath at 8:22 AM on April 17, 2010 [1 favorite]


I just upload mine to my metafilter comments.

xterm_title="\[\033]0;\u@\h: \w\007\]"
export PS1="$xterm_title\[\033[0;36m\]\u@\h\[\033[00m\] \w\n\D{%a %H:%M} \[\033[0;33m\]\$\[\033[00m\] "

posted by fantabulous timewaster at 8:27 AM on April 17, 2010


Editors that work decent as an editor but have an unusable annoying extension language are a dime a dozen - emacs is quite notable for being implemented in an extension language much better designed and more usable than the editor.

Emacs has excellent features for examining, debugging, reimplementing, and extending itself. Because of this, interesting new features have historically started with emacs first.

But it has the problem of the first mover. Just one example: it was the first program to use the windowed display model. Thanks to this fact, what emacs calls "windows" other apps call panels or subwindows, and what other apps call windows, emacs calls "frames". Emacs was the first app to do full screen interactive switching between multiple documents - is it any wonder that the default method for doing so in emacs is therefore awkward and archaic?
posted by idiopath at 8:31 AM on April 17, 2010


if I customised a given bit of software that much, I'd forget how to use it with its defaults!

Same here. Although that said, I did recently write a hook for emacs so it would show what bazaar branch I was working in. Editing the wrong file for hours on end multiple times in a row is a great motivator...
posted by DU at 8:46 AM on April 17, 2010


Anyway, sorry about the rant, but emacs programs are a completely different kind of thing than a dotfile, even if you do put them in, or load them from, a file called .emacs

I am fascinated by the culture of the dotfile. Because the dotfile is an easily read and shared thing, they can become a literature that is spread, shared, collaborated on.

Just try doing that with a set of clicks on a configuration wizard or some values in a registry - it isn't the same.

dotfiles are documents, they carry the comments of authors and editors and collaborators. Dotfiles are a weird unix version of "oral history", passed down as a right of passage from one generation of users to the next.

And they are so wrapped in the unix philosophy - the idea that the operating environment is something you set up for yourself, like hanging posters on the wall and moving furniture around, even though the rest of the world has moved on to letting interior designers make all the decisions (and in this sense Apple, despite using a unix kernel, is the paragon of anti-unix).

unix is very low brow, it is the home of the "worse is better" philosophy (and its success has been the success of worse is better). The first people to get around to doing something decide what it will look like (do-ocracy). And the ones who don't like it make their own fork or alternative. There is a disrespect for expertise: everyone figures they could theoretically do it themselves, if they took the time. Have you ever checked out how many sound file players, web browsers, and window managers there are for Linux? It is a world of playfulness - you write a program because you can, who cares if anyone but you and three of your friends will ever use it. Unix lovers would rather have one hundred subtly (and sometimes not so subtly) flawed and incompatible ways to do a single task than have one polished app forced on us from on high. We demand the right to our preferred keybindings, and will rewrite your app from scratch to get them if we have to.

I am idiopath, and I love unix.
posted by idiopath at 8:49 AM on April 17, 2010 [9 favorites]


DU: it is said that RMS has the biggest .emacs of anybody: the standard distro of emacs is just RMS's dotfile. Just make your own repo of your emacs extension libraries, and you have little need to worry about ever not having them.
posted by idiopath at 8:51 AM on April 17, 2010


Instead of dotfiles, I'd like to see chunks of dotfiles. A dictionary of dotfile chunks, so that I can build my own dotfile by selecting those bits and pieces of functionality I want.

Otherwise I'm stuck using someone else's dotfile, which means I have to memorize a bunch of things done the way they think it should be done, instead of the way I want it done. Sure, I can go in there and customize it myself — but why not just skip that step, and make what I want from near-scratch?

That all said, most of the time I forget to use my command aliases. Duh.
posted by five fresh fish at 11:40 AM on April 17, 2010


five fresh fish: many programs can source a dotfile from another dotfile, so the good dotfiles are made in chunks, as loadable libraries. shells, fvwm, vim, and of course emacs, off the top of my head.

But it would be nice if more programs supplied that functionality, and more people used it effectively.

The drawback of dotfiles is the same as the benefit - they are democratic and crowd sourced. They are often made by amateurs, who don't really get the point of modular libraries - or even worse get it wrong and you get something worse than one big old file would have been.
posted by idiopath at 11:46 AM on April 17, 2010


How do I make my own repo?
posted by DU at 1:22 PM on April 17, 2010


DU: github and google code will host repositories for free, as long as you are willing to make them public. Many people put all their essential dotfiles under public source control so they know they can always get their tweaks in an emergency, via a simple checkout in the home directory.
posted by idiopath at 1:41 PM on April 17, 2010


Oh, like a vcs repo. I thought you meant an ubuntu/debian type thing.
posted by DU at 2:34 PM on April 17, 2010


« Older words fail me   |   The universal punchline? Newer »


This thread has been archived and is closed to new comments