1
0
Fork 0
This commit is contained in:
tastytea 2022-03-18 14:34:27 +01:00
commit ad281008b9
Signed by: tastytea
SSH Key Fingerprint: SHA256:FBkvrOlhq5use1XEttyUGT4bUTDVA1ar9SgIc9P03cM
55 changed files with 3397 additions and 0 deletions

29
.XCompose Normal file
View File

@ -0,0 +1,29 @@
# -*- mode: conf-colon -*-
<Multi_key> <colon> <parenright> : "😊" U1F60A # Smiling Face with Smiling Eyes
<Multi_key> <colon> <D> : "😄" U1F604 # Smiling Face with Open Mouth and Smiling Eyes
<Multi_key> <semicolon> <parenright> : "😉" U1F609 # WINKING FACE
<Multi_key> <colon> <parenleft> : "🙁" U1F641 # SLIGHTLY FROWNING FACE
<Multi_key> <z> <z> <z> : "😴" U1F634 # SLEEPING FACE
<Multi_key> <colon> <P> : "😝" U1F61D # Face with Stuck-Out Tongue and Tightly-Closed Eyes
<Multi_key> <m> <parenleft> : "🤦" U1F926 # FACE PALM
<Multi_key> <s> <h> <r> <u> <g> : "🤷" U1F937 # SHRUG
<Multi_key> <F> <U> : "🖕" U1F595 # REVERSED HAND WITH MIDDLE FINGER EXTENDED
<Multi_key> <r> <o> <l> <l> : "🙄" U1F644 # Face with Rolling Eyes
<Multi_key> <p> <o> <o> : "💩" U1F4A9 # PILE OF POO
<Multi_key> <O> <A> : "Ⓐ" U24B6 # CIRCLED LATIN CAPITAL LETTER A
<Multi_key> <o> <r> : "®" U00AE # REGISTERED SIGN
<Multi_key> <o> <c> : "©" U00A9 # COPYRIGHT SIGN
<Multi_key> <p> <i> : "π" U03C0 # GREEK SMALL LETTER PI
<Multi_key> <z> <w> <space> : "" U200B # ZERO WIDTH SPACE
<Multi_key> <C> <C> <C> <P> : "☭" U262D # HAMMER AND SICKLE
<Multi_key> <r> <1> : "" U2160 # ROMAN NUMERAL ONE
<Multi_key> <r> <2> : "Ⅱ" U2161 # ROMAN NUMERAL TWO
<Multi_key> <r> <3> : "Ⅲ" U2162 # ROMAN NUMERAL THREE
<Multi_key> <r> <4> : "Ⅳ" U2163 # ROMAN NUMERAL FOUR
<Multi_key> <r> <5> : "" U2164 # ROMAN NUMERAL FIVE
<Multi_key> <r> <6> : "Ⅵ" U2165 # ROMAN NUMERAL SIX
<Multi_key> <r> <7> : "Ⅶ" U2166 # ROMAN NUMERAL SEVEN
<Multi_key> <r> <8> : "Ⅷ" U2167 # ROMAN NUMERAL EIGHT
<Multi_key> <r> <9> : "Ⅸ" U2168 # ROMAN NUMERAL NINE
<Multi_key> <r> <0> : "" U2169 # ROMAN NUMERAL TEN
<Multi_key> <less> <3> : "💖" U1F496 # SPARKLING HEART

18
.Xresources Normal file
View File

@ -0,0 +1,18 @@
! Remember to edit the cursors in the GTK settings too.
Xcursor.theme: gentoo
! Possible sizes: 16, 24, 32, 48, 64.
Xcursor.size: 24
! *TkTheme: clam
! Font stuff.
Xft.dpi: 96
Xft.antialias: true
Xft.rgba: rgb
Xft.hinting: true
Xft.hintstyle: hintslight
Xft.autohint: false
Xft.lcdfilter: lcddefault
#include ".config/urxvt"
#include ".emacs.d/xresources"

108
.aspell.de.pws Normal file
View File

@ -0,0 +1,108 @@
personal_ws-1.1 de 107
ALG
Abschlag
Anwältin
Bedarfsgemeinschaft
Berechnungsbögen
Betriebskostenabrechnung
Bewerbungsbemühungen
Bewertungsgrundsätzen
Bewertungstabellen
Bundesagentur
Bundesinstitut
Chromosomenschädigung
DSGVO
Ehlershausen
Emailversand
Fahrpreisnacherhebung
Familienkasse
Feststellungsprotokoll
Firmeneigentum
Folgetages
Fälschlichkeit
GVH
Gaskostenabrechnung
Gasrechnung
Genotoxizität
Gesamtbeurteilung
Geschäftszeichen
Glyphosat
Hakenförmige
Hbf
Heizkostenabrechnung
Hundekot
Höchstdosierung
Höchstfrist
IBAN
Immunsuppression
Inhaberschaft
Inzidenz
Inzidenzbereich
Jobcenter
Jobcenters
Kanzerogenitätsstudien
Kartennummer
Karzinome
Kontaktversuche
Kontoinformationen
Kontrollgruppe
Krebsrisiko
Körpergewicht
Lebensmittelsicherheit
Lebensmittelüberwachung
Lymphomen
Mahngebühren
Massenbewegung
Minijobs
Mitgliedsstaaten
Moin
Nierentumore
Originalstudien
Pankreastumore
Pankreastumoren
Risikobewertung
Sicherheitsforscher
Spirituosenindustrie
Strafbefehl
Tageskarte
Tageskarten
Testrichtlinien
Tierstudien
Tierversuche
Toxizität
Umweltschutzbehörde
Unterschicht
Ursprungsbescheid
Verarbeitungszwecke
Verbraucherschutz
Vollstreckungsankündigung
Weiterbewilligungsantrag
Wirkmechanismen
Wirkstoffes
Zelltod
Zulassungsverfahren
Zuordnungsschwierigkeiten
abzubezahlen
auseinandergesetzt
berichterstattender
degenerative
ernährungsbedingten
gekackt
genotoxische
glyphosathaltige
imaginierte
imaginierten
kacken
kanzerogene
krebserzeugend
krebserzeugenden
mutagen
mutagenen
nachgucken
nachzufordern
offengelegt
oxidativen
regulatorisch
rezeptorvermittelten
sogenannte
validen

24
.aspell.en.pws Normal file
View File

@ -0,0 +1,24 @@
personal_ws-1.1 en 23
CET
CMake
CSV
Gutbrod
HTTPS
LaTeX
Pleroma
RSS
TCP
URI
VPN
XMPP
catpkg
computering
destructor
ebuild
ebuilds
fediverse
redirections
repos
skippable
tastytea
uncompiled

138
.clang-format Normal file
View File

@ -0,0 +1,138 @@
# -*- mode: yaml -*-
# Written for clang-format 12.
# https://releases.llvm.org/12.0.0/tools/clang/docs/ClangFormatStyleOptions.html
---
DisableFormat: false
Language: Cpp
AccessModifierOffset: -4
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: None
AlignConsecutiveBitFields: None
AlignConsecutiveDeclarations: None
AlignConsecutiveMacros: None
AlignEscapedNewlines: DontAlign
AlignOperands: Align
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: false
AllowAllConstructorInitializersOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: Empty
AllowShortCaseLabelsOnASingleLine: true
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Empty
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: Inline
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: true
BinPackParameters: true
BitFieldColonSpacing: Both
BraceWrapping: # If BreakBeforeBraces is set to Custom.
AfterCaseLabel: true
AfterClass: true
AfterControlStatement: Always
AfterEnum: true
AfterFunction: true
AfterNamespace: true
AfterStruct: true
AfterUnion: true
AfterExternBlock: true
BeforeCatch: true
BeforeElse: true
BeforeLambdaBody: true
BeforeWhile: true
IndentBraces: false
SplitEmptyFunction: false
SplitEmptyRecord: false
SplitEmptyNamespace: false
BreakBeforeBinaryOperators: NonAssignment
BreakBeforeBraces: Custom
BreakBeforeConceptDeclarations: true
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeComma
BreakInheritanceList: BeforeComma
BreakStringLiterals: true
ColumnLimit: 80
# CommentPragmas: 'regex'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DeriveLineEnding: true
DerivePointerAlignment: false
EmptyLineBeforeAccessModifier: LogicalBlock
FixNamespaceComments: true
ForEachMacros:
- FOREACH
- RANGES_FOR
- Q_FOREACH
- BOOST_FOREACH
IncludeBlocks: Regroup
IncludeCategories: # stdlib headers into own group.
- Regex: '^[^\.]+$'
Priority: 4
IndentCaseBlocks: false
IndentCaseLabels: false
IndentExternBlock: NoIndent
IndentGotoLabels: false
IndentPPDirectives: AfterHash
IndentRequires: true # Not sure yet
IndentWidth: 4
IndentWrappedFunctionNames: false
KeepEmptyLinesAtTheStartOfBlocks: true
# MacroBlockBegin: 'string'
# MacroBlockEnd: 'string'
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
# NamespaceMacros: 'string'
PenaltyBreakAssignment: 250
PenaltyBreakBeforeFirstCallParameter: 300
# PenaltyBreakComment: 300
# PenaltyBreakFirstLessLess: 120
# PenaltyBreakString: 1000
# PenaltyBreakTemplateDeclaration: 10
# PenaltyExcessCharacter: 1000000
# PenaltyIndentedWhitespace:
PenaltyReturnTypeOnItsOwnLine: 100
PointerAlignment: Right
# RawStringFormats: # <YAML>
ReflowComments: true
SortIncludes: true
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: false
SpaceAroundPointerQualifiers: Default
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceBeforeSquareBrackets: false
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInCStyleCastParentheses: false
SpacesInConditionalStatement: false
SpacesInContainerLiterals: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Auto
# StatementAttributeLikeMacros:
# StatementMacros:
# - Q_UNUSED
# - QT_REQUIRE_VERSION
TabWidth: 4
# TypenameMacros:
# - STACK_OF
# - LIST
UseCRLF: false
UseTab: Never
# WhitespaceSensitiveMacros: ['string', 'string']
...

50
.clang-tidy Normal file
View File

@ -0,0 +1,50 @@
# -*- mode: conf; fill-column: 100; -*-
# Written for clang-tidy 11.
---
Checks: '*,
-cppcoreguidelines-non-private-member-variables-in-classes,
-fuchsia-default-arguments-calls,
-fuchsia-default-arguments-declarations,
-fuchsia-default-arguments,
-llvm-include-order,
-llvm-header-guard,
-misc-non-private-member-variables-in-classes,
-fuchsia-overloaded-operator,
-cppcoreguidelines-avoid-magic-numbers,
-readability-magic-numbers,
-cppcoreguidelines-pro-bounds-array-to-pointer-decay,
-hicpp-no-array-decay,
-modernize-avoid-c-arrays,
-cppcoreguidelines-avoid-c-arrays,
-hicpp-avoid-c-arrays,
-google-build-using-namespace,
-readability-named-parameter,
-google-runtime-references,
-hicpp-avoid-goto,
-hicpp-vararg,
-fuchsia-statically-constructed-objects,
-google-readability-todo,
-modernize-use-trailing-return-type,
-fuchsia-multiple-inheritance,
-llvmlibc*,
-cppcoreguidelines-avoid-non-const-global-variables,
-cert-*-c,
-abseil-string-find-*,
-altera-unroll-loops,
-altera-id-dependent-backward-branch'
FormatStyle: file # Use .clang-format.
CheckOptions: # ↓ Clashes with static private member prefix. (static int _var;) ↓
- { key: readability-identifier-naming.VariableCase, value: lower_case }
- { key: readability-identifier-naming.MemberCase, value: lower_case }
- { key: readability-identifier-naming.PrivateMemberCase, value: lower_case }
- { key: readability-identifier-naming.PrivateMemberPrefix, value: _ }
- { key: readability-identifier-naming.ProtectedMemberCase, value: lower_case }
- { key: readability-identifier-naming.ProtectedMemberPrefix, value: _ }
- { key: readability-identifier-naming.ClassCase, value: lower_case }
- { key: readability-identifier-naming.StructCase, value: lower_case }
- { key: readability-identifier-naming.EnumCase, value: lower_case }
- { key: readability-identifier-naming.FunctionCase, value: lower_case }
- { key: readability-identifier-naming.ParameterCase, value: lower_case }
...

View File

@ -0,0 +1,64 @@
env:
# For better compatibility.
# <https://github.com/alacritty/alacritty/issues/2049>
TERM: xterm-256color
font:
normal:
family: Source Code Pro
size: 12.0
draw_bold_text_with_bright_colors: true
colors:
primary:
background: '#111111'
foreground: '#D3D7CF'
normal:
black: '#111111'
red: '#AA0000'
green: '#00AA00'
yellow: '#AA5500'
blue: '#0066FF'
magenta: '#AA00AA'
cyan: '#00AAAA'
white: '#AAAAAA'
bright:
black: '#555555'
red: '#FF5555'
green: '#55FF55'
yellow: '#FFFF55'
blue: '#6666FF'
magenta: '#FF55FF'
cyan: '#55FFFF'
white: '#FFFFFF'
bell:
animation: Linear
duration: 200
color: '#331133'
hints:
enabled:
- regex: "(mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:|magnet:)[^\u0000-\u001F\u007F-\u009F<>\" {-}\\^⟨⟩`]+"
command: xdg-open
post_processing: true
mouse:
enabled: true
mods: Control
mouse:
hide_when_typing: true
key_bindings:
- { key: Back, mods: Control, chars: "\x1b\x7f" }
- { key: Semicolon, mods: Control|Shift, chars: "\e;" }
- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp }
- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown }
scrolling:
history: 10000
selection:
# Characters that are used to separate “words”.
semantic_escape_chars: ",│`|\"' ()[]{}<>\t·"

View File

@ -0,0 +1,7 @@
[colors]
list = "#BA45A3"
h2 = "#FF1493"
text = "#C7D3E3"
[characters]
list = "🌼 "

447
.config/dunst/dunstrc Normal file
View File

@ -0,0 +1,447 @@
# -*- mode: conf -*-
# See dunst(5) for all configuration options
[global]
### Display ###
# Which monitor should the notifications be displayed on.
monitor = 1
# Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer
# keyboard: follow window with keyboard focus
# none: don't follow anything
#
# "keyboard" needs a window manager that exports the
# _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern window managers.
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
follow = none
### Geometry ###
# dynamic width from 0 to 300
# width = (0, 300)
# constant width of 300
width = 400
# The maximum height of a single notification, excluding the frame.
height = 200
# Position the notification in the top right corner
origin = top-right
# Offset from the origin
offset = 0x0
# Scale factor. It is auto-detected if value is 0.
scale = 0
# Maximum number of notification (0 means no limit)
notification_limit = 10
### Progress bar ###
# Turn on the progess bar. It appears when a progress hint is passed with
# for example dunstify -h int:value:12
progress_bar = true
# Set the progress bar height. This includes the frame, so make sure
# it's at least twice as big as the frame width.
progress_bar_height = 10
# Set the frame width of the progress bar
progress_bar_frame_width = 1
# Set the minimum width for the progress bar
progress_bar_min_width = 150
# Set the maximum width for the progress bar
progress_bar_max_width = 400
# Show how many messages are currently hidden (because of
# notification_limit).
indicate_hidden = yes
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing window manager is
# present (e.g. xcompmgr, compiz, etc.). (X11 only)
transparency = 10
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
separator_height = 2
# Padding between text and separator.
padding = 8
# Horizontal padding.
horizontal_padding = 8
# Padding between text and icon.
text_icon_padding = 0
# Defines width in pixels of frame around the notification window.
# Set to 0 to disable.
frame_width = 2
# Defines color of the frame around the notification window.
frame_color = "#380038"
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
separator_color = frame
# Sort messages by urgency.
sort = yes
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
# A client can set the 'transient' hint to bypass this. See the rules
# section for how to disable this if necessary
# idle_threshold = 120
### Text ###
font = Source Serif Pro 9
# The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height.
line_height = 0
# Possible values are:
# full: Allow a small subset of html markup in notifications:
# <b>bold</b>
# <i>italic</i>
# <s>strikethrough</s>
# <u>underline</u>
#
# For a complete reference see
# <https://docs.gtk.org/Pango/pango_markup.html>.
#
# strip: This setting is provided for compatibility with some broken
# clients that send markup even though it's not enabled on the
# server. Dunst will try to strip the markup but the parsing is
# simplistic so using this option outside of matching rules for
# specific applications *IS GREATLY DISCOURAGED*.
#
# no: Disable markup parsing, incoming notifications will be treated as
# plain text. Dunst will not advertise that it has the body-markup
# capability if this is set as a global setting.
#
# It's important to note that markup inside the format option will be parsed
# regardless of what this is set to.
markup = full
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# %n progress value if set without any extra characters
# %% Literal %
# Markup is allowed
format = "<big><b>%s</b></big> (%a)\n%b\n"
# Alignment of message text.
# Possible values are "left", "center" and "right".
alignment = left
# Vertical alignment of message text and icon.
# Possible values are "top", "center" and "bottom".
vertical_alignment = top
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = 60
# Specify where to make an ellipsis in long lines.
# Possible values are "start", "middle" and "end".
ellipsize = middle
# Ignore newlines '\n' in notifications.
ignore_newline = no
# Stack together notifications with the same content
stack_duplicates = true
# Hide the count of stacked notifications with the same content
hide_duplicate_count = false
# Display indicators for URLs (U) and actions (A).
show_indicators = yes
### Icons ###
# Align icons left/right/off
icon_position = left
# Scale small icons up to this size, set to 0 to disable. Helpful
# for e.g. small files or high-dpi screens. In case of conflict,
# max_icon_size takes precedence over this.
min_icon_size = 32
# Scale larger icons down to this size, set to 0 to disable
max_icon_size = 48
# Paths to default icons.
icon_path = /usr/share/icons/AD-Plum-Suru/status/48/:/usr/share/icons/AD-Plum-Suru/devices/48/
### History ###
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = yes
# Maximum amount of notifications kept in history
history_length = 20
### Misc/Advanced ###
# dmenu path.
dmenu = rofi -dmenu -p dunst
# Browser for opening urls in context menu.
browser = /usr/bin/xdg-open
# Always run rule-defined scripts, even if the notification is suppressed
always_run_script = true
# Define the title of the windows spawned by dunst
title = Dunst
# Define the class of the windows spawned by dunst
class = Dunst
# Define the corner radius of the notification window
# in pixel size. If the radius is 0, you have no rounded
# corners.
# The radius will be automatically lowered if it exceeds half of the
# notification height to avoid clipping text and/or icons.
corner_radius = 4
# Ignore the dbus closeNotification message.
# Useful to enforce the timeout set by dunst configuration. Without this
# parameter, an application may close the notification sent before the
# user defined timeout.
ignore_dbusclose = false
### Wayland ###
# These settings are Wayland-specific. They have no effect when using X11
# Uncomment this if you want to let notications appear under fullscreen
# applications (default: overlay)
# layer = top
# Set this to true to use X11 output on Wayland.
force_xwayland = false
### Legacy
# Use the Xinerama extension instead of RandR for multi-monitor support.
# This setting is provided for compatibility with older nVidia drivers that
# do not support RandR and using it on systems that support RandR is highly
# discouraged.
#
# By enabling this setting dunst will not be able to detect when a monitor
# is connected or disconnected which might break follow mode if the screen
# layout changes.
force_xinerama = false
### mouse
# Defines list of actions for each mouse event
# Possible values are:
# * none: Don't do anything.
# * do_action: Invoke the action determined by the action_name rule. If there is no
# such action, open the context menu.
# * open_url: If the notification has exactly one url, open it. If there are multiple
# ones, open the context menu.
# * close_current: Close current notification.
# * close_all: Close all notifications.
# * context: Open context menu for the notification.
# * context_all: Open context menu for all notifications.
# These values can be strung together for each mouse event, and
# will be executed in sequence.
# mouse_left_click = open_url, close_current
mouse_left_click = none
mouse_middle_click = do_action, close_current
mouse_right_click = close_current
# Experimental features that may or may not work correctly. Do not expect them
# to have a consistent behaviour across releases.
[experimental]
# Calculate the dpi to use on a per-monitor basis.
# If this setting is enabled the Xft.dpi value will be ignored and instead
# dunst will attempt to calculate an appropriate dpi value for each monitor
# using the resolution and physical size. This might be useful in setups
# where there are multiple screens with very different dpi values.
per_monitor_dpi = false
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
background = "#200020"
foreground = "#aaaaaa"
frame_color = "#180018"
highlight = "#ba45a3"
timeout = 10s
# Icon for notifications with low urgency, uncomment to enable
#default_icon = /path/to/icon
[urgency_normal]
background = "#500050"
foreground = "#dddddd"
frame_color = "#480048"
highlight = "#ba45a3"
timeout = 20s
# Icon for notifications with normal urgency, uncomment to enable
#default_icon = /path/to/icon
[urgency_critical]
background = "#b000b0"
foreground = "#ffffff"
frame_color = "#a800a8"
highlight = "#200020"
timeout = 0
# Icon for notifications with critical urgency, uncomment to enable
#default_icon = /path/to/icon
[override_firefox]
appname = Firefox
# Not implemented yet, <https://github.com/dunst-project/dunst/issues/1020#issuecomment-1041861708>
ignore_dbusclose = true
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
#
# Messages can be matched by
# appname (discouraged, see desktop_entry)
# body
# category
# desktop_entry
# icon
# match_transient
# msg_urgency
# stack_tag
# summary
#
# and you can override the
# background
# foreground
# format
# frame_color
# fullscreen
# new_icon
# set_stack_tag
# set_transient
# set_category
# timeout
# urgency
# skip_display
# history_ignore
# action_name
# word_wrap
# ellipsize
# alignment
#
# Shell-like globbing will get expanded.
#
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
# GLib based applications export their desktop-entry name. In comparison to the appname,
# the desktop-entry won't get localized.
#
# SCRIPTING
# You can specify a script that gets run when the rule matches by
# setting the "script" option.
# The script will be called as follows:
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
# Disable the transient hint so that idle_threshold cannot be bypassed from the
# client
#[transient_disable]
# match_transient = yes
# set_transient = no
#
# Make the handling of transient notifications more strict by making them not
# be placed in history.
#[transient_history_ignore]
# match_transient = yes
# history_ignore = yes
# fullscreen values
# show: show the notifications, regardless if there is a fullscreen window opened
# delay: displays the new notification, if there is no fullscreen window active
# If the notification is already drawn, it won't get undrawn.
# pushback: same as delay, but when switching into fullscreen, the notification will get
# withdrawn from screen again and will get delayed like a new notification
#[fullscreen_delay_everything]
# fullscreen = delay
#[fullscreen_show_critical]
# msg_urgency = critical
# fullscreen = show
#[espeak]
# summary = "*"
# script = dunst_espeak.sh
#[script-test]
# summary = "*script*"
# script = dunst_test.sh
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# skip_display = true
#[history-ignore]
# # This notification will not be saved in history
# summary = "foobar"
# history_ignore = yes
#[skip-display]
# # This notification will not be displayed, but will be included in the history
# summary = "foobar"
# skip_display = yes
#[signed_on]
# appname = Pidgin
# summary = "*signed on*"
# urgency = low
#
#[signed_off]
# appname = Pidgin
# summary = *signed off*
# urgency = low
#
#[says]
# appname = Pidgin
# summary = *says*
# urgency = critical
#
#[twitter]
# appname = Pidgin
# summary = *twitter.com*
# urgency = normal
#
#[stack-volumes]
# appname = "some_volume_notifiers"
# set_stack_tag = "volume"
#
# vim: ft=cfg

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Set default fonts -->
<alias>
<family>monospace</family>
<prefer>
<family>Source Code Pro</family>
<family>Noto Color Emoji</family>
</prefer>
</alias>
<alias>
<family>serif</family>
<prefer>
<family>Source Serif Pro</family>
<family>Noto Color Emoji</family>
</prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer>
<family>Source Sans Pro</family>
<family>Noto Color Emoji</family>
</prefer>
</alias>
</fontconfig>

View File

@ -0,0 +1,21 @@
.gajim-state-tab-muc-msg {
color: rgb(148, 114, 255)
}
.gajim-state-tab-muc-directed-msg {
color: rgb(255, 114, 255)
}
.gajim-incoming-nickname {
color: rgb(255, 114, 255)
}
.gajim-outgoing-nickname {
color: rgb(148, 114, 255)
}
.gajim-url {
color: rgb(208, 112, 0)
}
.gajim-highlight-message {
color: rgb(255, 114, 255)
}
.gajim-incoming-message-text {
color: rgb(255, 255, 255)
}

1
.config/git/attributes Normal file
View File

@ -0,0 +1 @@
*.ebuild merge=keywords

44
.config/git/config Normal file
View File

@ -0,0 +1,44 @@
# -*- indent-tabs-mode: t -*-
[user]
email = tastytea@tastytea.de
name = tastytea
[push]
default = simple
[diff]
tool = meld
[merge]
tool = meld
conflictStyle = diff3
[merge "keywords"]
name = KEYWORDS merge driver
driver = merge-driver-ekeyword %O %A %B %P
[init]
templateDir = /home/tastytea/.config/git/template
defaultBranch = main
[commit]
gpgSign = true
[tag]
gpgSign = true
[github]
user = tastytea
[gitea "schlomp.space/api/v1"]
user = tastytea
[gitlab]
user = tastytea
[log]
date = iso
showSignature = false
[pull]
rebase = true
[alias]
tree = log --graph --decorate --pretty='format:%h %cs %s %d' --abbrev-commit
last-branches = for-each-ref --sort=-committerdate refs/heads/ --format='%(refname:short)' --count=5
review = log --patch --reverse
[core]
pager = diff-highlight | less --tabs=4 -RFX
[gpg]
format = ssh
[gpg "ssh"]
allowedSignersFile = /home/tastytea/.ssh/allowed_signers
[include]
path = config.local

15
.config/git/ignore Normal file
View File

@ -0,0 +1,15 @@
*.sublime-*
*sync-conflict*
.dir-locals.el
.#*
/GPATH
/GRTAGS
/GTAGS
/compile_commands.json
/find_all_symbols_db.yaml
/.notes.adoc
perf.data
perf.data.old
/.cache/
/CMakeUserPresets.json
/heaptrack.*

View File

@ -0,0 +1,13 @@
#!/bin/sh
COMMIT_MSG_FILE="${1}"
COMMIT_SOURCE="${2}"
SHA1="${3}"
# Only run on new commits.
if [ -z "${SHA1}" ] && [ -z "${COMMIT_SOURCE}" ]; then
# Show last 4 commit messages.
echo '' >> "${COMMIT_MSG_FILE}"
echo '# Previous commits:' >> "${COMMIT_MSG_FILE}"
git log --pretty=format:'# %h %s' | head -n 4 >> "${COMMIT_MSG_FILE}"
fi

View File

@ -0,0 +1,8 @@
[Settings]
gtk-theme-name=AD-Plum
gtk-icon-theme-name=AD-Plum-Suru
gtk-fallback-icon-theme=elementary-xfce-darkest
gtk-application-prefer-dark-theme=true
gtk-cursor-theme-name=gentoo
gtk-cursor-theme-size=24
gtk-can-change-accels=1

264
.config/i3/config.common Normal file
View File

@ -0,0 +1,264 @@
# -*- mode: i3wm-config; -*-
# i3 config file (v4)
#
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod4
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
#font pango:DejaVu Sans Mono 8
font pango:DejaVu Sans 8
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
#font pango:DejaVu Sans Mono 8
# Before i3 v4.8, we used to recommend this one as the default:
# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
# The font above is very space-efficient, that is, it looks good, sharp and
# clear in small sizes. However, its unicode glyph coverage is limited, the old
# X core fonts rendering does not support right-to-left and this being a bitmap
# font, it doesnt scale on retina/hidpi displays.
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
bindsym $mod+Return exec i3-sensible-terminal
# close focused window
bindsym $mod+q close # Doesn't work, where did I get this?
# kill focused window
bindsym $mod+Shift+q kill
# Start rofi (a program launcher) and show entries for .desktop-files.
bindsym $mod+d exec rofi -show drun
# change focus
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
bindsym $mod+h split h
# split in vertical orientation
bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# toggle sticky bit
bindsym $mod+Shift+s sticky toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
bindsym $mod+Shift+a focus child
# switch to workspace
bindsym $mod+1 workspace 1
bindsym $mod+2 workspace 2
bindsym $mod+3 workspace 3
bindsym $mod+4 workspace 4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10
bindsym $mod+ssharp workspace 11
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace 1
bindsym $mod+Shift+2 move container to workspace 2
bindsym $mod+Shift+3 move container to workspace 3
bindsym $mod+Shift+4 move container to workspace 4
bindsym $mod+Shift+5 move container to workspace 5
bindsym $mod+Shift+6 move container to workspace 6
bindsym $mod+Shift+7 move container to workspace 7
bindsym $mod+Shift+8 move container to workspace 8
bindsym $mod+Shift+9 move container to workspace 9
bindsym $mod+Shift+0 move container to workspace 10
bindsym $mod+Shift+ssharp move container to workspace 11
# Scratchpad
bindsym $mod+Shift+x move scratchpad
bindsym $mod+x scratchpad show
# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize shrink height 10 px or 10 ppt
bindsym Up resize grow height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
bindsym Shift+Left resize shrink width 1 px or 1 ppt
bindsym Shift+Down resize shrink height 1 px or 1 ppt
bindsym Shift+Up resize grow height 1 px or 1 ppt
bindsym Shift+Right resize grow width 1 px or 1 ppt
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
# PURPLE THEME
# Focused
set $brd_fcs #480048
set $bg_fcs #500050
set $txt_fcs #ffffaa
# Focused inactive
set $brd_fcs_in #280028
set $bg_fcs_in #300030
set $txt_fcs_in #aaaaaa
# Unfocused
set $brd_unfcs #180018
set $bg_unfcs #200020
set $txt_unfcs #888888
# Urgent
set $brd_urgent #a800a8
set $bg_urgent #b000b0
set $txt_urgent #000000
# class border background text indicator child_brd.
client.focused $brd_fcs $bg_fcs $txt_fcs $bg_fcs $bg_fcs
client.focused_inactive $brd_fcs_in $bg_fcs_in $txt_fcs_in $bg_fcs_in $bg_fcs_in
client.unfocused $brd_unfcs $bg_unfcs $txt_unfcs $bg_unfcs $bg_unfcs
client.urgent $brd_urgent $bg_urgent $txt_urgent $bg_urgent $bg_urgent
client.placeholder #000000 #0c000c #ffffff #000000 #0c000c
client.background #ffffff
workspace_layout tabbed
focus_follows_mouse no
mouse_warping none
focus_wrapping yes
#workspace_auto_back_and_forth yes
# The window will always be marked urgent, but the focus will not be stolen.
focus_on_window_activation urgent
bindsym $mod+control+Left workspace prev
bindsym $mod+control+Right workspace next
# Remove next 2 later.
bindsym $mod+mod1+Left workspace prev
bindsym $mod+mod1+Right workspace next
bindsym --release button2 kill
bindsym $mod+Tab [urgent=latest] focus
bindsym --release Print exec --no-startup-id flameshot gui
bindsym --release control+Print exec --no-startup-id flameshot screen
bindsym $mod+Shift+l exec --no-startup-id ~/bin/lock_jan
bindsym $mod+Shift+BackSpace exec --no-startup-id ~/bin/suspend_jan
bindsym mod1+Tab exec --no-startup-id rofi -show window
set $ddterm_command tdrop -n "ddterm" -m -w "50%" -h "60%" -x "50%" \
-P 'picom-trans -w $wid -o 90' -a -f '--class="dropdown"' alacritty
bindsym $mod+asciicircum exec $ddterm_command
bindsym $mod+dead_circumflex exec $ddterm_command
bindsym --release $mod+Delete exec xkill
bindsym $mod+period exec dunstctl history-pop
bindsym $mod+c exec --no-startup-id rofi -show ssh
default_border normal 2
hide_edge_borders both
assign [class="^Firefox$"] 1
assign [class="^cantata$"] 1
assign [class="^Emacs$" instance="^init$"] 3
assign [class="^Gimp"] 6
assign [class="^Glimpse"] 6
assign [class="^calibre$"] 4
assign [class="^Virt-manager$"] 5
assign [class="^Remmina$"] 5
assign [class="^Transmission-remote-gtk$"] 5
assign [title="^PlayOnLinux"] 8
assign [title="^Steam"] 8
assign [class="^factorio"] 8
assign [class="^Lutris"] 8
assign [class="^itch"] 8
assign [class="^simutrans"] 8
assign [class="^Minigalaxy"] 8
assign [class="^Lutris"] 8
assign [class="^Mumble$"] 9
for_window [class="Qalculate-gtk" instance="qalculate-gtk"] floating enable
for_window [class="BasicWin" instance="(bristol)"] floating enable
for_window [class="Emelfm2" title="emelFM2: "] floating enable
for_window [class="Claws-mail" title="Adressbuch"] floating enable
for_window [class="Claws-mail" title="^Konfiguration Verarbeitung"] floating enable
for_window [class="Qjackctl"] floating enable
#for_window [class="Psi-plus"] split horizontal
for_window [class="Psi-plus" title="Transfermanager"] floating enable
for_window [title="^Event Tester$"] floating enable
for_window [title="Tor-Browser"] floating enable
for_window [title="Wine desktop$"] floating enable
for_window [title="^OpenSSH Authentication Passphrase Request$"] resize set 400 125
for_window [class="^XVkbd$"] floating enable
for_window [class="^Distccmon-gui$"] floating enable
for_window [title="^Character table$"] floating enable
for_window [title="eBook-Betrachter$"] floating enable
for_window [class="Steam" title="Screenshot-Uploader"] floating enable
for_window [class="Steam" title="^Steam Guard"] floating enable
for_window [class="Steam" title="^Freundesliste$"] floating enable
for_window [class="Steam" title="^Friendlist$"] floating enable
for_window [class="Wine" title="^Freunde$"] floating enable
for_window [class="Gtk-gnutella" title="^gtk-gnutella shutdown$"] floating enable
for_window [title="^VL[Ss]ub"] floating enable
for_window [class="^Pinentry$"] floating enable
for_window [title="^Keyboard$"] floating enable
for_window [class="Xsane" title="^Warnung$"] floating enable
for_window [class="^Nm-connection-editor$"] floating enable
# for_window [class="^Gajim$" title="^Dateiübertragungen$"] floating enable
for_window [class="^Gajim$" title="^Einstellungen$"] floating enable
for_window [class="^Gajim$" title="^Profil"] floating enable
for_window [class="^Gajim$" title="^XML-Konsole"] floating enable
for_window [class="^Gajim$" title="^Neue Unterhaltung starten"] floating enable
for_window [class="^Gajim$" title="^Plugins"] floating enable
for_window [class="^Gajim$" title="\(ACE\)$"] floating enable
for_window [class="^Gajim$" title="^Server-Informationen"] floating enable
for_window [class="^Gajim$" title="^Durchsuche"] floating enable
for_window [class="^Gajim$" title="^Bookmarks"] floating enable
for_window [class="^Gajim$" title="^Chat starten"] floating enable
for_window [class="^Gajim$" title="^Liste der Befehle"] floating enable
for_window [class="^Gajim$" title="^Kontakte"] floating enable
for_window [class="^Gajim$" title="^Dateiübertragung"] floating enable
for_window [class="^Gajim$" title="^Sende Einzelne Nachricht"] floating enable
for_window [class="^Gajim$" title="^Gespeicherte Gruppenchats"] floating enable
for_window [class="^Claws-mail$" title="^In aktueller Nachricht suchen$"] floating enable
for_window [class="^Gtk-recordMyDesktop$"] floating enable
for_window [class="^Ghb$" title="^Vorschau$"] floating enable
for_window [class="^Emacs$" title="^Ediff$"] floating enable
for_window [class="^Spacefm" window_role="^task_dialog"] floating enable
for_window [instance="^dropdown$"] border pixel 0
for_window [instance="origin.exe"] floating enable

4
.config/mpv/input.conf Normal file
View File

@ -0,0 +1,4 @@
WHEEL_UP add volume 5
WHEEL_DOWN add volume -5
0 add volume 5
9 add volume -5

23
.config/mpv/mpv.conf Normal file
View File

@ -0,0 +1,23 @@
# General options
volume=50
save-position-on-quit
replaygain=album
screenshot-format=webp
screenshot-template="%F @%p"
# OSD
osd-font-size=30
osd-border-size=1
osd-back-color="0.0/0.0/0.0/0.2"
# Track selection
slang=deu,de,de-DE,ger,eng,en,en-US,en-GB,unknown
alang=deu,de,de-DE,ger,jpn,jp,eng,en,en-US,en-GB
# Subtitles
sub-file-paths=subs:subtitles
sub-back-color="0.0/0.0/0.0/0.3"
sub-auto=fuzzy
# Filters
sub-filter-regex-append="opensubtitles\.org"
sub-filter-regex-append="from RARBG"
# Include other files
include="~/.config/mpv/local.conf"
use-filedir-conf

View File

@ -0,0 +1,13 @@
syntax "gemini" "\.(gemini|gmi|GMI)$"
# links
color magenta "^=>.*$"
# preformatted
color yellow start="^```* ?$" end="^```* ?$"
#headings
color cyan "^\#+.*$"
#bullets
color green "^\*+.*$"

4
.config/nano/nanorc Normal file
View File

@ -0,0 +1,4 @@
include "~/.config/nano/gemini.nanorc"
set autoindent
set tabsize 4

11
.config/picom/picom.conf Normal file
View File

@ -0,0 +1,11 @@
inactive-dim = 0.20;
fade-delta = 8;
wintypes:
{
popup_menu = { fade = true; opacity = 0.9; };
dropdown_menu = { fade = true; opacity = 0.9; };
tooltip = { fade = true; shadow = true; opacity = 0.9; };
dialog = { shadow = true; };
};

10
.config/rofi/config.rasi Normal file
View File

@ -0,0 +1,10 @@
configuration {
location: 2;
yoffset: -2;
show-icons: true;
monitor: "primary";
cache-dir: "/home/tastytea/.local/share/rofi"; /* Since 1.5.3 */
modi: "window,run,ssh,drun";
}
@theme "themes/Arc-Dark-Purple.rasi"

View File

@ -0,0 +1,152 @@
/************************************************
* ROFI Color theme
* User: leofa
* Copyright: 2017 leofa
***********************************************/
/* tastytea: Changed blue backgrounds to purple. Works with 1.7.0. */
* {
selected-normal-foreground: rgba ( 249, 249, 249, 100 % );
foreground: rgba ( 196, 203, 212, 100 % );
normal-foreground: @foreground;
alternate-normal-background: rgba ( 64, 69, 82, 59 % );
red: rgba ( 220, 50, 47, 100 % );
selected-urgent-foreground: rgba ( 249, 249, 249, 100 % );
blue: rgba ( 38, 139, 210, 100 % );
urgent-foreground: rgba ( 204, 102, 102, 100 % );
alternate-urgent-background: rgba ( 75, 81, 96, 90 % );
active-foreground: rgba ( 101, 172, 255, 100 % );
lightbg: rgba ( 238, 232, 213, 100 % );
selected-active-foreground: rgba ( 249, 249, 249, 100 % );
alternate-active-background: rgba ( 75, 81, 96, 89 % );
background: rgba ( 45, 48, 59, 95 % );
alternate-normal-foreground: @foreground;
normal-background: @background;
lightfg: rgba ( 88, 104, 117, 100 % );
selected-normal-background: rgba ( 64, 0, 214, 100 % );
border-color: rgba ( 124, 131, 137, 100 % );
spacing: 2;
separatorcolor: rgba ( 29, 31, 33, 100 % );
urgent-background: rgba ( 29, 31, 33, 17 % );
selected-urgent-background: rgba ( 165, 66, 66, 100 % );
alternate-urgent-foreground: @urgent-foreground;
background-color: rgba ( 0, 0, 0, 0 % );
alternate-active-foreground: @active-foreground;
active-background: rgba ( 29, 31, 33, 17 % );
selected-active-background: rgba ( 68, 145, 237, 100 % );
}
window {
background-color: @background;
border: 1;
padding: 5;
}
mainbox {
border: 0;
padding: 0;
}
message {
border: 2px 0px 0px ;
border-color: @separatorcolor;
padding: 1px ;
}
textbox {
text-color: @foreground;
}
listview {
fixed-height: 0;
border: 2px 0px 0px ;
border-color: @separatorcolor;
spacing: 2px ;
scrollbar: true;
padding: 2px 0px 0px ;
}
element {
border: 0;
padding: 1px ;
}
element-text {
background-color: inherit;
text-color: inherit;
}
element.normal.normal {
background-color: @normal-background;
text-color: @normal-foreground;
}
element.normal.urgent {
background-color: @urgent-background;
text-color: @urgent-foreground;
}
element.normal.active {
background-color: @active-background;
text-color: @active-foreground;
}
element.selected.normal {
background-color: @selected-normal-background;
text-color: @selected-normal-foreground;
}
element.selected.urgent {
background-color: @selected-urgent-background;
text-color: @selected-urgent-foreground;
}
element.selected.active {
background-color: @selected-active-background;
text-color: @selected-active-foreground;
}
element.alternate.normal {
background-color: @alternate-normal-background;
text-color: @alternate-normal-foreground;
}
element.alternate.urgent {
background-color: @alternate-urgent-background;
text-color: @alternate-urgent-foreground;
}
element.alternate.active {
background-color: @alternate-active-background;
text-color: @alternate-active-foreground;
}
scrollbar {
width: 4px ;
border: 0;
handle-color: @normal-foreground;
handle-width: 8px ;
padding: 0;
}
mode-switcher {
border: 2px 0px 0px ;
border-color: @separatorcolor;
}
button {
spacing: 0;
text-color: @normal-foreground;
}
button.selected {
background-color: @selected-normal-background;
text-color: @selected-normal-foreground;
}
inputbar {
spacing: 0;
text-color: @normal-foreground;
padding: 1px ;
}
case-indicator {
spacing: 0;
text-color: @normal-foreground;
}
entry {
spacing: 0;
text-color: @normal-foreground;
}
prompt {
spacing: 0;
text-color: @normal-foreground;
}
inputbar {
children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
}
textbox-prompt-colon {
expand: false;
str: ":";
margin: 0px 0.3em 0em 0em ;
text-color: @normal-foreground;
}

48
.config/urxvt Normal file
View File

@ -0,0 +1,48 @@
! -*- mode: conf-xdefaults; -*-
! urxvt configuration.
! Disable printing.
URxvt.print-pipe: "cat > /dev/null"
URxvt*font: xft:Source Code Pro:style=Regular:size=12,xft:Noto Color Emoji
URxvt*letterSpace: -1
URxvt.scrollBar: false
URxvt.iso14755: false
URxvt*visualBell : true
! Keys
URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard
URxvt.keysym.Shift-Control-V: eval:paste_clipboard
URxvt.keysym.C-BackSpace: \033\177
URxvt.keysym.C-semicolon: \033\073
! Colors
URxvt*background: #111111
URxvt*foreground: #D3D7CF
! black
URxvt*color0: #111111
URxvt*color8: #555555
! red
URxvt*color1: #AA0000
URxvt*color9: #FF5555
! green
URxvt*color2: #00AA00
URxvt*color10: #55FF55
! yellow
URxvt*color3: #AA5500
URxvt*color11: #FFFF55
! blue
URxvt*color4: #0066FF
URxvt*color12: #6666FF
! purple
URxvt*color5: #AA00AA
URxvt*color13: #FF55FF
! cyan
URxvt*color6: #00AAAA
URxvt*color14: #55FFFF
! white
URxvt*color7: #AAAAAA
URxvt*color15: #FFFFFF
! Perl extensions
URxvt.perl-ext-common: default,matcher
URxvt.url-launcher: xdg-open

View File

@ -0,0 +1,52 @@
[Configuration]
FontName=Source Code Pro 12
MiscAlwaysShowTabs=FALSE
MiscBell=FALSE
MiscBordersDefault=TRUE
MiscCursorBlinks=FALSE
MiscCursorShape=TERMINAL_CURSOR_SHAPE_BLOCK
MiscDefaultGeometry=80x24
MiscInheritGeometry=FALSE
MiscMenubarDefault=FALSE
MiscMouseAutohide=TRUE
MiscToolbarDefault=FALSE
MiscConfirmClose=TRUE
MiscCycleTabs=TRUE
MiscTabCloseButtons=TRUE
MiscTabCloseMiddleClick=TRUE
MiscTabPosition=GTK_POS_TOP
MiscHighlightUrls=TRUE
ScrollingBar=TERMINAL_SCROLLBAR_NONE
ColorForeground=#d3d3d7d7cfcf
ColorBackground=#111111111111
ColorPalette=rgb(17,17,17);rgb(170,0,0);rgb(0,170,0);rgb(170,85,0);rgb(0,102,255);rgb(170,0,170);rgb(0,170,170);rgb(170,170,170);rgb(85,85,85);rgb(255,85,85);rgb(85,255,85);rgb(255,255,85);rgb(102,102,255);rgb(255,85,255);rgb(85,255,255);rgb(255,255,255)
ColorBold=#ffffffffffff
BackgroundDarkness=0,000000
MiscBellUrgent=TRUE
MiscMouseWheelZoom=TRUE
MiscMiddleClickOpensUri=FALSE
MiscCopyOnSelect=FALSE
MiscDefaultWorkingDir=
MiscRewrapOnResize=TRUE
MiscUseShiftArrowsToScroll=FALSE
MiscSlimTabs=FALSE
ShortcutsNoHelpkey=TRUE
ShortcutsNoMenukey=TRUE
DropdownHeight=60
DropdownToggleFocus=FALSE
TitleMode=TERMINAL_TITLE_REPLACE
DropdownOpacity=90
DropdownWidth=50
DropdownMoveToActive=FALSE
DropdownPosition=100
MiscNewTabAdjacent=FALSE
ShortcutsNoMnemonics=TRUE
MiscShowRelaunchDialog=TRUE
MiscSearchDialogOpacity=100
MiscShowUnsafePasteDialog=TRUE
BindingBackspace=TERMINAL_ERASE_BINDING_ASCII_DELETE
BindingDelete=TERMINAL_ERASE_BINDING_DELETE_SEQUENCE
DropdownAlwaysShowTabs=FALSE
DropdownKeepOpenDefault=TRUE
DropdownStatusIcon=FALSE

5
.config/yt-dlp/config Normal file
View File

@ -0,0 +1,5 @@
--embed-subs
--all-subs
--add-metadata
--format-sort="res:1080"
# --sponsorblock-remove="sponsor,selfpromo"

107
.config/zsh/.zaliases Normal file
View File

@ -0,0 +1,107 @@
# -*- mode: shell-script; -*-
alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../.."
alias .....="cd ../../../.."
alias ls="ls --color=auto -v"
alias ll="ls -lh"
alias l="ls -1"
alias la="ls -a"
alias grep="grep --color=auto"
alias zgrep="zgrep --color=auto"
alias hgrep='history | grep'
alias psgrep="ps aux | grep -v grep | grep"
alias netgrep="netstat -tulpen | grep"
alias ltail="tail -n 50"
alias lhead="head -n 50"
alias po="popd"
alias man="LC_MESSAGES=C man"
alias make="LC_MESSAGES=C make"
alias free="LC_MESSAGES=C free"
if [[ "${VISUAL}" =~ "emacs(client|remote)" ]]; then
local tmp_editor="${VISUAL/ -c/}"
local ec_opts=""
# Workaround for <https://emacs.stackexchange.com/q/63843>.
[[ -z "${DISPLAY}" ]] && ec_opts=" -c"
alias e="${tmp_editor}${ec_opts}"
if [[ "${tmp_editor}" =~ "emacsremote$" ]]; then
alias se="${tmp_editor} --sudo"
elif pgrep -f "emacs --daemon" > /dev/null; then
# Edit files as root in the Emacs instance run by the current user.
alias se="$(command -v emacsremote) ${emacsclient_opts} --sudo --local"
fi
else
alias e="${VISUAL}"
alias se="sudo ${VISUAL}"
fi
alias ta="tmux attach -t tastytea || tmux new-session -s tastytea"
alias tmux_monitor="tmux source-file ~/.tmux/monitor.session"
alias exifremove='exiftool -all='
tmp_alias_command='git --git-dir=${HOME}/.dotfiles/ --work-tree=${HOME}'
if [[ "${HOST}" != "ventiloplattform" && -f ~/.ssh/noid_dotfiles ]]; then
tmp_alias_command="GIT_SSH_COMMAND=\"ssh -i ~/.ssh/noid_dotfiles\" ${tmp_alias_command}"
fi
alias config="${tmp_alias_command}"
unset tmp_alias_config
alias please='sudo'
alias 🥺='sudo'
command -v thefuck > /dev/null && eval $(thefuck --alias)
alias cmake_static='cmake -DCMAKE_FIND_LIBRARY_SUFFIXES=".a" -DBUILD_SHARED_LIBS=OFF -D CMAKE_EXE_LINKER_FLAGS="-static"'
# Ask before removing crontab.
alias crontab='crontab -i'
# Explicitly use lesspipe.
if command -v lesspipe > /dev/null; then
alias lessp='LESSOPEN="|lesspipe %s" less'
fi
# Follow mode does not work with highlight.
alias lessf='LESSOPEN="" less +F'
alias cp='cp --reflink=auto' # CoW copies if possible.
alias ip='ip -color -brief'
# Add --accept=".jpg,.png" or whatever.
alias wget_leech='wget --no-directories --page-requisites --span-hosts'
# OS specific settings.
case $(lsb_release -i -s 2> /dev/null) in
Gentoo)
# Directory aliases
for dir in /etc/portage/package.*; do
hash -d -- -$(basename ${dir})=${dir}
done
if [[ -d /usr/local/portage ]]; then
hash -d -- -localrepo=/usr/local/portage
fi
;;
Debian|Raspbian|Ubuntu)
alias qs="apt-cache search --names-only"
;;
esac
# Directory aliases for Gentoo repos
for repo in overlay-tastytea guru gentoo; do
[[ -d ~/Projekte/${repo} ]] && hash -d -- -${repo}=~/Projekte/${repo}
done
# Host specific settings.
case "${HOST}" in
"ventiloplattform")
alias ebuildtester_guru='ebuildtester --update --pull --threads 1 --portage-dir "$(portageq get_repo_path / gentoo)" --unstable --overlay-dir ~/Projekte/guru'
;;
esac

68
.config/zsh/.zkeys Normal file
View File

@ -0,0 +1,68 @@
#-*- mode: shell-script; -*-
# Keybindings - from zshwiki.org
# create a zkbd compatible hash;
# to add other keys to this hash, see: man 5 terminfo
typeset -A key
key[Home]=${terminfo[khome]}
key[End]=${terminfo[kend]}
key[Insert]=${terminfo[kich1]}
key[Delete]=${terminfo[kdch1]}
key[Up]=${terminfo[kcuu1]}
key[Down]=${terminfo[kcud1]}
key[Left]=${terminfo[kcub1]}
key[Right]=${terminfo[kcuf1]}
key[PageUp]=${terminfo[kpp]}
key[PageDown]=${terminfo[knp]}
key[Backspace]=${terminfo[kbs]}
# setup key accordingly
[[ -n "${key[Home]}" ]] && bindkey "${key[Home]}" beginning-of-line
[[ -n "${key[End]}" ]] && bindkey "${key[End]}" end-of-line
[[ -n "${key[Insert]}" ]] && bindkey "${key[Insert]}" overwrite-mode
[[ -n "${key[Delete]}" ]] && bindkey "${key[Delete]}" delete-char
[[ -n "${key[Up]}" ]] && bindkey "${key[Up]}" up-line-or-history
[[ -n "${key[Down]}" ]] && bindkey "${key[Down]}" down-line-or-history
[[ -n "${key[Left]}" ]] && bindkey "${key[Left]}" backward-char
[[ -n "${key[Right]}" ]] && bindkey "${key[Right]}" forward-char
[[ -n "${key[Backspace]}" ]] && bindkey "${key[Backspace]}" backward-delete-char
# Finally, make sure the terminal is in application mode, when zle is
# active. Only then are the values from $terminfo valid.
function zle-line-init () {
if [[ "${TERM}" != "linux" ]] && [[ "${TERM}" != "dumb" ]]
then
echoti smkx
fi
}
function zle-line-finish () {
if [[ "${TERM}" != "linux" ]] && [[ "${TERM}" != "dumb" ]]
then
echoti smkx
fi
}
zle -N zle-line-init
zle -N zle-line-finish
bindkey '^[[1;5A' history-substring-search-up
bindkey '^[[1;5B' history-substring-search-down
bindkey '^H' backward-delete-word # C-BackSpace
bindkey '^[[3;5~' delete-word # C-Del
if [[ "${TERM}" =~ "^rxvt" ]]; then
bindkey '^[[3^' delete-word
bindkey '^[Od' backward-word
bindkey '^[Oc' forward-word
bindkey '^[Oa' history-substring-search-up
bindkey '^[Ob' history-substring-search-down
fi
bindkey '\eu' undo # Alt+u
bindkey '\eU' redo # Alt+Shift+u
bindkey '^q' push-line-or-edit

191
.config/zsh/.zprofile Normal file
View File

@ -0,0 +1,191 @@
function() # Keep local variables in here.
{
############################## Paths ###########################################
export PATH="${HOME}/bin:${HOME}/.local/bin:${PATH}"
if [[ -z "${ZDOTDIR}" ]]; then
if [[ -n "${XDG_CONFIG_HOME}" ]]; then
ZDOTDIR="${XDG_CONFIG_HOME}/zsh"
else
ZDOTDIR="${HOME}/.config/zsh"
fi
export ZDOTDIR
fi
export HISTFILE="${ZDOTDIR}/.zsh_history"
export ZSH_CACHE_DIR="${XDG_CACHE_HOME:-${HOME}/.cache}/zsh"
mkdir -p ${ZSH_CACHE_DIR}
if [[ -d "${HOME}/.local/share/man/" ]]; then
export MANPATH="${MANPATH}:${HOME}/.local/share/man"
fi
############################ Editor ############################################
# Set preferred editor.
# Add Defaults env_keep += "SSH_CONNECTION" to /etc/sudoers.d/ssh_vars
if command -v emacsclient > /dev/null; then
export EMACS_SOCKET_NAME="${HOME}/.emacs.d/server/server"
if pgrep -f "emacs --daemon" > /dev/null; then
VISUAL="$(command -v emacsclient) -c"
else
VISUAL="$(command -v emacs)"
fi
if [[ $(id -u) -eq 0 ]]; then
# Edit files as root in the Emacs instance run by the current user.
VISUAL="$(command -v emacsremote) --sudo --local"
fi
elif command -v emacs > /dev/null; then
VISUAL="$(command -v emacs)"
elif command -v nano > /dev/null; then
VISUAL="$(command -v nano)"
elif command -v vim > /dev/null; then
VISUAL="$(command -v vim)"
fi
export VISUAL
export EDITOR="${VISUAL}"
export ALTERNATE_EDITOR="$(command -v nano)"
############################# Plugins ##########################################
if command -v fzf > /dev/null; then
# Only load these plugins if fzf was found.
local depends_on_fzf="Aloxaf/fzf-tab"
fi
if command -v antibody > /dev/null; then
local plugin_cache_dir="$(antibody home)"
export ZSH_PLUGIN_SOURCE="${plugin_cache_dir}/antibody-plugins.zsh"
if [[ -f ${ZSH_PLUGIN_SOURCE} ]] \
&& [[ $(stat --format="%s" ${ZSH_PLUGIN_SOURCE}) -ne 0 ]]; then
local mod_month="$(stat --format="%y" ${ZSH_PLUGIN_SOURCE} 2> /dev/null | cut -d\- -f2)"
# Update plugins every month.
if [[ ${mod_month} -ne $(date +'%m') ]]; then
antibody update --parallelism=$(nproc --ignore=1) \
&& touch ${ZSH_PLUGIN_SOURCE}
fi
else
mkdir -p ${plugin_cache_dir}
antibody bundle --parallelism=$(nproc --ignore=1) <<EOF > ${ZSH_PLUGIN_SOURCE}
robbyrussell/oh-my-zsh path:lib
robbyrussell/oh-my-zsh path:plugins/history-substring-search
${depends_on_fzf}
zsh-users/zsh-autosuggestions
mafredri/zsh-async
zsh-users/zsh-syntax-highlighting
EOF
fi
else
echo "antibody not found." >&2
echo " curl -sfL https://git.io/antibody | sudo sh -s - -b /usr/local/bin" >&2
fi
# https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters.md
export ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets)
############################# Variables ########################################
# minicom color on.
export MINICOM="-c on -R utf-8"
export PASSWORD_STORE_GENERATED_LENGTH="43"
export LESS="--tabs=4 --RAW-CONTROL-CHARS --LONG-PROMPT"
if command -v highlight > /dev/null; then
LESSOPEN="| $(command -v highlight) --force --out-format=truecolor --style=molokai %s"
elif command -v src-hilite-lesspipe.sh > /dev/null; then
LESSOPEN="| $(command -v src-hilite-lesspipe.sh) %s"
elif command -v lesspipe > /dev/null; then
LESSOPEN="| lesspipe %s"
fi
export LESSOPEN
# Show AS for each hop.
export MTR_OPTIONS="-z"
# Set SDL soundfont.
if [[ -f "/usr/share/sounds/sf2/FluidR3_GM.sf2" ]]; then
export SDL_SOUNDFONTS="/usr/share/sounds/sf2/FluidR3_GM.sf2"
fi
# Make virsh use the local hypervisor by default.
if command -v virsh > /dev/null; then
export LIBVIRT_DEFAULT_URI="qemu:///system"
fi
# Use ISO 8601 date & time.
if command -v locale > /dev/null; then
locale -a | grep -q en_DK && export LC_TIME="en_DK.UTF-8"
fi
export CCACHE_DIR="/var/cache/ccache"
# Host specific settings.
case $(hostname) in
ventiloplattform|sprotznog)
if command -v alacritty > /dev/null; then
export TERMINAL="alacritty"
elif command -v xfce4-terminal > /dev/null; then
export TERMINAL="xfce4-terminal"
elif command -v urxvt > /dev/null; then
export TERMINAL="urxvt"
elif command -v xterm > /dev/null; then
export TERMINAL="xterm"
fi
export SSH_ASKPASS="/usr/bin/ssh-askpass-fullscreen"
export CFLAGS="-march=native -pipe"
export CXXFLAGS="${CFLAGS}"
;;
schnibble | gaffer | localhost)
export GIT_SSH_COMMAND="ssha" # Termux command for ssh with key-add.
export CPATH="/data/data/com.termux/files/usr/local/include"
export LIBRARY_PATH="/data/data/com.termux/files/usr/local/lib"
;;
esac
[[ -f ${ZDOTDIR}/.zsecrets ]] && source ${ZDOTDIR}/.zsecrets
############################# Daemons ##########################################
# Run SSH/GPG agents if they are installed and not already started. If they are
# started, attempt to inherit them.
if command -v keychain > /dev/null; then
if [[ $(pgrep --uid $(id -u) ssh-agent)
&& $(pgrep --uid $(id -u) gpg-agent) ]]; then
# Set environment variables from files.
if [[ -z "${SSH_AUTH_SOCK}" ]]; then
source "${HOME}/.keychain/$(hostname)-sh"
fi
if [[ -z "${GPG_AGENT_INFO}" ]]; then
source "${HOME}/.keychain/$(hostname)-sh-gpg"
fi
else
# Start SSH/GPG agents and write environment variables to files.
eval $(keychain --agents "ssh,gpg" \
--timeout $((60*16)) \
--inherit local \
--quiet --eval)
# <https://github.com/funtoo/keychain/issues/126>
eval $(keychain --agents "ssh,gpg" \
--timeout $((60*16)) \
--inherit local \
--quiet --eval)
fi
else
# keychain not installed, start SSH/GPG agents if they are not running.
if command -v ssh-agent > /dev/null \
&& [[ ! $(pgrep --uid $(id -u) ssh-agent) ]]; then
eval $(ssh-agent -t 16H 2> /dev/null)
fi
if command -v gpg-agent > /dev/null \
&& [[ ! $(pgrep --uid $(id -u) gpg-agent) ]]; then
eval $(gpg-agent --daemon --quiet --default-cache-ttl $((60*16)) \
--max-cache-ttl $((60*16)))
fi
fi
return 0
}

190
.config/zsh/.zshrc Normal file
View File

@ -0,0 +1,190 @@
function() # Keep local variables in here.
{
# Initialize completions.
autoload -Uz compinit
compinit -d "${ZSH_CACHE_DIR}/.zcompdump"
############################## Plugins #########################################
# Hyphen-insensitive completion. Case sensitive completion must be off. _ and -
# will be interchangeable.
HYPHEN_INSENSITIVE="true"
# Enable command auto-correction.
ENABLE_CORRECTION="true"
# Set up in .zprofile.
source ${ZSH_PLUGIN_SOURCE}
# Fuzzy finder, <https://github.com/junegunn/fzf>.
export FZF_CTRL_R_OPTS="--layout=reverse"
if [[ -f /usr/share/fzf/key-bindings.zsh ]]; then # Current Gentoo path.
source /usr/share/fzf/key-bindings.zsh
elif [[ -f /usr/share/fzf/fzf.zsh ]]; then
source /usr/share/fzf/fzf.zsh
elif [[ -f /usr/share/zsh/site-contrib/fzf.zsh ]]; then
source /usr/share/zsh/site-contrib/fzf.zsh
fi
# <https://github.com/Aloxaf/fzf-tab/wiki/Configuration>
zstyle ':fzf-tab:*' fzf-command ftb-tmux-popup
zstyle ':fzf-tab:complete:*:*' popup-pad 200 2 # Add padding [right, bottom]
zstyle ':completion:*:descriptions' format '[%d]'
zstyle ':fzf-tab:*' show-group none
zstyle ':fzf-tab:*' prefix ''
zstyle ':fzf-tab:complete:(ls|rmdir|grep):argument-rest' fzf-preview 'ls -1 --color=always $realpath'
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'ls -1 --color=always $realpath'
zstyle ':fzf-tab:complete:rg:operand-argument-rest' fzf-preview 'ls -1 --color=always $realpath'
zstyle ':fzf-tab:complete:(less|cat):argument-rest' fzf-preview 'less $realpath'
zstyle ':fzf-tab:complete:emacsclient:*' fzf-preview 'less $realpath'
zstyle ':fzf-tab:complete:(lessp|evince|mpv):*argument-rest' fzf-preview 'LESSOPEN="|lesspipe %s" less $realpath'
zstyle ':fzf-tab:complete:file:*' fzf-preview 'file --brief $realpath'
zstyle ':fzf-tab:complete:git-log:argument-1' fzf-preview 'git log --color=always $word'
zstyle ':fzf-tab:complete:git-show:argument-rest' fzf-preview 'git show --color=always $word'
zstyle ':fzf-tab:complete:git-(add|diff|restore):argument-1' fzf-preview 'git diff --color=always $word'
zstyle ':fzf-tab:complete:man:*' fzf-preview 'whatis -l $word | cut -d- -f2,3,4,5,6'
async_init
############################# History ##########################################
# One of the plugins in ${ZSH_PLUGIN_SOURCE} is changing history options.
export HISTSIZE=50000 # In memory.
export SAVEHIST=10000 # On disk.
# Stamp shown in the history command output.
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
HIST_STAMPS="yyyy-mm-dd"
# Write command to history file after it is finished, with time and duration.
# setopt NO_SHARE_HISTORY EXTENDED_HISTORY INC_APPEND_HISTORY_TIME
setopt EXTENDED_HISTORY SHARE_HISTORY
# Import new commands from the history file.
function precmd_history
{
fc -RI
}
# precmd_functions+=precmd_history
############################## Completion ######################################
# Configure completions.
zstyle ':completion::complete:*' cache-path "${ZSH_CACHE_DIR}/.zcompcache"
zstyle ':completion:*' completer _complete _ignored _approximate
zstyle ':completion:*' file-sort modification # access didn't work.
# Not sure why the next line is needed. Maybe fzf-tab is setting it to true?
zstyle ':completion:complete:*' sort false # Needed for file-sort.
zstyle ':completion:complete:*:options' sort false # Don't sort command options.
zstyle ':completion:*:*:*:*:processes' \
command "ps -u $USER -o pid,user,comm,cmd -w -w"
compdef '_dispatch git git' config # git completions for config.
################################################################################
function generate_terminfo_24bit()
{
if [[ -z "${1}" ]]; then
echo "Usage: generate_terminfo_24bit <terminal>" >&2
return
fi
terminal="${1}"
if [[ -z "${TMPDIR}" ]]; then
local TMPDIR="/tmp"
fi
# Generate ${terminal}-24bit(s).
cat <<EOF > ${TMPDIR}/terminfo-24bit.src
# Use colon separators.
${terminal}-24bit|${terminal} with 24-bit direct color mode,
use=${terminal}-256color,
setb24=\E[48:2:%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%dm,
setf24=\E[38:2:%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%dm,
# Use semicolon separators.
${terminal}-24bits|${terminal} with 24-bit direct color mode,
use=${terminal}-256color,
setb24=\E[48;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%dm,
setf24=\E[38;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%dm,
EOF
tic -x -o ~/.terminfo ${TMPDIR}/terminfo-24bit.src
rm ${TMPDIR}/terminfo-24bit.src
}
case ${TERM} in
(xterm* | tmux* | rxvt* | screen* | alacritty)
DISABLE_AUTO_TITLE="true"
# Write some info to terminal title.
# This is seen when the shell prompts for input.
function precmd_title {
print -Pn "\e]0;%m: %(1j,%j job%(2j|s|); ,)%~\a"
}
precmd_functions+=precmd_title
# Write command and args to terminal title.
# This is seen while the shell waits for a command to complete.
function preexec_title {
printf "\e]0;%s: %s; %s\a" "${HOST}" "${1}" "$(print -Pn %~)"
}
preexec_functions+=preexec_title
# # Enable TrueColor.
# if [[ "${COLORTERM}" = "truecolor" || "${TERM}" =~ "24bit" ]]; then
# [[ ! -e ~/.terminfo/x/xterm-24bit ]] && generate_terminfo_24bit "xterm"
# [[ ! -e ~/.terminfo/r/rxvt-unicode-24bit ]] \
# && generate_terminfo_24bit "rxvt-unicode"
# [[ ! -e ~/.terminfo/t/tmux-24bit ]] && generate_terminfo_24bit "tmux"
# [[ ! -e ~/.terminfo/s/screen-24bit ]] && generate_terminfo_24bit "screen"
# export TERM="${TERM//256color/24bit}"
# export COLORTERM="truecolor"
# fi
# tmux-direct is available since ncurses-6.2-p20201003.
if [[ "${TERM}" == "tmux-256color" ]] \
&& [[ "${COLORTERM}" == "truecolor" ]]; then
if [[ -f "/usr/share/terminfo/t/tmux-direct" ]]; then
alias $(command -v emacsclient)="TERM=tmux-direct $(command -v emacsclient)"
alias $(command -v emacsremote)="TERM=tmux-direct $(command -v emacsremote)"
fi
fi
;;
(dumb) # Emacs shells and TRAMP.
unsetopt zle
if [[ "${INSIDE_EMACS}" =~ "tramp" ]]; then
HISTFILE="/dev/null"
fi
alias less='cat'
alias more='cat'
export PAGER='cat'
;;
esac
# Host specific settings.
case $(hostname) in
schnibble | gaffer | localhost)
function sudo() {
su -c "${*}"
}
local DEFAULT_USER="u0_a197"
;;
esac
# Make sure each function is only called 1 time.
precmd_functions=(${(u)precmd_functions})
preexec_functions=(${(u)preexec_functions})
[[ -f ${ZDOTDIR}/.zkeys ]] && source ${ZDOTDIR}/.zkeys
[[ -f ${ZDOTDIR}/.zaliases ]] && source ${ZDOTDIR}/.zaliases
[[ -f ${ZDOTDIR}/functions.zsh ]] && source ${ZDOTDIR}/functions.zsh
local DEFAULT_USER="${DEFAULT_USER:-tastytea}"
[[ -f ${ZDOTDIR}/tastytea.zsh-theme ]] && source ${ZDOTDIR}/tastytea.zsh-theme
return 0
}

29
.config/zsh/functions.zsh Normal file
View File

@ -0,0 +1,29 @@
#!/bin/zsh
# Various functions, to be sourced.
# Get backtrace from gdb.
function gdb_get_backtrace()
{
local exe=$1
local core=$2
gdb ${exe} \
--core ${core} \
--batch \
--quiet \
-ex "thread apply all bt full" \
-ex "quit"
}
# Export variable to Emacs.
function export-emacs
{
if [[ "$(emacsclient -e t)" != 't' ]]; then
return 1
fi
for name in "${@}"; do
value=$(eval echo \"\$${name}\")
emacsclient -e "(setenv \"${name}\" \"${value}\")" >/dev/null
done
}

View File

@ -0,0 +1,137 @@
# -*- mode: shell-script; -*-
# Zsh theme. Changes prompt and syntax highlighting. Needs Zsh >= 5.0.0.
# Asynchronous prompt if zsh-async is detected, syntax highlighting if
# zsh-syntax-highlighting is detected.
function() # Keep local variables in here
{
# Make theme variables global for later use
typeset -gA zsh_theme_colours
zsh_theme_colours[prompt]="63" # violet
zsh_theme_colours[vcs]="97" # dark pink
zsh_theme_colours[highlight]="207" # bright pink
zsh_theme_colours[minor]="60" # dark violet
zsh_theme_colours[inactive]="236" # grey
[[ -n "${SSH_CONNECTION}" ]] && zsh_theme_colours[prompt]="yellow"
[[ $(id -u) -eq 0 ]] && zsh_theme_colours[prompt]="red"
# Show username if it is not the default user
local showuser=""
if [[ "${USERNAME}" != "${DEFAULT_USER}" ]] && [[ -n "${USERNAME}" ]]; then
showuser="%n "
fi
autoload -Uz vcs_info
zstyle ':vcs_info:*' enable git svn hg # vcs_info_printsys
zstyle ':vcs_info:*' formats "%F{${zsh_theme_colours[vcs]}}(%b)%u%c%f "
zstyle ':vcs_info:*' actionformats "%F{${zsh_theme_colours[vcs]}}(%b|%F{${zsh_theme_colours[highlight]}}%a%F{${zsh_theme_colours[vcs]}})%u%c%f "
zstyle ':vcs_info:*' stagedstr "%F{${zsh_theme_colours[highlight]}}●"
zstyle ':vcs_info:*' unstagedstr "%F{${zsh_theme_colours[highlight]}}○"
zstyle ':vcs_info:*' check-for-changes true
# Needs mafredri/zsh-async, async_init must be called before using
function async_vcs_prompt()
{
# From https://vincent.bernat.ch/en/blog/2019-zsh-async-vcs-info
_my_vcs_async_start() {
async_start_worker vcs_info
async_register_callback vcs_info _my_vcs_info_done
}
_my_vcs_info() {
cd -q $1
vcs_info
print ${vcs_info_msg_0_}
}
_my_vcs_info_done() {
local job=$1
local return_code=$2
local stdout=$3
local more=$6
if [[ $job == '[async]' ]]; then
if [[ $return_code -eq 2 ]]; then
# Need to restart the worker
_my_vcs_async_start
return
fi
fi
vcs_info_msg_0_=$stdout
(( $more )) || zle reset-prompt
}
_my_vcs_chpwd() {
# Change colour of old value
vcs_info_msg_0_="${vcs_info_msg_0_//\%F\{${zsh_theme_colours[vcs]}/%F{${zsh_theme_colours[inactive]}}"
vcs_info_msg_0_="${vcs_info_msg_0_//\%F\{${zsh_theme_colours[highlight]}/%F{${zsh_theme_colours[inactive]}}"
}
_my_vcs_precmd() {
async_flush_jobs vcs_info
async_job vcs_info _my_vcs_info $PWD
}
_my_vcs_async_start
add-zsh-hook precmd _my_vcs_precmd
add-zsh-hook chpwd _my_vcs_chpwd
}
# Use asynchronous VCS prompt if zsh-async is installed and initialized
if [[ ${ASYNC_INIT_DONE} -eq 1 ]]; then
async_vcs_prompt
else
add-zsh-hook precmd vcs_info
fi
setopt prompt_subst
PROMPT="%B%F{${zsh_theme_colours[prompt]}}${showuser}%b"'${vcs_info_msg_0_}'"%B%F{${zsh_theme_colours[prompt]}}%#%f%b "
RPROMPT="%F{${zsh_theme_colours[minor]}}%(?..[%B%F{${zsh_theme_colours[highlight]}}%?%b%F{${zsh_theme_colours[minor]}}] )%4~%f"
# <https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters.md>
if [[ -n "${ZSH_HIGHLIGHT_VERSION}" ]]; then
zsh_theme_colours[cmd]="213" # light pink
zsh_theme_colours[word]="172" # orange
zsh_theme_colours[misc]="81" # cyan
zsh_theme_colours[variable]="204" # salmon
zsh_theme_colours[quote]="76" # green
zsh_theme_colours[comment]="${zsh_theme_colours[minor]}"
zsh_theme_colours[error]="${zsh_theme_colours[highlight]}"
ZSH_HIGHLIGHT_STYLES[command]="fg=${zsh_theme_colours[cmd]}"
ZSH_HIGHLIGHT_STYLES[function]="fg=${zsh_theme_colours[cmd]}"
ZSH_HIGHLIGHT_STYLES[alias]="fg=${zsh_theme_colours[cmd]}"
ZSH_HIGHLIGHT_STYLES[builtin]="fg=${zsh_theme_colours[cmd]}"
ZSH_HIGHLIGHT_STYLES[precommand]="fg=${zsh_theme_colours[cmd]},underline"
ZSH_HIGHLIGHT_STYLES[arg0]="fg=${zsh_theme_colours[cmd]}"
ZSH_HIGHLIGHT_STYLES[reserved-word]="fg=${zsh_theme_colours[word]}"
ZSH_HIGHLIGHT_STYLES[commandseparator]="fg=${zsh_theme_colours[misc]}"
ZSH_HIGHLIGHT_STYLES[globbing]="fg=${zsh_theme_colours[misc]}"
ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter]="fg=${zsh_theme_colours[misc]},bold"
ZSH_HIGHLIGHT_STYLES[process-substitution-delimiter]="fg=${zsh_theme_colours[misc]},bold"
ZSH_HIGHLIGHT_STYLES[back-quoted-argument-delimiter]="fg=${zsh_theme_colours[misc]},bold"
ZSH_HIGHLIGHT_STYLES[redirection]="fg=${zsh_theme_colours[misc]}"
ZSH_HIGHLIGHT_STYLES[bracket-level-1]='fg=${zsh_theme_colours[misc]}'
ZSH_HIGHLIGHT_STYLES[bracket-level-2]='fg=${zsh_theme_colours[misc]}'
ZSH_HIGHLIGHT_STYLES[bracket-level-3]='fg=${zsh_theme_colours[misc]}'
ZSH_HIGHLIGHT_STYLES[bracket-level-4]='fg=${zsh_theme_colours[misc]}'
ZSH_HIGHLIGHT_STYLES[arithmetic-expansion]="fg=${zsh_theme_colours[variable]}"
ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]="fg=${zsh_theme_colours[variable]}"
ZSH_HIGHLIGHT_STYLES[history-expansion]="fg=${zsh_theme_colours[variable]}"
ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]="fg=${zsh_theme_colours[variable]}"
ZSH_HIGHLIGHT_STYLES[single-quoted-argument]="fg=${zsh_theme_colours[quote]}"
ZSH_HIGHLIGHT_STYLES[double-quoted-argument]="fg=${zsh_theme_colours[quote]}"
ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]="fg=${zsh_theme_colours[quote]}"
ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]="fg=${zsh_theme_colours[quote]}"
ZSH_HIGHLIGHT_STYLES[comment]="fg=${zsh_theme_colours[comment]}"
ZSH_HIGHLIGHT_STYLES[unknown-token]="fg=${zsh_theme_colours[error]},bold,standout"
ZSH_HIGHLIGHT_STYLES[bracket-error]="fg=${zsh_theme_colours[error]},bold,standout"
fi
}

1
.emacs.d Submodule

@ -0,0 +1 @@
Subproject commit 60bebf60693776fac1d60a992b2dafb3485d1723

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule ".emacs.d"]
path = .emacs.d
url = git@schlomp.space:tastytea/.emacs.d.git

568
.globalrc Normal file
View File

@ -0,0 +1,568 @@
#
# Copyright (c) 1998, 1999, 2000, 2001, 2002, 2003, 2010, 2011, 2013,
# 2015, 2016, 2017
# Tama Communications Corporation
#
# This file is part of GNU GLOBAL.
#
# This file is free software; as a special exception the author gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# *
# Configuration file for GNU GLOBAL source code tagging system.
#
# Basically, GLOBAL doesn't need this configuration file ('gtags.conf'),
# because it has default values in itself. If you have this file as
# '/etc/gtags.conf' or "$HOME/.globalrc" then GLOBAL overwrite the default
# values with values in the file.
# Configuration file is also necessary to use plug-in parsers.
#
# The format is similar to termcap(5). You can specify a target with
# GTAGSLABEL environment variable. Default target is 'default'.
#
# If you want to have default values for yourself, it is recommended to
# use the following method:
#
# default:\
# :tc=default@~/.globalrc:\ <= includes default values from ~/.globalrc.
# :tc=native:
#
# Please refer to gtags.conf(5) for details.
#
default:\
:tc=native:
native:\
:tc=gtags:tc=htags:
user:\
:tc=user-custom:tc=htags:
ctags:\
:tc=exuberant-ctags:tc=htags:
new-ctags:\
:tc=universal-ctags:tc=htags:
pygments:\
:tc=pygments-parser:tc=htags:
#
# [How to merge two or more parsers?]
#
# Rule: The first matched langmap is adopted.
#
# ":tc=builtin-parser:tc=pygments-parser:" means:
# If built-in parser exists for the target, it is used.
# Else if pygments parser exists it is used.
#
native-pygments:\
:tc=builtin-parser:tc=pygments-parser:htags:
#---------------------------------------------------------------------
# Configuration for gtags(1)
# See gtags(1).
#---------------------------------------------------------------------
common:\
:skip=HTML/,HTML.pub/,tags,TAGS,ID,y.tab.c,y.tab.h,gtags.files,cscope.files,cscope.out,cscope.po.out,cscope.in.out,SCCS/,RCS/,CVS/,CVSROOT/,{arch}/,autom4te.cache/,*.orig,*.rej,*.bak,*~,#*#,*.swp,*.tmp,*_flymake.*,*_flymake,*.o,*.a,*.so,*.lo,*.zip,*.gz,*.bz2,*.xz,*.lzh,*.Z,*.tgz,*.min.js,*min.css,doc/,html/:
#
# Built-in parsers.
#
gtags:\
:tc=common:\
:tc=builtin-parser:
builtin-parser:\
:langmap=c\:.c.h,yacc\:.y,asm\:.s.S,java\:.java,cpp\:.c++.cc.hh.cpp.cxx.hxx.hpp.C.H,php\:.php.php3.phtml:
#
# skeleton for user's custom parser.
#
user-custom|User custom plugin parser:\
:tc=common:\
:langmap=c\:.c.h:\
:gtags_parser=c\:$libdir/gtags/user-custom.la:
#
# Plug-in parser to use Exuberant Ctags.
#
exuberant-ctags|plugin-example|setting to use Exuberant Ctags plug-in parser:\
:tc=common:\
:ctagscom=/usr/bin/ctags:\
:ctagslib=$libdir/gtags/exuberant-ctags.la:\
:tc=common-ctags-maps:
#
# A common map for both Exuberant Ctags and Universal Ctags.
# Don't include definitions of ctagscom and ctagslib in this entry.
#
common-ctags-maps:\
# Ant *.build.xml (out of support)
# Asm *.[68][68][kKsSxX] *.[xX][68][68] (out of support)
:langmap=Asm\:.asm.ASM.s.S.A51.29k.29K:\
:langmap=Asp\:.asp.asa:\
:langmap=Awk\:.awk.gawk.mawk:\
:langmap=Basic\:.bas.bi.bb.pb:\
:langmap=BETA\:.bet:\
:langmap=C\:.c:\
:langmap=C++\:.c++.cc.cp.cpp.cxx.h.h++.hh.hp.hpp.hxx:\
:langmap=C#\:.cs:\
:langmap=Cobol\:.cbl.cob.CBL.COB:\
:langmap=DosBatch\:.bat.cmd:\
:langmap=Eiffel\:.e:\
:langmap=Erlang\:.erl.ERL.hrl.HRL:\
:langmap=Flex\:.as.mxml:\
:langmap=Fortran\:.f.for.ftn.f77.f90.f95:\
:langmap=HTML\:.htm.html:\
:langmap=Java\:.java:\
:langmap=JavaScript\:.js:\
:langmap=Lisp\:.cl.clisp.el.l.lisp.lsp:\
:langmap=Lua\:.lua:\
# Make [Mm]akefile GNUmakefile (out of support)
:langmap=Make\:.mak.mk:\
:langmap=MatLab\:.m:\
:langmap=OCaml\:.ml.mli:\
:langmap=Pascal\:.p.pas:\
:langmap=Perl\:.pl.pm.plx.perl:\
:langmap=PHP\:.php.php3.phtml:\
:langmap=Python\:.py.pyx.pxd.pxi.scons:\
:langmap=REXX\:.cmd.rexx.rx:\
:langmap=Ruby\:.rb.ruby:\
:langmap=Scheme\:.SCM.SM.sch.scheme.scm.sm:\
:langmap=Sh\:.sh.SH.bsh.bash.ksh.zsh:\
:langmap=SLang\:.sl:\
:langmap=SML\:.sml.sig:\
:langmap=SQL\:.sql:\
:langmap=Tcl\:.tcl.tk.wish.itcl:\
:langmap=Tex\:.tex:\
:langmap=Vera\:.vr.vri.vrh:\
:langmap=Verilog\:.v:\
:langmap=VHDL\:.vhdl.vhd:\
:langmap=Vim\:.vim:\
:langmap=YACC\:.y:\
:gtags_parser=Asm\:$ctagslib:\
:gtags_parser=Asp\:$ctagslib:\
:gtags_parser=Awk\:$ctagslib:\
:gtags_parser=Basic\:$ctagslib:\
:gtags_parser=BETA\:$ctagslib:\
:gtags_parser=C\:$ctagslib:\
:gtags_parser=C++\:$ctagslib:\
:gtags_parser=C#\:$ctagslib:\
:gtags_parser=Cobol\:$ctagslib:\
:gtags_parser=DosBatch\:$ctagslib:\
:gtags_parser=Eiffel\:$ctagslib:\
:gtags_parser=Erlang\:$ctagslib:\
:gtags_parser=Flex\:$ctagslib:\
:gtags_parser=Fortran\:$ctagslib:\
:gtags_parser=HTML\:$ctagslib:\
:gtags_parser=Java\:$ctagslib:\
:gtags_parser=JavaScript\:$ctagslib:\
:gtags_parser=Lisp\:$ctagslib:\
:gtags_parser=Lua\:$ctagslib:\
:gtags_parser=Make\:$ctagslib:\
:gtags_parser=MatLab\:$ctagslib:\
:gtags_parser=OCaml\:$ctagslib:\
:gtags_parser=Pascal\:$ctagslib:\
:gtags_parser=Perl\:$ctagslib:\
:gtags_parser=PHP\:$ctagslib:\
:gtags_parser=Python\:$ctagslib:\
:gtags_parser=REXX\:$ctagslib:\
:gtags_parser=Ruby\:$ctagslib:\
:gtags_parser=Scheme\:$ctagslib:\
:gtags_parser=Sh\:$ctagslib:\
:gtags_parser=SLang\:$ctagslib:\
:gtags_parser=SML\:$ctagslib:\
:gtags_parser=SQL\:$ctagslib:\
:gtags_parser=Tcl\:$ctagslib:\
:gtags_parser=Tex\:$ctagslib:\
:gtags_parser=Vera\:$ctagslib:\
:gtags_parser=Verilog\:$ctagslib:\
:gtags_parser=VHDL\:$ctagslib:\
:gtags_parser=Vim\:$ctagslib:\
:gtags_parser=YACC\:$ctagslib:
#
# Plug-in parser to use Universal Ctags.
#
universal-ctags|setting to use Universal Ctags plug-in parser:\
:tc=common:\
:ctagscom=/usr/bin/ctags:\
:ctagslib=$libdir/gtags/universal-ctags.la:\
:tc=common-ctags-maps:\
:langmap=Ada\:.adb.ads.Ada:\
# Please uncomment to use this entry.
# :langmap=Ant\:.xml:\
:langmap=Ant\:.ant:\
:langmap=Clojure\:.clj:\
:langmap=CoffeeScript\:.coffee:\
:langmap=C++\:.inl:\
:langmap=CSS\:.css:\
:langmap=ctags\:.ctags:\
:langmap=D\:.d.di:\
:langmap=Diff\:.diff.patch:\
:langmap=DTS\:.dts.dtsi:\
:langmap=Falcon\:.fal.ftd:\
:langmap=Fortran\:.f03.f08.f15:\
# gdbinit .gdbinit (out of support)
:langmap=gdbinit\:.gdb:\
:langmap=Go\:.go:\
:langmap=JSON\:.json:\
:langmap=m4\:.m4.spt:\
:langmap=ObjectiveC\:.mm.m.h:\
:langmap=OCaml\:.aug:\
:langmap=Perl\:.ph:\
:langmap=Perl6\:.p6.pm6.pm.pl6:\
:langmap=PHP\:.php4.php5.php7:\
:langmap=R\:.r.R.s.q:\
:langmap=reStructuredText\:.rest.reST.rst:\
:langmap=Rust\:.rs:\
:langmap=Sh\:.ash:\
:langmap=SystemVerilog\:.sv.svh.svi:\
# Vim vimrc [._]vimrc gvimrc [._]gvimrc (out of support)
:langmap=Vim\:.vba:\
:langmap=WindRes\:.rc:\
:langmap=Zephir\:.zep:\
# Please uncomment to use this entry.
# :langmap=DBusIntrospect\:.xml:\
# :langmap=Glade\:.glade:\
:gtags_parser=Ada\:$ctagslib:\
:gtags_parser=Ant\:$ctagslib:\
:gtags_parser=Clojure\:$ctagslib:\
:gtags_parser=CoffeeScript\:$ctagslib:\
:gtags_parser=CSS\:$ctagslib:\
:gtags_parser=ctags\:$ctagslib:\
:gtags_parser=D\:$ctagslib:\
:gtags_parser=Diff\:$ctagslib:\
:gtags_parser=DTS\:$ctagslib:\
:gtags_parser=Falcon\:$ctagslib:\
:gtags_parser=gdbinit\:$ctagslib:\
:gtags_parser=Go\:$ctagslib:\
:gtags_parser=JSON\:$ctagslib:\
:gtags_parser=m4\:$ctagslib:\
:gtags_parser=ObjectiveC\:$ctagslib:\
:gtags_parser=Perl6\:$ctagslib:\
:gtags_parser=R\:$ctagslib:\
:gtags_parser=reStructuredText\:$ctagslib:\
:gtags_parser=Rust\:$ctagslib:\
:gtags_parser=SystemVerilog\:$ctagslib:\
:gtags_parser=WindRes\:$ctagslib:\
:gtags_parser=Zephir\:$ctagslib:\
:gtags_parser=DBusIntrospect\:$ctagslib:\
:gtags_parser=Glade\:$ctagslib:
#
# Plug-in parser to use Pygments.
#
pygments-parser|Pygments plug-in parser:\
:ctagscom=/usr/bin/ctags:\
:pygmentslib=$libdir/gtags/pygments-parser.la:\
:tc=common:\
:langmap=ABAP\:.abap:\
:langmap=ANTLR\:.G.g:\
:langmap=ActionScript3\:.as:\
:langmap=Ada\:.adb.ads.ada:\
:langmap=AppleScript\:.applescript:\
:langmap=AspectJ\:.aj:\
:langmap=Aspx-cs\:.aspx.asax.ascx.ashx.asmx.axd:\
:langmap=Asymptote\:.asy:\
:langmap=AutoIt\:.au3:\
:langmap=Awk\:.awk.gawk.mawk:\
:langmap=BUGS\:.bug:\
:langmap=Bash\:.sh.ksh.bash.ebuild.eclass:\
:langmap=Bat\:.bat.cmd:\
:langmap=BlitzMax\:.bmx:\
:langmap=Boo\:.boo:\
:langmap=Bro\:.bro:\
:langmap=C#\:.cs:\
:langmap=C++\:.c++.cc.cp.cpp.cxx.h.h++.hh.hp.hpp.hxx.C.H:\
:langmap=COBOLFree\:.cbl.CBL:\
:langmap=COBOL\:.cob.COB.cpy.CPY:\
:langmap=CUDA\:.cu.cuh:\
:langmap=C\:.c.h:\
:langmap=Ceylon\:.ceylon:\
:langmap=Cfm\:.cfm.cfml.cfc:\
:langmap=Clojure\:.clj:\
:langmap=CoffeeScript\:.coffee:\
:langmap=Common-Lisp\:.cl.lisp.el:\
:langmap=Coq\:.v:\
:langmap=Croc\:.croc:\
:langmap=Csh\:.tcsh.csh:\
:langmap=Cython\:.pyx.pxd.pxi:\
:langmap=Dart\:.dart:\
:langmap=Dg\:.dg:\
:langmap=Duel\:.duel.jbst:\
:langmap=Dylan\:.dylan.dyl.intr:\
:langmap=ECL\:.ecl:\
:langmap=EC\:.ec.eh:\
:langmap=ERB\:.erb:\
:langmap=Elixir\:.ex.exs:\
:langmap=Erlang\:.erl.hrl.es.escript:\
:langmap=Evoque\:.evoque:\
:langmap=FSharp\:.fs.fsi:\
:langmap=Factor\:.factor:\
:langmap=Fancy\:.fy.fancypack:\
:langmap=Fantom\:.fan:\
:langmap=Felix\:.flx.flxh:\
:langmap=Fortran\:.f.f90.F.F90:\
:langmap=GAS\:.s.S:\
:langmap=GLSL\:.vert.frag.geo:\
:langmap=Genshi\:.kid:\
:langmap=Gherkin\:.feature:\
:langmap=Gnuplot\:.plot.plt:\
:langmap=Go\:.go:\
:langmap=GoodData-CL\:.gdc:\
:langmap=Gosu\:.gs.gsx.gsp.vark:\
:langmap=Groovy\:.groovy:\
:langmap=Gst\:.gst:\
:langmap=HaXe\:.hx:\
:langmap=Haml\:.haml:\
:langmap=Haskell\:.hs:\
:langmap=Hxml\:.hxml:\
:langmap=Hybris\:.hy.hyb:\
:langmap=IDL\:.pro:\
:langmap=Io\:.io:\
:langmap=Ioke\:.ik:\
:langmap=JAGS\:.jag.bug:\
:langmap=Jade\:.jade:\
:langmap=JavaScript\:.js:\
:langmap=Java\:.java:\
:langmap=Jsp\:.jsp:\
:langmap=Julia\:.jl:\
:langmap=Koka\:.kk.kki:\
:langmap=Kotlin\:.kt:\
:langmap=LLVM\:.ll:\
:langmap=Lasso\:.lasso:\
:langmap=Literate-Haskell\:.lhs:\
:langmap=LiveScript\:.ls:\
:langmap=Logos\:.x.xi.xm.xmi:\
:langmap=Logtalk\:.lgt:\
:langmap=Lua\:.lua.wlua:\
:langmap=MOOCode\:.moo:\
:langmap=MXML\:.mxml:\
:langmap=Mako\:.mao:\
:langmap=Mason\:.m.mhtml.mc.mi:\
:langmap=Matlab\:.m:\
:langmap=Modelica\:.mo:\
:langmap=Modula2\:.mod:\
:langmap=Monkey\:.monkey:\
:langmap=MoonScript\:.moon:\
:langmap=MuPAD\:.mu:\
:langmap=Myghty\:.myt:\
:langmap=NASM\:.asm.ASM:\
:langmap=NSIS\:.nsi.nsh:\
:langmap=Nemerle\:.n:\
:langmap=NewLisp\:.lsp.nl:\
:langmap=Newspeak\:.ns2:\
:langmap=Nimrod\:.nim.nimrod:\
:langmap=OCaml\:.ml.mli.mll.mly:\
:langmap=Objective-C++\:.mm.hh:\
:langmap=Objective-C\:.m.h:\
:langmap=Objective-J\:.j:\
:langmap=Octave\:.m:\
:langmap=Ooc\:.ooc:\
:langmap=Opa\:.opa:\
:langmap=OpenEdge\:.p.cls:\
:langmap=PHP\:.php.php3.phtml:\
:langmap=Pascal\:.pas:\
:langmap=Perl\:.pl.pm:\
:langmap=PostScript\:.ps.eps:\
:langmap=PowerShell\:.ps1:\
:langmap=Prolog\:.prolog.pro.pl:\
:langmap=Python\:.py.pyw.sc.tac.sage:\
:langmap=QML\:.qml:\
:langmap=REBOL\:.r.r3:\
:langmap=RHTML\:.rhtml:\
:langmap=Racket\:.rkt.rktl:\
:langmap=Ragel\:.rl:\
:langmap=Redcode\:.cw:\
:langmap=RobotFramework\:.robot:\
:langmap=Ruby\:.rb.rbw.rake.gemspec.rbx.duby:\
:langmap=Rust\:.rs.rc:\
:langmap=S\:.S.R:\
:langmap=Scala\:.scala:\
:langmap=Scaml\:.scaml:\
:langmap=Scheme\:.scm.ss:\
:langmap=Scilab\:.sci.sce.tst:\
:langmap=Smalltalk\:.st:\
:langmap=Smarty\:.tpl:\
:langmap=Sml\:.sml.sig.fun:\
:langmap=Snobol\:.snobol:\
:langmap=SourcePawn\:.sp:\
:langmap=Spitfire\:.spt:\
:langmap=Ssp\:.ssp:\
:langmap=Stan\:.stan:\
:langmap=SystemVerilog\:.sv.svh:\
:langmap=Tcl\:.tcl:\
:langmap=TeX\:.tex.aux.toc:\
:langmap=Tea\:.tea:\
:langmap=Treetop\:.treetop.tt:\
:langmap=TypeScript\:.ts:\
:langmap=UrbiScript\:.u:\
:langmap=VB.net\:.vb.bas:\
:langmap=VGL\:.rpf:\
:langmap=Vala\:.vala.vapi:\
:langmap=Velocity\:.vm.fhtml:\
:langmap=Verilog\:.v:\
:langmap=Vhdl\:.vhdl.vhd:\
:langmap=Vim\:.vim:\
:langmap=XBase\:.PRG.prg:\
:langmap=XQuery\:.xqy.xquery.xq.xql.xqm:\
:langmap=XSLT\:.xsl.xslt.xpl:\
:langmap=Xtend\:.xtend:\
:gtags_parser=ABAP\:$pygmentslib:\
:gtags_parser=ANTLR\:$pygmentslib:\
:gtags_parser=ActionScript3\:$pygmentslib:\
:gtags_parser=Ada\:$pygmentslib:\
:gtags_parser=AppleScript\:$pygmentslib:\
:gtags_parser=AspectJ\:$pygmentslib:\
:gtags_parser=Aspx-cs\:$pygmentslib:\
:gtags_parser=Asymptote\:$pygmentslib:\
:gtags_parser=AutoIt\:$pygmentslib:\
:gtags_parser=Awk\:$pygmentslib:\
:gtags_parser=BUGS\:$pygmentslib:\
:gtags_parser=Bash\:$pygmentslib:\
:gtags_parser=Bat\:$pygmentslib:\
:gtags_parser=BlitzMax\:$pygmentslib:\
:gtags_parser=Boo\:$pygmentslib:\
:gtags_parser=Bro\:$pygmentslib:\
:gtags_parser=C#\:$pygmentslib:\
:gtags_parser=C++\:$pygmentslib:\
:gtags_parser=COBOLFree\:$pygmentslib:\
:gtags_parser=COBOL\:$pygmentslib:\
:gtags_parser=CUDA\:$pygmentslib:\
:gtags_parser=C\:$pygmentslib:\
:gtags_parser=Ceylon\:$pygmentslib:\
:gtags_parser=Cfm\:$pygmentslib:\
:gtags_parser=Clojure\:$pygmentslib:\
:gtags_parser=CoffeeScript\:$pygmentslib:\
:gtags_parser=Common-Lisp\:$pygmentslib:\
:gtags_parser=Coq\:$pygmentslib:\
:gtags_parser=Croc\:$pygmentslib:\
:gtags_parser=Csh\:$pygmentslib:\
:gtags_parser=Cython\:$pygmentslib:\
:gtags_parser=Dart\:$pygmentslib:\
:gtags_parser=Dg\:$pygmentslib:\
:gtags_parser=Duel\:$pygmentslib:\
:gtags_parser=Dylan\:$pygmentslib:\
:gtags_parser=ECL\:$pygmentslib:\
:gtags_parser=EC\:$pygmentslib:\
:gtags_parser=ERB\:$pygmentslib:\
:gtags_parser=Elixir\:$pygmentslib:\
:gtags_parser=Erlang\:$pygmentslib:\
:gtags_parser=Evoque\:$pygmentslib:\
:gtags_parser=FSharp\:$pygmentslib:\
:gtags_parser=Factor\:$pygmentslib:\
:gtags_parser=Fancy\:$pygmentslib:\
:gtags_parser=Fantom\:$pygmentslib:\
:gtags_parser=Felix\:$pygmentslib:\
:gtags_parser=Fortran\:$pygmentslib:\
:gtags_parser=GAS\:$pygmentslib:\
:gtags_parser=GLSL\:$pygmentslib:\
:gtags_parser=Genshi\:$pygmentslib:\
:gtags_parser=Gherkin\:$pygmentslib:\
:gtags_parser=Gnuplot\:$pygmentslib:\
:gtags_parser=Go\:$pygmentslib:\
:gtags_parser=GoodData-CL\:$pygmentslib:\
:gtags_parser=Gosu\:$pygmentslib:\
:gtags_parser=Groovy\:$pygmentslib:\
:gtags_parser=Gst\:$pygmentslib:\
:gtags_parser=HaXe\:$pygmentslib:\
:gtags_parser=Haml\:$pygmentslib:\
:gtags_parser=Haskell\:$pygmentslib:\
:gtags_parser=Hxml\:$pygmentslib:\
:gtags_parser=Hybris\:$pygmentslib:\
:gtags_parser=IDL\:$pygmentslib:\
:gtags_parser=Io\:$pygmentslib:\
:gtags_parser=Ioke\:$pygmentslib:\
:gtags_parser=JAGS\:$pygmentslib:\
:gtags_parser=Jade\:$pygmentslib:\
:gtags_parser=JavaScript\:$pygmentslib:\
:gtags_parser=Java\:$pygmentslib:\
:gtags_parser=Jsp\:$pygmentslib:\
:gtags_parser=Julia\:$pygmentslib:\
:gtags_parser=Koka\:$pygmentslib:\
:gtags_parser=Kotlin\:$pygmentslib:\
:gtags_parser=LLVM\:$pygmentslib:\
:gtags_parser=Lasso\:$pygmentslib:\
:gtags_parser=Literate-Haskell\:$pygmentslib:\
:gtags_parser=LiveScript\:$pygmentslib:\
:gtags_parser=Logos\:$pygmentslib:\
:gtags_parser=Logtalk\:$pygmentslib:\
:gtags_parser=Lua\:$pygmentslib:\
:gtags_parser=MAQL\:$pygmentslib:\
:gtags_parser=MOOCode\:$pygmentslib:\
:gtags_parser=MXML\:$pygmentslib:\
:gtags_parser=Mako\:$pygmentslib:\
:gtags_parser=Mason\:$pygmentslib:\
:gtags_parser=Matlab\:$pygmentslib:\
:gtags_parser=MiniD\:$pygmentslib:\
:gtags_parser=Modelica\:$pygmentslib:\
:gtags_parser=Modula2\:$pygmentslib:\
:gtags_parser=Monkey\:$pygmentslib:\
:gtags_parser=MoonScript\:$pygmentslib:\
:gtags_parser=MuPAD\:$pygmentslib:\
:gtags_parser=Myghty\:$pygmentslib:\
:gtags_parser=NASM\:$pygmentslib:\
:gtags_parser=NSIS\:$pygmentslib:\
:gtags_parser=Nemerle\:$pygmentslib:\
:gtags_parser=NewLisp\:$pygmentslib:\
:gtags_parser=Newspeak\:$pygmentslib:\
:gtags_parser=Nimrod\:$pygmentslib:\
:gtags_parser=OCaml\:$pygmentslib:\
:gtags_parser=Objective-C++\:$pygmentslib:\
:gtags_parser=Objective-C\:$pygmentslib:\
:gtags_parser=Objective-J\:$pygmentslib:\
:gtags_parser=Octave\:$pygmentslib:\
:gtags_parser=Ooc\:$pygmentslib:\
:gtags_parser=Opa\:$pygmentslib:\
:gtags_parser=OpenEdge\:$pygmentslib:\
:gtags_parser=PHP\:$pygmentslib:\
:gtags_parser=Pascal\:$pygmentslib:\
:gtags_parser=Perl\:$pygmentslib:\
:gtags_parser=PostScript\:$pygmentslib:\
:gtags_parser=PowerShell\:$pygmentslib:\
:gtags_parser=Prolog\:$pygmentslib:\
:gtags_parser=Python\:$pygmentslib:\
:gtags_parser=QML\:$pygmentslib:\
:gtags_parser=REBOL\:$pygmentslib:\
:gtags_parser=RHTML\:$pygmentslib:\
:gtags_parser=Racket\:$pygmentslib:\
:gtags_parser=Ragel\:$pygmentslib:\
:gtags_parser=Redcode\:$pygmentslib:\
:gtags_parser=RobotFramework\:$pygmentslib:\
:gtags_parser=Ruby\:$pygmentslib:\
:gtags_parser=Rust\:$pygmentslib:\
:gtags_parser=S\:$pygmentslib:\
:gtags_parser=Scala\:$pygmentslib:\
:gtags_parser=Scaml\:$pygmentslib:\
:gtags_parser=Scheme\:$pygmentslib:\
:gtags_parser=Scilab\:$pygmentslib:\
:gtags_parser=Smalltalk\:$pygmentslib:\
:gtags_parser=Smarty\:$pygmentslib:\
:gtags_parser=Sml\:$pygmentslib:\
:gtags_parser=Snobol\:$pygmentslib:\
:gtags_parser=SourcePawn\:$pygmentslib:\
:gtags_parser=Spitfire\:$pygmentslib:\
:gtags_parser=Ssp\:$pygmentslib:\
:gtags_parser=Stan\:$pygmentslib:\
:gtags_parser=SystemVerilog\:$pygmentslib:\
:gtags_parser=Tcl\:$pygmentslib:\
:gtags_parser=TeX\:$pygmentslib:\
:gtags_parser=Tea\:$pygmentslib:\
:gtags_parser=Treetop\:$pygmentslib:\
:gtags_parser=TypeScript\:$pygmentslib:\
:gtags_parser=UrbiScript\:$pygmentslib:\
:gtags_parser=VB.net\:$pygmentslib:\
:gtags_parser=VGL\:$pygmentslib:\
:gtags_parser=Vala\:$pygmentslib:\
:gtags_parser=Velocity\:$pygmentslib:\
:gtags_parser=Verilog\:$pygmentslib:\
:gtags_parser=Vhdl\:$pygmentslib:\
:gtags_parser=Vim\:$pygmentslib:\
:gtags_parser=XBase\:$pygmentslib:\
:gtags_parser=XQuery\:$pygmentslib:\
:gtags_parser=XSLT\:$pygmentslib:\
:gtags_parser=Xtend\:$pygmentslib:
#
# Drupal configuration.
#
drupal|Drupal content management platform:\
:tc=common:\
:langmap=php\:.php.module.inc.profile.install.test:
#---------------------------------------------------------------------
# Configuration for htags(1)
#---------------------------------------------------------------------
htags:\
::

16
.gnupg/gpg.conf Normal file
View File

@ -0,0 +1,16 @@
use-agent
default-key D5B4C43B48A879F6352936E659346E0EA35C67E5
keyserver hkps://keys.openpgp.org
# keyserver hkp://keys.gnupg.net
# keyserver hkp://keys.mayfirst.org
# keyserver hkp://keys.indymedia.org
keyid-format 0xlong
fingerprint
utf8-strings
# When multiple digests are supported by all recipients, choose the strongest.
personal-digest-preferences SHA512 SHA384 SHA256 SHA224
verify-options show-uid-validity
list-options show-uid-validity

9
.gtkrc-2.0 Normal file
View File

@ -0,0 +1,9 @@
# -*- mode: conf; -*-
# Remember: gsettings set org.gnome.desktop.interface gtk-theme 'THEME-NAME'
include "/usr/share/themes/AD-Plum/gtk-2.0/gtkrc"
gtk-theme-name="AD-Plum"
gtk-icon-theme-name="AD-Plum-Suru"
gtk-fallback-icon-theme="elementary-xfce-darkest"
gtk-cursor-theme-name="gentoo"
gtk-cursor-theme-size=24
gtk-can-change-accels=1

166
.hunspell_de_DE Normal file
View File

@ -0,0 +1,166 @@
ALG
Wachtelbohnen
TL
EL
Hummus
Belugalinsen
Schokoaufstrich
Hefeflocken
Doughnuts
Schokokuchen
Barbecue
RSS
Räuchertofu
Tofuscheiben
ÖPNV
Rassifizieren
rassifizierte
emanzipative
vergeschlechtlichter
Auseinandersetzungsfelder
Theorieprojekt
identitärer
Konstituierungssprozesse
identitären
Kolonialismusforschung
Identifizierungsprozesse
Begehrensökonomie
Zivilisationsmission
essentialisiert
Genderperspektive
Unterdrückungsmechanismen
gewaltförmigen
universalisierende
androzentrische
Patriarchatskritik
Mittelschichtsfrau
Interessensvertretung
Antirassismusdebatten
Ausgrenzungsprozesse
Perpetuierung
Rassismusbegriff
Nationsgründung
Nationenprinzips
Wirkgeschichte
rassifizierenden
rassifiziert
Nationsbildungsprozess
Dekolonisierungsbewegungen
Rassifizierung
Kolonisationsprojekt
Polykonfessionalität
Nationsbildungsprozesses
Germanenmythos
Verwundetenfürsorge
zwangsförmige
Nationsbildungsprozesse
Männlichkeitskult
nationalbürgerlichen
Kindergärtnerinnenberuf
Partizipationsforderungen
emanzipativen
Vergesellschaftungsform
Nationenprinzip
Sittlichkeitsfrage
Bemächtigungsgeschichte
Weiblichkeitsentwürfe
Kolonisierungsversuche
Überlegenheitsrhetorik
kolonialrevisionistischen
Kolonialisierungsversuche
Männlichkeitsformen
Sexualitätsnormen
genozidalen
kolonialkritische
kolonialismuskritische
Organisierung
rassentheoretische
Exklusionsmechanismen
Naturalisierungsprozess
biopolitische
gattungsstabilisierenden
Biologisierung
Soziologisierung
neomalthusianischen
Neomalthusianismus
Neomalthusianer
Akklimatisierungsdebatte
Erschließungskonzepte
Distanzierungspraktiken
Eingeborenenverordnungen
Gesindeverordnung
Wohnortwahl
rassenpolitischer
Mischehenverordnungen
staatsbürgerschaftsrechtlichen
Distinktionsmerkmal
vergeschlechtlichten
Verunreinigungsvorstellungen
vorimperialistische
rassifizierter
Normalisierungsdiskurs
biopolitischen
Normalisierungsstrategien
Liberalismuskritik
neomalthusianisch
verräumlicht
Anwerbepolitik
kolonialrassistische
fetischisierten
rassifizierten
rassenpolitische
Reinheitsnorm
vorimperialistischen
Weiblichkeiten
Weiblichkeitskonzeptes
Männlichkeitskonzepte
kolonialbegeisterten
Pronatalismus
Sittlichkeitsdebatten
Ungleichheitsverhältnis
Hypervirilität
Mittäterschaftsthese
Interessensverquickung
Mittäterschaftsmodell
Interessensübereinstimmung
Unterdrückungsverhältnis
Korrumpiertheit
gleichwirksamer
kolonialbegeisterte
malthusianischen
vergeschlechtlichte
universalisiert
berufsfreudig
Sittlichkeitsbewegung
Überreiztheit
Sittlichkeitsdebatte
Sittlichkeitsverständnis
Konstituierungsphase
geschlechterhierarchische
qualitätssteigernd
antinatalistische
Rassenhygienikerinnen
Partizipationsansprüche
entwürdigendste
Höherwertigkeit
Sittlichkeitsvergehen
Ehetauglichkeitszeugnissen
kulturimperialistische
Imaginationsfläche
herrschaftsförmigen
unrealisierbar
Konsumptionssphäre
sexualpolitische
geburtenpolitischen
Aushandlungsort
Partizipationsvorstellungen
rassifizierender
Naturhaftigkeit
vergeschlechtlicht
maskulinierten
Postkolonialität
Subalternität
Missionsarchive
Privilegiengesellschaft
hineinrühren
Gasrechung

46
.hunspell_en_US Normal file
View File

@ -0,0 +1,46 @@
Hainish
Ableism
RSS
DDoS
HD
TLS
MiB
TCP
Zsh
Pleroma
transmisic
homomisic
ableist
transmisia
homomisia
JSON
ICANN
EPUB
PDFs
XHTML
CSS
EPUBs
endnotes
centric
sexualized
dystopia
symlinks
POSIX
CMake
sanitizer
epubgrep
CSV
Deadnames
deadnamed
deadnames
systemd
OpenRC
deprioritized
GiB
µs
Mebibyte
Kibibyte
Gibibyte
nginx
openSUSE
URI

View File

@ -0,0 +1,10 @@
[Desktop Entry]
Type=Application
Version=1.0
Name=Emacsclient (create frame)
Comment=Tell a running Emacs to create a frame
Comment[de]=In einer laufenden Emacs-Instanz einen frame öffnen
Icon=emacs
TryExec=/usr/bin/emacsclient
Exec=/usr/bin/emacsclient -cn -a=/bin/false %F
Terminal=false

View File

@ -0,0 +1,6 @@
=> gemini://gus.guru/
=> gemini://gemini.circumlunar.space/
=> gemini://80h.dev/projects/gemserv/
=> gemini://gemini.circumlunar.space/docs/spec-spec.txt
=> gemini://gemini.circumlunar.space/capcom/
=> gemini://tastytea.de/

30
.ssh/config Normal file
View File

@ -0,0 +1,30 @@
# Include local configuration file.
Include config.local
Host *
AddKeysToAgent yes
ServerAliveInterval 30
# Reuse connections.
ControlMaster auto
# Close socket 600s after after last connection closes.
ControlPersist 600
ControlPath ~/.ssh/sockets/%r@%h-%p
Host schnibble.tastytea.de gaffer.tastytea.de
Port 8022
Host fd14:0:0:0:* 192.168.8.* fd23:0:0:0:* tastytea.de *.tastytea.de tzend.de *.tzend.de likeable.space
Port 10
# RemoteForward 127.0.0.1:51313 127.0.0.1:51313
ForwardAgent yes
Host fd14::1 192.168.8.1 router.tastytea.de
User root
PubkeyAcceptedAlgorithms +ssh-rsa
HostkeyAlgorithms +ssh-rsa
Host *-vm.tastytea.de
Port 22
Host haiku-vm.tastytea.de
User user

0
.ssh/sockets/.keep Normal file
View File

53
.tmux.conf Normal file
View File

@ -0,0 +1,53 @@
# Load machine-local config.
if '[ -f ~/.tmux.conf.local ]' 'source ~/.tmux.conf.local'
# Make it use C-a, similar to screen.
unbind C-b
unbind l
set -g prefix C-a
bind-key a send-prefix # Send C-a.
bind-key C-a last-window
bind h splitw -h -p 50
bind v splitw -v -p 50
# Start window numbering at 1 for easier switching.
set -g base-index 1
# Do not start login shell.
set -g default-command "exec /bin/zsh"
# Enable Truecolor
set-option -ga terminal-overrides ",xterm*:RGB:Tc,rxvt-unicode*:RGB:Tc"
set -g default-terminal "tmux-256color"
# Make M-<up> and so on work in Emacs.
set -g xterm-keys on
set -g history-limit 10000
# Allow multiple commands without pressing the prefix-key again in milliseconds.
set -sg repeat-time 100
# Options for X-terminals.
set-option -g set-titles on
set-option -g set-titles-string "#T"
# THEME
colour_status1="colour60" # violet
colour_status2="colour97" # dark pink
colour_inactive="colour236" # dark grey
# Status line
set -g status-style fg=${colour_status1}
set -g status-interval 10
set -g status-left-length 30
set -g status-left ''
set -g status-right "#[fg=${colour_inactive}]#(hostname --short)#[default] #[fg=${colour_status2}]#(cut -d ' ' -f 1-3 /proc/loadavg)#[default]"
# Window indicators.
set-window-option -g window-status-style fg=${colour_status1}
set-window-option -g window-status-current-style fg=black,bg=${colour_status1}
# Window borders.
set-option -g pane-border-style fg=${colour_inactive}
set-option -g pane-active-border-style fg=${colour_status1}

54
.vimrc Normal file
View File

@ -0,0 +1,54 @@
" vim: set ts=4 fenc=utf-8 ff=unix :
set cursorline
set scrolloff=3
set mouse=v
set number
" COLORS
syntax on
colorscheme elflord
highlight LineNr ctermfg=grey
set background=dark
"colorscheme solarized
"let g:solarized_termtrans = 1
" GVIM
if has("gui_running")
if has("gui_gtk2")
set guifont=CosmicSansNeueMono\ 12
elseif has("gui_macvim")
set guifont=CosmicSansNeueMono\ 12:h12
elseif has("gui_win32")
set guifont=CosmicSansNeueMono\ 12:h12:cANSI
endif
endif
" TEXT DISPLAY
set tabstop=4
" MODELINES
set modeline
" Append modeline before first line in buffer.
" Use substitute() instead of printf() to handle '%%s' modeline in LaTeX
" files.
function! AppendModeline()
let l:modeline = printf(" vim: set ts=%d ft=%s fenc=%s ff=%s :",
\ &tabstop, &filetype, &fileencoding, &fileformat)
let l:modeline = substitute(&commentstring, "%s", l:modeline, "")
call append (line("^"), l:modeline)
endfunction
nnoremap <silent> <Leader>ml :call AppendModeline()<CR>
" MAPPINGS
nnoremap <C-j> :tabnext<CR>
nnoremap <C-k> :tabprevious<CR>
imap jj <ESC>
map <ESC>[D <C-Left>
map <ESC>[C <C-Right>
" PLUGINS
let g:ycm_confirm_extra_conf = 0

3
.wgetpaste.conf Normal file
View File

@ -0,0 +1,3 @@
DEFAULT_SERVICE="dpaste"
DEFAULT_EXPIRATION_bpaste="1month"
DEFAULT_EXPIRATION_dpaste="30"

4
.xmodmaprc Normal file
View File

@ -0,0 +1,4 @@
clear Lock
keysym Caps_Lock = Hyper_L
! remove Mod4 = Super_L
! add Mod3 = Super_L

1
.zprofile Symbolic link
View File

@ -0,0 +1 @@
.config/zsh/.zprofile

47
bin/emacsremote Executable file
View File

@ -0,0 +1,47 @@
#!/bin/bash
# Open file on a remote Emacs server.
# https://andy.wordpress.com/2013/01/03/automatic-emacsclient/ with added sudo.
params=()
sudo=0
local=0
for p in "${@}"; do
if [[ "${p}" == "-n" ]]; then
params+=( "${p}" )
elif [[ "${p}" == "-c" ]]; then
params+=( "${p}" )
elif [[ "${p}" == "-cn" ]]; then
params+=( "${p}" )
elif [[ "${p:0:1}" == "+" ]]; then
params+=( "${p}" )
elif [[ "${p}" == "--sudo" ]]; then
sudo=1
elif [[ "${p}" == "--local" ]]; then
# Use local server, for use with --sudo.
local=1
else
# Setting field separator to newline so that filenames with spaces will
# not be split up into 2 array elements.
OLDIFS=${IFS}
IFS=$'\n'
if [[ $(id -u) -eq 0 || ${sudo} -eq 1 ]]; then
if [[ ${local} -eq 0 ]]; then
params+=( "/ssh:$(hostname -f)|sudo:$(hostname -f):"$(realpath -m "${p}") )
else
params+=( "/sudo:localhost:"$(realpath -m "${p}") )
fi
else
params+=( "/ssh:$(hostname -f):"$(realpath "${p}") )
fi
IFS=${OLDIFS}
fi
done
emacsclient_tcp=""
if [[ -f "${HOME}/.emacs.d/server/server" ]]; then
emacsclient_tcp="-f ~/.emacs.d/server/server"
fi
emacsclient ${emacsclient_tcp} "${params[@]}"

3
bin/gen_i3_config.sh Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
cat "${HOME}/.config/i3/config.common" \
"${HOME}/.config/i3/config.local" > "${HOME}/.config/i3/config"

13
bin/led.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/zsh
if [[ "${1}" == "on" ]]; then
echo 1 > /sys/class/leds/input*::scrolllock/brightness
elif [[ "${1}" == "off" ]]; then
echo 0 > /sys/class/leds/input*::scrolllock/brightness
elif [[ "${1}" == "toggle" ]]; then
if [[ $(cat /sys/class/leds/input*::scrolllock/brightness) -eq 0 ]]; then
"${0}" on
else
"${0}" off
fi
fi

View File

@ -0,0 +1,11 @@
#!/bin/sh
sudo ln -sfv ~/.emacs.d/early-init.el ~root/.emacs.d/early-init.el
sudo ln -sfv ~/.emacs.d/init.el ~root/.emacs.d/init.el
sudo rm -rf ~root/.emacs.d/init.d
sudo ln -sfv ~/.emacs.d/init.d ~root/.emacs.d/init.d
sudo mkdir -pv ~root/.emacs.d/server
sudo ln -sfv ~/.emacs.d/server/server ~root/.emacs.d/server/server
sudo mkdir -pv ~root/.emacs.d/straight
sudo rm -rf ~root/.emacs.d/straight/repos
sudo ln -sfv ~/.emacs.d/straight/repos ~root/.emacs.d/straight/repos

12
bin/machklein.sh Executable file
View File

@ -0,0 +1,12 @@
#!/bin/zsh
if [[ -z "${1}" ]]; then
echo "usage: ${0} DIR" >&2
exit 1
fi
dir="${1}"
for file in "${dir}"/*; do
newfile="${file:l}"
[[ "${file}" != "${newfile}" ]] && mv "${file}" "${newfile}" || echo -n
done

20
bin/setup_dotfiles.sh Executable file
View File

@ -0,0 +1,20 @@
#!/bin/zsh
tmp_alias_command='git --git-dir=${HOME}/.dotfiles/ --work-tree=${HOME}'
if [[ -f ~/.ssh/id_dotfiles ]]; then
export GIT_SSH_COMMAND="ssh -i ~/.ssh/id_dotfiles"
tmp_alias_command="GIT_SSH_COMMAND=\"ssh -i ~/.ssh/id_dotfiles\" ${tmp_alias_command}"
fi
alias config="${tmp_alias_command}"
git clone --bare git@schlomp.space:tastytea/dotfiles.git "${HOME}/.dotfiles" && \
config submodule init && \
config submodule update && \
config config --local status.showUntrackedFiles no && \
config config --local submodule.recurse true && \
echo -e "Run \033[1;32mrm ${0} && ${tmp_alias_command} checkout\033[0m to copy the files to your home directory."
unset tmp_alias_config
# TODO: [remote "origin"] needs to have
# fetch = +refs/heads/*:refs/remotes/origin/* in order for
# submodule.recurse to work, but why?