This commit is contained in:
Ulysse Cura 2025-10-27 17:02:44 +01:00
commit 0da86bde9e
75 changed files with 1943 additions and 0 deletions

7
.bash_logout Normal file
View 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

70
.bashrc Normal file
View File

@ -0,0 +1,70 @@
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# append to the history file, don't overwrite it
shopt -s histappend
# 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 nullglob
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
# Default prompt
# 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
#PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
# colored GCC warnings and errors
export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
# 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
# alias definitions.
if [ -f ~/.config/bash/aliases ]; then
. ~/.config/bash/aliases
fi
# path additions
if [ -f ~/.config/bash/paths ]; then
. ~/.config/bash/paths
fi
# user prompt
if [ -f ~/.config/bash/prompt ]; then
. ~/.config/bash/prompt
fi
fetch

27
.profile Normal file
View File

@ -0,0 +1,27 @@
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi

17
config/bash/aliases Normal file
View File

@ -0,0 +1,17 @@
## some aliases
# colors
alias ls='ls --color=auto'
alias grep='grep --color=auto'
alias tree='tree -C'
# practical aliases
alias ll='ls -lh'
alias la='ls -A'
alias lla='ls -Al'
alias fetch='fastfetch --config ~/.config/fastfetch/nature_config.jsonc'
alias btop='btop -t -u 500'
alias cmatrix='cmatrix -abu4'
alias pipes.sh='pipes.sh -p8 -t1 -r0 -c1 -c2 -c3 -c4 -c5 -c6 -f 30'
# just beautiful
alias clear='clear && fetch'

3
config/bash/paths Normal file
View File

@ -0,0 +1,3 @@
# PATH additions
export PATH=$PATH:/home/ulysse-cura/.cargo/bin:/home/ulysse-cura/.local/bin/
export PICO_SDK_PATH=/home/ulysse-cura/.local/share/pico-sdk

324
config/bash/prompt Normal file
View File

@ -0,0 +1,324 @@
#!/bin/env bash
# folder names, change it depending on your language
documents="Documents"
music="Music"
pictures="Pictures"
videos="Videos"
downloads="Downloads"
declare -A PROJECT_ROOT_CACHE
export FIND_PROJECT_ROOT_DEBUG=0
find_project_root() {
local args=${@}
local cache_key="cache_$(echo -n $PWD | md5sum | cut -d' ' -f1)"
# args detection
for arg in ${args}; do
if [[ "${arg:0:2}" = "--" ]]; then
arg="${arg:2}"
case "${arg}" in
"help")
echo -e "Usage : find_project_root [OPTION(S)]\n"
echo "Find the folder that could be a project root."
echo "It is automatically called by the prompt generator but you can call it if you want to access or modify the cache.\n"
echo "The result is stocked in the env variable PROJECT_ROOT. The exit value is 0 when project root found or 1 if not."
echo "Options :"
echo " --print-cache print project root cache"
echo " --clear-cache clear project root cache ; WARNING : the cache is wiped automatically in new bash instances."
echo " --toggle-debug toggle debug mode"
echo " --help display this help"
return 0 ;;
"print-cache")
for key in ${!PROJECT_ROOT_CACHE[@]}; do
echo "[${key}]=${PROJECT_ROOT_CACHE[$key]}"
done ;;
"clear-cache")
PROJECT_ROOT_CACHE=() ;;
"toggle-debug")
FIND_PROJECT_ROOT_DEBUG=$((! FIND_PROJECT_ROOT_DEBUG)) ;;
*)
echo -e "Error : unrecognised parameter : --${arg}\n Try typing --help" ;;
esac
else
echo -e "Error : unrecognised parameter : ${arg}\n Try typing --help"
fi
done
# search cache for existing data
if [[ -n "${PROJECT_ROOT_CACHE[$cache_key]}" ]]; then
if [[ "${PROJECT_ROOT_CACHE[$cache_key]}" != "." ]]; then
PROJECT_ROOT="${PROJECT_ROOT_CACHE[$cache_key]}"
return 0
fi
PROJECT_ROOT=""
return 1
fi
# estimate probability of root dir
local depth=0
local current_dir="$PWD"
local current_max_score=0
local current_dir_score=0
local project_root="."
while (( depth < 10 )) && [[ "${current_dir}" != "/" ]]; do
current_dir_score=0
# 100% root
for path in README.md README.rst README LICENSE \
Dockerfile docker-compose.yml \
.git; do
if [[ -e "${current_dir}/${path}" ]]; then
(( FIND_PROJECT_ROOT_DEBUG )) && echo "${path}"
((current_dir_score += 100))
fi
done
# 90% root
for path in CMakeLists.txt \
Cargo.toml Cargo.lock \
go.mod go.sum \
pyproject.toml \
pom.xml \
package.json \
.csproj .sln; do
if [[ -e "${current_dir}/${path}" ]]; then
(( FIND_PROJECT_ROOT_DEBUG )) && echo "${path}"
((current_dir_score += 90))
fi
done
# 75% root
for path in Makefile \
requirements.txt \
build.gradle \
Gemfile \
tsconfig.json \
composer.json \
.gitignore; do
if [[ -e "${current_dir}/${path}" ]]; then
(( FIND_PROJECT_ROOT_DEBUG )) && echo "${path}"
((current_dir_score += 75))
fi
done
# 50% root
for path in webpack.config.js vite.config.js babel.config.js .babelrc rollup.config.js \
lib include config scripts bin src third_party 3rd_party vendor \
.env .env.local \
.dockerignore; do
if [[ -e "${current_dir}/${path}" ]]; then
(( FIND_PROJECT_ROOT_DEBUG )) && echo "${path}"
((current_dir_score += 50))
fi
done
# 25% root
for path in configure \
Gopkg.toml \
Pipfile Pipfile.lock setup.py tox.ini .python-version \
build.xml settings.gradle \
packages.config \
Directory.Build.props \
.htmlhintrc .stylelintrc \
Gemfile.lock \
composer.lock \
Rakefile; do
if [[ -e "${current_dir}/${path}" ]]; then
(( FIND_PROJECT_ROOT_DEBUG )) && echo "${path}"
((current_dir_score += 25))
fi
done
if (( current_dir_score >= current_max_score )) && (( current_dir_score > 50 )); then
current_max_score=${current_dir_score}
project_root=${current_dir}
fi
(( FIND_PROJECT_ROOT_DEBUG )) && echo -e "${depth} : ${current_dir}\n score : ${current_dir_score}"
current_dir=$(dirname "$current_dir")
((depth++))
done
# save data to cache
PROJECT_ROOT_CACHE[${cache_key}]="${project_root}"
if [[ "${project_root}" != "." ]]; then
PROJECT_ROOT="${project_root}"
return 0
fi
PROJECT_ROOT=""
return 1
}
declare -A DIR_MAJORITY_LANGUAGE_CACHE
export FIND_DIR_MAJORITY_LANGUAGE_DEBUG=0
find_dir_majority_language() {
local args=${@}
local cache_key="cache_$(echo -n $PWD | md5sum | cut -d' ' -f1)"
# args detection
for arg in ${args}; do
if [[ "${arg:0:2}" = "--" ]]; then
arg="${arg:2}"
case "${arg}" in
"help")
echo -e "Usage : find_dir_majority_language [OPTION(S)]\n"
echo "Find the majoritary language in the current and sub-folders."
echo "It is automatically called by the prompt generator but you can call it if you want to access or modify the cache.\n"
echo "The result is stocked in the env variable DIR_MAJORITY_LANGUAGE. The exit value is 0 when project root found or 1 if not."
echo "Options :"
echo " --print-cache print majority language cache"
echo " --clear-cache clear majority language cache ; WARNING : the cache is wiped automatically in new bash instances."
echo " --toggle-debug toggle debug mode"
echo " --help display this help"
return 0 ;;
"print-cache")
for key in ${!DIR_MAJORITY_LANGUAGE_CACHE[@]}; do
echo "[${key}]=${DIR_MAJORITY_LANGUAGE_CACHE[$key]}"
done ;;
"clear-cache")
DIR_MAJORITY_LANGUAGE_CACHE=() ;;
"toggle-debug")
FIND_DIR_MAJORITY_LANGUAGE_DEBUG=$((! FIND_DIR_MAJORITY_LANGUAGE_DEBUG)) ;;
*)
echo -e "Error : unrecognised parameter : --${arg}\n Try typing --help" ;;
esac
else
echo -e "Error : unrecognised parameter : ${arg}\n Try typing --help"
fi
done
# search cache for existing data
if [[ -n "${DIR_MAJORITY_LANGUAGE_CACHE[$cache_key]}" ]]; then
DIR_MAJORITY_LANGUAGE="${DIR_MAJORITY_LANGUAGE_CACHE[$cache_key]}"
return
fi
# in case of equal quantity of per-language file, the majoritary language is arbitrary selected
local C=0 Cpp=0 Rust=0 Go=0 Python=0 Java=0 Ruby=0 Javascript=0 PHP=0 CS=0 HTMLCSS=0 SQL=0
local ext=""
for file in "$PWD"/*.* "$PWD"/*/*.* "$PWD"/*/*/*.*; do
#[[ -f "$file" ]] || continue
local ext="${file##*.}"
[[ "${ext}" = "${file}" ]] && continue
case "${ext}" in
c|h) ((C++)) ;;
cpp|cxx|cc|hpp|hxx|hh|h) ((Cpp++)) ;;
rs|rlib) ((Rust++)) ;;
go) ((Go++)) ;;
py|pyw|pyc|pyo) ((Python++)) ;;
java|class|jar|war) ((Java++)) ;;
rb|erb|rake) ((Ruby++)) ;;
js|jsx|ts|tsx|mjs|cjs) ((Javascript++)) ;;
php|phtml) ((PHP++)) ;;
cs|csproj|sln) ((CS++)) ;;
html|htm|css|scss|sass|less)((HTMLCSS++)) ;;
esac
done
if (( FIND_DIR_MAJORITY_LANGUAGE_DEBUG )); then
echo "C: ${C}"
echo "C++: ${Cpp}"
echo "Rust: ${Rust}"
echo "Go: ${Go}"
echo "Python: ${Python}"
echo "Java: ${Java}"
echo "Ruby: ${Ruby}"
echo "Javascript: ${Javascript}"
echo "PHP: ${PHP}"
echo "C#: ${CS}"
echo "HTML/CSS: ${HTMLCSS}"
fi
local max_count=0
DIR_MAJORITY_LANGUAGE=""
(( C > max_count )) && max_count=${C} && DIR_MAJORITY_LANGUAGE="C"
(( Cpp > max_count )) && max_count=${Cpp} && DIR_MAJORITY_LANGUAGE="C++"
(( Rust > max_count )) && max_count=${Rust} && DIR_MAJORITY_LANGUAGE="Rust"
(( Go > max_count )) && max_count=${Go} && DIR_MAJORITY_LANGUAGE="Go"
(( Python > max_count )) && max_count=${Python} && DIR_MAJORITY_LANGUAGE="Python"
(( Java > max_count )) && max_count=${Java} && DIR_MAJORITY_LANGUAGE="Java"
(( Ruby > max_count )) && max_count=${Ruby} && DIR_MAJORITY_LANGUAGE="Ruby"
(( Javascript > max_count )) && max_count=${Javascript} && DIR_MAJORITY_LANGUAGE="Javascript"
(( PHP > max_count )) && max_count=${PHP} && DIR_MAJORITY_LANGUAGE="PHP"
(( CS > max_count )) && max_count=${CS} && DIR_MAJORITY_LANGUAGE="C#"
(( HTMLCSS > max_count )) && max_count=${HTMLCSS} && DIR_MAJORITY_LANGUAGE="HTML/CSS"
# save data to cache
DIR_MAJORITY_LANGUAGE_CACHE[${cache_key}]="${DIR_MAJORITY_LANGUAGE}"
}
gen_prompt() {
local LAST_EXIT_CODE=$?
local HOUR="\[\033[0;31m\]╭─\[\033[7;47m\]\A"
local USER="\[\033[45m\]\[\033[1;27;30m\]\u\[\033[7m\]"
local FOLDER="\[\033[0;36m\]\[\033[1;7m\]\w"
local INFO=" "
if find_project_root; then
find_dir_majority_language
local language_icon="󰡯 "
case "$DIR_MAJORITY_LANGUAGE" in
"C") language_icon=" " ;;
"C++") language_icon=" " ;;
"Rust") language_icon=" " ;;
"Go") language_icon="󰟓 " ;;
"Python") language_icon=" " ;;
"Java") language_icon=" " ;;
"Ruby") language_icon=" " ;;
"Javascript") language_icon=" " ;;
"PHP") language_icon="󰌟 " ;;
"C#") language_icon="󰌛 " ;;
"HTML/CSS") language_icon=" " ;;
esac
INFO="${language_icon}$(basename "${PROJECT_ROOT}")"
elif [ "$HOME" = "$PWD" ]; then
INFO="󱂵 "
elif [ "$HOME/${documents}" = "$PWD" ]; then
INFO="󱧶 "
elif [ "$HOME/${music}" = "$PWD" ]; then
INFO="󱍙 "
elif [ "$HOME/${pictures}" = "$PWD" ]; then
INFO="󰉏 "
elif [ "$HOME/${videos}" = "$PWD" ]; then
INFO="󰉏 "
elif [ "$HOME/${downloads}" = "$PWD" ]; then
INFO="󰉍 "
elif [ "$HOME/.config/" = "$PWD" ]; then
INFO="󱧼 "
elif [ "$HOME/.local/" = "$PWD" ]; then
INFO="󰉌 "
elif mount | grep -q "$PWD"; then
INFO="󰉉 "
fi
INFO="\[\033[45m\]\[\033[1;27;30m\]${INFO}\[\033[7m\]"
local ARROW_COLOR="35"
(( ${LAST_EXIT_CODE} != 0 )) && ARROW_COLOR="32"
local USER_PROMPT="\[\033[0;31m\]╰─\[\033[${ARROW_COLOR}m\]\[\033[0m\]"
PS1="\n${HOUR} ${USER} ${FOLDER} ${INFO}\n${USER_PROMPT} "
}
PROMPT_COMMAND=gen_prompt

248
config/btop/btop.conf Normal file
View File

@ -0,0 +1,248 @@
#? Config file for btop v. 1.3.2
#* 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 = "Default"
#* 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 gpu box, "default", "braille", "block" or "tty".
graph_symbol_gpu = "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" and "gpu0" through "gpu5", 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 = 500
#* 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 = "name"
#* 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
#* In tree-view, always accumulate child process resources in the parent process.
proc_aggregate = 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 = "Auto"
#* 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 = "Auto"
#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off".
show_gpu_info = "Auto"
#* 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"
#* Show power stats of battery next to charge indicator.
show_battery_watts = True
#* 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"
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
nvml_measure_pcie_speeds = True
#* Horizontally mirror the GPU graph.
gpu_mirror_graph = True
#* Custom gpu0 model name, empty string to disable.
custom_gpu_name0 = ""
#* Custom gpu1 model name, empty string to disable.
custom_gpu_name1 = ""
#* Custom gpu2 model name, empty string to disable.
custom_gpu_name2 = ""
#* Custom gpu3 model name, empty string to disable.
custom_gpu_name3 = ""
#* Custom gpu4 model name, empty string to disable.
custom_gpu_name4 = ""
#* Custom gpu5 model name, empty string to disable.
custom_gpu_name5 = ""

55
config/btop/btop.log Normal file
View File

@ -0,0 +1,55 @@
2025/10/24 (03:13:44) | ===> btop++ v.1.3.2
2025/10/24 (03:13:44) | WARNING: No good candidate for cpu sensor found, using random from all found sensors.
2025/10/24 (03:14:24) | WARNING: Failed to join _runner thread on exit!
2025/10/24 (03:14:41) | ===> btop++ v.1.3.2
2025/10/24 (03:14:41) | WARNING: No good candidate for cpu sensor found, using random from all found sensors.
2025/10/24 (03:14:44) | WARNING: Failed to join _runner thread on exit!
2025/10/24 (03:14:51) | ===> btop++ v.1.3.2
2025/10/24 (03:14:51) | WARNING: No good candidate for cpu sensor found, using random from all found sensors.
2025/10/24 (03:15:00) | WARNING: Failed to join _runner thread on exit!
2025/10/24 (03:15:20) | ===> btop++ v.1.3.2
2025/10/24 (03:15:20) | WARNING: No good candidate for cpu sensor found, using random from all found sensors.
2025/10/24 (03:15:23) | WARNING: Failed to join _runner thread on exit!
2025/10/24 (03:15:38) | ===> btop++ v.1.3.2
2025/10/24 (03:15:38) | WARNING: No good candidate for cpu sensor found, using random from all found sensors.
2025/10/24 (03:15:44) | WARNING: Failed to join _runner thread on exit!
2025/10/24 (03:15:48) | ===> btop++ v.1.3.2
2025/10/24 (03:15:48) | WARNING: No good candidate for cpu sensor found, using random from all found sensors.
2025/10/24 (03:15:49) | WARNING: Failed to join _runner thread on exit!
2025/10/24 (03:15:52) | ===> btop++ v.1.3.2
2025/10/24 (03:15:52) | WARNING: No good candidate for cpu sensor found, using random from all found sensors.
2025/10/24 (03:15:53) | WARNING: Failed to join _runner thread on exit!
2025/10/24 (03:15:55) | ===> btop++ v.1.3.2
2025/10/24 (03:15:55) | WARNING: No good candidate for cpu sensor found, using random from all found sensors.
2025/10/24 (03:15:57) | WARNING: Failed to join _runner thread on exit!
2025/10/24 (03:16:01) | ===> btop++ v.1.3.2
2025/10/24 (03:16:01) | WARNING: No good candidate for cpu sensor found, using random from all found sensors.
2025/10/24 (03:16:07) | WARNING: Failed to join _runner thread on exit!
2025/10/24 (03:16:57) | ===> btop++ v.1.3.2
2025/10/24 (03:16:57) | WARNING: No good candidate for cpu sensor found, using random from all found sensors.
2025/10/24 (03:16:59) | WARNING: Failed to join _runner thread on exit!
2025/10/24 (03:17:06) | ===> btop++ v.1.3.2
2025/10/24 (03:17:06) | WARNING: No good candidate for cpu sensor found, using random from all found sensors.
2025/10/24 (03:17:08) | WARNING: Failed to join _runner thread on exit!
2025/10/25 (02:45:23) | ===> btop++ v.1.3.2
2025/10/25 (02:45:23) | WARNING: No good candidate for cpu sensor found, using random from all found sensors.
2025/10/25 (02:45:29) | WARNING: Failed to join _runner thread on exit!
2025/10/26 (21:22:20) | ===> btop++ v.1.3.2
2025/10/26 (21:22:20) | WARNING: No good candidate for cpu sensor found, using random from all found sensors.
2025/10/26 (21:22:24) | WARNING: Failed to join _runner thread on exit!
2025/10/27 (13:18:52) | ===> btop++ v.1.3.2
2025/10/27 (13:18:52) | WARNING: No good candidate for cpu sensor found, using random from all found sensors.

282
config/cava/config Normal file
View File

@ -0,0 +1,282 @@
## Configuration file for CAVA.
# Remove the ; to change parameters.
[general]
# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0
; mode = normal
# Accepts only non-negative values.
; framerate = 60
# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off
# new as of 0.6.0 autosens of low values (dynamic range)
# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0
; autosens = 1
; overshoot = 20
# Manual sensitivity in %. If autosens is enabled, this will only be the initial value.
# 200 means double height. Accepts only non-negative values.
; sensitivity = 100
# The number of bars (0-512). 0 sets it to auto (fill up console).
# Bars' width and space between bars in number of characters.
; bars = 0
; bar_width = 2
; bar_spacing = 1
# bar_height is only used for output in "noritake" format
; bar_height = 32
# For SDL width and space between bars is in pixels, defaults are:
; bar_width = 20
; bar_spacing = 5
# sdl_glsl have these default values, they are only used to calculate max number of bars.
; bar_width = 1
; bar_spacing = 0
# Lower and higher cutoff frequencies for lowest and highest bars
# the bandwidth of the visualizer.
# Note: there is a minimum total bandwidth of 43Mhz x number of bars.
# Cava will automatically increase the higher cutoff if a too low band is specified.
; lower_cutoff_freq = 50
; higher_cutoff_freq = 10000
# Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and
# only check for input once per second. Cava will wake up once input is detected. 0 = disable.
; sleep_timer = 0
[input]
# Audio capturing method. Possible methods are: 'fifo', 'portaudio', 'pipewire', 'alsa', 'pulse', 'sndio', 'oss', 'jack' or 'shmem'
# Defaults to 'oss', 'pipewire', 'sndio', 'jack', 'pulse', 'alsa', 'portaudio' or 'fifo', in that order, dependent on what support cava was built with.
# On Mac it defaults to 'portaudio' or 'fifo'
# On windows this is automatic and no input settings are needed.
#
# All input methods uses the same config variable 'source'
# to define where it should get the audio.
#
# For pulseaudio and pipewire 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink
# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them).
#
# For pipewire 'source' will be the object name or object.serial of the device to capture from.
# Both input and output devices are supported.
#
# For alsa 'source' will be the capture device.
# For fifo 'source' will be the path to fifo-file.
# For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address
#
# For sndio 'source' will be a raw recording audio descriptor or a monitoring sub-device, e.g. 'rsnd/2' or 'snd/1'. Default: 'default'.
# README.md contains further information on how to setup CAVA for sndio.
#
# For oss 'source' will be the path to a audio device, e.g. '/dev/dsp2'. Default: '/dev/dsp', i.e. the default audio device.
# README.md contains further information on how to setup CAVA for OSS on FreeBSD.
#
# For jack 'source' will be the name of the JACK server to connect to, e.g. 'foobar'. Default: 'default'.
# README.md contains further information on how to setup CAVA for JACK.
#
; method = pulse
; source = auto
; method = pipewire
; source = auto
; method = alsa
; source = hw:Loopback,1
; method = fifo
; source = /tmp/mpd.fifo
; method = shmem
; source = /squeezelite-AA:BB:CC:DD:EE:FF
; method = portaudio
; source = auto
; method = sndio
; source = default
; method = oss
; source = /dev/dsp
; method = jack
; source = default
# The options 'sample_rate', 'sample_bits', 'channels' and 'autoconnect' can be configured for some input methods:
# sample_rate: fifo, pipewire, sndio, oss
# sample_bits: fifo, pipewire, sndio, oss
# channels: sndio, oss, jack
# autoconnect: jack
# Other methods ignore these settings.
#
# For 'sndio' and 'oss' they are only preferred values, i.e. if the values are not supported
# by the chosen audio device, the device will use other supported values instead.
# Example: 48000, 32 and 2, but the device only supports 44100, 16 and 1, then it
# will use 44100, 16 and 1.
#
; sample_rate = 44100
; sample_bits = 16
; channels = 2
; autoconnect = 2
[output]
# Output method. Can be 'ncurses', 'noncurses', 'raw', 'noritake', 'sdl'
# or 'sdl_glsl'.
# 'noncurses' (default) uses a buffer and cursor movements to only print
# changes from frame to frame in the terminal. Uses less resources and is less
# prone to tearing (vsync issues) than 'ncurses'.
#
# 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data
# stream of the bar heights that can be used to send to other applications.
# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above.
#
# 'noritake' outputs a bitmap in the format expected by a Noritake VFD display
# in graphic mode. It only support the 3000 series graphical VFDs for now.
#
# 'sdl' uses the Simple DirectMedia Layer to render in a graphical context.
# 'sdl_glsl' uses SDL to create an OpenGL context. Write your own shaders or
# use one of the predefined ones.
; method = noncurses
# Orientation of the visualization. Can be 'bottom', 'top', 'left', 'right' or
# 'horizontal'. Default is 'bottom'. 'left and 'right' are only supported on sdl
# and ncruses output. 'horizontal' (bars go up and down from center) is only supported
# on noncurses output.
# Note: many fonts have weird or missing glyphs for characters used in orientations
# other than 'bottom', which can make output not look right.
orientation = horizontal
# Visual channels. Can be 'stereo' or 'mono'.
# 'stereo' mirrors both channels with low frequencies in center.
# 'mono' outputs left to right lowest to highest frequencies.
# 'mono_option' set mono to either take input from 'left', 'right' or 'average'.
# set 'reverse' to 1 to display frequencies the other way around.
channels = mono
mono_option = average
reverse = 0
# Raw output target.
# On Linux, a fifo will be created if target does not exist.
# On Windows, a named pipe will be created if target does not exist.
; raw_target = /dev/stdout
# Raw data format. Can be 'binary' or 'ascii'.
; data_format = binary
# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530).
; bit_format = 16bit
# Ascii max value. In 'ascii' mode range will run from 0 to value specified here
; ascii_max_range = 1000
# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters.
# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)).
; bar_delimiter = 59
; frame_delimiter = 10
# sdl window size and position. -1,-1 is centered.
; sdl_width = 1000
; sdl_height = 500
; sdl_x = -1
; sdl_y= -1
; sdl_full_screen = 0
# set label on bars on the x-axis. Can be 'frequency' or 'none'. Default: 'none'
# 'frequency' displays the lower cut off frequency of the bar above.
# Only supported on ncurses and noncurses output.
; xaxis = none
# enable synchronized sync. 1 = on, 0 = off
# removes flickering in alacritty terminal emulator.
# defaults to off since the behaviour in other terminal emulators is unknown
; synchronized_sync = 0
# Shaders for sdl_glsl, located in $HOME/.config/cava/shaders
; vertex_shader = pass_through.vert
; fragment_shader = bar_spectrum.frag
; for glsl output mode, keep rendering even if no audio
; continuous_rendering = 0
# disable console blank (screen saver) in tty
# (Not supported on FreeBSD)
; disable_blanking = 0
# show a flat bar at the bottom of the screen when idle, 1 = on, 0 = off
; show_idle_bar_heads = 1
# show waveform instead of frequency spectrum, 1 = on, 0 = off
; waveform = 0
[color]
# Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow.
# Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires
# a terminal that can change color definitions such as Gnome-terminal or rxvt.
# default is to keep current terminal color
background = default
foreground = cyan
# SDL and sdl_glsl only support hex code colors, these are the default:
; background = '#111111'
; foreground = '#33ffff'
# Gradient mode, only hex defined colors are supported,
# background must also be defined in hex or remain commented out. 1 = on, 0 = off.
# You can define as many as 8 different colors. They range from bottom to top of screen
; gradient = 0
; gradient_color_1 = '#59cc33'
; gradient_color_2 = '#80cc33'
; gradient_color_3 = '#a6cc33'
; gradient_color_4 = '#cccc33'
; gradient_color_5 = '#cca633'
; gradient_color_6 = '#cc8033'
; gradient_color_7 = '#cc5933'
; gradient_color_8 = '#cc3333'
[smoothing]
# Percentage value for integral smoothing. Takes values from 0 - 100.
# Higher values means smoother, but less precise. 0 to disable.
# DEPRECATED as of 0.8.0, use noise_reduction instead
; integral = 77
# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable.
; monstercat = 0
; waves = 0
# Set gravity percentage for "drop off". Higher values means bars will drop faster.
# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off".
# DEPRECATED as of 0.8.0, use noise_reduction instead
; gravity = 100
# In bar height, bars that would have been lower that this will not be drawn.
# DEPRECATED as of 0.8.0
; ignore = 0
# Noise reduction, int 0 - 100. default 77
# the raw visualization is very noisy, this factor adjusts the integral and gravity filters to keep the signal smooth
# 100 will be very slow and smooth, 0 will be fast but noisy.
noise_reduction = 30
[eq]
# This one is tricky. You can have as much keys as you want.
# Remember to uncomment more than one key! More keys = more precision.
# Look at readme.md on github for further explanations and examples.
; 1 = 1 # bass
; 2 = 1
; 3 = 1 # midtone
; 4 = 1
; 5 = 1 # treble

View File

@ -0,0 +1,79 @@
#version 330
in vec2 fragCoord;
out vec4 fragColor;
// bar values. defaults to left channels first (low to high), then right (high to low).
uniform float bars[512];
uniform int bars_count; // number of bars (left + right) (configurable)
uniform int bar_width; // bar width (configurable), not used here
uniform int bar_spacing; // space bewteen bars (configurable)
uniform vec3 u_resolution; // window resolution
//colors, configurable in cava config file (r,g,b) (0.0 - 1.0)
uniform vec3 bg_color; // background color
uniform vec3 fg_color; // foreground color
uniform int gradient_count;
uniform vec3 gradient_colors[8]; // gradient colors
vec3 normalize_C(float y,vec3 col_1, vec3 col_2, float y_min, float y_max)
{
//create color based on fraction of this color and next color
float yr = (y - y_min) / (y_max - y_min);
return col_1 * (1.0 - yr) + col_2 * yr;
}
void main()
{
// find which bar to use based on where we are on the x axis
float x = u_resolution.x * fragCoord.x;
int bar = int(bars_count * fragCoord.x);
//calculate a bar size
float bar_size = u_resolution.x / bars_count;
//the y coordinate and bar values are the same
float y = bars[bar];
// make sure there is a thin line at bottom
if (y * u_resolution.y < 1.0)
{
y = 1.0 / u_resolution.y;
}
//draw the bar up to current height
if (y > fragCoord.y)
{
//make some space between bars basen on settings
if (x > (bar + 1) * (bar_size) - bar_spacing)
{
fragColor = vec4(bg_color,1.0);
}
else
{
if (gradient_count == 0)
{
fragColor = vec4(fg_color,1.0);
}
else
{
//find which color in the configured gradient we are at
int color = int((gradient_count - 1) * fragCoord.y);
//find where on y this and next color is supposed to be
float y_min = color / (gradient_count - 1.0);
float y_max = (color + 1.0) / (gradient_count - 1.0);
//make color
fragColor = vec4(normalize_C(fragCoord.y, gradient_colors[color], gradient_colors[color + 1], y_min, y_max), 1.0);
}
}
}
else
{
fragColor = vec4(bg_color,1.0);
}
}

View File

@ -0,0 +1,34 @@
#version 330
in vec2 fragCoord;
out vec4 fragColor;
// bar values. defaults to left channels first (low to high), then right (high to low).
uniform float bars[512];
uniform int bars_count; // number of bars (left + right) (configurable)
uniform vec3 u_resolution; // window resolution, not used here
//colors, configurable in cava config file
uniform vec3 bg_color; // background color(r,g,b) (0.0 - 1.0), not used here
uniform vec3 fg_color; // foreground color, not used here
void main()
{
// find which bar to use based on where we are on the x axis
int bar = int(bars_count * fragCoord.x);
float bar_y = 1.0 - abs((fragCoord.y - 0.5)) * 2.0;
float y = (bars[bar]) * bar_y;
float bar_x = (fragCoord.x - float(bar) / float(bars_count)) * bars_count;
float bar_r = 1.0 - abs((bar_x - 0.5)) * 2;
bar_r = bar_r * bar_r * 2;
// set color
fragColor.r = fg_color.x * y * bar_r;
fragColor.g = fg_color.y * y * bar_r;
fragColor.b = fg_color.z * y * bar_r;
}

View File

@ -0,0 +1,14 @@
#version 330
// Input vertex data, different for all executions of this shader.
layout(location = 0) in vec3 vertexPosition_modelspace;
// Output data ; will be interpolated for each fragment.
out vec2 fragCoord;
void main()
{
gl_Position = vec4(vertexPosition_modelspace,1);
fragCoord = (vertexPosition_modelspace.xy+vec2(1,1))/2.0;
}

View File

@ -0,0 +1,53 @@
#version 330
in vec2 fragCoord;
out vec4 fragColor;
// bar values. defaults to left channels first (low to high), then right (high
// to low).
uniform float bars[512];
uniform int bars_count; // number of bars (left + right) (configurable)
uniform int bar_width; // bar width (configurable), not used here
uniform int bar_spacing; // space bewteen bars (configurable)
uniform vec3 u_resolution; // window resolution
// colors, configurable in cava config file (r,g,b) (0.0 - 1.0)
uniform vec3 bg_color; // background color
uniform vec3 fg_color; // foreground color
uniform int gradient_count;
uniform vec3 gradient_colors[8]; // gradient colors
uniform sampler2D inputTexture; // Texture from the first render pass
vec3 normalize_C(float y, vec3 col_1, vec3 col_2, float y_min, float y_max) {
// create color based on fraction of this color and next color
float yr = (y - y_min) / (y_max - y_min);
return col_1 * (1.0 - yr) + col_2 * yr;
}
void main() {
// find which bar to use based on where we are on the y axis
int bar = int(bars_count * fragCoord.y);
float y = bars[bar];
float band_size = 1.0 / float(bars_count);
float current_band_min = bar * band_size;
float current_band_max = (bar + 1) * band_size;
int hist_length = 512;
float win_size = 1.0 / hist_length;
if (fragCoord.x > 1.0 - win_size) {
if (fragCoord.y > current_band_min && fragCoord.y < current_band_max) {
fragColor = vec4(fg_color * y, 1.0);
}
} else {
vec2 offsetCoord = fragCoord;
offsetCoord.x += float(win_size);
fragColor = texture(inputTexture, offsetCoord);
}
}

View File

@ -0,0 +1,112 @@
#version 330
// Emulate the "line style" spectrum analyzer from Winamp 2.
// Try this config for a demonstration:
/*
[general]
bar_width = 2
bar_spacing = 0
higher_cutoff_freq = 22000
[output]
method = sdl_glsl
channels = mono
fragment_shader = winamp_line_style_spectrum.frag
[color]
background = '#000000'
gradient = 1
gradient_color_1 = '#319C08'
gradient_color_2 = '#29CE10'
gradient_color_3 = '#BDDE29'
gradient_color_4 = '#DEA518'
gradient_color_5 = '#D66600'
gradient_color_6 = '#CE2910'
[smoothing]
noise_reduction = 10
*/
in vec2 fragCoord;
out vec4 fragColor;
// bar values. defaults to left channels first (low to high), then right (high to low).
uniform float bars[512];
uniform int bars_count; // number of bars (left + right) (configurable)
uniform int bar_width; // bar width (configurable), not used here
uniform int bar_spacing; // space bewteen bars (configurable)
uniform vec3 u_resolution; // window resolution
//colors, configurable in cava config file (r,g,b) (0.0 - 1.0)
uniform vec3 bg_color; // background color
uniform vec3 fg_color; // foreground color
uniform int gradient_count;
uniform vec3 gradient_colors[8]; // gradient colors
vec3 normalize_C(float y,vec3 col_1, vec3 col_2, float y_min, float y_max)
{
//create color based on fraction of this color and next color
float yr = (y - y_min) / (y_max - y_min);
return col_1 * (1.0 - yr) + col_2 * yr;
}
void main()
{
// find which bar to use based on where we are on the x axis
float x = u_resolution.x * fragCoord.x;
int bar = int(bars_count * fragCoord.x);
//calculate a bar size
float bar_size = u_resolution.x / bars_count;
//the y coordinate is stretched by 4X to resemble Winamp
float y = min(bars[bar] * 4.0, 1.0);
// make sure there is a thin line at bottom
if (y * u_resolution.y < 1.0)
{
y = 1.0 / u_resolution.y;
}
vec4 bar_color;
if (gradient_count == 0)
{
bar_color = vec4(fg_color,1.0);
}
else
{
//find color in the configured gradient for the top of the bar
int color = int((gradient_count - 1) * y);
//find where on y this and next color is supposed to be
float y_min = float(color) / (gradient_count - 1.0);
float y_max = float(color + 1) / (gradient_count - 1.0);
//make a solid color for the entire bar
bar_color = vec4(normalize_C(y, gradient_colors[color], gradient_colors[color + 1], y_min, y_max), 1.0);
}
//draw the bar up to current height
if (y > fragCoord.y)
{
//make some space between bars based on settings
if (x > (bar + 1) * (bar_size) - bar_spacing)
{
fragColor = vec4(bg_color,1.0);
}
else
{
fragColor = bar_color;
}
}
else
{
fragColor = vec4(bg_color,1.0);
}
}

View File

@ -0,0 +1,48 @@
{
"logo": {
"color": {
"1": "33"
}
},
"display": {
"color": "34",
"disableLinewrap": true
},
"modules": [
{
"type": "title",
"fqdn": true,
"color": {
"user": "35",
"at": "37",
"host": "35"
}
},
"separator",
"os",
"kernel",
"packages",
"cpu",
"gpu",
"memory",
"swap",
"uptime",
"terminal",
"disk",
{
"type": "localip",
"showPrefixLen": true,
"compact": true
},
"break",
{
"type": "colors",
"block": {
"range": [
0,
7
]
}
}
]
}

View File

@ -0,0 +1 @@
<svg height="14" width="14" xmlns="http://www.w3.org/2000/svg"><g style="display:inline"><path d="M388 342c-2.207 0-4 1.793-4 4s1.793 4 4 4c2.208 0 4-1.793 4-4s-1.792-4-4-4z" style="color:#bebebe;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:'Andale Mono';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.389;marker:none" transform="translate(-381 -339)"/></g></svg>

After

Width:  |  Height:  |  Size: 689 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 B

View File

@ -0,0 +1 @@
<svg height="14" width="14" xmlns="http://www.w3.org/2000/svg"><g style="display:inline;opacity:1"><path style="color:#000;display:inline;fill:#bebebe;fill-opacity:1;stroke-linecap:round;-inkscape-stroke:none" d="M414.145 341.9a1.25 1.25 0 0 0-1.766.092l-5.68 6.305-2.881-2.909a1.25 1.25 0 0 0-1.766 1.77l4.743 4.768 7.442-8.262a1.25 1.25 0 0 0-.092-1.764z" transform="translate(-401 -339)"/></g></svg>

After

Width:  |  Height:  |  Size: 402 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 B

View File

@ -0,0 +1 @@
<svg height="14" width="14" xmlns="http://www.w3.org/2000/svg"><g style="display:inline"><path style="color:#000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000;solid-opacity:1;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" d="M407 367h8c1.108 0 2 .892 2 2s-.892 2-2 2h-8c-1.108 0-2-.892-2-2s.892-2 2-2z" transform="translate(-404 -362)"/></g></svg>

After

Width:  |  Height:  |  Size: 770 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 B

View File

@ -0,0 +1 @@
<svg width="60" height="47" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><path id="a" style="fill:#000;fill-opacity:1;stroke-width:27.955;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:.482318;stop-color:#000" d="M0 0h29.88l49.875 47L32.637 3l46.185 44L31.703 3l46.185 44L30.769 3l46.185 44L29.836 3 76.02 47 28.902 3l46.185 44L27.968 3l46.185 44L27.034 3 73.22 47 26.101 3l46.184 44L25.167 3l46.185 44L24.233 3l46.185 44L23.299 3l46.185 44L22.366 3 68.55 47 21.432 3l46.185 44L20.498 3l46.185 44L19.564 3 65.75 47 18.63 3l46.185 44L17.697 3l46.185 44L16.763 3l46.185 44L15.829 3l46.185 44L14.895 3 61.08 47 13.962 3l46.185 44L13.028 3l46.185 44L12.094 3 58.28 47 11.16 3l46.185 44L10.227 3l46.185 44L9.292 3l46.186 44L8.359 3l46.185 44L7.425 3 53.61 47 6.492 3l46.185 44L5.557 3l46.186 44L4.624 3 50.81 47 3.69 3l46.185 44Z"/><use xlink:href="#a" transform="translate(-59.875)" width="100%" height="100%"/></svg>

After

Width:  |  Height:  |  Size: 957 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 954 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 814 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 756 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 834 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 959 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 840 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 745 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 830 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 941 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 820 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 748 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 826 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 946 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 814 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 750 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 824 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 854 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 790 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 853 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 799 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

5
config/gtk-3.0/bookmarks Normal file
View File

@ -0,0 +1,5 @@
file:///home/ulysse-cura/Documents
file:///home/ulysse-cura/Music
file:///home/ulysse-cura/Pictures
file:///home/ulysse-cura/Videos
file:///home/ulysse-cura/Downloads

54
config/gtk-3.0/gtk.css Normal file
View File

@ -0,0 +1,54 @@
@define-color black #151416;
@define-color green_1 #2c312c;
@define-color green_2 #324637;
@define-color green_3 #375a47;
@define-color green_4 #45745a;
@define-color green_5 #78a486;
@define-color green_6 #b3c5b5;
@define-color window_bg_color @black;
@define-color accent_color @green_4;
@define-color accent_bg_color @green_4;
@define-color view_bg_color @green_1;
@define-color view_backdrop_color @green_1;
@define-color sidebar_bg_color @black;
@define-color sidebar_backdrop_color @black;
@define-color secondary_sidebar_bg_color @black;
@define-color secondary_sidebar_backdrop_color @black;
@define-color card_bg_color @green_1;
@define-color card_backdrop_color @green_1;
@define-color dialog_bg_color @black;
@define-color dialog_backdrop_color @black;
@define-color headerbar_bg_color @black;
@define-color popover_bg_color @black;
.window-frame,
.window-frame:backdrop {
border-radius: 0;
box-shadow: none;
border: none;
}
decoration {
border-radius: 0;
box-shadow: none;
}
.titlebar {
border-top-left-radius: 0;
border-top-right-radius: 0;
}
menu,
.popover {
border-radius: 0;
}
/* nautilus */
.nautilus-window,
.nautilus-window .view,
filechooser .view,
filechooser window,
filechooser .nautilus-window {
background-color: @window_bg_color;
}

View File

@ -0,0 +1,25 @@
window.csd {
background-color: @window_bg_color;
}
window.csd:backdrop {
background-color: @window_backdrop_color;
}
.content-pane, .content-pane.view, .view {
background-color: @view_bg_color;
}
.content-pane:backdrop, .content-pane.view:backdrop, .view:backdrop {
background-color: @view_backdrop_color;
}
link {
color: @accent_bg_color;
}
link:hover {
color: @accent_color;
}
#desktopwindow.background {
background-color: transparent;
border-radius: 0px;
}

49
config/gtk-4.0/gtk.css Normal file
View File

@ -0,0 +1,49 @@
@define-color black #151416;
@define-color green_1 #2c312c;
@define-color green_2 #324637;
@define-color green_3 #375a47;
@define-color green_4 #45745a;
@define-color green_5 #78a486;
@define-color green_6 #b3c5b5;
@define-color window_bg_color @black;
@define-color accent_color @green_4;
@define-color accent_bg_color @green_4;
@define-color view_bg_color @green_1;
@define-color view_backdrop_color @green_1;
@define-color sidebar_bg_color @black;
@define-color sidebar_backdrop_color @black;
@define-color secondary_sidebar_bg_color @black;
@define-color secondary_sidebar_backdrop_color @black;
@define-color card_bg_color @green_1;
@define-color card_backdrop_color @green_1;
@define-color dialog_bg_color @black;
@define-color dialog_backdrop_color @black;
@define-color headerbar_bg_color @black;
@define-color popover_bg_color @black;
window {
border: none;
outline: none;
box-shadow: none;
border-radius: 0;
}
headerbar {
border-top-left-radius: 0;
border-top-right-radius: 0;
}
menu,
popover {
border-radius: 0;
}
/* nautilus */
.nautilus-window,
.nautilus-window .view,
filechooser .view,
filechooser window,
filechooser .nautilus-window {
background-color: @window_bg_color;
}

View File

@ -0,0 +1,25 @@
window.csd {
background-color: @window_bg_color;
}
window.csd:backdrop {
background-color: @window_backdrop_color;
}
.content-pane, .content-pane.view, .view {
background-color: @view_bg_color;
}
.content-pane:backdrop, .content-pane.view:backdrop, .view:backdrop {
background-color: @view_backdrop_color;
}
link {
color: @accent_bg_color;
}
link:hover {
color: @accent_color;
}
#desktopwindow.background {
background-color: transparent;
border-radius: 0px;
}

36
config/kitty/colors.conf Normal file
View File

@ -0,0 +1,36 @@
cursor #B3B1AC
foreground #BFBDC0
background #151416
# black
color0 #151416
color8 #5E5C64
# red
color1 #C01C28
color9 #F66151
# green
color2 #26A269
color10 #33D17A
# yellow
color3 #A2734C
color11 #E9AD0C
# blue
color4 #12488B
color12 #2A7BDE
# magenta
color5 #A347BA
color13 #C061CB
# cyan
color6 #2AA1B3
color14 #33C7DE
# white
color7 #D0CFCC
color15 #FFFFFF

40
config/kitty/kitty.conf Normal file
View File

@ -0,0 +1,40 @@
# __ ___ __ __
# / //_(_) /_/ /___ __
# / ,< / / __/ __/ // /
# /_/|_/_/\__/\__/\_, /
# /___/
font_family Hack
bold_font auto
italic_font auto
bold_italic_font auto
font_size 10
cursor_shape beam
cursor_shape_unfocused beam
cursor_blink_interval 0.5
cursor_stop_blinking_after 1
scrollback_lines 5000
scrollback_indicator_opacity 0
wheel_scroll_min_lines 1
touch_scroll_multiplier 4
enable_audio_bell no
window_padding_width 10
hide_window_decorations no
background_opacity 1
dynamic_background_opacity yes
confirm_os_window_close 0
selection_foreground none
selection_background none
# Performance settings, if you have a high end CPU; do enable
# input_delay 0
# repaint_delay 2
sync_to_monitor no
#include ~/.config/kitty/colors.conf
include ~/.config/kitty/nature_colors.conf

View File

@ -0,0 +1,36 @@
cursor #B3B1AC
foreground #BFBDC0
background #151416
# black
color0 #151416
color8 #5E5C64
# red
color1 #2C312C
color9 #2C312C
# green
color2 #324637
color10 #324637
# yellow
color3 #375A47
color11 #375A47
# blue
color4 #45745A
color12 #45745A
# magenta
color5 #78A486
color13 #78A486
# cyan
color6 #B3C5B5
color14 #B3C5B5
# white
color7 #D0CFCC
color15 #FFFFFF

286
config/openbar/Nature Normal file
View File

@ -0,0 +1,286 @@
[/]
accent-color=['0', '0.75', '0.75']
accent-override=false
apply-accent-shell=true
apply-all-shell=true
apply-flatpak=false
apply-gtk=false
apply-menu-notif=true
apply-menu-shell=true
auto-bgalpha=false
autofg-bar=false
autofg-menu=false
autohg-bar=false
autohg-menu=false
autotheme-dark='Select Theme'
autotheme-font=false
autotheme-light='Select Theme'
autotheme-refresh=false
balpha=0.0
bartype='Islands'
bcolor=['0.471', '0.643', '0.525']
bg-change=true
bgalpha=0.0
bgalpha-wmax=0.0
bgalpha2=0.0
bgcolor=['0.125', '0.125', '0.125']
bgcolor-wmax=['0.125', '0.125', '0.125']
bgcolor2=['0.149', '0.635', '0.412']
bgpalette=true
bguri='file:///home/ulysse-cura/.local/share/backgrounds/2025-10-22-01-47-32-leaves.jpg'
border-wmax=true
bordertype='solid'
bottom-margin=0.0
boxalpha=0.0
boxcolor=['0.125', '0.125', '0.125']
bradius=8.0
buttonbg-wmax=true
bwidth=0.0
candy1=['0', '0.61', '0.74']
candy10=['0.09', '0.19', '0.72']
candy11=['0.75', '0.49', '0.44']
candy12=['1', '0.92', '0.12']
candy13=['0.38', '0.63', '0.92']
candy14=['0.37', '0.36', '0.39']
candy15=['0.40', '0.23', '0.72']
candy16=['1', '0.32', '0.32']
candy2=['1', '0.41', '0.41']
candy3=['0.63', '0.16', '0.8']
candy4=['0.94', '0.60', '0.23']
candy5=['0.03', '0.41', '0.62']
candy6=['0.56', '0.18', '0.43']
candy7=['0.95', '0.12', '0.67']
candy8=['0.18', '0.76', '0.49']
candy9=['0.93', '0.20', '0.23']
candyalpha=0.98999999999999999
candybar=false
card-hint=0
color-scheme='prefer-dark'
corner-radius=true
count1=436778
count10=92
count11=69
count12=37
count2=61439
count3=42067
count4=16346
count5=1581
count6=1259
count7=1125
count8=980
count9=227
cust-margin-wmax=false
dark-accent-color=['0', '0.75', '0.75']
dark-bcolor=['0.471', '0.643', '0.525']
dark-bgcolor=['0.125', '0.125', '0.125']
dark-bgcolor-wmax=['0.125', '0.125', '0.125']
dark-bgcolor2=['0.149', '0.635', '0.412']
dark-bguri='file:///home/ulysse-cura/.local/share/backgrounds/2025-10-22-01-47-32-leaves.jpg'
dark-boxcolor=['0.125', '0.125', '0.125']
dark-candy1=['0', '0.61', '0.74']
dark-candy10=['0.09', '0.19', '0.72']
dark-candy11=['0.75', '0.49', '0.44']
dark-candy12=['1', '0.92', '0.12']
dark-candy13=['0.38', '0.63', '0.92']
dark-candy14=['0.37', '0.36', '0.39']
dark-candy15=['0.40', '0.23', '0.72']
dark-candy16=['1', '0.32', '0.32']
dark-candy2=['1', '0.41', '0.41']
dark-candy3=['0.63', '0.16', '0.8']
dark-candy4=['0.94', '0.60', '0.23']
dark-candy5=['0.03', '0.41', '0.62']
dark-candy6=['0.56', '0.18', '0.43']
dark-candy7=['0.95', '0.12', '0.67']
dark-candy8=['0.18', '0.76', '0.49']
dark-candy9=['0.93', '0.20', '0.23']
dark-dbgcolor=['0.082', '0.078', '0.086']
dark-fgcolor=['1.0', '1.0', '1.0']
dark-hcolor=['1.000', '1.000', '1.000']
dark-hscd-color=['0.082', '0.078', '0.086']
dark-iscolor=['0.082', '0.078', '0.086']
dark-mbcolor=['1.000', '1.000', '1.000']
dark-mbgcolor=['0.082', '0.078', '0.086']
dark-mfgcolor=['1.0', '1.0', '1.0']
dark-mhcolor=['1.000', '1.000', '1.000']
dark-mscolor=['0.271', '0.455', '0.353']
dark-mshcolor=['0.082', '0.078', '0.086']
dark-palette1=['44', '49', '44']
dark-palette10=['48', '73', '78']
dark-palette11=['65', '95', '103']
dark-palette12=['119', '143', '151']
dark-palette2=['50', '70', '55']
dark-palette3=['55', '90', '71']
dark-palette4=['69', '116', '90']
dark-palette5=['120', '164', '134']
dark-palette6=['179', '197', '181']
dark-palette7=['60', '71', '56']
dark-palette8=['104', '142', '118']
dark-palette9=['78', '93', '73']
dark-shcolor=['0', '0', '0']
dark-smbgcolor=['0.173', '0.192', '0.173']
dark-vw-color=['0.082', '0.078', '0.086']
dark-winbcolor=['1.000', '1.000', '1.000']
dashdock-style='Custom'
dbgalpha=0.75
dbgcolor=['0.082', '0.078', '0.086']
dborder=false
dbradius=16.0
default-font='Sans 12'
destruct-color=['0.75', '0.11', '0.16']
disize=48.0
dshadow=false
fgalpha=1.0
fgcolor=['1.0', '1.0', '1.0']
fitts-widgets=true
font=''
gradient=false
gradient-direction='vertical'
gtk-popover=false
gtk-shadow='None'
gtk-transparency=1.0
halpha=0.20000000000000001
handle-border=4.0
hbar-gtk3only=false
hcolor=['1.000', '1.000', '1.000']
headerbar-hint=0
heffect=false
height=32.0
hpad=1.0
hscd-color=['0.082', '0.078', '0.086']
import-export=true
isalpha=0.75
iscolor=['0.082', '0.078', '0.086']
light-accent-color=['0', '0.75', '0.75']
light-bcolor=['1.0', '1.0', '1.0']
light-bgcolor=['0.125', '0.125', '0.125']
light-bgcolor-wmax=['0.125', '0.125', '0.125']
light-bgcolor2=['0', '0.7', '0.75']
light-bguri='file:///home/ulysse-cura/.local/share/backgrounds/2025-10-22-01-47-32-leaves.jpg'
light-boxcolor=['0.125', '0.125', '0.125']
light-candy1=['0', '0.61', '0.74']
light-candy10=['0.09', '0.19', '0.72']
light-candy11=['0.75', '0.49', '0.44']
light-candy12=['1', '0.92', '0.12']
light-candy13=['0.38', '0.63', '0.92']
light-candy14=['0.37', '0.36', '0.39']
light-candy15=['0.40', '0.23', '0.72']
light-candy16=['1', '0.32', '0.32']
light-candy2=['1', '0.41', '0.41']
light-candy3=['0.63', '0.16', '0.8']
light-candy4=['0.94', '0.60', '0.23']
light-candy5=['0.03', '0.41', '0.62']
light-candy6=['0.56', '0.18', '0.43']
light-candy7=['0.95', '0.12', '0.67']
light-candy8=['0.18', '0.76', '0.49']
light-candy9=['0.93', '0.20', '0.23']
light-dbgcolor=['0.125', '0.125', '0.125']
light-fgcolor=['1.0', '1.0', '1.0']
light-hcolor=['0', '0.7', '0.9']
light-hscd-color=['0', '0.7', '0.75']
light-iscolor=['0.125', '0.125', '0.125']
light-mbcolor=['1.0', '1.0', '1.0']
light-mbgcolor=['0.125', '0.125', '0.125']
light-mfgcolor=['1.0', '1.0', '1.0']
light-mhcolor=['0', '0.7', '0.9']
light-mscolor=['0', '0.7', '0.75']
light-mshcolor=['1.0', '1.0', '1.0']
light-palette1=['44', '49', '44']
light-palette10=['48', '73', '78']
light-palette11=['65', '95', '103']
light-palette12=['119', '143', '151']
light-palette2=['50', '70', '55']
light-palette3=['55', '90', '71']
light-palette4=['69', '116', '90']
light-palette5=['120', '164', '134']
light-palette6=['179', '197', '181']
light-palette7=['60', '71', '56']
light-palette8=['104', '142', '118']
light-palette9=['78', '93', '73']
light-shcolor=['0', '0', '0']
light-smbgcolor=['0.125', '0.125', '0.125']
light-vw-color=['0', '0.7', '0.75']
light-winbcolor=['0', '0.7', '0.75']
margin=4.0
margin-wmax=0.0
mbalpha=0.0
mbcolor=['1.000', '1.000', '1.000']
mbg-gradient=false
mbgalpha=0.75
mbgcolor=['0.082', '0.078', '0.086']
menu-radius=16.0
menustyle=true
mfgalpha=1.0
mfgcolor=['1.0', '1.0', '1.0']
mhalpha=0.20000000000000001
mhcolor=['1.000', '1.000', '1.000']
monitor-height=1080
monitor-width=1920
monitors='all'
msalpha=1.0
mscolor=['0.271', '0.455', '0.353']
mshalpha=0.0
mshcolor=['0.082', '0.078', '0.086']
neon=false
neon-wmax=false
notif-radius=16.0
palette1=['44', '49', '44']
palette10=['48', '73', '78']
palette11=['65', '95', '103']
palette12=['119', '143', '151']
palette2=['50', '70', '55']
palette3=['55', '90', '71']
palette4=['69', '116', '90']
palette5=['120', '164', '134']
palette6=['179', '197', '181']
palette7=['60', '71', '56']
palette8=['104', '142', '118']
palette9=['78', '93', '73']
pause-reload=false
position='Top'
prominent1=['100', '100', '100']
prominent2=['100', '100', '100']
prominent3=['100', '100', '100']
prominent4=['100', '100', '100']
prominent5=['100', '100', '100']
prominent6=['100', '100', '100']
qtoggle-radius=16.0
radius-bottomleft=true
radius-bottomright=true
radius-topleft=true
radius-topright=true
reloadstyle=true
removestyle=false
sbar-gradient='none'
set-bottom-margin=true
set-fullscreen=true
set-notif-position=false
set-notifications=false
set-overview=true
set-yarutheme=false
shadow=false
shalpha=0.0
shcolor=['0', '0', '0']
sidebar-hint=0
slider-height=4.0
smbgalpha=0.94999999999999996
smbgcolor=['0.173', '0.192', '0.173']
smbgoverride=true
success-color=['0.15', '0.635', '0.41']
traffic-light=false
trigger-autotheme=false
trigger-reload=false
view-hint=0
vpad=1.0
vw-color=['0.082', '0.078', '0.086']
warning-color=['0.96', '0.83', '0.17']
width-bottom=false
width-left=false
width-right=false
width-top=false
winbalpha=0.0
winbcolor=['1.000', '1.000', '1.000']
winbradius=0.0
winbwidth=0.0
window-hint=0
wmax-hbarhint=false
wmaxbar=false

View File

@ -0,0 +1,10 @@
{
"float": [
{
"class": "pop-shell-example",
"title": "pop-shell-example"
}
],
"skiptaskbarhidden": [],
"log_on_focus": false
}