From 9d4777f7f7318b4cbb4342b2013fa3bf94cf497e Mon Sep 17 00:00:00 2001 From: DuckDuckWhale Date: Sat, 22 Oct 2022 01:27:00 -0700 Subject: [PATCH] Add: system setup tutorials for Ubuntu & Debian --- setup/debian-setup.md | 290 +++++++++++++++++++++++++++++++++ setup/dual-boot-ubuntu.md | 152 ++++++++++++++++++ setup/ubuntu-setup.md | 311 ++++++++++++++++++++++++++++++++++++ setup/ubuntu-user-config.md | 62 +++++++ 4 files changed, 815 insertions(+) create mode 100644 setup/debian-setup.md create mode 100644 setup/dual-boot-ubuntu.md create mode 100644 setup/ubuntu-setup.md create mode 100644 setup/ubuntu-user-config.md diff --git a/setup/debian-setup.md b/setup/debian-setup.md new file mode 100644 index 0000000..58b1feb --- /dev/null +++ b/setup/debian-setup.md @@ -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 + - +- 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 + + - 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: + - + - + - 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: + + +``` +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 `` replaced: + +``` +/dev/nvme0n1p6 /mnt/dislocker fuse.dislocker nofail,nouser,umask=0077,bekfile=/opt/dislocker/.bek 0 0 +/mnt/dislocker/dislocker-file /media/ auto nofail,umask=0077,gid=,uid= 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` diff --git a/setup/dual-boot-ubuntu.md b/setup/dual-boot-ubuntu.md new file mode 100644 index 0000000..2a93ade --- /dev/null +++ b/setup/dual-boot-ubuntu.md @@ -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/` + - Defaults, spell it out if you want to be extra certain: + `--cipher aes-xts-plain64 --iter-time 2000 --verify-passphrase` +- `$ sudo cryptsetup open /dev/ 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/` 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/` +- 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/ /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 `` from the value + obtained from `blkid` command earlier): + ``` + # + pvroot UUID= 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. diff --git a/setup/ubuntu-setup.md b/setup/ubuntu-setup.md new file mode 100644 index 0000000..8af5cbc --- /dev/null +++ b/setup/ubuntu-setup.md @@ -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: + - + - + - 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 + - +- 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 + + - 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: + - + - + - 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: + + +``` +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 `` replaced: + +``` +/dev/nvme0n1p6 /mnt/dislocker fuse.dislocker nofail,nouser,umask=0077,bekfile=/opt/dislocker/.bek 0 0 +/mnt/dislocker/dislocker-file /media/ auto nofail,umask=0077,gid=,uid= 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` diff --git a/setup/ubuntu-user-config.md b/setup/ubuntu-user-config.md new file mode 100644 index 0000000..a8f13cf --- /dev/null +++ b/setup/ubuntu-user-config.md @@ -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 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= latency_msec=1 +EOF + +# restart pulse audio +pulseaudio -k + +# to configure output per app to different devices +sudo apt install pavucontrol +``` + +Source: + +## [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