From 5aae161f96695944010bda91b3e63b00056306fd Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Sun, 11 Dec 2022 21:23:21 +0100 Subject: Initial commit Signed-off-by: TheArcaneBrony --- .gitignore | 1 + flake.nix | 30 ++++++++ host/Rory-discordbots/configuration.nix | 116 +++++++++++++++++++++++++++++++ modules/base.nix | 78 +++++++++++++++++++++ modules/packages/vim.nix | 22 ++++++ modules/users.nix | 13 ++++ old/configuration.nix | 117 ++++++++++++++++++++++++++++++++ 7 files changed, 377 insertions(+) create mode 100644 .gitignore create mode 100644 flake.nix create mode 100644 host/Rory-discordbots/configuration.nix create mode 100644 modules/base.nix create mode 100644 modules/packages/vim.nix create mode 100644 modules/users.nix create mode 100644 old/configuration.nix diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4c7f2b9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +hardware-configuration.nix \ No newline at end of file diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..0dd50e0 --- /dev/null +++ b/flake.nix @@ -0,0 +1,30 @@ +# This can be built with nixos-rebuild --flake .#myhost build +{ + description = "Rory's services flake"; + + inputs = { + nixpkgs = { + # Using the nixos-unstable branch specifically, which is the + # closest you can get to following the channel with flakes. + url = "github:NixOS/nixpkgs/nixos-unstable"; + }; + }; + + # Outputs can be anything, but the wiki + some commands define their own + # specific keys. Wiki page: https://nixos.wiki/wiki/Flakes#Output_schema + outputs = { self, nixpkgs }: { + # nixosConfigurations is the key that nixos-rebuild looks for. + nixosConfigurations = { + Rory-discordbots = nixpkgs.lib.nixosSystem { + # A lot of times online you will see the use of flake-utils + a + # function which iterates over many possible systems. My system + # is x86_64-linux, so I'm only going to define that + system = "x86_64-linux"; + # Import our old system configuration.nix + modules = [ + ./host/Rory-discordbots/configuration.nix + ]; + }; + }; + }; +} \ No newline at end of file diff --git a/host/Rory-discordbots/configuration.nix b/host/Rory-discordbots/configuration.nix new file mode 100644 index 0000000..7252a9e --- /dev/null +++ b/host/Rory-discordbots/configuration.nix @@ -0,0 +1,116 @@ +{ config, pkgs, ... }: + +{ + imports = + [ + ../../../modules/packages/vim.nix + ]; + + boot = { + loader = { + grub = { + enable = true; + version = 2; + device = "/dev/sda"; # nodev for EFI only + + # EFI + efiSupport = false; + efiInstallAsRemovable = false; + }; + }; + }; + + networking = { + hostName = "RoryNix"; + networkmanager.enable = true; + wireless.enable = false; + + firewall = { + enable = false; + # allowedTCPPorts = [ ... ]; + # allowedUDPPorts = [ ... ]; + }; + }; + + time.timeZone = "Europe/Brussels"; + i18n.defaultLocale = "en_US.UTF-8"; + + services = { + xserver = { + enable = true; + videoDrivers = [ "intel" ]; + desktopManager.gnome.enable = true; + libinput.enable = true; + layout = "us"; + modules = [ pkgs.xorg.xf86videointel ]; + }; + gnome = { + + core-developer-tools.enable = false; + core-utilities.enable = false; + tracker-miners.enable = false; + tracker.enable = false; + }; + + printing.enable = false; + openssh = { + enable = true; + extraConfig = '' + MaxAuthTries 32 + ''; + }; + }; + security.sudo.wheelNeedsPassword = false; + nixpkgs.config.allowUnfree = true; + + sound.enable = true; + hardware.pulseaudio.enable = true; + + users.users.Rory = { + isNormalUser = true; + extraGroups = [ "wheel" ]; + packages = with pkgs; [ + #xterm + gnomeExtensions.vitals + gnomeExtensions.runcat + ]; + initialPassword = "password"; + }; + + environment.systemPackages = with pkgs; [ + wget + neofetch + lnav + pciutils + zsh + gnome-console + feh + git + lsd + #nerdfonts + #element-web + sshfs + cinnamon.nemo + firefox-bin + kitty.terminfo + glxinfo + #epiphany + # Various extensions... + # - Gnome + #gnomeExtensions.vitals + #gnomeExtensions.runcat + # - Dont work on gnome 43: + #gnomeExtensions.undecorate + #gnomeExtensions.inactivity + #gnomeExtensions.left-clock + # - Vim + vimPlugins.vim-nix + ]; + fonts.fonts = with pkgs; [ + (nerdfonts.override { fonts = [ "JetBrainsMono" ]; }) + ]; + + + system.stateVersion = "22.11"; # DO NOT EDIT! +} + diff --git a/modules/base.nix b/modules/base.nix new file mode 100644 index 0000000..8f2102b --- /dev/null +++ b/modules/base.nix @@ -0,0 +1,78 @@ +{ config, pkgs, ... }: + +{ + imports = + [ + ./hardware-configuration.nix + ./packages/vim.nix + ./users.nix + ]; + + boot = { + loader = { + grub = { + enable = true; + version = 2; + device = "/dev/sda"; # nodev for EFI only + + # EFI + efiSupport = false; + efiInstallAsRemovable = false; + }; + }; + }; + + networking = { + hostName = lib.mkDefault "Rory-nix-base"; + + firewall = { + enable = false; + # allowedTCPPorts = [ ... ]; + # allowedUDPPorts = [ ... ]; + }; + }; + + #time.timeZone = "Europe/Brussels"; + i18n.defaultLocale = "en_US.UTF-8"; + + services = { + openssh = { + enable = true; + #allow more logins in cases where i have many ssh keys on a system + extraConfig = '' + MaxAuthTries 32 + ''; + }; + }; + + security.sudo.wheelNeedsPassword = false; + nixpkgs.config.allowUnfree = true; + + sound.enable = true; + hardware.pulseaudio.enable = true; + + users.users.Rory = { + isNormalUser = true; + extraGroups = [ "wheel" ]; + packages = with pkgs; [ + ]; + initialPassword = "password"; + }; + + environment.systemPackages = with pkgs; [ + wget + neofetch + lnav + zsh + feh + git + lsd + #sshfs + kitty.terminfo + vimPlugins.vim-nix + ]; + + + system.stateVersion = "22.11"; # DO NOT EDIT! +} + diff --git a/modules/packages/vim.nix b/modules/packages/vim.nix new file mode 100644 index 0000000..3524e2c --- /dev/null +++ b/modules/packages/vim.nix @@ -0,0 +1,22 @@ +{ pkgs, ... }: +{ + environment.variables = { EDITOR = "vim"; }; + + environment.systemPackages = with pkgs; [ + (neovim.override { + vimAlias = true; + configure = { + packages.myPlugins = with pkgs.vimPlugins; { + start = [ vim-lastplace vim-nix vim-airline ]; + opt = []; + }; + customRC = '' + " your custom vimrc + set nocompatible + set backspace=indent,eol,start + " ... + ''; + }; + } + )]; +} diff --git a/modules/users.nix b/modules/users.nix new file mode 100644 index 0000000..15e76a0 --- /dev/null +++ b/modules/users.nix @@ -0,0 +1,13 @@ +{ config, pkgs, ... }: + +{ + + users.users.Rory = { + isNormalUser = true; + extraGroups = [ "wheel" ]; + packages = with pkgs; [ + ]; + initialPassword = "password"; + }; +} + diff --git a/old/configuration.nix b/old/configuration.nix new file mode 100644 index 0000000..1d99ef6 --- /dev/null +++ b/old/configuration.nix @@ -0,0 +1,117 @@ +{ config, pkgs, ... }: + +{ + imports = + [ + ./hardware-configuration.nix + ./vim.nix + ]; + + boot = { + loader = { + grub = { + enable = true; + version = 2; + device = "/dev/sda"; # nodev for EFI only + + # EFI + efiSupport = false; + efiInstallAsRemovable = false; + }; + }; + }; + + networking = { + hostName = "RoryNix"; + networkmanager.enable = true; + wireless.enable = false; + + firewall = { + enable = false; + # allowedTCPPorts = [ ... ]; + # allowedUDPPorts = [ ... ]; + }; + }; + + time.timeZone = "Europe/Brussels"; + i18n.defaultLocale = "en_US.UTF-8"; + + services = { + xserver = { + enable = true; + videoDrivers = [ "intel" ]; + desktopManager.gnome.enable = true; + libinput.enable = true; + layout = "us"; + modules = [ pkgs.xorg.xf86videointel ]; + }; + gnome = { + + core-developer-tools.enable = false; + core-utilities.enable = false; + tracker-miners.enable = false; + tracker.enable = false; + }; + + printing.enable = false; + openssh = { + enable = true; + extraConfig = '' + MaxAuthTries 32 + ''; + }; + }; + security.sudo.wheelNeedsPassword = false; + nixpkgs.config.allowUnfree = true; + + sound.enable = true; + hardware.pulseaudio.enable = true; + + users.users.Rory = { + isNormalUser = true; + extraGroups = [ "wheel" ]; + packages = with pkgs; [ + #xterm + gnomeExtensions.vitals + gnomeExtensions.runcat + ]; + initialPassword = "password"; + }; + + environment.systemPackages = with pkgs; [ + wget + neofetch + lnav + pciutils + zsh + gnome-console + feh + git + lsd + #nerdfonts + #element-web + sshfs + cinnamon.nemo + firefox-bin + kitty.terminfo + glxinfo + #epiphany + # Various extensions... + # - Gnome + #gnomeExtensions.vitals + #gnomeExtensions.runcat + # - Dont work on gnome 43: + #gnomeExtensions.undecorate + #gnomeExtensions.inactivity + #gnomeExtensions.left-clock + # - Vim + vimPlugins.vim-nix + ]; + fonts.fonts = with pkgs; [ + (nerdfonts.override { fonts = [ "JetBrainsMono" ]; }) + ]; + + + system.stateVersion = "22.11"; # DO NOT EDIT! +} + -- cgit 1.4.1