commit 9515e8ba1f3dc54801e4924e71ade138169ed3ba Author: root Date: Sun Jan 12 19:25:33 2025 -0500 initial commit diff --git a/apt/sources.list b/apt/sources.list new file mode 100644 index 0000000..2545fbe --- /dev/null +++ b/apt/sources.list @@ -0,0 +1,21 @@ +#deb cdrom:[Debian GNU/Linux 12.7.0 _Bookworm_ - Official amd64 NETINST with firmware 20240831-10:38]/ bookworm contrib main non-free-firmware + +deb http://deb.debian.org/debian/ testing main non-free-firmware contrib non-free +deb-src http://deb.debian.org/debian/ testing main non-free-firmware contrib non-free +deb http://security.debian.org/debian-security testing-security main non-free-firmware +deb-src http://security.debian.org/debian-security testing-security main non-free-firmware + +# bookworm-updates, to get updates before a point release is made; +# see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports +deb http://deb.debian.org/debian/ testing-updates main non-free-firmware +deb-src http://deb.debian.org/debian/ testing-updates main non-free-firmware + +# also stable +deb https://deb.debian.org/debian stable main non-free-firmware contrib non-free +deb-src https://deb.debian.org/debian stable main non-free-firmware contrib non-free + +# This system was installed using small removable media +# (e.g. netinst, live or single CD). The matching "deb cdrom" +# entries were disabled at the end of the installation process. +# For information about how to configure apt package sources, +# see the sources.list(5) manual. diff --git a/apt/sources.list.d/makedeb.list b/apt/sources.list.d/makedeb.list new file mode 100644 index 0000000..78955bb --- /dev/null +++ b/apt/sources.list.d/makedeb.list @@ -0,0 +1 @@ +deb [signed-by=/usr/share/keyrings/makedeb-archive-keyring.gpg arch=all] https://proget.makedeb.org/ makedeb main diff --git a/apt/sources.list.d/megasync.list b/apt/sources.list.d/megasync.list new file mode 100644 index 0000000..4cc0c6e --- /dev/null +++ b/apt/sources.list.d/megasync.list @@ -0,0 +1 @@ +deb [signed-by=/usr/share/keyrings/meganz-archive-keyring.gpg] https://mega.nz/linux/repo/Debian_12/ ./ diff --git a/apt/sources.list.d/mullvad.list b/apt/sources.list.d/mullvad.list new file mode 100644 index 0000000..2c63be1 --- /dev/null +++ b/apt/sources.list.d/mullvad.list @@ -0,0 +1 @@ +deb [signed-by=/usr/share/keyrings/mullvad-keyring.asc arch=amd64] https://repository.mullvad.net/deb/stable bookworm main diff --git a/apt/sources.list.d/prebuilt-mpr.list b/apt/sources.list.d/prebuilt-mpr.list new file mode 100644 index 0000000..78a0a69 --- /dev/null +++ b/apt/sources.list.d/prebuilt-mpr.list @@ -0,0 +1 @@ +deb [arch=all,amd64 signed-by=/usr/share/keyrings/prebuilt-mpr-archive-keyring.gpg] https://proget.makedeb.org prebuilt-mpr bookworm diff --git a/profile b/profile new file mode 100644 index 0000000..a897491 --- /dev/null +++ b/profile @@ -0,0 +1,34 @@ +# /etc/profile: system-wide .profile file for the Bourne shell (sh(1)) +# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...). + +if [ "$(id -u)" -eq 0 ]; then + PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" +else + PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games" +fi +export PATH + +if [ "${PS1-}" ]; then + if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then + # The file bash.bashrc already sets the default PS1. + # PS1='\h:\w\$ ' + if [ -f /etc/bash.bashrc ]; then + . /etc/bash.bashrc + fi + else + if [ "$(id -u)" -eq 0 ]; then + PS1='# ' + else + PS1='$ ' + fi + fi +fi + +if [ -d /etc/profile.d ]; then + for i in $(run-parts --list --regex '^[a-zA-Z0-9_][a-zA-Z0-9._-]*\.sh$' /etc/profile.d); do + if [ -r $i ]; then + . $i + fi + done + unset i +fi diff --git a/profile.d/70-systemd-shell-extra.sh b/profile.d/70-systemd-shell-extra.sh new file mode 120000 index 0000000..900c38c --- /dev/null +++ b/profile.d/70-systemd-shell-extra.sh @@ -0,0 +1 @@ +/usr/lib/systemd/profile.d/70-systemd-shell-extra.sh \ No newline at end of file diff --git a/profile.d/bash_completion.sh b/profile.d/bash_completion.sh new file mode 100644 index 0000000..8c031cf --- /dev/null +++ b/profile.d/bash_completion.sh @@ -0,0 +1,16 @@ +# shellcheck shell=sh disable=SC1091,SC2166,SC2268,SC3028,SC3044,SC3054 +# Check for interactive bash and that we haven't already been sourced. +if [ "x${BASH_VERSION-}" != x -a "x${PS1-}" != x -a "x${BASH_COMPLETION_VERSINFO-}" = x ]; then + + # Check for recent enough version of bash. + if [ "${BASH_VERSINFO[0]}" -gt 4 ] || + [ "${BASH_VERSINFO[0]}" -eq 4 -a "${BASH_VERSINFO[1]}" -ge 2 ]; then + [ -r "${XDG_CONFIG_HOME:-$HOME/.config}/bash_completion" ] && + . "${XDG_CONFIG_HOME:-$HOME/.config}/bash_completion" + if shopt -q progcomp && [ -r /usr/share/bash-completion/bash_completion ]; then + # Source completion code. + . /usr/share/bash-completion/bash_completion + fi + fi + +fi diff --git a/profile.d/flatpak.csh b/profile.d/flatpak.csh new file mode 100644 index 0000000..7921d5a --- /dev/null +++ b/profile.d/flatpak.csh @@ -0,0 +1,20 @@ +set _flatpak=`where flatpak | head -n 1` +if ( ${%_flatpak} > 0 ) then + if ( ! ${?XDG_DATA_HOME} ) setenv XDG_DATA_HOME "$HOME/.local/share" + if ( ${%XDG_DATA_HOME} == 0 ) setenv XDG_DATA_HOME "$HOME/.local/share" + if ( ! ${?XDG_DATA_DIRS} ) setenv XDG_DATA_DIRS /usr/local/share:/usr/share + if ( ${%XDG_DATA_DIRS} == 0 ) setenv XDG_DATA_DIRS /usr/local/share:/usr/share + set _new_dirs="" + foreach _line (`(unset G_MESSAGES_DEBUG; echo "${XDG_DATA_HOME}"/flatpak; setenv GIO_USE_VFS local; flatpak --installations)`) + set _line=${_line}/exports/share + if ( ":${XDG_DATA_DIRS}:" =~ *:${_line}:* ) continue + if ( ":${XDG_DATA_DIRS}:" =~ *:${_line}/:* ) continue + if ( ${%_new_dirs} > 0 ) set _new_dirs="${_new_dirs}:" + set _new_dirs="${_new_dirs}${_line}" + end + if ( ${%_new_dirs} > 0 ) then + set _new_dirs="${_new_dirs}:" + setenv XDG_DATA_DIRS "${_new_dirs}${XDG_DATA_DIRS}" + endif +endif +unset _flatpak _line _new_dirs diff --git a/profile.d/flatpak.sh b/profile.d/flatpak.sh new file mode 100644 index 0000000..395f93b --- /dev/null +++ b/profile.d/flatpak.sh @@ -0,0 +1,28 @@ +if command -v flatpak > /dev/null; then + # set XDG_DATA_DIRS to include Flatpak installations + + new_dirs=$( + ( + unset G_MESSAGES_DEBUG + echo "${XDG_DATA_HOME:-"$HOME/.local/share"}/flatpak" + GIO_USE_VFS=local flatpak --installations + ) | ( + new_dirs= + while read -r install_path + do + share_path=$install_path/exports/share + case ":$XDG_DATA_DIRS:" in + (*":$share_path:"*) :;; + (*":$share_path/:"*) :;; + (*) new_dirs=${new_dirs:+${new_dirs}:}$share_path;; + esac + done + echo "$new_dirs" + ) + ) + + export XDG_DATA_DIRS + XDG_DATA_DIRS="${new_dirs:+${new_dirs}:}${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" + + unset new_dirs +fi diff --git a/profile.d/gawk.csh b/profile.d/gawk.csh new file mode 100644 index 0000000..583d5bc --- /dev/null +++ b/profile.d/gawk.csh @@ -0,0 +1,11 @@ +alias gawkpath_default 'unsetenv AWKPATH; setenv AWKPATH `gawk -v x=AWKPATH "BEGIN {print ENVIRON[x]}"`' + +alias gawkpath_prepend 'if (! $?AWKPATH) setenv AWKPATH ""; if ($AWKPATH == "") then; unsetenv AWKPATH; setenv AWKPATH `gawk -v x=AWKPATH "BEGIN {print ENVIRON[x]}"`; endif; setenv AWKPATH "\!*"":$AWKPATH"' + +alias gawkpath_append 'if (! $?AWKPATH) setenv AWKPATH ""; if ($AWKPATH == "") then; unsetenv AWKPATH; setenv AWKPATH `gawk -v x=AWKPATH "BEGIN {print ENVIRON[x]}"`; endif; setenv AWKPATH "$AWKPATH"":\!*"' + +alias gawklibpath_default 'unsetenv AWKLIBPATH; setenv AWKLIBPATH `gawk -v x=AWKLIBPATH "BEGIN {print ENVIRON[x]}"`' + +alias gawklibpath_prepend 'if (! $?AWKLIBPATH) setenv AWKLIBPATH ""; if ($AWKLIBPATH == "") then; unsetenv AWKLIBPATH; setenv AWKLIBPATH `gawk -v x=AWKLIBPATH "BEGIN {print ENVIRON[x]}"`; endif; setenv AWKLIBPATH "\!*"":$AWKLIBPATH"' + +alias gawklibpath_append 'if (! $?AWKLIBPATH) setenv AWKLIBPATH ""; if ($AWKLIBPATH == "") then; unsetenv AWKLIBPATH; setenv AWKLIBPATH `gawk -v x=AWKLIBPATH "BEGIN {print ENVIRON[x]}"`; endif; setenv AWKLIBPATH "$AWKLIBPATH"":\!*"' diff --git a/profile.d/gawk.sh b/profile.d/gawk.sh new file mode 100644 index 0000000..c35471f --- /dev/null +++ b/profile.d/gawk.sh @@ -0,0 +1,31 @@ +gawkpath_default () { + unset AWKPATH + export AWKPATH=`gawk 'BEGIN {print ENVIRON["AWKPATH"]}'` +} + +gawkpath_prepend () { + [ -z "$AWKPATH" ] && AWKPATH=`gawk 'BEGIN {print ENVIRON["AWKPATH"]}'` + export AWKPATH="$*:$AWKPATH" +} + +gawkpath_append () { + [ -z "$AWKPATH" ] && AWKPATH=`gawk 'BEGIN {print ENVIRON["AWKPATH"]}'` + export AWKPATH="$AWKPATH:$*" +} + +gawklibpath_default () { + unset AWKLIBPATH + export AWKLIBPATH=`gawk 'BEGIN {print ENVIRON["AWKLIBPATH"]}'` +} + +gawklibpath_prepend () { + [ -z "$AWKLIBPATH" ] && \ + AWKLIBPATH=`gawk 'BEGIN {print ENVIRON["AWKLIBPATH"]}'` + export AWKLIBPATH="$*:$AWKLIBPATH" +} + +gawklibpath_append () { + [ -z "$AWKLIBPATH" ] && \ + AWKLIBPATH=`gawk 'BEGIN {print ENVIRON["AWKLIBPATH"]}'` + export AWKLIBPATH="$AWKLIBPATH:$*" +} diff --git a/profile.d/vte-2.91.sh b/profile.d/vte-2.91.sh new file mode 100644 index 0000000..b32f08a --- /dev/null +++ b/profile.d/vte-2.91.sh @@ -0,0 +1,150 @@ +# Copyright © 2012 Christian Persch +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Not bash or zsh? +[ -n "${BASH_VERSION:-}" -o -n "${ZSH_VERSION:-}" ] || return 0 + +# Not an interactive shell? +[[ $- == *i* ]] || return 0 + +# Not running under vte? +[ "${VTE_VERSION:-0}" -ge 3405 ] || return 0 + +# TERM not supported? +case "$TERM" in + xterm*|vte*|gnome*) :;; + *) return 0 ;; +esac + +__vte_termprop_signal() { + local errsv="$?" + printf '\033]666;%s!\033\\' "$1" + return $errsv +} + +__vte_termprop_set() { + local errsv="$?" + printf '\033]666;%s=%s\033\\' "$1" "$2" + return $errsv +} + +__vte_termprop_reset() { + local errsv="$?" + printf '\033]666;%s\033\\' "$1" + return $errsv +} + +__vte_osc7 () { + local errsv="$?" + printf "\033]7;file://%s%s\033\\" "${HOSTNAME}" "$(/usr/libexec/vte-urlencode-cwd)" + return $errsv +} + +__vte_precmd() { + local errsv="$?" + __vte_termprop_set "vte.shell.postexec" "$?" + __vte_termprop_signal "vte.shell.precmd" + return $errsv; +} + +__vte_prompt_command() { + local errsv="$?" + __vte_termprop_set "vte.shell.postexec" "$errsv" + __vte_osc7 + local pwd='~' + [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} + pwd="${pwd//[[:cntrl:]]}" + printf "\033]0;%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${pwd}" + __vte_termprop_signal "vte.shell.precmd" + return $errsv +} + +if [[ -n "${BASH_VERSION:-}" ]]; then + + # Newer bash versions support PROMPT_COMMAND as an array. In this case + # only add the __vte_osc7 function to it, and leave setting the terminal + # title to the outside setup. + # On older bash, we can only overwrite the whole PROMPT_COMMAND, so must + # use the __vte_prompt_command function which also sets the title. + + if [[ "$(declare -p PROMPT_COMMAND 2>&1)" =~ "declare -a" ]]; then + PROMPT_COMMAND+=(__vte_precmd) + PROMPT_COMMAND+=(__vte_osc7) + else + PROMPT_COMMAND="__vte_prompt_command" + fi + PS0=$(__vte_termprop_signal "vte.shell.preexec") + + # Shell integration + if [[ "$PS1" != *\]133\;* ]]; then + + # Enclose the primary prompt between + # ← OSC 133;D;retval ST (report exit status of previous command) + # ← OSC 133;A ST (mark beginning of prompt) + # → OSC 133;B ST (mark end of prompt, beginning of command line) + PS1='\[\e]133;D;$?\e\\\e]133;A\e\\\]'"$PS1"'\[\e]133;B\e\\\]' + + # Prepend OSC 133;L ST for a conditional newline if the previous + # command's output didn't end in one. + # This is not done here by default, in order to provide the default + # visual behavior of shells. Uncomment if you want this feature. + #PS1='\[\e]133;L\e\\\]'"$PS1" + + # iTerm2 doesn't touch the secondary prompt. + # Konsole encloses it between 133;A and 133;B. + # For efficient jumping between commands, we follow iTerm2 by default + # and don't mark PS2 as prompt. Uncomment if you want to mark it. + #PS2='\[\e]133;A\e\\\]'"$PS2"'\[\e]133;B\e\\\]' + + # Mark the beginning of the command's output by OSC 133;C ST. + # '\r' ensures that the kernel's cooked mode has the right idea of + # the column, important for handling TAB followed by BS keypresses. + # Prepend to the user's PS0 to preserve whether it ends in '\r'. + # Note that bash doesn't support the \[ \] markers here. + PS0='\e]133;C\e\\\r'"${PS0:-}" + fi + +elif [[ -n "${ZSH_VERSION:-}" ]]; then + precmd_functions+=(__vte_osc7) + precmd_functions+=(__vte_precmd) + + # Shell integration (see the bash counterpart for more detailed comments) + if [[ "$PS1" != *\]133\;* ]]; then + + # Enclose the primary prompt between D;retval, A and B. + PS1=$'%{\e]133;D;%?\e\\\e]133;A\e\\%}'"$PS1"$'%{\e]133;B\e\\%}' + + # Prepend L for conditional newline (skipped). + #PS1=$'%{\e]133;L\e\\%}'"$PS1" + + # Secondary prompt (skipped). + #PS2=$'%{\e]133;A\e\\%}'"$PS2"$'%{\e]133;B\e\\%}' + + # Mark the beginning of output by C. + # The execution order is: the single function possibly hooked up + # in $preexec, followed by all the functions hooked up in the + # $preexec_functions array. Ensure that we are the very first. + __vte_preexec() { + local errsv="$?" + printf '\e]133;C\e\\\r' + return $errsv + } + preexec_functions=(__vte_preexec $preexec $preexec_functions) + unset preexec + fi + +fi + +return 0 diff --git a/profile.d/vte.csh b/profile.d/vte.csh new file mode 100644 index 0000000..3422e18 --- /dev/null +++ b/profile.d/vte.csh @@ -0,0 +1,24 @@ +# Copyright © 2019 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# Red Hat Author(s): Carlos Santos + +# exit if non-interactive, csh, no terminal or old VTE versions +if ( ! $?prompt | ! $?tcsh | ! $?TERM | ! $?VTE_VERSION ) exit + +switch($TERM) + case xterm*: + alias precmd 'echo -n "\e]7;file://$HOST"; /usr/libexec/vte-urlencode-cwd; echo -n "\e\\"' +endsw