Merge pull request #1 from luca-pellegrini/add_table_of_contents

Update README, add CONTRIBUTING.md and move content to separate pages
This commit is contained in:
Luca Pellegrini 2023-09-08 21:03:26 +00:00
commit 2c165d0b28
9 changed files with 283 additions and 141 deletions

49
CONTRIBUTING.md Normal file
View file

@ -0,0 +1,49 @@
# How to contribute
The `README.md` file (and its translated version, e.g. `README_it.md`) has the following structure:
* A _Table of Contents_: lists all the topic covered in this Linux CookBook (and those we plan to add in the near future), and each topic title should be a link to the corresponding page (or section inside a page) located in the `src` subdirectory.
* _Introduction_: describes the goal of this project, and lists the Operating Systems used by us
* _Useful Websites and Books_
All the contents of the CookBook itself should be added into appropriate pages (i.e. `*.md` files) in the `src` subdirectory.
Each page has a main topic (e.g. the Bash shell, the KDE desktop environment, web browsers and extensions, SSH, etc.), and it can be divided in many sections and subsections (2nd- and 3rd-level headers).
A link to each page and its sections and subsections should be placed in the _Table of Contents_.
Links should use the Markdown syntax:
**Link to another section in the same file as the current one** (a.k.a. _anchor link_):
```md
[Introduction](#introduction)
```
**Link to another file in a subdirectory**:
```md
[KDE Plasma Desktop](src/kde.md)
```
**Link to another file in the same (or parent) directory as the current one**:
```md
[Web Browsers](./web_browsers.md) # same directory
[README](../README.md) # parent directory
```
**Link to _a section_ in another file in the same (or parent) directory as the current one**:
```md
[Extensions](./web_browsers.md#extensions) # same directory
[Introduction](../README.md#introduction) # parent directory
```
**Link to an external website**:
```md
<https://www.example.com> # or...
[Example](https://www.example.com)
```
## Referencing the sources
Wherever possible, we should reference the sources; for instance: main website or Git repo of the software application we are talking about, wiki articles we read, etc.

221
README.md
View file

@ -1,163 +1,102 @@
# Linux CookBook
Filippo Gentile
<h1 align="center">Linux CookBook</h1>
_by Filippo Gentile and Luca Pellegrini_
## Operating System
## Table of Contents
Tuxedo OS 2 [Tuxedo Computers](https://www.tuxedocomputers.com)
- [Introduction](#introduction)
- [Operating Systems we use](#operating-systems-we-use)
- At first boot
- APT package manager
- Basic commands
- Editing APT sources
- Setting up a firewall (UFW)
- Update, upgrade and reboot
- Bash: the Shell
- Bash configuration files
- [KDE Plasma Desktop](src/kde.md)
- Tweaking some system settings
- Grafics: compositor settings
- Theming
- Eyes protection
- Dolphin: the file manager
- Add buttons to the menu bar
- Install KIO Admin plugin
- Okular: the document viewer
- Edit performance settings
- KRunner: a very, very powerfull launcher
- Activities and virtual desktops
- KDE Connect: integration between your desktop and smartphone
- Other suggested KDE apps
- [Web Browsers and Extensions](src/web_browsers.md)
- Mozilla Firefox
- Tor Browser
- uBlockOrigin
- uMatrix
- CleanURLs
- PrivacyRedirect
- [Email Clients](src/email_clients.md)
- Mozilla Thunderbird
- Claws Mail
- [OpenPGP encryption](src/openpgp.md)
- Verifying OpenPGP signatures with GnuPG
- How to generate an OpenPGP key pair
- Using email encryption in Thunderbird
- Using email encryption in Claws Mail
- [SSH](src/ssh.md)
- How to generate an SSH key pair
- OpenSSH client configuration
- OpenSSH server configuration
- [Systemd](src/systemd.md)
- A few useful commands
- Managing file systems
- The /etc/fstab file
- Swap file and swap partition
- Setting up hibernation
- [Dual boot with Windows](src/dual_boot.md)
- Disable "fast boot" in Windows and UEFI settings
- Make Windows read hardware clock as UTC
- Auto-mount Windows partition in Linux
## Useful Sites
* * *
* DigDeeper: [digdeeper.club](digdeeper.club)
## Introduction
This _Linux CookBook_ is a small project we started with the goal of collecting in a unified place the knowledge base we acquired while using and experimenting with Linux and various related pieces of Free and Open Source software.
We made this CookBook primarly for ourselves, to keep track of the applications we installed, the settings we tweaked, the extensions and plugins we started using, etc. etc.
Nonetheless, we hope that this knowledge will be useful for other people who have just started using Linux, or are willing to try it.
We are by no means "experts" or certified professionals in Linux system administration. We are just two friends who share a deep interest in Programming, Computer Science, the Free and Open Source Software ideals, Privacy-respecting software, and experimenting in general.
## Mail Client
1) Thunderbird
2) ClawsMail
Install following plugins:
* `claws-mail-fetchinfo-plugin` (Shows extra headers in received mails)
* `claws-mail-litehtml-viewer` (Displays HTML mail content)
* `claws-mail-perl-filter` (Mail search using Perl regular expression)
* `claws-mail-pgpmime` (OpenPGP cryptography)
### Setup OpenPGP
- Use `Kleopatra` to manage keyring
## Web Browser
Mozilla Firefox
### Extensions
#### uMatrix
[GitHub page](https://github.com/gorhill/uMatrix)
Blocks website requests with fine grained options
##### Settings
All content in this pages is provided "AS IS", without warranty of any kind.
```
https-strict: behind-the-scene false
matrix-off: about-scheme true
matrix-off: behind-the-scene true
matrix-off: chrome-extension-scheme true
matrix-off: chrome-scheme true
matrix-off: moz-extension-scheme true
matrix-off: opera-scheme true
matrix-off: vivaldi-scheme true
matrix-off: wyciwyg-scheme true
noscript-spoof: * true
referrer-spoof: * true
referrer-spoof: behind-the-scene false
* * * block
* * css allow
* * frame block
* * image allow
* 1st-party * allow
* 1st-party frame allow
* duckduckgo.com * block
* improving.duckduckgo.com * block
duckduckgo.com duckduckgo.com * inherit
duckduckgo.com external-content.duckduckgo.com * block
duckduckgo.com links.duckduckgo.com * block
github.com collector.github.com * block
github.com github.githubassets.com script allow
howtogeek.com duckduckgo.com * block
howtogeek.com improving.duckduckgo.com * block
lunar.icu googlevideo.com media allow
odysee.com cdn.cookielaw.org * block
odysee.com cookielaw.org * block
odysee.com gstatic.com * block
odysee.com player.odycdn.com xhr allow
odysee.com sentry.odysee.tv * block
odysee.com www.gstatic.com * block
```
### Operating Systems we use
#### uBlockOrigin
#### Tuxedo OS 2
Removes advertising
Made by [Tuxedo Computers](https://www.tuxedocomputers.com)
#### CleanURLs
It is based on the latest Ubuntu LTS release (currently, 22.04), and use KDE Plasma as its Desktop Environment.
Although Tuxedo OS is based on a LTS release, it ships with latest version of all KDE applications, packaged by the Tuxedo team itself.
[docs.cleanurls.xyz](docs.cleanurls.xyz)
Filippo and Luca use Tuxedo OS on their laptop computers.
Removes tracking parameters from URL before loading pages
#### Debian 12 Bookworm
#### PrivacyRedirect
[Debian](https://www.debian.org/) is the upstream project which Ubuntu, and therefore all its derivatives, are based upon.
- Invidious instance: [https://invidious.takebackourtech.org](https://invidious.takebackourtech.org)
- Always proxy videos
Luca uses Debian 12 Bookworm (the latest stable release), with KDE Plasma, on his desktop computer.
#### CanvasBlocker
[GitHub page](https://github.com/kkapsner/CanvasBlocker)
## Useful Websites and Books
<h4 id="ddg-url-parameters">Search Engine Helper</h4>
* ArchWiki: [wiki.archlinux.org](https://wiki.archlinux.org/)
* alternativalinux: [www.alternativalinux.it](https://www.alternativalinux.it/) (Italian only)
* DigDeeper: [digdeeper.club](https://digdeeper.club/)
[GitHub page](https://github.com/soufianesakhi/firefox-search-engines-helper)
* William Shotts, _The Linux Command Line_, 2019 (available online at [LinuxCommand.org](https://linuxcommand.org/))
- Add DuckDuckGo with disabled advertising
+ [https://duckduckgo.com/?k1=-1&k5=2&kak=-1&kao=-1&kap=-1&kaq=-1&kau=-1&kax=-1&q=%s](https://duckduckgo.com/?k1=-1&k5=2&kak=-1&kao=-1&kap=-1&kaq=-1&kau=-1&kax=-1&q=%s)
#### Italian Dictionary
#### Disable Mozilla tracking in settings
+ See [debloat Firefox GitHub page](https://github.com/amq/firefox-debloat)
## Italian Dictionary
## Eyes Protection
+ Enable RedShift
+ [SafeEyes](https://slgobinath.github.io/SafeEyes/)
## KIO Admin
Dolphin (KDE File manager) refuses to run as root.
To navigate and edit system folders you need KIO Admin
module which adds a context menu "Open with KIO Admin" and will ask you admin password.
```
sudo apt install kio-admin
```
## KDE Plasma theme
+ See [BUG 444043](https://bugs.kde.org/show_bug.cgi?id=444043)
## KDE Plasma taskbar
- Disable mouse wheel looping through activities
- Disable icon grouping
## KDE Web search
* Open KDE System Settings
* Go to Search
* Go to Plasma Search
* Go to keyword web search
* Click configure
* Disable all Big Data search engines
* Set DDG url with parameters ad done in <a href="#ddg-url-parameters">Firefox section</a>
## Disable systemd services
## GTK+ Applications with KDE File Dialog
Add `export GTK_USE_PORTAL=1` to `.profile` and logout/login [Arch Wiki](https://wiki.archlinux.org/title/Uniform_look_for_Qt_and_GTK_applications#Consistent_file_dialog_under_KDE_Plasma)
## Dual Boot Windows
- Disable Windows Fast Boot
- Make Windows read hardware clock as UTC (`REG_QWORD` for 64bit systems) [Arch Wiki](https://wiki.archlinux.org/title/System_time#UTC_in_Microsoft_Windows)
```
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f
```
- Disable Windows time adjustment (Run as admin) [Arch Wiki](https://wiki.archlinux.org/title/System_time#Multi-NTP_interaction)
```
w32tm /unregister
```

12
src/dual_boot.md Normal file
View file

@ -0,0 +1,12 @@
## Dual Boot Windows
- Disable Windows Fast Boot
- Make Windows read hardware clock as UTC (`REG_QWORD` for 64bit systems) [Arch Wiki](https://wiki.archlinux.org/title/System_time#UTC_in_Microsoft_Windows)
```
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f
```
- Disable Windows time adjustment (Run as admin) [Arch Wiki](https://wiki.archlinux.org/title/System_time#Multi-NTP_interaction)
```
w32tm /unregister
```

10
src/email_clients.md Normal file
View file

@ -0,0 +1,10 @@
## Mail Client
1) Thunderbird
2) ClawsMail
Install following plugins:
* `claws-mail-fetchinfo-plugin` (Shows extra headers in received mails)
* `claws-mail-litehtml-viewer` (Displays HTML mail content)
* `claws-mail-perl-filter` (Mail search using Perl regular expression)
* `claws-mail-pgpmime` (OpenPGP cryptography)

38
src/kde.md Normal file
View file

@ -0,0 +1,38 @@
## KIO Admin
Dolphin (KDE File manager) refuses to run as root.
To navigate and edit system folders you need KIO Admin
module which adds a context menu "Open with KIO Admin" and will ask you admin password.
```
sudo apt install kio-admin
```
## KDE Plasma theme
+ See [BUG 444043](https://bugs.kde.org/show_bug.cgi?id=444043)
## KDE Plasma taskbar
- Disable mouse wheel looping through activities
- Disable icon grouping
## KDE Web search
* Open KDE System Settings
* Go to Search
* Go to Plasma Search
* Go to keyword web search
* Click configure
* Disable all Big Data search engines
* Set DDG url with parameters as done in <a href="./web_browsers.md#ddg-url-parameters">Firefox section</a>
* Set DDG url with parameters as done in [Firefox section](./web_browsers.md#Search Engine Helper)
## GTK+ Applications with KDE File Dialog
Add `export GTK_USE_PORTAL=1` to `.profile` and logout/login [Arch Wiki](https://wiki.archlinux.org/title/Uniform_look_for_Qt_and_GTK_applications#Consistent_file_dialog_under_KDE_Plasma)
## Eyes Protection
+ Enable RedShift
+ [SafeEyes](https://slgobinath.github.io/SafeEyes/)

3
src/openpgp.md Normal file
View file

@ -0,0 +1,3 @@
### Setup OpenPGP
- Use `Kleopatra` to manage keyring

1
src/ssh.md Normal file
View file

@ -0,0 +1 @@

2
src/systemd.md Normal file
View file

@ -0,0 +1,2 @@
## Disable systemd services

88
src/web_browsers.md Normal file
View file

@ -0,0 +1,88 @@
## Web Browser
Mozilla Firefox
### Extensions
#### uMatrix
[GitHub page](https://github.com/gorhill/uMatrix)
Blocks website requests with fine grained options
##### Settings
```
https-strict: behind-the-scene false
matrix-off: about-scheme true
matrix-off: behind-the-scene true
matrix-off: chrome-extension-scheme true
matrix-off: chrome-scheme true
matrix-off: moz-extension-scheme true
matrix-off: opera-scheme true
matrix-off: vivaldi-scheme true
matrix-off: wyciwyg-scheme true
noscript-spoof: * true
referrer-spoof: * true
referrer-spoof: behind-the-scene false
* * * block
* * css allow
* * frame block
* * image allow
* 1st-party * allow
* 1st-party frame allow
* duckduckgo.com * block
* improving.duckduckgo.com * block
duckduckgo.com duckduckgo.com * inherit
duckduckgo.com external-content.duckduckgo.com * block
duckduckgo.com links.duckduckgo.com * block
github.com collector.github.com * block
github.com github.githubassets.com script allow
howtogeek.com duckduckgo.com * block
howtogeek.com improving.duckduckgo.com * block
lunar.icu googlevideo.com media allow
odysee.com cdn.cookielaw.org * block
odysee.com cookielaw.org * block
odysee.com gstatic.com * block
odysee.com player.odycdn.com xhr allow
odysee.com sentry.odysee.tv * block
odysee.com www.gstatic.com * block
```
#### uBlockOrigin
Removes advertising
#### CleanURLs
[docs.cleanurls.xyz](docs.cleanurls.xyz)
Removes tracking parameters from URL before loading pages
#### PrivacyRedirect
- Invidious instance: [https://invidious.takebackourtech.org](https://invidious.takebackourtech.org)
- Always proxy videos
#### CanvasBlocker
[GitHub page](https://github.com/kkapsner/CanvasBlocker)
#### Search Engine Helper
<h4 id="ddg-url-parameters">Search Engine Helper</h4>
[GitHub page](https://github.com/soufianesakhi/firefox-search-engines-helper)
- Add DuckDuckGo with disabled advertising
+ [https://duckduckgo.com/?k1=-1&k5=2&kak=-1&kao=-1&kap=-1&kaq=-1&kau=-1&kax=-1&q=%s](https://duckduckgo.com/?k1=-1&k5=2&kak=-1&kao=-1&kap=-1&kaq=-1&kau=-1&kax=-1&q=%s)
#### Italian Dictionary
#### Disable Mozilla tracking in settings
+ See [debloat Firefox GitHub page](https://github.com/amq/firefox-debloat)
## Italian Dictionary