mirror of
https://github.com/ForeverPyrite/dotfiles.git
synced 2025-12-10 01:08:06 +00:00
First real commit, for testing purposes.
Will add README.md and clean up obviously AI code later.
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# This is for some silly goofy ssh keys I have going on to push to the repo.
|
||||||
|
.github*
|
||||||
14
alacritty/.config/alacritty/alacritty.toml
Normal file
14
alacritty/.config/alacritty/alacritty.toml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
|
||||||
|
[font]
|
||||||
|
normal = { family = "Hack Nerd Font", style = "Regular" }
|
||||||
|
bold = { family = "Hack Nerd Font", style = "Bold" }
|
||||||
|
italic = { family = "Hack Nerd Font", style = "Italic" }
|
||||||
|
size = 11.0
|
||||||
|
|
||||||
|
[window]
|
||||||
|
decorations = "full"
|
||||||
|
opacity = 0.95
|
||||||
|
|
||||||
|
[shell]
|
||||||
|
program = "/usr/bin/fish"
|
||||||
|
args = ["-l"]
|
||||||
34
bash/.bash_aliases
Normal file
34
bash/.bash_aliases
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Including this from .bashrc because maybe I'll remember it exists and find a use for it if I put it here.
|
||||||
|
# Add an "alert" alias for long running commands. Use like so:
|
||||||
|
# sleep 10; alert
|
||||||
|
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
|
||||||
|
|
||||||
|
### Actually mine ###
|
||||||
|
|
||||||
|
# Rust drop-ins
|
||||||
|
alias cat="bat --paging=never"
|
||||||
|
alias grep="rg"
|
||||||
|
alias ls="eza --icons --group-directories-first"
|
||||||
|
|
||||||
|
# More eza aliases
|
||||||
|
# ll: long list, all files, show git status
|
||||||
|
alias ll="eza -l -a --git --icons --group-directories-first"
|
||||||
|
|
||||||
|
# la: list all files (including dotfiles)
|
||||||
|
alias la="eza -a --icons --group-directories-first"
|
||||||
|
|
||||||
|
# lt: tree view
|
||||||
|
alias lt="eza --tree --level=2 --long --git --icons"
|
||||||
|
|
||||||
|
# If docker is actually installed on the host...
|
||||||
|
if command docker -v &> /dev/null; then
|
||||||
|
alias dc="docker compose"
|
||||||
|
alias dcb="dc build"
|
||||||
|
alias dcu="dc up -d"
|
||||||
|
alias dcl="dc logs -f"
|
||||||
|
alias dcf="dcu && dcl" # Think "docker compose full", yes all of this is peak laziness but this is probably my most used command.
|
||||||
|
fi
|
||||||
7
bash/.bash_logout
Normal file
7
bash/.bash_logout
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# ~/.bash_logout: executed by bash(1) when login shell exits.
|
||||||
|
|
||||||
|
# when leaving the console clear the screen to increase privacy
|
||||||
|
|
||||||
|
if [ "$SHLVL" = 1 ]; then
|
||||||
|
[ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
|
||||||
|
fi
|
||||||
144
bash/.bashrc
Normal file
144
bash/.bashrc
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
# ~/.bashrc: executed by bash(1) for non-login shells.
|
||||||
|
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
|
||||||
|
# for examples
|
||||||
|
|
||||||
|
# If not running interactively, don't do anything
|
||||||
|
case $- in
|
||||||
|
*i*) ;;
|
||||||
|
*) return;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# wait if we are running interactive literally just use fish lmao (assuming it's installed, ofc)
|
||||||
|
if ! command -v fish &> /dev/null; then
|
||||||
|
# don't put duplicate lines or lines starting with space in the history.
|
||||||
|
# See bash(1) for more options
|
||||||
|
HISTCONTROL=ignoreboth
|
||||||
|
|
||||||
|
# append to the history file, don't overwrite it
|
||||||
|
shopt -s histappend
|
||||||
|
|
||||||
|
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
|
||||||
|
HISTSIZE=1000
|
||||||
|
HISTFILESIZE=2000
|
||||||
|
|
||||||
|
# check the window size after each command and, if necessary,
|
||||||
|
# update the values of LINES and COLUMNS.
|
||||||
|
shopt -s checkwinsize
|
||||||
|
|
||||||
|
# If set, the pattern "**" used in a pathname expansion context will
|
||||||
|
# match all files and zero or more directories and subdirectories.
|
||||||
|
#shopt -s globstar
|
||||||
|
|
||||||
|
# make less more friendly for non-text input files, see lesspipe(1)
|
||||||
|
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
|
||||||
|
|
||||||
|
# set variable identifying the chroot you work in (used in the prompt below)
|
||||||
|
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
|
||||||
|
debian_chroot=$(cat /etc/debian_chroot)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# set a fancy prompt (non-color, unless we know we "want" color)
|
||||||
|
case "$TERM" in
|
||||||
|
xterm-color|*-256color) color_prompt=yes;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# uncomment for a colored prompt, if the terminal has the capability; turned
|
||||||
|
# off by default to not distract the user: the focus in a terminal window
|
||||||
|
# should be on the output of commands, not on the prompt
|
||||||
|
#force_color_prompt=yes
|
||||||
|
|
||||||
|
if [ -n "$force_color_prompt" ]; then
|
||||||
|
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
||||||
|
# We have color support; assume it's compliant with Ecma-48
|
||||||
|
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
|
||||||
|
# a case would tend to support setf rather than setaf.)
|
||||||
|
color_prompt=yes
|
||||||
|
else
|
||||||
|
color_prompt=
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$color_prompt" = yes ]; then
|
||||||
|
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
|
||||||
|
else
|
||||||
|
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
||||||
|
fi
|
||||||
|
unset color_prompt force_color_prompt
|
||||||
|
|
||||||
|
# If this is an xterm set the title to user@host:dir
|
||||||
|
case "$TERM" in
|
||||||
|
xterm*|rxvt*)
|
||||||
|
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# enable color support of ls and also add handy aliases
|
||||||
|
if [ -x /usr/bin/dircolors ]; then
|
||||||
|
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||||
|
alias ls='ls --color=auto'
|
||||||
|
#alias dir='dir --color=auto'
|
||||||
|
#alias vdir='vdir --color=auto'
|
||||||
|
|
||||||
|
alias grep='grep --color=auto'
|
||||||
|
alias fgrep='fgrep --color=auto'
|
||||||
|
alias egrep='egrep --color=auto'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# colored GCC warnings and errors
|
||||||
|
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
|
||||||
|
|
||||||
|
# some more ls aliases
|
||||||
|
alias ll='ls -alF'
|
||||||
|
alias la='ls -A'
|
||||||
|
alias l='ls -CF'
|
||||||
|
|
||||||
|
# Add an "alert" alias for long running commands. Use like so:
|
||||||
|
# sleep 10; alert
|
||||||
|
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
|
||||||
|
|
||||||
|
# Alias definitions.
|
||||||
|
# You may want to put all your additions into a separate file like
|
||||||
|
# ~/.bash_aliases, instead of adding them here directly.
|
||||||
|
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
|
||||||
|
|
||||||
|
if [ -f ~/.bash_aliases ]; then
|
||||||
|
. ~/.bash_aliases
|
||||||
|
fi
|
||||||
|
|
||||||
|
# enable programmable completion features (you don't need to enable
|
||||||
|
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
|
||||||
|
# sources /etc/bash.bashrc).
|
||||||
|
if ! shopt -oq posix; then
|
||||||
|
if [ -f /usr/share/bash-completion/bash_completion ]; then
|
||||||
|
. /usr/share/bash-completion/bash_completion
|
||||||
|
elif [ -f /etc/bash_completion ]; then
|
||||||
|
. /etc/bash_completion
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
. "$HOME/.cargo/env"
|
||||||
|
|
||||||
|
|
||||||
|
# impl Bash for FZF
|
||||||
|
export FZF_DEFAULT_OPTS='--tmux'
|
||||||
|
eval "$(fzf --bash)"
|
||||||
|
|
||||||
|
# impl Bash for Autin
|
||||||
|
eval "$(atuin init bash)"
|
||||||
|
|
||||||
|
# impl Bash<T> for Zoxide where T = FZF
|
||||||
|
export _ZO_FZF_OPTS='--tmux'
|
||||||
|
export _ZO_DOCTOR=0 # Since starship should be last ig
|
||||||
|
eval "$(zoxide init --cmd cd bash)"
|
||||||
|
|
||||||
|
|
||||||
|
# theming? Who needs that. OH WAIT IT'S WRITTEN IN RUST!? HELL YEAH!!!
|
||||||
|
eval "$(starship init bash)"
|
||||||
|
|
||||||
|
[ -f ~/.fzf.bash ] && source ~/.fzf.bash
|
||||||
|
|
||||||
|
else
|
||||||
|
# I assume this will be a weird thing where you have to exit exit since it's not the login shell?
|
||||||
|
exec fish
|
||||||
|
fi
|
||||||
212
btop/.config/btop/btop.conf
Normal file
212
btop/.config/btop/btop.conf
Normal file
@@ -0,0 +1,212 @@
|
|||||||
|
#? Config file for btop v. 1.2.13
|
||||||
|
|
||||||
|
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
|
||||||
|
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
|
||||||
|
color_theme = "/root/.config/btop/themes/catppuccin_mocha.theme"
|
||||||
|
|
||||||
|
#* If the theme set background should be shown, set to False if you want terminal background transparency.
|
||||||
|
theme_background = True
|
||||||
|
|
||||||
|
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
|
||||||
|
truecolor = True
|
||||||
|
|
||||||
|
#* Set to true to force tty mode regardless if a real tty has been detected or not.
|
||||||
|
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
|
||||||
|
force_tty = False
|
||||||
|
|
||||||
|
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
|
||||||
|
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
|
||||||
|
#* Use whitespace " " as separator between different presets.
|
||||||
|
#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
|
||||||
|
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
|
||||||
|
|
||||||
|
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
|
||||||
|
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
|
||||||
|
vim_keys = False
|
||||||
|
|
||||||
|
#* Rounded corners on boxes, is ignored if TTY mode is ON.
|
||||||
|
rounded_corners = True
|
||||||
|
|
||||||
|
#* Default symbols to use for graph creation, "braille", "block" or "tty".
|
||||||
|
#* "braille" offers the highest resolution but might not be included in all fonts.
|
||||||
|
#* "block" has half the resolution of braille but uses more common characters.
|
||||||
|
#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
|
||||||
|
#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
|
||||||
|
graph_symbol = "braille"
|
||||||
|
|
||||||
|
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||||
|
graph_symbol_cpu = "default"
|
||||||
|
|
||||||
|
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||||
|
graph_symbol_mem = "default"
|
||||||
|
|
||||||
|
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||||
|
graph_symbol_net = "default"
|
||||||
|
|
||||||
|
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||||
|
graph_symbol_proc = "default"
|
||||||
|
|
||||||
|
#* Manually set which boxes to show. Available values are "cpu mem net proc", separate values with whitespace.
|
||||||
|
shown_boxes = "cpu mem net proc"
|
||||||
|
|
||||||
|
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
|
||||||
|
update_ms = 2000
|
||||||
|
|
||||||
|
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
|
||||||
|
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
|
||||||
|
proc_sorting = "cpu lazy"
|
||||||
|
|
||||||
|
#* Reverse sorting order, True or False.
|
||||||
|
proc_reversed = False
|
||||||
|
|
||||||
|
#* Show processes as a tree.
|
||||||
|
proc_tree = False
|
||||||
|
|
||||||
|
#* Use the cpu graph colors in the process list.
|
||||||
|
proc_colors = True
|
||||||
|
|
||||||
|
#* Use a darkening gradient in the process list.
|
||||||
|
proc_gradient = True
|
||||||
|
|
||||||
|
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
|
||||||
|
proc_per_core = False
|
||||||
|
|
||||||
|
#* Show process memory as bytes instead of percent.
|
||||||
|
proc_mem_bytes = True
|
||||||
|
|
||||||
|
#* Show cpu graph for each process.
|
||||||
|
proc_cpu_graphs = True
|
||||||
|
|
||||||
|
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
|
||||||
|
proc_info_smaps = False
|
||||||
|
|
||||||
|
#* Show proc box on left side of screen instead of right.
|
||||||
|
proc_left = False
|
||||||
|
|
||||||
|
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
|
||||||
|
proc_filter_kernel = False
|
||||||
|
|
||||||
|
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
|
||||||
|
#* Select from a list of detected attributes from the options menu.
|
||||||
|
cpu_graph_upper = "total"
|
||||||
|
|
||||||
|
#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
|
||||||
|
#* Select from a list of detected attributes from the options menu.
|
||||||
|
cpu_graph_lower = "total"
|
||||||
|
|
||||||
|
#* Toggles if the lower CPU graph should be inverted.
|
||||||
|
cpu_invert_lower = True
|
||||||
|
|
||||||
|
#* Set to True to completely disable the lower CPU graph.
|
||||||
|
cpu_single_graph = False
|
||||||
|
|
||||||
|
#* Show cpu box at bottom of screen instead of top.
|
||||||
|
cpu_bottom = False
|
||||||
|
|
||||||
|
#* Shows the system uptime in the CPU box.
|
||||||
|
show_uptime = True
|
||||||
|
|
||||||
|
#* Show cpu temperature.
|
||||||
|
check_temp = True
|
||||||
|
|
||||||
|
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
|
||||||
|
cpu_sensor = "Auto"
|
||||||
|
|
||||||
|
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
|
||||||
|
show_coretemp = True
|
||||||
|
|
||||||
|
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
|
||||||
|
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
|
||||||
|
#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
|
||||||
|
#* Example: "4:0 5:1 6:3"
|
||||||
|
cpu_core_map = ""
|
||||||
|
|
||||||
|
#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
|
||||||
|
temp_scale = "celsius"
|
||||||
|
|
||||||
|
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
|
||||||
|
base_10_sizes = False
|
||||||
|
|
||||||
|
#* Show CPU frequency.
|
||||||
|
show_cpu_freq = True
|
||||||
|
|
||||||
|
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
|
||||||
|
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
|
||||||
|
clock_format = "%X"
|
||||||
|
|
||||||
|
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
|
||||||
|
background_update = True
|
||||||
|
|
||||||
|
#* Custom cpu model name, empty string to disable.
|
||||||
|
custom_cpu_name = ""
|
||||||
|
|
||||||
|
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
|
||||||
|
#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user".
|
||||||
|
disks_filter = ""
|
||||||
|
|
||||||
|
#* Show graphs instead of meters for memory values.
|
||||||
|
mem_graphs = True
|
||||||
|
|
||||||
|
#* Show mem box below net box instead of above.
|
||||||
|
mem_below_net = False
|
||||||
|
|
||||||
|
#* Count ZFS ARC in cached and available memory.
|
||||||
|
zfs_arc_cached = True
|
||||||
|
|
||||||
|
#* If swap memory should be shown in memory box.
|
||||||
|
show_swap = True
|
||||||
|
|
||||||
|
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
|
||||||
|
swap_disk = True
|
||||||
|
|
||||||
|
#* If mem box should be split to also show disks info.
|
||||||
|
show_disks = True
|
||||||
|
|
||||||
|
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
|
||||||
|
only_physical = True
|
||||||
|
|
||||||
|
#* Read disks list from /etc/fstab. This also disables only_physical.
|
||||||
|
use_fstab = True
|
||||||
|
|
||||||
|
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
|
||||||
|
zfs_hide_datasets = False
|
||||||
|
|
||||||
|
#* Set to true to show available disk space for privileged users.
|
||||||
|
disk_free_priv = False
|
||||||
|
|
||||||
|
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
|
||||||
|
show_io_stat = True
|
||||||
|
|
||||||
|
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
|
||||||
|
io_mode = False
|
||||||
|
|
||||||
|
#* Set to True to show combined read/write io graphs in io mode.
|
||||||
|
io_graph_combined = False
|
||||||
|
|
||||||
|
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
|
||||||
|
#* Example: "/mnt/media:100 /:20 /boot:1".
|
||||||
|
io_graph_speeds = ""
|
||||||
|
|
||||||
|
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
|
||||||
|
net_download = 100
|
||||||
|
|
||||||
|
net_upload = 100
|
||||||
|
|
||||||
|
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
|
||||||
|
net_auto = True
|
||||||
|
|
||||||
|
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
|
||||||
|
net_sync = True
|
||||||
|
|
||||||
|
#* Starts with the Network Interface specified here.
|
||||||
|
net_iface = ""
|
||||||
|
|
||||||
|
#* Show battery stats in top right if battery is present.
|
||||||
|
show_battery = True
|
||||||
|
|
||||||
|
#* Which battery to use if multiple are present. "Auto" for auto detection.
|
||||||
|
selected_battery = "Auto"
|
||||||
|
|
||||||
|
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
|
||||||
|
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
|
||||||
|
log_level = "WARNING"
|
||||||
83
btop/.config/btop/themes/catppuccin_mocha.theme
Normal file
83
btop/.config/btop/themes/catppuccin_mocha.theme
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
# Main background, empty for terminal default, need to be empty if you want transparent background
|
||||||
|
theme[main_bg]="#1e1e2e"
|
||||||
|
|
||||||
|
# Main text color
|
||||||
|
theme[main_fg]="#cdd6f4"
|
||||||
|
|
||||||
|
# Title color for boxes
|
||||||
|
theme[title]="#cdd6f4"
|
||||||
|
|
||||||
|
# Highlight color for keyboard shortcuts
|
||||||
|
theme[hi_fg]="#89b4fa"
|
||||||
|
|
||||||
|
# Background color of selected item in processes box
|
||||||
|
theme[selected_bg]="#45475a"
|
||||||
|
|
||||||
|
# Foreground color of selected item in processes box
|
||||||
|
theme[selected_fg]="#89b4fa"
|
||||||
|
|
||||||
|
# Color of inactive/disabled text
|
||||||
|
theme[inactive_fg]="#7f849c"
|
||||||
|
|
||||||
|
# Color of text appearing on top of graphs, i.e uptime and current network graph scaling
|
||||||
|
theme[graph_text]="#f5e0dc"
|
||||||
|
|
||||||
|
# Background color of the percentage meters
|
||||||
|
theme[meter_bg]="#45475a"
|
||||||
|
|
||||||
|
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
|
||||||
|
theme[proc_misc]="#f5e0dc"
|
||||||
|
|
||||||
|
# CPU, Memory, Network, Proc box outline colors
|
||||||
|
theme[cpu_box]="#cba6f7" #Mauve
|
||||||
|
theme[mem_box]="#a6e3a1" #Green
|
||||||
|
theme[net_box]="#eba0ac" #Maroon
|
||||||
|
theme[proc_box]="#89b4fa" #Blue
|
||||||
|
|
||||||
|
# Box divider line and small boxes line color
|
||||||
|
theme[div_line]="#6c7086"
|
||||||
|
|
||||||
|
# Temperature graph color (Green -> Yellow -> Red)
|
||||||
|
theme[temp_start]="#a6e3a1"
|
||||||
|
theme[temp_mid]="#f9e2af"
|
||||||
|
theme[temp_end]="#f38ba8"
|
||||||
|
|
||||||
|
# CPU graph colors (Teal -> Lavender)
|
||||||
|
theme[cpu_start]="#94e2d5"
|
||||||
|
theme[cpu_mid]="#74c7ec"
|
||||||
|
theme[cpu_end]="#b4befe"
|
||||||
|
|
||||||
|
# Mem/Disk free meter (Mauve -> Lavender -> Blue)
|
||||||
|
theme[free_start]="#cba6f7"
|
||||||
|
theme[free_mid]="#b4befe"
|
||||||
|
theme[free_end]="#89b4fa"
|
||||||
|
|
||||||
|
# Mem/Disk cached meter (Sapphire -> Lavender)
|
||||||
|
theme[cached_start]="#74c7ec"
|
||||||
|
theme[cached_mid]="#89b4fa"
|
||||||
|
theme[cached_end]="#b4befe"
|
||||||
|
|
||||||
|
# Mem/Disk available meter (Peach -> Red)
|
||||||
|
theme[available_start]="#fab387"
|
||||||
|
theme[available_mid]="#eba0ac"
|
||||||
|
theme[available_end]="#f38ba8"
|
||||||
|
|
||||||
|
# Mem/Disk used meter (Green -> Sky)
|
||||||
|
theme[used_start]="#a6e3a1"
|
||||||
|
theme[used_mid]="#94e2d5"
|
||||||
|
theme[used_end]="#89dceb"
|
||||||
|
|
||||||
|
# Download graph colors (Peach -> Red)
|
||||||
|
theme[download_start]="#fab387"
|
||||||
|
theme[download_mid]="#eba0ac"
|
||||||
|
theme[download_end]="#f38ba8"
|
||||||
|
|
||||||
|
# Upload graph colors (Green -> Sky)
|
||||||
|
theme[upload_start]="#a6e3a1"
|
||||||
|
theme[upload_mid]="#94e2d5"
|
||||||
|
theme[upload_end]="#89dceb"
|
||||||
|
|
||||||
|
# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve)
|
||||||
|
theme[process_start]="#74c7ec"
|
||||||
|
theme[process_mid]="#b4befe"
|
||||||
|
theme[process_end]="#cba6f7"
|
||||||
49
fish/.config/fish/conf.d/aliases.fish
Normal file
49
fish/.config/fish/conf.d/aliases.fish
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
# ~/.config/fish/conf.d/aliases.fish
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Core "Rust-first" Command Replacements
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# These override the standard Unix commands with our modern alternatives.
|
||||||
|
# Note: Fish syntax doesn't use '=' for aliases.
|
||||||
|
|
||||||
|
alias cat "bat --paging=never" # Use bat to view files
|
||||||
|
alias grep "rg" # Use ripgrep for searching
|
||||||
|
alias ls "eza --icons --group-directories-first" # The new default `ls`
|
||||||
|
alias find "fd" # fd-find. you're smart, you'll figure it out
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Enhanced `eza` Aliases
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Common shortcuts for different views.
|
||||||
|
|
||||||
|
# ll: long list, all files, show git status
|
||||||
|
alias ll "eza -l -a --git --icons --group-directories-first"
|
||||||
|
|
||||||
|
# la: list all files (including dotfiles)
|
||||||
|
alias la "eza -a --icons --group-directories-first"
|
||||||
|
|
||||||
|
# lt: tree view
|
||||||
|
alias lt "eza --tree --level=2 --long --git --icons"
|
||||||
|
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Context-Aware Aliases (Docker)
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# These aliases are only defined if the `docker` command is available.
|
||||||
|
|
||||||
|
if command -v docker &> /dev/null
|
||||||
|
# Simple aliases for docker-compose
|
||||||
|
alias dc "docker compose"
|
||||||
|
alias dcb "docker compose build"
|
||||||
|
alias dcu "docker compose up -d"
|
||||||
|
alias dcl "docker compose logs -f"
|
||||||
|
|
||||||
|
# Your "full" command is better as a function for clarity
|
||||||
|
# You can put this in functions.fish or define it right here!
|
||||||
|
function dcf
|
||||||
|
echo "==> Running 'docker compose up -d'..."
|
||||||
|
docker compose up -d
|
||||||
|
echo "==> Tailing logs with 'docker compose logs -f'..."
|
||||||
|
docker compose logs -f
|
||||||
|
end
|
||||||
|
end
|
||||||
18
fish/.config/fish/conf.d/functions.fish
Normal file
18
fish/.config/fish/conf.d/functions.fish
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
|
||||||
|
|
||||||
|
# Sends a desktop notification after a command completes.
|
||||||
|
# Usage: long_running_command; alert
|
||||||
|
# Derived from the alias in the default .bashrc that I was interested in, probably will still never think to use it though lol
|
||||||
|
function alert
|
||||||
|
# $status contains the exit code of the last command
|
||||||
|
set -l last_status $status
|
||||||
|
|
||||||
|
# Get the last command from history. Much cleaner than `history | tail | sed`.
|
||||||
|
set -l last_cmd (history --max=1)
|
||||||
|
|
||||||
|
if test $last_status -eq 0
|
||||||
|
notify-send --urgency=low --icon=terminal "✅ Command Succeeded" "$last_cmd"
|
||||||
|
else
|
||||||
|
notify-send --urgency=critical --icon=error "❌ Command Failed (Exit Code: $last_status)" "$last_cmd"
|
||||||
|
end
|
||||||
|
end
|
||||||
1
fish/.config/fish/conf.d/rustup.fish
Normal file
1
fish/.config/fish/conf.d/rustup.fish
Normal file
@@ -0,0 +1 @@
|
|||||||
|
source "$HOME/.cargo/env.fish"
|
||||||
37
fish/.config/fish/config.fish
Normal file
37
fish/.config/fish/config.fish
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
# ~/.config/fish/config.fish
|
||||||
|
|
||||||
|
# --- Environment Variables ---
|
||||||
|
# Set a default editor (used by many command-line tools)
|
||||||
|
set -x EDITOR nvim
|
||||||
|
|
||||||
|
# --- PATH Configuration ---
|
||||||
|
# Add Cargo's bin directory to the path
|
||||||
|
fish_add_path "$HOME/.cargo/bin"
|
||||||
|
|
||||||
|
# --- Tool Initialization ---
|
||||||
|
# Starship Prompt
|
||||||
|
starship init fish | source
|
||||||
|
|
||||||
|
# Zoxide (replaces cd)
|
||||||
|
set -x FZF_DEFAULT_OPTS --tmux
|
||||||
|
zoxide init fish | source
|
||||||
|
|
||||||
|
# Autin (rip unencrypted .bash_history)
|
||||||
|
atuin init fish | source
|
||||||
|
|
||||||
|
# FZF Keybindings
|
||||||
|
# This sources the file installed by `fzf --all`
|
||||||
|
if test -f "$HOME/.fzf.fish"
|
||||||
|
source "$HOME/.fzf.fish"
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
# --- ALIASES (The "Rust-first" way) ---
|
||||||
|
# Use 'alias' for simple command replacements.
|
||||||
|
# Note the syntax is 'alias new_command "old_command with args"'
|
||||||
|
|
||||||
|
alias ls 'eza --icons --group-directories-first' # a more feature-rich ls
|
||||||
|
alias ll 'eza -l --icons --group-directories-first'
|
||||||
|
alias la 'eza -la --icons --group-directories-first'
|
||||||
|
alias cat 'bat --paging=never' # bat is a better cat
|
||||||
|
alias grep 'rg' # ripgrep is a better grep
|
||||||
32
fish/.config/fish/fish_variables
Normal file
32
fish/.config/fish/fish_variables
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# This file contains fish universal variable definitions.
|
||||||
|
# VERSION: 3.0
|
||||||
|
SETUVAR __fish_initialized:3800
|
||||||
|
SETUVAR fish_color_autosuggestion:555\x1ebrblack
|
||||||
|
SETUVAR fish_color_cancel:\x2dr
|
||||||
|
SETUVAR fish_color_command:blue
|
||||||
|
SETUVAR fish_color_comment:red
|
||||||
|
SETUVAR fish_color_cwd:green
|
||||||
|
SETUVAR fish_color_cwd_root:red
|
||||||
|
SETUVAR fish_color_end:green
|
||||||
|
SETUVAR fish_color_error:brred
|
||||||
|
SETUVAR fish_color_escape:brcyan
|
||||||
|
SETUVAR fish_color_history_current:\x2d\x2dbold
|
||||||
|
SETUVAR fish_color_host:normal
|
||||||
|
SETUVAR fish_color_host_remote:yellow
|
||||||
|
SETUVAR fish_color_normal:normal
|
||||||
|
SETUVAR fish_color_operator:brcyan
|
||||||
|
SETUVAR fish_color_param:cyan
|
||||||
|
SETUVAR fish_color_quote:yellow
|
||||||
|
SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold
|
||||||
|
SETUVAR fish_color_search_match:white\x1e\x2d\x2dbackground\x3dbrblack
|
||||||
|
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
|
||||||
|
SETUVAR fish_color_status:red
|
||||||
|
SETUVAR fish_color_user:brgreen
|
||||||
|
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||||
|
SETUVAR fish_key_bindings:fish_default_key_bindings
|
||||||
|
SETUVAR fish_pager_color_completion:normal
|
||||||
|
SETUVAR fish_pager_color_description:B3A06D\x1eyellow\x1e\x2di
|
||||||
|
SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
||||||
|
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
||||||
|
SETUVAR fish_pager_color_selected_background:\x2dr
|
||||||
|
SETUVAR fish_user_paths:/home/foreverpyrite/\x2ecargo/bin\x1e/root/\x2ecargo/bin\x1e/root/\x2efzf/bin\x1e/home/foreverpyrite/\x2efzf/bin
|
||||||
3
fish/.config/fish/functions/fish_user_key_bindings.fish
Normal file
3
fish/.config/fish/functions/fish_user_key_bindings.fish
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function fish_user_key_bindings
|
||||||
|
fzf --fish | source
|
||||||
|
end
|
||||||
230
install.sh
Executable file
230
install.sh
Executable file
@@ -0,0 +1,230 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Dotfiles Bootstrap Script
|
||||||
|
#
|
||||||
|
# This script automates the setup of a high-performance, Rust-powered
|
||||||
|
# command-line environment. It uses a hybrid sequential/parallel approach.
|
||||||
|
#
|
||||||
|
# Flags:
|
||||||
|
# --extended: Performs a "desktop" setup: installs GUI fonts and changes the default shell.
|
||||||
|
# --docker: Installs Docker Engine.
|
||||||
|
|
||||||
|
set -e # Exit immediately if a command exits with a non-zero status.
|
||||||
|
|
||||||
|
# --- Helper Functions for Logging ---
|
||||||
|
info() { echo -e "\033[1;34m==> $1\033[0m"; }
|
||||||
|
success() { echo -e "\033[1;32m✅ $1\033[0m"; }
|
||||||
|
warn() { echo -e "\033[1;33m⚠️ $1\033[0m"; }
|
||||||
|
|
||||||
|
# --- Argument Parsing & Environment Setup ---
|
||||||
|
EXTENDED_INSTALL=false
|
||||||
|
DOCKER_INSTALL=false
|
||||||
|
[[ " $* " =~ " --extended " ]] && EXTENDED_INSTALL=true
|
||||||
|
[[ " $* " =~ " --docker " ]] && DOCKER_INSTALL=true
|
||||||
|
|
||||||
|
# Phased installation package lists
|
||||||
|
PREREQ_PACKAGES=(git stow)
|
||||||
|
SYSTEM_PACKAGES=(curl tmux btop fish)
|
||||||
|
RUST_PACKAGES=(
|
||||||
|
eza
|
||||||
|
bat
|
||||||
|
ripgrep
|
||||||
|
zoxide
|
||||||
|
starship
|
||||||
|
bob-nvim
|
||||||
|
atuin
|
||||||
|
dua-cli
|
||||||
|
cargo-cache
|
||||||
|
)
|
||||||
|
|
||||||
|
# Global variables for system context
|
||||||
|
SUDO_CMD=""
|
||||||
|
PM=""
|
||||||
|
OS_ID=""
|
||||||
|
|
||||||
|
# --- Prerequisite Functions (Unchanged) ---
|
||||||
|
detect_os_and_pm() {
|
||||||
|
info "Detecting OS and Package Manager..."
|
||||||
|
if [ -f /etc/os-release ]; then
|
||||||
|
. /etc/os-release
|
||||||
|
OS_ID=$ID
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$(uname)" == "Darwin" ]]; then
|
||||||
|
PM="brew"
|
||||||
|
elif command -v apt-get &>/dev/null; then
|
||||||
|
PM="apt-get"
|
||||||
|
elif command -v dnf &>/dev/null; then
|
||||||
|
PM="dnf"
|
||||||
|
elif command -v pacman &>/dev/null; then
|
||||||
|
PM="pacman"
|
||||||
|
else
|
||||||
|
warn "Could not detect a supported package manager (apt-get, dnf, pacman, brew)."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
info "Detected OS: ${OS_ID:-macOS}, Package Manager: $PM"
|
||||||
|
}
|
||||||
|
|
||||||
|
check_and_setup_sudo() {
|
||||||
|
info "Checking for root privileges and sudo..."
|
||||||
|
if [[ "$(id -u)" -eq 0 ]]; then
|
||||||
|
info "Running as root. 'sudo' is not required."
|
||||||
|
SUDO_CMD=""
|
||||||
|
if ! command -v sudo &>/dev/null; then
|
||||||
|
info "Sudo not found. Installing it for future convenience..."
|
||||||
|
case "$PM" in
|
||||||
|
apt-get) apt-get update && apt-get install -y sudo ;;
|
||||||
|
dnf) dnf install -y sudo ;;
|
||||||
|
pacman) pacman -S --noconfirm sudo ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if ! command -v sudo &>/dev/null; then
|
||||||
|
warn "This script requires 'sudo' to be installed for non-root users."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
SUDO_CMD="sudo"
|
||||||
|
info "Running as non-root user. Using 'sudo' for privileged operations."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
install_build_tools() {
|
||||||
|
info "Installing essential build tools for Rust..."
|
||||||
|
case "$PM" in
|
||||||
|
apt-get) $SUDO_CMD apt-get install -y build-essential ;;
|
||||||
|
dnf) $SUDO_CMD dnf groupinstall -y "Development Tools" ;;
|
||||||
|
pacman) $SUDO_CMD pacman -S --noconfirm --needed base-devel ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
install_rust_toolchain() {
|
||||||
|
if command -v cargo &>/dev/null; then info "Rust toolchain is already installed."; else
|
||||||
|
info "Installing Rust and Cargo via rustup..."
|
||||||
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
||||||
|
fi
|
||||||
|
export PATH="$HOME/.cargo/bin:$PATH"
|
||||||
|
}
|
||||||
|
|
||||||
|
deploy_dotfiles() {
|
||||||
|
info "Cloning and deploying dotfiles..."
|
||||||
|
local dotfiles_repo="https://github.com/ForeverPyrite/dotfiles.git"
|
||||||
|
local dotfiles_dir="$HOME/dotfiles"
|
||||||
|
if [ ! -d "$dotfiles_dir" ]; then git clone "$dotfiles_repo" "$dotfiles_dir"; else info "Dotfiles directory already exists. Skipping clone."; fi
|
||||||
|
info "Backing up any conflicting default config files..."
|
||||||
|
local conflict_files=("$HOME/.bashrc" "$HOME/.profile" "$HOME/.bash_logout")
|
||||||
|
for file in "${conflict_files[@]}"; do
|
||||||
|
if [ -f "$file" ] && [ ! -L "$file" ]; then
|
||||||
|
mv "$file" "$file.bak"
|
||||||
|
info " -> Moved $file to $file.bak"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
info "Running 'stow' to link configurations..."
|
||||||
|
cd "$dotfiles_dir"
|
||||||
|
for dir in */; do [ -d "$dir" ] && stow "${dir%/}"; done
|
||||||
|
cd - >/dev/null
|
||||||
|
success "Dotfiles have been deployed."
|
||||||
|
}
|
||||||
|
|
||||||
|
# --- Parallel Installation Function ---
|
||||||
|
run_parallel_installs() {
|
||||||
|
info "Handing off to Tmux for parallel tool installation..."
|
||||||
|
local session_name="dotfiles"
|
||||||
|
|
||||||
|
# --- Command Definitions ---
|
||||||
|
local cargo_cmd="export PATH='$HOME/.cargo/bin:$PATH'; for pkg in ${RUST_PACKAGES[@]}; do cargo install --locked \$pkg; done && bob use stable && \
|
||||||
|
sudo ln -s ~/.local/share/bob/nvim-bob/nvim /usr/bin/nvim && \
|
||||||
|
cargo cache -a -y && \
|
||||||
|
echo '✅ Cargo packages installed, Neovim set up, and cache cleaned.'"
|
||||||
|
local fzf_cmd="git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf && ~/.fzf/install --all && echo '✅ fzf installed.'"
|
||||||
|
local tpm_cmd="git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm && echo '✅ Tmux Plugin Manager installed.'"
|
||||||
|
|
||||||
|
# --- Create Layout & Send Commands ---
|
||||||
|
# This robust method creates the entire layout first, then sends commands to the numbered panes.
|
||||||
|
tmux start-server
|
||||||
|
# Pane 0
|
||||||
|
tmux new-session -d -s "$session_name"
|
||||||
|
# Pane 1
|
||||||
|
tmux split-window -h -t "$session_name:1.1"
|
||||||
|
# Pane 2
|
||||||
|
tmux split-window -v -t "$session_name:1.2"
|
||||||
|
|
||||||
|
# Send commands to their respective panes
|
||||||
|
tmux send-keys -t "$session_name:1.1" "$cargo_cmd" C-m
|
||||||
|
tmux send-keys -t "$session_name:1.2" "$tpm_cmd" C-m
|
||||||
|
tmux send-keys -t "$session_name:1.3" "$fzf_cmd" C-m
|
||||||
|
|
||||||
|
# Handle optional installs in new windows
|
||||||
|
if [ "$DOCKER_INSTALL" = true ]; then
|
||||||
|
tmux new-window -t "$session_name" -n "Docker"
|
||||||
|
local docker_cmd="curl -fsSL https://get.docker.com | $SUDO_CMD sh && echo '✅ Docker installed.'"
|
||||||
|
tmux send-keys -t "$session_name:Docker" "$docker_cmd" C-m
|
||||||
|
fi
|
||||||
|
if [ "$EXTENDED_INSTALL" = true ]; then
|
||||||
|
tmux new-window -t "$session_name" -n "Desktop"
|
||||||
|
|
||||||
|
# Pane 1: Font Installation (your existing command)
|
||||||
|
local font_cmd="mkdir -p ~/.local/share/fonts && curl -fLo f.tar.xz https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Hack.tar.xz && tar -xf f.tar.xz -C ~/.local/share/fonts && rm f.tar.xz && fc-cache -fv && echo '✅ Fonts installed.'"
|
||||||
|
tmux send-keys -t "$session_name:Desktop.1" "$font_cmd" C-m
|
||||||
|
|
||||||
|
# Split the window for the next commands
|
||||||
|
tmux split-window -h -t "$session_name:Desktop.1"
|
||||||
|
tmux split-window -v -t "$session_name:Desktop.2"
|
||||||
|
|
||||||
|
# Pane 2: Change Shell (your existing command)
|
||||||
|
local shell_cmd="FISH_PATH=\$(which fish); if ! grep -q \"\$FISH_PATH\" /etc/shells; then echo \"\$FISH_PATH\" | $SUDO_CMD tee -a /etc/shells; fi; $SUDO_CMD chsh -s \"\$FISH_PATH\" \"$USER\" && echo '✅ Shell changed.'"
|
||||||
|
tmux send-keys -t "$session_name:Desktop.2" "$shell_cmd" C-m
|
||||||
|
warn "The 'chsh' command inside tmux may require your password to complete."
|
||||||
|
|
||||||
|
# Pane 3: Install Alacritty
|
||||||
|
local alacritty_install_cmd
|
||||||
|
case "$PM" in
|
||||||
|
brew) alacritty_install_cmd="brew install --cask ${GUI_PACKAGES[*]}" ;;
|
||||||
|
apt-get) alacritty_install_cmd="$SUDO_CMD apt-get install -y ${GUI_PACKAGES[*]}" ;;
|
||||||
|
dnf) alacritty_install_cmd="$SUDO_CMD dnf install -y ${GUI_PACKAGES[*]}" ;;
|
||||||
|
pacman) alacritty_install_cmd="$SUDO_CMD pacman -S --noconfirm ${GUI_PACKAGES[*]}" ;;
|
||||||
|
esac
|
||||||
|
alacritty_install_cmd+=" && echo '✅ Alacritty installed.'"
|
||||||
|
tmux send-keys -t "$session_name:Desktop.3" "$alacritty_install_cmd" C-m
|
||||||
|
fi
|
||||||
|
success "Tmux session '$session_name' created. Attach with: tmux a -t $session_name"
|
||||||
|
}
|
||||||
|
|
||||||
|
# --- Main Execution ---
|
||||||
|
# Phase 0: System Detection & Prerequisite Installation
|
||||||
|
detect_os_and_pm
|
||||||
|
check_and_setup_sudo
|
||||||
|
info "Phase 0: Installing prerequisites (git, stow)..."
|
||||||
|
case "$PM" in
|
||||||
|
brew) brew install "${PREREQ_PACKAGES[@]}" ;;
|
||||||
|
apt-get) $SUDO_CMD apt-get update && $SUDO_CMD apt-get install -y "${PREREQ_PACKAGES[@]}" ;;
|
||||||
|
dnf)
|
||||||
|
if [[ "$OS_ID" == "ol" || "$OS_ID" == "almalinux" || "$OS_ID" == "rockylinux" || "$OS_ID" == "centos" ]]; then $SUDO_CMD dnf install -y epel-release --nogpgcheck; fi
|
||||||
|
$SUDO_CMD dnf install -y "${PREREQ_PACKAGES[@]}"
|
||||||
|
;;
|
||||||
|
pacman) $SUDO_CMD pacman -Syu --noconfirm "${PREREQ_PACKAGES[@]}" ;;
|
||||||
|
esac
|
||||||
|
success "Prerequisites installed."
|
||||||
|
|
||||||
|
# Phase 1: Deploy Configurations
|
||||||
|
deploy_dotfiles
|
||||||
|
|
||||||
|
# Phase 2: Core System Installation
|
||||||
|
info "Phase 2: Installing core system tools..."
|
||||||
|
case "$PM" in
|
||||||
|
brew) brew install "${SYSTEM_PACKAGES[@]}" ;; apt-get) $SUDO_CMD apt-get install -y "${SYSTEM_PACKAGES[@]}" ;;
|
||||||
|
dnf) $SUDO_CMD dnf install -y "${SYSTEM_PACKAGES[@]}" ;; pacman) $SUDO_CMD pacman -S --noconfirm "${SYSTEM_PACKAGES[@]}" ;;
|
||||||
|
esac
|
||||||
|
install_build_tools
|
||||||
|
install_rust_toolchain
|
||||||
|
success "Core system tools installed."
|
||||||
|
|
||||||
|
# Phase 3: Parallel Tool Installation
|
||||||
|
run_parallel_installs
|
||||||
|
|
||||||
|
# --- Final Message ---
|
||||||
|
echo ""
|
||||||
|
info "--------------------------------------------------------"
|
||||||
|
success "Bootstrap script finished!"
|
||||||
|
info "Monitor the rest of the installation inside tmux: tmux a -t dotfiles_setup"
|
||||||
|
info "Log out and log back in to apply all changes, especially the new shell."
|
||||||
|
info "--------------------------------------------------------"
|
||||||
1
nvim/.config/nvim
Submodule
1
nvim/.config/nvim
Submodule
Submodule nvim/.config/nvim added at 803bc181d7
50
starship/.config/starship.toml
Normal file
50
starship/.config/starship.toml
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
# Get editor completions based on the config schema
|
||||||
|
"$schema" = 'https://starship.rs/config-schema.json'
|
||||||
|
|
||||||
|
# Sets user-defined palette
|
||||||
|
# Palettes must be defined _after_ this line
|
||||||
|
palette = "catppuccin_mocha"
|
||||||
|
|
||||||
|
# Starship modules
|
||||||
|
[character]
|
||||||
|
# Note the use of Catppuccin color 'peach'
|
||||||
|
success_symbol = "[[](green) ❯](peach)"
|
||||||
|
error_symbol = "[[](red) ❯](peach)"
|
||||||
|
vimcmd_symbol = "[ ❮](subtext1)" # For use with zsh-vi-mode
|
||||||
|
|
||||||
|
[git_branch]
|
||||||
|
style = "bold mauve"
|
||||||
|
|
||||||
|
[directory]
|
||||||
|
truncation_length = 4
|
||||||
|
style = "bold lavender"
|
||||||
|
|
||||||
|
# Palette definitions
|
||||||
|
[palettes.catppuccin_mocha]
|
||||||
|
rosewater = "#f5e0dc"
|
||||||
|
flamingo = "#f2cdcd"
|
||||||
|
pink = "#f5c2e7"
|
||||||
|
mauve = "#cba6f7"
|
||||||
|
red = "#f38ba8"
|
||||||
|
maroon = "#eba0ac"
|
||||||
|
peach = "#fab387"
|
||||||
|
yellow = "#f9e2af"
|
||||||
|
green = "#a6e3a1"
|
||||||
|
teal = "#94e2d5"
|
||||||
|
sky = "#89dceb"
|
||||||
|
sapphire = "#74c7ec"
|
||||||
|
blue = "#89b4fa"
|
||||||
|
lavender = "#b4befe"
|
||||||
|
text = "#cdd6f4"
|
||||||
|
subtext1 = "#bac2de"
|
||||||
|
subtext0 = "#a6adc8"
|
||||||
|
overlay2 = "#9399b2"
|
||||||
|
overlay1 = "#7f849c"
|
||||||
|
overlay0 = "#6c7086"
|
||||||
|
surface2 = "#585b70"
|
||||||
|
surface1 = "#45475a"
|
||||||
|
surface0 = "#313244"
|
||||||
|
base = "#1e1e2e"
|
||||||
|
mantle = "#181825"
|
||||||
|
crust = "#11111b"
|
||||||
|
|
||||||
46
tmux/.tmux.conf
Normal file
46
tmux/.tmux.conf
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
# ~/.tmux.conf
|
||||||
|
|
||||||
|
# --- General Settings ---
|
||||||
|
# Set the main prefix to C-a
|
||||||
|
set-option -g prefix C-a
|
||||||
|
|
||||||
|
# Set a secondary, "legacy" prefix to C-b for an easier transition
|
||||||
|
set-option -g prefix2 C-b
|
||||||
|
|
||||||
|
# Still unbind the default C-b binding for the "send-prefix" command,
|
||||||
|
# as we want our primary prefix (C-a) to handle that.
|
||||||
|
unbind C-b
|
||||||
|
bind-key C-a send-prefix
|
||||||
|
|
||||||
|
# Start windows and panes at 1, not 0
|
||||||
|
set -g base-index 1
|
||||||
|
setw -g pane-base-index 1
|
||||||
|
|
||||||
|
# Enable mouse mode (scrolling, pane selection)
|
||||||
|
set -g mouse on
|
||||||
|
|
||||||
|
# --- Keybindings ---
|
||||||
|
# More intuitive split keys (current path is preserved)
|
||||||
|
bind | split-window -h -c "#{pane_current_path}"
|
||||||
|
bind - split-window -v -c "#{pane_current_path}"
|
||||||
|
unbind '"'
|
||||||
|
unbind %
|
||||||
|
|
||||||
|
# Quick pane navigation with Alt + Arrow keys
|
||||||
|
bind -n M-Left select-pane -L
|
||||||
|
bind -n M-Right select-pane -R
|
||||||
|
bind -n M-Up select-pane -U
|
||||||
|
bind -n M-Down select-pane -D
|
||||||
|
|
||||||
|
# --- Plugins with TPM ---
|
||||||
|
set -g @plugin 'tmux-plugins/tpm'
|
||||||
|
set -g @plugin 'tmux-plugins/tmux-sensible' # Sensible default settings
|
||||||
|
set -g @plugin 'catppuccin/tmux' # Your theme
|
||||||
|
|
||||||
|
# --- Theme Configuration (Optional) ---
|
||||||
|
set -g @catppuccin_flavour 'mocha'
|
||||||
|
|
||||||
|
# --- Initialize TPM (MUST BE LAST) ---
|
||||||
|
run '~/.tmux/plugins/tpm/tpm'
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user