aboutsummaryrefslogtreecommitdiff
path: root/overlays
diff options
context:
space:
mode:
authorKenny Ballou <kballou@devnulllabs.io>2020-10-14 10:05:44 -0600
committerKenny Ballou <kballou@devnulllabs.io>2020-12-15 14:04:46 -0700
commit418ec7b94aa8202e5f5f0a59f2bb97a7c0510068 (patch)
tree0a08e1653ba5d8efc527bbaf4e5914ffb9c8b6b9 /overlays
parent164cd37871e6235584ce23f3a0bf516a51b31489 (diff)
downloaddotfiles-418ec7b94aa8202e5f5f0a59f2bb97a7c0510068.tar.gz
dotfiles-418ec7b94aa8202e5f5f0a59f2bb97a7c0510068.tar.xz
dots: now for something completely different
Use home-manager to configure user packages, dotfiles, and various other configurations. Add home-manager configuration for installing and managing user packages and profiles. Convert nearly all configuration to use home-manager to install and link configuration files. In no particular order of reference, I've used and/or referenced the following configurations and posts for this homeification: [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10]]. [0]: https://gitlab.com/NobbZ/nix-home-manager-dotfiles [1]: https://www.malloc47.com/migrating-to-nixos/ [2]: https://lucperkins.dev/blog/home-manager/ [3]: https://github.com/jwiegley/nix-config [4]: https://www.thedroneely.com/posts/declarative-user-package-management-in-nixos/ [5]: https://hugoreeves.com/posts/2019/nix-home/ [6]: https://rycee.gitlab.io/home-manager/ [7]: https://rycee.net/posts/2017-07-02-manage-your-home-with-nix.html [8]: https://github.com/abcdw/rde [9]: https://github.com/ryantm/dotfiles [10]: https://git.sr.ht/~vdemeester/home Signed-off-by: Kenny Ballou <kballou@devnulllabs.io>
Diffstat (limited to 'overlays')
-rw-r--r--overlays/beam/default.nix11
-rw-r--r--overlays/clang/default.nix12
-rw-r--r--overlays/cpp/default.nix14
-rw-r--r--overlays/development/default.nix26
-rw-r--r--overlays/dlang/default.nix10
-rw-r--r--overlays/elm/default.nix12
-rw-r--r--overlays/emacs/builders/elisp.nix30
-rw-r--r--overlays/emacs/default.nix29
-rw-r--r--overlays/emacs/packages.nix238
-rw-r--r--overlays/fonts/default.nix17
-rw-r--r--overlays/git/default.nix16
-rw-r--r--overlays/golang/default.nix19
-rw-r--r--overlays/haskell/default.nix12
-rw-r--r--overlays/js/default.nix14
-rw-r--r--overlays/jvm/default.nix32
-rw-r--r--overlays/ml/default.nix10
-rw-r--r--overlays/nix/default.nix17
-rw-r--r--overlays/php/default.nix11
-rw-r--r--overlays/python/default.nix26
-rw-r--r--overlays/r/default.nix10
-rw-r--r--overlays/rust/default.nix15
-rw-r--r--overlays/scheme/default.nix12
-rw-r--r--overlays/tex/default.nix11
23 files changed, 604 insertions, 0 deletions
diff --git a/overlays/beam/default.nix b/overlays/beam/default.nix
new file mode 100644
index 00000000..d10dad8a
--- /dev/null
+++ b/overlays/beam/default.nix
@@ -0,0 +1,11 @@
+self: super:
+{
+ beam-environment = super.buildEnv {
+ name = "beam-environment";
+ ignoreCollisions = true;
+ paths = [
+ self.elixir
+ self.erlang
+ ];
+ };
+}
diff --git a/overlays/clang/default.nix b/overlays/clang/default.nix
new file mode 100644
index 00000000..6823cd1d
--- /dev/null
+++ b/overlays/clang/default.nix
@@ -0,0 +1,12 @@
+self: super:
+{
+ clang-environment = super.buildEnv {
+ name = "clang-environment";
+ ignoreCollisions = true;
+ paths = [
+ self.clang
+ self.clang-tools
+ self.llvm
+ ];
+ };
+}
diff --git a/overlays/cpp/default.nix b/overlays/cpp/default.nix
new file mode 100644
index 00000000..dac97267
--- /dev/null
+++ b/overlays/cpp/default.nix
@@ -0,0 +1,14 @@
+self: super:
+{
+ cpp-environment = super.buildEnv {
+ name = "cpp-environment";
+ ignoreCollisions = true;
+ paths = [
+ self.boost
+ self.gcc
+ self.libcxx
+ self.libcxxabi
+ self.stdman
+ ];
+ };
+}
diff --git a/overlays/development/default.nix b/overlays/development/default.nix
new file mode 100644
index 00000000..80a3058e
--- /dev/null
+++ b/overlays/development/default.nix
@@ -0,0 +1,26 @@
+self: super:
+{
+ development-tools = super.buildEnv {
+ name = "development-tools";
+ ignoreCollisions = true;
+ paths = [
+ self.autoconf
+ self.autogen
+ self.automake
+ self.cmake
+ self.cmake
+ self.cppcheck
+ self.doxygen
+ self.gdb
+ self.global
+ self.gnum4
+ self.gnumake
+ self.lcov
+ self.libtool
+ self.ltrace
+ self.pkgconfig
+ self.strace
+ self.valgrind
+ ];
+ };
+}
diff --git a/overlays/dlang/default.nix b/overlays/dlang/default.nix
new file mode 100644
index 00000000..87fa6216
--- /dev/null
+++ b/overlays/dlang/default.nix
@@ -0,0 +1,10 @@
+self: super:
+{
+ dlang-environment = super.buildEnv {
+ name = "dlang-environment";
+ paths = [
+ self.dmd
+ self.rdmd
+ ];
+ };
+}
diff --git a/overlays/elm/default.nix b/overlays/elm/default.nix
new file mode 100644
index 00000000..3bab9213
--- /dev/null
+++ b/overlays/elm/default.nix
@@ -0,0 +1,12 @@
+self: super:
+{
+ elm-environment = super.buildEnv {
+ name = "elm-environment";
+ ignoreCollisions = true;
+ paths = with self.elmPackages; [
+ elm
+ elm-format
+ elm-test
+ ];
+ };
+}
diff --git a/overlays/emacs/builders/elisp.nix b/overlays/emacs/builders/elisp.nix
new file mode 100644
index 00000000..915962c0
--- /dev/null
+++ b/overlays/emacs/builders/elisp.nix
@@ -0,0 +1,30 @@
+# https://github.com/jwiegley/nix-config/blob/4d296ad/overlays/emacs/builder.nix
+{ stdenv
+, emacs
+, name
+, src
+, buildInputs ? []
+, patches ? []
+, preBuild ? ""
+}:
+
+stdenv.mkDerivation {
+ inherit name src patches;
+ unpackCmd = ''
+ test -f "${src}" && mkdir el && cp -p ${src} el/${name}
+ '';
+ buildInputs = [ emacs ] ++ buildInputs;
+ buildPhase = ''
+ ${preBuild}
+ ${emacs}/bin/emacs -Q -nw -L . --batch -f batch-byte-compile *.el
+ '';
+ installPhase = ''
+ mkdir -p $out/share/emacs/site-lisp
+ install *.el* $out/share/emacs/site-lisp
+ '';
+ meta = {
+ description = "Emacs projects from the Internet that just compile `.el` files";
+ homepage = http://www.emacswiki.org;
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/overlays/emacs/default.nix b/overlays/emacs/default.nix
new file mode 100644
index 00000000..86dc813c
--- /dev/null
+++ b/overlays/emacs/default.nix
@@ -0,0 +1,29 @@
+self: super:
+let
+ utils = pkgs: import ../../nix/utils.nix { pkgs = pkgs; };
+ gtk3-emacs = (super.pkgs.emacs.override {
+ withGTK3 = true;
+ withGTK2 = false;
+ });
+ lucid-emacs = (super.pkgs.emacs.override {
+ # enable lucid
+ withGTK3 = false;
+ withGTK2 = false;
+ });
+ ePackages = self.callPackage ./packages.nix { };
+ emacsWithPackages = emacs:
+ (self.emacsPackagesGen ((utils self.pkgs).optimizeForThisHost emacs)).emacsWithPackages
+ (ePackages.emacs-package-list self.emacsPackages);
+
+in {
+ emacs-overlay = super.buildEnv {
+ name = "emacs-overlay";
+ ignoreCollisions = true;
+ paths = [
+ (emacsWithPackages gtk3-emacs)
+ self.mu
+ self.multimarkdown
+ self.librsvg
+ ];
+ };
+}
diff --git a/overlays/emacs/packages.nix b/overlays/emacs/packages.nix
new file mode 100644
index 00000000..0f1ce142
--- /dev/null
+++ b/overlays/emacs/packages.nix
@@ -0,0 +1,238 @@
+# https://github.com/jwiegley/nix-config/blob/master/overlays/10-emacs.nix
+{ pkgs, ... }:
+let
+ inherit (pkgs) fetchurl fetchgit fetchFromGitHub stdenv;
+ inherit (stdenv) lib;
+
+ withPatches = pkg: patches:
+ pkg.OverrideAttrs(attrs: { inherit patches; });
+ compileElispFiles = pkgs.callPackage ./builders/elisp.nix;
+ fetchFromEmacsWiki = pkgs.callPackage ({ fetchurl, name, sha256 }:
+ fetchurl {
+ inherit sha256;
+ url = "https://www.emacswiki.org/emacs/download/" + name;
+ });
+ compileEmacsWikiFile = { name, sha256, buildInputs ? [], patches ? [] }:
+ compileElispFiles {
+ inherit name buildInputs patches;
+ src = fetchFromEmacsWiki { inherit name sha256; };
+ };
+in rec {
+ ascii = compileEmacsWikiFile {
+ name = "ascii.el";
+ sha256 = "1ijpnk334fbah94vm7dkcd2w4zcb0l7yn4nr9rwgpr2l25llnr0f";
+ };
+ hexrgb = compileEmacsWikiFile {
+ name = "hexrgb.el";
+ sha256 = "18hb8brf7x92aidjfgczxangri6rkqq4x5d06lh41193f97rslm8";
+ };
+
+ palette = compileEmacsWikiFile {
+ name = "palette.el";
+ sha256 = "149y6bmn0njgq632m9zdnaaw7wrvxvfqndpqlgcizn6dwzixiih6";
+ buildInputs = [ hexrgb ];
+ };
+
+ emacs-package-list = (epkgs: (with epkgs.melpaPackages; [
+ add-node-modules-path
+ ag
+ alchemist
+ anaconda-mode
+ anti-zenburn-theme
+ anzu
+ autodisass-java-bytecode
+ avy
+ bash-completion
+ bind-key
+ bnf-mode
+ browse-kill-ring
+ buffer-move
+ bundler
+ cider
+ cljsbuild-mode
+ clojure-mode
+ coffee-mode
+ company
+ counsel
+ counsel-projectile
+ counsel-tramp
+ coverlay
+ css-eldoc
+ csv
+ d-mode
+ dap-mode
+ define-word
+ diff-hl
+ diminish
+ disable-mouse
+ docker
+ docker-compose-mode
+ docker-tramp
+ dockerfile-mode
+ doom-themes
+ editorconfig
+ edts
+ ein
+ elein
+ elfeed
+ elfeed-org
+ elixir-mode
+ elm-mode
+ erlang
+ ess
+ exec-path-from-shell
+ expand-region
+ f
+ flycheck
+ flycheck-clojure
+ flycheck-color-mode-line
+ flycheck-credo
+ flycheck-elixir
+ flycheck-elm
+ flycheck-haskell
+ flycheck-ledger
+ flycheck-ocaml
+ flycheck-rust
+ fold-dwim
+ forge
+ fullframe
+ geben
+ geben-helm-projectile
+ geiser
+ git-auto-commit-mode
+ git-commit
+ git-timemachine
+ gitconfig-mode
+ gitignore-mode
+ go-autocomplete
+ go-eldoc
+ go-mode
+ go-stacktracer
+ #goto-gem
+ gnuplot
+ graphviz-dot-mode
+ guix
+ gxref
+ haml-mode
+ haskell-mode
+ helm
+ helm-bbdb
+ helm-bibtex
+ helm-descbinds
+ helm-flycheck
+ helm-flyspell
+ helm-gtags
+ helm-lsp
+ helm-mu
+ helm-projectile
+ helm-rg
+ helm-sql-connect
+ helm-tramp
+ helm-wordnet
+ helm-xref
+ highlight-escape-sequences
+ #hindent
+ htmlize
+ hydra
+ ibuffer-vc
+ import-js
+ inf-ruby
+ ivy
+ jedi
+ js-comint
+ js2-mode
+ json-mode
+ ledger-mode
+ less-css-mode
+ list-unicode-display
+ lsp-haskell
+ lsp-mode
+ lsp-java
+ lsp-ui
+ magit
+ markdown-mode
+ mmm-mode
+ mpdel
+ multiple-cursors
+ mwim
+ nix-buffer
+ nix-mode
+ nix-update
+ ob-elixir
+ ob-go
+ ob-ipython
+ ob-mongo
+ olivetti
+ org-babel-eval-in-repl
+ org-cliplink
+ org-pomodoro
+ org-ref
+ ox-gfm
+ page-break-lines
+ pcmpl-args
+ pcmpl-git
+ pcmpl-pip
+ pcomplete-extension
+ pdf-tools
+ peep-dired
+ php-mode
+ pip-requirements
+ polymode
+ projectile
+ racer
+ rainbow-delimiters
+ realgud
+ realgud-jdb
+ regex-tool
+ robe
+ rspec-mode
+ ruby-compilation
+ ruby-hash-syntax
+ rust-mode
+ sass-mode
+ scss-mode
+ session
+ skewer-less
+ skewer-mode
+ smartparens
+ smex
+ smooth-scrolling
+ solarized-theme
+ spacemacs-theme
+ spaceline
+ swiper
+ swiper-helm
+ switch-window
+ tagedit
+ toml-mode
+ tuareg
+ typescript-mode
+ unfill
+ unicode-fonts
+ unicode-whitespace
+ uptimes
+ use-package
+ virtualenvwrapper
+ wgrep-ag
+ which-key
+ whitespace-cleanup-mode
+ whole-line-or-region
+ with-editor
+ xref-js2
+ yari
+ yasnippet
+ zenburn-theme
+ ]) ++ (with epkgs.elpaPackages; [
+ auctex
+ delight
+ pinentry
+ python
+ rainbow-mode
+ spinner
+ undo-tree
+ ]) ++ (with epkgs.melpaStablePackages; [
+ ]) ++ [
+ ascii
+ hexrgb
+ ]);
+}
diff --git a/overlays/fonts/default.nix b/overlays/fonts/default.nix
new file mode 100644
index 00000000..db577efe
--- /dev/null
+++ b/overlays/fonts/default.nix
@@ -0,0 +1,17 @@
+self: super:
+{
+ fonts-overlay = super.buildEnv {
+ name = "fonts-overlay";
+ ignoreCollisions = true;
+ paths = [
+ self.carlito
+ self.dejavu_fonts
+ self.ipafont
+ self.kochi-substitute
+ self.noto-fonts
+ self.source-code-pro
+ self.symbola
+ self.ttf_bitstream_vera
+ ];
+ };
+}
diff --git a/overlays/git/default.nix b/overlays/git/default.nix
new file mode 100644
index 00000000..3fdb0bd2
--- /dev/null
+++ b/overlays/git/default.nix
@@ -0,0 +1,16 @@
+self: super:
+{
+ git-tools = super.buildEnv {
+ name = "git-tools";
+ ignoreCollisions = true;
+ paths = [
+ self.gitAndTools.delta
+ self.gitAndTools.git-crypt
+ self.gitAndTools.gitFastExport
+ self.gitAndTools.pass-git-helper
+ self.gitAndTools.tig
+ self.gitFull
+ self.gitstats
+ ];
+ };
+}
diff --git a/overlays/golang/default.nix b/overlays/golang/default.nix
new file mode 100644
index 00000000..0f43d90a
--- /dev/null
+++ b/overlays/golang/default.nix
@@ -0,0 +1,19 @@
+self: super:
+{
+ golang-environment = super.buildEnv {
+ name = "golang-environment";
+ ignoreCollisions = true;
+ paths = [
+ self.delve
+ self.glide
+ self.go
+ self.go-bindata
+ self.go2nix
+ self.gocode
+ self.godef
+ self.golint
+ self.gopls
+ self.gotools
+ ];
+ };
+}
diff --git a/overlays/haskell/default.nix b/overlays/haskell/default.nix
new file mode 100644
index 00000000..d46ffd0e
--- /dev/null
+++ b/overlays/haskell/default.nix
@@ -0,0 +1,12 @@
+self: super:
+{
+ ghc-environment = super.buildEnv {
+ name = "ghc-environment";
+ ignoreCollisions = true;
+ paths = [
+ self.ghc
+ self.ghcid
+ self.haskellPackages.ghcide
+ ];
+ };
+}
diff --git a/overlays/js/default.nix b/overlays/js/default.nix
new file mode 100644
index 00000000..384f8772
--- /dev/null
+++ b/overlays/js/default.nix
@@ -0,0 +1,14 @@
+self: super:
+{
+ js-environment = super.buildEnv {
+ name = "js-environment";
+ ignoreCollisions = true;
+ paths = [
+ self.nodePackages.csslint
+ self.nodePackages.eslint
+ self.nodePackages.js-beautify
+ self.nodejs
+ self.yarn
+ ];
+ };
+}
diff --git a/overlays/jvm/default.nix b/overlays/jvm/default.nix
new file mode 100644
index 00000000..00962175
--- /dev/null
+++ b/overlays/jvm/default.nix
@@ -0,0 +1,32 @@
+self: super:
+let
+ utils = import ../../nix/utils.nix { pkgs = self.pkgs; };
+ optimizeJDK = jdk: utils.optimizeForThisHost jdk;
+ mkMaven = jdk: (super.pkgs.maven.override {
+ jdk = jdk;
+ });
+ mkLeiningen = jdk: (super.pkgs.leiningen.override {
+ jdk = jdk;
+ });
+ mkJVMEnv = jdk: name:
+ super.buildEnv {
+ name = name;
+ ignoreCollisions = true;
+ paths = [
+ self.ammonite
+ self.aspectj
+ self.clj-kondo
+ self.eclipses.eclipse-java
+ self.jetbrains.idea-community
+ self.jmeter
+ jdk
+ self.visualvm
+ ];
+ };
+in {
+ jvm-environment8 = mkJVMEnv (optimizeJDK self.openjdk8) "jvm-environment8";
+
+ jvm-environment11 = mkJVMEnv (optimizeJDK self.openjdk11) "jvm-environment11";
+
+ jvm-environment14 = mkJVMEnv (optimizeJDK self.openjdk14) "jvm-environment14";
+}
diff --git a/overlays/ml/default.nix b/overlays/ml/default.nix
new file mode 100644
index 00000000..7d2940a7
--- /dev/null
+++ b/overlays/ml/default.nix
@@ -0,0 +1,10 @@
+self: super:
+{
+ ml-environment = super.buildEnv {
+ name = "ml-environment";
+ ignoreCollisions = true;
+ paths = [
+ self.ocaml
+ ];
+ };
+}
diff --git a/overlays/nix/default.nix b/overlays/nix/default.nix
new file mode 100644
index 00000000..8262fc18
--- /dev/null
+++ b/overlays/nix/default.nix
@@ -0,0 +1,17 @@
+self: super:
+{
+ nix-tools = super.buildEnv {
+ name = "nix-tools";
+ ignoreCollisions = true;
+ paths = [
+ self.nix-bash-completions
+ self.nix-diff
+ self.nix-index
+ self.nix-prefetch-git
+ self.nix-prefetch-github
+ self.nix-review
+ self.nix-top
+ self.nix-zsh-completions
+ ];
+ };
+}
diff --git a/overlays/php/default.nix b/overlays/php/default.nix
new file mode 100644
index 00000000..88c97b72
--- /dev/null
+++ b/overlays/php/default.nix
@@ -0,0 +1,11 @@
+self: super:
+{
+ php-environment = super.buildEnv {
+ name = "php-environment";
+ ignoreCollisions = true;
+ paths = [
+ self.php
+ self.phpPackages.composer
+ ];
+ };
+}
diff --git a/overlays/python/default.nix b/overlays/python/default.nix
new file mode 100644
index 00000000..ae3e7ae2
--- /dev/null
+++ b/overlays/python/default.nix
@@ -0,0 +1,26 @@
+self: super:
+{
+ python-environment = super.buildEnv {
+ name = "python-environment";
+ paths = [
+ (self.python38.withPackages (
+ ps: with ps; [
+ flake8
+ gprof2dot
+ ipython
+ pip
+ pycodestyle
+ pyflakes
+ pygobject3
+ pyparsing
+ python-language-server
+ setuptools
+ virtualenv
+ yamllint
+ ]
+ ))
+
+ self.setupcfg2nix
+ ];
+ };
+}
diff --git a/overlays/r/default.nix b/overlays/r/default.nix
new file mode 100644
index 00000000..5f565b92
--- /dev/null
+++ b/overlays/r/default.nix
@@ -0,0 +1,10 @@
+self: super:
+{
+ r-environment = super.buildEnv {
+ name = "r-environment";
+ ignoreCollisions = true;
+ paths = [
+ self.R
+ ];
+ };
+}
diff --git a/overlays/rust/default.nix b/overlays/rust/default.nix
new file mode 100644
index 00000000..71ebf883
--- /dev/null
+++ b/overlays/rust/default.nix
@@ -0,0 +1,15 @@
+self: super:
+{
+ rust-environment = super.buildEnv {
+ name = "rust-environment";
+ ignoreCollisions = true;
+ paths = [
+ self.cargo
+ self.cargo-update
+ self.cargo2nix
+ self.rls
+ self.rustc
+ self.rustracer
+ ];
+ };
+}
diff --git a/overlays/scheme/default.nix b/overlays/scheme/default.nix
new file mode 100644
index 00000000..748063f8
--- /dev/null
+++ b/overlays/scheme/default.nix
@@ -0,0 +1,12 @@
+self: super:
+{
+ scheme-environment = super.buildEnv {
+ name = "scheme-environment";
+ ignoreCollisions = true;
+ paths = [
+ self.guile
+ self.guile-lint
+ self.racket
+ ];
+ };
+}
diff --git a/overlays/tex/default.nix b/overlays/tex/default.nix
new file mode 100644
index 00000000..119d6912
--- /dev/null
+++ b/overlays/tex/default.nix
@@ -0,0 +1,11 @@
+self: super:
+{
+ texFull = super.buildEnv {
+ name = "texFull";
+ ignoreCollisions = true;
+ paths = [
+ self.pygmentex
+ self.texlive.combined.scheme-full
+ ];
+ };
+}