Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nmattia/homies

home dir & package management
https://github.com/nmattia/homies

dotfiles environment linux macos nix

Last synced: 10 days ago
JSON representation

home dir & package management

Awesome Lists containing this project

README

        

# Homies

homies

Reproducible set of dotfiles and packages for Linux and macOS

---

Install with `nix profile install`. Update your `~/.zshrc`:

``` zsh
if [ -f $HOME/.nix-profile/share/zshrc/zshrc ]; then source $HOME/.nix-profile/share/zshrc/zshrc; fi
```

The homies will be available in all subsequent shells, including the
customizations (vim with my favorite plugins, tmux with my customized
configuration, etc). See the [introduction blog post][post] for an overview.

[post]: https://nmattia.com/posts/2018-03-21-nix-reproducible-setup-linux-macos.html

## How-To

Installing the package set:

``` shell
$ nix profile install
```

Updating the packages:

```shell
$ nix flake update # alternative: nix flake lock --update-input
```

Try out the new packages:

```shell
$ nix develop
```

Upgrading to the new profile:

``` shell
$ nix profile upgrade X # find X with "nix profile list"
```

Syncing apps for Spotlight indexing:

```
$ rsync --archive --checksum --delete --chmod=-w ~/.nix-profile/Applications/ ~/Applications/homies-apps/
```

> **Note**
> We copy the app to make sure Spotlight picks it up. Creating a (Finder) alias does work too, but
> the alias is given much lower priority in Spotlight search and the app appears way below e.g.
> online searches, files, etc.

Listing the previous and current configurations:

``` shell
$ nix profile history
```

Deleting old configurations:

``` shell
$ nix profile wipe-history
```

Ensure build is sandboxed:
```
# /etc/nix/nix.conf
build-users-group = nixbld
# /Library: cc is installed in /Library/Developer (and used from /usr/bin
/cc and others)
# /System/Library: needed for system-wide Perl
sandbox-paths = /bin/bash /bin /usr/bin /usr/sbin /Library /System/Library
sandbox = true
```