commit c09e3cfe5c456e49a43e2d010e774b4d5c7aaed2 Author: Juni Kim Date: Sat Mar 4 23:17:16 2023 -0500 first commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9a98258 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.DS_Store +__pycache__ +*.swp +*.un~ diff --git a/alacritty/.config/alacritty/alacritty.yml b/alacritty/.config/alacritty/alacritty.yml new file mode 100644 index 0000000..c57f7a9 --- /dev/null +++ b/alacritty/.config/alacritty/alacritty.yml @@ -0,0 +1,967 @@ +# 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: xterm-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: 0 + # lines: 0 + + # 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: 10 + y: 10 + + # Spread additional padding evenly around the terminal content. + dynamic_padding: false + + # 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. + opacity: 1.0 + # opacity: 0.80 + decorations: none + # 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: full + + # Startup Mode (changes require restart) + # + # Values for `startup_mode`: + # - Windowed + # - Maximized + # - Fullscreen + # + # Values for `startup_mode` (macOS only): + # - SimpleFullscreen + #startup_mode: Windowed + + # Window title + title: Alacritty + + # Window class (Linux/BSD only): + class: + # Application instance name + instance: Alacritty + # General application class + general: Alacritty + + # GTK theme variant (Linux/BSD only) + # + # Override the variant of the GTK theme. Commonly supported values are `dark` and `light`. + # Set this to `None` to use the default theme variant. + #gtk_theme_variant: None + +scrolling: + # Maximum number of lines in the scrollback buffer. + # Specifying '0' will disable scrolling. + history: 5000 + + # Number of lines the viewport will move for every line scrolled when + # scrollback is enabled (history > 0). + #multiplier: 3 + + # Scroll to the bottom when new text is written to the terminal. + #auto_scroll: false + +# Spaces per Tab (changes require restart) +# +# This setting defines the width of a tab in cells. +# +# Some applications, like Emacs, rely on knowing about the width of a tab. +# To prevent unexpected behavior in these applications, it's also required to +# change the `it` value in terminfo when altering this setting. +#tabspaces: 8 + +# Font configuration +font: + # Normal (roman) font face + normal: + # Font family + # + # Default: + # - (macOS) Menlo + # - (Linux/BSD) monospace + # - (Windows) Consolas + #family: Cascadia Code + # family: CodeNewRoman Nerd Font + # family: RobotoMono Nerd Font + # family: Hack + family: JetBrains Mono Nerd Font + # family: UbuntuMono Nerd Font + # family: Monofur Nerd Font + # family: TerminessTTF Nerd Font + # family: Mononoki 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: Cascadia Code + # family: CodeNewRoman Nerd Font + # family: RobotoMono Nerd Font + # family: Hack + family: JetBrains Mono Nerd Font + # family: UbuntuMono Nerd Font + # family: Monofur Nerd Font + # family: TerminessTTF Nerd Font + # family: Mononoki Nerd Font + + # 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: Cascadia Code + # family: CodeNewRoman Nerd Font + # family: RobotoMono Nerd Font + # family: Hack + family: JetBrains Mono Nerd Font + # family: UbuntuMono Nerd Font + # family: Monofuritalic Nerd Font Mono + # family: TerminessTTF Nerd Font + # family: Mononoki Nerd Font + + # The `style` can be specified to pick a specific face. + style: Italic + + # Bold italic font face + bold_italic: + # Font family + # + # If the bold italic family is not specified, it will fall back to the + # value specified for the normal font. + #family: Cascadia Code + # family: CodeNewRoman Nerd Font + # family: RobotoMono Nerd Font + # family: Hack + family: JetBrains Mono Nerd Font + # family: UbuntuMono Nerd Font + # family: Monofuritalic Nerd Font Mono + # family: TerminessTTF Nerd Font + # family: Mononoki Nerd Font + + # The `style` can be specified to pick a specific face. + style: Bold Italic + + # Point size + #size: 13.0 + size: 11.5 + + # 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: 1 + + # 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 + +####################################### +## START OF COLOR SCHEMES ## +####################################### +schemes: + ### Doom One ### + DoomOne: &DoomOne + primary: + background: '#282c34' + foreground: '#bbc2cf' + cursor: + text: CellBackground + cursor: '#528bff' + selection: + text: CellForeground + background: '#3e4451' + normal: + black: '#1c1f24' + red: '#ff6c6b' + green: '#98be65' + yellow: '#da8548' + blue: '#51afef' + magenta: '#c678dd' + cyan: '#5699af' + white: '#202328' + bright: + black: '#5b6268' + red: '#da8548' + green: '#4db5bd' + yellow: '#ecbe7b' + blue: '#3071db' # This is 2257a0 in Doom Emacs but I lightened it. + magenta: '#a9a1e1' + cyan: '#46d9ff' + white: '#dfdfdf' + + ### Dracula ### + Dracula: &Dracula + primary: + background: '#282a36' + foreground: '#f8f8f2' + cursor: + text: CellBackground + cursor: CellForeground + vi_mode_cursor: + text: CellBackground + cursor: CellForeground + search: + matches: + foreground: '#44475a' + background: '#50fa7b' + focused_match: + foreground: '#44475a' + background: '#ffb86c' + bar: + background: '#282a36' + foreground: '#f8f8f2' + line_indicator: + foreground: None + background: None + selection: + text: CellForeground + background: '#44475a' + normal: + black: '#000000' + red: '#ff5555' + green: '#50fa7b' + yellow: '#f1fa8c' + blue: '#bd93f9' + magenta: '#ff79c6' + cyan: '#8be9fd' + white: '#bfbfbf' + bright: + black: '#4d4d4d' + red: '#ff6e67' + green: '#5af78e' + yellow: '#f4f99d' + blue: '#caa9fa' + magenta: '#ff92d0' + cyan: '#9aedfe' + white: '#e6e6e6' + dim: + black: '#14151b' + red: '#ff2222' + green: '#1ef956' + yellow: '#ebf85b' + blue: '#4d5b86' + magenta: '#ff46b0' + cyan: '#59dffc' + white: '#e6e6d1' + + ### Gruvbox dark ### + GruvboxDark: &GruvboxDark + # Default colors + primary: + # hard contrast: background = '0x1d2021' + background: '#282828' + # soft contrast: background = '0x32302f' + foreground: '#ebdbb2' + + # Normal colors + normal: + black: '#282828' + red: '#cc241d' + green: '#98971a' + yellow: '#d79921' + blue: '#458588' + magenta: '#b16286' + cyan: '#689d6a' + white: '#a89984' + + # Bright colors + bright: + black: '#928374' + red: '#fb4934' + green: '#b8bb26' + yellow: '#fabd2f' + blue: '#83a598' + magenta: '#d3869b' + cyan: '#8ec07c' + white: '#ebdbb2' + +### Monokai ### + MonokaiPro: &MonokaiPro + # Default colors + primary: + background: '#2D2A2E' + foreground: '#FCFCFA' + + # Normal colors + normal: + black: '#403E41' + red: '#FF6188' + green: '#A9DC76' + yellow: '#FFD866' + blue: '#FC9867' + magenta: '#AB9DF2' + cyan: '#78DCE8' + white: '#FCFCFA' + + # Bright colors + bright: + black: '#727072' + red: '#FF6188' + green: '#A9DC76' + yellow: '#FFD866' + blue: '#FC9867' + magenta: '#AB9DF2' + cyan: '#78DCE8' + white: '#FCFCFA' + + ### Nord ### + Nord: &Nord + # Default colors + primary: + background: '#2E3440' + foreground: '#D8DEE9' + + # Normal colors + normal: + black: '#3B4252' + red: '#BF616A' + green: '#A3BE8C' + yellow: '#EBCB8B' + blue: '#81A1C1' + magenta: '#B48EAD' + cyan: '#88C0D0' + white: '#E5E9F0' + + # Bright colors + bright: + black: '#4C566A' + red: '#BF616A' + green: '#A3BE8C' + yellow: '#EBCB8B' + blue: '#81A1C1' + magenta: '#B48EAD' + cyan: '#8FBCBB' + white: '#ECEFF4' + + ### Oceanic Next ### + OceanicNext: &OceanicNext + # Default colors + primary: + background: '#1b2b34' + foreground: '#d8dee9' + + # Colors the cursor will use if `custom_cursor_colors` is true + cursor: + text: '#1b2b34' + cursor: '#ffffff' + + # Normal colors + normal: + black: '#343d46' + red: '#EC5f67' + green: '#99C794' + yellow: '#FAC863' + blue: '#6699cc' + magenta: '#c594c5' + cyan: '#5fb3b3' + white: '#d8dee9' + + # Bright colors + bright: + black: '#343d46' + red: '#EC5f67' + green: '#99C794' + yellow: '#FAC863' + blue: '#6699cc' + magenta: '#c594c5' + cyan: '#5fb3b3' + white: '#d8dee9' + + ### Palenight ### + Palenight: &Palenight + # Default colors + primary: + background: '#292d3e' + foreground: '#d0d0d0' + + # Normal colors + normal: + black: '#292d3e' + red: '#f07178' + green: '#c3e88d' + yellow: '#ffcb6b' + blue: '#82aaff' + magenta: '#c792ea' + cyan: '#89ddff' + white: '#d0d0d0' + + # Bright colors + bright: + black: '#434758' + red: '#ff8b92' + green: '#ddffa7' + yellow: '#ffe585' + blue: '#9cc4ff' + magenta: '#e1acff' + cyan: '#a3f7ff' + white: '#ffffff' + + ### Solarized Dark ### + SolarizedDark: &SolarizedDark + # Default colors + primary: + background: '#002b36' # base03 + foreground: '#839496' # base0 + + # Cursor colors + cursor: + text: '#002b36' # base03 + cursor: '#839496' # base0 + + # Normal colors + normal: + black: '#073642' # base02 + red: '#dc322f' # red + green: '#859900' # green + yellow: '#b58900' # yellow + blue: '#268bd2' # blue + magenta: '#d33682' # magenta + cyan: '#2aa198' # cyan + white: '#eee8d5' # base2 + + # Bright colors + bright: + black: '#002b36' # base03 + red: '#cb4b16' # orange + green: '#586e75' # base01 + yellow: '#657b83' # base00 + blue: '#839496' # base0 + magenta: '#6c71c4' # violet + cyan: '#93a1a1' # base1 + white: '#fdf6e3' # base3 + + ### Solarized Light ### + SolarizedLight: &SolarizedLight + # Default colors + primary: + background: '#fdf6e3' # base3 + foreground: '#657b83' # base00 + + # Cursor colors + cursor: + text: '#fdf6e3' # base3 + cursor: '#657b83' # base00 + + # Normal colors + normal: + black: '#073642' # base02 + red: '#dc322f' # red + green: '#859900' # green + yellow: '#b58900' # yellow + blue: '#268bd2' # blue + magenta: '#d33682' # magenta + cyan: '#2aa198' # cyan + white: '#eee8d5' # base2 + + # Bright colors + bright: + black: '#002b36' # base03 + red: '#cb4b16' # orange + green: '#586e75' # base01 + yellow: '#657b83' # base00 + blue: '#839496' # base0 + magenta: '#6c71c4' # violet + cyan: '#93a1a1' # base1 + white: '#fdf6e3' # base3 + + ### Tomorrow Night ### + TomorrowNight: &TomorrowNight + # Default colors + primary: + background: '#1d1f21' + foreground: '#c5c8c6' + + # Colors the cursor will use if `custom_cursor_colors` is true + cursor: + text: '#1d1f21' + cursor: '#ffffff' + + # Normal colors + normal: + black: '#1d1f21' + red: '#cc6666' + green: '#b5bd68' + yellow: '#e6c547' + blue: '#81a2be' + magenta: '#b294bb' + cyan: '#70c0ba' + white: '#373b41' + + # Bright colors + bright: + black: '#666666' + red: '#ff3334' + green: '#9ec400' + yellow: '#f0c674' + blue: '#81a2be' + magenta: '#b77ee0' + cyan: '#54ced6' + white: '#282a2e' + gruvbox_material: &gruvbox_material + primary: + background: '0x282828' + foreground: '0xdfbf8e' + normal: + black: '0x665c54' + red: '0xea6962' + green: '0xa9b665' + yellow: '0xe78a4e' + blue: '0x7daea3' + magenta: '0xd3869b' + cyan: '0x89b482' + white: '0xdfbf8e' + bright: + black: '0x928374' + red: '0xea6962' + green: '0xa9b665' + yellow: '0xe3a84e' + blue: '0x7daea3' + magenta: '0xd3869b' + cyan: '0x89b482' + white: '0xdfbf8e' + + + catppuccin: &catppuccin + primary: + background: "#1E1E2E" # base + foreground: "#CDD6F4" # text + # Bright and dim foreground colors + dim_foreground: "#CDD6F4" # text + bright_foreground: "#CDD6F4" # text + + # Cursor colors + cursor: + text: "#1E1E2E" # base + cursor: "#F5E0DC" # rosewater + vi_mode_cursor: + text: "#1E1E2E" # base + cursor: "#B4BEFE" # lavender + + # Search colors + search: + matches: + foreground: "#1E1E2E" # base + background: "#A6ADC8" # subtext0 + focused_match: + foreground: "#1E1E2E" # base + background: "#A6E3A1" # green + footer_bar: + foreground: "#1E1E2E" # base + background: "#A6ADC8" # subtext0 + + # Keyboard regex hints + hints: + start: + foreground: "#1E1E2E" # base + background: "#F9E2AF" # yellow + end: + foreground: "#1E1E2E" # base + background: "#A6ADC8" # subtext0 + + # Selection colors + selection: + text: "#1E1E2E" # base + background: "#F5E0DC" # rosewater + + # Normal colors + normal: + black: "#45475A" # surface1 + red: "#F38BA8" # red + green: "#A6E3A1" # green + yellow: "#F9E2AF" # yellow + blue: "#89B4FA" # blue + magenta: "#F5C2E7" # pink + cyan: "#94E2D5" # teal + white: "#BAC2DE" # subtext1 + + # Bright colors + bright: + black: "#585B70" # surface2 + red: "#F38BA8" # red + green: "#A6E3A1" # green + yellow: "#F9E2AF" # yellow + blue: "#89B4FA" # blue + magenta: "#F5C2E7" # pink + cyan: "#94E2D5" # teal + white: "#A6ADC8" # subtext0 + + # Dim colors + dim: + black: "#45475A" # surface1 + red: "#F38BA8" # red + green: "#A6E3A1" # green + yellow: "#F9E2AF" # yellow + blue: "#89B4FA" # blue + magenta: "#F5C2E7" # pink + cyan: "#94E2D5" # teal + white: "#BAC2DE" # subtext1 + +###################################################################### +## SET THEME: Choose ONE color scheme from those in the above list. ## +## ################################################################### +# Available themes are: +# *DoomOne +# *Dracula +# *GruvboxDark +# *MonokaiPro +# *Nord +# *OceanicNext +# *Palenight +# *SolarizedLight +# *SolarizedDark +# *TomorrowNight + +#colors: *gruvbox_material +colors: *catppuccin + +####################################### +## END OF COLOR SCHEMES ## +####################################### + +# 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. +#visual_bell: +# animation: EaseOutExpo +# duration: 0 +# color: '#ffffff' + +#selection: + #semantic_escape_chars: ",│`|:\"' ()[]{}<>\t" + + # When set to `true`, selected text will be copied to the primary clipboard. + #save_to_clipboard: false + +# Allow terminal applications to change Alacritty's window title. +#dynamic_title: true + +cursor: + # Cursor style + # + # Values for `style`: + # - ▇ Block + # - _ Underline + # - | Beam + style: Block + + # 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: +# - (macOS) /bin/bash --login +# - (Linux/BSD) user login shell +# - (Windows) powershell +# args: +# - --login + +# Startup directory +# +# Directory the shell is started in. If this is unset, or `None`, the working +# directory of the parent process will be used. +#working_directory: None + +# WinPTY backend (Windows only) +# +# Alacritty defaults to using the newer ConPTY backend if it is available, +# since it resolves a lot of bugs and is quite a bit faster. If it is not +# available, the the WinPTY backend will be used instead. +# +# Setting this option to `true` makes Alacritty use the legacy WinPTY backend, +# even if the ConPTY backend is available. +#winpty_backend: false + +# Send ESC (\x1b) before characters when alt is pressed. +#alt_send_esc: true + +#debug: + # Display the time it takes to redraw each frame. + #render_timer: false + + # Keep the log file after quitting Alacritty. + #persistent_logging: false + + # Log level + # + # Values for `log_level`: + # - None + # - Error + # - Warn + # - Info + # - Debug + # - Trace + #log_level: Warn + + # Print all received window events. + #print_events: false + + # Record all characters and escape sequences as test data. + #ref_test: false + +#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 + + #url: + # URL launcher + # + # This program is executed when clicking on a text which is recognized as a URL. + # The URL is always added to the command as the last parameter. + # + # When set to `None`, URL launching will be disabled completely. + # + # Default: + # - (macOS) open + # - (Linux/BSD) xdg-open + # - (Windows) explorer + #launcher: + # program: xdg-open + # args: [] + + # URL modifiers + # + # These are the modifiers that need to be held down for opening URLs when clicking + # on them. The available modifiers are documented in the key binding section. + #modifiers: None + +# Mouse bindings +# +# Mouse bindings are specified as a list of objects, much like the key +# bindings further below. +# +# Each mouse binding will specify a: +# +# - `mouse`: +# +# - Middle +# - Left +# - Right +# - Numeric identifier such as `5` +# +# - `action` (see key bindings) +# +# And optionally: +# +# - `mods` (see key bindings) +#mouse_bindings: +# - { mouse: Middle, action: PasteSelection } + +# Key bindings +# +# Key bindings are specified as a list of objects. For example, this is the +# default paste binding: +# +# `- { key: V, mods: Control|Shift, action: Paste }` +# +# Each key binding will specify a: +# +# - `key`: Identifier of the key pressed +# +# - A-Z +# - F1-F24 +# - Key0-Key9 +# +# A full list with available key codes can be found here: +# https://docs.rs/glutin/*/glutin/event/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`. +# +# Then exactly one of: +# +# - `chars`: Send a byte sequence to the running application +# +# 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. +# +# - `action`: Execute a predefined action +# +# - Copy +# - Paste +# - PasteSelection +# - IncreaseFontSize +# - DecreaseFontSize +# - ResetFontSize +# - ScrollPageUp +# - ScrollPageDown +# - ScrollLineUp +# - ScrollLineDown +# - ScrollToTop +# - ScrollToBottom +# - ClearHistory +# - Hide +# - Minimize +# - Quit +# - ToggleFullscreen +# - SpawnNewInstance +# - ClearLogNotice +# - ReceiveChar +# - None +# +# (macOS only): +# - ToggleSimpleFullscreen: Enters fullscreen without occupying another space +# +# - `command`: Fork and execute a specified command plus arguments +# +# The `command` field must be a map containing a `program` string and an +# `args` array of command line parameter strings. For example: +# `{ program: "alacritty", args: ["-e", "vttest"] }` +# +# And optionally: +# +# - `mods`: Key modifiers to filter binding actions +# +# - Command +# - Control +# - Option +# - Super +# - Shift +# - Alt +# +# Multiple `mods` can be combined using `|` like this: +# `mods: Control|Shift`. +# Whitespace and capitalization are relevant and must match the example. +# +# - `mode`: Indicate a binding for only specific terminal reported modes +# +# This is mainly used to send applications the correct escape sequences +# when in different modes. +# +# - AppCursor +# - AppKeypad +# - Alt +# +# A `~` operator can be used before a mode to apply the binding whenever +# the mode is *not* active, e.g. `~Alt`. +# +# 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 `ReceiveChar` action. Alternatively, you can use `None` for +# a no-op if you do not wish to receive input characters for that binding. +key_bindings: + # (Windows, Linux, and BSD 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: Plus, mods: Control, action: IncreaseFontSize } + - { key: Minus, mods: Control, action: DecreaseFontSize } + - { key: F11, mods: None, action: ToggleFullscreen } + - { key: Paste, mods: None, action: Paste } + - { key: Copy, mods: None, action: Copy } + - { key: L, mods: Control, action: ClearLogNotice } + - { key: L, mods: Control, chars: "\x0c" } + - { key: PageUp, mods: None, action: ScrollPageUp, mode: ~Alt } + - { key: PageDown, mods: None, action: ScrollPageDown, mode: ~Alt } + - { key: Home, mods: Shift, action: ScrollToTop, mode: ~Alt } + - { key: End, mods: Shift, action: ScrollToBottom, mode: ~Alt } diff --git a/dots/.tmux.conf b/dots/.tmux.conf new file mode 100644 index 0000000..68755bb --- /dev/null +++ b/dots/.tmux.conf @@ -0,0 +1,52 @@ +set -s escape-time 0 +set -g focus-events on +set-option -g status-style fg=white,bg=black + +set-window-option -g mode-keys vi + +set-option -g default-terminal "tmux-256color" +set -sa terminal-overrides ",tmux-256color*:Tc" +set-option -sa terminal-overrides ",xterm*:Tc" + +unbind-key C-b +set-option -g prefix C-a +bind-key C-a send-prefix + +bind c new-window -c "#{pane_current_path}" +bind % split-window -h -c "#{pane_current_path}" +bind '"' split-window -v -c "#{pane_current_path}" + +bind -r k select-pane -U +bind -r j select-pane -D +bind -r h select-pane -L +bind -r l select-pane -R +bind -r r source-file ~/.tmux.conf +set -g mouse on + +bind-key X \ + if-shell '[ "$(tmux display -p "#{session_many_attached}")" -gt 0 ]' { + # the session is attached to multiple clients, so we can just switch the client to a different session. + choose-session + } { + # we are the last client attached to this session; kill it. + # we need to use `run-shell` to ensure that the current session number is expanded *before* we switch to the new session. + confirm -p 'Kill #S (y/n)?' { + choose-tree -s { + run-shell 'tmux switch-client -t "%%" \; kill-session -t "#S"' + } + } + } + +set -g @plugin 'tmux-plugins/tpm' +# set -g @plugin 'odedlaz/tmux-onedark-theme' +set -g @plugin 'catppuccin/tmux' + +# Other examples: +# set -g @plugin 'github_username/plugin_name' +# set -g @plugin 'github_username/plugin_name#branch' +# set -g @plugin 'git@github.com:user/plugin' +# set -g @plugin 'git@bitbucket.com:user/plugin' + +# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) +run '~/.tmux/plugins/tpm/tpm' +#set-window-option -g status-left " #30S " diff --git a/dots/.zshrc b/dots/.zshrc new file mode 100644 index 0000000..1d7cd04 --- /dev/null +++ b/dots/.zshrc @@ -0,0 +1,42 @@ +# export PATH=$HOME/bin:/usr/local/bin:$PATH + +export ZSH="$HOME/.oh-my-zsh" +ZSH_THEME="arrow" +plugins=(git zsh-syntax-highlighting) + +source $ZSH/oh-my-zsh.sh + +set -o vi +alias gac='git add . && git commit' +alias v='nvim' +alias s='ls' +alias c='clear' +alias e='exit' +alias o='xdg-open' +alias cp='cp -r' +alias vc='nvim ~/.config/nvim' +alias vrc='vim ~/.vimrc' +alias vz='nvim ~/.zshrc' +alias sz='source ~/.zshrc' +alias sy='systemctl' +# ~/.zshrc + +export MT_EDITOR=nvim +export VISUAL=nvim + +export WORKSPACES=$HOME/Documents +f() { + fff "$@" + cd "$(cat "${XDG_CACHE_HOME:=${HOME}/.cache}/fff/.fff_d")" +} + +bindkey -s "^f" "~/.local/bin/tmuxs\n" + + +export WORKSPACES=$HOME/nfs/d2/ohsg11/s2:$HOME/nfs/rpi/ohsg11/s2:$WORKSPACES +alias schoolmount='sudo mount 192.168.1.179:/srv/nfs ~/nfs/rpi' +alias d2mount='sudo mount.cifs -o username=junikim,uid=$(id -u),gid=$(id -g) //157.245.86.196/d2nas ~/nfs/d2' + +export EDITOR=nvim +export PATH=$HOME/.local/bin:$PATH +export PATH=$HOME/go/bin:$PATH diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..33359ff --- /dev/null +++ b/install.sh @@ -0,0 +1,144 @@ +#!/bin/sh + +DIR="$(realpath "$(dirname "$0")")" + +if ! grep 'Pop!_OS' /etc/os-release > /dev/null 2>&1; then + echo "This is not Pop!_OS, exiting..." + exit +fi + +# script must start at home directory +cd "$HOME" || exit 1; + +dependencies() { + sudo apt update -y + sudo apt install -y make curl sudo git zip unzip || exit 1 + if ! (type sudo 2>&1) > /dev/null; then + echo "sudo is not installed."; + exit 1 + fi + + echo "Updating APT and adding PPA's" + curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash - + sudo apt update -y || exit 1 + + sudo apt install -y nodejs golang cargo tmux g++ gcc stow || exit 1 +} + +sysinfo() { + echo "Dylan Araps scripts" + cd "$HOME" || exit 1; + mkdir -p repos + git clone https://github.com/dylanaraps/pfetch "$HOME/repos/pfetch" + git clone https://github.com/dylanaraps/neofetch "$HOME/repos/neofetch" + git clone https://github.com/dylanaraps/fff "$HOME/repos/fff" + + cd "$HOME/repos/pfetch" || exit 1; + sudo make install || exit 2; + cd "$HOME" || exit 1; + + cd "$HOME/repos/neofetch" || exit 1; + sudo make install || exit 2; + cd "$HOME" || exit 1; + + cd "$HOME/repos/fff" || exit 1; + sudo make install || exit 2; + cd "$HOME" || exit 1; +} + +browsers() { + sudo apt remove -y firefox + # install brave + sudo apt install apt-transport-https -y || exit 1 + sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg || exit 1 + echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main"| sudo tee /etc/apt/sources.list.d/brave-browser-release.list + sudo apt update -y + sudo apt install brave-browser -y || exit 1 +} + +meetings() { + mkdir -p "$HOME/repos" + + # install skype + curl https://go.skype.com/skypeforlinux-64.deb -LJo "$HOME/repos/skypeforlinux.deb" + sudo apt install "$HOME/repos/skypeforlinux.deb" -y + + # install zoom + curl https://zoom.us/client/latest/zoom_amd64.deb -LJo "$HOME/repos/zoomus.deb" + sudo apt install "$HOME/repos/zoomus.deb" -y + + # install mt + sudo curl -LJ https://github.com/junikimm717/mt/releases/download/33627ab/mt -o /usr/local/bin/mt + sudo chmod +x /usr/local/bin/mt +} + +dotfiles() { + echo "Adding zsh and tmux configs" + # zsh plugins + sudo apt install -y zsh tmux shellcheck fzf + export RUNZSH=no + sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" + git clone https://github.com/zsh-users/zsh-syntax-highlighting.git "$HOME/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting" + + # stow dotfiles + cd "$DIR" || exit 1 + rm -rf ~/.zshrc ~/.tmux.conf + ./stow dots scripts || exit 1 + curl -LJ https://git.junickim.me/junikimm717/vim2023/raw/branch/master/lsp.vimrc -o "$HOME/.vimrc" + + # tpm + test -e ~/.tmux/plugins/tpm || git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm || exit 1 + tmux start \; \ + new -d \; \ + run "$HOME/.tmux/plugins/tpm/scripts/install_plugins.sh" \; \ + kill-session || exit 1 +} + +nfs() { + sudo apt install nfs-common cifs-utils + mkdir -p ~/nfs/rpi ~/nfs/d2 +} + +neovim() { + # install neovim + curl https://github.com/neovim/neovim/releases/download/stable/nvim-linux64.deb -LJo "$HOME/repos/nvim-linux64.deb" || exit 1 + sudo apt install "$HOME/repos/nvim-linux64.deb" -y || exit 1 + sudo npm install -g tree-sitter-cli + git clone --depth 1 https://github.com/wbthomason/packer.nvim ~/.local/share/nvim/site/pack/packer/start/packer.nvim || exit 1 + git clone https://git.junickim.me/junikimm717/nvim2023 ~/.config/nvim || exit 1 + nvim -c PackerSync -c 'sleep 10' -c qa --headless + echo "sleeping to compile" + nvim -c 'sleep 60' -c qa --headless +} + +neovim_fonts() { + sudo apt install -y fonts-jetbrains-mono + mkdir -p "$HOME/.local/share/fonts/JB" + cd "$HOME/.local/share/fonts/JB" || exit 1 + curl -LJO https://github.com/ryanoasis/nerd-fonts/releases/download/v2.3.3/JetBrainsMono.zip || exit 1 + unzip JetBrainsMono.zip || exit 1 + fc-cache -rv || exit 1 + + sudo add-apt-repository ppa:aslatter/ppa -y + sudo apt install alacritty -y || exit 1 +} + +wm() { + sudo add-apt-repository -y ppa:papirus/papirus + sudo apt update && sudo apt install -y i3 polybar nitrogen picom rofi stow papirus-icon-theme + # installing siji + mkdir -p "$HOME/repos/siji" + cd "$HOME/repos/siji" || exit 1 + curl -LJO https://github.com/fauno/siji/archive/master.tar.gz || exit 1 + tar -xzvf ./siji-master.tar.gz || exit 1 + mkdir -p "$HOME/.local/share/fonts" || exit 1 + cp ./siji-master/ttf/siji.ttf "$HOME/.local/share/fonts/" || exit 1 + fc-cache -rv + + cd "$DIR" || exit 1 + ./stow wm rofi polybar alacritty +} + +(dependencies && sysinfo && browsers && dotfiles && neovim && neovim_fonts && nfs && wm) || exit 1 + +echo "Reboot to make all changes active." diff --git a/polybar/.config/polybar/config.ini b/polybar/.config/polybar/config.ini new file mode 100644 index 0000000..ee724c2 --- /dev/null +++ b/polybar/.config/polybar/config.ini @@ -0,0 +1,316 @@ +;========================================================== +; +; +; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗ +; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗ +; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝ +; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗ +; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║ +; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ +; +; +; To learn more about how to configure Polybar +; go to https://github.com/polybar/polybar +; +; The README contains a lot of information +; +;========================================================== + +[colors] +#background = #1E1E2E +background = #11111b +background-alt = #313244 +foreground = #cdd6f4 +#primary = #89b4fc +#primary-underline = #1e66f5 +primary = #fab387 +primary-underline = #fe640b +secondary = #a6e3a1 +secondary-underline = #40a02b +alert = #f38ba8 +disabled = #707880 + +[bar/base] +width = 100% +height = 34pt +radius = 10 + +background = ${colors.background} +foreground = ${colors.foreground} + +line-size = 6pt + +border-size = 4pt +border-color = #00000000 + +padding-left = 0 +padding-right = 1 +module-margin = 1 + +#separator = | +separator-foreground = ${colors.disabled} + +font-0 = JetBrains Mono Nerd Font Mono:size=14;2 +font-1 = unifont:fontformat=truetype:size=8:antialias=false;0 +font-2 = siji:pixelsize=10;1 +font-3 = "Arimo:pixelsize=12;0" +cursor-click = pointer +cursor-scroll = ns-resize +enable-ipc = true + +[bar/workspaces] +width = 350 +inherit = bar/base +modules-left = xworkspaces-roleless + +[bar/top] +width = 500 +offset-x = 100%:-500 +inherit = bar/base +modules-left = date eth wlan + +[bar/bottom] +inherit = bar/base +bottom = true +width = 100% +modules-left = pulseaudio backlight +modules-center = xwindow +modules-right = filesystem memory cpu + +padding-left = 0 +padding-right = 0 + +[section/prefixed-module] +format-prefix-background = ${colors.primary} +format-prefix-underline = ${colors.primary-underline} +format-prefix-foreground = ${colors.background} +format-prefix-padding = 1 +format-prefix-alignment = center + +[section/decorated-module] +format-prefix-background = ${colors.primary} +format-prefix-underline = ${colors.primary-underline} +format-prefix-foreground = ${colors.background} +format-prefix-padding = 1 +format-prefix-alignment = center + +[module/xworkspaces-roleless] +type = internal/xworkspaces +inherit = section/prefixed-module + +format-prefix = 󰍹 + +label-active =  +label-active-background = ${colors.background-alt} +label-active-padding = 1 + +label-occupied =  +label-occupied-padding = 1 + +label-urgent = 󰗖 +label-urgent-background = ${colors.alert} +label-urgent-padding = 1 + +label-empty =  +label-empty-foreground = ${colors.disabled} +label-empty-padding = 1 + +[module/xworkspaces-role] +type = internal/xworkspaces + +inherit = section/prefixed-module +format-prefix = 󰍹 + +label-active = %icon% +label-active-background = ${colors.background-alt} +label-active-underline= ${colors.primary} +label-active-padding = 1 + +label-occupied = %icon% +label-occupied-padding = 1 + +label-urgent = %icon% +label-urgent-background = ${colors.alert} +label-urgent-padding = 1 + +label-empty = %icon% +label-empty-foreground = ${colors.disabled} +label-empty-padding = 1 + +icon-0 = 0; +icon-1 = 1;爵 +icon-2 = 2; +icon-3 = 3; +icon-4 = 4; +icon-5 = 5; +icon-6 = 6; +icon-7 = 7;8 +icon-8 = 8;9 + +[module/xwindow] +type = internal/xwindow +label = %title:0:30:...% +label-padding = 1 + +[module/filesystem] +type = internal/fs +interval = 25 + + +format-mounted-prefix = 󰋊 +format-mounted-prefix-background = ${colors.primary} +format-mounted-prefix-underline = ${colors.primary-underline} +format-mounted-prefix-foreground = ${colors.background} +format-mounted-prefix-padding = 1 +format-mounted-prefix-alignment = center + +mount-0 = / +label-mounted = %{F#40a02b}%mountpoint%%{F-} %percentage_used%% +label-unmounted = %mountpoint% not mounted +label-unmounted-foreground = ${colors.disabled} +label-mounted-padding = 1 + +[module/pulseaudio] +type = internal/pulseaudio +format-volume-prefix =  +format-volume-prefix-background = ${colors.primary} +format-volume-prefix-underline = ${colors.primary-underline} +format-volume-prefix-foreground = ${colors.background} +format-volume-prefix-padding = 1 +format-volume-prefix-alignment = center + +#format-volume-prefix = "VOL " +#format-volume-prefix-foreground = ${colors.primary} + +format-volume = + +label-volume = %percentage%% +label-volume-padding = 1 +label-muted = muted +label-muted-foreground = ${colors.disabled} + +[module/backlight] +type = internal/xbacklight + +inherit = section/prefixed-module +format-prefix =  +format = + +; Available tokens: +; %percentage% (default) +label = %percentage%% +label-padding = 1 + +; Only applies if is used +ramp-0 = 🌕 +ramp-1 = 🌔 +ramp-2 = 🌓 +ramp-3 = 🌒 +ramp-4 = 🌑 + +[module/xkeyboard] +type = internal/xkeyboard +blacklist-0 = num lock + +label-layout = %layout% +label-layout-foreground = ${colors.primary} + +label-indicator-padding = 2 +label-indicator-margin = 1 +label-indicator-foreground = ${colors.background} +label-indicator-background = ${colors.secondary} + +[module/memory] +type = internal/memory +interval = 2 +format-prefix =  +inherit = section/prefixed-module +label-padding = 1 +label = %percentage_used:2%% + +[module/cpu] +type = internal/cpu +interval = 2 +inherit = section/prefixed-module +format-prefix = 󰍛 +label = %percentage:2%% +label-padding = 1 + +[network-base] +type = internal/network +interval = 5 + +format-connected-prefix = 󰀂 +format-connected-prefix-background = ${colors.primary} +format-connected-prefix-underline = ${colors.primary-underline} +format-connected-prefix-foreground = ${colors.background} +format-connected-prefix-padding = 1 +format-connected-prefix-alignment = center + +format-connected = +label-connected-padding = 1 + +format-disconnected-prefix = 󰯡 +format-disconnected = +label-disconnected = %{F#a6e3a1}%ifname%%{F#707880} disconnected + +[module/wlan] +inherit = network-base +interface-type = wireless +label-connected = %{F#a6e3a1}%essid%%{F-} %local_ip% + +[module/eth] +inherit = network-base +interface-type = wired +interface = enp1s0 +label-connected = %{F#a6e3a1}%local_ip%%{F-} + +[module/date] +type = internal/date +interval = 1 +inherit = section/prefixed-module +format-prefix = 󰥔 + +format =