Linux++ (March 8, 2020)
By: Eric Londo
Tags: Computers, Technology News, Technology, Computer Science, Linux

Linux++ (March 8, 2020)

Hello and welcome to the seventh edition of Linux++, a weekly dive into the major topics, events, and headlines throughout the Linux world. This issue covers the week starting Monday, March 2, 2020 and ending Sunday, March 8, 2020.

This is not meant to be a deep dive into the different topics, but more like a curated selection of what I find most interesting each week with links provided to delve into the material as much as your heart desires.

If you missed the last report, Issue 5 from March 1, 2020, you can find it here. You can also find all of the issues posted on the official Linux++ Twitter account here or follow the Linux++ publication on Medium here.

In addition, there is a Telegram group dedicated to the readers and anyone else interested in discussion about the newest updates in the GNU/Linux world available to join here.

There is a lot to cover so let’s dive right in!

Table of Contents

Personal News

Linux Community News

Community Voice

Explore the Linux System

Linux Desktop Setup of the Week

Personal News

If you don’t care what I’ve been up to over the past week, feel free to skip ahead to the Community News section :)

Looking Toward the Future: Linux++

The last two months that I have spent writing about technology, and Linux in particular, have been so extraordinarily fun, engaging, and just pure awesome that I don’t imagine the train will be slowing down anytime soon. Actually becoming involved and vocal in this wonderful community has been so rewarding in a multitude of ways and the people that I’ve connected with have really helped me along and encouraged me to no end.

When I decided to start writing about technology and GNU/Linux, I never imagined the kind of support and interest that I would receive in such a short amount of time. It is honestly baffling, exciting, and extremely humbling. So, I want to start out with saying thank YOU for being the awesome, diverse, and passionate community that you are. It makes writing so much easier to know that there are people on the same wavelength.

I hear and appreciate your feedback and acknowledge it however I can. I am extremely thankful for it because it is truly the only way to continue to push Linux++ to become the best that it can be.

With that said and the help of some amazing folks who have been so encouraging to me and willing to help improve the Linux++ publication, I am extremely happy to announce that I will very soon have an alternative platform to distribute my articles. Now, I will continue publishing the articles to Medium for those who are already following me here and have their feed set up, but for the vast majority of those that don’t, an alternative should be extremely welcome.

I can’t tell you much more than that right now because it’s still in heavy development so exact dates and such may change, but I will definitely keep you informed to the best of my ability. So be sure to keep tuned in…or whatever.

As always, thank you so much for the continued support. It means the world to me!

Back to Table of Contents

Learning How to Rust

The Rust Programming Language Logo. (Credit: wallup.net)

For quite a while I’ve been interested in systems programming, but haven’t really found an unbounded love for C or C++. Don’t get me wrong, they are both incredibly powerful languages that you can do practically anything with, but they’ve always seemed a bit strange to me, personally.

So, for the most part, I have stuck with higher-level languages like Python, Perl, and Chapel to get the type of work I do done (environmental contamination trend analysis, mostly) and drop into C for only the most performance critical pieces. However, this is becoming even less prominent with libraries like Cython, Numba, and Dask available to directly speed Python up without having to write a line of C code. Python is heavily integrated with the main tool that I use in my job, Esri’s ArcGIS Desktop, so much of the time it only makes sense to keep everything in that language, especially with the aforementioned performance-enhancing libraries.

However, I’ve always been enamored with systems level programming. I’m becoming more and more interested in UI/UX engineering and design as of late. Now, it is true that many of the most popular frameworks like Qt or GTK provide Python wrappers for building GUIs, but so many of the large applications are written in C or C++ due to the performance benefits and low-level control.

Consequently, trying to find a balance between speed and human readable syntax led me to find the Crystal programming language, which offers systems level speed with syntax that is extremely reminiscent of Ruby. However, in it’s current state, Crystal is still pre-1.0, which means that breaking changes can (and do) happen while they are still stabilizing the language. In addition, features such as full parallelism and even Windows support are still not completely functional, rendering using it in a critical application at this time useless due to all the overhead.

The Crystal programming language. (Credit: crystal-lang.org)

Now, one day I would love to see Crystal become more prolific, I think there are a ton of incredible use cases for it and could attract more people to the language to contribute. In fact, there is already a functioning POSIX-like operating system built in (mostly) Crystal called Lilith, which is pretty cool!

However, much of the systems programming is moving to a different up-and-coming language called Rust out of Mozilla Research. Rust is not only used extensively in the FireFox web browser, but also commands massive sponsors like Microsoft Azure and Amazon Web Services. There are over 162 companies currently using Rust in production on critical applications at the time of this writing including Dropbox, Parity Technologies, and my personal favorite, System76. Both GUI toolkits, Qt and GTK, have support for Rust and it is quickly becoming a favorite for newer (and veteran!) developers pursuing systems programming.

System76 uses an incredible amount of Rust in their code base! (Credit: system76.com)

When I first discovered Rust back in 2016, I thought that it seemed like a much more complex version of C. Sure, the advantages of using Rust like memory safety and thread safety, along with higher-level language constructs like pattern matching and type inference were undeniable. However, it seemed impossible to truly learn the language and had me confused why so many developers had rated it as their most loved language consistently in the annual Stack Overflow Developer Survey.

So, finally, with my dive into Qt and GTK development, I have decided to dedicate myself to learning and utilizing Rust as much as I can. And I have to say, over the month or so that I’ve been learning it, I’m starting to see why it commands such high praise. It truly is an incredible programming language and the fact that so many highly-respected developers have commented that Rust is the future of systems programming is becoming clearer by the day. Without a doubt, it is very nice to get a small taste of that future.

Playing around with GTK bindings for Rust.

If you would like to check out Rust, I highly recommend visiting their official website here. In addition, if you would like to start learning the basics, check out the officially sponsored book, The Rust Programming Language. You can buy a physical copy of the book, but it is also available for free online here.

Happy learning!

Back to Table of Contents

Community News

System76 Reveals Colorful Thelio Design & Pop Shell!

Custom Pop!_OS Wallpaper by System76. (Credit: system76.com)

If you are a massive Linux fan, then the Denver-based System76 is likely at the forefront of your list for a new computer. The company has had a massive rise in exposure due to the quality products they make and release, their unique and fun take on computing (and life in general!), and their immersive involvement within the greater Linux community. However, if you’re looking for a powerful desktop computer from System76, there is but one choice.

The Thelio Project from System76 is one of the coolest open hardware systems on the planet (and beyond!). With a major announcement of integrated AMD processors last month, the Thelio project is turning the Linux world on it’s head. You see, many in the Linux community have put the full weight of their support behind AMD as of late due to their decision to open source their drivers for better integration with the Linux kernel and the fact that they have been producing some extremely high-quality chips.

An army of Thelios! (Credit: system76.com)

However, it can be difficult to find high-powered machines with dedicated AMD chips in them if you don’t know where to look due to the fact that Intel and NVIDIA absolutely dominate the marketing for gaming and development systems. So, with one of the most popular Linux-dedicated companies making AMD a first-class citizen, a large cheer could be heard ‘round the cosmos.

This week, however, System76 released a peek into some new, purely cosmetic designs for their Thelio desktop computer. One look at the Thelio and you’ll find it aims for a very Colorado vibe with unique wood paneling that wouldn’t look out of place in a beautiful mountaintop cabin. Very classy, indeed!

System76 has released options on their Thelio systems for dyed wood in colors such as blue, red, and black. Though this will have little effect on the performance of your machine, it sure is intriguing and delightful to look at!

A new look for the Thelio desktop! (Credit: @Linux4Everyone on twitter.com)

In other news, it has been confirmed by System76 that a new tiling window feature extension, Pop Shell, will be shipped with the upcoming 20.04 LTS release of their Ubuntu-based Pop!_OS distribution. Of course, this is an exciting feature for power users or fans of tiling window managers.

Yes, System76 also develops their own Linux distribution, Pop!_OS. (Credit: system76.com)

In fact, it has been mentioned that the functionality of the Pop Shell will be similar in effect to using GNOME 3 and the i3 window manager in conjunction (check out Regolith if you’re interested in an excellent implementation of the combination). This comes alongside a number of improvements with GNOME Shell 3.36 that were in part worked on by Canonical, Red Hat, and System76 employees along with the GNOME Team.

Some members of the Pop!_OS team at System76 were recently on the Linux Unplugged podcast to describe the Pop Shell and why they are implementing such an extension. Of course, as with most things that System76 puts time and effort into, this is another request from the community that the Linux-first computer manufacture has taken into account and allocated resources to. Moreover, another fun fact: many employees at System76 also use a tiling window manager of some sort on their machines.

If you would like to check out the code for the Pop Shell, you can find it in the Pop!_OS Github repository here.

If you would like to learn more about the Pop Shell, check out the episode of Linux Unplugged linked below. Be forewarned, there is quite a bit of macOS talk in the beginning of this episode, so cover your ears to be safe ;)

Back to Table of Contents

Zorin OS 15.2 Released

There is no doubt that Zorin OS has risen in popularity considerably over the past few years, however, with the 15.0 release, they have reached a whole new tier.

The developers behind the Ubuntu-based, Zorin OS, have marketed their product as a simple to use alternative to macOS and Windows with different layouts that resemble each of the proprietary operating systems to help new users with transitioning.

In nine months since the release of Zorin OS 15, the team has had almost a million downloads and two-thirds of those came from macOS or Windows users, which shows that the distribution has done a very good job at reaching their target audience.

With large, ambitious projects like Zorin Grid on the horizon, it appears that the Zorin team is only ramping up for future growth, which brings us to the latest news in the Zorin world.

This week, Zorin OS 15.2 was released, introducing some paper-cut fixes as well as major improvements.

Some areas that Zorin is focusing on include creating stronger security for the OS as well as better hardware compatibility. Zorin has moved to an updated Linux kernel 5.3 and all of the security patches that come with it. In addition, hardware support for AMD Navi GPUs, Intel 10th generation processors, and MacBook/MacBook Pro keyboards and touchpads are included in the newer kernel.

Zorin OS Desktop. (Credit: distrowatch.com)

In addition to the base system, Zorin 15.2 also ships with updates to the pre-installed software packages, allowing for less updates required after installing Zorin OS on a computer. Moreover, critical productivity applications like the LibreOffice suite and GIMP (GNU Image Manipulation Program) have been updated to their most recent versions.

Overall, the 15.2 release is not a drastic departure from 15.1, but it does include some nice new features and functionality for those looking to try out Linux as an alternative to proprietary operating systems.

I do have to say, I’m extremely impressed with the Zorin team as of late. They appear to really be making some important strides to bring desktop Linux to a much wider audience as well as focusing on some advanced and innovative solutions to some major problems facing Linux adoption today.

Congrats, Zorin Group, I can’t wait to see what the bright future holds for you!

Back to Table of Contents

TUXEDO Computer’s New InfinityBook S 14

TUXEDO Computers Official Logo. (Credit: tuxedocomputers.com)

Everyone is well aware of TUXEDO Computer’s unique role in the Linux hardware ecosystem right now, especially with their recent partnership on the Kubuntu Focus project as well as their upcoming product line with the Manjaro team just on the horizon.

Earlier this week, TUXEDO announced the release of the newest iteration of their popular InfinityBook S 14 laptop. This smaller machine is perfect for people who travel quite a bit as it comes in on the scale at less than 1.1 kg along with an extremely long battery life to boot. However, there are some new exciting improvements with the latest model as well.

Probably the most imminently obvious new feature is the ability for the laptop to be opened to 180 degrees, however, there are improvements in the narrow bezel, the 1200:1 contrast ratio, and the luminance of 320–350 cd/qm.

TUXEDO InfinityBook S 14. (Credit: tuxedocomputers.com)

The magnesium alloy chassis is quite special and will definitely turn some heads no matter where you go. It may appear similar to the popular aluminum alloy chassis, however, it is proven to be much tougher and more resistant in practice. In addition, the ultra conservative 14-inch display will use nearly 50% less energy than many other comparable laptop displays.

Moreover, TUXEDO has changed the design and construction of the laptop body to create continuous airflow with new fan placement, even if the system is placed flat on a hard surface. The operating systems available to ship with the InfinityBook S 14 include TUXEDO OS 18.04 LTS, Ubuntu 18.04 LTS “Bionic Beaver”, and openSUSE Leap 15.1 (GNOME, Plasma, or Xfce).

If you would like to check out the specifications of the new TUXEDO InfinityBook 14 S or purchase one for yourself, you can find it here.

Back to Table of Contents

Kali Linux 2020.1a Released with Installer Fixes

Kali Linux 2020.1a release. (Credit: kali.org)

With the recent release of Kali Linux 2020.1 came a variety of new improvements to the pentesting distribution of choice including but not limited to a new net-installer image with better configuration within the installer itself and (possibly the most critical change ever) changing the default user from having permanent root privileges.

However, as with any major piece of software released, there are bound to be at least one or two bugs that make their way through the testing phase and are only found when more users begin utilizing it on a frequent basis.

Kali Undercover Mode. (Credit: Ranjith on kalilinuxtutorials.com)

Recently, a major bug affecting X11 was recently discovered and patched with the new update. This bug apparently would cause some new installations of Kali 2020.1 to not have a graphical user interface upon completion of the install.

This patch is the main course for the new 2020.1a release by Offensive Security and it is highly recommended that anyone installing Kali choose the new upgrade to avoid this issue with the installer in the future. However, if you already have Kali up and running, you will not be affected by this bug and can continue using it as normal.

You can find the updated installer images at the official Kali website here. You can also find the release notes for Kali Linux 2020.1a here.

Back to Table of Contents

Linux Mint’s Slick New Tool

Linux Mint official logo. (Credit: forums.linuxmint.com)

Linux Mint has become synonymous with ease of use in the Linux world. It is usually one of the first distributions that I will personally recommend to new users (especially those coming from Windows) due to the incredible amount of effort by the Mint team to build tools and functionality that make the system “just work” with minimal fiddling. It is one of the easiest and most intuitive distributions out-of-the-box and I’ve rarely ever discovered any kind of devastating (or even minuscule) issue while running it.

This week, the team behind Mint announced the creation of another tool to help make user’s lives easier, especially those that are constantly transferring files around between different machines. Most users would first think to grab a USB stick or external hard drive, sync from a cloud-based storage system, or even try using Bluetooth when attempting this job, however, Mint users will soon have a much even easier way to perform this action more efficiently.

This new application is currently called “Warpinator” (which is noted as a temporary name) and it leverages the local area network (LAN) to transfer files between machines. The inspiration behind the new tool is directly credited to the discontinued Giver application that used to ship with Mint by default.

Computers connected to LAN via Warpinator’s API. (Credit: blog.linuxmint.com)

Giver was an application that leveraged the LAN to simply drag and drop files from one computer to the next without a server or any kind of tedious and unnecessary configuration (like FTP, NFS, or Samba). It appears that the Mint team has really missed this functionality and have finally decided to put in the development time and effort to bring it back, albeit in a much easier to use, Minty fashion.

More detailed information of a single computer on the LAN. (Credit: blog.linuxmint.com)

There is no word on when this application will begin shipping with Mint, so if you’re interested in a tool like this, keep your eyes peeled for news on it’s development.

If you would like to read the official announcement from the Linux Mint team, you can find it here. In addition, if you would like to follow this project, the source code is available here.

Great job, Mint team, this really looks like an awesome and powerful application to add to an already loaded arsenal!

Back to Table of Contents

New GTK IRC Client

The Srain IRC Client built with GTK. (Credit: imgur.com)

Though Internet Relay Chat (IRC) may seem a bit dated to new users of Linux (becaue it is quite old), it is still heavily utilized in the open source software community. Consequently, it isn’t very often that new IRC clients pop up due to the fact that so many people are already set in a preferred client that they have been using for a long time. However, this week a new IRC client built with the GTK toolkit was brought to the attention of the greater Linux community with some really cool functionalites that push further than most of the popular IRC clients today.

Just like other IRC clients, Srain allows a user to connect to multiple servers, join multiple channels, and chat normally. However, Srain builds upon the older IRC clients and provides some really nice functionality to make IRC feel like newer forms of chat applications.

One of the intriguing features of Srain is the way that it formats individual messages. Instead of using the line spacing inherent in most other IRC clients, Srain creates a text bubble around each user’s text. This makes it much easier to differentiate between conversation with users and also feels more modern.

Text bubbles in Srain to differentiate user conversation. (Credit: srain.im)

In addition, unlike other IRC clients, Srain includes URL previews like most modern chat applications by parsing the URL and discovering the content linked in a message so that it can display a small preview inside the chat bubble.

Srain is extremely customizable and was built with extensibility in mind. At the moment, they have really just grazed the surface of what is truly possible with a modern IRC client like this and I can’t wait to see what they do with it in the future.

If you would like to check out the official announcement of the 1.0.0 release, you can find it here. If you would like to download and try out Srain, look for you particular distribution’s instructions (or the Flatpak) here.

Back to Table of Contents

Community Voice: Georges Stravracas

Georges Stravracas of the GNOME Project at GUADEC 2019. (Credit: feaneron.com)

This week Linux++ is very excited to welcome Georges Stravracas from the GNOME Project. Georges has grown to become a major contributor to GNOME, however, for those who don’t know him, here is a small summary of his work within the Linux community.

Georges has been contributing to the GNOME project for almost 8 years now and is an employee at Endless. Though he started contributing to GNOME during high school, you probably know him now as the main force behind GNOME Calendar and GNOME To Do, but he is also heavily involved with development of Mutter and the GNOME Shell itself. Now I present my interview with Georges:

How would you describe Linux to someone who is unfamiliar with it, but interested?

“Linux is a fantastic way to use your computer, regardless of whether you’re a casual or an advanced user.”

What got you hooked on the Linux operating system and why do you continue to use it?

“When I was a very young, I started dismantling old computers and playing with the pieces. As a kid, I didn’t have any money, so I searched for a zero-cost operating system. This was my first contact with Linux. It wasn’t great for newbies though — the first thing I had to do was compile a kernel!

Custom GNOME wallpaper. (Credit: Asd12345678184 on goodfon.com)

These days, I use Linux with GNOME because I sincerely think it’s the best option I have — including among the proprietary ones — to get my job done. I have the freedom to scratch my own itch and it’s easy to forget or not care about it until the day you need such freedom. Sometimes I work on stuff as part of my day job. Sometimes out of pure curiosity. And sometimes it’s classic FDD: frustration-driven development. But, I at least have a chance to make my own life a bit better by myself.”

What do you like to use Linux for? (Gaming, Development, Casual Use, Tinkering/Testing, etc.)

“Everything. I use Linux full time now for the last 10 years or so :)”

What is your absolute favorite aspect about being part of the Linux and open source community?

“I think ‘Linux community’ is a very broad term. I strongly identify with the GNOME community specifically and I absolutely love it. I share the values that drive the GNOME community.

One of my favorite aspects of it is that I have the opportunity to learn and be in touch with different people with different backgrounds. I believe I became a better developer and better person because of it.”

What is one FOSS project that you would like to bring to the attention of the community?

“OBS Studio is the project that I’m currently keeping an eye on (and, eventually, will contribute with).”

OBS Studio logo. (Credit: obsproject on github.com)

Do you think that the Linux ecosystem is too fragmented? Is fragmentation a good or bad thing in your view?

“To be honest, I don’t have a strong opinion on these questions. On the one hand, free software generally has a lack of big resources, and splitting what we have in different groups probably reduces the impact we would have as one group. On the other hand, different people have different motivations to contribute to free software and I can’t see a good reason for us to try and unify the different communities out there.

Furthermore, I think the diversity of ideas and goals can be positive to some degree. For example, as a developer, I’m delighted when my code is reviewed by other people and better solutions are found to the problems I’m trying to solve. I don’t think these better solutions would appear if everyone had similar goals or backgrounds.”

What do you think the future of Linux holds?

“I believe in the short-term future, Flatpak will become much more prominent, and will have a central role in how we understand and interact with applications.

I really don’t know what to expect in the long run, but I think we have a bold opportunity to reach people neglected by the big players and introduce free software as their first computing experience. This is a goal of my employer, Endless, and that’s why I’m working with them towards this.”

What drew you to become a developer on the GNOME project?

“My journey to GNOME started with GNOME Calendar. I wrote about it in my blog, but in essence, I acted when the original author of GNOME Calendar lost interest in the project and things took off from there. You can still see my first videos of new GNOME Calendar features on YouTube!

The GNOME Calendar application. (Credit: snapcraft.io)

I then created GNOME To Do because I wanted a personal task management application and couldn’t find a suitable one. Then somehow I got involved with GNOME Settings, then Mutter, then GNOME Shell, and the rest is history.”

Are there any features in the upcoming 3.36 release that you are particularly proud of without giving too much away?

“The new Lock Screen is my personal favorite. I also enjoy being able to do my GNOME live streams with a decent performance with 3.36”

Demo of new GNOME Lock Screen by Georges.

What is your favorite aspect of getting to work on the GNOME project?

“The people. I am absolutely honored to work with such a fantastic community.”

What are some aspects to GNOME as a desktop environment that you think set it apart from the other alternatives?

“With my end user hat on, I believe the attention to detail, and conscious and overwhelming efforts to good design practices and patterns. To me, GNOME has focus, values, goals, and doesn’t succumb under the pressure to mindlessly add options that either should be actual features or not exist.”

Do you have any major goals that you would love to achieve in the near future related to your involvement with the Linux community?

“I have many personal goals. I want to work on OBS Studio to improve performance even more when screencasting (most improvements on Mutter side have landed now). I want to continue to improve Mutter and GNOME Shell architecture, implement a better rendering engine, update the codebase to use modern vectorized operations of new processors, and in the far future, introduce a Vulkan renderer.

Official Vulkan logo. (Credit: wikipedia.org)

I want to help the GTK team release GTK 4, so that I can release GNOME To Do 4.0 as well. I want to finish the new event management engine for GNOME Calendar that will drastically improve it. I want to implement the latest design updates to Settings that were made based on the results of various rounds of user testing.”

I just want to wholeheartedly say thank you to Georges for taking time out of his extremely busy schedule to complete an interview for Linux++. As you can tell, Georges is an extremely passionate developer for GNOME and has a ton of objectives in mind to help improve the overall GNOME ecosystem. I know I can’t wait to see what the future holds for him and the GNOME project in general!

If you would like to explore or follow what Georges is currently working on, visit his personal website here.

Back to Table of Contents

Explore the Linux World

This week we are going to discuss one of the major components that sets Linux apart from other operating systems, it’s filesystem structure. Now, if you’re a Linux master, this will probably seem elementary, however, if you are at all new to Linux and would like to dive deeper, this may help you with different customization aspects, debugging issues that arise, and just give you a small window into the thought that was put behind Linux over the years.

The Linux Filesystem in a Nutshell

The Linux Filesystem Hierarchy. (Credit: Alok Raj on thesagediary.com)

The Linux filesystem hierarchy is built via an inverted tree of different important directories, where the root directory (/) is the top-most directory. Everything comes down from the root directory and the different directories as denoted with backslashes between them (/usr/share/icons for example). We will take a look at some of the most important directories in the Linux filesystem and what they are particularly used for.

Now, you should note that there is some slight variation between different Linux distributions relating to where they store some information. If you ever have a question about where a particular file lives on your distribution, don’t be scared to dig into documentation or ask questions on the forums. Just make sure you’ve done the proper due diligence before asking.

NOTE: Some experienced Linux users are not extremely receptive to newer users who don’t at least put some effort into finding the information themselves, so make sure you use a search engine and any other materials at your disposal to attempt to find the information on your own first.

So, without further ado, I present you the basics of the Linux filesystem:

/bin: This important directory is used to store executable files in a binary format that allow you to utilize some of the most common Linux commands like “ls”, “cp”, “mv”, etc. These commands are available to all users on the system.

/opt: This is usually where third-party software (optional software) that is not available in the distribution’s repository is stored. The code is usually kept in “/opt” while the binary is linked to “/bin” so that multiple users can run it.

/boot: This directory contains the files of the Linux kernel and boot images in addition to a bootloader. More likely than not, this directory is separately partitioned from the rest of the system at the start of the disk.

/root: This directory is the home directory of the administrator or “root” user. Not to be confused with the “root” directory (/) of the filesystem tree structure.

/dev: This directory contains special types of files, including those that are related to devices. Though, make note, that these files do not exist physically on the disk, they are virtual.

/sbin: Very similar to the “/bin” directory, however, it only contains binaries that can be executed by users with administrative privileges.

/etc: This directory is where you will find many of the significant configuration files on your system. The directory is usually only able to be accessed by users with administrative privileges. It holds sensitive data, such as passwords and networking configuration files. If you need to customize parts of your system configuration, this is the directory that you will usually be looking in and editing.

/srv: This directory contains data for the different services provided by the system.

/home: This directory contains the user’s personal data. Sometimes this is partitioned separately from the rest of the filesystem for people who like to jump around to different distributions and want to keep all the contents of the “/home” directory the same. Your personal directory will usually be at “/home/<username>” or “~/<username” as the tilde (~) is shorthand for “/home”. Different users will not have access to each other’s “/home” directories unless they have administrative privileges.

/tmp: This directory holds temporary files, which is usually used by the different applications on your system, though you yourself can also store files here. The contents of this directory are usually deleted upon reboot. So, do not store any import files in this directory as some Linux systems may also delete older files automatically.

/lib: This directory contains libraries (a chunk of code) that can be called by different executable binaries. These will be linked to the executable files in the “/bin” and “/sbin” directories.

/usr: This directory holds all of the executable files, libraries, and the source of many of the system programs. Usually, administrative access is needed to alter files in this directory, however, non-administrative users should be able to view the contents.

/usr/bin: Contains the binary files of basic user commands.

Contains the binary files of basic user commands. /usr/sbin : Contains binary files for commands that the administrator can utilize.

: Contains binary files for commands that the administrator can utilize. /usr/lib : Contains the system libraries.

: Contains the system libraries. /usr/share: Contains documentation or common files to all system libraries. This is where you can find the manual pages for many commands on your system.

/media: This directory stores directories associated with removable media like a USB stick, SD card, or DVD. A directory will automatically be created under “/media”, where you can access the contents of the removable media.

/var: This directory stores variable data files. Runtime information such as system logging, user tracking, caches, and other files that system programs create and manage will be found here. This is usually where system administrators search for different aspects of the system’s behavior.

/mnt: This directory is somewhat similar to “/media”, however, instead of automatically mounting the removable media, “/mnt” is used by administrators to manually mount a particular filesystem.

/proc: This vital directory holds information regarding the currently running processes on your system as well as the kernel parameters. Many times, system utilization tools will access this directory to get runtime system information in order to display it to the user.

Back to Table of Contents

Linux Desktop Setup of the Week

This week’s selection was presented by u/InfernusZ9 in the post titled [Openbox] Tried some pixel art. Here is the screenshot that they posted:

The Desktop of the Week: Openbox. (Credit: u/InfernusZ9 on reddit.com)

And here are the system details:

OS: Debian

WM: Openbox

Theme: Modified Yeti and Papirus themes

Icons: Custom made tint2 theme

Thanks, u/InfernusZ9, for an extremely intriguing, original, and awesome looking Openbox desktop!

If you would like to browse, discover, and comment on some interesting, unique, and just plain awesome Linux desktop customization, check out r/unixporn on Reddit!

Back to Table of Contents

See You Next Week!

I hope you enjoyed reading about the on-goings of the Linux community this week. Feel free to start up a lengthy discussion, give me some feedback on what you like about Linux++ and what doesn’t work so well, or just say hello in the comments below.

In addition, you can follow the Linux++ account on Twitter at @linux_plus_plus, join us on Telegram here, or send email to linuxplusplus@protonmail.com if you have any news or feedback that you would like to share with me.

Thanks so much for reading, have a wonderful week, and long live GNU/Linux!