dotfiles/setup/ubuntu-setup.md

321 lines
10 KiB
Markdown

# Ubuntu Setup
Here's my personal Ubuntu 22.10 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 ddcutil deja-dup earlyoom ffmpeg flatpak git gnome-boxes gnome-clocks \
gnome-software-plugin-flatpak gnome-sound-recorder gnome-todo gnome-weather goldendict gparted \
keepassxc mosh mpv needrestart obs-studio shadowsocks-libev sshfs synaptic tmux trash-cli ufw \
vim-gtk3 vlc wl-clipboard`
- Optional:
- `sudo apt install gnome-firmware gnome-games gnome-nettool gnome-packagekit gnome-passwordsafe \
gnome-shell-pomodoro gnome-usage gthumb mkvtoolnix-gui openjdk-17-jdk pulseeffectsqpdf ranger \
syncplay virtualbox-qt`
- Remove all snaps:
- ```
# if this command fails, unmount the snap mounts as reported by `mount` and try again
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 chmod 0600 /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)$'`
- ddcutil:
- `sudo usermod -aG i2c $(whoami)`
- External Monitor Brightness Up: `ddcutil setvcp 10 + 10`
- External Monitor Brightness Down: `ddcutil setvcp 10 - 10`
## 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, if it doesn't show up
- `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`
- 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)`.
- VSCodium
- `flatpak install flathub com.vscodium.codium`
- OBS Studio
- `$ sudo apt install qtwayland5`
- On Ubuntu <22.10, 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`
- Check file system permission with Flatseal
- Discord
- `flatpak install flathub com.discordapp.Discord`
- Check file system permission with Flatseal
- Slack
- `flatpak install flathub com.slack.Slack`
- Check file system permission with Flatseal
- Zoom
- `flatpak install flathub us.zoom.Zoom`
- Check file system permission with Flatseal
## 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/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 OpenSSH
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)
- \>= 21.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`