GithubHelp home page GithubHelp logo

maxrothman / config Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 17.45 MB

A repository for various pieces of workstation setup: dotfiles, configs, extensions, etc.

License: Creative Commons Zero v1.0 Universal

Shell 5.14% PHP 1.12% HTML 2.57% CSS 0.55% Ruby 1.21% Python 88.39% Perl 0.16% AppleScript 0.75% Rich Text Format 0.01% Clojure 0.08% Vim Script 0.03%

config's Introduction

config

A repository for various pieces of workstation setup: dotfiles, configs, extensions, etc.

Contents

  • Alfred.alfredpreferences: Alfred plugins. See the README therein for details.
  • bashrc.d: All executable files in here will be sourced by ~/.bashrc. Each file is self-explanatory. This directory will be symlinked to ~/.bashrc.d.
  • bin: executables that are used by code in bashrc.d. This directory will be symlinked to ~/.bin
  • dotfiles: configuration files that various applications expect to be in ~/. Each file will be symlinked to ~/.$FILE (e.g. bashrc -> ~/.bashrc).
  • iTerm: iTerm configuration files.
  • misc-stuff: Files used once during setup.
  • stylus: CSS themes for the Stylus Chrome plugin
  • manual.md: stuff to manually install
  • deploy.sh: a script for automatically deploying the parts of this repo that can be automated.
  • automator: add buttons to Finder that open apps via Apple automator
  • VSCode: VSCode configs and a list of extensions to install
  • git-hooks: My flexible git-hooks setup that allows for multiple global and repo-local hooks of the same type. Mostly used to turn my pre-push hook on for all repos.

Setup instructions:

  • Clone this repo somewhere
  • Install brew: http://brew.sh/
  • Run deploy.sh
  • Run misc-scripts/misc-setup.bash
  • Follow the instructions in manual.md
  • Follow the instructions in Alfred.alfredpreferences/README.md
  • Follow the instructions in the README in automator/

Short-term Todo

Long-term Todo

Deprecated todos

  • Sublime likes to reformat the prefs and remove comments. Find a workaround?
  • Find vscode plugins to:
    • remove matching brackets
    • split selection on words (rather than lines)
  • For macbooks with force touch, set force threshold to "Firm" in System Preferences, then run defaults write com.apple.AppleMultitouchTrackpad SecondClickThreshold 1 to make force touch a little lighter
    • Maybe figure out what some of the other keys do like ActuateDedents
  • Distribute modified Ansible package

Troubleshooting bash prompt performance problems

My bashrc setup is complex enough that performance can be an issue. This repo contains a few tools for troubleshooting such issues:

  • Run __bashrc_bench=1 bash -i to time the evaluation of each file in bashrc.d/
  • To troubleshoot performance issues within a file:
    • Add the following lines to the file:
      # At the very top
      PS4='+ $(date "+%s.%N")\011 '
      exec 3>&2 2>/tmp/bashstart.$$.log
      set -x
      
      ...
      
      # At the very bottom
      set +x
      exec 2>&3 3>&-
    • Source the instrumented file. This will create a file /tmp/bashstart.XXXX.log, where XXXX is the PID of the process.
    • Some of the logged lines in the bashstart file contain newlines, which interferes with the next step. Edit the file to collapse those into single lines or simply remove the extra lines. Once you're done, every line should look something like this:
      ++++ 1606154722.825342000	 __git_merge_strategies=
      
    • Run bin/bash-format-perf < bashstart.XXXX.log > formatted.log to change the absolute timestamps in the perf log into relative timings
    • To find the most expensive lines, you might want to edit formatted.log to remove the +s and run sort -n on it.

References

config's People

Contributors

max-reify avatar maxrothman avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.