From 0a50d682ec85bf023bebd68a3ca388001f0c0677 Mon Sep 17 00:00:00 2001
From: Alan Pearce
Date: Tue, 8 Oct 2019 21:44:57 +0200
Subject: mv modules settings
---
user/modules/autorandr.nix | 8 --
user/modules/base.nix | 31 -------
user/modules/darwin.nix | 49 ----------
user/modules/development/base.nix | 29 ------
user/modules/development/lisp.nix | 13 ---
user/modules/dunst.nix | 57 ------------
user/modules/emacs.nix | 169 ----------------------------------
user/modules/gaming.nix | 45 ---------
user/modules/git.nix | 77 ----------------
user/modules/gnupg.nix | 8 --
user/modules/i3.nix | 149 ------------------------------
user/modules/isync.nix | 5 -
user/modules/javascript.nix | 59 ------------
user/modules/ledger.nix | 8 --
user/modules/msmtp.nix | 5 -
user/modules/nix.nix | 5 -
user/modules/nixos.nix | 21 -----
user/modules/nixpkgs.nix | 12 ---
user/modules/passwords.nix | 10 --
user/modules/rofi.nix | 25 -----
user/modules/satoshipay.nix | 55 -----------
user/modules/sxhkd.nix | 29 ------
user/modules/tabnine.nix | 57 ------------
user/modules/trezor.nix | 9 --
user/modules/user-interface.nix | 17 ----
user/modules/xresources.nix | 8 --
user/modules/zsh.nix | 181 -------------------------------------
user/prefect.nix | 38 ++++----
user/satoshipad.nix | 42 ++++-----
user/settings/autorandr.nix | 8 ++
user/settings/base.nix | 31 +++++++
user/settings/darwin.nix | 49 ++++++++++
user/settings/development/base.nix | 29 ++++++
user/settings/development/lisp.nix | 13 +++
user/settings/dunst.nix | 57 ++++++++++++
user/settings/emacs.nix | 169 ++++++++++++++++++++++++++++++++++
user/settings/gaming.nix | 45 +++++++++
user/settings/git.nix | 77 ++++++++++++++++
user/settings/gnupg.nix | 8 ++
user/settings/i3.nix | 149 ++++++++++++++++++++++++++++++
user/settings/isync.nix | 5 +
user/settings/javascript.nix | 59 ++++++++++++
user/settings/ledger.nix | 8 ++
user/settings/msmtp.nix | 5 +
user/settings/nix.nix | 5 +
user/settings/nixos.nix | 21 +++++
user/settings/nixpkgs.nix | 12 +++
user/settings/passwords.nix | 10 ++
user/settings/rofi.nix | 25 +++++
user/settings/satoshipay.nix | 55 +++++++++++
user/settings/sxhkd.nix | 29 ++++++
user/settings/tabnine.nix | 57 ++++++++++++
user/settings/trezor.nix | 9 ++
user/settings/user-interface.nix | 17 ++++
user/settings/xresources.nix | 8 ++
user/settings/zsh.nix | 181 +++++++++++++++++++++++++++++++++++++
user/trillian.nix | 24 ++---
57 files changed, 1193 insertions(+), 1193 deletions(-)
delete mode 100644 user/modules/autorandr.nix
delete mode 100644 user/modules/base.nix
delete mode 100644 user/modules/darwin.nix
delete mode 100644 user/modules/development/base.nix
delete mode 100644 user/modules/development/lisp.nix
delete mode 100644 user/modules/dunst.nix
delete mode 100644 user/modules/emacs.nix
delete mode 100644 user/modules/gaming.nix
delete mode 100644 user/modules/git.nix
delete mode 100644 user/modules/gnupg.nix
delete mode 100644 user/modules/i3.nix
delete mode 100644 user/modules/isync.nix
delete mode 100644 user/modules/javascript.nix
delete mode 100644 user/modules/ledger.nix
delete mode 100644 user/modules/msmtp.nix
delete mode 100644 user/modules/nix.nix
delete mode 100644 user/modules/nixos.nix
delete mode 100644 user/modules/nixpkgs.nix
delete mode 100644 user/modules/passwords.nix
delete mode 100644 user/modules/rofi.nix
delete mode 100644 user/modules/satoshipay.nix
delete mode 100644 user/modules/sxhkd.nix
delete mode 100644 user/modules/tabnine.nix
delete mode 100644 user/modules/trezor.nix
delete mode 100644 user/modules/user-interface.nix
delete mode 100644 user/modules/xresources.nix
delete mode 100644 user/modules/zsh.nix
create mode 100644 user/settings/autorandr.nix
create mode 100644 user/settings/base.nix
create mode 100644 user/settings/darwin.nix
create mode 100644 user/settings/development/base.nix
create mode 100644 user/settings/development/lisp.nix
create mode 100644 user/settings/dunst.nix
create mode 100644 user/settings/emacs.nix
create mode 100644 user/settings/gaming.nix
create mode 100644 user/settings/git.nix
create mode 100644 user/settings/gnupg.nix
create mode 100644 user/settings/i3.nix
create mode 100644 user/settings/isync.nix
create mode 100644 user/settings/javascript.nix
create mode 100644 user/settings/ledger.nix
create mode 100644 user/settings/msmtp.nix
create mode 100644 user/settings/nix.nix
create mode 100644 user/settings/nixos.nix
create mode 100644 user/settings/nixpkgs.nix
create mode 100644 user/settings/passwords.nix
create mode 100644 user/settings/rofi.nix
create mode 100644 user/settings/satoshipay.nix
create mode 100644 user/settings/sxhkd.nix
create mode 100644 user/settings/tabnine.nix
create mode 100644 user/settings/trezor.nix
create mode 100644 user/settings/user-interface.nix
create mode 100644 user/settings/xresources.nix
create mode 100644 user/settings/zsh.nix
(limited to 'user')
diff --git a/user/modules/autorandr.nix b/user/modules/autorandr.nix
deleted file mode 100644
index f63095a4..00000000
--- a/user/modules/autorandr.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ config, pkgs, ... }:
-
-{
- xdg.configFile.autorandr = {
- recursive = true;
- source = ../autorandr/.config/autorandr;
- };
-}
diff --git a/user/modules/base.nix b/user/modules/base.nix
deleted file mode 100644
index cc83cb47..00000000
--- a/user/modules/base.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ config, pkgs, ... }:
-
-{
- # Let Home Manager install and manage itself.
- programs.home-manager.enable = true;
- manual = {
- html.enable = true;
- };
- home.packages = with pkgs; [
- pv
- fd
- unstable.sd
- entr
- file
- htop
- lsof
- iftop
- nmap
- moreutils
- mtr
- tree
- zip
- telnet
- ] ++ (
- if !stdenv.isDarwin
- then [
- vim
- unar
- ] else [
- ]);
-}
diff --git a/user/modules/darwin.nix b/user/modules/darwin.nix
deleted file mode 100644
index b3c4d7d7..00000000
--- a/user/modules/darwin.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{ config, pkgs, ... }:
-
-{
- nixpkgs.overlays = [
- (self: super: {
- darwin-zsh-completions = super.runCommandNoCC "darwin-zsh-completions-0.0.0"
- { preferLocalBuild = true; }
- ''
- mkdir -p $out/share/zsh/site-functions
- cat <<-'EOF' > $out/share/zsh/site-functions/_darwin-rebuild
- #compdef darwin-rebuild
- #autoload
- _nix-common-options
- local -a _1st_arguments
- _1st_arguments=(
- 'switch:Build, activate, and update the current generation'\
- 'build:Build without activating or updating the current generation'\
- 'check:Build and run the activation sanity checks'\
- 'changelog:Show most recent entries in the changelog'\
- )
- _arguments \
- '--list-generations[Print a list of all generations in the active profile]'\
- '--rollback[Roll back to the previous configuration]'\
- {--switch-generation,-G}'[Activate specified generation]'\
- '(--profile-name -p)'{--profile-name,-p}'[Profile to use to track current and previous system configurations]:Profile:_nix_profiles'\
- '1:: :->subcmds' && return 0
- case $state in
- subcmds)
- _describe -t commands 'darwin-rebuild subcommands' _1st_arguments
- ;;
- esac
- EOF
- '';
- })
- ];
- home.packages = with pkgs; [
- aspell
- aspellDicts.en
- darwin-zsh-completions
- ];
-
- programs.zsh.shellAliases = {
- da = "darwin-rebuild";
- das = "darwin-rebuild switch";
- };
-
- # Use GPG from GPGTools
- programs.git.signing.gpgPath = "/usr/local/bin/gpg";
-}
diff --git a/user/modules/development/base.nix b/user/modules/development/base.nix
deleted file mode 100644
index 3ea20fc1..00000000
--- a/user/modules/development/base.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ config, pkgs, ... }:
-
-{ home.packages = with pkgs; [
- checkbashisms
- editorconfig-core-c
- go
-
- mosh
-
- wrk
-
- ag
- (ripgrep.override { withPCRE2 = true; })
-
- httpie
- jq
-
- discount
- ] ++ (
- if !stdenv.isDarwin
- then [
- ldns
- httping
- http-prompt
- firefox-devedition-bin
- ] else [
- ]
- );
-}
diff --git a/user/modules/development/lisp.nix b/user/modules/development/lisp.nix
deleted file mode 100644
index b8d465ee..00000000
--- a/user/modules/development/lisp.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ config, pkgs, ... }:
-
-{ home.packages = with pkgs; [
- ccl
- sbcl
- lispPackages.quicklisp
- asdf
- cl-launch
-
- dust
- pixie
- ];
-}
diff --git a/user/modules/dunst.nix b/user/modules/dunst.nix
deleted file mode 100644
index 6d74b51b..00000000
--- a/user/modules/dunst.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-{ config, pkgs, ... }:
-
-{
- services.dunst = {
- enable = true;
- settings = {
- global = {
- font = "Monospace 13";
- geometry = "300x10-10+30";
- follow = "none";
- sticky_history = "yes";
- history_length = 20;
- show_indicators = "yes";
- separator_height = 2;
- padding = 8;
- horizontal_padding = 8;
- idle_threshold = 30;
-
- indicate_hidden = "no";
-
- allow_markup = "yes";
- format = "%s\n%b";
- word_wrap = "yes";
- ignore_newline = "no";
-
- separator_color = "frame";
- };
- frame = {
- width = 1;
- color = "#383838";
- };
- shortcuts = {
- close = "mod4+apostrophe";
- close_all = "mod4+shift+apostrophe";
- history = "mod4+grave";
- context = "mod4+shift+period";
- };
- urgency_low = {
- background = "#b8b8b8";
- foreground = "#f8f8f8";
- timeout = 10;
- };
-
- urgency_normal = {
- background = "#7cafc2";
- foreground = "#f8f8f8";
- timeout = 10;
- };
-
- urgency_critical = {
- background = "#ab4642";
- foreground = "#f8f8f8";
- timeout = 0;
- };
- };
- };
-}
diff --git a/user/modules/emacs.nix b/user/modules/emacs.nix
deleted file mode 100644
index 9f542391..00000000
--- a/user/modules/emacs.nix
+++ /dev/null
@@ -1,169 +0,0 @@
-{ config, pkgs, lib, ... }:
-
-let
- inherit (pkgs) stdenv;
-
- pkgsUnstable = if stdenv.isDarwin then import {} else import {};
-
- editorScript = pkgs.writeScriptBin "edit" ''
- #!${pkgs.runtimeShell}
- if [ -z "$1" ]; then
- exec ${config.programs.emacs.finalPackage}/bin/emacsclient --create-frame --alternate-editor ${config.programs.emacs.finalPackage}/bin/emacs
- else
- exec ${config.programs.emacs.finalPackage}/bin/emacsclient --alternate-editor ${config.programs.emacs.finalPackage}/bin/emacs "$@"
- fi
- '';
- desktopApplicationFile = pkgs.writeTextFile {
- name = "emacsclient.desktop";
- destination = "/share/applications/emacsclient.desktop";
- text = ''
- [Desktop Entry]
- Name=Emacsclient
- GenericName=Text Editor
- Comment=Edit text
- MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
- Exec=${editorScript}/bin/edit %F
- Icon=emacs
- Type=Application
- Terminal=false
- Categories=Development;TextEditor;
- StartupWMClass=Emacs
- Keywords=Text;Editor;
- '';
- };
-in
-{
- programs.emacs = {
- enable = true;
- extraPackages = epkgs: (with epkgs; [
- ace-link
- all-the-icons
- almost-mono-themes
- add-node-modules-path
- ag
- all-the-icons
- amx
- auto-async-byte-compile
- avy
- basic-theme
- bash-completion
- caddyfile-mode
- company
- company-web
- company-tabnine
- counsel
- counsel-projectile
- crux
- docker-compose-mode
- dockerfile-mode
- dired-git-info
- editorconfig
- eink-theme
- eldoc-box
- emmet-mode
- esh-autosuggest
- esh-buf-stack
- esh-help
- eshell-fringe-status
- eshell-toggle
- eshell-up
- evil
- evil-collection
- evil-commentary
- evil-magit
- evil-mu4e
- evil-org
- evil-quickscope
- evil-space
- evil-surround
- eyebrowse
- feature-mode
- fish-completion
- flycheck
- flymake-diagnostic-at-point
- general
- git-gutter-fringe
- git-messenger
- git-timemachine
- gitattributes-mode
- gitconfig-mode
- gitignore-mode
- gitlab-ci-mode
- gitlab-ci-mode-flycheck
- goto-chg
- haskell-mode
- helpful
- ivy-hydra
- jinja2-mode
- js2-mode
- json-mode
- k8s-mode
- # kubernetes
- # kubernetes-evil
- ledger-mode
- lsp-mode
- lsp-ui
- lsp-haskell
- lsp-treemacs
- magit
- markdown-mode
- minions
- monotropic-theme
- moody
- nginx-mode
- nix-mode
- nix-update
- org-journal
- paredit
- php-mode
- posframe
- prettier-js
- projectile
- projectile-ripgrep
- quickrun
- rainbow-mode
- relative-buffers
- restclient
- ripgrep
- rjsx-mode
- scss-mode
- spacemacs-theme
- swiper
- toml-mode
- typescript-mode
- undo-tree
- use-package
- web-mode
- wgrep-ag
- ws-butler
- which-key
- yaml-mode
- ] ++ lib.optionals (!stdenv.isDarwin) [
- pkgs.mu
- ]);
- };
- home.packages = [
- editorScript
- ];
- nixpkgs.overlays = [
- (self: super: {
- emacsPackagesNgGen = pkgsUnstable.emacsPackagesNgGen;
- emacs = pkgsUnstable.emacs;
- })
- ];
- home.sessionVariables = {
- EDITOR = "${editorScript}/bin/edit";
- };
- home.file.".emacs.d/init.el" = {
- source = ../emacs/.emacs.d/init.el;
- onChange = ''
- ${config.programs.emacs.finalPackage}/bin/emacs -batch -f batch-byte-compile .emacs.d/init.el
- '';
- };
- home.file.".emacs.d/eshell/" = {
- recursive = true;
- source = ../emacs/.emacs.d/eshell;
- };
-
- home.file.".local/share/applications/emacsclient.desktop".source = desktopApplicationFile;
-}
diff --git a/user/modules/gaming.nix b/user/modules/gaming.nix
deleted file mode 100644
index 022846ca..00000000
--- a/user/modules/gaming.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ config, pkgs, ... }:
-
-{
- home.packages = with pkgs; [
- unstable.steam
- (
- unstable.winePackages.unstable.override {
- pngSupport = true;
- jpegSupport = true;
- tiffSupport = true;
- gettextSupport = true;
- fontconfigSupport = true;
- alsaSupport = true;
- gtkSupport = true;
- openglSupport = true;
- tlsSupport = true;
- gstreamerSupport = true;
- cupsSupport = true;
- colorManagementSupport = true;
- dbusSupport = true;
- mpg123Support = true;
- openalSupport = true;
- openclSupport = true;
- cairoSupport = true;
- odbcSupport = true;
- netapiSupport = true;
- cursesSupport = true;
- vaSupport = true;
- pcapSupport = true;
- v4lSupport = true;
- saneSupport = true;
- gsmSupport = true;
- gphoto2Support = true;
- ldapSupport = true;
- pulseaudioSupport = true;
- udevSupport = true;
- xineramaSupport = true;
- xmlSupport = true;
- vulkanSupport = true;
- sdlSupport = true;
- }
- )
- unstable.lutris
- ];
-}
diff --git a/user/modules/git.nix b/user/modules/git.nix
deleted file mode 100644
index 503b9e3f..00000000
--- a/user/modules/git.nix
+++ /dev/null
@@ -1,77 +0,0 @@
-{ config, pkgs, ... }:
-
-{
- home.packages = with pkgs; [
- gitAndTools.git-extras
- ];
- programs.git = {
- enable = true;
- userName = "Alan Pearce";
- userEmail = "alan@alanpearce.eu";
- extraConfig = {
- pull = {
- rebase = true;
- };
- push = {
- default = "current";
- followTags = true;
- };
- rebase = {
- autosquash = true;
- };
- rerere = {
- enable = true;
- };
- diff = {
- algorithm = "patience";
- tool = "icdiff";
- };
- difftool = {
- prompt = false;
- };
- "difftool.icdiff" = {
- cmd = "${pkgs.icdiff}/bin/icdiff --line-numbers $LOCAL $REMOTE";
- };
- "difftool.sopsdiffer" = {
- textconf = "${pkgs.sops}/bin/sops -d";
- };
- "merge.npm-merge-driver" = {
- name = "automatically merge npm lockfiles";
- driver = "npx npm-merge-driver merge %A %O %B %P";
- };
- remote = {
- autoSetupMerge = true;
- };
- "branch.master" = {
- rebase = false;
- };
- };
- signing = {
- key = "0xCD4BEB92A8D46583";
- };
- lfs = {
- enable = true;
- };
- aliases = {
- authors = "shortlog -s -n";
- mup = "merge FETCH_HEAD";
- rup = "rebase FETCH_HEAD";
- st = "status -sb";
- ci = "commit";
- br = "branch";
- co = "checkout";
- lasttag = "!sh -c 'git tag --sort=version:refname | grep \"^v\\\\?[0-9]\" | tail -n1'";
- pending = "!sh -c 'git log --oneline --grep=\"#\" ...$(git lasttag)'";
- lg = "log --pretty=format:'%Cred%h%Creset -%Creset %s %Cgreen(%cr) %C(bold blue)<%an> %Cred%d%Creset'";
- prl = "log --pretty=format:'%Cred%h%Creset -%Creset %s %Cgreen(%cr) %C(bold blue)<%an> %Cred%d%Creset' --grep='#'";
- ignored = "ls-files --others -i --exclude-standard";
- };
- ignores = [
- ".DS_Store"
- "*_flymake.*"
- "*~"
- "\#*\#"
- ".\#*"
- ];
- };
-}
diff --git a/user/modules/gnupg.nix b/user/modules/gnupg.nix
deleted file mode 100644
index 6dcb31f2..00000000
--- a/user/modules/gnupg.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ config, pkgs, ... }:
-
-{
- home.file.".gnupg" = {
- recursive = true;
- source = ../gnupg/.gnupg;
- };
-}
diff --git a/user/modules/i3.nix b/user/modules/i3.nix
deleted file mode 100644
index d83ee2e7..00000000
--- a/user/modules/i3.nix
+++ /dev/null
@@ -1,149 +0,0 @@
-{ config, pkgs, lib, ... }:
-
-{
- xdg.configFile.i3status = {
- recursive = true;
- source = ../i3/.config/i3status;
- };
- xsession.windowManager.i3 = let
- mod = "Mod4";
- mode_system = "System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown";
- locker = "${pkgs.xautolock}/bin/xautolock -locknow";
- in
- {
- enable = true;
- config = {
- modifier = mod;
- fonts = [ "Terminus 12px" ];
- floating = {
- criteria = [
- { class = "Pinentry$"; }
- ];
- };
- window = {
- titlebar = false;
- };
- keybindings = {
- "${mod}+Return" = "exec --no-startup-id xst";
- # kill focused window
- "${mod}+w" = "kill";
- "${mod}+Shift+w" = "kill";
-
- "--release ${mod}+Mod1+r" = "exec rofi -show run";
- "--release ${mod}+Shift+semicolon" = "exec rofi-pass";
- "--release ${mod}+space" = "exec \"rofi -show combi -combi-modi drun,window\"";
-
- # change focus
- "${mod}+h" = "focus left";
- "${mod}+j" = "focus down";
- "${mod}+k" = "focus up";
- "${mod}+l" = "focus right";
-
- "${mod}+1" = "workspace 1";
- "${mod}+2" = "workspace 2";
- "${mod}+3" = "workspace 3";
- "${mod}+4" = "workspace 4";
- "${mod}+5" = "workspace 5";
- "${mod}+6" = "workspace 6";
- "${mod}+7" = "workspace 7";
- "${mod}+8" = "workspace 8";
- "${mod}+9" = "workspace 9";
- "${mod}+0" = "workspace 10";
-
- # move focused window
- "${mod}+Shift+h" = "move left";
- "${mod}+Shift+j" = "move down";
- "${mod}+Shift+k" = "move up";
- "${mod}+Shift+l" = "move right";
-
- "${mod}+Shift+1" = "move container to workspace 1";
- "${mod}+Shift+2" = "move container to workspace 2";
- "${mod}+Shift+3" = "move container to workspace 3";
- "${mod}+Shift+4" = "move container to workspace 4";
- "${mod}+Shift+5" = "move container to workspace 5";
- "${mod}+Shift+6" = "move container to workspace 6";
- "${mod}+Shift+7" = "move container to workspace 7";
- "${mod}+Shift+8" = "move container to workspace 8";
- "${mod}+Shift+9" = "move container to workspace 9";
-
-
- # move workspace
- "${mod}+Mod1+h" = "move workspace to output left";
- "${mod}+Mod1+j" = "move workspace to output down";
- "${mod}+Mod1+k" = "move workspace to output up";
- "${mod}+Mod1+l" = "move workspace to output right";
-
- # split in horizontal orientation
- "${mod}+b" = "split h";
-
- # split in vertical orientation
- "${mod}+v" = "split v";
-
- "${mod}+F11" = "fullscreen toggle";
- "${mod}+f" = "fullscreen toggle";
-
- # change container layout (stacked, tabbed, toggle split)
- "${mod}+Shift+s" = "layout stacking";
- "${mod}+Shift+t" = "layout tabbed";
- "${mod}+Shift+v" = "layout toggle split";
-
- # toggle tiling / floating
- "${mod}+Shift+f" = "floating toggle";
-
- # change focus between tiling / floating windows
- "${mod}+Tab" = "focus mode_toggle";
-
- # focus the parent container
- "${mod}+a" = "focus parent";
-
- # focus the child container
- "${mod}+d" = "focus child";
-
- "${mod}+Shift+c" = "reload";
- "${mod}+Shift+p" = "restart";
-
- "${mod}+Shift+r" = "mode resize";
- "${mod}+Shift+o" = "exec ${locker}";
- "${mod}+Pause" = "mode \"${mode_system}\"";
- "${mod}+Escape" = "mode \"${mode_system}\"";
- "${mod}+Shift+q" = "mode \"${mode_system}\"";
- };
-
- modes = {
- resize = {
- "h" = "resize shrink width 10 px or 10 ppt";
- "j" = "resize grow height 10 px or 10 ppt";
- "k" = "resize shrink height 10 px or 10 ppt";
- "l" = "resize grow width 10 px or 10 ppt";
-
- "Left" = "resize shrink width 10 px or 10 ppt";
- "Down" = "resize grow height 10 px or 10 ppt";
- "Up" = "resize shrink height 10 px or 10 ppt";
- "Right" = "resize grow width 10 px or 10 ppt";
-
- "Return" = "mode default";
- "Escape" = "mode default";
- };
- "${mode_system}" = {
- "l" = "exec --no-startup-id ${locker}, mode default";
- "e" = "exec --no-startup-id i3-msg exit, mode default";
- "s" = "exec --no-startup-id systemctl suspend, mode default";
- "h" = "exec --no-startup-id systemctl hibernate, mode default";
- "r" = "exec --no-startup-id systemctl reboot, mode default";
- "Shift+s" = "exec --no-startup-id systemctl poweroff -i, mode default";
- "Return" = "mode default";
- "Escape" = "mode default";
- };
- };
-
- bars = [
- {
- fonts = [ "Terminus 12px" ];
- position = "top";
- hiddenState = "show";
- statusCommand = "${pkgs.i3status}/bin/i3status -c ~/.config/i3status/config";
- }
- ];
- };
- };
-}
diff --git a/user/modules/isync.nix b/user/modules/isync.nix
deleted file mode 100644
index b96db87d..00000000
--- a/user/modules/isync.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{ config, pkgs, ... }:
-
-{
- home.file.".mbsyncrc".source = ../isync/.mbsyncrc;
-}
diff --git a/user/modules/javascript.nix b/user/modules/javascript.nix
deleted file mode 100644
index 4c75ea10..00000000
--- a/user/modules/javascript.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ config, pkgs, ... }:
-
-let
- node = pkgs.unstable.nodejs-10_x;
- npmPackages = pkgs.unstable.nodePackages_10_x;
- node2nixPackages = import ../packages/node2nix/default.nix {
- pkgs = pkgs.unstable;
- nodejs = node;
- };
-in
-{ home.packages = (with pkgs.unstable; [
- node
- ] ++ (
- if stdenv.isDarwin
- then
- [
- ]
- else
- [
- # npm install may use any of these
- binutils
- gcc
- gnumake
- python2
- ]
- )) ++ (with npmPackages; [
- node-gyp
- node-gyp-build
- node-pre-gyp
-
- tern
- node2nix
- nodemon
- javascript-typescript-langserver
- typescript-language-server
- vscode-css-languageserver-bin
- vscode-html-languageserver-bin
- csslint
- eslint_d
- prettier
- typescript
-
- node2nixPackages.bunyan
- node2nixPackages.pino-pretty
- node2nixPackages."pnpm-3.6.2"
- node2nixPackages.prettier_d
- node2nixPackages.dockerfile-language-server-nodejs
- node2nixPackages.yaml-language-server
- ]);
- home.file.".npmrc".text = ''
- prefix=''${HOME}/.local
- //registry.npmjs.org/:_authToken=''${NPM_AUTH_TOKEN}
- always-auth=true
- sign-git-tag=true
- rebuild-bundle=false
- update-notifier=false
- registry=https://registry.npmjs.org/
- '';
-}
diff --git a/user/modules/ledger.nix b/user/modules/ledger.nix
deleted file mode 100644
index 61d3df7e..00000000
--- a/user/modules/ledger.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ config, pkgs, ... }:
-
-{
- home.file.".ledgerrc".text = ''
- --date-format %F
- --start-of-week 1
- '';
-}
diff --git a/user/modules/msmtp.nix b/user/modules/msmtp.nix
deleted file mode 100644
index 45c2f460..00000000
--- a/user/modules/msmtp.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{ config, pkgs, ... }:
-
-{
- home.file.".msmtprc".source = ../msmtp/.msmtprc;
-}
diff --git a/user/modules/nix.nix b/user/modules/nix.nix
deleted file mode 100644
index d0de3cab..00000000
--- a/user/modules/nix.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{ config, pkgs, ... }:
-
-{
- nixpkgs.config = import ../config.nix;
-}
diff --git a/user/modules/nixos.nix b/user/modules/nixos.nix
deleted file mode 100644
index 64b523b8..00000000
--- a/user/modules/nixos.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ config, pkgs, ... }:
-
-{
- imports = [
- ./nix.nix
- ];
- nixpkgs.overlays = [
- (self: super: {
- unstable = import {
- config = config.nixpkgs.config;
- };
- })
- ];
-
- programs.zsh.shellAliases = {
- nor = "nixos-rebuild";
- nors = "nixos-rebuild switch";
- norb = "nixos-rebuild boot";
- norr = "nixos-rebuild switch --rollback";
- };
-}
diff --git a/user/modules/nixpkgs.nix b/user/modules/nixpkgs.nix
deleted file mode 100644
index b89579e1..00000000
--- a/user/modules/nixpkgs.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ config, pkgs, ... }:
-
-{
- imports = [
- ./nix.nix
- ];
- nixpkgs.overlays = [
- (self: super: {
- unstable = self;
- })
- ];
-}
diff --git a/user/modules/passwords.nix b/user/modules/passwords.nix
deleted file mode 100644
index 72493cef..00000000
--- a/user/modules/passwords.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ config, pkgs, ... }:
-
-{
- home.packages = with pkgs.unstable; [
- keepassx-community
- rofi-pass
- pass-otp
- pwgen
- ];
-}
diff --git a/user/modules/rofi.nix b/user/modules/rofi.nix
deleted file mode 100644
index b34af881..00000000
--- a/user/modules/rofi.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ config, pkgs, ... }:
-
-{
- xdg.configFile."networkmanager-dmenu/config.ini".text = ''
- [dmenu]
- dmenu_command = /run/current-system/sw/bin/rofi
-
- [editor]
- terminal = xst
- gui_if_available = false
- '';
- programs.rofi = {
- enable = true;
- extraConfig = ''
- rofi.matching: glob
- rofi.separator-style: none
-
- rofi.line-padding: 2
-
- rofi.display-run: cmd
- rofi.display-drun: run
- rofi.display-window: win
- '';
- };
-}
diff --git a/user/modules/satoshipay.nix b/user/modules/satoshipay.nix
deleted file mode 100644
index 6516bd59..00000000
--- a/user/modules/satoshipay.nix
+++ /dev/null
@@ -1,55 +0,0 @@
-{ config, pkgs, ... }:
-
-let
- inherit (pkgs) stdenv;
- spGitConfig = {
- user.email = "alan@satoshipay.io";
- };
-in
-{
- imports = [
- ./javascript.nix
- ];
-
- home.sessionVariables = {
- KUBECTX_IGNORE_FZF = "1";
- };
- home.packages = with pkgs; ([
- caddy
- openssl
- mongodb-tools
- pgcli
- s3cmd
- sops
-
- unstable.mkcert
- unstable.google-cloud-sdk
- unstable.docker_compose
- unstable.kubernetes
- unstable.kubectx
- unstable.kubernetes-helm
- unstable.helmfile
- ] ++ (lib.optionals (!stdenv.isDarwin)
- [
- pgadmin
-
- unstable.redis-desktop-manager
- unstable.robo3t
- unstable.slack
- ]));
-
- programs.git.includes = [
- {
- condition = "gitdir:~/projects/github.com/satoshipay/";
- contents = spGitConfig;
- }
- {
- condition = "gitdir:~/projects/gitlab.satoshipay.tech";
- contents = spGitConfig;
- }
- ];
-
- home.file.".npmrc".text = ''
- @satoshipay:registry=https://registry.npmjs.org/
- '';
-}
diff --git a/user/modules/sxhkd.nix b/user/modules/sxhkd.nix
deleted file mode 100644
index 7160ec08..00000000
--- a/user/modules/sxhkd.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ config, pkgs, ... }:
-
-{
- xdg.configFile."sxhkd/sxhkdrc".text = ''
- XF86AudioMute
- pamixer --toggle-mute
-
- XF86Audio{Lower,Raise}Volume
- pamixer --{decrease,increase} 1
-
- @XF86AudioMicMute
- pamixer --source 2 --toggle-mute
-
- XF86MonBrightness{Down,Up}
- light -{U,A} 2%
-
- XF86Display
- disper -C
-
- XF86AudioPlay
- cmus-remote --pause
-
- XF86Audio{Prev,Next}
- cmus-remote --{prev,next}
-
- XF86Tools
- networkmanager_dmenu
- '';
-}
diff --git a/user/modules/tabnine.nix b/user/modules/tabnine.nix
deleted file mode 100644
index 8018bcca..00000000
--- a/user/modules/tabnine.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-{ config, pkgs, ... }:
-
-let
- cfg = {
- config = {
- "language.typescript" = {
- command = "typescript-language-server";
- args = ["--stdio"];
- };
- "language.javascript" = {
- command = "javascript-typescript-stdio";
- args = ["--stdio"];
- };
- "language.css" = {
- command = "css-languageserver";
- args = ["--stdio"];
- };
- "language.scss" = {
- command = "css-languageserver";
- args = ["--stdio"];
- };
- "language.html" = {
- command = "html-languageserver";
- args = ["--stdio"];
- };
- "language.dockerfile" = {
- command = "docker-langserver";
- args = ["--stdio"];
- };
- "language.yaml" = {
- command = "yaml-language-server";
- args = ["--stdio"];
- };
- "language.haskell" = {
- command = "hie";
- args = ["--stdio"];
- };
- };
- };
- configFile = config:
- pkgs.runCommand "TabNine.toml"
- {
- buildInputs = [ pkgs.remarshal ];
- preferLocalBuild = true;
- allowSubstitutes = false;
- }
- ''
- remarshal -if json -of toml \
- < ${pkgs.writeText "config.json" (builtins.toJSON cfg.config)} \
- > $out
- '';
-in
-{
- xdg.configFile."TabNine/TabNine.toml" = {
- source = configFile cfg.config;
- };
-}
diff --git a/user/modules/trezor.nix b/user/modules/trezor.nix
deleted file mode 100644
index a4f3ba75..00000000
--- a/user/modules/trezor.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ config, pkgs, ... }:
-
-{
- home.file.".ssh/agent.config" = {
- text = ''
- ecdsa-curve-name = ed25519
- '';
- };
-}
diff --git a/user/modules/user-interface.nix b/user/modules/user-interface.nix
deleted file mode 100644
index 31ba349d..00000000
--- a/user/modules/user-interface.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ config, pkgs, ... }:
-
-let
- inherit (pkgs) stdenv;
-in
-{
- home.sessionVariables = {
- TERMINAL = "${pkgs.unstable.xst}/bin/xst";
- };
-
- home.packages = with pkgs; [
- unstable.xst # st, but with support for XResources
- ] ++ lib.optionals (!stdenv.isDarwin) [
- pkgs.sshfs
- pkgs.unstable.mu
- ];
-}
diff --git a/user/modules/xresources.nix b/user/modules/xresources.nix
deleted file mode 100644
index 475113de..00000000
--- a/user/modules/xresources.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ config, pkgs, ... }:
-
-{
- home.file.".xresources" = {
- recursive = true;
- source = ../xresources/.xresources;
- };
-}
diff --git a/user/modules/zsh.nix b/user/modules/zsh.nix
deleted file mode 100644
index 467c426b..00000000
--- a/user/modules/zsh.nix
+++ /dev/null
@@ -1,181 +0,0 @@
-{ config, pkgs, ... }:
-
-let
- inherit (pkgs) stdenv;
- lsOptions = if stdenv.isDarwin then "-p" else "-v --group-directories-first";
- lsIsoDate = if stdenv.isDarwin then "" else "--time-style=long-iso";
-in
-{
- home.file = {
- ".rm_recycle_home".text = ""; # use trash automatically in home directory
- };
- home.packages = with pkgs; [
- fzf
- ghq
- ] ++ (if stdenv.isDarwin
- then []
- else [
- pkgs.git
- ]);
- xdg.configFile.zsh = {
- recursive = true;
- source = ../zsh/.config/zsh;
- };
-
- home.file.".zplugin/bin" = {
- source = pkgs.fetchFromGitHub {
- owner = "zdharma";
- repo = "zplugin";
- rev = "028b1e1d6d3eae204b499c7f815f4eeeb5051517";
- sha256 = "1ynh323905iia3gwi9qghbywp94x306nna1yqk37frj5g7kg90fa";
- };
- };
-
- programs.zsh = {
- enable = true;
-
- enableAutosuggestions = true;
- enableCompletion = true;
- defaultKeymap = "emacs";
-
- dotDir = ".config/zsh";
-
- history = {
- expireDuplicatesFirst = true;
- extended = true;
- path = ".cache/zsh/history";
- save = 20000;
- size = 10000;
- };
-
- localVariables = {
- ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE = "fg=7";
- };
-
- shellAliases = {
- l = "ls ${lsOptions} -Bp";
- l1="ls -1";
- ls="ls ${lsOptions} -hF";
- la="ls ${lsOptions} -hA";
- ll="ls ${lsOptions} ${lsIsoDate} -hl";
- lal="ll -A";
- lla="lal";
- llr="ll -t";
-
- https = "http --default-scheme https";
- kns = "kubens";
- kx = "kubectx";
- ava = "pnpx ava";
- avt = "pnpx ava --tap";
- avat = "pnpx ava --tap";
- pino = "pino-pretty";
- mocha = "pnpx mocha";
- prettier = "pnpx prettier";
- standard = "pnpx standard";
- tsc = "pnpx tsc";
- tslint = "pnpx tslint";
- tsnode = "pnpx ts-node";
-
- history = "fc -l $(( $LINES - 2 ))";
- hist-freq-lines = "fc -l -2000 | cut -d' ' -f4- | sort | uniq -c | sort -g | tail -n100 | less";
- hist-freq-commands = "fc -l -2000 | cut -d' ' -f4 | sort | uniq -c | sort -g | tail -n10 | less";
- wprop = "xprop | egrep '^WM_(CLASS|NAME|WINDOW_ROLE|TYPE)'";
-
- # Enable the following commands to support aliases.
- sudo = "sudo ";
- watch = "watch ";
-
- g = "rg";
-
- ga = "git add";
- gi = "git";
- gs = "git st";
- gd = "git diff";
- gf = "git fetch";
- gk = "git push";
- gj = "git pull";
- gl = "git lg";
- gr = "git remote";
- gz = "git stash";
- gzl = "git stash list";
- gzp = "git stash pop";
- gdt = "git difftool";
- grl = "git reflog";
- gri = "git rebase --interactive";
- grs = "git reset";
- grsh = "git reset --hard";
- gsh = "git show";
- gsm = "git submodule";
- gci = "git commit";
- gco = "git checkout";
- gbr = "git br";
- gbrc = "git checkout -b";
- gbrd = "git branch --delete";
- gbrm = "git branch --move";
- gmup = "git mup";
- grup = "git rup";
-
- hos = "home-manager switch";
- hon = "home-manager news";
- hoh = "home-manager-help";
-
- n = "nix-env";
- ni = "nix-env -iA";
- nq = "nix-env -q";
- ne = "nix-env -e";
- nup = "nix-env -u";
- ngc = "nix-collect-garbage --delete-older-than 14d";
- };
-
- # move to envExtra after 19.09
- initExtra = ''
- case $OSTYPE in
- darwin*)
- os=darwin
- ;;
- linux-gnu)
- os=linux
- ;;
- freebsd*)
- os=freebsd
- ;;
- *)
- os=unknown
- ;;
- esac
-
- case $MACHTYPE in
- *64)
- arch=amd64
- ;;
- *)
- arch=386
- ;;
- esac
- if [[ ''${path[(I)$HOME/.local/bin ]} ]]
- then
- path+=($HOME/.local/bin)
- fi
-
- if [[ ''${path[(I)$HOME/go/bin ]} ]]
- then
- path+=($HOME/go/bin)
- fi
-
- if [[ $HOST =~ satoshi ]]
- then
- EMAIL=alan@satoshipay.io
- else
- EMAIL=alan@alanpearce.eu
- fi
-
- typeset -T GHQ_ROOT ghq_root
- export GHQ_ROOT="$HOME/projects:$HOME/go/src:$HOME/quicklisp/local-projects"
-
- function hist-freq-subcommands () {
- fc -l -m "$1*" -2000 | cut -d' ' -f4- | sort | uniq -c | sort -g | tail -n100 | less
- }
-
- '' + builtins.readFile ../zsh/.config/zsh/.zshrc;
- };
-}
diff --git a/user/prefect.nix b/user/prefect.nix
index 3ad2ccc0..00005162 100644
--- a/user/prefect.nix
+++ b/user/prefect.nix
@@ -2,24 +2,24 @@
{
imports = [
- ./modules/base.nix
- ./modules/dunst.nix
- ./modules/emacs.nix
- ./modules/development/base.nix
- ./modules/development/lisp.nix
- ./modules/gaming.nix
- ./modules/git.nix
- ./modules/gnupg.nix
- ./modules/i3.nix
- ./modules/javascript.nix
- ./modules/nixos.nix
- ./modules/rofi.nix
- ./modules/passwords.nix
- ./modules/satoshipay.nix
- ./modules/sxhkd.nix
- ./modules/tabnine.nix
- ./modules/user-interface.nix
- ./modules/xresources.nix
- ./modules/zsh.nix
+ ./settings/base.nix
+ ./settings/dunst.nix
+ ./settings/emacs.nix
+ ./settings/development/base.nix
+ ./settings/development/lisp.nix
+ ./settings/gaming.nix
+ ./settings/git.nix
+ ./settings/gnupg.nix
+ ./settings/i3.nix
+ ./settings/javascript.nix
+ ./settings/nixos.nix
+ ./settings/rofi.nix
+ ./settings/passwords.nix
+ ./settings/satoshipay.nix
+ ./settings/sxhkd.nix
+ ./settings/tabnine.nix
+ ./settings/user-interface.nix
+ ./settings/xresources.nix
+ ./settings/zsh.nix
];
}
diff --git a/user/satoshipad.nix b/user/satoshipad.nix
index 5f26c36d..3dda7bd1 100644
--- a/user/satoshipad.nix
+++ b/user/satoshipad.nix
@@ -2,27 +2,27 @@
{
imports = [
- ./modules/autorandr.nix
- ./modules/base.nix
- ./modules/development/base.nix
- ./modules/dunst.nix
- ./modules/emacs.nix
- ./modules/git.nix
- ./modules/gnupg.nix
- ./modules/i3.nix
- ./modules/isync.nix
- ./modules/javascript.nix
- ./modules/msmtp.nix
- ./modules/nixos.nix
- ./modules/rofi.nix
- ./modules/passwords.nix
- ./modules/satoshipay.nix
- ./modules/sxhkd.nix
- ./modules/tabnine.nix
- ./modules/trezor.nix
- ./modules/user-interface.nix
- ./modules/xresources.nix
- ./modules/zsh.nix
+ ./settings/autorandr.nix
+ ./settings/base.nix
+ ./settings/development/base.nix
+ ./settings/dunst.nix
+ ./settings/emacs.nix
+ ./settings/git.nix
+ ./settings/gnupg.nix
+ ./settings/i3.nix
+ ./settings/isync.nix
+ ./settings/javascript.nix
+ ./settings/msmtp.nix
+ ./settings/nixos.nix
+ ./settings/rofi.nix
+ ./settings/passwords.nix
+ ./settings/satoshipay.nix
+ ./settings/sxhkd.nix
+ ./settings/tabnine.nix
+ ./settings/trezor.nix
+ ./settings/user-interface.nix
+ ./settings/xresources.nix
+ ./settings/zsh.nix
];
xsession.windowManager.i3 = {
diff --git a/user/settings/autorandr.nix b/user/settings/autorandr.nix
new file mode 100644
index 00000000..f63095a4
--- /dev/null
+++ b/user/settings/autorandr.nix
@@ -0,0 +1,8 @@
+{ config, pkgs, ... }:
+
+{
+ xdg.configFile.autorandr = {
+ recursive = true;
+ source = ../autorandr/.config/autorandr;
+ };
+}
diff --git a/user/settings/base.nix b/user/settings/base.nix
new file mode 100644
index 00000000..cc83cb47
--- /dev/null
+++ b/user/settings/base.nix
@@ -0,0 +1,31 @@
+{ config, pkgs, ... }:
+
+{
+ # Let Home Manager install and manage itself.
+ programs.home-manager.enable = true;
+ manual = {
+ html.enable = true;
+ };
+ home.packages = with pkgs; [
+ pv
+ fd
+ unstable.sd
+ entr
+ file
+ htop
+ lsof
+ iftop
+ nmap
+ moreutils
+ mtr
+ tree
+ zip
+ telnet
+ ] ++ (
+ if !stdenv.isDarwin
+ then [
+ vim
+ unar
+ ] else [
+ ]);
+}
diff --git a/user/settings/darwin.nix b/user/settings/darwin.nix
new file mode 100644
index 00000000..b3c4d7d7
--- /dev/null
+++ b/user/settings/darwin.nix
@@ -0,0 +1,49 @@
+{ config, pkgs, ... }:
+
+{
+ nixpkgs.overlays = [
+ (self: super: {
+ darwin-zsh-completions = super.runCommandNoCC "darwin-zsh-completions-0.0.0"
+ { preferLocalBuild = true; }
+ ''
+ mkdir -p $out/share/zsh/site-functions
+ cat <<-'EOF' > $out/share/zsh/site-functions/_darwin-rebuild
+ #compdef darwin-rebuild
+ #autoload
+ _nix-common-options
+ local -a _1st_arguments
+ _1st_arguments=(
+ 'switch:Build, activate, and update the current generation'\
+ 'build:Build without activating or updating the current generation'\
+ 'check:Build and run the activation sanity checks'\
+ 'changelog:Show most recent entries in the changelog'\
+ )
+ _arguments \
+ '--list-generations[Print a list of all generations in the active profile]'\
+ '--rollback[Roll back to the previous configuration]'\
+ {--switch-generation,-G}'[Activate specified generation]'\
+ '(--profile-name -p)'{--profile-name,-p}'[Profile to use to track current and previous system configurations]:Profile:_nix_profiles'\
+ '1:: :->subcmds' && return 0
+ case $state in
+ subcmds)
+ _describe -t commands 'darwin-rebuild subcommands' _1st_arguments
+ ;;
+ esac
+ EOF
+ '';
+ })
+ ];
+ home.packages = with pkgs; [
+ aspell
+ aspellDicts.en
+ darwin-zsh-completions
+ ];
+
+ programs.zsh.shellAliases = {
+ da = "darwin-rebuild";
+ das = "darwin-rebuild switch";
+ };
+
+ # Use GPG from GPGTools
+ programs.git.signing.gpgPath = "/usr/local/bin/gpg";
+}
diff --git a/user/settings/development/base.nix b/user/settings/development/base.nix
new file mode 100644
index 00000000..3ea20fc1
--- /dev/null
+++ b/user/settings/development/base.nix
@@ -0,0 +1,29 @@
+{ config, pkgs, ... }:
+
+{ home.packages = with pkgs; [
+ checkbashisms
+ editorconfig-core-c
+ go
+
+ mosh
+
+ wrk
+
+ ag
+ (ripgrep.override { withPCRE2 = true; })
+
+ httpie
+ jq
+
+ discount
+ ] ++ (
+ if !stdenv.isDarwin
+ then [
+ ldns
+ httping
+ http-prompt
+ firefox-devedition-bin
+ ] else [
+ ]
+ );
+}
diff --git a/user/settings/development/lisp.nix b/user/settings/development/lisp.nix
new file mode 100644
index 00000000..b8d465ee
--- /dev/null
+++ b/user/settings/development/lisp.nix
@@ -0,0 +1,13 @@
+{ config, pkgs, ... }:
+
+{ home.packages = with pkgs; [
+ ccl
+ sbcl
+ lispPackages.quicklisp
+ asdf
+ cl-launch
+
+ dust
+ pixie
+ ];
+}
diff --git a/user/settings/dunst.nix b/user/settings/dunst.nix
new file mode 100644
index 00000000..6d74b51b
--- /dev/null
+++ b/user/settings/dunst.nix
@@ -0,0 +1,57 @@
+{ config, pkgs, ... }:
+
+{
+ services.dunst = {
+ enable = true;
+ settings = {
+ global = {
+ font = "Monospace 13";
+ geometry = "300x10-10+30";
+ follow = "none";
+ sticky_history = "yes";
+ history_length = 20;
+ show_indicators = "yes";
+ separator_height = 2;
+ padding = 8;
+ horizontal_padding = 8;
+ idle_threshold = 30;
+
+ indicate_hidden = "no";
+
+ allow_markup = "yes";
+ format = "%s\n%b";
+ word_wrap = "yes";
+ ignore_newline = "no";
+
+ separator_color = "frame";
+ };
+ frame = {
+ width = 1;
+ color = "#383838";
+ };
+ shortcuts = {
+ close = "mod4+apostrophe";
+ close_all = "mod4+shift+apostrophe";
+ history = "mod4+grave";
+ context = "mod4+shift+period";
+ };
+ urgency_low = {
+ background = "#b8b8b8";
+ foreground = "#f8f8f8";
+ timeout = 10;
+ };
+
+ urgency_normal = {
+ background = "#7cafc2";
+ foreground = "#f8f8f8";
+ timeout = 10;
+ };
+
+ urgency_critical = {
+ background = "#ab4642";
+ foreground = "#f8f8f8";
+ timeout = 0;
+ };
+ };
+ };
+}
diff --git a/user/settings/emacs.nix b/user/settings/emacs.nix
new file mode 100644
index 00000000..9f542391
--- /dev/null
+++ b/user/settings/emacs.nix
@@ -0,0 +1,169 @@
+{ config, pkgs, lib, ... }:
+
+let
+ inherit (pkgs) stdenv;
+
+ pkgsUnstable = if stdenv.isDarwin then import {} else import {};
+
+ editorScript = pkgs.writeScriptBin "edit" ''
+ #!${pkgs.runtimeShell}
+ if [ -z "$1" ]; then
+ exec ${config.programs.emacs.finalPackage}/bin/emacsclient --create-frame --alternate-editor ${config.programs.emacs.finalPackage}/bin/emacs
+ else
+ exec ${config.programs.emacs.finalPackage}/bin/emacsclient --alternate-editor ${config.programs.emacs.finalPackage}/bin/emacs "$@"
+ fi
+ '';
+ desktopApplicationFile = pkgs.writeTextFile {
+ name = "emacsclient.desktop";
+ destination = "/share/applications/emacsclient.desktop";
+ text = ''
+ [Desktop Entry]
+ Name=Emacsclient
+ GenericName=Text Editor
+ Comment=Edit text
+ MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
+ Exec=${editorScript}/bin/edit %F
+ Icon=emacs
+ Type=Application
+ Terminal=false
+ Categories=Development;TextEditor;
+ StartupWMClass=Emacs
+ Keywords=Text;Editor;
+ '';
+ };
+in
+{
+ programs.emacs = {
+ enable = true;
+ extraPackages = epkgs: (with epkgs; [
+ ace-link
+ all-the-icons
+ almost-mono-themes
+ add-node-modules-path
+ ag
+ all-the-icons
+ amx
+ auto-async-byte-compile
+ avy
+ basic-theme
+ bash-completion
+ caddyfile-mode
+ company
+ company-web
+ company-tabnine
+ counsel
+ counsel-projectile
+ crux
+ docker-compose-mode
+ dockerfile-mode
+ dired-git-info
+ editorconfig
+ eink-theme
+ eldoc-box
+ emmet-mode
+ esh-autosuggest
+ esh-buf-stack
+ esh-help
+ eshell-fringe-status
+ eshell-toggle
+ eshell-up
+ evil
+ evil-collection
+ evil-commentary
+ evil-magit
+ evil-mu4e
+ evil-org
+ evil-quickscope
+ evil-space
+ evil-surround
+ eyebrowse
+ feature-mode
+ fish-completion
+ flycheck
+ flymake-diagnostic-at-point
+ general
+ git-gutter-fringe
+ git-messenger
+ git-timemachine
+ gitattributes-mode
+ gitconfig-mode
+ gitignore-mode
+ gitlab-ci-mode
+ gitlab-ci-mode-flycheck
+ goto-chg
+ haskell-mode
+ helpful
+ ivy-hydra
+ jinja2-mode
+ js2-mode
+ json-mode
+ k8s-mode
+ # kubernetes
+ # kubernetes-evil
+ ledger-mode
+ lsp-mode
+ lsp-ui
+ lsp-haskell
+ lsp-treemacs
+ magit
+ markdown-mode
+ minions
+ monotropic-theme
+ moody
+ nginx-mode
+ nix-mode
+ nix-update
+ org-journal
+ paredit
+ php-mode
+ posframe
+ prettier-js
+ projectile
+ projectile-ripgrep
+ quickrun
+ rainbow-mode
+ relative-buffers
+ restclient
+ ripgrep
+ rjsx-mode
+ scss-mode
+ spacemacs-theme
+ swiper
+ toml-mode
+ typescript-mode
+ undo-tree
+ use-package
+ web-mode
+ wgrep-ag
+ ws-butler
+ which-key
+ yaml-mode
+ ] ++ lib.optionals (!stdenv.isDarwin) [
+ pkgs.mu
+ ]);
+ };
+ home.packages = [
+ editorScript
+ ];
+ nixpkgs.overlays = [
+ (self: super: {
+ emacsPackagesNgGen = pkgsUnstable.emacsPackagesNgGen;
+ emacs = pkgsUnstable.emacs;
+ })
+ ];
+ home.sessionVariables = {
+ EDITOR = "${editorScript}/bin/edit";
+ };
+ home.file.".emacs.d/init.el" = {
+ source = ../emacs/.emacs.d/init.el;
+ onChange = ''
+ ${config.programs.emacs.finalPackage}/bin/emacs -batch -f batch-byte-compile .emacs.d/init.el
+ '';
+ };
+ home.file.".emacs.d/eshell/" = {
+ recursive = true;
+ source = ../emacs/.emacs.d/eshell;
+ };
+
+ home.file.".local/share/applications/emacsclient.desktop".source = desktopApplicationFile;
+}
diff --git a/user/settings/gaming.nix b/user/settings/gaming.nix
new file mode 100644
index 00000000..022846ca
--- /dev/null
+++ b/user/settings/gaming.nix
@@ -0,0 +1,45 @@
+{ config, pkgs, ... }:
+
+{
+ home.packages = with pkgs; [
+ unstable.steam
+ (
+ unstable.winePackages.unstable.override {
+ pngSupport = true;
+ jpegSupport = true;
+ tiffSupport = true;
+ gettextSupport = true;
+ fontconfigSupport = true;
+ alsaSupport = true;
+ gtkSupport = true;
+ openglSupport = true;
+ tlsSupport = true;
+ gstreamerSupport = true;
+ cupsSupport = true;
+ colorManagementSupport = true;
+ dbusSupport = true;
+ mpg123Support = true;
+ openalSupport = true;
+ openclSupport = true;
+ cairoSupport = true;
+ odbcSupport = true;
+ netapiSupport = true;
+ cursesSupport = true;
+ vaSupport = true;
+ pcapSupport = true;
+ v4lSupport = true;
+ saneSupport = true;
+ gsmSupport = true;
+ gphoto2Support = true;
+ ldapSupport = true;
+ pulseaudioSupport = true;
+ udevSupport = true;
+ xineramaSupport = true;
+ xmlSupport = true;
+ vulkanSupport = true;
+ sdlSupport = true;
+ }
+ )
+ unstable.lutris
+ ];
+}
diff --git a/user/settings/git.nix b/user/settings/git.nix
new file mode 100644
index 00000000..503b9e3f
--- /dev/null
+++ b/user/settings/git.nix
@@ -0,0 +1,77 @@
+{ config, pkgs, ... }:
+
+{
+ home.packages = with pkgs; [
+ gitAndTools.git-extras
+ ];
+ programs.git = {
+ enable = true;
+ userName = "Alan Pearce";
+ userEmail = "alan@alanpearce.eu";
+ extraConfig = {
+ pull = {
+ rebase = true;
+ };
+ push = {
+ default = "current";
+ followTags = true;
+ };
+ rebase = {
+ autosquash = true;
+ };
+ rerere = {
+ enable = true;
+ };
+ diff = {
+ algorithm = "patience";
+ tool = "icdiff";
+ };
+ difftool = {
+ prompt = false;
+ };
+ "difftool.icdiff" = {
+ cmd = "${pkgs.icdiff}/bin/icdiff --line-numbers $LOCAL $REMOTE";
+ };
+ "difftool.sopsdiffer" = {
+ textconf = "${pkgs.sops}/bin/sops -d";
+ };
+ "merge.npm-merge-driver" = {
+ name = "automatically merge npm lockfiles";
+ driver = "npx npm-merge-driver merge %A %O %B %P";
+ };
+ remote = {
+ autoSetupMerge = true;
+ };
+ "branch.master" = {
+ rebase = false;
+ };
+ };
+ signing = {
+ key = "0xCD4BEB92A8D46583";
+ };
+ lfs = {
+ enable = true;
+ };
+ aliases = {
+ authors = "shortlog -s -n";
+ mup = "merge FETCH_HEAD";
+ rup = "rebase FETCH_HEAD";
+ st = "status -sb";
+ ci = "commit";
+ br = "branch";
+ co = "checkout";
+ lasttag = "!sh -c 'git tag --sort=version:refname | grep \"^v\\\\?[0-9]\" | tail -n1'";
+ pending = "!sh -c 'git log --oneline --grep=\"#\" ...$(git lasttag)'";
+ lg = "log --pretty=format:'%Cred%h%Creset -%Creset %s %Cgreen(%cr) %C(bold blue)<%an> %Cred%d%Creset'";
+ prl = "log --pretty=format:'%Cred%h%Creset -%Creset %s %Cgreen(%cr) %C(bold blue)<%an> %Cred%d%Creset' --grep='#'";
+ ignored = "ls-files --others -i --exclude-standard";
+ };
+ ignores = [
+ ".DS_Store"
+ "*_flymake.*"
+ "*~"
+ "\#*\#"
+ ".\#*"
+ ];
+ };
+}
diff --git a/user/settings/gnupg.nix b/user/settings/gnupg.nix
new file mode 100644
index 00000000..6dcb31f2
--- /dev/null
+++ b/user/settings/gnupg.nix
@@ -0,0 +1,8 @@
+{ config, pkgs, ... }:
+
+{
+ home.file.".gnupg" = {
+ recursive = true;
+ source = ../gnupg/.gnupg;
+ };
+}
diff --git a/user/settings/i3.nix b/user/settings/i3.nix
new file mode 100644
index 00000000..d83ee2e7
--- /dev/null
+++ b/user/settings/i3.nix
@@ -0,0 +1,149 @@
+{ config, pkgs, lib, ... }:
+
+{
+ xdg.configFile.i3status = {
+ recursive = true;
+ source = ../i3/.config/i3status;
+ };
+ xsession.windowManager.i3 = let
+ mod = "Mod4";
+ mode_system = "System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown";
+ locker = "${pkgs.xautolock}/bin/xautolock -locknow";
+ in
+ {
+ enable = true;
+ config = {
+ modifier = mod;
+ fonts = [ "Terminus 12px" ];
+ floating = {
+ criteria = [
+ { class = "Pinentry$"; }
+ ];
+ };
+ window = {
+ titlebar = false;
+ };
+ keybindings = {
+ "${mod}+Return" = "exec --no-startup-id xst";
+ # kill focused window
+ "${mod}+w" = "kill";
+ "${mod}+Shift+w" = "kill";
+
+ "--release ${mod}+Mod1+r" = "exec rofi -show run";
+ "--release ${mod}+Shift+semicolon" = "exec rofi-pass";
+ "--release ${mod}+space" = "exec \"rofi -show combi -combi-modi drun,window\"";
+
+ # change focus
+ "${mod}+h" = "focus left";
+ "${mod}+j" = "focus down";
+ "${mod}+k" = "focus up";
+ "${mod}+l" = "focus right";
+
+ "${mod}+1" = "workspace 1";
+ "${mod}+2" = "workspace 2";
+ "${mod}+3" = "workspace 3";
+ "${mod}+4" = "workspace 4";
+ "${mod}+5" = "workspace 5";
+ "${mod}+6" = "workspace 6";
+ "${mod}+7" = "workspace 7";
+ "${mod}+8" = "workspace 8";
+ "${mod}+9" = "workspace 9";
+ "${mod}+0" = "workspace 10";
+
+ # move focused window
+ "${mod}+Shift+h" = "move left";
+ "${mod}+Shift+j" = "move down";
+ "${mod}+Shift+k" = "move up";
+ "${mod}+Shift+l" = "move right";
+
+ "${mod}+Shift+1" = "move container to workspace 1";
+ "${mod}+Shift+2" = "move container to workspace 2";
+ "${mod}+Shift+3" = "move container to workspace 3";
+ "${mod}+Shift+4" = "move container to workspace 4";
+ "${mod}+Shift+5" = "move container to workspace 5";
+ "${mod}+Shift+6" = "move container to workspace 6";
+ "${mod}+Shift+7" = "move container to workspace 7";
+ "${mod}+Shift+8" = "move container to workspace 8";
+ "${mod}+Shift+9" = "move container to workspace 9";
+
+
+ # move workspace
+ "${mod}+Mod1+h" = "move workspace to output left";
+ "${mod}+Mod1+j" = "move workspace to output down";
+ "${mod}+Mod1+k" = "move workspace to output up";
+ "${mod}+Mod1+l" = "move workspace to output right";
+
+ # split in horizontal orientation
+ "${mod}+b" = "split h";
+
+ # split in vertical orientation
+ "${mod}+v" = "split v";
+
+ "${mod}+F11" = "fullscreen toggle";
+ "${mod}+f" = "fullscreen toggle";
+
+ # change container layout (stacked, tabbed, toggle split)
+ "${mod}+Shift+s" = "layout stacking";
+ "${mod}+Shift+t" = "layout tabbed";
+ "${mod}+Shift+v" = "layout toggle split";
+
+ # toggle tiling / floating
+ "${mod}+Shift+f" = "floating toggle";
+
+ # change focus between tiling / floating windows
+ "${mod}+Tab" = "focus mode_toggle";
+
+ # focus the parent container
+ "${mod}+a" = "focus parent";
+
+ # focus the child container
+ "${mod}+d" = "focus child";
+
+ "${mod}+Shift+c" = "reload";
+ "${mod}+Shift+p" = "restart";
+
+ "${mod}+Shift+r" = "mode resize";
+ "${mod}+Shift+o" = "exec ${locker}";
+ "${mod}+Pause" = "mode \"${mode_system}\"";
+ "${mod}+Escape" = "mode \"${mode_system}\"";
+ "${mod}+Shift+q" = "mode \"${mode_system}\"";
+ };
+
+ modes = {
+ resize = {
+ "h" = "resize shrink width 10 px or 10 ppt";
+ "j" = "resize grow height 10 px or 10 ppt";
+ "k" = "resize shrink height 10 px or 10 ppt";
+ "l" = "resize grow width 10 px or 10 ppt";
+
+ "Left" = "resize shrink width 10 px or 10 ppt";
+ "Down" = "resize grow height 10 px or 10 ppt";
+ "Up" = "resize shrink height 10 px or 10 ppt";
+ "Right" = "resize grow width 10 px or 10 ppt";
+
+ "Return" = "mode default";
+ "Escape" = "mode default";
+ };
+ "${mode_system}" = {
+ "l" = "exec --no-startup-id ${locker}, mode default";
+ "e" = "exec --no-startup-id i3-msg exit, mode default";
+ "s" = "exec --no-startup-id systemctl suspend, mode default";
+ "h" = "exec --no-startup-id systemctl hibernate, mode default";
+ "r" = "exec --no-startup-id systemctl reboot, mode default";
+ "Shift+s" = "exec --no-startup-id systemctl poweroff -i, mode default";
+ "Return" = "mode default";
+ "Escape" = "mode default";
+ };
+ };
+
+ bars = [
+ {
+ fonts = [ "Terminus 12px" ];
+ position = "top";
+ hiddenState = "show";
+ statusCommand = "${pkgs.i3status}/bin/i3status -c ~/.config/i3status/config";
+ }
+ ];
+ };
+ };
+}
diff --git a/user/settings/isync.nix b/user/settings/isync.nix
new file mode 100644
index 00000000..b96db87d
--- /dev/null
+++ b/user/settings/isync.nix
@@ -0,0 +1,5 @@
+{ config, pkgs, ... }:
+
+{
+ home.file.".mbsyncrc".source = ../isync/.mbsyncrc;
+}
diff --git a/user/settings/javascript.nix b/user/settings/javascript.nix
new file mode 100644
index 00000000..4c75ea10
--- /dev/null
+++ b/user/settings/javascript.nix
@@ -0,0 +1,59 @@
+{ config, pkgs, ... }:
+
+let
+ node = pkgs.unstable.nodejs-10_x;
+ npmPackages = pkgs.unstable.nodePackages_10_x;
+ node2nixPackages = import ../packages/node2nix/default.nix {
+ pkgs = pkgs.unstable;
+ nodejs = node;
+ };
+in
+{ home.packages = (with pkgs.unstable; [
+ node
+ ] ++ (
+ if stdenv.isDarwin
+ then
+ [
+ ]
+ else
+ [
+ # npm install may use any of these
+ binutils
+ gcc
+ gnumake
+ python2
+ ]
+ )) ++ (with npmPackages; [
+ node-gyp
+ node-gyp-build
+ node-pre-gyp
+
+ tern
+ node2nix
+ nodemon
+ javascript-typescript-langserver
+ typescript-language-server
+ vscode-css-languageserver-bin
+ vscode-html-languageserver-bin
+ csslint
+ eslint_d
+ prettier
+ typescript
+
+ node2nixPackages.bunyan
+ node2nixPackages.pino-pretty
+ node2nixPackages."pnpm-3.6.2"
+ node2nixPackages.prettier_d
+ node2nixPackages.dockerfile-language-server-nodejs
+ node2nixPackages.yaml-language-server
+ ]);
+ home.file.".npmrc".text = ''
+ prefix=''${HOME}/.local
+ //registry.npmjs.org/:_authToken=''${NPM_AUTH_TOKEN}
+ always-auth=true
+ sign-git-tag=true
+ rebuild-bundle=false
+ update-notifier=false
+ registry=https://registry.npmjs.org/
+ '';
+}
diff --git a/user/settings/ledger.nix b/user/settings/ledger.nix
new file mode 100644
index 00000000..61d3df7e
--- /dev/null
+++ b/user/settings/ledger.nix
@@ -0,0 +1,8 @@
+{ config, pkgs, ... }:
+
+{
+ home.file.".ledgerrc".text = ''
+ --date-format %F
+ --start-of-week 1
+ '';
+}
diff --git a/user/settings/msmtp.nix b/user/settings/msmtp.nix
new file mode 100644
index 00000000..45c2f460
--- /dev/null
+++ b/user/settings/msmtp.nix
@@ -0,0 +1,5 @@
+{ config, pkgs, ... }:
+
+{
+ home.file.".msmtprc".source = ../msmtp/.msmtprc;
+}
diff --git a/user/settings/nix.nix b/user/settings/nix.nix
new file mode 100644
index 00000000..d0de3cab
--- /dev/null
+++ b/user/settings/nix.nix
@@ -0,0 +1,5 @@
+{ config, pkgs, ... }:
+
+{
+ nixpkgs.config = import ../config.nix;
+}
diff --git a/user/settings/nixos.nix b/user/settings/nixos.nix
new file mode 100644
index 00000000..64b523b8
--- /dev/null
+++ b/user/settings/nixos.nix
@@ -0,0 +1,21 @@
+{ config, pkgs, ... }:
+
+{
+ imports = [
+ ./nix.nix
+ ];
+ nixpkgs.overlays = [
+ (self: super: {
+ unstable = import {
+ config = config.nixpkgs.config;
+ };
+ })
+ ];
+
+ programs.zsh.shellAliases = {
+ nor = "nixos-rebuild";
+ nors = "nixos-rebuild switch";
+ norb = "nixos-rebuild boot";
+ norr = "nixos-rebuild switch --rollback";
+ };
+}
diff --git a/user/settings/nixpkgs.nix b/user/settings/nixpkgs.nix
new file mode 100644
index 00000000..b89579e1
--- /dev/null
+++ b/user/settings/nixpkgs.nix
@@ -0,0 +1,12 @@
+{ config, pkgs, ... }:
+
+{
+ imports = [
+ ./nix.nix
+ ];
+ nixpkgs.overlays = [
+ (self: super: {
+ unstable = self;
+ })
+ ];
+}
diff --git a/user/settings/passwords.nix b/user/settings/passwords.nix
new file mode 100644
index 00000000..72493cef
--- /dev/null
+++ b/user/settings/passwords.nix
@@ -0,0 +1,10 @@
+{ config, pkgs, ... }:
+
+{
+ home.packages = with pkgs.unstable; [
+ keepassx-community
+ rofi-pass
+ pass-otp
+ pwgen
+ ];
+}
diff --git a/user/settings/rofi.nix b/user/settings/rofi.nix
new file mode 100644
index 00000000..b34af881
--- /dev/null
+++ b/user/settings/rofi.nix
@@ -0,0 +1,25 @@
+{ config, pkgs, ... }:
+
+{
+ xdg.configFile."networkmanager-dmenu/config.ini".text = ''
+ [dmenu]
+ dmenu_command = /run/current-system/sw/bin/rofi
+
+ [editor]
+ terminal = xst
+ gui_if_available = false
+ '';
+ programs.rofi = {
+ enable = true;
+ extraConfig = ''
+ rofi.matching: glob
+ rofi.separator-style: none
+
+ rofi.line-padding: 2
+
+ rofi.display-run: cmd
+ rofi.display-drun: run
+ rofi.display-window: win
+ '';
+ };
+}
diff --git a/user/settings/satoshipay.nix b/user/settings/satoshipay.nix
new file mode 100644
index 00000000..6516bd59
--- /dev/null
+++ b/user/settings/satoshipay.nix
@@ -0,0 +1,55 @@
+{ config, pkgs, ... }:
+
+let
+ inherit (pkgs) stdenv;
+ spGitConfig = {
+ user.email = "alan@satoshipay.io";
+ };
+in
+{
+ imports = [
+ ./javascript.nix
+ ];
+
+ home.sessionVariables = {
+ KUBECTX_IGNORE_FZF = "1";
+ };
+ home.packages = with pkgs; ([
+ caddy
+ openssl
+ mongodb-tools
+ pgcli
+ s3cmd
+ sops
+
+ unstable.mkcert
+ unstable.google-cloud-sdk
+ unstable.docker_compose
+ unstable.kubernetes
+ unstable.kubectx
+ unstable.kubernetes-helm
+ unstable.helmfile
+ ] ++ (lib.optionals (!stdenv.isDarwin)
+ [
+ pgadmin
+
+ unstable.redis-desktop-manager
+ unstable.robo3t
+ unstable.slack
+ ]));
+
+ programs.git.includes = [
+ {
+ condition = "gitdir:~/projects/github.com/satoshipay/";
+ contents = spGitConfig;
+ }
+ {
+ condition = "gitdir:~/projects/gitlab.satoshipay.tech";
+ contents = spGitConfig;
+ }
+ ];
+
+ home.file.".npmrc".text = ''
+ @satoshipay:registry=https://registry.npmjs.org/
+ '';
+}
diff --git a/user/settings/sxhkd.nix b/user/settings/sxhkd.nix
new file mode 100644
index 00000000..7160ec08
--- /dev/null
+++ b/user/settings/sxhkd.nix
@@ -0,0 +1,29 @@
+{ config, pkgs, ... }:
+
+{
+ xdg.configFile."sxhkd/sxhkdrc".text = ''
+ XF86AudioMute
+ pamixer --toggle-mute
+
+ XF86Audio{Lower,Raise}Volume
+ pamixer --{decrease,increase} 1
+
+ @XF86AudioMicMute
+ pamixer --source 2 --toggle-mute
+
+ XF86MonBrightness{Down,Up}
+ light -{U,A} 2%
+
+ XF86Display
+ disper -C
+
+ XF86AudioPlay
+ cmus-remote --pause
+
+ XF86Audio{Prev,Next}
+ cmus-remote --{prev,next}
+
+ XF86Tools
+ networkmanager_dmenu
+ '';
+}
diff --git a/user/settings/tabnine.nix b/user/settings/tabnine.nix
new file mode 100644
index 00000000..8018bcca
--- /dev/null
+++ b/user/settings/tabnine.nix
@@ -0,0 +1,57 @@
+{ config, pkgs, ... }:
+
+let
+ cfg = {
+ config = {
+ "language.typescript" = {
+ command = "typescript-language-server";
+ args = ["--stdio"];
+ };
+ "language.javascript" = {
+ command = "javascript-typescript-stdio";
+ args = ["--stdio"];
+ };
+ "language.css" = {
+ command = "css-languageserver";
+ args = ["--stdio"];
+ };
+ "language.scss" = {
+ command = "css-languageserver";
+ args = ["--stdio"];
+ };
+ "language.html" = {
+ command = "html-languageserver";
+ args = ["--stdio"];
+ };
+ "language.dockerfile" = {
+ command = "docker-langserver";
+ args = ["--stdio"];
+ };
+ "language.yaml" = {
+ command = "yaml-language-server";
+ args = ["--stdio"];
+ };
+ "language.haskell" = {
+ command = "hie";
+ args = ["--stdio"];
+ };
+ };
+ };
+ configFile = config:
+ pkgs.runCommand "TabNine.toml"
+ {
+ buildInputs = [ pkgs.remarshal ];
+ preferLocalBuild = true;
+ allowSubstitutes = false;
+ }
+ ''
+ remarshal -if json -of toml \
+ < ${pkgs.writeText "config.json" (builtins.toJSON cfg.config)} \
+ > $out
+ '';
+in
+{
+ xdg.configFile."TabNine/TabNine.toml" = {
+ source = configFile cfg.config;
+ };
+}
diff --git a/user/settings/trezor.nix b/user/settings/trezor.nix
new file mode 100644
index 00000000..a4f3ba75
--- /dev/null
+++ b/user/settings/trezor.nix
@@ -0,0 +1,9 @@
+{ config, pkgs, ... }:
+
+{
+ home.file.".ssh/agent.config" = {
+ text = ''
+ ecdsa-curve-name = ed25519
+ '';
+ };
+}
diff --git a/user/settings/user-interface.nix b/user/settings/user-interface.nix
new file mode 100644
index 00000000..31ba349d
--- /dev/null
+++ b/user/settings/user-interface.nix
@@ -0,0 +1,17 @@
+{ config, pkgs, ... }:
+
+let
+ inherit (pkgs) stdenv;
+in
+{
+ home.sessionVariables = {
+ TERMINAL = "${pkgs.unstable.xst}/bin/xst";
+ };
+
+ home.packages = with pkgs; [
+ unstable.xst # st, but with support for XResources
+ ] ++ lib.optionals (!stdenv.isDarwin) [
+ pkgs.sshfs
+ pkgs.unstable.mu
+ ];
+}
diff --git a/user/settings/xresources.nix b/user/settings/xresources.nix
new file mode 100644
index 00000000..475113de
--- /dev/null
+++ b/user/settings/xresources.nix
@@ -0,0 +1,8 @@
+{ config, pkgs, ... }:
+
+{
+ home.file.".xresources" = {
+ recursive = true;
+ source = ../xresources/.xresources;
+ };
+}
diff --git a/user/settings/zsh.nix b/user/settings/zsh.nix
new file mode 100644
index 00000000..467c426b
--- /dev/null
+++ b/user/settings/zsh.nix
@@ -0,0 +1,181 @@
+{ config, pkgs, ... }:
+
+let
+ inherit (pkgs) stdenv;
+ lsOptions = if stdenv.isDarwin then "-p" else "-v --group-directories-first";
+ lsIsoDate = if stdenv.isDarwin then "" else "--time-style=long-iso";
+in
+{
+ home.file = {
+ ".rm_recycle_home".text = ""; # use trash automatically in home directory
+ };
+ home.packages = with pkgs; [
+ fzf
+ ghq
+ ] ++ (if stdenv.isDarwin
+ then []
+ else [
+ pkgs.git
+ ]);
+ xdg.configFile.zsh = {
+ recursive = true;
+ source = ../zsh/.config/zsh;
+ };
+
+ home.file.".zplugin/bin" = {
+ source = pkgs.fetchFromGitHub {
+ owner = "zdharma";
+ repo = "zplugin";
+ rev = "028b1e1d6d3eae204b499c7f815f4eeeb5051517";
+ sha256 = "1ynh323905iia3gwi9qghbywp94x306nna1yqk37frj5g7kg90fa";
+ };
+ };
+
+ programs.zsh = {
+ enable = true;
+
+ enableAutosuggestions = true;
+ enableCompletion = true;
+ defaultKeymap = "emacs";
+
+ dotDir = ".config/zsh";
+
+ history = {
+ expireDuplicatesFirst = true;
+ extended = true;
+ path = ".cache/zsh/history";
+ save = 20000;
+ size = 10000;
+ };
+
+ localVariables = {
+ ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE = "fg=7";
+ };
+
+ shellAliases = {
+ l = "ls ${lsOptions} -Bp";
+ l1="ls -1";
+ ls="ls ${lsOptions} -hF";
+ la="ls ${lsOptions} -hA";
+ ll="ls ${lsOptions} ${lsIsoDate} -hl";
+ lal="ll -A";
+ lla="lal";
+ llr="ll -t";
+
+ https = "http --default-scheme https";
+ kns = "kubens";
+ kx = "kubectx";
+ ava = "pnpx ava";
+ avt = "pnpx ava --tap";
+ avat = "pnpx ava --tap";
+ pino = "pino-pretty";
+ mocha = "pnpx mocha";
+ prettier = "pnpx prettier";
+ standard = "pnpx standard";
+ tsc = "pnpx tsc";
+ tslint = "pnpx tslint";
+ tsnode = "pnpx ts-node";
+
+ history = "fc -l $(( $LINES - 2 ))";
+ hist-freq-lines = "fc -l -2000 | cut -d' ' -f4- | sort | uniq -c | sort -g | tail -n100 | less";
+ hist-freq-commands = "fc -l -2000 | cut -d' ' -f4 | sort | uniq -c | sort -g | tail -n10 | less";
+ wprop = "xprop | egrep '^WM_(CLASS|NAME|WINDOW_ROLE|TYPE)'";
+
+ # Enable the following commands to support aliases.
+ sudo = "sudo ";
+ watch = "watch ";
+
+ g = "rg";
+
+ ga = "git add";
+ gi = "git";
+ gs = "git st";
+ gd = "git diff";
+ gf = "git fetch";
+ gk = "git push";
+ gj = "git pull";
+ gl = "git lg";
+ gr = "git remote";
+ gz = "git stash";
+ gzl = "git stash list";
+ gzp = "git stash pop";
+ gdt = "git difftool";
+ grl = "git reflog";
+ gri = "git rebase --interactive";
+ grs = "git reset";
+ grsh = "git reset --hard";
+ gsh = "git show";
+ gsm = "git submodule";
+ gci = "git commit";
+ gco = "git checkout";
+ gbr = "git br";
+ gbrc = "git checkout -b";
+ gbrd = "git branch --delete";
+ gbrm = "git branch --move";
+ gmup = "git mup";
+ grup = "git rup";
+
+ hos = "home-manager switch";
+ hon = "home-manager news";
+ hoh = "home-manager-help";
+
+ n = "nix-env";
+ ni = "nix-env -iA";
+ nq = "nix-env -q";
+ ne = "nix-env -e";
+ nup = "nix-env -u";
+ ngc = "nix-collect-garbage --delete-older-than 14d";
+ };
+
+ # move to envExtra after 19.09
+ initExtra = ''
+ case $OSTYPE in
+ darwin*)
+ os=darwin
+ ;;
+ linux-gnu)
+ os=linux
+ ;;
+ freebsd*)
+ os=freebsd
+ ;;
+ *)
+ os=unknown
+ ;;
+ esac
+
+ case $MACHTYPE in
+ *64)
+ arch=amd64
+ ;;
+ *)
+ arch=386
+ ;;
+ esac
+ if [[ ''${path[(I)$HOME/.local/bin ]} ]]
+ then
+ path+=($HOME/.local/bin)
+ fi
+
+ if [[ ''${path[(I)$HOME/go/bin ]} ]]
+ then
+ path+=($HOME/go/bin)
+ fi
+
+ if [[ $HOST =~ satoshi ]]
+ then
+ EMAIL=alan@satoshipay.io
+ else
+ EMAIL=alan@alanpearce.eu
+ fi
+
+ typeset -T GHQ_ROOT ghq_root
+ export GHQ_ROOT="$HOME/projects:$HOME/go/src:$HOME/quicklisp/local-projects"
+
+ function hist-freq-subcommands () {
+ fc -l -m "$1*" -2000 | cut -d' ' -f4- | sort | uniq -c | sort -g | tail -n100 | less
+ }
+
+ '' + builtins.readFile ../zsh/.config/zsh/.zshrc;
+ };
+}
diff --git a/user/trillian.nix b/user/trillian.nix
index f8616e51..61e7609a 100644
--- a/user/trillian.nix
+++ b/user/trillian.nix
@@ -2,17 +2,17 @@
{
imports = [
- ./modules/base.nix
- ./modules/development/base.nix
- ./modules/darwin.nix
- ./modules/emacs.nix
- ./modules/git.nix
- ./modules/gnupg.nix
- ./modules/javascript.nix
- ./modules/nixpkgs.nix
- ./modules/satoshipay.nix
- ./modules/tabnine.nix
- ./modules/trezor.nix
- ./modules/zsh.nix
+ ./settings/base.nix
+ ./settings/development/base.nix
+ ./settings/darwin.nix
+ ./settings/emacs.nix
+ ./settings/git.nix
+ ./settings/gnupg.nix
+ ./settings/javascript.nix
+ ./settings/nixpkgs.nix
+ ./settings/satoshipay.nix
+ ./settings/tabnine.nix
+ ./settings/trezor.nix
+ ./settings/zsh.nix
];
}
--
cgit 1.4.1