• Stars
    star
    1,457
  • Rank 32,287 (Top 0.7 %)
  • Language
    Nix
  • License
    MIT License
  • Created over 11 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

And I say hey, what's going on?

Made with Doom Emacs NixOS Unstable

Hey, you. You're finally awake. You were trying to configure your OS declaratively, right? Walked right into that NixOS ambush, same as us, and those dotfiles over there.

Disclaimer: This is not a community framework or distribution. It's a private configuration and an ongoing experiment to feel out NixOS. I make no guarantees that it will work out of the box for anyone but myself. It may also change drastically and without warning.

Until I can bend spoons with my nix-fu, please don't treat me like an authority or expert in the NixOS space. Seek help on the NixOS discourse instead.


Shell: zsh + zgenom
DM: lightdm + lightdm-mini-greeter
WM: bspwm + polybar
Editor: Doom Emacs
Terminal: st
Launcher: rofi
Browser: firefox
GTK Theme: Ant Dracula

Quick start

  1. Acquire NixOS 21.11 or newer:

    # Yoink nixos-unstable
    wget -O nixos.iso https://channels.nixos.org/nixos-unstable/latest-nixos-minimal-x86_64-linux.iso
    
    # Write it to a flash drive
    cp nixos.iso /dev/sdX
  2. Boot into the installer.

  3. Switch to root user: sudo su -

  4. Do your partitions and mount your root to /mnt (for example).

  5. Install these dotfiles:

    nix-shell -p git nixFlakes
    
    # Set HOST to the desired hostname of this system
    HOST=...
    # Set USER to your desired username (defaults to hlissner)
    USER=...
    
    git clone https://github.com/hlissner/dotfiles /etc/dotfiles
    cd /etc/dotfiles
    
    # Create a host config in `hosts/` and add it to the repo:
    mkdir -p hosts/$HOST
    nixos-generate-config --root /mnt --dir /etc/dotfiles/hosts/$HOST
    rm -f hosts/$HOST/configuration.nix
    cp hosts/kuro/default.nix hosts/$HOST/default.nix
    vim hosts/$HOST/default.nix  # configure this for your system; don't use it verbatim!
    git add hosts/$HOST
    
    # Install nixOS
    USER=$USER nixos-install --root /mnt --impure --flake .#$HOST
    
    # If you get 'unrecognized option: --impure', replace '--impure' with 
    # `--option pure-eval no`.
    
    # Then move the dotfiles to the mounted drive!
    mv /etc/dotfiles /mnt/etc/dotfiles
  6. Then reboot and you're good to go!

⚠️ Don't forget to change your root and $USER passwords! They are set to nixos by default.

Management

And I say, bin/hey, what's going on?

Usage: hey [global-options] [command] [sub-options]

Available Commands:
  check                  Run 'nix flake check' on your dotfiles
  gc                     Garbage collect & optimize nix store
  generations            Explore, manage, diff across generations
  help [SUBCOMMAND]      Show usage information for this script or a subcommand
  rebuild                Rebuild the current system's flake
  repl                   Open a nix-repl with nixpkgs and dotfiles preloaded
  rollback               Roll back to last generation
  search                 Search nixpkgs for a package
  show                   [ARGS...]
  ssh HOST [COMMAND]     Run a bin/hey command on a remote NixOS system
  swap PATH [PATH...]    Recursively swap nix-store symlinks with copies (and back).
  test                   Quickly rebuild, for quick iteration
  theme THEME_NAME       Quickly swap to another theme module
  update [INPUT...]      Update specific flakes or all of them
  upgrade                Update all flakes and rebuild system

Options:
    -d, --dryrun                     Don't change anything; perform dry run
    -D, --debug                      Show trace on nix errors
    -f, --flake URI                  Change target flake to URI
    -h, --help                       Display this help, or help for a specific command
    -i, -A, -q, -e, -p               Forward to nix-env

Frequently asked questions

More Repositories

1

zsh-autopair

Auto-close and delete matching delimiters in zsh
Shell
471
star
2

evil-multiedit

Multiple cursors for evil-mode, based on iedit
Emacs Lisp
338
star
3

evil-snipe

2-char searching ala vim-sneak & vim-seek, for evil-mode
Emacs Lisp
328
star
4

emacs-solaire-mode

If only certain buffers could be so grossly incandescent.
Emacs Lisp
309
star
5

lb6-actions

A litter of LaunchBar 6 actions
JavaScript
218
star
6

.doom.d

My private config for Doom Emacs
Emacs Lisp
177
star
7

emacs-hide-mode-line

An Emacs plugin that hides (or masks) the current buffer's mode-line
Emacs Lisp
73
star
8

emacs-pug-mode

Pug support for Emacs, based on slim-mode.
Emacs Lisp
42
star
9

emacs-thermite

(WIP) Less themin', more Emacsin'
Emacs Lisp
42
star
10

emacs-company-dict

A port of ac-source-dictionary to company-mode, plus annotation and documentation support.
Emacs Lisp
32
star
11

emacs-mips-mode

An Emacs major mode for MIPS assembly code
Emacs Lisp
27
star
12

.vim

Did someone say... vim?
Vim Script
20
star
13

emacs-counsel-css

An ivy-mode backend for css selectors (scss/less too)
Emacs Lisp
20
star
14

practice

Programming exercises. For fun and great good.
C++
18
star
15

emacs-nlinum-hl

Fix disappearing line numbers in nlinum
Emacs Lisp
16
star
16

hlissner

Oh yes.
6
star
17

lb6-rdio

[Defunct] Control Rdio.app & search rdio.com
JavaScript
6
star
18

vim-ultisnips-snippets

My ultisnips snippets
5
star
19

vim-forrestgump

Run inline code, run
Vim Script
4
star
20

vim-transmitty

Transmit.app integration for VIM (mac only)
Vim Script
3
star
21

emacs-so-long

A mirror of the so-long package (until it's on ELPA)
Emacs Lisp
3
star
22

emacs-flycheck-moonscript

Flycheck support for moonscript-mode
Emacs Lisp
2
star
23

trex-runner-bot-js

A bot for Trex Runner on the Chrome offline page.
JavaScript
1
star
24

.github

Default community health files
1
star
25

docker-nginx-dev

Development nginx image for Docker
Nginx
1
star