init
This commit is contained in:
646
README.md
Normal file
646
README.md
Normal file
@@ -0,0 +1,646 @@
|
|||||||
|
# Fedora on the Framework
|
||||||
|
|
||||||
|
Mostly stolen from <https://mutschler.dev/linux/fedora-post-install/>
|
||||||
|
|
||||||
|
## Dual Boot with Fingerprint Scanner Issues
|
||||||
|
|
||||||
|
<https://community.frame.work/t/fingerprint-scanner-compatibility-with-linux-ubuntu-fedora-etc/1501/206>
|
||||||
|
|
||||||
|
The script below will clear the existing fingerprints from the internal
|
||||||
|
storage.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#! /usr/bin/python3
|
||||||
|
|
||||||
|
import gi
|
||||||
|
gi.require_version('FPrint', '2.0')
|
||||||
|
from gi.repository import FPrint
|
||||||
|
|
||||||
|
ctx = FPrint.Context()
|
||||||
|
|
||||||
|
for dev in ctx.get_devices():
|
||||||
|
print(dev)
|
||||||
|
print(dev.get_driver())
|
||||||
|
print(dev.props.device_id);
|
||||||
|
|
||||||
|
dev.open_sync()
|
||||||
|
|
||||||
|
dev.clear_storage_sync()
|
||||||
|
print("All prints deleted.")
|
||||||
|
|
||||||
|
dev.close_sync()
|
||||||
|
```
|
||||||
|
|
||||||
|
## Revert Kernel (if needed)
|
||||||
|
|
||||||
|
With koji
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dnf install koji
|
||||||
|
mkdir /tmp/kernel-download
|
||||||
|
cd /tmp/kernel-download
|
||||||
|
koji search build kernel-6.0.12*
|
||||||
|
koji download-build --arch=x86_64 kernel-6.0.12-300.fc37
|
||||||
|
sudo dnf install ./*.rpm
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Find the kernels you have installed
|
||||||
|
sudo rpm -qa kernel
|
||||||
|
|
||||||
|
# List available kernels
|
||||||
|
sudo ls /boot | grep vmlinuz
|
||||||
|
|
||||||
|
# Revert to a previous kernel
|
||||||
|
sudo grubby --set-default /boot/vmlinuz-5.14.10-300.fc35.x86_64
|
||||||
|
```
|
||||||
|
|
||||||
|
## Make DNF Fast
|
||||||
|
|
||||||
|
```bash
|
||||||
|
echo 'fastestmirror=1' | sudo tee -a /etc/dnf/dnf.conf
|
||||||
|
echo 'max_parallel_downloads=10' | sudo tee -a /etc/dnf/dnf.conf
|
||||||
|
echo 'deltarpm=true' | sudo tee -a /etc/dnf/dnf.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
/etc/dnf/dnf.conf
|
||||||
|
|
||||||
|
```conf
|
||||||
|
[main]
|
||||||
|
gpgcheck=1
|
||||||
|
installonly_limit=3
|
||||||
|
clean_requirements_on_remove=True
|
||||||
|
best=False
|
||||||
|
skip_if_unavailable=True
|
||||||
|
fastestmirror=1
|
||||||
|
max_parallel_downloads=10
|
||||||
|
deltarpm=true
|
||||||
|
```
|
||||||
|
|
||||||
|
## Install Useful Packages
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dnf install vim
|
||||||
|
```
|
||||||
|
|
||||||
|
## Set Hostname
|
||||||
|
|
||||||
|
```bash
|
||||||
|
hostnamectl set-hostname ducolaptop
|
||||||
|
```
|
||||||
|
|
||||||
|
## BTRFS Optimizations
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo nano /etc/fstab
|
||||||
|
# UUID=47faf958-b80a-43e1-a36f-ca5a932474f7 / btrfs subvol=root,x-systemd.device-timeout=0,ssd,noatime,space_cache,commit=120,compress=zstd,discard=async 0 0
|
||||||
|
# UUID=04ae92cd-717c-4aaf-bb24-58001be8d334 /boot ext4 defaults 1 2
|
||||||
|
# UUID=C17B-722D /boot/efi vfat umask=0077,shortname=winnt 0 2
|
||||||
|
# UUID=47faf958-b80a-43e1-a36f-ca5a932474f7 /home btrfs subvol=home,x-systemd.device-timeout=0,ssd,noatime,space_cache,commit=120,compress=zstd,discard=async 0 0
|
||||||
|
# UUID=47faf958-b80a-43e1-a36f-ca5a932474f7 /btrfs_pool btrfs subvolid=5,x-systemd.device-timeout=0,ssd,noatime,space_cache,commit=120,compress=zstd,discard=async 0 0
|
||||||
|
sudo mkdir -p /btrfs_pool
|
||||||
|
sudo mount -a
|
||||||
|
|
||||||
|
sudo vim /etc/crypttab
|
||||||
|
# luks-fcc669e7-32d5-43b2-ba03-2db6a7f5b33d UUID=fcc669e7-32d5-43b2-ba03-2db6a7f5b33d none discard
|
||||||
|
|
||||||
|
sudo systemctl enable fstrim.timer
|
||||||
|
```
|
||||||
|
|
||||||
|
## Install updates
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dnf upgrade --refresh
|
||||||
|
sudo dnf check
|
||||||
|
sudo dnf autoremove
|
||||||
|
sudo fwupdmgr get-devices
|
||||||
|
sudo fwupdmgr refresh --force
|
||||||
|
sudo fwupdmgr get-updates
|
||||||
|
sudo fwupdmgr update
|
||||||
|
sudo reboot now
|
||||||
|
```
|
||||||
|
|
||||||
|
## Extensions
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dnf install -y gnome-extensions-app gnome-tweaks
|
||||||
|
sudo dnf install -y gnome-shell-extension-appindicator
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Another Window Session Manager by 5q0Fw
|
||||||
|
|
||||||
|
Restores windows on shutdown/reboot. Can be configured to automatically
|
||||||
|
save the last state before restart. Pair this with "restore session" in
|
||||||
|
firefox/chrome and you've got yourself a really good mac hibernate
|
||||||
|
equivalent.
|
||||||
|
|
||||||
|
2. Dash to Dock by michele_g
|
||||||
|
|
||||||
|
Make the dock behave like macos. Hide when it would cover a window. Show
|
||||||
|
when the mouse hovers over the bottom of the screen. Add some sane default
|
||||||
|
shortcuts. Etc.
|
||||||
|
|
||||||
|
3. Tactile by lundal
|
||||||
|
|
||||||
|
Power-user tiling! Behaves like Windows Power Toys FancyZones.
|
||||||
|
|
||||||
|
4. Vitals by corecoding
|
||||||
|
|
||||||
|
Adds quick-glance stats about your system to the menu bar. Use to monitor
|
||||||
|
CPU usage, memory availability, network speed, battery wattage, etc.
|
||||||
|
|
||||||
|
## Gnome Tweaks
|
||||||
|
|
||||||
|
1. Fonts -> Monospace Text -> Fira Code Regular
|
||||||
|
2. Keyboard & Mouse -> Acceleration Profile -> Flat
|
||||||
|
3. Keyboard & Mouse -> Mouse Click Emulation -> Fingers
|
||||||
|
4. Top Bar -> Activities Overview Hot Corner -> Off
|
||||||
|
5. Top Bar -> Battery Percentage -> On
|
||||||
|
6. Top Bar -> Clock -> Weekday -> On
|
||||||
|
7. Top Bar -> Clock -> Seconds -> On
|
||||||
|
8. Windows -> Center New Windows -> On
|
||||||
|
|
||||||
|
## Flatpack
|
||||||
|
|
||||||
|
```bash
|
||||||
|
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||||
|
flatpak update
|
||||||
|
```
|
||||||
|
|
||||||
|
## Snap
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dnf install -y snapd
|
||||||
|
sudo ln -s /var/lib/snapd/snap /snap # for classic snap support
|
||||||
|
ln -s /var/lib/snapd/desktop/applications ~/.local/share/applications/snap # make apps show up in gnome
|
||||||
|
sudo reboot now
|
||||||
|
```
|
||||||
|
|
||||||
|
## AppImage Launcher
|
||||||
|
|
||||||
|
Download RPM from
|
||||||
|
<https://github.com/TheAssassin/AppImageLauncher/releases/tag/v2.2.0>
|
||||||
|
|
||||||
|
## Backups
|
||||||
|
|
||||||
|
### Create Encrypted Drive
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Create an encrypted drive
|
||||||
|
sudo cryptsetup luksFormat /dev/sdb1
|
||||||
|
|
||||||
|
# LUKS Disk Encryption can use up to 8 key slots to store passwords. We can use these keys to auto mount LUKS device.
|
||||||
|
# cryptsetup luksDump /dev/sda
|
||||||
|
|
||||||
|
# Create a lukskeys
|
||||||
|
mkdir -p /home/ducoterra/.lukskeys
|
||||||
|
|
||||||
|
# Generate key
|
||||||
|
dd if=/dev/random bs=32 count=1 of=/home/ducoterra/.lukskeys/btr_backup
|
||||||
|
|
||||||
|
# Change key mode
|
||||||
|
chmod 600 /home/ducoterra/.lukskeys
|
||||||
|
|
||||||
|
# Luks add a key
|
||||||
|
sudo cryptsetup luksAddKey /dev/sda /home/ducoterra/.lukskeys/btr_backup
|
||||||
|
|
||||||
|
# Get UUID of disk with
|
||||||
|
sudo blkid /dev/sda1
|
||||||
|
|
||||||
|
# Add key to crypttab
|
||||||
|
echo 'btr_backup UUID=1d7ce570-e695-47a0-9dda-5f14b5b20e21 /home/ducoterra/.lukskeys/btr_backup luks' >> /etc/crypttab
|
||||||
|
|
||||||
|
# Create read-only backup mount point
|
||||||
|
sudo btrfs sub create /mnt/btr_backup
|
||||||
|
sudo btrfs property set /mnt/btr_backup ro true
|
||||||
|
|
||||||
|
# Add to fstab
|
||||||
|
echo '/dev/mapper/btr_backup /mnt/btr_backup btrfs x-systemd.device-timeout=0,x-gvfs-show,x-gvfs-name=btr_backup,ssd,nofail,noatime,discard=async,compress=zstd 0 0' >> /etc/fstab
|
||||||
|
|
||||||
|
# mount
|
||||||
|
sudo cryptsetup luksOpen /dev/disk/by-uuid/1d7ce570-e695-47a0-9dda-5f14b5b20e21 backup0 --key-file=/home/ducoterra/.lukskeys/backup0
|
||||||
|
|
||||||
|
# close (or fix issues)
|
||||||
|
sudo cryptsetup luksClose backup0
|
||||||
|
```
|
||||||
|
|
||||||
|
### Backup Disks
|
||||||
|
|
||||||
|
Backup disks will respect the following naming convention:
|
||||||
|
|
||||||
|
brand_size_purpose_year_month
|
||||||
|
|
||||||
|
So for a backup drive you would create:
|
||||||
|
|
||||||
|
`wd_4tb_backup_2023_01`
|
||||||
|
|
||||||
|
Or for an archive drive:
|
||||||
|
|
||||||
|
`samsung_1tb_archive_2023_01`
|
||||||
|
|
||||||
|
#### Disk Health
|
||||||
|
|
||||||
|
`smartctl -a /dev/sda`
|
||||||
|
|
||||||
|
### Create BTRBK Config
|
||||||
|
|
||||||
|
`sudo vim /etc/btrbk/btrbk.conf`
|
||||||
|
|
||||||
|
```conf
|
||||||
|
snapshot_create ondemand
|
||||||
|
snapshot_preserve_min 2d
|
||||||
|
snapshot_preserve 14d
|
||||||
|
snapshot_dir snapshots
|
||||||
|
|
||||||
|
target_preserve_min no
|
||||||
|
target_preserve 20d 10w *m
|
||||||
|
|
||||||
|
volume /mnt/btr_pool
|
||||||
|
target /mnt/btr_backup
|
||||||
|
subvolume root
|
||||||
|
subvolume home
|
||||||
|
```
|
||||||
|
|
||||||
|
### Create Systemd Timer
|
||||||
|
|
||||||
|
`sudo vim /etc/systemd/system/btrbk.service`
|
||||||
|
|
||||||
|
```conf
|
||||||
|
[Unit]
|
||||||
|
Description=Runs btrbk with config file at /etc/btrbk/btrbk.conf
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=btrbk -c /etc/btrbk/btrbk.conf -v run
|
||||||
|
```
|
||||||
|
|
||||||
|
`sudo vim /etc/systemd/system/btrbk.timer`
|
||||||
|
|
||||||
|
```conf
|
||||||
|
[Unit]
|
||||||
|
Description=Run btrbk every hour
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
OnCalendar=hourly
|
||||||
|
AccuracySec=10min
|
||||||
|
Persistent=true
|
||||||
|
Unit=btrbk.service
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
||||||
|
```
|
||||||
|
|
||||||
|
### Test, Start and Enable service
|
||||||
|
|
||||||
|
Test your service:the available storage space on our NAS to the iSCSI target
|
||||||
|
and the other half
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo btrbk -c /etc/btrbk/btrbk.conf -v run
|
||||||
|
```
|
||||||
|
|
||||||
|
Enable your service:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo systemctl start btrbk.timer
|
||||||
|
|
||||||
|
sudo systemctl enable btrbk.timer
|
||||||
|
```
|
||||||
|
|
||||||
|
### Restore
|
||||||
|
|
||||||
|
In the event you need to restore your system from a disaster do the following:
|
||||||
|
|
||||||
|
1. Reinstall fedora via a live image
|
||||||
|
2. After install, disk should be mounted at /mnt/sysimage
|
||||||
|
3. Copy the new fstab and crypttab to somewhere safe
|
||||||
|
4. rsync -av [etc, home, opt, root, usr, var]
|
||||||
|
5. `mount /dev/Y /mnt/sysimage/boot`
|
||||||
|
6. `mount /dev/Z /mnt/sysimage/boot/efi`
|
||||||
|
7. `mount --bind /dev /mnt/sysimage/dev`
|
||||||
|
8. `mount --bind /proc /mnt/sysimage/proc`
|
||||||
|
9. `mount --bind /sys /mnt/sysimage/sys`
|
||||||
|
10. `chroot /mnt/sysimage`
|
||||||
|
11. Edit fstab and crypttab so they match the new partitions
|
||||||
|
12. Update /etc/default/grub to match the new luks uuid
|
||||||
|
13. grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
|
||||||
|
14. reboot
|
||||||
|
|
||||||
|
## Firewall CMD
|
||||||
|
|
||||||
|
1. Enable firewall
|
||||||
|
|
||||||
|
```bash
|
||||||
|
systemctl start firewall-cmd
|
||||||
|
systemctl enable firewall-cmd
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Set default behavior to drop everything
|
||||||
|
|
||||||
|
```bash
|
||||||
|
firewall-cmd --set-default-zone=drop
|
||||||
|
systemctl reload firewall-cmd
|
||||||
|
```
|
||||||
|
|
||||||
|
## Bluetooth
|
||||||
|
|
||||||
|
### Airpods
|
||||||
|
|
||||||
|
Edit: /etc/bluetooth/main.conf Set ControllerMode = bredr
|
||||||
|
|
||||||
|
1. restart bluetooth service
|
||||||
|
2. connect airpods
|
||||||
|
3. comment line out
|
||||||
|
4. restart bluetooth service again
|
||||||
|
|
||||||
|
## ZRAM
|
||||||
|
|
||||||
|
Edit /etc/systemd/zram-generator.conf
|
||||||
|
|
||||||
|
```conf
|
||||||
|
[zram0]
|
||||||
|
zram-size = min(ram / 2, 16384)
|
||||||
|
compression-algorithm = lzo-rle
|
||||||
|
options =
|
||||||
|
writeback-device = /dev/zvol/tarta-zoot/swap-writeback
|
||||||
|
```
|
||||||
|
|
||||||
|
## Automatic Disk Decryption with TPM2
|
||||||
|
|
||||||
|
It's a friendlier experience to just encrypt your root partition with tpm and
|
||||||
|
lunlock your remaining drives with key files stored at /etc/ukskeys. This way
|
||||||
|
you only need to reregister one key with your tpm and the remaining drives will
|
||||||
|
be unlocked automatically.
|
||||||
|
|
||||||
|
Add your luks keys to the tpm module and set up boot parameters:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Enroll for the first time
|
||||||
|
sudo -E systemd-cryptenroll --tpm2-device=auto --tpm2-pcrs=0+2+4+7 /dev/nvme1n1p3
|
||||||
|
|
||||||
|
# Add tpm2 configuration option to /etc/crypttab
|
||||||
|
# You can get the uuid with lsblk and blkid
|
||||||
|
luks-d9828faa-2b8c-4184-9e74-9054ae328c6d UUID=d9828faa-2b8c-4184-9e74-9054ae328c6d none tpm2-device=auto,discard
|
||||||
|
|
||||||
|
# Add rd.luks.options=tpm2-device=auto to grub
|
||||||
|
sudo grubby --args="rd.luks.options=tpm2-device=auto" --update-kernel=ALL
|
||||||
|
|
||||||
|
# Regenerate the boot parameters
|
||||||
|
sudo dracut -f
|
||||||
|
```
|
||||||
|
|
||||||
|
We can configure our system to automatically reenroll the tpm device on boot so
|
||||||
|
you only need to enter your password on kernel updates.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Create a new random password for your disk
|
||||||
|
sudo cryptsetup luksAddKey /dev/nvme0n1p3
|
||||||
|
```
|
||||||
|
|
||||||
|
/etc/systemd/system/tpm_luks_cryptenroll.service
|
||||||
|
|
||||||
|
```conf
|
||||||
|
[Unit]
|
||||||
|
Description=Automatically runs systemd-cryptenroll on login
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart=/usr/bin/systemd-cryptenroll --tpm2-device=auto --tpm2-pcrs=0+2+4+7 --wipe-slot=tpm2 /dev/nvme0n1p3
|
||||||
|
# new random password you just created
|
||||||
|
Environment=PASSWORD=
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Now enable the service
|
||||||
|
sudo systemctl enable tpm_luks_cryptenroll.service
|
||||||
|
```
|
||||||
|
|
||||||
|
## Firefox GPU Rendering
|
||||||
|
|
||||||
|
<https://community.frame.work/t/linux-battery-life-tuning/6665>
|
||||||
|
|
||||||
|
```bash
|
||||||
|
dnf install intel-media-driver intel-gpu-tools
|
||||||
|
```
|
||||||
|
|
||||||
|
Type in about:config in the address bar and hit enter.
|
||||||
|
|
||||||
|
Set media.rdd-ffmpeg.enabled, media.ffmpeg.vaapi.enabled and
|
||||||
|
media.navigator.mediadatadecoder_vpx_enabled to true.
|
||||||
|
|
||||||
|
Close and reopen your browser
|
||||||
|
|
||||||
|
Run the command sudo intel_gpu_top, play a 4k video and check whether the Video
|
||||||
|
section is above 0.00%
|
||||||
|
|
||||||
|
## Gnome Software Updates (packagekitd and software)
|
||||||
|
|
||||||
|
To prevent Gnome Shell from starting Software open Settings->Search and disable
|
||||||
|
Software from there.
|
||||||
|
|
||||||
|
Disable auto-updates
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo systemctl disable packagekit
|
||||||
|
sudo systemctl stop packagekit
|
||||||
|
|
||||||
|
dconf write /org/gnome/software/allow-updates false
|
||||||
|
dconf write /org/gnome/software/download-updates false
|
||||||
|
```
|
||||||
|
|
||||||
|
## Turn Off Fingerprint When Laptop Lid Closed
|
||||||
|
|
||||||
|
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 stop and mask the fprintd service on lid
|
||||||
|
close, and unmask and start the fprintd service on lid open.
|
||||||
|
|
||||||
|
We also check that the HDMI cable is connected by testing the contents of
|
||||||
|
/sys/class/drm/card0-HDMI-A-1/status.
|
||||||
|
|
||||||
|
Follow the steps below:
|
||||||
|
|
||||||
|
1. Create a .locks file in your home dir: `mkdir ~/.locks`
|
||||||
|
2. Create file /etc/acpi/laptop-lid.sh with the following contents:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
lock=/home/ducoterra/.locks/fprint-disabled.lock
|
||||||
|
|
||||||
|
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
|
||||||
|
touch "$lock"
|
||||||
|
systemctl stop fprintd
|
||||||
|
systemctl mask fprintd
|
||||||
|
elif [ -f "$lock" ]
|
||||||
|
then
|
||||||
|
systemctl unmask fprintd
|
||||||
|
systemctl start fprintd
|
||||||
|
rm -f "$lock"
|
||||||
|
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:
|
||||||
|
|
||||||
|
`sudo service acpid restart`
|
||||||
|
|
||||||
|
Now the fingerprint will be used only when the lid is open.
|
||||||
|
|
||||||
|
In order to restore the correct state of the fprintd service if you
|
||||||
|
disconnect/reconnect while the laptop is off, you may call the above script
|
||||||
|
from a systemd init file. The steps to do this are the following:
|
||||||
|
|
||||||
|
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 the service with
|
||||||
|
|
||||||
|
`sudo systemctl start laptop-lid.service`
|
||||||
|
|
||||||
|
4. Enable the service so that it starts automatically on boot
|
||||||
|
|
||||||
|
`sudo systemctl enable laptop-lid.service`
|
||||||
|
|
||||||
|
Now the status should be correct even after connecting/disconnecting when the
|
||||||
|
computer is off.
|
||||||
|
|
||||||
|
## Power Button Behavior
|
||||||
|
|
||||||
|
The power button is controlled from 2 locations:
|
||||||
|
|
||||||
|
1. DCONF (or gnoem settings) at `gnome.settings-daemon.plugins.power`
|
||||||
|
2. ACPI at /etc/acpi/events/powerconf
|
||||||
|
|
||||||
|
The powerconf acpi configuration will execute at the same time the gnome settings do.
|
||||||
|
This can lead to situations where the gnome settings say "suspend" but the acpi settings
|
||||||
|
say "shutdown". On waking up your laptop it will immediately shutdown.
|
||||||
|
|
||||||
|
The solution is to comment out everything in /etc/acpi/events/powerconf and rely on the
|
||||||
|
gnome settings **OR** set the gnome settings to "nothing" and edit
|
||||||
|
`/etc/acpi/actions/power.sh` with the behavior you expect. Either way you should pick
|
||||||
|
one to control power button behavior.
|
||||||
|
|
||||||
|
## Discord
|
||||||
|
|
||||||
|
vim ~/.local/share/applications/Discord.desktop
|
||||||
|
|
||||||
|
```conf
|
||||||
|
[Desktop Entry]
|
||||||
|
Encoding=UTF-8
|
||||||
|
Name=Discord
|
||||||
|
Exec=/home/ducoterra/Applications/Discord/Discord
|
||||||
|
Icon=/home/ducoterra/Applications/Discord/discord.png
|
||||||
|
Type=Application
|
||||||
|
Categories=Communication;
|
||||||
|
```
|
||||||
|
|
||||||
|
### Discord sharing not working
|
||||||
|
|
||||||
|
THIS IS PROBABLY A PER-APP THING
|
||||||
|
|
||||||
|
Likely the thing you're trying to share doesn't work, it's not wayland's fault.
|
||||||
|
|
||||||
|
If you're trying to share firefox - download the firefox binary and dnf
|
||||||
|
uninstall the other one. For whatever reason the preinstalled binary doesn't
|
||||||
|
like screen share. You can use the following:
|
||||||
|
|
||||||
|
~/.local/share/applications/firefox.desktop
|
||||||
|
|
||||||
|
```conf
|
||||||
|
[Desktop Entry]
|
||||||
|
Encoding=UTF-8
|
||||||
|
Name=Firefox
|
||||||
|
Exec=/home/ducoterra/Applications/firefox/firefox-bin
|
||||||
|
Icon=/home/ducoterra/.icons/firefox.svg
|
||||||
|
Type=Application
|
||||||
|
Categories=Browser;
|
||||||
|
```
|
||||||
|
|
||||||
|
## Minecraft
|
||||||
|
|
||||||
|
1. You can find extra java versions at /etc/alternatives
|
||||||
|
2. You need to `dnf install xrandr` to launch any modpacks
|
||||||
|
3. You can create a desktop icon by putting this at
|
||||||
|
~/.local/share/applications/*.desktop:
|
||||||
|
|
||||||
|
```conf
|
||||||
|
[Desktop Entry]
|
||||||
|
Type=Application
|
||||||
|
Version=1.0
|
||||||
|
Name=Minecraft
|
||||||
|
Comment=Minecraft Launcher
|
||||||
|
Path=/home/ducoterra/Applications
|
||||||
|
Exec=minecraft-launcher
|
||||||
|
Icon=/home/ducoterra/Icons/minecraft-launcher.png
|
||||||
|
Terminal=false
|
||||||
|
Categories=Games;
|
||||||
|
```
|
||||||
|
|
||||||
|
## Sound Devices
|
||||||
|
|
||||||
|
If you want to disable a specific device or tell Fedora not to use a specific device
|
||||||
|
as output or input (looking at you yeti microphone, you're not a speaker), you can
|
||||||
|
install pulse audio control for much more fine-tuned... control.
|
||||||
|
|
||||||
|
Setting your speakers to analog output seems to work best for a USB dac if it has
|
||||||
|
a separate volume knob since this ties the volume knob on the dac to the internal
|
||||||
|
volume of your computer.
|
||||||
|
|
||||||
|
Setting your mic to analog input works just fine on a yeti usb mic.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dnf install pavucontrol
|
||||||
|
```
|
||||||
|
|
||||||
|
## Install ffmpegthumbnailer, remove totem
|
||||||
|
|
||||||
|
totem-thumbnailer crashes all the time and isn't as good as ffmpeg's thumbnailer.
|
||||||
|
What's more, totem video player ("Videos" by default on gnome) is not as good as vlc
|
||||||
|
and doesn't work very well for anything more than basic video playback.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dnf remove totem
|
||||||
|
sudo dnf install ffmpegthumbnailer
|
||||||
|
```
|
||||||
|
|
||||||
|
## Add compatibility for HEIC to mogrify
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dnf install libheic-freeworld
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user