From 0da86bde9e00fdbf5483f3101368137e366c429c Mon Sep 17 00:00:00 2001 From: Ulysse Cura Date: Mon, 27 Oct 2025 17:02:44 +0100 Subject: [PATCH] Init --- .bash_logout | 7 + .bashrc | 70 ++++ .profile | 27 ++ config/bash/aliases | 17 + config/bash/paths | 3 + config/bash/prompt | 324 ++++++++++++++++++ config/btop/btop.conf | 248 ++++++++++++++ config/btop/btop.log | 55 +++ config/cava/config | 282 +++++++++++++++ config/cava/shaders/bar_spectrum.frag | 79 +++++ config/cava/shaders/northern_lights.frag | 34 ++ config/cava/shaders/pass_through.vert | 14 + config/cava/shaders/spectrogram.frag | 53 +++ .../shaders/winamp_line_style_spectrum.frag | 112 ++++++ config/fastfetch/nature_config.jsonc | 48 +++ config/gtk-3.0/assets/bullet-symbolic.svg | 1 + .../assets/bullet-symbolic.symbolic.png | Bin 0 -> 165 bytes .../assets/bullet@2-symbolic.symbolic.png | Bin 0 -> 268 bytes config/gtk-3.0/assets/check-symbolic.svg | 1 + .../assets/check-symbolic.symbolic.png | Bin 0 -> 244 bytes .../assets/check@2-symbolic.symbolic.png | Bin 0 -> 369 bytes config/gtk-3.0/assets/dash-symbolic.svg | 1 + .../gtk-3.0/assets/dash-symbolic.symbolic.png | Bin 0 -> 130 bytes .../assets/dash@2-symbolic.symbolic.png | Bin 0 -> 183 bytes config/gtk-3.0/assets/devel-symbolic.svg | 1 + ...slider-horz-scale-has-marks-above-dark.png | Bin 0 -> 954 bytes ...ider-horz-scale-has-marks-above-dark@2.png | Bin 0 -> 1980 bytes ...rz-scale-has-marks-above-disabled-dark.png | Bin 0 -> 814 bytes ...-scale-has-marks-above-disabled-dark@2.png | Bin 0 -> 1677 bytes ...er-horz-scale-has-marks-above-disabled.png | Bin 0 -> 756 bytes ...-horz-scale-has-marks-above-disabled@2.png | Bin 0 -> 1574 bytes .../slider-horz-scale-has-marks-above.png | Bin 0 -> 834 bytes .../slider-horz-scale-has-marks-above@2.png | Bin 0 -> 1813 bytes ...slider-horz-scale-has-marks-below-dark.png | Bin 0 -> 959 bytes ...ider-horz-scale-has-marks-below-dark@2.png | Bin 0 -> 2058 bytes ...rz-scale-has-marks-below-disabled-dark.png | Bin 0 -> 840 bytes ...-scale-has-marks-below-disabled-dark@2.png | Bin 0 -> 1724 bytes ...er-horz-scale-has-marks-below-disabled.png | Bin 0 -> 745 bytes ...-horz-scale-has-marks-below-disabled@2.png | Bin 0 -> 1570 bytes .../slider-horz-scale-has-marks-below.png | Bin 0 -> 830 bytes .../slider-horz-scale-has-marks-below@2.png | Bin 0 -> 1851 bytes ...slider-vert-scale-has-marks-above-dark.png | Bin 0 -> 941 bytes ...ider-vert-scale-has-marks-above-dark@2.png | Bin 0 -> 1985 bytes ...rt-scale-has-marks-above-disabled-dark.png | Bin 0 -> 820 bytes ...-scale-has-marks-above-disabled-dark@2.png | Bin 0 -> 1638 bytes ...er-vert-scale-has-marks-above-disabled.png | Bin 0 -> 748 bytes ...-vert-scale-has-marks-above-disabled@2.png | Bin 0 -> 1485 bytes .../slider-vert-scale-has-marks-above.png | Bin 0 -> 826 bytes .../slider-vert-scale-has-marks-above@2.png | Bin 0 -> 1799 bytes ...slider-vert-scale-has-marks-below-dark.png | Bin 0 -> 946 bytes ...ider-vert-scale-has-marks-below-dark@2.png | Bin 0 -> 1974 bytes ...rt-scale-has-marks-below-disabled-dark.png | Bin 0 -> 814 bytes ...-scale-has-marks-below-disabled-dark@2.png | Bin 0 -> 1651 bytes ...er-vert-scale-has-marks-below-disabled.png | Bin 0 -> 750 bytes ...-vert-scale-has-marks-below-disabled@2.png | Bin 0 -> 1496 bytes .../slider-vert-scale-has-marks-below.png | Bin 0 -> 824 bytes .../slider-vert-scale-has-marks-below@2.png | Bin 0 -> 1837 bytes .../gtk-3.0/assets/text-select-end-dark.png | Bin 0 -> 854 bytes .../gtk-3.0/assets/text-select-end-dark@2.png | Bin 0 -> 1823 bytes config/gtk-3.0/assets/text-select-end.png | Bin 0 -> 790 bytes config/gtk-3.0/assets/text-select-end@2.png | Bin 0 -> 1720 bytes .../gtk-3.0/assets/text-select-start-dark.png | Bin 0 -> 853 bytes .../assets/text-select-start-dark@2.png | Bin 0 -> 1783 bytes config/gtk-3.0/assets/text-select-start.png | Bin 0 -> 799 bytes config/gtk-3.0/assets/text-select-start@2.png | Bin 0 -> 1747 bytes config/gtk-3.0/bookmarks | 5 + config/gtk-3.0/gtk.css | 54 +++ config/gtk-3.0/gtk.css.bak | 25 ++ config/gtk-4.0/gtk.css | 49 +++ config/gtk-4.0/gtk.css.bak | 25 ++ config/kitty/colors.conf | 36 ++ config/kitty/kitty.conf | 40 +++ config/kitty/nature_colors.conf | 36 ++ config/openbar/Nature | 286 ++++++++++++++++ config/pop-shell/config.json | 10 + 75 files changed, 1943 insertions(+) create mode 100644 .bash_logout create mode 100644 .bashrc create mode 100644 .profile create mode 100644 config/bash/aliases create mode 100644 config/bash/paths create mode 100644 config/bash/prompt create mode 100644 config/btop/btop.conf create mode 100644 config/btop/btop.log create mode 100644 config/cava/config create mode 100644 config/cava/shaders/bar_spectrum.frag create mode 100644 config/cava/shaders/northern_lights.frag create mode 100644 config/cava/shaders/pass_through.vert create mode 100644 config/cava/shaders/spectrogram.frag create mode 100644 config/cava/shaders/winamp_line_style_spectrum.frag create mode 100644 config/fastfetch/nature_config.jsonc create mode 100644 config/gtk-3.0/assets/bullet-symbolic.svg create mode 100644 config/gtk-3.0/assets/bullet-symbolic.symbolic.png create mode 100644 config/gtk-3.0/assets/bullet@2-symbolic.symbolic.png create mode 100644 config/gtk-3.0/assets/check-symbolic.svg create mode 100644 config/gtk-3.0/assets/check-symbolic.symbolic.png create mode 100644 config/gtk-3.0/assets/check@2-symbolic.symbolic.png create mode 100644 config/gtk-3.0/assets/dash-symbolic.svg create mode 100644 config/gtk-3.0/assets/dash-symbolic.symbolic.png create mode 100644 config/gtk-3.0/assets/dash@2-symbolic.symbolic.png create mode 100644 config/gtk-3.0/assets/devel-symbolic.svg create mode 100644 config/gtk-3.0/assets/slider-horz-scale-has-marks-above-dark.png create mode 100644 config/gtk-3.0/assets/slider-horz-scale-has-marks-above-dark@2.png create mode 100644 config/gtk-3.0/assets/slider-horz-scale-has-marks-above-disabled-dark.png create mode 100644 config/gtk-3.0/assets/slider-horz-scale-has-marks-above-disabled-dark@2.png create mode 100644 config/gtk-3.0/assets/slider-horz-scale-has-marks-above-disabled.png create mode 100644 config/gtk-3.0/assets/slider-horz-scale-has-marks-above-disabled@2.png create mode 100644 config/gtk-3.0/assets/slider-horz-scale-has-marks-above.png create mode 100644 config/gtk-3.0/assets/slider-horz-scale-has-marks-above@2.png create mode 100644 config/gtk-3.0/assets/slider-horz-scale-has-marks-below-dark.png create mode 100644 config/gtk-3.0/assets/slider-horz-scale-has-marks-below-dark@2.png create mode 100644 config/gtk-3.0/assets/slider-horz-scale-has-marks-below-disabled-dark.png create mode 100644 config/gtk-3.0/assets/slider-horz-scale-has-marks-below-disabled-dark@2.png create mode 100644 config/gtk-3.0/assets/slider-horz-scale-has-marks-below-disabled.png create mode 100644 config/gtk-3.0/assets/slider-horz-scale-has-marks-below-disabled@2.png create mode 100644 config/gtk-3.0/assets/slider-horz-scale-has-marks-below.png create mode 100644 config/gtk-3.0/assets/slider-horz-scale-has-marks-below@2.png create mode 100644 config/gtk-3.0/assets/slider-vert-scale-has-marks-above-dark.png create mode 100644 config/gtk-3.0/assets/slider-vert-scale-has-marks-above-dark@2.png create mode 100644 config/gtk-3.0/assets/slider-vert-scale-has-marks-above-disabled-dark.png create mode 100644 config/gtk-3.0/assets/slider-vert-scale-has-marks-above-disabled-dark@2.png create mode 100644 config/gtk-3.0/assets/slider-vert-scale-has-marks-above-disabled.png create mode 100644 config/gtk-3.0/assets/slider-vert-scale-has-marks-above-disabled@2.png create mode 100644 config/gtk-3.0/assets/slider-vert-scale-has-marks-above.png create mode 100644 config/gtk-3.0/assets/slider-vert-scale-has-marks-above@2.png create mode 100644 config/gtk-3.0/assets/slider-vert-scale-has-marks-below-dark.png create mode 100644 config/gtk-3.0/assets/slider-vert-scale-has-marks-below-dark@2.png create mode 100644 config/gtk-3.0/assets/slider-vert-scale-has-marks-below-disabled-dark.png create mode 100644 config/gtk-3.0/assets/slider-vert-scale-has-marks-below-disabled-dark@2.png create mode 100644 config/gtk-3.0/assets/slider-vert-scale-has-marks-below-disabled.png create mode 100644 config/gtk-3.0/assets/slider-vert-scale-has-marks-below-disabled@2.png create mode 100644 config/gtk-3.0/assets/slider-vert-scale-has-marks-below.png create mode 100644 config/gtk-3.0/assets/slider-vert-scale-has-marks-below@2.png create mode 100644 config/gtk-3.0/assets/text-select-end-dark.png create mode 100644 config/gtk-3.0/assets/text-select-end-dark@2.png create mode 100644 config/gtk-3.0/assets/text-select-end.png create mode 100644 config/gtk-3.0/assets/text-select-end@2.png create mode 100644 config/gtk-3.0/assets/text-select-start-dark.png create mode 100644 config/gtk-3.0/assets/text-select-start-dark@2.png create mode 100644 config/gtk-3.0/assets/text-select-start.png create mode 100644 config/gtk-3.0/assets/text-select-start@2.png create mode 100644 config/gtk-3.0/bookmarks create mode 100644 config/gtk-3.0/gtk.css create mode 100644 config/gtk-3.0/gtk.css.bak create mode 100644 config/gtk-4.0/gtk.css create mode 100644 config/gtk-4.0/gtk.css.bak create mode 100644 config/kitty/colors.conf create mode 100644 config/kitty/kitty.conf create mode 100644 config/kitty/nature_colors.conf create mode 100644 config/openbar/Nature create mode 100644 config/pop-shell/config.json diff --git a/.bash_logout b/.bash_logout new file mode 100644 index 0000000..de4f5f7 --- /dev/null +++ b/.bash_logout @@ -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 diff --git a/.bashrc b/.bashrc new file mode 100644 index 0000000..d9f7502 --- /dev/null +++ b/.bashrc @@ -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 diff --git a/.profile b/.profile new file mode 100644 index 0000000..d89ea5a --- /dev/null +++ b/.profile @@ -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 diff --git a/config/bash/aliases b/config/bash/aliases new file mode 100644 index 0000000..75a98f7 --- /dev/null +++ b/config/bash/aliases @@ -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' diff --git a/config/bash/paths b/config/bash/paths new file mode 100644 index 0000000..0d348a9 --- /dev/null +++ b/config/bash/paths @@ -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 diff --git a/config/bash/prompt b/config/bash/prompt new file mode 100644 index 0000000..0165bb2 --- /dev/null +++ b/config/bash/prompt @@ -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 diff --git a/config/btop/btop.conf b/config/btop/btop.conf new file mode 100644 index 0000000..83fee77 --- /dev/null +++ b/config/btop/btop.conf @@ -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 = "" diff --git a/config/btop/btop.log b/config/btop/btop.log new file mode 100644 index 0000000..cef2a2c --- /dev/null +++ b/config/btop/btop.log @@ -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. diff --git a/config/cava/config b/config/cava/config new file mode 100644 index 0000000..a33d897 --- /dev/null +++ b/config/cava/config @@ -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 diff --git a/config/cava/shaders/bar_spectrum.frag b/config/cava/shaders/bar_spectrum.frag new file mode 100644 index 0000000..b078913 --- /dev/null +++ b/config/cava/shaders/bar_spectrum.frag @@ -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); + } +} \ No newline at end of file diff --git a/config/cava/shaders/northern_lights.frag b/config/cava/shaders/northern_lights.frag new file mode 100644 index 0000000..ecd859a --- /dev/null +++ b/config/cava/shaders/northern_lights.frag @@ -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; +} diff --git a/config/cava/shaders/pass_through.vert b/config/cava/shaders/pass_through.vert new file mode 100644 index 0000000..a4f20e5 --- /dev/null +++ b/config/cava/shaders/pass_through.vert @@ -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; +} diff --git a/config/cava/shaders/spectrogram.frag b/config/cava/shaders/spectrogram.frag new file mode 100644 index 0000000..ccb79ae --- /dev/null +++ b/config/cava/shaders/spectrogram.frag @@ -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); + } +} \ No newline at end of file diff --git a/config/cava/shaders/winamp_line_style_spectrum.frag b/config/cava/shaders/winamp_line_style_spectrum.frag new file mode 100644 index 0000000..375ff27 --- /dev/null +++ b/config/cava/shaders/winamp_line_style_spectrum.frag @@ -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); + } +} \ No newline at end of file diff --git a/config/fastfetch/nature_config.jsonc b/config/fastfetch/nature_config.jsonc new file mode 100644 index 0000000..7c1c75c --- /dev/null +++ b/config/fastfetch/nature_config.jsonc @@ -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 + ] + } + } + ] +} diff --git a/config/gtk-3.0/assets/bullet-symbolic.svg b/config/gtk-3.0/assets/bullet-symbolic.svg new file mode 100644 index 0000000..f359a70 --- /dev/null +++ b/config/gtk-3.0/assets/bullet-symbolic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/config/gtk-3.0/assets/bullet-symbolic.symbolic.png b/config/gtk-3.0/assets/bullet-symbolic.symbolic.png new file mode 100644 index 0000000000000000000000000000000000000000..8e6925a5f851df0f65b8ec5ce0add05b88683463 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xamSQK*5Dp-y;YjHK@?$(*978lF zUY+2`)u15aB0u-=w1;;eU*_C3iFL9 zm?QMox$4H$87&g8k1xHt*DLIirc3GJ&-Ul8t$MPfy@U1jM7DFRx7Mg!-M>fV63`w7 MPgg&ebxsLQ0M~Ln!2kdN literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/assets/bullet@2-symbolic.symbolic.png b/config/gtk-3.0/assets/bullet@2-symbolic.symbolic.png new file mode 100644 index 0000000000000000000000000000000000000000..e9df4256c0fda41a3ef6e43ba0150a926b32c4c7 GIT binary patch literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^G9b*s1|*Ak?@s|zEX7WqAsj$Z!;#VfuOGz z^vPedf%yV6fB4?&uo~egM$->0$7UKiJiQm1{G8!S+*+}<$_DXEMYK1#i*idT%#SV+ zWZ3SYCSk&C)?}x5cV2xhmTEf%w4(h`jZ24)hpS \ No newline at end of file diff --git a/config/gtk-3.0/assets/check-symbolic.symbolic.png b/config/gtk-3.0/assets/check-symbolic.symbolic.png new file mode 100644 index 0000000000000000000000000000000000000000..9144bcd1baf3d5de08611969d5eb875c208587fc GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xamSQK*5Dp-y;YjHK@>hGhIEH9U zJbTeFiz!f`{p0<0jzOKSJ^>pxofKSS(8gV;$^C+}PDDhP#0JqfD(NSp-b71q z=IlnB;6mKsQKgtuI_@E`wYVSMI%-`}wYYsoqz2eR@TTbz?yMR}WVeX_w pe`YR`zj}YGTKL`kd#+h$Wd$B+8r+P0mjQG(gQu&X%Q~loCIAouUJC#K literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/assets/check@2-symbolic.symbolic.png b/config/gtk-3.0/assets/check@2-symbolic.symbolic.png new file mode 100644 index 0000000000000000000000000000000000000000..c0baa3c10e2c675565a4a9e371adc76cdb729683 GIT binary patch literal 369 zcmV-%0gnEOP)`iVpFFN347UTf|F%RR!N| zvtwctJ3U|vs0Y{$N>SlSmx3m?bFewo0_+auyq)d_g-yxnJ5z2i+O4M6-b`*raS<%= zj*ZORlB8YT=GG-`?kVHA%sJ_nmi6-zUL>tMk*aTgkrU!$)~`1T0%v~%`@i`FvK^{#DUTU_ P00000NkvXXu0mjfL#3Ld literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/assets/dash-symbolic.svg b/config/gtk-3.0/assets/dash-symbolic.svg new file mode 100644 index 0000000..de3638d --- /dev/null +++ b/config/gtk-3.0/assets/dash-symbolic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/config/gtk-3.0/assets/dash-symbolic.symbolic.png b/config/gtk-3.0/assets/dash-symbolic.symbolic.png new file mode 100644 index 0000000000000000000000000000000000000000..3afcfd6fa2b65e4fcdae11d780afd7115b140d23 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xamSQK*5Dp-y;YjHK@-01G978lF zzCGv2#UQ}IdU5*ghyTP6*hXktpYmIl_H*|6bZ~=6_VDk=HUh!!rjnc8wv3du|Gc*?l-$Iiq*Onff!{@;b`D2Q zL-tXp_6yZcy03VXDyIc)I4+f4{PaYCmbAyx2Z<7QyxaL^`xi4Mzg6Rls4Tnp`0leX dAD1J?cw0nT<}+*j)d$+l;OXk;vd$@?2>_u&KVkp? literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/assets/devel-symbolic.svg b/config/gtk-3.0/assets/devel-symbolic.svg new file mode 100644 index 0000000..14843f0 --- /dev/null +++ b/config/gtk-3.0/assets/devel-symbolic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/config/gtk-3.0/assets/slider-horz-scale-has-marks-above-dark.png b/config/gtk-3.0/assets/slider-horz-scale-has-marks-above-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..1c8391500ddea3c3ea04fd9f9fdeb6c8ec85ffb1 GIT binary patch literal 954 zcmV;r14aCaP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H114l_j zK~zYIt(Hw_V^tK#f9FkNlE$`aMrW9iz80E5tk7<)3s)T|O$W4Mak8 zr%I_>OGYcWh=|>8*SEK~zxH~)Z@1g^>FMbY!C>$sprwPS;36V`zO%FQg|6#&+kqQO zr_-A=Gc!x3gLAM}KlJA2=H`c;fB|$}zq_%q@d5Di#kF&A5$RiAUcNm#I(n}Ya6@Bb zWA|59R_=&MUrV@%SjWf51GBTUUy6wJGH?;GOixdLHZn5eZ?{gzzz9)zR<+PgkMDL0GfF^+@VnD&Bo;OO4Bs^ z;^N{vz(6B%3otM=H1x(*zzvz40THokfYsyixcd6~UhM|Fx3@RocDwt5I(&F|xStM- z*#AjHtbstl4OlclQmK^D4RAxLRH_7M8lWGx7@XI2w)aUNtqfcCnqQ09vmF}2^4{{D5Ve)Cve^2a18G5?tbNVyI;F3IGfELOifMQHw+^U z{H>HKG|u+FK+Z6Xvv4^4Ae+tpdP(qpI2``OFpM)G50s$kB{J*Ei@-}Rm+M9>7JJX{ z_lGo1Yg=z>wOT2WNPM@ju<%VTm-`Di1M*6#^KjEa56}bj1Fp%*N$>pp{B2#=Uw1m4 zUW>)zs#GeE3WdTSsZ{EhwY9aM_xAQOz(2qvpxE5gw0cABfWvg+G{0@YHR>gz22{;d z8q|+n5hy98&fWBOum3d@`a;vtF2Kvc6LXZ5QkADT&uZsH#6rC!Tc|fk4Y;CyKgvp} cYCHS?07KAoqA*pFC;$Ke07*qoM6N<$g2u7M`2YX_ literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/assets/slider-horz-scale-has-marks-above-dark@2.png b/config/gtk-3.0/assets/slider-horz-scale-has-marks-above-dark@2.png new file mode 100644 index 0000000000000000000000000000000000000000..9af936919ddfb88e35acb3654d4c19c38ba4aac7 GIT binary patch literal 1980 zcmV;t2SfOYP)59*_kXLVrlwuj_3StOW@2LE`PHje-#c;Q#NRM8#mfbU6+$cnd`TTg46Hsf1s7)J2gwQE0XYiqj;{8vi(V!>c7&?85Vd~fsS&8Hj=NBV3A127C@ zED#9%{J?<&pD;@c&p5z@5KDo)wzjtKR#jEa2^2unw2bQN>h{*w))HWa5F#_FutEqg zuwu`iJzuS^uKqv>F(*(^g0tITE*R#CNXN3?Nu&TJYc-iI4mp}A)JZ~oh)UMId(ZAQ#)ipkT z{P+dXFQqi5>pQJw)gy8RkkQf6@vDUZ1@L;kUq65T{5~K9$P+?{>H5CT4VD5+&z(EB zEk8ehOR^#DDl9B~=j6$gn}KXKZbBu5RROeo%a$!g>(;G%e}Nd|v~lCc{TnuH@Bz8g z1@J4d%1@UA8O_bj@9VlgAIe^Z{NNqzy;(anyDqStQW{^Zf-8g&CUJ6LPOeB zSXlVumX?+hAPewJ{XPy>2(bjyZ(KDsHSaMwgIX*(YHDhlola*4@FgLHGww^Pp`y?O zc#j`Hz9};^^Bao{3V_$^{o3Kfhs!bVu*aSq?3P`kI;5ADmewyaW1QBnUtf>uyP1j$ zP_T+V9mw3hd-ocT$Fn*mlu90tXU(o%yWU0_&$6y%StllJdPPOWrW7&8sj{;2N0`=4 z2Xu&sbpuNZ3JNx+1}|PdpRWYd1=7_XhstL<;Hj*v%uP#6%TFQW7jnDZZ>?Uv+Kn0X zy0C#dfb_DmvbR!7Xp;~^tF5hFjp+&k&@EUE&~tKfmZuVMstO7UR$%h!C|FHx4u`{` zr4nwcoK9yNlXqTosD=YTN*PNb+bgp1H~@#04J1G~91f?1Y8r*Z;gId4h=Uy&8JSb@ zVWDK>iNR!^jRHJ;`0z<8pr+G<2M;VB158+nNp1uJfhVz8Y+l8)WJyXne&fcCrhJHjIL6i9aG?AF z_#B|Kv-3|(UO=i8yK?19uWFB4#~i5O!Zdd{5D5HlXlUp!i;id0(9qDIdwP0?EGBh0 zYPW0{2m*9=vy7lY4yu2SSHtFEt zU{6Iw#bF=h?H{7%Cix*9|uMN4jnqw9*st4RX?4tqS5HfqeqW+sE;E|23G_o z=L8YVpo(C+!dPEl-^=dq?jtN-u*JH%x_;B!+xr3-QydW>ruZfcb7~px!kpz~V-`BJ z3l}c@q@<*zd7(+~-Me>k=gysf#0>Z$U|6-sEZ8qrx9YWzp*jSCXF#l>q2UjA@811@ zg$p=&|Ni~c3N!{h$Fyt|Ff7nGSS4$gGlrQRo&&MQ#>Q*i-QD{Q!w4pm(lCtB?c28x z?AWp6_cqY58sE+XB&g4-qHemnkSxr_+A=`fzI}T^Q&ZC~v$C?jIbYD>;o-lYJ$v@I zot>SZV&2i`m}zQ6fsacmW z`?kyFT1Dd8SS%C@^$!jX-tFz}{rJ?WQ~y%O4a^*B`R6F6MWa&6gzomHGQIV%5DGNi z*7jJ?07XSb=~Y!#1wNl|soU*#1%tuR)2B~g_Vn~TdGzSfxb3tC=96g*Gib+c?SvMc z5v&5Xd>AH+Ar_>)2w~lYsfuA*ZbE@skI$%rw4yyMr5u0t=d*xSz&d6QwqVlK=A6=1 z!?e7>w3K9W?qMlH`~)Qigrt;F-k{mOVYDDE-_#VawYE>Rl(%wsRDoLX64RP9UZl?D z-K|i7R literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/assets/slider-horz-scale-has-marks-above-disabled-dark.png b/config/gtk-3.0/assets/slider-horz-scale-has-marks-above-disabled-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..f7d29180b2a4d9252a9a332545637fc12a7ed1ca GIT binary patch literal 814 zcmV+}1JV46P)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10=r2> zK~zYIt=2tATTv7T@c(&S3eYiLjq>C+- zQnVC5KwVrNI%N`RX~?KJbZ;QRw8SFJP<#^%FBbH;nQzx(IB%e$AD8Lbo% zbpx;h_{Ge>TUldl5f;t=X+$c+1>!?0gy{1 z5-&D4H+Pu%=cVuxJfJAbvJhhK|M^TNv$49mx&$D>4UlH|z{0}9Ta(G;ZInz^)t!}< zl|=xj^)`?iz&8{{dDRRC03pO#S#pFapcDua~fT0sO z5p_A8PAd_S#LOIz$1nWDwNoc2Cn__u1OU-!RAc6JCtzky#$quQ`1e8c`F#FsC-9P! zug1?*Ro(9du4&o!R&JMO#mwn&IJ^fytKiJ69~~VoO(Rq%8=y>@tb z7-QyhZ2^Gf_V)JsTrT(NGO(`ep{=d0H2}%-SOsV1LN=TI5exB`9i#Elde+o9u(g=5`aG_ sp5rqB8Z+w+*SGrOx=hu*{X12E0SW*cqEnOAc>n+a07*qoM6N<$f~Ws>TL1t6 literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/assets/slider-horz-scale-has-marks-above-disabled-dark@2.png b/config/gtk-3.0/assets/slider-horz-scale-has-marks-above-disabled-dark@2.png new file mode 100644 index 0000000000000000000000000000000000000000..195fbbfb9b6e123102fe0787bfa30c238d25916c GIT binary patch literal 1677 zcmV;826Fj{P)|L^HLcFJL}*$+U6YjJ2sGF)*(jG0R>*g_;}%u>l%wv1*=%;Loo zcVptBnVxc`*387ZW7@_maICfNm~YW6nbdSdA&GqyHhxY z0;Sd8)hXxnJ-FMp;xAzEw@Jyy>6-D{&_U+q;E?>U$@aTh&$EOO5rCzw zt?k84n>L+Wjwo+OayT64yk4&hfR!&IS&@}2AN5v`$Mc-S;ppOnYuOM&q?($VFIrk! zo&{hdgsjPlET8bLZnyiX+S=M)LP*(4M0M?M*t&IVZ)0Pl9h&f>F4;uZx^d%1siC3a zGeHn4SFWjhxgb2bYuB#NZ8lpm0PCX9FLaX-vL1lg+S>X7rS$n+N$R1LzHs2cffE44 z#r6^zWqHRhJ#yrTM-;`^b1kXIY&IYC`Fwi-tmosy5JOo)2mxT(xpQZQ&1O5bT9SGy zDk@I9T&@iOEd2fR$Q0R90JO2O@dWP*s}3RL3AfvQ9Kad?>x`b6C(CzHrCzUhTTxNb ztE=pohS_Xx^LoA80F)6zOmpuWMYaq8sjjYm2ijIIp9s~})$c;{nm0wJ$?~X5KA&$7 zrF2K01k<3D*0;B}Hvy2iPl~ybT?YVmyZz04$r)j{+mAx~Rnz)zN|uj6Y46^>TTCWX zU7r2Ypp?2i9?uqN(M@$lePl%dLRD4OYk9Xb!0B{)p!tc(zv*R*0l;iFH|N>Q5K$Cg z=9j5mnO=6S+wHCt1mWrYY8hiPnQCilY9!2!EZ^}^hr>}@C^-XYLqkIyfTCo-O-9xP z0HP>X6w1tql9G}teo2AHvYNRd%v&`I38ggI1=1o50LVqwB$ueFs_H){Wf=e{ijwu= zEgvX~l05w~V2-RT%aetW%EavKY|=*s9?L2K5DtfbFN9Pk!r`!=Up|)QeKm3G)-8Xo zbE?aQF*bAU+O#!C+iblskpdODB;?{2Yly5&%-c)62#HU}|dWhkT0} zF+Dw<^e~j20f3Q_k&EDcq=2X+BO_n)>(mUDl4Xo30AhoKgMZ1g{C&Rd^vJUO-IXg> z{ss`^UI6BAz8?X=g9i^j1)t6e0Q39(9sK$q{f)UR*bIQ#3l}cjk!AU-eA(%dW%grA#)w`BTJRbk??%lg@4-5?W0VJSB zG`^rqHv8>l_8Z#ajT}CFc#p+mIYuenvQ$Y$QAUHo;3wVP-2>3N)(o`D&7!O3QmZu* zfc4;Kw$|2GS7l{oizte(m`tV`80W@RMN!6NS-u(w1TOaV_5G6c1~ADOi)Q`)Wz@k4 zfD&k_om4K$>2#Xw>+2noBv~k>QX-LvMk0~%;o)Kb{rmUzCy)fRm2zsS$EcOoZr1`Z zLrX-gf${93LYt0c05dDuFR!>Np4OO_Qx(9g;s8|rMr6h9|Hlrr3zF0SpF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10)a_H zK~zYIt=7Lw8(|m+@b7aPO!OicHG`!k6bk7NDw0l)MRDt5!NFB=>ee9;GU-rgDWyvX z>CnGG1StrmE$tw6EJn)R~=Xtn$-{*ZvL=Yy3 zs0%nkyb+w4-PP6A=K#9u;s9uJ za`K*S+Xs!ne%iLJkByDpt^NL&K8Il#@0)@BGz{Y%fZj_u041N#k1+FDD>yTkW@l#~ z`rZ3@T+_6LR$xChO2$gW z02Csk(b3Uf03GeXi6}BYKHf(}q=<;Dudf%|0sFDBu~8BcArS!)-Ev*`m!c@~R^dve z@+T6BJQ9%u|A%t9T;6UK1_0Z(w*fHl|FW=8Pfx$J13x}K{tBQB;9{Rg=H}*xUDvf* z+2gM3nlm#qj{$UEJ^uas`}?n3!T0v|UZH0E*5VzBMB=t-n%|m%Ez9~jG&FPvKu6%n zot~b4U|H6W2I22hQ&aa5G;(VTq|@n?uIq1^xpdQ@(slh!DwRqBh=#r9Ispvia=9m( zrp=qCx#l>|5i_4Vj&o$1=GyM=?tC_z&EVf1+F8$`>mEf!6aml;AX+V`0H{>=u?^r% mMBKpjVP9O$M5q^6v+);(LCFo$W(~#w00002HE+EP)@IVsX0ZY|iNeb7=vADpn-HfpL#ylHN3&K`1adfTS8e{K`@ zg&&-IZgS3tUw-$V^ZT6$DJ6DF2vH1d0YXyBSv$whvvV*Z#Acwfs;bHXR0$zmc8+fg ztPmnk2vGrS85kJ&;K73je+>-{eF&5ZAveLmlTcs%}SIZ)H$@%U74Z|_G2@TRQ5 z0#3kt_3G8nG);@F1k^N5)1FJ!f!E?u@3m{!zDOhz(ba%jfFpfPS^ozS}Yd(_t>#x4L}W$X9sL$V`JlM(P(tUPEgY#k;rgEL&K{; z<+@;jGQb-Q275LF)U@g8>2AOaxR&Eta&KVlo?Ig%BQ0*X`}4Ie<|~uO<2f=oIJlqG zUZQBp4=&+R0o0s0apEma(?T2RRm%hSxUH>iH>rJuSaBEtrGPgS3SG_ysA<7q@K=@z zhecr^geU-9KA&%o%jNpm_TPLNx!vwBeLmkFpi~HvzlhE75uiM1FHP9B*cc zGc8qBZh zMx&P%McI{Q&a`5&*lnlNc@PLoDMMy|+OtOL;q2+@*_lgF07X&WIDh{9PEy`Yr$p8; zP=LIB`}VbFoi2l#nwnZj@hN7X6?PMV+wJ}+%Ul^%T3Wi-Xcn7&R@mZ>j*jZW!a{F$ zu`)|hl)Bc|RwoNRD}=}c3Ywdn>v9E`K?O&T9^C~LnQ?1+HXp$4c5lrUSteCiSJxWN z0+@pp0Qvd(i&l+Xs<5!o41sx`1t6JB+FSTqr*vIUTCYu52@sFR)vOaOqj)_2+-Rm# zmh?p=5}C;b)KaqWBw-F#2M7cL|KtK{DUFVf-Zz>_uAl&4Rho+&9Q*`H;=w8G)=pJiob?LbUQ zIc@eY%)!C{*RNmy8RK=91IhmW{w|~a%z7hJ4z?923WY*Hxm>Q6ECHr9Gc)tM$K&}9 zh)XFat@kn&IYIy@PoDfi*Y!u)05qlR`s2>d&L6ED^Rz_Wzyo-1+_-T>*Y!k}>IMnF z-~Sb@YwpSV7f$ z#jqA=r|D(Dd+E}pmdVM_w`+mRQnt>!pt&|bD%E?y^y8yhH z)UjwWso2i6$Rq)c)b2@@>-Z1Cx?mR#ma3`dk;+CTkd#vDwvBHm>_*Ghe{yWJ{#UU7 Y0TU8O%|DzcK>z>%07*qoM6N<$f)11J!TpF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10?$cA zK~zYIt=7+L6KNdB@%J-rbkb5y+-+HZrHCSS-5zS7P-MFltb&V`UJIW5FFbkoB+WsJ zL0C}su!sEvdg*0MYsev|FhdKy>~2g5sc2@ld1k&Id`4nTYHIU=2j(!}*E7uXJl`25 zBJ>lb)Ch1E_*X<){nS`}!s*r3)qBlm^Y68_wPmH$4}Cq6i1ZwQ0?w_kuRjXIFc1+5 z!*G9NW8*P!?yy=B>5T)HZQGYT&wD9dQmIt_ux)!1u#SWS%C_yv?d|Qqy1{Wg&-)YT zIYF;iG3mPQtHauEo59LI5<027Dez^Pm=_aKU*{iEPf6t(mD z{6pYWR~$&p&CSjFzW?7*;5e;T>!0cA=`4`whMzB&%P+nMj#Dm|^PO8XhLbBRE4RWh z^pAsUt^LKt#oqwixG3O!p-{*j2aZ!H6mr1X7*7DdG#ZWaAn-<`Q3ien5*CoiWHPB# zDs{cDe({Z@QmJbb6BDOD<5N>pr^;Y+1Y6UVgV7*-rL)A2Z1-6O%G@Tkp&3gyRPdD0yoYF<6;9B7Zw(N z*IK_n&Nghf+wbS+=kEd+jLQ&k2Dniy7T1o0Z*Fcr18x{^C_et9Kqi??-mF%uufGSb z)oO3X#>Q>}7lBdf=qAt8EmPS@$vEb zQmK^JS|8fTwAOyHSbUyNr+)>eOua2VJ{BY9hRZ;9d3pK1<2bo`ybT0kHoU!3%> za5KS>K~HoH>j2&c_RR=HM1SRU!#gG!Hj6#Xr@kNK0%)KuB4Mxkk4>}R&Ie*RUH||9 M07*qoM6N<$f=YLTc>n+a literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/assets/slider-horz-scale-has-marks-above@2.png b/config/gtk-3.0/assets/slider-horz-scale-has-marks-above@2.png new file mode 100644 index 0000000000000000000000000000000000000000..fcdebee93613c6ad2579dc3f6a57f03341a26b55 GIT binary patch literal 1813 zcmV+w2kQ8VP)elNpmHmo{y`$@jBAKA%sU z#J1~?GeRP@MxZjUSilD~Ub%ARdvkMh;pLzvv$M0IOP4Nv zSA%_d!2&MgnUxPPoDAquGdwYMFOePbnftn&R;R@JgW-z>W(SE_}zbtk`;>CYEJQoI^bLr7Bv-b0d@t0!QXBK)MRvYbO6`|yaI@|U^fA84h|0fd?TSI0|Ns; z26iqtLM#RK0NaloIr5%mSPI(2h?PAbo4jC zmv#4ZtOQ#H?Ck99JSG=bQ29#g;>C+cb$57S{LO|I1Fr$^gu~&#=NT%clrj>D{IjU2 zXb(^a6s7y-7sWyd0h9w3{r&w1eLmk?D_IZcI#pFwZ}#@~Hlrq@a_v${tEwB=3ha$W zqn{U|s%h2z6xgdh^OJ=G=Bw%fD$kue*H~Fu*^u9QW~QpDs`2dEvpZ1L^_c3KZcv26 zdfM9B4i?Cmk@oiXZvrJKmkTnnWk7Kt5cqmwc$xA0{a;1h@E-k&LqB=Cfb#bC_Ue+7 zl2;07oKHnX#kSqMcbB1VdY4FpIsi{=YwNax3ezHlaCUTbG@!bI09*#^1YEVXwJ#SE zn4Lf%P>b@p&{(HF98RaxSx8)V+-|p%V1!_pBMBQKw zn>TOvjE|51-r;Z*7Yb-%+xARNP0hDMq0lVwFCgVWbpacgd;0XLH90x?SwWRL;c)oV zP$-lHW>G%r&<%hDz@tZx{#qbkMn*rX1-00K@^hy1M?v!XHqm*q1L~{ zVSWc{(Dec}z#gD!Vq)Sig=;5pYkvDGK=+o^u zFsIuo^OR7E(r*FY1)3f|e*A|*R5ch3{ti{uceTfh-Z3}htfgOPfGEK6!(pweOo)c zK!wbH6i2Pby{HZ2H-LRW)4hB5ew7dG(9qB?HS}w!O}dw~XZ~?Kd*7g3zo8cOb_vSeQwP+WE^*?-iT3BupFhk6^x3m#pLBF|v}@=-eVsae zT`!AlE-$rF@9VsmtX$prP;R^VjL? z%@0-ChtRkeqQBiXj}#TUU8>tofX>d&#@5!>X20LRr>v~34z-HQjvbH3gHN73`S{MA zJ0G4obLMmX`xI&_oklHDzd%i?Nh#&jqNb&=8eEFnQxF>JNo$uIG(dfQy{E0MZHwRU zud1x9EQ!TpiC{1oxqbWg_{hk}OxkHvsF`URHA~KnXk7pO`}7S-^s5^bl3;X{8TGyBd1>tp=00000NkvXXu0mjf DX;gq4 literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/assets/slider-horz-scale-has-marks-below-dark.png b/config/gtk-3.0/assets/slider-horz-scale-has-marks-below-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..961bd74e3bb0503cbd4326b7cb35ef3eb520be56 GIT binary patch literal 959 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 literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/assets/slider-horz-scale-has-marks-below-disabled-dark.png b/config/gtk-3.0/assets/slider-horz-scale-has-marks-below-disabled-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..9bd39ef17d2b72f1baf96ec24dd0550aa96b9cb1 GIT binary patch literal 840 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 blHTJlWuM>=A}IFP00000NkvXXu0mjfuUlIm literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/assets/slider-horz-scale-has-marks-below-disabled@2.png b/config/gtk-3.0/assets/slider-horz-scale-has-marks-below-disabled@2.png new file mode 100644 index 0000000000000000000000000000000000000000..a68374a264e6b13bdc79a13a4fec6eaf65e8a3f6 GIT binary patch literal 1570 zcmV+-2Hp9IP)Fw=p5=GIzy1JT}n3z!39m)Wx02Ibpyy%V@V+A(=^#FVTBmh!RPtSAr z?%nH`W%*lGRezzBCJe)1=|(AytE##n%krf=ckc9ecXvOVK9--yUR3`@K*e-NqoboQ zMU<1$!KstZ^{A-$~EtZ2^-&9roeQa#(AP2Vsu$6@6Biaf;x^d&i z(PH27Vy4FAgr?i_ z^71Gj-5u*~g82qP2&o6)Jay`nU9HyC+YcYy;rpo_~Gj+btnvI{&{#V{&?bW@P!I#MRf=*X;3l-l_#M9k18h)7#tI1i(!Q z$*euh)4&CQ3=9msK?reLE;NM@;u;tjcpa%lk}JL6jCBCOu3fvjEVkv0BuNMPW@g~B zu%ajmZnygdYgxJDcDp-7Q53)j5y-~Y4Gj&o3xd#OJ#AwIK@bNA2X_Lf%j^RHLWm6j z*}He|?i$&0X8->EdjJsb%Z#i503MIWTPs+um^?z}3;0Kq`ucizEl~O5a5x(HCIPbN zENnKL&2rHuvDs{O=I^tx$z-zhkGfTeVHgJA%q*}0zyJV6QC4e#$`@Id!+g^KIF>PH z07%Zw&HYv@SdOsEmoEna=;>NRW+6ie+2M3L-HM{j2!ha3OC-wW($BtbBpfbi1=AW$}SpbO6&(G`g^Yg>j@UnCF?%kp3>FGFt z==z`KEO`<_S^zY}VzKXBE|+EN+qJc|n~jZ)@4$4qGAGx_0;%6BdG+emPZ?vhszM&d zSmMHk3!fl$x7skO=@;dz$}|9wLZQ$XR@4g?7Z*Q6s$SqOwTif1lB6dTMY&x~sG=x8 ziK4h0Kub9#PXWNrKp?O$9*>8s0o63^QGb8`KBOv$q-3nA_SJUf%9S@MrD`Ril+wo+ zFJ3$ZpbZ6-?6<^nup59hH8pkIFbrBDsDA6#tv)_aodr1xc@YOU0+8ufVztGQ;CysumE5?0BLx5_(eWHTeiA| z7Sl?4guht`A=?0W07MyM>mT8lckW7KfznU;VwPYVCZ{I9V803Oz@ U^(&(@K>z>%07*qoM6N<$f}2z6q5uE@ literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/assets/slider-horz-scale-has-marks-below.png b/config/gtk-3.0/assets/slider-horz-scale-has-marks-below.png new file mode 100644 index 0000000000000000000000000000000000000000..b98da17b90f05ac86cb670ab4d117f276e45e14e GIT binary patch literal 830 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 literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/assets/slider-vert-scale-has-marks-above-dark.png b/config/gtk-3.0/assets/slider-vert-scale-has-marks-above-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..a957bf13a2314fe440cc2caa5dfc6fe09e0c6f82 GIT binary patch literal 941 zcmV;e15*5nP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H113F1W zK~zYIwboBaBUc>2@$Z|=wkBG4t38ww(u#ZC1);Q}7sDRBY!PWJEeQ2gmZd02iy)SqlB|~QMolz-bS9bC!%VhWyJp>x{lVi6 z%;SCL_x_HMQgYD{LI~h8@EYLi?d@&e+}u3MWHLHn02$y&N_l!-ALi<9+bFZwd-1hl=p=zP>XlrY`-q+XHinX%;153lW zyu5tV>-7%T0t0Y39IoNv;cLKUA%t3OxH0^_) zo}MoOQESlUaMkE zKpr@po}RwHv9a;(%K-EF{2ovMOhrmr1df5nV`F3Y;_>*8wFYCc*aIL3NCiMjsRKvA zKfz$|&hGB+FSWv?l&6b}i@)0a7nHIWc_5X~=lA;i`)?%@iAXKLXf%3nb#*lkWC7#s z(Ut=a48!<45D0v|y}ca<%xbZ8I{nA^`1oBQ3FuPF;!~isPVyXZXc)%c;NakQOG`_d zuIu|%V1H_w_C+$8e1tWeCs6seaAKVfO&uK_?y0G%QLoqgu@K@?B}htn5{*WG2!%r7 zKY_!otsM zYikdI6p#jTQp((uJ}+?NtANWc4R-BpZ*PCy@Ao$*5{c~k`g#g$pPgb&Nd{|w=S!Jg z7(A10on2l5E@9m^5-4IVF5NDtz=^%bpYErMzc$sz)H2Yt>jGdr3o6CGgJEk})(q0& P00000NkvXXu0mjfH7dZ& literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/assets/slider-vert-scale-has-marks-above-dark@2.png b/config/gtk-3.0/assets/slider-vert-scale-has-marks-above-dark@2.png new file mode 100644 index 0000000000000000000000000000000000000000..35ff97a9de197872e1430dd1882b5748af6a6b6d GIT binary patch literal 1985 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 literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/assets/slider-vert-scale-has-marks-above.png b/config/gtk-3.0/assets/slider-vert-scale-has-marks-above.png new file mode 100644 index 0000000000000000000000000000000000000000..6681b486000ff9a1532df5dd6df48456bf0b40dd GIT binary patch literal 826 zcmV-A1I7G_P)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10>?>2 zK~zYIwbsu|({UWf@#j~!soPvEl?1Z{y@(cKxEP|IBFKYC5O(rE=-#1gNtb9rJ7npt zTV3)t1R0q>mTkzC6ttTt)2VIE@4owf-yQZ{Or34Ye8GqB_wso^`26_3`6?npsZkU~ z0j>bGfPHXqux@5%<}i^+qyY^`0EZ%?o>@dhN*X|YUteGM+}zyrSS&W5$z)O@B8Fk; zs;b6zc6Pqb&d$CV7#Q#Z%|KPbIwe4kwzjs8a5(JKH0`$(iKc1$3kwUcY&Kg5;5ruw z)cJhA$H`>!S25^hwzjr{9*@ThxQl{-0yIrePe0RjJ#}6zm+kHCZw(C%U4Y|E(8O*; zqtOo+h4QnwxabF30m~`S#F|%ES0~GXiHKw}ndH#W(EZ%jp4!Ic<>m2mVYvi@!Ph_w zU^#Z}r>3T!iilBeFcyn_2W|n?Im|gWHufm@ZIwHzRB8wC08W5PpgkUsM=t{t5z%!$ z4S0dt3ZMqiCMG7{7>1#h+~>{_P1E+x*NWT<>wwNcAn@`sR=Bsf7Y2HO+T0o1fNMba z+S=Nua)a~p^KXF;z?pwbYk($~%XN2SW8+J?FkRP=Mn*=4$u{)rQ;iyEwpy({>+9>E z%K=6rkxAeVa22R5)M*^Rb*t6d6AFdK4a3kcitX<1{%CA$8~|zRu5GF zt6d1pgR9I5EkM`k=;*_xrKR@=2M0e-AnABK9u0*;?}mqmhs-l;HRsy%YbsLYpGHv> zi@91m+16wSYP?>ryR);?wYj;O3eZ_sJDtu31-Bk3&MTDaYPIXut!ub- z>(*&q*TcDhnX4yHp4`~AYu7sp>}8-V=TOM#^<$v!%$YO44u``J@&S{oXf!&0;>3yH z09%0#3xQ?Z-ClONTwDA5`#(2LGnsE7OUYz%x~r>eAMi8ar$EWFp^)Ku)3$BfUL6}7 z>su+9R3#FL$%6+EwkwbQ2q=2S&J2K70ksDX9C$kz4BjgQkfmTS_-%D{^&4u8c>ssV z6bktf-F)Q8k#{4J$Vg#OW@}(z;IBZl3LL9MCQug8sZ*yuOe7K$1!8zcrfDYk@8ACc z(4f9yPrKn_K;=MfXJ==7B9RCbj9?xO4Gnz>c!3&atIUwZ{6J+u?XhFW-iycM-xtvK zd1V+z%Z0G|pNs{vcOOyMU^r?dX??b|<}oSgh-$l2_aI;Q(<7DySw|z*|TT=V47xPgDsbzK)g5>>3R z0SH-!N&*qJ1v)x9?p(Tb>0@MF?zz>&hYxS6!>HPusUbaz1PCF)rrO%tzViG1XIIe1 zjCJwi#eb{Au-cpHGKz9!L8TgK1bnw|-~LM>$IX12nwt6snN7S7R53TB01!f$NG};k zk4*uQ#>U1!-??+=Z+U&?S*WL{=L>ZhMh+hUeWBvYY9xIP(8P1*v5AR^ft0BClCrl< z2*E5*SrS4dkP$Ja-ohlxV|{&ne-zTA1(Ru-iIXQ!o>Eb7TGV42tbQox+5kxJEQ4NwoX)YR1MxN+mgpLAUh zT!ZYk|1lgY`^(b50(_V!*qbm-766|xOv*p48VO{Y=o#6pO0x^|YeJgR2Q#mG5~ zTW!{HnS!RRt(^J8mX=mp_v^YI4~0U((b3V7>({T}KYjZ2Lj{6@2`d;A znVUw`wS*ADN?>yfrNHb8!mc(qGN^zYgCz=lDJ23OIR&z&LNGIX(A9ZNEV8(rvxRI; z(_GAW&4C0fQs*F{QhztFB$UAhGt(SveiUOSr!#=45W-m0mRv!>)3N4a2F5yfk{&2k z1`1m@{O@&PsL0rKAp phuW+%R;ny8tNZDIA(mm-{{f+K2@?^$RZ#!{002ovPDHLkV1kpF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H113yVb zK~zYIwboBaBUc>2@$Z|7Q8QD`5-hZAf~YCENYO(sD|-+X3I+AxL9p0A!9zu;c(ClU z5Q^$|oDo*r#&ZT&PfH1wTe7=KAAPc94!A#T;z*N4W($G`FUe0MG~<6NXtshzpG zxz9&OM}L!2K7S=BgwQli3ob1!ee3i2nl6LoBAd--*4Nj+?(OaU9(ZzAZWRY}0dGxB zO?`S*3_wwol7@zc2lMmuUjP9igg6rf-e_xU3x-0Wo~vT{QCnO4@xsDF6z~_KinBUz zPfyQ#s;ZV>2MAD8Q}bag7JC4^{Q`*nYv|S0)mQ$M#UdCCeljsJ@qrMcst_#KG|hkA zARwBWnxezQ!>vLHJqId)s;X+`4S)zCO55Ap?_=lFr2qoJvaIAyfKp0pd3pIUU;$+c zAOXuX%_lbjuCA^=8W|Z`0rmk?0kS~KFpNL18{660iS_mM{S5pKB&C#=ijzarG|lGb z=1w7mdL39Ikyz^L>UwBd)>G_`Vglp_SL5-xXl-rPeLmm2uZtOmG2hYA@nt%l-Uasa z3%Vkuw170Q*WceieQ)zx)5?~8_%GPAwC9g9Yz zKd!B^Z*{967aUPwA_wFBJT$Rfjb_Lr%q9nlALpVd>l_C5`WCh z%>25zxVQ!U3mgH5Qp$9(37*yQ%YbqR)}7~4z!eUMy?(!6i^t>1jg5_cAcdWyBjEikGK6I4Q`06{|H zr3|KtS249r8AKKo8dNbM4JlF>0%@**eX&47jIkn8KuDQW5}-+1Cw@t6pM5y@#s-|k zb`xiR$?}!&+yC$9InQ~{|6U=bBwYw01YiSl^zSS{15AL>4~qg5fFB3|J}G55?VBdU zD;-fn2pg~f$VZ8o#LAT`ixw|loL5v-lnW3H219r6-W|Ml?b=A(VSeCSU_?q8O`H8x z{8AC6izxweQIQaP_wM~!eSQ6k;^N|;IvkFrX0zFm=-f~!)HgIVbf>Sc@0QEu`r`KO z+oM1PcmWK}rnsa;2_eitk^V7NS6Aon+O_M~%a$!`wApNBsopdijRv1Rd-ji>o}RNO zPMmm%O3y(l<+rI`Dqq5OAzpx2|ga z`t`>%B}l)&rK+l`{mPXqf3B>oECiP5e{%BIh>w&ILPO0z3(LyNN-kc!c*btGFPUB1 z$;0pWe|7lq;VnHqJzk(+O8H$f=S@aR?+&t2q8uF^9Uso8AOO4FUb%n&{&UUE&6U8L zLWl*)oEM*dR+OmRwQJWdsi>&<&0G*o6;`YDjkdP7vs<=osRn)^gvg)i91~1NDGSvp z*qWQ0*XtAR{{^g8YvIO?8(o_>Z>~ZK%bV_aBT^Pr50_h4S68rT(V}0?HPKX|X$@hC$(jkGslsBhl(eB!n;l zX21bx<>lo+&m_@QVYAuFjvP61a_Q2g1;ATE2+OO-n20SM>;U=s`9IDe$Fz`>lk<+t z=gysL0rG$nz1RUUQ35d6)YQyI z=bbTBS68?-O{L+PK_3G7ssHv$b21FfZ4C~E*9+k_G%fynji z*T0cc2Iq@pDhP+e!v_u=*!SYaiy$z9GIIce@uI@PU@$s5I{J9Nh$aguW$40%3m;v* zdi5DFgt7rbKu}5{sx@<*FC zZR$Zq#t;+)LPn)agh@9^@0)C>Rd4}N44AvSyMI?vQSreXYj_EPK;TJ7N5}8apFiJ6 ztjfg;nzliB)gsG9MbCk1>5Bl7Nnu{E_fmU%`(GYDd^iRSqlAp2hRBS9AhGY~K$ZGD zeY+44r%s)EzoDU_-ROj88=+8W!0mQ_vS-g8k1k*sH7rK;@8EPP7mwF$XMNqDg^E}{ zDkTd6(}oQj%3E4mcIV{e{AjksL?V%~`}gmEzH{f!zxDU`8)JGDRjz%g<{%)YOuA@I z=cQXvWj;^eUI1iinkJ4PKmJ~Qef@9kcKh4uiit*}<6f`#?}rW@`po0;jG&@3qKgUW zp9l%&p|nH+=oXam{5DtLwxdLvG))ux_U)@{XlQt^w6ydWnx-Y=o=Tt3cmL6&M{bwP z<<`YSP!aK?+MO|7pfRzg{QP#N=Tq6JHVR!(wl30+8gFI*P18hEQ`6hEwY3!s7cMMw zI2?Iqvw3pt`ThRk{{H?amo8oUm)q_BM*lgCO0xiJItj#WCsh#A5~T|>NpF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10=r2> zK~zYIwboBalVKbO@bB;4>+8EeZqr42bc70d5yX>XhwMD)V9`aeAr`tF3c3h&C?beA zC}|)bs)G`Wcr3<5=~R#h$4IaU6INR>wza)ex4pkEO9-iMr z%#3m&A`yW3|0Bw>+|=HGasX7WROEO~qp?I}0^sQF?d=#I9=>X`*)EHs zcu^1p7XT9gHJ{Ia&SWz0*VfjSwzs!`GV|Y4fkf17Hk;3nkB?6{9F8d>a#kw9%;|JG z{c>exB@m59e=+l6)gTcycXxNYJs!^sNs>mYS#c?vrhVJl*_mEmUjD$$nR4R<9cGec zxx?e}Jg*f406`Eg^z`(sPEJnVCZe_zK>$v#*E=Oi(v?~cEcD($X^R_xtY?k;@PSVCn1Y^AM4>5g-8AY_=)C-#iqz`XvPErDt{9A0JS zgGOPwT<-1M+}u3?3H^Hk0GRo3eSQ6_s;cu1!rmx~;>%{U@#C#af3zhR7Z;U6q42Q| ztC&iqo+^rR7r<|$K6wN(b0HRsMT5cMM4?dlRI8+ET5NZB_r~n(>?3A2!~o-dC_A0b zja`8f--V0bVjPj;-A&UjP6A07*qoM6N<$f(P_-nE(I) literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/assets/slider-vert-scale-has-marks-below-disabled-dark@2.png b/config/gtk-3.0/assets/slider-vert-scale-has-marks-below-disabled-dark@2.png new file mode 100644 index 0000000000000000000000000000000000000000..57e26b32fa8f25dc72687a44ddd7b31c7e26ca21 GIT binary patch literal 1651 zcmV-(28{WMP)tJip$kc%zP^4*MMcFTr_<>Kh(sb&9*^hl$jHcKl34_J06dVn-qlq6vT0KYp#Y`m zf&@TYTid$j%a^}WR8-WUs_JSXL`f>&cszbH5{dkzY1-iB%a^|&8ykB7!~j1K$fvlB zMF}AsKpCLa*48?jo15E8N=jZ+6s5*Qzrk=g+&?-xdaSRn?@#o{b5cqfG||>&9FDOeYIBM*B2)8nECLocH8s`L*Vp$7Ar|L{a^{$tn(FWA>3MT}d^`Y5NGYc?^;Kq` zFkYsmD^{$qyWQ?%k3$fE&1T!WbLY;l8yg#+29^mSiZb<`B?^7o7CUzA*r%#$UEWxl zfW=~Yal?iU-)!Ez`8l9M2w~5}?-5bP-LN+`HPtvAj$I2uG+QW&^32+`YtL`nwrw@K zu(T1I8L348E|;qluq*&aQ&1G8V$GU0XSZzG@;tgQ+r0J<4~+Gk-R*WSw%Kgk7Mf_b z5JD_bX|Gz&#hYBp`!bZX_wl_ltpqL^iqbZi5#TCM8}MbIoP7RyVmt*sxU2cm4|^<+^N zm&>(CQIyJpvC9EAn{8`nXXhTkY3v{pP$03+6V=t#`B-@u45g)|``g>wHv;9!Goq6G zUtC=5Nag$lL#?i^K2%#<>jaiOJo!+R1el(l&Uk(Gq#zUuT{L#liLHtPAf=20_QwWcbkMFv4>C#{5`>lBL#bi-ofJh`VP)K$r5WjQh&c1W!&ixE{rIb@M z4Q7e*csv&i#m)>SCnrBRapJ^9^sRo%JVrv4p?JEdr|0)rEOxa}B(s60X`gj>cb@<> zDWx`--OL4H0Kn_@b}uA3GYA9%N4vVZ4xuML@6TtON>uFl@#7bx(dfv6G0YO0rhR(& z@Zk^9)71CU**_x6NJseqdHwqJw}4rLu)v6Uz1{;|U0sLKBjio%L5duOlrjKBdV70E zy?^>fXJ34>+C9*Yig=Jz}xg=+&!N z_w@Jo-$b9~=A0B#VZLN$5qgGJ6jE3y6#BBSukZb_u`vz(#Tw4GjdZzmJ9;i%baZsQ zT3%lMF2)Wy--yTKw{G9Q{r0I-r+z@MUwO?I3NopB6rl@KT3T9G)z#G8+Z{_O zHNW5Aec{4|&pjSb81P9c{kgQ6QGLo7V@oiSGrM>1ZYeJ>?^IQ_)@;X8%1AI6{Ayre z;Lw#TSG?%axtC3Pc}~7rRuY}SVvL$@dwcuKRaI3jHk)me5MoIhcK{iUMt{{bt#^2M z_&Y;P6g@f*OesjkGuujuk(P1-CFn(K0MXLYQd?PBx!P{GKdY*0nW89(u@{X-y}@Ac zk89Vi{b&@|0Hy(r1*rR)Dr6^|^@*ey{js#BF$X;=K_HlFb)7HdB?;Q1O54NSU_%uj79y>L1OoYdD_UCawSg002ovPDHLkV1fs{3t9jG literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/assets/slider-vert-scale-has-marks-below-disabled.png b/config/gtk-3.0/assets/slider-vert-scale-has-marks-below-disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..ed4f24dfba6a271ae34eabad91eef82b813b6fe6 GIT binary patch literal 750 zcmVpF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10((hB zK~zYIwbegp6Hy!o@b9z#g1KT$W1xmwaj-EEmzcr1I9TYAMT9IJGIep&LOSWtpeNxc5xx4h%t=ia;Ddp{5n zx+Q>N0OJ6>0B*ZnuIYt^g&+VQ01p5s0Cw3Nf6dti8Uo;sMx%jTF1LJibo7mL{!2NPUQ3X z)j_fLEEEdw0C>8B07jOUmO?@Z(+*HdNxH7D0hs6p-cVKbwOv>%HBCzZxY-U~!)Z9Y zUhfmw96q1#MK+s#&KPr^4K`Qk5rHu_C4^8JW21Jj5&&wo z+LqJloFk%QYfBrAM&s}*Fd`C}OlAeZA%L@gC^_faRe(D?JIk}Pv!98m)(+MV4i3KB zjg?BJ^*|u-k%%g-u@-o|xw)Alq7%EYa=H8|7!1AwP(Jsd?WXbQy8hmd%G}@IUsn{x ziw>>pT<;5q!}mCg0p+3_epL*s6951J07*qoM6N<$f@`Zw{{R30 literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/assets/slider-vert-scale-has-marks-below-disabled@2.png b/config/gtk-3.0/assets/slider-vert-scale-has-marks-below-disabled@2.png new file mode 100644 index 0000000000000000000000000000000000000000..7f1394185fce07f7f430bf4a6d982d41285baadd GIT binary patch literal 1496 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 bgk>`OnKC00000NkvXXu0mjf^ayii literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/assets/text-select-end-dark.png b/config/gtk-3.0/assets/text-select-end-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..3fa83efe87d1c130279edf17f5d40fed6c7035e7 GIT binary patch literal 854 zcmV-c1F8IpP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10^>0_|E9RF^e^67tr`LwIpLc?vYcOBZo3E_m}I z6dgK5A$W+eP8|w@bR!SaY90*2a+{(Z-DYQIUx%4zTZ*9W2g5MTFr()f+rtMuzy&se4W(4D!@8}A0S0hvczF0qCX=~tS=NbUGTCODW}9Ic3B6D$ z6}Yau?z--pZQCCg7Z=}7PENiPLi_-1rBrz*fX@EZ^z`(-_V)H$yJho#1VK<HVIM@L8h)YR0o@$vDSz-b{wqJE8xF4MBC zJp**aVzE?LSJ(L1*w_u=q!41Oe;N==BofE>3jh#8#Jan?M|*pF&jGDM2%!N0(l8A3 zAOHwISvH%!0~`kqX@CHv5W+Yp0HCF%=5JJkjcMSmmWHOm+KnjTI3RJCD z+h`OZolc(zEFdlc1q80^mKp^xO*2jC2vPzyz^ha$-x>vwQYMM|t1ECzrP5-f0G{W4 zCrlg(1VCkBVc|og0FL8)A~Zy$0h<#O6Ys0ls@({{($dl!LbnYxz;ztQSzTRyeo%4W z_w9T>{{r|0_);lVBlLKCbaeEQ@B2Rw0w@#;4~oU&dQ^d@e>4v$7Yc>1v$L}~rIf!P z@wK(J7ujs~39t^hN+~4)lu}io3Va8Q|%u>1TiAOAwoZ~ z_&W$_@6sFNH&6jKqPz3|5U>ppK?IPj6OI!O2zpc02)DO}xI|6ernM8G4kRPtcwP1o g86?pdvy-rnKNFcRj>67Oo&W#<07*qoM6N<$g467EoRi9{li9UmW`A0Hnt z2Il}NAPKydQf9s{bVx)0I2;c9cJJQ({^re_+ge&$K8QpjZJ|)8B^V4g1_FUbzu#Z4 zJ6V{_apIXw=0!T4o{Gog-^|X={^#-I$N#)=;ljU@$)w}CGzGlS9dK6yU5j#u_G8D6 z{i3_O``ii)P*RTLBwxOK`T5w`*zo!D=LhfKzdxr>Wq}#sm6Xycaf<~Ri&h0|8Y}U_@YWR|4$|5)D0s!^(^{uN)ocH`_ zH2T}VzP^DICr*5X8dvLC2HXo>1yEgG{obmh<|z;eG{s`Ev!_p={te3F%|Kl-a4)nU zAQ%ibl!Y`O#Ige0w{Pz~e*E~a$br`iA;gkv@mRXPzTWTm`|HZcx=2EZU@R8M|LBS0<6+Ew0b4731z>({Se(yK}+ z91j2F%$YNLfG|)8RD0dTKwE&QtE&rEgtCCz+uJ|cxpQYL3cLm#l3}r>sjaQ8sR&^K zS(a6`Z{NO8P_S!&Dici>LI2Ry+S`2 zh_ZM9@}OFLU_ z6;~t@38SKiKtr3Qjt!7Xr6wxGR#bk!--KiV%G_p^kOr8Unfa;$TqQL#GxJ6_B_O<( zo(C8m9sO4&z)I=Cg9p!1t9c2?CC~!{17CQKRa}`&=Eca!NCE}zqM^+!Xam`iky zmHMVaj7u~(H)r1byxzN(XW5=LCnhE)?v@*_n8wD&?(3%UYuALlEXrRJ0E2^re=jpz zK}jjI7cX8MM!7{&AI=(RW9v%l=MVT3wXmWCL@ZP<9bEs^Ttq(f}+V<>| z0C(=(xm;evC33G_yJi?(qu3lNr7KJ_M+mVN6}%gO_W)~nc=!(u4GkYwg81pvr=RWE zv7-;=%ip4`osv>!ywkYJV!lE9_N7ag&Ppk5%B*xcJ$3Tr$%`moevO*=B-$eiL8pN@ z;9S0Z`RT)l5C2p~UR>9;uU@^{qhs@Hl)Jh>#^m@Gpmn;{M)l|oDh(_5?%jK1baeDD z-&=28&7Gbg}iruj$_`lPXVt0VzJntA3b{XM^bl?f+f5a^=Y3!-xN-pZ@~o z7B*n#R}DmdDp)5)%=c>mwGyrdB7n7P*RCHOI&|o0Bog`MJK&X*laqh#>FGIp_wLW)u1O>Lt(`+(MRXC>+J0O{o1u_f3_0X+1c5D+`M_S zU;D4ruy0V7Hg1t9RN5#AT>#uqF82`9Z3|%k{{8J;U0uI!X=&M7TU)!4BDp{*r5%sQ zN1r`=_W6w)HwLd?zit*ADO8kjG_)Cb$ztVn3lP6CmZ{NQC?bOtiiTP5)B~afzu5R19oh(&6DhaK@g@!Zr znII~+=JWhEHAg?ivsDi2)n`yXYif@sQklskwOq|*S!fS@Py-q$1Dju-GsRJXXQfYW zS%>~TuRE~-|F*Tow}#f>rl91_7kjI@rlOlK7iDQ1pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10;5Sp zK~zYIt(L)R6Hyd~znLbnnN*u1Mr(^kg}P8u$f8y%wxBN3r7Isn=)xel?p86S58$Gd zx~PvJBr6vxwHpHwK{usDV~jOvn`CA(b6m`w64QvZ$$`r-%;o>iopbMht_Em82#5ed z;DmY)a5!3k4VXY3*cTC}%e;dK00Y38<>lqs`T6;KLqkL74Z|2U3}aN+^^iYNM4V=` zS#C5M-^=Cl=grN{_lt{*A2dzd0e*?d?!O=*U?QK-zmy|}ZQHecKL28FZtfOv5eSM1 z?E@eTT-)B>&K(ud2CA;Fucv_tAk+zn0Lf~#S~xC1M8tJndv$g75pWp@v;$58Q>JNF zdI6}F)Y9qnec&9RwF9PGt=3+z01=T=sq_|@1Pl>DSKCxqyQ$}h#bVP-OG{J0u%>Cc z?tjoUtuFw8R4R2BI0Xd!6^P?F`~3opkB=t-0|@GX08X>n{Mj!+I2?}QIfAYOE@0Q| z^&kBL=(;|LS69tnfmtjTKlKY>nq~zradf}|8XFrMANvKUR;yp}3{k*y(6iBK^macE zn}|p@n|%gc#Va&A5CxLQF}%*OEUS`8B<=vCK*;xt2oRr{nMqlewbKhAm&;{<1TYL} zJ|F~~29j%QYfoI)wT~mdwYBvcxS_Hi6cO5O^&~I`Os%Y}Jhp9n_o(9WczhPP&V@Tyj; zeX(u(x8pcgqtW0|03Xfmy6f@n?M8D zSI<4^xC9&mD2N6Owh0H-FZA8l#XF!r!~{&~BGwhq2GW&quq}H~28p`HbQAXD52ees U3b0774FCWD07*qoM6N<$f?hgVNB{r; literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/assets/text-select-end@2.png b/config/gtk-3.0/assets/text-select-end@2.png new file mode 100644 index 0000000000000000000000000000000000000000..3d56eb198eb00db496afb6a10616bd9348a5b35f GIT binary patch literal 1720 zcmV;p21ogcP)@ITGjr$u-r}6&+)QQ? zwM}lnaJgsxf9`L7=XdV;{wxupQkG@a0TCb!tOG*&T&KsjerrgdJwWtP0$hC*^pO{l zg(W}qjIu<;K!$D z=7Efe6#gu9R71CJ+_*7x=+L3IZQHiBZ`rb?qp7K>y`iDug-9f_DI5-O3Wvkb>x--^ z*LAanLSZJK&ri?I&5fti>C~-Tw|+Tw>Qr)ecDCeuYaW=<7vMb=wN8)cfF@x3nKNfT zmsODKy1A*TsUNOgyVk#B$BuV^H}ug3Yyv_e!jl{ZdIRtxkhpsF>VH=Qy5a)zsZ?s{ z=+UDe1Kk?FQwPsl5gL`hai9Z8+_`h-o7ILk@;t9}@7}%3yLaz?UxWVx*a+AwLDy;M z*MY>;)YQ$jf;Ms-=i$J>z-K^@25(#r96bT!`fo~PGMUs`LyL%%N~OZZixT(=-tEs8!JrOAd1uY^{EEY3IjvUz! z^aAZbLpA6I4ZVHu-o2j$32c|;EZ39+gW8?ZjD66QuyLAhV6OYI110k#;+qT2U zjvd>Nf{g)T%d%{!fd0Fwv$ONV-rn9A3Oa-;&x`Noip657%4Y+UZQGF(Cr%`Q^{9xi zg9_+{g#|YNwq@1R)3Y75YDWRvvaFDS_5dC{c#sPUu9h}$-rS>yrm}@>$~z88CX?Af z$d*wg5^3)3?Tw;R1fb49dw_TQ_U){Q{M}N-+PQOQGb%-F!1m{~o6F@q$8plZu+>&e zOG^W)dRS;^v(+gAWV6}HfY@p(6bhM=Y=H{5*^Vy&Oixe$768|>N~hC*=%E0XKhh4s z=;-KJ5Mayc#*G`lqjvKG$P(zm!NEJe=K@!uP?#AR8OfobJv6jg1&e??GBT3O<#OWz zF)q==hY!s^@948`C%?sn><0ESgS4+uc@@G9XdF`2!=c4i@2XOiF_REWpi+h=@!~One6I zai9%l3MPQW&6_vR$|@Q;p63;Yhll^8f3FYaqMC}a$oHt`lbQ0@sMF*P6Y-&;p?=qO zbAL6k<2b*cJ$v@w6~JclMVByEfwoXSaa><%2e1`gQ4SwIyf2+j|MVB}dJ_{9-|yPB z>my%EbONpV_hVG^@+zN@a+++Y0DleGX42)tg$rNI%*;IN0_06kPygtfaPR6#_lggA z12tSzOR99Y0JJgkoQ`}QW$z)X$2LHJfB&od_U-$it*xyu7K^=R43$cWNO5j%?$`VG z@BeiE{P`aS2M5h&BabR;B~-c1qsrU7l<$icv(S>DUApvOa&pqte9>?@)P0Yq$3;D!mt~qq%R*~#OT(Ft z)_Rn;7V1o@ar|8fikd_?K#sNweaoq zDR1l0j~#sxkKyGBdy7vDt-&qIQT0QbZm#L*R?0&~x`;{#f0`74g_WZF%+Nk~n{o@f z+Qjpln$>c%gn}(T4eaADe-`LPUtn1wRCFJkDdr{0?v+Uq7jt|0C-i>+&c+h|_0N9* O0000pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10^&(T zK~zYIt(H$n6ki;`KW}DdrrMp@Evqem{0RAJ2fG+$+0ih_&UG}qoKJ)#)_rBjJq?GJ8 zgb+HA1`YuhU;wE)O9P+=cz_RV0kwJy6R-^&X>D!Ijf{+(@9gZnn9XL-SeBKyEbEvO z0}w@#=elmmb=?ouYW4lf%F2`J>FH-c=@)?z!T?TncX$6gHa2#vt*z~*uIu)GQR=#G z8-~$h+xA%i-}h6%OF-Kt5JH&1=|Z7!y|=gbPAZi;ydQY4VcT||IF(843uhnYh+1c6Gz;+@CfUku@;c*ZIUm6u`Y-}u5 zDwPUxib9RJc5kn(t$i#Oiw_!s2SM<8a&qz^PzHP{Wu(ct*wxgq?Wps4( zYI}S8+Kcf&@ZcZur{Y4m00000NkvXXu0mjfC4iIb literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/assets/text-select-start-dark@2.png b/config/gtk-3.0/assets/text-select-start-dark@2.png new file mode 100644 index 0000000000000000000000000000000000000000..ebe4dcdbaec95c7387da7e9a08c59ef7dbc05d79 GIT binary patch literal 1783 zcmVVMl?=o11MPrMwzi55zyM6K%d)q{E&-O<7ElE8 zN~zLo_t_4#VHiH36X+0FPp#|v`}_U<{r!PZDAd;5+Z!qti{;0UAHRJ5{JC}S-o4xw zx3Pg7umTj7Ql+*nzEBI)6ws)E0?^UX;W>8f*atgz?%WxTMhC;;@HhN^{|=we*X{9m zLiK)6DODUl(?|33^NUxmTv^IyvmxMxe5Lfpo;D1_ z14Mvs;OEYqocjaWb!Am zSnOlm0ri!tr>EzAG5tW!FbuOUv;cn%=mmVqWb(tqhY$b4=ks+pf%OY@b#;AROrPv) zLsty89w2b`?Ah<`-@pHtlG2*0U@*8tOt0+C*B-INa0nd|?a5^F!&U(Uc)ecd$<~KP zr?Dsy7#kZKP9ze)Y85bm&*zJTLLmB5C} zJuPA3N9W?;`Sa(;+uPd*S^)W)dV70==xk+B<>>$r1cHYS9qJz(989zVu$Cf`NPuc+ z$re6zXta-ykN?0h3~&9PX|6guJDnGpNrk6<=*doacz8G*kH^2?61q2(1MNkJhyTQh z6W?iNwx}h`vTQL808=JHCVGC+HZ(M}t5tCIWLcIo_f|-FIH@EE5RFE^)e5jiT3K1i zifM!PurqP@4-XG_c)i}9mXI~j!otD^8dw3!M1z}vXZP;iI~skt6|!yHdhp;u4gsbD z+5kM=-QDke62Dy)i^b)9K5wJfjUdngwv}Visg?o4B!J&(6-Sw1ljI?%%&ZFJ@l$suH?%=gyrMrBZ35C3LlAU%h(uzSs_Q z*~CpH1%Qo>jn7&DS5vuMZgFmIE`uI~&Oo#sXwU@_9zA+=rv-d9_2kKue~4K?2BK1` zY~q%uGJt*Y;>DXvsdA0qXu49V)L+ERAR!Do)j6re0`j+S-`;rk?Ac$NPFSUMIz4~k z!i9gMotlx;WdKttMb*}%4KTT@e0 zzmdZXk|2Z;a9`g_PTJ_lk-mHPZhCrp`scQ7TQpI#v$MaweEIScI%Hqsz6oE278TIm z-bDW4NC$1l*%bKZja%8Oqq)+nWlxUGXM`rj5#o;>-t>FMc{mSwHJ zYua+ToK2-tXA+6T@6ZlgmwP*Du2AV^sL{TtsO359#&&eMH@Iidp2)<+#E<*>`aVJy zncLCY+S)(QojdpI>({R@qeE~V?bVmK{g2!MT=FOXbICJLAzvPsKeyXJkU`Zb39i)Yb;g4D|D79@CJIT=4VAY*oQj+z376E7wzdd3gjwrnM!yxm2{ Z{{g!9iOm7V(yagh002ovPDHLkV1nWFb*lgX literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/assets/text-select-start.png b/config/gtk-3.0/assets/text-select-start.png new file mode 100644 index 0000000000000000000000000000000000000000..8d235cfb7c0cc1bc082faa97f7708b1956ab4470 GIT binary patch literal 799 zcmV+)1K|9LP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10<1|y zK~zYIt(Hws6G0e&pIvBaDUHSA2O*KF2^=)lq7@8L4>cj)J@^mgW{~&;I2!Q4-Gnsp zAb)^^mVohKV#38nVq)TfG!_DaROq@p?7kj$Dy3Ew+DT@U-AtZmX7-);9YaJotQm&U z0z`mzpbZEBt#yX(0S;gT3fKjldIKxqC~z{7NOVq2Ok7W=(}VGNygwWcpACgVr?eOV z*L7{nvR2FGa&c#8=j+_u-0QKiu{XdfB66VX8TMu}nOpgM{<%`BBu8xdeEtQ{2Lx;3 zL7;DTc6LlDwS81@r4H;SHoL?3)yV;k>`2pxNs4Xt*xz(KnjRd;0Dk=K0bb5 zDfOcfxQK{t+Z(_QAX*W$16SAA*WWh^7ZFiPm4G22Y8r-N07lN!uJoZX`=6~U z!VFVKO>|^rB-0FdmB2(lT7gJUPtQQJ1g`7u0)k$F2?Rr-(CKCgEX&%!KiOj9N04cn zW?K^l>ssKM`kUuC&StX&g+k#Ieohh-f3NKA?d>nk5-cq(eE`aU3;r4CpP!$fYQ`C` zZTnj+7P}3c!H-aaKzAyYy6ZU3R-*!)=mvloI#dn)l3ZL|eAWouah%QJ;o*Bg0*HtR zl~fS|x&wj0(8|intK+~u&r{iK_KBW-90*nm4B!NCK9NY=IjTe{RhpTZd5oXndVmh8 zWNA5=t~-H?z~I8d!j$7UoBx8Zt*yNq9UXlDTm#PO?QZ=;Ap6y<6X*r5B$LTZE|+^+ zEEeBdmQ{3J*HKD+FO^E4mzS4cPEJlf1a1PC^~_^Hpqgn&P0`nhssjk)7yGdOM*$rb z0(k5f__FR6uqz_&0bZ>@OAP!QL|Ya7cZSr0J^b54Mf6kZ!0HNWM3rkw3w|(AwF(97 diHP?%#xGcYu<|8XE0F*I002ovPDHLkV1oLgU-AF| literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/assets/text-select-start@2.png b/config/gtk-3.0/assets/text-select-start@2.png new file mode 100644 index 0000000000000000000000000000000000000000..7b5c42d6fd2334324a44cac5f6333a936ab8fbd3 GIT binary patch literal 1747 zcmV;^1}yoBP)a>8TVs@q7_H%W(#Rmsm|>{%E?JIQwVj>5F+Lv)ODm z@lP`S!Z6P=J2M}idFJ`e^E`%#@TO!KMii(8BD#f3HUI-K)wXr-s9gjKY8QY!V2Ma^ z*?nFI+Axd=uoXlMwXIB{ZYPfyPW&CSi7$z-y^ZESqd_F&8S=MwmoBhws%*@!>*x186ckX<9?%cWYXV0F+fjK>;h={Cd!}Ve# z&;@h@-Me@1?zw*b`ky8yCO$6~i&S@C;4BW^6T_6e=M~@!u z=USEEtAiRtpCcH*U8A@2Au0zFaOhy&fS@O;4UY`6ti|yr&KfR|8Js#_!Ja z=gnm>3cXXIW0j!mfHvTR zW5?InQv z#SEaSEebRMbyu%m{arjB?|5Tr;5F3J(o%=}o*BTBv=ze*jk+U8j{KmzyZcu`09H~{ zQ&Ws`XwA71AP&?XKYskzhGEnMhq+V@4GrD`W>Vtm2<|eyDV0iXYHx4f6A0ZJD!O;?-g8`F0mQ@wH-XTeJ$ssigsUXS zaSFr3!wV=dCC~;CYHDh#4-&AFEX$g(EX%>I8$qE#vxu&W|5wUpvrp9Y3S9BL>;TNn z%&b;qZn!2UCcaTKr+df5j}_iyhZbO8Tk&!P0;H#*yv9T}I z%%Lx$h}b56dnyY!0|Ns$M8vLejSbh8D_5?onMFg`JLa_s8i5qh`{>c5e*|2t$n5Ow zSGcv|PjP!L2_PmSm?Gje01IgAX>f4xGyJd#MAxoe`>UGs`0?!S#jgz$z&oh7M@L8h z7L=E#rl!8c^>Po;u56n{Yguna%;Uz41^gFq4jw%CXUnoC*W07zavY~{^5n@g`ZJ3r z2xW97ekC5m_x5(6_w?!0eYS1qH`2>DZ{9qOAIt5yO``;0F0#tQ@v!2)r zbm$}d(0f5ACnvvnRruN2*?Si*TsT$|4!eLKmH}@r4-0QwaZsdHdcAtSR>LNw7pn#6 z>+Ad8;lqc2(b3VdE167gU8%t%B2Ffg85tiRzkBiG#m`TjIyI_?93X?6)@-$lxal`5 z?!vd6Z6#<0_gV`kZf_)BVtW%U1E96FwdTNq1FbuD?06?0kH<{YH0S5%Up#p5;OWrN z(7#7UMy!%c+qf&;f`aGqzb_nMekI^lp%vWobPc}OWB4<{7;e^yvcgCX|6?bQyMTFB zh^^q>!chbkWEH42&k=QISPC1}-=$4V@0eG{d7dl(YAlw)3y>3$9Ba@^4L?iT!4ZW5 z_X&h`?{%xnh@HP02%W`?(UMW{DuO*PL7P~9n|5c!uT)
?7j?JGvDCTVAus_#eZ^x_9ZN#|Qub002ovPDHLkV1fo5Qknn& literal 0 HcmV?d00001 diff --git a/config/gtk-3.0/bookmarks b/config/gtk-3.0/bookmarks new file mode 100644 index 0000000..edaaa3d --- /dev/null +++ b/config/gtk-3.0/bookmarks @@ -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 diff --git a/config/gtk-3.0/gtk.css b/config/gtk-3.0/gtk.css new file mode 100644 index 0000000..2521cfb --- /dev/null +++ b/config/gtk-3.0/gtk.css @@ -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; +} diff --git a/config/gtk-3.0/gtk.css.bak b/config/gtk-3.0/gtk.css.bak new file mode 100644 index 0000000..6a24f94 --- /dev/null +++ b/config/gtk-3.0/gtk.css.bak @@ -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; +} diff --git a/config/gtk-4.0/gtk.css b/config/gtk-4.0/gtk.css new file mode 100644 index 0000000..a9392a3 --- /dev/null +++ b/config/gtk-4.0/gtk.css @@ -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; +} diff --git a/config/gtk-4.0/gtk.css.bak b/config/gtk-4.0/gtk.css.bak new file mode 100644 index 0000000..6a24f94 --- /dev/null +++ b/config/gtk-4.0/gtk.css.bak @@ -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; +} diff --git a/config/kitty/colors.conf b/config/kitty/colors.conf new file mode 100644 index 0000000..e7f0764 --- /dev/null +++ b/config/kitty/colors.conf @@ -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 diff --git a/config/kitty/kitty.conf b/config/kitty/kitty.conf new file mode 100644 index 0000000..6d7ee86 --- /dev/null +++ b/config/kitty/kitty.conf @@ -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 diff --git a/config/kitty/nature_colors.conf b/config/kitty/nature_colors.conf new file mode 100644 index 0000000..9f2968d --- /dev/null +++ b/config/kitty/nature_colors.conf @@ -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 diff --git a/config/openbar/Nature b/config/openbar/Nature new file mode 100644 index 0000000..faf8370 --- /dev/null +++ b/config/openbar/Nature @@ -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 diff --git a/config/pop-shell/config.json b/config/pop-shell/config.json new file mode 100644 index 0000000..3ff0046 --- /dev/null +++ b/config/pop-shell/config.json @@ -0,0 +1,10 @@ +{ + "float": [ + { + "class": "pop-shell-example", + "title": "pop-shell-example" + } + ], + "skiptaskbarhidden": [], + "log_on_focus": false +} \ No newline at end of file