Author: Kyle Fuller <kyle@fuller.li> 2023-03-25 17:54:15 +0000 +0000
Committer: Kyle Fuller <kyle@fuller.li> 2023-04-03 22:09:18 +0100 +0100
Commit: d5c99408e6e2e52a6217fdf0cf6540a9993b29aa
Parent: c2f740df78cb1227ec9791b5cde42d843311d327
feat: add home-manager
diff --git a/.config/bspwm/bspwmrc b/.config/bspwm/bspwmrc
index cfddea8ffc452c5f38fd2b083bd091e0cf181129..b81a1eb01817f5a8670a291681ce627c092a7bae 100755
--- a/.config/bspwm/bspwmrc
+++ b/.config/bspwm/bspwmrc
@@ -1,6 +1,5 @@
#!/usr/bin/env sh
-pgrep -x sxhkd > /dev/null || sxhkd &
pgrep -x dunst > /dev/null || dunst &
pgrep -x polybar > /dev/null || polybar top &
diff --git a/.config/fish/config.fish b/.config/fish/config.fish
deleted file mode 100644
index 4dc040a412f26db77ae641587844d9206b4da45b..0000000000000000000000000000000000000000
--- a/.config/fish/config.fish
+++ /dev/null
@@ -1,36 +0,0 @@
-set fish_greeting
-
-set -x LANG en_GB.UTF-8
-
-set -x LSCOLORS Gxfxcxdxbxegedabagacad
-set -x EDITOR nvim
-set -x MANPAGER "$EDITOR -n +Man\!"
-
-set -x PATH "$HOME/.local/bin" $PATH
-set -x PIP_REQUIRE_VIRTUALENV "true"
-set -x PYTHONSTARTUP $HOME/.pystartup
-
-alias h="env FZF_DEFAULT_COMMAND='git ls-files' GIT_WORK_TREE=$HOME GIT_DIR=$HOME/.files.git"
-alias pbcopy="xclip -selection clipboard"
-alias pbpaste="xclip -selection clipboard -out"
-
-# swiftenv
-if test -d "$HOME/.swiftenv"
- status --is-interactive; and . (swiftenv init -|psub)
-end
-
-set -x FZF_DEFAULT_COMMAND 'ag -g ""'
-
-if ! test -n "$SSH_TTY"
- set -x SSH_AUTH_SOCK (gpgconf --list-dirs agent-ssh-socket)
-end
-
-if type direnv 2> /dev/null
- eval (direnv hook fish)
-end
-
-if status is-login
- if test -z "$DISPLAY" -a "$XDG_VTNR" = 1
- exec startx -- -keeptty
- end
-end
diff --git a/.config/home-manager/flake.lock b/.config/home-manager/flake.lock
new file mode 100644
index 0000000000000000000000000000000000000000..9a180cfbb481067b077565d28fdaf521c0d0cd10
--- /dev/null
+++ b/.config/home-manager/flake.lock
@@ -0,0 +1,64 @@
+{
+ "nodes": {
+ "home-manager": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ],
+ "utils": "utils"
+ },
+ "locked": {
+ "lastModified": 1679754751,
+ "narHash": "sha256-uLOF01/42BQkSbVHHZKESo18hmC//iStB7zFKarzibY=",
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "rev": "3ace6a31dd859710e7b7666a9d456b611f9376dc",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1679705136,
+ "narHash": "sha256-MDlZUR7wJ3PlPtqwwoGQr3euNOe0vdSSteVVOef7tBY=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "8f40f2f90b9c9032d1b824442cfbbe0dbabd0dbd",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "home-manager": "home-manager",
+ "nixpkgs": "nixpkgs"
+ }
+ },
+ "utils": {
+ "locked": {
+ "lastModified": 1676283394,
+ "narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/.config/home-manager/flake.nix b/.config/home-manager/flake.nix
new file mode 100644
index 0000000000000000000000000000000000000000..abd02578ac9d22dcf8b421c6c701c8ebaf9e1430
--- /dev/null
+++ b/.config/home-manager/flake.nix
@@ -0,0 +1,29 @@
+{
+ description = "Home Manager configuration of kyle";
+
+ inputs = {
+ # Specify the source of Home Manager and Nixpkgs.
+ nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
+ home-manager = {
+ url = "github:nix-community/home-manager";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+ };
+
+ outputs = { nixpkgs, home-manager, ... }:
+ let
+ system = "x86_64-linux";
+ pkgs = nixpkgs.legacyPackages.${system};
+ in {
+ homeConfigurations.kyle = home-manager.lib.homeManagerConfiguration {
+ inherit pkgs;
+
+ # Specify your home configuration modules here, for example,
+ # the path to your home.nix.
+ modules = [ ./home.nix ];
+
+ # Optionally use extraSpecialArgs
+ # to pass through arguments to home.nix
+ };
+ };
+}
diff --git a/.config/home-manager/home.nix b/.config/home-manager/home.nix
new file mode 100644
index 0000000000000000000000000000000000000000..8213bcd38e7e3c727cd06b4e056b3cfe579f5bb1
--- /dev/null
+++ b/.config/home-manager/home.nix
@@ -0,0 +1,79 @@
+{ config, pkgs, ... }:
+
+let
+ packages = with pkgs; [
+ aspell
+ aspellDicts.en
+ catgirl
+ dig
+ fzf
+ git
+ graphviz
+ htop
+ jq
+ magic-wormhole
+ mosh
+ oci-cli
+ pdsh
+ python3
+ ripgrep
+ silver-searcher
+ tmux
+ tree
+ unzip
+ watch
+ wget
+ whois
+ zip
+ ];
+ guiPackages = with pkgs; [
+ calibre
+ dunst
+ feh
+ firefox
+ kitty
+ maim
+ pulsemixer
+ rofi
+ source-code-pro
+ xclip
+ xsecurelock
+ ];
+
+in
+{
+ home.username = "kyle";
+ home.homeDirectory = "/home/kyle";
+ home.stateVersion = "22.11";
+ home.packages = packages ++ (pkgs.lib.lists.optionals pkgs.stdenv.isLinux guiPackages);
+ home.sessionVariables = {
+ MANPAGER = "nvim -n +Man!";
+ FZF_DEFAULT_COMMAND = "ag -g \\\"\\\"";
+ PATH = "$HOME/.local/bin:$PATH";
+ PYTHONSTARTUP = "$HOME/.pystartup";
+ };
+
+ programs.fish = {
+ enable = true;
+ shellInit = if pkgs.stdenv.isDarwin then ''
+ source /nix/var/nix/profiles/default/etc/profile.d/nix.fish
+ source /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.fish
+ '' else "";
+ interactiveShellInit = ''
+ set fish_greeting
+ '';
+ shellAliases = {
+ pbcopy = "xclip -selection clipboard";
+ pbpaste = "xclip -selection clipboard -out";
+ pbkey = "ssh-add -L | pbcopy";
+ h = "env GIT_WORK_TREE=$HOME GIT_DIR=$HOME/.files.git";
+ };
+ };
+ programs.neovim = {
+ enable = true;
+ defaultEditor = true;
+ };
+ programs.direnv.enable = true;
+ programs.direnv.nix-direnv.enable = true;
+ programs.home-manager.enable = true;
+}
diff --git a/.config/nix/nix.conf b/.config/nix/nix.conf
new file mode 100644
index 0000000000000000000000000000000000000000..c7d7291eb02b18521eb1f8f0fa30e25b8c5c38e7
--- /dev/null
+++ b/.config/nix/nix.conf
@@ -0,0 +1 @@
+experimental-features = nix-command flakes
diff --git a/Brewfile b/Brewfile
deleted file mode 100644
index f3dc748c4156666db5a2d763a79a1e66572dc8c4..0000000000000000000000000000000000000000
--- a/Brewfile
+++ /dev/null
@@ -1,53 +0,0 @@
-# vi:syntax=ruby
-
-tap 'homebrew/bundle'
-tap 'homebrew/cask'
-tap 'homebrew/cask-drivers'
-tap 'koekeishiya/formulae'
-tap 'kylef/formulae'
-
-brew 'ag'
-brew 'aspell'
-brew 'awscli'
-brew 'cloc'
-brew 'direnv'
-brew 'fish'
-brew 'fzf'
-brew 'git'
-brew 'gnupg'
-brew 'grc'
-brew 'httping'
-brew 'hub'
-brew 'jq'
-brew 'mas'
-brew 'mosh'
-brew 'node'
-brew 'ocproxy'
-brew 'openconnect'
-brew 'pinentry-mac'
-brew 'pyenv'
-brew 'skhd'
-brew 'swiftenv'
-brew 'tmux'
-brew 'tree'
-brew 'vim'
-brew 'vimpager'
-brew 'weechat'
-brew 'wget'
-brew 'yarn'
-
-# caskroom/cask
-cask '1password'
-cask 'docker'
-cask 'firefox'
-cask 'google-chrome'
-cask 'time-out'
-cask 'xscreensaver'
-cask 'zoomus'
-
-# caskroom/drivers
-cask 'logitech-options'
-
-mas 'Deckset', id: 847496013
-mas 'Slack', id: 803453959
-mas 'Xcode', id: 497799835
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 9030a8892a5e476455719e2848118c9564a58171..0000000000000000000000000000000000000000
--- a/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-PIP=PIP_REQUIRE_VIRTUALENV=false pip
-
-BREW=/usr/local/bin/brew
-BREW_BUNDLE=/usr/local/Homebrew/Library/Taps/homebrew/homebrew-bundle
-
-OS := $(shell uname)
-
-all: $(OS) vim-packages fish-packages
-
-Darwin: homebrew-packages
-Linux:
-
-$(BREW):
- @echo Installing Homebrew
- @ruby -e "`curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install`"
-
-$(BREW_BUNDLE): $(BREW)
- brew tap Homebrew/bundle
-
-.PHONY: homebrew-packages
-homebrew-packages: $(BREW_BUNDLE)
- brew bundle
-
-.PHONY: vim-packages
-vim-packages:
- @vim -c PlugUpgrade -c PlugInstall -c qall
-
-fish:
- @chsh -s $(shell which fish)
-
-.PHONY: fish-packages
-fish-packages:
- @fish -c fisher
diff --git a/README.md b/README.md
index 0829a9924421ea0f1f4325546a469b887711dc85..170f56773f93ad9a935d7f2e425963078b43ce6a 100644
--- a/README.md
+++ b/README.md
@@ -17,5 +17,5 @@
Installing tools:
```shell
-$ make
+$ nix run home-manager/master switch
```