My Docs
My BlogPython Data StructuresRepoFamily-Promise-Docs
Copy of Web-Dev-Hub-Docs
Copy of Web-Dev-Hub-Docs
  • Home
  • Navigation
  • Tools
    • Tools
      • Docker
      • G-Cloud & Firebase
      • Heroku
    • Showcase
      • Utilities
      • Continued
        • Page 3:
    • Downloads
    • How To Configure Ubuntu
    • REPL.IT Compilations
      • Part 2
    • Past Notes
      • Command Line Reference
    • Git
    • JavaScript
      • Interview Problems
      • General JavaScript Notes
      • jQuery
      • NodeJS
        • Node argv
        • NPM
        • Express
          • ExpressJS Overview
          • Sequelize
      • Regex
      • React
        • React Examples:
        • Redux
        • Redux Docs
          • Redux Resources
        • React Notes
    • My Bash Commands
    • Resources
      • Hosted Resources
      • Everything
      • React Resources
  • Programming Languages
    • Programming Languages
      • File System
      • Basics
      • PSEUDO Programing Languages
        • HTML
      • CSS
      • List Of Programming Languages By Type
      • Tools-Of-The-Trade
        • Linux
        • Docker
      • Git
      • Python
        • Pydrive:
        • Practice
        • Pipenv
        • Untitled
      • Bash
        • SED
      • CHEATSHEETS
      • Java
      • Bash Script
        • SSH Cheatsheet
      • Html
      • Markdown
      • CSS
      • SCSS
      • C & C++
      • Ruby
      • SQL
        • PostgreSQL
    • What is a Programming Language?
  • Python
    • Python
    • Install PIP
  • JavaScript
    • JavaScript
      • Jquery
    • Writing Files
    • JS-Leetcode
  • Web Development Frameworks & Libraries
    • GRAPHQL
    • React
    • Jquery
      • Prac
    • GATSBY
      • Untitled
      • Building with Components
      • Plugins, Themes, & Starters
      • GraphQL Concepts
  • Productivity
    • Productivity
      • Awesome Productivity Tools for Back-to-School
  • Misc
    • Misc
      • Experiments
  • GitGateway
    • Links
    • Bookmarks
  • Websites
    • Websites
    • Not My Websites:
  • Backend
    • Backend
  • Networking
    • Networks
  • Resources
    • Resources
    • Video Resources
  • General Knowledge
    • General Knowledge
    • Knowledge Bank
  • Finance
    • Finance
    • Finance Reference
    • Financial Trends
  • Science & Tech (Innovation)
    • Science & Tech
    • Articles
  • Reading
    • Reading
  • Social Media & Trends
    • Trends In Web Dev
    • FB-Dev-Open Source
      • Content Publishing
    • IG-API
  • Docs
    • Docs
    • Refactoring Guide
  • Code Editors & Tools
    • Vscode
      • Vscode Docs
      • How To Speed Up Vscode
  • Cool Stuff
    • Cool Observable Notebooks
  • Server-Side
    • GraphQL
      • Intro
    • Rest VS GraphQl
    • REST-API
    • Public APIs
  • WEB_DEV_TOOLS
    • Web Dev Tools
    • Cloudinary
    • Postman
      • Creating an API
      • Trouble Shooting Postman
    • Netlify
      • Facebook Graph API
      • Pandoc
      • Graph API
      • Troubleshooting
      • Examples
      • HTTPS (SSL)
      • Open Authoring
      • Netlify CMS
      • Git Gateway
  • DS_ALGOS_BRAINTEASERS
    • A Quick Guide to Big-O Notation, Memoization, Tabulation, and Sorting Algorithms by Example
  • Free-Stuff
    • Free Stuff
  • Job-Search
    • Job Search
    • Outreach
  • General Comp Sci
    • Principles behind the Agile Manifesto
  • Blockchain & Crypto
    • Blockchain Basics
      • Basics:
  • Data Structures & Interviewing
    • Data Structures
  • REACT_REVISITED
    • Modern React with Redux
      • React-Projects
  • WEBDEV-Bootcamp-Notes
    • 🏫Lambda
      • 1.1 - User Interface and Git
      • Page 2
      • Page 1
      • Page 3
      • Page 4
      • Page 5
      • Page 6
      • Page 7
      • Page 8
      • Page 9
      • Page 10
      • Page 11
      • Page 12
      • Page 13
      • Page 14
      • Page 15
      • CS-Python-Notes
        • Python
  • testing
    • Testing:
      • Configure Jest for Testing JavaScript Applications
      • install, configure, and script Cypress for JavaScript web applications
      • Test React Components with Jest and `react-testing-library`
      • Use testing library to evaluate any framework...
  • Medium-articles
    • My Articles
      • Python For JS Developers
      • JavaScript Programmer
      • Awesome Web Development Youtube Video Archive
      • Bash Commands That Save Me Time and Frustration
      • Git-Tricks
      • scrap
      • Medium Article
      • Everything You Need To Know About Relational Databases, SQL, PostgreSQL and Sequelize To Build…
      • Machine Learner
      • Here’s the expanded list:
      • The Complete JavaScript Reference Guide
      • This is really cool!
      • Web Development Interview Part 3💻
      • Mutability And Reference VS Privative Types in JavaScript
      • React
      • Super Simple Intro To HTML
      • Introduction to React for Complete Beginners
      • Web Developer Resource List Part 2
      • Front End Interview Questions Part 2
      • A List Of Tools For Improvement
      • Github Repositories That Will Teach You How To Code For Free!
      • Libraries
      • Machine Learner
      • Here’s the expanded list:
      • The Complete JavaScript Reference Guide
  • 🖲️AI
    • Pytorch
      • Documentation
  • 🎙️Audio
    • Audio
  • Cheatsheets
    • Page 17
    • Page 16
Powered by GitBook
On this page
  • Let's move on to the installation.
  • Xorg and Xserver.
  • Installing X-Server (Xorg)
  • Choosing a Graphical Environment
  • Installing i3 and the Terminator Terminal Emulator:
  • Additional View Improvement Programs:
  • Command to Set Desktop Wallpaper:
  1. Tools

How To Configure Ubuntu

PreviousDownloadsNextREPL.IT Compilations

Last updated 3 years ago

In this article, I want to talk about the Linux operating system, and specifically about how to assemble a workstation from a minimal image and fully configure it for various purposes.

Choosing a distribution kit: I first saw this method when installing Arch Linux, when the entire installation is done by entering commands into the terminal. This gives the maximum installation flexibility, but I'm more used to using Ubuntu at work.

Earlier I collected various Linux images, since almost all the necessary programs were preinstalled and configured in them, and most importantly the graphical interface, but in the end, most of the programs had to be removed, which makes me do double the amount of work.

In this article, I will use Ubuntu as an example, since I have tried this method more than a dozen times and I remember most of the commands, package names, and so on.

Briefly about the approach. For this approach, I will use a minimal Ubuntu image or Ubuntu Mini. This is Ubuntu version 20.04, which is not the latest, but I think it will not be difficult to upgrade to the latest one already on the installed system if necessary. Although in the comments on Reddit, you can find that you need to use Ubuntu Server to install the minimum version, but I have not tried this option yet, since I use the old and proven one. I really like the fact that the image is less than 100 MB and uses the TUI installer.

If you are installing Linux for the first time, I recommend using the following guide on a virtual machine, and in general, it is a good practice to test the functionality of new operating systems.

Let's move on to the installation.

During the installation, I will only cover the main points, since when installing on a virtual machine you do not have to think too much about long-term use.

Start screen. We choose install.

We choose the language of the system. I recommend choosing English, later this can be changed if necessary.

We choose No. Configure the keyboard manually. Select in the following windows English (US), English (US).

We set a name for the computer. It should be noted that not all special characters are available.

Here we select the desired mirror for your or the nearest country for fast download. In the next window set proxy if needed.

Enter your full name and username on the next screen.

Now let's move on to the partitioning of the disk. For a virtual machine, you can use the entire disk, if you want, you can partition it in your own way. I will be using the entire disk.

This is how the entire disk markup looks. Then we are waiting for the installation of the base system.

On this screen, I recommend disabling automatic updates.

sudo apt install git curl wget htop -y

Xorg and Xserver.

Installing X-Server (Xorg)

sudo apt install xorg --no-install-recommends -y

Choosing a Graphical Environment

Installing i3 and the Terminator Terminal Emulator:

sudo apt install i3 terminator -y
sudo apt install sddm -y

Additional View Improvement Programs:

  • Conky is a desktop add-on that allows you to dynamically display various system metrics. It has a very fine configuration and various themes.

  • Feh is a console utility for viewing images, can also be used as an image installer on the desktop.

  • Compton is a lightweight compositing manager for the X graphics server based on xcompmgr-dana that allows you to add different animations and transparency to different windows.

Command to Set Desktop Wallpaper:

feh --bg-fil wallpaper.png

This guide shows that with minimal knowledge, you can collect various combinations of the Linux operating system environment according to your preferences, as well as customize and decorate them in various ways.

List of available and configured packages. Part 1. You can choose nothing here.

List of available packages. Part 2. As you can see, graphical environments are already available here. Spoiler alert: we will install manually the one that is not on the list.

Install GRUB bootloader by clicking Yes.

Installation completed. You can remove the image from the virtual machine.

First login. Be sure to export your virtual machine, this will allow you to roll back to a state where you have a clean system.

Now let's install an initial set of tools that can be useful for loading various scripts or repositories with programs:

Xorg is an X Window System server that allows the user to organize a graphical working environment for themselves.

The X.org project is created and maintained as a free and open-source implementation of the X11 system. And it is also an X11-based desktop framework.

Xorg provides the interface between your hardware and the graphics software you want to run. In addition, Xorg is network-aware, which allows you to run a program on one system and look at another.

There are a huge number of different graphical environments. There are 2 main types: Window managers and Tiling managers. The tiling manager is different in that it tries to occupy the maximum available screen area, and the floating mode (more familiar windows, you need to turn it on for each window). Moreover, by default, the tiling manager supports many desktops at once, which simplifies the work and allows you to switch between desktops instead of windows, in turn, on which there may be more than one window. Also, a significant advantage is the lightness of the tiling over the window manager.

The main window manager options are: KDE, XFCE, LXQT, GNOME (default Ubuntu Desktop Environment), Budgie, Deepin.

Tiling managers include i3, awesome, xmonad, Qtile, dwm.

I always look for interesting variations on where you can find very nice themes for the design and usually dotfiles (prepared settings).

For now, I'll choose the i3 as an example.

Before finishing, you need to install Display Manager. This is a graphical screen that appears at the end of the boot process instead of the standard command line prompt. The screen manager is a screen for entering a username and password to log in to the system. There are many screen managers, as well as desktop environments. Almost all display managers can be customized by changing their style and behavior.

I will focus on the sddm I am used to. But there is a huge selection: console and graphical. A good example of the former is Ly, graphical examples: sddm, lightdm, xdm, gdm.

Selecting the login window

How it looks after the actions are taken:

You can see that i3 uses only 240 MB RAM.

Reddit
image
image
image
Page cover image
image
image
image
image
image
image
image
image
image
image
image
image