From f15bef602d603a9b42b163e43fd91ad0f3b985b9 Mon Sep 17 00:00:00 2001 From: ddelange <14880945+ddelange@users.noreply.github.com> Date: Sat, 9 Jan 2021 16:30:14 +0100 Subject: [PATCH] :recycle: Refactor and upgrade to OS X 10.5 --- .bash_profile | 16 +- .secrets.baseline | 13 +- README.md | 353 ++++++++++++------ htoprc | 36 ++ iStat Menus Settings.ismp | 33 +- search-engine-export.sql | 76 ++-- .../Default (OSX).sublime-keymap | 2 +- .../Markdown.sublime-settings | 7 + .../MarkdownTOC.sublime-settings | 9 + .../MultiMarkdown.sublime-settings | 5 + .../Package Control.sublime-settings | 3 +- .../Preferences.sublime-settings | 3 +- 12 files changed, 379 insertions(+), 177 deletions(-) create mode 100644 htoprc create mode 100644 sublime_text_user_settings/Markdown.sublime-settings create mode 100644 sublime_text_user_settings/MarkdownTOC.sublime-settings create mode 100644 sublime_text_user_settings/MultiMarkdown.sublime-settings diff --git a/.bash_profile b/.bash_profile index c6816fa..06260af 100644 --- a/.bash_profile +++ b/.bash_profile @@ -1,12 +1,17 @@ export PATH="/usr/local/sbin:/usr/local/bin:$PATH" -export PATH="/usr/local/opt/ruby/bin:/usr/local/lib/ruby/gems/2.7.0/bin:$PATH" # homebrew ruby first in PATH export PATH="${HOME}/.cargo/bin:$PATH" # rust binary installation path +# keg-only installs +export PATH="/usr/local/opt/ruby/bin:/usr/local/lib/ruby/gems/2.7.0/bin:$PATH" +export PATH="/usr/local/opt/icu4c/bin:/usr/local/opt/icu4c/sbin:$PATH" +export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/opt/icu4c/lib/pkgconfig" export PATH="/Library/TeX/texbin:$PATH" # mactex binary installation path (brew cask install mactex) # bash completion and integration [[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh" test -e "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shell_integration.bash" +# init zoxide (rust) when available +eval "$(zoxide init bash)" || true # pyenv direnv @@ -14,7 +19,7 @@ test -e "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shel eval "$(pyenv init -)" eval "$(direnv hook bash)" eval "$(pyenv virtualenv-init -)" -export PROMPT_COMMAND='_pyenv_virtualenv_hook;_direnv_hook;__bp_precmd_invoke_cmd;__bp_interactive_mode;history -a;history -c;history -r' +export PROMPT_COMMAND='_pyenv_virtualenv_hook;_direnv_hook;history -a;history -c;history -r' export PYENV_VIRTUALENV_DISABLE_PROMPT=1 pyenv activate vv @@ -30,6 +35,7 @@ export CXX="/usr/local/bin/g++-8" # export HOMEBREW_CC="/usr/local/bin/gcc-8" # export HOMEBREW_CXX="/usr/local/bin/g++-8" export GPG_TTY=$(tty) +export BASH_SILENCE_DEPRECATION_WARNING=1 # aliases @@ -162,7 +168,11 @@ kubebranch() { generate_password() { local defaultsize=42 ((test -n "${1:-$defaultsize}" && test "${1:-$defaultsize}" -ge 0) && \ - pwgen -s -N 3 -cny ${1:-$defaultsize}) 2>&-; + # -y or --symbols + # Include at least one special symbol in the password + # -B or --ambiguous + # Don't include ambiguous characters in the password + pwgen -s -N 3 -cnBy -r ";'\`\"\|\#\$\&" ${1:-$defaultsize}) 2>&-; }; # run last modified py file in home directory diff --git a/.secrets.baseline b/.secrets.baseline index 0bf2c58..ba5cbf2 100644 --- a/.secrets.baseline +++ b/.secrets.baseline @@ -3,7 +3,7 @@ "files": null, "lines": null }, - "generated_at": "2020-07-07T11:44:36Z", + "generated_at": "2021-01-09T15:20:59Z", "plugins_used": [ { "name": "AWSKeyDetector" @@ -57,16 +57,7 @@ "name": "TwilioKeyDetector" } ], - "results": { - "README.md": [ - { - "hashed_secret": "60b9c35a33c0f5acde612f2984b6917cb35d6d54", - "is_verified": false, - "line_number": 214, - "type": "Secret Keyword" - } - ] - }, + "results": {}, "version": "0.13.1", "word_list": { "file": null, diff --git a/README.md b/README.md index e41373e..9b57a8b 100644 --- a/README.md +++ b/README.md @@ -1,55 +1,119 @@ -# A clean setup of Mac OS X 10.14+ for Python development and more +# new-mac-setup -For personal & professional use. +[![gitmoji](https://img.shields.io/badge/gitmoji-%20%F0%9F%98%9C%20%F0%9F%98%8D-ffdd67)](https://github.com/carloscuesta/gitmoji-cli) +[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit) + +A clean setup of Mac OS X 10.15 for Python development and more +For personal & professional use. -### Preferences + + + +- [Notes](#notes) +- [Tech Stack](#tech-stack) + - [Mac Look and Feel](#mac-look-and-feel) + - [Terminal Look and Feel](#terminal-look-and-feel) + - [Homebrew and its essentials](#homebrew-and-its-essentials) + - [iTerm nerd font](#iterm-nerd-font) + - [Casks](#casks) + - [Mac App Store \(MAS\)](#mac-app-store-mas) + - [Backups](#backups) + - [pyenv and pyenv-virtualenv](#pyenv-and-pyenv-virtualenv) + - [Git with 2FA](#git-with-2fa) + - [Mac OSX specifics](#mac-osx-specifics) + - [Aliases](#aliases) + - [Split diff](#split-diff) + - [Mergetool](#mergetool) + - [Cleanup \(different options\)](#cleanup-different-options) +- [Keyboard Shortcuts](#keyboard-shortcuts) +- [Misc](#misc) + - [Kubernetes CLI \(kubectl\)](#kubernetes-cli-kubectl) + - [Fancy Dropbox screen shot sharing](#fancy-dropbox-screen-shot-sharing) + - [Gigabit USB Driver OS X 10.9+](#gigabit-usb-driver-os-x-109) +- [TODO](#todo) + + + + +## Notes + +- Avoid committing secrets into this repo by running `pre-commit install` in this dir. +- Want to copy a big dir from an old Mac? Below is `brew install rsync`! It's much faster than Finder's copying util. + ``` + # boot old Mac while holding `T` to go in Target Disk Mode + # password prompt should pop up + rsync -au --progress=info2 ~/backup + ``` +- Don't forget to take with your whole `.gnupg` folder, `.gitconfig`, `.envrc` etc! +- Chrome settings/bookmarks are not backed up and are assumed to come from its builtin Sync. +## Tech Stack -#### General Mac stuff +### Mac Look and Feel ```bash -# show hidden files +# Do you understand zsh internals? I don't. +chsh -s /bin/bash && reset +# show hidden files (finder restart needed) defaults write com.apple.finder AppleShowAllFiles YES # disable google chrome dark mode when Mojave dark mode is enabled defaults write com.google.Chrome NSRequiresAquaSystemAppearance -bool yes ``` +
Apple look & feel optimisations

+ + + - `System Preferences/General/` - `Show scroll bars:` Always - `Click in the scroll bar to:` Jump to the spot that's clicked - `Recent items:` 50 - `System Preferences/Keyboard/` + - Slide `Key Repeat` to `Fast` + - Slide `Delay Until Repeat` to tick one before `Short` - Under `Text`, untick/remove everything - - Under `Sources`, tick `All controls` on the bottom + - Under `Shortcuts`, tick `Use keyboard navigation to move focus between controls` on the bottom - Under `Input Sources`, set keyboard layout to U.S. (remove U.S. International) + - Under `Touch Bar shows`, choose `Expanded Control Strip` +- `System Preferences/Keyboard/` - `System Preferences/Security & Privacy/` - Under `FileVault`, turn on FileVault - `System Preferences/Accessibility/` - Under `Zoom`, tick `Use scroll gesture with modifier keys to zoom:` - Under `Display`, untick `Shake mouse pointer to locate` - Under `Mouse & Trackpad/Trackpad Options...`, tick `Enable dragging/three finger drag` +- `System Preferences/Trackpad/` + - Under `Point & Click`, ticks 0, 1, 1, 0, `Click Medium` + - Under `Scroll & Zoom`, ticks 0, 1, 0, 1 + - Under `Scroll & Zoom`, ticks 0, 1, 1, 1, 1, 1, 1, everything four fingers - `System Preferences/Software Update/` - Under `Advanced...`, untick `Download new updates when available` +- `System Preferences/Dock/` + - Untick `Show recent applications in Dock` + - Tick `Turn Hiding On` - Finder preferences - `General` - `New Finder windows show:` home - `Advanced` - Tick `Show all filename extensions` - `When performing a search:` Search the Current Folder -- Finder View Options (Go home ⌘-⇧-H, then ⌘-J) +- Finder View Options (go home: ⌘⇧H, then ⌘J) - Tick `Always open in List View` - Tick `Browse in List View` - `Group by:` None - `Sort by:` Name - Tick `Calculate all sizes` - Tick `Show Library Folder` - - `Use as Defaults` + - **Click** `Use as Defaults` - Finder `View` menu item - `Show Tab Bar` - `Show Path Bar` - `Show Status Bar` - - TextEdit preferences - `New Document` - `Format`: Plain text @@ -57,43 +121,52 @@ defaults write com.google.Chrome NSRequiresAquaSystemAppearance -bool yes - `Open and Save` - Untick `Add ".txt" extension to plain text files` - Under `Plain Text File Encoding`, select two times `UTF-8` +- Screenshot `Options` (to open: ⌘⇧5) + - Untick `Show Floating Thumbnail` + +

-#### Terminal stuff +### Terminal Look and Feel -Commandline-tools (including [SDK headers](https://github.com/pyenv/pyenv/wiki#suggested-build-environment)), Homebrew and it's essentials +#### Homebrew and its essentials ```bash -# install homebrew and command-line tools, SDK headers -/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" -xcode-select --install -sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target / -# check wether all is good -brew doctor -brew cask +# install homebrew (which installs command-line tools) +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" +brew tap homebrew/cask brew tap buo/cask-upgrade # `brew cu -a docker` - https://github.com/buo/homebrew-cask-upgrade#usage +# check whether all is good +brew doctor # and some essentials # - ruby, gcc-8 are linked in `.bash_profile` # - node installs npm brew install \ git git-lfs bash-completion rsync curl openssl readline automake xz zlib \ - sshfs htop ncdu direnv pwgen \ + osxfuse sshfs htop ncdu direnv pwgen \ gcc@8 rust ruby node@12 sqlite3 -npm install -g yarn +# check out caveats from command above! +# npm installs yarn +PATH="/usr/local/opt/node@12/bin:$PATH" npm install -g yarn ``` #### iTerm [nerd font](https://github.com/ryanoasis/nerd-fonts/blob/master/readme.md) ```bash -brew cask install iterm2 -brew tap homebrew/cask-fonts -brew cask install font-inconsolatalgc-nerd-font -cargo install ripgrep # rg (search for regex occurrences in directory) -cargo install zoxide # z (cd with auto-complete) -cargo install --git https://github.com/ogham/exa.git +brew install --cask iterm2 +brew install --cask homebrew/cask-fonts/font-inconsolata-lgc-nerd-font + +# some blazing fast rust +cargo install ripgrep # rg (search for regex occurrences in directory, fastest regex implementation in the world) +cargo install zoxide # z (cd with auto-complete) - echo 'eval "$(zoxide init bash)"' > ~.bash_profile +brew install zenith # fancy htop with persistent network and disk I/O history graphs +cargo install --git https://github.com/ogham/exa.git # crates.io is heavily outdated at time of writing +cargo install tealdeer # rust implementation of tldr (man for lazy people) +tldr --update # populate cache # use exa with icons and git status instead of builtin ls +# this is in .bash_profile already alias ls="exa --all --group-directories-first --icons --level=2" # default level for --tree alias ll="ls --long --sort=age --git --time=modified --time-style=iso" ``` @@ -103,38 +176,36 @@ alias ll="ls --long --sort=age --git --time=modified --time-style=iso" ```bash # Docker CE - docker.com/community-edition -brew cask install docker +brew install --cask docker brew install docker-compose # PostgresApp - postgresapp.com -brew cask install postgres +brew install --cask postgres # Sublime Text - sublimetext.com -brew cask install sublime-text +brew install --cask sublime-text # Sublime Merge - sublimemerge.com -brew cask install sublime-merge +brew install --cask sublime-merge # Google Chrome - google.com/chrome -brew cask install google-chrome +brew install --cask google-chrome # PIA VPN - privateinternetaccess.com - Requires manual install from ~/Library/Caches/Homebrew/downloads -brew cask install private-internet-access +brew install --cask private-internet-access # Tunnelblick OpenVPN - tunnelblick.net -brew cask install tunnelblick +brew install --cask tunnelblick # The Unarchiver - theunarchiver.com -brew cask install the-unarchiver +brew install --cask the-unarchiver # f.lux - justgetflux.com -brew cask install flux +brew install --cask flux # VLC - videolan.org/vlc -brew cask install vlc +brew install --cask vlc # Slack - slack.com -brew cask install slack +brew install --cask slack # Zoom.us - zoom.us -brew cask install zoomus +brew install --cask zoom # Whatsapp - whatsapp.com -brew cask install whatsapp +# brew install --cask whatsapp # Dropbox - dropbox.com -brew cask install dropbox -# Authy - authy.com -brew cask install authy -# Docker - docker.com -brew cask install docker +# brew install --cask dropbox +# Authy - authy.com - Set Master Password in preferences after init +brew install --cask authy ``` @@ -154,16 +225,51 @@ mas install 1319778037 # Magnet - magnet.crowdcafe.com mas install 441258766 # DaisyDisk - daisydiskapp.com +# give full disk access under sysprefs security tab mas install 411643860 # Amphetamine - roaringapps.com/app/amphetamine mas install 937984704 -# Telegram - macos.telegram.org +# Telegram - macos.telegram.org - set password and enter behaviour after init mas install 747648890 # Copyclip - fiplab.com/apps/copyclip-for-mac mas install 595191960 ``` +### Backups + +Note: first open Chrome for the first time + +- Clone (a fork of) this repo and set things up + ```bash + mkdir ~/git + git clone https://github.com/ddelange/new-mac-setup.git ~/git/new-mac-setup + ln -s ~/git/new-mac-setup/.bash_profile ~/.bash_profile && source ~/.bash_profile + mkdir -p ~/.config/htop && ln -s ~/git/new-mac-setup/htoprc ~/.config/htop/htoprc + direnv edit ~ # add `export SECRET=42` to load global env vars # pragma: allowlist secret + + # Sublime Text 3 backup + # restore + mkdir -p "${HOME}/Library/Application Support/Sublime Text 3/Packages/User" && \ + rsync -a "${HOME}/git/new-mac-setup/sublime_text_user_settings/" "${HOME}/Library/Application Support/Sublime Text 3/Packages/User" + + # create + rsync -a "${HOME}/Library/Application Support/Sublime Text 3/Packages/User/" "${HOME}/git/new-mac-setup/sublime_text_user_settings" + + # Chrome search engines backup + # restore + sqlite3 "${HOME}/Library/Application Support/Google/Chrome/Default/Web Data" < ./search-engine-export.sql + # create + (printf 'begin transaction;\n'; sqlite3 "${HOME}/Library/Application Support/Google/Chrome/Default/Web Data" 'select short_name,keyword,url,favicon_url from keywords' | awk -F\| '{ printf "REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('"'"%s"'"', '"'"%s"'"', '"'"%s"'"', '"'"%s"'"');\n", $1, $2, $3, $4 }'; printf 'end transaction;\n') > ./search-engine-export.sql + ``` +- iTerm2 preferences: under `General/Preferences`, tick `Load preferences from a custom folder or URL` and paste `~/git/new-mac-setup`. Quit iTerm +- iStat Menus preferences: `File/Import Settings...`, select `iStat Menus Settings.ismp`. Drag & drop menu bar items with ⌘+drag +- Quickly download audio & video with [`yt`](https://github.com/ddelange/yt) + ```bash + brew install ddelange/brewformulae/yt + ``` + + ### [pyenv](https://github.com/pyenv/pyenv/blob/master/COMMANDS.md#command-reference) and [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv#usage) - Note: pyvenv-virtualenv needs to be initialised in [`~/.bash_profile`](/.bash_profile), or in `~/.bashrc` if both files are [maintained separately](https://github.com/pyenv/pyenv-virtualenv/issues/36#issuecomment-48387008): @@ -181,11 +287,11 @@ mas install 595191960 pyenv install -l | grep '^\s*[0-9]' pyenv install-latest 2.7 pyenv install-latest 3.7 - sudo SDKROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/ pyenv install-latest 3.8 # might need to unsource .bash_profile first + pyenv install-latest 3.8 pyenv global $(pyenv install-latest --print 3.7) $(pyenv install-latest --print 2.7) # set default versions: prefer py3 over py2 - source ~/.bash_profile # global history etc - pip3.7 install --upgrade pip setuptools wheel Cython + source ~/.bash_profile # make them visible pip2.7 install --upgrade pip setuptools wheel Cython + pip3.7 install --upgrade pip setuptools wheel Cython pip3.8 install --upgrade pip setuptools wheel Cython # install virtualenv 'vv' based latest pyenv Python version 3.7, inheriting installed packages pyenv virtualenv $(pyenv install-latest --print 3.7) --system-site-packages vv @@ -202,38 +308,6 @@ mas install 595191960 ``` -### Backups - -Note: first open Chrome for the first time - -- Clone (a fork of) this repo and set things up - ```bash - mkdir ~/git - git clone https://github.com/ddelange/new-mac-setup.git ~/git/new-mac-setup - ln -s ~/git/new-mac-setup/.bash_profile ~/.bash_profile && source ~/.bash_profile - direnv edit ~ # add `export SECRET=42` to load global env vars - - # Sublime Text 3 backup - # restore - mkdir -p "${HOME}/Library/Application Support/Sublime Text 3/Packages/User" && \ - cp -r "${HOME}/git/new-mac-setup/sublime_text_user_settings" "${HOME}/Library/Application Support/Sublime Text 3/Packages/User" - # create - cp -r "${HOME}/Library/Application Support/Sublime Text 3/Packages/User/" "${HOME}/git/new-mac-setup/sublime_text_user_settings/" - - # Chrome search engines backup - # restore - sqlite3 "${HOME}/Library/Application Support/Google/Chrome/Default/Web Data" < ./search-engine-export.sql - # create - (printf 'begin transaction;\n'; sqlite3 "${HOME}/Library/Application Support/Google/Chrome/Default/Web Data" 'select short_name,keyword,url,favicon_url from keywords' | awk -F\| '{ printf "REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('"'"%s"'"', '"'"%s"'"', '"'"%s"'"', '"'"%s"'"');\n", $1, $2, $3, $4 }'; printf 'end transaction;\n') > ./search-engine-export.sql - ``` -- iTerm2 preferences: under `General/Preferences`, tick `Load preferences from a custom folder or URL` and select `com.googlecode.iterm2.plist` -- iStat Menus preferences: `File/Import Settings...`, select `iStat Menus Settings.ismp` -- Quickly download audio & video with [`yt`](https://github.com/ddelange/yt) - ```bash - brew install ddelange/brewformulae/yt - ``` - - ### Git with 2FA [Enable and set up 2FA](https://gist.github.com/ateucher/4634038875263d10fb4817e5ad3d332f). It's recommended to first delete any git configurations locally after enabling 2FA. @@ -269,6 +343,7 @@ Note: first open Chrome for the first time ##### Mac OSX specifics ```bash +git config --global pull.rebase false git config --global core.trustctime false # http://www.git-tower.com/blog/make-git-rebase-safe-on-osx git config --global core.precomposeunicode false # http://michael-kuehnel.de/git/2014/11/21/git-mac-osx-and-german-umlaute.html git config --global core.untrackedCache true # https://git-scm.com/docs/git-update-index#_untracked_cache @@ -278,26 +353,6 @@ git config --global push.followTags true # https://git-scm.com/docs/git-config#D ``` -##### Split diff - -```bash -pip install git+https://github.com/jeffkaufman/icdiff.git # usage: 'git df' using 'less' or 'git icdiff' without 'less' -git config --global --replace-all core.pager 'less -+$LESS -eFRSX' # with double quotes, $ will be evaluated -git config --global icdiff.options "--highlight --line-numbers --numlines=3" -git config --global difftool.icdiff.cmd 'icdiff --highlight --line-numbers --numlines=3 $LOCAL $REMOTE' -``` - -##### Mergetool - -On failed automatic merge, use Sublime Merge GUI for conflict resolution using `git mergetool` or `git mt` (see below). -```bash -git config --global mergetool.smerge.cmd 'smerge mergetool "$BASE" "$LOCAL" "$REMOTE" -o "$MERGED"' -git config --global mergetool.smerge.trustExitCode true -git config --global mergetool.keepBackup false -git config --global merge.tool smerge -``` - - ##### Aliases ```bash @@ -324,10 +379,25 @@ git config --global alias.alias "! git config --get-regexp '^alias\.' | sed -e s ``` -### Kubernetes CLI ([kubectl](https://kubernetes.io/docs/reference/kubectl/)) +##### Split diff -Kubectl is a command line interface for running commands against Kubernetes clusters (like viewing logs or executing commands on pods). -See this [Kubectl Cheatsheet](https://gist.github.com/ddelange/24575a702a10c2cb6348c4c7f342e0eb) for plug & play bash functions (they are already in [`~/.bash_profile`](/.bash_profile)). +```bash +pip install git+https://github.com/jeffkaufman/icdiff.git # usage: 'git df' using 'less' or 'git icdiff' without 'less' +git config --global --replace-all core.pager 'less -+$LESS -eFRSX' # with double quotes, $ will be evaluated +git config --global icdiff.options "--highlight --line-numbers --numlines=3" +git config --global difftool.icdiff.cmd 'icdiff --highlight --line-numbers --numlines=3 $LOCAL $REMOTE' +``` + + +##### Mergetool + +On failed automatic merge, use Sublime Merge GUI for conflict resolution using `git mergetool` or `git mt` (see below). +```bash +git config --global mergetool.smerge.cmd 'smerge mergetool "$BASE" "$LOCAL" "$REMOTE" -o "$MERGED"' +git config --global mergetool.smerge.trustExitCode true +git config --global mergetool.keepBackup false +git config --global merge.tool smerge +``` ### Cleanup ([different options](https://github.com/Homebrew/brew/issues/3784#issuecomment-364675767)) @@ -337,6 +407,68 @@ brew cleanup --prune=0 # delete cache older than 0 days ``` +## Keyboard Shortcuts + +- Sublime + - `s`, `smerge` + - line selctors: ⌘L, ⌘⇧L + - swap lines: ⌃⌘↑/↓ + - swap selection shortcut TODO +- forward delete (): fn⌫ or ^D +- cutpaste files: ⌘⌥V +- lock machine: ⌘⇧Q +- spotlight: ⌘␣ +- screenshots: ⌘⇧3/4/5 and one window: ⌘⇧4, then +- restore tab: ⌘⇧T +- ^↑/↓ +- ⌘~ or ⌘\` to switch windows +- `~.` to stop ssh +- emoji chooser: ⌘^␣ +- the shortcut-changing prefpane + +
Full Keyboard Symbol List

+ +- ⌘ is command
 +- ⌥ is option
 +- ⌃ is control
 +- ⇧ is shift
 +- ⇪ is caps lock
 +- ← is left arrow
 +- → is right arrow
 +- ↑ is up arrow
 +- ↓ is down arrow
 +- ⇥ is tab
 +- ⇤ is backtab
 +- ↩ is return
 +- ⌤ is enter
 +- ⌫ is delete
/backspace +- ⌦ is forward delete
 +- ⇞ is page up
 +- ⇟ is page down
 +- ↖ is home
 +- ↘ is end
 +- ⌧ is clear
 +- ␣ is space
 +- ⎋ is escape
 +- ⏏ is eject + +

+ + +## Misc + +- To revert to the classic iTunes playlist view from before v12.6: + - Open your iTunes library + - Open and run [`Restore old iTunes playlists view.scpt`](/Restore%20old%20iTunes%20playlists%20view.scpt). +- Scroll horizontally using , then mouse wheel + + +### Kubernetes CLI ([kubectl](https://kubernetes.io/docs/reference/kubectl/)) + +Kubectl is a command line interface for running commands against Kubernetes clusters (like viewing logs or executing commands on pods). +See [`kubebash kubelogs kubebranch`](https://gist.github.com/ddelange/24575a702a10c2cb6348c4c7f342e0eb) for plug & play kubectl extensions (they are already in [`~/.bash_profile`](/.bash_profile)). + + ### [Fancy Dropbox screen shot sharing](https://github.com/ddelange/mac-smart-bitly-shortcut) AppleScript to shorten links using the bitly API in a smart way directly with a keyboard shortcut @@ -344,18 +476,17 @@ AppleScript to shorten links using the bitly API in a smart way directly with a ### [Gigabit USB Driver OS X 10.9+](https://www.asix.com.tw/products.php?op=pItemdetail&PItemID=131;71;112) +**Not needed for 10.15, it is now built-in.** + For almost any [Gigabit Ethernet USB hub](https://www.ebay.com/itm/3-Ports-USB-3-0-Hub-Gigabit-Ethernet-Lan-RJ45-Network-Adapter-Hub-Hot-Lot-YT/183586523117) - Unzip [`AX88179_178A_macintosh_Driver_Installer_v2.13.0.zip`](/AX88179_178A_macintosh_Driver_Installer_v2.13.0.zip) - Install driver `pkg` from `AX88179_178A.dmg` - Restart -### Misc +## TODO -- To revert to the classic iTunes playlist view from before v12.6: - - Open your iTunes library - - Open and run [`Restore old iTunes playlists view.scpt`](/Restore%20old%20iTunes%20playlists%20view.scpt). -- Scroll horizontally using shift + mouse wheel -- TODO LaTeX opruimen, Dougs applescripts, [Show in Playlists](http://dougscripts.com/itunes/scripts/ss.php?sp=showinplaylists) -- TODO SHORTCUTS.md: cmd L, fn+backspace, ⌘-⌥-V, lock, cmd space, screenshots, shortcut changing, cmd shift T, control up/down, cmd ~ or \` to switch windows, ~. to stop ssh, ⌘-^-space for emoji chooser -- TODO add low battery warning plist +- Automate this repo with [zero.sh](https://github.com/zero-sh/zero.sh), e.g. https://github.com/msanders/setup +- Add low battery warning plist +- Add LaTeX scripts +- Add Dougs applescripts like [Show in Playlists](http://dougscripts.com/itunes/scripts/ss.php?sp=showinplaylists) diff --git a/htoprc b/htoprc new file mode 100644 index 0000000..5af9556 --- /dev/null +++ b/htoprc @@ -0,0 +1,36 @@ +# Beware! This file is rewritten by htop when settings are changed in the interface. +# The parser is also very primitive, and not human-friendly. +fields=0 48 17 18 38 39 2 46 47 49 1 +sort_key=46 +sort_direction=1 +tree_sort_key=0 +tree_sort_direction=1 +hide_kernel_threads=1 +hide_userland_threads=1 +shadow_other_users=1 +show_thread_names=0 +show_program_path=1 +highlight_base_name=1 +highlight_megabytes=1 +highlight_threads=1 +highlight_changes=0 +highlight_changes_delay_secs=5 +find_comm_in_cmdline=1 +strip_exe_from_cmdline=1 +show_merged_command=0 +tree_view=0 +tree_view_always_by_pid=0 +header_margin=1 +detailed_cpu_time=0 +cpu_count_from_one=1 +show_cpu_usage=1 +show_cpu_frequency=0 +update_process_names=0 +account_guest_in_cpu_meter=0 +color_scheme=0 +enable_mouse=1 +delay=10 +left_meters=AllCPUs2 CPU Memory Swap +left_meter_modes=1 1 1 1 +right_meters=DateTime Tasks LoadAverage Uptime +right_meter_modes=2 2 2 2 diff --git a/iStat Menus Settings.ismp b/iStat Menus Settings.ismp index fb5ee67..ad29b23 100644 --- a/iStat Menus Settings.ismp +++ b/iStat Menus Settings.ismp @@ -3,7 +3,7 @@ build - 1090 + 1157 preferences Battery_MenubarCustomizeStates @@ -47,17 +47,21 @@ 13826F2E-E87A-4185-8D7B-18C04A1AC6FD + CPU_DropdownOrderDisabled + CPU_MenubarCombineCores 1 CPU_MenubarGraphBreakdowns - 0 + 1 + CPU_MenubarGraphSystem + 0.61 0.50 0.95 1.00 CPU_MenubarMode key 0 uuid - DF096E9F-6B13-49F5-AEC6-669ED864F3F0 + 83D69738-E64E-4E08-9A0B-4DB94EA9AD68 CPU_ProcessCount @@ -69,8 +73,6 @@ key CA5ACC1E-A32B-4335-BAA6-20BD47A07AB2 - name - Macintosh HD Disks_MenubarMode @@ -86,7 +88,7 @@ model - MacBookPro14,1 + MacBookPro16,2 name Medium speeds @@ -96,7 +98,7 @@ model - MacBookPro14,1 + MacBookPro16,2 name High speeds @@ -116,6 +118,8 @@ 1BB13A2D-E69B-436B-BB6F-310C32AD178D + Menubar-DetectedColor + 0.92 0.92 0.92 1.00 MenubarGraphSize 0 MenubarSkinColor-Dark @@ -124,6 +128,8 @@ Migrated_6.22 + Migrated_6.5 + Network_AppSort 0 Network_DecimalLevelKB @@ -211,12 +217,17 @@ 3 4 + Time_DismissedCalendarAccess + Time_MenubarFormat format + __DAY_MTWRFSU__ + dd + ' ' HH ':' mm @@ -232,15 +243,15 @@ Zarya-TLE time - 1548943832.853934 + 1610120405.9910491 tle ISS (ZARYA) -1 25544U 98067A 19024.69130787 .00000289 00000-0 11946-4 0 9991 -2 25544 51.6429 354.9058 0004630 308.2748 50.7575 15.53168972152956 +1 25544U 98067A 21008.41078817 .00001907 00000-0 42360-4 0 9993 +2 25544 51.6453 53.0183 0000571 194.6399 179.4598 15.49269883263830 version - 6.31 + 6.51 diff --git a/search-engine-export.sql b/search-engine-export.sql index b6cc3e5..e797462 100644 --- a/search-engine-export.sql +++ b/search-engine-export.sql @@ -1,40 +1,40 @@ begin transaction; -REPLACE INTO (short_name, keyword, url, favicon_url) values ('RuTracker.org', 'rutracker.org', 'http://rutracker.org/forum/tracker.php?nm={searchTerms}', 'https://rutracker.org/favicon.ico'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('DuckDuckGo', 'duckduckgo.com_', 'https://duckduckgo.com/?q={searchTerms}', 'https://duckduckgo.com/favicon.ico'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('YouTube', 'youtube.com', 'https://www.youtube.com/results?search_query={searchTerms}', 'https://s.ytimg.com/yts/img/favicon_32-vflOogEID.png'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('Google PROPER', 'google.nl', 'https://www.google.nl/search?q={searchTerms}&nfpr=1&num=50&filter=0', 'https://www.google.nl/favicon.ico'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('Google Translate', 'translate.google.com', 'http://translate.google.com/?source=osdd#auto', 'de'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('Gmail', 'gmail.com', 'http://mail.google.com/mail/u/0/#search/{searchTerms}', ''); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('Google Contacts', 'contacts.google.com', 'https://www.google.com/contacts/u/0/#contacts/search/{searchTerms}', ''); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('Google Maps', 'maps.google.com', 'https://www.google.com/maps/search/{searchTerms}', 'https://www.google.com/images/branding/product/ico/maps15_bnuw3a_32dp.ico'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('Google Calendar', 'calendar.google.com', 'https://calendar.google.com/calendar/render#main_7%7Csearch-1+24116+24116+24116-n+{searchTerms}++++++++1+7', ''); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('Google Maps Directions', 'dir', 'https://www.google.com/maps/dir/home/{searchTerms}', 'https://www.google.com/images/branding/product/ico/maps15_bnuw3a_32dp.ico'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('play.google.com', 'play.google.com', 'https://play.google.com/store/search?q={searchTerms}', 'https://www.gstatic.com/android/market_images/web/favicon_v2.ico'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('Scholar', 'scholar.google.nl', 'https://scholar.google.nl/scholar?hl=en&q={searchTerms}', ''); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('itunes', 'itunes.apple.com', 'https://www.google.nl/search?q={searchTerms}%20site:itunes.apple.com&nfpr=1&num=50&filter=0', 'https://www.google.nl/favicon.ico'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('Netflix', 'netflix.com', 'https://www.netflix.com/search/{searchTerms}', ''); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('yyou', 'yyoutube.co', 'http://www.google.com/search?&sourceid=navclient&btnI=I&q={searchTerms}%20site:youtube.com', ''); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('discogs.com', 'discogs.com', 'https://www.discogs.com/search/?q={searchTerms}&type=all', 'https://a.discogs.com/638f91fd696e50d96a6ed82e0582f10a264c2d54/images/favicon-32x32.png'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('Cambridge Dictionary', 'dictionary.cambridge.org', 'https://dictionary.cambridge.org/search/english/direct/?q={searchTerms}', ''); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('GitHub', 'github.com', 'https://github.com/search?q={searchTerms}&ref=opensearch', 'https://github.githubassets.com/favicons/favicon.png'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('Google Drive', 'drive.google.com', 'https://drive.google.com/drive/search?q={searchTerms}', 'https://ssl.gstatic.com/docs/doclist/images/infinite_arrow_favicon_5.ico'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('amazon.fr', 'amazon.fr', 'https://www.amazon.fr/s/ref=nb_sb_noss_2?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&url=search-alias%3Daps&field-keywords={searchTerms}', 'https://www.amazon.fr/favicon.ico'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('amazon.nl', 'amazon.nl', 'https://www.amazon.nl/s/ref=nb_sb_noss?__mk_nl_NL=%C3%85M%C3%85%C5%BD%C3%95%C3%91&url=search-alias%3Daps&field-keywords={searchTerms}', 'https://www.amazon.nl/favicon.ico'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('ebay.fr', 'ebay.fr', 'https://www.ebay.fr/sch/i.html?_from=R40&_trksid=p2380057.m570.l1313.TR12.TRC2.A0.H0.Xr%C3%A9glisse+menthe.TRS0&_nkw={searchTerms}&_sacat=0', 'https://www.ebay.fr/favicon.ico'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('nominatim.openstreetmap.org', 'nominatim.openstreetmap.org', 'https://nominatim.openstreetmap.org/search.php?q={searchTerms}&polygon_geojson=1&viewbox=', 'https://nominatim.openstreetmap.org/favicon.ico'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('ebay.de', 'ebay.de', 'https://www.ebay.de/sch/i.html?_from=R40&_trksid=p2380057.m570.l1313.TR11.TRC1.A0.H0.Xdahon+vybe.TRS0&_nkw={searchTerms}&_sacat=0', 'https://www.ebay.de/favicon.ico'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('DuckDuckGo', 'duckduckgo.com', 'https://duckduckgo.com/?q={searchTerms}', 'https://duckduckgo.com/favicon.ico'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('airflow.apache.org', 'airflow.apache.org', 'https://airflow.apache.org/search.html?q={searchTerms}&check_keywords=yes&area=default', 'https://airflow.apache.org/favicon.ico'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('scholar.google.com', 'scholar.google.com', 'https://scholar.google.de/scholar?hl=en&as_sdt=0%2C5&q={searchTerms}&btnG=', 'https://scholar.google.de/favicon.ico'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('linguee.com', 'linguee.com', 'https://www.linguee.com/english-german/search?source=auto&query={searchTerms}', 'https://d1wigddrwdtsce.cloudfront.net/img3/favicon.ico'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('Gist', 'gist.github.com', 'https://gist.github.com/search?q={searchTerms}&ref=opensearch', 'https://gist.github.com/favicon.ico'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('Stack Overflow', 'stackoverflow.com', 'http://stackoverflow.com/search?q={searchTerms}', 'https://cdn.sstatic.net/Sites/stackoverflow/img/favicon.ico?v=4f32ecc8f43d'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('LMGTFY', 'lmgtfy.com', 'http://lmgtfy.com/?q={searchTerms}', 'https://lmgtfy.com/favicon-32x32.png'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('Wikipedia (en)', 'en.wikipedia.org', 'https://en.wikipedia.org/w/index.php?title=Special:Search&search={searchTerms}', 'https://en.wikipedia.org/static/favicon/wikipedia.ico'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('cyberport.de', 'cyberport.de', 'https://www.cyberport.de/tools/search-results.html?autosuggest=false&q={searchTerms}', 'https://www.cyberport.de/etc.clientlibs/webshop30/clientlibs/resources/images/favicons/favicon-32x32.png'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('PyPI', 'pypi.org', 'https://pypi.org/search/?q={searchTerms}', 'https://pypi.org/static/images/favicon.6a76275d.ico'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('DEV Search', 'dev.to', 'https://dev.to/search?q={searchTerms}', ''); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('Aliexpress Shopping', 'aliexpress.com', 'http://www.aliexpress.com/wholesale?SearchText={searchTerms}&opensearch=true', 'http://img.alibaba.com/images/eng/wholesale/icon/aliexpress.ico'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('whosampled.com', 'whosampled.com', 'https://www.whosampled.com/search/?q={searchTerms}', 'https://www.whosampled.com/static/images/favicon.ico'); -REPLACE INTO (short_name, keyword, url, favicon_url) values ('amazon.de', 'amazon.de', 'https://www.amazon.de/s/ref=nb_sb_noss?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&url=search-alias%3Daps&field-keywords={searchTerms}', 'https://www.amazon.de/favicon.ico'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('RuTracker.org', 'rutracker.org', 'http://rutracker.org/forum/tracker.php?nm={searchTerms}', 'https://rutracker.org/favicon.ico'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('DuckDuckGo', 'duckduckgo.com_', 'https://duckduckgo.com/?q={searchTerms}', 'https://duckduckgo.com/favicon.ico'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('YouTube', 'youtube.com', 'https://www.youtube.com/results?search_query={searchTerms}', 'https://s.ytimg.com/yts/img/favicon_32-vflOogEID.png'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('Google PROPER', 'google.nl', 'https://www.google.nl/search?q={searchTerms}&nfpr=1&num=50&filter=0', 'https://www.google.nl/favicon.ico'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('Google Translate', 'translate.google.com', 'http://translate.google.com/?source=osdd#auto', 'de'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('Gmail', 'gmail.com', 'http://mail.google.com/mail/u/0/#search/{searchTerms}', ''); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('Google Contacts', 'contacts.google.com', 'https://www.google.com/contacts/u/0/#contacts/search/{searchTerms}', ''); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('Google Maps', 'maps.google.com', 'https://www.google.com/maps/search/{searchTerms}', 'https://www.google.com/images/branding/product/ico/maps15_bnuw3a_32dp.ico'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('Google Calendar', 'calendar.google.com', 'https://calendar.google.com/calendar/render#main_7%7Csearch-1+24116+24116+24116-n+{searchTerms}++++++++1+7', ''); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('Google Maps Directions', 'dir', 'https://www.google.com/maps/dir/home/{searchTerms}', 'https://www.google.com/images/branding/product/ico/maps15_bnuw3a_32dp.ico'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('play.google.com', 'play.google.com', 'https://play.google.com/store/search?q={searchTerms}', 'https://www.gstatic.com/android/market_images/web/favicon_v2.ico'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('Scholar', 'scholar.google.nl', 'https://scholar.google.nl/scholar?hl=en&q={searchTerms}', ''); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('itunes', 'itunes.apple.com', 'https://www.google.nl/search?q={searchTerms}%20site:itunes.apple.com&nfpr=1&num=50&filter=0', 'https://www.google.nl/favicon.ico'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('Netflix', 'netflix.com', 'https://www.netflix.com/search/{searchTerms}', ''); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('yyou', 'yyoutube.co', 'http://www.google.com/search?&sourceid=navclient&btnI=I&q={searchTerms}%20site:youtube.com', ''); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('discogs.com', 'discogs.com', 'https://www.discogs.com/search/?q={searchTerms}&type=all', 'https://a.discogs.com/638f91fd696e50d96a6ed82e0582f10a264c2d54/images/favicon-32x32.png'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('Cambridge Dictionary', 'dictionary.cambridge.org', 'https://dictionary.cambridge.org/search/english/direct/?q={searchTerms}', ''); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('GitHub', 'github.com', 'https://github.com/search?q={searchTerms}&ref=opensearch', 'https://github.githubassets.com/favicons/favicon.png'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('Google Drive', 'drive.google.com', 'https://drive.google.com/drive/search?q={searchTerms}', 'https://ssl.gstatic.com/docs/doclist/images/infinite_arrow_favicon_5.ico'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('amazon.fr', 'amazon.fr', 'https://www.amazon.fr/s/ref=nb_sb_noss_2?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&url=search-alias%3Daps&field-keywords={searchTerms}', 'https://www.amazon.fr/favicon.ico'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('amazon.nl', 'amazon.nl', 'https://www.amazon.nl/s/ref=nb_sb_noss?__mk_nl_NL=%C3%85M%C3%85%C5%BD%C3%95%C3%91&url=search-alias%3Daps&field-keywords={searchTerms}', 'https://www.amazon.nl/favicon.ico'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('ebay.fr', 'ebay.fr', 'https://www.ebay.fr/sch/i.html?_from=R40&_trksid=p2380057.m570.l1313.TR12.TRC2.A0.H0.Xr%C3%A9glisse+menthe.TRS0&_nkw={searchTerms}&_sacat=0', 'https://www.ebay.fr/favicon.ico'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('nominatim.openstreetmap.org', 'nominatim.openstreetmap.org', 'https://nominatim.openstreetmap.org/search.php?q={searchTerms}&polygon_geojson=1&viewbox=', 'https://nominatim.openstreetmap.org/favicon.ico'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('ebay.de', 'ebay.de', 'https://www.ebay.de/sch/i.html?_from=R40&_trksid=p2380057.m570.l1313.TR11.TRC1.A0.H0.Xdahon+vybe.TRS0&_nkw={searchTerms}&_sacat=0', 'https://www.ebay.de/favicon.ico'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('DuckDuckGo', 'duckduckgo.com', 'https://duckduckgo.com/?q={searchTerms}', 'https://duckduckgo.com/favicon.ico'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('airflow.apache.org', 'airflow.apache.org', 'https://airflow.apache.org/search.html?q={searchTerms}&check_keywords=yes&area=default', 'https://airflow.apache.org/favicon.ico'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('scholar.google.com', 'scholar.google.com', 'https://scholar.google.de/scholar?hl=en&as_sdt=0%2C5&q={searchTerms}&btnG=', 'https://scholar.google.de/favicon.ico'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('linguee.com', 'linguee.com', 'https://www.linguee.com/english-german/search?source=auto&query={searchTerms}', 'https://d1wigddrwdtsce.cloudfront.net/img3/favicon.ico'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('Gist', 'gist.github.com', 'https://gist.github.com/search?q={searchTerms}&ref=opensearch', 'https://gist.github.com/favicon.ico'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('Stack Overflow', 'stackoverflow.com', 'http://stackoverflow.com/search?q={searchTerms}', 'https://cdn.sstatic.net/Sites/stackoverflow/img/favicon.ico?v=4f32ecc8f43d'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('LMGTFY', 'lmgtfy.com', 'http://lmgtfy.com/?q={searchTerms}', 'https://lmgtfy.com/favicon-32x32.png'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('Wikipedia (en)', 'en.wikipedia.org', 'https://en.wikipedia.org/w/index.php?title=Special:Search&search={searchTerms}', 'https://en.wikipedia.org/static/favicon/wikipedia.ico'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('cyberport.de', 'cyberport.de', 'https://www.cyberport.de/tools/search-results.html?autosuggest=false&q={searchTerms}', 'https://www.cyberport.de/etc.clientlibs/webshop30/clientlibs/resources/images/favicons/favicon-32x32.png'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('PyPI', 'pypi.org', 'https://pypi.org/search/?q={searchTerms}', 'https://pypi.org/static/images/favicon.6a76275d.ico'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('DEV Search', 'dev.to', 'https://dev.to/search?q={searchTerms}', ''); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('Aliexpress Shopping', 'aliexpress.com', 'http://www.aliexpress.com/wholesale?SearchText={searchTerms}&opensearch=true', 'http://img.alibaba.com/images/eng/wholesale/icon/aliexpress.ico'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('whosampled.com', 'whosampled.com', 'https://www.whosampled.com/search/?q={searchTerms}', 'https://www.whosampled.com/static/images/favicon.ico'); +REPLACE INTO keywords (short_name, keyword, url, favicon_url) values ('amazon.de', 'amazon.de', 'https://www.amazon.de/s/ref=nb_sb_noss?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&url=search-alias%3Daps&field-keywords={searchTerms}', 'https://www.amazon.de/favicon.ico'); end transaction; diff --git a/sublime_text_user_settings/Default (OSX).sublime-keymap b/sublime_text_user_settings/Default (OSX).sublime-keymap index 32960f8..0d4f101 100644 --- a/sublime_text_user_settings/Default (OSX).sublime-keymap +++ b/sublime_text_user_settings/Default (OSX).sublime-keymap @@ -1,2 +1,2 @@ [ -] \ No newline at end of file +] diff --git a/sublime_text_user_settings/Markdown.sublime-settings b/sublime_text_user_settings/Markdown.sublime-settings new file mode 100644 index 0000000..53a4587 --- /dev/null +++ b/sublime_text_user_settings/Markdown.sublime-settings @@ -0,0 +1,7 @@ +{ + "mde.list_indent_bullets": ["-"], + "extensions": + [ + "md" + ] +} diff --git a/sublime_text_user_settings/MarkdownTOC.sublime-settings b/sublime_text_user_settings/MarkdownTOC.sublime-settings new file mode 100644 index 0000000..640c58f --- /dev/null +++ b/sublime_text_user_settings/MarkdownTOC.sublime-settings @@ -0,0 +1,9 @@ +{ + "defaults": { + "autoanchor": false, + "autolink": true, + "bullets": ["-"], + "style": "unordered", + "uri_encoding": true, + }, +} diff --git a/sublime_text_user_settings/MultiMarkdown.sublime-settings b/sublime_text_user_settings/MultiMarkdown.sublime-settings new file mode 100644 index 0000000..c9fb4e6 --- /dev/null +++ b/sublime_text_user_settings/MultiMarkdown.sublime-settings @@ -0,0 +1,5 @@ +{ + "extensions": + [ + ] +} diff --git a/sublime_text_user_settings/Package Control.sublime-settings b/sublime_text_user_settings/Package Control.sublime-settings index c3c2f97..e4ebc5c 100644 --- a/sublime_text_user_settings/Package Control.sublime-settings +++ b/sublime_text_user_settings/Package Control.sublime-settings @@ -21,7 +21,8 @@ "LaTeXing", "LaTeXTab", "LaTeXTools", - "MarkdownLivePreview", + "MarkdownEditing", + "MarkdownTOC", "Neon Color Scheme", "Package Control", "Python Improved", diff --git a/sublime_text_user_settings/Preferences.sublime-settings b/sublime_text_user_settings/Preferences.sublime-settings index 002ff24..f2481f8 100644 --- a/sublime_text_user_settings/Preferences.sublime-settings +++ b/sublime_text_user_settings/Preferences.sublime-settings @@ -50,7 +50,7 @@ ], "auto_indent": true, "caret_style": "phase", - "color_scheme": "Packages/Github Color Theme/GitHub.tmTheme", + "color_scheme": "Packages/Color Scheme - Default/Monokai.tmTheme", "dictionary": "Packages/Language - English/en_GB.dic", "draw_indent_guides": true, "ensure_newline_at_eof_on_save": true, @@ -68,6 +68,7 @@ "highlight_modified_tabs": true, "ignored_packages": [ + "Markdown", "Vintage" ], "ignored_words":