diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..a3c7a92 --- /dev/null +++ b/flake.lock @@ -0,0 +1,156 @@ +{ + "nodes": { + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-utils": { + "locked": { + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "utils": "utils" + }, + "locked": { + "lastModified": 1664217366, + "narHash": "sha256-YsqVv0D4YIXjeaz37V4/aRZrkAtEMZpFTn+tduI5fAM=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "65b65ce5ef08d54bc09336fe3f35e33be487e2fe", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "neovim-flake": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "neovim-nightly", + "nixpkgs" + ] + }, + "locked": { + "dir": "contrib", + "lastModified": 1664176858, + "narHash": "sha256-SIF3XyX22GQ2u4AAq5qsVeLZ/2fHSlBX+8hd5IGQ3+Y=", + "owner": "neovim", + "repo": "neovim", + "rev": "6596f7e136b7ceba2a94c708e2a179ec60b6d048", + "type": "github" + }, + "original": { + "dir": "contrib", + "owner": "neovim", + "repo": "neovim", + "type": "github" + } + }, + "neovim-nightly": { + "inputs": { + "flake-compat": "flake-compat", + "neovim-flake": "neovim-flake", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1664180387, + "narHash": "sha256-5fT/Nnv4QWVASqjMBKuHZKSFV+YHVH5jbTRakvQivuw=", + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "rev": "b7c02b63405cfc346b1faecc0602aeb7aaf79ee7", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1664117201, + "narHash": "sha256-6QVOY28vj9eJqTVW5bT65hfY6qwmUi+fclgbRMotAzI=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "f3e200bd7fa6f62edbfad82fe9fefe7b02f28603", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1664106353, + "narHash": "sha256-HMJP80+DSxFySpWyuxz5+iNozS3+dVt0b4n6YMIU5/8=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "79d3ca08920364759c63fd3eb562e99c0c17044a", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "neovim-nightly": "neovim-nightly", + "nixpkgs": "nixpkgs_2" + } + }, + "utils": { + "locked": { + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..977f92b --- /dev/null +++ b/flake.nix @@ -0,0 +1,24 @@ +# https://nix-community.github.io/home-manager/index.html#ch-nix-flakes +{ + inputs = { + home-manager.inputs.nixpkgs.follows = "nixpkgs"; + home-manager.url = "github:nix-community/home-manager"; + neovim-nightly.url = "github:nix-community/neovim-nightly-overlay"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + }; + + outputs = { self, home-manager, neovim-nightly, nixpkgs, ... }: + let + overlays = [ neovim-nightly.overlay ]; + in { + homeConfigurations = { + pop-os = home-manager.lib.homeManagerConfiguration { + modules = [ + { nixpkgs.overlays = overlays; } + ./home-manager/pop-os.nix + ]; + pkgs = nixpkgs.legacyPackages.x86_64-linux; + }; + }; + }; +} diff --git a/home-manager/home.nix b/home-manager/pop-os.nix similarity index 92% rename from home-manager/home.nix rename to home-manager/pop-os.nix index c716674..36b9332 100644 --- a/home-manager/home.nix +++ b/home-manager/pop-os.nix @@ -1,24 +1,25 @@ { config, pkgs, ... }: { - # Home Manager needs a bit of information about you and the - # paths it should manage. home.username = "opdavies"; home.homeDirectory = "/home/opdavies"; - # This value determines the Home Manager release that your - # configuration is compatible with. This helps avoid breakage - # when a new Home Manager release introduces backwards - # incompatible changes. - # - # You can update Home Manager without changing this value. See - # the Home Manager release notes for a list of state version - # changes in each release. home.stateVersion = "22.05"; # Let Home Manager install and manage itself. programs.home-manager.enable = true; + fonts.fontconfig.enable = true; + + home.packages = with pkgs; [ + docker + docker-compose + jetbrains-mono + just + meslo-lg + neovim + ]; + programs.bat.enable = true; programs.git = { @@ -127,7 +128,7 @@ set-option -g status-keys "emacs" set-option -ga terminal-overrides ",*256col*:Tc" - set-option -g default-terminal "xterm-256color" + set-option -g default-terminal "screen-256color" bind-key h split-window -v -c "#{pane_current_path}" bind-key v split-window -h -c "#{pane_current_path}" diff --git a/justfile b/justfile index 4fd4d33..ba1fc55 100644 --- a/justfile +++ b/justfile @@ -1,5 +1,5 @@ default: just --list -update: - home-manager switch -f home-manager/home.nix +pop-os *args: + home-manager switch -f home-manager/home.nix --flake .#pop-os {{ args }}