diff --git a/flake.nix b/flake.nix index a37468f..77a65e6 100644 --- a/flake.nix +++ b/flake.nix @@ -17,8 +17,10 @@ outputs = inputs: let + local_overlay = import ./overlays; + mods = hostname: [ - { nixpkgs.overlays = [ inputs.nur.overlay ]; } + { nixpkgs.overlays = [ inputs.nur.overlay local_overlay ]; } inputs.agenix.nixosModule ./modules ./profiles/base diff --git a/home/direnv.nix b/home/direnv.nix new file mode 100644 index 0000000..4659ff4 --- /dev/null +++ b/home/direnv.nix @@ -0,0 +1,13 @@ +{ pkgs, ... }: + +{ + programs.direnv = { + enable = true; + nix-direnv.enable = true; + nix-direnv.enableFlakes = true; + }; + + home.packages = [ + pkgs.xonsh-direnv + ]; +} diff --git a/home/home.nix b/home/home.nix index 197350e..8ecf54a 100644 --- a/home/home.nix +++ b/home/home.nix @@ -8,6 +8,7 @@ in { imports = [ ./modules ./bash.nix + ./direnv.nix ./git.nix ./ssh.nix ./vim.nix diff --git a/home/ssh.nix b/home/ssh.nix index 879df1f..56d239a 100644 --- a/home/ssh.nix +++ b/home/ssh.nix @@ -35,6 +35,11 @@ "src.fedoraproject.org pkgs.fedoraproject.org" = { user = "greghellings"; }; + + "127.*".extraOptions = { + PubkeyAcceptedAlgorithms = "+ssh-rsa"; + HostkeyAlgorithms = "+ssh-rsa"; + }; }; }; diff --git a/home/vim.nix b/home/vim.nix index eaedde5..afa1672 100644 --- a/home/vim.nix +++ b/home/vim.nix @@ -15,13 +15,16 @@ in programs.vim = { enable = true; plugins = with pkgs.vimPlugins; [ + ansible-vim bufexplorer ctrlp + direnv-vim nerdtree vim-gitgutter vim-flake8 vim-fugitive vim-indent-guides + vim-packer gruvbox syntastic ]; diff --git a/home/xonsh.nix b/home/xonsh.nix index 660ffc0..98692c0 100644 --- a/home/xonsh.nix +++ b/home/xonsh.nix @@ -49,6 +49,8 @@ in { # $? == _.rtn import os + +xontrib load direnv ''; #$PKG_CONFIG_PATH = '/usr/local/lib/pkgconfig' diff --git a/hosts/jude/default.nix b/hosts/jude/default.nix index e5e0eaa..090d99c 100644 --- a/hosts/jude/default.nix +++ b/hosts/jude/default.nix @@ -5,6 +5,7 @@ ./boot.nix ./hardware-configuration.nix ./podman.nix + ./virt.nix ]; networking.hostName = "jude"; greg.gnome.enable= true; diff --git a/hosts/jude/virt.nix b/hosts/jude/virt.nix new file mode 100644 index 0000000..02a6e88 --- /dev/null +++ b/hosts/jude/virt.nix @@ -0,0 +1,25 @@ +{ pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + ansible + libguestfs + packer + virt-manager + vagrant + ]; + + # Give my user access to the libvirtd process + users.users.greg.extraGroups = [ "libvirtd" ]; + + virtualisation.libvirtd = { + enable = true; + onBoot = "ignore"; # Do not auto-restart VMs on boot, unless they are marked autostart + }; + + virtualisation.waydroid = { + enable = true; + }; + + boot.extraModprobeConfig = "options kvm_amd nested=1"; +} diff --git a/overlays/default.nix b/overlays/default.nix new file mode 100644 index 0000000..5af5d1d --- /dev/null +++ b/overlays/default.nix @@ -0,0 +1,12 @@ +self: super: +{ + xonsh-direnv = super.callPackage ./xonsh-direnv.nix { + #lib = self.lib; + buildPythonPackage = self.python3.pkgs.buildPythonPackage; + fetchPypi = self.python.pkgs.fetchPypi; + }; + + xonsh = super.xonsh.overridePythonAttrs (old: rec{ + propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.xonsh-direnv ]; + }); +} diff --git a/overlays/defeault.nix b/overlays/defeault.nix deleted file mode 100644 index f71814b..0000000 --- a/overlays/defeault.nix +++ /dev/null @@ -1,6 +0,0 @@ -self: super: -{ - git = super.git.override { - meta.priority = 4; - }; -} diff --git a/overlays/xonsh-direnv.nix b/overlays/xonsh-direnv.nix new file mode 100644 index 0000000..79afcad --- /dev/null +++ b/overlays/xonsh-direnv.nix @@ -0,0 +1,20 @@ +{ lib, buildPythonPackage, fetchPypi, pkgs}: + +buildPythonPackage rec { + pname = "xonsh-direnv"; + version = "1.5.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "OLjtGD2lX4Yf3aHrxCWmAbSPZnf8OuVrBu0VFbsna1Y="; + }; + + meta = with lib; { + description = "Direnv support for Xonsh"; + homepage = "https://github.com/74th/xonsh-direnv/"; + license = licenses.mit; + maintainers = []; + }; + + doCheck = false; +} diff --git a/profiles/base/nix.nix b/profiles/base/nix.nix index 0b23255..3a964da 100644 --- a/profiles/base/nix.nix +++ b/profiles/base/nix.nix @@ -10,6 +10,10 @@ experimental-features = nix-command flakes min-free = ${toString (1024 * 1024 * 1024) } max-free = ${toString (5 * 1024 * 1024 * 1024) } + +# Used by direnv +keep-outputs = true +keep-derivations = true ''; # Use hardlinking instead of copying when possible diff --git a/profiles/base/programs.nix b/profiles/base/programs.nix index a5aa7d5..b37d479 100644 --- a/profiles/base/programs.nix +++ b/profiles/base/programs.nix @@ -1,6 +1,12 @@ { pkgs, agenix, ... }: -{ +let + myPackages = pypackages: with pypackages; [ + pkgs.xonsh-direnv + ]; + + myPython = pkgs.python3.withPackages myPackages; +in { # Base packages that need to be in all my hosts environment.systemPackages = with pkgs; [ agenix.defaultPackage."${system}" @@ -10,7 +16,7 @@ findutils home-manager htop - python3 + myPython pwgen tmux transcrypt