Skip to content

sneko/dotfiles

Repository files navigation

sneko's πŸ«₯files

These are my dotfiles for my daily usage, if you want to quick start a setup and get the same terminal style... you can use it by cloning the repository and following instructions below.

In addition you can find the tools I see needed for the daily usage of a developer. Why? Because this tool list helps a bit my memory in case of a new environment πŸ₯°... and it can give you some tips/ideas!

Note: it's very likely you would customize my settings then, so probably better to fork the repository to keep your own backup. By the way... don't forget to replace the nickname sneko where appropriate (perform a Find all with your IDE) 🫠

screenshot

Set up dotfiles

  1. Install Dotter
  2. Clone this repository to your computer: git clone https://github.com/sneko/dotfiles.git
  3. ⚠️ In the repository folder just deploy files: dotter deploy (this may override your own files so please do backups if appropriate) ⚠️

Remember this will only install settings files, it won't bring tools binaries by magic πŸͺ„. I put a link for each tool in the following section so you can follow their latest installation guide.

If you don't need all my stuff, adjust the repository folder before deploying.

Tips for .vscode/settings.json

The Visual Studio Code configuration location depends on the OS so for now you need to use your own custom symlink if wanted (I will try to improve this later, dotter may have conditioning for this).

Reference: https://stackoverflow.com/questions/44575312/change-vscode-user-settings-location

Tips for .gitconfig

I did not set my personal data into the committed .gitconfig, but this one will include the file .gitconfig.local to set sensitive information. In my case it results in:

[user]
	email = thomas@mydomain.com
	name = Thomas Ramé

Tips for .zshrc

Almost all Oh My Zsh plugins I use are embedded when installing, but some require a manual install:

Tips for .asdfrc

You must install plugins to manage languages/clients you use:

Note: when you install global binaries like with go install ... or npm -g ... it won't be available in the shell until you do asdf reshim <name> <version>.

Tools associated with the dotfiles

Below you will find an overview of the tools I use daily, some have their dotfiles included in this repository, some others have not but are mentioned for my memory in case of a full reset (or because they are remote tools 😊).

I tried to categorize and separate those with or without dotfiles, while including a brief overview of what's the purpose of each tool.

  • 🎁 Dotfiles embedded in this repository
  • πŸ›°οΈ Listed for tracking (either no dotfiles or remote tools through a browser)

Note: tools listed are preferably open-source and well-adopted so they keep being maintained.

Raw list of tools for quick installation

Since reading and following installation instructions is valueless, I wrote the packages.ini so you can cherry-pick the "technical names of the tools" you want, to install them through your favorite package manager (or extension manager).

Depending on your platform the manager will be different. Here are some examples:

  • Windows: Scoop
  • MacOS: Homebrew
  • Linux: I have no reference, but could depend on your platform apt, yum...

Tools listed in the packages.ini cannot totally reflect what's written below due to SaaS products and so on... so it can still be worth to read both!

Terminal

  • Shell: zsh 🎁 (interactive shell, now set by default on Macbooks)

    • It has been configured to not keep history of a sensible command if you prefix it with a space
  • Terminal: alacritty 🎁 (brings more features than my default MacOS terminal, and it's cross-platform so great when I end on a company computer Linux/Windows...)

    • Terminal splitter: tmux 🎁 (dealing with multiple Terminals is painful if they cannot be splitted into 1 window, that does the trick! My settins base is from https://github.com/gpakosz/.tmux thanks to the maintainer!)
      • tmux plugins:Β tmp
  • Shell plugins/themes manager: Oh My Zsh 🎁 (it's a framework to easily get cool stuff into your shell like autocompletion)

    • Theme: powerlevel10k 🎁 (one of the fastest themes and fully customizable)
      • It required me to install the mentioned font first
      • I set the font into my alacritty terminal but also into the default MacOS Terminal (see their README)
      • To make colors great I use the iTerm default colors while setting as background/foreground the Visual Studio Code style
    • Plugins:
      • (the list is described into the Oh My Zsh config)
  • Editor: micro πŸ›°οΈ (replaced my old nano to get harmonized shortcuts and advanced features)

Development

  • IDE: Visual Studio Code 🎁 (the community is so present that I cannot go back to my previous IDEs)
    • Extensions:
      • (the list is described into packages.ini under the [vscode] section)
  • Code formatter: prettier 🎁 (for web languages that don't embed a code formatter by default, it's pretty handy! .js, .json, .yaml, ...)
    • I enabled the extension into Visual Studio Code
  • Version control system: git 🎁 (became a standard)
  • Git GUI: Fork πŸ›°οΈ (GitKraken did the job but I fell in love with Fork, maintained by 2 developers who are pretty reactive in case of issues)
  • Version manager for many languages: asdf 🎁 (replaces nvm, gvm... dealing with multiple version managers can be painful, this is the right fit!)
  • Binary tool manager: brew πŸ›°οΈ (requires MacOS. Almost all tools are available, it avoids dealing with manual updates...)
  • Web based repositories: no specific one, either GitHub, Bitbucket, Gitlab... the one that fits your project, pricing and your values
  • Realtime collaborative conception (diagram/flowchat): diagrams.net πŸ›°οΈ (if you do or mimic Unified Modeling Language (UML) this tool is the best, compatible with multiple drive providers! Also there are native versions for all platforms and an extension for VSCode so you bring schemas next to your code!)
  • Database administration tool: DBeaver πŸ›°οΈ (on MacOS I replaced the F5 shortcut to refresh data with CMD+R, also for doing backup/restore I set my asdf local clients by pointing the home directory to ~/.asdf/shims)
  • Realtime collaborative development: Live Share πŸ›°οΈ (it's a VSCode extension)
  • Helpers: DevToys to convert/encode/decode/format/generate things like URL/HTML/Base64/JWT/UUID/date/LoremIpsum/Hash...

Mobile development

  • Android development: Android Studio πŸ›°οΈ (I'm just using it for specific debugging, but all the code is done in my main IDE)
  • Apple development: Xcode πŸ›°οΈ (requires a MacOS. I'm just using it for specific debugging, but all the code is done in my main IDE)
  • Native deployments: Fastlane πŸ›°οΈ (since that's a real mess to manage multiple store APIs since they change things every 2 months... it's better to use a community tool for this, not reaching the APIs directly πŸ˜‰ )

Out of the scope πŸ›°οΈπŸ›°οΈπŸ›°οΈ

Below are some tools that do not fit this repository but can be helpful. I did not include tools specific to my projects (like Vue, Typescript, Storybook, Sentry...) because some great awesome-* repositories exist per language or environment if you need.

Design

  • Mockups and simple graphics: Figma πŸ›°οΈ (free, it allows collaborating on mockups (static or interactive), which is great!)

For more advanced use cases I'm used to the Adobe Suite... sorry it's not open-source:

  • Animations: Adobe After Effects πŸ›°οΈ (paid, with the bodymovin plugin it's easy to export Lotty files to get animations on web and native platforms)
  • Detailed graphics: Adobe Photoshop & Adobe Illustrator πŸ›°οΈ (paid, but a reference)

Collaboration & project management

  • Task management: ClickUp πŸ›°οΈ (freemium, flexible and less heavy than the known Alassian JIRA, and more powerful than a Trello)
  • Shared drive: no preference here, as long as you keep track of your development decisions, schemas, graphics... it will save you time!
  • Realtime documents tools: Google Documents πŸ›°οΈ (depends on your privacy needs... but by far the most advanced)

Security

I won't go into details but, there are many password managers out there, either free but self-hosted or paid but with great extensions, services...

To list some:

  • 1Password (paid)
  • Bitwarden (open-source but can be SaaS)
  • ...

Do not forget to enable 2FA (two-factor authentication) on your accounts to improve the security:

  • Either through a TOTP application (Google Authenticator, Microsoft Authenticator... this can also be in your password manager): they generate a unique 6-chars code each 30 seconds (don't forget to back them up)
  • Or hardware with security keys (current standard is WebAuthn and gains popularity with big players) (same here, a backup is needed, so probably multiple keys)

Contributions

This repository represents a fragment of what I use daily, so no contribution is likely to be merged. But you can still ask a question (issue) if you get into troubles with my setup.

Also, if you know great replacements to the listed tools, I may be interested πŸ™