general arch install fixes for Nic's complaints
This commit is contained in:
@@ -1,8 +1,18 @@
|
||||
# Workstation
|
||||
|
||||
- [Workstation](#workstation)
|
||||
- [Pacman Packages](#pacman-packages)
|
||||
- [Upgrade/Downgrade](#upgradedowngrade)
|
||||
- [Freeze package](#freeze-package)
|
||||
- [Fingerprint Reader Support](#fingerprint-reader-support)
|
||||
- [Setup](#setup)
|
||||
- [Turn Off Fingerprint When Laptop Lid Closed](#turn-off-fingerprint-when-laptop-lid-closed)
|
||||
- [SSH](#ssh)
|
||||
- [Templates](#templates)
|
||||
- [Firefox](#firefox)
|
||||
- [Gnome Extensions](#gnome-extensions)
|
||||
- [Avahi (Bonjour)](#avahi-bonjour)
|
||||
- [CUPS Printing](#cups-printing)
|
||||
- [Toolbox](#toolbox)
|
||||
- [Podman](#podman)
|
||||
- [Docker](#docker)
|
||||
@@ -39,6 +49,153 @@
|
||||
- [Glances](#glances)
|
||||
- [VirtualBox](#virtualbox)
|
||||
|
||||
## Pacman Packages
|
||||
|
||||
### Upgrade/Downgrade
|
||||
|
||||
The [Arch Linux Archive](https://archive.archlinux.org/packages/) keeps snapshots of all packages
|
||||
from history. Search for your package on the site, copy the link for the `pkg.tar.zst` file, and run
|
||||
the following:
|
||||
|
||||
```bash
|
||||
# Replace link with the one you copied
|
||||
pacman -U https://archive.archlinux.org/packages/g/gdm/gdm-46.2-1-x86_64.pkg.tar.zst
|
||||
```
|
||||
|
||||
### Freeze package
|
||||
|
||||
You can freeze a package by adding it to the list of ignores in `/etc/pacman.conf`:
|
||||
|
||||
```conf
|
||||
...
|
||||
IgnorePkg = nano vim linux
|
||||
...
|
||||
```
|
||||
|
||||
## Fingerprint Reader Support
|
||||
|
||||
### Setup
|
||||
|
||||
1. `pacman -S fprintd`
|
||||
2. `systemctl enable --now fprintd`
|
||||
3. `fprintd-enroll ducoterra`
|
||||
4. Install <https://aur.archlinux.org/pam-fprint-grosshack.git> to use fingerprint with gnome
|
||||
|
||||
In order to use fingerprint auth with gnome for privileged system stuff with gdm, edit
|
||||
`/etc/pam.d/system-auth` to include `auth sufficient pam_fprintd_grosshack.so`.
|
||||
|
||||
```conf
|
||||
#%PAM-1.0
|
||||
|
||||
auth required pam_shells.so # User must have shell in /etc/shells
|
||||
auth requisite pam_nologin.so # Prevents users from loging in if /etc/nologin exists
|
||||
auth required pam_faillock.so preauth # Timeout after certain number of fails
|
||||
# Optionally use requisite above if you do not want to prompt for the password
|
||||
# on locked accounts.
|
||||
auth sufficient pam_fprintd_grosshack.so
|
||||
-auth [success=2 default=ignore] pam_systemd_home.so
|
||||
auth [success=1 default=bad] pam_unix.so try_first_pass nullok
|
||||
auth [default=die] pam_faillock.so authfail
|
||||
auth optional pam_permit.so
|
||||
auth required pam_env.so
|
||||
auth required pam_faillock.so authsucc
|
||||
# If you drop the above call to pam_faillock.so the lock will be done also
|
||||
# on non-consecutive authentication failures.
|
||||
|
||||
-account [success=1 default=ignore] pam_systemd_home.so
|
||||
account required pam_unix.so
|
||||
account optional pam_permit.so
|
||||
account required pam_time.so
|
||||
|
||||
-password [success=1 default=ignore] pam_systemd_home.so
|
||||
password required pam_unix.so try_first_pass nullok shadow
|
||||
password optional pam_permit.so
|
||||
|
||||
-session optional pam_systemd_home.so
|
||||
session required pam_limits.so
|
||||
session required pam_unix.so
|
||||
session optional pam_permit.so
|
||||
```
|
||||
|
||||
### Turn Off Fingerprint When Laptop Lid Closed
|
||||
|
||||
**NOTE: This may break fingerprint unlock. Testing in progress.**
|
||||
|
||||
To disable fingerprint authentication when the laptop lid is closed, and re-enable when it is
|
||||
reopened, we will use acpid to bind to the button/lid.* event to a custom script that will comment
|
||||
out fprintd auth in /etc/pam.d/sudo.
|
||||
|
||||
Usually we'd just `systemctl mask fprintd` but this breaks gdm (as of 08/06/23). See
|
||||
<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2267> and
|
||||
<https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6585>.
|
||||
|
||||
1. `pacman -S acpid` and then `systemctl enable --now acpid`
|
||||
2. Create file /etc/acpi/laptop-lid.sh with the following contents:
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
if grep -Fq closed /proc/acpi/button/lid/LID0/state # &&
|
||||
# This is used to detect if a display is connected.
|
||||
# For USB C displayport use:
|
||||
# grep -Fxq connected /sys/class/drm/card1-DP-2/status
|
||||
# For hdmi use:
|
||||
# grep -Fxq connected /sys/class/drm/card0-HDMI-A-1/status
|
||||
then
|
||||
# comment out fprintd
|
||||
sed -i -E 's/^([^#].*pam_fprintd.so)/#\1/g' /etc/pam.d/sudo
|
||||
else
|
||||
# uncomment fprintd
|
||||
sed -i -E 's/#(.*pam_fprintd.so)/\1/g' /etc/pam.d/sudo
|
||||
|
||||
fi
|
||||
```
|
||||
|
||||
3. Make the file executable with
|
||||
|
||||
`chmod +x /etc/acpi/laptop-lid.sh`
|
||||
|
||||
4. Create file /etc/acpi/events/laptop-lid with the following contents:
|
||||
|
||||
```bash
|
||||
event=button/lid.*
|
||||
action=/etc/acpi/laptop-lid.sh
|
||||
```
|
||||
|
||||
5. Restart the acpid service with:
|
||||
|
||||
`systemctl restart acpid`
|
||||
|
||||
Now the fingerprint will be used only when the lid is open.
|
||||
|
||||
In order to ensure the correct state after suspend we need a service file which runs our script on
|
||||
wake.
|
||||
|
||||
1. Create a file named /etc/systemd/system/laptop-lid.service with the following contents:
|
||||
|
||||
```bash
|
||||
[Unit]
|
||||
Description=Laptop Lid
|
||||
After=suspend.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/etc/acpi/laptop-lid.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
WantedBy=suspend.target
|
||||
```
|
||||
|
||||
2. Reload the systemd config files with
|
||||
|
||||
`sudo systemctl daemon-reload`
|
||||
|
||||
3. Start and enable the service with
|
||||
|
||||
`sudo systemctl enable --now laptop-lid.service`
|
||||
|
||||
Now the status should be correct even after connecting/disconnecting when the computer is off.
|
||||
|
||||
## SSH
|
||||
|
||||
Generate a key with password protection:
|
||||
@@ -81,6 +238,57 @@ mkdir ~/Templates
|
||||
touch ~/Templates/text.txt
|
||||
```
|
||||
|
||||
|
||||
## Firefox
|
||||
|
||||
You'll want firefox and gnome-browser-connector (for gnome extension management).
|
||||
|
||||
```bash
|
||||
pacman -S firefox gnome-browser-connector
|
||||
```
|
||||
|
||||
Choose noto-fonts
|
||||
|
||||
### Gnome Extensions
|
||||
|
||||
1. AlphabeticalAppGrid@stuarthayhurst
|
||||
2. <Vitals@CoreCoding.com>
|
||||
3. <dash-to-dock@micxgx.gmail.com>
|
||||
4. <tactile@lundal.io>
|
||||
|
||||
## Avahi (Bonjour)
|
||||
|
||||
1. `pacman -S avahi`
|
||||
2. `vim /etc/nsswitch.conf`
|
||||
|
||||
```conf
|
||||
hosts: mymachines mdns [NOTFOUND=return] resolve [!UNAVAIL=return] files myhostname dns
|
||||
```
|
||||
|
||||
3. `vim /etc/mdns.allow`
|
||||
|
||||
```conf
|
||||
.local.
|
||||
.local
|
||||
```
|
||||
|
||||
## CUPS Printing
|
||||
|
||||
Note: you need [avahi](#avahi-bonjour) for auto-discovery.
|
||||
|
||||
1. `pacman -S cups cups-pdf system-config-printer gutenprint foomatic-db-gutenprint-ppds`
|
||||
2. `cups-genppdupdate`
|
||||
3. `usermod -aG lp ducoterra`
|
||||
4. `systemctl enable --now cups`
|
||||
5. In gnome settings:
|
||||
1. Add printer
|
||||
2. Enter the IP address
|
||||
3. Wait...
|
||||
4. Select "JetDirect"
|
||||
5. Select Generic
|
||||
6. Select IPP Printer
|
||||
7. Print
|
||||
|
||||
## Toolbox
|
||||
|
||||
<https://wiki.archlinux.org/title/Toolbox>
|
||||
@@ -494,7 +702,9 @@ Type=Application
|
||||
<https://github.com/nextcloud-releases/talk-desktop/releases>
|
||||
|
||||
```bash
|
||||
mv ~/Downloads/Nextcloud.Talk-linux-*/Nextcloud* ~/Applications/NextcloudTalk
|
||||
unzip ~/Downloads/Nextcloud.Talk-linux*.zip -d ~/Downloads
|
||||
rm -rf ~/Applications/NextcloudTalk
|
||||
mv ~/Downloads/'Nextcloud Talk-linux-x64' ~/Applications/NextcloudTalk
|
||||
```
|
||||
|
||||
vim ~/.local/share/applications/nextcloud-talk.desktop
|
||||
@@ -533,6 +743,12 @@ Download the best quality video:
|
||||
yt-dlp -f "bv+ba/b" https://...
|
||||
```
|
||||
|
||||
Download a playlist:
|
||||
|
||||
```bash
|
||||
yt-dlp -f "bv+ba/b" --write-thumbnail https://www.youtube.com/watch?v=l-unefmAo9k&list=PLuYLhuXt4HrQqnfSceITmv6T_drx1hN84
|
||||
```
|
||||
|
||||
## Iperf3
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user