My Linux Environment
On this post i would like to tell you about my environment and experience of using linux system operations.
I have been using linux as my daily basis operating system for about 6 months from 2018. Actually i used to use windows-based operating system for about 8 years, from windows xp to seven to 8 to 8.1 and lastly windows 10. But in the middle year of 2016 i learned another operating system with *NIX based kernel called Linux. My first linux distro that i dual-booted to my disk is Ubuntu (i forgot the version of it). Since then i get used to using terminal and get rid all of the GUI-things and change to CLI and i feel more powerful at that time, and that is true because i am feeling just like hacker (LOL, all geeky kid dreams).
But then the problems is come, first, a lot of features of Windows are not available or not so powerful on Linux such as Microsoft Office. Second my laptop disk is cannot accommodate any other data because i use separate disk partition for linux. third, at that time i feel like i not so needed the linux operation as my daily OS. So i deleted all my disk's partition with linux os inside.
Back then when i started studying in university, i learned linux again at 4th semester in Network Security Class. at that class we use linux as operating system to protect the network and so on. I felt like i getting comfortable again with linux, so i installed it again on my disk. After a while i find and try many distros to fit my needs. I have try arch, manjaro, centos, ubuntu, and many other arch-based distros. I tried many distro because i always had facing some problems, such as the EFI issue, kernel issue, etc. Then until i found that debian-based ubuntu is more stable for my requirements. So i installed ubuntu at version 18.10 on my disk. In a month of usage, i have spent a lot of time using ubuntu distro rather than my windows OS. I started to install all my environment, i installed all my development apps, and use it on my daily basis. In another month i decide to remove all my disk's data and just install one operating system that i need, and i found the Pop_OS! the ubuntu-based distro for development. I download it and install to my disk as a primary and the only one operating system.
In my journey to find the best distro i always filled all my installed linux with the same environment. So i experienced with many plugins or theme-related apps on many distro. Right now i am using the Pop_OS! from system76, the official website says that the OS is focused for a developers. When i use it for a while, i find the feeling is the same like when i use ubuntu, until now i cannot find the different between them. They make some article to show the different between their OS and Ubuntu. But because it is stable and fit for my needs, i planning to get along with this distro.
My linux environment is basically a lot of style-related apps, because i find customizing the operating system and make it mine, can makes me happy. I change all the aspects in my linux to be different than the original. I trying subscribe to popular *NIX Desktop Art on reddit called /r/unixporn to find the inspiration about the theme and apps for theming the desktop of linux. I have tried to use many Desktop Environment like GNOME, OpenBox, i3-gaps, awesome, etc. I found i3-gaps is better DE for theming, but in my case when i use for development-usage the DE is not so comfortable to use and i rather to switch back to GNOME.
In linux there is a lot of desktop types. We called it DE or Desktop Environment. Maybe you have known about GNOME or Unity in ubuntu or Cinnamon in Linux Mint. But there is plenty of DE's that have different functionality. The main different of this DE's is the appearance, there is plenty of DE that has an ugly interface in first installation, but when it comes to the right hand, the DE will looks 180° more beautiful than than first install. So the DE here is more personal in case of appearance and functionality.
My choice of Desktop Environment right now is GNOME, i use it because of it simplicity when it comes to productivity aspects. GNOME are not so powerful if we talk about the appearance customization, but if you want, you can totally make GNOME more like yours. I have already use any other DE's before, like openbox, i like when i change the border style and the menu style, and i have using i3 / i3-gaps, i like when i change the color style and the bar style.
Back to my GNOME, i am use Gnome-Tweak-Tool to change all the aspects on my Desktop. below is the specification of my GNOME Desktop.
- Gnome-shell : Mojave Dark
- GTK Theme : Sierra Dark Solid
- Cursor : Pop
- Icon Theme : Numix Circle
- Gnome Extensions :
Terminal is where i use to call a command or scripts, in desktop like i3 or awesome or openbox etc using terminal is a must. because when we want to adjust something we need to use terminal to change the appearance and config. And down below is my environment in term of terminal. For terminal i am currently using Terminator, terminator is terminal that have ability to grid many terminal in one window. But i am not really using that function a lot, because i rather to use different window for different terminal console. Below is list of plugins inside my terminal.
- ZSH, Inside my terminal i am using ZSH as my shell console, i choose zsh because it have a lot of useful plugins terminal.
- oh-my-zsh, There is a zsh framework such as oh-my-zsh to add some aesthetic and convenience to my terminal.
- spaceship, zsh has a lot of themes from the community, and i use spaceship.
- zsh-syntax-highlighting, The other plugins i use is zsh-syntax-highlighting to add more colors on my terminal.
- terminator-themes, For theme of the terminal i use plugins from terminator-themes and right now i choose panda color scheme.
- Patched-Fonts, i am using patched Iosevka for my terminal
- Auto Rename Tag
- Auto Close Tag
- Code Spell Checker
- Color Highlight
- Rainbow Brackets
- SVG Viewer
- TODO Highlight
Another development apps i have install is Android Studio, but i never use it again since i learned react native to create mobile apps. But i still use android emulator from the Android Studio. Another Development app i use is NodeJS and for editing on terminal i use nano, but previously i have use neovim too.
For wallpaper i usually take it from Unsplash there is a lot of cool wallpapers/photos from a photographer. I basically choose wallpaper with minimalist look. From the people in /r/unixporn they said,
wallpaper is the bones of a desktop environment.
To create a configuration or customization we choose the color scheme from wallpaper and implement it to all the aspects of the desktop. And below is my wallpaper that i use right now.
I am doing so much game on my computer especially in windows, i play Dota2, CSGO, Stardew Valley, etc. But in linux i found playing a game is little bit difficult because the driver issue. I have experienced using NVIDIA driver in linux and it always in high performance, whether it is in high usage or not. So it affected my laptop battery life that drain so fast. But now when i am using Pop_OS! i am not found an issue anymore. So i installed steam again and play csgo on my linux.
My Linux environment is about my every day tools to help me use or work on my computer. i choose these bunch of environment is because it will simplify my usage and especially to add an a e s t h e t i c.
There are plenty of apps i use in my linux to add functionality and aesthetically and there is.
CCAT, i change my 'cat' command to print the text document on a terminal with ccat, ccat means Colored CAT, so the printed scripts will have different colors depends on it format.
Colorls, colorls is a ruby gem to change the 'ls' command on linux, 'ls' are use to print or look what inside a directory in terminal. basically colorls will print like how 'ls' works but their add an icon beside the directory/file name. and any other functionality
Neofetch, neofetch will print the system specification that show many information on terminal. (it can show your waifu photo)
Aurafetch, another cli system-information tool like neofetch but in more simple appearance.
Polybar, when using DE without the bar or panel polybar can used as the bar for DE like i3 or awesome.
ncmpcpp, ncmpcpp is music player running on terminal with special appearance and visualizations.
cava, cava can visualize the music in terminal.
mpsyt, when you want to play music from youtube video, you can use mpsyoutube or mpsyt to play just the audio from youtube video.
ranger, ranger is file manager that running on terminal.
if you want, you can lokk at my repo to see my customization scripts.