4 changed files with 91 additions and 50 deletions
@ -0,0 +1,37 @@ |
|||
# Nora's Configs |
|||
|
|||
The evolution of `nora/dotfiles`; Nix configs under `home-manager` deployed with `morph`. |
|||
|
|||
## Layout |
|||
|
|||
These files are "organized" as follows: |
|||
|
|||
- `common/` is the directory where most of the configuration happens. |
|||
These are the files used in more than one host configuration, now or later. |
|||
- `home_manager/` includes all `home-manager` configs, including packagesets. |
|||
For example, `home_manager/rust.nix` includes packages and options related to Rust development. |
|||
- `common.nix` contains all configurations common across all `home-manager` deployments. |
|||
For example, GPG agent configurations and Vim settings. |
|||
- `users/` contains basic user definitions. |
|||
- `default.nix` is the core file defining the default nix configuration for all machines. |
|||
- `common.nix` contains all the common NixOS definitions that all machines will need. |
|||
- `files/` contains files used by `home-manager` to deploy anything not covered by existing `home-manager` options. |
|||
- `hosts/` defines host-specific configurations for NixOS and `home-manager`. |
|||
- `calembel/` is my Thelio (thelio-r1) |
|||
- `configuration.nix` is the core NixOS configuration file, copied from the installed system |
|||
- `hardware-configuration.nix` is the hardware config, imported in `configuration.nix`. |
|||
- `home.nix` is the `home-manager` config specifically for `calembel`. |
|||
- `ops/` contains all the information needed to deploy using `morph`. |
|||
|
|||
The import structure goes as follows: |
|||
|
|||
- The `ops/<network>/network.nix` file defining the hosts in a network imports |
|||
- `common/default.nix` for all-machine defaults, which imports |
|||
- `common/common.nix` for common setup, including fonts, nixpkgs setup, and locale, which imports |
|||
- `common/users/*` which sets up usernames, shells, SSH keys, and groups for users. |
|||
- the host's `hosts/<host>/configuration.nix` file, which configures NixOS on the host and imports |
|||
- the hosts's `hosts/<host>/hardware-configuration.nix` file, which configures partitions and drivers. |
|||
- the host's `hosts/<host>/home.nix` file, which configures `home-manager` for that host, by importing |
|||
- `common/home_manager/common.nix`, which configures `home-manager` for all machines |
|||
- various `common/home_manager/<packageset>.nix`, which configures a specific use case, |
|||
like graphical programs or Rust development. |
@ -1,6 +0,0 @@ |
|||
{ pkgs, ...}: |
|||
{ |
|||
users.nora.packages = with pkgs; [ |
|||
wally-cli # flash my ergodox |
|||
]; |
|||
} |
@ -1,44 +0,0 @@ |
|||
{ pkgs, ...}: |
|||
{ |
|||
packageOverrides = pkgs: with pkgs; rec { |
|||
|
|||
# Machines |
|||
Calembel = pkgs.buildEnv { |
|||
name = "calembel"; |
|||
paths = [ Terminal X Graphical Audio Rust ]; |
|||
}; |
|||
|
|||
X = pkgs.buildEnv { |
|||
name = "x-tools"; |
|||
paths = [ |
|||
xorg.xkill |
|||
xorg.xev |
|||
]; |
|||
}; |
|||
|
|||
Graphical = pkgs.buildEnv { |
|||
name = "graphical"; |
|||
paths = [ |
|||
element-desktop |
|||
discord |
|||
tdesktop |
|||
mumble |
|||
]; |
|||
}; |
|||
|
|||
Audio = pkgs.buildEnv { |
|||
name = "audio"; |
|||
paths = [ pulseeffects-pw pulsemixer audacity picard ]; |
|||
}; |
|||
|
|||
Rust = pkgs.buildEnv { |
|||
name = "rust"; |
|||
paths = [ evcxr rustup ]; |
|||
}; |
|||
|
|||
# Bugged; "found a set where a list was expected", whatever that means. |
|||
Python = pkgs.buildEnv { |
|||
name = "python"; |
|||
paths = (python39.withPackages (ps: with ps; [ pylint pyflakes flake8 pygments ])); |
|||
}; |
|||
};} |
@ -0,0 +1,54 @@ |
|||
set encoding=utf-8 |
|||
|
|||
" Leader |
|||
let mapleader=" " |
|||
|
|||
" Switch syntax highlighting on, when the terminal has colors |
|||
" Also switch on highlighting the last used search pattern. |
|||
if (&t_Co > 2 || has("gui_running")) && !exists("syntax_on") |
|||
syntax on |
|||
endif |
|||
|
|||
set history=50 |
|||
set backspace=2 " backspace deletes in insert mode |
|||
set nobackup |
|||
set nowritebackup |
|||
set noswapfile " don't write .swp files |
|||
set ruler " show cursor position all the time |
|||
set showcmd " display incomplete commands |
|||
set incsearch " incremental searching |
|||
set laststatus=2 " always show status |
|||
set autowrite " always write before commands |
|||
set nomodeline " disable modelines completely |
|||
set modelines=0 |
|||
|
|||
filetype plugin indent on |
|||
|
|||
" Soft tabs with two spaces |
|||
set tabstop=2 |
|||
set shiftwidth=2 |
|||
set shiftround |
|||
set expandtab |
|||
|
|||
" Display extra whitespace |
|||
set list listchars=tab:»·,trail:·,nbsp:· |
|||
|
|||
" Use one space, not two, after punctuation. |
|||
set nojoinspaces |
|||
|
|||
" Ripgrep configuration, if available |
|||
" |
|||
" Use The Silver Searcher https://github.com/ggreer/the_silver_searcher |
|||
if executable('rg') |
|||
" Use Ripgrep over Grep |
|||
set grepprg="rg --no-heading --color never" |
|||
|
|||
" Use rg in fzf for listing files. Lightning fast and respects .gitignore |
|||
let $FZF_DEFAULT_COMMAND = 'rg --files-with-matches -F --color never --hidden -g ""' |
|||
|
|||
if !exists(":Rg") |
|||
command -nargs=+ -complete=file -bar Rg silent! grep! <args>|cwindow|redraw! |
|||
nnoremap \ :Rg<SPACE> |
|||
endif |
|||
endif |
|||
|
Loading…
Reference in new issue