this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'master' of github.com:ian-h-chamberlain/dotfiles

+315 -28
-3
.Brewfile
··· 45 45 # NOTE: uses pkg installer, will always install to /Applications 46 46 # VPN client 47 47 cask "nordvpn" 48 - 49 - # Torrent client 50 - cask "deluge" 51 48 end 52 49 53 50 # Docker for macOS Desktop
+1
.bashrc
··· 72 72 73 73 export LNAV_EXP="mouse" 74 74 export EDITOR="vim" 75 + export SUDO_EDITOR="vim" 75 76 export PYTHONSTARTUP=$HOME/.pythonrc.py 76 77 77 78 # disable ctrl-s = suspend session
+6 -4
.config/fish/completions/git.fish
··· 1 1 if begin 2 - ! command -q __fish_git_using_command 2 + ! functions -q __fish_git_using_command 3 3 and test -f /usr/local/share/fish/completions/git.fish 4 4 end 5 5 source /usr/local/share/fish/completions/git.fish 6 6 end 7 7 8 - # Add completion for --no-verify 9 - complete -x -c git -n '__fish_git_using_command commit' \ 10 - -l no-verify -s n -d 'Bypass the pre-commit and commit-msg hooks' 8 + if functions -q __fish_git_using_command 9 + # Add completion for --no-verify 10 + complete -x -c git -n '__fish_git_using_command commit' \ 11 + -l no-verify -s n -d 'Bypass the pre-commit and commit-msg hooks' 12 + end
+5
.config/fish/conf.d/20-iterm2_shell_integration.fish
··· 53 53 54 54 end 55 55 56 + if functions -q -- iterm2_fish_prompt 57 + # Gracefully handle running source ~/.config/fish/config.fish 58 + functions -e iterm2_fish_prompt 59 + end 60 + 56 61 functions -c fish_prompt iterm2_fish_prompt 57 62 58 63 functions -c fish_mode_prompt iterm2_fish_mode_prompt
+7 -2
.config/fish/conf.d/50-config.fish
··· 1 1 # Set fish_user_paths here instead of fish_variables to expand $HOME per-machine 2 - set -U fish_user_paths ~/.cargo/bin $fish_user_paths 2 + set -U fish_user_paths \ 3 + ~/.cargo/bin \ 4 + ~/Library/Python/3.7/bin \ 5 + $fish_user_paths 3 6 4 7 # Set a proper TTY for gpg commands to work 5 8 set -x GPG_TTY (tty) ··· 7 10 # Run nvm to update fish_user_paths for npm installs. Allow failure if running 8 11 # outside home directory (no .nvmrc found), and run in background to avoid 9 12 # blocking the shell from starting 10 - functions -q nvm; and nvm &>/dev/null & || true 13 + if command -qs nvm 14 + nvm &>/dev/null & || true 15 + end 11 16 12 17 if not set -q DOCKER_NAME; and test -f /etc/profile.d/docker_name.sh 13 18 set -gx DOCKER_NAME (sed -E 's/.*DOCKER_NAME=(.+)/\1/' /etc/profile.d/docker_name.sh)
+1
.config/fish/fishfile
··· 1 1 jorgebucaran/fish-nvm 2 + danhper/fish-ssh-agent
+1 -1
.config/fish/functions/fish_normalize_saved_functions.fish
··· 1 - function fish_normalize_saved_functions --description "Remove fish-generated paths in saved functions" 1 + function fish_normalize_saved_functions --description 'Remove fish-generated paths in saved functions' 2 2 set -l exclude_functions \ 3 3 "fish_normalize_saved_functions" \ 4 4 "fish_prompt" \
+1 -1
.config/fish/functions/fish_prompt.fish
··· 30 30 set -g __fish_prompt_docker "" 31 31 end 32 32 33 - if set -l pyenv_version (pyenv local 2>/dev/null) 33 + if command -qs pyenv; and set -l pyenv_version (pyenv local 2>/dev/null) 34 34 set -g __fish_prompt_pyenv "$white"'('"$pyenv_version"')'" $__fish_prompt_normal" 35 35 else 36 36 set -g __fish_prompt_pyenv ""
+5 -1
.config/fish/functions/sudoedit.fish
··· 1 1 function sudoedit --description 'alias sudoedit=sudo sudo -e' 2 - sudo sudo -e $argv; 2 + if command -q sudoedit 3 + command sudoedit $argv 4 + else 5 + sudo sudo -e $argv; 6 + end 3 7 end
+5 -1
.config/fish/functions/vim.fish
··· 1 1 function vim 2 - command nvim -p $argv 2 + if command -qs nvim 3 + command nvim -p $argv 4 + else 5 + command vim -p $argv 6 + end 3 7 end
+151
.config/nixos/prismo/configuration.nix
··· 1 + # To apply this file, symlink this directory to /etc/nixos 2 + # E.g. `rm -rf /etc/nixos && ln -s $PWD /etc/nixos` 3 + 4 + { config, pkgs, ... }: 5 + 6 + let 7 + unstable = import <nixos-unstable> {}; 8 + in 9 + 10 + { 11 + imports = 12 + [ 13 + # Include the results of the hardware scan. 14 + ./hardware-configuration.nix 15 + 16 + # To use home-manager config in this file 17 + <home-manager/nixos> 18 + ]; 19 + 20 + 21 + # ========================================================================== 22 + # Boot configuration 23 + # ========================================================================== 24 + boot.loader.systemd-boot.enable = true; 25 + boot.loader.efi.canTouchEfiVariables = true; 26 + 27 + 28 + # ========================================================================== 29 + # Networking configuration 30 + # ========================================================================== 31 + networking.hostName = "prismo"; 32 + networking.networkmanager.enable = true; 33 + 34 + # Open ports in the firewall. 35 + networking.firewall.allowedTCPPorts = [ 36 + 8200 # Deluge web interface 37 + 38 + # Plex media server 39 + 32400 40 + 3005 41 + 8324 42 + 32469 43 + 44 + # SMB share 45 + 139 46 + 445 47 + ]; 48 + networking.firewall.allowedUDPPorts = [ 49 + # UPnP 50 + 1900 51 + 52 + # SMB share 53 + 137 54 + 138 55 + 56 + # Plex media server 57 + 32410 58 + 32412 59 + 32413 60 + 32414 61 + ]; 62 + 63 + 64 + # ========================================================================== 65 + # Service configuration 66 + # ========================================================================== 67 + services.openssh.enable = true; 68 + 69 + # Prevent lid sleep when plugged in 70 + services.logind.lidSwitchExternalPower = "ignore"; 71 + 72 + /* Uncomment these to enable graphical desktop 73 + # TODO can this just be a one-line import or something? 74 + 75 + # Enable the X11 windowing system. 76 + services.xserver.enable = true; 77 + services.xserver.layout = "us"; 78 + services.xserver.xkbOptions = "eurosign:e"; 79 + 80 + # Enable touchpad support. 81 + services.xserver.libinput.enable = true; 82 + 83 + # Enable the KDE Desktop Environment. 84 + services.xserver.displayManager.sddm.enable = true; 85 + services.xserver.desktopManager.plasma5.enable = true; 86 + 87 + # Enable CUPS to print documents. 88 + services.printing.enable = true; 89 + 90 + # Enable sound. 91 + sound.enable = true; 92 + hardware.pulseaudio.enable = true; 93 + */ 94 + 95 + 96 + # ========================================================================== 97 + # General system configuration 98 + # ========================================================================== 99 + time.timeZone = "America/New_York"; 100 + 101 + # Allow unfree software (required for some drivers) 102 + nixpkgs.config.allowUnfree = true; 103 + 104 + # List packages installed in system profile. To search, run: 105 + # $ nix search wget 106 + environment.systemPackages = with pkgs; [ 107 + brightnessctl 108 + docker 109 + git 110 + hfsprogs 111 + firefox 112 + lm_sensors 113 + vim 114 + wget 115 + ]; 116 + 117 + # TODO: use podman from unstaable instead of docker 118 + virtualisation.docker = { 119 + enable = true; 120 + }; 121 + 122 + # ========================================================================== 123 + # User configuration 124 + # ========================================================================== 125 + users.users.ianchamberlain = { 126 + isNormalUser = true; 127 + extraGroups = [ 128 + # Enable sudo 129 + "wheel" 130 + 131 + # Allow managing network settings 132 + "networkmanager" 133 + 134 + # Groups for media server 135 + "docker" 136 + "deluge" 137 + ]; 138 + shell = unstable.fish; 139 + }; 140 + 141 + 142 + # This value determines the NixOS release from which the default 143 + # settings for stateful data, like file locations and database versions 144 + # on your system were taken. It‘s perfectly fine and recommended to leave 145 + # this value at the release version of the first install of this system. 146 + # Before changing this value read the documentation for this option 147 + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). 148 + system.stateVersion = "20.03"; # Did you read the comment? 149 + 150 + } 151 +
+31
.config/nixos/prismo/hardware-configuration.nix
··· 1 + # Do not modify this file! It was generated by ‘nixos-generate-config’ 2 + # and may be overwritten by future invocations. Please make changes 3 + # to /etc/nixos/configuration.nix instead. 4 + { config, lib, pkgs, ... }: 5 + 6 + { 7 + imports = 8 + [ <nixpkgs/nixos/modules/installer/scan/not-detected.nix> 9 + ]; 10 + 11 + boot.initrd.availableKernelModules = [ "ehci_pci" "ahci" "firewire_ohci" "usbhid" "usb_storage" "sd_mod" "sr_mod" ]; 12 + boot.initrd.kernelModules = [ ]; 13 + boot.kernelModules = [ "kvm-intel" "wl" ]; 14 + boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ]; 15 + 16 + fileSystems."/" = 17 + { device = "/dev/disk/by-uuid/77290c0f-82d0-4fd2-bc73-45363b081c46"; 18 + fsType = "ext4"; 19 + }; 20 + 21 + fileSystems."/boot" = 22 + { device = "/dev/disk/by-uuid/E498-6BE5"; 23 + fsType = "vfat"; 24 + }; 25 + 26 + swapDevices = 27 + [ { device = "/dev/disk/by-uuid/07f3ddeb-9031-427d-ae31-3108ae86dbf0"; } 28 + ]; 29 + 30 + nix.maxJobs = lib.mkDefault 4; 31 + }
+81
.config/nixpkgs/home.nix
··· 1 + { config, pkgs, ... }: 2 + 3 + let 4 + unstable = import <nixos-unstable> {}; 5 + in 6 + 7 + { 8 + programs = { 9 + # Let Home Manager install and manage itself. 10 + home-manager.enable = true; 11 + 12 + # NOTE: Programs must be listed here for fish completion to work! 13 + bat.enable = true; 14 + gpg.enable = true; # For use with git, git-crypt, etc. 15 + git.enable = true; 16 + 17 + # Preferred shell 18 + fish = { 19 + enable = true; 20 + # Need to use unstable for fish 3.1.x 21 + package = unstable.fish; 22 + }; 23 + 24 + # Preferred editor, including nix highlighting 25 + neovim = { 26 + enable = true; 27 + 28 + # Create shell aliases 29 + viAlias = true; 30 + vimAlias = true; 31 + vimdiffAlias = true; 32 + 33 + # TODO: can this be deduped with ~/.config/nvim/init.vim ? 34 + extraConfig = '' 35 + set runtimepath^=~/.vim runtimepath+=~/.vim/after 36 + let &packpath = &runtimepath 37 + source ~/.vimrc 38 + ''; 39 + 40 + # Nix syntax highlighting 41 + plugins = with pkgs.vimPlugins; [ 42 + vim-nix 43 + vim-fish 44 + ]; 45 + }; 46 + }; 47 + 48 + services = { 49 + # For commit signing, git-crypt, etc. 50 + gpg-agent = { 51 + enable = true; 52 + defaultCacheTtl = 14400; 53 + maxCacheTtl = 14400; 54 + pinentryFlavor = "curses"; 55 + }; 56 + }; 57 + 58 + home.packages = with pkgs; [ 59 + docker-compose 60 + git-crypt 61 + lsb-release 62 + pinentry-curses 63 + tree 64 + yadm 65 + ]; 66 + 67 + # Home Manager needs a bit of information about you and the 68 + # paths it should manage. 69 + home.username = "ianchamberlain"; 70 + home.homeDirectory = "/home/ianchamberlain"; 71 + 72 + # This value determines the Home Manager release that your 73 + # configuration is compatible with. This helps avoid breakage 74 + # when a new Home Manager release introduces backwards 75 + # incompatible changes. 76 + # 77 + # You can update Home Manager without changing this value. See 78 + # the Home Manager release notes for a list of state version 79 + # changes in each release. 80 + home.stateVersion = "20.09"; 81 + }
+18 -14
.config/yadm/hooks/pre_commit
··· 1 - #!/bin/bash 1 + #!/usr/bin/env bash 2 2 3 3 set -o errexit 4 4 set -o nounset ··· 14 14 # shellcheck source=utils.sh 15 15 source utils.sh 16 16 17 - SHELLCHECK_SOURCES=( 18 - bootstrap 19 - utils.sh 20 - hooks/* 21 - ) 17 + if command -v shellcheck >/dev/null; then 18 + SHELLCHECK_SOURCES=( 19 + bootstrap 20 + utils.sh 21 + hooks/* 22 + ) 22 23 23 - if ! shellcheck "${SHELLCHECK_SOURCES[@]}"; then 24 - echo "Some files failed the shellcheck linter!" 25 - exit 1 24 + if ! shellcheck "${SHELLCHECK_SOURCES[@]}"; then 25 + echo "Some files failed the shellcheck linter!" 26 + exit 1 27 + fi 26 28 fi 27 29 28 - if ! check_vscode_exts &>/dev/null; then 29 - list_vscode_exts >$VSCODE_EXTENSIONS 30 - echo "$VSCODE_EXTENSIONS was out-of-date." 31 - echo "It has been auto-updated, and should be committed." 32 - exit 1 30 + if command -v code >/dev/null; then 31 + if ! check_vscode_exts &>/dev/null; then 32 + list_vscode_exts >$VSCODE_EXTENSIONS 33 + echo "$VSCODE_EXTENSIONS was out-of-date." 34 + echo "It has been auto-updated, and should be committed." 35 + exit 1 36 + fi 33 37 fi 34 38 35 39 # TODO: convert other scripts to fish instead of bash (except bootstrap)
.git-crypt/keys/default/0/88AF45DED6F7AF4B644CAF98C78052D4DAE3083B.gpg

This is a binary file and will not be displayed.

+1 -1
.gitconfig
··· 22 22 bc = branch-clean 23 23 [core] 24 24 excludesfile = ~/.gitignore_global 25 - editor = /usr/local/bin/nvim 25 + editor = /usr/bin/env nvim 26 26 [difftool] 27 27 prompt = false 28 28 [difftool "vscode"]
.gnupg/gpg-agent.conf .config/yadm/alt/.gnupg/gpg-agent.conf##os.Darwin
.ssh/authorized_keys

This is a binary file and will not be displayed.

.ssh/config

This is a binary file and will not be displayed.

+1
.vimrc
··· 35 35 36 36 highlight link CustomTodo Todo 37 37 38 + autocmd FileType yaml,json,nix setlocal shiftwidth=2 tabstop=2 38 39 39 40 " Editor-specific settings 40 41