This blog is really a crutch for me to remember how I like to setup my Ubuntu desktop for development work. I recently got a new laptop and had to go through the process again of setting it up the way I like. I decided to capture some of those notes here to hopefully benefit others as well.
In this blog, I don’t cover things like installing SDK’s, runtimes (.NET, Java, Docker), etc. The online docs for those are very clear and consistent. This blog covers just some base installation and configuration I like. From there, I install the SDK’s and tools that I need.
Everything below should work for Ubuntu 18.04 and newer. My most recent installation and setup of Ubuntu Desktop was done using Ubuntu 21.10.
The first thing I like to do is install a fresh image of Ubuntu on my laptop. To do this, I download the latest Ubuntu Desktop ISO and then create a bootable USB stick from which I can boot my laptop with to install Ubuntu. I always choose the option to erase the disk when installing. I also select the minimal installation option and add tools/apps I decide I need later.
Install and configure Git
Below are the steps I use to setup Git. More details and options are available in the online documentation.
1 2 3 4 5 6 7 # Install Git sudo apt install git # Configure Git git config --global user.name "Rick Rainey" git config --global user.email "firstname.lastname@example.org" git config --global credential.helper store
Install and configure zsh
Zsh is my terminal shell of choice and I really like the enhancements that Oh My Zsh offers. Below are the steps I use to install and configure this.
1 2 # Install Zsh sudo apt install zsh
Then, navigate to Oh My Zsh and click the install button. After installing and rebooting, check that the default shell is
echo $SHELL and verify the output is
Next, configure the theme.
1 sudo apt install fonts-powerline
~/.zshrc and set
agnoster. Finally, reboot the system.
Install and configure xRDP
xRDP is a package that enables remote desktop connections into an Ubuntu Desktop from a Windows machine. You might be wondering why I would install this. Well, I do this for a couple of reasons:
- I prefer to keep my Ubuntu laptop as lightweight as possible and only use it for software development. So, I only install the tools I need to do my software development work - no office applications, etc.
- I have a Windows laptop at my desk that, for most days of the week, is the machine my hands are primarily on. It is attached to a docking station which is attached to 2 larger monitors. This Windows laptop has all my office tools (Outlook, Office, Teams, etc) that I use for meetings and communication during the day. It also has everything I need to connect back to the corporate network at Microsoft for internal line-of-business apps. So, what I’ve found works well for me is to have my Ubuntu laptop sitting next to my Windows laptop that is on the docking station. Then, I remote desktop into my Ubuntu laptop from the Windows laptop (docked), and dedicate one of my large monitors to that remote desktop session. When I’m doing my development work, I simply shift my attention to the monitor dedicated to the remote desktop session into my Ubuntu laptop. When I need to jump on a Teams call or respond to email, I shift my attention to one of the other monitors.
So, that is my motivation for installing xRDP on my Ubuntu laptop. Now, simply installing the
xrdp package is not sufficient to achieving a great user experience. After you install
xrdp, you will have to apply some additional configuration changes to address things like, authentication challenges for color profiles, authentication challenges to refresh system repositories, and fixing theme inconsistencies experienced from remote sessions, and more. Over the years, I have relied on the great blogs from c-nergy.be to resolve these issues. While these manual configuration changes are awesome, these folks did one better and have created an xRDP installation script to do all of this for you! In my recent Ubuntu laptop build I used it and it was simply amazing. In just about 2 mins, I had everything setup without having to do any additional configuration.
To setup xRDP, just run the setup script as described in this blog:
Install and configure VS Code
The docs for VS Code have guidance on how to install VS Code on Linux/Ubuntu. However, I just install it using the Ubuntu Software app.
A few settings and extensions I like to have setup right away are shown below.
Preferences -> Settings
1 2 3 4 window.zoomLevel: 1 editor.renderWhitepsace: "all" git.enableSmartCommit: true Telemetry.telemetryLevel: off
The extensions below are just the base set of extensions I like to have. Other extensions for languages such as C#, Java, Terraform, Docker, etc. are not listed here.
My blog runs on GitHub pages and therefore I use Jekyll locally to develop and test my blog posts.
For reference, instructions to install Jekyll are here.
1 2 3 4 5 6 7 8 9 10 11 # Install Ruby and pre-requisites sudo apt-get install ruby-full build-essential zlib1g-dev # Configure gem installation path echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc echo 'export GEM_HOME="$HOME/gems"' >> ~/.bashrc echo 'export PATH="$HOME/gems/bin:$PATH"' >> ~/.bashrc source ~/.bashrc # Install Jekyll and Bundler sudo gem install jekyll bundler
Next, clone the blog repo from GitHub and run the following command in the root of the repo.
1 2 # Update gem dependencies for blog sudo bundle update
To test the site locally run the following command:
1 bundle exec jekyll serve
Additional installation options are described here, but the command below is all that’s needed to install.
1 sudo snap install postman
1 sudo snap install drawio
1 sudo apt install net-tools