Add minimal.nix
This commit is contained in:
parent
05ac8d20df
commit
018cf09776
255
nixos/minimal.nix
Normal file
255
nixos/minimal.nix
Normal file
@ -0,0 +1,255 @@
|
||||
{ config, pkgs, options, ... }:
|
||||
{
|
||||
|
||||
nixpkgs.overlays = [
|
||||
(import ./overlays.nix)
|
||||
(import ../dotfiles/config/taffybar/taffybar/overlay.nix)
|
||||
(import ../dotfiles/config/xmonad/overlay.nix)
|
||||
(import ../dotfiles/config/taffybar/overlay.nix)
|
||||
];
|
||||
|
||||
# Allow all the things
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# Disabling these waits disables the stuck on boot up issue
|
||||
systemd.services.systemd-udev-settle.enable = false;
|
||||
systemd.services.NetworkManager-wait-online.enable = false;
|
||||
networking.firewall.enable = false;
|
||||
|
||||
# Security
|
||||
security.sudo.wheelNeedsPassword = false;
|
||||
programs.gnupg.agent = { enable = true; enableSSHSupport = true; };
|
||||
services.pcscd.enable = true;
|
||||
|
||||
# Networking
|
||||
environment.etc."ipsec.secrets".text = ''
|
||||
include ipsec.d/ipsec.nm-l2tp.secrets
|
||||
'';
|
||||
networking.networkmanager = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# Audio
|
||||
sound.enable = true;
|
||||
hardware.pulseaudio.enable = true;
|
||||
|
||||
# Video
|
||||
hardware.opengl.driSupport32Bit = true;
|
||||
|
||||
# Bluetooth
|
||||
hardware.bluetooth.enable = true;
|
||||
services.blueman.enable = true;
|
||||
|
||||
# Keyboard
|
||||
console.keyMap = "us";
|
||||
|
||||
fonts = {
|
||||
fonts = with pkgs; [
|
||||
dejavu_fonts
|
||||
emojione
|
||||
fira-mono
|
||||
font-awesome-ttf
|
||||
noto-fonts-emoji
|
||||
roboto
|
||||
source-code-pro
|
||||
source-sans-pro
|
||||
source-serif-pro
|
||||
# twemoji-color-font
|
||||
];
|
||||
fontconfig = {
|
||||
allowBitmaps = true;
|
||||
useEmbeddedBitmaps = true;
|
||||
defaultFonts = {
|
||||
monospace = [ "Source Code Pro" ];
|
||||
sansSerif = [ "Roboto" ];
|
||||
serif = [ "Source Serif Pro" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
|
||||
# Applications
|
||||
alacritty
|
||||
emacs
|
||||
firefox
|
||||
google-chrome
|
||||
yubikey-manager
|
||||
|
||||
|
||||
# Haskell Desktop
|
||||
haskellPackages.imalison-xmonad
|
||||
haskellPackages.imalison-taffybar
|
||||
# notifications-tray-icon
|
||||
haskellPackages.status-notifier-item
|
||||
haskellPackages.xmonad
|
||||
haskellPackages.dbus-hslogger
|
||||
|
||||
# Desktop
|
||||
autorandr
|
||||
libnotify
|
||||
lxqt.lxqt-powermanagement
|
||||
networkmanagerapplet
|
||||
notify-osd-customizable
|
||||
pasystray
|
||||
picom
|
||||
pinentry
|
||||
pommed_light
|
||||
rofi
|
||||
rofi-pass
|
||||
rofi-systemd
|
||||
udiskie
|
||||
volnoti
|
||||
|
||||
# xorg
|
||||
wmctrl
|
||||
xclip
|
||||
xdotool
|
||||
xorg.xev
|
||||
xorg.xkbcomp
|
||||
xorg.xwininfo
|
||||
xsettingsd
|
||||
|
||||
|
||||
# Haskell
|
||||
cabal-install
|
||||
cabal2nix
|
||||
ghc
|
||||
# stack
|
||||
haskellPackages.hpack
|
||||
haskellPackages.hasktags
|
||||
haskellPackages.hoogle
|
||||
|
||||
# Rust
|
||||
cargo
|
||||
rustc
|
||||
rustfmt
|
||||
|
||||
# Tools
|
||||
automake
|
||||
bind
|
||||
binutils
|
||||
cmake
|
||||
dex
|
||||
direnv
|
||||
dpkg
|
||||
fd
|
||||
file
|
||||
gcc
|
||||
gdb
|
||||
gitAndTools.git-crypt
|
||||
gitAndTools.git-extras
|
||||
gitAndTools.hub
|
||||
gitFull
|
||||
glxinfo
|
||||
gnumake
|
||||
gnupg
|
||||
gparted
|
||||
htop
|
||||
inetutils
|
||||
inotify-tools
|
||||
ispell
|
||||
jq
|
||||
libtool
|
||||
lsof
|
||||
ncdu
|
||||
openvpn
|
||||
parallel
|
||||
pass
|
||||
patchelf
|
||||
pciutils
|
||||
prometheus
|
||||
pscircle
|
||||
pstree
|
||||
qt5.qttools
|
||||
rcm
|
||||
scrot
|
||||
silver-searcher
|
||||
stow
|
||||
swig
|
||||
tmux
|
||||
tzupdate
|
||||
unzip
|
||||
usbutils
|
||||
valgrind
|
||||
wget
|
||||
yubikey-manager
|
||||
|
||||
# Nix
|
||||
nix-prefetch-git
|
||||
cachix
|
||||
|
||||
# Miscellaneous
|
||||
android-udev-rules
|
||||
librsvg
|
||||
];
|
||||
|
||||
programs.zsh.enable = true;
|
||||
|
||||
# TODO: Add a comment explaining what this does.
|
||||
services.gnome.at-spi2-core.enable = true;
|
||||
|
||||
services.xserver = {
|
||||
exportConfiguration = true;
|
||||
enable = true;
|
||||
layout = "us";
|
||||
desktopManager = {
|
||||
plasma5.enable = true;
|
||||
};
|
||||
windowManager = {
|
||||
session = [
|
||||
{
|
||||
name = "xmonad";
|
||||
start = ''
|
||||
/usr/bin/env imalison-xmonad &
|
||||
waitPID=$!
|
||||
'';
|
||||
}
|
||||
];
|
||||
};
|
||||
displayManager = {
|
||||
sddm = {
|
||||
enable = true;
|
||||
};
|
||||
sessionCommands = ''
|
||||
systemctl --user import-environment GDK_PIXBUF_MODULE_FILE DBUS_SESSION_BUS_ADDRESS PATH
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
users.extraUsers = let
|
||||
extraGroups = [
|
||||
"audio"
|
||||
"adbusers"
|
||||
"disk"
|
||||
"docker"
|
||||
"networkmanager"
|
||||
"plugdev"
|
||||
"systemd-journal"
|
||||
"video"
|
||||
"wheel"
|
||||
];
|
||||
userDefaults = {
|
||||
inherit extraGroups;
|
||||
group = "users";
|
||||
isNormalUser = true;
|
||||
createHome = true;
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
in {
|
||||
imalison = userDefaults // {
|
||||
name = "imalison";
|
||||
uid = 1000;
|
||||
home = "/home/imalison";
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
kat = userDefaults // {
|
||||
name = "kat";
|
||||
uid = 1001;
|
||||
home = "/home/kat";
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
};
|
||||
|
||||
nix.trustedUsers = ["imalison" "kat"];
|
||||
}
|
Loading…
Reference in New Issue
Block a user