From ad281008b9c959a92b7b968bc0a58745207915c9 Mon Sep 17 00:00:00 2001 From: tastytea Date: Fri, 18 Mar 2022 14:34:27 +0100 Subject: [PATCH] restart --- .XCompose | 29 + .Xresources | 18 + .aspell.de.pws | 108 ++++ .aspell.en.pws | 24 + .clang-format | 138 +++++ .clang-tidy | 50 ++ .config/alacritty/alacritty.yml | 64 ++ .config/castor/settings.toml | 7 + .config/dunst/dunstrc | 447 ++++++++++++++ .config/fontconfig/fonts.conf | 26 + .config/gajim/theme/Dark-Plum.css | 21 + .config/git/attributes | 1 + .config/git/config | 44 ++ .config/git/ignore | 15 + .config/git/template/hooks/prepare-commit-msg | 13 + .config/gtk-3.0/settings.ini | 8 + .config/i3/config.common | 264 ++++++++ .config/mpv/input.conf | 4 + .config/mpv/mpv.conf | 23 + .config/nano/gemini.nanorc | 13 + .config/nano/nanorc | 4 + .config/picom/picom.conf | 11 + .config/rofi/config.rasi | 10 + .config/rofi/themes/Arc-Dark-Purple.rasi | 152 +++++ .config/urxvt | 48 ++ .config/xfce4/terminal/terminalrc | 52 ++ .config/yt-dlp/config | 5 + .config/zsh/.zaliases | 107 ++++ .config/zsh/.zkeys | 68 +++ .config/zsh/.zprofile | 191 ++++++ .config/zsh/.zshrc | 190 ++++++ .config/zsh/functions.zsh | 29 + .config/zsh/tastytea.zsh-theme | 137 +++++ .emacs.d | 1 + .gitmodules | 3 + .globalrc | 568 ++++++++++++++++++ .gnupg/gpg.conf | 16 + .gtkrc-2.0 | 9 + .hunspell_de_DE | 166 +++++ .hunspell_en_US | 46 ++ .../share/applications/emacsclient-cn.desktop | 10 + .local/share/castor/bookmarks | 6 + .ssh/config | 30 + .ssh/sockets/.keep | 0 .tmux.conf | 53 ++ .vimrc | 54 ++ .wgetpaste.conf | 3 + .xmodmaprc | 4 + .zprofile | 1 + bin/emacsremote | 47 ++ bin/gen_i3_config.sh | 3 + bin/led.sh | 13 + bin/link_emacs_config_to_root.sh | 11 + bin/machklein.sh | 12 + bin/setup_dotfiles.sh | 20 + 55 files changed, 3397 insertions(+) create mode 100644 .XCompose create mode 100644 .Xresources create mode 100644 .aspell.de.pws create mode 100644 .aspell.en.pws create mode 100644 .clang-format create mode 100644 .clang-tidy create mode 100644 .config/alacritty/alacritty.yml create mode 100644 .config/castor/settings.toml create mode 100644 .config/dunst/dunstrc create mode 100644 .config/fontconfig/fonts.conf create mode 100644 .config/gajim/theme/Dark-Plum.css create mode 100644 .config/git/attributes create mode 100644 .config/git/config create mode 100644 .config/git/ignore create mode 100755 .config/git/template/hooks/prepare-commit-msg create mode 100644 .config/gtk-3.0/settings.ini create mode 100644 .config/i3/config.common create mode 100644 .config/mpv/input.conf create mode 100644 .config/mpv/mpv.conf create mode 100644 .config/nano/gemini.nanorc create mode 100644 .config/nano/nanorc create mode 100644 .config/picom/picom.conf create mode 100644 .config/rofi/config.rasi create mode 100644 .config/rofi/themes/Arc-Dark-Purple.rasi create mode 100644 .config/urxvt create mode 100644 .config/xfce4/terminal/terminalrc create mode 100644 .config/yt-dlp/config create mode 100644 .config/zsh/.zaliases create mode 100644 .config/zsh/.zkeys create mode 100644 .config/zsh/.zprofile create mode 100644 .config/zsh/.zshrc create mode 100644 .config/zsh/functions.zsh create mode 100644 .config/zsh/tastytea.zsh-theme create mode 160000 .emacs.d create mode 100644 .gitmodules create mode 100644 .globalrc create mode 100644 .gnupg/gpg.conf create mode 100644 .gtkrc-2.0 create mode 100644 .hunspell_de_DE create mode 100644 .hunspell_en_US create mode 100644 .local/share/applications/emacsclient-cn.desktop create mode 100644 .local/share/castor/bookmarks create mode 100644 .ssh/config create mode 100644 .ssh/sockets/.keep create mode 100644 .tmux.conf create mode 100644 .vimrc create mode 100644 .wgetpaste.conf create mode 100644 .xmodmaprc create mode 120000 .zprofile create mode 100755 bin/emacsremote create mode 100755 bin/gen_i3_config.sh create mode 100755 bin/led.sh create mode 100755 bin/link_emacs_config_to_root.sh create mode 100755 bin/machklein.sh create mode 100755 bin/setup_dotfiles.sh diff --git a/.XCompose b/.XCompose new file mode 100644 index 0000000..c4073b6 --- /dev/null +++ b/.XCompose @@ -0,0 +1,29 @@ +# -*- mode: conf-colon -*- + : "😊" U1F60A # Smiling Face with Smiling Eyes + : "😄" U1F604 # Smiling Face with Open Mouth and Smiling Eyes + : "😉" U1F609 # WINKING FACE + : "ðŸ™" U1F641 # SLIGHTLY FROWNING FACE + : "😴" U1F634 # SLEEPING FACE +

: "ðŸ˜" U1F61D # Face with Stuck-Out Tongue and Tightly-Closed Eyes + : "🤦" U1F926 # FACE PALM + : "🤷" U1F937 # SHRUG + : "🖕" U1F595 # REVERSED HAND WITH MIDDLE FINGER EXTENDED + : "🙄" U1F644 # Face with Rolling Eyes +

: "💩" U1F4A9 # PILE OF POO + : "Ⓐ" U24B6 # CIRCLED LATIN CAPITAL LETTER A + : "®" U00AE # REGISTERED SIGN + : "©" U00A9 # COPYRIGHT SIGN +

: "π" U03C0 # GREEK SMALL LETTER PI + : "​" U200B # ZERO WIDTH SPACE +

: "☭" U262D # HAMMER AND SICKLE + <1> : "â… " U2160 # ROMAN NUMERAL ONE + <2> : "â…¡" U2161 # ROMAN NUMERAL TWO + <3> : "â…¢" U2162 # ROMAN NUMERAL THREE + <4> : "â…£" U2163 # ROMAN NUMERAL FOUR + <5> : "â…¤" U2164 # ROMAN NUMERAL FIVE + <6> : "â…¥" U2165 # ROMAN NUMERAL SIX + <7> : "â…¦" U2166 # ROMAN NUMERAL SEVEN + <8> : "â…§" U2167 # ROMAN NUMERAL EIGHT + <9> : "â…¨" U2168 # ROMAN NUMERAL NINE + <0> : "â…©" U2169 # ROMAN NUMERAL TEN + <3> : "💖" U1F496 # SPARKLING HEART diff --git a/.Xresources b/.Xresources new file mode 100644 index 0000000..83b211a --- /dev/null +++ b/.Xresources @@ -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" diff --git a/.aspell.de.pws b/.aspell.de.pws new file mode 100644 index 0000000..001f07f --- /dev/null +++ b/.aspell.de.pws @@ -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 diff --git a/.aspell.en.pws b/.aspell.en.pws new file mode 100644 index 0000000..0ad0231 --- /dev/null +++ b/.aspell.en.pws @@ -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 diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..b303718 --- /dev/null +++ b/.clang-format @@ -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: # +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'] +... diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 0000000..40d497d --- /dev/null +++ b/.clang-tidy @@ -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 } +... diff --git a/.config/alacritty/alacritty.yml b/.config/alacritty/alacritty.yml new file mode 100644 index 0000000..c879767 --- /dev/null +++ b/.config/alacritty/alacritty.yml @@ -0,0 +1,64 @@ +env: + # For better compatibility. + # + 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·" diff --git a/.config/castor/settings.toml b/.config/castor/settings.toml new file mode 100644 index 0000000..5cc40b0 --- /dev/null +++ b/.config/castor/settings.toml @@ -0,0 +1,7 @@ +[colors] +list = "#BA45A3" +h2 = "#FF1493" +text = "#C7D3E3" + +[characters] +list = "🌼 " diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc new file mode 100644 index 0000000..741c353 --- /dev/null +++ b/.config/dunst/dunstrc @@ -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: + # bold + # italic + # strikethrough + # underline + # + # For a complete reference see + # . + # + # 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 = "%s (%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, + 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 diff --git a/.config/fontconfig/fonts.conf b/.config/fontconfig/fonts.conf new file mode 100644 index 0000000..75056fe --- /dev/null +++ b/.config/fontconfig/fonts.conf @@ -0,0 +1,26 @@ + + + + + + monospace + + Source Code Pro + Noto Color Emoji + + + + serif + + Source Serif Pro + Noto Color Emoji + + + + sans-serif + + Source Sans Pro + Noto Color Emoji + + + diff --git a/.config/gajim/theme/Dark-Plum.css b/.config/gajim/theme/Dark-Plum.css new file mode 100644 index 0000000..4ec01b4 --- /dev/null +++ b/.config/gajim/theme/Dark-Plum.css @@ -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) + } \ No newline at end of file diff --git a/.config/git/attributes b/.config/git/attributes new file mode 100644 index 0000000..1bb8216 --- /dev/null +++ b/.config/git/attributes @@ -0,0 +1 @@ +*.ebuild merge=keywords diff --git a/.config/git/config b/.config/git/config new file mode 100644 index 0000000..a30d6f0 --- /dev/null +++ b/.config/git/config @@ -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 diff --git a/.config/git/ignore b/.config/git/ignore new file mode 100644 index 0000000..a8acc99 --- /dev/null +++ b/.config/git/ignore @@ -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.* diff --git a/.config/git/template/hooks/prepare-commit-msg b/.config/git/template/hooks/prepare-commit-msg new file mode 100755 index 0000000..b8bb65e --- /dev/null +++ b/.config/git/template/hooks/prepare-commit-msg @@ -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 diff --git a/.config/gtk-3.0/settings.ini b/.config/gtk-3.0/settings.ini new file mode 100644 index 0000000..4740230 --- /dev/null +++ b/.config/gtk-3.0/settings.ini @@ -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 diff --git a/.config/i3/config.common b/.config/i3/config.common new file mode 100644 index 0000000..67f8a0e --- /dev/null +++ b/.config/i3/config.common @@ -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 doesn’t 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 diff --git a/.config/mpv/input.conf b/.config/mpv/input.conf new file mode 100644 index 0000000..70a819a --- /dev/null +++ b/.config/mpv/input.conf @@ -0,0 +1,4 @@ +WHEEL_UP add volume 5 +WHEEL_DOWN add volume -5 +0 add volume 5 +9 add volume -5 diff --git a/.config/mpv/mpv.conf b/.config/mpv/mpv.conf new file mode 100644 index 0000000..19772da --- /dev/null +++ b/.config/mpv/mpv.conf @@ -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 diff --git a/.config/nano/gemini.nanorc b/.config/nano/gemini.nanorc new file mode 100644 index 0000000..3ae5a80 --- /dev/null +++ b/.config/nano/gemini.nanorc @@ -0,0 +1,13 @@ +syntax "gemini" "\.(gemini|gmi|GMI)$" + +# links +color magenta "^=>.*$" + +# preformatted +color yellow start="^```* ?$" end="^```* ?$" + +#headings +color cyan "^\#+.*$" + +#bullets +color green "^\*+.*$" diff --git a/.config/nano/nanorc b/.config/nano/nanorc new file mode 100644 index 0000000..5fe0ef2 --- /dev/null +++ b/.config/nano/nanorc @@ -0,0 +1,4 @@ +include "~/.config/nano/gemini.nanorc" + +set autoindent +set tabsize 4 diff --git a/.config/picom/picom.conf b/.config/picom/picom.conf new file mode 100644 index 0000000..84f0cff --- /dev/null +++ b/.config/picom/picom.conf @@ -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; }; +}; diff --git a/.config/rofi/config.rasi b/.config/rofi/config.rasi new file mode 100644 index 0000000..f71f226 --- /dev/null +++ b/.config/rofi/config.rasi @@ -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" diff --git a/.config/rofi/themes/Arc-Dark-Purple.rasi b/.config/rofi/themes/Arc-Dark-Purple.rasi new file mode 100644 index 0000000..8e91eb1 --- /dev/null +++ b/.config/rofi/themes/Arc-Dark-Purple.rasi @@ -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; +} diff --git a/.config/urxvt b/.config/urxvt new file mode 100644 index 0000000..62b2357 --- /dev/null +++ b/.config/urxvt @@ -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 diff --git a/.config/xfce4/terminal/terminalrc b/.config/xfce4/terminal/terminalrc new file mode 100644 index 0000000..cec8c56 --- /dev/null +++ b/.config/xfce4/terminal/terminalrc @@ -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 + diff --git a/.config/yt-dlp/config b/.config/yt-dlp/config new file mode 100644 index 0000000..5b5411a --- /dev/null +++ b/.config/yt-dlp/config @@ -0,0 +1,5 @@ +--embed-subs +--all-subs +--add-metadata +--format-sort="res:1080" +# --sponsorblock-remove="sponsor,selfpromo" diff --git a/.config/zsh/.zaliases b/.config/zsh/.zaliases new file mode 100644 index 0000000..18c438b --- /dev/null +++ b/.config/zsh/.zaliases @@ -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 . + [[ -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 diff --git a/.config/zsh/.zkeys b/.config/zsh/.zkeys new file mode 100644 index 0000000..2eb8a5a --- /dev/null +++ b/.config/zsh/.zkeys @@ -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 diff --git a/.config/zsh/.zprofile b/.config/zsh/.zprofile new file mode 100644 index 0000000..49d8d2c --- /dev/null +++ b/.config/zsh/.zprofile @@ -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) < ${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) + # + 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 + +} diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc new file mode 100644 index 0000000..043d9e6 --- /dev/null +++ b/.config/zsh/.zshrc @@ -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, . +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 + +# +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 " >&2 + return + fi + terminal="${1}" + + if [[ -z "${TMPDIR}" ]]; then + local TMPDIR="/tmp" + fi + + # Generate ${terminal}-24bit(s). + cat < ${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 + +} diff --git a/.config/zsh/functions.zsh b/.config/zsh/functions.zsh new file mode 100644 index 0000000..19c036b --- /dev/null +++ b/.config/zsh/functions.zsh @@ -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 +} diff --git a/.config/zsh/tastytea.zsh-theme b/.config/zsh/tastytea.zsh-theme new file mode 100644 index 0000000..eba1b24 --- /dev/null +++ b/.config/zsh/tastytea.zsh-theme @@ -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" + + +# +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 + +} diff --git a/.emacs.d b/.emacs.d new file mode 160000 index 0000000..60bebf6 --- /dev/null +++ b/.emacs.d @@ -0,0 +1 @@ +Subproject commit 60bebf60693776fac1d60a992b2dafb3485d1723 diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..46528d9 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule ".emacs.d"] + path = .emacs.d + url = git@schlomp.space:tastytea/.emacs.d.git diff --git a/.globalrc b/.globalrc new file mode 100644 index 0000000..d91f269 --- /dev/null +++ b/.globalrc @@ -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:\ + :: diff --git a/.gnupg/gpg.conf b/.gnupg/gpg.conf new file mode 100644 index 0000000..753ca21 --- /dev/null +++ b/.gnupg/gpg.conf @@ -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 diff --git a/.gtkrc-2.0 b/.gtkrc-2.0 new file mode 100644 index 0000000..dfe6453 --- /dev/null +++ b/.gtkrc-2.0 @@ -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 diff --git a/.hunspell_de_DE b/.hunspell_de_DE new file mode 100644 index 0000000..98195a7 --- /dev/null +++ b/.hunspell_de_DE @@ -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 diff --git a/.hunspell_en_US b/.hunspell_en_US new file mode 100644 index 0000000..a9ef25a --- /dev/null +++ b/.hunspell_en_US @@ -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 diff --git a/.local/share/applications/emacsclient-cn.desktop b/.local/share/applications/emacsclient-cn.desktop new file mode 100644 index 0000000..f93360b --- /dev/null +++ b/.local/share/applications/emacsclient-cn.desktop @@ -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 diff --git a/.local/share/castor/bookmarks b/.local/share/castor/bookmarks new file mode 100644 index 0000000..2a08d09 --- /dev/null +++ b/.local/share/castor/bookmarks @@ -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/ diff --git a/.ssh/config b/.ssh/config new file mode 100644 index 0000000..cc6846e --- /dev/null +++ b/.ssh/config @@ -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 diff --git a/.ssh/sockets/.keep b/.ssh/sockets/.keep new file mode 100644 index 0000000..e69de29 diff --git a/.tmux.conf b/.tmux.conf new file mode 100644 index 0000000..bf28da5 --- /dev/null +++ b/.tmux.conf @@ -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- 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} diff --git a/.vimrc b/.vimrc new file mode 100644 index 0000000..60cb1a9 --- /dev/null +++ b/.vimrc @@ -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 ml :call AppendModeline() + + +" MAPPINGS +nnoremap :tabnext +nnoremap :tabprevious +imap jj +map [D +map [C + +" PLUGINS +let g:ycm_confirm_extra_conf = 0 diff --git a/.wgetpaste.conf b/.wgetpaste.conf new file mode 100644 index 0000000..d62016b --- /dev/null +++ b/.wgetpaste.conf @@ -0,0 +1,3 @@ +DEFAULT_SERVICE="dpaste" +DEFAULT_EXPIRATION_bpaste="1month" +DEFAULT_EXPIRATION_dpaste="30" diff --git a/.xmodmaprc b/.xmodmaprc new file mode 100644 index 0000000..976cdf4 --- /dev/null +++ b/.xmodmaprc @@ -0,0 +1,4 @@ +clear Lock +keysym Caps_Lock = Hyper_L +! remove Mod4 = Super_L +! add Mod3 = Super_L diff --git a/.zprofile b/.zprofile new file mode 120000 index 0000000..6928145 --- /dev/null +++ b/.zprofile @@ -0,0 +1 @@ +.config/zsh/.zprofile \ No newline at end of file diff --git a/bin/emacsremote b/bin/emacsremote new file mode 100755 index 0000000..bf4aab7 --- /dev/null +++ b/bin/emacsremote @@ -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[@]}" diff --git a/bin/gen_i3_config.sh b/bin/gen_i3_config.sh new file mode 100755 index 0000000..4874def --- /dev/null +++ b/bin/gen_i3_config.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cat "${HOME}/.config/i3/config.common" \ + "${HOME}/.config/i3/config.local" > "${HOME}/.config/i3/config" diff --git a/bin/led.sh b/bin/led.sh new file mode 100755 index 0000000..34ea01b --- /dev/null +++ b/bin/led.sh @@ -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 diff --git a/bin/link_emacs_config_to_root.sh b/bin/link_emacs_config_to_root.sh new file mode 100755 index 0000000..aae3616 --- /dev/null +++ b/bin/link_emacs_config_to_root.sh @@ -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 diff --git a/bin/machklein.sh b/bin/machklein.sh new file mode 100755 index 0000000..545e122 --- /dev/null +++ b/bin/machklein.sh @@ -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 diff --git a/bin/setup_dotfiles.sh b/bin/setup_dotfiles.sh new file mode 100755 index 0000000..0d73dba --- /dev/null +++ b/bin/setup_dotfiles.sh @@ -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?