Browse Source

Reorganization and readme

main
Leonora Tindall 2 years ago
parent
commit
cea4d087ef
  1. 37
      README.md
  2. 6
      common/packagesets/desktop.nix
  3. 44
      common/packagesets/packages.nix
  4. 54
      files/vimrc

37
README.md

@ -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.

6
common/packagesets/desktop.nix

@ -1,6 +0,0 @@
{ pkgs, ...}:
{
users.nora.packages = with pkgs; [
wally-cli # flash my ergodox
];
}

44
common/packagesets/packages.nix

@ -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 ]));
};
};}

54
files/vimrc

@ -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…
Cancel
Save