cmc/cleberg.net

My personal web garden & blog.

clone: git clone https://gitbay.org/cmc/cleberg.net.git

main: content/blog/2020-05-19-customizing-ubuntu.org · raw

  1#+date:        [2020-05-19 Tue 00:00:00]
  2#+title:       Ubuntu GNOME Customization
  3#+description: Some tips and tricks to customize GNOME on Ubuntu 20.04.
  4#+slug:        customizing-ubuntu
  5#+filetags:    :linux:
  6
  7* More Information
  8
  9For inspiration on designing your *nix computer, check out the [[https://libredd.it/r/unixporn][r/unixporn]]
 10subreddit!
 11
 12* Customizing Ubuntu
 13
 14New to Linux and want to add a personal touch to your machine? One of the best
 15perks of Linux is that it is *extremely* customizable. You can change the styles
 16of the windows, shell (status bars/docks), icons, fonts, terminals, and more.
 17
 18In this post, I'm going to go through customization on Ubuntu 20.04 (GNOME)
 19since most new users tend to choose Ubuntu-based distros. If you've found a way
 20to install Arch with i3-gaps, I'm assuming you know how to find more advanced
 21tutorials out there on customizations.
 22
 23** Required Tools
 24
 25Ubuntu 20.04 ships with the default desktop environment [[https://www.gnome.org/][Gnome]], which includes
 26the handy =gnome-tweaks= tool to quickly change designs. To install this, just
 27open your terminal and enter the following command:
 28
 29#+begin_src sh
 30sudo apt install gnome-tweaks
 31#+end_src
 32
 33After you've finished installing the tool, simply launch the Tweaks application,
 34and you'll be able to access the various customization options available by
 35default on Ubuntu. You might even like some of the pre-installed options.
 36
 37** GNOME Application Themes
 38
 39To change the themes applied to applications in GNOME, you will need to change
 40the Applications drop-down in the Appearance section of Tweaks. To add more
 41themes, you will have to find your preferred theme online and follow the steps
 42below to have it show up in the Tweaks tool. While you may find themes anywhere,
 43one of the most popular sites for GNOME themes is [[https://www.gnome-look.org/][gnome-look.org]]. This website
 44contains themes for applications, shells, icons, and cursors.
 45
 46Steps to import themes into Tweaks:
 47
 481. Download the theme.
 492. These files are usually compressed (.zip, .tar.gz, .tar.xz), so you will need
 50   to extract the contents. This is easiest when opening the file explorer,
 51   right-clicking the compressed file, and choosing "Extract here."
 523. Move the theme folder to =/usr/share/themes/=. You can do so with the
 53   following command: =sudo mv theme-folder/ /usr/share/themes/=.
 54   - Icons and cursors will be moved to the =/usr/share/icons/= folder.
 55   - Fonts will be moved to the =/usr/share/fonts/= folder Alternatively, you
 56     can move them to the =/usr/share/fonts/opentype/= or
 57     =/usr/share/fonts/opentype/= folders, if you have a specific font type.
 584. Close tweaks if it is open. Re-open Tweaks and your new theme will be
 59   available in the Applications drop-down in the Appearance section of Tweaks.
 60
 61If the theme is not showing up after you've moved it into the themes folder, you
 62may have uncompressed the folder into a sub-folder. You can check this by
 63entering the theme folder and listing the contents:
 64
 65#+begin_src sh
 66cd /usr/share/themes/Mojave-Dark && ls -la
 67#+end_src
 68
 69This is an example of what the contents of your theme folder should look like.
 70If you just see another folder there, you should move that folder up into the
 71=/usr/share/themes/= folder.
 72
 73#+begin_src sh
 74cinnamon COPYING gnome-shell gtk-2.0 gtk-3.0 index.theme metacity-1 plank xfwm4
 75#+end_src
 76
 77** GNOME Shell Themes
 78
 79To change the appearance of the title bar, default dock, app menu, and other
 80parts of the GNOME shell, you'll need to install the [[https://extensions.gnome.org/extension/19/user-themes/][user themes]] extension on
 81[[https://extensions.gnome.org/][Gnome Extensions]]. To be able to install extensions, you will first need to
 82install the browser extension that the website instructs you to. See this
 83screenshot for the blue box with a link to the extension.
 84
 85After the browser extension is installed, you will need to install the native
 86host connector:
 87
 88#+begin_src sh
 89sudo apt install chrome-gnome-shell
 90#+end_src
 91
 92Finally, you can go the [[https://extensions.gnome.org/extension/19/user-themes/][user themes]] extension page and click the installation
 93button. This will enable the Shell option in Tweaks. Now you can move shell
 94themes to the =/usr/share/themes= directory, using the same steps mentioned in
 95the previous section, and enable the new theme in Tweaks.
 96
 97** Icons & Cursors
 98
 99Icons and cursors are installed exactly the same way, so I'm grouping these
100together in this post. Both of these items will need to follow the same process
101as installing themes, except you will want to move your font folders to the
102=/usr/share/icons/= directory instead.
103
104** Fonts
105
106Fonts are one of the overlooked parts of customization, but a good font can make
107the whole screen look different. For example, I have installed the [[https://github.com/IBM/plex/releases][IBM Plex]]
108fonts on my system. This follows the same process as installing themes, except
109you will want to move your font folders to the =/usr/share/fonts/= directory
110instead.
111
112** Terminal
113
114If you spend a lot of time typing commands, you know how important the style and
115functionality of the terminal is. After spending a lot of time using the default
116GNOME terminal with [[https://en.wikipedia.org/wiki/Bash_(Unix_shell)][unix shell]], I decided to try some different options. I ended
117up choosing [[https://terminator-gtk3.readthedocs.io/en/latest/][Terminator]] with [[https://en.wikipedia.org/wiki/Z_shell][zsh]] (Z Shell).
118
119Terminator is great if you need to open multiple terminals at one time by simply
120right-clicking and splitting the screen into as many terminals as you want.
121While this project hasn't been updated in a while, [[https://github.com/gnome-terminator/terminator/issues/1][it is coming under new
122development]]. However, this terminal is great and I haven't experienced any
123errors yet.
124
125For the shell choice, I decided to choose zsh after trying it out on a fresh
126Manjaro installation. Zsh is great if you like to change the themes of your
127terminal, include icons, or add plugins.
128
129The desktop uses the [[https://github.com/zsh-users/zsh-autosuggestions][zsh-autosuggestions]] to suggest past commands as you type.
130In addition, it suggests corrections if you misspell a command. Lastly, it uses
131the =af-magic= theme, which adds dashed lines between commands, moving the
132user@host tag to the right side of the terminal, and changes the colors. There
133are plenty of plugins and themes to choose from. Just figure out what you like
134and add it to your =~/.zshrc= file!
135
136*** Steps to Replicate My Terminal
137
138To install zsh on Ubuntu, enter the following command into a terminal:
139
140#+begin_src sh
141sudo apt install zsh
142#+end_src
143
144Then, enter the next command to activate zsh:
145
146#+begin_src sh
147sudo chsh -s $(which zsh) $(whoami)
148#+end_src
149
150To install Terminator on Ubuntu:
151
152#+begin_src sh
153sudo apt install terminator
154#+end_src
155
156To install Oh My Zsh on Ubuntu:
157
158#+begin_src sh
159sh -c "$(curl -fsSL
160https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
161#+end_src
162
163To install zsh-autosuggestions via Oh My Zsh:
164
165#+begin_src sh
166git clone https://github.com/zsh-users/zsh-autosuggestions
167${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
168#+end_src
169
170Then, add the following plugin wording to your =~/.zshrc= file (the default
171config usually has the =git= plugin activated, so just add any other plugins to
172the parentheses separated by a space):
173
174#+begin_src sh
175nano ~/.zshrc
176#+end_src
177
178#+begin_src sh
179plugins=(git zsh-autosuggestions)
180#+end_src
181
182Finally, you need to log out of your computer and log back in so your user shell
183can refresh.