commit b490e0c758e42bbf1e49a87529afcce001694780 Author: Daniel Flanagan Date: Sun Feb 5 14:38:57 2017 -0600 initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9a4e25a --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +colors/gen/vendor +colors/gen/tmp +*.lock +*.log +*.pid +*.tmp +*.secret diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..49f307a --- /dev/null +++ b/readme.md @@ -0,0 +1,72 @@ +# My Dotfiles + +This repository contains the majority of application or OS configuration files +I use on a daily basis. I keep the here and public in an effort to inform others +who may not know either how to go about organizing such files or to learn how to +achieve certain behavior in their software and to have quick and easy access for +myself when setting up a new machine. + +## Priorities + +I have specific needs and desires (as does any developer) and I will lay those +out in order of priority here: + +* These files are primarily configured for Linux, (specifically, Arch Linux) but + I try to keep the OS-specific stuff in the `os-specific` directory. +* I am also primarily a Web Developer, so my configuration will reflect that. +* I rely heavily on Google's products and services. I know some are eager to + avoid that. +* I also prefer apps in my terminal. If I could, I would do everything that + makes sense to do so in a terminal using only my keyboard. **So if you know + about really cool and usable terminal-based software, let me know!** +* I prefer keeping my dotfiles as portable as possible (within reason). +* These dotfiles should be very quick to setup and get going. +* I aim to keep the dotfiles flexible and extendible, as I usually use them on + multiple machines with specific use-cases. For example, a shared laptop should + allow for other non-technical users ease-of-access, while my workstation + should focus on being quick, powerful, and highly usable for me alone. + +## Applications + +There are several types of applications I use every day, some more than others, +and sometimes different applications that have the same purpose. Here are the +applications I use (the primary one is *italicized*, the one I would like to +become my primary or am very interested in using in more depth is in **bold**) +for various tasks: + +* **Terminal Emulators**: *rxvt-unicode* +* **Text Editors**: **vim/Neovim**, Sublime Text, Kakoune +* **Terminal Multiplexers**: *tmux* +* **Web Browser**: *Google Chrome*, **qutebrowser**, luakit +* **Music**: *Google Play Music* +* **Email**: *Google Inbox*, Gmail, **mutt** +* **Image Editing**: *GIMP*, *Inkscape*, **Krita** +* **Documents**: *Google Drive*, though Dropbox's Paper looks neat and I've + heard too many good things about LaTeX. +* **Gaming**: *Steam*, *various emulators* + +## Workflow + +Here are some bullet points on my workflow as a Web Developer: + +* **Text Editing**: I use `vim`/`Neovim` in my terminal as my primary text + editor. I usually run it in a `tmux` session alongside a few terminals to have + a very flexible IDE-like development environment. More on that in other bullet + points. +* **Version Control**: I use `git` in the terminal (sometimes I pop into + GitKraken if I need to do anything crazy) and commit often. I work in a branch + named "dev" until it's time to go live, then I merge into master. Other + branches beyond "dev" are used for trying crazy things or during large + refactors so I can very quickly jump back if needed. +* **Compiler/Debugging**: I rely heavily on auto-reloading and + watch-and-test-and-compile features during development to iterate quickly. + Tools such as `webpack` and `webpack-dev-server` are amazing. If you try to do + anything to weird or crazy, though, configuring webpack properly can be + hazardous to the mind. Or I'm just doing things very wrong. Chrome's dev tools + are also killer in this department. +* **Testing**: I don't do much testing. This is bad and I'm working on it! + +## To Do and Improvements + +* Add more content to the other sections? +* Start refactoring old dotfiles and scripts.