diff options
-rw-r--r-- | .config/git/config | 7 | ||||
-rw-r--r-- | .config/zsh/.zprofile | 1 | ||||
-rw-r--r-- | .config/zsh/utils.zsh | 64 | ||||
-rw-r--r-- | .config/zsh/zprofile | 10 | ||||
-rw-r--r-- | .config/zsh/zshenv | 6 | ||||
-rw-r--r-- | .ssh/authorized_keys | 1 | ||||
-rw-r--r-- | .vim/vimrc | 3 | ||||
-rw-r--r-- | .xinitrc | 7 | ||||
-rw-r--r-- | README.md | 229 |
9 files changed, 45 insertions, 283 deletions
diff --git a/.config/git/config b/.config/git/config index e1a2122..3848058 100644 --- a/.config/git/config +++ b/.config/git/config @@ -1,6 +1,6 @@ [user] email = us@starfall.systems - name = Starfall + name = Rabbit Whispers signingkey = 541D770208F350CF2D8050BEBA9A53C969522B56 [init] defaultBranch = main @@ -19,12 +19,11 @@ ; probably also needs to checkout main or develop first clean = !git remote prune origin && git branch | xargs git branch -d force = push --force-with-lease - last = !got --no-pager show --abbrev-commit HEAD + last = !git --no-pager show --abbrev-commit HEAD oops = commit --all --amend --no-edit rebranch = !git checkout main && git pull && git checkout - && git rebase main stashpull = !git stash && git pull && git stash pop stat = status tree = log --all --graph --oneline - unstage = restore --staged [gpg] - program = gpg2 + program = gpg diff --git a/.config/zsh/.zprofile b/.config/zsh/.zprofile new file mode 100644 index 0000000..5aecf11 --- /dev/null +++ b/.config/zsh/.zprofile @@ -0,0 +1 @@ +source $ZDOTDIR/zprofile diff --git a/.config/zsh/utils.zsh b/.config/zsh/utils.zsh index bc986d9..abb9e06 100644 --- a/.config/zsh/utils.zsh +++ b/.config/zsh/utils.zsh @@ -5,51 +5,39 @@ function has () { command -v "$@" &> /dev/null } -# cat -has bat && alias cat='bat --plain --paging=never' -# should consider another alias for --show-all (and --number on base cat) but it's not a good default +alias dd="dd status=progress oflag=direct,sync" +alias grep="grep -E --color=auto --exclude-dir=.git" # one day i will try ag or rg +alias mkdir='mkdir -p' -# diff -alias diff='diff --color' +if [[ $OSTYPE =~ 'linux' ]]; then + # probably breaks for busybox but i don't run alpine anywhere at the moment + alias df="df -TH --exclude-type=tmpfs --exclude-type=devtmpfs --exclude-type=squashfs --exclude-type=udev" + alias diff='diff --color' + alias ls='ls --color=auto' + alias ll='ls -l --almost-all --no-group --human-readable --color=auto' +elif [[ $OSTYPE =~ 'darwin' ]]; then + alias df="df -YH -T noautofs,devfs,tmpfs,squashfs" + alias ls='ls -G' + alias ll='ls -hoAG' +elif [[ $OSTYPE == 'cygwin' ]]; then + alias sudo='cygstart --action=runas' +fi -# grep -grep_opts="--color=auto --exclude-dir=.git" -alias grep="grep $grep_opts" -alias egrep="egrep $grep_opts" -alias fgrep="fgrep $grep_opts" -unset grep_opts +if has bat; then + alias cat='bat --plain --paging=never' + # another with --show-all? + export MANPAGER="sh -c 'col -bx | bat --plain --language man'" + export MANROFFROPT='-c' +fi -# ls if has eza; then alias ls='eza' alias ll='eza --long --header --all' -elif ls --color &> /dev/null; then - alias ls='ls --color=auto' - alias ll='ls -l --almost-all --no-group --human-readable' -else - # bsd/mac ls - export CLICOLOR='1' - alias ll='ls -hoA' fi -# tree -has tree && alias tree='tree -C' - -# mkdir -alias mkdir='mkdir -p' - -# dd -alias dd="dd status=progress oflag=direct,sync" - -## df -alias df="df -TH --exclude-type=tmpfs --exclude-type=devtmpfs --exclude-type=squashfs" - -# gpg -has gpg2 && alias gpg='gpg2' - -# cygwin-specific -if [[ "$OSTYPE" == 'cygwin' ]]; then - alias sudo='cygstart --action=runas' +if has gpg2; then + alias gpg='gpg2' + export GPG_TTY=$TTY fi -unfunction has +has tree && alias tree='tree -C' diff --git a/.config/zsh/zprofile b/.config/zsh/zprofile new file mode 100644 index 0000000..9e6b587 --- /dev/null +++ b/.config/zsh/zprofile @@ -0,0 +1,10 @@ +if command -v brew &> /dev/null; then + export HOMEBREW_PREFIX="/usr/local" + export HOMEBREW_CELLAR="/usr/local/Cellar" + export HOMEBREW_REPOSITORY="/usr/local/Homebrew" + fpath[1,0]="/usr/local/share/zsh/site-functions" + PATH="/usr/local/bin:/usr/local/sbin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:$HOME/.local/bin" + export PATH; + [ -z "${MANPATH-}" ] || export MANPATH=":${MANPATH#:}" + export INFOPATH="/usr/local/share/info:${INFOPATH:-}" +fi diff --git a/.config/zsh/zshenv b/.config/zsh/zshenv index 80ac555..29e10b8 100644 --- a/.config/zsh/zshenv +++ b/.config/zsh/zshenv @@ -1,7 +1,6 @@ export EDITOR='vim' export PAGER='less' export LESS='--RAW-CONTROL-CHARS' -export GPG_TTY=$TTY export PATH=$HOME/.local/bin:$PATH @@ -21,8 +20,3 @@ fi if command -v npm &> /dev/null; then export npm_config_prefix="$HOME/.local" fi - -if command -v bat &> /dev/null; then - export MANPAGER="sh -c 'col -bx | bat --plain --language man'" - export MANROFFOPT="-c" -fi diff --git a/.ssh/authorized_keys b/.ssh/authorized_keys index 294650f..7adf5aa 100644 --- a/.ssh/authorized_keys +++ b/.ssh/authorized_keys @@ -1,3 +1,4 @@ ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHVMEkZQ+dGB/wwc/Mo7Ejp8QXH9XpUWXKf7RixjBsJO minnow@regulus ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM6EriCOo9vam/DbqRFdRayMduO1YC2zUz5ziz3gZqai minnow@spica ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE+pa4/yTL6M2U4urMXinpcGY5/yHFq5kh5qQv3hjxGQ minnow@dziban +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMk+e7oeUzxEe49WKQ2jbCE0VPKBRxsGTXUJ/2k4jLuR minnow@Polaris diff --git a/.vim/vimrc b/.vim/vimrc index 869188a..e6cb2da 100644 --- a/.vim/vimrc +++ b/.vim/vimrc @@ -12,7 +12,8 @@ set autoindent set shiftwidth=4 set tabstop=4 -" enable filetype settings +" use editorconfig and filetype defaults +packadd! editorconfig filetype plugin indent on syntax on set smartindent diff --git a/.xinitrc b/.xinitrc index 48bf79b..1f5918b 100644 --- a/.xinitrc +++ b/.xinitrc @@ -29,10 +29,7 @@ if [ -d /etc/X11/xinit/xinitrc.d ] ; then unset f fi -# exec desktop session - KDE or XFCE -if command -v startplasma-x11 > /dev/null 2>&1; then - export DESKTOP_SESSION=plasma - exec startplasma-x11 -elif command -v startxfce4 > /dev/null 2>&1; then +# exec desktop session - XFCE +if command -v startxfce4 > /dev/null 2>&1; then exec startxfce4 fi diff --git a/README.md b/README.md index d6fd81f..3f4e536 100644 --- a/README.md +++ b/README.md @@ -20,232 +20,3 @@ alias config='git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME' config checkout config config --local status.showUntrackedFiles no ``` - -## Other new machine setup - -### minimal -* base-devel -* fzf -* git -* mandoc -* openssh -* pass (needs --asdep xclip) -* p7zip -* unzip -* tree -* vim -* zsh (remember to `chsh -s $(which zsh)`) - -### paru for AUR -(pulls down rust) -``` -git clone https://aur.archlinux.org/paru.git ~/devil/external -cad !$ -makepkg -si -``` - -### monitoring and system info -* htop -* neofetch - -### tool replacements -* bat -* exa - -### sshd config -```zsh -echo <<END -PermitRootLogin no -PasswordAuthentication no -END >> /etc/ssh/sshd_config -ssh-keygen -A -systemctl enable sshd -``` - -### network -* magic-wormhole (pulls down python) -* ntp (be sure to `systemctl start ntpd`) -* ufw (if needed) - -#### iwd -```zsh -systemctl disable systemd-networkd - -pacman -S iwd -echo <<END -[General] -EnableNetworkConfiguration=true -END >> /etc/iwd/main.conf -systemctl enable iwd -``` - -#### manual dns -```zsh -systemctl disable systemd-resolved - -echo <<END -nameserver 9.9.9.9 -nameserver 149.112.112.112 -nameserver 2620:fe::fe -END > /etc/resolv.conf -``` - -#### avahi -per [arch wiki](https://wiki.archlinux.org/title/Avahi): -```zsh -pacman -S avahi nss-mdns -systemctl enable avahi-daemon -systemctl start avahi-daemon -# in /etc/nsswitch.conf, add `mdns_minimal [NOTFOUND=return]` before `resolve` -``` - -### dev -* docker -* docker-buildx - -### desktop environment -* xorg-server -* xfce4 -* ttf-dejavu -* wqy-zenhei - -AUR: -* delft-icon-theme -* ttf-iosevka-term-curly - -#### sound -* pipewire -* pipewire-alsa -* pipewire-pulse -* pavucontrol - -#### media -* inkscape -* nomacs -* strawberry -* vlc -* yt-dlp - -#### web applications -* element-desktop (need a better client) -* discord -* firefox -* thunderbird -* mumble - -### sound -* pavucontrol -* pipewire-alsa -* pipewire-pulse -* wireplumber -* xfce4-pulseaudio-plugin - -### to describe -* gvfs -* x and xfce -* fortune -* autoupdates -* krita and tablet support -* gvfs (if still needed) -* sound: pipewire, wireplumber -* gpg, gpg-agent -* turn all of this stuff into an ansible playbook or something else automatable -* printing with cups - -## T430s full setup walkthrough -Boot into live image - -Connect to wifi: -``` -iwctl -[iwd] station wlan0 scan -[iwd] station wlan0 get-networks -[iwd] station wlan0 connect <SSID> -[iwd] exit -``` - -Encrypted disk setup: -```bash -parted /dev/sda -(parted) mklabel gpt -(parted) mkpart "EFI" fat32 0% 500M -(parted) set 1 esp on -(parted) mkpart "linux" ext4 500M 100% -(parted) quit -mkfs.fat -F32 -n EFI /dev/disk/by-partlabel/EFI -cryptsetup luksFormat /dev/disk/by-partlabel/linux -cryptsetup luksOpen /dev/disk/by-partlabel/linux root -mkfs.ext4 -L linux /dev/mapper/root -``` - -Install Arch: -```bash -mount /dev/mapper/root /mnt -mount --mkdir /dev/disk/by-partlabel/EFI /mnt/boot - -# optimize mirrors list now -reflector --save /etc/pacman.d/mirrorlist --protocol https --latest 5 --sort rate - -# install base system -pacstrap -K /mnt base linux linux-lts linux-firmware intel-ucode dracut vim -arch-chroot /mnt - -# locale setup -ln -sf /usr/share/zoneinfo/America/Chicago /etc/localtime -hwclock --systohc -echo en_US.UTF-8 UTF-8 >> /etc/locale.gen -echo en_US.UTF-8 > /etc/locale.conf -echo dziban > /etc/hostname -echo <<END -127.0.0.1 localhost -::1 localhost -127.0.0.1 dziban -END >> /etc/hosts -locale-gen - -# create root password -[minnow@regulus] pass generate machines/dziban -[minnow@regulus] pass git push -passwd - -# generate unified kernel images with dracut -pacman -S --asdeps binutils elfutils - -uuid=`cryptsetup luksDump /dev/disk/by-partlabel/linux | grep UUID | awk '{print $2}'` -echo kernel_cmdline="rd.luks.name=$uuid=root rd.luks.options=no-read-workqueue,no-write-workqueue,discard root=/dev/mapper/root rw" > /etc/dracut.conf.d/luks.conf -# remove rd.luks.options for a spinning disk - -for kernel in /lib/modules/* - do dracut --verbose --force --uefi --kver "${kernel##*/}" -done - -# boot loader -bootctl install -``` - -And continue as usual: -``` -visudo -# relevant config line is only this, absolutely no env_keep. can consider secure_path in the future: -# %wheel ALL=(ALL:ALL) ALL - -useradd -m -G wheel -s /bin/zsh minnow -passwd minnow - -exit -umount -R /mnt -reboot - -systemctl enable systemd-timesyncd -``` - -## Pinebook Pro specific setup - -### Optimize mirrors list -Default mirrors were really slow for me. `sudo pacman-mirrors --fasttrack && sudo pacman -Syyu` bumped up the download speed from 30 kbps to 300kbps; still not the full connection but livable. - -### Flash keyboard firmware -`git clone https://github.com/jackhumbert/pinebook-pro-keyboard-updater` and follow the instructions. Have an external keyboard handy after step 1. - -### Configure ZRAM -Manjaro 20.06 appears to come with a /dev/zram0 preconfigured. |