Last active
September 13, 2022 14:15
-
-
Save GinShio/4a20280056b6c9d4108980b283ae066b to your computer and use it in GitHub Desktop.
setup the environment
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# update source | |
sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list | |
sudo add-apt-repository ppa:kelleyk/emacs | |
sudo apt update && sudo apt upgrade | |
# common environment | |
sudo apt install -y fish ripgrep wget emacs28 \ | |
git git-lfs git-extras git-flow git-doc \ | |
neofetch screenfetch screen fcitx5 fcitx5-rime daemonize \ | |
proxychains aspell imagemagick calibre sqlite3 zip unzip | |
# C++ environment | |
sudo apt install -y build-essential gcc clang cmake ninja-build \ | |
gdb lldb lld ccls clang-format clang-tidy clang-tools iwyu | |
# Rust environment | |
sudo apt install -y rust-all | |
# JVM environment | |
sudo apt install -y default-jdk default-jre default-jre-headless | |
# Python3 environment | |
sudo apt install -y python3 python3-pip python3-venv python3-doc pylint | |
sudo pip3 install pyright | |
# NodeJS environment | |
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - | |
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null | |
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list | |
sudo apt update | |
sudo apt install -y nodejs yarn | |
# Beam environment | |
sudo apt install -y erlang erlang-doc erlang-manpages elixir | |
# font | |
sudo apt install -y fonts-font-awesome fonts-noto-cjk fonts-noto-cjk-extra \ | |
fonts-unifont fonts-wqy-microhei fonts-wqy-zenhei | |
# for emacs | |
sudo apt install -y libvterm-bin libtool-bin | |
# end | |
sudo apt autoremove |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env fish | |
# copy this file to ~/.config/fish/config | |
set -x -g PATH $PATH ~/.local/bin | |
if status is-interactive | |
# Commands to run in interactive sessions can go here | |
set --erase fish_greeting | |
function setconda | |
source $HOME/.local/share/anaconda3/etc/fish/conf.d/conda.fish | |
end | |
function unproxy | |
set -e http_proxy | |
set -e https_proxy | |
end | |
function __ginshio_command_abbreviation | |
#alias cat "lolcat" | |
alias clear "clear && echo -en \"\e[3J\"" | |
alias ping "ping -c 8" | |
#alias oneko=" oneko -fg brown -bg white -speed 16 -idle 100" | |
#alias uuid=" cat /proc/sys/kernel/random/uuid" | |
#abbr -a pc "proxychains4" | |
#abbr -a spc "sudo proxychains4" | |
end | |
function __ginshio_init_systemV | |
end | |
function __ginshio_init_systemd | |
abbr -a Isrt 'sudo systemctl start' | |
abbr -a Istp 'sudo systemctl stop' | |
abbr -a Irst 'sudo systemctl restart' | |
abbr -a Irlod 'sudo systemctl reload' | |
abbr -a Istat 'systemctl status' | |
abbr -a Ikill 'sudo systemctl kill' | |
abbr -a Ienb 'sudo systemctl enable' | |
abbr -a Idsbl 'sudo systemctl disable' | |
abbr -a Isus 'systemctl suspend' | |
abbr -a Irb 'systemctl reboot' | |
abbr -a Ipo 'systemctl poweroff' | |
end | |
# package management | |
# - repository management | |
# - ar addrepo 添加源 | |
# - lr repos 列出源 | |
# - ref refresh 刷新源 | |
# - rr removerepo 移除源 | |
# - mr modifyrepo 调整源 | |
# - nr renamerepo 重命名源 | |
# - package management | |
# - arm autoremove 自动移除 | |
# - in install 安装 | |
# - rm remove 移除 | |
# - si source-install 源码包安装 | |
# - update management | |
# - dup dist-upgrade 发行版升级 | |
# - lu list-updates 列出需升级的包 | |
# - up update 更新 | |
# - querying | |
# - if info 获取包信息 | |
# - se search 查询 | |
# - wp what-provides 提供的包 | |
# - locking | |
# - al addlock 锁定 | |
# - ll locks 列出锁定 | |
# - rl removelock 移除锁定 | |
# - cl cleanlocks ??? | |
# - utilities | |
# - cln clean 清除本地缓存 | |
# - inr install-new-recommends 安装新的推荐 | |
# - ps check-process 检测最近修改但仍在运行的程序 | |
# - ve verify 验证依赖 | |
function __ginshio_zypp_package_management | |
# repository management | |
abbr -a Par "sudo zypper addrepo -fcg" | |
abbr -a Plr "zypper repos -Np" | |
abbr -a Pref "sudo -E zypper refresh" | |
abbr -a Prr "sudo zypper removerepo" | |
abbr -a Pmr "sudo zypper modifyrepo" | |
abbr -a Pnr "sudo zypper renamerepo" | |
# package management | |
abbr -a Parm "" | |
abbr -a Pin "sudo -E zypper install" | |
abbr -a Prm "sudo zypper remove -u" | |
abbr -a Psi "sudo -E zypper source-install" | |
# update management | |
abbr -a Pdup "sudo -E zypper dist-upgrade" | |
abbr -a Plu "zypper list-updates" | |
abbr -a Pup "sudo -E zypper update" | |
# querying | |
abbr -a Pif "zypper info" | |
#alias Pif="rpm -qi" | |
abbr -a Pse "zypper search" | |
abbr -a Pwp "zypper search --provides" | |
#alias Pwp="rpm -q --whatprovides" | |
# locking | |
abbr -a Pal "sudo zypper addlock" | |
abbr -a Pll "zypper locks" | |
abbr -a Prl "sudo zypper removelock" | |
abbr -a Pcl "sudo zypper cleanlocks" | |
# utilities | |
abbr -a Pcln "sudo zypper clean" | |
abbr -a Pinr "sudo -E zypper install-new-recommends" | |
abbr -a Pps "zypper ps" | |
abbr -a Pve "sudo -E zypper verify" | |
end | |
function __ginshio_apt_package_management | |
# need 'software-properties-common' | |
# repository management | |
abbr -a Par "sudo add-apt-repository" | |
abbr -a Plr "" | |
abbr -a Pref "sudo -E apt update" | |
abbr -a Prr "sudo add-apt-repository --remove" | |
abbr -a Pmr "sudo apt edit-sources" | |
abbr -a Pnr "sudo apt edit-sources" | |
# package management | |
abbr -a Parm "sudo apt autoremove --purge" | |
abbr -a Pin "sudo -E apt install" | |
abbr -a Prm "sudo apt purge" | |
abbr -a Psi "sudo -E apt-src install" | |
# update management | |
abbr -a Pdup "sudo -E apt dist-upgrade" | |
abbr -a Plu "apt list --upgradable" | |
abbr -a Pup "sudo -E apt upgrade" | |
# querying | |
abbr -a Pif "apt show" | |
#alias Pif="dpkg -s" | |
abbr -a Pse "apt search" | |
abbr -a Pwp "dpkg -s" | |
#alias Pwp="dpkg -s" | |
# locking | |
abbr -a Pal "sudo apt-mark hold" | |
abbr -a Pll "" | |
abbr -a Prl "sudo zypper apt-mark unhold" | |
abbr -a Pcl "" | |
# utilities | |
abbr -a Pcc "sudo apt clean" | |
abbr -a Pinr "" | |
abbr -a Pps "" | |
abbr -a Pve "sudo -E apt check" | |
end | |
function __ginshio_pacman_package_management | |
# repository management | |
abbr -a Par "" | |
abbr -a Plr "" | |
abbr -a Pref "sudo -E pacman -Sy" | |
abbr -a Prr "" | |
abbr -a Pmr "" | |
abbr -a Pnr "" | |
# package management | |
abbr -a Parm "sudo pacman -Qdtq | pacman -Rs -" | |
abbr -a Pin "sudo -E pacman -S" | |
abbr -a Prm "sudo pacman -Rs" | |
abbr -a Psi "" | |
# update management | |
abbr -a Pdup "sudo -E pacman -Syu" | |
abbr -a Plu "pacman -Qu" | |
abbr -a Pup "sudo -E pacman -Syu" | |
# querying | |
abbr -a Pif "pacman -Si" | |
#alias Pif="pacman -Qi" | |
abbr -a Pse "pacman -Ss" | |
abbr -a Pwp "pacman -Sii" | |
#alias Pwp="pacman -Qii" | |
# locking | |
abbr -a Pal "" | |
abbr -a Pll "" | |
abbr -a Prl "" | |
abbr -a Pcl "" | |
# utilities | |
abbr -a Pcln "sudo pacman -Scc" | |
abbr -a Pinr "" | |
abbr -a Pps "" | |
abbr -a Pve "pacman -Dk" | |
end | |
__ginshio_command_abbreviation | |
switch (bash -c "source /etc/os-release; echo \"\${NAME:-\${DISTRIB_ID}} \${VERSION_ID:-\${DISTRIB_RELEASE}}\"") | |
# case 'FreeBSD*' | |
# __ginshio_freebsd_package_management | |
# __ginshio_init_systemV | |
# case 'CentOS*' 'Fedora*' 'Oracle*' 'openEuler*' | |
# __ginshio_dnf_package_management | |
# __ginshio_init_systemd | |
case 'Debian*' 'Ubuntu*' 'Kali*' 'Deepin*' | |
__ginshio_apt_package_management | |
__ginshio_init_systemd | |
case 'openSUSE*' | |
__ginshio_zypp_package_management | |
__ginshio_init_systemd | |
case '*' | |
echo "unknown $distro" | |
end | |
set __ginshio_kernel_name (uname -mrs |tr '[:upper:]' '[:lower:]') | |
switch $__ginshio_kernel_name | |
case '*microsoft*' | |
# Microsoft WSL Environment | |
set -g hostip (ip route|awk '/^default/{print $3}') | |
set -g loaclip (ip addr show eth0 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1) | |
set -x DISPLAY "$hostip:0" | |
set -x INPUT_METHOD fcitx | |
set -x XMODIFIERS "@im=fcitx" | |
set -x GTK_IM_MODULE fcitx | |
set -x QT_IM_MODULE fcitx | |
daemonize -e /tmp/fcitx5.log -o /tmp/fcitx5.log -p /tmp/fcitx5.pid -l /tmp/fcitx5.pid -a /usr/bin/fcitx5 --disable=wayland | |
function proxy | |
set -x -g http_proxy "http://$hostip:8118" | |
set -x -g https_proxy "http://$hostip:8118" | |
end | |
for p in $PATH | |
switch (wslpath -m $p) | |
case '//wsl*' | |
set -p __ginshio_wsl_path $p | |
case '*' | |
set -p __ginshio_wsl_cleaned_path $p | |
end | |
end | |
set -x -g PATH $__ginshio_wsl_path | |
case '*' | |
function proxy | |
set -x -g http_proxy "http://localhost:8118" | |
set -x -g https_proxy "http://localhost:8118" | |
end | |
end | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
mkdir -p ~/.ssh | |
cat <<-EOF |tee ~/.ssh/config | |
Host github github.com | |
User git | |
Hostname ssh.github.com | |
PreferredAuthentications publickey | |
IdentityFile ~/.ssh/git | |
Port 443 | |
Host gitlab gitlab.com | |
User git | |
Hostname gitlab.com | |
PreferredAuthentications publickey | |
IdentityFile ~/.ssh/git | |
Port 22 | |
Host gitiris git.ginshio.org | |
User git | |
Hostname git.ginshio.org | |
PreferredAuthentications publickey | |
IdentityFile ~/.ssh/git | |
Port 22 | |
EOF |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env fish | |
mkdir -p ~/.local/{bin,share,lib} | |
mkdir -p ~/.local/share/fonts | |
# fonts | |
cd (mktemp -d) | |
wget -O source-serif.zip https://github.com/adobe-fonts/source-serif/releases/download/4.004R/source-serif-4.004.zip | |
unzip -j source-serif "source-serif-4.004/OTF/*" -d ~/.local/share/fonts/Source-Serif | |
wget -O source-sans.zip https://github.com/adobe-fonts/source-sans/releases/download/3.046R/OTF-source-sans-3.046R.zip | |
unzip -j source-sans "OTF/*" -d ~/.local/share/fonts/Source-Sans | |
wget -O source-code-pro.zip https://github.com/adobe-fonts/source-code-pro/releases/download/2.038R-ro%2F1.058R-it%2F1.018R-VAR/OTF-source-code-pro-2.038R-ro-1.058R-it.zip | |
unzip -j source-code-pro "SourceCodePro-*.otf" -d ~/.local/share/fonts/Source-Code-Pro | |
wget -O source-code-var.zip https://github.com/adobe-fonts/source-code-pro/releases/download/2.038R-ro%2F1.058R-it%2F1.018R-VAR/VAR-source-code-var-1.018R.zip | |
unzip -j source-code-var "*.otf" -d ~/.local/share/fonts/Source-Code-Var | |
wget -O source-han-serif.zip https://github.com/adobe-fonts/source-han-serif/releases/download/2.001R/03_SourceHanSerifOTC.zip | |
unzip -j source-han-serif "OTC/*" -d ~/.local/share/fonts/Source-Han-Serif | |
wget -O source-han-sans.zip https://github.com/adobe-fonts/source-han-sans/releases/download/2.004R/SourceHanSansOTC.zip | |
unzip -j source-han-sans "OTC/*" -d ~/.local/share/fonts/Source-Han-Sans | |
wget https://github.com/adobe-fonts/source-han-mono/releases/download/1.002/SourceHanMono.ttc | |
mv SourceHanMono.ttc ~/.local/share/fonts | |
wget https://github.com/cormullion/juliamono/releases/download/v0.045/JuliaMono.zip | |
unzip -j JuliaMono "*.ttf" -d ~/.local/share/fonts/Julia-Mono | |
wget -O IBM-Plex.zip https://github.com/IBM/plex/releases/download/v6.1.0/OpenType.zip | |
unzip IBM-Plex -d IBM-Plex/ | |
mv IBM-Plex/OpenType/* ~/.local/share/fonts | |
wget https://mirrors.ctan.org/fonts/tex-gyre.zip | |
unzip -j tex-gyre "tex-gyre/opentype/*.otf" -d ~/.local/share/fonts/Tex-Gyre | |
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v2.1.0/Hasklig.zip | |
unzip Hasklig -d ~/.local/share/fonts/Hasklig-Nerd | |
# directories | |
cd (mktemp -d) | |
mkdir -p ~/{Desktop,Documents,Downloads,Music,Pictures,Projects,Public,Templates,Videos,.temp} | |
rm -rf ~/.config/user-dirs.dirs | |
echo "XDG_DESKTOP_DIR=\"$HOME/Desktop\"" |tee ~/.config/user-dirs.dirs | |
echo "XDG_DOCUMENTS_DIR=\"$HOME/Documents\"" |tee -a ~/.config/user-dirs.dirs | |
echo "XDG_DOWNLOAD_DIR=\"$HOME/Downloads\"" |tee -a ~/.config/user-dirs.dirs | |
echo "XDG_MUSIC_DIR=\"$HOME/Music\"" |tee -a ~/.config/user-dirs.dirs | |
echo "XDG_PICTURES_DIR=\"$HOME/Pictures\"" |tee -a ~/.config/user-dirs.dirs | |
echo "XDG_PUBLICSHARE_DIR=\"$HOME/Public\"" |tee -a ~/.config/user-dirs.dirs | |
echo "XDG_TEMPLATES_DIR=\"$HOME/Templates\"" |tee -a ~/.config/user-dirs.dirs | |
echo "XDG_VIDEOS_DIR=\"$HOME/Videos\"" |tee -a ~/.config/user-dirs.dirs | |
# other | |
cd (mktemp -d) | |
wget -O hugo.tar.gz https://github.com/gohugoio/hugo/releases/download/v0.102.3/hugo_extended_0.102.3_Linux-64bit.tar.gz | |
tar -C ~/.local/bin -zxvf hugo.tar.gz hugo | |
bash -c "bash <(wget https://xmake.io/shget.text -O -)" | |
curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher | |
fisher install IlanCosman/tide@v5.0.1 | |
# emacs | |
cd (mktemp -d) | |
wget https://github.com/domtronn/all-the-icons.el/raw/master/fonts/all-the-icons.ttf | |
wget https://github.com/domtronn/all-the-icons.el/raw/master/fonts/file-icons.ttf | |
wget https://github.com/domtronn/all-the-icons.el/raw/master/fonts/material-design-icons.ttf | |
wget https://github.com/domtronn/all-the-icons.el/raw/master/fonts/octicons.ttf | |
wget https://github.com/domtronn/all-the-icons.el/raw/master/fonts/weathericons.ttf | |
mkdir -p ~/.local/share/fonts/all-the-icons && cp *.ttf ~/.local/share/fonts/all-the-icons | |
git clone --depth 1 github:doomemacs/doomemacs.git ~/.emacs.d | |
git clone gitiris:GinShio/doom-private.git ~/.doom.d | |
emacs --batch --eval "(progn (require 'org) (setq org-confirm-babel-evaluate nil) (org-babel-tangle-file \"~/.doom.d/config.org\"))" | |
yes |~/.emacs.d/bin/doom install | |
~/.emacs.d/bin/doom sync | |
wget -O twemoji-v2.tar "https://raw.githubusercontent.com/iqbalansari/emacs-emojify/9e36d0e8c2a9c373a39728f837a507adfbb7b931/twemoji-fixed-v2.tar" | |
mkdir -p ~/.emacs.d/.local/cache/emojis && tar -C ~/.emacs.d/.local/cache/emojis -xvf twemoji-v2.tar |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env fish | |
sudo apt install -y libgulkan-dev libgulkan-doc libgulkan-utils vulkan-tools vulkan-validationlayers-dev \ | |
libsdl2-2.0-0 libsdl2-dev libsdl2-doc libglm-dev libglm-doc \ | |
glslang-dev glslang-tools spirv-tools spirv-cross |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env fish | |
# run this script when poweron | |
set __my_uid (id -u) | |
set __my_gid (id -g) | |
# sudo -u root -H mkdir -p /run/user/$__my_uid | |
# sudo -u root -H chown -R $__my_uid:$__my__gid /run/user/$__my_uid | |
sudo -u root -H sed -i 's/socks5\t.*/socks5\t'"$hostip"' 1080/g' /etc/proxychains.conf | |
# sudo -u root -H mount -t drvfs D: /mnt/d |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment