meta: Add configuration.nix

These are my first steps towards using Nix and NixOS to declaratively
configure a reasonably good development environment. I am aware that
there are various paradigms that include using home manager and/or
flakes, however I am still exploring with a simple configuration.nix.
This commit is contained in:
Donovan Glover 2023-05-03 01:19:19 -04:00
parent 665a9d6099
commit abd2d1a4cf
No known key found for this signature in database
GPG Key ID: EA7408A77AE1BE65

78
configuration.nix Normal file
View File

@ -0,0 +1,78 @@
{ config, pkgs, lib, ... }:
{
imports = [./hardware-configuration.nix];
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
networking.hostName = "nixos";
networking.networkmanager.enable = true;
programs.fish.enable = true;
users.defaultUserShell = pkgs.fish;
environment.shells = with pkgs; [ fish ];
time.timeZone = "America/New_York";
i18n.defaultLocale = "en_US.UTF-8";
i18n.supportedLocales = ["en_US.UTF-8/UTF-8" "ja_JP.UTF-8/UTF-8" "fr_FR.UTF-8/UTF-8"];
services.xserver.enable = true;
services.xserver.desktopManager.gnome.enable = true;
services.xserver.displayManager.gdm.enable = true;
programs.thunar.enable = true;
nix.package = pkgs.nixFlakes;
nix.settings.experimental-features = ["nix-command" "flakes"];
environment.systemPackages = with pkgs; [
neovim
tmux
fish
wget
librewolf
kitty
mullvad-vpn
mullvad-browser
papirus-icon-theme
alacritty
pywal
mpv
neofetch
anki
git
home-manager
hyprland
htop
logseq
wl-clipboard
];
fonts.enableDefaultFonts = true;
fonts.fonts = with pkgs; [
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
hack-font
];
fonts.fontconfig = {
defaultFonts = {
serif = ["Noto Serif CJK JP" "Noto Serif"];
sansSerif = ["Noto Sans CJK JP" "Noto Sans"];
monospace = ["Noto Mono CJK JP" "Noto Mono"];
};
};
fonts.fontconfig.hinting.style = "hintfull";
i18n.inputMethod = {
enabled = "ibus";
ibus.engines = with pkgs.ibus-engines; [ anthy mozc ];
};
services.gnome.core-utilities.enable = false;
services.mullvad-vpn.enable = true;
system.stateVersion = "22.11";
}