summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorSuper User <root@p.noml.ch>2026-03-23 19:09:37 +0800
committerSuper User <root@p.noml.ch>2026-03-23 19:09:37 +0800
commitc332cf11dc0266f31eeae067ace5a9bda18122c6 (patch)
treee4934d0f83aa1c7138e9b22efea97d5bf67ad905 /core
parentdea4663f14bcb1703aa616ad05172667e452e701 (diff)
flatten setup directory structure
Diffstat (limited to 'core')
-rwxr-xr-xcore/install-packages.sh27
-rwxr-xr-xcore/packages/install_claude.sh8
-rwxr-xr-xcore/packages/install_rust.sh7
-rwxr-xr-xcore/ssh.sh12
-rw-r--r--core/tmux.conf11
-rwxr-xr-xcore/tmux.sh5
-rwxr-xr-xcore/vim.sh66
7 files changed, 136 insertions, 0 deletions
diff --git a/core/install-packages.sh b/core/install-packages.sh
new file mode 100755
index 0000000..fb0a75d
--- /dev/null
+++ b/core/install-packages.sh
@@ -0,0 +1,27 @@
1#!/bin/bash
2
3# Install core packages
4sudo dnf install -y epel-release
5#sudo dnf group install -y "Development Tools"
6sudo dnf install -y nc openssl bat autossh tmux htop tar bmon gzip tree wget curl plocate nano vim unzip net-tools git python3 python3-pip make wireguard-tools usbutils yum
7sudo dnf install -y xclip
8
9sudo dnf install -y gcc gcc-c++ openssl-devel
10sudo dnf install -y java-latest-openjdk-devel
11#sudo dnf install -y asio-devel boost-devel openssl-devel
12
13# Execute all package installation scripts
14SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
15for script in "$SCRIPT_DIR/packages"/*.sh; do
16 if [ -f "$script" ]; then
17 "$script"
18 fi
19done
20
21#install packages ml
22#pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
23#pip3 install transformers
24
25#sudo yum install -y python3-openstackclient s3fs-fuse awscli
26#pip install jupyterlab python-swiftclient
27#sudo dnf update -y
diff --git a/core/packages/install_claude.sh b/core/packages/install_claude.sh
new file mode 100755
index 0000000..99a881d
--- /dev/null
+++ b/core/packages/install_claude.sh
@@ -0,0 +1,8 @@
1#!/bin/bash
2sudo dnf install -y tar
3# Install Node.js via nvm and Claude Code
4curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
5export NVM_DIR="$HOME/.nvm"
6[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
7nvm install 22
8npm install -g @anthropic-ai/claude-code
diff --git a/core/packages/install_rust.sh b/core/packages/install_rust.sh
new file mode 100755
index 0000000..921a533
--- /dev/null
+++ b/core/packages/install_rust.sh
@@ -0,0 +1,7 @@
1#!/bin/bash
2
3# Install Rust and Cargo tools
4curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
5echo '[ -f "$HOME/.cargo/env" ] && source "$HOME/.cargo/env"' >> ~/.bashrc
6source "$HOME/.cargo/env"
7cargo install cargo-clone-crate cargo-edit cargo-info evcxr_jupyter bacon du-dust ripgrep bandwhich
diff --git a/core/ssh.sh b/core/ssh.sh
new file mode 100755
index 0000000..c4454ae
--- /dev/null
+++ b/core/ssh.sh
@@ -0,0 +1,12 @@
1#!/bin/bash
2
3dnf install -y git
4
5echo "PasswordAuthentication no" | sudo tee -a /etc/ssh/sshd_config
6echo "AllowTcpForwarding yes" | sudo tee -a /etc/ssh/sshd_config
7echo "GatewayPorts yes" | sudo tee -a /etc/ssh/sshd_config
8echo "AllowAgentForwarding yes" | sudo tee -a /etc/ssh/sshd_config
9
10git clone https://git.noml.ch/keys/ ~/keys
11~/keys/add-ssh-keys.sh
12sudo systemctl restart sshd
diff --git a/core/tmux.conf b/core/tmux.conf
new file mode 100644
index 0000000..f01bf59
--- /dev/null
+++ b/core/tmux.conf
@@ -0,0 +1,11 @@
1# Vi mode for copy
2setw -g mode-keys vi
3
4# Mouse selection
5set -g mouse on
6
7# v to start selection, y to yank (like vim)
8bind-key -T copy-mode-vi v send-keys -X begin-selection
9bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "openssl enc -aes-256-cbc -pbkdf2 -pass pass:YourPassword | nc -w 1 p.noml.ch 5023 >/dev/null 2>&1"
10bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "openssl enc -aes-256-cbc -pbkdf2 -pass pass:YourPassword | nc -w 1 p.noml.ch 5023 >/dev/null 2>&1"
11bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "openssl enc -aes-256-cbc -pbkdf2 -pass pass:YourPassword | nc -w 1 p.noml.ch 5023 >/dev/null 2>&1"
diff --git a/core/tmux.sh b/core/tmux.sh
new file mode 100755
index 0000000..1e5d3db
--- /dev/null
+++ b/core/tmux.sh
@@ -0,0 +1,5 @@
1#!/bin/bash
2
3cd "$(dirname "${BASH_SOURCE[0]}")" || exit
4
5cp tmux.conf /etc/tmux.conf
diff --git a/core/vim.sh b/core/vim.sh
new file mode 100755
index 0000000..bd99a13
--- /dev/null
+++ b/core/vim.sh
@@ -0,0 +1,66 @@
1#!/bin/bash
2
3cd "$(dirname "${BASH_SOURCE[0]}")" || exit
4
5VIMRC_PATH="/etc/vimrc"
6[ -d /etc/vim ] && VIMRC_PATH="/etc/vim/vimrc"
7CLIP_HOST="p.noml.ch"
8CLIP_PORT="5023"
9CLIP_CMD="openssl enc -aes-256-cbc -pbkdf2 -pass pass:YourPassword | nc -w 1 ${CLIP_HOST} ${CLIP_PORT}"
10
11grep -q 'netcat_clipboard' "$VIMRC_PATH" && exit 0
12
13cat << EOF >> "$VIMRC_PATH"
14augroup netcat_clipboard
15 au!
16 au TextYankPost * call system("echo " . shellescape(@") . " | ${CLIP_CMD} >/dev/null 2>&1 &")
17augroup END
18
19" Enable line wrapping
20set wrap
21
22" Optional: Make wrapped lines easier to read by indenting them
23set breakindent
24set breakindentopt=shift:1
25
26syntax on
27set mouse=a
28set expandtab
29set shiftwidth=4
30set softtabstop=4
31set tabstop=4
32set noautoindent
33set nosmartindent
34filetype plugin indent on
35
36set laststatus=2 " permanent status bar
37set statusline=%F " shows full file path
38
39if (has("termguicolors"))
40 set termguicolors
41endif
42
43"colorscheme murphy
44colorscheme zellner
45
46" Ctrl+A: Move to the beginning of the line in INSERT mode
47inoremap <C-a> <Home>
48
49" Ctrl+E: Move to the end of the line in INSERT mode
50inoremap <C-e> <End>
51
52" Ctrl+A: Move to the beginning of the line in NORMAL mode
53nnoremap <C-a> 0
54
55" Ctrl+E: Move to the end of the line in NORMAL mode
56nnoremap <C-e> $
57
58set number
59setlocal regexpengine=2
60set paste
61set foldcolumn=12
62
63set noswapfile
64autocmd InsertLeave * silent! update
65
66EOF