Add initial site content
3
_config.dev.yml
Normal file
|
@ -0,0 +1,3 @@
|
|||
url: http://localhost:4000
|
||||
analytics:
|
||||
provider: false
|
|
@ -24,8 +24,8 @@ docs:
|
|||
url: /docs/install
|
||||
- title: "Getting Started"
|
||||
url: /docs/getting_started
|
||||
- title: "Common Usage Patterns"
|
||||
url: /docs/common_usage
|
||||
- title: "Common Commands"
|
||||
url: /docs/common_commands
|
||||
- title: Advanced Features
|
||||
children:
|
||||
- title: "Alternate Files"
|
||||
|
|
40
_docs/010_overview.md
Normal file
|
@ -0,0 +1,40 @@
|
|||
---
|
||||
title: "Overview"
|
||||
permalink: /docs/overview
|
||||
---
|
||||
> You've spent time tweaking your computing environment. Everything operates the
|
||||
way you want. That's fantastic! Then your hard drive fails, and the computer
|
||||
needs to be rebuilt. **yadm** can restore you configurations.
|
||||
|
||||
> You get a new computer, and you want to recreate that environment. You
|
||||
probably want to keep both machines' configurations in sync. **yadm** can help
|
||||
you coordinate the configurations between your machines.
|
||||
|
||||
> You begin experimenting with new changes to your configurations, and now
|
||||
everything is broken. **yadm** can help you determine what changed or simply
|
||||
revert all of your changes.
|
||||
|
||||
**yadm** is like having a version of Git, that only operates on your dotfiles.
|
||||
If you know how to use Git, you already know how to use yadm.
|
||||
|
||||
* It doesn't matter if your current directory is another Git-managed repository
|
||||
* You don't have to move your dotfiles, or have them symlinked from another
|
||||
location.
|
||||
* **yadm** automatically inherits all of Git's features, allowing you to branch,
|
||||
merge, rebase, use submodules, etc.
|
||||
|
||||
As so many others, I started out with a repository of dotfiles and a few scripts
|
||||
to symbolically link them around my home directory. This quickly became
|
||||
inadequate and I looked for solutions elsewhere. I've tried other tools, but I
|
||||
didn't find all of the features I personally wished for in a single tool. This
|
||||
led to **yadm** being written with the following goals:
|
||||
|
||||
* Use a single repository
|
||||
* Few dependencies
|
||||
* Ability to use alternate files based on OS or host
|
||||
* Ability to encrypt and track confidential files
|
||||
* Stay out of the way and let Git do what it's good at
|
||||
|
||||
Follow these links to [install](install) **yadm**
|
||||
or
|
||||
learn some simple steps for [getting started](getting_started) with **yadm**.
|
57
_docs/020_install.md
Normal file
|
@ -0,0 +1,57 @@
|
|||
---
|
||||
title: "Installation"
|
||||
permalink: /docs/install
|
||||
---
|
||||
{% include toc title="Platforms" %}
|
||||
|
||||
## OSX
|
||||
|
||||
**yadm** can be installed using [Homebrew](https://github.com/Homebrew/homebrew).
|
||||
|
||||
```
|
||||
brew install yadm
|
||||
```
|
||||
|
||||
## Fedora/Red Hat/ CentOS (YUM/RPM)
|
||||
|
||||
Several yum repositories are on Copr. Follow this link for [repositories and installation instructions](https://copr.fedorainfracloud.org/coprs/thelocehiliosan/yadm/).
|
||||
|
||||
## Debian / Ubuntu
|
||||
|
||||
**yadm** is currently in the "testing" release of Debian. If you are using the "stable" release, you can still install **yadm** using the following process.
|
||||
|
||||
* First, add the following to `/etc/apt/sources.list`
|
||||
|
||||
```
|
||||
deb http://ftp.debian.org/debian testing main contrib non-free
|
||||
```
|
||||
|
||||
* Next, run `apt-get update -y`
|
||||
|
||||
* Last, run `apt-get -t testing install yadm`
|
||||
|
||||
If you are using the "unstable" or "testing" release of Debian, you should be able to install **yadm** as you normally install software with `apt-get`.
|
||||
|
||||
## Arch Linux
|
||||
|
||||
**yadm** is available in the Arch User Repos and can be installed with AUR helper or Makepkg
|
||||
|
||||
```
|
||||
yaourt -S yadm
|
||||
```
|
||||
|
||||
## Gentoo Linux
|
||||
|
||||
**yadm** is available in the main gentoo portage tree, simply use `emerge` to install it
|
||||
|
||||
```
|
||||
emerge -atv app-admin/yadm
|
||||
```
|
||||
|
||||
## Other
|
||||
|
||||
You *can* simply download the **yadm** script and put it into your `$PATH`. Something like this:
|
||||
|
||||
```
|
||||
curl -fLo /usr/local/bin/yadm https://github.com/TheLocehiliosan/yadm/raw/master/yadm && chmod a+x /usr/local/bin/yadm
|
||||
```
|
35
_docs/030_getting_started.md
Normal file
|
@ -0,0 +1,35 @@
|
|||
---
|
||||
title: "Getting Started"
|
||||
permalink: /docs/getting_started
|
||||
---
|
||||
Starting out with **yadm** should be just a few easy steps.
|
||||
|
||||
### If you don't currently have a repository
|
||||
Start out with an empty local repository
|
||||
|
||||
yadm init
|
||||
yadm add <important file>
|
||||
yadm commit
|
||||
|
||||
Eventually you will want to push the local repo to a remote.
|
||||
|
||||
yadm remote add origin <url>
|
||||
yadm push -u origin master
|
||||
|
||||
### If you have an existing remote repository
|
||||
Clone your existing repo using **yadm**.
|
||||
|
||||
yadm clone <url>
|
||||
yadm status
|
||||
|
||||
The `clone` command will attempt to `merge` your existing repository, but if it
|
||||
fails, it will do a `reset` instead and you'll have to decide best on how
|
||||
resolve the differences. See
|
||||
[this question](faq#i-just-cloned-my-repository-but-yadm-status-shows-conflicts-why)
|
||||
in the FAQ if you need help.
|
||||
|
||||
---
|
||||
|
||||
That's all it takes to start. Now most Git commands can be used as
|
||||
`yadm <git command>`.
|
||||
Read about [common commands](common_commands) for ideas.
|
64
_docs/035_common_usage.md
Normal file
|
@ -0,0 +1,64 @@
|
|||
---
|
||||
title: "Common Commands"
|
||||
permalink: /docs/common_commands
|
||||
---
|
||||
Most of these operations will look like Git commands; because they are.
|
||||
**yadm** wraps Git, allowing it to perform all of Git's operations. The
|
||||
difference is your `$HOME` directory becomes the working directory, and you can
|
||||
run the commands from any directory.
|
||||
|
||||
Commands below which are special to **yadm** are denoted with
|
||||
<i class="fa fa-fw fa-asterisk" aria-hidden="true"></i>,
|
||||
and those which are passed directly through to Git are denoted with
|
||||
<i class="fa fa-fw fa-git-square" aria-hidden="true"></i>.
|
||||
|
||||
<i class="fa fa-fw fa-asterisk" aria-hidden="true"></i> `man yadm`
|
||||
: Display **yadm**'s
|
||||
[manual](https://github.com/TheLocehiliosan/yadm/blob/master/yadm.md).
|
||||
|
||||
<i class="fa fa-fw fa-git-square" aria-hidden="true"></i> `yadm status`
|
||||
: Show the repository status; added, changed, removed files. Because a `$HOME`
|
||||
directory often more than only dotfiles, by default
|
||||
**yadm** ignores untracked files when displaying status.
|
||||
|
||||
<i class="fa fa-fw fa-git-square" aria-hidden="true"></i> `yadm push`, `yadm fetch`
|
||||
: Send or retrive commits to/from your remote repository .
|
||||
|
||||
<i class="fa fa-fw fa-git-square" aria-hidden="true"></i> `yadm commit --amend`
|
||||
: Replace the last commit with a new one. Allows you to change your commit
|
||||
message or add staged changes to the previous commit.
|
||||
|
||||
<i class="fa fa-fw fa-git-square" aria-hidden="true"></i> `yadm diff`
|
||||
: View changes (uncommitted) you've made to your dotfiles.
|
||||
|
||||
<i class="fa fa-fw fa-git-square" aria-hidden="true"></i> `yadm diff --cached`
|
||||
: View changes staged with `yadm add`. These changes will be added with the next
|
||||
commit.
|
||||
|
||||
<i class="fa fa-fw fa-asterisk" aria-hidden="true"></i> `yadm list -a`
|
||||
: Print a list of files managed by **yadm**. The -a option will cause all managed
|
||||
files to be listed. Otherwise, the list will only include files from the
|
||||
current directory or below.
|
||||
|
||||
<i class="fa fa-fw fa-asterisk" aria-hidden="true"></i> `yadm alt`
|
||||
: Create symbolic links for any managed files matching the alternate naming rules.
|
||||
Read about [alternate files](alternates) for more details.
|
||||
|
||||
<i class="fa fa-fw fa-asterisk" aria-hidden="true"></i> `yadm encrypt`
|
||||
: Encrypt all files matching the patterns found in `$HOME/.yadm/encrypt`. Read
|
||||
about [encryption](encryption) for more details.
|
||||
|
||||
<i class="fa fa-fw fa-asterisk" aria-hidden="true"></i> `yadm decrypt`, `yadm decrypt -l`
|
||||
: Decrypt files stored in `$HOME/.yadm/files.gpg`. Using the `-l` option will
|
||||
only list the files (without decrypting them). Read about
|
||||
[encryption](encryption) for more details.
|
||||
|
||||
<i class="fa fa-fw fa-git-square" aria-hidden="true"></i> `yadm remote -v`
|
||||
: Display detailed information about all configured remote repositories.
|
||||
|
||||
<i class="fa fa-fw fa-git-square" aria-hidden="true"></i> `yadm checkout -- <file>`
|
||||
: Abandon local changes to `<file>`, replacing it with the `HEAD` revision of
|
||||
`<file>`.
|
||||
|
||||
<i class="fa fa-fw fa-git-square" aria-hidden="true"></i> `yadm checkout -b <branch-name>`
|
||||
: Create a branch called `<branch-name>`, and check the branch out.
|
126
_docs/040_alternates.md
Normal file
|
@ -0,0 +1,126 @@
|
|||
---
|
||||
title: "Alternate Files"
|
||||
permalink: /docs/alternates
|
||||
---
|
||||
|
||||
When possible, it is best to use the same files across all systems. However,
|
||||
there are occasions when you need different files in some places. Below are
|
||||
features and strategies for dealing with those occasions.
|
||||
|
||||
## Symlink alternates
|
||||
|
||||
It can be useful to have an automated way of choosing an alternate version of a
|
||||
file for a different operation system, host, or user. **yadm** implements a
|
||||
feature which will automatically create a symbolic link to the appropriate
|
||||
version of a file, as long as you follow a specific naming convention. yadm can
|
||||
detect files with names ending in:
|
||||
|
||||
| `##` | Default file linked |
|
||||
| `##OS` | Matching OS |
|
||||
| `##OS.HOSTNAME` | Matching OS & Hostname |
|
||||
| `##OS.HOSTNAME.USER` | Matching OS, Hostname, and User |
|
||||
|
||||
If there are any files managed by yadm's repository which match this naming
|
||||
convention, symbolic links will be created for the most appropriate version.
|
||||
This may best be demonstrated by example. Assume the following files are managed
|
||||
by yadm's repository:
|
||||
|
||||
$HOME/path/example.txt##
|
||||
$HOME/path/example.txt##Darwin
|
||||
$HOME/path/example.txt##Darwin.host1
|
||||
$HOME/path/example.txt##Darwin.host2
|
||||
$HOME/path/example.txt##Linux
|
||||
$HOME/path/example.txt##Linux.host1
|
||||
$HOME/path/example.txt##Linux.host2
|
||||
|
||||
If running on a Macbook named `host2`, yadm will create a symbolic link which
|
||||
looks like this:
|
||||
|
||||
`$HOME/path/example.txt` → `$HOME/path/example.txt##Darwin.host2`
|
||||
|
||||
However, on another Macbook named `host3`, yadm will create a symbolic link
|
||||
which looks like this:
|
||||
|
||||
`$HOME/path/example.txt` → `$HOME/path/example.txt##Darwin`
|
||||
|
||||
Since the hostname doesn't match any of the managed files, the more generic
|
||||
version is chosen.
|
||||
|
||||
If running on a Linux server named `host4`, the link will be:
|
||||
|
||||
`$HOME/path/example.txt` → `$HOME/path/example.txt##Linux`
|
||||
|
||||
If running on a Solaris server, the link use the default `##` version:
|
||||
|
||||
`$HOME/path/example.txt` → `$HOME/path/example.txt##`
|
||||
|
||||
If no `##` version exists and no files match the current OS/HOST- NAME/USER,
|
||||
then no link will be created.
|
||||
|
||||
| OS is determined by running `uname -s`, HOSTNAME by running `hostname -s`, and USER by running `id -u -n`. **yadm** will automatically create these links by default. This can be disabled using the yadm.auto-alt configuration. Even if disabled, links can be manually created by running **yadm** alt.
|
||||
|
||||
## Strategies for alternate files on different systems
|
||||
|
||||
Where possible, you should try to use the same file on every system. Here are a few examples:
|
||||
|
||||
### .vimrc
|
||||
|
||||
```vim
|
||||
let OS=substitute(system('uname -s'),"\n","","")
|
||||
if (OS == "Darwin")
|
||||
" do something that only makes sense on a Mac
|
||||
endif
|
||||
```
|
||||
|
||||
### .tmux.conf
|
||||
|
||||
# use reattach-to-user-namespace as the default command on OSX
|
||||
if-shell "test -f /usr/local/bin/reattach-to-user-namespace" 'set -g default-command "reattach-to-user-namespace -l bash"'
|
||||
|
||||
### .bash_profile
|
||||
|
||||
```bash
|
||||
system_type=$(uname -s)
|
||||
if [ "$system_type" = "Darwin" ]; then
|
||||
eval $(gdircolors $HOME/.dir_colors)
|
||||
else
|
||||
eval $(dircolors -b $HOME/.dir_colors)
|
||||
fi
|
||||
```
|
||||
|
||||
### .gitconfig
|
||||
|
||||
However, sometimes the type of file you are using doesn't allow for this type of
|
||||
logic. If a configuration can do an "_include_", you can include a specific
|
||||
alternate version using **yadm**. Consider these three files:
|
||||
|
||||
`.gitconfig`
|
||||
|
||||
```ini
|
||||
[log]
|
||||
decorate = short
|
||||
abbrevCommit = true
|
||||
[include]
|
||||
path = .gitconfig.local
|
||||
```
|
||||
|
||||
`.gitconfig.local##Darwin`
|
||||
|
||||
```ini
|
||||
[user]
|
||||
name = Tim Byrne
|
||||
email = tim@personal.email.org
|
||||
```
|
||||
|
||||
`.gitconfig.local##Linux`
|
||||
|
||||
```ini
|
||||
[user]
|
||||
name = Dr. Tim Byrne
|
||||
email = dr.byrne@work.email.com
|
||||
```
|
||||
|
||||
Configuring Git this way includes `.gitconfig.local` in the standard
|
||||
`.gitconfig`. **yadm** will automatically link the correct version based on the
|
||||
operation system. The bulk of your configurations can go in a single file, and
|
||||
you just put the exceptions in OS-specific files.
|
40
_docs/050_encryption.md
Normal file
|
@ -0,0 +1,40 @@
|
|||
---
|
||||
title: "Encryption"
|
||||
permalink: /docs/encryption
|
||||
---
|
||||
It can be useful to manage confidential files, like SSH keys, across multiple
|
||||
systems. However, doing so would put plain text data into a Git repository,
|
||||
which often resides on a public system. **yadm** implements a feature which can
|
||||
make it easy to encrypt and decrypt a set of files so the encrypted version can
|
||||
be maintained in the Git repository. This feature will only work if the gpg
|
||||
command is available.
|
||||
_It is recommended that you use a private repository when keeping confidential
|
||||
files, even though they are encrypted._
|
||||
|
||||
To use this feature, a list of patterns must be created and saved as
|
||||
`$HOME/.yadm/encrypt`. For example:
|
||||
|
||||
.ssh/*.key
|
||||
|
||||
The `yadm encrypt` command will find all files matching the patterns, and
|
||||
prompt for a password. Once a password has confirmed, the matching files will be
|
||||
encrypted and saved as `$HOME/.yadm/files.gpg`. The patterns and files.gpg
|
||||
should be added to the **yadm** repository so they are available across multiple
|
||||
systems.
|
||||
|
||||
yadm add .yadm/encrypt
|
||||
yadm add .yadm/files.gpg
|
||||
|
||||
To decrypt these files later, or on another system run `yadm decrypt` and
|
||||
provide the correct password.
|
||||
_By default, any decrypted files will have their "group" and "others"
|
||||
permissions removed._
|
||||
|
||||
### Asymmetric Encryption
|
||||
|
||||
Symmetric encryption is used by default, but asymmetric encryption may
|
||||
be enabled using the `yadm.gpg-recipient` configuration. To do so, run:
|
||||
|
||||
yadm config yadm.gpg-recipient <recipient-address>
|
||||
|
||||
For this to work, `<recipient-address>` must exist in your gpg keyrings.
|
142
_docs/060_faq.md
Normal file
|
@ -0,0 +1,142 @@
|
|||
---
|
||||
title: "Frequently Asked Questions"
|
||||
permalink: /docs/faq
|
||||
#{% include toc title="Questions" %}
|
||||
---
|
||||
|
||||
## Usage
|
||||
|
||||
### I just cloned my repository, but `yadm status` shows conflicts. Why?
|
||||
|
||||
Prior to cloning your repository, files managed by **yadm** already existed. For
|
||||
example, imagine you are logged into a system and `$HOME/.bash_profile` already
|
||||
exists. If you then clone your **yadm** repository—which also contains
|
||||
`.bash_profile`—then you will likely get a conflict. You must decide how to
|
||||
resolve that conflict. Perhaps you don't want to overwrite the current version.
|
||||
You might want merge the content together in some way. This can be resolved the
|
||||
same way you resolve any Git conflict.
|
||||
|
||||
If you merely want to forcefully overwrite all the managed files using the HEAD
|
||||
revision of your repository, you probably want to run
|
||||
|
||||
```
|
||||
yadm reset --hard HEAD
|
||||
```
|
||||
|
||||
### How can I display untracked files with a `yadm status` command?
|
||||
|
||||
By default, **yadm** is configured to ignore untracked files when displaying a
|
||||
status. You can use the `-u` paramter on the status command to alter how
|
||||
untracked files are treated. `-unormal` will show untracked files and
|
||||
directories.
|
||||
|
||||
```
|
||||
yadm status -unormal
|
||||
```
|
||||
|
||||
If you want to change the default treatment, you can change this configuration
|
||||
on the **yadm** repository itself.
|
||||
|
||||
```
|
||||
yadm gitconfig --unset status.showUntrackedFiles
|
||||
```
|
||||
|
||||
### How can I stage all modified files at once?
|
||||
|
||||
Just as with Git, you can use the `add` command.
|
||||
|
||||
```
|
||||
yadm add -u :/
|
||||
```
|
||||
|
||||
(Starting with Git 2.0, the `:/` is not necessary)
|
||||
|
||||
### How can I change the URL of my remote **yadm** repository?
|
||||
|
||||
This is done the same way you change the URL of any Git repository.
|
||||
|
||||
```
|
||||
yadm remote set-url origin <NEW-URL>
|
||||
```
|
||||
|
||||
This could be useful if you manage your ssh keys in the **yadm** repository.
|
||||
That could make it difficult to initially clone the repository using the `ssh`
|
||||
protocol. You can start by cloning the repository using the `https` protocol
|
||||
(and providing a password), and then change the repository's URL after you've
|
||||
decrypted your ssh keys.
|
||||
|
||||
### I've customized **yadm** configurations (stored in `~/.yadm/config`). Should I add that to my repository?
|
||||
|
||||
Certainly. That is a good way to carry your **yadm** configurations around (just
|
||||
like the rest of your dotfiles).
|
||||
|
||||
### Can you point to any example **yadm** managed repositories?
|
||||
|
||||
[This page](examples) contains some examples.
|
||||
|
||||
|
||||
## Encryption
|
||||
|
||||
### Can I use **yadm** without **gpg**?
|
||||
|
||||
Of course. You only need `gpg` installed if you plan on using the
|
||||
encrypt/decrypt features. **yadm** will tell you if it is missing a dependency
|
||||
for any command.
|
||||
|
||||
### Should I `yadm add` my `.yadm/encrypt` file?
|
||||
|
||||
Yes! This way your configuration for what files should be encrypted will follow
|
||||
you when you clone your repository.
|
||||
|
||||
### Should I `yadm add` encrypted files to repository?
|
||||
|
||||
No, you should not. Files you want encrypted should be added to the file
|
||||
`.yadm/files.gpg` using the `yadm encrypt` command. Then `.yadm/files.gpg`
|
||||
should be added to the **yadm** repository. This way, only an encrypted
|
||||
collection of those files are put into the repository. After cloning or updating
|
||||
your repository, you can use `yadm decrypt` to extract those files from
|
||||
`.yadm/files.gpg`. See the
|
||||
[encryption help](encryption) for more details.
|
||||
|
||||
### I modified an encrypted file, but **yadm** doesn't show any modifications. Why?
|
||||
|
||||
If you changed files which are matched by `.yadm/encrypt`, you must re-run `yadm
|
||||
encrypt` to generate a new version of `.yadm/files.gpg`. Then `.yadm/files.gpg`
|
||||
can be added to a new commit.
|
||||
|
||||
### Can I use **yadm** and **git-crypt**?
|
||||
|
||||
There is an experimental version of **yadm** which can use **git-crypt**. You
|
||||
can find it in the [git-crypt-support branch](
|
||||
https://github.com/TheLocehiliosan/yadm/commits/git-crypt-support
|
||||
). See the
|
||||
[notes](
|
||||
https://github.com/TheLocehiliosan/yadm/commit/efb7fd16612fe650b1286f0c696696f412772ab3
|
||||
) in the commit messages of that branch for details.
|
||||
|
||||
## Comparisons
|
||||
|
||||
### How does **yadm** differ from **homeshick**?
|
||||
|
||||
**yadm** and **homeshick** are both written in Bash, with very limited
|
||||
dependencies. However, **homeshick** works by symlinking data from a repository
|
||||
working directory into your `$HOME` directory. **yadm** instead uses your
|
||||
`$HOME` directory _as_ its working directory. **homeshick** allows for multiple
|
||||
"castles" to be linked into `$HOME`, while **yadm** is designed to work with a
|
||||
single repository. **homeshick** requires you to change into the "castle"
|
||||
directory before performing any Git based commands. **yadm** allows you to
|
||||
perform operations regardless of your location. **yadm** also includes unique
|
||||
features to encrypt private data, and symlink alternate versions of files based
|
||||
on OS type or hostname.
|
||||
|
||||
### How does **yadm** differ from **vcsh**?
|
||||
|
||||
**yadm** and **vcsh** both work as a filters for standard Git commands. Both
|
||||
also use your `$HOME` directory _as_ the repository's working directory.
|
||||
However, **vcsh** is designed to work with multiple repositories, **yadm**
|
||||
instead uses a single repository. **vcsh** requires you to specify which
|
||||
repository you want to operate on, while **yadm** only operates on one. If you
|
||||
want to use Git submodules, you _may_ have trouble using **vcsh**. This is
|
||||
because only one repository can be the owner of the `.gitmodules` file.
|
||||
**yadm** also includes unique features to encrypt private data, and symlink
|
||||
alternate versions of files based on OS type or hostname.
|
23
_docs/070_examples.md
Normal file
|
@ -0,0 +1,23 @@
|
|||
---
|
||||
title: "Example Dotfiles"
|
||||
permalink: /docs/examples
|
||||
---
|
||||
Need some inspiration? Here are some public dotfiles repositories managed by
|
||||
**yadm**. Drop me a line if you have a dotfiles repo you'd like added to this
|
||||
list.
|
||||
|
||||
* [DoomHammer/dotfiles](https://github.com/DoomHammer/dotfiles)
|
||||
* [SShrike/dotfiles](https://github.com/SShrike/dotfiles)
|
||||
* [TheLocehiliosan/dotfiles](https://github.com/TheLocehiliosan/dotfiles)
|
||||
* [akatrevorjay/dotfiles](https://github.com/akatrevorjay/dotfiles)
|
||||
* [akupila/dotfiles](https://github.com/akupila/dotfiles)
|
||||
* [bjartek/dotfiles](https://github.com/bjartek/dotfiles)
|
||||
* [cschooley/dotfiles](https://github.com/cschooley/dotfiles)
|
||||
* [czchen/dotfiles](https://github.com/czchen/dotfiles)
|
||||
* [esphen/dotfiles](https://github.com/esphen/dotfiles)
|
||||
* [gverilla/dotfiles](https://github.com/gverilla/dotfiles)
|
||||
* [mago0/dotfiles](https://github.com/mago0/dotfiles)
|
||||
* [mes5k/dotfiles](https://github.com/mes5k/dotfiles)
|
||||
* [pendowski/dotfiles](https://github.com/pendowski/dotfiles)
|
||||
* [tonipes/dotfiles](https://github.com/tonipes/dotfiles)
|
||||
* [zamaterian/dotfiles](https://github.com/zamaterian/dotfiles)
|
|
@ -1,3 +1,15 @@
|
|||
<!-- start custom footer snippets -->
|
||||
<div id="quoteline"></div>
|
||||
<script language="JavaScript">
|
||||
var quote = new Array ();
|
||||
quote[0] = ["A house that does not have one warm, comfy chair in it is soulless.", "May Sarton"];
|
||||
quote[1] = ["Home is an invention on which no one has yet improved.", "Ann Douglas"];
|
||||
quote[2] = ["Seek home for rest, for home is best.", "Thomas Tusser"];
|
||||
quote[3] = ["I would not change my blest estate for all the world calls good or great.", "Isaac Watts"];
|
||||
quote[4] = ["To feel at home, stay at home.", "Clifton Fadiman"];
|
||||
quote[5] = ["We shape our dwellings, and afterwards our dwellings shape us.", "Winston Churchill"];
|
||||
var i = Math.floor(quote.length*Math.random());
|
||||
document.getElementById('quoteline').innerHTML = '<i>'+quote[i][0]+'</i>—'+quote[i][1];
|
||||
</script>
|
||||
|
||||
<!-- end custom footer snippets -->
|
|
@ -2,4 +2,14 @@
|
|||
|
||||
<!-- insert favicons. use http://realfavicongenerator.net/ -->
|
||||
|
||||
<!-- support for buttons.github.io -->
|
||||
<script async defer src="https://buttons.github.io/buttons.js"></script>
|
||||
|
||||
<style type="text/css">
|
||||
/* override mmistakes image highlighting */
|
||||
.archive__item:hover .archive__item-teaser {
|
||||
box-shadow: none;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- end custom head snippets -->
|
109
_pages/main.md
Normal file
|
@ -0,0 +1,109 @@
|
|||
---
|
||||
layout: splash
|
||||
permalink: /
|
||||
stars_button: '
|
||||
{::nomarkdown}<iframe
|
||||
src="https://ghbtns.com/github-btn.html?user=TheLocehiliosan&repo=yadm&type=star&count=true"
|
||||
frameborder="0" scrolling="0" width="100"
|
||||
height="20px" style="float: right;"></iframe>{:/nomarkdown}
|
||||
'
|
||||
title: 'Yet Another Dotfiles Manager'
|
||||
header:
|
||||
overlay_color: "#000"
|
||||
overlay_filter: 0.7
|
||||
overlay_image: "unsplash-cabin.jpg"
|
||||
cta_label: "Install Now"
|
||||
cta_url: "/docs/install"
|
||||
caption: "_Photo: [Paul Itkin](https://unsplash.com/photos/NKSGuJzExIo)_"
|
||||
excerpt: '
|
||||
|
||||
When you live in a command line, configurations are a deeply personal thing.
|
||||
They are often crafted over years of experience, battles lost, lessons learned,
|
||||
advice followed, and ingenuity rewarded. When you are away from your own
|
||||
configurations, you are an orphaned refugee in unfamiliar and hostile
|
||||
surroundings. You feel clumsy and out of sorts. You are filled with a sense of
|
||||
longing to be back in a place you know. A place you built. A place where all the
|
||||
short-cuts have been worn bare by your own travels. A place you proudly call...
|
||||
**$HOME**.
|
||||
|
||||
'
|
||||
feature_row:
|
||||
- title: "Overview"
|
||||
alt: ""
|
||||
btn_class: "btn--inverse"
|
||||
btn_label: "Discover yadm"
|
||||
image_path: "cogs-padding.png"
|
||||
url: "/docs/overview"
|
||||
excerpt: '
|
||||
|
||||
If you know how to use Git, you already know how to use **yadm**.
|
||||
**yadm** helps you maintain a single repository of dotfiles, while keeping
|
||||
them where they belong---in `$HOME`.
|
||||
Anything you can do with Git, you can do using **yadm**.
|
||||
|
||||
'
|
||||
- title: "Alternate Files"
|
||||
alt: ""
|
||||
btn_class: "btn--inverse"
|
||||
btn_label: "Details"
|
||||
image_path: "copy-padding.png"
|
||||
url: "/docs/alternates"
|
||||
excerpt: '
|
||||
|
||||
Sometimes you need different configurations on different systems.
|
||||
**yadm** makes it possible to use alternate versions of files based on
|
||||
the OS or hostname of the system.
|
||||
|
||||
'
|
||||
- title: "Encryption"
|
||||
alt: ""
|
||||
btn_class: "btn--inverse"
|
||||
btn_label: "Learn more"
|
||||
image_path: "secret-padding.png"
|
||||
url: "/docs/encryption"
|
||||
excerpt: '
|
||||
|
||||
Configurations occasionally include secrets such as passwords,
|
||||
encryption keys, or other sensitive information. **yadm** allows you to
|
||||
add such files to an encrypted archive, which can be maintained
|
||||
alongside your other configurations.
|
||||
|
||||
'
|
||||
- title: "FAQ"
|
||||
alt: ""
|
||||
btn_class: "btn--inverse"
|
||||
btn_label: "Get answers"
|
||||
image_path: "question-circle-padding.png"
|
||||
url: "/docs/faq"
|
||||
excerpt: '
|
||||
|
||||
Have a question? You might find an answer in the FAQ.
|
||||
|
||||
'
|
||||
- title: "Manual"
|
||||
alt: ""
|
||||
btn_class: "btn--inverse"
|
||||
btn_label: "See man page"
|
||||
image_path: "book-padding.png"
|
||||
url: "https://github.com/TheLocehiliosan/yadm/blob/master/yadm.md"
|
||||
excerpt: '
|
||||
|
||||
View the manual online.
|
||||
|
||||
'
|
||||
- title: "Example Dotfiles"
|
||||
alt: ""
|
||||
btn_class: "btn--inverse"
|
||||
btn_label: "View examples"
|
||||
image_path: "keyboard-padding.png"
|
||||
url: "/docs/examples"
|
||||
excerpt: '
|
||||
|
||||
Need some inspiration? Here are some example dotfiles repository.
|
||||
|
||||
'
|
||||
---
|
||||
|
||||
{% include feature_row id="intro" type="center" %}
|
||||
|
||||
{% include feature_row %}
|
BIN
images/binary-padding.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
images/binary.png
Normal file
After Width: | Height: | Size: 973 B |
BIN
images/book-padding.png
Normal file
After Width: | Height: | Size: 9.2 KiB |
BIN
images/book.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
images/branch-padding.png
Normal file
After Width: | Height: | Size: 9.5 KiB |
BIN
images/branch.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
images/clone-padding.png
Normal file
After Width: | Height: | Size: 5.6 KiB |
BIN
images/clone.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
images/cogs-padding.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
images/cogs.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
images/copy-padding.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
images/copy.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
images/download-padding.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
images/download.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
images/git-padding.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
images/git.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
images/home-padding.png
Normal file
After Width: | Height: | Size: 8.3 KiB |
BIN
images/home.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
images/info-circle-padding.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
BIN
images/info-circle.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
images/info-padding.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
images/info.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
images/key-padding.png
Normal file
After Width: | Height: | Size: 7.2 KiB |
BIN
images/key.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
images/keyboard-padding.png
Normal file
After Width: | Height: | Size: 5.3 KiB |
BIN
images/keyboard.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
images/lock-padding.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
images/lock.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
images/question-circle-padding.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
images/question-circle.png
Normal file
After Width: | Height: | Size: 3 KiB |
BIN
images/question-padding.png
Normal file
After Width: | Height: | Size: 7.7 KiB |
BIN
images/question.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
images/qustion-padding.png
Normal file
After Width: | Height: | Size: 7.7 KiB |
BIN
images/secret-padding.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
images/secret.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
images/transfer-padding.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
images/transfer.png
Normal file
After Width: | Height: | Size: 652 B |
BIN
images/tree-padding.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
images/tree.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
images/unsplash-cabin.jpg
Normal file
After Width: | Height: | Size: 323 KiB |