module: global & core -> global/*
This commit is contained in:
parent
68f344acf0
commit
1f0035cddd
6 changed files with 171 additions and 73 deletions
|
@ -119,7 +119,6 @@
|
||||||
suites = with profiles; self.lib.flattenSetList
|
suites = with profiles; self.lib.flattenSetList
|
||||||
rec {
|
rec {
|
||||||
base = [
|
base = [
|
||||||
core
|
|
||||||
(with users; [ root infinidoge ])
|
(with users; [ root infinidoge ])
|
||||||
];
|
];
|
||||||
graphic = base ++ [ graphical.qtile ];
|
graphic = base ++ [ graphical.qtile ];
|
||||||
|
|
26
modules/global/general.nix
Normal file
26
modules/global/general.nix
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
bud.enable = true;
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
# Enable dconf for programs that need it
|
||||||
|
dconf.enable = true;
|
||||||
|
|
||||||
|
udevil.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
# Enable Early Out of Memory service
|
||||||
|
earlyoom.enable = true;
|
||||||
|
|
||||||
|
# Ensure certain necessary directories always exist
|
||||||
|
ensure.directories = [ "/mnt" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
system.activationScripts = {
|
||||||
|
# FIX: command-not-found database doesn't exist normally
|
||||||
|
channels-update.text = ''
|
||||||
|
${pkgs.nix}/bin/nix-channel --update
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
48
modules/global/packages.nix
Normal file
48
modules/global/packages.nix
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
{ pkgs, lib, ... }:
|
||||||
|
{
|
||||||
|
# Use the latest Linux kernel
|
||||||
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
|
||||||
|
# Remove all default packages
|
||||||
|
environment.defaultPackages = lib.mkForce [ ];
|
||||||
|
|
||||||
|
# Packages wanted everywhere
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
bat
|
||||||
|
binutils
|
||||||
|
btrfs-progs
|
||||||
|
coreutils-doge
|
||||||
|
curl
|
||||||
|
direnv
|
||||||
|
dnsutils
|
||||||
|
dosfstools
|
||||||
|
exfat # Windows drives
|
||||||
|
fd
|
||||||
|
ffmpeg
|
||||||
|
git
|
||||||
|
htop
|
||||||
|
iputils
|
||||||
|
jq
|
||||||
|
lynx
|
||||||
|
manix
|
||||||
|
moreutils
|
||||||
|
neofetch
|
||||||
|
nmap
|
||||||
|
ntfs3g # Windows drives
|
||||||
|
parted
|
||||||
|
ripgrep
|
||||||
|
rsync
|
||||||
|
skim
|
||||||
|
sshfs
|
||||||
|
strace
|
||||||
|
tealdeer
|
||||||
|
tree
|
||||||
|
unixtools.whereis
|
||||||
|
unzip
|
||||||
|
usbutils
|
||||||
|
utillinux
|
||||||
|
vim
|
||||||
|
wget
|
||||||
|
whois
|
||||||
|
];
|
||||||
|
}
|
44
modules/global/security.nix
Normal file
44
modules/global/security.nix
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
|
with lib;
|
||||||
|
{
|
||||||
|
# Security settings based on https://github.com/hlissner/dotfiles/blob/master/modules/security.nix
|
||||||
|
security = {
|
||||||
|
sudo.extraConfig = ''
|
||||||
|
Defaults lecture=never
|
||||||
|
'';
|
||||||
|
acme.acceptTerms = true;
|
||||||
|
|
||||||
|
pam.enableSSHAgentAuth = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
# Make tmp volatile, using tmpfs is speedy on SSD systems
|
||||||
|
# Redundant on opt-in state systems
|
||||||
|
# tmpOnTmpfs = mkDefault true;
|
||||||
|
# cleanTmpDir = mkDefault (!config.boot.tmpOnTmpfs);
|
||||||
|
};
|
||||||
|
|
||||||
|
# Allow non-root users to allow other users to access mount point
|
||||||
|
programs.fuse.userAllowOther = mkDefault true;
|
||||||
|
|
||||||
|
# For rage encryption, all hosts need a ssh key pair
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = mkDefault true;
|
||||||
|
forwardX11 = mkDefault false;
|
||||||
|
hostKeys = mkDefault [
|
||||||
|
{
|
||||||
|
bits = 4096;
|
||||||
|
openSSHFormat = true;
|
||||||
|
path = "/etc/ssh/ssh_host_rsa_key";
|
||||||
|
rounds = 100;
|
||||||
|
type = "rsa";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
path = "/etc/ssh/ssh_host_ed25519_key";
|
||||||
|
rounds = 100;
|
||||||
|
type = "ed25519";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
53
modules/global/shell.nix
Normal file
53
modules/global/shell.nix
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
|
let
|
||||||
|
ifSudo = lib.mkIf config.security.sudo.enable;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
environment.shellAliases = {
|
||||||
|
# quick cd
|
||||||
|
".." = "cd ..";
|
||||||
|
"..." = "cd ../..";
|
||||||
|
"...." = "cd ../../..";
|
||||||
|
"....." = "cd ../../../..";
|
||||||
|
|
||||||
|
# git
|
||||||
|
g = "git";
|
||||||
|
|
||||||
|
gcd = "cd $(git root)";
|
||||||
|
|
||||||
|
# grep
|
||||||
|
grep = "rg";
|
||||||
|
gi = "grep -i";
|
||||||
|
|
||||||
|
# internet ip
|
||||||
|
myip = "curl ipecho.net/plain";
|
||||||
|
|
||||||
|
# sudo
|
||||||
|
s = ifSudo "sudo -E ";
|
||||||
|
si = ifSudo "sudo -i";
|
||||||
|
se = ifSudo "sudoedit";
|
||||||
|
|
||||||
|
# systemd
|
||||||
|
ctl = "systemctl";
|
||||||
|
stl = ifSudo "s systemctl";
|
||||||
|
utl = "systemctl --user";
|
||||||
|
ut = "systemctl --user start";
|
||||||
|
un = "systemctl --user stop";
|
||||||
|
up = ifSudo "s systemctl start";
|
||||||
|
dn = ifSudo "s systemctl stop";
|
||||||
|
jtl = "journalctl";
|
||||||
|
|
||||||
|
ll = "ls -al";
|
||||||
|
dd = "dd status=progress";
|
||||||
|
cat = "bat --paging=never";
|
||||||
|
|
||||||
|
lsdisk = "lsblk -o name,size,mountpoints,fstype,label,uuid,fsavail,fsuse%";
|
||||||
|
|
||||||
|
mnt = "s mount";
|
||||||
|
umnt = "s umount";
|
||||||
|
|
||||||
|
mktmp = "cd $(mktemp -d)";
|
||||||
|
|
||||||
|
edit = "$EDITOR";
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,72 +0,0 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
with lib;
|
|
||||||
with lib.hlissner;
|
|
||||||
{
|
|
||||||
# Security settings based on https://github.com/hlissner/dotfiles/blob/master/modules/security.nix
|
|
||||||
security = {
|
|
||||||
sudo.extraConfig = ''
|
|
||||||
Defaults lecture=never
|
|
||||||
'';
|
|
||||||
acme.acceptTerms = true;
|
|
||||||
|
|
||||||
pam = {
|
|
||||||
enableSSHAgentAuth = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Remove all default packages
|
|
||||||
environment.defaultPackages = mkForce [ ];
|
|
||||||
|
|
||||||
boot = {
|
|
||||||
# Make tmp volatile, using tmpfs is speedy on SSD systems
|
|
||||||
tmpOnTmpfs = mkDefault true;
|
|
||||||
cleanTmpDir = mkDefault (!config.boot.tmpOnTmpfs);
|
|
||||||
|
|
||||||
# Use the latest Linux kernel
|
|
||||||
kernelPackages = pkgs.linuxPackages_latest;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
# Allow non-root users to allow other users to access mount point
|
|
||||||
fuse.userAllowOther = mkDefault true;
|
|
||||||
|
|
||||||
# Enable dconf for programs that need it
|
|
||||||
dconf.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
bud.enable = lib.mkDefault true;
|
|
||||||
|
|
||||||
services = {
|
|
||||||
# Ensure certain necessary directories always exist
|
|
||||||
ensure.directories = [ "/mnt" ];
|
|
||||||
|
|
||||||
# Enable Early Out of Memory service
|
|
||||||
earlyoom.enable = true;
|
|
||||||
|
|
||||||
# For rage encryption, all hosts need a ssh key pair
|
|
||||||
openssh = {
|
|
||||||
enable = true;
|
|
||||||
openFirewall = lib.mkDefault true;
|
|
||||||
forwardX11 = lib.mkDefault false;
|
|
||||||
hostKeys = lib.mkDefault [
|
|
||||||
{
|
|
||||||
bits = 4096;
|
|
||||||
openSSHFormat = true;
|
|
||||||
path = "/etc/ssh/ssh_host_rsa_key";
|
|
||||||
rounds = 100;
|
|
||||||
type = "rsa";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
path = "/etc/ssh/ssh_host_ed25519_key";
|
|
||||||
rounds = 100;
|
|
||||||
type = "ed25519";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# FIX: command-not-found database doesn't exist normally
|
|
||||||
system.activationScripts.channels-update.text = ''
|
|
||||||
${pkgs.nix}/bin/nix-channel --update
|
|
||||||
'';
|
|
||||||
}
|
|
Loading…
Add table
Add a link
Reference in a new issue