Home
My Personal Laptop Setup
This post describes how I setup my personal laptop. To just view the list of applications I use, visit My Personal and Development Configuration page.
The use my personal laptop for few things at home
- Personal Home Management Tool - Keeping track of tasks, accounting, preparing documents, investigating about various chores, etc.
- Personal Home Entertainment System - We do not have a separate T.V. at home. Any entertainment we want to view is via this personal compute and a big monitor.
- Development Machine - Used for our personal tech projects. Both me and my wife has our own login and we code and build stuff.
OS installation
I use Ubuntu as the operating system. During the installation go for advanced option in-order to select the preferred partition. Here is the partitions I use in Ubuntu.
- 128 Gb for
root(/) - 1 Gb for
/boot - 32 Gb for
swap(equal to the RAM size - can be less if need be) - Rest is reserved for
/home
Software Installations
- Register the OS installation in the UbuntuPro
- Install Vivaldi web browser
- Install it via App Center.
- Make Vivaldi default browser - Settings > Apps > Default Apps > Web (set to Vivaldi)
- Login to Vivaldi - in-order to carry forward the configurations, setting, recover tabs if needed
- I use Crystal Blue as light theme
- I use Western Ghats as dark theme
- Install following extensions
- Install ghostty terminal
- Set
zshas the default shell- Install
zshshell if it is not already installed. Here is a reference for steps- Verify if present
which zsh echo $0should output/usr/bin/zsh- Install zsh
sudo apt install zsh - change to zsh shell -
chsh -s $(which zsh)
- Verify if present
- Install
- Install build essentials
- Essentials for other packages -
sudo apt install build-essential libssl-dev libreadline-dev libyaml-dev libffi-dev - Install Rust Language - https://rust-lang.org/tools/install/
- Install Go Language from the App Center
- Install Mise(mise-en-place) from App Center to manage - node, npm, node, python and ruby
- add
eval "$(mise activate zsh)"to~/zshrcfile if not added automatically - Install node -
mise use -g node - Install npm -
mise use -g npm - Install pnpm -
mise use -g pnpm - Install ruby -
mise use -g ruby - Install python -
mise use -g python
- add
- Install
curl-sudo apt-get install curl. Do not use snap for this as it has some issues for later zellij and rust installation.
- Essentials for other packages -
- Install Git and configure Github
- Git Installation -
sudo apt install git-all - Setup up git global parameters
git config --global user.email "harsha.kadekar@gmail.com"git config --global user.name "Harsha Kadekar"
- Configure Github to operated with the current laptop ssh keys.
- Generate new ssh keys -
ssh-keygen -t ed25519 -C "harsha.kadekar@gmail.com" - Add the key to the Github profile
- Generate new ssh keys -
- Git Installation -
- Install Terminal enhancers
- Install oh-my-zsh
- Install plug-ins of oh-my-zsh
- zsh-autosuggestions install via oh-my-zsh (git cloning)
- zsh-syntax-highlighting install via oh-my-zsh (git cloning)
- Install Zellij
- Install via cargo -
cargo install --locked zellij - Copy the configuration as mentioned in README file.
- Add
alias zellij="zellij -l welcome"to~/.zshrcfile
- Install via cargo -
- Install htop - enhanced top
- Install via App Center.
- Install Yazi - terminal file manager
- Install via App Center.
- Install editors and IDE
- Install helix terminal editor
- Install via App Center
- Install NeoVim
- Install Zed editor
- Add
export PATH=$HOME/.local/bin:$PATHto~/.zshrcfile
- Add
- Install Jetbrains IDE
- Install toolbox via
.tar.gzfile. Extract and run the script (follow readme inside). - Install following IDEs
- Idea
- RustRover
- Pycharm
- Getway
- Install toolbox via
- Install helix terminal editor
- Create a folder
workspacefoldermkdir $HOME/workspace
- Install Obsidian
- Install by downloading the
.debfile (do not install via snap/App center - it has issues with the Obsidian Web Clipper browser extension) - Clone the Obsidian Vault from Github Repository at location
$HOME/workspace - Setup Obsidian as mentioned in this blog post (ToDo://add obsidian setup post link)
- Install by downloading the
- Install KeePassXC
- Install via App Center
- Install Claude Code
- Login
- Set-up claude (ToDo:// add personal claude code setup post link)
- Pull In Fusion Rss Feed Reader
./scripts.sh build- Copy over the
fusiondb andenvconfig file from the cloud drive tobuildfolder
- Install Spotify
- Install via App Center
- Install Arattai
- Add ಕನ್ನಡ (Kannada) Language Support in Ubuntu
- In
Language Supportadd ಕನ್ನಡ - In Settings > Keyboard > Input Sources add
Kannada (KaGaPa, phonetic)
- In
- Some Repositories I use often
- My blog - https://github.com/harsha-kadekar/harsha-kadekar.github.io
- Git clone the repository at location
$HOME/workspace - In the repository folder, execute
bundle install - Add this alias
alias dry-run-blog="bundle exec jekyll serve"in~/.zshrcfile. - In the repository folder, execute
dry-run-blogto verify the blog gets hosted inlocalhost
- Git clone the repository at location
- Obsidian To Github Pages Converter - https://github.com/harsha-kadekar/ObsidianToGithubPages
- Git clone the repository at location
$HOME/workspace - Install dependencies as mentioned in the README file
- Add this alias
alias transform-to-blog='/home/harsha/workspace/ObsidianToGithubPages/obsidian_to_githubpages.py --obsidian_local_vault "/home/harsha/workspace/pusthaka" --github_pages_repo_local "/home/harsha/workspace/harsha-kadekar.github.io" --blog_folder "Blog"'in~/.zshrcfile - Execute
tranform-to-blogcommand to verify it is working
- Git clone the repository at location
- My blog - https://github.com/harsha-kadekar/harsha-kadekar.github.io
- Install StayFree
- Install StayFree in linux
- Connect to the App
- Install StayFree web browser extension
- Connect to the App
- Install StayFree in linux
- Install Secondary Softwares (Optional)
Configure Wife User
We want to have separate users but also a shared folder to exchange date between us. Claude helped me to come up with these steps
- Create user
sudo adduser anu - Add
anuto sudo groupsudo usermod -aG sudo harsha- Log In to
anuuser and change tozshshell - Log Off & Log In to
harshauser
- Log In to
- Create
kadekargroup -sudo groupadd kadekar - Add users to the
kadekargroupsudo usermod -aG kadekar harshasudo usermod -aG kadekar anu
- Create a shared folder in
/homesudo mkdir /home/sharedsudo chown root:kadekar /home/sharedsudo chmod 2770 /home/shared
- Set
unmaskin shell profiles to make sure both of us create files having permission forkadekargroup.echo "umask 002" | sudo tee -a /home/harsha/.zshrcecho "umask 002" | sudo tee -a /home/anu/.zshrc
- Create symlinks for the shared folder within our home directories
ln -s /home/shared ~/sharedsudo -u anu ln -s /home/shared /home/anu/shared