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:
parent
39a45f459b
commit
2df4e7a091
@ -3,8 +3,8 @@ cd ssh
|
|||||||
./ssh
|
./ssh
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
cd bash
|
cd shells
|
||||||
./bash
|
./shells
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
cd git
|
cd git
|
||||||
|
@ -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
67
auto/shells/fish
Executable 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
3
auto/shells/shells
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh -e
|
||||||
|
./bash
|
||||||
|
./fish
|
@ -2,3 +2,5 @@ Host *
|
|||||||
ForwardX11Trusted no
|
ForwardX11Trusted no
|
||||||
HashKnownHosts no
|
HashKnownHosts no
|
||||||
IdentitiesOnly yes
|
IdentitiesOnly yes
|
||||||
|
KbdInteractiveAuthentication no
|
||||||
|
SendEnv COLORTERM
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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 = []
|
||||||
|
@ -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
|
||||||
|
@ -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
156
manual/starship/starship
Executable 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
|
@ -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`
|
||||||
|
@ -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: `#
|
||||||
|
@ -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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user