dotfiles

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
 ```