Compare commits
10 Commits
9fa71efe70
...
99eda00581
| Author | SHA1 | Date | |
|---|---|---|---|
| 99eda00581 | |||
| a17ab329a2 | |||
| 5c4078dba2 | |||
| 9b5cbec7ad | |||
| db1ba87598 | |||
| 6d34f1e1a4 | |||
| 79563ad954 | |||
| 251e601eb8 | |||
| 5a42f1357b | |||
| d6e16d1155 |
10
bashrc_arch
10
bashrc_arch
@ -6,14 +6,18 @@ esac
|
|||||||
|
|
||||||
# don't put duplicate lines or lines starting with space in the history.
|
# don't put duplicate lines or lines starting with space in the history.
|
||||||
# See bash(1) for more options
|
# See bash(1) for more options
|
||||||
HISTCONTROL=ignoreboth
|
HISTCONTROL=ignoreboth:erasedups
|
||||||
|
|
||||||
# append to the history file, don't overwrite it
|
# append to the history file, don't overwrite it
|
||||||
shopt -s histappend
|
shopt -s histappend
|
||||||
|
# Save multi-line commands as single entry
|
||||||
|
shopt -s cmdhist
|
||||||
|
# Save history immediately after each command
|
||||||
|
PROMPT_COMMAND="history -a; $PROMPT_COMMAND"
|
||||||
|
|
||||||
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
|
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
|
||||||
HISTSIZE=1000
|
HISTSIZE=10000
|
||||||
HISTFILESIZE=2000
|
HISTFILESIZE=20000
|
||||||
|
|
||||||
# check the window size after each command and, if necessary,
|
# check the window size after each command and, if necessary,
|
||||||
# update the values of LINES and COLUMNS.
|
# update the values of LINES and COLUMNS.
|
||||||
|
|||||||
@ -135,10 +135,6 @@ cursor {
|
|||||||
hide_on_key_press = true
|
hide_on_key_press = true
|
||||||
}
|
}
|
||||||
|
|
||||||
gestures {
|
|
||||||
workspace_swipe = false
|
|
||||||
}
|
|
||||||
|
|
||||||
device {
|
device {
|
||||||
name = elecom-trackball-mouse-deft-pro-trackball-1
|
name = elecom-trackball-mouse-deft-pro-trackball-1
|
||||||
sensitivity = 0.7
|
sensitivity = 0.7
|
||||||
@ -163,7 +159,8 @@ bind = $mainMod, H, layoutmsg, preselect l
|
|||||||
bind = $mainMod, L, layoutmsg, preselect r
|
bind = $mainMod, L, layoutmsg, preselect r
|
||||||
bind = $mainMod, J, layoutmsg, preselect d
|
bind = $mainMod, J, layoutmsg, preselect d
|
||||||
bind = $mainMod, K, layoutmsg, preselect u
|
bind = $mainMod, K, layoutmsg, preselect u
|
||||||
bind = $mainMod, F, exec, walker --modules applications
|
# bind = $mainMod, F, exec, walker --modules applications
|
||||||
|
bind = $mainMod, F, exec, wofi --show drun
|
||||||
bind = SUPER, L, exec, python ~/linuxbox/black.py
|
bind = SUPER, L, exec, python ~/linuxbox/black.py
|
||||||
bind = ALT, Tab, workspace, e+1
|
bind = ALT, Tab, workspace, e+1
|
||||||
bind = ALT SHIFT, Tab, workspace, emptyn
|
bind = ALT SHIFT, Tab, workspace, emptyn
|
||||||
|
|||||||
@ -73,9 +73,7 @@ local active_statusline = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
local inactive_statusline = function()
|
local inactive_statusline = function()
|
||||||
return MiniStatusline.combine_groups({
|
return active_statusline()
|
||||||
{ hl = "MiniStatuslineDevinfo", strings = {} },
|
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
@ -93,20 +91,16 @@ vim.pack.add({
|
|||||||
{ src = "https://github.com/neovim/nvim-lspconfig" },
|
{ src = "https://github.com/neovim/nvim-lspconfig" },
|
||||||
{ src = "https://github.com/lewis6991/gitsigns.nvim" },
|
{ src = "https://github.com/lewis6991/gitsigns.nvim" },
|
||||||
{ src = "https://github.com/MunifTanjim/nui.nvim" },
|
{ src = "https://github.com/MunifTanjim/nui.nvim" },
|
||||||
-- { src = "https://github.com/folke/noice.nvim" },
|
|
||||||
{ src = "https://github.com/L3MON4D3/LuaSnip" },
|
{ src = "https://github.com/L3MON4D3/LuaSnip" },
|
||||||
{ src = "https://github.com/rafamadriz/friendly-snippets" },
|
{ src = "https://github.com/rafamadriz/friendly-snippets" },
|
||||||
{ src = "https://github.com/saghen/blink.cmp" },
|
{ src = "https://github.com/saghen/blink.cmp" },
|
||||||
{ src = "https://github.com/stevearc/conform.nvim" },
|
{ src = "https://github.com/stevearc/conform.nvim" },
|
||||||
{ src = "https://github.com/prichrd/netrw.nvim" },
|
|
||||||
{ src = "https://github.com/nvim-tree/nvim-tree.lua" },
|
{ src = "https://github.com/nvim-tree/nvim-tree.lua" },
|
||||||
})
|
})
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
-- Plugin config
|
-- Plugin config
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
-- require("noice").setup()
|
|
||||||
require("netrw").setup()
|
|
||||||
require("conform").setup({
|
require("conform").setup({
|
||||||
formatters_by_ft = {
|
formatters_by_ft = {
|
||||||
lua = { "stylua" },
|
lua = { "stylua" },
|
||||||
@ -183,13 +177,82 @@ require("blink.cmp").setup({
|
|||||||
},
|
},
|
||||||
fuzzy = { implementation = "lua" },
|
fuzzy = { implementation = "lua" },
|
||||||
})
|
})
|
||||||
require("nvim-tree").setup()
|
require("nvim-tree").setup({
|
||||||
|
view = {
|
||||||
|
-- Ensures files open in the window where nvim-tree was triggered
|
||||||
|
preserve_window_proportions = true,
|
||||||
|
centralize_selection = true,
|
||||||
|
},
|
||||||
|
update_focused_file = {
|
||||||
|
enable = true, -- update the tree to focus the current file
|
||||||
|
update_root = false, -- don't change the root dir automatically
|
||||||
|
ignore_list = {}, -- you can add filetypes to ignore (e.g. "help")
|
||||||
|
},
|
||||||
|
actions = {
|
||||||
|
open_file = {
|
||||||
|
quit_on_open = true, -- auto-close tree when file is opened
|
||||||
|
resize_window = true,
|
||||||
|
window_picker = {
|
||||||
|
enable = false, -- disable asking which window to use
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
-- LSP config
|
-- LSP config
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
vim.lsp.enable({ "lua_ls", "rust_analyzer", "bashls", "pyright", "marksman", "clangd", "yamlls" })
|
vim.lsp.enable({ "lua_ls", "rust_analyzer", "bashls", "pyright", "marksman", "clangd", "yamlls" })
|
||||||
|
|
||||||
|
local Input = require("nui.input")
|
||||||
|
local event = require("nui.utils.autocmd").event
|
||||||
|
|
||||||
|
local function lsp_rename()
|
||||||
|
local curr_name = vim.fn.expand("<cword>")
|
||||||
|
|
||||||
|
local client = vim.lsp.get_clients({ bufnr = 0 })[1]
|
||||||
|
local offset_encoding = client and client.offset_encoding or "utf-16"
|
||||||
|
local pos_params = vim.lsp.util.make_position_params(0, offset_encoding)
|
||||||
|
|
||||||
|
local input = Input({
|
||||||
|
position = {
|
||||||
|
row = vim.fn.winline(),
|
||||||
|
col = vim.fn.wincol(),
|
||||||
|
},
|
||||||
|
size = #curr_name + 10,
|
||||||
|
border = {
|
||||||
|
style = "rounded",
|
||||||
|
text = { top = "Rename", top_align = "left" },
|
||||||
|
},
|
||||||
|
}, {
|
||||||
|
prompt = "",
|
||||||
|
default_value = curr_name,
|
||||||
|
on_submit = function(new_name)
|
||||||
|
if new_name and #new_name > 0 and new_name ~= curr_name then
|
||||||
|
local params = {
|
||||||
|
textDocument = pos_params.textDocument,
|
||||||
|
position = pos_params.position,
|
||||||
|
newName = new_name,
|
||||||
|
}
|
||||||
|
-- send to all clients attached to buffer
|
||||||
|
vim.lsp.buf_request(0, "textDocument/rename", params)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
input:mount()
|
||||||
|
|
||||||
|
input:on(event.BufLeave, function()
|
||||||
|
input:unmount()
|
||||||
|
end)
|
||||||
|
input:map("i", "<Esc>", function()
|
||||||
|
input:unmount()
|
||||||
|
end, { noremap = true, nowait = true })
|
||||||
|
input:map("n", "<Esc>", function()
|
||||||
|
input:unmount()
|
||||||
|
end, { noremap = true, nowait = true })
|
||||||
|
end
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
-- GUI config
|
-- GUI config
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
@ -235,17 +298,16 @@ map("n", "<leader>u", ":update<CR> :source<CR>", { noremap = true, silent = true
|
|||||||
map("n", "<leader>w", ":write<CR>", { noremap = true, silent = true })
|
map("n", "<leader>w", ":write<CR>", { noremap = true, silent = true })
|
||||||
map("n", "<leader>q", ":quit<CR>", { noremap = true, silent = true })
|
map("n", "<leader>q", ":quit<CR>", { noremap = true, silent = true })
|
||||||
map("n", "<leader>v", ":vsplit<CR>", { noremap = true, silent = true })
|
map("n", "<leader>v", ":vsplit<CR>", { noremap = true, silent = true })
|
||||||
map("n", "<C-d>", "<C-d>zz", { noremap = true, silent = true })
|
|
||||||
map("n", "<C-u>", "<C-u>zz", { noremap = true, silent = true })
|
|
||||||
map("n", "n", "nzzzv", { noremap = true, silent = true })
|
map("n", "n", "nzzzv", { noremap = true, silent = true })
|
||||||
map("n", "N", "Nzzzv", { noremap = true, silent = true })
|
map("n", "N", "Nzzzv", { noremap = true, silent = true })
|
||||||
|
|
||||||
|
-- vim.keymap.set("n", "grn", lsp_rename, { desc = "LSP Rename (popup)" })
|
||||||
|
|
||||||
-- Git
|
-- Git
|
||||||
map("n", "<leader>g", ":LazyGitCurrentFile<CR>", { noremap = true, silent = true })
|
map("n", "<leader>g", ":LazyGitCurrentFile<CR>", { noremap = true, silent = true })
|
||||||
|
|
||||||
-- File browser
|
-- File browser
|
||||||
-- map("n", "<leader>e", ":25Lex<CR>", { noremap = true, silent = true })
|
map("n", "<leader>e", ":NvimTreeFindFileToggle!<CR>", { noremap = true, silent = true })
|
||||||
map("n", "<leader>e", ":NvimTreeToggle<CR>", { noremap = true, silent = true })
|
|
||||||
map("n", "<leader>f", ":Pick files<CR>", { noremap = true, silent = true })
|
map("n", "<leader>f", ":Pick files<CR>", { noremap = true, silent = true })
|
||||||
map("n", "<leader>h", ":Pick help<CR>", { noremap = true, silent = true })
|
map("n", "<leader>h", ":Pick help<CR>", { noremap = true, silent = true })
|
||||||
|
|
||||||
|
|||||||
227
update_arch.sh
227
update_arch.sh
@ -2,6 +2,159 @@
|
|||||||
set -e
|
set -e
|
||||||
sudo -v
|
sudo -v
|
||||||
|
|
||||||
|
ACTION="${1:-update}"
|
||||||
|
|
||||||
|
KERNEL_PACKAGES=(linux linux-lts linux-zen linux-hardened linux-rt linux-rt-lts linux-rt-bfq linux-xanmod linux-xanmod-lts linux-xanmod-tt)
|
||||||
|
|
||||||
|
create_timeshift_snapshot() {
|
||||||
|
local comment=${1:-"Update script"}
|
||||||
|
|
||||||
|
if ! pacman -Qs timeshift >/dev/null; then
|
||||||
|
printf -- '\033[33m Timeshift not installed; skipping snapshot\n\033[37m'
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf -- '\033[33m Creating Timeshift snapshot\n\033[37m'
|
||||||
|
sudo timeshift --create --comments "$comment"
|
||||||
|
}
|
||||||
|
|
||||||
|
backup_boot_archive() {
|
||||||
|
local mode=${1:-auto}
|
||||||
|
|
||||||
|
if [ "$mode" = "auto" ]; then
|
||||||
|
sudo pacman -Sy --noconfirm >/dev/null
|
||||||
|
local pending=()
|
||||||
|
for kernel_pkg in "${KERNEL_PACKAGES[@]}"; do
|
||||||
|
if pacman -Qi "$kernel_pkg" >/dev/null 2>&1 && pacman -Qu "$kernel_pkg" >/dev/null 2>&1; then
|
||||||
|
pending+=("$kernel_pkg")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "${#pending[@]}" -eq 0 ]; then
|
||||||
|
printf -- '\033[33m No kernel update detected; skipping /boot backup\n\033[37m'
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf -- '\033[33m Kernel update detected; backing up /boot\n\033[37m'
|
||||||
|
else
|
||||||
|
printf -- '\033[33m Forcing /boot backup\n\033[37m'
|
||||||
|
fi
|
||||||
|
|
||||||
|
local boot_backup_dir="${HOME}/boot-backups"
|
||||||
|
mkdir -p "$boot_backup_dir"
|
||||||
|
local backup_file="${boot_backup_dir}/boot-$(date +%Y%m%d-%H%M%S).tar.gz"
|
||||||
|
sudo tar -C /boot -acf "$backup_file" .
|
||||||
|
sudo chown "$USER":"$USER" "$backup_file"
|
||||||
|
printf -- '\033[32m Saved /boot backup to %s\n\033[37m' "$backup_file"
|
||||||
|
}
|
||||||
|
|
||||||
|
restore_latest_state() {
|
||||||
|
printf -- '\033[33m Gathering restore options\n\033[37m'
|
||||||
|
|
||||||
|
BOOT_BACKUP_DIR="${HOME}/boot-backups"
|
||||||
|
|
||||||
|
TIMESLICE_INFO=""
|
||||||
|
TIMESLICE_META=""
|
||||||
|
TIMESLICE_LABEL=""
|
||||||
|
if pacman -Qs timeshift >/dev/null; then
|
||||||
|
TIMESHIFT_LIST=$(sudo timeshift --list)
|
||||||
|
TIMESLICE_INFO=$(printf '%s\n' "$TIMESHIFT_LIST" | awk '
|
||||||
|
$1 ~ /^[0-9]+$/ {
|
||||||
|
idx=2
|
||||||
|
if ($2 == ">") { idx=3 }
|
||||||
|
snap=$idx
|
||||||
|
desc=""
|
||||||
|
for (i=idx+2; i<=NF; i++) {
|
||||||
|
desc = desc ? desc " " $i : $i
|
||||||
|
}
|
||||||
|
}
|
||||||
|
END {
|
||||||
|
if (snap != "") {
|
||||||
|
printf "%s|%s", snap, desc
|
||||||
|
}
|
||||||
|
}
|
||||||
|
')
|
||||||
|
if [ -z "$TIMESLICE_INFO" ]; then
|
||||||
|
TIMESLICE_INFO=$(printf '%s\n' "$TIMESHIFT_LIST" | awk -F': +' '
|
||||||
|
/^Snapshot/ {snap=$2}
|
||||||
|
/^Created on/ {created=$2}
|
||||||
|
END { if (snap != "") { printf "%s|%s", snap, created } }
|
||||||
|
')
|
||||||
|
fi
|
||||||
|
if [ -n "$TIMESLICE_INFO" ]; then
|
||||||
|
TIMESLICE_LABEL=${TIMESLICE_INFO%%|*}
|
||||||
|
TIMESLICE_META=${TIMESLICE_INFO#*|}
|
||||||
|
[ "$TIMESLICE_META" = "$TIMESLICE_LABEL" ] && TIMESLICE_META=""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
LATEST_BOOT=""
|
||||||
|
if [ -d "$BOOT_BACKUP_DIR" ]; then
|
||||||
|
LATEST_BOOT=$( (ls -1t "$BOOT_BACKUP_DIR"/boot-*.tar.gz 2>/dev/null || true) | head -n1 )
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$TIMESLICE_LABEL" ]; then
|
||||||
|
printf -- '\033[33m Latest Timeshift snapshot: %s\n\033[37m' "$TIMESLICE_LABEL"
|
||||||
|
if [ -n "$TIMESLICE_META" ]; then
|
||||||
|
printf -- ' Details: %s\n' "$TIMESLICE_META"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
printf -- '\033[33m No Timeshift snapshots available\n\033[37m'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$LATEST_BOOT" ]; then
|
||||||
|
BOOT_BASENAME=$(basename "$LATEST_BOOT")
|
||||||
|
BOOT_STAMP=${BOOT_BASENAME#boot-}
|
||||||
|
BOOT_STAMP=${BOOT_STAMP%.tar.gz}
|
||||||
|
printf -- '\033[33m Latest /boot archive: %s (saved %s)\n\033[37m' "$BOOT_BASENAME" "$BOOT_STAMP"
|
||||||
|
else
|
||||||
|
printf -- '\033[33m No /boot backup archives available\n\033[37m'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$TIMESLICE_LABEL" ] && [ -z "$LATEST_BOOT" ]; then
|
||||||
|
printf -- '\033[31m Nothing to restore\n\033[37m'
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
RESTORED_ANY=0
|
||||||
|
|
||||||
|
if [ -n "$TIMESLICE_LABEL" ]; then
|
||||||
|
read -r -p "Restore this Timeshift snapshot? [y/N]: " CONFIRM
|
||||||
|
if [[ "$CONFIRM" =~ ^[Yy]$ ]]; then
|
||||||
|
printf -- '\033[33m Starting Timeshift restore (follow on-screen prompts)\n\033[37m'
|
||||||
|
sudo timeshift --restore --snapshot "$TIMESLICE_LABEL" --yes
|
||||||
|
RESTORED_ANY=1
|
||||||
|
else
|
||||||
|
printf -- '\033[33m Timeshift restore skipped\n\033[37m'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$LATEST_BOOT" ]; then
|
||||||
|
read -r -p "Restore /boot from this archive? [y/N]: " BOOT_CONFIRM
|
||||||
|
if [[ "$BOOT_CONFIRM" =~ ^[Yy]$ ]]; then
|
||||||
|
printf -- '\033[33m Restoring /boot from %s\n\033[37m' "$LATEST_BOOT"
|
||||||
|
sudo tar -C /boot -xpf "$LATEST_BOOT"
|
||||||
|
printf -- '\033[32m /boot restore complete\n\033[37m'
|
||||||
|
RESTORED_ANY=1
|
||||||
|
else
|
||||||
|
printf -- '\033[33m /boot restore skipped\n\033[37m'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$RESTORED_ANY" -eq 0 ]; then
|
||||||
|
printf -- '\033[33m No restore actions performed\n\033[37m'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "$ACTION" == "restore" ]; then
|
||||||
|
restore_latest_state
|
||||||
|
exit 0
|
||||||
|
elif [ "$ACTION" == "backup" ]; then
|
||||||
|
create_timeshift_snapshot "Manual backup (update_arch.sh)"
|
||||||
|
backup_boot_archive force
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
if ! pacman -Qs inetutils >/dev/null; then
|
if ! pacman -Qs inetutils >/dev/null; then
|
||||||
sudo pacman -Syy --noconfirm inetutils
|
sudo pacman -Syy --noconfirm inetutils
|
||||||
fi
|
fi
|
||||||
@ -10,7 +163,7 @@ HOSTNAME=$(hostname | tr '[:lower:]' '[:upper:]')
|
|||||||
|
|
||||||
# Declare associative array for roles
|
# Declare associative array for roles
|
||||||
declare -A ROLES
|
declare -A ROLES
|
||||||
for role in MUSIC LAB BT GAME VR DESKTOP_BASE DESKTOP_WORK CODE NVIDIA_GPU NVIDIA_1080_GPU TERMINAL HYPERLAND; do
|
for role in MUSIC LAB BT GAME VR DESKTOP_BASE DESKTOP_WORK NVIDIA_GPU NVIDIA_1080_GPU TERMINAL HYPERLAND; do
|
||||||
ROLES["$role"]="no"
|
ROLES["$role"]="no"
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -19,7 +172,6 @@ case "$HOSTNAME" in
|
|||||||
CMBOX)
|
CMBOX)
|
||||||
ROLES[DESKTOP_BASE]="yes"
|
ROLES[DESKTOP_BASE]="yes"
|
||||||
ROLES[DESKTOP_WORK]="yes"
|
ROLES[DESKTOP_WORK]="yes"
|
||||||
ROLES[CODE]="yes"
|
|
||||||
ROLES[TERMINAL]="yes"
|
ROLES[TERMINAL]="yes"
|
||||||
ROLES[HYPERLAND]="yes"
|
ROLES[HYPERLAND]="yes"
|
||||||
ROLES[MUSIC]="yes"
|
ROLES[MUSIC]="yes"
|
||||||
@ -34,7 +186,6 @@ STEAMBOX)
|
|||||||
;;
|
;;
|
||||||
LABBOX)
|
LABBOX)
|
||||||
ROLES[DESKTOP_BASE]="yes"
|
ROLES[DESKTOP_BASE]="yes"
|
||||||
ROLES[CODE]="yes"
|
|
||||||
ROLES[TERMINAL]="yes"
|
ROLES[TERMINAL]="yes"
|
||||||
ROLES[HYPERLAND]="yes"
|
ROLES[HYPERLAND]="yes"
|
||||||
ROLES[LAB]="yes"
|
ROLES[LAB]="yes"
|
||||||
@ -76,10 +227,7 @@ printf -- '\n\n\033[37m'
|
|||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
# Create backup/snapshot
|
# Create backup/snapshot
|
||||||
if pacman -Qs timeshift >/dev/null; then
|
create_timeshift_snapshot "Update script"
|
||||||
printf -- '\033[33m Creating backup/snapshot\n\033[37m'
|
|
||||||
sudo timeshift --create --comments "Update script"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Enable multilib (if applicable)
|
# Enable multilib (if applicable)
|
||||||
if [ "${ROLES[GAME]}" == "yes" ]; then
|
if [ "${ROLES[GAME]}" == "yes" ]; then
|
||||||
@ -93,6 +241,9 @@ EOT
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Back up /boot ahead of kernel upgrades so it aligns with Timeshift snapshots
|
||||||
|
backup_boot_archive auto
|
||||||
|
|
||||||
# Update all pacman packages
|
# Update all pacman packages
|
||||||
printf -- '\033[33m Updating pacman packages\n\033[37m'
|
printf -- '\033[33m Updating pacman packages\n\033[37m'
|
||||||
sudo pacman -Suyy --noconfirm
|
sudo pacman -Suyy --noconfirm
|
||||||
@ -172,15 +323,15 @@ sudo localectl set-locale LANG=en_US.UTF-8
|
|||||||
# Install hyprland
|
# Install hyprland
|
||||||
if [ "${ROLES[HYPERLAND]}" == "yes" ]; then
|
if [ "${ROLES[HYPERLAND]}" == "yes" ]; then
|
||||||
printf -- '\033[33m Installing hyprland\n\033[37m'
|
printf -- '\033[33m Installing hyprland\n\033[37m'
|
||||||
sudo pacman --noconfirm --needed -S wayvnc nm-connection-editor usbutils plymouth dracut dunst hyprpaper hypridle hyprland hyprlock xdg-desktop-portal-hyprland polkit-gnome xorg-xhost gnome-keyring qt6ct qt6ct gnome-themes-extra qt5-wayland qt6-wayland lxappearance qt5-tools adwaita-fonts gnome-disk-utility hyprpaper tk
|
sudo pacman --noconfirm --needed -S alacritty wofi wayvnc nm-connection-editor usbutils plymouth dracut dunst hyprpaper hypridle hyprland hyprlock xdg-desktop-portal-hyprland polkit-gnome xorg-xhost gnome-keyring qt6ct qt6ct gnome-themes-extra qt5-wayland qt6-wayland lxappearance qt5-tools adwaita-fonts gnome-disk-utility hyprpaper tk
|
||||||
|
|
||||||
yay --noconfirm -S --needed --aur adwaita-qt5-git
|
yay --noconfirm -S --needed --aur adwaita-qt5-git
|
||||||
yay --noconfirm -S --needed --aur adwaita-qt6-git
|
yay --noconfirm -S --needed --aur adwaita-qt6-git
|
||||||
yay --noconfirm -S --needed --aur hyprshot
|
yay --noconfirm -S --needed --aur hyprshot
|
||||||
yay --noconfirm -S --needed --aur walker-bin
|
|
||||||
|
|
||||||
mkdir -p ~/.local/bin
|
mkdir -p ~/.local/bin
|
||||||
mkdir -p ~/.config/hypr
|
mkdir -p ~/.config/hypr
|
||||||
|
mkdir -p ~/.config/alacritty
|
||||||
|
|
||||||
if [ -f ~/linuxbox/config/hypr/hyprland_$HOSTNAME.conf ]; then
|
if [ -f ~/linuxbox/config/hypr/hyprland_$HOSTNAME.conf ]; then
|
||||||
ln -sf ~/linuxbox/config/hypr/hyprland_$HOSTNAME.conf ~/.config/hypr/hyprland_extra.conf
|
ln -sf ~/linuxbox/config/hypr/hyprland_$HOSTNAME.conf ~/.config/hypr/hyprland_extra.conf
|
||||||
@ -202,6 +353,7 @@ if [ "${ROLES[HYPERLAND]}" == "yes" ]; then
|
|||||||
ln -sf ~/linuxbox/config/qt6ct ~/.config
|
ln -sf ~/linuxbox/config/qt6ct ~/.config
|
||||||
ln -sf ~/linuxbox/config/dunst ~/.config
|
ln -sf ~/linuxbox/config/dunst ~/.config
|
||||||
ln -sf ~/linuxbox/config/walker ~/.config
|
ln -sf ~/linuxbox/config/walker ~/.config
|
||||||
|
ln -sf ~/linuxbox/config/alacritty/alacritty.toml ~/.config/alacritty/alacritty.toml
|
||||||
|
|
||||||
printf -- '\033[33m Installing waybar\n\033[37m'
|
printf -- '\033[33m Installing waybar\n\033[37m'
|
||||||
sudo pacman --noconfirm --needed -S waybar
|
sudo pacman --noconfirm --needed -S waybar
|
||||||
@ -238,17 +390,14 @@ if [ "${ROLES[TERMINAL]}" == "yes" ]; then
|
|||||||
if pacman -Qs gnu-free-fonts >/dev/null; then
|
if pacman -Qs gnu-free-fonts >/dev/null; then
|
||||||
sudo pacman --noconfirm -R gnu-free-fonts
|
sudo pacman --noconfirm -R gnu-free-fonts
|
||||||
fi
|
fi
|
||||||
sudo pacman --noconfirm --needed -S dysk lazygit alacritty btop ranger tmux fd ttf-nerd-fonts-symbols ttf-roboto-mono-nerd gdu ruby bottom go php luarocks composer jdk-openjdk julia nodejs npm
|
sudo pacman --noconfirm --needed -S dysk lazygit btop ranger tmux fd ttf-nerd-fonts-symbols ttf-roboto-mono-nerd gdu ruby bottom go php luarocks composer jdk-openjdk julia nodejs npm
|
||||||
yay --noconfirm -S --needed --aur neovim-git-bin
|
yay --noconfirm -S --needed --aur neovim-git-bin
|
||||||
|
|
||||||
sudo npm install -g neovim
|
sudo npm install -g neovim
|
||||||
|
|
||||||
cargo install tree-sitter-cli ripgrep eza
|
cargo install tree-sitter-cli ripgrep eza starship
|
||||||
cargo install zoxide --locked
|
|
||||||
cargo install starship --locked
|
|
||||||
|
|
||||||
mkdir -p ~/.config/nvim
|
mkdir -p ~/.config/nvim
|
||||||
mkdir -p ~/.config/alacritty
|
|
||||||
mkdir -p ~/.config/lazygit
|
mkdir -p ~/.config/lazygit
|
||||||
mkdir -p ~/.local/bin
|
mkdir -p ~/.local/bin
|
||||||
|
|
||||||
@ -256,14 +405,9 @@ if [ "${ROLES[TERMINAL]}" == "yes" ]; then
|
|||||||
ln -sf ~/linuxbox/luacheckrc ~/.luacheckrc
|
ln -sf ~/linuxbox/luacheckrc ~/.luacheckrc
|
||||||
ln -sf ~/linuxbox/config/starship.toml ~/.config/starship.toml
|
ln -sf ~/linuxbox/config/starship.toml ~/.config/starship.toml
|
||||||
ln -sf ~/linuxbox/config/nvim/init.lua ~/.config/nvim/init.lua
|
ln -sf ~/linuxbox/config/nvim/init.lua ~/.config/nvim/init.lua
|
||||||
ln -sf ~/linuxbox/config/alacritty/alacritty.toml ~/.config/alacritty/alacritty.toml
|
|
||||||
ln -sf ~/linuxbox/config/lazygit/config.yml ~/.config/lazygit/config.yml
|
ln -sf ~/linuxbox/config/lazygit/config.yml ~/.config/lazygit/config.yml
|
||||||
ln -sf ~/linuxbox/start_nvim.sh ~/.local/bin/start_nvim
|
ln -sf ~/linuxbox/start_nvim.sh ~/.local/bin/start_nvim
|
||||||
|
|
||||||
if [ -d ~/.local/share/nvim/lazy ]; then
|
|
||||||
nvim --headless "+Lazy! sync" +qa
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf -- '\033[33m Installing fzf\n\033[37m'
|
printf -- '\033[33m Installing fzf\n\033[37m'
|
||||||
rm -rf ~/.fzf
|
rm -rf ~/.fzf
|
||||||
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
|
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
|
||||||
@ -275,29 +419,21 @@ if [ "${ROLES[TERMINAL]}" == "yes" ]; then
|
|||||||
yay --noconfirm -S --needed --aur dockerfile-language-server
|
yay --noconfirm -S --needed --aur dockerfile-language-server
|
||||||
rustup component add rust-analyzer clippy rustfmt
|
rustup component add rust-analyzer clippy rustfmt
|
||||||
|
|
||||||
printf -- '\033[33m Installing Rust embedded rp2040\n\033[37m'
|
# printf -- '\033[33m Installing VirtualHere client\n\033[37m'
|
||||||
cd ~
|
# cd ~
|
||||||
rustup target add thumbv6m-none-eabi
|
# wget https://www.virtualhere.com/sites/default/files/usbclient/scripts/virtualhereclient.service
|
||||||
cargo install elf2uf2-rs --locked
|
# wget https://www.virtualhere.com/sites/default/files/usbclient/vhclientx86_64
|
||||||
cargo install probe-run flip-link
|
# wget https://www.virtualhere.com/sites/default/files/usbclient/vhuit64
|
||||||
mkdir -p ~/.local/bin
|
# chmod +x ./vhclientx86_64
|
||||||
ln -sf ~/linuxbox/pico-load.sh ~/.local/bin/pico-load
|
# chmod +x ./vhuit64
|
||||||
|
# sudo mv ./vhclientx86_64 /usr/sbin
|
||||||
printf -- '\033[33m Installing VirtualHere client\n\033[37m'
|
# sudo mv ./vhuit64 /usr/sbin
|
||||||
cd ~
|
# echo "$USER ALL=(ALL:ALL) NOPASSWD: /usr/sbin/vhclientx86_64" | sudo tee /etc/sudoers.d/$USER+vhclientx86_64
|
||||||
wget https://www.virtualhere.com/sites/default/files/usbclient/scripts/virtualhereclient.service
|
# echo "$USER ALL=(ALL:ALL) NOPASSWD: /usr/sbin/vhuit64" | sudo tee /etc/sudoers.d/$USER+vhuit64
|
||||||
wget https://www.virtualhere.com/sites/default/files/usbclient/vhclientx86_64
|
# sudo mv virtualhereclient.service /etc/systemd/system/virtualhereclient.service
|
||||||
wget https://www.virtualhere.com/sites/default/files/usbclient/vhuit64
|
# sudo systemctl daemon-reload
|
||||||
chmod +x ./vhclientx86_64
|
# sudo systemctl enable virtualhereclient.service
|
||||||
chmod +x ./vhuit64
|
# sudo systemctl start virtualhereclient.service
|
||||||
sudo mv ./vhclientx86_64 /usr/sbin
|
|
||||||
sudo mv ./vhuit64 /usr/sbin
|
|
||||||
echo "$USER ALL=(ALL:ALL) NOPASSWD: /usr/sbin/vhclientx86_64" | sudo tee /etc/sudoers.d/$USER+vhclientx86_64
|
|
||||||
echo "$USER ALL=(ALL:ALL) NOPASSWD: /usr/sbin/vhuit64" | sudo tee /etc/sudoers.d/$USER+vhuit64
|
|
||||||
sudo mv virtualhereclient.service /etc/systemd/system/virtualhereclient.service
|
|
||||||
sudo systemctl daemon-reload
|
|
||||||
sudo systemctl enable virtualhereclient.service
|
|
||||||
sudo systemctl start virtualhereclient.service
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -307,10 +443,9 @@ if [ "${ROLES[DESKTOP_BASE]}" == "yes" ]; then
|
|||||||
sudo pacman --noconfirm --needed -S cameractrls feh
|
sudo pacman --noconfirm --needed -S cameractrls feh
|
||||||
flatpak install -y flathub com.discordapp.Discord
|
flatpak install -y flathub com.discordapp.Discord
|
||||||
flatpak install -y flathub com.behringer.XAirEdit
|
flatpak install -y flathub com.behringer.XAirEdit
|
||||||
flatpak install -y flathub com.github.vikdevelop.timer
|
|
||||||
flatpak install -y flathub io.github.efogdev.mpris-timer
|
|
||||||
flatpak install -y flathub org.remmina.Remmina
|
flatpak install -y flathub org.remmina.Remmina
|
||||||
yay --noconfirm -S --needed --aur brave-bin
|
flatpak install -y flathub com.brave.Browser
|
||||||
|
# yay --noconfirm -S --needed --aur brave-bin
|
||||||
|
|
||||||
printf -- '\033[33m Installing other fonts\n\033[37m'
|
printf -- '\033[33m Installing other fonts\n\033[37m'
|
||||||
sudo pacman --noconfirm --needed -S noto-fonts poppler-data adobe-source-code-pro-fonts
|
sudo pacman --noconfirm --needed -S noto-fonts poppler-data adobe-source-code-pro-fonts
|
||||||
@ -318,7 +453,7 @@ fi
|
|||||||
|
|
||||||
if [ "${ROLES[DESKTOP_WORK]}" == "yes" ]; then
|
if [ "${ROLES[DESKTOP_WORK]}" == "yes" ]; then
|
||||||
printf -- '\033[33m Installing desktop work utilities\n\033[37m'
|
printf -- '\033[33m Installing desktop work utilities\n\033[37m'
|
||||||
sudo pacman --noconfirm --needed -S kicad freecad
|
sudo pacman --noconfirm --needed -S kicad kicad-library freecad
|
||||||
flatpak install -y flathub org.kde.krita
|
flatpak install -y flathub org.kde.krita
|
||||||
flatpak install -y flathub com.prusa3d.PrusaSlicer
|
flatpak install -y flathub com.prusa3d.PrusaSlicer
|
||||||
flatpak install -y flathub com.jgraph.drawio.desktop
|
flatpak install -y flathub com.jgraph.drawio.desktop
|
||||||
|
|||||||
@ -17,8 +17,8 @@ if [ -d ~/linuxbox ]; then
|
|||||||
cd ~/linuxbox &&
|
cd ~/linuxbox &&
|
||||||
git pull &&
|
git pull &&
|
||||||
if [ "$OS" == "Ubuntu" ]; then
|
if [ "$OS" == "Ubuntu" ]; then
|
||||||
./update_ubuntu.sh
|
./update_ubuntu.sh "$@"
|
||||||
elif [ "$OS" == "Arch Linux" ]; then
|
elif [ "$OS" == "Arch Linux" ]; then
|
||||||
./update_arch.sh
|
./update_arch.sh "$@"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user