nixconf/modules/nixos/core/default.nix

115 lines
2.2 KiB
Nix

{
config,
pkgs,
inputs,
...
}:
{
imports = [
./users.nix
./nebula.nix
];
i18n.defaultLocale = "en_US.UTF-8";
# Inserts flake.nix shim on install.
environment.etc."nixos/flake.nix" = {
source = "${inputs.self}/templates/shim/flake.nix";
mode = "0440";
};
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
backupFileExtension = "hm-bak";
};
# Default Programs
programs.neovim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
configure = {
packages.myVimPackage = with pkgs.vimPlugins; {
start = [ vim-nix vim-lastplace vim-airline ];
opt = [];
};
customRC = ''
" your custom vimrc
set nocompatible
set backspace=indent,eol,start
" Turn on syntax highlighting by default
syntax on
set mouse=a
set number
" ...
'';
};
};
programs.tmux = {
enable = true;
escapeTime = 0;
clock24 = true;
extraConfig = ''
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
unbind '"'
unbind %
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
'';
};
environment.systemPackages = with pkgs; [
nvd
nixpkgs-fmt
# nix-output-monitor
coreutils
mime-types
file
usbutils
pciutils
gitFull
git-crypt
];
nix = let
users = [ "root" ] ++ config.gg.users.admins;
in
{
gc = {
automatic = true;
options = "--delete-older-than 30d";
dates = "weekly";
};
settings = {
allowed-users =[ "root" "@users" ];
auto-optimise-store = true;
experimental-features = [ "nix-command" "flakes" ];
http-connections = 50;
keep-derivations = true;
keep-outputs = true;
log-lines = 50;
trusted-users = users;
warn-dirty = false;
};
registry = {
nixpkgs.flake = inputs.nixpkgs;
nixconf.to = {
type = "git";
url = "https://git.solarpunk.moe/geekygays/nixconf";
};
};
nixPath = [
"nixpkgs=flake:nixpkgs"
"nixconf=flake:nixconf"
];
};
}