Misc: setup and fixes

- Update README setup distro list
- Show battery percentage in GNOME
- Fix `full-script` not exiting on failure
- Add manual script for Zellij
- Rename ab-av1 aliases
- Fix fish setup
- Change SSH port
- Include JXL, date tools, tokei, f3
- Update setup guide to Fedora 42
This commit is contained in:
DuckDuckWhale 2024-12-08 22:35:51 -08:00
parent 8d214518ff
commit 5a61b84c2d
Signed by: DuckDuckWhale
GPG Key ID: E4B9FC170FFD71CE
10 changed files with 89 additions and 43 deletions

View File

@ -14,9 +14,10 @@ Here you can find my personal configuration files!
- `rust`: installs the Rust programming language and adjust bash config files accordingly. May
consume ~1 GiB of disk space.
- `helix`: installs the Helix editor. May consume ~150 MiB of disk space.
- `setup`: Setup guides for Linux machines, mostly focused on Debian & Ubuntu. Includes
installation guides (dual boot or regular install) and system and user level
setups/configurations.
- `setup`: Setup guides for Linux machines, mostly focused on Fedora, Debian,
and Ubuntu.
Includes installation guides (dual boot or regular install) and
system and user level setups/configurations.
- `system`: system level utilities
- `mac-fnmode`: fix function keys' behavior when using Mac keyboards
- `sshd`: SSH daemon configuration

View File

@ -26,7 +26,8 @@ alias ls='ls --color'
alias mosh='mosh -o'
alias cargo='cargo auditable'
alias md='pulldown-cmark -TFSLH'
alias auto-av1='nice ab-av1 auto-encode --min-samples 2 --keyint 2s --scd true'
alias av1-auto='nice ab-av1 auto-encode --min-samples 3 --keyint 2s --scd true'
alias av1-search='nice ab-av1 crf-search --min-samples 3 --keyint 2s --scd true'
# Shows a oneline preview of all files under the folder after changing directory.

View File

@ -62,5 +62,8 @@ export PATH="$HOME/.local/bin:$PATH:/usr/lib/llvm-15/bin"
alias md='pulldown-cmark -TFSLH'
alias mosh='mosh -o'
alias cargo='cargo auditable'
alias auto-av1='ab-av1 auto-encode --min-samples 2 --keyint 2s --scd true'
alias av1-auto='nice ab-av1 auto-encode --min-samples 3 --keyint 2s --scd true'
alias av1-search='nice ab-av1 crf-search --min-samples 3 --keyint 2s --scd true'
set -x PATH "$HOME/.cargo/bin" $PATH
EOF

View File

@ -1,4 +1,5 @@
#!/bin/sh
set -e
cd auto
./auto
cd ../manual/rust
@ -8,4 +9,4 @@ cd ../helix
./helix
cd ../starship
./starship
echo success
echo 'Full setup complete!'

View File

@ -84,7 +84,7 @@ fn main() -> anyhow::Result<()> {
let mut config_fish_path = dirs::config_dir().context("can't find config directory")?;
config_fish_path.push("fish");
fs::create_dir_all(&config_fish_path)?;
fs::create_dir_all(&config_fish_path).context("failed to create fish config directory")?;
config_fish_path.push("config.fish");
let config_fish = match File::open(&config_fish_path) {
Ok(file) => {
@ -102,6 +102,7 @@ fn main() -> anyhow::Result<()> {
new_config_fish.push('\n');
}
}
new_config_fish.push_str(ENV_FISH);
new_config_fish.trim().to_owned() + "\n"
}
Err(e) if e.kind() == ErrorKind::NotFound => String::new(),

6
manual/zellij/zellij Executable file
View File

@ -0,0 +1,6 @@
#!/bin/sh -e
if ! command -v cargo > /dev/null; then
echo "Error: cargo not found"
exit 1
fi
cargo install zellij --locked

View File

@ -1,13 +1,28 @@
# Fedora Installation
> **Note**
>
> For Fedora >= 42, the installer, Anaconda, has been modernized with
> its new Web UI.
> This means that the detailed setup procedure that follows is no longer
> necessary if you:
> - Don't dual boot via the same disk,
> - Don't need to manage partitions,
> - Don't use existing file systems,
> - And don't mind using crc32c for btrfs checksum, which is good
> enough for most.
>
> Simply follow the setup guide and make sure to encrypt your
> disk and set sufficiently long and/or complex passphrases.
Here is how I installed Fedora. I chose to migrate from ext4 to btrfs, the
default file system for Fedora. I also bought a new disk, which means that I
needed to create everything from scratch.
_Note: This document details the installation only. For setup, see
_This document details the installation only. For setup, see
[Fedora System Setup](fedora-system-setup.md) or
[Fedora User Setup](fedora-user-setup.md). This is originally written
for Fedora 39 and updated to Fedora 40._
for Fedora 39 and updated to Fedora 41._
By following these steps, you will be able to install Fedora with:
- `/` as a btrfs subvolume using xxhash as the checksum function on LUKS2 (an
@ -31,9 +46,15 @@ MB/s, which I found acceptable, so that's what I went with.
## Making a Fedora Live USB
Simply go to the Fedora project website and download the ISO. I opted not to
use the Fedora Media Writer because I like collecting Linux ISOs. It shouldn't
impact the result.
Simply go to the Fedora project website and download Fedora Media Writer or the
ISO. I sometimes opt not to use the Fedora Media Writer because I like
collecting Linux ISOs. It shouldn't impact the result.
### Fedora Media Writer
Pick automatic download and select Fedora Workstation. Flash your USB stick.
### ISO
After the download you may find the GPG-signed SHA256 checksum file from the
icon next to the ISO download. You may find the GPG key fingerprints and
@ -45,20 +66,26 @@ corrupted his disk._
## Preparing the SSD
Boot the USB. Open gparted by typing its name and pressing enter. Make a GPT
partition table.
Boot the USB. Open Disks by typing its name and pressing enter. Make a GPT
partition table by using the three dots at the top right.
(If you have paintext data on the drive, you really should do a NVME sanitize.
(If you have plaintext data on the drive, you really should do a NVMe sanitize.
You may find instructions on doing that by looking up the man page for the
`nvme` command.)
Make a large empty partition with no file system (choose "unformatted") leaving
10240 MiB at the end of the drive. You may find a calculator to be handy here.
10240 MiB at the end of the drive. You can do this by typing 10240 into the
bottom text box (free space at the end) and clicking into the top box to refresh
its calculation.
Make a 1024 MiB partition at the very end of the drive and format with ext4,
then make another one right before it and also format with ext4. Formatting
here really isn't necessary if not for the Fedora installer graying out all the
fields when it doesn't detect a file system (bug?).
then make another one right before it and also format with ext4.
This is easier on gparted then GNOME Disks, but you can accomplish the same
thing by making a 8192 MiB temporary partition then deleting it after making the
two 1024 MiB partitions at the end.
Formatting here really isn't necessary if not for the Fedora installer graying
out all the fields when it doesn't detect a file system (bug?).
I assume that you are using an UEFI system as almost all modern x86_64 systems
have that, but you could verify that with `[ -d /sys/firmware/efi ] && echo UEFI
@ -66,24 +93,24 @@ have that, but you could verify that with `[ -d /sys/firmware/efi ] && echo UEFI
Now, make the LUKS2 layer by opening a terminal and typing:
`sudo cryptsetup luksFormat --hash sha512 --use-random /dev/<root-partition>`
`sudo cryptsetup luksFormat --use-random /dev/<root-partition>`
...where `<root-partition>` is the big partition you made first and should look
something like `/dev/nvme0n1p1`. There are some sane defaults that I didn't
include in this command as all new systems should have them by default, but you
could spell it out if you want to be extra certain: `--type luks2 --key-size 512
- --cipher aes-xts-plain64 --iter-time 2000 --verify-passphrase`
--cipher aes-xts-plain64 --iter-time 2000 --verify-passphrase`
Then, unlock this encrypted partition by typing: `sudo cryptsetup open /dev/
<root-partition> <mapper>`, where `<mapper>` is the name for the mapper file and
doesn't matter for our install. You could just use `luks`.
Now, make the btrfs file system with xxhash as the checksum function: `sudo
mkfs.btrfs --csum xxhash <mapper>`. I didn't use LVM here as btrfs snapshots
are much better and support RAID0/1 well. btrfs snapshots doesn't have LVM
snapshots' heavy performance penalty, doesn't require preallocation of space
which is often wasted, and doesn't become invalid later when its space is used
up.
mkfs.btrfs --csum xxhash /etc/mapper/<mapper>`. I didn't use LVM here as btrfs
snapshots are much better and support RAID0/1 well. btrfs snapshots doesn't
have LVM snapshots' heavy performance penalty, doesn't require pre-allocation of
space which is often wasted, and doesn't become invalid later when its space is
used up.
Then, close the LUKS layer as the installer requires the password to it for
installation. If you skip this step, you would be forced to rescan in the
@ -98,13 +125,6 @@ I have some commands for unlocking the LUKS in my Ubuntu install guide, but here
you can simply unlock the LUKS volume and the installer does all the work for
you setting that up.
Click the `+` button to make a new root subvolume. Anaconda, the Fedora
installer, requires you to create a new btrfs subvolume at the time of
writing. You may simply select the storage as `btrfs.<some-number>`. Maybe
`<some-number>` is for disambiguation when you have multiple btrfs file systems
(smh my head)? Then do the same for the home subvolume. The default names are
fine and the mount points are `/` and `/home`, respectively.
- Format `<boot-partition>` (e.g. `/dev/nvme0n1p3`) as ext4 and mount to `/
boot`. (Check the format checkbox.)
- Format `<efi-partition>` (e.g. `/dev/nvme0n1p2`) as System EFI Partition and

View File

@ -23,12 +23,13 @@ wl-clipboard qrencode xournalpp gstreamer1-plugins-bad-free-extras
gnome-extensions-app gnome-shell-extension-gsconnect nautilus-gsconnect
kernel-tools mozilla-openh264 gstreamer1-plugin-openh264 trash-cli ripgrep
gnome-tweaks goldendict-ng gcc-c++ gimp alacritty clang clang-tools-extra bat
helix fish kdiskmark kiwix-desktop`
helix fish kdiskmark kiwix-desktop libjxl-utils`
### As needed
`dnf install gnome-usage install rlwrap mediainfo nmap xeyes progress
duperemove memtest86+ lm_sensors efitools quearcode qpdf kdenlive stress`
duperemove memtest86+ lm_sensors efitools quearcode qpdf kdenlive stress tokei
f3 exiftool datediff qalculate`
## AMD
@ -90,8 +91,9 @@ can clear the app data.
- Ungoogled Chromium
- `flatpak install flathub io.github.ungoogled_software.ungoogled_chromium`
- Disable smart cards, printing system, all user files
- Enable GPU acceleration
- Enable GPU acceleration and disable all devices
- Remove Other files: `/run/.heim_org.h5l.kcm-socket`
- Removing X11 will cause it to fail to launch, so don't do that.
- Minecraft (Prism Launcher)
- `flatpak install flathub org.prismlauncher.PrismLauncher`
- Remove `xdg-download:ro`
@ -152,7 +154,15 @@ If you have just came from a non-SELinux distro (say the Debian family) and see
a permission denied message from `sshd` in your logs, use
`restorecon -RFv ~/.ssh` to please SELinux.
(Don't forget to install Mosh!)
### Custom Port
If you are paranoid like me and want to put an extra layer of defense against
script kiddies vulnerability scans over SSH, here's how you may use a custom
port for your SSH:
1. Change `Port 22` to `Port <your-port>` in `/etc/ssh/sshd_config`.
2. `sudo semanage port -a -t ssh_port_t -p tcp <your-port>`
3. `sudo systemctl reload sshd`
## Framework 16

View File

@ -16,7 +16,8 @@ for Fedora 39 and updated to Fedora 40._
## Power
Turn off `Automatic Suspend` when `Plugged In`.
Turn off `Automatic Suspend` when `Plugged In` and turn on `Show Battery
Percentage`.
## Displays
@ -41,14 +42,16 @@ In `Input Sources`, add `Chinese (Intelligent Pinyin)` and
### Shortcuts
| Name | Shortcut | Command |
| Home folder | `Super` + `F` |
| Launch email client | `Super` + `E` |
| Launch web browser | `Super` + `W` |
| Name | Shortcut |
| ---------------------- | ------------- |
| Home folder | `Super` + `F` |
| Launch email client | `Super` + `E` |
| Launch web browser | `Super` + `W` |
| Microphone mute/unmute | `Super` + `A` |
In Settings -> Keyboard -> Custom Shortcuts:
| Name | Shortcut | Command |
| ---- | -------- | ------- |
| Launch Calculator | `Super` + `C` | `gnome-calculator` |
| Launch Dictionary | `Super` + `D` | `goldendict-ng` |
| Launch Terminal | `Super` + `T` | `alacritty` |

View File

@ -10,7 +10,7 @@ Here's my personal Ubuntu 23.10 setup. (Make sure to use Wayland on Nvidia!)
goldendict gparted keepassxc mpv needrestart obs-studio ripgrep sshfs synaptic tmux trash-cli
ufw vim-gtk3 wl-clipboard linux-tools-generic build-essential`
- Optional:
- `sudo apt install arp-scan asciinema bookworm foliate gimp gnome-firmware gnome-games
- `sudo apt install arp-scan asciinema foliate gimp gnome-firmware gnome-games
gnome-nettool gnome-packagekit gnome-passwordsafe gnome-shell-pomodoro gnome-usage gthumb
heif-gdk-pixbuf heif-thumbnailer mkvtoolnix-gui openjdk-17-jdk pulseeffects qpdf ranger
syncplay virtualbox-qt vlc audacity f3 prusa-slicer cmake gstreamer1.0-plugins-bad ddcutil