Misc: SSH, Vim, Helix, Ubuntu, setup, shells, ...

- SSH config: disable password and send COLORTERM
- Vim: use <space>u instead of <space>w
- Helix:
	- Update for bug fixes after 23.10
	- Install bash completions, desktop file, and icon
	- Fix bufferline and inlay hints color
	- Reenable auto pairs since smart tabs is a thing now
- Ubuntu:
	- Update to 23.10
	- Change naming convention
	- Add podman and qemu-user-static
- Setup:
	- Update install and swap config
	- Add fish, Pods, Steam
	- Fix CJK font config path
	- Remove Firefox Wayland override now that it's the default
- Shells: configure fish
- Manual:
	- Configure starship
	- Use cargo locked install
	- Remove sparse protocol config now that it's the default
	- Fix failure when fish config directory is not found
- tmux: fix truecolor support for Alacritty
This commit is contained in:
DuckDuckWhale 2023-09-27 16:48:38 -07:00
parent 39a45f459b
commit 2df4e7a091
Signed by: DuckDuckWhale
GPG Key ID: E4B9FC170FFD71CE
15 changed files with 335 additions and 65 deletions

View File

@ -3,8 +3,8 @@ cd ssh
./ssh ./ssh
cd .. cd ..
cd bash cd shells
./bash ./shells
cd .. cd ..
cd git cd git

View File

@ -1,4 +1,8 @@
#!/bin/sh #!/bin/sh
if grep -q '# custom' ~/.bashrc; then
echo 'found custom bash config, skipping'
exit 0
fi
cat >> ~/.bashrc << 'EOF' cat >> ~/.bashrc << 'EOF'
# custom # custom

67
auto/shells/fish Executable file
View File

@ -0,0 +1,67 @@
#!/bin/sh -e
if [ -f ~/.config/fish/config.fish ]; then
echo 'fish config found, skipping'
exit 0
fi
mkdir -p ~/.config/fish
cat >> ~/.config/fish/config.fish << 'EOF'
function fish_greeting
echo ' '(set_color F00)'___
___======____='(set_color FF7F00)'-'(set_color FF0)'-'(set_color FF7F00)'-='(set_color F00)')
/T \_'(set_color FF0)'--='(set_color FF7F00)'=='(set_color F00)') '\
(set_color yellow)(whoami)(set_color FF7F00)'@'(set_color blue)(hostname)(set_color red)'
[ \ '(set_color FF7F00)'('(set_color FF0)'0'(set_color FF7F00)') '(set_color F00)'\~ \_'\
(set_color FF0)'-='(set_color FF7F00)'='(set_color F00)')'(set_color FF7F00)' Uptime: '\
(set_color white)(uptime -p | sed 's/up \(.*\)/\1/')(set_color red)'
\ / )J'(set_color FF7F00)'~~ \\'(set_color FF0)'-='(set_color F00)') IP Address: '\
(set_color white)(begin; ip -o route get to 1.1.1.1 2> /dev/null || echo network error; end | \
sed 's/.*src \([0-9.]\+\).*/\1/' || echo not found)(set_color red)'
\\\\___/ )JJ'(set_color FF7F00)'~'(set_color FF0)'~~ '(set_color F00)'\) '(set_color red)\
'Memory used: '(set_color white)(free -h | grep Mem | awk '/Mem/ { print "mem " $3 " / " $2 ", "}')\
(free -h | grep Swap | awk '/Swap/ { print "swap " $3 " / " $2 }')(set_color red)'
\_____/JJJ'(set_color FF7F00)'~~'(set_color FF0)'~~ '(set_color F00)'\\ '\
(set_color yellow)'Load average: '(set_color white)(uptime | sed 's/.*average: \(.*\)/\1/')\
(set_color red)'
'(set_color FF7F00)'/ '(set_color FF0)'\ '(set_color FF0)', \\'(set_color F00)'J'\
(set_color FF7F00)'~~~'(set_color FF0)'~~ '(set_color FF7F00)'\\
(-'(set_color FF0)'\)'(set_color F00)'\='(set_color FF7F00)'|'(set_color FF0)'\\\\\\'\
(set_color FF7F00)'~~'(set_color FF0)'~~ '(set_color FF7F00)'L_'(set_color FF0)'_
'(set_color FF7F00)'('(set_color F00)'\\'(set_color FF7F00)'\\) ('(set_color FF0)'\\'\
(set_color FF7F00)'\\\)'(set_color F00)'_ '(set_color FF0)'\=='(set_color FF7F00)'__
'(set_color F00)'\V '(set_color FF7F00)'\\\\'(set_color F00)'\) =='(set_color FF7F00)\
'=_____ '(set_color FF0)'\\\\\\\\'(set_color FF7F00)'\\\\
'(set_color F00)'\V) \_) '(set_color FF7F00)'\\\\'(set_color FF0)'\\\\JJ\\'\
(set_color FF7F00)'J\)
'(set_color F00)'/'(set_color FF7F00)'J'(set_color FF0)'\\'(set_color FF7F00)\
'J'(set_color F00)'T\\'(set_color FF7F00)'JJJ'(set_color F00)'J)
(J'(set_color FF7F00)'JJ'(set_color F00)'| \UUU)
(UU)'(set_color normal)
if status is-interactive
if [ -z "$TMUX" -a -n "$SSH_TTY" ]
tput sc
set stty_orig (stty -g)
stty -echo
read -n 1 -P (set_color -r)'tmux: space / shell: any key' input
stty "$stty_orig"
tput rc
tput el
if [ "$input" = ' ' ]
exec tmux new -As default
end
end
end
end
umask 007
export EDITOR='vim'
export VISUAL='vim'
export GPG_TTY=$(tty)
export PATH="$HOME/.local/bin:$PATH:/usr/lib/llvm-15/bin"
alias bat='batcat'
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'
EOF

3
auto/shells/shells Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh -e
./bash
./fish

View File

@ -2,3 +2,5 @@ Host *
ForwardX11Trusted no ForwardX11Trusted no
HashKnownHosts no HashKnownHosts no
IdentitiesOnly yes IdentitiesOnly yes
KbdInteractiveAuthentication no
SendEnv COLORTERM

View File

@ -1,7 +1,7 @@
set -g clock-mode-style 12 set -g clock-mode-style 12
set -g default-command "${SHELL}" set -g default-command "${SHELL}"
set -g default-terminal "tmux-256color" set -g default-terminal "tmux-256color"
set -as terminal-features ",xterm-256color:RGB" set -as terminal-features ",xterm-256color:RGB,alacritty:RGB"
# curly underline support # curly underline support
set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm' set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm'
# underline colors - needs tmux-3.0 # underline colors - needs tmux-3.0

View File

@ -23,7 +23,7 @@ nnoremap <silent> <leader>l :set list!<CR>
nnoremap <silent> <leader>q gwap nnoremap <silent> <leader>q gwap
nnoremap <silent> <leader>r :set relativenumber!<CR> nnoremap <silent> <leader>r :set relativenumber!<CR>
nnoremap <silent> <leader>s :call ToggleSpellCheck()<CR> nnoremap <silent> <leader>s :call ToggleSpellCheck()<CR>
nnoremap <silent> <leader>w :update<CR> nnoremap <silent> <leader>u :update<CR>
set backspace=indent,eol,start " powerful backspace set backspace=indent,eol,start " powerful backspace
set complete+=kspell " dictionary completion set complete+=kspell " dictionary completion

View File

@ -21,15 +21,21 @@ fi
rm -rf helix-git rm -rf helix-git
git clone --single-branch https://github.com/helix-editor/helix helix-git git clone --single-branch https://github.com/helix-editor/helix helix-git
cd helix-git cd helix-git
git checkout 7f5940be80eaa3aec7903903072b7108f41dd97b git checkout 84e24b33dcda16d1d64805f34dcc02d82d0de8f1
cargo install -f --locked --path helix-term cargo install -f --locked --path helix-term
mkdir -p ~/.config/helix mkdir -p ~/.config/helix
rm -rf runtime/grammars/sources rm -rf runtime/grammars/sources
mv runtime ~/.config/helix mv runtime ~/.config/helix
mkdir -p ~/.local/share/bash-completion/completions ~/.local/share/fish/vendor_completions.d \
~/.local/share/applications ~/.local/share/icons
cp contrib/completion/hx.bash ~/.local/share/bash-completion/completions/
cp contrib/completion/hx.fish ~/.local/share/fish/vendor_completions.d/
cp contrib/Helix.desktop ~/.local/share/applications/
cp contrib/helix.png ~/.local/share/icons/
cd .. cd ..
rm -rf helix-git rm -rf helix-git
cat > ~/.config/helix/config.toml << 'EOF' cat > ~/.config/helix/config.toml << 'EOF'
theme = "monokai_pro_ristretto" theme = "monokai_pro_spectrum"
[keys.normal] [keys.normal]
space.z = ":reflow 100" space.z = ":reflow 100"
@ -38,7 +44,6 @@ space.u = ":update"
[editor] [editor]
line-number = "relative" line-number = "relative"
auto-pairs = false
bufferline = "multiple" bufferline = "multiple"
rulers = [101] rulers = [101]
@ -57,15 +62,14 @@ right = [
] ]
EOF EOF
cat > ~/.config/helix/languages.toml << 'EOF' cat > ~/.config/helix/languages.toml << 'EOF'
[editor]
auto-pairs = false
[[language]] [[language]]
name = 'rust' name = 'rust'
indent = { tab-width = 4, unit = "\t" } indent = { tab-width = 4, unit = "\t" }
config.checkOnSave = { command = "clippy" }
shebangs = ["rust-script"] shebangs = ["rust-script"]
[language-server.rust-analyzer.config]
checkOnSave = { command = "clippy" }
[[language]] [[language]]
name = "c" name = "c"
indent = { tab-width = 4, unit = "\t" } indent = { tab-width = 4, unit = "\t" }
@ -89,7 +93,7 @@ indent = { tab-width = 4, unit = "\t" }
[[language]] [[language]]
name = "markdown" name = "markdown"
indent = { tab-width = 4, unit = "\t" } indent = { tab-width = 4, unit = "\t" }
language-server = { command = "ltex-ls" } language-servers = [ "ltex-ls" ]
file-types = ["md"] file-types = ["md"]
scope = "source.markdown" scope = "source.markdown"
roots = [] roots = []

View File

@ -21,10 +21,6 @@ fi
curl --proto '=https' --tlsv1.3 -sSf https://sh.rustup.rs | sh -s -- -y curl --proto '=https' --tlsv1.3 -sSf https://sh.rustup.rs | sh -s -- -y
. "$HOME/.cargo/env" . "$HOME/.cargo/env"
rustup component add rust-analyzer rustup component add rust-analyzer
cat > ~/.cargo/config.toml << 'EOF'
[registries.crates-io]
protocol = "sparse"
EOF
mkdir -p ~/.config/rustfmt mkdir -p ~/.config/rustfmt
cat > ~/.config/rustfmt/rustfmt.toml << 'EOF' cat > ~/.config/rustfmt/rustfmt.toml << 'EOF'
hard_tabs = true hard_tabs = true
@ -35,6 +31,6 @@ cat > ~/.local/bin/rust-analyzer << 'EOF'
$(rustup which rust-analyzer) "$@" $(rustup which rust-analyzer) "$@"
EOF EOF
chmod +x ~/.local/bin/rust-analyzer chmod +x ~/.local/bin/rust-analyzer
cargo install cargo-auditable cargo install --locked cargo-auditable
cargo install --force cargo-auditable rust-script cargo install --locked --force cargo-auditable rust-script
./rust-configure ./rust-configure

View File

@ -1,8 +1,8 @@
#!/usr/bin/env rust-script #!/usr/bin/env rust-script
//! ```cargo //! ```cargo
//! [dependencies] //! [dependencies]
//! anyhow = "1.0.69" //! anyhow = "1.0.75"
//! dirs = "4.0.0" //! dirs = "5.0.1"
//! ``` //! ```
use anyhow::{anyhow, bail, Context}; use anyhow::{anyhow, bail, Context};
@ -13,6 +13,8 @@ use std::{
}; };
const ENV: &str = r#". "$HOME/.cargo/env""#; const ENV: &str = r#". "$HOME/.cargo/env""#;
// until the release of https://github.com/rust-lang/rustup/pull/3506/files
const ENV_FISH: &str = r#"export PATH="$HOME/.cargo/bin:$PATH""#;
fn main() -> anyhow::Result<()> { fn main() -> anyhow::Result<()> {
let home = dirs::home_dir().context("can't find home directory")?; let home = dirs::home_dir().context("can't find home directory")?;
@ -80,5 +82,32 @@ fn main() -> anyhow::Result<()> {
}; };
fs::write(bashrc_path, &bashrc).context("failed to write new ~/.bashrc")?; fs::write(bashrc_path, &bashrc).context("failed to write new ~/.bashrc")?;
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)?;
config_fish_path.push("config.fish");
let config_fish = match File::open(&config_fish_path) {
Ok(file) => {
let config_fish = BufReader::new(file);
let mut skip = false;
let mut new_config_fish = String::new();
for line in config_fish.lines() {
let line = line.context("failed to read line in config.fish")?;
if line.is_empty() && skip {
continue;
}
skip = line.is_empty();
if line != ENV_FISH {
new_config_fish.push_str(&line);
new_config_fish.push('\n');
}
}
new_config_fish.trim().to_owned() + "\n"
}
Err(e) if e.kind() == ErrorKind::NotFound => String::new(),
Err(e) => bail!(anyhow!(e).context("failed to read config.fish")),
};
fs::write(config_fish_path, &config_fish).context("failed to write new config.fish")?;
Ok(()) Ok(())
} }

156
manual/starship/starship Executable file
View File

@ -0,0 +1,156 @@
#!/bin/sh -e
if ! command -v cargo > /dev/null; then
echo "Error: cargo not found"
exit 1
fi
if ! command -v cmake > /dev/null; then
echo "Error: cmake not found"
exit 1
fi
cargo install starship --locked
echo 'eval "$(starship init bash)"' >> ~/.bashrc
mkdir -p ~/.config/fish
echo 'starship init fish | source' >> ~/.config/fish/config.fish
cat >> ~/.config << 'EOF'
[status]
map_symbol = true
format = '[$symbol$common_meaning$signal_name$maybe_int]($style) '
disabled = false
[aws]
symbol = " "
[buf]
symbol = " "
[c]
symbol = " "
[conda]
symbol = " "
[dart]
symbol = " "
[directory]
read_only = " 󰌾"
[docker_context]
symbol = " "
[elixir]
symbol = " "
[elm]
symbol = " "
[fossil_branch]
symbol = " "
[git_branch]
symbol = " "
[golang]
symbol = " "
[guix_shell]
symbol = " "
[haskell]
symbol = " "
[haxe]
symbol = " "
[hg_branch]
symbol = " "
[hostname]
ssh_symbol = " "
[java]
symbol = " "
[julia]
symbol = " "
[lua]
symbol = " "
[memory_usage]
symbol = "󰍛 "
[meson]
symbol = "󰔷 "
[nim]
symbol = "󰆥 "
[nix_shell]
symbol = " "
[nodejs]
symbol = " "
[os.symbols]
Alpaquita = " "
Alpine = " "
Amazon = " "
Android = " "
Arch = " "
Artix = " "
CentOS = " "
Debian = " "
DragonFly = " "
Emscripten = " "
EndeavourOS = " "
Fedora = " "
FreeBSD = " "
Garuda = "󰛓 "
Gentoo = " "
HardenedBSD = "󰞌 "
Illumos = "󰈸 "
Linux = " "
Mabox = " "
Macos = " "
Manjaro = " "
Mariner = " "
MidnightBSD = " "
Mint = " "
NetBSD = " "
NixOS = " "
OpenBSD = "󰈺 "
openSUSE = " "
OracleLinux = "󰌷 "
Pop = " "
Raspbian = " "
Redhat = " "
RedHatEnterprise = " "
Redox = "󰀘 "
Solus = "󰠳 "
SUSE = " "
Ubuntu = " "
Unknown = " "
Windows = "󰍲 "
[package]
symbol = "󰏗 "
[pijul_channel]
symbol = " "
[python]
symbol = " "
[rlang]
symbol = "󰟔 "
[ruby]
symbol = " "
[rust]
symbol = " "
[scala]
symbol = " "
EOF

View File

@ -92,9 +92,6 @@ Here's my personal Debian 12 Bookworm setup.
- Proxy DNS when using SOCKS v5 - Proxy DNS when using SOCKS v5
- Enable DNS over HTTPS - Enable DNS over HTTPS
- In `about:config` set `browser.sessionstore.max_windows_undo` to 10. - In `about:config` set `browser.sessionstore.max_windows_undo` to 10.
- Use Wayland for correct fractional scaling:
`sudo flatpak override --socket=wayland --env=MOZ_ENABLE_WAYLAND=1
org.mozilla.firefox`
- Go to settings -> `Region & Language` and install `Chinese (simplified)`. - Go to settings -> `Region & Language` and install `Chinese (simplified)`.
- VSCodium - VSCodium
- `flatpak install flathub com.vscodium.codium` - `flatpak install flathub com.vscodium.codium`

View File

@ -6,7 +6,7 @@ By following these steps, you will be able to install Ubuntu with a separate `/`
`/boot`, with everything encrypted except `/boot`. A disk password will be required upon boot and a `/boot`, with everything encrypted except `/boot`. A disk password will be required upon boot and a
separate user password will be required. separate user password will be required.
- Booting Ubuntu 23.04 live image with `Try Ubuntu` option. - Booting Ubuntu 23.10 live image with `Try Ubuntu` option.
- Verify that we are using UEFI: `$ [ -d /sys/firmware/efi ] && echo UEFI || - Verify that we are using UEFI: `$ [ -d /sys/firmware/efi ] && echo UEFI ||
echo BIOS` echo BIOS`
- Give 1 GiB (or 500 MiB if you are short on space) for `/boot` using GParted and make a partition - Give 1 GiB (or 500 MiB if you are short on space) for `/boot` using GParted and make a partition
@ -15,31 +15,32 @@ separate user password will be required.
--use-random /dev/<root partition>` --use-random /dev/<root partition>`
- Defaults, spell it out if you want to be extra certain: - Defaults, spell it out if you want to be extra certain:
`--cipher aes-xts-plain64 --iter-time 2000 --verify-passphrase` `--cipher aes-xts-plain64 --iter-time 2000 --verify-passphrase`
- `$ sudo cryptsetup open /dev/<root partition> pvroot` - `$ sudo cryptsetup open /dev/<root partition> <device name>`
- No need to overwrite data since it is originally BitLocker encrypted and would - No need to overwrite data since it is originally BitLocker encrypted and would
cause loss of performance and lifespan of the SSD. cause loss of performance and lifespan of the SSD.
- `$ sudo pvcreate /dev/mapper/pvroot` - `$ sudo pvcreate /dev/mapper/<machine name>`
- `$ sudo vgcreate vgroot /dev/mapper/pvroot` - `$ sudo vgcreate vgroot /dev/mapper/<machine name>`
- `$ sudo lvcreate -n lvhome -L 10G vgroot` (`G` refers to GiB according to the - `$ sudo lvcreate -n home -L 10G <machine name>` (`G` refers to GiB according to the
man page) man page)
- Remember to monitor disk usage and when prompted, live extend the LVs! - Remember to monitor disk usage and when prompted, live extend the LVs!
- `$ sudo lvcreate -n lvroot -L 15G vgroot` - `$ sudo lvcreate -n root -L 15G <machine name>`
- Start the Ubuntu installation from the shortcut icon on Desktop. - Start the Ubuntu installation from the shortcut icon on Desktop.
- Choose extra software and set a password. - Choose extra software and set a password.
- Choose `Something else`. - Choose `Something else`.
- Format `/dev/<boot partition>` as ext4 and mount to `/boot`. - Format `/dev/<boot partition>` as ext4 and mount to `/boot`.
- Format `/dev/mapper/vgroot-lvroot` as ext4 and mount to `/`. - Format `/dev/mapper/<machine name>-root` as ext4 and mount to `/`.
- Format `/dev/mapper/vgroot-lvhome` as ext4 and mount to `/home`. - Format `/dev/mapper/<machine name>-home` as ext4 and mount to `/home`.
- Choose the main disk (e.g. `/dev/sda` or `/dev/nvme0n1p2`) as the `Device for boot loader - Get a swap partition the size of your RAM too.
- Choose the main disk (e.g. `/dev/sda` or `/dev/nvme0n1`) as the `Device for boot loader
installation`. installation`.
- Name the partitions if you are feeling fancy. - Name the partitions if you are feeling fancy.
- Once the installation is complete, click `Continue Testing` to make necessary - Once the installation is complete, click `Continue Testing` to make necessary
changes to load the encrypted partitions at startup. changes to load the encrypted partitions at startup.
- Make note of the UUID: `$ blkid /dev/<pvroot-partition>` - Make note of the UUID: `$ blkid /dev/<pv-partition>`
- Mount the installed Ubuntu OS on `/mnt` and use `chroot` to change the root - Mount the installed Ubuntu OS on `/mnt` and use `chroot` to change the root
directory to `/mnt`. directory to `/mnt`.
``` ```
$ sudo mount /dev/mapper/vgroot-lvroot /mnt $ sudo mount /dev/mapper/root-root /mnt
$ sudo mount /dev/<boot partition> /mnt/boot $ sudo mount /dev/<boot partition> /mnt/boot
$ sudo mount --bind /dev /mnt/dev $ sudo mount --bind /dev /mnt/dev
$ sudo chroot /mnt $ sudo chroot /mnt
@ -52,7 +53,7 @@ separate user password will be required.
obtained from `blkid` command earlier): obtained from `blkid` command earlier):
``` ```
# <target name> <source device> <key file> <options> # <target name> <source device> <key file> <options>
pvroot UUID=<UUID_PVROOT> none luks,discard <machine name> UUID=<UUID_PVROOT> none luks,discard
``` ```
- This guide assumes you have an SSD so we have `discard`. - This guide assumes you have an SSD so we have `discard`.
- Update the Linux kernel to load encrypted partitions at startup: `# - Update the Linux kernel to load encrypted partitions at startup: `#

View File

@ -1,19 +1,21 @@
# Ubuntu Setup # Ubuntu Setup
Here's my personal Ubuntu 23.04 setup. (Make sure to use Wayland on Nvidia!) Here's my personal Ubuntu 23.10 setup. (Make sure to use Wayland on Nvidia!)
## Packages ## Packages
- Must haves: - Must haves:
- `sudo apt install curl ddcutil deja-dup earlyoom endeavour ffmpeg flatpak git gnome-boxes - `sudo apt install alacritty curl deja-dup earlyoom endeavour ffmpeg fish flatpak git
gnome-clocks gnome-software-plugin-flatpak gnome-sound-recorder gnome-weather goldendict gnome-boxes gnome-clocks gnome-software-plugin-flatpak gnome-sound-recorder gnome-weather
gparted keepassxc mpv needrestart obs-studio ripgrep shadowsocks-libev sshfs synaptic tmux goldendict gparted keepassxc mpv needrestart obs-studio ripgrep sshfs synaptic tmux trash-cli
trash-cli ufw vim-gtk3 wl-clipboard linux-tools-generic build-essential` ufw vim-gtk3 wl-clipboard linux-tools-generic build-essential`
- Optional: - Optional:
- `sudo apt install arp-scan asciinema bookworm foliate gimp gnome-firmware gnome-games - `sudo apt install arp-scan asciinema bookworm foliate gimp gnome-firmware gnome-games
gnome-nettool gnome-packagekit gnome-passwordsafe gnome-shell-pomodoro gnome-usage gthumb gnome-nettool gnome-packagekit gnome-passwordsafe gnome-shell-pomodoro gnome-usage gthumb
heif-gdk-pixbuf heif-thumbnailer mkvtoolnix-gui openjdk-17-jdk pulseeffectsqpdf ranger 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` syncplay virtualbox-qt vlc audacity f3 prusa-slicer cmake gstreamer1.0-plugins-bad ddcutil
shadowsocks-libev qemu-user-static podman
`
- Remove all snaps: - Remove all snaps:
- ``` - ```
# if this command fails, do the following then try again: # if this command fails, do the following then try again:
@ -28,10 +30,6 @@ Here's my personal Ubuntu 23.04 setup. (Make sure to use Wayland on Nvidia!)
- `--avoid - `--avoid
'(^|/)(systemd|sshd|mosh-server|ssh|vim|sudo|sudoedit|gnome-shell|gnome-terminal-)$' '(^|/)(systemd|sshd|mosh-server|ssh|vim|sudo|sudoedit|gnome-shell|gnome-terminal-)$'
--prefer '(^|/)(Web Content|Isolated Web Co)$'` --prefer '(^|/)(Web Content|Isolated Web Co)$'`
- `ddcutil` for monitor brightness shortcuts:
- `sudo usermod -aG i2c $(whoami)`
- External Monitor Brightness Up: `ddcutil setvcp 10 + 10`
- External Monitor Brightness Down: `ddcutil setvcp 10 - 10`
## Optional packages ## Optional packages
@ -39,6 +37,7 @@ Here's my personal Ubuntu 23.04 setup. (Make sure to use Wayland on Nvidia!)
`llvm-vs-code-extensions.vscode-clangd` (?) `llvm-vs-code-extensions.vscode-clangd` (?)
- `imagemagick` for `convert`, comment out with `<!-- -->` PDF policy in - `imagemagick` for `convert`, comment out with `<!-- -->` PDF policy in
`/etc/ImageMagick-6/policy.xml` (?) `/etc/ImageMagick-6/policy.xml` (?)
- Or `graphicsmagick-imagemagick-compat`, which doesn't need this policy change somehow.
- Cross compiling (?) - Cross compiling (?)
- `gcc-aarch64-linux-gnu` - `gcc-aarch64-linux-gnu`
- `gcc-arm-linux-gnueabihf` - `gcc-arm-linux-gnueabihf`
@ -55,6 +54,10 @@ Here's my personal Ubuntu 23.04 setup. (Make sure to use Wayland on Nvidia!)
- <https://github.com/gyunaev/birdtray/issues/362> - <https://github.com/gyunaev/birdtray/issues/362>
- <https://github.com/gyunaev/birdtray/issues/430> - <https://github.com/gyunaev/birdtray/issues/430>
- Hiding: check all except hide/show by clicking icon - Hiding: check all except hide/show by clicking icon
- `ddcutil` for monitor brightness shortcuts:
- `sudo usermod -aG i2c $(whoami)`
- External Monitor Brightness Up: `ddcutil setvcp 10 + 10`
- External Monitor Brightness Down: `ddcutil setvcp 10 - 10`
## Apps ## Apps
@ -72,8 +75,6 @@ Here's my personal Ubuntu 23.04 setup. (Make sure to use Wayland on Nvidia!)
- `flatpak install flathub com.github.tchx84.Flatseal` - `flatpak install flathub com.github.tchx84.Flatseal`
- Firefox - Firefox
- `flatpak install flathub org.mozilla.firefox` - `flatpak install flathub org.mozilla.firefox`
- Use Wayland for correct fractional scaling and less bugginess
`sudo flatpak override --socket=wayland --env=MOZ_ENABLE_WAYLAND=1 org.mozilla.firefox`
- Xournal++ - Xournal++
- `sudo apt install xournalpp texlive-latex-extra` - `sudo apt install xournalpp texlive-latex-extra`
- cameractrls - cameractrls
@ -95,9 +96,13 @@ Here's my personal Ubuntu 23.04 setup. (Make sure to use Wayland on Nvidia!)
- `flatpak install com.obsproject.Studio.Plugin.BackgroundRemoval` - `flatpak install com.obsproject.Studio.Plugin.BackgroundRemoval`
- Video Trimmer - Video Trimmer
- `flatpak install flathub org.gnome.gitlab.YaLTeR.VideoTrimmer` - `flatpak install flathub org.gnome.gitlab.YaLTeR.VideoTrimmer`
- Pods
- `flatpak install com.github.marhkb.Pods`
## Optional Apps ## Optional Apps
- Steam
- `flatpak install flathub com.valvesoftware.Steam`
- Zoom - Zoom
- `flatpak install flathub us.zoom.Zoom` - `flatpak install flathub us.zoom.Zoom`
- Impatience (adjust Gnome animation speed) - Impatience (adjust Gnome animation speed)
@ -141,19 +146,20 @@ Here's my personal Ubuntu 23.04 setup. (Make sure to use Wayland on Nvidia!)
### Swap partition/file ### Swap partition/file
- Allocate 16 GiB for LVM swap partition (if not set during installation): - Allocate 32 GiB for LVM swap partition (if not set during installation):
``` ```
sudo lvcreate -n lvswap-ubuntu-23.04 -L 16G -C y vgroot sudo swapoff -a
sudo lvcreate -n swap-ubuntu-23.10 -L 32G -C y <device>
# note down UUID: # note down UUID:
sudo mkswap /dev/mapper/vgroot-lvswap--ubuntu--23.04 sudo mkswap /dev/mapper/<device>-swap--ubuntu--23.10
echo 'UUID=<UUID> none swap swap 0 0' | sudo tee -a /etc/fstab > /dev/null echo 'UUID=<UUID> none swap swap 0 0' | sudo tee -a /etc/fstab > /dev/null
sudo swapon -a sudo swapon -a
``` ```
- Or, allocate 8 GiB for swapfile: - Or, allocate `n` GiB for swapfile:
``` ```
# if /swapfile already exists # if /swapfile already exists
sudo swapoff /swapfile sudo swapoff /swapfile
sudo fallocate -l 8GiB /swapfile sudo fallocate -l <n>GiB /swapfile
sudo chmod 0600 /swapfile sudo chmod 0600 /swapfile
sudo mkswap /swapfile sudo mkswap /swapfile
sudo swapon /swapfile sudo swapon /swapfile
@ -204,7 +210,7 @@ See the `system` folder and run each script as they apply to your installation.
Move SC to the top by: Move SC to the top by:
``` ```
$ sudoedit $(realpath /etc/fonts/conf.d/64-language-selector-prefer.conf) $ sudoedit $(realpath /etc/fonts/conf.d/64-language-selector-cjk-prefer.conf)
``` ```
Source: <https://askubuntu.com/questions/901486/%E9%97%A8-looks-weird-on-my-system-default-font> Source: <https://askubuntu.com/questions/901486/%E9%97%A8-looks-weird-on-my-system-default-font>
@ -280,13 +286,6 @@ $ sudo mount -o loop /mnt/dislocker/dislocker-file /media/"$(whoami)"
### Unused ### Unused
#### 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)
#### Razer mouse #### Razer mouse
``` ```

View File

@ -5,10 +5,22 @@ directory.
## Terminal ## Terminal
- Set font size in Terminal to 15 and initial column count to 85 - Set font size in Terminal to 16 and initial column count to 85
- `git clone https://git.duckduckwhale.com/DuckDuckWhale/dotfiles && cd dotfiles/auto && ./auto` - Set Alacritty as the terminal command in GNOME Settings -> Shortcuts
- `cd ../manual/rust && ./rust` ```
- `cd ../helix && ./helix` chsh -s /usr/bin/fish
git clone https://git.duckduckwhale.com/DuckDuckWhale/dotfiles && cd dotfiles/auto && ./auto
cd ../manual/rust && ./rust
cd ../helix && ./helix
mkdir -p ~/.local/share/nautilus/scripts ~/.config/nautilus
cat > ~/.local/share/nautilus/scripts/terminal << 'EOF'
#!/bin/sh
alacritty
EOF
chmod +x ~/.local/share/nautilus/scripts/terminal
echo 'F4 terminal' >> ~/.config/nautilus/scripts-accels
nautilus -q
```
## Settings ## Settings