Files
dotfiles/config/shared.nix

81 lines
1.9 KiB
Nix

{ config, pkgs, inputs, ... }: {
# Enable experimental nix features.
nix.settings.experimental-features = [ "nix-command" "flakes" ];
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# General setup
time.timeZone = "America/New_York";
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
# Change default shell to zsh.
users.defaultUserShell = pkgs.zsh;
programs.zsh = {
enable = true;
autosuggestions.enable = true;
syntaxHighlighting.enable = true;
};
# List packages installed in system profile.
environment.systemPackages = with pkgs; [
git
vim
screen
killall
# Create a "fhs" package for running binaries
(let base = pkgs.appimageTools.defaultFhsEnvArgs; in
pkgs.buildFHSEnv (base // {
name = "fhs";
targetPkgs = pkgs:
(base.targetPkgs pkgs) ++ (with pkgs; [
pkg-config
libxml2
ncurses
]
);
profile = "export FHS=1";
runScript = "bash";
extraOutputsToInstall = ["dev"];
}))
];
# Setup Pinentry
programs.gnupg.agent = {
enable = true;
pinentryPackage = pkgs.pinentry-gtk2;
enableSSHSupport = true;
};
# Keyring Setup
services.gnome.gnome-keyring.enable = true;
security.pam.services.login.enableGnomeKeyring = true;
# Enable services.
services.openssh.enable = true;
services.tailscale.enable = true;
# Enable Thunar
programs.thunar.enable = true;
services.gvfs.enable = true;
services.tumbler.enable = true;
# Enable docker service.
virtualisation.docker.enable = true;
system.stateVersion = "24.05";
}