The purpose of this repository is to serve as a personal checklist to install and configure linux to my liking as fast possible.
Do keep in mind that I'm not a Linux expert or claim to be one, what I'm most looking for in a distro is ease of use and maintainability so it might not be what you're looking for.
I plan to maintain this repository for myself and update it over time as I change my personal config, learn and discover new things.
After initially writing this guide I've received suggestions and feedback that I would like to see incorporated. To achieve this without deviating too much from the main goal of the project (to serve as a personal checklist) these suggestions will be marked with an icon (👥) and may not be used by me personally.
If you'd also like to contribute to this repository in any way or suggest something feel free to do so by submitting an issue.
- Distro
- Pre-requisites
- Look
- Extensions
- Touchpad Gestures
- Albert
- Terminal
- Development
- Other Software
- Contributors
Pop!_OS 19.04 is my distro of choice, it's based on Ubuntu so you get good support from most mainstream apps (like Spotify and Discord) as well as the Ubuntu community, but it's lighter, faster and just a better experience overall. It also has an ISO with nvidea drivers pre packaged so you don't have to install them yourself and you can take advantage of Ubuntu PPAs. I found it to be a great experience out of the box even without the further customizations explained ahead and would recommend it to anyone wanting to try out Linux.
To start, clone this repository in your home directory (I clone it to a dot folder so it doesn't show up in file managers)
git clone https://github.com/Pipas/LinuxConfig .dotfiles
I use Gnome as my desktop environment, it comes built in with new versions of Ubuntu and I found it to work best for me.
A great piece of software to aid your customization of gnome is Gnome Tweak Tool
sudo apt install gnome-tweak-tool
Another helper to faster install themes from the gnome-look.org is OCS-url
.
Here are the themes that I use.
- material-black Blueberry by rtl88
- Arc Dark by wfpaisa 👥
- Paper by Sam Hewitt
- Numix Square by numixproject 👥
- Bibata by KaizIqbal
The fonts I use for my distro can be found in a fonts folder in this repo. To use them copy them to .fonts
mkdir ~/.fonts
cp ~/.dotfiles/fonts/* ~/.fonts
To set them use the Tweak Tool, here are the values I use:
- Interface Text - SFNS Display Bold 12
- Document Text - SFNS Display Regular 12
- Monospace Text - SF Mono Regular 13
- Legacy Window Titles - SFNS Display Bold 12
There are several Gnome extensions that make the experience much better and tweak the system to your liking. There are many to choose from at extensions.gnome.org and here are some of the ones I use.
-
User Themes - needed to change the default shell theme, as stated in all the comments should be enabled by default.
-
Dash to Dock - changes the gnome bar to a dock, highly customizable.
-
Alternate Tab - changes the alt-tab menu to show window previews and all windows separate.
-
OpenWeather - weather indicator on your top bar, useful to have at times, highly customizable.
-
system-monitor - displays system information in the top bar such as cpu, mem and network.
-
Remove App Menu - removes app menu from top bar to reduce clutter.
-
Hide Activities Button - hides the activities button.
-
KStatusNotifierItem - shows application icons in top bar.
-
GS Connect - connects with KDE Connect. 👥
If you're using Linux in a laptop with a modern touchpad enabling gestures is a no-brainer to increase productivity, I have achieved this with a program called libinput-gestures 👥.
They have installation instructions on their repo, after the installation is done you can use my personal config file by creating a symlink to it
ln -s ~/.dotfiles/libinput-gestures.conf ~/.config/libinput-gestures.conf
Albert is a desktop launcher for linux, it's simple, fast and it helps you get to what you want faster. I use Albert quite a lot and I have it bound to the windows (super) key on my keyboard.
To do this we first start with installing Albert, instructions on how to do it can be found here.
After albert is installed, open it and bind the Hotkey combination to ctrl + Space
.
Now we can bind the super key to that combination so when pressed it'll toggle Albert, first unbind the key in gnome
gsettings set org.gnome.mutter overlay-key ""
and then we'll use xcape to bind it.
First install xcape
sudo apt install xcape
Then you can add both
xcape -e 'Super_L=Control_L|space'
and
albert
to your Startup Applications
so they both run when you boot the system.
To properly install emoji in Linux, install the Noto font following these steps and then set font priority by following these steps.
My shell of choice is ZSH with the Spaceship prompt. The installation process for this is extremely easy since zplug handles most of it if you use my .zshrc
file.
First we need to install zsh (we'll also install the powerline and noto fonts needed for the prompt)
sudo apt install zsh powerline fonts-powerline fonts-noto
Now change the default shell to zsh
chsh -s $(which zsh)
Install zplug
curl -sL --proto-redir -all,https https://raw.githubusercontent.com/zplug/installer/master/installer.zsh | zsh
Create a symlink to the .zshrc
file
ln -s ~/.dotfiles/.zshrc ~/.zshrc
Finally logout to apply the changes.
When opening the terminal again you'll be prompted if you want to install missing plugins just press Y and wait. You'll get a pyenv error but I'll explain how to install pyenv in the next section.
or alternatively:
npm install -g spaceship-prompt
I use pyenv to manage python virtual environments and versions for all my python projects, it can easely be installed by using the pyenv-installer. Check the wiki to install the necessary dependencies for installing python versions.
I use nvm to manage npm environments and versions for all my npm projects, it can easily be installed by using curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
. 👥
docker and docker-compose 👥
If you are like me and you forget to copy your ssh keys every ...fucking ...time follow the links to check/generate/add new ones. 👥
-
TLP - Linux Advanced Power Management.
-
Spotify - Spotify client for linux.
-
Wavebox - App to access all of online accounts in one like e-mail, slack and calendar.
-
Discord - Voice chat for G A M E R S.
-
VLC - Free and open source cross-platform multimedia player and framework that plays most multimedia files.
-
Deluge - Lightweight, free and cross-platform BitTorrent client.
-
VS Code - Open source text editor with strong extension support.
-
Chromium - Open source distribution of the Google Chrome browser, great for web development.
-
CherryTree - A hierarchical note taking application, featuring rich text and syntax highlighting, storing data in a single xml or sqlite file. 👥
A big thanks to everyone that helped by either suggesting or contributing to this guide, you can find them and their projects here: