diff --git a/machines/snarfblat-nix/configuration.nix b/machines/snarfblat-nix/configuration.nix new file mode 100644 index 0000000..900400b --- /dev/null +++ b/machines/snarfblat-nix/configuration.nix @@ -0,0 +1,113 @@ +# Edit this configuration file to define what should be installed on +# your system. Help is available in the configuration.nix(5) man page, on +# https://search.nixos.org/options and in the NixOS manual (`nixos-help`). + +# NixOS-WSL specific options are documented on the NixOS-WSL repository: +# https://github.com/nix-community/NixOS-WSL + +{ config, lib, pkgs, ... }: + +{ + imports = [ + # include NixOS-WSL modules + + ]; + + wsl.enable = true; + wsl.defaultUser = "nixos"; + networking.hostName = "snarfblat-nix"; + + nix.gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 30d"; + }; + + nixpkgs.config.allowUnfree = true; + nix.settings.experimental-features = ["nix-command" "flakes" ]; + + services.netbird.enable = true; + + environment.systemPackages = with pkgs; [ + fishPlugins.tide + neovim + wget + curl + git + htop + btop + dig + eza + inetutils + mosh + traceroute + firefox + virt-viewer + netbird-ui + grim + slurp + wl-clipboard + mako + ]; + + environment.shellAliases = { + vi = "nvim"; + vim = "nvim"; + ll = "eza -alo --group-directories-first"; + tree = "eza -lT"; + }; + + programs.direnv.enable = true; + users.defaultUserShell = pkgs.fish; + + programs.tmux = { + enable = true; + shortcut = "a"; + extraConfig = '' + set-option -g mouse on + bind | split-window -h -c "#{pane_current_path}" + bind - split-window -v -c "#{pane_current_path}" + bind c new-window -c "#{pane_current_path}" + ''; + }; + + services.gnome.gnome-keyring.enable = true; + + programs.sway = { + enable = true; + wrapperFeatures.gtk = true; + }; + + programs.waybar.enable = true; + + programs.fish = { + enable = true; + shellAbbrs = { + garbage = "sudo nix-collect-garbage --delete-older-than 7d"; + rbs = "sudo nixos-rebuild switch"; + rebuild-all = "sudo nix-collect-garbage --delete-older-than 7d && sudo nixos-rebuild switch"; + }; + }; + + 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"; + }; + + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It's perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "24.05"; # Did you read the comment? +}