diff options
| -rw-r--r-- | alacritty/.config/alacritty/alacritty.yml | 549 | ||||
| -rwxr-xr-x | cmus/.config/cmus/codedark.theme | 22 | ||||
| -rw-r--r-- | code/.config/Code/User/settings.json | 228 | ||||
| -rwxr-xr-x | initsh/.initsh | 69 | ||||
| -rwxr-xr-x | neovim/.config/nvim/init.vim | 85 | ||||
| -rwxr-xr-x | rofi/.config/rofi/config.rasi | 70 | ||||
| -rwxr-xr-x | tmux/.tmux.conf | 43 | ||||
| -rw-r--r-- | tmux/.tmux.theme.conf | 19 | ||||
| -rw-r--r-- | zsh/.zprofile | 5 | ||||
| -rwxr-xr-x | zsh/.zshrc | 124 |
10 files changed, 1214 insertions, 0 deletions
diff --git a/alacritty/.config/alacritty/alacritty.yml b/alacritty/.config/alacritty/alacritty.yml new file mode 100644 index 0000000..2621d94 --- /dev/null +++ b/alacritty/.config/alacritty/alacritty.yml @@ -0,0 +1,549 @@ +# Configuration for Alacritty, the GPU enhanced terminal emulator. + +# Any items in the `env` entry below will be added as +# environment variables. Some entries may override variables +# set by alacritty itself. +# env: + # TERM variable + # + # This value is used to set the `$TERM` environment variable for + # each instance of Alacritty. If it is not present, alacritty will + # check the local terminfo database and use `alacritty` if it is + # available, otherwise `xterm-256color` is used. + # TERM: screen-256color + +window: + # Window dimensions (changes require restart) + # + # Specified in number of columns/lines, not pixels. + # If both are `0`, this setting is ignored. + dimensions: + columns: 128 + lines: 32 + + # Window position (changes require restart) + # + # Specified in number of pixels. + # If the position is not set, the window manager will handle the placement. + #position: + # x: 0 + # y: 0 + + # Window padding (changes require restart) + # + # Blank space added around the window in pixels. This padding is scaled + # by DPI and the specified value is always added at both opposing sides. + padding: + x: 0 + y: 0 + + # Spread additional padding evenly around the terminal content. + dynamic_padding: false + + dynamic_title: true + + # Window decorations + # + # Values for `decorations`: + # - full: Borders and title bar + # - none: Neither borders nor title bar + # + # Values for `decorations` (macOS only): + # - transparent: Title bar, transparent background and title bar buttons + # - buttonless: Title bar, transparent background, but no title bar buttons + decorations: none + +scrolling: + # Maximum number of lines in the scrollback buffer. + # Specifying '0' will disable scrolling. + history: 10000 + + # Number of lines the viewport will move for every line scrolled when + # scrollback is enabled (history > 0). + multiplier: 3 + +# Font configuration (changes require restart) +font: + # Normal (roman) font face + normal: + # Font family + # + # Default: + # - (macOS) Menlo + # - (Linux) monospace + # - (Windows) Consolas + family: Hack Nerd Font + + # The `style` can be specified to pick a specific face. + #style: Regular + + # Bold font face + #bold: + # Font family + # + # If the bold family is not specified, it will fall back to the + # value specified for the normal font. + #family: monospace + + # The `style` can be specified to pick a specific face. + #style: Bold + + # Italic font face + #italic: + # Font family + # + # If the italic family is not specified, it will fall back to the + # value specified for the normal font. + #family: monospace + + # The `style` can be specified to pick a specific face. + #style: Italic + + # Point size + size: 11.0 + + # Offset is the extra space around each character. `offset.y` can be thought of + # as modifying the line spacing, and `offset.x` as modifying the letter spacing. + offset: + x: 0 + y: 0 + + # Glyph offset determines the locations of the glyphs within their cells with + # the default being at the bottom. Increasing `x` moves the glyph to the right, + # increasing `y` moves the glyph upwards. + glyph_offset: + x: 0 + y: 0 + + # Thin stroke font rendering (macOS only) + # + # Thin strokes are suitable for retina displays, but for non-retina screens + # it is recommended to set `use_thin_strokes` to `false` + # + # macOS >= 10.14.x: + # + # If the font quality on non-retina display looks bad then set + # `use_thin_strokes` to `true` and enable font smoothing by running the + # following command: + # `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO` + # + # This is a global setting and will require a log out or restart to take + # effect. + use_thin_strokes: true + +# If `true`, bold text is drawn using the bright color variants. +draw_bold_text_with_bright_colors: true + +debug: + # Display the time it takes to redraw each frame. + render_timer: false + + # Keep the log file after quitting Alacritty. + persistent_logging: false + +# Colors (Tomorrow Night Bright) +colors: + # Default colors + primary: + background: '0x333333' + foreground: '0xeeeeee' + + # Bright and dim foreground colors + # + # The dimmed foreground color is calculated automatically if it is not present. + # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors` + # is `false`, the normal foreground color will be used. + #dim_foreground: '0x9a9a9a' + #bright_foreground: '0xffffff' + + # Cursor colors + # + # Colors which should be used to draw the terminal cursor. If these are unset, + # the cursor color will be the inverse of the cell color. + #cursor: + # text: '0x000000' + # cursor: '0xffffff' + + # Selection colors + # + # Colors which should be used to draw the selection area. If selection + # background is unset, selection color will be the inverse of the cell colors. + # If only text is unset the cell text color will remain the same. + #selection: + # text: '0xeaeaea' + # background: '0x404040' + + # Normal colors + normal: + black: '0x262626' + red: '0xf46060' + green: '0x5faf00' + yellow: '0xe6e56c' + blue: '0x0087ff' + magenta: '0x8787d7' + cyan: '0x12aa7e' + white: '0xbcbcbc' + + # Bright colors + bright: + black: '0x808080' + red: '0xef1111' + green: '0x5CD85A' + yellow: '0xe6e56c' + blue: '0x5fafff' + magenta: '0xafafff' + cyan: '0x7fe7cc' + white: '0xeeeeee' + + # Dim colors + # + # If the dim colors are not set, they will be calculated automatically based + # on the `normal` colors. + #dim: + # black: '0x000000' + # red: '0x8c3336' + # green: '0x7a8530' + # yellow: '0x97822e' + # blue: '0x506d8f' + # magenta: '0x80638e' + # cyan: '0x497e7a' + # white: '0x9a9a9a' + + # Indexed Colors + # + # The indexed colors include all colors from 16 to 256. + # When these are not set, they're filled with sensible defaults. + # + # Example: + # `- { index: 16, color: '0xff00ff' }` + # + indexed_colors: [] + +# Visual Bell +# +# Any time the BEL code is received, Alacritty "rings" the visual bell. Once +# rung, the terminal background will be set to white and transition back to the +# default background color. You can control the rate of this transition by +# setting the `duration` property (represented in milliseconds). You can also +# configure the transition function by setting the `animation` property. +# +# Values for `animation`: +# - Ease +# - EaseOut +# - EaseOutSine +# - EaseOutQuad +# - EaseOutCubic +# - EaseOutQuart +# - EaseOutQuint +# - EaseOutExpo +# - EaseOutCirc +# - Linear +# +# Specifying a `duration` of `0` will disable the visual bell. +bell: + animation: EaseOutExpo + duration: 0 + color: '0xffffff' + +# Background opacity +# +# Window opacity as a floating point number from `0.0` to `1.0`. +# The value `0.0` is completely transparent and `1.0` is opaque. +background_opacity: 0.9 + +# Mouse bindings +# +# Available fields: +# - mouse +# - action +# - mods (optional) +# +# Values for `mouse`: +# - Middle +# - Left +# - Right +# - Numeric identifier such as `5` +# +# All available `mods` and `action` values are documented in the key binding +# section. +mouse_bindings: + - { mouse: Middle, action: PasteSelection } + +mouse: + # Click settings + # + # The `double_click` and `triple_click` settings control the time + # alacritty should wait for accepting multiple clicks as one double + # or triple click. + double_click: { threshold: 300 } + triple_click: { threshold: 300 } + + # If this is `true`, the cursor is temporarily hidden when typing. + hide_when_typing: false + +selection: + semantic_escape_chars: ",│`|:\"' ()[]{}<>" + + # When set to `true`, selected text will be copied to the primary clipboard. + save_to_clipboard: true + +cursor: + # Cursor style + # + # Values for `style`: + # - ▇ Block + # - _ Underline + # - | Beam + style: Beam + + # If this is `true`, the cursor will be rendered as a hollow box when the + # window is not focused. + unfocused_hollow: true + +# Live config reload (changes require restart) +live_config_reload: true + +# Shell +# +# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`. +# Entries in `shell.args` are passed unmodified as arguments to the shell. +# +# Default: +# - (Linux/macOS) /bin/bash --login +# - (Windows) powershell +shell: + program: /bin/tmux +# args: +# - --login + +# Windows 10 ConPTY backend (Windows only) +# +# This will enable better color support and may resolve other issues, +# however this API and its implementation is still young and so is +# disabled by default, as stability may not be as good as the winpty +# backend. +# +# Alacritty will fall back to the WinPTY automatically if the ConPTY +# backend cannot be initialized. +enable_experimental_conpty_backend: false + +# Send ESC (\x1b) before characters when alt is pressed. +alt_send_esc: true + +# Key bindings +# +# Key bindings are specified as a list of objects. Each binding will specify a +# key and modifiers required to trigger it, terminal modes where the binding is +# applicable, and what should be done when the key binding fires. It can either +# send a byte sequence to the running application (`chars`), execute a +# predefined action (`action`) or fork and execute a specified command plus +# arguments (`command`). +# +# Bindings are always filled by default, but will be replaced when a new binding +# with the same triggers is defined. To unset a default binding, it can be +# mapped to the `None` action. +# +# Example: +# `- { key: V, mods: Control|Shift, action: Paste }` +# +# Available fields: +# - key +# - mods (optional) +# - chars | action | command (exactly one required) +# - mode (optional) +# +# Values for `key`: +# - `A` -> `Z` +# - `F1` -> `F12` +# - `Key1` -> `Key0` +# +# A full list with available key codes can be found here: +# https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants +# +# Instead of using the name of the keys, the `key` field also supports using +# the scancode of the desired key. Scancodes have to be specified as a +# decimal number. +# This command will allow you to display the hex scancodes for certain keys: +# `showkey --scancodes` +# +# Values for `mods`: +# - Command +# - Control +# - Super +# - Shift +# - Alt +# +# Multiple `mods` can be combined using `|` like this: `mods: Control|Shift`. +# Whitespace and capitalization is relevant and must match the example. +# +# Values for `chars`: +# The `chars` field writes the specified string to the terminal. This makes +# it possible to pass escape sequences. +# To find escape codes for bindings like `PageUp` ("\x1b[5~"), you can run +# the command `showkey -a` outside of tmux. +# Note that applications use terminfo to map escape sequences back to +# keys. It is therefore required to update the terminfo when +# changing an escape sequence. +# +# Values for `action`: +# - Paste +# - PasteSelection +# - Copy +# - IncreaseFontSize +# - DecreaseFontSize +# - ResetFontSize +# - ScrollPageUp +# - ScrollPageDown +# - ScrollLineUp +# - ScrollLineDown +# - ScrollToTop +# - ScrollToBottom +# - ClearHistory +# - Hide +# - Quit +# - ClearLogNotice +# - SpawnNewInstance +# - None +# +# Values for `command`: +# The `command` field must be a map containing a `program` string and +# an `args` array of command line parameter strings. +# +# Example: +# `command: { program: "alacritty", args: ["-e", "vttest"] }` +# +# Values for `mode`: +# - ~AppCursor +# - AppCursor +# - ~AppKeypad +# - AppKeypad +key_bindings: + # (Windows/Linux only) + - { key: V, mods: Control|Shift, action: Paste } + - { key: C, mods: Control|Shift, action: Copy } + #- { key: Insert, mods: Shift, action: PasteSelection } + #- { key: Key0, mods: Control, action: ResetFontSize } + #- { key: Equals, mods: Control, action: IncreaseFontSize } + #- { key: Add, mods: Control, action: IncreaseFontSize } + #- { key: Subtract, mods: Control, action: DecreaseFontSize } + #- { key: Minus, mods: Control, action: DecreaseFontSize } + + # (macOS only) + #- { key: Key0, mods: Command, action: ResetFontSize } + #- { key: Equals, mods: Command, action: IncreaseFontSize } + #- { key: Add, mods: Command, action: IncreaseFontSize } + #- { key: Minus, mods: Command, action: DecreaseFontSize } + #- { key: K, mods: Command, action: ClearHistory } + #- { key: K, mods: Command, chars: "\x0c" } + #- { key: V, mods: Command, action: Paste } + #- { key: C, mods: Command, action: Copy } + #- { key: H, mods: Command, action: Hide } + #- { key: Q, mods: Command, action: Quit } + #- { key: W, mods: Command, action: Quit } + + - { key: Paste, action: Paste } + - { key: Copy, action: Copy } + - { key: L, mods: Control, action: ClearLogNotice } + - { key: L, mods: Control, chars: "\x0c" } + - { key: Home, mods: Alt, chars: "\x1b[1;3H" } + - { key: Home, chars: "\x1bOH", mode: AppCursor } + - { key: Home, chars: "\x1b[H", mode: ~AppCursor } + - { key: End, mods: Alt, chars: "\x1b[1;3F" } + - { key: End, chars: "\x1bOF", mode: AppCursor } + - { key: End, chars: "\x1b[F", mode: ~AppCursor } + - { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt } + - { key: PageUp, mods: Shift, chars: "\x1b[5;2~", mode: Alt } + - { key: PageUp, mods: Control, chars: "\x1b[5;5~" } + - { key: PageUp, mods: Alt, chars: "\x1b[5;3~" } + - { key: PageUp, chars: "\x1b[5~" } + - { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt } + - { key: PageDown, mods: Shift, chars: "\x1b[6;2~", mode: Alt } + - { key: PageDown, mods: Control, chars: "\x1b[6;5~" } + - { key: PageDown, mods: Alt, chars: "\x1b[6;3~" } + - { key: PageDown, chars: "\x1b[6~" } + - { key: Tab, mods: Shift, chars: "\x1b[Z" } + - { key: Back, chars: "\x7f" } + - { key: Back, mods: Alt, chars: "\x1b\x7f" } + - { key: Insert, chars: "\x1b[2~" } + - { key: Delete, chars: "\x1b[3~" } + - { key: Left, mods: Shift, chars: "\x1b[1;2D" } + - { key: Left, mods: Control, chars: "\x1b[1;5D" } + - { key: Left, mods: Alt, chars: "\x1b[1;3D" } + - { key: Left, chars: "\x1b[D", mode: ~AppCursor } + - { key: Left, chars: "\x1bOD", mode: AppCursor } + - { key: Right, mods: Shift, chars: "\x1b[1;2C" } + - { key: Right, mods: Control, chars: "\x1b[1;5C" } + - { key: Right, mods: Alt, chars: "\x1b[1;3C" } + - { key: Right, chars: "\x1b[C", mode: ~AppCursor } + - { key: Right, chars: "\x1bOC", mode: AppCursor } + - { key: Up, mods: Shift, chars: "\x1b[1;2A" } + - { key: Up, mods: Control, chars: "\x1b[1;5A" } + - { key: Up, mods: Alt, chars: "\x1b[1;3A" } + - { key: Up, chars: "\x1b[A", mode: ~AppCursor } + - { key: Up, chars: "\x1bOA", mode: AppCursor } + - { key: Down, mods: Shift, chars: "\x1b[1;2B" } + - { key: Down, mods: Control, chars: "\x1b[1;5B" } + - { key: Down, mods: Alt, chars: "\x1b[1;3B" } + - { key: Down, chars: "\x1b[B", mode: ~AppCursor } + - { key: Down, chars: "\x1bOB", mode: AppCursor } + - { key: F1, chars: "\x1bOP" } + - { key: F2, chars: "\x1bOQ" } + - { key: F3, chars: "\x1bOR" } + - { key: F4, chars: "\x1bOS" } + - { key: F5, chars: "\x1b[15~" } + - { key: F6, chars: "\x1b[17~" } + - { key: F7, chars: "\x1b[18~" } + - { key: F8, chars: "\x1b[19~" } + - { key: F9, chars: "\x1b[20~" } + - { key: F10, chars: "\x1b[21~" } + - { key: F11, chars: "\x1b[23~" } + - { key: F12, chars: "\x1b[24~" } + - { key: F1, mods: Shift, chars: "\x1b[1;2P" } + - { key: F2, mods: Shift, chars: "\x1b[1;2Q" } + - { key: F3, mods: Shift, chars: "\x1b[1;2R" } + - { key: F4, mods: Shift, chars: "\x1b[1;2S" } + - { key: F5, mods: Shift, chars: "\x1b[15;2~" } + - { key: F6, mods: Shift, chars: "\x1b[17;2~" } + - { key: F7, mods: Shift, chars: "\x1b[18;2~" } + - { key: F8, mods: Shift, chars: "\x1b[19;2~" } + - { key: F9, mods: Shift, chars: "\x1b[20;2~" } + - { key: F10, mods: Shift, chars: "\x1b[21;2~" } + - { key: F11, mods: Shift, chars: "\x1b[23;2~" } + - { key: F12, mods: Shift, chars: "\x1b[24;2~" } + - { key: F1, mods: Control, chars: "\x1b[1;5P" } + - { key: F2, mods: Control, chars: "\x1b[1;5Q" } + - { key: F3, mods: Control, chars: "\x1b[1;5R" } + - { key: F4, mods: Control, chars: "\x1b[1;5S" } + - { key: F5, mods: Control, chars: "\x1b[15;5~" } + - { key: F6, mods: Control, chars: "\x1b[17;5~" } + - { key: F7, mods: Control, chars: "\x1b[18;5~" } + - { key: F8, mods: Control, chars: "\x1b[19;5~" } + - { key: F9, mods: Control, chars: "\x1b[20;5~" } + - { key: F10, mods: Control, chars: "\x1b[21;5~" } + - { key: F11, mods: Control, chars: "\x1b[23;5~" } + - { key: F12, mods: Control, chars: "\x1b[24;5~" } + - { key: F1, mods: Alt, chars: "\x1b[1;6P" } + - { key: F2, mods: Alt, chars: "\x1b[1;6Q" } + - { key: F3, mods: Alt, chars: "\x1b[1;6R" } + - { key: F4, mods: Alt, chars: "\x1b[1;6S" } + - { key: F5, mods: Alt, chars: "\x1b[15;6~" } + - { key: F6, mods: Alt, chars: "\x1b[17;6~" } + - { key: F7, mods: Alt, chars: "\x1b[18;6~" } + - { key: F8, mods: Alt, chars: "\x1b[19;6~" } + - { key: F9, mods: Alt, chars: "\x1b[20;6~" } + - { key: F10, mods: Alt, chars: "\x1b[21;6~" } + - { key: F11, mods: Alt, chars: "\x1b[23;6~" } + - { key: F12, mods: Alt, chars: "\x1b[24;6~" } + - { key: F1, mods: Super, chars: "\x1b[1;3P" } + - { key: F2, mods: Super, chars: "\x1b[1;3Q" } + - { key: F3, mods: Super, chars: "\x1b[1;3R" } + - { key: F4, mods: Super, chars: "\x1b[1;3S" } + - { key: F5, mods: Super, chars: "\x1b[15;3~" } + - { key: F6, mods: Super, chars: "\x1b[17;3~" } + - { key: F7, mods: Super, chars: "\x1b[18;3~" } + - { key: F8, mods: Super, chars: "\x1b[19;3~" } + - { key: F9, mods: Super, chars: "\x1b[20;3~" } + - { key: F10, mods: Super, chars: "\x1b[21;3~" } + - { key: F11, mods: Super, chars: "\x1b[23;3~" } + - { key: F12, mods: Super, chars: "\x1b[24;3~" } + - { key: NumpadEnter, chars: "\n" } diff --git a/cmus/.config/cmus/codedark.theme b/cmus/.config/cmus/codedark.theme new file mode 100755 index 0000000..e6da3de --- /dev/null +++ b/cmus/.config/cmus/codedark.theme @@ -0,0 +1,22 @@ +set color_cmdline_bg=default +set color_cmdline_fg=default +set color_error=lightred +set color_info=lightyellow +set color_statusline_bg=blue +set color_statusline_fg=black +set color_titleline_bg=236 +set color_titleline_fg=white +set color_win_bg=default +set color_win_cur=lightblue +set color_win_cur_sel_bg=blue +set color_win_cur_sel_fg=white +set color_win_dir=lightblue +set color_win_fg=default +set color_win_inactive_cur_sel_bg=gray +set color_win_inactive_cur_sel_fg=lightyellow +set color_win_inactive_sel_bg=gray +set color_win_inactive_sel_fg=black +set color_win_sel_bg=blue +set color_win_sel_fg=white +set color_win_title_bg=blue +set color_win_title_fg=236 diff --git a/code/.config/Code/User/settings.json b/code/.config/Code/User/settings.json new file mode 100644 index 0000000..ebd8091 --- /dev/null +++ b/code/.config/Code/User/settings.json @@ -0,0 +1,228 @@ +{ + "breadcrumbs.enabled": true, + + "diffEditor.ignoreTrimWhitespace": false, + "diffEditor.renderIndicators": false, + + "editor.acceptSuggestionOnCommitCharacter": false, + "editor.accessibilitySupport": "off", + "editor.dragAndDrop": false, + "editor.emptySelectionClipboard": false, + "editor.fontFamily": "'Hack Nerd Font', 'Hack', 'Source Code Pro', 'Droid Sans Mono', 'Courier New', monospace, 'Droid Sans Fallback'", + "editor.fontSize": 15, + "editor.formatOnPaste": false, + "editor.hover.delay": 200, + "editor.minimap.enabled": false, + "editor.mouseWheelZoom": true, + "editor.multiCursorModifier": "ctrlCmd", + "editor.quickSuggestions": { + "comments": true, + "other": true, + "strings": true + }, + "editor.renderControlCharacters": true, + "editor.renderWhitespace": "boundary", + "editor.roundedSelection": false, + "editor.wordBasedSuggestions": false, + + "explorer.confirmDelete": false, + "explorer.confirmDragAndDrop": false, + + "extensions.ignoreRecommendations": true, + + "files.associations": { + "*.clang-tidy": "yaml" + }, + "files.eol": "\n", + "files.exclude": { + "**/.git": true, + "**/.svn": true, + "**/.hg": true, + "**/.DS_Store": true, + "**/bin": true, + "**/obj": true, + "**/Release": true, + "**/Debug": true, + "**/tidy-build": true, + }, + "files.insertFinalNewline": true, + "files.trimTrailingWhitespace": true, + + "git.detectSubmodules": false, + + "telemetry.enableTelemetry": false, + "telemetry.enableCrashReporter": false, + + "terminal.integrated.cursorBlinking": true, + "terminal.integrated.cursorStyle": "line", + + "update.enableWindowsBackgroundUpdates": false, + + "window.menuBarVisibility": "visible", + "window.newWindowDimensions": "inherit", + "window.openFilesInNewWindow": "default", + "window.restoreWindows": "none", + "window.title": "${dirty}${activeEditorShort}${separator}${rootName}${separator}${appName}", + "window.titleBarStyle": "custom", + "window.zoomLevel": -1, + + "workbench.colorTheme": "dark-plus-syntax", + "workbench.editor.enablePreview": false, + "workbench.editor.enablePreviewFromQuickOpen": false, + "workbench.iconTheme": "material-icon-theme", + "workbench.list.horizontalScrolling": true, + "workbench.list.openMode": "doubleClick", + + "zenMode.centerLayout": false, + + "[lua]": { + "editor.insertSpaces": false, + "editor.autoIndent": "none" + }, + "[yaml]": { + "editor.tabSize": 2, + "editor.insertSpaces": true, + "editor.autoIndent": "none" + }, + + "editor.tokenColorCustomizations": { + "[dark-plus-syntax]": { + "comments": "#6A9955", + "textMateRules": [ + { + "scope": [ + "entity.name.tag.localname.cs", + "punctuation.definition.tag.cs", + "punctuation.terminator.statement.cs", + "source.cs comment.block.documentation.cs punctuation.definition.comment.cs", + "source.cs comment.block.documentation.cs meta.tag.cs punctuation.separator.equals.cs" + ], + "settings": { + "foreground": "#d4d4d4" + } + }, + { + "scope": [ + "entity.name.variable.property.cs", + "entity.name.variable.parameter.cs", + "entity.name.variable.field.cs", + "entity.name.variable.local.cs", + "meta.interpolation.cs variable.other.object.property.cs" + ], + "settings": { + "foreground": "#d4d4d4" + }, + }, + { + "scope": [ + "keyword.other.get.cs", + "keyword.other.set.cs" + ], + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": [ + "comment.block.c", + ], + "settings": { + "foreground": "#6A9955" + } + }, + { + "scope": [ + "punctuation.terminator.statement.c" + ], + "settings": { + "foreground": "#d4d4d4" + } + }, + { + "scope": [ + "storage.type.c", + ], + "settings": { + "foreground": "#569cd6" + } + }, + ] + } + }, + + // Plugin settings + + // C/C++ + "C_Cpp.default.defines": [ + "TARGET_AMD64", + "TARGET_64BIT" + ], + "C_Cpp.intelliSenseEngine": "Default", + "C_Cpp.workspaceParsingPriority": "high", + + // C/C++ Advanced Lint + "c-cpp-flylint.clang.standard": [ "c++11" ], + "c-cpp-flylint.flexelint.enable": false, + + // Crates + "crates.compatibleDecorator": "✓", + + // GitLens + "gitlens.advanced.messages": { + "suppressCommitHasNoPreviousCommitWarning": false, + "suppressCommitNotFoundWarning": false, + "suppressFileNotUnderSourceControlWarning": false, + "suppressGitVersionWarning": false, + "suppressLineUncommittedWarning": false, + "suppressNoRepositoryWarning": false, + }, + + // Material Icon Theme + "material-icon-theme.folders.color": "#26a69a", + + // C# + "csharp.suppressHiddenDiagnostics": false, + "csharp.suppressDotnetInstallWarning": true, + "csharp.suppressDotnetRestoreNotification": true, + "omnisharp.enableEditorConfigSupport": true, + "omnisharp.enableRoslynAnalyzers": true, + "omnisharp.useGlobalMono": "auto", + "razor.disabled": true, + + // Rust (rls) + "rust.cfg_test": true, + "rust.clippy_preference": "on", + "rust.unstable_features": true, + + // Rust analyzer + "rust-analyzer.inlayHints.enable": false, + + "xmlTools.enforcePrettySelfClosingTagOnFormat": true, + + "cSpell.userWords": [ + "intrinsics", + "unpause", + "bitflags", + "cifs", + "cmus", + "datetime", + "derive", + "dylib", + "emby", + "encoder", + "image", + "jellyfin", + "magick", + "minecraft", + "mutex", + "openssl", + "peekable", + "read", + "serde", + "serilog", + "skia", + "ubyte", + "upnp", + "ushort" + ], +} diff --git a/initsh/.initsh b/initsh/.initsh new file mode 100755 index 0000000..ecad570 --- /dev/null +++ b/initsh/.initsh @@ -0,0 +1,69 @@ +#!/bin/sh + +KERNEL=$(uname -s) + +# EXPORTS +[ -f ~/.exports ] && source ~/.exports +# EDITORS +export EDITOR="nano" +export VISUAL="nvim" +## C/C++ +export CC="clang" +export CXX="clang++" +export DCMAKE_C_COMPILER=$CC +export DCMAKE_CXX_COMPILER=$CXX +## RUST +export RUST_BACKTRACE=full + +# Aliases +## Replace ls with exa if installed +if [ -x "$(command -v exa)" ]; then + alias ls="exa" + alias l="exa --icons" + alias tree="exa --tree" +else + alias ls="ls --color=auto" +fi +## Editors +alias e=$VISUAL +alias vim=$VISUAL +## Colors +alias dir="dir --color=auto" +alias grep="grep --color=auto" +alias hexedit="hexedit --color" +## Some more ls aliases +alias ll="ls -alF" +alias la="ls -a" + +# Easy to use copy/paste aliases for different platforms +if [ "$KERNEL" = "Linux" ]; then + alias ucopy="xclip -selection c" + alias upaste="xclip -selection clipboard -o" +elif [ "$KERNEL" = "Darwin" ]; then + alias ucopy="pbcopy" + alias upaste="pbpaste" +fi + +# Greeting message +if [ -n "$WELCOME_MSG" ]; then + if [ "$KERNEL" = "Linux" ]; then + DF_ARGS="-h -T -xtmpfs -xdevtmpfs" + OS_DESCRIPTION="$(lsb_release -sd)" + # Manjaro has a weird lsb_release, compensate + [ "$OS_DESCRIPTION" = '"Manjaro Linux"' ] && OS_DESCRIPTION="Manjaro Linux $(lsb_release -sr) ($(lsb_release -sc))" + elif [ "$KERNEL" = "Darwin" ]; then + DF_ARGS="-h -l" + OS_DESCRIPTION="$(system_profiler SPSoftwareDataType -detailLevel mini | grep -o "System Version: .*" | awk -F ': ' '{print $2}')" + fi + + echo + echo -e " \e[1mUser: \e[0;32m$USER\e[0m" + echo -e " \e[1mHostname: \e[0;32m$(uname -n)\e[0m" + echo -e " \e[1mOS: \e[0;32m$OS_DESCRIPTION\e[0m" + echo -e " \e[1mKernel: \e[0;32m$KERNEL $(uname -r)\e[0m" + echo + echo -e " \e[1mDisk usage:\e[0m" + echo + echo -e "$(eval df $DF_ARGS | sed 's/^/ /')" + echo +fi diff --git a/neovim/.config/nvim/init.vim b/neovim/.config/nvim/init.vim new file mode 100755 index 0000000..d58badf --- /dev/null +++ b/neovim/.config/nvim/init.vim @@ -0,0 +1,85 @@ +set langmenu=en_US +let $LANG = 'en_US' + +" Specify a directory for plugins +call plug#begin('~/.local/share/nvim/plugged') + +" Visual theme +Plug 'vim-airline/vim-airline' +Plug 'tomasiser/vim-code-dark' + +Plug 'w0rp/ale' + +" tmux powerline generator +" Plug 'edkolev/tmuxline.vim' + +" Language Support +Plug 'lervag/vimtex' +Plug 'rust-lang/rust.vim' +Plug 'cespare/vim-toml' + +" Autocomplete +Plug 'roxma/nvim-yarp' +Plug 'ncm2/ncm2' +Plug 'ncm2/ncm2-bufword' +Plug 'ncm2/ncm2-tmux' +Plug 'ncm2/ncm2-path' + +" Fuzzy finder +Plug 'airblade/vim-rooter' +Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } + +" Initialize plugin system +call plug#end() + +" Theme +set background=dark +colorscheme codedark +let g:airline_theme = 'codedark' +hi Normal ctermbg=NONE guibg=NONE +"hi NonText ctermbg=NONE guibg=NONE +hi LineNr ctermbg=NONE guibg=NONE +hi EndOfBuffer ctermbg=NONE guibg=NONE + +" General settings +"set termguicolors +set number +set nowrap +set mouse=a " Enable mouse in all modes +set colorcolumn=80 +au VimLeave * set guicursor=a:ver10-blinkon0 + +" Speed +" https://github.com/vim/vim/issues/1735#issuecomment-383353563 +set ttyfast +set lazyredraw +set synmaxcol=500 + +" Default indent settings +set expandtab! " Don't replace tabs with spaces +set tabstop=4 +set shiftwidth=4 +set softtabstop=4 +set autoindent +set smartindent +set cindent + +" Keybinds +map <C-f> / +map <C-s> :w<Cr> +" Open file keybind +map <C-p> :Files<Cr> + +" Permanent undo +set undodir=~/.vimdid +set undofile + +" ncm2 settings +autocmd BufEnter * call ncm2#enable_for_buffer() +set completeopt=noinsert,menuone,noselect +" tab to select +" and don't hijack my enter key +inoremap <expr><Tab> (pumvisible()?(empty(v:completed_item)?"\<C-n>":"\<C-y>"):"\<Tab>") +inoremap <expr><CR> (pumvisible()?(empty(v:completed_item)?"\<CR>\<CR>":"\<C-y>"):"\<CR>") + +let g:tex_flavor = 'latex' diff --git a/rofi/.config/rofi/config.rasi b/rofi/.config/rofi/config.rasi new file mode 100755 index 0000000..ae36e8d --- /dev/null +++ b/rofi/.config/rofi/config.rasi @@ -0,0 +1,70 @@ +configuration { +/* modi: "window,run,ssh";*/ + width: -64; + lines: 16; +/* columns: 1;*/ + font: "Hack 12"; + bw: 0; +/* location: 0;*/ + padding: 5; +/* yoffset: 0;*/ +/* xoffset: 0;*/ +/* fixed-num-lines: true;*/ + show-icons: true; + terminal: "alacritty"; +/* ssh-client: "ssh";*/ +/* ssh-command: "{terminal} -e {ssh-client} {host}";*/ +/* run-command: "{cmd}";*/ +/* run-list-command: "";*/ +/* run-shell-command: "{terminal} -e {cmd}";*/ +/* window-command: "xkill -id {window}";*/ +/* window-match-fields: "all";*/ +// backlight: #ccffeedd; +// background-color: transparent; +// drun-icon-theme: "breath"; +/* drun-match-fields: "name,generic,exec,categories";*/ +/* disable-history: false;*/ +/* sort: false;*/ +/* levenshtein-sort: false;*/ +/* case-sensitive: false;*/ +/* cycle: true;*/ +/* sidebar-mode: false;*/ +// eh: 1; +/* auto-select: false;*/ +/* parse-hosts: false;*/ +/* parse-known-hosts: true;*/ +/* combi-modi: "window,run";*/ + matching: "fuzzy"; +/* tokenize: true;*/ +/* m: "-5";*/ + line-margin: 3; +/* line-padding: 1;*/ +/* filter: ;*/ + separator-style: "solid"; +/* hide-scrollbar: false;*/ +/* fullscreen: false;*/ +/* fake-transparency: false;*/ +/* dpi: 100;*/ + threads: 0; + scrollbar-width: 5; +/* scroll-method: 0;*/ +/* fake-background: "screenshot";*/ +/* window-format: "{w} {i}{c} {t}";*/ +/* click-to-exit: true;*/ +/* show-match: true;*/ +// theme: "/usr/share/rofi/themes/Adapta-Nokto.rasi"; + color-normal: "argb:a5333333, #ffffff, argb:a5262626, argb:a55fafff, #ffffff"; +/* color-urgent: ;*/ +/* color-active: ;*/ + color-window: "argb:a5222222, #3a3a3a, #5fafff"; +/* max-history-size: 25;*/ +/* combi-hide-mode-prefix: false;*/ +/* pid: "/run/user/1000/rofi.pid";*/ +/* display-window: ;*/ +/* display-windowcd: ;*/ + display-run: "run"; + display-ssh: "ssh"; +/* display-drun: ;*/ +/* display-combi: ;*/ +/* display-keys: ;*/ +} diff --git a/tmux/.tmux.conf b/tmux/.tmux.conf new file mode 100755 index 0000000..77197aa --- /dev/null +++ b/tmux/.tmux.conf @@ -0,0 +1,43 @@ +# Limit history to 100.000 lines +set-option -g history-limit 100000 + +set -g default-terminal "tmux-256color" +set -ag terminal-overrides ",alacritty:RGB" + +# Remap prefix from 'C-b' to 'C-a' +unbind C-b +set-option -g prefix C-a +bind-key C-a send-prefix + +# VI-mode +set-window-option -g mode-keys vi + +# Remove ESC delay +set -s escape-time 0 + +set -g set-titles on +set -g set-titles-string "#T" + +# Move between panes with Shift +bind -n S-Left select-window -p +bind -n S-Right select-window -n +bind -n S-Down new-window +bind -n S-Up command-prompt "rename-window %%" + +# Create new windows shortcut +bind -n C-b split-window -v +bind -n C-h split-window -h + +# Enable mouse mode (tmux 2.1 and above) +set -g mouse on + +# Don't rename windows automatically +setw -g automatic-rename off +# Renumber windows when a window is closed +set -g renumber-windows on + +# Set status bar to top +#set-option -g status-position top + +# Load theme +if '[ -f ~/.tmux.theme.conf ]' 'source ~/.tmux.theme.conf' diff --git a/tmux/.tmux.theme.conf b/tmux/.tmux.theme.conf new file mode 100644 index 0000000..1e42f34 --- /dev/null +++ b/tmux/.tmux.theme.conf @@ -0,0 +1,19 @@ +set -g status-justify "left" +set -g status "on" +set -g status-left-style "none" +set -g message-command-style "fg=colour15,bg=colour236" +set -g status-right-style "none" +set -g pane-active-border-style "fg=colour32" +set -g status-style "none,bg=default" +set -g message-style "fg=colour15,bg=colour236" +set -g pane-border-style "fg=colour236" +set -g status-right-length "100" +set -g status-left-length "100" +setw -g window-status-activity-style "none" +setw -g window-status-separator "" +setw -g window-status-style "none,fg=colour15,bg=default" +set -g status-left "#[fg=colour235,bg=blue,none] #S #[fg=blue,bg=default,none] " +set -g status-right "#[fg=colour235,bg=default,nobold,nounderscore,noitalics]#[fg=colour15,bg=colour235] %d-%m-%Y %H:%M #[fg=blue,bg=colour235,nobold,nounderscore,noitalics]#[fg=colour15,bg=colour32] #h " +setw -g window-status-format "#[fg=colour15,bg=default,none] #I #[fg=colour15,bg=default] #W " +setw -g window-status-current-format "#[fg=colour235,bg=colour32,none] #I #[fg=colour235,bg=colour32,none] #W " + diff --git a/zsh/.zprofile b/zsh/.zprofile new file mode 100644 index 0000000..38e3dbf --- /dev/null +++ b/zsh/.zprofile @@ -0,0 +1,5 @@ +if [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]] +then + source .profile + startxfce4 +fi diff --git a/zsh/.zshrc b/zsh/.zshrc new file mode 100755 index 0000000..db49ac0 --- /dev/null +++ b/zsh/.zshrc @@ -0,0 +1,124 @@ +# Exec general init script +source ~/.initsh + +# If not running interactively, don't do anything else +case $- in + *i*) ;; + *) return;; +esac + +# Set up the prompt + +autoload -Uz promptinit +promptinit +prompt default + +setopt histignorealldups sharehistory + +# Use vi keybindings even if our EDITOR is set to emacs +bindkey -v + +# Remove delay when entering normal mode (vi) +KEYTIMEOUT=5 + +# create a zkbd compatible hash; +# to add other keys to this hash, see: man 5 terminfo +typeset -g -A key + +key[Home]="${terminfo[khome]}" +key[End]="${terminfo[kend]}" +key[Insert]="${terminfo[kich1]}" +key[Backspace]="${terminfo[kbs]}" +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[Shift-Tab]="${terminfo[kcbt]}" + +# 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[Backspace]}" ]] && bindkey -- "${key[Backspace]}" backward-delete-char +[[ -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[PageUp]}" ]] && bindkey -- "${key[PageUp]}" beginning-of-buffer-or-history +[[ -n "${key[PageDown]}" ]] && bindkey -- "${key[PageDown]}" end-of-buffer-or-history +[[ -n "${key[Shift-Tab]}" ]] && bindkey -- "${key[Shift-Tab]}" reverse-menu-complete + +# Finally, make sure the terminal is in application mode, when zle is +# active. Only then are the values from $terminfo valid. +if (( ${+terminfo[smkx]} && ${+terminfo[rmkx]} )); then + autoload -Uz add-zle-hook-widget + function zle_application_mode_start { echoti smkx } + function zle_application_mode_stop { echoti rmkx } + add-zle-hook-widget -Uz zle-line-init zle_application_mode_start + add-zle-hook-widget -Uz zle-line-finish zle_application_mode_stop +fi + +# Keep 100.000 lines of history within the shell and save it to ~/.zsh_history +HISTSIZE=100000 +SAVEHIST=100000 +HISTFILE=~/.zsh_history +SHARE_HISTORY=1 +HIST_IGNORE_DUPS=1 +HIST_FIND_NO_DUPS=1 +NO_HIST_BEEP=1 + +# Use modern completion system +autoload -Uz compinit +compinit + +zstyle ':completion:*' auto-description 'specify: %d' +zstyle ':completion:*' completer _expand _complete _correct _approximate +zstyle ':completion:*' format 'Completing %d' +zstyle ':completion:*' group-name '' +zstyle ':completion:*' menu select=2 +zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS} +zstyle ':completion:*' list-colors '' +zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s +zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=* l:|=*' +zstyle ':completion:*' menu select=long +zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s +zstyle ':completion:*' use-compctl false +zstyle ':completion:*' verbose true + +zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31' +zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd' + +# Autocompletion of command line switches for aliases +setopt COMPLETE_ALIASES + +# Disable autocorrect +unsetopt correct_all + +# Don't show username and machine name +export DEFAULT_USER="$USER" + +# Don't indent prompt +export ZLE_RPROMPT_INDENT=0 + +# Powerlevel9k +[ -n "$POWERLEVEL9K_THEME" ] && source "$POWERLEVEL9K_THEME" +## Settings +POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context dir dir_writable vcs) +POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status background_jobs command_execution_time time) +POWERLEVEL9K_SHORTEN_DIR_LENGTH=1 +## Style +POWERLEVEL9K_STATUS_ERROR_BACKGROUND='009' # lightred +POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND='009' # lightred + +# Autosuggestions +[ -n "$ZSH_AUTOSUGGEST_PATH" ] && source "$ZSH_AUTOSUGGEST_PATH" +ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE=fg=7 +ZSH_AUTOSUGGEST_USE_ASYNC=1 +# Syntax highlighting +[ -n "$ZSH_SYNTAX_HIGHLIGHTING_PATH" ] && source "$ZSH_SYNTAX_HIGHLIGHTING_PATH" + +[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh |
