diff options
author | David Morgan <djm_uk@protonmail.com> | 2022-10-22 14:42:34 +0100 |
---|---|---|
committer | David Morgan <djm_uk@protonmail.com> | 2022-10-22 14:42:34 +0100 |
commit | fa96356b1ece3788f13bf4b5729ac35036372069 (patch) | |
tree | cbe00bf3fb50da578c7a1bfa8837b9895775f187 /nix-conf/home/includes | |
parent | 2904502b4b9caac7938734b6c21bb71391743b82 (diff) | |
download | dotfiles-fa96356b1ece3788f13bf4b5729ac35036372069.tar.gz |
Tweak home-manager config some more
Diffstat (limited to 'nix-conf/home/includes')
-rw-r--r-- | nix-conf/home/includes/clojure.nix | 18 | ||||
-rw-r--r-- | nix-conf/home/includes/common.nix | 53 | ||||
-rw-r--r-- | nix-conf/home/includes/darwin.nix | 36 | ||||
-rw-r--r-- | nix-conf/home/includes/dev-common.nix | 31 | ||||
-rw-r--r-- | nix-conf/home/includes/linux-dev.nix | 35 | ||||
-rw-r--r-- | nix-conf/home/includes/linux-server.nix | 16 | ||||
-rw-r--r-- | nix-conf/home/includes/zsh.nix | 167 |
7 files changed, 356 insertions, 0 deletions
diff --git a/nix-conf/home/includes/clojure.nix b/nix-conf/home/includes/clojure.nix new file mode 100644 index 0000000..3681e8b --- /dev/null +++ b/nix-conf/home/includes/clojure.nix @@ -0,0 +1,18 @@ +{ config, pkgs, lib, isDarwin, isLinux, ... }: +let + inherit (lib) optionals; +in +{ + home.packages = with pkgs; [ + babashka + clj-kondo + clojure + clojure-lsp + jet + maven + neil + ] + ++ optionals stdenv.isDarwin [ (leiningen.override { jdk = jdk8; }) ] + ++ optionals stdenv.isLinux [ leiningen ]; +} + diff --git a/nix-conf/home/includes/common.nix b/nix-conf/home/includes/common.nix new file mode 100644 index 0000000..b294601 --- /dev/null +++ b/nix-conf/home/includes/common.nix @@ -0,0 +1,53 @@ +{ config, pkgs, ... }: +{ + + imports = [ + ./zsh.nix + ]; + + home.packages = with pkgs; [ + aspell + aspellDicts.en + aspellDicts.en-computers + aspellDicts.en-science + bat + bottom + broot + curl + difftastic + duf + du-dust + elinks + exa + fd + fzf + git + gnupg + gopass + ispell + isync + jq + lscolors + lsd + lynx + nixfmt + nix-info + nix-prefetch-git + nix-prefetch-github + pinentry + pass + #procs + libqalculate + ripgrep + rlwrap + sd + tealdeer + ugrep + vim + w3m + zenith + ]; + + programs.gpg.enable = true; +} + diff --git a/nix-conf/home/includes/darwin.nix b/nix-conf/home/includes/darwin.nix new file mode 100644 index 0000000..d1b0d05 --- /dev/null +++ b/nix-conf/home/includes/darwin.nix @@ -0,0 +1,36 @@ +{ config, pkgs, ... }: +{ + imports = [ + ./dev-common.nix + ]; + + home.packages = with pkgs; [ + awscli2 + coreutils + curl + diffutils + ((emacsPackagesFor emacsMacport).emacsWithPackages(ps: [ ps.vterm ])) + findutils + gh + #gnused + #adoptopenjdk-hotspot-bin-8 + #lima + mpv + mu + nix # on darwin we are not using nixos (duh) + openvpn + pinentry_mac + pgcli + pgformatter + postgresql + #python310Packages.sqlparse + sqls + wget + ]; + + programs.java = { + enable = true; + #package = (pkgs.jdk8.overrideAttrs (_: { postPatch = "ln -nsf ../zulu-8.jdk/Contents/Home/man man"; })); + }; +} + diff --git a/nix-conf/home/includes/dev-common.nix b/nix-conf/home/includes/dev-common.nix new file mode 100644 index 0000000..da3665c --- /dev/null +++ b/nix-conf/home/includes/dev-common.nix @@ -0,0 +1,31 @@ +{ config, pkgs, ... }: +{ + + imports = [ + ./common.nix + ./clojure.nix + ]; + + home.packages = with pkgs; [ + docker + docker-compose + gopass-jsonapi + mpv + mu + neovim + ]; + + programs.tmux = { + enable = true; + terminal = "screen-256color"; + #tmuxp.enable = true; + extraConfig = '' + set-option -g status-bg '#666666' + set-option -g status-fg '#aaaaaa' + set-option -g status-left-length 50 + set-option -g status-right " #(date ''\'+%a, %b %d - %I:%M''\') " + ''; + }; + +} + diff --git a/nix-conf/home/includes/linux-dev.nix b/nix-conf/home/includes/linux-dev.nix new file mode 100644 index 0000000..b2c6885 --- /dev/null +++ b/nix-conf/home/includes/linux-dev.nix @@ -0,0 +1,35 @@ +{ config, pkgs, ... }: +{ + imports = [ + ./dev-common.nix + ]; + #services.emacs.package = pkgs.emacsUnstable; + + nixpkgs.overlays = [ + (import (builtins.fetchTarball { + url = https://github.com/nix-community/emacs-overlay/archive/master.tar.gz; + })) + ]; + programs.emacs = { + enable = true; + #package = pkgs.emacsGcc; + package = pkgs.emacs28NativeComp; + extraPackages = (epkgs: [ epkgs.vterm ] ); + }; + + home.packages = with pkgs; [ + docker + docker-compose + gcc + gnumake + mpv + mu + notmuch + nix + protonmail-bridge + protonvpn-cli + youtube-dl + ]; + +} + diff --git a/nix-conf/home/includes/linux-server.nix b/nix-conf/home/includes/linux-server.nix new file mode 100644 index 0000000..7006350 --- /dev/null +++ b/nix-conf/home/includes/linux-server.nix @@ -0,0 +1,16 @@ +{ config, pkgs, ... }: +{ + imports = [ + ./common.nix + ]; + + home.packages = with pkgs; [ + emacs-nox + irssi + msmtp + neomutt + ]; + + ## TODO tmux +} + diff --git a/nix-conf/home/includes/zsh.nix b/nix-conf/home/includes/zsh.nix new file mode 100644 index 0000000..2f072a5 --- /dev/null +++ b/nix-conf/home/includes/zsh.nix @@ -0,0 +1,167 @@ +{ config, pkgs, lib, ... }: + +{ + home.packages = with pkgs; [ + zsh-completions + ]; + + programs.fzf = { + enable = true; + enableZshIntegration = true; + }; + programs.zoxide = { + enable = true; + enableZshIntegration = true; + }; + programs.direnv = { + enable = true; + nix-direnv.enable = true; + }; + programs.keychain = { + enable = lib.mkIf pkgs.stdenv.isLinux true; + agents = [ "ssh" "gpg"]; + keys = [ "id_rsa" "id_ed25519" "C171251002C200F2" ]; + # extraFlags = [ "--quiet" "--ignore-missing" ]; + }; + programs.zsh = { + enable = true; + enableCompletion = true; + enableAutosuggestions = true; + defaultKeymap = "emacs"; + history = { + size = 100000; + save = 100000; + }; + + envExtra = '' + export LSP_USE_PLISTS=true + export LESS=-iRXF + ''; + profileExtra = '' + [[ -f ~/.nix-profile/etc/profile.d/nix.sh ]] && . ~/.nix-profile/etc/profile.d/nix.sh + path=(~/bin + ~/.local/bin + ~/go/bin/ + $path) + ''; + shellAliases = { + cp = "cp -iv"; + mv = "mv -iv"; + mkdir = "mkdir -v"; + pp = "pushbullet push \"Pixel\" link \"\${1}\" \"\${1}\""; + upgrade_emacs = "cp ~/.emacs.d/straight/versions/default.el straight-versions-default-`date \"+%Y-%m-%d-%H%M%S\"`.el && emacs --batch -l \"~/.emacs.d/init.el\" -f \"my/upgrade-packages\""; + + # Git log aliases from the omz git plugin + gl = "git pull"; + glg = "git log --stat"; + glgp = "git log --stat -p"; + glgg = "git log --graph"; + glgga = "git log --graph --decorate --all"; + glgm = "git log --graph --max-count=10"; + glo = "git log --oneline --decorate"; + glol = "git log --graph --pretty=\"%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset\""; + glols = "git log --graph --pretty=\"%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset\" --stat"; + glod = "git log --graph --pretty=\"%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset\""; + glods = "git log --graph --pretty=\"%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset\" --date=short"; + glola = "git log --graph --pretty=\"%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset\" --all"; + glog = "git log --oneline --decorate --graph"; + gloga = "git log --oneline --decorate --graph --all"; + }; + + initExtra = '' + # Taken from prezto tmux plugin + if [[ -z "$TMUX" && -z "$EMACS" && -z "$VIM" && -z "$INSIDE_EMACS" && -z "$SSH_TTY" ]]; then + tmux start-server + + if ! tmux has-session 2> /dev/null; then + tmux new-session -d -s "0" \; set-option -t "0" destroy-unattached off &> /dev/null + fi + + exec tmux -u attach-session -d + fi + + export FZF_DEFAULT_COMMAND='rg --files --no-ignore --hidden --follow -g "!{.git,node_modules}/*" 2> /dev/null' + export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND" + export FZF_ALT_C_COMMAND="rg --hidden --files --sort-files --null | xargs -0 dirname | sort -u" + if [ -d "~/fzf-git" ]; then + source ~/fzf-git/functions.sh + source ~/fzf-git/key-binding.zsh + fi + + autopair-init + enable-fzf-tab + bindkey '^[[A' history-substring-search-up + bindkey '^[[B' history-substring-search-down + + # disable sort when completing `git checkout` + zstyle ''\':completion:*:git-checkout:*''\' sort false + # set descriptions format to enable group support + zstyle ''\':completion:*:descriptions''\' format ''\'[%d]''\' + # Allow tab to expand aliases + zstyle ':completion:*' completer _expand_alias _complete _ignored + # set list-colors to enable filename colorizing + #zstyle ''\':completion:*''\' list-colors ''${(s.:.)LS_COLORS} + # preview directory''\'s content with exa when completing cd + zstyle ''\':fzf-tab:complete:cd:*''\' fzf-preview ''\'exa -1 --color=always ''$realpath''\' + # switch group using `,` and `.` + zstyle ''\':fzf-tab:*''\' switch-group ''\',''\' ''\'.''\' + + set -o noclobber append_history share_history + + function generate () { gopass generate -s -p $1 $((RANDOM % 14 + 45)) } + + [[ ! -f ~/.zsh.local ]] || source ~/.zsh.local + + [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh + ''; + + plugins = with pkgs; [ + { + name = "zsh-autopair"; + src = zsh-autopair; + file = "share/zsh/zsh-autopair/autopair.zsh"; + } + { + name = "zsh-fzf-tab"; + src = zsh-fzf-tab; + file = "share/fzf-tab/fzf-tab.zsh"; + } + { + name = "zsh-fast-syntax-highlighting"; + src = zsh-fast-syntax-highlighting; + file = "share/zsh/site-functions/fast-syntax-highlighting.plugin.zsh"; + } + { + name = "zsh-powerlevel10k"; + src = zsh-powerlevel10k; + file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme"; + } + { + name = "zsh-history-substring-search"; + src = zsh-history-substring-search; + file = "share/zsh-history-substring-search/zsh-history-substring-search.zsh"; + } + { + name = "forgit"; + src = fetchFromGitHub { + owner = "wfxr"; + repo = "forgit"; + rev = "810735294107ef1b1de66cf1cdfc358fc14049ac"; + sha256 = "11mydkl8psic57qzkzyjlff9wl6inwx9hn3a0vqyfr78pv6vk23y"; + }; + file = "forgit.plugin.zsh"; + } + { + name = "zsh-edit"; + src = fetchFromGitHub { + owner = "marlonrichert"; + repo = "zsh-edit"; + rev = "17b17e5f32fc69349cb9474cf591d5c74e399cdc"; + sha256 = "0nvb7jril7in5b0279z25vmlc0karhagmfsxpjw1rzni5qpyak1s"; + }; + file = "zsh-edit.plugin.zsh"; + } + ]; + }; +} + |