146 lines
3.9 KiB
Nix
146 lines
3.9 KiB
Nix
{ config, lib, pkgs, ... }:
|
||
{
|
||
imports = [ ./overlays/packages.nix ];
|
||
nixpkgs.config.allowUnfree = true;
|
||
|
||
nix.settings.extra-experimental-features = "nix-command flakes";
|
||
nix.settings.trusted-users = [ "audrey" ];
|
||
nix.settings.max-jobs = 1;
|
||
nix.settings.cores = 0;
|
||
nix.settings.secret-key-files = [ "/var/lib/nix/binary-cache-key" ];
|
||
|
||
# Select internationalisation properties.
|
||
i18n.defaultLocale = "en_US.UTF-8";
|
||
|
||
# Configure keymap in X11
|
||
services.xserver.xkb.layout = "us";
|
||
services.xserver.xkb.options = "caps:escape";
|
||
|
||
users.defaultUserShell = pkgs.zsh;
|
||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||
users.users.audrey = {
|
||
uid = 1000;
|
||
description = "Audrey Dutcher";
|
||
isNormalUser = true;
|
||
extraGroups = [ "wheel" "docker" ];
|
||
openssh.authorizedKeys.keyFiles = [ ./dotfiles/authorized_keys ];
|
||
};
|
||
|
||
environment.systemPackages = with pkgs; [
|
||
wget
|
||
ripgrep
|
||
fd
|
||
curl
|
||
btop
|
||
nixfmt-rfc-style
|
||
file
|
||
stdenv.cc
|
||
stdenv.cc.bintools # bins but not manpages included in stdenv.cc
|
||
patchelf
|
||
meld
|
||
|
||
(python3.withPackages (p: with p; [
|
||
virtualenvwrapper
|
||
pylint
|
||
pytest
|
||
ipdb
|
||
ipython
|
||
]))
|
||
pre-commit
|
||
];
|
||
|
||
programs = {
|
||
zsh = {
|
||
enable = true;
|
||
enableCompletion = true;
|
||
syntaxHighlighting.enable = true;
|
||
vteIntegration = true;
|
||
enableLsColors = true;
|
||
histSize = 10000;
|
||
promptInit = ''
|
||
. ${pkgs.python3Packages.virtualenvwrapper}/bin/virtualenvwrapper.sh
|
||
'' + builtins.readFile ./dotfiles/zsh-prompt.sh;
|
||
shellInit = builtins.readFile ./dotfiles/zsh-init.sh;
|
||
shellAliases = {
|
||
nixos-edit = "(cd ~/nixos-config && vim configuration.nix)";
|
||
nixos-apply = "sudo nixos-rebuild switch --flake ~/nixos-config#$HOST";
|
||
ls = "ls --group-directories-first --color=auto";
|
||
ll = "ls -lh";
|
||
lh = "ll -ab";
|
||
l = "ls -ab";
|
||
grep = "grep --color=auto";
|
||
egrep = "egrep --color=auto";
|
||
objdump = "objdump -M intel";
|
||
gits = "git status";
|
||
pag = "ps aux | grep -v grep | grep -i";
|
||
hd = "hexdump -C";
|
||
man = "MAN_POSIXLY_CORRECT=1 man";
|
||
nose = "pytest -v --capture=no --pdbcls=IPython.terminal.debugger:TerminalPdb";
|
||
mkvirtualenv = "mkvirtualenv -r /etc/venv-default.txt";
|
||
};
|
||
};
|
||
tmux = {
|
||
enable = true;
|
||
extraConfig = builtins.readFile ./dotfiles/tmux.conf;
|
||
};
|
||
direnv.enable = true;
|
||
htop.enable = true;
|
||
git = {
|
||
enable = true;
|
||
lfs.enable = true;
|
||
config = {
|
||
user.email = "audrey@rhelmot.io";
|
||
user.name = "Audrey Dutcher";
|
||
core.editor = "nvim";
|
||
init.defaultBranch = "main";
|
||
blame.markUnblamableLines = true;
|
||
merge.tool = "meld";
|
||
credential.helper = "store";
|
||
url."ssh://git@".insteadOf = "git://";
|
||
};
|
||
};
|
||
neovim = {
|
||
enable = true;
|
||
defaultEditor = true;
|
||
vimAlias = true;
|
||
viAlias = true;
|
||
configure = {
|
||
# lmao
|
||
customRC = ''
|
||
${builtins.readFile ./dotfiles/nvim-init.vim}
|
||
lua << EOF
|
||
${builtins.readFile ./dotfiles/nvim-init.lua}
|
||
EOF
|
||
'';
|
||
packages.myVimPackage = with pkgs.vimPlugins; {
|
||
start = [
|
||
rust-vim
|
||
vim-tmux-navigator
|
||
popup-nvim
|
||
vim-sleuth
|
||
nvim-lspconfig
|
||
rust-tools-nvim
|
||
nvim-lint
|
||
nvim-cmp
|
||
cmp-nvim-lsp
|
||
lsp-status-nvim
|
||
telescope-nvim
|
||
nvim-treesitter.withAllGrammars
|
||
sweetie-nvim
|
||
vim-nix
|
||
csharpls-extended-lsp-nvim
|
||
];
|
||
opt = [];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
|
||
environment.etc."gdb/gdbinit".source = ./dotfiles/gdb-init.gdb;
|
||
environment.etc."venv-default.txt".source = ./dotfiles/venv-default.txt;
|
||
|
||
# Enable the OpenSSH daemon.
|
||
services.openssh.enable = true;
|
||
}
|
||
|