refactor: use a flake for Pop!_OS

This commit is contained in:
Oliver Davies 2022-09-26 21:28:35 +01:00
parent a5fa4e80ab
commit 501fe8533f
4 changed files with 194 additions and 13 deletions

156
flake.lock Normal file
View file

@ -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
}

24
flake.nix Normal file
View file

@ -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;
};
};
};
}

View file

@ -1,24 +1,25 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = "opdavies"; home.username = "opdavies";
home.homeDirectory = "/home/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"; home.stateVersion = "22.05";
# Let Home Manager install and manage itself. # Let Home Manager install and manage itself.
programs.home-manager.enable = true; 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.bat.enable = true;
programs.git = { programs.git = {
@ -127,7 +128,7 @@
set-option -g status-keys "emacs" set-option -g status-keys "emacs"
set-option -ga terminal-overrides ",*256col*:Tc" 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 h split-window -v -c "#{pane_current_path}"
bind-key v split-window -h -c "#{pane_current_path}" bind-key v split-window -h -c "#{pane_current_path}"

View file

@ -1,5 +1,5 @@
default: default:
just --list just --list
update: pop-os *args:
home-manager switch -f home-manager/home.nix home-manager switch -f home-manager/home.nix --flake .#pop-os {{ args }}