├── .Xresources ├── .config ├── Code - OSS │ └── User │ │ └── settings.json ├── alacritty │ └── alacritty.yml ├── bspwm │ └── bspwmrc ├── fish │ ├── completions │ │ ├── fisher.fish │ │ └── nvm.fish │ ├── conf.d │ │ └── nvm.fish │ ├── config.fish │ ├── fish_variables │ ├── fishfile │ └── functions │ │ ├── fish_greeting.fish │ │ ├── fish_prompt.fish │ │ ├── fisher.fish │ │ ├── get_fisher.fish │ │ ├── nvm.fish │ │ └── update_go.fish ├── fontconfig │ └── conf.d │ │ └── 99-emoji.conf ├── gtk-2.0 │ └── gtkfilechooser.ini ├── gtk-3.0 │ ├── gtk-3.0 │ │ ├── bookmarks │ │ └── settings.ini │ └── settings.ini ├── mimeapps.list ├── pavucontrol.ini ├── picom.conf ├── polybar │ ├── config │ └── launch.sh ├── rofi │ ├── config.rasi │ └── window.rasi └── sxhkd │ └── sxhkdrc ├── .gtkrc-2.0 ├── .vimrc ├── .xinitrc └── README.md /.Xresources: -------------------------------------------------------------------------------- 1 | Xft.dpi: 96 2 | Xft.antialias: true 3 | Xft.hinting: true 4 | Xft.rgba: rgb 5 | Xft.autohint: true 6 | Xft.hintstyle: hintslight 7 | Xft.lcdfilter: lcddefault 8 | Xcursor.theme: McMojave 9 | 10 | ! special 11 | *.foreground: #b9b9b9 12 | *.background: #101010 13 | *.cursorColor: #b9b9b9 14 | 15 | ! black 16 | *.color0: #101010 17 | *.color8: #525252 18 | 19 | ! red 20 | *.color1: #7c7c7c 21 | *.color9: #7c7c7c 22 | 23 | ! green 24 | *.color2: #8e8e8e 25 | *.color10: #8e8e8e 26 | 27 | ! yellow 28 | *.color3: #a0a0a0 29 | *.color11: #a0a0a0 30 | 31 | ! blue 32 | *.color4: #686868 33 | *.color12: #686868 34 | 35 | ! magenta 36 | *.color5: #747474 37 | *.color13: #747474 38 | 39 | ! cyan 40 | *.color6: #868686 41 | *.color14: #868686 42 | 43 | ! white 44 | *.color7: #b9b9b9 45 | *.color15: #f7f7f7 46 | -------------------------------------------------------------------------------- /.config/Code - OSS/User/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "workbench.colorTheme": "GitHub Dark", 3 | "workbench.iconTheme": "vscode-great-icons", 4 | "workbench.startupEditor": "welcomePage", 5 | "files.exclude": { 6 | "**/.classpath": true, 7 | "**/.project": true, 8 | "**/.settings": true, 9 | "**/.factorypath": true 10 | }, 11 | "editor.cursorStyle": "block", 12 | "editor.fontFamily": "'JetBrains Mono', Consolas, 'Courier New', monospace", 13 | "editor.cursorBlinking": "solid", 14 | "editor.minimap.enabled": false, 15 | "editor.tabSize": 2, 16 | "editor.fontLigatures": true, 17 | "editor.fontSize": 12, 18 | "editor.insertSpaces": false, 19 | "explorer.openEditors.visible": 0, 20 | "explorer.autoReveal": false, 21 | "window.zoomLevel": 0, 22 | "window.titleBarStyle": "native", 23 | "editor.suggestSelection": "first", 24 | "files.watcherExclude": { 25 | "**/.git/objects/**": true, 26 | "**/.git/subtree-cache/**": true, 27 | "**/node_modules/*/**": true 28 | }, 29 | "debug.console.fontSize": 12, 30 | "markdown.preview.fontSize": 12, 31 | "terminal.integrated.fontSize": 12, 32 | "terminal.integrated.shell.osx": "/opt/Homebrew/bin/fish", 33 | "go.formatTool": "goimports", 34 | // "diffEditor.ignoreTrimWhitespace": false, 35 | "dart.flutterSdkPath": "/usr/local/lib/flutter", 36 | "webhint.enableTelemetry": "disabled", 37 | "terminal.explorerKind": "external" 38 | } -------------------------------------------------------------------------------- /.config/alacritty/alacritty.yml: -------------------------------------------------------------------------------- 1 | # Configuration for Alacritty, the GPU enhanced terminal emulator. 2 | 3 | # Any items in the `env` entry below will be added as 4 | # environment variables. Some entries may override variables 5 | # set by alacritty itself. 6 | #env: 7 | # TERM variable 8 | # 9 | # This value is used to set the `$TERM` environment variable for 10 | # each instance of Alacritty. If it is not present, alacritty will 11 | # check the local terminfo database and use `alacritty` if it is 12 | # available, otherwise `xterm-256color` is used. 13 | #TERM: alacritty 14 | 15 | window: 16 | # Window dimensions (changes require restart) 17 | # 18 | # Specified in number of columns/lines, not pixels. 19 | # If both are `0`, this setting is ignored. 20 | #dimensions: 21 | # columns: 0 22 | # lines: 0 23 | 24 | # Window position (changes require restart) 25 | # 26 | # Specified in number of pixels. 27 | # If the position is not set, the window manager will handle the placement. 28 | #position: 29 | # x: 0 30 | # y: 0 31 | 32 | # Window padding (changes require restart) 33 | # 34 | # Blank space added around the window in pixels. This padding is scaled 35 | # by DPI and the specified value is always added at both opposing sides. 36 | padding: 37 | x: 8 38 | y: 8 39 | 40 | # Spread additional padding evenly around the terminal content. 41 | #dynamic_padding: false 42 | 43 | # Window decorations 44 | # 45 | # Values for `decorations`: 46 | # - full: Borders and title bar 47 | # - none: Neither borders nor title bar 48 | # 49 | # Values for `decorations` (macOS only): 50 | # - transparent: Title bar, transparent background and title bar buttons 51 | # - buttonless: Title bar, transparent background, but no title bar buttons 52 | #decorations: full 53 | 54 | # Startup Mode (changes require restart) 55 | # 56 | # Values for `startup_mode`: 57 | # - Windowed 58 | # - Maximized 59 | # - Fullscreen 60 | # 61 | # Values for `startup_mode` (macOS only): 62 | # - SimpleFullscreen 63 | #startup_mode: Windowed 64 | 65 | # Window title 66 | #title: Alacritty 67 | 68 | # Window class (Linux/BSD only): 69 | #class: 70 | # Application instance name 71 | #instance: Alacritty 72 | # General application class 73 | #general: Alacritty 74 | 75 | # GTK theme variant (Linux/BSD only) 76 | # 77 | # Override the variant of the GTK theme. Commonly supported values are `dark` and `light`. 78 | # Set this to `None` to use the default theme variant. 79 | #gtk_theme_variant: None 80 | 81 | scrolling: 82 | # Maximum number of lines in the scrollback buffer. 83 | # Specifying '0' will disable scrolling. 84 | history: 10000 85 | 86 | # Number of lines the viewport will move for every line scrolled when 87 | # scrollback is enabled (history > 0). 88 | multiplier: 3 89 | 90 | # Font configuration 91 | font: 92 | # Normal (roman) font face 93 | normal: 94 | # Font family 95 | # 96 | # Default: 97 | # - (macOS) Menlo 98 | # - (Linux/BSD) monospace 99 | # - (Windows) Consolas 100 | family: JetBrains Mono 101 | 102 | # The `style` can be specified to pick a specific face. 103 | #style: Regular 104 | 105 | # Bold font face 106 | #bold: 107 | # Font family 108 | # 109 | # If the bold family is not specified, it will fall back to the 110 | # value specified for the normal font. 111 | #family: monospace 112 | 113 | # The `style` can be specified to pick a specific face. 114 | #style: Bold 115 | 116 | # Italic font face 117 | #italic: 118 | # Font family 119 | # 120 | # If the italic family is not specified, it will fall back to the 121 | # value specified for the normal font. 122 | #family: monospace 123 | 124 | # The `style` can be specified to pick a specific face. 125 | #style: Italic 126 | 127 | # Bold italic font face 128 | #bold_italic: 129 | # Font family 130 | # 131 | # If the bold italic family is not specified, it will fall back to the 132 | # value specified for the normal font. 133 | #family: monospace 134 | 135 | # The `style` can be specified to pick a specific face. 136 | #style: Bold Italic 137 | 138 | # Point size 139 | size: 9.0 140 | 141 | # Offset is the extra space around each character. `offset.y` can be thought of 142 | # as modifying the line spacing, and `offset.x` as modifying the letter spacing. 143 | #offset: 144 | # x: 0 145 | # y: 0 146 | 147 | # Glyph offset determines the locations of the glyphs within their cells with 148 | # the default being at the bottom. Increasing `x` moves the glyph to the right, 149 | # increasing `y` moves the glyph upwards. 150 | #glyph_offset: 151 | # x: 0 152 | # y: 0 153 | 154 | # Thin stroke font rendering (macOS only) 155 | # 156 | # Thin strokes are suitable for retina displays, but for non-retina screens 157 | # it is recommended to set `use_thin_strokes` to `false` 158 | # 159 | # macOS >= 10.14.x: 160 | # 161 | # If the font quality on non-retina display looks bad then set 162 | # `use_thin_strokes` to `true` and enable font smoothing by running the 163 | # following command: 164 | # `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO` 165 | # 166 | # This is a global setting and will require a log out or restart to take 167 | # effect. 168 | #use_thin_strokes: true 169 | 170 | # If `true`, bold text is drawn using the bright color variants. 171 | #draw_bold_text_with_bright_colors: false 172 | 173 | # Colors (Tomorrow Night Bright) 174 | colors: 175 | # Default colors 176 | primary: 177 | background: '#000000' 178 | foreground: '#b9b9b9' 179 | 180 | # Bright and dim foreground colors 181 | # 182 | # The dimmed foreground color is calculated automatically if it is not present. 183 | # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors` 184 | # is `false`, the normal foreground color will be used. 185 | #dim_foreground: '#9a9a9a' 186 | #bright_foreground: '#ffffff' 187 | 188 | # Cursor colors 189 | # 190 | # Colors which should be used to draw the terminal cursor. If these are unset, 191 | # the cursor color will be the inverse of the cell color. 192 | #cursor: 193 | # text: '#000000' 194 | # cursor: '#ffffff' 195 | 196 | # Selection colors 197 | # 198 | # Colors which should be used to draw the selection area. If selection 199 | # background is unset, selection color will be the inverse of the cell colors. 200 | # If only text is unset the cell text color will remain the same. 201 | #selection: 202 | # text: '#eaeaea' 203 | # background: '#404040' 204 | 205 | # Normal colors 206 | normal: 207 | black: '#101010' 208 | red: '#7c7c7c' 209 | green: '#8e8e8e' 210 | yellow: '#a0a0a0' 211 | blue: '#686868' 212 | magenta: '#747474' 213 | cyan: '#868686' 214 | white: '#b9b9b9' 215 | 216 | # Bright colors 217 | bright: 218 | black: '#525252' 219 | red: '#7c7c7c' 220 | green: '#8e8e8e' 221 | yellow: '#a0a0a0' 222 | blue: '#686868' 223 | magenta: '#747474' 224 | cyan: '#868686' 225 | white: '#f7f7f7' 226 | 227 | # Dim colors 228 | # 229 | # If the dim colors are not set, they will be calculated automatically based 230 | # on the `normal` colors. 231 | #dim: 232 | # black: '#000000' 233 | # red: '#8c3336' 234 | # green: '#7a8530' 235 | # yellow: '#97822e' 236 | # blue: '#506d8f' 237 | # magenta: '#80638e' 238 | # cyan: '#497e7a' 239 | # white: '#9a9a9a' 240 | 241 | # Indexed Colors 242 | # 243 | # The indexed colors include all colors from 16 to 256. 244 | # When these are not set, they're filled with sensible defaults. 245 | # 246 | # Example: 247 | # `- { index: 16, color: '#ff00ff' }` 248 | # 249 | #indexed_colors: [] 250 | 251 | # Visual Bell 252 | # 253 | # Any time the BEL code is received, Alacritty "rings" the visual bell. Once 254 | # rung, the terminal background will be set to white and transition back to the 255 | # default background color. You can control the rate of this transition by 256 | # setting the `duration` property (represented in milliseconds). You can also 257 | # configure the transition function by setting the `animation` property. 258 | # 259 | # Values for `animation`: 260 | # - Ease 261 | # - EaseOut 262 | # - EaseOutSine 263 | # - EaseOutQuad 264 | # - EaseOutCubic 265 | # - EaseOutQuart 266 | # - EaseOutQuint 267 | # - EaseOutExpo 268 | # - EaseOutCirc 269 | # - Linear 270 | # 271 | # Specifying a `duration` of `0` will disable the visual bell. 272 | #visual_bell: 273 | # animation: EaseOutExpo 274 | # duration: 0 275 | # color: '#ffffff' 276 | 277 | # Background opacity 278 | # 279 | # Window opacity as a floating point number from `0.0` to `1.0`. 280 | # The value `0.0` is completely transparent and `1.0` is opaque. 281 | background_opacity: 0.8 282 | 283 | #selection: 284 | #semantic_escape_chars: ",│`|:\"' ()[]{}<>\t" 285 | 286 | # When set to `true`, selected text will be copied to the primary clipboard. 287 | #save_to_clipboard: false 288 | 289 | # Allow terminal applications to change Alacritty's window title. 290 | #dynamic_title: true 291 | 292 | cursor: 293 | # Cursor style 294 | # 295 | # Values for `style`: 296 | # - ▇ Block 297 | # - _ Underline 298 | # - | Beam 299 | style: Block 300 | 301 | # If this is `true`, the cursor will be rendered as a hollow box when the 302 | # window is not focused. 303 | #unfocused_hollow: true 304 | 305 | # Live config reload (changes require restart) 306 | #live_config_reload: true 307 | 308 | # Shell 309 | # 310 | # You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`. 311 | # Entries in `shell.args` are passed unmodified as arguments to the shell. 312 | # 313 | # Default: 314 | # - (macOS) /bin/bash --login 315 | # - (Linux/BSD) user login shell 316 | # - (Windows) powershell 317 | shell: 318 | program: /bin/fish 319 | # args: 320 | # - --login 321 | 322 | # Startup directory 323 | # 324 | # Directory the shell is started in. If this is unset, or `None`, the working 325 | # directory of the parent process will be used. 326 | #working_directory: None 327 | 328 | # WinPTY backend (Windows only) 329 | # 330 | # Alacritty defaults to using the newer ConPTY backend if it is available, 331 | # since it resolves a lot of bugs and is quite a bit faster. If it is not 332 | # available, the the WinPTY backend will be used instead. 333 | # 334 | # Setting this option to `true` makes Alacritty use the legacy WinPTY backend, 335 | # even if the ConPTY backend is available. 336 | #winpty_backend: false 337 | 338 | # Send ESC (\x1b) before characters when alt is pressed. 339 | #alt_send_esc: true 340 | 341 | #mouse: 342 | # Click settings 343 | # 344 | # The `double_click` and `triple_click` settings control the time 345 | # alacritty should wait for accepting multiple clicks as one double 346 | # or triple click. 347 | #double_click: { threshold: 300 } 348 | #triple_click: { threshold: 300 } 349 | 350 | # If this is `true`, the cursor is temporarily hidden when typing. 351 | #hide_when_typing: false 352 | 353 | #url: 354 | # URL launcher 355 | # 356 | # This program is executed when clicking on a text which is recognized as a URL. 357 | # The URL is always added to the command as the last parameter. 358 | # 359 | # When set to `None`, URL launching will be disabled completely. 360 | # 361 | # Default: 362 | # - (macOS) open 363 | # - (Linux/BSD) xdg-open 364 | # - (Windows) explorer 365 | #launcher: 366 | # program: xdg-open 367 | # args: [] 368 | 369 | # URL modifiers 370 | # 371 | # These are the modifiers that need to be held down for opening URLs when clicking 372 | # on them. The available modifiers are documented in the key binding section. 373 | #modifiers: None 374 | 375 | # Mouse bindings 376 | # 377 | # Mouse bindings are specified as a list of objects, much like the key 378 | # bindings further below. 379 | # 380 | # To trigger mouse bindings when an application running within Alacritty captures the mouse, the 381 | # `Shift` modifier is automatically added as a requirement. 382 | # 383 | # Each mouse binding will specify a: 384 | # 385 | # - `mouse`: 386 | # 387 | # - Middle 388 | # - Left 389 | # - Right 390 | # - Numeric identifier such as `5` 391 | # 392 | # - `action` (see key bindings) 393 | # 394 | # And optionally: 395 | # 396 | # - `mods` (see key bindings) 397 | #mouse_bindings: 398 | # - { mouse: Middle, action: PasteSelection } 399 | 400 | # Key bindings 401 | # 402 | # Key bindings are specified as a list of objects. For example, this is the 403 | # default paste binding: 404 | # 405 | # `- { key: V, mods: Control|Shift, action: Paste }` 406 | # 407 | # Each key binding will specify a: 408 | # 409 | # - `key`: Identifier of the key pressed 410 | # 411 | # - A-Z 412 | # - F1-F24 413 | # - Key0-Key9 414 | # 415 | # A full list with available key codes can be found here: 416 | # https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants 417 | # 418 | # Instead of using the name of the keys, the `key` field also supports using 419 | # the scancode of the desired key. Scancodes have to be specified as a 420 | # decimal number. This command will allow you to display the hex scancodes 421 | # for certain keys: 422 | # 423 | # `showkey --scancodes`. 424 | # 425 | # Then exactly one of: 426 | # 427 | # - `chars`: Send a byte sequence to the running application 428 | # 429 | # The `chars` field writes the specified string to the terminal. This makes 430 | # it possible to pass escape sequences. To find escape codes for bindings 431 | # like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside 432 | # of tmux. Note that applications use terminfo to map escape sequences back 433 | # to keys. It is therefore required to update the terminfo when changing an 434 | # escape sequence. 435 | # 436 | # - `action`: Execute a predefined action 437 | # 438 | # - Copy 439 | # - Paste 440 | # - PasteSelection 441 | # - IncreaseFontSize 442 | # - DecreaseFontSize 443 | # - ResetFontSize 444 | # - ScrollPageUp 445 | # - ScrollPageDown 446 | # - ScrollLineUp 447 | # - ScrollLineDown 448 | # - ScrollToTop 449 | # - ScrollToBottom 450 | # - ClearHistory 451 | # - Hide 452 | # - Minimize 453 | # - Quit 454 | # - ToggleFullscreen 455 | # - SpawnNewInstance 456 | # - ClearLogNotice 457 | # - ReceiveChar 458 | # - None 459 | # 460 | # (macOS only): 461 | # - ToggleSimpleFullscreen: Enters fullscreen without occupying another space 462 | # 463 | # - `command`: Fork and execute a specified command plus arguments 464 | # 465 | # The `command` field must be a map containing a `program` string and an 466 | # `args` array of command line parameter strings. For example: 467 | # `{ program: "alacritty", args: ["-e", "vttest"] }` 468 | # 469 | # And optionally: 470 | # 471 | # - `mods`: Key modifiers to filter binding actions 472 | # 473 | # - Command 474 | # - Control 475 | # - Option 476 | # - Super 477 | # - Shift 478 | # - Alt 479 | # 480 | # Multiple `mods` can be combined using `|` like this: 481 | # `mods: Control|Shift`. 482 | # Whitespace and capitalization are relevant and must match the example. 483 | # 484 | # - `mode`: Indicate a binding for only specific terminal reported modes 485 | # 486 | # This is mainly used to send applications the correct escape sequences 487 | # when in different modes. 488 | # 489 | # - AppCursor 490 | # - AppKeypad 491 | # - Alt 492 | # 493 | # A `~` operator can be used before a mode to apply the binding whenever 494 | # the mode is *not* active, e.g. `~Alt`. 495 | # 496 | # Bindings are always filled by default, but will be replaced when a new 497 | # binding with the same triggers is defined. To unset a default binding, it can 498 | # be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for 499 | # a no-op if you do not wish to receive input characters for that binding. 500 | # 501 | # If the same trigger is assigned to multiple actions, all of them are executed 502 | # at once. 503 | #key_bindings: 504 | # (Windows, Linux, and BSD only) 505 | #- { key: V, mods: Control|Shift, action: Paste } 506 | #- { key: C, mods: Control|Shift, action: Copy } 507 | #- { key: Insert, mods: Shift, action: PasteSelection } 508 | #- { key: Key0, mods: Control, action: ResetFontSize } 509 | #- { key: Equals, mods: Control, action: IncreaseFontSize } 510 | #- { key: Add, mods: Control, action: IncreaseFontSize } 511 | #- { key: Subtract, mods: Control, action: DecreaseFontSize } 512 | #- { key: Minus, mods: Control, action: DecreaseFontSize } 513 | 514 | # (Windows only) 515 | #- { key: Return, mods: Alt, action: ToggleFullscreen } 516 | 517 | # (macOS only) 518 | #- { key: Key0, mods: Command, action: ResetFontSize } 519 | #- { key: Equals, mods: Command, action: IncreaseFontSize } 520 | #- { key: Add, mods: Command, action: IncreaseFontSize } 521 | #- { key: Minus, mods: Command, action: DecreaseFontSize } 522 | #- { key: K, mods: Command, action: ClearHistory } 523 | #- { key: K, mods: Command, chars: "\x0c" } 524 | #- { key: V, mods: Command, action: Paste } 525 | #- { key: C, mods: Command, action: Copy } 526 | #- { key: H, mods: Command, action: Hide } 527 | #- { key: M, mods: Command, action: Minimize } 528 | #- { key: Q, mods: Command, action: Quit } 529 | #- { key: W, mods: Command, action: Quit } 530 | #- { key: F, mods: Command|Control, action: ToggleFullscreen } 531 | 532 | #- { key: Paste, action: Paste } 533 | #- { key: Copy, action: Copy } 534 | #- { key: L, mods: Control, action: ClearLogNotice } 535 | #- { key: L, mods: Control, chars: "\x0c" } 536 | #- { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt } 537 | #- { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt } 538 | #- { key: Home, mods: Shift, action: ScrollToTop, mode: ~Alt } 539 | #- { key: End, mods: Shift, action: ScrollToBottom, mode: ~Alt } 540 | 541 | #debug: 542 | # Display the time it takes to redraw each frame. 543 | #render_timer: false 544 | 545 | # Keep the log file after quitting Alacritty. 546 | #persistent_logging: false 547 | 548 | # Log level 549 | # 550 | # Values for `log_level`: 551 | # - None 552 | # - Error 553 | # - Warn 554 | # - Info 555 | # - Debug 556 | # - Trace 557 | #log_level: Warn 558 | 559 | # Print all received window events. 560 | #print_events: false 561 | -------------------------------------------------------------------------------- /.config/bspwm/bspwmrc: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | sxhkd & 4 | 5 | ${HOME}/.config/polybar/launch.sh & 6 | 7 | # bspc monitor -d 1 2 3 4 5 6 7 8 9 8 | bspc monitor HDMI-A-0 -d 1 2 3 4 5 9 | bspc monitor HDMI-A-1 -d 6 7 8 9 0 10 | 11 | bspc config remove_disabled_monitors true 12 | bspc config remove_unplugged_monitors true 13 | 14 | bspc config normal_border_color "#000000" 15 | bspc config focused_border_color "#272c31" 16 | 17 | bspc config border_width 0 18 | bspc config window_gap 8 19 | 20 | bspc config focus_follows_pointer false 21 | 22 | bspc config split_ratio 0.50 23 | bspc config initial_polarity first_child 24 | 25 | bspc config borderless_monocle true 26 | bspc config gapless_monocle true 27 | bspc config single_monocle true 28 | 29 | bspc rule -a Telegram-desktop state=floating follow=on 30 | bspc rule -a Pavucotrol state=floating follow=on 31 | bspc rule -a Screenkey manage=off 32 | -------------------------------------------------------------------------------- /.config/fish/completions/fisher.fish: -------------------------------------------------------------------------------- 1 | fisher complete 2 | -------------------------------------------------------------------------------- /.config/fish/completions/nvm.fish: -------------------------------------------------------------------------------- 1 | complete -xc nvm -n __fish_use_subcommand -a ls -d "List available versions matching " 2 | complete -xc nvm -n __fish_use_subcommand -a use -d "Download and modify PATH to use it" 3 | complete -xc nvm -n __fish_use_subcommand -a --help -d "Show usage help" 4 | complete -xc nvm -n __fish_use_subcommand -a --version -d "Show the current version of nvm" 5 | 6 | nvm complete 7 | -------------------------------------------------------------------------------- /.config/fish/conf.d/nvm.fish: -------------------------------------------------------------------------------- 1 | function _nvm_uninstall -e nvm_uninstall 2 | if test -s "$nvm_config/version" 3 | read -l ver <$nvm_config/version 4 | if set -l i (contains -i -- "$nvm_config/$ver/bin" $fish_user_paths) 5 | set -e fish_user_paths[$i] 6 | end 7 | command rm -f $nvm_config/version 8 | end 9 | 10 | for name in (set -n | command awk '/^nvm_/') 11 | set -e "$name" 12 | end 13 | 14 | functions -e (functions -a | command awk '/^_nvm_/') 15 | end 16 | -------------------------------------------------------------------------------- /.config/fish/config.fish: -------------------------------------------------------------------------------- 1 | #set -l tty (fgconsole) 2 | if test -z $DISPLAY 3 | #and [ tty = 1 ] 4 | exec startx 5 | end 6 | 7 | # Android Studio on Tiling WM 8 | set -U _JAVA_AWT_WM_NONREPARENTING 1 9 | 10 | # Brew 11 | if test /home/linuxbrew/.linuxbrew/bin/brew 12 | eval (/home/linuxbrew/.linuxbrew/bin/brew shellenv) 13 | end 14 | 15 | # Go 16 | if test /usr/local/lib/go/bin 17 | #and type -q go # Check if command exists 18 | set GOPATH "$HOME/go" 19 | set PATH "$PATH:/usr/local/lib/go/bin:$GOPATH/bin" 20 | end 21 | 22 | # Flutter 23 | if test /usr/local/flutter/bin 24 | set PATH "$PATH:/usr/local/flutter/bin" 25 | end 26 | -------------------------------------------------------------------------------- /.config/fish/fish_variables: -------------------------------------------------------------------------------- 1 | # This file contains fish universal variable definitions. 2 | # VERSION: 3.0 3 | SETUVAR --path PATH:/usr/local/bin\x1e/bin\x1e/usr/bin\x1e/usr/local/lib/go/bin\x1e/home/mdes/go/bin 4 | SETUVAR --export _JAVA_AWT_WM_NONREPARENTING:1 5 | SETUVAR __fish_init_2_3_0:\x1d 6 | SETUVAR __fish_initialized:3100 7 | SETUVAR fish_color_autosuggestion:777777 8 | SETUVAR fish_color_cancel:\x2dr 9 | SETUVAR fish_color_command:ffffff 10 | SETUVAR fish_color_comment:bcbcbc 11 | SETUVAR fish_color_cwd:green 12 | SETUVAR fish_color_cwd_root:red 13 | SETUVAR fish_color_end:949494 14 | SETUVAR fish_color_error:585858 15 | SETUVAR fish_color_escape:00a6b2 16 | SETUVAR fish_color_history_current:\x2d\x2dbold 17 | SETUVAR fish_color_host:normal 18 | SETUVAR fish_color_host_remote:yellow 19 | SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue 20 | SETUVAR fish_color_normal:normal 21 | SETUVAR fish_color_operator:00a6b2 22 | SETUVAR fish_color_param:d7d7d7 23 | SETUVAR fish_color_quote:a8a8a8 24 | SETUVAR fish_color_redirection:808080 25 | SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack 26 | SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack 27 | SETUVAR fish_color_status:red 28 | SETUVAR fish_color_user:brgreen 29 | SETUVAR fish_color_valid_path:\x2d\x2dunderline 30 | SETUVAR fish_greeting:Welcome\x20to\x20fish\x2c\x20the\x20friendly\x20interactive\x20shell 31 | SETUVAR fish_key_bindings:fish_default_key_bindings 32 | SETUVAR fish_pager_color_completion:normal 33 | SETUVAR fish_pager_color_description:B3A06D\x1eyellow 34 | SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline 35 | SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan 36 | SETUVAR fish_user_paths:/home/mdes/\x2econfig/nvm/14\x2e0\x2e0/bin 37 | -------------------------------------------------------------------------------- /.config/fish/fishfile: -------------------------------------------------------------------------------- 1 | jorgebucaran/fish-nvm 2 | -------------------------------------------------------------------------------- /.config/fish/functions/fish_greeting.fish: -------------------------------------------------------------------------------- 1 | # Defined in /home/mdes/.config/fish/functions/fish_greeting.fish @ line 2 2 | function fish_greeting 3 | date +"Hello, $USER · %T, %d/%m/%Y" 4 | end 5 | -------------------------------------------------------------------------------- /.config/fish/functions/fish_prompt.fish: -------------------------------------------------------------------------------- 1 | function fish_prompt 2 | test $SSH_TTY 3 | and printf (set_color red)$USER(set_color brwhite)'@'(set_color yellow)(prompt_hostname)' ' 4 | test "$USER" = 'root' 5 | and echo (set_color red)"#" 6 | 7 | # Main 8 | echo -n (set_color cyan)(prompt_pwd) (set_color red)'❯'(set_color yellow)'❯'(set_color green)'❯ ' 9 | end 10 | -------------------------------------------------------------------------------- /.config/fish/functions/fisher.fish: -------------------------------------------------------------------------------- 1 | set -g fisher_version 3.2.10 2 | 3 | function fisher -a cmd -d "fish package manager" 4 | set -q XDG_CACHE_HOME; or set XDG_CACHE_HOME ~/.cache 5 | set -q XDG_CONFIG_HOME; or set XDG_CONFIG_HOME ~/.config 6 | 7 | set -g fish_config $XDG_CONFIG_HOME/fish 8 | set -g fisher_cache $XDG_CACHE_HOME/fisher 9 | set -g fisher_config $XDG_CONFIG_HOME/fisher 10 | 11 | set -q fisher_path; or set -g fisher_path $fish_config 12 | set -g fishfile $fish_config/fishfile 13 | 14 | for path in {$fish_config,$fisher_path}/{functions,completions,conf.d} $fisher_cache 15 | if test ! -d $path 16 | command mkdir -p $path 17 | end 18 | end 19 | 20 | if test ! -e $fisher_path/completions/fisher.fish 21 | echo "fisher complete" >$fisher_path/completions/fisher.fish 22 | _fisher_complete 23 | end 24 | 25 | if test -e $fisher_path/conf.d/fisher.fish 26 | switch "$version" 27 | case \*-\* 28 | command rm -f $fisher_path/conf.d/fisher.fish 29 | case 2\* 30 | case \* 31 | command rm -f $fisher_path/conf.d/fisher.fish 32 | end 33 | else 34 | switch "$version" 35 | case \*-\* 36 | case 2\* 37 | echo "fisher copy-user-key-bindings" >$fisher_path/conf.d/fisher.fish 38 | end 39 | end 40 | 41 | # 2019-10-22: temp code, migrates fishfile from old path back to $fish_config 42 | if test -e "$fisher_path/fishfile"; and test ! -e "$fishfile" 43 | command mv -f "$fisher_path/fishfile" "$fishfile" 44 | end 45 | 46 | switch "$cmd" 47 | case {,self-}complete 48 | _fisher_complete 49 | case copy-user-key-bindings 50 | _fisher_copy_user_key_bindings 51 | case ls 52 | set -e argv[1] 53 | if test -s "$fishfile" 54 | set -l file (_fisher_fmt <$fishfile | _fisher_parse -R | command sed "s|@.*||") 55 | _fisher_ls | _fisher_fmt | command awk -v FILE="$file" " 56 | BEGIN { for (n = split(FILE, f); ++i <= n;) file[f[i]] } \$0 in file && /$argv[1]/ 57 | " | command sed "s|^$HOME|~|" 58 | end 59 | case self-update 60 | _fisher_self_update (status -f) 61 | case self-uninstall 62 | _fisher_self_uninstall 63 | case {,-}-v{ersion,} 64 | echo "fisher version $fisher_version" (status -f | command sed "s|^$HOME|~|") 65 | case {,-}-h{elp,} 66 | _fisher_help 67 | case "" 68 | _fisher_commit -- 69 | case add rm 70 | if not isatty 71 | while read -l arg 72 | set argv $argv $arg 73 | end 74 | end 75 | 76 | if test (count $argv) = 1 77 | echo "fisher: invalid number of arguments" >&2 78 | _fisher_help >&2 79 | return 1 80 | end 81 | 82 | _fisher_commit $argv 83 | case \* 84 | echo "fisher: unknown flag or command \"$cmd\"" >&2 85 | _fisher_help >&2 86 | return 1 87 | end 88 | end 89 | 90 | function _fisher_complete 91 | complete -ec fisher 92 | complete -xc fisher -n __fish_use_subcommand -a add -d "Add packages" 93 | complete -xc fisher -n __fish_use_subcommand -a rm -d "Remove packages" 94 | complete -xc fisher -n __fish_use_subcommand -a ls -d "List installed packages matching REGEX" 95 | complete -xc fisher -n __fish_use_subcommand -a --help -d "Show usage help" 96 | complete -xc fisher -n __fish_use_subcommand -a --version -d "$fisher_version" 97 | complete -xc fisher -n __fish_use_subcommand -a self-update -d "Update to the latest version" 98 | for pkg in (fisher ls) 99 | complete -xc fisher -n "__fish_seen_subcommand_from rm" -a $pkg 100 | end 101 | end 102 | 103 | function _fisher_copy_user_key_bindings 104 | if functions -q fish_user_key_bindings 105 | functions -c fish_user_key_bindings fish_user_key_bindings_copy 106 | end 107 | function fish_user_key_bindings 108 | for file in $fisher_path/conf.d/*_key_bindings.fish 109 | source $file >/dev/null 2>/dev/null 110 | end 111 | if functions -q fish_user_key_bindings_copy 112 | fish_user_key_bindings_copy 113 | end 114 | end 115 | end 116 | 117 | function _fisher_ls 118 | for pkg in $fisher_config/*/*/* 119 | command readlink $pkg; or echo $pkg 120 | end 121 | end 122 | 123 | function _fisher_fmt 124 | command sed "s|^[[:space:]]*||;s|^$fisher_config/||;s|^~|$HOME|;s|^\.\/*|$PWD/|;s|^https*:/*||;s|^github\.com/||;s|/*\$||" 125 | end 126 | 127 | function _fisher_help 128 | echo "usage: fisher add Add packages" 129 | echo " fisher rm Remove packages" 130 | echo " fisher Update all packages" 131 | echo " fisher ls [] List installed packages matching " 132 | echo " fisher --help Show this help" 133 | echo " fisher --version Show the current version" 134 | echo " fisher self-update Update to the latest version" 135 | echo " fisher self-uninstall Uninstall from your system" 136 | echo "examples:" 137 | echo " fisher add jethrokuan/z rafaelrinaldi/pure" 138 | echo " fisher add gitlab.com/foo/bar@v2" 139 | echo " fisher add ~/path/to/local/pkg" 140 | echo " fisher add &2 149 | command curl -s "$url?nocache" >$file. 150 | 151 | set -l next_version (command awk '{ print $4 } { exit }' <$file.) 152 | switch "$next_version" 153 | case "" $fisher_version 154 | command rm -f $file. 155 | if test -z "$next_version" 156 | echo "fisher: cannot update fisher -- are you offline?" >&2 157 | return 1 158 | end 159 | echo "fisher is already up-to-date" >&2 160 | case \* 161 | echo "linking $file" | command sed "s|$HOME|~|" >&2 162 | command mv -f $file. $file 163 | source $file 164 | echo "updated to fisher $fisher_version -- hooray!" >&2 165 | _fisher_complete 166 | end 167 | end 168 | 169 | function _fisher_self_uninstall 170 | for pkg in (_fisher_ls) 171 | _fisher_rm $pkg 172 | end 173 | 174 | for file in $fisher_cache $fisher_config $fisher_path/{functions,completions,conf.d}/fisher.fish $fishfile 175 | echo "removing $file" 176 | command rm -Rf $file 2>/dev/null 177 | end | command sed "s|$HOME|~|" >&2 178 | 179 | for name in (set -n | command awk '/^fisher_/') 180 | set -e "$name" 181 | end 182 | 183 | functions -e (functions -a | command awk '/^_fisher/') fisher 184 | complete -c fisher --erase 185 | end 186 | 187 | function _fisher_commit -a cmd 188 | set -e argv[1] 189 | set -l elapsed (_fisher_now) 190 | 191 | if test ! -e "$fishfile" 192 | command touch $fishfile 193 | echo "created new fishfile in $fishfile" | command sed "s|$HOME|~|" >&2 194 | end 195 | 196 | set -l old_pkgs (_fisher_ls | _fisher_fmt) 197 | for pkg in (_fisher_ls) 198 | _fisher_rm $pkg 199 | end 200 | command rm -Rf $fisher_config 201 | command mkdir -p $fisher_config 202 | 203 | set -l next_pkgs (_fisher_fmt <$fishfile | _fisher_parse -R $cmd (printf "%s\n" $argv | _fisher_fmt)) 204 | set -l actual_pkgs (_fisher_fetch $next_pkgs) 205 | set -l updated_pkgs 206 | for pkg in $old_pkgs 207 | if contains -- $pkg $actual_pkgs 208 | set updated_pkgs $updated_pkgs $pkg 209 | end 210 | end 211 | 212 | if test -z "$actual_pkgs$updated_pkgs$old_pkgs$next_pkgs" 213 | echo "fisher: nothing to commit -- try adding some packages" >&2 214 | return 1 215 | end 216 | 217 | set -l out_pkgs 218 | if test "$cmd" = "rm" 219 | set out_pkgs $next_pkgs 220 | else 221 | for pkg in $next_pkgs 222 | if contains -- (echo $pkg | command sed "s|@.*||") $actual_pkgs 223 | set out_pkgs $out_pkgs $pkg 224 | end 225 | end 226 | end 227 | 228 | printf "%s\n" (_fisher_fmt <$fishfile | _fisher_parse -W $cmd $out_pkgs | command sed "s|^$HOME|~|") >$fishfile 229 | 230 | _fisher_complete 231 | 232 | command awk -v A=(count $actual_pkgs) -v U=(count $updated_pkgs) -v O=(count $old_pkgs) -v E=(_fisher_now $elapsed) ' 233 | BEGIN { 234 | res = fmt("removed", O - U, fmt("updated", U, fmt("added", A - U))) 235 | printf((res ? res : "done") " in %.2fs\n", E / 1000) 236 | } 237 | function fmt(action, n, s) { 238 | return n ? (s ? s ", " : s) action " " n " package" (n > 1 ? "s" : "") : s 239 | } 240 | ' >&2 241 | end 242 | 243 | function _fisher_parse -a mode cmd 244 | set -e argv[1..2] 245 | command awk -v FS="[[:space:]]*#+" -v MODE="$mode" -v CMD="$cmd" -v ARGSTR="$argv" ' 246 | BEGIN { 247 | for (n = split(ARGSTR, a, " "); i++ < n;) pkgs[getkey(a[i])] = a[i] 248 | } 249 | !NF { next } { k = getkey($1) } 250 | MODE == "-R" && !(k in pkgs) && $0 = $1 251 | MODE == "-W" && (/^#/ || k in pkgs || CMD != "rm") { print pkgs[k] (sub($1, "") ? $0 : "") } 252 | MODE == "-W" || CMD == "rm" { delete pkgs[k] } 253 | END { 254 | for (k in pkgs) { 255 | if (CMD != "rm" || MODE == "-W") print pkgs[k] 256 | else print "fisher: cannot remove \""k"\" -- package is not in fishfile" > "/dev/stderr" 257 | } 258 | } 259 | function getkey(s, a) { 260 | return (split(s, a, /@+|:/) > 2) ? a[2]"/"a[1]"/"a[3] : a[1] 261 | } 262 | ' 263 | end 264 | 265 | function _fisher_fetch 266 | set -l pkg_jobs 267 | set -l out_pkgs 268 | set -l next_pkgs 269 | set -l local_pkgs 270 | set -q fisher_user_api_token; and set -l curl_opts -u $fisher_user_api_token 271 | 272 | for pkg in $argv 273 | switch $pkg 274 | case \~\* /\* 275 | set -l path (echo "$pkg" | command sed "s|^~|$HOME|") 276 | if test -e "$path" 277 | set local_pkgs $local_pkgs $path 278 | else 279 | echo "fisher: cannot add \"$pkg\" -- is this a valid file?" >&2 280 | end 281 | continue 282 | end 283 | 284 | command awk -v PKG="$pkg" -v FS=/ ' 285 | BEGIN { 286 | if (split(PKG, tmp, /@+|:/) > 2) { 287 | if (tmp[4]) sub("@"tmp[4], "", PKG) 288 | print PKG "\t" tmp[2]"/"tmp[1]"/"tmp[3] "\t" (tmp[4] ? tmp[4] : "master") 289 | } else { 290 | pkg = split(PKG, _, "/") <= 2 ? "github.com/"tmp[1] : tmp[1] 291 | tag = tmp[2] ? tmp[2] : "master" 292 | print (\ 293 | pkg ~ /^github/ ? "https://codeload."pkg"/tar.gz/"tag : \ 294 | pkg ~ /^gitlab/ ? "https://"pkg"/-/archive/"tag"/"tmp[split(pkg, tmp, "/")]"-"tag".tar.gz" : \ 295 | pkg ~ /^bitbucket/ ? "https://"pkg"/get/"tag".tar.gz" : pkg \ 296 | ) "\t" pkg 297 | } 298 | } 299 | ' | read -l url pkg branch 300 | 301 | if test ! -d "$fisher_config/$pkg" 302 | fish -c " 303 | echo fetching $url >&2 304 | command mkdir -p $fisher_config/$pkg $fisher_cache/(command dirname $pkg) 305 | if test ! -z \"$branch\" 306 | command git clone $url $fisher_config/$pkg --branch $branch --depth 1 2>/dev/null 307 | or echo fisher: cannot clone \"$url\" -- is this a valid url\? >&2 308 | else if command curl $curl_opts -Ss -w \"\" $url 2>&1 | command tar -xzf- -C $fisher_config/$pkg 2>/dev/null 309 | command rm -Rf $fisher_cache/$pkg 310 | command mv -f $fisher_config/$pkg/* $fisher_cache/$pkg 311 | command rm -Rf $fisher_config/$pkg 312 | command cp -Rf {$fisher_cache,$fisher_config}/$pkg 313 | else if test -d \"$fisher_cache/$pkg\" 314 | echo fisher: cannot connect to server -- looking in \"$fisher_cache/$pkg\" | command sed 's|$HOME|~|' >&2 315 | command cp -Rf $fisher_cache/$pkg $fisher_config/$pkg/.. 316 | else 317 | command rm -Rf $fisher_config/$pkg 318 | echo fisher: cannot add \"$pkg\" -- is this a valid package\? >&2 319 | end 320 | " >/dev/null & 321 | set pkg_jobs $pkg_jobs (_fisher_jobs --last) 322 | set next_pkgs $next_pkgs "$fisher_config/$pkg" 323 | end 324 | end 325 | 326 | if set -q pkg_jobs[1] 327 | while for job in $pkg_jobs 328 | contains -- $job (_fisher_jobs); and break 329 | end 330 | end 331 | for pkg in $next_pkgs 332 | if test -d "$pkg" 333 | set out_pkgs $out_pkgs $pkg 334 | _fisher_add $pkg 335 | end 336 | end 337 | end 338 | 339 | set -l local_prefix $fisher_config/local/$USER 340 | if test ! -d "$local_prefix" 341 | command mkdir -p $local_prefix 342 | end 343 | for pkg in $local_pkgs 344 | set -l target $local_prefix/(command basename $pkg) 345 | if test ! -L "$target" 346 | command ln -sf $pkg $target 347 | set out_pkgs $out_pkgs $pkg 348 | _fisher_add $pkg --link 349 | end 350 | end 351 | 352 | if set -q out_pkgs[1] 353 | _fisher_fetch ( 354 | for pkg in $out_pkgs 355 | if test -s "$pkg/fishfile" 356 | _fisher_fmt <$pkg/fishfile | _fisher_parse -R 357 | end 358 | end) 359 | printf "%s\n" $out_pkgs | _fisher_fmt 360 | end 361 | end 362 | 363 | function _fisher_add -a pkg opts 364 | for src in $pkg/{functions,completions,conf.d}/**.* $pkg/*.fish 365 | set -l target (command basename $src) 366 | switch $src 367 | case $pkg/conf.d\* 368 | set target $fisher_path/conf.d/$target 369 | case $pkg/completions\* 370 | set target $fisher_path/completions/$target 371 | case $pkg/{functions,}\* 372 | switch $target 373 | case uninstall.fish 374 | continue 375 | case {init,key_bindings}.fish 376 | set target $fisher_path/conf.d/(command basename $pkg)\_$target 377 | case \* 378 | set target $fisher_path/functions/$target 379 | end 380 | end 381 | echo "linking $target" | command sed "s|$HOME|~|" >&2 382 | if set -q opts[1] 383 | command ln -sf $src $target 384 | else 385 | command cp -f $src $target 386 | end 387 | switch $target 388 | case \*.fish 389 | source $target >/dev/null 2>/dev/null 390 | end 391 | end 392 | end 393 | 394 | function _fisher_rm -a pkg 395 | for src in $pkg/{conf.d,completions,functions}/**.* $pkg/*.fish 396 | set -l target (command basename $src) 397 | set -l filename (command basename $target .fish) 398 | switch $src 399 | case $pkg/conf.d\* 400 | test "$filename.fish" = "$target"; and emit "$filename"_uninstall 401 | set target conf.d/$target 402 | case $pkg/completions\* 403 | test "$filename.fish" = "$target"; and complete -ec $filename 404 | set target completions/$target 405 | case $pkg/{,functions}\* 406 | test "$filename.fish" = "$target"; and functions -e $filename 407 | switch $target 408 | case uninstall.fish 409 | source $src 410 | continue 411 | case {init,key_bindings}.fish 412 | set target conf.d/(command basename $pkg)\_$target 413 | case \* 414 | set target functions/$target 415 | end 416 | end 417 | command rm -f $fisher_path/$target 418 | end 419 | if not functions -q fish_prompt 420 | source "$__fish_datadir$__fish_data_dir/functions/fish_prompt.fish" 421 | end 422 | end 423 | 424 | function _fisher_jobs 425 | jobs $argv | command awk '/^[0-9]+\t/ { print $1 }' 426 | end 427 | 428 | function _fisher_now -a elapsed 429 | switch (command uname) 430 | case Darwin \*BSD 431 | command perl -MTime::HiRes -e 'printf("%.0f\n", (Time::HiRes::time() * 1000) - $ARGV[0])' $elapsed 432 | case \* 433 | math (command date "+%s%3N") - "0$elapsed" 434 | end 435 | end 436 | -------------------------------------------------------------------------------- /.config/fish/functions/get_fisher.fish: -------------------------------------------------------------------------------- 1 | # Defined in /home/mdes/.config/fish/functions/get_fisher.fish @ line 1 2 | function get_fisher 3 | if not functions -q fisher 4 | set -q XDG_CONFIG_HOME; or set XDG_CONFIG_HOME ~/.config 5 | curl https://git.io/fisher --create-dirs -sLo $XDG_CONFIG_HOME/fish/functions/fisher.fish 6 | fish -c fisher 7 | end 8 | end 9 | -------------------------------------------------------------------------------- /.config/fish/functions/nvm.fish: -------------------------------------------------------------------------------- 1 | set -g nvm_version 1.0.1 2 | 3 | function nvm -a cmd -d "Node.js version manager" 4 | set -q XDG_CONFIG_HOME; or set XDG_CONFIG_HOME ~/.config 5 | set -g nvm_config $XDG_CONFIG_HOME/nvm 6 | set -g nvm_file .nvmrc 7 | set -q nvm_mirror; or set -g nvm_mirror "https://nodejs.org/dist" 8 | 9 | if test ! -d $nvm_config 10 | command mkdir -p $nvm_config 11 | end 12 | 13 | switch "$cmd" 14 | case ls list 15 | set -e argv[1] 16 | _nvm_ls $argv 17 | case use 18 | set -e argv[1] 19 | _nvm_use $argv 20 | case "" 21 | if isatty 22 | if set -l root (_nvm_find_up (pwd) $nvm_file) 23 | read cmd <$root/$nvm_file 24 | end 25 | else 26 | read cmd 27 | end 28 | if not set -q cmd[1] 29 | echo "nvm: version or .nvmrc file missing" >&2 30 | _nvm_help >&2 31 | return 1 32 | end 33 | 34 | _nvm_use $cmd 35 | case {,-}-v{ersion,} 36 | echo "nvm version $nvm_version" 37 | case {,-}-h{elp,} 38 | _nvm_help 39 | case complete 40 | _nvm_complete "$nvm_config/index" 41 | case \* 42 | echo "nvm: unknown flag or command \"$cmd\"" >&2 43 | _nvm_help >&2 44 | return 1 45 | end 46 | end 47 | 48 | function _nvm_help 49 | echo "usage: nvm --help Show this help" 50 | echo " nvm --version Show the current version of nvm" 51 | echo " nvm ls [] List available versions matching " 52 | echo " nvm use Download and modify PATH to use it" 53 | echo " nvm Use version in .nvmrc (or stdin if not a tty)" 54 | echo "examples:" 55 | echo " nvm use 12" 56 | echo " nvm use lts" 57 | echo " nvm use latest" 58 | echo " nvm use dubnium" 59 | echo " nvm ls '^1|9\$'" 60 | echo " nvm ls 10" 61 | echo " nvm 1 && !/^v0\.[1-9]\./ { 85 | split($1 = substr($1, 2), v, ".") 86 | is_latest = NR == 2 87 | alias = ($10 = tolower($10)) == "-" ? "" : "lts|"$10 88 | is_lts = alias != "" 89 | print $1, (/^0/ ? "-" : v[1]), v[1]"."v[2], 90 | is_latest ? is_lts ? alias"|latest" : "latest" : is_lts ? alias : "" 91 | } 92 | ' >$index 2>/dev/null 93 | 94 | if test ! -s "$index" 95 | echo "nvm: invalid mirror index -- is \"$nvm_mirror\" a valid host?" >&2 96 | return 1 97 | end 98 | 99 | _nvm_complete $index 100 | set -g nvm_index_update_interval (command date +%s) 101 | end 102 | 103 | echo $index 104 | end 105 | 106 | function _nvm_ls -a query 107 | set -l index (_nvm_get_index); or return 108 | test -s "$nvm_config/version"; and read -l current <"$nvm_config/version" 109 | command awk -v current="$current" ' 110 | $1 ~ /'"$query"'/ { 111 | gsub(/\|/, "/", $4) 112 | out[n++] = $1 113 | out[n++] = $4 ($1 == current ? ($4 ? "/" : "") "current" : "") 114 | pad = pad < length($1) ? length($1) : pad 115 | } 116 | END { 117 | for (i = n - 1; i > 0; i -= 2) { 118 | printf("%"pad"s %s\n", out[i - 1] , out[i] ? "("out[i]")": "") 119 | } 120 | } 121 | ' <$index 2>/dev/null 122 | end 123 | 124 | function _nvm_resolve_version 125 | set -l index (_nvm_get_index); or return 126 | set -l ver (command awk -v ver="$argv[1]" ' 127 | BEGIN { 128 | if (match(ver, /v[0-9]/)) gsub(/^[ \t]*v|[ \t]*$/, "", ver) 129 | if ((n = split(tolower(ver), a, "/")) > 3) exit 130 | for (ver = a[1]; n > 0; n--) { 131 | if (a[n] != "*" && a[n] != "latest" && (ver = a[n]) != "lts") 132 | break 133 | } 134 | } 135 | ver == $1"" || ver == $2"" || ver == $3"" || $4 && ver ~ $4 { 136 | print $1 137 | exit 138 | } 139 | ' <$index 2>/dev/null) 140 | 141 | if not set -q ver[1] 142 | return 1 143 | end 144 | 145 | echo $ver 146 | end 147 | 148 | function _nvm_use 149 | set -l index (_nvm_get_index); or return 150 | set -l ver (_nvm_resolve_version $argv[1]) 151 | 152 | if not set -q ver[1] 153 | echo "nvm: invalid version number or alias: \"$argv[1]\"" >&2 154 | return 1 155 | end 156 | 157 | if test ! -d "$nvm_config/$ver/bin" 158 | set -l os 159 | set -l arch 160 | set -l name "node-v$ver" 161 | set -l target "$nvm_config/$ver" 162 | switch (uname -s) 163 | case Linux 164 | set os linux 165 | switch (uname -m) 166 | case x86_64 167 | set arch x64 168 | case armv6 armv6l 169 | set arch armv6l 170 | case armv7 armv7l 171 | set arch armv7l 172 | case armv8 armv8l 173 | set arch arm64 174 | case \* 175 | set arch x86 176 | end 177 | set name "$name-linux-$arch.tar.gz" 178 | case Darwin 179 | set os darwin 180 | set arch x64 181 | case \* 182 | echo "nvm: OS not implemented -- request it on https://git.io/fish-nvm" >&2 183 | return 1 184 | end 185 | 186 | set -l name "node-v$ver-$os-$arch" 187 | set -l url $nvm_mirror/v$ver/$name 188 | 189 | echo "fetching $url" >&2 190 | command mkdir -p $target/$name 191 | 192 | if not command curl --fail --progress-bar $url.tar.gz | command tar -xzf- -C $target/$name 193 | command rm -rf $target 194 | echo "nvm: fetch error -- are you offline?" >&2 195 | return 1 196 | end 197 | 198 | command mv -f $target/$name/$name $nvm_config/$ver. 199 | command rm -rf $target 200 | command mv -f $nvm_config/$ver. $target 201 | end 202 | 203 | if test -s "$nvm_config/version" 204 | read -l last <"$nvm_config/version" 205 | if set -l i (contains -i -- "$nvm_config/$last/bin" $fish_user_paths) 206 | set -e fish_user_paths[$i] 207 | end 208 | end 209 | 210 | if set -l root (_nvm_find_up (pwd) $nvm_file) 211 | read -l line <$root/$nvm_file 212 | if test $ver != (_nvm_resolve_version $line) 213 | echo $argv[1] >$root/$nvm_file 214 | end 215 | end 216 | 217 | echo $ver >$nvm_config/version 218 | 219 | if not contains -- "$nvm_config/$ver/bin" $fish_user_paths 220 | set -U fish_user_paths "$nvm_config/$ver/bin" $fish_user_paths 221 | end 222 | end 223 | 224 | function _nvm_find_up -a path file 225 | if test -e "$path/$file" 226 | echo $path 227 | else if test "$path" != / 228 | _nvm_find_up (command dirname $path) $file 229 | else 230 | return 1 231 | end 232 | end 233 | -------------------------------------------------------------------------------- /.config/fish/functions/update_go.fish: -------------------------------------------------------------------------------- 1 | function update_go 2 | if type -q go 3 | set curr_v (go version | grep -Eo 'go[0-9\.]+') # grep -E -o '[0-9]\.[0-9]+(\.[0-9]+)?' 4 | echo "Current version is: $curr_v" 5 | echo -ne "Fetching latest version... " 6 | set remote_v (curl -s "https://golang.org/dl/?mode=json" | jq -r '.[0].files[].version' | uniq) 7 | echo "found: $remote_v" 8 | if [ $curr_v = $remote_v ] 9 | echo "Up to date!" 10 | else 11 | while true 12 | read -p 'echo -n "An update is available! Continue? [y/n]: "' -l confirm 13 | switch $confirm 14 | case Y y 15 | cd /tmp 16 | curl "https://dl.google.com/go/$remote_v.linux-amd64.tar.gz" | tar xz 17 | if test /tmp/go 18 | mv /usr/local/go "/tmp/$curr_v" 19 | mv ./go/ /usr/local/ 20 | cd - 21 | echo "Updated!" 22 | else 23 | echo "Download Failed :(" 24 | end 25 | return 0 26 | case '' N n 27 | return 1 28 | end 29 | end 30 | end 31 | end 32 | end 33 | -------------------------------------------------------------------------------- /.config/fontconfig/conf.d/99-emoji.conf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Noto Mono 6 | 7 | Noto Color Emoji 8 | 9 | 10 | 11 | serif 12 | 13 | Noto Color Emoji 14 | 15 | 16 | 17 | sans-serif 18 | 19 | Noto Color Emoji 20 | 21 | 22 | 23 | monospace 24 | 25 | Noto Color Emoji 26 | 27 | 28 | -------------------------------------------------------------------------------- /.config/gtk-2.0/gtkfilechooser.ini: -------------------------------------------------------------------------------- 1 | [Filechooser Settings] 2 | LocationMode=path-bar 3 | ShowHidden=true 4 | ShowSizeColumn=true 5 | GeometryX=2425 6 | GeometryY=235 7 | GeometryWidth=900 8 | GeometryHeight=600 9 | SortColumn=modified 10 | SortOrder=descending 11 | StartupMode=recent 12 | -------------------------------------------------------------------------------- /.config/gtk-3.0/gtk-3.0/bookmarks: -------------------------------------------------------------------------------- 1 | file:///home/mdes/Documents Documents 2 | file:///home/mdes/Downloads Downloads 3 | file:///home/mdes/Projects Projects 4 | file:///home/mdes/Pictures Pictures 5 | file:///home/mdes/.local/share/Trash/files Trash 6 | -------------------------------------------------------------------------------- /.config/gtk-3.0/gtk-3.0/settings.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | gtk-icon-theme-name=Papirus-Dark 3 | gtk-theme-name=Kripton 4 | gtk-cursor-theme-name=McMojave 5 | gtk-font-name=Noto Regular 10 6 | gtk-application-prefer-dark-theme=true 7 | gtk-can-change-accels=1 8 | gtk-menu-popup-delay=0 9 | gtk-decoration-layout=menu:close 10 | gtk-xft-antialias=1 11 | gtk-xft-hinting=1 12 | #gtk-xft-hintstyle=hintslight 13 | gtk-xft-hintstyle=hintfull 14 | gtk-xft-rgba=rgb 15 | gtk-toolbar-style=GTK_TOOLBAR_BOTH 16 | #gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR 17 | gtk-button-images=0 18 | gtk-menu-images=1 19 | gtk-enable-event-sounds=1 20 | gtk-enable-input-feedback-sounds=1 21 | -------------------------------------------------------------------------------- /.config/gtk-3.0/settings.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | gtk-icon-theme-name=Papirus-Dark 3 | gtk-theme-name=Teja 4 | gtk-cursor-theme-name=McMojave 5 | gtk-font-name=Noto Regular 10 6 | gtk-application-prefer-dark-theme=true 7 | gtk-can-change-accels=1 8 | gtk-menu-popup-delay=0 9 | gtk-decoration-layout=menu:close 10 | gtk-xft-antialias=1 11 | gtk-xft-hinting=1 12 | #gtk-xft-hintstyle=hintslight 13 | gtk-xft-hintstyle=hintfull 14 | gtk-xft-rgba=rgb 15 | gtk-toolbar-style=GTK_TOOLBAR_BOTH 16 | #gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR 17 | gtk-button-images=0 18 | gtk-menu-images=1 19 | gtk-enable-event-sounds=1 20 | gtk-enable-input-feedback-sounds=1 21 | -------------------------------------------------------------------------------- /.config/mimeapps.list: -------------------------------------------------------------------------------- 1 | 2 | [Default Applications] 3 | x-scheme-handler/webcal=chromium.desktop 4 | text/html=chromium.desktop 5 | x-scheme-handler/http=chromium.desktop 6 | x-scheme-handler/https=chromium.desktop 7 | x-scheme-handler/about=chromium.desktop 8 | x-scheme-handler/unknown=chromium.desktop 9 | -------------------------------------------------------------------------------- /.config/pavucontrol.ini: -------------------------------------------------------------------------------- 1 | [window] 2 | width=1920 3 | height=1056 4 | sinkInputType=0 5 | sourceOutputType=1 6 | sinkType=0 7 | sourceType=1 8 | showVolumeMeters=1 9 | -------------------------------------------------------------------------------- /.config/picom.conf: -------------------------------------------------------------------------------- 1 | backend = "glx"; 2 | glx-no-stencil = true; 3 | glx-copy-from-front = false; 4 | glx-no-rebind-pixmap = true; 5 | xrender-sync-fence = true; 6 | vsync = true; 7 | 8 | ## Rounded corners 9 | experimental-backends = true; 10 | round-borders = 1;corner-radius = 10.0; 11 | detect-rounded-corners = true; 12 | 13 | ## Shadow 14 | shadow = true; 15 | shadow-radius = 8; 16 | shadow-offset-x = -8; 17 | shadow-offset-y = -6; 18 | shadow-opacity = 0.66; 19 | # shadow-red = 0.0; 20 | # shadow-green = 0.0; 21 | # shadow-blue = 0.0; 22 | # shadow-ignore-shaped = false; 23 | shadow-exclude = [ 24 | "_GTK_FRAME_EXTENTS@:c", 25 | "_NET_WM_NAME@:s = 'rofi'", 26 | "name = 'rofi'", 27 | "class_g = 'Polybar'", 28 | "class_g ?= 'Notify-osd'", 29 | "window_type = 'utility'" 30 | ]; 31 | ### Opacity 32 | #frame-opacity = 0.33; # i.e. titlebars, borders 33 | inactive-opacity-override = true; 34 | opacity-rule = [ 35 | "90:class_g = 'st'" 36 | ]; 37 | 38 | ### Blur options 39 | #blur-background = true; 40 | # blur-background-frame = true; 41 | #blur-kern = "3x3box" 42 | #blur-kern = "7,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1" 43 | #blur-background-fixed = true; 44 | #blur-background-exclude = [ "window_type = 'dock'", "window_type = 'desktop'" ]; 45 | 46 | ### Fading 47 | fading = true; 48 | fade-delta = 30; 49 | no-fading-openclose = false; 50 | fade-in-step = 1; 51 | fade-out-step = 1; 52 | fade-exclude = [ ]; 53 | 54 | ### Other 55 | mark-wmwin-focused = true; 56 | mark-ovredir-focused = true; 57 | # Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused instead of using FocusIn/Out events. 58 | # Usually more reliable but depends on a EWMH-compliant WM. 59 | use-ewmh-active-win = true; 60 | # # Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on. 61 | detect-rounded-corners = true; 62 | detect-client-opacity = true; 63 | refresh-rate = 0; 64 | dbe = false; 65 | unredir-if-possible = true; 66 | # unredir-if-possible-delay = 5000; 67 | # unredir-if-possible-exclude = [ ]; 68 | focus-exclude = [ 69 | "_NET_WM_WINDOW_TYPE@:a *= 'MENU'", 70 | "window_type = 'menu'", 71 | "window_type = 'utility'", 72 | "window_type = 'dropdown_menu'", 73 | "window_type = 'popup_menu'" 74 | ]; 75 | detect-transient = true; 76 | detect-client-leader = true; 77 | invert-color-include = [ ]; 78 | # resize-damage = 1; 79 | 80 | # Window type settings 81 | wintypes: { 82 | tooltip = { 83 | fade = true; 84 | shadow = false; 85 | opacity = 1; 86 | focus = true; 87 | }; 88 | popup_menu = { 89 | fade = true; 90 | shadow = true; 91 | opacity = 1; 92 | focus = true; 93 | }; 94 | dropdown_menu = { 95 | fade = true; 96 | shadow = true; 97 | opacity = 1; 98 | focus = true; 99 | }; 100 | dock_menu = { 101 | fade = false; 102 | shadow = false; 103 | opacity = 1; 104 | focus = true; 105 | }; 106 | dnd = { 107 | fade = false; 108 | shadow = false; 109 | opacity = 1; 110 | focus = false; 111 | }; 112 | }; -------------------------------------------------------------------------------- /.config/polybar/config: -------------------------------------------------------------------------------- 1 | [settings] 2 | throttle-output = 5 3 | throttle-output-for = 10 4 | throttle-input-for = 30 5 | screenchange-reload = false 6 | compositing-background = over 7 | compositing-foreground = over 8 | compositing-overline = over 9 | compositing-underline = over 10 | compositing-border = over 11 | 12 | [colors] 13 | background = #00000000 14 | foreground = #bababa 15 | primary = #b9b9b9 16 | secondary = #767680 17 | 18 | [global/wm] 19 | margin-top = 0 20 | margin-bottom = 0 21 | 22 | [bar/main] 23 | wm-restack = bspwm 24 | monitor = HDMI-A-0 25 | width = 100% 26 | height = 20 27 | fixed-center = true 28 | background = ${colors.background} 29 | foreground = ${colors.foreground} 30 | ;offset-x = 1% 31 | ;offset-y = 1% 32 | radius = 0.0 33 | bottom = false 34 | separator = 35 | line-size = 2 36 | line-color = #f00 37 | override-redirect = false 38 | enable-ipc = true 39 | 40 | border-top-size = 4 41 | 42 | padding-left = 1 43 | padding-right = 1 44 | 45 | module-margin-top = 0 46 | module-margin-bottom = 0 47 | module-margin-left = 0 48 | module-margin-right = 0 49 | 50 | locale = en_US.UTF-8 51 | 52 | font-0 = "JetBrains Mono:bold:size=9;1" 53 | font-1 = "Remixicon:style=Regular:pixelsize=11;1" 54 | font-2 = "Noto Sans Symbols:pixelsize=10;1" 55 | 56 | modules-left = sep xwindow 57 | modules-center = bspwm 58 | modules-right = pulseaudio xkeyboard cal time 59 | 60 | tray-detached = false 61 | tray-maxsize = 16 62 | tray-scale = 0.8 63 | tray-offset-x = 0 64 | tray-offset-y = 0 65 | tray-position = right 66 | tray-padding = 0 67 | tray-background = ${colors.background} 68 | 69 | scroll-up = bspwm-deskprev 70 | scroll-down = bspwm-desknext 71 | 72 | cursor-click = pointer 73 | ;cursor-scroll = ns-resize 74 | 75 | [bar/main2] 76 | wm-restack = bspwm 77 | monitor = HDMI-A-1 78 | width = 100% 79 | height = 20 80 | fixed-center = true 81 | background = ${colors.background} 82 | foreground = ${colors.foreground} 83 | ;offset-x = 1% 84 | ;offset-y = 1% 85 | radius = 0.0 86 | bottom = false 87 | separator = 88 | line-size = 2 89 | line-color = #f00 90 | override-redirect = false 91 | enable-ipc = true 92 | 93 | border-top-size = 4 94 | 95 | padding-left = 1 96 | padding-right = 1 97 | 98 | module-margin-top = 0 99 | module-margin-bottom = 0 100 | module-margin-left = 0 101 | module-margin-right = 0 102 | 103 | locale = en_US.UTF-8 104 | 105 | font-0 = "JetBrains Mono:bold:size=9;1" 106 | font-1 = "Remixicon:style=Regular:pixelsize=11;1" 107 | font-2 = "Noto Sans Symbols:pixelsize=10;1" 108 | 109 | modules-left = sep 110 | modules-center = bspwm 111 | modules-right = wired-network cpu memory cal time 112 | 113 | tray-detached = false 114 | tray-maxsize = 14 115 | tray-scale = 1 116 | tray-offset-x = 0 117 | tray-offset-y = 0 118 | tray-position = right 119 | tray-padding = 4 120 | tray-background = ${colors.background} 121 | 122 | scroll-up = bspwm-deskprev 123 | scroll-down = bspwm-desknext 124 | 125 | cursor-click = pointer 126 | 127 | [module/xwindow] 128 | type = internal/xwindow 129 | label = %title% 130 | label-maxlen = 70 131 | format-prefix = " · " 132 | format-prefix-foreground = ${colors.foreground} 133 | format-foreground = ${colors.foreground} 134 | format-background = ${colors.background} 135 | 136 | [module/xkeyboard] 137 | type = internal/xkeyboard 138 | blacklist-0 = num lock 139 | format-prefix = " " 140 | format-prefix-foreground = ${colors.secondary} 141 | format-prefix-background = ${colors.background} 142 | format-prefix-underline = 143 | format-foreground = ${colors.foreground} 144 | format-background = ${colors.background} 145 | 146 | label-layout = %layout% 147 | label-layout-underline = 148 | label-indicator-padding = 2 149 | label-indicator-margin = 1 150 | label-indicator-background = 151 | label-indicator-underline = 152 | 153 | [module/bspwm] 154 | type = internal/bspwm 155 | pin-workspaces = true 156 | enable-click = true 157 | enable-scroll = false 158 | 159 | label-focused = "" 160 | label-occupied = "" 161 | label-urgent = "" 162 | label-empty = "" 163 | 164 | label-monitor = %name% 165 | label-focused-foreground = ${colors.primary} 166 | label-occupied-foreground = ${colors.secondary} 167 | label-urgent-foreground = ${colors.secondary} 168 | label-empty-foreground = ${colors.secondary} 169 | 170 | label-focused-padding-right = 1 171 | label-urgent-padding-right = 1 172 | label-occupied-padding-right = 1 173 | label-empty-padding-right = 1 174 | 175 | format-foreground = ${colors.foreground} 176 | format-background = ${colors.background} 177 | 178 | ;ws-icon-0 = 1; 179 | ;ws-icon-1 = 2; 180 | ;ws-icon-2 = 3; 181 | ;ws-icon-3 = 4; 182 | ;ws-icon-4 = 5; 183 | ;ws-icon-5 = 6; 184 | ;ws-icon-6 = 7; 185 | ;ws-icon-7 = 8; 186 | ;ws-icon-8 = 9; 187 | 188 | format = 189 | ; 190 | 191 | ;label-focused-underline = ${colors.foreground} 192 | ;label-focused-padding = 193 | ;label-occupied-padding = 194 | ;label-occupied-underline = ${colors.foreground} 195 | ;label-urgent-background = 196 | ;label-urgent-padding = 197 | ;label-empty-padding = 198 | 199 | label-monocle =  200 | label-tiled =  201 | label-floating = "" 202 | label-fullscreen =  203 | label-pseudotiled = P 204 | label-locked =  205 | label-locked-foreground = ${colors.foreground} 206 | label-sticky =  207 | label-sticky-foreground = ${colors.foreground} 208 | label-private =  209 | label-private-foreground = ${colors.foreground} 210 | label-marked = M 211 | 212 | [module/cal] 213 | type = internal/date 214 | format-prefix-foreground = ${colors.secondary} 215 | format-background = ${colors.background} 216 | label-foreground = ${colors.foreground} 217 | date = "%d/%m/%Y" 218 | format-prefix = " " 219 | label = "%date%" 220 | 221 | [module/time] 222 | type = internal/date 223 | format-prefix-foreground = ${colors.secondary} 224 | format-background = ${colors.background} 225 | label-foreground = ${colors.foreground} 226 | interval = 60 227 | time = %H:%M% 228 | format-prefix = "  " 229 | label = "%time%" 230 | 231 | [module/wired-network] 232 | type = internal/network 233 | interface = enp7s0 234 | interval = 3.0 235 | ; Available tokens: 236 | ; %ifname% [wireless+wired] 237 | ; %local_ip% [wireless+wired] 238 | ; %essid% [wireless] 239 | ; %signal% [wireless] 240 | ; %upspeed% [wireless+wired] 241 | ; %downspeed% [wireless+wired] 242 | ; %linkspeed% [wired] 243 | ; Default: %ifname% %local_ip% 244 | label-connected = "%local_ip% " 245 | label-foreground: ${colors.foreground} 246 | format-connected-foreground = ${colors.foreground} 247 | format-connected-background = ${colors.background} 248 | format-disconnected-foreground = ${colors.foreground} 249 | format-disconnected-background = ${colors.background} 250 | format-connected-prefix-foreground = ${colors.secondary} 251 | format-disconnected-prefix-foreground = ${colors.secondary} 252 | format-connected-prefix = " " 253 | format-disconnected-prefix = " " 254 | label-disconnected-foreground = ${colors.foreground} 255 | 256 | [module/sep] 257 | type = custom/text 258 | content = " dvvvxx" 259 | content-foreground = ${colors.secondary} 260 | content-background = ${colors.background} 261 | format-foreground = ${colors.foreground} 262 | format-background = ${colors.background} 263 | 264 | [module/pulseaudio] 265 | type = internal/alsa 266 | format-volume = "" 267 | use-ui-max = true 268 | label-volume = "%percentage%% " 269 | label-muted = " Mute " 270 | format-muted-prefix = "" 271 | format-volume-prefix = " " 272 | format-volume-prefix-foreground = ${colors.secondary} 273 | format-volume-foreground = ${colors.foreground} 274 | format-volume-background = ${colors.background} 275 | format-muted-prefix-foreground = ${colors.secondary} 276 | format-muted-foreground = ${colors.foreground} 277 | format-muted-background = ${colors.background} 278 | 279 | [module/cpu] 280 | type = internal/cpu 281 | interval = 3 282 | format-prefix = "" 283 | format-foreground = ${colors.secondary} 284 | label = " %percentage%% " 285 | label-foreground = ${colors.foreground} 286 | 287 | [module/memory] 288 | type = internal/memory 289 | interval = 3 290 | format-prefix = "" 291 | format-foreground = ${colors.secondary} 292 | label = " %percentage_used%% " 293 | label-foreground = ${colors.foreground} 294 | 295 | [module/temperature] 296 | type = internal/temperature 297 | interval = 3 298 | thermal-zone = 0 299 | base-temperature = 20 300 | warn-temperature = 60 -------------------------------------------------------------------------------- /.config/polybar/launch.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Terminate already running bar instances 4 | kill polybar 5 | 6 | # Wait until the processes have been shut down 7 | while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done 8 | 9 | # Launch 10 | polybar main -q & 11 | polybar main2 -q 12 | -------------------------------------------------------------------------------- /.config/rofi/config.rasi: -------------------------------------------------------------------------------- 1 | configuration { 2 | drun-display-format: "{icon} {name}"; 3 | show-icons: true; 4 | icon-theme: "Papirus-Dark"; 5 | location: 2; 6 | fake-transparency: false; 7 | hide-scrollbar: true; 8 | bw: 0; 9 | fullscreen: true; 10 | show-icons: true; 11 | terminal: "st"; 12 | sidebar-mode: false; 13 | } 14 | 15 | * { 16 | background-color: rgba(0,0,0,0); 17 | font: "Iosevka bold 10"; 18 | } 19 | 20 | window { 21 | transparency: "real"; 22 | fullscreen: true; 23 | } 24 | 25 | mainbox { 26 | children: [ inputbar, listview ]; 27 | margin: 12% 34% 50% 34%; 28 | background-color: #000000; 29 | border-radius: 12; 30 | border: 1; 31 | border-color: #141414; 32 | } 33 | 34 | listview { 35 | columns: 2; 36 | padding: 8; 37 | spacing: 0; 38 | } 39 | 40 | element { 41 | text-color: #989898; 42 | orientation: vertical; 43 | padding: 8 12 8 12; 44 | border-radius: 6; 45 | } 46 | 47 | element selected { 48 | background-color: #0a0a0a; 49 | text-color: #ffffff; 50 | transition: 20; 51 | } 52 | 53 | element-icon { 54 | size: 40; 55 | horizontal-align: 0.5; 56 | vertical-align: 0.5; 57 | } 58 | 59 | element-text { 60 | horizontal-align: 0.5; 61 | vertical-align: 0.5; 62 | text-color: inherit; 63 | } 64 | 65 | inputbar { 66 | children: [entry]; 67 | padding: 4 8 4 8; 68 | background-color: #000000; 69 | border: 0 0 1 0; 70 | border-color: #141414; 71 | } 72 | 73 | prompt { 74 | enabled: false; 75 | } 76 | 77 | entry { 78 | text-color: #d1d5da; 79 | padding: 8 12 8 12; 80 | } 81 | -------------------------------------------------------------------------------- /.config/rofi/window.rasi: -------------------------------------------------------------------------------- 1 | configuration { 2 | display-window: ""; 3 | window-format: " {w} | {n}"; 4 | font: "JetBrains Mono 10"; 5 | fake-transparency: false; 6 | hide-scrollbar: true; 7 | bw: 0; 8 | fullscreen: true; 9 | show-icons: true; 10 | terminal: "st"; 11 | sidebar-mode: true; 12 | } 13 | 14 | * { 15 | background-color: rgba(0,0,0,0); 16 | font: "Iosevka Term bold 10"; 17 | } 18 | 19 | window { 20 | transparency: "real"; 21 | fullscreen: true; 22 | } 23 | 24 | mainbox { 25 | background-color: #000000; 26 | border-radius: 12; 27 | border: 2; 28 | border-color: #ffffff0A; 29 | margin: 28% 40% 50% 40%; 30 | } 31 | 32 | listview { 33 | columns: 1; 34 | padding: 8; 35 | spacing: 0; 36 | } 37 | 38 | element { 39 | border: 1; 40 | text-color: #bdc3c3; 41 | orientation: vertical; 42 | padding: 8 12 8 12; 43 | border-radius: 6; 44 | } 45 | 46 | element selected { 47 | background-color: #869fa214; 48 | border-color: #ffffff0A; 49 | text-color: #869fa2; 50 | transition: 20; 51 | } 52 | 53 | element-icon { 54 | size: 60; 55 | horizontal-align: 0.5; 56 | vertical-align: 0.5; 57 | } 58 | 59 | element-icon { 60 | size: 40; 61 | horizontal-align: 0.5; 62 | vertical-align: 0.5; 63 | } 64 | 65 | element-text { 66 | horizontal-align: 0.5; 67 | vertical-align: 0.5; 68 | text-color: inherit; 69 | } 70 | 71 | inputbar { 72 | enabled: false; 73 | } 74 | 75 | prompt { 76 | enabled: false; 77 | } 78 | 79 | entry { 80 | enabled: false; 81 | } 82 | -------------------------------------------------------------------------------- /.config/sxhkd/sxhkdrc: -------------------------------------------------------------------------------- 1 | # terminal emulator 2 | super + Return 3 | alacritty 4 | 5 | # program launcher 6 | super + @space 7 | rofi -show drun 8 | super + Tab 9 | rofi -show window -theme window -kb-row-down 'super+Tab' -kb-accept-entry '!super+Tab' 10 | super + r 11 | rofi -show run 12 | 13 | # make sxhkd reload its configuration files: 14 | super + Escape 15 | pkill -USR1 -x sxhkd 16 | 17 | # quit/restart bspwm 18 | super + alt + {q,r} 19 | bspc {quit,wm -r} 20 | 21 | # close and kill 22 | super + {_,shift + }w 23 | bspc node -{c,k} 24 | 25 | # alternate between the tiled and monocle layout 26 | super + m 27 | bspc desktop -l next 28 | 29 | # start polybar 30 | super + alt + p 31 | ${HOME}/.config/polybar/launch.sh 32 | 33 | # stop polybar 34 | super + shift + p 35 | kill polybar 36 | 37 | 38 | # send the newest marked node to the newest preselected node 39 | super + y 40 | bspc node newest.marked.local -n newest.!automatic.local 41 | 42 | # swap the current node and the biggest node 43 | super + g 44 | bspc node -s biggest 45 | 46 | # 47 | # state/flags 48 | # 49 | 50 | # set the window state 51 | super + {t,shift + t,f,u} 52 | bspc node -t {tiled,pseudo_tiled,floating,fullscreen} 53 | 54 | # set the node flags 55 | super + ctrl + {m,x,y,z} 56 | bspc node -g {marked,locked,sticky,private} 57 | 58 | # 59 | # focus/swap 60 | # 61 | 62 | # focus the node in the given direction 63 | super + {_,shift + }{h,j,k,l} 64 | bspc node -{f,s} {west,south,north,east} 65 | 66 | # focus the node for the given path jump 67 | super + {p,b,comma,period} 68 | bspc node -f @{parent,brother,first,second} 69 | 70 | # focus the next/previous node in the current desktop 71 | super + {_,shift + }c 72 | bspc node -f {next,prev}.local 73 | 74 | # focus the next/previous desktop in the current monitor 75 | super + bracket{left,right} 76 | bspc desktop -f {prev,next}.local 77 | 78 | # focus the last node/desktop 79 | super + ctrl + {grave,Tab} 80 | bspc {node,desktop} -f last 81 | 82 | # focus the older or newer node in the focus history 83 | super + {o,i} 84 | bspc wm -h off; \ 85 | bspc node {older,newer} -f; \ 86 | bspc wm -h on 87 | 88 | # focus or send to the given desktop 89 | super + {_,shift + }{1-9,0} 90 | bspc {desktop -f,node -d} '^{1-9,10}' 91 | 92 | # 93 | # preselect 94 | # 95 | 96 | # preselect the direction 97 | super + ctrl + {h,j,k,l} 98 | bspc node -p {west,south,north,east} 99 | 100 | # preselect the ratio 101 | super + ctrl + {1-9} 102 | bspc node -o 0.{1-9} 103 | 104 | # cancel the preselection for the focused node 105 | super + ctrl + space 106 | bspc node -p cancel 107 | 108 | # cancel the preselection for the focused desktop 109 | super + ctrl + shift + space 110 | bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel 111 | 112 | # 113 | # move/resize 114 | # 115 | 116 | # expand a window by moving one of its side outward 117 | super + alt + {h,j,k,l} 118 | bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0} 119 | 120 | # contract a window by moving one of its side inward 121 | super + alt + shift + {h,j,k,l} 122 | bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0} 123 | 124 | # move a floating window 125 | super + {Left,Down,Up,Right} 126 | bspc node -v {-20 0,0 20,0 -20,20 0} 127 | -------------------------------------------------------------------------------- /.gtkrc-2.0: -------------------------------------------------------------------------------- 1 | gtk-icon-theme-name = "Papirus-Dark" 2 | gtk-theme-name = "Kripton" 3 | gtk-font-name = "Noto Regular 10" 4 | -------------------------------------------------------------------------------- /.vimrc: -------------------------------------------------------------------------------- 1 | "more characters will be sent to the screen for redrawing 2 | set ttyfast 3 | 4 | "time waited for key press(es) to complete. It makes for a faster key response 5 | set ttimeout 6 | set ttimeoutlen=50 7 | 8 | "make backspace behave properly in insert mode 9 | set backspace=indent,eol,start 10 | 11 | "display incomplete commands 12 | set showcmd 13 | 14 | "a better menu in command mode 15 | set wildmenu 16 | set wildmode=longest:full,full 17 | 18 | "hide buffers instead of closing them even if they contain unwritten changes 19 | set hidden 20 | 21 | "disable soft wrap for lines 22 | set nowrap 23 | 24 | "always display the status line 25 | set laststatus=2 26 | 27 | "display line numbers on the left side 28 | set number 29 | 30 | "highlight current line 31 | "set cursorline 32 | 33 | "display text width column 34 | "set colorcolumn=81 35 | 36 | "new splits will be at the bottom or to the right side of the screen 37 | set splitbelow 38 | set splitright 39 | 40 | "always set autoindenting on 41 | set autoindent 42 | 43 | "incremental search 44 | set incsearch 45 | 46 | "highlight search 47 | set hlsearch 48 | 49 | "searches are case insensitive unless they contain at least one capital letter 50 | set ignorecase 51 | set smartcase 52 | 53 | "modifiedflag, charcount, filepercent, filepath 54 | set statusline=%=%m\ %c\ %P\ %f 55 | 56 | set encoding=utf-8 57 | set fileencoding=utf-8 58 | 59 | autocmd Filetype go setlocal tabstop=2 shiftwidth=2 softtabstop=2 60 | " ts - show existing tab with 4 spaces width 61 | " sw - when indenting with '>', use 4 spaces width 62 | " sts - control and keys to match tabstop 63 | 64 | set shiftwidth=2 65 | set tabstop=2 66 | set softtabstop=2 67 | set expandtab " expand tabs into spaces 68 | set smarttab " smart tabulation and backspace 69 | set bs=indent,eol,start " allow backspacing over everything 70 | 71 | filetype plugin indent on 72 | 73 | "vim-go 74 | filetype plugin indent on 75 | au filetype go inoremap . . 76 | 77 | "assume environment can use 256 colors 78 | set t_Co=256 79 | 80 | "show the cursor position 81 | set ruler 82 | 83 | "don't use modelines 84 | set modelines=0 85 | 86 | "set list " show non-print characters,... 87 | "set listchars=trail:⋅,nbsp:⋅,tab:▷⋅ " for tabs and trailing spaces 88 | set mouse=a " enable mouse in all modes 89 | set display+=lastline " show as much as possible of last line 90 | 91 | "set termguicolors 92 | "set background=dark 93 | 94 | syntax on 95 | colorscheme koehler 96 | -------------------------------------------------------------------------------- /.xinitrc: -------------------------------------------------------------------------------- 1 | xrdb -merge ~/.Xresources & 2 | xsetroot -cursor_name left_ptr & 3 | /usr/bin/start-pulseaudio-x11 & 4 | /bin/setxkbmap it & 5 | feh --bg-fill ~/Pictures/bg.jpg & 6 | picom & 7 | sxhkd & 8 | exec bspwm -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Void Desktop Setup 2 | 3 | Dot 👽 Dot 🦎 4 | 5 | ## Next steps? 6 | 7 | - https://github.com/siduck/chadwm 8 | - https://github.com/NvChad/NvChad 9 | - https://github.com/elkowar/eww 10 | 11 | ## Packages 12 | 13 | > Update/upgrade all with `sudo xbps-install -Su` 14 | 15 | ### Base 16 | 17 | | Package Name | Description | Link | 18 | |-------------------|-------------------------------------|--------------------------------------------------------------------------------------------| 19 | | xorg-minimal | Display server | [Github](https://github.com/freedesktop/xorg-xserver) | 20 | | xinit | X server & client startup utilities | [Gitlab](https://gitlab.freedesktop.org/xorg/app/xinit) | 21 | | xf86-video-amdgpu | AMD Xorg video driver | [Github](https://github.com/freedesktop/xorg-xf86-video-amdgpu) | 22 | | base-devel | Dev-tools meta package | [Pkg](https://github.com/void-linux/void-packages/blob/master/srcpkgs/base-devel/template) | 23 | | git | Interactive process viewer | [Github](https://github.com/git/git) | 24 | | vim | Terminal editor | [Github](https://github.com/vim/vim) | 25 | | dbus | IPC mechanism | [Github](https://github.com/freedesktop/dbus) | 26 | | tree | List contents in a tree-like format | [Manpage](https://linux.die.net/man/1/tree) | 27 | | htop | Interactive process viewer | [Github](https://github.com/htop-dev/htop) | 28 | | fish-shell | Command line shell | [Github](https://github.com/fish-shell/fish-shell) | 29 | | pulseaudio | Sound server | [Github](https://github.com/pulseaudio/pulseaudio) | 30 | | alacritty | OpenGL terminal emulator | [Github](https://github.com/alacritty/alacritty) | 31 | | docker | Container ecosystem | [Github](https://github.com/moby/moby) | 32 | 33 | ### Tools 34 | 35 | | Package Name | Description | Link | 36 | |--------------|------------------------------------------|--------------------------------------------------------| 37 | | ncdu | Disk utilty | [Site](https://dev.yorhel.nl/ncdu) | 38 | | bat | Cat alternative | [Github](https://github.com/sharkdp/bat) | 39 | | hexyl | TUI binary viewer | [Github](https://github.com/sharkdp/hexyl) | 40 | | hyperfine | Command-line benchmarking tool | [Github](https://github.com/sharkdp/hyperfine) | 41 | | shellcheck | Static analysis tool for shell scripts | [Github](https://github.com/koalaman/shellcheck) | 42 | | p7zip | Command line version of 7zip | [Sourceforge](https://sourceforge.net/projects/p7zip/) | 43 | | tig | Text-mode interface for git | [Sourceforge](https://github.com/jonas/tig) | 44 | | parted | Manipulate partition tables | [Site](https://savannah.gnu.org/git/?group=parted) | 45 | | aws-cli | Command Line Interface for AWS | [Github](https://github.com/aws/aws-cli) | 46 | | vpm | package management helper for Void Linux | [Github](https://github.com/netzverweigerer/vpm) | 47 | | termshark | Terminal UI for tshark | [Github](https://github.com/gcla/termshark) | 48 | | mkpasswd | Password generator | [Page](https://linux.die.net/man/1/mkpasswd) | 49 | 50 | ### Applications & others 51 | 52 | | Package Name | Description | Link | 53 | |---------------------|----------------------------------------------|----------------------------------------------------------------| 54 | | dejavu-fonts-ttf | Dejavu font | [Site](https://dejavu-fonts.github.io/) | 55 | | noto-fonts-ttf | Noto font | [Site](https://www.google.com/get/noto/) | 56 | | noto-fonts-emoji | Noto emoji font | [Site](https://www.google.com/get/noto/) | 57 | | fontconfig | Font configuration and customization | [Gitlab](https://gitlab.freedesktop.org/fontconfig/fontconfig) | 58 | | chromium | Chromium web browser | [Site](https://www.chromium.org/Home) | 59 | | firefox | Firefox web browser | [Site](https://www.mozilla.org/en-US/firefox/new/) | 60 | | vscode | VS Code without branding/telemetry/licensing | [Github](https://github.com/VSCodium/vscodium) | 61 | | lmms | Music production software | [Github](https://github.com/LMMS/lmms) | 62 | | obs | Live streaming and screen recording | [Github](https://github.com/obsproject/obs-studio) | 63 | | blender | 3D creation suite | [Github](https://github.com/blender/blender) | 64 | | gimp | Image editor | [Site](https://www.gimp.org/) | 65 | | godot | Game engine | [Site](https://godotengine.org/) | 66 | | synfigstudio | 2D Animation Software | [Site](https://www.synfig.org/) | 67 | | vlc | Media player | [Gitlab](https://code.videolan.org/videolan/vlc) | 68 | | telegram-desktop | Messaging app | [Github](https://github.com/telegramdesktop/tdesktop) | 69 | | paprefs | Pulseaudio configs | [Site](https://freedesktop.org/software/pulseaudio/paprefs) | 70 | | wireshark | Network traffic analyzer | [Github](https://github.com/wireshark/wireshark) | 71 | 72 | #### Add user to new groups and remove old packages 73 | 74 | ```console 75 | $ sudo usermod -aG sudo,input,video,libvirt,docker,kvm $USER 76 | $ sudo xbps-remove -Oo 77 | ``` 78 | 79 | ## Other installations 80 | 81 | | Tool | Description | Link | 82 | |----------------------------|-------------------------------------|------------------------------------------------------------| 83 | | Go | The Go programming language | [Site](https://golang.org/dl/) | 84 | | Brew | Brew package manager | [Site](https://brew.sh/) | 85 | | Dart / Flutter | Dart language and Flutter framework | [Site](https://flutter.dev/docs/get-started/install/linux) | 86 | | Android Studio | IDE | [Site](https://developer.android.com/studio) | 87 | | Gitg | Gnome gui client git repositories | [Site](https://wiki.gnome.org/Apps/Gitg/) | 88 | | Ghex | Gnome hex editor | [Site](https://wiki.gnome.org/Apps/Ghex) | 89 | | Vital Audio | Spectral warping wavetable synth | [Site](https://vital.audio/) | 90 | | Fisher | Fish shell plugins | [Github](https://github.com/jorgebucaran/fisher) | 91 | | Fish-nvm | Node version manager | [Github](https://github.com/jorgebucaran/fish-nvm) | 92 | | duf | Disk utility | [Github](https://github.com/muesli/duf) | 93 | | fzf | Fuzzy finder | [Github](https://github.com/junegunn/fzf) | 94 | | JetBrains Mono Font | JetBrains font | [Site](https://www.jetbrains.com/lp/mono/) | 95 | | Fira Code Mono (Nerd) | Fira font (nerdfont version) | [Site](https://www.nerdfonts.com/font-downloads) | 96 | | Go Mono (Nerd) | Go font (nerdfont version) | [Site](https://www.nerdfonts.com/font-downloads) | 97 | | Iosevka Font (SS12) | Iosevka font | [Github](https://github.com/be5invis/Iosevka/releases) | 98 | | Atkinson Hyperlegible Font | Atkinson font | [Site](https://fontesk.com/atkinson-hyperlegible-font/) | 99 | 100 | ## Brew installations 101 | 102 | | Package Name | Description | Link | 103 | |-----------------------------|--------------------------------------|-------------------------------------------------------| 104 | | minikube | Local k8s | [Github](https://github.com/kubernetes/minikube) | 105 | | octant | Kubernetes Web UI | [Github](https://github.com/vmware-tanzu/octant) | 106 | | kubespy | Observing k8s resources in real time | [Github](https://github.com/pulumi/kubespy) | 107 | | kind | K8s in docker | [Github](https://github.com/kubernetes-sigs/kind) | 108 | | k9s | Kubernetes CLI/TUI management | [Github](https://github.com/derailed/k9s) | 109 | | FairwindsOps/tap/polaris | K8s validations best practices | [Github](https://github.com/FairwindsOps/polaris) | 110 | | aquasecurity/trivy/trivy | Vulnerability scanner | [Github](https://github.com/aquasecurity/trivy) | 111 | | lazydocker | Docker TUI management | [Github](https://github.com/jesseduffield/lazydocker) | 112 | | hadolint | Dockerfile linter | [Github](https://github.com/hadolint/hadolint) | 113 | | go-task/tap/go-task | Task runner (make alternative) | [Github](https://github.com/vmware-tanzu/octant) | 114 | | aws-sam-cli | AWS Serverless CLI | [Github](https://github.com/aws/aws-sam-cli) | 115 | | mitmproxy | Web Traffic inspector (TUI & Web UI) | [Github](https://github.com/mitmproxy/mitmproxy) | 116 | | goaccess | Real-time web log analyzer | [Github](https://github.com/allinurl/goaccess) | 117 | | bettercap | Network/bluetooth log analyzer | [Github](https://github.com/bettercap/bettercap) | 118 | | pyroscope-io/brew/pyroscope | Continuous profiling platform | [Github](https://github.com/pyroscope-io/pyroscope) | 119 | | vegeta | HTTP load testing tool | [Github](https://github.com/tsenart/vegeta) | 120 | | mkcert | Make local trusted dev certs | [Github](https://github.com/FiloSottile/mkcert) | 121 | | starship | Cool shell dev prompts | [Github](https://github.com/starship/starship) | 122 | 123 | ## VS Code plugins 124 | 125 | | Name | Extension ID | 126 | |--------------------------|---------------------------------------------| 127 | | Go | golang.go | 128 | | GraphQL | graphql.vscode-graphql | 129 | | Dart | dart-code.dart-code | 130 | | Flutter | dart-code.flutter | 131 | | webhint | webhint.vscode-webhint | 132 | | ESLint | dbaeumer.vscode-eslint | 133 | | stylelint | stylelint.vscode-stylelint | 134 | | Svelte | svelte.svelte-vscode | 135 | | YAML | redhat.vscode-yaml | 136 | | docker | ms-azuretools.vscode-docker | 137 | | VSCode Great Icons | emmanuelbeziat.vscode-great-icons | 138 | | Kubernetes | ms-kubernetes-tools.vscode-kubernetes-tools | 139 | | hadolint | exiasr.hadolint | 140 | | GitHub heme | github.github-vscode-theme | 141 | | Ruby Solargrpah | castwide.solargraph | 142 | | vscode-styled-components | jpoissonnier.vscode-styled-components | 143 | 144 | ## Audio 145 | 146 | - In `/home/user/.config/pulse/daemon.conf`: 147 | 148 | ```sh 149 | avoid-resampling = true 150 | flat-volumes = no 151 | resample-method = speex-float-10 152 | avoid-resampling = yes 153 | ## These next options should be tailored to your use case and hardware. I mainly play files in 44100 and 96000 bit rate through headphones. 154 | default-sample-format = float32le 155 | default-sample-rate = 44100 156 | alternate-sample-rate = 96000 157 | ``` 158 | 159 | ### Autologin on startup 160 | See: [docs](https://wiki.voidlinux.org/Automatic_Login_to_Graphical_Environment) 161 | ```sh 162 | $ sudo cp -R /etc/sv/agetty-tty1 /etc/sv/agetty-autologin-tty1 163 | $ sudo echo >> /etc/sv/agetty-autologin-tty1/conf "GETTY_ARGS=\"--autologin $USER --noclear\" 164 | BAUD_RATE=38400 165 | TERM_NAME=linux" 166 | ``` 167 | Logout, login, and: 168 | ```sh 169 | $ sudo rm /var/service/agetty-tty1 170 | $ sudo ln -s /etc/sv/agetty-autologin-tty1 /var/service 171 | ``` 172 | 173 | ### Auto xinit w/ fish 174 | In `~/.config/fish/config.fish`: 175 | ```sh 176 | #set -l tty (fgconsole) 177 | if test -z $DISPLAY 178 | #and [ tty = 1 ] 179 | exec startx 180 | end 181 | ``` 182 | 183 | > In general, use `~/.config/fish/config.fish` for any ".profile" configuration 184 | 185 | ### Create Pulseaudio module for OBS 186 | (Assume that with listing `short links` 3 is the null one and 2 is the default) 187 | ```sh 188 | $ pactl load-module module-null-sink 189 | $ pactl list short sinks 190 | $ pactl load-module module-combine-sink sink_name=OBScombine slaves=3,2 191 | ``` 192 | --------------------------------------------------------------------------------