mirror of
https://github.com/thilobillerbeck/dotfiles.git
synced 2024-11-22 07:58:49 +01:00
initial commit
This commit is contained in:
commit
757ec9bab0
23 changed files with 1685 additions and 0 deletions
4
dotfiles/.gitmodules
vendored
Normal file
4
dotfiles/.gitmodules
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
[submodule "dotbot"]
|
||||
path = dotbot
|
||||
url = https://github.com/anishathalye/dotbot
|
||||
ignore = dirty
|
46
dotfiles/alacritty.yml
Normal file
46
dotfiles/alacritty.yml
Normal file
|
@ -0,0 +1,46 @@
|
|||
window:
|
||||
decorations: full
|
||||
dynamic_title: true
|
||||
gtk_theme_variant: None
|
||||
background_opacity: 1.0
|
||||
font:
|
||||
normal:
|
||||
family: FiraMono Nerd Font
|
||||
bold:
|
||||
family: FiraMono Nerd Font
|
||||
style: Bold
|
||||
size: 14
|
||||
offset:
|
||||
y: 1
|
||||
|
||||
cursor:
|
||||
style:
|
||||
shape: Beam
|
||||
# Colors (Snazzy)
|
||||
colors:
|
||||
# Default colors
|
||||
primary:
|
||||
background: "0x282a36"
|
||||
foreground: "0xeff0eb"
|
||||
|
||||
# Normal colors
|
||||
normal:
|
||||
black: "0x282a36"
|
||||
red: "0xff5c57"
|
||||
green: "0x5af78e"
|
||||
yellow: "0xf3f99d"
|
||||
blue: "0x57c7ff"
|
||||
magenta: "0xff6ac1"
|
||||
cyan: "0x9aedfe"
|
||||
white: "0xf1f1f0"
|
||||
|
||||
# Bright colors
|
||||
bright:
|
||||
black: "0x686868"
|
||||
red: "0xff5c57"
|
||||
green: "0x5af78e"
|
||||
yellow: "0xf3f99d"
|
||||
blue: "0x57c7ff"
|
||||
magenta: "0xff6ac1"
|
||||
cyan: "0x9aedfe"
|
||||
white: "0xf1f1f0"
|
11
dotfiles/aliases
Normal file
11
dotfiles/aliases
Normal file
|
@ -0,0 +1,11 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
alias pub-ipv4="curl ip4.clerie.de"
|
||||
alias serve="python -m SimpleHTTPServer 8080"
|
||||
alias week='date +%V'
|
||||
alias path='echo -e ${PATH//:/\\n}'
|
||||
alias distro='cat /etc/*-release'
|
||||
alias reload='source ~/.zshrc'
|
||||
alias undo-git-reset-head="git reset 'HEAD@{1}'"
|
||||
alias update-local="bash $HOME/.dotfiles/install"
|
||||
alias fix-ssh-key-permissions="bash $HOME/.dotfiles/scripts/fix-ssh-key-permissions.sh"
|
3
dotfiles/bash_logout
Normal file
3
dotfiles/bash_logout
Normal file
|
@ -0,0 +1,3 @@
|
|||
#
|
||||
# ~/.bash_logout
|
||||
#
|
7
dotfiles/bash_profile
Normal file
7
dotfiles/bash_profile
Normal file
|
@ -0,0 +1,7 @@
|
|||
#
|
||||
# ~/.bash_profile
|
||||
#
|
||||
|
||||
[[ -f ~/.bashrc ]] && . ~/.bashrc
|
||||
if [ -e /home/thilo/.nix-profile/etc/profile.d/nix.sh ]; then . /home/thilo/.nix-profile/etc/profile.d/nix.sh; fi # added by Nix installer
|
||||
. "$HOME/.cargo/env"
|
175
dotfiles/bashrc
Normal file
175
dotfiles/bashrc
Normal file
|
@ -0,0 +1,175 @@
|
|||
#
|
||||
# ~/.bashrc
|
||||
#
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
[[ $- != *i* ]] && return
|
||||
|
||||
[[ -f ~/.welcome_screen ]] && . ~/.welcome_screen
|
||||
|
||||
_set_my_PS1() {
|
||||
PS1='[\u@\h \W]\$ '
|
||||
if [ "$(whoami)" = "liveuser" ] ; then
|
||||
local iso_version="$(grep ^VERSION= /usr/lib/endeavouros-release 2>/dev/null | cut -d '=' -f 2)"
|
||||
if [ -n "$iso_version" ] ; then
|
||||
local prefix="eos-"
|
||||
local iso_info="$prefix$iso_version"
|
||||
PS1="[\u@$iso_info \W]\$ "
|
||||
fi
|
||||
fi
|
||||
}
|
||||
_set_my_PS1
|
||||
unset -f _set_my_PS1
|
||||
|
||||
ShowInstallerIsoInfo() {
|
||||
local file=/usr/lib/endeavouros-release
|
||||
if [ -r $file ] ; then
|
||||
cat $file
|
||||
else
|
||||
echo "Sorry, installer ISO info is not available." >&2
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
alias ls='ls --color=auto'
|
||||
alias ll='ls -lav --ignore=..' # show long listing of all except ".."
|
||||
alias l='ls -lav --ignore=.?*' # show long listing but no hidden dotfiles except "."
|
||||
|
||||
[[ "$(whoami)" = "root" ]] && return
|
||||
|
||||
[[ -z "$FUNCNEST" ]] && export FUNCNEST=100 # limits recursive functions, see 'man bash'
|
||||
|
||||
## Use the up and down arrow keys for finding a command in history
|
||||
## (you can write some initial letters of the command first).
|
||||
bind '"\e[A":history-search-backward'
|
||||
bind '"\e[B":history-search-forward'
|
||||
|
||||
################################################################################
|
||||
## Some generally useful functions.
|
||||
## Consider uncommenting aliases below to start using these functions.
|
||||
|
||||
|
||||
_GeneralCmdCheck() {
|
||||
# A helper for functions UpdateArchPackages and UpdateAURPackages.
|
||||
|
||||
echo "$@" >&2
|
||||
"$@" || {
|
||||
echo "Error: '$*' failed." >&2
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
_CheckInternetConnection() {
|
||||
# curl --silent --connect-timeout 8 https://8.8.8.8 >/dev/null
|
||||
eos-connection-checker
|
||||
local result=$?
|
||||
test $result -eq 0 || echo "No internet connection!" >&2
|
||||
return $result
|
||||
}
|
||||
|
||||
_CheckArchNews() {
|
||||
local conf=/etc/eos-update-notifier.conf
|
||||
|
||||
if [ -z "$CheckArchNewsForYou" ] && [ -r $conf ] ; then
|
||||
source $conf
|
||||
fi
|
||||
|
||||
if [ "$CheckArchNewsForYou" = "yes" ] ; then
|
||||
local news="$(yay -Pw)"
|
||||
if [ -n "$news" ] ; then
|
||||
echo "Arch news:" >&2
|
||||
echo "$news" >&2
|
||||
echo "" >&2
|
||||
# read -p "Press ENTER to continue (or Ctrl-C to stop): "
|
||||
else
|
||||
echo "No Arch news." >&2
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
UpdateArchPackages() {
|
||||
# Updates Arch packages.
|
||||
|
||||
_CheckInternetConnection || return 1
|
||||
|
||||
_CheckArchNews
|
||||
|
||||
#local updates="$(yay -Qu --repo)"
|
||||
local updates="$(checkupdates)"
|
||||
if [ -n "$updates" ] ; then
|
||||
echo "Updates from upstream:" >&2
|
||||
echo "$updates" | sed 's|^| |' >&2
|
||||
_GeneralCmdCheck sudo pacman -Syu "$@"
|
||||
return 0
|
||||
else
|
||||
echo "No upstream updates." >&2
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
UpdateAURPackages() {
|
||||
# Updates AUR packages.
|
||||
|
||||
_CheckInternetConnection || return 1
|
||||
|
||||
local updates
|
||||
if [ -x /usr/bin/yay ] ; then
|
||||
updates="$(yay -Qua)"
|
||||
if [ -n "$updates" ] ; then
|
||||
echo "Updates from AUR:" >&2
|
||||
echo "$updates" | sed 's|^| |' >&2
|
||||
_GeneralCmdCheck yay -Syua "$@"
|
||||
else
|
||||
echo "No AUR updates." >&2
|
||||
fi
|
||||
else
|
||||
echo "Warning: /usr/bin/yay does not exist." >&2
|
||||
fi
|
||||
}
|
||||
|
||||
UpdateAllPackages() {
|
||||
# Updates all packages in the system.
|
||||
# Upstream (i.e. Arch) packages are updated first.
|
||||
# If there are Arch updates, you should run
|
||||
# this function a second time to update
|
||||
# the AUR packages too.
|
||||
|
||||
UpdateArchPackages || UpdateAURPackages
|
||||
}
|
||||
|
||||
|
||||
_open_files_for_editing() {
|
||||
# Open any given document file(s) for editing (or just viewing).
|
||||
# Note1: Do not use for executable files!
|
||||
# Note2: uses mime bindings, so you may need to use
|
||||
# e.g. a file manager to make some file bindings.
|
||||
|
||||
local progs="xdg-open exo-open" # One of these programs is used.
|
||||
local prog
|
||||
for prog in $progs ; do
|
||||
if [ -x /usr/bin/$xx ] ; then
|
||||
$prog "$@" >& /dev/null &
|
||||
return
|
||||
fi
|
||||
done
|
||||
echo "Sorry, none of programs [$progs] is found." >&2
|
||||
echo "Tip: install one of packages" >&2
|
||||
for prog in $progs ; do
|
||||
echo " $(pacman -Qqo "$prog")" >&2
|
||||
done
|
||||
}
|
||||
|
||||
#------------------------------------------------------------
|
||||
|
||||
## Aliases for the functions above.
|
||||
## Uncomment an alias if you want to use it.
|
||||
##
|
||||
|
||||
# alias ef='_open_files_for_editing' # 'ef' opens given file(s) for editing
|
||||
################################################################################
|
||||
source "$HOME/.cargo/env"
|
||||
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
||||
. "$HOME/.cargo/env"
|
16
dotfiles/beets.yaml
Normal file
16
dotfiles/beets.yaml
Normal file
|
@ -0,0 +1,16 @@
|
|||
directory: ~/Music/dj/Library
|
||||
library: ~/Music/dj/library.db
|
||||
plugins: spotify acousticbrainz badfiles duplicates fetchart
|
||||
import:
|
||||
write: yes
|
||||
copy: yes
|
||||
resume: no
|
||||
duplicate_action: ask
|
||||
default_action: apply
|
||||
badfiles:
|
||||
check_on_import: yes
|
||||
match:
|
||||
max_rec:
|
||||
track_length: strong
|
||||
track_title: strong
|
||||
track_artist: strong
|
7
dotfiles/chromium-flags.conf
Normal file
7
dotfiles/chromium-flags.conf
Normal file
|
@ -0,0 +1,7 @@
|
|||
--force-dark-mode
|
||||
--enable-features=WebUIDarkMode
|
||||
--enable-smooth-scrolling
|
||||
--ozone-platform-hint=auto
|
||||
--ignore-gpu-blocklist
|
||||
--enable-gpu-rasterization
|
||||
--enable-zero-copy
|
28
dotfiles/gitconfig
Normal file
28
dotfiles/gitconfig
Normal file
|
@ -0,0 +1,28 @@
|
|||
[user]
|
||||
name = Thilo Billerbeck
|
||||
email = thilo.billerbeck@officerent.de
|
||||
|
||||
[color]
|
||||
diff = auto
|
||||
status = auto
|
||||
branch = auto
|
||||
interactive = auto
|
||||
ui = true
|
||||
pager = true
|
||||
[log]
|
||||
date = short
|
||||
[rerere]
|
||||
enabled = 1
|
||||
[core]
|
||||
whitespace=fix,-indent-with-non-tab,trailing-space,cr-at-eol
|
||||
excludesfile = ~/.gitignore-rab
|
||||
autocrlf = input
|
||||
[apply]
|
||||
whitespace = nowarn
|
||||
[branch]
|
||||
autosetuprebase = always
|
||||
[filter "lfs"]
|
||||
clean = git-lfs clean -- %f
|
||||
smudge = git-lfs smudge -- %f
|
||||
process = git-lfs filter-process
|
||||
required = true
|
2
dotfiles/gtk-3.ini
Normal file
2
dotfiles/gtk-3.ini
Normal file
|
@ -0,0 +1,2 @@
|
|||
[Settings]
|
||||
gtk-application-prefer-dark-theme=true
|
39
dotfiles/htoprc
Normal file
39
dotfiles/htoprc
Normal file
|
@ -0,0 +1,39 @@
|
|||
# Beware! This file is rewritten by htop when settings are changed in the interface.
|
||||
# The parser is also very primitive, and not human-friendly.
|
||||
fields=0 48 17 18 38 39 40 2 46 47 49 1
|
||||
sort_key=46
|
||||
sort_direction=1
|
||||
tree_sort_key=0
|
||||
tree_sort_direction=1
|
||||
hide_kernel_threads=1
|
||||
hide_userland_threads=0
|
||||
shadow_other_users=0
|
||||
show_thread_names=0
|
||||
show_program_path=1
|
||||
highlight_base_name=0
|
||||
highlight_megabytes=1
|
||||
highlight_threads=1
|
||||
highlight_changes=0
|
||||
highlight_changes_delay_secs=5
|
||||
find_comm_in_cmdline=1
|
||||
strip_exe_from_cmdline=1
|
||||
show_merged_command=0
|
||||
tree_view=1
|
||||
tree_view_always_by_pid=0
|
||||
header_margin=1
|
||||
detailed_cpu_time=0
|
||||
cpu_count_from_one=0
|
||||
show_cpu_usage=1
|
||||
show_cpu_frequency=0
|
||||
show_cpu_temperature=0
|
||||
degree_fahrenheit=0
|
||||
update_process_names=0
|
||||
account_guest_in_cpu_meter=0
|
||||
color_scheme=0
|
||||
enable_mouse=1
|
||||
delay=15
|
||||
left_meters=LeftCPUs2 CPU Memory DiskIO NetworkIO
|
||||
left_meter_modes=1 1 1 2 2
|
||||
right_meters=RightCPUs2 Tasks LoadAverage Uptime Battery
|
||||
right_meter_modes=1 2 2 2 2
|
||||
hide_function_bar=0
|
43
dotfiles/init.vim
Normal file
43
dotfiles/init.vim
Normal file
|
@ -0,0 +1,43 @@
|
|||
call plug#begin('~/.vim/plugged')
|
||||
|
||||
" FILE VIEW
|
||||
Plug 'scrooloose/nerdtree'
|
||||
Plug 'ryanoasis/vim-devicons'
|
||||
|
||||
" COC
|
||||
Plug 'neoclide/coc.nvim', {'branch': 'release'}
|
||||
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
|
||||
|
||||
Plug 'dense-analysis/ale'
|
||||
|
||||
call plug#end()
|
||||
|
||||
" GENERAL
|
||||
|
||||
set title
|
||||
set number
|
||||
set relativenumber
|
||||
set cursorline
|
||||
|
||||
"
|
||||
|
||||
set mouse=a
|
||||
|
||||
" THEMES
|
||||
syntax enable
|
||||
|
||||
" FILE VIEW
|
||||
|
||||
let g:NERDTreeShowHidden = 1
|
||||
let g:NERDTreeMinimalUI = 1
|
||||
let g:NERDTreeIgnore = [ '.git/' ]
|
||||
let g:NERDTreeStatusline = ''
|
||||
let g:NERDTreeMouseMode = 2
|
||||
" Automaticaly close nvim if NERDTree is only thing left open
|
||||
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
|
||||
" Toggle
|
||||
nnoremap <silent> <C-b> :NERDTreeToggle<CR>
|
||||
|
||||
" COC
|
||||
let g:coc_global_extensions = ['coc-emmet', 'coc-css', 'coc-html', 'coc-json', 'coc-prettier', 'coc-tsserver']
|
||||
|
6
dotfiles/install
Executable file
6
dotfiles/install
Executable file
|
@ -0,0 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
script_location=$(dirname $(realpath $0))
|
||||
|
||||
bash $script_location/scripts/bootstrap-local-env.sh
|
||||
bash $script_location/scripts/update-dotfiles.sh
|
75
dotfiles/install.conf.yaml
Normal file
75
dotfiles/install.conf.yaml
Normal file
|
@ -0,0 +1,75 @@
|
|||
- defaults:
|
||||
link:
|
||||
relink: true
|
||||
|
||||
- clean:
|
||||
~/:
|
||||
force: true
|
||||
|
||||
- link:
|
||||
~/.bash_profile:
|
||||
path: bash_profile
|
||||
force: true
|
||||
~/.bashrc:
|
||||
path: bashrc
|
||||
force: true
|
||||
~/.bash_logout:
|
||||
path: bash_logout
|
||||
force: true
|
||||
~/.zshrc:
|
||||
path: zshrc
|
||||
force: true
|
||||
~/.zshenv:
|
||||
path: zshenv
|
||||
force: true
|
||||
~/.gitconfig:
|
||||
path: gitconfig
|
||||
force: true
|
||||
# ~/.config/gtk-3.0/settings.ini:
|
||||
# path: gtk-3.ini
|
||||
# force: true
|
||||
~/.config/nano/nanorc:
|
||||
path: nanorc
|
||||
force: true
|
||||
~/.config/locale.conf:
|
||||
path: locale.conf
|
||||
force: true
|
||||
~/.aliases:
|
||||
path: aliases
|
||||
force: true
|
||||
~/.alacritty.yml:
|
||||
path: alacritty.yml
|
||||
force: true
|
||||
~/.config/htop/htoprc:
|
||||
path: htoprc
|
||||
force: true
|
||||
~/.config/starship.toml:
|
||||
path: starship.toml
|
||||
force: true
|
||||
~/.config/nvim/init.vim:
|
||||
path: init.vim
|
||||
force: true
|
||||
~/.config/chromium-flags.conf:
|
||||
path: chromium-flags.conf
|
||||
force: true
|
||||
~/.config/chrome-flags.conf:
|
||||
path: chromium-flags.conf
|
||||
force: true
|
||||
~/.config/vivaldi-stable.conf:
|
||||
path: chromium-flags.conf
|
||||
force: true
|
||||
~/.var/app/com.google.Chrome/config/chrome-flags.conf:
|
||||
path: chromium-flags.conf
|
||||
force: true
|
||||
~/.ssh/config:
|
||||
path: ssh-config
|
||||
force: true
|
||||
~/.config/beets/config.yaml:
|
||||
path: beets.yaml
|
||||
force: true
|
||||
~/.config/pipewire/pipewire.conf:
|
||||
path: pipewire.conf
|
||||
force: true
|
||||
~/.config/topgrade.toml:
|
||||
path: topgrade.toml
|
||||
force: true
|
10
dotfiles/locale.conf
Normal file
10
dotfiles/locale.conf
Normal file
|
@ -0,0 +1,10 @@
|
|||
LANG=de_DE.UTF-8
|
||||
LC_ADDRESS=de_DE.UTF-8
|
||||
LC_IDENTIFICATION=de_DE.UTF-8
|
||||
LC_MEASUREMENT=de_DE.UTF-8
|
||||
LC_MONETARY=de_DE.UTF-8
|
||||
LC_NAME=de_DE.UTF-8
|
||||
LC_NUMERIC=de_DE.UTF-8
|
||||
LC_PAPER=de_DE.UTF-8
|
||||
LC_TELEPHONE=de_DE.UTF-8
|
||||
LC_TIME=de_DE.UTF-8
|
305
dotfiles/nanorc
Normal file
305
dotfiles/nanorc
Normal file
|
@ -0,0 +1,305 @@
|
|||
## Test comment
|
||||
|
||||
## Sample initialization file for GNU nano.
|
||||
##
|
||||
## For the options that take parameters, the default value is shown.
|
||||
## Other options are unset by default. To make sure that an option
|
||||
## is disabled, you can use "unset <option>".
|
||||
##
|
||||
## Characters that are special in a shell should not be escaped here.
|
||||
## Inside string parameters, quotes should not be escaped -- the last
|
||||
## double quote on the line will be seen as the closing quote.
|
||||
|
||||
## Make 'nextword' (Ctrl+Right) and 'chopwordright' (Ctrl+Delete)
|
||||
## stop at word ends instead of at beginnings.
|
||||
# set afterends
|
||||
|
||||
## When soft line wrapping is enabled, make it wrap lines at blanks
|
||||
## (tabs and spaces) instead of always at the edge of the screen.
|
||||
# set atblanks
|
||||
|
||||
## Automatically indent a newly created line to the same number of
|
||||
## tabs and/or spaces as the preceding line -- or as the next line
|
||||
## if the preceding line is the beginning of a paragraph.
|
||||
# set autoindent
|
||||
|
||||
## Back up files to the current filename plus a tilde.
|
||||
# set backup
|
||||
|
||||
## The directory to put unique backup files in.
|
||||
# set backupdir ""
|
||||
|
||||
## Use bold text instead of reverse video text.
|
||||
# set boldtext
|
||||
|
||||
## Treat any line with leading whitespace as the beginning of a paragraph.
|
||||
# set bookstyle
|
||||
|
||||
## The characters treated as closing brackets when justifying paragraphs.
|
||||
## This may not include any blank characters. Only closing punctuation,
|
||||
## optionally followed by these closing brackets, can end sentences.
|
||||
# set brackets ""')>]}"
|
||||
|
||||
## Automatically hard-wrap the current line when it becomes overlong.
|
||||
# set breaklonglines
|
||||
|
||||
## Do case-sensitive searches by default.
|
||||
# set casesensitive
|
||||
|
||||
## Constantly display the cursor position in the status bar. Note that
|
||||
## this overrides "quickblank".
|
||||
# set constantshow
|
||||
|
||||
## Use cut-from-cursor-to-end-of-line by default.
|
||||
# set cutfromcursor
|
||||
|
||||
## Do not use the line below the title bar, leaving it entirely blank.
|
||||
# set emptyline
|
||||
|
||||
## Set the target width for automatic hard-wrapping and for justifying
|
||||
## paragraphs. If the specified value is 0 or less, the wrapping point
|
||||
## will be the terminal's width minus this number.
|
||||
# set fill -8
|
||||
|
||||
## Remember the used search/replace strings for the next session.
|
||||
# set historylog
|
||||
|
||||
## Display a "scrollbar" on the righthand side of the edit window.
|
||||
# set indicator
|
||||
|
||||
## Scroll the buffer contents per half-screen instead of per line.
|
||||
# set jumpyscrolling
|
||||
|
||||
## Display line numbers to the left (and any anchors in the margin).
|
||||
set linenumbers
|
||||
|
||||
## Enable vim-style lock-files. This is just to let a vim user know you
|
||||
## are editing a file [s]he is trying to edit and vice versa. There are
|
||||
## no plans to implement vim-style undo state in these files.
|
||||
# set locking
|
||||
|
||||
## Fall back to slow libmagic to try and determine an applicable syntax.
|
||||
# set magic
|
||||
|
||||
# After a search, set the mark at the end of the found match (if any).
|
||||
# set markmatch
|
||||
|
||||
## The opening and closing brackets that can be found by bracket
|
||||
## searches. They cannot contain blank characters. The former set must
|
||||
## come before the latter set, and both must be in the same order.
|
||||
# set matchbrackets "(<[{)>]}"
|
||||
|
||||
## Suppress title bar and show file name and editor state at the bottom.
|
||||
# set minibar
|
||||
|
||||
## Enable mouse support, if available for your system. When enabled,
|
||||
## mouse clicks can be used to place the cursor, set the mark (with a
|
||||
## double click), and execute shortcuts. The mouse will work in the X
|
||||
## Window System, and on the console when gpm is running.
|
||||
# set mouse
|
||||
|
||||
## Switch on multiple file buffers (inserting a file will put it into
|
||||
## a separate buffer).
|
||||
# set multibuffer
|
||||
|
||||
## Don't convert files from DOS/Mac format.
|
||||
# set noconvert
|
||||
|
||||
## Don't display the helpful shortcut lists at the bottom of the screen.
|
||||
# set nohelp
|
||||
|
||||
## Don't automatically add a newline when a file does not end with one.
|
||||
# set nonewlines
|
||||
|
||||
## Set operating directory. nano will not read or write files outside
|
||||
## this directory and its subdirectories. Also, the current directory
|
||||
## is changed to here, so any files are inserted from this dir. A blank
|
||||
## string means the operating-directory feature is turned off.
|
||||
# set operatingdir ""
|
||||
|
||||
## Remember the cursor position in each file for the next editing session.
|
||||
# set positionlog
|
||||
|
||||
## Preserve the XON and XOFF keys (^Q and ^S).
|
||||
# set preserve
|
||||
|
||||
## The characters treated as closing punctuation when justifying
|
||||
## paragraphs. They cannot contain blank characters. Only closing
|
||||
## punctuation, optionally followed by closing brackets, can end
|
||||
## sentences.
|
||||
# set punct "!.?"
|
||||
|
||||
## Do quick status-bar blanking. Status-bar messages will disappear after
|
||||
## 1 keystroke instead of 26. Note that "constantshow" overrides this.
|
||||
# set quickblank
|
||||
|
||||
## The regular expression that matches quoting characters in email
|
||||
## or line-comment introducers in source code. The default is:
|
||||
# set quotestr "^([ ]*([!#%:;>|}]|//))+"
|
||||
|
||||
## Try to work around a mismatching terminfo terminal description.
|
||||
# set rawsequences
|
||||
|
||||
## Fix Backspace/Delete confusion problem.
|
||||
# set rebinddelete
|
||||
|
||||
## Do regular-expression searches by default.
|
||||
## Regular expressions are of the extended type (ERE).
|
||||
# set regexp
|
||||
|
||||
## Save a changed buffer automatically on exit; don't prompt.
|
||||
# set saveonexit
|
||||
## (The old form of this option, 'set tempfile', is deprecated.)
|
||||
|
||||
## Put the cursor on the highlighted item in the file browser, and show
|
||||
## the cursor in the help viewer; useful for people who use a braille
|
||||
## display and people with poor vision.
|
||||
# set showcursor
|
||||
|
||||
## Make the Home key smarter. When Home is pressed anywhere but at the
|
||||
## very beginning of non-whitespace characters on a line, the cursor
|
||||
## will jump to that beginning (either forwards or backwards). If the
|
||||
## cursor is already at that position, it will jump to the true
|
||||
## beginning of the line.
|
||||
# set smarthome
|
||||
|
||||
## Spread overlong lines over multiple screen lines.
|
||||
# set softwrap
|
||||
|
||||
## Use this spelling checker instead of the internal one. This option
|
||||
## does not have a default value.
|
||||
# set speller "aspell -x -c"
|
||||
|
||||
## Use the end of the title bar for some state flags: I = auto-indenting,
|
||||
## M = mark, L = hard-wrapping long lines, R = recording, S = soft-wrapping.
|
||||
# set stateflags
|
||||
|
||||
## Allow nano to be suspended (with ^Z by default).
|
||||
# set suspendable
|
||||
## (The old form of this option, 'set suspend', is deprecated.)
|
||||
|
||||
## Use this tab size instead of the default; it must be greater than 0.
|
||||
# set tabsize 8
|
||||
|
||||
## Convert typed tabs to spaces.
|
||||
# set tabstospaces
|
||||
|
||||
## Snip whitespace at the end of lines when justifying or hard-wrapping.
|
||||
# set trimblanks
|
||||
|
||||
## The two single-column characters used to display the first characters
|
||||
## of tabs and spaces. 187 in ISO 8859-1 (0000BB in Unicode) and 183 in
|
||||
## ISO-8859-1 (0000B7 in Unicode) seem to be good values for these.
|
||||
## The default when in a UTF-8 locale:
|
||||
# set whitespace "»·"
|
||||
## The default otherwise:
|
||||
# set whitespace ">."
|
||||
|
||||
## Detect word boundaries differently by treating punctuation
|
||||
## characters as parts of words.
|
||||
# set wordbounds
|
||||
|
||||
## The characters (besides alphanumeric ones) that should be considered
|
||||
## as parts of words. This option does not have a default value. When
|
||||
## set, it overrides option 'set wordbounds'.
|
||||
# set wordchars "<_>."
|
||||
|
||||
## Let an unmodified Backspace or Delete erase the marked region (instead
|
||||
## of a single character, and without affecting the cutbuffer).
|
||||
# set zap
|
||||
|
||||
## Paint the interface elements of nano. These are examples;
|
||||
## by default there are no colors, except for errorcolor.
|
||||
# set titlecolor bold,lightwhite,blue
|
||||
# set promptcolor lightwhite,lightblack
|
||||
# set statuscolor bold,lightwhite,green
|
||||
# set errorcolor bold,lightwhite,red
|
||||
# set selectedcolor lightwhite,magenta
|
||||
# set stripecolor ,yellow
|
||||
# set scrollercolor cyan
|
||||
# set numbercolor cyan
|
||||
# set keycolor cyan
|
||||
# set functioncolor green
|
||||
|
||||
## In root's .nanorc you might want to use:
|
||||
# set titlecolor bold,lightwhite,magenta
|
||||
# set promptcolor black,yellow
|
||||
# set statuscolor bold,lightwhite,magenta
|
||||
# set errorcolor bold,lightwhite,red
|
||||
# set selectedcolor lightwhite,cyan
|
||||
# set stripecolor ,yellow
|
||||
# set scrollercolor magenta
|
||||
# set numbercolor magenta
|
||||
# set keycolor lightmagenta
|
||||
# set functioncolor magenta
|
||||
|
||||
|
||||
## === Syntax coloring ===
|
||||
## For all details, see 'man nanorc', section SYNTAX HIGHLIGHTING.
|
||||
|
||||
## To include most of the existing syntax definitions, you can do:
|
||||
include "/usr/share/nano/*.nanorc"
|
||||
|
||||
## Or you can select just the ones you need. For example:
|
||||
# include "/usr/share/nano/html.nanorc"
|
||||
# include "/usr/share/nano/python.nanorc"
|
||||
# include "/usr/share/nano/sh.nanorc"
|
||||
|
||||
## In /usr/share/nano/extra/ you can find some syntaxes that are
|
||||
## specific for certain distros or for some less common languages.
|
||||
|
||||
|
||||
## If <Tab> should always produce four spaces when editing a Python file,
|
||||
## independent of the settings of 'tabsize' and 'tabstospaces':
|
||||
# extendsyntax python tabgives " "
|
||||
|
||||
## If <Tab> should always produce an actual TAB when editing a Makefile:
|
||||
# extendsyntax makefile tabgives " "
|
||||
|
||||
|
||||
## === Key bindings ===
|
||||
## For all details, see 'man nanorc', section REBINDING KEYS.
|
||||
|
||||
## The <Ctrl+Delete> keystroke deletes the word to the right of the cursor.
|
||||
## On some terminals the <Ctrl+Backspace> keystroke produces ^H, which is
|
||||
## the ASCII character for backspace, so it is bound by default to the
|
||||
## backspace function. The <Backspace> key itself produces a different
|
||||
## keycode, which is hard-bound to the backspace function. So, if you
|
||||
## normally use <Backspace> for backspacing and not ^H, you can make
|
||||
## <Ctrl+Backspace> delete the word to the left of the cursor with:
|
||||
# bind ^H chopwordleft main
|
||||
|
||||
## If you would like nano to have keybindings that are more "usual",
|
||||
## such as ^O for Open, ^F for Find, ^H for Help, and ^Q for Quit,
|
||||
## then uncomment these:
|
||||
#bind ^Q exit all
|
||||
#bind ^S savefile main
|
||||
#bind ^W writeout main
|
||||
#bind ^O insert main
|
||||
#bind ^H help all
|
||||
#bind ^H exit help
|
||||
#bind ^F whereis all
|
||||
#bind ^G findnext all
|
||||
#bind ^B wherewas all
|
||||
#bind ^D findprevious all
|
||||
#bind ^R replace main
|
||||
#bind M-X flipnewbuffer all
|
||||
#bind ^X cut all
|
||||
#bind ^C copy main
|
||||
#bind ^V paste all
|
||||
#bind ^P location main
|
||||
#bind ^A mark main
|
||||
#unbind ^K main
|
||||
#unbind ^U all
|
||||
#unbind ^N main
|
||||
#unbind ^Y all
|
||||
#unbind M-J main
|
||||
#unbind M-T main
|
||||
#bind ^T gotoline main
|
||||
#bind ^T gotodir browser
|
||||
#bind ^Y speller main
|
||||
#bind M-U undo main
|
||||
#bind M-R redo main
|
||||
#bind ^U undo main
|
||||
#bind ^E redo main
|
||||
#set multibuffer
|
355
dotfiles/pipewire.conf
Normal file
355
dotfiles/pipewire.conf
Normal file
|
@ -0,0 +1,355 @@
|
|||
# Daemon config file for PipeWire version "0.3.42" #
|
||||
#
|
||||
# Copy and edit this file in /etc/pipewire for system-wide changes
|
||||
# or in ~/.config/pipewire for local changes.
|
||||
|
||||
context.properties = {
|
||||
## Configure properties in the system.
|
||||
#library.name.system = support/libspa-support
|
||||
#context.data-loop.library.name.system = support/libspa-support
|
||||
#support.dbus = true
|
||||
#link.max-buffers = 64
|
||||
link.max-buffers = 16 # version < 3 clients can't handle more
|
||||
#mem.warn-mlock = false
|
||||
#mem.allow-mlock = true
|
||||
#mem.mlock-all = false
|
||||
#clock.power-of-two-quantum = true
|
||||
#log.level = 2
|
||||
#cpu.zero.denormals = true
|
||||
|
||||
core.daemon = true # listening for socket connections
|
||||
core.name = pipewire-0 # core name and socket name
|
||||
|
||||
## Properties for the DSP configuration.
|
||||
#default.clock.rate = 48000
|
||||
#default.clock.allowed-rates = [ 48000 ]
|
||||
#default.clock.quantum = 1024
|
||||
#default.clock.min-quantum = 32
|
||||
#defau lt.clock.max-quantum = 8192
|
||||
#default.video.width = 640
|
||||
#default.video.height = 480
|
||||
#default.video.rate.num = 25
|
||||
#default.video.rate.denom = 1
|
||||
#
|
||||
# These overrides are only applied when running in a vm.
|
||||
vm.overrides = {
|
||||
default.clock.min-quantum = 1024
|
||||
}
|
||||
}
|
||||
|
||||
context.spa-libs = {
|
||||
#<factory-name regex> = <library-name>
|
||||
#
|
||||
# Used to find spa factory names. It maps an spa factory name
|
||||
# regular expression to a library name that should contain
|
||||
# that factory.
|
||||
#
|
||||
audio.convert.* = audioconvert/libspa-audioconvert
|
||||
api.alsa.* = alsa/libspa-alsa
|
||||
api.v4l2.* = v4l2/libspa-v4l2
|
||||
api.libcamera.* = libcamera/libspa-libcamera
|
||||
api.bluez5.* = bluez5/libspa-bluez5
|
||||
api.vulkan.* = vulkan/libspa-vulkan
|
||||
api.jack.* = jack/libspa-jack
|
||||
support.* = support/libspa-support
|
||||
#videotestsrc = videotestsrc/libspa-videotestsrc
|
||||
#audiotestsrc = audiotestsrc/libspa-audiotestsrc
|
||||
}
|
||||
|
||||
context.modules = [
|
||||
#{ name = <module-name>
|
||||
# [ args = { <key> = <value> ... } ]
|
||||
# [ flags = [ [ ifexists ] [ nofail ] ]
|
||||
#}
|
||||
#
|
||||
# Loads a module with the given parameters.
|
||||
# If ifexists is given, the module is ignored when it is not found.
|
||||
# If nofail is given, module initialization failures are ignored.
|
||||
#
|
||||
|
||||
# Uses RTKit to boost the data thread priority.
|
||||
{ name = libpipewire-module-rtkit
|
||||
args = {
|
||||
#nice.level = -11
|
||||
#rt.prio = 88
|
||||
#rt.time.soft = 2000000
|
||||
#rt.time.hard = 2000000
|
||||
}
|
||||
flags = [ ifexists nofail ]
|
||||
}
|
||||
|
||||
# Set thread priorities without using RTKit.
|
||||
#{ name = libpipewire-module-rt
|
||||
# args = {
|
||||
# nice.level = -11
|
||||
# rt.prio = 88
|
||||
# rt.time.soft = 2000000
|
||||
# rt.time.hard = 2000000
|
||||
# }
|
||||
# flags = [ ifexists nofail ]
|
||||
#}
|
||||
|
||||
# The native communication protocol.
|
||||
{ name = libpipewire-module-protocol-native }
|
||||
|
||||
# The profile module. Allows application to access profiler
|
||||
# and performance data. It provides an interface that is used
|
||||
# by pw-top and pw-profiler.
|
||||
{ name = libpipewire-module-profiler }
|
||||
|
||||
# Allows applications to create metadata objects. It creates
|
||||
# a factory for Metadata objects.
|
||||
{ name = libpipewire-module-metadata }
|
||||
|
||||
# Creates a factory for making devices that run in the
|
||||
# context of the PipeWire server.
|
||||
{ name = libpipewire-module-spa-device-factory }
|
||||
|
||||
# Creates a factory for making nodes that run in the
|
||||
# context of the PipeWire server.
|
||||
{ name = libpipewire-module-spa-node-factory }
|
||||
|
||||
# Allows creating nodes that run in the context of the
|
||||
# client. Is used by all clients that want to provide
|
||||
# data to PipeWire.
|
||||
{ name = libpipewire-module-client-node }
|
||||
|
||||
# Allows creating devices that run in the context of the
|
||||
# client. Is used by the session manager.
|
||||
{ name = libpipewire-module-client-device }
|
||||
|
||||
# The portal module monitors the PID of the portal process
|
||||
# and tags connections with the same PID as portal
|
||||
# connections.
|
||||
{ name = libpipewire-module-portal
|
||||
flags = [ ifexists nofail ]
|
||||
}
|
||||
|
||||
# The access module can perform access checks and block
|
||||
# new clients.
|
||||
{ name = libpipewire-module-access
|
||||
args = {
|
||||
# access.allowed to list an array of paths of allowed
|
||||
# apps.
|
||||
#access.allowed = [
|
||||
# /usr/bin/pipewire-media-session
|
||||
#]
|
||||
|
||||
# An array of rejected paths.
|
||||
#access.rejected = [ ]
|
||||
|
||||
# An array of paths with restricted access.
|
||||
#access.restricted = [ ]
|
||||
|
||||
# Anything not in the above lists gets assigned the
|
||||
# access.force permission.
|
||||
#access.force = flatpak
|
||||
}
|
||||
}
|
||||
|
||||
# Makes a factory for wrapping nodes in an adapter with a
|
||||
# converter and resampler.
|
||||
{ name = libpipewire-module-adapter }
|
||||
|
||||
# Makes a factory for creating links between ports.
|
||||
{ name = libpipewire-module-link-factory }
|
||||
|
||||
# Provides factories to make session manager objects.
|
||||
{ name = libpipewire-module-session-manager }
|
||||
|
||||
{
|
||||
name = libpipewire-module-loopback
|
||||
args = {
|
||||
node.name = "OBS"
|
||||
node.description = "OBS"
|
||||
capture.props = {
|
||||
media.class = "Audio/Sink"
|
||||
audio.position = [ FL FR ]
|
||||
}
|
||||
playback.props = {
|
||||
audio.position = [ FL FR ]
|
||||
node.target = "alsa_output.usb-MOTU_M4_M4AE167AEJ-00.analog-surround-40"
|
||||
stream.dont-remix = true
|
||||
node.passive = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
name = libpipewire-module-loopback
|
||||
args = {
|
||||
node.name = "M4 Stereo (1&2) -- Monitor & Headphones"
|
||||
node.description = "M4 Stereo (1&2) -- Monitor & Headphones"
|
||||
capture.props = {
|
||||
media.class = "Audio/Sink"
|
||||
audio.position = [ FL FR ]
|
||||
}
|
||||
playback.props = {
|
||||
audio.position = [ FL FR ]
|
||||
node.target = "alsa_output.usb-MOTU_M4_M4AE167AEJ-00.analog-surround-40"
|
||||
stream.dont-remix = true
|
||||
node.passive = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
name = libpipewire-module-loopback
|
||||
args = {
|
||||
node.name = "M4 Stereo (3&4) -- Line Out"
|
||||
node.description = "M4 Stereo (3&4) -- Line Out"
|
||||
capture.props = {
|
||||
media.class = "Audio/Sink"
|
||||
audio.position = [ FL FR ]
|
||||
}
|
||||
playback.props = {
|
||||
audio.position = [ RR RL ]
|
||||
node.target = "alsa_output.usb-MOTU_M4_M4AE167AEJ-00.analog-surround-40"
|
||||
stream.dont-remix = true
|
||||
node.passive = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
name = libpipewire-module-loopback
|
||||
args = {
|
||||
node.name = "M4 Input 1"
|
||||
node.description = "M4 Input 1"
|
||||
capture.props = {
|
||||
audio.position = [ FL ]
|
||||
stream.dont-remix = true
|
||||
node.target = "alsa_input.usb-MOTU_M4_M4AE167AEJ-00.analog-surround-40"
|
||||
node.passive = true
|
||||
}
|
||||
playback.props = {
|
||||
media.class = "Audio/Source"
|
||||
audio.position = [ MONO ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
name = libpipewire-module-loopback
|
||||
args = {
|
||||
node.name = "M4 Input 2"
|
||||
node.description = "M4 Input 2"
|
||||
capture.props = {
|
||||
audio.position = [ FR ]
|
||||
stream.dont-remix = true
|
||||
node.target = "alsa_input.usb-MOTU_M4_M4AE167AEJ-00.analog-surround-40"
|
||||
node.passive = true
|
||||
}
|
||||
playback.props = {
|
||||
media.class = "Audio/Source"
|
||||
audio.position = [ MONO ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
name = libpipewire-module-loopback
|
||||
args = {
|
||||
node.name = "M4 Input (3&4) -- Line In"
|
||||
node.description = "M4 Input (3&4) -- Line In"
|
||||
capture.props = {
|
||||
audio.position = [ RL RR ]
|
||||
stream.dont-remix = true
|
||||
node.target = "alsa_input.usb-MOTU_M4_M4AE167AEJ-00.analog-surround-40"
|
||||
node.passive = true
|
||||
}
|
||||
playback.props = {
|
||||
media.class = "Audio/Source"
|
||||
audio.position = [ FL FR ]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
context.objects = [
|
||||
#{ factory = <factory-name>
|
||||
# [ args = { <key> = <value> ... } ]
|
||||
# [ flags = [ [ nofail ] ]
|
||||
#}
|
||||
#
|
||||
# Creates an object from a PipeWire factory with the given parameters.
|
||||
# If nofail is given, errors are ignored (and no object is created).
|
||||
#
|
||||
#{ factory = spa-node-factory args = { factory.name = videotestsrc node.name = videotestsrc Spa:Pod:Object:Param:Props:patternType = 1 } }
|
||||
#{ factory = spa-device-factory args = { factory.name = api.jack.device foo=bar } flags = [ nofail ] }
|
||||
#{ factory = spa-device-factory args = { factory.name = api.alsa.enum.udev } }
|
||||
#{ factory = spa-node-factory args = { factory.name = api.alsa.seq.bridge node.name = Internal-MIDI-Bridge } }
|
||||
#{ factory = adapter args = { factory.name = audiotestsrc node.name = my-test } }
|
||||
#{ factory = spa-node-factory args = { factory.name = api.vulkan.compute.source node.name = my-compute-source } }
|
||||
|
||||
# A default dummy driver. This handles nodes marked with the "node.always-driver"
|
||||
# property when no other driver is currently active. JACK clients need this.
|
||||
{ factory = spa-node-factory
|
||||
args = {
|
||||
factory.name = support.node.driver
|
||||
node.name = Dummy-Driver
|
||||
node.group = pipewire.dummy
|
||||
priority.driver = 20000
|
||||
}
|
||||
}
|
||||
{ factory = spa-node-factory
|
||||
args = {
|
||||
factory.name = support.node.driver
|
||||
node.name = Freewheel-Driver
|
||||
priority.driver = 19000
|
||||
node.group = pipewire.freewheel
|
||||
node.freewheel = true
|
||||
}
|
||||
}
|
||||
# This creates a new Source node. It will have input ports
|
||||
# that you can link, to provide audio for this source.
|
||||
#{ factory = adapter
|
||||
# args = {
|
||||
# factory.name = support.null-audio-sink
|
||||
# node.name = "my-mic"
|
||||
# node.description = "Microphone"
|
||||
# media.class = "Audio/Source/Virtual"
|
||||
# audio.position = "FL,FR"
|
||||
# }
|
||||
#}
|
||||
|
||||
# This creates a single PCM source device for the given
|
||||
# alsa device path hw:0. You can change source to sink
|
||||
# to make a sink in the same way.
|
||||
#{ factory = adapter
|
||||
# args = {
|
||||
# factory.name = api.alsa.pcm.source
|
||||
# node.name = "alsa-source"
|
||||
# node.description = "PCM Source"
|
||||
# media.class = "Audio/Source"
|
||||
# api.alsa.path = "hw:0"
|
||||
# api.alsa.period-size = 1024
|
||||
# api.alsa.headroom = 0
|
||||
# api.alsa.disable-mmap = false
|
||||
# api.alsa.disable-batch = false
|
||||
# audio.format = "S16LE"
|
||||
# audio.rate = 48000
|
||||
# audio.channels = 2
|
||||
# audio.position = "FL,FR"
|
||||
# }
|
||||
#}
|
||||
]
|
||||
|
||||
context.exec = [
|
||||
#{ path = <program-name> [ args = "<arguments>" ] }
|
||||
#
|
||||
# Execute the given program with arguments.
|
||||
#
|
||||
# You can optionally start the session manager here,
|
||||
# but it is better to start it as a systemd service.
|
||||
# Run the session manager with -h for options.
|
||||
#
|
||||
#{ path = "/usr/bin/pipewire-media-session" args = "" }
|
||||
#
|
||||
# You can optionally start the pulseaudio-server here as well
|
||||
# but it is better to start it as a systemd service.
|
||||
# It can be interesting to start another daemon here that listens
|
||||
# on another address with the -a option (eg. -a tcp:4713).
|
||||
#
|
||||
#{ path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf" }
|
||||
]
|
94
dotfiles/ssh-config
Normal file
94
dotfiles/ssh-config
Normal file
|
@ -0,0 +1,94 @@
|
|||
Host db2
|
||||
HostName tg.dm.informatik.tu-darmstadt.de
|
||||
Port 9022
|
||||
User tbillerbeck
|
||||
|
||||
Host *
|
||||
ForwardAgent no
|
||||
ForwardX11 no
|
||||
ForwardX11Trusted yes
|
||||
User thilo
|
||||
Port 22
|
||||
ServerAliveInterval 60
|
||||
ServerAliveCountMax 30
|
||||
|
||||
Host 158.101.179.53
|
||||
IdentityFile ~/.ssh/id_thilo-billerbeck-com
|
||||
|
||||
Host burns matrix
|
||||
HostName burns.thilo-billerbeck.com
|
||||
|
||||
Host lisa bart burns homer marge
|
||||
|
||||
Host github.com
|
||||
HostName github.com
|
||||
User git
|
||||
IdentityFile ~/.ssh/id_github-com
|
||||
IdentitiesOnly yes
|
||||
|
||||
Host *.thilo-billerbeck.com
|
||||
User root
|
||||
IdentityFile ~/.ssh/id_thilo-billerbeck-com
|
||||
|
||||
Host krusty.thilo-billerbeck.com
|
||||
User opc
|
||||
AddressFamily inet
|
||||
|
||||
Host skinner.thilo-billerbeck.com
|
||||
User opc
|
||||
|
||||
Host 130.61.97.198
|
||||
User opc
|
||||
IdentityFile ~/.ssh/id_thilo-billerbeck-com
|
||||
|
||||
Host avocadoom.de
|
||||
User thilo
|
||||
IdentityFile ~/.ssh/id_thilo-billerbeck-com
|
||||
|
||||
Host *.avocadoom.de
|
||||
User thilo
|
||||
IdentityFile ~/.ssh/id_thilo-billerbeck-com
|
||||
|
||||
Host *.officerent.de
|
||||
User thilo
|
||||
IdentityFile ~/.ssh/id_thilo-billerbeck-com
|
||||
|
||||
Host mail
|
||||
HostName mail.officerent.de
|
||||
|
||||
Host *.tu-darmstadt.de
|
||||
IdentityFile ~/.ssh/id_tu-darmstadt-de
|
||||
|
||||
Host *.rwth-aachen.de
|
||||
IdentityFile ~/.ssh/id_tu-darmstadt-de
|
||||
|
||||
Host *.tobias-neidig.de
|
||||
IdentityFile ~/.ssh/id_tobias-neidig-de
|
||||
|
||||
Host *.darmstadt.ccc.de
|
||||
IdentityFile ~/.ssh/id_darmstadt-ccc-de
|
||||
|
||||
Host ssh.dev.azure.com
|
||||
IdentityFile ~/.ssh/id_azure-com
|
||||
IdentitiesOnly yes
|
||||
HostkeyAlgorithms +ssh-rsa
|
||||
PubkeyAcceptedKeyTypes +ssh-rsa
|
||||
|
||||
Host 192.168.50.54
|
||||
User thilo
|
||||
IdentityFile ~/.ssh/id_avocadoom-laptop
|
||||
|
||||
Host *.tailscale.net
|
||||
User thilo
|
||||
IdentityFile ~/.ssh/id_tailscale
|
||||
|
||||
Host digitaltwinservice.de
|
||||
User tb12zysu
|
||||
IdentityFile ~/.ssh/id_digitaltwinservice-de
|
||||
|
||||
Host thilo-pc
|
||||
HostName thilo-pc.thilobillerbeck.github.beta.tailscale.net
|
||||
|
||||
Host *.relaix.net
|
||||
User tbillerbeck
|
||||
IdentityFile ~/.ssh/id_relaix-net
|
22
dotfiles/starship.toml
Normal file
22
dotfiles/starship.toml
Normal file
|
@ -0,0 +1,22 @@
|
|||
# Don't print a new line at the start of the prompt
|
||||
add_newline = false
|
||||
|
||||
# Which is equivalent to
|
||||
format = """
|
||||
$all\
|
||||
$line_break\
|
||||
$jobs\
|
||||
$battery\
|
||||
$time\
|
||||
$status\
|
||||
$shell\
|
||||
$character"""
|
||||
|
||||
# Replace the "❯" symbol in the prompt with "➜"
|
||||
[character] # The name of the module we are configuring is "character"
|
||||
success_symbol = "[❯](bold white)" # The "success_symbol" segment is being set to "➜" with the color "bold green"
|
||||
|
||||
# Disable the package module, hiding it from the prompt completely
|
||||
[package]
|
||||
disabled = true
|
||||
|
131
dotfiles/topgrade.toml
Normal file
131
dotfiles/topgrade.toml
Normal file
|
@ -0,0 +1,131 @@
|
|||
# Don't ask for confirmations
|
||||
assume_yes = true
|
||||
|
||||
# Disable specific steps - same options as the command line flag
|
||||
#disable = ["system", "emacs"]
|
||||
|
||||
# Ignore failures for these steps
|
||||
ignore_failures = ["git_repos"]
|
||||
|
||||
# Run specific steps - same options as the command line flag
|
||||
#only = ["system", "emacs"]
|
||||
|
||||
# Do not ask to retry failed steps (default: false)
|
||||
no_retry = true
|
||||
|
||||
# Run `sudo -v` to cache credentials at the start of the run; this avoids a
|
||||
# blocking password prompt in the middle of a possibly-unattended run.
|
||||
pre_sudo = false
|
||||
|
||||
# Run inside tmux
|
||||
#run_in_tmux = true
|
||||
|
||||
# List of remote machines with Topgrade installed on them
|
||||
#remote_topgrades = ["toothless", "pi", "parnas"]
|
||||
|
||||
# Arguments to pass SSH when upgrading remote systems
|
||||
#ssh_arguments = "-o ConnectTimeout=2"
|
||||
|
||||
# Path to Topgrade executable on remote machines
|
||||
#remote_topgrade_path = ".cargo/bin/topgrade"
|
||||
|
||||
# Arguments to pass tmux when pulling Repositories
|
||||
#tmux_arguments = "-S /var/tmux.sock"
|
||||
|
||||
# Do not set the terminal title
|
||||
#set_title = false
|
||||
|
||||
# Display the time in step titles
|
||||
# display_time = true
|
||||
|
||||
# Cleanup temporary or old files
|
||||
cleanup = true
|
||||
|
||||
# Skip sending a notification at the end of a run
|
||||
skip_notify = true
|
||||
|
||||
# Skip the preamble displayed when topgrade is run
|
||||
#display_preamble = false
|
||||
|
||||
[git]
|
||||
#max_concurrency = 5
|
||||
# Additional git repositories to pull
|
||||
#repos = [
|
||||
# "~/src/*/",
|
||||
# "~/.config/something"
|
||||
#]
|
||||
|
||||
# Don't pull the predefined git repos
|
||||
#pull_predefined = false
|
||||
|
||||
# Arguments to pass Git when pulling Repositories
|
||||
#arguments = "--rebase --autostash"
|
||||
|
||||
[composer]
|
||||
#self_update = true
|
||||
|
||||
# Commands to run before anything
|
||||
[pre_commands]
|
||||
#"Emacs Snapshot" = "rm -rf ~/.emacs.d/elpa.bak && cp -rl ~/.emacs.d/elpa ~/.emacs.d/elpa.bak"
|
||||
|
||||
# Custom commands
|
||||
[commands]
|
||||
#"Python Environment" = "~/dev/.env/bin/pip install -i https://pypi.python.org/simple -U --upgrade-strategy eager jupyter"
|
||||
"zinit" = "zinit update"
|
||||
|
||||
[brew]
|
||||
#greedy_cask = true
|
||||
#autoremove = true
|
||||
|
||||
[linux]
|
||||
# Arch Package Manager to use. Allowed values: autodetect, aura, garuda_update, pacman, pamac, paru, pikaur, trizen, yay.
|
||||
#arch_package_manager = "pacman"
|
||||
# Arguments to pass yay (or paru) when updating packages
|
||||
#yay_arguments = "--nodevel"
|
||||
# Arguments to pass dnf when updating packages
|
||||
#dnf_arguments = "--refresh"
|
||||
#aura_aur_arguments = "-kx"
|
||||
#aura_pacman_arguments = ""
|
||||
#garuda_update_arguments = ""
|
||||
#show_arch_news = true
|
||||
#trizen_arguments = "--devel"
|
||||
#pikaur_arguments = ""
|
||||
#pamac_arguments = "--no-devel"
|
||||
#enable_tlmgr = true
|
||||
#emerge_sync_flags = "-q"
|
||||
#emerge_update_flags = "-uDNa --with-bdeps=y world"
|
||||
#redhat_distro_sync = false
|
||||
#rpm_ostree = false
|
||||
#nix_arguments = "--flake"
|
||||
|
||||
[python]
|
||||
#enable_pip_review = true ###disabled by default
|
||||
#enable_pipupgrade = true ###disabled by default
|
||||
|
||||
[windows]
|
||||
# Manually select Windows updates
|
||||
#accept_all_updates = false
|
||||
#open_remotes_in_new_terminal = true
|
||||
#wsl_update_pre_release = true
|
||||
#wsl_update_use_web_download = true
|
||||
|
||||
# Causes Topgrade to rename itself during the run to allow package managers
|
||||
# to upgrade it. Use this only if you installed Topgrade by using a package
|
||||
# manager such as Scoop or Cargo
|
||||
#self_rename = true
|
||||
|
||||
[npm]
|
||||
# Use sudo if the NPM directory isn't owned by the current user
|
||||
#use_sudo = true
|
||||
|
||||
[firmware]
|
||||
# Offer to update firmware; if false just check for and display available updates
|
||||
upgrade = true
|
||||
|
||||
[flatpak]
|
||||
# Use sudo for updating the system-wide installation
|
||||
#use_sudo = true
|
||||
|
||||
[distrobox]
|
||||
#use_root = false
|
||||
#containers = ["archlinux-latest"]
|
3
dotfiles/zshenv
Normal file
3
dotfiles/zshenv
Normal file
|
@ -0,0 +1,3 @@
|
|||
source "$HOME/.cargo/env"
|
||||
if [ -e /home/thilo/.nix-profile/etc/profile.d/nix.sh ]; then . /home/thilo/.nix-profile/etc/profile.d/nix.sh; fi # added by Nix installer
|
||||
. "$HOME/.cargo/env"
|
82
dotfiles/zshrc
Normal file
82
dotfiles/zshrc
Normal file
|
@ -0,0 +1,82 @@
|
|||
export PATH=$HOME/bin:$HOME/.local/bin:$HOME/.flutter/bin:$PATH
|
||||
export TERM="xterm-256color"
|
||||
export LANG=en_US.UTF-8
|
||||
|
||||
if [[ -n $SSH_CONNECTION ]]; then
|
||||
export EDITOR='vim'
|
||||
else
|
||||
export EDITOR='nvim'
|
||||
fi
|
||||
|
||||
source $HOME/.aliases
|
||||
|
||||
### Added by Zinit's installer
|
||||
if [[ ! -f $HOME/.local/share/zinit/zinit.git/zinit.zsh ]]; then
|
||||
print -P "%F{33} %F{220}Installing %F{33}ZDHARMA-CONTINUUM%F{220} Initiative Plugin Manager (%F{33}zdharma-continuum/zinit%F{220})…%f"
|
||||
command mkdir -p "$HOME/.local/share/zinit" && command chmod g-rwX "$HOME/.local/share/zinit"
|
||||
command git clone https://github.com/zdharma-continuum/zinit "$HOME/.local/share/zinit/zinit.git" && \
|
||||
print -P "%F{33} %F{34}Installation successful.%f%b" || \
|
||||
print -P "%F{160} The clone has failed.%f%b"
|
||||
fi
|
||||
|
||||
source "$HOME/.local/share/zinit/zinit.git/zinit.zsh"
|
||||
autoload -Uz _zinit
|
||||
(( ${+_comps} )) && _comps[zinit]=_zinit
|
||||
|
||||
# Load a few important annexes, without Turbo
|
||||
# (this is currently required for annexes)
|
||||
zinit light-mode for \
|
||||
zdharma-continuum/zinit-annex-as-monitor \
|
||||
zdharma-continuum/zinit-annex-bin-gem-node \
|
||||
zdharma-continuum/zinit-annex-patch-dl \
|
||||
zdharma-continuum/zinit-annex-rust
|
||||
|
||||
### End of Zinit's installer chunk
|
||||
|
||||
zinit snippet OMZP::asdf
|
||||
zinit snippet OMZP::git
|
||||
# zinit snippet OMZP::asdf
|
||||
zinit snippet OMZP::archlinux
|
||||
zinit snippet OMZP::brew
|
||||
zinit snippet OMZP::composer
|
||||
zinit snippet OMZP::colored-man-pages
|
||||
zinit snippet OMZP::extract
|
||||
zinit snippet OMZP::gradle
|
||||
zinit snippet OMZP::node
|
||||
zinit snippet OMZP::npm
|
||||
zinit snippet OMZP::nvm
|
||||
zinit snippet OMZP::rbenv
|
||||
zinit snippet OMZP::sudo
|
||||
zinit snippet OMZP::direnv
|
||||
zinit snippet OMZP::docker
|
||||
zinit snippet OMZP::docker-compose
|
||||
zinit snippet OMZP::golang
|
||||
zinit snippet OMZP::pip
|
||||
zinit snippet OMZP::history
|
||||
zinit snippet OMZP::vagrant
|
||||
|
||||
zinit light zsh-users/zsh-completions
|
||||
zinit light zsh-users/zsh-autosuggestions
|
||||
zinit light zsh-users/zsh-syntax-highlighting
|
||||
zinit light zkuzmic/which-jspm
|
||||
|
||||
zinit ice as"command" from"gh-r" \
|
||||
atclone"./starship init zsh > init.zsh; ./starship completions zsh > _starship" \
|
||||
atpull"%atclone" src"init.zsh"
|
||||
zinit light starship/starship
|
||||
|
||||
# eval "$(starship init zsh)"
|
||||
|
||||
# pnpm
|
||||
export PNPM_HOME="/home/thilo/.local/share/pnpm"
|
||||
export PATH="$PNPM_HOME:$PATH"
|
||||
|
||||
# bun completions
|
||||
[ -s "/home/thilo/.bun/_bun" ] && source "/home/thilo/.bun/_bun"
|
||||
|
||||
# bun
|
||||
export BUN_INSTALL="$HOME/.bun"
|
||||
export PATH="$BUN_INSTALL/bin:$PATH"
|
||||
|
||||
export DENO_INSTALL="/home/thilo/.deno"
|
||||
export PATH="$DENO_INSTALL/bin:$PATH"
|
221
home.nix
Normal file
221
home.nix
Normal file
|
@ -0,0 +1,221 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
chromeArgs = "--force-dark-mode --enable-features=WebUIDarkMode --enable-smooth-scrolling --ozone-platform-hint=auto --ignore-gpu-blocklist --enable-gpu-rasterization --enable-zero-copy";
|
||||
in {
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
targets.genericLinux.enable = true;
|
||||
|
||||
home = {
|
||||
username = "thilo";
|
||||
homeDirectory = "/home/thilo";
|
||||
stateVersion = "22.11";
|
||||
packages = [
|
||||
pkgs.up
|
||||
pkgs.rbenv
|
||||
pkgs.cargo-update
|
||||
pkgs.htop
|
||||
pkgs.rustup
|
||||
(pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" "FiraCode" "FiraMono" ]; })
|
||||
(pkgs.vivaldi.override {
|
||||
proprietaryCodecs = true;
|
||||
enableWidevine = true;
|
||||
commandLineArgs = chromeArgs;
|
||||
})
|
||||
(pkgs.google-chrome.override {
|
||||
commandLineArgs = chromeArgs;
|
||||
})
|
||||
(pkgs.writeShellScriptBin "ssh-fix-permissions" ''
|
||||
chmod 700 ~/.ssh
|
||||
chmod 600 ~/.ssh/*
|
||||
chmod 644 -f ~/.ssh/*.pub ~/.ssh/authorized_keys ~/.ssh/known_hosts
|
||||
'')
|
||||
];
|
||||
file = {
|
||||
".config/htop/htoprc".source = ./dotfiles/htoprc;
|
||||
".config/nano/nanorc".source = ./dotfiles/nanorc;
|
||||
".config/locale.conf".source = ./dotfiles/locale.conf;
|
||||
".ssh/config".source = ./dotfiles/ssh-config;
|
||||
".config/beets/config.yaml".source = ./dotfiles/beets.yaml;
|
||||
};
|
||||
sessionVariables = {
|
||||
|
||||
};
|
||||
activation = {
|
||||
linkDesktopApplications = {
|
||||
after = [ "writeBoundary" "createXdgUserDirectories" ];
|
||||
before = [ ];
|
||||
data = ''
|
||||
rm -rf ${config.xdg.dataHome}/"applications/home-manager"
|
||||
mkdir -p ${config.xdg.dataHome}/"applications/home-manager"
|
||||
cp -Lr ${config.home.homeDirectory}/.nix-profile/share/applications/* ${config.xdg.dataHome}/"applications/home-manager/"
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
;
|
||||
xdg = {
|
||||
enable = true;
|
||||
mime.enable = true;
|
||||
};
|
||||
|
||||
programs = {
|
||||
home-manager.enable = true;
|
||||
vscode = {
|
||||
enable = true;
|
||||
package = pkgs.vscode.override { commandLineArgs = "--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --gtk-version=4"; };
|
||||
};
|
||||
zsh = {
|
||||
enable = true;
|
||||
enableAutosuggestions = true;
|
||||
enableCompletion = true;
|
||||
enableSyntaxHighlighting = true;
|
||||
enableVteIntegration = true;
|
||||
};
|
||||
git = {
|
||||
enable = true;
|
||||
lfs.enable = true;
|
||||
userEmail = "thilo.billerbeck@officerent.de";
|
||||
userName = "Thilo Billerbeck";
|
||||
extraConfig = {
|
||||
color = {
|
||||
diff = "auto";
|
||||
status = "auto";
|
||||
branch = "auto";
|
||||
interactive = "auto";
|
||||
ui = true;
|
||||
pager = true;
|
||||
};
|
||||
log = {
|
||||
date = "short";
|
||||
};
|
||||
rerere = {
|
||||
enabled = "1";
|
||||
};
|
||||
core = {
|
||||
whitespace="fix,-indent-with-non-tab,trailing-space,cr-at-eol";
|
||||
excludesfile = "~/.gitignore-rab";
|
||||
autocrlf = "input";
|
||||
};
|
||||
apply = {
|
||||
whitespace = "nowarn";
|
||||
};
|
||||
branch = {
|
||||
autosetuprebase = "always";
|
||||
};
|
||||
};
|
||||
};
|
||||
direnv = {
|
||||
enable = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
starship = {
|
||||
enable = true;
|
||||
settings = {
|
||||
add_newline = false;
|
||||
character = {
|
||||
success_symbol = "[❯](bold white)";
|
||||
};
|
||||
package = {
|
||||
disabled = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
topgrade = {
|
||||
enable = true;
|
||||
settings = {
|
||||
assume_yes = true;
|
||||
ignore_failures = ["git_repos"];
|
||||
no_retry = true;
|
||||
pre_sudo = false;
|
||||
cleanup = true;
|
||||
skip_notify = true;
|
||||
firmware = {
|
||||
upgrade = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
alacritty = {
|
||||
enable = true;
|
||||
settings = {
|
||||
window = {
|
||||
decorations = "full";
|
||||
dynamic_title = true;
|
||||
gtk_theme_variant = "None";
|
||||
};
|
||||
background_opacity = 1;
|
||||
font = {
|
||||
normal = {
|
||||
family = "FiraMono Nerd Font";
|
||||
style = "Regular";
|
||||
};
|
||||
bold = {
|
||||
family = "FiraMono Nerd Font";
|
||||
style = "Bold";
|
||||
};
|
||||
size = 14;
|
||||
offset = {
|
||||
x = 1;
|
||||
};
|
||||
};
|
||||
cursor.style.shape = "Beam";
|
||||
colors = {
|
||||
primary = {
|
||||
background = "0x282a36";
|
||||
foreground = "0xeff0eb";
|
||||
};
|
||||
normal = {
|
||||
black = "0x282a36";
|
||||
red = "0xff5c57";
|
||||
green = "0x5af78e";
|
||||
yellow = "0xf3f99d";
|
||||
blue = "0x57c7ff";
|
||||
magenta = "0xff6ac1";
|
||||
cyan = "0x9aedfe";
|
||||
white = "0xf1f1f0";
|
||||
};
|
||||
bright = {
|
||||
black = "0x686868";
|
||||
red = "0xff5c57";
|
||||
green = "0x5af78e";
|
||||
yellow = "0xf3f99d";
|
||||
blue = "0x57c7ff";
|
||||
magenta = "0xff6ac1";
|
||||
cyan = "0x9aedfe";
|
||||
white = "0xf1f1f0";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
neovim = {
|
||||
defaultEditor = true;
|
||||
enable = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
vimdiffAlias = true;
|
||||
coc = {
|
||||
enable = true;
|
||||
};
|
||||
extraConfig = ''
|
||||
set title
|
||||
set number
|
||||
set relativenumber
|
||||
set cursorline
|
||||
set mouse=a
|
||||
syntax enable
|
||||
let g:NERDTreeShowHidden = 1
|
||||
let g:NERDTreeMinimalUI = 1
|
||||
let g:NERDTreeIgnore = [ '.git/' ]
|
||||
let g:NERDTreeStatusline = ""
|
||||
let g:NERDTreeMouseMode = 2
|
||||
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
|
||||
nnoremap <silent> <C-b> :NERDTreeToggle<CR>
|
||||
'';
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
nerdtree
|
||||
vim-devicons
|
||||
# fzf
|
||||
ale
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue