# How I Customised My Pop!_OS

## Why I chose Pop!\_os?

* Pop!\_OS is a Linux distribution on top of Ubuntu. So, you get all the benefits of using Ubuntu and it\`s well-maintained.
    
* No Snap garbage (.deb or flatpak only).
    
* Built-in tiling window manager features.
    
* Better implementation of Gnome 3.
    
* Provides an AMD iso and a separate nVidia ISO with no video driver setup needed.
    
* More hardware support, especially newer devices as System76 sells hardware with Pop installed.
    
* Probably more.... so there is no reason to use Ubuntu over Pop!\_OS
    

After I installed Pop!\_OS I spent some time to customize it, so let me show you what I was able to do.

## Install Gnome Tweaks Tool

The gnome tweaks tool gives you additional configuration, and first of all, add minimize and maximize buttons.

```bash
sudo apt install gnome-tweak-tool
```

then open the tweak tool and make the changes.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1695062360444/e78ae009-cb6e-44bb-80aa-0586375c02d3.png align="center")

## Install the GNOME Shell integration extension for Google Chrome or Mozilla Firefox

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1695062706150/cf91c0a8-9682-4edd-81cf-d29416f041fa.png align="center")

Now open it and install all the apps you want.

This is my list of apps.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1695062758220/c781a147-6a94-4e43-8dcf-0135b99e62eb.png align="center")

* [Dash To Dock](https://extensions.gnome.org/extension/307/dash-to-dock/)
    
    A dock for the Gnome Shell. This extension moves the dash out of the overview transforming it into a dock for an easier launching of applications and a faster switching between windows and desktops. Side and bottom placement options are available.
    
* [Hide Top Bar](https://extensions.gnome.org/extension/545/hide-top-bar/)
    
    Hides the top bar, except in the overview. However, there is an option to show the panel whenever the mouse pointer approaches the edge of the screen. And if "intelligible" is enabled, the panel only hides when a window takes the space.
    
* [Transparent Top Panel](https://extensions.gnome.org/extension/2878/transparent-top-panel/)
    
    The transparent top panel in the Overview. Also adds drop shadows to text and icons for those using GS 3.38.
    
* [Tweaks & Extensions in the System Menu](https://extensions.gnome.org/extension/1653/tweaks-in-system-menu/)
    
    Put Gnome Tweaks and Extensions (on Shell 40 and later) in the System menu.
    
* [Sound Input & Output Device Chooser](https://extensions.gnome.org/extension/906/sound-output-device-chooser/)
    
    Shows a list of sound output and input devices (similar to gnome sound settings) in the status menu below the volume slider. Various active ports like HDMI, Speakers etc. of the same device are also displayed for selection. V20+ needs Python as a dependency. If you want to continue with the old method without Python, use options to switch off New Port identification. But it works with only English.
    
* [Toggle Night Light](https://extensions.gnome.org/extension/3933/toggle-night-light/)
    
    This extension lets you toggle the night light from the top bar by clicking it.
    
* [Vitals](https://extensions.gnome.org/extension/1460/vitals/)
    
    A glimpse into your computer's temperature, voltage, fan speed, memory usage, processor load, system resources, network speed and storage stats. This is a one-stop shop to monitor all of your vital sensors. Uses asynchronous polling to provide a smooth user experience.
    

## Customize the Terminal

![]( align="center")

The default Terminal language is bash but I'll change it to zsh .

Bash and zsh are almost identical which is a relief. Navigation is the same between the two.

The commands you learned for bash will also work in zsh although they may function differently on output.

Zsh seems to be much more customizable than bash. I’ll now run through a few features and how they differ in each.

Auto-completion Auto-correction Plug-in support.

### Setup

#### **Install ZSH**

```bash
sudo apt install zsh
```

#### **Set default shell to ZSH**

After the installation is complete, it automatically selects ZSH as the default shell.

You can use the following command to check the current shel echo $SHELL.

In case your default shell is not ZSH, then run the following command to make it default:

```bash
chsh -s $(which zsh)
```

Might need to logout or restart to take effect. (If that didn't work,install oh-my-zsh, which has a script that defaults zsh.)

#### **Install and configure the oh-my-zsh**

```bash
sudo apt install curl 

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
```

Oh-my-zsh is now installed on the system, and the Z shell has been configured for utilizing the oh-my-zsh framework with the default configuration.

#### **Change Default Theme!**

The Oh-my-zsh framework provides many themes for your ZSH shell.

You can go to the themes directory and see the list of available themes.

```bash
cd ~/.oh-my-zsh/themes/

ls -a
```

To change the default theme, we need to edit the .zshrc configuration file. Let's open it in the nano editor:

```bash
nano ~/.zshrc
```

Let's say we want to use the theme candy. Then change the ZSH\_THEME with candy theme as below.

```bash
ZSH_THEME="candy"
```

Save and exit. And reopen your terminal.

### My favourite ZSH theme is PowerLevel10k

Install Powerlevel10k using the following command:

```bash
git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k
```

Then you need to enable it, and change the value of ZSH\_THEME to the following in the ~/.zshrc file :

```bash
ZSH_THEME="powerlevel10k/powerlevel10k"
```

Configure the Powerlevel10k Theme or just restore the terminal.

```bash
p10k configure
```

### Plugins (Optional, Good to have!)

```bash
git clone https://github.com/zsh-users/zsh-syntax-highlighting ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
```

Activate the plugins In the ~/.zshrc file replace the line starting with plugins=() to the below line.

```bash
plugins=( git zsh-syntax-highlighting zsh-autosuggestions )
```

Stay Tuned for more !!!
