diff options
Diffstat (limited to 'users/grfn/system/home/modules')
30 files changed, 0 insertions, 3562 deletions
diff --git a/users/grfn/system/home/modules/.gitignore b/users/grfn/system/home/modules/.gitignore deleted file mode 100644 index a211cae6c6ea..000000000000 --- a/users/grfn/system/home/modules/.gitignore +++ /dev/null @@ -1 +0,0 @@ -private.nix diff --git a/users/grfn/system/home/modules/alacritty.nix b/users/grfn/system/home/modules/alacritty.nix deleted file mode 100644 index 561cab4d79cb..000000000000 --- a/users/grfn/system/home/modules/alacritty.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - programs.alacritty = { - enable = true; - settings = { - font.size = 6; - font.normal.family = "Meslo LGSDZ Nerd Font"; - - keyboard.bindings = [ - { - key = "Escape"; - mods = "Control"; - action = "ToggleViMode"; - } - ]; - - colors = with import ../common/solarized.nix; rec { - draw_bold_text_with_bright_colors = false; - - # Default colors - primary = { - background = base3; - foreground = base00; - }; - - cursor = { - text = base3; - cursor = base00; - }; - - # Normal colors - normal = { - inherit red green yellow blue magenta cyan; - black = base02; - white = base2; - }; - - # Bright colors - # bright = normal; - bright = { - black = base03; - red = orange; - green = base01; - yellow = base00; - blue = base0; - magenta = violet; - cyan = base1; - white = base3; - }; - - vi_mode_cursor.cursor = red; - }; - }; - }; -} diff --git a/users/grfn/system/home/modules/alsi.nix b/users/grfn/system/home/modules/alsi.nix deleted file mode 100644 index 204f9c8e1428..000000000000 --- a/users/grfn/system/home/modules/alsi.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ config, lib, pkgs, ... }: -{ - home.packages = [ config.lib.depot.third_party.alsi ]; - - xdg.configFile."alsi/alsi.logo" = { - source = ./nixos-logo.txt; - force = true; - }; - - xdg.configFile."alsi/alsi.conf" = { - force = true; - text = '' - #!${pkgs.perl}/bin/perl - - scalar { - ALSI_VERSION => "0.4.8", - COLORS_FILE => "/home/grfn/.config/alsi/alsi.colors", - DE_FILE => "/home/grfn/.config/alsi/alsi.de", - DEFAULT_COLOR_BOLD => "blue", - DEFAULT_COLOR_NORMAL => "blue", - DF_COMMAND => "df -Th -x sys -x tmpfs -x devtmpfs &>/dev/stdout", - GTK2_RC_FILE => "/home/grfn/.gtkrc-2.0", - GTK3_RC_FILE => "/home/grfn/.config/gtk-3.0/settings.ini", - LOGO_FILE => "/home/grfn/.config/alsi/alsi.logo", - OUTPUT_FILE => "/home/grfn/.config/alsi/alsi.output", - # PACKAGES_PATH => "/var/lib/pacman/local/", - PS_COMMAND => "ps -A", - USAGE_COLORS => 0, - USAGE_COLORS_BOLD => 0, - USAGE_PRECENT_GREEN => 50, - USAGE_PRECENT_RED => 100, - USAGE_PRECENT_YELLOW => 85, - USE_LOGO_FROM_FILE => 1, - USE_VALUES_COLOR => 0, - WM_FILE => "/home/grfn/.config/alsi/alsi.wm", - } - ''; - }; - - xdg.configFile."alsi/alsi.colors".text = '' - #!${pkgs.perl}/bin/perl - - # Colors for alsi - - scalar { - black => {normal => "\e[0;30m", bold => "\e[1;30m"}, - red => {normal => "\e[0;31m", bold => "\e[1;31m"}, - green => {normal => "\e[0;32m", bold => "\e[1;32m"}, - yellow => {normal => "\e[0;33m", bold => "\e[1;33m"}, - default => {normal => "\e[0;34m", bold => "\e[1;34m"}, - blue => {normal => "\e[0;34m", bold => "\e[1;34m"}, - purple => {normal => "\e[0;35m", bold => "\e[1;35m"}, - cyan => {normal => "\e[0;36m", bold => "\e[1;36m"}, - white => {normal => "\e[0;37m", bold => "\e[1;37m"}, - reset => "\e[0m", - } - ''; -} diff --git a/users/grfn/system/home/modules/common.nix b/users/grfn/system/home/modules/common.nix deleted file mode 100644 index 17d58a36c5bf..000000000000 --- a/users/grfn/system/home/modules/common.nix +++ /dev/null @@ -1,121 +0,0 @@ -{ config, lib, pkgs, ... }: - -# Everything in here needs to work on linux or darwin, with or without a desktop -# environment - -{ - imports = [ - ../modules/shell.nix - # ../modules/development.nix - ../modules/emacs.nix - ../modules/vim.nix - ../modules/tarsnap.nix - ../modules/twitter.nix - ../modules/lib/cloneRepo.nix - ]; - - home.username = "grfn"; - home.homeDirectory = "/home/grfn"; - - programs.password-store.enable = true; - - grfn.impure.clonedRepos.passwordStore = { - github = "glittershark/pass"; - path = ".local/share/password-store"; - }; - - home.packages = with pkgs; [ - # System utilities - bat - htop - killall - bind - zip - unzip - tree - nmap - bc - pv - - # Security - gnupg - keybase - openssl - - # Nix things - nixfmt - nix-prefetch-github - nixpkgs-review - cachix - (writeShellScriptBin "rebuild-mugwump" '' - set -eo pipefail - cd ~/code/depot - nix build -f . users.grfn.system.system.mugwumpSystem -o /tmp/mugwump - nix copy -f . users.grfn.system.system.mugwumpSystem \ - --to ssh://mugwump - system=$(readlink -ef /tmp/mugwump) - ssh mugwump sudo nix-env -p /nix/var/nix/profiles/system --set $system - ssh mugwump sudo $system/bin/switch-to-configuration switch - rm /tmp/mugwump - '') - (writeShellScriptBin "rebuild-roswell" '' - set -eo pipefail - cd ~/code/depot - nix build -f . users.grfn.system.system.roswellSystem -o /tmp/roswell - nix copy -f . users.grfn.system.system.roswellSystem \ - --to ssh://roswell - system=$(readlink -ef /tmp/roswell) - ssh roswell sudo nix-env -p /nix/var/nix/profiles/system --set $system - ssh roswell sudo $system/bin/switch-to-configuration switch - rm /tmp/roswell - '') - (writeShellScriptBin "rebuild-home" '' - set -eo pipefail - cd ~/code/depot - nix build -f . users.grfn.system.home.$(hostname)Home -o /tmp/home - /tmp/home/activate - '') - ]; - - programs.ssh = { - enable = true; - - matchBlocks = { - "home" = { - host = "home.gws.fyi"; - forwardAgent = true; - }; - - "dobharchu" = { - host = "dobharchu"; - hostname = "172.16.0.4"; - forwardAgent = true; - user = "griffin"; - }; - - "cerberus" = { - host = "cerberus"; - hostname = "172.16.0.3"; - forwardAgent = true; - user = "griffin"; - }; - - "mugwump" = { - host = "mugwump"; - hostname = "172.16.0.5"; - forwardAgent = true; - }; - - "roswell" = { - host = "roswell"; - forwardAgent = true; - }; - }; - }; - - programs.direnv = { - enable = true; - enableBashIntegration = true; - enableZshIntegration = true; - }; -} diff --git a/users/grfn/system/home/modules/desktop.nix b/users/grfn/system/home/modules/desktop.nix deleted file mode 100644 index cab3b658e031..000000000000 --- a/users/grfn/system/home/modules/desktop.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ config, lib, pkgs, ... }: - -# Things that only work in the presence of a linux desktop environment - -{ - imports = [ - ./i3.nix - ./obs.nix - ./games.nix - ]; - - home.packages = with pkgs; [ - (ntfy.override { - # Slack support is broken as of 2023-06-15 - withSlack = false; - }) - (writeShellApplication { - name = "edit-input"; - - runtimeInputs = [ xdotool xclip ]; - text = '' - set -euo pipefail - - sleep 0.2 - xdotool key ctrl+a ctrl+c - xclip -out -selection clipboard > /tmp/EDIT - emacsclient -c /tmp/EDIT - xclip -in -selection clipboard < /tmp/EDIT - sleep 0.2 - xdotool key ctrl+v - rm /tmp/EDIT - ''; - }) - ]; - - services.syncthing.tray.enable = true; - - gtk = { - enable = true; - gtk3.bookmarks = [ - "file:///home/grfn/code" - "file:///home/grfn/notes" - ]; - }; -} diff --git a/users/grfn/system/home/modules/development.nix b/users/grfn/system/home/modules/development.nix deleted file mode 100644 index 26817af497d4..000000000000 --- a/users/grfn/system/home/modules/development.nix +++ /dev/null @@ -1,217 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - - clj2nix = pkgs.callPackage - (pkgs.fetchFromGitHub { - owner = "hlolli"; - repo = "clj2nix"; - rev = "3ab3480a25e850b35d1f532a5e4e7b3202232383"; - sha256 = "1lry026mlpxp1j563qs13nhxf37i2zpl7lh0lgfdwc44afybqka6"; - }) - { }; - - pg-dump-upsert = pkgs.buildGoModule rec { - pname = "pg-dump-upsert"; - version = "165258deaebded5e9b88f7a0acf3a4b7350e7bf4"; - - src = pkgs.fetchFromGitHub { - owner = "tomyl"; - repo = "pg-dump-upsert"; - rev = version; - sha256 = "1an4h8jjbj3r618ykjwk9brii4h9cxjqy47c4c8rivnvhimgf4wm"; - }; - - vendorHash = "sha256:1a5fx6mrv30cl46kswicd8lf5i5shn1fykchvbnbhdpgxhbz6qi4"; - }; - -in - -with lib; - -{ - imports = [ - ./lib/zshFunctions.nix - ./development/kube.nix - # TODO(grfn): agda build is broken in the nixpkgs checkout - # ./development/agda.nix - ./development/rust.nix - ]; - - home.packages = with pkgs; [ - jq - yq - gron - gitAndTools.tig - gitAndTools.gh - shellcheck - httpie - entr - gnumake - inetutils - tokei - jsonnet - ngrok - amber - - gdb - lldb - hyperfine - clang-tools - - clj2nix - clojure - leiningen - clj-kondo - - pg-dump-upsert - - nodePackages.prettier - ] ++ optionals (stdenv.isLinux) [ - # TODO(grfn): replace with stable again once the current julia debacle - # is resolved upstream, see https://github.com/NixOS/nixpkgs/pull/121114 - julia_16-bin - valgrind - - linuxPackages.perf - rr - ]; - - programs.git = { - enable = true; - package = pkgs.gitFull; - userEmail = "root@gws.fyi"; - userName = "Aspen Smith"; - ignores = [ - "*.sw*" - ".classpath" - ".project" - ".settings/" - ".dir-locals.el" - ".stack-work-profiling" - ".projectile" - ]; - extraConfig = { - github.user = "glittershark"; - merge.conflictstyle = "diff3"; - rerere.enabled = "true"; - advice.skippedCherryPicks = "false"; - }; - - delta = { - enable = true; - options = { - syntax-theme = "Solarized (light)"; - hunk-style = "plain"; - commit-style = "box"; - }; - }; - }; - - home.file.".gdbinit".text = '' - set history filename ~/.gdb_history - set history save on - set history size unlimited - set history remove-duplicates unlimited - set history expansion on - ''; - - home.file.".psqlrc".text = '' - \set QUIET 1 - - \timing - \set ON_ERROR_ROLLBACK interactive - \set VERBOSITY verbose - \x auto - \set PROMPT1 '%[%033[1m%]%M/%/%R%[%033[0m%]%# ' - \set PROMPT2 '...%# ' - \set HISTFILE ~/.psql_history- :DBNAME - \set HISTCONTROL ignoredups - \pset null [null] - - \pset linestyle 'unicode' - \pset unicode_border_linestyle single - \pset unicode_column_linestyle single - \pset unicode_header_linestyle double - - \unset QUIET - ''; - - programs.readline = { - enable = true; - extraConfig = '' - set editing-mode vi - ''; - }; - - programs.zsh = { - shellAliases = { - # Git - "gwip" = "git add . && git commit -am wip"; - "gpr" = "g pull-request"; - "gcl" = "git clone"; - "grs" = "gr --soft"; - "grhh" = "grh HEAD"; - "grh" = "gr --hard"; - "gr" = "git reset"; - "gcb" = "gc -b"; - "gco" = "gc"; - "gcd" = "gc development"; - "gcm" = "gc master"; - "gcc" = "gc canon"; - "gc" = "git checkout"; - "gbg" = "git branch | grep"; - "gba" = "git branch -a"; - "gb" = "git branch"; - "gcv" = "git commit --verbose"; - "gci" = "git commit"; - "gm" = "git merge"; - "gdc" = "gd --cached"; - "gd" = "git diff"; - "gsl" = "git stash list"; - "gss" = "git show stash"; - "gsad" = "git stash drop"; - "gsa" = "git stash"; - "gst" = "gs"; - "gs" = "git status"; - "gg" = "gl --decorate --oneline --graph --date-order --all"; - "gl" = "git log"; - "gf" = "git fetch"; - "gur" = "gu --rebase"; - "gu" = "git pull"; - "gpf" = "gp -f"; - "gpa" = "gp --all"; - "gpu" = "git push -u origin \"$(git symbolic-ref --short HEAD)\""; - "gp" = "git push"; - "ganw" = "git diff -w --no-color | git apply --cached --ignore-whitespace"; - "ga" = "git add"; - "gnp" = "git --no-pager"; - "g" = "git"; - "grim" = "git fetch && git rebase -i --autostash origin/master"; - "grom" = "git fetch && git rebase --autostash origin/master"; - "groc" = "git fetch && git rebase --autostash origin/canon"; - "grc" = "git rebase --continue"; - "gcan" = "git commit --amend --no-edit"; - "grl" = "git reflog"; - - # Haskell - "crl" = "cabal repl"; - "cr" = "cabal run"; - "cnb" = "cabal new-build"; - "cob" = "cabal old-build"; - "cnr" = "cabal new-run"; - "cor" = "cabal old-run"; - "ho" = "hoogle"; - }; - - functions = { - gdelmerged = '' - git branch --merged | egrep -v 'master' | tr -d '+ ' | xargs git branch -d - ''; - - gref = '' - git show -s --pretty=reference "$1" | xclip -selection clipboard - ''; - }; - }; -} diff --git a/users/grfn/system/home/modules/development/agda.nix b/users/grfn/system/home/modules/development/agda.nix deleted file mode 100644 index afd22a306dc9..000000000000 --- a/users/grfn/system/home/modules/development/agda.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - agda-categories = with pkgs.agdaPackages; mkDerivation rec { - pname = "agda-categories"; - version = "2128fab"; - src = pkgs.fetchFromGitHub { - owner = "agda"; - repo = "agda-categories"; - rev = version; - sha256 = "08mc20qaz9vp5rhi60rh8wvjkg5aby3bgwwdhfnxha1663qf1q24"; - }; - - buildInputs = [ standard-library ]; - }; - -in - -{ - imports = [ - ../lib/cloneRepo.nix - ]; - - home.packages = with pkgs; [ - (pkgs.agda.withPackages - (p: with p; [ - p.standard-library - - ])) - ]; - - grfn.impure.clonedRepos = { - agda-stdlib = { - github = "agda/agda-stdlib"; - path = "code/agda-stdlib"; - }; - - agda-categories = { - github = "agda/agda-categories"; - path = "code/agda-categories"; - }; - - categories-examples = { - github = "agda/categories-examples"; - path = "code/categories-examples"; - }; - }; - - home.file.".agda/defaults".text = '' - standard-library - ''; - - home.file.".agda/libraries".text = '' - /home/grfn/code/agda-stdlib/standard-library.agda-lib - /home/grfn/code/agda-categories/agda-categories.agda-lib - ''; - -} diff --git a/users/grfn/system/home/modules/development/kube.nix b/users/grfn/system/home/modules/development/kube.nix deleted file mode 100644 index 876b0c08df1d..000000000000 --- a/users/grfn/system/home/modules/development/kube.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ config, lib, pkgs, ... }: -{ - home.packages = with pkgs; [ - kubectl - kubetail - sops - kubie - # pkgs-unstable.argocd # provided by urbos - ]; - - programs.zsh.shellAliases = { - "kc" = "kubectl"; - "kg" = "kc get"; - "kga" = "kc get --all-namespaces"; - "kpd" = "kubectl get pods"; - "kpa" = "kubectl get pods --all-namespaces"; - "klf" = "kubectl logs -f"; - "kdep" = "kubectl get deployments"; - "ked" = "kubectl edit deployment"; - "kpw" = "kubectl get pods -w"; - "kew" = "kubectl get events -w"; - "kdel" = "kubectl delete"; - "knw" = "kubectl get nodes -w"; - "kev" = "kubectl get events --sort-by='.metadata.creationTimestamp'"; - - "arsy" = "argocd app sync --prune"; - }; - - home.file.".kube/kubie.yaml".text = '' - shell: zsh - prompt: - zsh_use_rps1: true - ''; -} diff --git a/users/grfn/system/home/modules/development/ocaml.nix b/users/grfn/system/home/modules/development/ocaml.nix deleted file mode 100644 index 5dcdd8980e47..000000000000 --- a/users/grfn/system/home/modules/development/ocaml.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - home.packages = with pkgs; [ - ocaml - - # ocamlPackages.merlin - # ocamlPackages.utop - # ocamlPackages.ocp-indent - # ocamlPackages.ocamlformat - ]; - - programs.opam = { - enable = true; - enableZshIntegration = true; - }; -} diff --git a/users/grfn/system/home/modules/development/readyset.nix b/users/grfn/system/home/modules/development/readyset.nix deleted file mode 100644 index afe762468aeb..000000000000 --- a/users/grfn/system/home/modules/development/readyset.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - imports = [ - ./rust.nix - ]; - - home.packages = with pkgs; [ - # These go in $PATH so I can run it from rofi and parent to my WM - (writeShellScriptBin "dotclip" "xclip -out -selection clipboard | dot -Tpng | feh -") - (writeShellScriptBin "dotcontroller" "curl -s localhost:6033/graph | dot -Tpng | feh -") - - rain - awscli2 - ssm-session-manager-plugin - amazon-ecr-credential-helper - postgresql_15 - - # TODO remove override when https://github.com/NixOS/nixpkgs/pull/233826 is merged - (sysbench.overrideDerivation (oldAttrs: { - configureFlags = oldAttrs.configureFlags ++ [ "--with-pgsql" ]; - buildInputs = oldAttrs.buildInputs ++ [ postgresql ]; - })) - ]; - - programs.zsh.shellAliases = { - "tf" = "terraform"; - }; - - home.file.".docker/config.json".text = builtins.toJSON { - credHelpers = { - "305232526136.dkr.ecr.us-east-2.amazonaws.com" = "ecr-login"; - }; - }; - - programs.zsh.functions."purge_deployment" = '' - for key in $(http :8500/v1/kv/$1 keys==true | jq -r .'[]'); do http DELETE ":8500/v1/kv/$key"; done - ''; -} diff --git a/users/grfn/system/home/modules/development/rust.nix b/users/grfn/system/home/modules/development/rust.nix deleted file mode 100644 index 105a23bc8376..000000000000 --- a/users/grfn/system/home/modules/development/rust.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (config.lib) depot; -in - -with lib; - -{ - - home.packages = with pkgs; [ - rustup - cargo-edit - cargo-expand - cargo-udeps - cargo-bloat - sccache - evcxr - - depot.users.grfn.pkgs.cargo-hakari - depot.users.grfn.pkgs.cargo-nextest - - # benchmarking+profiling - cargo-criterion - cargo-flamegraph - coz - inferno - hotspot - ] ++ optionals (stdenv.isLinux) [ - cargo-rr - ]; - - programs.zsh.shellAliases = { - "cg" = "cargo"; - "cb" = "cargo build"; - "ct" = "cargo test"; - "ctw" = "fd -e rs | entr cargo test"; - "cch" = "cargo check"; - }; - - home.file.".cargo/config".text = '' - [build] - rustc-wrapper = "${pkgs.sccache}/bin/sccache" - - [target.x86_64-unknown-linux-gnu] - linker = "clang" - rustflags = ["-C", "link-arg=-fuse-ld=${pkgs.mold}/bin/mold"] - ''; -} diff --git a/users/grfn/system/home/modules/emacs.nix b/users/grfn/system/home/modules/emacs.nix deleted file mode 100644 index 3db4e293f867..000000000000 --- a/users/grfn/system/home/modules/emacs.nix +++ /dev/null @@ -1,108 +0,0 @@ -{ pkgs, lib, config, ... }: - -with lib; - -let - # doom-emacs = pkgs.callPackage (builtins.fetchTarball { - # url = https://github.com/vlaci/nix-doom-emacs/archive/master.tar.gz; - # }) { - # doomPrivateDir = ./doom.d; # Directory containing your config.el init.el - # # and packages.el files - # }; - - depot = config.lib.depot; - -in -{ - imports = [ - ./lib/cloneRepo.nix - ]; - - # home.packages = [ doom-emacs ]; - # home.file.".emacs.d/init.el".text = '' - # (load "default.el") - # ''; - # - - config = mkMerge [ - { - home.packages = with pkgs; [ - # LaTeX (for org export) - (pkgs.texlive.combine { - inherit (pkgs.texlive) - capt-of - collection-fontsrecommended - dvipng - fancyvrb - float - fncychap - framed - mathpartir - needspace - parskip - scheme-basic - semantic - tabulary - titlesec - ulem - upquote - varwidth - wrapfig - bussproofs - bussproofs-extra - ; - }) - - ispell - - ripgrep - coreutils - fd - clang - gnutls - emacsPackages.telega - ]; - - programs.emacs = { - enable = true; - package = pkgs.emacs; - extraPackages = (epkgs: - (with epkgs; [ - tvlPackages.dottime - tvlPackages.tvl - vterm - telega - ]) - ); - }; - - grfn.impure.clonedRepos = { - orgClubhouse = { - github = "glittershark/org-clubhouse"; - path = "code/org-clubhouse"; - }; - - doomEmacs = { - github = "hlissner/doom-emacs"; - path = ".emacs.d"; - after = [ "emacs.d" ]; - onClone = "bin/doom install"; - }; - - "emacs.d" = { - github = "glittershark/emacs.d"; - path = ".doom.d"; - after = [ "orgClubhouse" ]; - }; - }; - - programs.zsh.shellAliases = { - "ec" = "emacsclient"; - }; - } - (mkIf pkgs.stdenv.isLinux { - # Notes - services.syncthing.enable = true; - }) - ]; -} diff --git a/users/grfn/system/home/modules/email.nix b/users/grfn/system/home/modules/email.nix deleted file mode 100644 index b452324078eb..000000000000 --- a/users/grfn/system/home/modules/email.nix +++ /dev/null @@ -1,98 +0,0 @@ -{ lib, pkgs, config, ... }: - -with lib; - -let - - # from home-manager/modules/services/lieer.nix - escapeUnitName = name: - let - good = upperChars ++ lowerChars ++ stringToCharacters "0123456789-_"; - subst = c: if any (x: x == c) good then c else "-"; - in - stringAsChars subst name; - - accounts = { - personal = { - primary = true; - address = "root@gws.fyi"; - aliases = [ "grfn@gws.fyi" ]; - passEntry = "root-gws-msmtp"; - }; - - work = { - address = "aspen@readyset.io"; - passEntry = "readyset/msmtp"; - }; - - }; - -in -{ - # 2022-09-26: workaround for home-manager defaulting to removed pkgs.gmailieer - # attribute, can likely be removed soon - programs.lieer.package = pkgs.lieer; - - programs.lieer.enable = true; - programs.notmuch.enable = true; - services.lieer.enable = true; - programs.msmtp.enable = true; - - home.packages = with pkgs; [ - mu - msmtp - config.lib.depot.users.grfn.pkgs.notmuch-extract-patch - ]; - - systemd.user.services = mapAttrs' - (name: account: { - name = escapeUnitName "lieer-${name}"; - value.Service = { - ExecStart = mkForce "${pkgs.writeShellScript "sync-${name}" '' - ${pkgs.lieer}/bin/gmi sync --path ~/mail/${name} - ''}"; - Environment = "NOTMUCH_CONFIG=${config.home.sessionVariables.NOTMUCH_CONFIG}"; - }; - - }) - accounts; - - # xdg.configFile."notifymuch/notifymuch.cfg".text = generators.toINI {} { - # notifymuch = { - # query = "is:unread and is:important"; - # mail_client = ""; - # recency_interval_hours = "48"; - # hidden_tags = "inbox unread attachment replied sent encrypted signed"; - # }; - # }; - - accounts.email.maildirBasePath = "mail"; - accounts.email.accounts = mapAttrs - (_: params@{ passEntry, ... }: { - realName = "Aspen Smith"; - passwordCommand = "pass ${passEntry}"; - - flavor = "gmail.com"; - - imapnotify = { - enable = true; - boxes = [ "Inbox" ]; - }; - - gpg = { - key = "0F11A989879E8BBBFDC1E23644EF5B5E861C09A7"; - signByDefault = true; - }; - - notmuch.enable = true; - lieer = { - enable = true; - sync = { - enable = true; - frequency = "*:*"; - }; - }; - msmtp.enable = true; - } // builtins.removeAttrs params [ "passEntry" ]) - accounts; -} diff --git a/users/grfn/system/home/modules/firefox.nix b/users/grfn/system/home/modules/firefox.nix deleted file mode 100644 index c7e78685a5a3..000000000000 --- a/users/grfn/system/home/modules/firefox.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - - xdg.mimeApps = rec { - enable = true; - defaultApplications = { - "text/html" = [ "firefox.desktop" ]; - "x-scheme-handler/http" = [ "firefox.desktop" ]; - "x-scheme-handler/https" = [ "firefox.desktop" ]; - "x-scheme-handler/ftp" = [ "firefox.desktop" ]; - "x-scheme-handler/chrome" = [ "firefox.desktop" ]; - "application/x-extension-htm" = [ "firefox.desktop" ]; - "application/x-extension-html" = [ "firefox.desktop" ]; - "application/x-extension-shtml" = [ "firefox.desktop" ]; - "application/xhtml+xml" = [ "firefox.desktop" ]; - "application/x-extension-xhtml" = [ "firefox.desktop" ]; - "application/x-extension-xht" = [ "firefox.desktop" ]; - }; - associations.added = defaultApplications; - }; -} diff --git a/users/grfn/system/home/modules/games.nix b/users/grfn/system/home/modules/games.nix deleted file mode 100644 index 5e2800389208..000000000000 --- a/users/grfn/system/home/modules/games.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ config, lib, pkgs, ... }: - -with pkgs; -with lib; - -let - - df-orig = dwarf-fortress-packages.dwarf-fortress-original; - - df-full = (dwarf-fortress-packages.dwarf-fortress-full.override { - theme = null; - enableIntro = false; - enableFPS = true; - enableDFHack = true; - }); - - init = runCommand "init.txt" { } '' - substitute "${df-orig}/data/init/init.txt" $out \ - --replace "[INTRO:YES]" "[INTRO:NO]" \ - --replace "[VOLUME:255]" "[VOLUME:0]" \ - --replace "[FPS:NO]" "[FPS:YES]" - ''; - - d_init = runCommand "d_init.txt" { } '' - substitute "${df-orig}/data/init/d_init.txt" $out \ - --replace "[AUTOSAVE:NONE]" "[AUTOSAVE:SEASONAL]" \ - --replace "[AUTOSAVE_PAUSE:NO]" "[AUTOSAVE_PAUSE:YES]" \ - --replace "[INITIAL_SAVE:NO]" "[INITIAL_SAVE:YES]" \ - --replace "[EMBARK_WARNING_ALWAYS:NO]" "[EMBARK_WARNING_ALWAYS:YES]" \ - --replace "[VARIED_GROUND_TILES:YES]" "[VARIED_GROUND_TILES:NO]" \ - --replace "[SHOW_FLOW_AMOUNTS:NO]" "[SHOW_FLOW_AMOUNTS:YES]" - ''; - - df = runCommand "dwarf-fortress" { } '' - mkdir -p $out/bin - sed \ - -e '4icp -f ${init} "$DF_DIR/data/init/init.txt"' \ - -e '4icp -f ${d_init} "$DF_DIR/data/init/d_init.txt"' \ - < "${df-full}/bin/dwarf-fortress" >"$out/bin/dwarf-fortress" - - shopt -s extglob - ln -s ${df-full}/bin/!(dwarf-fortress) $out/bin - - chmod +x $out/bin/dwarf-fortress - ''; - -in -mkMerge [ - { - home.packages = [ - crawl - xonotic - ]; - } - (mkIf stdenv.isLinux { - home.packages = [ - df - prismlauncher - ]; - }) -] diff --git a/users/grfn/system/home/modules/i3.nix b/users/grfn/system/home/modules/i3.nix deleted file mode 100644 index 1ce842af20e6..000000000000 --- a/users/grfn/system/home/modules/i3.nix +++ /dev/null @@ -1,395 +0,0 @@ -{ config, lib, pkgs, ... }: -let - mod = "Mod4"; - solarized = import ../common/solarized.nix; - # TODO pull this out into lib - emacsclient = eval: pkgs.writeShellScript "emacsclient-eval" '' - msg=$(emacsclient --eval '${eval}' 2>&1) - echo "''${msg:1:-1}" - ''; - screenlayout = { - home = pkgs.writeShellScript "screenlayout_home.sh" '' - xrandr \ - --output eDP-1 --mode 1920x1200 --pos 0x960 --rotate normal \ - --output DP-3 --primary --mode 3840x2160 --pos 1920x0 --rotate normal \ - --output DP-1 --off \ - --output DP-2 --off \ - --output DP-4 --off - ''; - }; - - inherit (builtins) map; - inherit (lib) mkMerge range; -in -{ - options = with lib; { - system.machine = { - wirelessInterface = mkOption { - description = '' - Name of the primary wireless interface. Used by i3status, etc. - ''; - default = "wlp3s0"; - type = types.str; - }; - - i3FontSize = mkOption { - description = "Font size to use in i3 window decorations etc."; - default = 6; - type = types.int; - }; - - battery = mkOption { - description = "Does this system have a battery?"; - default = true; - type = types.bool; - }; - }; - }; - - config = - let - fontName = "MesloLGSDZ"; - fontSize = config.system.machine.i3FontSize; - fonts = { - names = [ fontName ]; - size = fontSize * 1.0; - }; - decorationFont = "${fontName} ${toString fontSize}"; - in - { - home.packages = with pkgs; [ - rofi - rofi-pass - python3Packages.py3status - i3lock - i3status - dconf # for gtk - - # Screenshots - maim - - # GIFs - picom - peek - - (pkgs.writeShellScriptBin "lock" '' - playerctl pause - ${pkgs.i3lock}/bin/i3lock -c 222222 - '') - ]; - - xsession.scriptPath = ".xsession"; - - xsession.windowManager.i3 = { - enable = true; - config = { - modifier = mod; - keybindings = - mkMerge ( - (map - (n: { - "${mod}+${toString n}" = - "workspace ${toString n}"; - "${mod}+Shift+${toString n}" = - "move container to workspace ${toString n}"; - }) - (range 0 9)) - ++ [ - (rec { - "${mod}+h" = "focus left"; - "${mod}+j" = "focus down"; - "${mod}+k" = "focus up"; - "${mod}+l" = "focus right"; - "${mod}+semicolon" = "focus parent"; - - "${mod}+Shift+h" = "move left"; - "${mod}+Shift+j" = "move down"; - "${mod}+Shift+k" = "move up"; - "${mod}+Shift+l" = "move right"; - - "${mod}+Shift+x" = "kill"; - - "${mod}+Return" = "exec alacritty"; - - "${mod}+Shift+s" = "split h"; - "${mod}+Shift+v" = "split v"; - "${mod}+e" = "layout toggle split"; - "${mod}+w" = "layout tabbed"; - "${mod}+s" = "layout stacking"; - - "${mod}+f" = "fullscreen"; - - "${mod}+Shift+r" = "restart"; - - "${mod}+r" = "mode resize"; - - # Marks - "${mod}+Shift+m" = ''exec i3-input -F "mark %s" -l 1 -P 'Mark: ' ''; - "${mod}+m" = ''exec i3-input -F '[con_mark="%s"] focus' -l 1 -P 'Go to: ' ''; - - # Screenshots - "${mod}+q" = "exec \"maim | xclip -selection clipboard -t image/png\""; - "${mod}+Shift+q" = "exec \"maim -s | xclip -selection clipboard -t image/png\""; - "${mod}+Ctrl+q" = "exec ${pkgs.writeShellScript "peek.sh" '' - ${pkgs.picom}/bin/picom & - picom_pid=$! - ${pkgs.peek}/bin/peek || true - kill -SIGINT $picom_pid - ''}"; - - # Launching applications - "${mod}+u" = "exec ${pkgs.writeShellScript "rofi" '' - rofi \ - -modi 'combi' \ - -combi-modi "window,drun,ssh,run" \ - -font '${decorationFont}' \ - -show combi - ''}"; - - # Passwords - "${mod}+p" = "exec rofi-pass -font '${decorationFont}'"; - - # Edit current buffer - "${mod}+v" = "exec edit-input"; - - # Media - "XF86AudioPlay" = "exec playerctl -p spotify play-pause"; - "XF86AudioNext" = "exec playerctl -p spotify next"; - "XF86AudioPrev" = "exec playerctl -p spotify previous"; - "XF86AudioRaiseVolume" = "exec pulseaudio-ctl up"; - "XF86AudioLowerVolume" = "exec pulseaudio-ctl down"; - "XF86AudioMute" = "exec pulseaudio-ctl mute"; - - # Lock - Pause = "exec lock"; - - # Brightness - "XF86MonBrightnessDown" = "exec ${pkgs.brightnessctl}/bin/brightnessctl -q s 5%-"; - "XF86MonBrightnessUp" = "exec ${pkgs.brightnessctl}/bin/brightnessctl -q s 5%+"; - - # Sleep/hibernate - # "${mod}+Escape" = "exec systemctl suspend"; - # "${mod}+Shift+Escape" = "exec systemctl hibernate"; - - # Scratch buffer - "${mod}+minus" = "scratchpad show"; - "${mod}+Shift+minus" = "move scratchpad"; - "${mod}+space" = "focus mode_toggle"; - "${mod}+Shift+space" = "floating toggle"; - - # Screen Layout - "${mod}+Shift+t" = "exec xrandr --auto"; - "${mod}+t" = "exec ${screenlayout.home}"; - "${mod}+Ctrl+t" = "exec ${pkgs.writeShellScript "fix_term.sh" '' - xrandr --output eDP-1 --off && ${screenlayout.home} - ''}"; - - # Notifications - "${mod}+Shift+n" = "exec killall -SIGUSR1 .dunst-wrapped"; - "${mod}+n" = "exec killall -SIGUSR2 .dunst-wrapped"; - "Control+space" = "exec ${pkgs.dunst}/bin/dunstctl close"; - "Control+Shift+space" = "exec ${pkgs.dunst}/bin/dunstctl close-all"; - "Control+grave" = "exec ${pkgs.dunst}/bin/dunstctl history-pop"; - "Control+Shift+period" = "exec ${pkgs.dunst}/bin/dunstctl action"; - }) - ] - ); - - inherit fonts; - - colors = with solarized; rec { - focused = { - border = base01; - background = base01; - text = base3; - indicator = red; - childBorder = base02; - }; - focusedInactive = focused // { - border = base03; - background = base03; - # text = base1; - }; - unfocused = focusedInactive; - background = base03; - }; - - modes.resize = { - l = "resize shrink width 5 px or 5 ppt"; - k = "resize grow height 5 px or 5 ppt"; - j = "resize shrink height 5 px or 5 ppt"; - h = "resize grow width 5 px or 5 ppt"; - - Return = "mode \"default\""; - }; - - bars = [{ - statusCommand = - let - i3status-conf = pkgs.writeText "i3status.conf" '' - general { - output_format = i3bar - colors = true - color_good = "#859900" - - interval = 1 - } - - order += "external_script current_task" - order += "external_script inbox" - order += "spotify" - order += "volume_status" - order += "wireless ${config.system.machine.wirelessInterface}" - # order += "ethernet enp3s0f0" - order += "cpu_usage" - ${lib.optionalString (config.system.machine.battery) '' - order += "battery 0" - ''} - # order += "volume master" - order += "time" - order += "tztime utc" - - mpd { - format = "%artist - %album - %title" - } - - wireless ${config.system.machine.wirelessInterface} { - format_up = "W: (%quality - %essid - %bitrate) %ip" - format_down = "W: -" - } - - ethernet enp3s0f0 { - format_up = "E: %ip" - format_down = "E: -" - } - - battery 0 { - format = "%status %percentage" - path = "/sys/class/power_supply/BAT%d/uevent" - low_threshold = 10 - } - - cpu_usage { - format = "CPU: %usage" - } - - load { - format = "%5min" - } - - time { - format = " %a %h %d โ %I:%M " - } - - spotify { - color_playing = "#fdf6e3" - color_paused = "#93a1a1" - format_stopped = "" - format_down = "" - format = "{title} - {artist} ({album})" - } - - external_script inbox { - script_path = '${emacsclient "(grfn/num-inbox-items-message)"}' - format = 'Inbox: {output}' - cache_timeout = 120 - color = "#93a1a1" - } - - external_script current_task { - script_path = '${emacsclient "(grfn/org-current-clocked-in-task-message)"}' - # format = '{output}' - cache_timeout = 60 - color = "#93a1a1" - } - - tztime utc { - timezone = "UTC" - format = " %Hยท%M " - } - - volume_status { - format = "โ {percentage}" - format_muted = "โ X" - # device = "default" - # mixer_idx = 0 - } - ''; - in - "py3status -c ${i3status-conf}"; - inherit fonts; - position = "top"; - colors = with solarized; rec { - background = base03; - statusline = base3; - separator = base1; - activeWorkspace = { - border = base03; - background = base1; - text = base3; - }; - focusedWorkspace = activeWorkspace; - inactiveWorkspace = activeWorkspace // { - background = base01; - }; - urgentWorkspace = activeWorkspace // { - background = red; - }; - }; - }]; - - window.titlebar = true; - }; - }; - - services.dunst = { - enable = true; - settings = with solarized; { - global = { - font = "MesloLGSDZ ${toString (config.system.machine.i3FontSize * 1.5)}"; - allow_markup = true; - format = "<b>%s</b>\n%b"; - sort = true; - alignment = "left"; - geometry = "600x15-40+40"; - idle_threshold = 120; - separator_color = "frame"; - separator_height = 1; - word_wrap = true; - padding = 8; - horizontal_padding = 8; - max_icon_size = 45; - }; - - frame = { - width = 0; - color = "#aaaaaa"; - }; - - urgency_low = { - background = base03; - foreground = base3; - timeout = 5; - }; - - urgency_normal = { - background = base02; - foreground = base3; - timeout = 7; - }; - - urgency_critical = { - background = red; - foreground = base3; - timeout = 0; - }; - }; - }; - - gtk = { - enable = true; - iconTheme.name = "Adwaita"; - theme.name = "Adwaita"; - }; - }; -} diff --git a/users/grfn/system/home/modules/lib/cloneRepo.nix b/users/grfn/system/home/modules/lib/cloneRepo.nix deleted file mode 100644 index 806a8be03cb2..000000000000 --- a/users/grfn/system/home/modules/lib/cloneRepo.nix +++ /dev/null @@ -1,76 +0,0 @@ -{ lib, config, ... }: -with lib; -{ - options = { - grfn.impure.clonedRepos = mkOption { - description = "Repositories to clone"; - default = { }; - type = with types; attrsOf ( - let - sm = submodule { - options = { - url = mkOption { - type = nullOr str; - description = "URL of repository to clone"; - default = null; - }; - - github = mkOption { - type = nullOr str; - description = "Github owner/repo of repository to clone"; - default = null; - }; - - path = mkOption { - type = str; - description = "Path to clone to"; - }; - - onClone = mkOption { - type = str; - description = '' - Shell command to run after cloning the repo for the first time. - Runs inside the repo itself. - ''; - default = ""; - }; - - after = mkOption { - type = listOf str; - description = "Activation hooks that this repository must be cloned after"; - default = [ ]; - }; - }; - }; - in - addCheck sm (cr: (! isNull cr.url || ! isNull cr.github)) - ); - }; - }; - - config = { - home.activation = - mapAttrs - (_: { url - , path - , github - , onClone - , after - , ... - }: - let repoURL = if isNull url then "git@github.com:${github}" else url; - in hm.dag.entryAfter ([ "writeBoundary" ] ++ after) '' - $DRY_RUN_CMD mkdir -p $(dirname "${path}") - if [[ ! -d ${path} ]]; then - if $DRY_RUN_CMD git clone "${repoURL}" "${path}"; then - pushd ${path} - $DRY_RUN_CMD ${onClone} - popd - else - echo "Git repository ${path} failed to clone" - fi - fi - '') - config.grfn.impure.clonedRepos; - }; -} diff --git a/users/grfn/system/home/modules/lib/zshFunctions.nix b/users/grfn/system/home/modules/lib/zshFunctions.nix deleted file mode 100644 index 228dc6379fd6..000000000000 --- a/users/grfn/system/home/modules/lib/zshFunctions.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ config, lib, pkgs, ... }: - -with lib; - -{ - options = { - programs.zsh.functions = mkOption { - description = "An attribute set that maps function names to their source"; - default = { }; - type = with types; attrsOf (either str path); - }; - }; - - config.programs.zsh.initExtra = concatStringsSep "\n" ( - mapAttrsToList - (name: funSrc: '' - function ${name}() { - ${funSrc} - } - '') - config.programs.zsh.functions - ); -} diff --git a/users/grfn/system/home/modules/nixos-logo.txt b/users/grfn/system/home/modules/nixos-logo.txt deleted file mode 100644 index d4b16b44f0bf..000000000000 --- a/users/grfn/system/home/modules/nixos-logo.txt +++ /dev/null @@ -1,26 +0,0 @@ - [38;5;m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;m( [38;5;m#[38;5;110m#[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m# [38;5;m#[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m/ - [38;5;m,[38;5;068m([38;5;067m([38;5;068m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;061m/[38;5;m( [38;5;m#[38;5;110m%[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m%[38;5;m# [38;5;m.[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m%[38;5;m# - [38;5;m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;061m/[38;5;061m/[38;5;m/ [38;5;m%[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m%[38;5;m. [38;5;m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m/ - [38;5;m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;061m/[38;5;067m([38;5;061m/[38;5;061m/[38;5;m, [38;5;m/[38;5;110m#[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m# - [38;5;m([38;5;067m([38;5;067m([38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;m/ [38;5;m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m( - [38;5;m.[38;5;068m([38;5;068m([38;5;068m([38;5;068m([38;5;068m([38;5;068m([38;5;068m([38;5;068m([38;5;068m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;061m([38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;m#[38;5;110m%[38;5;110m%[38;5;110m%[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m# [38;5;m([38;5;m( - [38;5;m([38;5;067m([38;5;067m([38;5;067m([38;5;068m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;m/[38;5;m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m# [38;5;m.[38;5;m([38;5;067m([38;5;067m([38;5;m( - [38;5;m([38;5;068m([38;5;067m([38;5;067m([38;5;067m([38;5;068m([38;5;067m([38;5;067m([38;5;067m([38;5;068m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;061m/[38;5;061m([38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;m/[38;5;m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m# [38;5;m([38;5;068m([38;5;067m([38;5;067m([38;5;067m([38;5;068m([38;5;067m([38;5;m( - [38;5;m([38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;074m#[38;5;m# [38;5;m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m# [38;5;m([38;5;067m([38;5;068m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;m( - [38;5;m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m# [38;5;m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m/[38;5;m([38;5;067m([38;5;068m([38;5;067m([38;5;068m([38;5;067m([38;5;068m([38;5;067m([38;5;068m([38;5;m( - [38;5;m*[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m# [38;5;m.[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m#[38;5;m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;m( - [38;5;m#[38;5;m#[38;5;m#[38;5;m%[38;5;m#[38;5;m#[38;5;m#[38;5;m#[38;5;m#[38;5;m#[38;5;m#[38;5;m#[38;5;m#[38;5;m#[38;5;m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m# [38;5;m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m([38;5;061m/[38;5;061m/[38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;m([38;5;m([38;5;m([38;5;m([38;5;m([38;5;m([38;5;m([38;5;m([38;5;m([38;5;m( -[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m# [38;5;m.[38;5;m#[38;5;m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;m( -[38;5;110m%[38;5;110m%[38;5;110m%[38;5;110m%[38;5;110m%[38;5;110m%[38;5;110m%[38;5;110m%[38;5;110m%[38;5;110m%[38;5;110m%[38;5;110m%[38;5;110m%[38;5;110m%[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m([38;5;m( [38;5;m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;m( - [38;5;m#[38;5;m#[38;5;m#[38;5;m%[38;5;m#[38;5;m#[38;5;m#[38;5;m#[38;5;m#[38;5;m#[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m#[38;5;m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;m. [38;5;m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;m/[38;5;m/[38;5;m/[38;5;m/[38;5;m/[38;5;m/[38;5;m/[38;5;m/[38;5;m/[38;5;m/[38;5;m([38;5;m([38;5;m([38;5;m( - [38;5;m#[38;5;110m#[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m%[38;5;110m#[38;5;m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;m( [38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;m/ - [38;5;m.[38;5;m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m# [38;5;m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;m/ [38;5;m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;m, - [38;5;m%[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m%[38;5;m* [38;5;m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;m( [38;5;m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;m/ - [38;5;m.[38;5;m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m%[38;5;m# [38;5;m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;m([38;5;m#[38;5;074m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m, - [38;5;m%[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m# [38;5;m([38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m% - [38;5;m.[38;5;m# [38;5;m([38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m/[38;5;061m([38;5;061m/[38;5;061m/[38;5;067m([38;5;m([38;5;m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m#[38;5;m% - [38;5;m([38;5;061m/[38;5;061m/[38;5;061m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m( [38;5;m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m%[38;5;110m%[38;5;110m%[38;5;110m%[38;5;m( - [38;5;m/[38;5;061m/[38;5;067m([38;5;061m/[38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;m( [38;5;m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m%[38;5;110m#[38;5;m# - [38;5;m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;m( [38;5;m([38;5;067m([38;5;067m([38;5;067m([38;5;068m([38;5;067m([38;5;067m([38;5;067m([38;5;068m( [38;5;m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m/ - [38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;m( [38;5;m/[38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;067m([38;5;068m([38;5;067m([38;5;m( [38;5;m.[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m#[38;5;110m#[38;5;110m#[38;5;m% - [38;5;m([38;5;068m([38;5;067m([38;5;068m([38;5;067m([38;5;m( [38;5;m([38;5;068m([38;5;067m([38;5;068m([38;5;067m([38;5;068m([38;5;067m([38;5;068m([38;5;m( [38;5;m%[38;5;110m#[38;5;110m%[38;5;110m#[38;5;110m%[38;5;110m#[38;5;m/ diff --git a/users/grfn/system/home/modules/obs.nix b/users/grfn/system/home/modules/obs.nix deleted file mode 100644 index 7962320f8a2f..000000000000 --- a/users/grfn/system/home/modules/obs.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (pkgs) obs-studio; - obs-input-overlay = pkgs.obs-studio-plugins.input-overlay; -in - -{ - home.packages = [ - obs-studio - obs-input-overlay - ]; - - xdg.configFile."obs-studio/plugins/input-overlay/bin/64bit/input-overlay.so".source = - "${obs-input-overlay}/lib/obs-plugins/input-overlay.so"; - xdg.configFile."obs-studio/plugins/input-overlay/data".source = - "${obs-input-overlay}/share/obs/obs-plugins/input-overlay"; -} diff --git a/users/grfn/system/home/modules/ptt.nix b/users/grfn/system/home/modules/ptt.nix deleted file mode 100644 index 436c8f261797..000000000000 --- a/users/grfn/system/home/modules/ptt.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - - pttKeycode = "152"; - sourceID = "3"; - - mute = pkgs.writeShellScript "mute-mic" '' - xset -r ${pttKeycode} - ${pkgs.pulseaudio}/bin/pactl set-source-mute ${sourceID} 1 - ''; - - unmute = pkgs.writeShellScript "unmute-mic" '' - xset -r ${pttKeycode} - ${pkgs.pulseaudio}/bin/pactl set-source-mute ${sourceID} 0 - ''; - -in - -{ - home.packages = with pkgs; [ - xbindkeys - ]; - - - home.file.".xbindkeysrc.scm".text = '' - (xbindkey '("c:${pttKeycode}") "${unmute}") - (xbindkey '(release "c:${pttKeycode}") "${mute}") - ''; - - systemd.user.services."xbindkeys" = { - Unit = { - Description = "Keybind daemon for push-to-talk"; - After = [ "graphical-session-pre.target" ]; - PartOf = [ "graphical-session.target" ]; - }; - - Install = { WantedBy = [ "graphical-session.target" ]; }; - - Service = { - ExecStart = "${pkgs.xbindkeys}/bin/xbindkeys -n -v"; - }; - }; -} diff --git a/users/grfn/system/home/modules/pure.zsh-theme b/users/grfn/system/home/modules/pure.zsh-theme deleted file mode 100755 index 666e28259c14..000000000000 --- a/users/grfn/system/home/modules/pure.zsh-theme +++ /dev/null @@ -1,155 +0,0 @@ -#!/bin/zsh -f -# vim: ft=zsh: -# MIT License -# For my own and others sanity -# git: -# %b => current branch -# %a => current action (rebase/merge) -# prompt: -# %F => color dict -# %f => reset color -# %~ => current path -# %* => time -# %n => username -# %m => shortname host -# %(?..) => prompt conditional - %(condition.true.false) - -# turns seconds into human readable time -# 165392 => 1d 21h 56m 32s -prompt_pure_human_time() { - local tmp=$1 - local days=$(( tmp / 60 / 60 / 24 )) - local hours=$(( tmp / 60 / 60 % 24 )) - local minutes=$(( tmp / 60 % 60 )) - local seconds=$(( tmp % 60 )) - (( $days > 0 )) && echo -n "${days}d " - (( $hours > 0 )) && echo -n "${hours}h " - (( $minutes > 0 )) && echo -n "${minutes}m " - echo "${seconds}s" -} - -is_git_repo() { - command git rev-parse --is-inside-work-tree &>/dev/null - return $? -} - -# fastest possible way to check if repo is dirty -prompt_pure_git_dirty() { - # check if we're in a git repo - is_git_repo || return - # check if it's dirty - [[ "$PURE_GIT_UNTRACKED_DIRTY" == 0 ]] && local umode="-uno" || local umode="-unormal" - command test -n "$(git status --porcelain --ignore-submodules ${umode})" - - (($? == 0)) && echo '*' -} - -prompt_pure_git_wip() { - is_git_repo || return - local subject="$(command git show --pretty=%s --quiet HEAD 2>/dev/null)" - [ "$subject" == 'wip' ] && echo '[WIP]' -} - -# displays the exec time of the last command if set threshold was exceeded -prompt_pure_cmd_exec_time() { - local stop=$EPOCHSECONDS - local start=${cmd_timestamp:-$stop} - integer elapsed=$stop-$start - (($elapsed > ${PURE_CMD_MAX_EXEC_TIME:=5})) && prompt_pure_human_time $elapsed -} - -prompt_pure_preexec() { - cmd_timestamp=$EPOCHSECONDS - - # shows the current dir and executed command in the title when a process is active - print -Pn "\e]0;" - echo -nE "$PWD:t: $2" - print -Pn "\a" -} - -# string length ignoring ansi escapes -prompt_pure_string_length() { - echo ${#${(S%%)1//(\%([KF1]|)\{*\}|\%[Bbkf])}} -} - -prompt_pure_nix_info() { - local packages_info='' - if [[ -z $NIX_SHELL_PACKAGES ]]; then - packages_info='[nix-shell]' - else - packages_info="{ $NIX_SHELL_PACKAGES }" - fi - - case $IN_NIX_SHELL in - 'pure') - echo "$fg_bold[green][nix-shell] " - ;; - 'impure') - echo "$fg_bold[magenta][nix-shell] " - ;; - *) ;; - esac -} - -prompt_pure_precmd() { - if [[ "$TERM" == "dumb" ]]; then - return - fi - - # shows the full path in the title - print -Pn '\e]0;%~\a' - - # git info - vcs_info - - local prompt_pure_preprompt="\n$(prompt_pure_nix_info)$fg_bold[green]$prompt_pure_username%F{blue}%~%F{yellow}$vcs_info_msg_0_`prompt_pure_git_dirty` $fg_no_bold[red]`prompt_pure_git_wip`%f %F{yellow}`prompt_pure_cmd_exec_time`%f " - print -P $prompt_pure_preprompt - - # check async if there is anything to pull - # (( ${PURE_GIT_PULL:-1} )) && { - # # check if we're in a git repo - # command git rev-parse --is-inside-work-tree &>/dev/null && - # # make sure working tree is not $HOME - # [[ "$(command git rev-parse --show-toplevel)" != "$HOME" ]] && - # # check check if there is anything to pull - # command git fetch &>/dev/null && - # # check if there is an upstream configured for this branch - # command git rev-parse --abbrev-ref @'{u}' &>/dev/null && { - # local arrows='' - # (( $(command git rev-list --right-only --count HEAD...@'{u}' 2>/dev/null) > 0 )) && arrows='โฃ' - # (( $(command git rev-list --left-only --count HEAD...@'{u}' 2>/dev/null) > 0 )) && arrows+='โก' - # print -Pn "\e7\e[A\e[1G\e[`prompt_pure_string_length $prompt_pure_preprompt`C%F{cyan}${arrows}%f\e8" - # } - # } &! - - # reset value since `preexec` isn't always triggered - unset cmd_timestamp -} - - -prompt_pure_setup() { - # prevent percentage showing up - # if output doesn't end with a newline - export PROMPT_EOL_MARK='' - - prompt_opts=(cr subst percent) - - zmodload zsh/datetime - autoload -Uz add-zsh-hook - autoload -Uz vcs_info - - add-zsh-hook precmd prompt_pure_precmd - add-zsh-hook preexec prompt_pure_preexec - - zstyle ':vcs_info:*' enable git - zstyle ':vcs_info:git*' formats ' %b' - zstyle ':vcs_info:git*' actionformats ' %b|%a' - - # show username@host if logged in through SSH - [[ "$SSH_CONNECTION" != '' ]] && prompt_pure_username='%n@%m ' - - # prompt turns red if the previous command didn't exit with 0 - PROMPT='%(?.%F{green}.%F{red})โฏ%f ' -} - -prompt_pure_setup "$@" diff --git a/users/grfn/system/home/modules/rtlsdr.nix b/users/grfn/system/home/modules/rtlsdr.nix deleted file mode 100644 index c8a404a1f49e..000000000000 --- a/users/grfn/system/home/modules/rtlsdr.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - - nixpkgs-gnuradio = import - (pkgs.fetchFromGitHub { - owner = "doronbehar"; - repo = "nixpkgs"; - rev = "712561aa5f10bfe6112a1726a912585612a70d1f"; - sha256 = "04yqflbwjcfl9vlplphpj82csqqz9k6m3nj1ybhwgmsc4by7vivl"; - }) - { }; - -in - -{ - home.packages = with pkgs; [ - rtl-sdr - nixpkgs-gnuradio.gnuradio - nixpkgs-gnuradio.gnuradio.plugins.osmosdr - nixpkgs-gnuradio.gqrx - ]; -} diff --git a/users/grfn/system/home/modules/shell.nix b/users/grfn/system/home/modules/shell.nix deleted file mode 100644 index 8d8d5884ce8d..000000000000 --- a/users/grfn/system/home/modules/shell.nix +++ /dev/null @@ -1,189 +0,0 @@ -{ config, lib, pkgs, ... }: -let - shellAliases = rec { - # NixOS stuff - hms = "home-manager switch"; - nor = "sudo nixos-rebuild switch"; - nrs = nor; - nrb = "sudo nixos-rebuild boot"; - ncg = "nix-collect-garbage"; - vihome = "vim ~/.config/nixpkgs/home.nix && home-manager switch"; - virc = "vim ~/code/system/home/modules/shell.nix && home-manager switch && source ~/.zshrc"; - visystem = "sudo vim /etc/nixos/configuration.nix && sudo nixos-rebuild switch"; - - # Nix - ns = "nix-shell"; - nb = "nix build -f ."; - nbl = "nix build -f . --builders ''"; # nix build local - lwo = "lorri watch --once"; - - # Docker and friends - "dcu" = "docker-compose up"; - "dcud" = "docker-compose up -d"; - "dc" = "docker-compose"; - "dcr" = "docker-compose restart"; - "dclf" = "docker-compose logs -f"; - "dck" = "docker"; - "dockerclean" = "dockercleancontainers && dockercleanimages"; - "dockercleanimages" = "docker images -a --no-trunc | grep none | awk '{print \$$3}' | xargs -L 1 -r docker rmi"; - "dockercleancontainers" = "docker ps -a --no-trunc| grep 'Exit' | awk '{print \$$1}' | xargs -L 1 -r docker rm"; - - # Directories - stck = "dirs -v"; - b = "cd ~1"; - ".." = "cd .."; - "..." = "cd ../.."; - "...." = "cd ../../.."; - "....." = "cd ../../../.."; - - # Aliases from old config - "http" = "http --style solarized"; - "grep" = "grep $GREP_OPTIONS"; - "bak" = "~/bin/backup.sh"; - "xmm" = "xmodmap ~/.Xmodmap"; - "asdflkj" = "asdf"; - "asdf" = "asdfghjkl"; - "asdfghjkl" = "echo \"Having some trouble?\""; - "ift" = "sudo iftop -i wlp3s0"; - "first" = "awk '{print \$$1}'"; - "cmt" = "git log --oneline | fzf-tmux | awk '{print \$$1}'"; - "workmon" = "xrandr --output DP-2 --pos 1440x900 --primary"; - "vi" = "vim"; - "adbdev" = "adb devices"; - "adbcon" = "adb connect $GNEX_IP"; - "mpalb" = "mpc search album"; - "mpart" = "mpc search artist"; - "mps" = "mpc search"; - "mpa" = "mpc add"; - "mpt" = "mpc toggle"; - "mpl" = "mpc playlist"; - "dsstore" = "find . -name '*.DS_Store' -type f -ls -delete"; - "df" = "df -h"; - "fs" = "stat -f '%z bytes'"; - "ll" = "ls -al"; - "la" = "ls -a"; - }; -in -{ - home.packages = with pkgs; [ - zsh - autojump - ]; - - home.sessionVariables = { - EDITOR = "vim"; - LS_COLORS = "no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:"; - BROWSER = "firefox"; - BAT_THEME = "ansi-light"; - }; - - programs.bash = { - enable = true; - inherit shellAliases; - }; - - programs.zsh = { - enable = true; - enableAutosuggestions = true; - autocd = true; - - inherit shellAliases; - - history = rec { - save = 100000; - size = save; - }; - - oh-my-zsh = { - enable = true; - - plugins = [ - "battery" - "colorize" - "command-not-found" - "github" - "gitignore" - "postgres" - "systemd" - "themes" - "vi-mode" - ]; - - custom = "${pkgs.stdenv.mkDerivation { - name = "oh-my-zsh-custom"; - unpackPhase = ":"; - installPhase = '' - mkdir -p $out/themes - mkdir -p $out/custom/plugins - ln -s ${./pure.zsh-theme} $out/themes/pure.zsh-theme - ''; - }}"; - - theme = "pure"; - }; - - plugins = [{ - name = "pure-theme"; - src = pkgs.fetchFromGitHub { - owner = "sindresorhus"; - repo = "pure"; - rev = "0a92b02dd4172f6c64fdc9b81fe6cd4bddb0a23b"; - sha256 = "0l8jqhmmjn7p32hdjnv121xsjnqd2c0plhzgydv2yzrmqgyvx7cc"; - }; - }]; - - initExtraFirst = '' - if [[ "$TERM" = "dumb" ]]; then - return - fi - ''; - - initExtraBeforeCompInit = '' - zstyle ':completion:*' completer _complete _ignored _correct _approximate - zstyle ':completion:*' matcher-list \'\' 'm:{[:lower:]}={[:upper:]} m:{[:lower:][:upper:]}={[:upper:][:lower:]} r:|[._- :]=** r:|=**' 'l:|=* r:|=*' - zstyle ':completion:*' max-errors 5 - zstyle ':completion:*' use-cache yes - zstyle ':completion::complete:grunt::options:' expire 1 - zstyle ':completion:*' prompt '%e errors' - # zstyle :compinstall filename '~/.zshrc' - autoload -Uz compinit - ''; - - initExtra = '' - if [[ "$TERM" != "dumb" ]]; then - source ${./zshrc} - source ${pkgs.fetchFromGitHub { - owner = "zsh-users"; - repo = "zsh-syntax-highlighting"; - rev = "7678a8a22780141617f809002eeccf054bf8f448"; - sha256 = "0xh4fbd54kvwwpqvabk8lpw7m80phxdzrd75q3y874jw0xx1a9q6"; - }}/zsh-syntax-highlighting.zsh - source ${pkgs.autojump}/share/autojump/autojump.zsh - source ${pkgs.fetchFromGitHub { - owner = "chisui"; - repo = "zsh-nix-shell"; - rev = "a65382a353eaee5a98f068c330947c032a1263bb"; - sha256 = "0l41ac5b7p8yyjvpfp438kw7zl9dblrpd7icjg1v3ig3xy87zv0n"; - }}/nix-shell.plugin.zsh - - export RPS1="" - autoload -U promptinit; promptinit - prompt pure - fi - - if [[ "$TERM" == "dumb" ]]; then - unsetopt zle - unsetopt prompt_cr - unsetopt prompt_subst - unset zle_bracketed_paste - export PS1='$ ' - fi - ''; - }; - - programs.fzf = { - enable = true; - enableBashIntegration = true; - enableZshIntegration = true; - }; -} diff --git a/users/grfn/system/home/modules/tarsnap.nix b/users/grfn/system/home/modules/tarsnap.nix deleted file mode 100644 index 87002610cbcf..000000000000 --- a/users/grfn/system/home/modules/tarsnap.nix +++ /dev/null @@ -1,64 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - home.packages = with pkgs; [ - tarsnap - ]; - - home.file.".tarsnaprc".text = '' - ### Recommended options - - # Tarsnap cache directory - cachedir /home/grfn/.cache/tarsnap - - # Tarsnap key file - keyfile /home/grfn/.private/tarsnap.key - - # Don't archive files which have the nodump flag set. - nodump - - # Print statistics when creating or deleting archives. - print-stats - - # Create a checkpoint once per GB of uploaded data. - checkpoint-bytes 1G - - ### Commonly useful options - - # Use SI prefixes to make numbers printed by --print-stats more readable. - humanize-numbers - - ### Other options, not applicable to most systems - - # Aggressive network behaviour: Use multiple TCP connections when - # writing archives. Use of this option is recommended only in - # cases where TCP congestion control is known to be the limiting - # factor in upload performance. - #aggressive-networking - - # Exclude files and directories matching specified patterns. - # Only one file or directory per command; multiple "exclude" - # commands may be given. - #exclude - - # Include only files and directories matching specified patterns. - # Only one file or directory per command; multiple "include" - # commands may be given. - #include - - # Attempt to reduce tarsnap memory consumption. This option - # will slow down the process of creating archives, but may help - # on systems where the average size of files being backed up is - # less than 1 MB. - #lowmem - - # Try even harder to reduce tarsnap memory consumption. This can - # significantly slow down tarsnap, but reduces its memory usage - # by an additional factor of 2 beyond what the lowmem option does. - #verylowmem - - # Snapshot time. Use this option if you are backing up files - # from a filesystem snapshot rather than from a "live" filesystem. - #snaptime <file> - ''; -} diff --git a/users/grfn/system/home/modules/tmux.nix b/users/grfn/system/home/modules/tmux.nix deleted file mode 100644 index adbaa02f32f9..000000000000 --- a/users/grfn/system/home/modules/tmux.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - programs.tmux = { - enable = true; - customPaneNavigationAndResize = true; - keyMode = "vi"; - newSession = true; - prefix = "C-a"; - shell = "${pkgs.zsh}/bin/zsh"; - shortcut = "a"; - - extraConfig = '' - set -g status-bg "colour0" - set -g message-command-fg "colour7" - set -g status-justify "centre" - set -g status-left-length "100" - set -g status "on" - set -g pane-active-border-fg "colour14" - set -g message-bg "colour11" - set -g status-right-length "100" - set -g status-right-attr "none" - set -g message-fg "colour7" - set -g message-command-bg "colour11" - set -g status-attr "none" - # set -g status-utf8 "on" - set -g pane-border-fg "colour11" - set -g status-left-attr "none" - setw -g window-status-fg "colour10" - setw -g window-status-attr "none" - setw -g window-status-activity-bg "colour0" - setw -g window-status-activity-attr "none" - setw -g window-status-activity-fg "colour14" - setw -g window-status-separator "" - setw -g window-status-bg "colour0" - set -g status-left "#[fg=colour15,bg=colour14,bold] #S #[fg=colour14,bg=colour11,nobold,nounderscore,noitalics]๎ฐ#[fg=colour7,bg=colour11] #F #[fg=colour11,bg=colour0,nobold,nounderscore,noitalics]๎ฐ#[fg=colour10,bg=colour0] #W #[fg=colour0,bg=colour0,nobold,nounderscore,noitalics]๎ฐ" - set -g status-right "#{battery_status_bg} Batt: #{battery_percentage} #{battery_remain} | #[fg=colour0,bg=colour0,nobold,nounderscore,noitalics]๎ฒ#[fg=colour10,bg=colour0] %a #[fg=colour11,bg=colour0,nobold,nounderscore,noitalics]๎ฒ#[fg=colour7,bg=colour11] %b %d ๎ณ %R #[fg=colour14,bg=colour11,nobold,nounderscore,noitalics]๎ฒ#[fg=colour15,bg=colour14] #H " - setw -g window-status-format "#[fg=colour0,bg=colour0,nobold,nounderscore,noitalics]๎ฐ#[default] #I ๎ฑ #W #[fg=colour0,bg=colour0,nobold,nounderscore,noitalics]๎ฐ" - setw -g window-status-current-format "#[fg=colour0,bg=colour11,nobold,nounderscore,noitalics]๎ฐ#[fg=colour7,bg=colour11] #I ๎ฑ #W #[fg=colour11,bg=colour0,nobold,nounderscore,noitalics]๎ฐ" - ''; - }; -} diff --git a/users/grfn/system/home/modules/twitter.nix b/users/grfn/system/home/modules/twitter.nix deleted file mode 100644 index ab5647e418aa..000000000000 --- a/users/grfn/system/home/modules/twitter.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ pkgs, lib, ... }: - -{ - imports = [ - ./lib/zshFunctions.nix - ]; - - home.packages = with pkgs; [ - t - ]; - - home.sessionVariables = { - TWITTER_WHOAMI = "glittershark1"; - }; - - programs.zsh = { - shellAliases = { - "mytl" = "t tl $TWITTER_WHOAMI"; - }; - - functions = { - favelast = "t fave $(t tl -l $1 | head -n1 | cut -d' ' -f1)"; - rtlast = "t rt $(t tl -l $1 | head -n1 | cut -d' ' -f1)"; - tthread = "t reply $(t tl -l $TWITTER_WHOAMI | head -n1 | cut -d' ' -f1) $@"; - }; - }; -} diff --git a/users/grfn/system/home/modules/vim.nix b/users/grfn/system/home/modules/vim.nix deleted file mode 100644 index b87cb09ad125..000000000000 --- a/users/grfn/system/home/modules/vim.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ config, pkgs, ... }: -{ - programs.neovim = { - enable = true; - viAlias = true; - vimAlias = true; - plugins = with pkgs.vimPlugins; [ - ctrlp - deoplete-nvim - syntastic - vim-abolish - vim-airline - vim-airline-themes - vim-bufferline - vim-closetag - # vim-colors-solarized - # solarized - (pkgs.vimUtils.buildVimPlugin { - pname = "vim-colors-solarized"; - version = "git"; - src = pkgs.fetchFromGitHub { - owner = "glittershark"; - repo = "vim-colors-solarized"; - rev = "4857c3221ec3f2693a45855154cb61a2cefb514d"; - sha256 = "0kqp5w14g7adaiinmixm7z3x4w74lv1lcgbqjbirx760f0wivf9y"; - }; - }) - vim-commentary - vim-dispatch - vim-endwise - vim-repeat - vim-fugitive - vim-markdown - vim-nix - vim-rhubarb - vim-sexp - vim-sexp-mappings-for-regular-people - vim-sleuth - vim-startify - vim-surround - vim-unimpaired - vinegar - ]; - extraConfig = '' - source ${./vimrc} - ''; - }; -} diff --git a/users/grfn/system/home/modules/vimrc b/users/grfn/system/home/modules/vimrc deleted file mode 100644 index 3e33b5e2bee7..000000000000 --- a/users/grfn/system/home/modules/vimrc +++ /dev/null @@ -1,1121 +0,0 @@ -" vim:set fdm=marker fmr={{{,}}} ts=2 sts=2 sw=2 expandtab: - - -" Basic Options {{{ -set nocompatible -set modeline -set modelines=10 -syntax enable -filetype plugin indent on -set ruler -set showcmd -set number -set incsearch -set smartcase -set ignorecase -set scrolloff=10 -set tabstop=4 -set shiftwidth=4 -set softtabstop=4 -set nosmartindent -set expandtab -set noerrorbells visualbell t_vb= -set laststatus=2 -set hidden -let mapleader = ',' -let maplocalleader = '\' -set undofile -" set undodir=~/.vim/undo -set wildignore=*.pyc,*.o,.git -set clipboard=unnamedplus -" set backupdir=$HOME/.vim/backup -" set directory=$HOME/.vim/tmp -set foldmarker={{{,}}} -set colorcolumn=+1 -set concealcursor= -set formatoptions+=j -set wildmenu -set wildmode=longest,list:full -set noincsearch -" }}} - -" GUI options {{{ -set go-=m -set go-=T -set go-=r -set go-=L -set go-=e -set guifont=Meslo\ LG\ S\ DZ\ 9 -" }}} - -" Colors {{{ -" set t_Co=256 - -fu! ReverseBackground() - if &bg=="light" - se bg=dark - else - se bg=light - endif -endf -com! BgToggle call ReverseBackground() -nm <F12> :BgToggle<CR> - -set background=light -colorscheme solarized -" }}} - -" --------------------------------------------------------------------------- - -" CtrlP {{{ -let g:ctrlp_custom_ignore = { - \ 'dir': '(node_modules|target)' - \ } -let g:ctrlp_max_files = 0 -let g:ctrlp_max_depth = 100 -" }}} - -" YouCompleteMe {{{ -let g:ycm_semantic_triggers = { - \ 'c' : ['->', '.'], - \ 'objc' : ['->', '.'], - \ 'ocaml' : ['.', '#'], - \ 'cpp,objcpp' : ['->', '.', '::'], - \ 'perl' : ['->'], - \ 'php' : ['->', '::'], - \ 'cs,java,javascript,d,python,perl6,scala,vb,elixir,go' : ['.'], - \ 'vim' : ['re![_a-zA-Z]+[_\w]*\.'], - \ 'lua' : ['.', ':'], - \ 'erlang' : [':'], - \ 'clojure' : [], - \ 'haskell' : ['re!.*', '.', ' ', '('] - \ } - " \ 'haskell' : ['.', '(', ' '] - " \ 'ruby' : ['.', '::'], - " \ 'clojure' : ['(', '.', '/', '['] -" }}} - -" Neocomplete {{{ -if !has('nvim') - " Use neocomplete. - let g:neocomplete#enable_at_startup = 1 - " Use smartcase. - let g:neocomplete#enable_smart_case = 1 - " Set minimum syntax keyword length. - let g:neocomplete#sources#syntax#min_keyword_length = 3 - let g:neocomplete#lock_buffer_name_pattern = '\*ku\*' - - " Define dictionary. - " let g:neocomplete#sources#dictionary#dictionaries = { - " \ 'default' : '', - " \ 'vimshell' : $HOME.'/.vimshell_hist', - " \ 'scheme' : $HOME.'/.gosh_completions' - " \ } - - " Define keyword. - if !exists('g:neocomplete#keyword_patterns') - let g:neocomplete#keyword_patterns = {} - endif - let g:neocomplete#keyword_patterns['default'] = '\h\w*' - - " Plugin key-mappings. - inoremap <expr><C-g> neocomplete#undo_completion() - inoremap <expr><C-l> neocomplete#complete_common_string() - - " Recommended key-mappings. - " <CR>: close popup and save indent. - inoremap <silent> <CR> <C-r>=<SID>my_cr_function()<CR> - function! s:my_cr_function() - return (pumvisible() ? "\<C-y>" : "" ) . "\<CR>" - " For no inserting <CR> key. - "return pumvisible() ? "\<C-y>" : "\<CR>" - endfunction - " <TAB>: completion. - inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>" - " <C-h>, <BS>: close popup and delete backword char. - inoremap <expr><C-h> neocomplete#smart_close_popup()."\<C-h>" - inoremap <expr><BS> neocomplete#smart_close_popup()."\<C-h>" - " Close popup by <Space>. - "inoremap <expr><Space> pumvisible() ? "\<C-y>" : "\<Space>" - - " AutoComplPop like behavior. - "let g:neocomplete#enable_auto_select = 1 - - " Shell like behavior(not recommended). - "set completeopt+=longest - "let g:neocomplete#enable_auto_select = 1 - "let g:neocomplete#disable_auto_complete = 1 - "inoremap <expr><TAB> pumvisible() ? "\<Down>" : "\<C-x>\<C-u>" - - " Enable omni completion. - " autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS - " autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags - " autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS - " autocmd FileType python setlocal omnifunc=pythoncomplete#Complete - " autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags - - " Enable heavy omni completion. - if !exists('g:neocomplete#sources#omni#input_patterns') - let g:neocomplete#sources#omni#input_patterns = {} - endif -endif -" }}} - -" Deoplete {{{ -if has('nvim') - let g:deoplete#enable_at_startup = 1 - - inoremap <silent> <CR> <C-r>=<SID>my_cr_function()<CR> - function! s:my_cr_function() - return (pumvisible() ? "\<C-y>" : "" ) . "\<CR>" - " For no inserting <CR> key. - "return pumvisible() ? "\<C-y>" : "\<CR>" - endfunction - " <TAB>: completion. - inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>" - inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<TAB>" -endif -" }}} - -" Neovim Terminal mode {{{ -if has('nvim') - tnoremap <Esc> <C-\><C-n> - nnoremap \\ :tabedit term://zsh<CR> - nnoremap q\ :call <SID>OpenRepl()<CR> - - if !exists('g:repl_size') - let g:repl_size=9 - endif - - function! s:OpenRepl() " {{{ - " Check if buffer exists and is open - if exists('s:repl_bufname') && bufexists(s:repl_bufname) && bufwinnr(s:repl_bufname) >=? 0 - " If so, just switch to it - execute bufwinnr(s:repl_bufname) . 'wincmd' 'w' - norm i - return - endif - - if !exists('b:console') - let b:console=$SHELL - endif - - let l:console_cmd = b:console - - execute 'bot' g:repl_size . 'new' - set winfixheight nobuflisted - call termopen(l:console_cmd) - let s:repl_bufname = bufname('%') - norm i - endfunction " }}} -endif -" }}} - -" Tagbar options {{{ -let g:tagbar_autoclose = 1 -let g:tagbar_autofocus = 1 -let g:tagbar_compact = 1 -" }}} - -" delimitMate options {{{ -let g:delimitMate_expand_cr = 1 -" }}} - -" UltiSnips options {{{ -let g:UltiSnipsExpandTrigger = '<c-j>' - "g:UltiSnipsJumpForwardTrigger <c-j> - "g:UltiSnipsJumpBackwardTrigger <c-k> -" }}} - -" VDebug Options {{{ -let g:vdebug_options = {'server': '192.168.56.1'} -" }}} - -" Statusline {{{ -let g:airline_powerline_fonts=1 - -if !exists('g:airline_symbols') - let g:airline_symbols = {} -endif -let g:airline_symbols.space = "\ua0" - -let g:airline#extensions#tagbar#flags = 'f' -let g:airline#extensions#tabline#enabled = 1 -let g:airline#extensions#tabline#show_buffers = 0 -let g:airline#extensions#tabline#show_tabs = 1 -let g:airline#extensions#tabline#tab_min_count = 2 -let g:airline#extensions#tmuxline#enabled = 0 - -let g:tmuxline_theme = 'airline' -let g:tmuxline_preset = 'full' - -"set statusline= -"set statusline+=%2*[%n%H%M%R%W]%*\ " flags and buf no -"set statusline+=%-40f%<\ " path -"set statusline+=%=%40{fugitive#statusline()}\ " Vim status -"set statusline+=%1*%y%*%*\ " file type -"set statusline+=%10((%l,%c)%)\ " line and column -"set statusline+=%P " percentage of file -" }}} - -" Code review mode {{{ -fun! GetFontName() - return substitute(&guifont, '^\(.\{-}\)[0-9]*$', '\1', '') -endfun - -fun! <SID>CodeReviewMode() - let &guifont = GetFontName() . ' 15' -endfun -com! CodeReviewMode call <SID>CodeReviewMode() -" }}} - -" Syntastic {{{ -let g:syntastic_enable_signs = 0 - -" Python {{{ -let g:syntastic_python_checkers = ['flake8'] -let g:syntastic_python_flake8_post_args = "--ignore=E101,E223,E224,E301,E302,E303,E501,E701,W,F401,E111,E261" - -" }}} -" Javascript {{{ -let g:syntastic_javascript_checkers = ['eslint'] -let g:flow#autoclose = 1 -let g:flow#enable = 1 - -" augroup syntastic_javascript_jsx -" autocmd! -" autocmd BufReadPre,BufNewFile *.js -" autocmd BufReadPre,BufNewFile *.jsx -" \ let g:syntastic_javascript_checkers = ['jsxhint'] -" augroup END - -" }}} -" Haml {{{ -let g:syntastic_haml_checkers = ['haml_lint'] - -" }}} -" Html {{{ -let g:syntastic_html_checkers = [] - -" }}} -" Ruby {{{ -let g:syntastic_ruby_checkers = ['rubocop'] -" }}} -" SASS/SCSS {{{ -let g:syntastic_scss_checkers = ['scss_lint'] -" }}} -" Haskell {{{ -" let g:syntastic_haskell_checkers = ['ghc-mod'] -" }}} -" Elixir {{{ -let g:syntastic_elixir_checkers = ['elixir'] -let g:syntastic_enable_elixir_checker = 1 -" }}} -" }}} - -" Bufferline {{{ -let g:bufferline_echo=0 -" }}} - -" Eclim {{{ -let g:EclimCompletionMethod = 'omnifunc' -augroup eclim - au! - au FileType java call <SID>JavaSetup() - au FileType java set textwidth=120 -augroup END - -function! s:JavaSetup() abort - noremap <C-I> :JavaImport<CR> - nnoremap K :JavaDocPreview<CR> - nnoremap ]d :JavaSearchContext<CR> - nnoremap [d :JavaSearchContext<CR> - nnoremap g<CR> :JUnit<CR> - nnoremap g\ :Mvn test<CR> -endfunction -" }}} - -" Signify options {{{ -let g:signify_mapping_next_hunk = ']h' -let g:signify_mapping_prev_hunk = '[h' -let g:signify_vcs_list = ['git'] -let g:signify_sign_change = '~' -let g:signify_sign_delete = '-' -" }}} - -" Simplenote {{{ -let g:SimplenoteFiletype = 'markdown' -let g:SimplenoteSortOrder = 'pinned,modifydate,tagged,createdate' -let g:SimplenoteVertical = 1 - -nnoremap <Leader>nn :Simplenote -n<CR> -nnoremap <Leader>nl :Simplenote -l<CR> -nnoremap <Leader>nw :Simplenote -l work<CR> -nnoremap <Leader>nt :Simplenote -t<CR> -" }}} - -" Emmet {{{ -" Expand abbreviation -let g:user_emmet_leader_key = '<C-y>' -" }}} - -" Startify {{{ -let g:startify_bookmarks=[ '~/.vimrc', '~/.zshrc' ] -" }}} - -" Abolish {{{ -let g:abolish_save_file = expand('~/.vim/after/plugin/abolish.vim') -" }}} - -" Rails projections {{{ - -if !exists('g:rails_projections') - let g:rails_projections = {} -endif - -call extend(g:rails_projections, { - \ "config/routes.rb": { "command": "routes" }, - \ "config/structure.sql": { "command": "structure" } - \ }, 'keep') - -if !exists('g:rails_gem_projections') - let g:rails_gem_projections = {} -endif - -call extend(g:rails_gem_projections, { - \ "active_model_serializers": { - \ "app/serializers/*_serializer.rb": { - \ "command": "serializer", - \ "template": "class %SSerializer < ActiveModel::Serializer\nend", - \ "affinity": "model"}}, - \ "react-rails": { - \ "app/assets/javascripts/components/*.jsx": { - \ "command": "component", - \ "template": "var %S = window.%S = React.createClass({\n render: function() {\n }\n});", - \ "alternate": "spec/javascripts/components/%s_spec.jsx" }, - \ "spec/javascripts/components/*_spec.jsx": { - \ "alternate": "app/assets/javascripts/components/{}.jsx" }}, - \ "rspec": { - \ "spec/**/support/*.rb": { - \ "command": "support"}}, - \ "cucumber": { - \ "features/*.feature": { - \ "command": "feature", - \ "template": "Feature: %h"}, - \ "features/support/*.rb": { - \ "command": "support"}, - \ "features/support/env.rb": { - \ "command": "support"}, - \ "features/step_definitions/*_steps.rb": { - \ "command": "steps"}}, - \ "carrierwave": { - \ "app/uploaders/*_uploader.rb": { - \ "command": "uploader", - \ "template": "class %SUploader < CarrierWave::Uploader::Base\nend"}}, - \ "draper": { - \ "app/decorators/*_decorator.rb": { - \ "command": "decorator", - \ "affinity": "model", - \ "template": "class %SDecorator < Draper::Decorator\nend"}}, - \ "fabrication": { - \ "spec/fabricators/*_fabricator.rb": { - \ "command": ["fabricator", "factory"], - \ "alternate": "app/models/%s.rb", - \ "related": "db/schema.rb#%p", - \ "test": "spec/models/%s_spec.rb", - \ "template": "Fabricator :%s do\nend", - \ "affinity": "model"}}, - \ "factory_girl": { - \ "spec/factories/*.rb": { - \ "command": "factory", - \ "alternate": "app/models/%i.rb", - \ "related": "db/structure.sql#%s", - \ "test": "spec/models/%s_spec.rb", - \ "template": "FactoryGirl.define do\n factory :%i do\n end\nend", - \ "affinity": "model"}, - \ "spec/factories.rb": { - \ "command": "factory"}, - \ "test/factories.rb": { - \ "command": "factory"}} - \ }, 'keep') -" }}} - -" Other projections {{{ -let g:projectionist_heuristics = { - \ "config.ru&docker-compose.yml&app/&config/&OWNERS": { - \ "app/jobs/*.rb": { - \ "type": "job", - \ "alternate": "spec/jobs/{}_spec.rb" - \ }, - \ "app/models/*.rb": { - \ "type": "model", - \ "alternate": "spec/models/{}_spec.rb" - \ }, - \ "app/resources/*_resource.rb": { - \ "type": "resource", - \ "alternate": "spec/resources/{}_resource_spec.rb" - \ }, - \ "config/*.yml": { - \ "type": "config" - \ }, - \ "spec/*_spec.rb": { - \ "type": "spec", - \ "alternate": "app/{}.rb" - \ }, - \ "spec/factories/*.rb": { - \ "type": "factory", - \ } - \ }, - \ "svc-gateway.cabal": { - \ "src/*.hs": { - \ "type": "src", - \ "alternate": "test/{}Spec.hs" - \ }, - \ "test/*Spec.hs": { - \ "type": "spec", - \ "alternate": "src/{}.hs", - \ "template": [ - \ "module Gateway.Resource.HierarchySpec (main, spec) where", - \ "", - \ "import Prelude", - \ "import Test.Hspec", - \ "import Data.Aeson", - \ "", - \ "import Gateway.Resource.Hierarchy", - \ "", - \ "main :: IO ()", - \ "main = hspec spec", - \ "", - \ "spec :: Spec", - \ "spec = do", - \ " describe \"something\" $ undefined" - \ ] - \ }, - \ "svc-gateway.cabal": { - \ "type": "cabal" - \ } - \ }, - \ "package.json&.flowconfig": { - \ "src/*.*": { - \ "type": "src", - \ "alternate": "test/{}_spec.js" - \ } - \ }, - \ "pom.xml&src/main/clj/|src/main/cljs": { - \ "*": { - \ "start": "USE_NREPL=1 bin/run -m elephant.dev-system" , - \ "connect": "nrepl://localhost:5554", - \ "piggieback": "(figwheel-sidecar.repl-api/repl-env)" - \ }, - \ "pom.xml": { "type": "pom" }, - \ "src/main/clj/*.clj": { - \ "alternate": "src/test/clj/{}_test.clj", - \ "template": ["(ns {dot|hyphenate})"] - \ }, - \ "src/test/clj/*_test.clj": { - \ "alternate": "src/main/clj/{}.clj", - \ "dispatch": ":RunTests {dot|hyphenate}-test", - \ "template": ["(ns {dot|hyphenate}-test", - \ " (:require [clojure.test :refer :all]))"] - \ }, - \ "src/main/cljs/*.cljs": { - \ "alternate": "src/test/cljs/{}_test.cljs" - \ }, - \ "src/main/cljs/*_test.cljs": { - \ "alternate": "src/main/cljs/{}.cljs", - \ "dispatch": ":RunTests {dot|hyphenate}-test" - \ }, - \ "src/main/clj/*.cljc": { - \ "alternate": "src/test/clj/{}_test.cljc" - \ }, - \ "src/main/clj/*_test.cljc": { - \ "alternate": "src/test/clj/{}.cljc", - \ "dispatch": ":RunTests {dot|hyphenate}-test" - \ } - \ }} -" }}} - -" AutoPairs {{{ -let g:AutoPairsCenterLine = 0 -" }}} - -" Filetypes {{{ - -" Python {{{ -aug Python - au! - au FileType python set tabstop=4 shiftwidth=4 softtabstop=4 expandtab -aug END -let g:python_highlight_all=1 -" }}} - -" PHP {{{ -aug PHP - au! - "au FileType php setlocal fdm=marker fmr={{{,}}} -aug END " }}} - -" Mail {{{ -aug Mail - au FileType mail setlocal spell -aug END " }}} - -" Haskell {{{ -let g:haskell_conceal_wide = 1 -let g:haskellmode_completion_ghc = 0 -let g:necoghc_enable_detailed_browse = 1 - -augroup Haskell - autocmd! - autocmd FileType haskell setlocal textwidth=110 shiftwidth=2 - autocmd FileType haskell setlocal omnifunc=necoghc#omnifunc - autocmd FileType haskell call <SID>HaskellSetup() - autocmd FileType haskell setlocal keywordprg=hoogle\ -cie -augroup END - -function! s:HaskellSetup() - set sw=4 - " compiler cabal - " let b:start='cabal run' - " let b:console='cabal repl' - " let b:dispatch='cabal test' - compiler stack - let b:start='stack run' - let b:console='stack ghci' - let b:dispatch='stack test' - nnoremap <buffer> gy :HdevtoolsType<CR> - nnoremap <buffer> yu :HdevtoolsClear<CR> -endfunction -" }}} - -" Ruby {{{ - -function! s:RSpecSyntax() - syn keyword rspecMethod describe context it its specify shared_context - \ shared_examples shared_examples_for shared_context include_examples - \ include_context it_should_behave_like it_behaves_like before after - \ around fixtures controller_name helper_name scenario feature - \ background given described_class - syn match rspecMethod '\<let\>!\=' - syn match rspecMethod '\<subject\>!\=' - syn keyword rspecMethod violated pending expect expect_any_instance_of allow - \ allow_any_instance_of double instance_double mock mock_model - \ stub_model xit - syn match rspecMethod '\.\@<!\<stub\>!\@!' - - call s:RSpecHiDefaults() -endfunction - -function! s:RSpecHiDefaults() - hi def link rspecMethod rubyFunction -endfunction - -augroup Ruby - au! - " au FileType ruby let b:surround_114 = "\\(module|class,def,if,unless,case,while,until,begin,do) \r end" - " au FileType ruby set fdm=syntax - au FileType ruby set tw=110 - au FileType ruby set omnifunc= - au FileType ruby nnoremap <buffer> gy orequire 'pry'; binding.pry<ESC>^ - au FileType ruby nnoremap <buffer> gY Orequire 'pry'; binding.pry<ESC>^ - au FileType ruby nnoremap <buffer> yu :g/require 'pry'; binding.pry/d<CR> - au BufNewFile,BufRead *_spec.rb call <SID>RSpecSyntax() -augroup END - -let ruby_operators = 1 -let ruby_space_errors = 1 - -let g:rubycomplete_rails = 1 -command! -range ConvertHashSyntax <line1>,<line2>s/:(\S{-})(\s{-})=> /\1:\2/ -" }}} - -" Clojure {{{ - -aug Clojure - au! - autocmd FileType clojure nnoremap <C-S> :Slamhound<CR> - autocmd FileType clojure nnoremap <silent> gr :w <bar> Require <bar> e<CR> - let g:clojure_align_multiline_strings = 1 - let g:clojure_fuzzy_indent_patterns = - \ ['^with', '^def', '^let', '^fact'] - let g:clojure_special_indent_words = - \ 'deftype,defrecord,reify,proxy,extend-type,extend-protocol,letfn,html' - - autocmd FileType clojure setlocal textwidth=80 - autocmd FileType clojure setlocal lispwords+=GET,POST,PATCH,PUT,DELETE | - \ setlocal lispwords+=context,select - autocmd BufNewFile,BufReadPost *.cljx setfiletype clojure - autocmd BufNewFile,BufReadPost *.cljx setlocal omnifunc= - autocmd BufNewFile,BufReadPost *.cljs setlocal omnifunc= - autocmd FileType clojure call <SID>TangentInit() - autocmd FileType clojure call <SID>sexp_mappings() - autocmd BufRead *.cljc ClojureHighlightReferences - autocmd FileType clojure let b:AutoPairs = { - \ '"': '"', - \ '{': '}', - \ '(': ')', - \ '[': ']'} - " Don't auto-pair quote reader macros - " \'`': '`', - " \ '''': '''', - - autocmd User ProjectionistActivate call s:projectionist_connect() - - function! s:projectionist_connect() abort - let connected = !empty(fireplace#path()) - if !connected - for [root, value] in projectionist#query('connect') - try - silent execute "FireplaceConnect" value root - let connected = 1 - break - catch /.*Connection refused.*/ - endtry - endfor - endif - - " if connected && exists(':Piggieback') - " for [root, value] in projectionist#query('piggieback') - " silent execute "Piggieback" value - " break - " endfor - " endif - endfunction - - " autocmd BufNewFile,BufReadPost *.cljx setlocal omnifunc= - " autocmd BufNewFile,BufReadPost *.cljs setlocal omnifunc= - - autocmd FileType clojure let b:console='lein repl' - autocmd FileType clojure call <SID>ClojureMaps() - - function! s:ClojureMaps() abort - nnoremap <silent> <buffer> [m :call search('^(def', 'Wzb')<CR> - nnoremap <silent> <buffer> ]m :call search('^(def', 'Wz')<CR> - endfunction - - command! Scratch call <SID>OpenScratch() - autocmd FileType clojure nnoremap <buffer> \s :Scratch<CR> - - let g:scratch_buffer_name = 'SCRATCH' - - function! s:OpenScratch() - if bufwinnr(g:scratch_buffer_name) > 0 - execute bufwinnr(g:scratch_buffer_name) . 'wincmd' 'w' - return - endif - - vsplit SCRATCH - set buftype=nofile - set filetype=clojure - let b:scratch = 1 - endfunction -aug END - -function! s:sexp_mappings() abort - if !exists('g:sexp_loaded') - return - endif - - nmap <buffer> cfo <Plug>(sexp_raise_list) - nmap <buffer> cfO <Plug>(sexp_raise_element) - nmap <buffer> cfe <Plug>(sexp_raise_element) -endfunction - -function! s:TangentInit() abort - set textwidth=80 - command! TReset call fireplace#session_eval('(user/reset)') - command! TGo call fireplace#session_eval('(user/go)') - command! TMigrate call fireplace#session_eval('(user/migrate)') - command! TRollback call fireplace#session_eval('(user/rollback)') - nnoremap g\ :TReset<CR> -endfunction - -" }}} - -" Go {{{ - -let g:go_highlight_functions = 1 -let g:go_highlight_methods = 1 -let g:go_highlight_structs = 1 -let g:go_highlight_operators = 1 -let g:go_highlight_build_constraints = 1 - -augroup Go - autocmd! - autocmd FileType go setlocal omnifunc=go#complete#Complete - autocmd FileType go setlocal foldmethod=syntax - autocmd FileType go setlocal foldlevel=100 - autocmd FileType go nnoremap <buffer> <F9> :GoTest<CR> - autocmd FileType go inoremap <buffer> <F9> <ESC>:GoTest<CR>i -augroup END - -" }}} - -" RAML {{{ - -function! s:buffer_syntax() " {{{ - syn keyword ramlRAML RAML contained - syn match ramlVersionString '^#%RAML \d\.\d' contains=ramlRAML -endfunction " }}} - -augroup RAML - autocmd! - autocmd BufRead,BufNewFile *.raml set filetype=yaml - autocmd BufRead,BufNewFile *.raml call s:buffer_syntax() -augroup END - -hi def link ramlVersionString Special -hi def link ramlRAML Error -" }}} - -" Mustache/Handlebars {{{ -let g:mustache_abbreviations = 1 -" }}} - -" Netrw {{{ -augroup netrw - autocmd! - autocmd FileType netrw nnoremap <buffer> Q :Rexplore<CR> - - " Hee hee, oil and vinegar - function! s:setup_oil() abort - nnoremap <buffer> q <C-6> - xnoremap <buffer> q <C-6> - endfunction -augroup END -" }}} -" }}} - -" Remove trailing whitespace {{{ -fun! <SID>StripTrailingWhitespaces() - let l = line(".") - let c = col(".") - %s/\s\+$//e - call cursor(l, c) -endfun - -augroup striptrailingwhitespaces " {{{ -autocmd FileType c,cpp,java,php,ruby,python,sql,javascript,sh,jst,less,haskell,haml,coffee,scss,clojure,objc,elixir,yaml,json,eruby - \ autocmd BufWritePre <buffer> :call <SID>StripTrailingWhitespaces() -augroup END " }}} - -" }}} - -" Goyo {{{ -let g:limelight_conceal_ctermfg = "10" -let g:limelight_conceal_guifg = "#586e75" -autocmd! User GoyoEnter Limelight -autocmd! User GoyoLeave Limelight! -" }}} - -"----------------------------------------------------------------------------- - -" Commands {{{ - -" Edit temporary SQL files {{{ -let s:curr_sql = 0 -fun! <SID>EditSqlTempFile() - let l:fname = '/tmp/q' . s:curr_sql . '.sql' - execute 'edit' l:fname - let s:curr_sql = s:curr_sql + 1 -endfun -com! EditSqlTempFile call <SID>EditSqlTempFile() -" }}} - -" Double Indentation -command! -range DoubleIndentation <line1>,<line2>s/^\(\s.\{-}\)\(\S\)/\1\1\2/ - -" Quick-and-dirty fix capitalization of sql files -command! -range FixSqlCapitalization <line1>,<line2>v/\v(^\s*--.*$)|(TG_)/norm guu - -" VimPipe Commands {{{ -" let g:sql_type_default = 'pgsql' -command! SqlLive let b:vimpipe_command="vagrant ssh -c '~/mysql'" -command! SqlRails let b:vimpipe_command="bin/rails dbconsole" -command! SqlHeroku let b:vimpipe_command="heroku pg:psql" -command! SqlEntities let b:vimpipe_command="psql -h 127.1 entities nomi" -command! SqlUsers let b:vimpipe_command="psql -h 127.1 users nomi" -command! SqlTangent let b:vimpipe_command="psql -h local.docker tangent super" -" }}} - -" Git commands {{{ -command! -nargs=* Gpf Gpush -f <args> -command! -nargs=* Gcv Gcommit --verbose <args> -" }}} - -" Focus dispatch to only the last failures -command! -nargs=* FocusFailures FocusDispatch rspec --only-failures <args> - -" }}} - -" Autocommands {{{ - -augroup fugitive " {{{ - au! - autocmd BufNewFile,BufRead fugitive://* set bufhidden=delete -augroup END " }}} - -augroup omni " {{{ - au! - " autocmd FileType javascript setlocal omnifunc=tern#Complete - "autocmd FileType python setlocal omnifunc=pythoncomplete#Complete - autocmd FileType php setlocal omnifunc= -augroup END " }}} - -augroup sql " {{{ - au! - autocmd FileType sql let b:vimpipe_command="psql -h 127.0.0.1 landlordsny_development landlordsny" - autocmd FileType sql let b:vimpipe_filetype="postgresql" - autocmd FileType sql set syntax=postgresql - autocmd FileType postgresql set nowrap - autocmd BufNewFile,BufReadPost *.sql set syntax=pgsql -augroup END " }}} - -augroup markdown " {{{ - au! - autocmd FileType markdown let b:vimpipe_command='markdown' - autocmd FileType markdown let b:vimpipe_filetype='html' - autocmd FileType markdown set tw=80 -augroup END " }}} - -augroup typescript " {{{ - au! - autocmd FileType typescript let b:vimpipe_command='tsc' - autocmd FileType typescript let b:vimpipe_filetype='javascript' - autocmd FileType typescript TSSstarthere - autocmd FileType typescript nnoremap <buffer> gd :TSSdef<CR> -augroup END " }}} - -augroup jsx " {{{ - au! - " autocmd FileType jsx set syntax=javascript - autocmd FileType javascript set filetype=javascript.jsx -augroup END " }}} - -augroup nicefoldmethod " {{{ - au! - " Don't screw up folds when inserting text that might affect them, until - " leaving insert mode. Foldmethod is local to the window. Protect against - " screwing up folding when switching between windows. - autocmd InsertEnter * - \ if !exists('w:last_fdm') | - \ let w:last_fdm=&foldmethod | - \ setlocal foldmethod=manual | - \ endif - autocmd InsertLeave,WinLeave * - \ if exists('w:last_fdm') | - \ let &l:foldmethod=w:last_fdm | - \ unlet w:last_fdm | - \ endif -augroup END " }}} - -augroup visualbell " {{{ - au! - autocmd GUIEnter * set visualbell t_vb= -augroup END -" }}} - -augroup quickfix " {{{ - au! - autocmd QuickFixCmdPost grep cwindow -augroup END " }}} - -augroup php " {{{ - au! -augroup END "}}} - -augroup rubylang " {{{ - au! - autocmd FileType ruby compiler rake -augroup END " }}} - -augroup javascript "{{{ - au! - autocmd FileType javascript let &errorformat = - \ '%E%.%#%n) %s:,' . - \ '%C%.%#Error: %m,' . - \ '%C%.%#at %s (%f:%l:%c),' . - \ '%Z%.%#at %s (%f:%l:%c),' . - \ '%-G%.%#,' -augroup END " }}} - -augroup git " {{{ - autocmd! - autocmd FileType gitcommit set textwidth=72 -augroup END -" }}} -" }}} - -" Leader commands {{{ - -" Edit specific files {{{ -nnoremap <silent> <leader>ev :split $MYVIMRC<CR> -nnoremap <silent> <leader>eb :split ~/.vim_bundles<CR> -nnoremap <silent> <leader>es :UltiSnipsEdit<CR> -nnoremap <silent> <leader>ea :split ~/.vim/after/plugin/abolish.vim<CR> - -nnoremap <silent> <leader>sv :so $MYVIMRC<CR> -nnoremap <silent> <leader>sb :so ~/.vim_bundles<CR> -nnoremap <silent> <leader>sa :so ~/.vim/after/plugin/abolish.vim<CR> - -nnoremap <Leader>el :EditSqlTempFile<CR> -" }}} - -" Toggle navigation panels {{{ -nnoremap <Leader>l :TagbarToggle<CR> -nnoremap <Leader>mb :MBEToggle<CR> -nnoremap <Leader>u :GundoToggle<CR> - -nnoremap <Leader>t :CtrlP<CR> -nnoremap <Leader>z :FZF<CR> -nnoremap <Leader>b :CtrlPBuffer<CR> -nnoremap <Leader>a :CtrlPTag<CR> -nnoremap <Leader>r :CtrlPGitBranch<CR> -" }}} - -" CtrlP {{{ -let g:ctrlp_custom_ignore = { - \ 'dir': 'node_modules', - \ } -" }}} - -" Git leader commands {{{ -noremap <Leader>g :Git<SPACE> -noremap <Leader>gu :Gpull<CR> -noremap <Leader>gp :Gpush<CR> -noremap <Leader>s :Gstatus<CR> -noremap <Leader>cv :Gcommit --verbose<CR> -noremap <Leader>ca :Gcommit --verbose --amend<CR> - -nnoremap <Leader>dl :diffg LOCAL<CR> -nnoremap <Leader>dr :diffg REMOTE<CR> -nnoremap <Leader>db :diffg BASE<CR> -nnoremap <Leader>du :diffu<CR> -nnoremap <Leader>dg :diffg<CR> - -nnoremap <Leader>d2 :diffg //2<CR>:diffu<CR> -nnoremap <Leader>d3 :diffg //3<CR>:diffu<CR> - -nnoremap <Leader>yt :SignifyToggle<CR> -" }}} - -" Breakpoint Leader Commands {{{ -nnoremap <Leader>x :Breakpoint<CR> -nnoremap <Leader>dx :BreakpointRemove *<CR> -" }}} - -" Tabularize {{{ - " Leader Commands {{{ - nnoremap <localleader>t= :Tabularize /=<CR> - vmap <localleader>t= :Tabularize /=<CR> - - nnoremap <localleader>t> :Tabularize /=><CR> - vmap <localleader>t> :Tabularize /=><CR> - " }}} - - " => Aligning {{{ - function! s:rocketalign() - let l:p = '^.*=>\s.*$' - echo l:p - if exists(':Tabularize') && getline('.') =~# '^.*=' && - \ (getline(line('.')-1) =~# l:p || getline(line('.')+1) =~# l:p) - let column = strlen(substitute(getline('.')[0:col('.')],'[^=>]','','g')) - let position = strlen(matchstr(getline('.')[0:col('.')],'.*=>\s*\zs.*')) - Tabularize/=>/l1 - normal! $ - call search(repeat('[^=>]*=>',column).'\s\{-\}'.repeat('.',position),'ce',line('.')) - endif - endfunction - "inoremap <buffer> <space>=><space> =><Esc>:call <SID>rocketalign()<CR>a - " }}} - - " = Aligning {{{ - function! s:eqalign() - let l:p = '^.*=\s.*$' - if exists(':Tabularize') && getline('.') =~# '^.*=' && - \ (getline(line('.')-1) =~# l:p || getline(line('.')+1) =~# l:p) - let column = strlen(substitute(getline('.')[0:col('.')],'[^=]','','g')) - let position = strlen(matchstr(getline('.')[0:col('.')],'.*=\s*\zs.*')) - Tabularize/=/l1 - normal! $ - call search(repeat('[^=]*=',column).'\s\{-\}'.repeat('.',position),'ce',line('.')) - endif - endfunction - "inoremap <buffer><silent> <space>=<space> =<Esc>:call <SID>eqalign()<CR>a - " }}} - - " : Aligning {{{ - function! s:colonalign() - let l:p : '^.*:\s.*$' - if exists(':Tabularize') && getline('.') :~# '^.*:' && - \ (getline(line('.')-1) :~# l:p || getline(line('.')+1) :~# l:p) - let column : strlen(substitute(getline('.')[0:col('.')],'[^:]','','g')) - let position : strlen(matchstr(getline('.')[0:col('.')],'.*:\s*\zs.*')) - Tabularize/:/l1 - normal! $ - call search(repeat('[^:]*:',column).'\s\{-\}'.repeat('.',position),'ce',line('.')) - endif - endfunction - "inoremap <buffer><silent> <space>:<space> :<Esc>:call <SID>colonalign()<CR>a - " }}} -" }}} - -" }}} - -" Mappings {{{ -" 'delete current' -nnoremap dc 0d$ -nnoremap com :silent !tmux set status<CR> -nnoremap <F9> :Make<CR> -nnoremap g<CR> :Dispatch<CR> -nnoremap g\ :Start<CR> -inoremap <F9> <ESC>:Make<CR>i - -" Navigate buffers {{{ -nnoremap gb :bn<CR> -nnoremap gB :bp<CR> -" }}} - -" Window Navigation {{{ -nnoremap <space>w <C-w> -nnoremap <space>h <C-w>h -nnoremap <space>j <C-w>j -nnoremap <space>k <C-w>k -nnoremap <space>l <C-w>l -nnoremap <space>z <C-w>z -" }}} - - -" Sort with motion {{{ -if !exists("g:sort_motion_flags") - let g:sort_motion_flags = "" -endif -function! s:sort_motion(mode) abort - if a:mode == 'line' - execute "'[,']sort " . g:sort_motion_flags - elseif a:mode == 'char' - execute "normal! `[v`]y" - let sorted = join(sort(split(@@, ', ')), ', ') - execute "normal! v`]c" . sorted - elseif a:mode == 'V' || a:mode == '' - execute "'<,'>sort " . g:sort_motion_flags - endif -endfunction - -function! s:sort_lines() - let beginning = line('.') - let end = v:count + beginning - 1 - execute beginning . ',' . end . 'sort' -endfunction - -xnoremap <silent> <Plug>SortMotionVisual :<C-U>call <SID>sort_motion(visualmode())<CR> -nnoremap <silent> <Plug>SortMotion :<C-U>set opfunc=<SID>sort_motion<CR>g@ -nnoremap <silent> <Plug>SortLines :<C-U>call <SID>sort_lines()<CR> - -map go <Plug>SortMotion -vmap go <Plug>SortMotionVisual -map goo <Plug>SortLines -" }}} -" }}} - -let g:hare_executable = 'cabal exec -- ghc-hare' diff --git a/users/grfn/system/home/modules/zshrc b/users/grfn/system/home/modules/zshrc deleted file mode 100644 index a12173d6842d..000000000000 --- a/users/grfn/system/home/modules/zshrc +++ /dev/null @@ -1,327 +0,0 @@ -#!/usr/bin/zsh -# vim: set fdm=marker fmr={{{,}}}: - -stty -ixon - -# Compinstall {{{ -zstyle ':completion:*' completer _complete _ignored _correct _approximate -zstyle ':completion:*' matcher-list '' 'm:{[:lower:]}={[:upper:]} m:{[:lower:][:upper:]}={[:upper:][:lower:]} r:|[._- :]=** r:|=**' 'l:|=* r:|=*' -zstyle ':completion:*' max-errors 5 -zstyle ':completion:*' use-cache yes -zstyle ':completion::complete:grunt::options:' expire 1 -zstyle ':completion:*' prompt '%e errors' -zstyle :compinstall filename '~/.zshrc' -autoload -Uz compinit -compinit -# }}} - -# Zsh-newuser-install {{{ -HISTFILE=~/.histfile -HISTSIZE=1000 -SAVEHIST=1000 -setopt appendhistory autocd extendedglob notify autopushd -unsetopt beep nomatch -bindkey -v -# }}} - -# Basic options {{{ -set -o vi -umask 022 -export VIRTUAL_ENV_DISABLE_PROMPT=1 -# export PATH=~/.local/bin:~/.cabal/bin:$PATH:~/code/go/bin:~/bin:~/npm/bin:~/.gem/ruby/2.1.0/bin:~/.gem/ruby/2.0.0/bin:/home/smith/bin -# }}} - -# Zsh highlight highlighters {{{ -ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern root) -# }}} - -# More basic options {{{ -setopt no_hist_verify -setopt histignorespace -# }}} - -# Utility Functions {{{ - -# Set the terminal's title bar. -function titlebar() { -echo -ne "\033]0;$*\007" -} - -function quiet() { -"$@" >/dev/null -} - -function quieter() { -"$@" >/dev/null 2>&1 -} - -# From http://stackoverflow.com/questions/370047/#370255 -function path_remove() { -IFS=: -# convert it to an array -t=($PATH) -unset IFS -# perform any array operations to remove elements from the array -t=(${t[@]%%$1}) -IFS=: -# output the new array -echo "${t[*]}" -} - -# }}} - -# Force screen to use zsh {{{ -# }}} - -# Environment {{{ -# }}} - -# Directory Stuff {{{ - -# Always use color output for `ls` - -# Directory listing - -# Easier navigation: .., ..., - - -# File size - -# Recursively delete `.DS_Store` files - -# Create a new directory and enter it -function md() { - mkdir -p "$@" && cd "$@" -} - -# }}} - -# MPD/MPC stuff {{{ -function mp() { -# Test if drive is already mounted -if ! lsblk | grep /media/external >/dev/null; then - if ! sudo mount /media/external; then - echo "External drive not plugged in, or could not mount" - return 1 - fi -fi -if (mpc >/dev/null 2>&1); then - ncmpcpp -else - mpd && - (pgrep mpdscribble || mpdscribble) && - ncmpcpp -fi -} - -# kill mp -function kmp() { -killall ncmpcpp -mpd --kill - -local files - -if (files=$(lsof 2>&1 | grep -v docker | grep external)); then - echo - echo "==> Still processes using external drive:" - echo - echo $files -else - sudo umount /media/external -fi -} - - -function mppal() { -mpc search album "$1" | mpc add && - mpc play; -} -# }}} - -# Git stuff {{{ -# function ga() { git add "${@:-.}"; } # Add all files by default -# Add non-whitespace changes -# function gc() { git checkout "${@:-master}"; } # Checkout master by default - -# open all changed files (that still actually exist) in the editor -function ged() { -local files=() -for f in $(git diff --name-only "$@"); do - [[ -e "$f" ]] && files=("${files[@]}" "$f") -done -local n=${#files[@]} -echo "Opening $n $([[ "$@" ]] || echo "modified ")file$([[ $n != 1 ]] && \ - echo s)${@:+ modified in }$@" -q "${files[@]}" -} - -# git find-replace -function gfr() { -if [[ "$#" == "0" ]]; then - echo 'Usage:' - echo ' gg_replace term replacement file_mask' - echo - echo 'Example:' - echo ' gg_replace cappuchino cappuccino *.html' - echo -else - find=$1; shift - replace=$1; shift - - ORIG_GLOBIGNORE=$GLOBIGNORE - GLOBIGNORE=*.* - if [[ "$#" = "0" ]]; then - set -- ' ' $@ - fi - - while [[ "$#" -gt "0" ]]; do - for file in `git grep -l $find -- $1`; do - sed -e "s/$find/$replace/g" -i'' $file - done - shift - done - - GLOBIGNORE=$ORIG_GLOBIGNORE -fi -} - -function vconflicts() { -$EDITOR $(git status --porcelain | awk '/^UU/ { print $2 }') -} -# }}} - -# fzf {{{ -v() { - local file - file=$(fzf-tmux --query="$1" --select-1 --exit-0) - [ -n "$file" ] && ${EDITOR:-vim} "$file" -} - -c() { - local dir - dir=$(find ${1:-*} -path '*/\.*' -prune -o -type d -print 2> /dev/null | fzf +m) && cd "$dir" -} - -co() { - local branch - branch=$(git branch -a | sed -s "s/\s*\**//g" | fzf --query="$1" --select-1 --exit-0) && git checkout "$branch" -} - - -# fh - repeat history -# h() { -# eval $(([ -n "$ZSH_NAME" ] && fc -l 1 || history) | fzf +s | sed 's/ *[0-9]* *//') -# } - -# fkill - kill process -fkill() { - ps -ef | sed 1d | fzf-tmux -m | awk '{print $2}' | xargs kill -${1:-9} -} -# }}} - -# Tmux utils {{{ -kill_detached() { - for sess in $(tmux ls | grep -v attached | sed -s "s/:.*$//"); do - tmux kill-session -t $sess; - done -} -# }}} - -# Docker {{{ - - -# dbp foo/bar . -function dbp () { - docker build -t $1 ${@:2} && docker push $1 -} - -# }}} - -# Twitter! {{{ - - -# favelast <username> -function favelast() { - t fave $(t tl -l $1 | head -n1 | first) -} - -function rtlast() { - t rt $(t tl -l $1 | head -n1 | first) -} - -function tthread() { - t reply $(t tl -l $TWITTER_WHOAMI | head -n1 | first) $@ -} -# }}} - -# Geeknote {{{ -gnc() { - gn create --title $1 --content '' && - gn find --count=1 "$1" - gn edit 1 -} -# }}} - -# Misc aliases {{{ - -function fw() { # fix white - local substitution - local substitution='s/\x1b\[90m/\x1b[92m/g' - $@ > >(perl -pe "$substitution") 2> >(perl -pe "$substitution" 1>&2) -} -# }}} - -# Grep options {{{ -unset GREP_OPTIONS -export GREP_OPTIONS= -# }}} - - -# Run docker containers {{{ - # -d \ - # -v $HOME/.pentadactyl:/home/firefox/.pentadactyl:rw \ - # -v $HOME/.pentadactylrc:/home/firefox/.pentadactylrc:rw \ - # -v $HOME/.mozilla:/home/firefox/.mozilla:rw \ - # -v $HOME/.config:/home/firefox/.config \ - # -v $HOME/Downloads:/home/firefox/Downloads:rw \ - # -v /etc/fonts:/etc/fonts \ - # -v /tmp/.X11-unix:/tmp/.X11-unix \ - # -v /dev/snd:/dev/snd \ - # --net=host \ - # -v $XDG_RUNTIME_DIR:$XDG_RUNTIME_DIR \ - # -e uid=$(id -u) \ - # -e gid=$(id -g) \ - # -e DISPLAY=$DISPLAY \ - # -e XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR \ - # --name firefox \ - # --rm -it \ - # glittershark/firefox -# }}} - -# Change cursor shape on insert/normal mode {{{ -# (https://unix.stackexchange.com/q/433273/64261) - -KEYTIMEOUT=5 - -_fix_cursor() { - echo -ne '\e[5 q' -} - -precmd_functions+=(_fix_cursor) - -function zle-keymap-select { - if [[ ${KEYMAP} == vicmd ]] || - [[ $1 = 'block' ]]; then - echo -ne '\e[1 q' - - elif [[ ${KEYMAP} == main ]] || - [[ ${KEYMAP} == viins ]] || - [[ ${KEYMAP} = '' ]] || - [[ $1 = 'beam' ]]; then - echo -ne '\e[5 q' - fi -} -zle -N zle-keymap-select - -# }}} - -[ -f ./.localrc ] && source ./.localrc |