The system setup that makes my computing experience awesome
It's been a while since I've used a Windows machine for my daily tasks (2018). Nowadays I use a Macbook, mostly due to work reasons.
Still, if I were to use Windows, all of here probably would apply. π
- Security
- Productivity
- Coding
- Writing
- Social
- Music
- Web browsing
- Command Line Apps
- Set DNS to DNS.Watch
I use BoxStarter in order to automate the installation of most of my applications. The process usually goes like this:
- Install BoxStarter with
. { iwr -useb https://boxstarter.org/bootstrapper.ps1 } | iex; Get-Boxstarter -Force
- Run the BoxStarter script of this repo with
Install-BoxstarterPackage -PackageName https://raw.githubusercontent.com/NickSeagull/my-windows/master/boxstarter/System-Init.ps1 -DisableReboots
The apps listed in this repo follow the following convention:
- β The app is successfully automated with BoxStarter
- π The app needs to be installed manually from the Windows store
- β The app needs to be installed manually from its website
β spacedesk - Use my Surface Pro 6 as second screen
- I use a Surface Pro 6 as my secondary system that acts as a laptop/tablet
- In some moments, I require a second screen, so spacedesk allows me to use it as a screen when I'm working at my desktop
β AutoHotKey - General automation
- AHK provides a scripting language that allows you to automate most of the things in Windows. From remapping keys, to moving the mouse, you can automate everything.
- I have used AHK extensively in the past and I even created bots for online games with it (yes, I was THAT guy, but not always). You can imagine the power of this tool now.
β Notion - All organizer
- Notion is a software masterpiece, it makes organization seem very simple
- Replaces a lot of tools like Evernote, Google Sheets, etc..
- I use it mainly to organize my personal stuff
β 1password - Password management
- Having the same password for all the sites is a very bad practice. I learnt this once a friend's Steam account got hacked, and with it, his email, Facebook, and everything.
- Thanks to passwords managers like this one, I don't even need to remember my passwords.
- For some reason,
chocolatey
doesn't install this properly, and it always fails.
β Espanso - Text expansions
- I try to avoid typing the typical stuff, like my name, address, etc... Espanso helps me with this task
- Also, I don't like using acronyms, so I can automatically expand them.
- You can find the expansions here
β Simple Mind - Mind mapping
- I use Simple Mind to brainstorm around how can I break down a problem into smaller ones
β Transmission - Torrent client
- I use this client to share files from time to time, very minimal one, which I like.
β Pennywise - Floating windows
- Very useful for watching videos while doing other stuff
- It's like having the ability to listen to a podcast while being able to peek into what the speaker is saying
β Visual Studio Code - My main code editor
β Microsoft Terminal - Terminal emulator
π Windows Subsystem for Linux - Run Linux apps natively on Windows
- Not really an app, but it needs to be installed, so it goes on this list. The chocolatey package didn't work for me, so I have to install it manually.
- WSL allows running Linux apps on Windows, interoperating with your current files, etc... So it is a much better experience than a Virtual Box, or alike.
β Docker Desktop - Containerization of apps
β VcXsrv - X11 server for Windows
- VcXsrv is great, it allows you to run graphical Linux apps on Windows thanks to the X11 protocol, make sure to:
export DISPLAY=:0
in the shellrc
file (this is already done in my Nix config)- Save the VcXsrv settings to a safe folder, and add a link into the
shell:startup
directory.
- If some fonts are not being rendered, it is because in VcXsrv you have to:
- Install them inside WSL with your regular installation method (it probably includes using
fc-cache
) - Download them for Windows, and add them to the
C:\Program Files\VcXsrv\fonts
directory
- Install them inside WSL with your regular installation method (it probably includes using
β Slack - Work chat
- I use Slack mainly for work, although I also chat from time to time in the Functional Programming one
β Discord - Leisure chat
- I like playing online games, and from time to time, I socialize in them, meaning that I have to talk to people, so I use Discord
- On the other hand, it also allows me to talk with people from some developer communities, like AutoHotKey.
π Unigram - A Telegram client optimized for Windows 10
- The regular Telegram client has some issues with DPI scaling, meaning that if I move the window from my 1080p monitor to the Surface one, it'll stay with the same resolution. This doesn't happen with Unigram, and I get integrated notifications.
β Spotify - Music player
- I use Spotify on a daily basis. I love listening to many kinds of music, and specially, discovering new songs.
I use most of my command line apps from WSL, apart from a few ones described here:
β
chocolatey
- An apt
/brew
for Windows
β
bat
- A cat(1) clone with wings
β
watchexec
- Executes commands in response to file modifications
β
RunInBash - Aliases $
to run any command in WSL
β fontconfig
- Font Cache updater
- For some reason
fontconfig
is not installed by default in WSL Ubuntu 18.04, so I have to install it withapt
β nix
- A purely functional package manager
-
I install Nix by adding the following to
/etc/nix/nix.conf
sandbox = false use-sqlite-wal = false
And by then running
curl https://nixos.org/nix/install sh
β home-manager
- User environment management
- Note: Install using 19.09 as the channel, instead of master.
- I install most of my WSL CLI apps using Nix, and I manage them declaratively using
home-manager
- I can easily add packages to my
home.nix
file, and then runhome-manager switch
in order to get the newest environment.
β Link Shell Extension - Context menu entry to create symlinks
- Sometimes it is useful to create a symbolic link from a folder/file to another place. This is specially useful when dealing with configuration files that are checked in a version control system like Git.
Thanks to Nikita Voloboev for his awesome my-mac-os
list, without it, this one wouldn't exist π
- Docker has issues with the default DNS provided with Windows 10, to set it to DNS.Watch's servers, follow this guide.