Add: system setup tutorials for Ubuntu & Debian

This commit is contained in:
DuckDuckWhale 2022-10-22 01:27:00 -07:00
parent 50ea11f79a
commit 9d4777f7f7
Signed by: DuckDuckWhale
GPG Key ID: E4B9FC170FFD71CE
4 changed files with 815 additions and 0 deletions

290
setup/debian-setup.md Normal file
View File

@ -0,0 +1,290 @@
# Debian Setup
Here's my personal Debian 12 Bookworm setup.
- Set font size in Terminal to 15 and initial column count to 85
- Must haves:
- `sudo apt install curl earlyoom ffmpeg flatpak git gnome-clocks \
gnome-shell-pomodoro gnome-software-plugin-flatpak gnome-sound-recorder \
gnome-todo gnome-weather goldendict gparted keepassxc mosh obs-studio \
shadowsocks-libev sshfs synaptic tmux trash-cli vim-gtk3 vlc \
gnome-boxes wl-clipboard needrestart deja-dup ufw ddcutil`
- Optional:
- `sudo apt install openjdk-17-jdk gthumb gnome-usage ranger
gnome-firmware gnome-games gnome-nettool qpdf pulseeffects
gnome-packagekit gnome-passwordsafe mkvtoolnix-gui virtualbox-qt syncplay`
- FlatHub:
- `flatpak remote-add --if-not-exists flathub
https://flathub.org/repo/flathub.flatpakrepo`
- Allocate 8GiB for swap
```
sudo swapoff /swapfile
sudo fallocate -l 8GiB /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
```
- Early OOM config: edit `/etc/default/earlyoom` and add:
- `--avoid
'(^|/)(systemd|sshd|mosh-server|ssh|vim|sudo|sudoedit|gnome-shell|gnome-terminal-)$'
--prefer '(^|/)(Web Content|Isolated Web Co)$'`
- Firefox
- Change default zoom to 110%
- Enable HTTPS only
- Proxy DNS when using SOCKS v5
- Enable DNS over HTTPS
- In `about:config` set `browser.sessionstore.max_windows_undo` to 10.
- Go to settings -> `Region & Language` and install `Chinese (simplified)`.
## Optional packages
- `clangd` for VSCodium C language server with
`llvm-vs-code-extensions.vscode-clangd` (?)
- `imagemagick` for `convert`, comment out with `<!-- -->` PDF policy in
`/etc/ImageMagick-6/policy.xml` (?)
- Cross compiling (?)
- `gcc-aarch64-linux-gnu`
- `gcc-arm-linux-gnueabihf`
## UFW
`$ sudo ufw enable`
## Wayland (?)
- `sudoedit /usr/lib/udev/rules.d/61-gdm.rules` and comment the two uncommented
lines
- Reboot or restart gdm3 (didn't try)
## Apps
- gnome-tweaks
- `sudo apt install gnome-tweaks`
- Swap capslock and ESC in `Keyboard & Mouse` -> `Additional Layout Options`
-> `Caps Lock behavior`
- Change `Mouse Click Emulation` to `Area`
- Turn on weekdays and battery percentage in `Top Bar`
- Flat mouse acceleration profile
- Turn off suspend when closing lid
- Extensions
- `sudo apt install gnome-shell-extensions`
- Turn on:
- `Applications menu`
- `Places status indicator`
- `Windownavigator`
- `Workspace Indicator`
- Note: to manually install Gnome extensions, unzip it and copy the `uuid`
field in `metadata.json` and rename the directory to this name, then move
to `~/.local/share/gnome-shell/extensions` and logout and login.
- GSConnect
- `sudo apt install gnome-shell-extension-gsconnect`
- Uncheck SFTP auto mount
- Add commands:
- `Lock`: `loginctl lock-session`
- `Quack`: `ffplay -v quiet -nodisp -autoexit ~/Music/'.Not
Music'/Ringtones/Quack.mp3`
- UFW:
- `sudo ufw allow 1716:1764/tcp`
- `sudo ufw allow 1716:1764/udp`
- Flatseal
- `flatpak install flathub com.github.tchx84.Flatseal`
- OBS Studio
- `$ sudo apt install qtwayland5`
- In `/usr/share/applications/com.obsproject.Studio.desktop`, replace
`Exec=obs` with `Exec=sh -c '[ "$XDG_SESSION_TYPE" = "wayland" ] && obs
-platform wayland || obs'`
- Gnome Calendar
- Add Google accounts in online accounts
- On older versions of Ubuntu < 22.04, not tested for 22.04:
- Wait for a bit, it's kinda buggy but it will work at the end (wait for ~2
days)
- Golden Dict
- Import dictionaries in `~/.software/goldendict/stardict-cc-cedict`
- Don't search in dictionaries contains more then 10000 articles
- <https://einverne.github.io/post/2018/08/goldendict.html>
- Xournal++
- `sudo apt install xournalpp texlive-latex-extra`
- cameractrls
- `flatpak install hu.irl.cameractrls`
- Minecraft
- TODO: PolyMC just had some problems
- To host servers: `sudo ufw allow 25565/tcp`
- Bottles
- `flatpak install flathub com.usebottles.bottles`
- Discord
- `flatpak install flathub com.discordapp.Discord`
- Slack
- `flatpak install flathub com.slack.Slack`
- Zoom
- `flatpak install flathub us.zoom.Zoom`
## Optional Apps
- Impatience (adjust Gnome animation speed)
- `sudo apt install gnome-shell-extension-impatience`
- Enable in extensions and set speed to 0.7
- Wobbly Windows (?)
- From
<https://extensions.gnome.org/extension/2950/compiz-alike-windows-effect/>
- Turn off maximize effect
- Increase restore factor to 5
- System monitor
- `$ sudo apt install gnome-shell-extension-system-monitor`
- Show only CPU (digit and graph) and memory (digit).
- OpenWeatherMap
- `$ sudo apt install gnome-shell-extension-weather`
- On older systems (< 21.04), download and install from
`https://extensions.gnome.org/extension/750/openweather/`
- Set location to La Jolla
- Switch to metric units
- VSCodium
- `flatpak install flathub com.vscodium.codium`
- Birdtray
- `$ sudo apt install birdtray`
- Configure it by running `birdtray` and clicking on the tray icon
- In Startup Applications Preference:
- Name: `Birdtray`
- Command: `sh -c "sleep 20 && /usr/bin/birdtray"`
- Comment: `Minimize to tray for Thunderbird`
- Wait for bugs to be fixed before removing sleep:
- <https://github.com/gyunaev/birdtray/issues/362>
- <https://github.com/gyunaev/birdtray/issues/430>
- Hiding: check all except hide/show by clicking icon
- Broken on Wayland
- Android Studio
- Move `Ctrl+S` from IdeaVim to IDE
- Enabled `Mark modified (*)`
- Disable both `Save files on frame deactivation` and `Save files
automatically if application is idle`
## Grub background
### Tool
- `$ sudo apt install grub-customizer`
- Put in background manually
### Manual Script
```
sudo mkdir /opt/grub
sudo cp -r background/ /boot/grub/
sudo chown -R root:root /opt/grub
sudo chmod -R 700 /opt/grub
```
- Add the following lines to `/opt/grub/cycle-backgrounds.sh`:
```
#!/bin/sh
cd /boot/grub/background
mv background.png tmp.png
mv background-1.png background.png
mv tmp.png background-1.png
```
- `$ sudo chown root:root /opt/grub/cycle-backgrounds.sh`
- `$ sudo chmod 700 /opt/grub/cycle-backgrounds.sh`
- Add `@reboot /opt/grub/cycle-backgrounds.sh` to root crontab.
- In `/etc/default/grub`:
- Add `GRUB_BACKGROUND=/boot/grub/background/background.png`
- Change `GRUB_TIMEOUT=10` to `GRUB_TIMEOUT=3`
- `$ sudo update-grub`
## OpenSSH Server & Mosh
```
sudo apt install -y openssh-server mosh
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo cp ../system/sshd_config /etc/ssh/sshd_config
sudo groupadd --system ssh-users
sudo usermod -aG ssh-users $(whoami)
mkdir -p ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# insert your SSH public keys into the file
sudo ufw limit 22/tcp
sudo ufw allow 60001:60999/udp
sudo systemctl restart ssh
```
## See logs as admin
`sudo usermod -aG adm $(whoami)`
## Proton black screen fix (?)
Source:
<https://github.com/ValveSoftware/steam-runtime/issues/312#issuecomment-739441559>
```
sudo mv /usr/share/vulkan/icd.d/intel_icd.x86_64.json \
/usr/share/vulkan/icd.d/intel_icd.x86_64.json.disabled
```
## Proprietary encodings (?)
- `$ sudo apt install ubuntu-restricted-extras`
## Dual boot
### Dislocker
```
$ sudo apt install dislocker
$ sudo mkdir /media/"$(whoami)" /mnt/dislocker /opt/dislocker
$ sudo chmod 700 /media/"$(whoami)" /mnt/dislocker /opt/dislocker
$ sudo chown $user:$user /media/"$(whoami)"
$ sudo chown root:root /mnt/dislocker /opt/dislocker
```
Copy the `.BEK` file to `/opt/dislocker/"$(whoami)".bek`.
```
$ sudo chown root:root /opt/dislocker/"$(whoami)".bek
$ sudo chmod 700 /opt/dislocker/"$(whoami)".bek
```
Add the following lines to `/etc/fstab` with `<user>` replaced:
```
/dev/nvme0n1p6 /mnt/dislocker fuse.dislocker nofail,nouser,umask=0077,bekfile=/opt/dislocker/<user>.bek 0 0
/mnt/dislocker/dislocker-file /media/<user> auto nofail,umask=0077,gid=<user>,uid=<user> 0 0
```
Mount manually with:
```
$ sudo dislocker /dev/nvmen1p6 -p -- /mnt/dislocker
$ sudo mount -o loop /mnt/dislocker/dislocker-file /media/"$(whoami)"
```
## Hardware specific
### Nvidia proprietary driver screen tearing fix
```
echo 'options nvidia-drm modeset=1' | sudo tee \
/etc/modprobe.d/nvidia-drm-nomodeset.conf > /dev/null
```
### Digimend for Huion tablet (works with H640p)
- = 20.10 & using wayland: no longer necessary
- = 21.04:
- `$ sudo apt install digimend-dkms`
- Reboot.
- < 21.04:
- Download and install from
`https://github.com/DIGImend/digimend-kernel-drivers`.
### Razer mouse
```
sudo add-apt-repository ppa:polychromatic/stable
sudo apt install openrazer-meta polychromatic
```
## Workarounds
- [Blanked screen doesn't wake up after locking \[drmModeAtomicCommit: Argument
invalide\] \[drmModeAtomicCommit: Invalid
argument\]](https://bugs.launchpad.net/ubuntu/+source/mutter/+bug/1968040)
- Put `MUTTER_DEBUG_ENABLE_ATOMIC_KMS=0` in `/etc/environment`

152
setup/dual-boot-ubuntu.md Normal file
View File

@ -0,0 +1,152 @@
# Dual Boot Ubuntu
Here are my personal notes back when I first dual booted Ubuntu, with some
updates sprinkled in. Use with caution and **backup everything on another
detached disk** before proceeding. Although it is very unlikely for things to
go wrong when this guide is properly followed, I will not be responsible for any
data loss.
This guide was first written for Ubuntu 18.04 LTS so some claims may no longer
be true (please let me know if it is false). Doing this guide we'll dual boot
Ubuntu and Windows 10 with setup for encryption of root and home mounts.
## Questions before we begin
You need to think about these things before you do anything. I have attached my
personal answers below but it might be different for you.
- How much space to allocate for Ubuntu?
- ~25 GiB, the recommended minimum is 25 GB and my personal usage has never
exceeded 40GiB for the root drive.
- If you don't have enough space, you may forgo a separate `/home` to gain
flexibility as root space could shrink or grow and it's hard to guess the
sizes upfront. Plus, if your data is on the Windows BitLocker drive, you
could always make a separate drive to keep your data 2 years later when
the next Ubuntu LTS comes out or just restore from backup. Or, you could
make use of LVM...
- After daily driving Ubuntu I switched to separate `/` and `/home` on
top of LVM and keeping at least 5GiB of free space for each LV. When
I need more space, I always live resize by `sudo lvextend -rL +5G
vgroot/lvhome` so I don't have to guess the total size.
- Where should Ubuntu root partition be?
- Right before `/boot` before `D:`. Since moving the starting location of a
BitLocker protected drive needs full data move using an external hard
drive and is lots of hassle, we can consider the beginning of `D:` to be
fixed. putting `/boot` right before `D:` makes its location unlikely to
be affected by moving partitions around so we don't have to deal with any
potential `/boot` hassles which may require reinstallation of GRUB.
- After using it for a while, I've decided to put it at the end of the disk
instead.
- Leaving free space between Ubuntu's root and the Windows drive makes both
OSs easy to resize because it is not hard to change the starting location
of root (GParted can do the job itself) and instead of requiring a full
move in case of expansion of Windows, which is probably more likely, we
require nothing.
- Should you encrypt this partition?
- Yes. There may be sensitive data in `/home/$user/.ssh/`, `/tmp/`,
`/var/log/`, etc. and plus you may want to put the BitLocker key in there
as well for Dislocker and keep them safe in case of losing the laptop.
- Should I encrypt `/boot` or just `/?`
- Just `/`. Encrypting `/boot` provides only somewhat protection against
the kind of Evil Maid where someone changes the kernel and include a
keylogger. This require physical access, and if they have that they can
do more, either:
1. Install another Ubuntu and connect to the Internet to upload password
2. Install a hardware key logger
3. Swap it out for a same-looking machine
- My goal was to only protect against theft and loss, not to protect against
these advanced threats. To do this, you need to either:
- Encrypt `/boot`, which prevents only the swap of a kernel but not any
of the three points above and is hard to implement.
- Password protect BIOS, which makes it very risky when I forget the
BIOS password and protects only against the kernel swap and threat #1.
I consider it not worthy for it adds significant risk only to protect
against the first threat, which is unlikely as I would have to be
specifically targeted by very technical people (they probably could
also disable the password protection or install the keylogger too but
I haven't researched much about this).
- IDK what more could be done.
- Bottom line: never trust the device once it's been tempered with.
- How should I encrypt? LUKS?
- LUKS, I don't want my directory structure to be seen and I want to just
use ext4.
- LVM on LUKS or LUKS on LVM?
- LVM on LUKS, the usual setup with less hassle and I don't need multi-disk
LUKS anyways as this is a single-disk laptop.
- Will dual booting mess up the Windows boot loader?
- Should not, since removing GRUB requires only the removal of its entries
from the EFI partition.
- How to avoid too many password prompts?
- Should have only one prompt at boot when the kernel asks for the password
to decrypt the file systems, and another for normal logins.
- How to dual boot and install with encryption?
- Here is the original guide which I based this one on: [Encrypting disks on
Ubuntu
19.04](https://medium.com/@chrishantha/encrypting-disks-on-ubuntu-19-04-b50bfc65182a)
- With these questions answered, we can perform the installation.
## Installation
- Booting Ubuntu 20.04 LTS live image with `Try Ubuntu` option.
- Verify that we are using UEFI: `$ [ -d /sys/firmware/efi ] && echo UEFI ||
echo BIOS`
- Give 1 GiB (or 500 MiB if you are short on space) for `/boot` using GParted and make a partition
for `/` as well, at least around 25 GB.
- `$ sudo cryptsetup luksFormat --type luks2 --key-size 512 --hash sha512
--use-random /dev/<root partition>`
- Defaults, spell it out if you want to be extra certain:
`--cipher aes-xts-plain64 --iter-time 2000 --verify-passphrase`
- `$ sudo cryptsetup open /dev/<root partition> rootfs`
- No need to overwrite data since it is originally BitLocker encrypted and would
cause loss of performance and lifespan of the SSD.
- `$ sudo pvcreate /dev/mapper/pvroot`
- `$ sudo vgcreate vgroot /dev/mapper/pvroot`
- `$ sudo lvcreate -n lvhome -L 10G vgroot` (`G` refers to GiB according to the
man page)
- Remember to monitor disk usage and when prompted, live extend the LVs!
- `$ sudo lvcreate -n lvroot -L 15G vgroot`
- Start the Ubuntu installation from the shortcut icon on Desktop.
- Choose extra software and set a password.
- Choose `Something else`.
- Format `/dev/<boot partition>` as ext4 and mount to `/boot`.
- Format `/dev/mapper/vgroot-lvroot` as ext4 and mount to `/`.
- Format `/dev/mapper/vgroot-lvhome` as ext4 and mount to `/home`.
- Choose the main disk (`/dev/sd?`) as the `Device for boot loader
installation`.
- Name the parititions if you are feeling fancy.
- Once the installation is complete, click `Continue Testing` to make necessary
changes to load the encrypted partitions at startup.
- Make note of the UUID: `$ sudo blkid /dev/<root partition>`
- Mount the installed Ubuntu OS on `/mnt` and use `chroot` to change the root
directory to `/mnt`.
```
$ sudo mount /dev/mapper/vgroot-lvroot /mnt
$ sudo mount /dev/<boot partition> /mnt/boot
$ sudo mount --bind /dev /mnt/dev
$ sudo chroot /mnt
# mount -t proc proc /proc
# mount -t sysfs sys /sys
# mount -t devpts devpts /dev/pts
```
- In the chroot: `# vi /etc/crypttab`
- Add the following lines to it (replacing `<UUID_ROOTFS>` from the value
obtained from `blkid` command earlier):
```
# <target name> <source device> <key file> <options>
pvroot UUID=<UUID_ROOTFS> none luks,discard
```
- This guide assumes you have an SSD so we have `discard`.
- Update the Linux kernel to load encrypted partitions at startup: `#
update-initramfs -k all -c`
- Exit the chroot shell.
- Reboot.
- Select Enroll MOK at the blue screen MOK manager. Be quick! After a minute
or so it would reboot and you only get one chance.
- Select continue and yes.
## Post Install
- Adjust the boot sequence in UEFI if you want to boot Windows first.
- `$ timedatectl set-local-rtc 1 --adjust-system-clock` to prevent different
system clock time when dual booting.
- Install and configure Dislocker to access Windows BitLocker drives.

311
setup/ubuntu-setup.md Normal file
View File

@ -0,0 +1,311 @@
# Ubuntu Setup
Here's my personal Ubuntu 22.04 setup. (Make sure to enable Wayland on Nvidia!)
- Set font size in Terminal to 15 and initial column count to 85
- Must haves:
- `sudo apt install curl earlyoom ffmpeg flatpak git gnome-clocks \
gnome-shell-pomodoro gnome-software-plugin-flatpak gnome-sound-recorder \
gnome-todo gnome-weather goldendict gparted keepassxc mosh obs-studio \
shadowsocks-libev sshfs synaptic tmux trash-cli vim-gtk3 vlc \
gnome-boxes wl-clipboard needrestart deja-dup ufw ddcutil`
- Optional:
- `sudo apt install openjdk-17-jdk gthumb gnome-usage ranger
gnome-firmware gnome-games gnome-nettool qpdf pulseeffects
gnome-packagekit gnome-passwordsafe mkvtoolnix-gui virtualbox-qt syncplay`
- Remove all snaps:
- ```
sudo apt autoremove --purge snapd
sudo apt-mark hold snapd
trash ~/snap
```
- FlatHub:
- `flatpak remote-add --if-not-exists flathub
https://flathub.org/repo/flathub.flatpakrepo`
- Allocate 8GiB for swap
```
sudo swapoff /swapfile
sudo fallocate -l 8GiB /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
```
- Early OOM config: edit `/etc/default/earlyoom` and add:
- `--avoid
'(^|/)(systemd|sshd|mosh-server|ssh|vim|sudo|sudoedit|gnome-shell|gnome-terminal-)$'
--prefer '(^|/)(Web Content|Isolated Web Co)$'`
- Firefox
- Change default zoom to 110%
- Enable HTTPS only
- Proxy DNS when using SOCKS v5
- Enable DNS over HTTPS
- In `about:config` set `browser.sessionstore.max_windows_undo` to 10.
- Go to settings -> `Region & Language` and install `Chinese (simplified)`.
## Optional packages
- `clangd` for VSCodium C language server with
`llvm-vs-code-extensions.vscode-clangd` (?)
- `imagemagick` for `convert`, comment out with `<!-- -->` PDF policy in
`/etc/ImageMagick-6/policy.xml` (?)
- Cross compiling (?)
- `gcc-aarch64-linux-gnu`
- `gcc-arm-linux-gnueabihf`
## UFW
`$ sudo ufw enable`
## Wayland (?)
- `sudoedit /usr/lib/udev/rules.d/61-gdm.rules` and comment the two uncommented
lines
- Reboot or restart gdm3 (didn't try)
## Apps
- gnome-tweaks
- `sudo apt install gnome-tweaks`
- Swap capslock and ESC in `Keyboard & Mouse` -> `Additional Layout Options`
-> `Caps Lock behavior`
- Change `Mouse Click Emulation` to `Area`
- Turn on weekdays and battery percentage in `Top Bar`
- Flat mouse acceleration profile
- Turn off suspend when closing lid
- Extensions
- `sudo apt install gnome-shell-extensions`
- Turn on:
- `Applications menu`
- `Places status indicator`
- `Windownavigator`
- `Workspace Indicator`
- Note: to manually install Gnome extensions, unzip it and copy the `uuid`
field in `metadata.json` and rename the directory to this name, then move
to `~/.local/share/gnome-shell/extensions` and logout and login.
- GSConnect
- `sudo apt install gnome-shell-extension-gsconnect`
- Uncheck SFTP auto mount
- Add commands:
- `Lock`: `loginctl lock-session`
- `Quack`: `ffplay -v quiet -nodisp -autoexit ~/Music/'.Not
Music'/Ringtones/Quack.mp3`
- UFW:
- `sudo ufw allow 1716:1764/tcp`
- `sudo ufw allow 1716:1764/udp`
- Flatseal
- `flatpak install flathub com.github.tchx84.Flatseal`
- VSCodium
- `flatpak install flathub com.vscodium.codium`
- OBS Studio
- `$ sudo apt install qtwayland5`
- In `/usr/share/applications/com.obsproject.Studio.desktop`, replace
`Exec=obs` with `Exec=sh -c '[ "$XDG_SESSION_TYPE" = "wayland" ] && obs
-platform wayland || obs'`
- Birdtray
- `$ sudo apt install birdtray`
- Configure it by running `birdtray` and clicking on the tray icon
- In Startup Applications Preference:
- Name: `Birdtray`
- Command: `sh -c "sleep 20 && /usr/bin/birdtray"`
- Comment: `Minimize to tray for Thunderbird`
- Wait for bugs to be fixed before removing sleep:
- <https://github.com/gyunaev/birdtray/issues/362>
- <https://github.com/gyunaev/birdtray/issues/430>
- Hiding: check all except hide/show by clicking icon
- Gnome Calendar
- Add Google accounts in online accounts
- On older versions of Ubuntu < 22.04, not tested for 22.04:
- Wait for a bit, it's kinda buggy but it will work at the end (wait for ~2
days)
- Golden Dict
- Import dictionaries in `~/.software/goldendict/stardict-cc-cedict`
- Don't search in dictionaries contains more then 10000 articles
- <https://einverne.github.io/post/2018/08/goldendict.html>
- Xournal++
- `sudo apt install xournalpp texlive-latex-extra`
- < Ubuntu 22.04
- `flatpak install flathub com.github.xournalpp.xournalpp`
- `flatpak install flathub org.freedesktop.Sdk.Extension.texlive` and
choose newest (21.08 at time of writing) for LaTeX support.
- cameractrls
- `flatpak install hu.irl.cameractrls`
- Minecraft
- TODO: PolyMC just had some problems
- To host servers: `sudo ufw allow 25565/tcp`
- Bottles
- `flatpak install flathub com.usebottles.bottles`
- Discord
- `flatpak install flathub com.discordapp.Discord`
- Slack
- `flatpak install flathub com.slack.Slack`
- Zoom
- `flatpak install flathub us.zoom.Zoom`
## Optional Apps
- Impatience (adjust Gnome animation speed)
- `sudo apt install gnome-shell-extension-impatience`
- Enable in extensions and set speed to 0.7
- Wobbly Windows (?)
- From
<https://extensions.gnome.org/extension/2950/compiz-alike-windows-effect/>
- Turn off maximize effect
- Increase restore factor to 5
- System monitor
- `$ sudo apt install gnome-shell-extension-system-monitor`
- Show only CPU (digit and graph) and memory (digit).
- OpenWeatherMap
- `$ sudo apt install gnome-shell-extension-weather`
- On older systems (< 21.04), download and install from
`https://extensions.gnome.org/extension/750/openweather/`
- Set location to La Jolla
- Switch to metric units
- VSCodium
- `flatpak install flathub com.vscodium.codium`
- Birdtray
- `$ sudo apt install birdtray`
- Configure it by running `birdtray` and clicking on the tray icon
- In Startup Applications Preference:
- Name: `Birdtray`
- Command: `sh -c "sleep 20 && /usr/bin/birdtray"`
- Comment: `Minimize to tray for Thunderbird`
- Wait for bugs to be fixed before removing sleep:
- <https://github.com/gyunaev/birdtray/issues/362>
- <https://github.com/gyunaev/birdtray/issues/430>
- Hiding: check all except hide/show by clicking icon
- Broken on Wayland
- Android Studio
- Move `Ctrl+S` from IdeaVim to IDE
- Enabled `Mark modified (*)`
- Disable both `Save files on frame deactivation` and `Save files
automatically if application is idle`
## Grub background
### Tool
- `$ sudo apt install grub-customizer`
- Put in background manually
### Manual Script
```
sudo mkdir /opt/grub
sudo cp -r background/ /boot/grub/
sudo chown -R root:root /opt/grub
sudo chmod -R 700 /opt/grub
```
- Add the following lines to `/opt/grub/cycle-backgrounds.sh`:
```
#!/bin/sh
cd /boot/grub/background
mv background.png tmp.png
mv background-1.png background.png
mv tmp.png background-1.png
```
- `$ sudo chown root:root /opt/grub/cycle-backgrounds.sh`
- `$ sudo chmod 700 /opt/grub/cycle-backgrounds.sh`
- Add `@reboot /opt/grub/cycle-backgrounds.sh` to root crontab.
- In `/etc/default/grub`:
- Add `GRUB_BACKGROUND=/boot/grub/background/background.png`
- Change `GRUB_TIMEOUT=10` to `GRUB_TIMEOUT=3`
- `$ sudo update-grub`
## OpenSSH Server & Mosh
```
sudo apt install -y openssh-server mosh
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo cp ../system/sshd_config /etc/ssh/sshd_config
sudo groupadd --system ssh-users
sudo usermod -aG ssh-users $(whoami)
mkdir -p ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# insert your SSH public keys into the file
sudo ufw limit 22/tcp
sudo ufw allow 60001:60999/udp
sudo systemctl restart ssh
```
## See logs as admin
`sudo usermod -aG adm $(whoami)`
## Proton black screen fix (?)
Source:
<https://github.com/ValveSoftware/steam-runtime/issues/312#issuecomment-739441559>
```
sudo mv /usr/share/vulkan/icd.d/intel_icd.x86_64.json \
/usr/share/vulkan/icd.d/intel_icd.x86_64.json.disabled
```
## Proprietary encodings (?)
- `$ sudo apt install ubuntu-restricted-extras`
## Dual boot
### Dislocker
```
$ sudo apt install dislocker
$ sudo mkdir /media/"$(whoami)" /mnt/dislocker /opt/dislocker
$ sudo chmod 700 /media/"$(whoami)" /mnt/dislocker /opt/dislocker
$ sudo chown $user:$user /media/"$(whoami)"
$ sudo chown root:root /mnt/dislocker /opt/dislocker
```
Copy the `.BEK` file to `/opt/dislocker/"$(whoami)".bek`.
```
$ sudo chown root:root /opt/dislocker/"$(whoami)".bek
$ sudo chmod 700 /opt/dislocker/"$(whoami)".bek
```
Add the following lines to `/etc/fstab` with `<user>` replaced:
```
/dev/nvme0n1p6 /mnt/dislocker fuse.dislocker nofail,nouser,umask=0077,bekfile=/opt/dislocker/<user>.bek 0 0
/mnt/dislocker/dislocker-file /media/<user> auto nofail,umask=0077,gid=<user>,uid=<user> 0 0
```
Mount manually with:
```
$ sudo dislocker /dev/nvmen1p6 -p -- /mnt/dislocker
$ sudo mount -o loop /mnt/dislocker/dislocker-file /media/"$(whoami)"
```
## Hardware specific
### Nvidia proprietary driver screen tearing fix
For Ubuntu < 22.04: `echo 'options nvidia-drm modeset=1' | sudo tee
/etc/modprobe.d/nvidia-drm-nomodeset.conf > /dev/null`
### Digimend for Huion tablet (works with H640p)
- = 20.10 & using wayland: no longer necessary
- = 21.04:
- `$ sudo apt install digimend-dkms`
- Reboot.
- < 21.04:
- Download and install from
`https://github.com/DIGImend/digimend-kernel-drivers`.
### Razer mouse
```
sudo add-apt-repository ppa:polychromatic/stable
sudo apt install openrazer-meta polychromatic
```
## Workarounds
- [Blanked screen doesn't wake up after locking \[drmModeAtomicCommit: Argument
invalide\] \[drmModeAtomicCommit: Invalid
argument\]](https://bugs.launchpad.net/ubuntu/+source/mutter/+bug/1968040)
- Put `MUTTER_DEBUG_ENABLE_ATOMIC_KMS=0` in `/etc/environment`

View File

@ -0,0 +1,62 @@
# Ubuntu User Configuration
This document includes configuration that is per user and remembered in the home
directory.
- Clone the terminal configs
- `git clone https://git.duckduckwhale.com/DuckDuckWhale/dotfiles`
- Open Vim and type `:PlugInstall`
## Settings
- Go to `Appearance` and choose dark mode
- Go to `Date & Time` and use am/pm
- Go to `Displays` and enable night light
- Go to `Power` and change `Power Button Action` to `Suspend`.
- Go to `Privacy -> File History & Trash` and auto delete everything in 30 days
- Go to `Multitasking` and choose `Workspaces on all displays` and `Hot Corner`
- Application switching?
## Firefox
- Check open previous windows and tabs
- Setup Multi-Account Containers
- Change shortcuts to `Ctrl`+<#>
## VS Codium
- `flatpak override --user --env=FLATPAK_ISOLATE_PACKAGES=0
com.vscodium.codium`
- Reason:
`https://github.com/flathub/ide-flatpak-wrapper/blob/master/vscode.sh`
## OBS record audio per app (may need adjustment > 22.04)
```
# configure pulse audio with obs-sink and loop it back to speakers
cat >> ~/.config/pulse/default.pa << 'EOF'
# include system default
.include /etc/pulse/default.pa
# sink that discard all input
load-module module-null-sink sink_name=obs-sink
# update human readable description in property list
update-sink-proplist obs-sink device.description="OBS Sink"
# replace <name> with name in first output of `pacmd list-sinks` inside angle
# brackets
# sink must be set, otherwise would be default and cause echoing
# latency_msec must be set, the lowest possible is 1 and default is 200
load-module module-loopback sink=<name> latency_msec=1
EOF
# restart pulse audio
pulseaudio -k
# to configure output per app to different devices
sudo apt install pavucontrol
```
Source: <https://miyacogbf.github.io/mlgb/only-game-sound/>
## [Golden Dict](https://einverne.github.io/post/2018/08/goldendict.html)
- Import dictionaries in `~/.software/goldendict/stardict-cc-cedict`
- Don't search in dictionaries contains more then 10000 articles