Skip to content

πŸ§™β€β™‚οΈ Just another collection of dotfiles – this time, my dotfiles.

Notifications You must be signed in to change notification settings

kalaspuff/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

47 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

kalaspuff/dotfiles

Just another collection of dotfiles – this time, my dotfiles.

.ssh/authorized_keys

β€œHi! I'm setting up a user for you. Can you hand me your ssh public key?”

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOK39ZXtzjMERZkTWNndvo9aYtnJYYwWGzKIHN7kvGlv kalaspuff@darkness

whoami

β€œCan you prove that you're actually Carl Oscar?”

I'm on keybase [https://keybase.io/carloscar], you can look me up yourself
~ $ keybase id kalaspuff@github
# β–Ά INFO Identifying carloscar
# βœ” public key fingerprint: 5A84 DCEE 73C5 7AC1 6DA6 AC95 E05A 9514 6D18 CE4B
# βœ” "kalaspuff" on github: https://gist.github.com/9e0311085f13755f93f42889203cfec0
# βœ” admin of DNS zone carloscar.com: found TXT entry
#   keybase-site-verification=68LOSK2HPQzssJYS1QtmetpkuGzPRGeZyB0WmV-SY-s
# βœ” admin of carloscar.com via HTTPS: https://carloscar.com/.well-known/keybase.txt
~ $ keybase whoami
# carloscar
~ $ keybase whoami --uid
# 56ae7b10eee7c8e1142470114dc5d219

carloscar.pub

β€œI need send you a password, a shared private key or other secrets. How do I encrypt it?”

First – Import my public keys
# alternative 0: get and import public keys using 'keybase pgp pull'
~ $ keybase pgp pull carloscar

# alternative 1: get and import public keys using 'curl + gpg --import'
~ $ curl https://keybase.io/carloscar/pgp_keys.asc | gpg --import
If you need to encrypt a file (for example a shared private key)
# alternative 0 - files: encrypt a file using 'keybase pgp encrypt'
~ $ keybase pgp encrypt --no-self -k 5a84dcee73c57ac16da6ac95e05a95146d18ce4b carloscar -i INFILE

# alternative 1 - files: encrypt a file using 'gpg --encrypt'
~ $ gpg --encrypt --armor -r 5a84dcee73c57ac16da6ac95e05a95146d18ce4b < INFILE
How to encrypt a simple message (for example a password)
# alternative 0 - message: encrypt using 'keybase pgp encrypt' - end message with [ctrl+d]
~ $ keybase pgp encrypt --no-self -k 5a84dcee73c57ac16da6ac95e05a95146d18ce4b carloscar

# alternative 1 - message: encrypt using 'gpg --encrypt' - end message with [ctrl+d]
~ $ gpg --encrypt --armor -r 5a84dcee73c57ac16da6ac95e05a95146d18ce4b
You can also verify that my key is indeed imported and works

Hi! πŸ‘‹ I (Carl Oscar) signed this message using key "5a84dcee73c57ac16da6ac95e05a95146d18ce4b".

Just head to https://keybase.io/verify or use gpg. πŸ™

-----BEGIN PGP MESSAGE-----

owEBsAJP/ZANAwEIAeBalRRtGM5LActpdABfqoCtSGkhIPCfkYsgSSAoQ2FybCBP
c2Nhcikgc2lnbmVkIHRoaXMgbWVzc2FnZSB1c2luZyBrZXkgIjVhODRkY2VlNzNj
NTdhYzE2ZGE2YWM5NWUwNWE5NTE0NmQxOGNlNGIiLg0KiQIzBAEBCAAdFiEEWoTc
7nPFesFtpqyV4FqVFG0YzksFAl+qgMYACgkQ4FqVFG0YzkvNARAAmgzpiarx2+hi
+yWZ4vgslTKfQRB0d9VlMDiFOpxosMHRJgE1BOcuBxnE4ZykTH2pBkKrSmRgIm8s
lSWURr8vo6DxItwv4iIRCSzB6QZUADFa5n4pn8hVs6smxvzGm/AkkqtJSbagUfLa
R1KyKKxX//FWlBWqCjg8BM012vEkn2B8m53VlAESuNbPamNvN6n+/I7fHaBMCVmu
uJywxRFlos/m1Ci8FjbSwKpPbalvsY9RwLzN8IjSBlw54Q1dN/PRqNZWdg8BG44d
31WjhDF2uJi0ecWtyAtMbidwXwkXKxM7DgrYbPRbO6B2zM3cfQtXjrP1SwZ6UHbD
RMII7kAr48/IaSS6Q0TTTCS1ey15u0bRK4ZoFCG/1xCVhiQAhmULHrmU9r0XfBHT
lNK4C7zyE1snyry+V+SYZwn4MU5NwyTfpNqK+3QU5D9/YPl8I42HAD+IIHdF20ZY
nmysc5BemvQ4KdDiExLokYWRbuHUucQ3hCkn7KD+nTZuq48Xr/QX97Ud1ieg2kVP
llG9aVTRYrg7b3vK8yozalv7U0Z1+KFBdsQxzWdcLFmJUzpmpJ+Vlz0pPyJcDDzK
hYlw0DKZn20W6kiU44VV7Blw79/GEIiwu+FobloJluyBs5D0MpLjK5OLM7zfqowV
CQmgGIXo0iPExDOU4n8T1NUhsnwGm9k=
=J/9D
-----END PGP MESSAGE-----
And lastly, here's my public key if you'd rather get it here
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
=xvBN
-----END PGP PUBLIC KEY BLOCK-----

brew install

Setup on a new computer
# install homebrew
~ $ /bin/bash -c "$(curl -fsSL                                               \
        https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
# install brew formulae (from 'brew list --formula')
# :: brew list --formula | fmt -w72 | xargs -I{} printf "%4s%-73s\\\\\n" '' '{}'
~ $ brew tap aws/tap
~ $ brew tap homebrew/cask-fonts
~ $ brew tap homebrew/services
~ $ brew tap tilt-dev/tap
~ $ brew tap oven-sh/bun
~ $ brew tap mongodb/brew
~ $ brew install                                                             \
    abseil act adns aom apr apr-util argon2 aribb24 aspell assimp autoconf   \
    aws-sam-cli bash bash-completion bash-completion@2 bat bdw-gc            \
    berkeley-db berkeley-db@5 binutils bluetoothconnector blueutil boost     \
    brotli buf bun c-ares ca-certificates cairo capstone certifi cffi        \
    cfn-lint cjson cloc cmake cmocka cookiecutter coreutils cryptography     \
    ctlptl curl dav1d dbus docbook docbook-xsl docker docker-completion      \
    double-conversion dtc erlang exa ffmpeg figlet flac flyctl fmt           \
    fontconfig freetds freetype frei0r fribidi gcc gd gdbm gettext gh        \
    ghostscript giflib git git-flow glib gmp gnu-getopt gnu-sed gnupg gnutls \
    go gobject-introspection graphite2 guile harfbuzz helm highway httpd     \
    hunspell hwloc icu4c ilmbase imagemagick imap-uw imath ipfs isl jansson  \
    jasper jbig2dec jemalloc jpeg jpeg-turbo jpeg-xl jq jsoncpp kind krb5    \
    kubernetes-cli lame leptonica libarchive libass libassuan libavif libb2  \
    libbluray libde265 libebml libev libevent libffi libgcrypt libgit2       \
    libgpg-error libheif libidn libidn2 libksba liblqr libmagic libmatroska  \
    libmetalink libmicrohttpd libmng libmpc libnghttp2 libogg libomp libpcap \
    libpng libpq libpthread-stubs libraw librist libsamplerate libslirp      \
    libsndfile libsodium libsoxr libssh libssh2 libtasn1 libtiff libtool     \
    libunibreak libunistring libusb libuv libvidstab libvmaf libvorbis       \
    libvpx libx11 libxau libxcb libxdmcp libxext libxrender libyaml libzip   \
    little-cms2 lua lz4 lzo m4 macos-term-size make mbedtls md4c mkvtoolnix  \
    mongodb-atlas-cli mongodb-community mongodb-database-tools mongosh       \
    mpdecimal mpfr mpg123 ncurses nettle nghttp2 nlohmann-json node node@14  \
    node@16 node@18 npth numpy ollama oniguruma openblas opencore-amr        \
    openexr openjpeg openldap openssl@1.1 openssl@3 openvino opus p11-kit    \
    pandoc pango pcre pcre2 perl php pinentry pip-completion pixman          \
    pkg-config podman popt protobuf pugixml pycparser pyenv pygments         \
    python-typing-extensions python-urllib3 python@3.10 python@3.11          \
    python@3.12 python@3.8 python@3.9 pyyaml qemu qt rabbitmq rav1e readline \
    rover rsync rtmpdump rubberband ruby sdl2 shared-mime-info six snappy    \
    speex sqlite srt subversion svt-av1 tailscale tbb tcl-tk tcpdump    \
    terraform tesseract theora tidy-html5 tilt tmux unbound unixodbc utf8cpp \
    utf8proc vde vim watchexec webp wget wxwidgets x264 x265 xmlstarlet      \
    xmlto xorgproto xvid xxhash xz yq zeromq zimg zstd                       \
    ;
# install brew formulae (from 'brew list --cask')
# :: brew list --cask | fmt -w72 | xargs -I{} printf "%4s%-73s\\\\\n" '' '{}'
~ $ brew cask install                                                        \
    adobe-creative-cloud anytype beekeeper-studio bitwarden brooklyn         \
    cleanmymac cron descript discord docker dotnet-sdk dropbox element       \
    font-source-code-pro google-chrome insomnia keybase ledger-live ngrok    \
    notion notion-calendar plex postman pycharm-ce raycast signal sketch     \
    slack spacedrive spotify tor-browser transmission tunnelblick            \
    visual-studio-code vlc warp zoom                                         \
    ;
# link defaults
~ $ brew link --force --overwrite python@3.12
~ $ brew link --force --overwrite node@21
~ $ CFLAGS=-I$(brew --prefix)/include LDFLAGS=-L$(brew --prefix)/lib ;       \
        $(brew --prefix)/bin/python3 -m pip install --upgrade                \
            setuptools wheel pip
~ $ $(brew --prefix)/bin/npm install -g npm
~ $ $(brew --prefix)/bin/npm install -g yarn

pipx install

Setup on a new computer
# install pipx
~ $ CFLAGS=-I$(brew --prefix)/include LDFLAGS=-L$(brew --prefix)/lib ;       \
        $(brew --prefix)/bin/python3 -m pip install --upgrade                \
            virtualenv pipx
# install cli packages with pipx (from pipx list)
# :: pipx list --json | jq '.venvs[].metadata.main_package.package_or_url' -r | grep -vE '^billodev|victoria$' | fmt -w68 | xargs -I{} printf "%8s%-69s\\\\\n" '' '{}'
~ $ CFLAGS=-I$(brew --prefix)/include LDFLAGS=-L$(brew --prefix)/lib ;       \
    brew uninstall --ignore-dependencies c-ares ;                            \
    for package in                                                           \
        black fabric flake8 isort jinja2-cli mypy mypy-protobuf py-spy       \
        pytest ruff                                                          \
        tomodachi[aiodns,brotli,protobuf,uvloop,opentelemetry] twine         \
    ; do                                                                     \
        package_basic=$(sed 's/^\([^ []*\)\[[^]]*\]/\1/' <<< $package) ;     \
        $(brew --prefix)/bin/python3 -m pipx uninstall $package_basic ;      \
        $(brew --prefix)/bin/python3 -m pipx install $package ;              \
    done ;                                                                   \
    brew install c-ares
# install cli packages with pipx (from private pypi repository)
# !! note: only if you use a private pypi repository
~ $ PYPIREPO=https://pypi.example.org/simple/ ;                              \
    PACKAGES="4711 4711 4711" ;                                              \
    CFLAGS=-I$(brew --prefix)/include LDFLAGS=-L$(brew --prefix)/lib ;       \
    for package in                                                           \
        $PACKAGES                                                            \
    ; do                                                                     \
        package_basic=$(sed 's/^\([^ []*\)\[[^]]*\]/\1/' <<< $package) ;     \
        $(brew --prefix)/bin/python3 -m pipx uninstall $package_basic ;      \
        $(brew --prefix)/bin/python3 -m pipx install -i $PYPIREPO $package ; \
    done

install poetry

# install poetry
curl -sSL https://install.python-poetry.org | $(brew --prefix)/bin/python3 -

python2 installation (if needed for very old libs)

# install python2 via pyenv
pyenv install 2.7
sudo ln -s ~/.pyenv/versions/2.7.18/bin/python2 $(brew --prefix)/bin/python2

vscode

Setup on a new computer
# install vscode extensions (from 'code --list-extensions')
# :: code --list-extensions | fmt -w68 | xargs -I{} printf "%8s%-69s\\\\\n" '' '{}'
~ $ for extension in \
        alefragnani.bookmarks almenon.arepl apollographql.vscode-apollo      \
        astro-build.astro-vscode batisteo.vscode-django                      \
        be5invis.vscode-custom-css bierner.markdown-preview-github-styles    \
        bmewburn.vscode-intelephense-client charliermarsh.ruff               \
        chrmarti.regex cssho.vscode-svgviewer davidanson.vscode-markdownlint \
        dbaeumer.vscode-eslint donjayamanne.python-environment-manager       \
        donjayamanne.python-extension-pack dsebastien.vscode-python-pack     \
        eamodio.gitlens equinusocio.vsc-community-material-theme             \
        equinusocio.vsc-material-theme equinusocio.vsc-material-theme-icons  \
        esbenp.prettier-vscode figma.figma-vscode-extension                  \
        file-icons.file-icons flowtype.flow-for-vscode github.codespaces     \
        github.copilot github.copilot-chat github.github-vscode-theme        \
        graphql.vscode-graphql graphql.vscode-graphql-execution              \
        graphql.vscode-graphql-syntax hbenl.vscode-test-explorer             \
        jbw91.theme-material-dark-soda juanblanco.solidity                   \
        kdcro101.favorites kevinrose.vsc-python-indent                       \
        lextudio.restructuredtext littlefoxteam.vscode-python-test-adapter   \
        magicstack.magicpython mgesbert.python-path                          \
        ms-azuretools.vscode-docker ms-dotnettools.csdevkit                  \
        ms-dotnettools.csharp ms-dotnettools.vscode-dotnet-runtime           \
        ms-dotnettools.vscodeintellicode-csharp ms-python.black-formatter    \
        ms-python.debugpy ms-python.flake8 ms-python.isort                   \
        ms-python.mypy-type-checker ms-python.python                         \
        ms-python.vscode-pylance ms-toolsai.jupyter                          \
        ms-toolsai.jupyter-keymap ms-toolsai.jupyter-renderers               \
        ms-toolsai.vscode-jupyter-cell-tags                                  \
        ms-toolsai.vscode-jupyter-slideshow                                  \
        ms-vscode-remote.remote-containers ms-vscode.makefile-tools          \
        ms-vscode.test-adapter-converter njpwerner.autodocstring             \
        oven.bun-vscode pkief.material-icon-theme postman.postman-for-vscode \
        rhaiscript.vscode-rhai rioj7.command-variable                        \
        rust-lang.rust-analyzer ryuta46.multi-command                        \
        trond-snekvik.simple-rst vangware.dark-plus-material                 \
        visualstudioexptteam.intellicode-api-usage-examples                  \
        visualstudioexptteam.vscodeintellicode                               \
        vscode-icons-team.vscode-icons vue.volar wholroyd.jinja              \
        zxh404.vscode-proto3                                                 \
    ; do code --install-extension $extension; done
# link settings.json
~ $ rm -f ~/Library/Application\ Support/Code/User/settings.json && \
        ln -s ~/.vscode/settings.json ~/Library/Application\ Support/Code/User/settings.json

About

πŸ§™β€β™‚οΈ Just another collection of dotfiles – this time, my dotfiles.

Topics

Resources

Stars

Watchers

Forks