diff options
Diffstat (limited to 'src')
71 files changed, 6057 insertions, 0 deletions
diff --git a/src/.config/alacritty/alacritty.yml b/src/.config/alacritty/alacritty.yml new file mode 100644 index 0000000..f331fc3 --- /dev/null +++ b/src/.config/alacritty/alacritty.yml @@ -0,0 +1,879 @@ +# Configuration for Alacritty, the GPU enhanced terminal emulator. + +# Import additional configuration files +# +# Imports are loaded in order, skipping all missing files, with the importing +# file being loaded last. If a field is already present in a previous import, it +# will be replaced. +# +# All imports must either be absolute paths starting with `/`, or paths relative +# to the user's home directory starting with `~/`. +#import: +# - /path/to/alacritty.yml + +# 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: alacritty + +#window: + # Window dimensions (changes require restart) + # + # Number of lines/columns (not pixels) in the terminal. The number of columns + # must be at least `2`, while using a value of `0` for columns and lines will + # fall back to the window manager's recommended size. + #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: 0 + # y: 0 + + # Spread additional padding evenly around the terminal content. + #dynamic_padding: false + + # 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 and no title bar buttons + #decorations: full + + # 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 + + # 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 + + # Allow terminal applications to change Alacritty's window title. + #dynamic_title: true + + # 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: 10000 + + # Scrolling distance multiplier. + #multiplier: 3 + +# Font configuration +font: + # Normal (roman) font face + normal: + # Font family + # + # Default: + # - (macOS) Menlo + # - (Linux/BSD) monospace + # - (Windows) Consolas + family: MesloLGS NF + + # 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: MesloLGS NF + + # 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: MesloLGS NF + + # 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: MesloLGS NF + + # The `style` can be specified to pick a specific face. + style: Bold Italic + + # Point size + size: 8.0 + + # Offset is the extra space around each character. `offset.y` can be thought + # of as modifying the line spacing, and `offset.x` as modifying the letter + # spacing. + #offset: + # x: 0 + # y: 0 + + # Glyph offset determines the locations of the glyphs within their cells with + # the default being at the bottom. Increasing `x` moves the glyph to the + # right, increasing `y` moves the glyph upward. + #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`. + #use_thin_strokes: true + + # Use built-in font for box drawing characters. + # + # If `true`, Alacritty will use a custom built-in font for box drawing + # characters (Unicode points 2500 - 259f). + # + #builtin_box_drawing: true + +# If `true`, bold text is drawn using the bright color variants. +#draw_bold_text_with_bright_colors: false + +# Colors (Tomorrow Night) +colors: + # Default colors + primary: + background: '#1d2021' + foreground: '#ebdbb2' + + # Bright and dim foreground colors + # + # The dimmed foreground color is calculated automatically if it is not + # present. If the bright foreground color is not set, or + # `draw_bold_text_with_bright_colors` is `false`, the normal foreground + # color will be used. + #dim_foreground: '#828482' + #bright_foreground: '#eaeaea' + + # Cursor colors + # + # Colors which should be used to draw the terminal cursor. + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #cursor: + # text: CellBackground + # cursor: CellForeground + + # Vi mode cursor colors + # + # Colors for the cursor when the vi mode is active. + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + vi_mode_cursor: + text: CellBackground + cursor: CellForeground + + # Search colors + # + # Colors used for the search bar and match highlighting. + #search: + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #matches: + # foreground: '#000000' + # background: '#ffffff' + #focused_match: + # foreground: '#ffffff' + # background: '#000000' + + #bar: + # background: '#c5c8c6' + # foreground: '#1d1f21' + + # Keyboard regex hints + #hints: + # First character in the hint label + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #start: + # foreground: '#1d1f21' + # background: '#e9ff5e' + + # All characters after the first one in the hint label + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #end: + # foreground: '#e9ff5e' + # background: '#1d1f21' + + # Line indicator + # + # Color used for the indicator displaying the position in history during + # search and vi mode. + # + # By default, these will use the opposing primary color. + #line_indicator: + # foreground: None + # background: None + + # Selection colors + # + # Colors which should be used to draw the selection area. + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #selection: + # text: CellBackground + # background: CellForeground + + # Normal colors + normal: + black: '#282828' + red: '#ea6962' + green: '#a9b665' + yellow: '#e78a4e' + blue: '#7daea3' + magenta: '#d3869b' + cyan: '#89b482' + white: '#d4be98' + + # Bright colors + #bright: + # black: '#666666' + # red: '#d54e53' + # green: '#b9ca4a' + # yellow: '#e7c547' + # blue: '#7aa6da' + # magenta: '#c397d8' + # cyan: '#70c0b1' + # white: '#eaeaea' + + # Dim colors + # + # If the dim colors are not set, they will be calculated automatically based + # on the `normal` colors. + #dim: + # black: '#131415' + # red: '#864343' + # green: '#777c44' + # yellow: '#9e824c' + # blue: '#556a7d' + # magenta: '#75617b' + # cyan: '#5b7d78' + # white: '#828482' + + # Indexed Colors + # + # The indexed colors include all colors from 16 to 256. + # When these are not set, they're filled with sensible defaults. + # + # Example: + # `- { index: 16, color: '#ff00ff' }` + # + #indexed_colors: [] + + # Transparent cell backgrounds + # + # Whether or not `window.opacity` applies to all cell backgrounds or only to + # the default background. When set to `true` all cells will be transparent + # regardless of their background color. + #transparent_background_colors: false + +# Bell +# +# The bell is rung every time the BEL control character is received. +#bell: + # Visual Bell Animation + # + # Animation effect for flashing the screen when the visual bell is rung. + # + # Values for `animation`: + # - Ease + # - EaseOut + # - EaseOutSine + # - EaseOutQuad + # - EaseOutCubic + # - EaseOutQuart + # - EaseOutQuint + # - EaseOutExpo + # - EaseOutCirc + # - Linear + #animation: EaseOutExpo + + # Duration of the visual bell flash in milliseconds. A `duration` of `0` will + # disable the visual bell animation. + #duration: 0 + + # Visual bell animation color. + #color: '#ffffff' + + # Bell Command + # + # This program is executed whenever the bell is rung. + # + # When set to `command: None`, no command will be executed. + # + # Example: + # command: + # program: notify-send + # args: ["Hello, World!"] + # + #command: None + +#selection: + # This string contains all characters that are used as separators for + # "semantic words" in Alacritty. + #semantic_escape_chars: ",│`|:\"' ()[]{}<>\t" + + # When set to `true`, selected text will be copied to the primary clipboard. + #save_to_clipboard: false + +#cursor: + # Cursor style + #style: + # Cursor shape + # + # Values for `shape`: + # - ▇ Block + # - _ Underline + # - | Beam + #shape: Block + + # Cursor blinking state + # + # Values for `blinking`: + # - Never: Prevent the cursor from ever blinking + # - Off: Disable blinking by default + # - On: Enable blinking by default + # - Always: Force the cursor to always blink + #blinking: Off + + # Vi mode cursor style + # + # If the vi mode cursor style is `None` or not specified, it will fall back to + # the style of the active value of the normal cursor. + # + # See `cursor.style` for available options. + #vi_mode_style: None + + # Cursor blinking interval in milliseconds. + #blink_interval: 750 + + # If this is `true`, the cursor will be rendered as a hollow box when the + # window is not focused. + #unfocused_hollow: true + + # Thickness of the cursor relative to the cell width as floating point number + # from `0.0` to `1.0`. + #thickness: 0.15 + +# 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 +#shell: +# program: /bin/bash +# 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 + +# Send ESC (\x1b) before characters when alt is pressed. +#alt_send_esc: true + +# Offer IPC using `alacritty msg` (unix only) +#ipc_socket: true + +#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 + +# Regex hints +# +# Terminal hints can be used to find text in the visible part of the terminal +# and pipe it to other applications. +#hints: + # Keys used for the hint labels. + #alphabet: "jfkdls;ahgurieowpq" + + # List with all available hints + # + # Each hint must have a `regex` and either an `action` or a `command` field. + # The fields `mouse`, `binding` and `post_processing` are optional. + # + # The fields `command`, `binding.key`, `binding.mods`, `binding.mode` and + # `mouse.mods` accept the same values as they do in the `key_bindings` section. + # + # The `mouse.enabled` field controls if the hint should be underlined while + # the mouse with all `mouse.mods` keys held or the vi mode cursor is above it. + # + # If the `post_processing` field is set to `true`, heuristics will be used to + # shorten the match if there are characters likely not to be part of the hint + # (e.g. a trailing `.`). This is most useful for URIs. + # + # Values for `action`: + # - Copy + # Copy the hint's text to the clipboard. + # - Paste + # Paste the hint's text to the terminal or search. + # - Select + # Select the hint's text. + # - MoveViModeCursor + # Move the vi mode cursor to the beginning of the hint. + #enabled: + # - regex: "(ipfs:|ipns:|magnet:|mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)\ + # [^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^⟨⟩`]+" + # command: xdg-open + # post_processing: true + # mouse: + # enabled: true + # mods: None + # binding: + # key: U + # mods: Control|Shift + +# Mouse bindings +# +# Mouse bindings are specified as a list of objects, much like the key +# bindings further below. +# +# To trigger mouse bindings when an application running within Alacritty +# captures the mouse, the `Shift` modifier is automatically added as a +# requirement. +# +# Each mouse binding will specify a: +# +# - `mouse`: +# +# - Middle +# - Left +# - Right +# - Numeric identifier such as `5` +# +# - `action` (see key bindings for actions not exclusive to mouse mode) +# +# - Mouse exclusive actions: +# +# - ExpandSelection +# Expand the selection to the current mouse cursor location. +# +# And optionally: +# +# - `mods` (see key bindings) +#mouse_bindings: +# - { mouse: Right, action: ExpandSelection } +# - { mouse: Right, mods: Control, action: ExpandSelection } +# - { mouse: Middle, mode: ~Vi, 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 +# +# - ToggleViMode +# - SearchForward +# Start searching toward the right of the search origin. +# - SearchBackward +# Start searching toward the left of the search origin. +# - Copy +# - Paste +# - IncreaseFontSize +# - DecreaseFontSize +# - ResetFontSize +# - ScrollPageUp +# - ScrollPageDown +# - ScrollHalfPageUp +# - ScrollHalfPageDown +# - ScrollLineUp +# - ScrollLineDown +# - ScrollToTop +# - ScrollToBottom +# - ClearHistory +# Remove the terminal's scrollback history. +# - Hide +# Hide the Alacritty window. +# - Minimize +# Minimize the Alacritty window. +# - Quit +# Quit Alacritty. +# - ToggleFullscreen +# - SpawnNewInstance +# Spawn a new instance of Alacritty. +# - CreateNewWindow +# Create a new Alacritty window from the current process. +# - ClearLogNotice +# Clear Alacritty's UI warning and error notice. +# - ClearSelection +# Remove the active selection. +# - ReceiveChar +# - None +# +# - Vi mode exclusive actions: +# +# - Open +# Perform the action of the first matching hint under the vi mode cursor +# with `mouse.enabled` set to `true`. +# - ToggleNormalSelection +# - ToggleLineSelection +# - ToggleBlockSelection +# - ToggleSemanticSelection +# Toggle semantic selection based on `selection.semantic_escape_chars`. +# +# - Vi mode exclusive cursor motion actions: +# +# - Up +# One line up. +# - Down +# One line down. +# - Left +# One character left. +# - Right +# One character right. +# - First +# First column, or beginning of the line when already at the first column. +# - Last +# Last column, or beginning of the line when already at the last column. +# - FirstOccupied +# First non-empty cell in this terminal row, or first non-empty cell of +# the line when already at the first cell of the row. +# - High +# Top of the screen. +# - Middle +# Center of the screen. +# - Low +# Bottom of the screen. +# - SemanticLeft +# Start of the previous semantically separated word. +# - SemanticRight +# Start of the next semantically separated word. +# - SemanticLeftEnd +# End of the previous semantically separated word. +# - SemanticRightEnd +# End of the next semantically separated word. +# - WordLeft +# Start of the previous whitespace separated word. +# - WordRight +# Start of the next whitespace separated word. +# - WordLeftEnd +# End of the previous whitespace separated word. +# - WordRightEnd +# End of the next whitespace separated word. +# - Bracket +# Character matching the bracket at the cursor's location. +# - SearchNext +# Beginning of the next match. +# - SearchPrevious +# Beginning of the previous match. +# - SearchStart +# Start of the match to the left of the vi mode cursor. +# - SearchEnd +# End of the match to the right of the vi mode cursor. +# +# - Search mode exclusive actions: +# - SearchFocusNext +# Move the focus to the next search match. +# - SearchFocusPrevious +# Move the focus to the previous search match. +# - SearchConfirm +# - SearchCancel +# - SearchClear +# Reset the search regex. +# - SearchDeleteWord +# Delete the last word in the search regex. +# - SearchHistoryPrevious +# Go to the previous regex in the search history. +# - SearchHistoryNext +# Go to the next regex in the search history. +# +# - macOS exclusive actions: +# - ToggleSimpleFullscreen +# Enter fullscreen without occupying another space. +# +# - Linux/BSD exclusive actions: +# +# - CopySelection +# Copy from the selection buffer. +# - PasteSelection +# Paste from the selection buffer. +# +# - `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 +# - Search +# - Alt +# - Vi +# +# 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. +# +# If the same trigger is assigned to multiple actions, all of them are executed +# in the order they were defined in. +#key_bindings: + #- { key: Paste, action: Paste } + #- { key: Copy, action: Copy } + #- { key: L, mods: Control, action: ClearLogNotice } + #- { key: L, mods: Control, mode: ~Vi|~Search, chars: "\x0c" } + #- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp, } + #- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown } + #- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop, } + #- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom } + + # Vi Mode + #- { key: Space, mods: Shift|Control, mode: ~Search, action: ToggleViMode } + #- { key: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom } + #- { key: Escape, mode: Vi|~Search, action: ClearSelection } + #- { key: I, mode: Vi|~Search, action: ToggleViMode } + #- { key: I, mode: Vi|~Search, action: ScrollToBottom } + #- { key: C, mods: Control, mode: Vi|~Search, action: ToggleViMode } + #- { key: Y, mods: Control, mode: Vi|~Search, action: ScrollLineUp } + #- { key: E, mods: Control, mode: Vi|~Search, action: ScrollLineDown } + #- { key: G, mode: Vi|~Search, action: ScrollToTop } + #- { key: G, mods: Shift, mode: Vi|~Search, action: ScrollToBottom } + #- { key: B, mods: Control, mode: Vi|~Search, action: ScrollPageUp } + #- { key: F, mods: Control, mode: Vi|~Search, action: ScrollPageDown } + #- { key: U, mods: Control, mode: Vi|~Search, action: ScrollHalfPageUp } + #- { key: D, mods: Control, mode: Vi|~Search, action: ScrollHalfPageDown } + #- { key: Y, mode: Vi|~Search, action: Copy } + #- { key: Y, mode: Vi|~Search, action: ClearSelection } + #- { key: Copy, mode: Vi|~Search, action: ClearSelection } + #- { key: V, mode: Vi|~Search, action: ToggleNormalSelection } + #- { key: V, mods: Shift, mode: Vi|~Search, action: ToggleLineSelection } + #- { key: V, mods: Control, mode: Vi|~Search, action: ToggleBlockSelection } + #- { key: V, mods: Alt, mode: Vi|~Search, action: ToggleSemanticSelection } + #- { key: Return, mode: Vi|~Search, action: Open } + #- { key: K, mode: Vi|~Search, action: Up } + #- { key: J, mode: Vi|~Search, action: Down } + #- { key: H, mode: Vi|~Search, action: Left } + #- { key: L, mode: Vi|~Search, action: Right } + #- { key: Up, mode: Vi|~Search, action: Up } + #- { key: Down, mode: Vi|~Search, action: Down } + #- { key: Left, mode: Vi|~Search, action: Left } + #- { key: Right, mode: Vi|~Search, action: Right } + #- { key: Key0, mode: Vi|~Search, action: First } + #- { key: Key4, mods: Shift, mode: Vi|~Search, action: Last } + #- { key: Key6, mods: Shift, mode: Vi|~Search, action: FirstOccupied } + #- { key: H, mods: Shift, mode: Vi|~Search, action: High } + #- { key: M, mods: Shift, mode: Vi|~Search, action: Middle } + #- { key: L, mods: Shift, mode: Vi|~Search, action: Low } + #- { key: B, mode: Vi|~Search, action: SemanticLeft } + #- { key: W, mode: Vi|~Search, action: SemanticRight } + #- { key: E, mode: Vi|~Search, action: SemanticRightEnd } + #- { key: B, mods: Shift, mode: Vi|~Search, action: WordLeft } + #- { key: W, mods: Shift, mode: Vi|~Search, action: WordRight } + #- { key: E, mods: Shift, mode: Vi|~Search, action: WordRightEnd } + #- { key: Key5, mods: Shift, mode: Vi|~Search, action: Bracket } + #- { key: Slash, mode: Vi|~Search, action: SearchForward } + #- { key: Slash, mods: Shift, mode: Vi|~Search, action: SearchBackward } + #- { key: N, mode: Vi|~Search, action: SearchNext } + #- { key: N, mods: Shift, mode: Vi|~Search, action: SearchPrevious } + + # Search Mode + #- { key: Return, mode: Search|Vi, action: SearchConfirm } + #- { key: Escape, mode: Search, action: SearchCancel } + #- { key: C, mods: Control, mode: Search, action: SearchCancel } + #- { key: U, mods: Control, mode: Search, action: SearchClear } + #- { key: W, mods: Control, mode: Search, action: SearchDeleteWord } + #- { key: P, mods: Control, mode: Search, action: SearchHistoryPrevious } + #- { key: N, mods: Control, mode: Search, action: SearchHistoryNext } + #- { key: Up, mode: Search, action: SearchHistoryPrevious } + #- { key: Down, mode: Search, action: SearchHistoryNext } + #- { key: Return, mode: Search|~Vi, action: SearchFocusNext } + #- { key: Return, mods: Shift, mode: Search|~Vi, action: SearchFocusPrevious } + + # (Windows, Linux, and BSD only) + #- { key: V, mods: Control|Shift, mode: ~Vi, action: Paste } + #- { key: C, mods: Control|Shift, action: Copy } + #- { key: F, mods: Control|Shift, mode: ~Search, action: SearchForward } + #- { key: B, mods: Control|Shift, mode: ~Search, action: SearchBackward } + #- { key: C, mods: Control|Shift, mode: Vi|~Search, action: ClearSelection } + #- { 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: NumpadAdd, mods: Control, action: IncreaseFontSize } + #- { key: Minus, mods: Control, action: DecreaseFontSize } + #- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize } + + # (Windows only) + #- { key: Return, mods: Alt, action: ToggleFullscreen } + + # (macOS only) + #- { key: K, mods: Command, mode: ~Vi|~Search, chars: "\x0c" } + #- { key: K, mods: Command, mode: ~Vi|~Search, action: ClearHistory } + #- { key: Key0, mods: Command, action: ResetFontSize } + #- { key: Equals, mods: Command, action: IncreaseFontSize } + #- { key: Plus, mods: Command, action: IncreaseFontSize } + #- { key: NumpadAdd, mods: Command, action: IncreaseFontSize } + #- { key: Minus, mods: Command, action: DecreaseFontSize } + #- { key: NumpadSubtract, mods: Command, action: DecreaseFontSize } + #- { key: V, mods: Command, action: Paste } + #- { key: C, mods: Command, action: Copy } + #- { key: C, mods: Command, mode: Vi|~Search, action: ClearSelection } + #- { key: H, mods: Command, action: Hide } + #- { key: H, mods: Command|Alt, action: HideOtherApplications } + #- { key: M, mods: Command, action: Minimize } + #- { key: Q, mods: Command, action: Quit } + #- { key: W, mods: Command, action: Quit } + #- { key: N, mods: Command, action: SpawnNewInstance } + #- { key: F, mods: Command|Control, action: ToggleFullscreen } + #- { key: F, mods: Command, mode: ~Search, action: SearchForward } + #- { key: B, mods: Command, mode: ~Search, action: SearchBackward } + +#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`: + # - Off + # - Error + # - Warn + # - Info + # - Debug + # - Trace + #log_level: Warn + + # Print all received window events. + #print_events: false + diff --git a/src/.config/bspwm/bspwmrc b/src/.config/bspwm/bspwmrc new file mode 100755 index 0000000..a162096 --- /dev/null +++ b/src/.config/bspwm/bspwmrc @@ -0,0 +1,26 @@ +#! /bin/sh +~/.screenlayout/work.sh +export GPG_TTY=$(tty) +nitrogen --restore +~/.config/polybar/launch.sh 2> /dev/null +#picom --config ~/.config/picom/picom.conf --experimental-backends 2> /dev/null & +#picom --config ~/.config/picom/picom.conf --experimental-backends 2> /dev/null & +spgrep -x sxhkd > /dev/null || sxhkd & +xsetroot -cursor_name left_ptr + +dunst & +xfce4-power-manager & +pipewire & +pipewire-pulse & + +bspc monitor -d I II III IV V VI VII VIII IX X + +bspc config border_width 4 +bspc config window_gap 16 + +bspc config split_ratio 0.52 +bspc config borderless_monocle true +bspc config gapless_monocle true + +bspc config active_border_color '#0C1115' +bspc config focused_border_color '#ebdbb2' diff --git a/src/.config/dunst/dunstrc b/src/.config/dunst/dunstrc new file mode 100644 index 0000000..f6e0d36 --- /dev/null +++ b/src/.config/dunst/dunstrc @@ -0,0 +1,458 @@ +# See dunst(5) for all configuration options + +[global] + ### Display ### + + # Which monitor should the notifications be displayed on. + monitor = 0 + + # Display notification on focused monitor. Possible modes are: + # mouse: follow mouse pointer + # keyboard: follow window with keyboard focus + # none: don't follow anything + # + # "keyboard" needs a window manager that exports the + # _NET_ACTIVE_WINDOW property. + # This should be the case for almost all modern window managers. + # + # If this option is set to mouse or keyboard, the monitor option + # will be ignored. + follow = none + + ### Geometry ### + + # dynamic width from 0 to 300 + # width = (0, 300) + # constant width of 300 + width = 300 + + # The maximum height of a single notification, excluding the frame. + height = 300 + + # Position the notification in the top right corner + origin = top-right + + # Offset from the origin + offset = 10x50 + + # Scale factor. It is auto-detected if value is 0. + scale = 0 + + # Maximum number of notification (0 means no limit) + notification_limit = 0 + + ### Progress bar ### + + # Turn on the progess bar. It appears when a progress hint is passed with + # for example dunstify -h int:value:12 + progress_bar = true + + # Set the progress bar height. This includes the frame, so make sure + # it's at least twice as big as the frame width. + progress_bar_height = 10 + + # Set the frame width of the progress bar + progress_bar_frame_width = 1 + + # Set the minimum width for the progress bar + progress_bar_min_width = 150 + + # Set the maximum width for the progress bar + progress_bar_max_width = 300 + + # Corner radius for the progress bar. 0 disables rounded corners. + progress_bar_corner_radius = 0 + + + # Show how many messages are currently hidden (because of + # notification_limit). + indicate_hidden = yes + + # The transparency of the window. Range: [0; 100]. + # This option will only work if a compositing window manager is + # present (e.g. xcompmgr, compiz, etc.). (X11 only) + transparency = 0 + + # Draw a line of "separator_height" pixel height between two + # notifications. + # Set to 0 to disable. + # If gap_size is greater than 0, this setting will be ignored. + separator_height = 4 + + # Padding between text and separator. + padding = 8 + + # Horizontal padding. + horizontal_padding = 8 + + # Padding between text and icon. + text_icon_padding = 0 + + # Defines width in pixels of frame around the notification window. + # Set to 0 to disable. + frame_width = 3 + + # Defines color of the frame around the notification window. + frame_color = "#ebdbb2" + + # Size of gap to display between notifications - requires a compositor. + # If value is greater than 0, separator_height will be ignored and a border + # of size frame_width will be drawn around each notification instead. + # Click events on gaps do not currently propagate to applications below. + gap_size = 0 + + # Define a color for the separator. + # possible values are: + # * auto: dunst tries to find a color fitting to the background; + # * foreground: use the same color as the foreground; + # * frame: use the same color as the frame; + # * anything else will be interpreted as a X color. + separator_color = frame + + # Sort messages by urgency. + sort = yes + + # Don't remove messages, if the user is idle (no mouse or keyboard input) + # for longer than idle_threshold seconds. + # Set to 0 to disable. + # A client can set the 'transient' hint to bypass this. See the rules + # section for how to disable this if necessary + # idle_threshold = 120 + + ### Text ### + + font = MesloLGS NF 8 + + # The spacing between lines. If the height is smaller than the + # font height, it will get raised to the font height. + line_height = 0 + + # Possible values are: + # full: Allow a small subset of html markup in notifications: + # <b>bold</b> + # <i>italic</i> + # <s>strikethrough</s> + # <u>underline</u> + # + # For a complete reference see + # <https://docs.gtk.org/Pango/pango_markup.html>. + # + # strip: This setting is provided for compatibility with some broken + # clients that send markup even though it's not enabled on the + # server. Dunst will try to strip the markup but the parsing is + # simplistic so using this option outside of matching rules for + # specific applications *IS GREATLY DISCOURAGED*. + # + # no: Disable markup parsing, incoming notifications will be treated as + # plain text. Dunst will not advertise that it has the body-markup + # capability if this is set as a global setting. + # + # It's important to note that markup inside the format option will be parsed + # regardless of what this is set to. + markup = full + + # The format of the message. Possible variables are: + # %a appname + # %s summary + # %b body + # %i iconname (including its path) + # %I iconname (without its path) + # %p progress value if set ([ 0%] to [100%]) or nothing + # %n progress value if set without any extra characters + # %% Literal % + # Markup is allowed + format = "<b>%a\n%s</b>\n%b" + + # Alignment of message text. + # Possible values are "left", "center" and "right". + alignment = left + + # Vertical alignment of message text and icon. + # Possible values are "top", "center" and "bottom". + vertical_alignment = center + + # Show age of message if message is older than show_age_threshold + # seconds. + # Set to -1 to disable. + show_age_threshold = 60 + + # Specify where to make an ellipsis in long lines. + # Possible values are "start", "middle" and "end". + ellipsize = middle + + # Ignore newlines '\n' in notifications. + ignore_newline = no + + # Stack together notifications with the same content + stack_duplicates = true + + # Hide the count of stacked notifications with the same content + hide_duplicate_count = false + + # Display indicators for URLs (U) and actions (A). + show_indicators = yes + + ### Icons ### + + # Recursive icon lookup. You can set a single theme, instead of having to + # define all lookup paths. + enable_recursive_icon_lookup = true + + # Set icon theme (only used for recursive icon lookup) + icon_theme = Adwaita + # You can also set multiple icon themes, with the leftmost one being used first. + # icon_theme = "Adwaita, breeze" + + # Align icons left/right/top/off + icon_position = left + + # Scale small icons up to this size, set to 0 to disable. Helpful + # for e.g. small files or high-dpi screens. In case of conflict, + # max_icon_size takes precedence over this. + min_icon_size = 32 + + # Scale larger icons down to this size, set to 0 to disable + max_icon_size = 64 + + # Paths to default icons (only neccesary when not using recursive icon lookup) + icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ + + ### History ### + + # Should a notification popped up from history be sticky or timeout + # as if it would normally do. + sticky_history = yes + + # Maximum amount of notifications kept in history + history_length = 20 + + ### Misc/Advanced ### + + # dmenu path. + dmenu = /usr/bin/dmenu -p dunst: + + # Browser for opening urls in context menu. + browser = /usr/bin/xdg-open + + # Always run rule-defined scripts, even if the notification is suppressed + always_run_script = true + + # Define the title of the windows spawned by dunst + title = Dunst + + # Define the class of the windows spawned by dunst + class = Dunst + + # Define the corner radius of the notification window + # in pixel size. If the radius is 0, you have no rounded + # corners. + # The radius will be automatically lowered if it exceeds half of the + # notification height to avoid clipping text and/or icons. + corner_radius = 0 + + # Ignore the dbus closeNotification message. + # Useful to enforce the timeout set by dunst configuration. Without this + # parameter, an application may close the notification sent before the + # user defined timeout. + ignore_dbusclose = false + + ### Wayland ### + # These settings are Wayland-specific. They have no effect when using X11 + + # Uncomment this if you want to let notications appear under fullscreen + # applications (default: overlay) + # layer = top + + # Set this to true to use X11 output on Wayland. + force_xwayland = false + + ### Legacy + + # Use the Xinerama extension instead of RandR for multi-monitor support. + # This setting is provided for compatibility with older nVidia drivers that + # do not support RandR and using it on systems that support RandR is highly + # discouraged. + # + # By enabling this setting dunst will not be able to detect when a monitor + # is connected or disconnected which might break follow mode if the screen + # layout changes. + force_xinerama = false + + ### mouse + + # Defines list of actions for each mouse event + # Possible values are: + # * none: Don't do anything. + # * do_action: Invoke the action determined by the action_name rule. If there is no + # such action, open the context menu. + # * open_url: If the notification has exactly one url, open it. If there are multiple + # ones, open the context menu. + # * close_current: Close current notification. + # * close_all: Close all notifications. + # * context: Open context menu for the notification. + # * context_all: Open context menu for all notifications. + # These values can be strung together for each mouse event, and + # will be executed in sequence. + mouse_left_click = do_action + mouse_middle_click = close_current + mouse_right_click = close_all + +# Experimental features that may or may not work correctly. Do not expect them +# to have a consistent behaviour across releases. +[experimental] + # Calculate the dpi to use on a per-monitor basis. + # If this setting is enabled the Xft.dpi value will be ignored and instead + # dunst will attempt to calculate an appropriate dpi value for each monitor + # using the resolution and physical size. This might be useful in setups + # where there are multiple screens with very different dpi values. + per_monitor_dpi = false + + +[urgency_low] + # IMPORTANT: colors have to be defined in quotation marks. + # Otherwise the "#" and following would be interpreted as a comment. + background = "#1d2021" + foreground = "#ebdbb2" + timeout = 10 + # Icon for notifications with low urgency, uncomment to enable + #default_icon = /path/to/icon + +[urgency_normal] + background = "#1d2021" + foreground = "#ebdbb2" + timeout = 10 + # Icon for notifications with normal urgency, uncomment to enable + #default_icon = /path/to/icon + +[urgency_critical] + background = "#1d2021" + foreground = "#ebdbb2" + frame_color = "#cc241d" + timeout = 0 + # Icon for notifications with critical urgency, uncomment to enable + #default_icon = /path/to/icon + +# Every section that isn't one of the above is interpreted as a rules to +# override settings for certain messages. +# +# Messages can be matched by +# appname (discouraged, see desktop_entry) +# body +# category +# desktop_entry +# icon +# match_transient +# msg_urgency +# stack_tag +# summary +# +# and you can override the +# background +# foreground +# format +# frame_color +# fullscreen +# new_icon +# set_stack_tag +# set_transient +# set_category +# timeout +# urgency +# icon_position +# skip_display +# history_ignore +# action_name +# word_wrap +# ellipsize +# alignment +# hide_text +# +# Shell-like globbing will get expanded. +# +# Instead of the appname filter, it's recommended to use the desktop_entry filter. +# GLib based applications export their desktop-entry name. In comparison to the appname, +# the desktop-entry won't get localized. +# +# SCRIPTING +# You can specify a script that gets run when the rule matches by +# setting the "script" option. +# The script will be called as follows: +# script appname summary body icon urgency +# where urgency can be "LOW", "NORMAL" or "CRITICAL". +# +# NOTE: It might be helpful to run dunst -print in a terminal in order +# to find fitting options for rules. + +# Disable the transient hint so that idle_threshold cannot be bypassed from the +# client +#[transient_disable] +# match_transient = yes +# set_transient = no +# +# Make the handling of transient notifications more strict by making them not +# be placed in history. +#[transient_history_ignore] +# match_transient = yes +# history_ignore = yes + +# fullscreen values +# show: show the notifications, regardless if there is a fullscreen window opened +# delay: displays the new notification, if there is no fullscreen window active +# If the notification is already drawn, it won't get undrawn. +# pushback: same as delay, but when switching into fullscreen, the notification will get +# withdrawn from screen again and will get delayed like a new notification +#[fullscreen_delay_everything] +# fullscreen = delay +#[fullscreen_show_critical] +# msg_urgency = critical +# fullscreen = show + +#[espeak] +# summary = "*" +# script = dunst_espeak.sh + +#[script-test] +# summary = "*script*" +# script = dunst_test.sh + +#[ignore] +# # This notification will not be displayed +# summary = "foobar" +# skip_display = true + +#[history-ignore] +# # This notification will not be saved in history +# summary = "foobar" +# history_ignore = yes + +#[skip-display] +# # This notification will not be displayed, but will be included in the history +# summary = "foobar" +# skip_display = yes + +#[signed_on] +# appname = Pidgin +# summary = "*signed on*" +# urgency = low +# +#[signed_off] +# appname = Pidgin +# summary = *signed off* +# urgency = low +# +#[says] +# appname = Pidgin +# summary = *says* +# urgency = critical +# +#[twitter] +# appname = Pidgin +# summary = *twitter.com* +# urgency = normal +# +#[stack-volumes] +# appname = "some_volume_notifiers" +# set_stack_tag = "volume" +# +# vim: ft=cfg + diff --git a/src/.config/fontconfig/fonts.conf b/src/.config/fontconfig/fonts.conf new file mode 100644 index 0000000..9ed297a --- /dev/null +++ b/src/.config/fontconfig/fonts.conf @@ -0,0 +1,11 @@ +<?xml version="1.0"?> +<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> +<fontconfig> +<alias> + <family>MesloLGS NF</family> + <prefer> + <family>MesloLGS NF</family> + <family>Noto Color Emoji</family> + </prefer> + </alias> +</fontconfig> diff --git a/src/.config/hypr/hyprlandd.conf b/src/.config/hypr/hyprlandd.conf new file mode 100644 index 0000000..9eb249f --- /dev/null +++ b/src/.config/hypr/hyprlandd.conf @@ -0,0 +1,193 @@ +# This is an example Hyprland config file. +# +# Refer to the wiki for more information. + +# +# Please note not all available settings / options are set here. +# For a full list, see the wiki +# + +# See https://wiki.hyprland.org/Configuring/Monitors/ +monitor=,preferred,auto,1 + + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more + +# Execute your favorite apps at launch +exec-once = swaybg -i /home/aaditya/.wallpapers/sekiro.jpg +exec-once = waybar -c /home/aaditya/.config/waybar/config +exec-once = dunst & +# Source a file (multi-file configs) +# source = ~/.config/hypr/myColors.conf + +# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ +input { + kb_layout = us + kb_variant = + kb_model = + kb_options = + kb_rules = + + follow_mouse = 2 + + touchpad { + natural_scroll = yes + } + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. +} + +general { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + gaps_in = 5 + gaps_out = 20 + border_size = 4 + col.active_border = rgb(ebdbb2) + col.inactive_border = rgb(0c1115) + + layout = dwindle +} + + +decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + rounding = 5 + blur = yes + blur_size = 3 + blur_passes = 1 + blur_new_optimizations = on + + drop_shadow = no + shadow_range = 4 + shadow_render_power = 3 + col.shadow = rgba(1a1a1aee) +} + + +animations { + enabled = no + + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 1, myBezier + animation = windowsOut, 1, 1, default, popin 80% + animation = border, 1, 2, default + animation = fade, 1, 2, default + animation = workspaces, 1, 2, default +} + +dwindle { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = yes # you probably want this + + force_split = 2 +} + +master { + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + new_is_master = true +} + +gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = on +} + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more +device:epic mouse V1 { + sensitivity = -0.5 +} + +# Example windowrule v1 +# windowrule = float, ^(kitty)$ +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more +$mainMod = SUPER + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, Return, exec, alacritty +bind = $mainMod, W, killactive, +bind = $mainMod, M, exit, +bind = $mainMod, V, togglefloating, +bind = $mainMod, F, fullscreen, +bind = $mainMod, C, cyclenext, +bind = SUPER_SHIFT, C, cyclenext, prev +bind = $mainMod, Space, exec, /home/aaditya/.config/polybar/scripts/launcher.sh & +bind = $mainMod, A, bringactivetotop, +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, E, togglesplit, # dwindle + +# Move focus with mainMod + arrow keys +bind = $mainMod, h, movefocus, l +bind = $mainMod, l, movefocus, r +bind = $mainMod, k, movefocus, u +bind = $mainMod, j, movefocus, d + +bind = SUPER_SHIFT, l, swapnext +bind = SUPER_SHIFT, h, swapnext, prev + +# Switch workspaces with mainMod + [0-9] +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1 +bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2 +bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3 +bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4 +bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5 + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + + +#Volume controls + +bind = ,XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5% +bind = ,XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle +bind = ,XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5% + + +#Player + +bind = ,XF86AudioPlay, exec, playerctl -a play-pause +bind = ,XF86AudioPrev, exec, playerctl -a previous +bind = ,XF86AudioNext, exec, playerctl -a next + + +#Brightness + +bind = ,XF86MonBrightnessUp, exec, brightnessctl set +10% +bind = ,XF86MonBrightnessDown, exec, brightnessctl set 10-% + + +#Resizing + +bind = $mainMod ALT, H, resizeactive, -50 0 +bind = $mainMod ALT, J, resizeactive, 0 50 +bind = $mainMod ALT, K, resizeactive, 0 -50 +bind = $mainMod ALT, L, resizeactive, 50 0 + + +#Screenshots + +bind = $mainMod SHIFT, S, exec, grim ~/Seafile/Files/Screenshots/$(date +%s).png + diff --git a/src/.config/i3lock/lock.sh b/src/.config/i3lock/lock.sh new file mode 100755 index 0000000..51be0f7 --- /dev/null +++ b/src/.config/i3lock/lock.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +BLANK='#1d2021' +CLEAR='#1d2021' +DEFAULT='#282828' +TEXT='#ebdbb2' +WRONG='#fb4934' +VERIFYING='#83a598' + +i3lock \ + --insidever-color=$CLEAR \ + --ringver-color=$VERIFYING \ + \ + --insidewrong-color=$CLEAR \ + --ringwrong-color=$WRONG \ + \ + --inside-color=$BLANK \ + --ring-color=$DEFAULT \ + --line-color=$BLANK \ + --separator-color=$DEFAULT \ + \ + --verif-color=$TEXT \ + --verif-text="Verifying" \ + --wrong-color=$TEXT \ + --time-color=$TEXT \ + --date-color=$TEXT \ + --layout-color=$TEXT \ + --keyhl-color=$WRONG \ + --bshl-color=$WRONG \ + \ + --screen 1 \ + --blur 5 \ + --clock \ + --indicator \ + --time-str="%r" \ + --date-str="%A, %d-%m-%Y" \ + --time-font="MesloLGS NF" \ + --date-font="MesloLGS NF" \ + --time-size=24 \ + diff --git a/src/.config/nvim/init.vim b/src/.config/nvim/init.vim new file mode 100644 index 0000000..c891ba1 --- /dev/null +++ b/src/.config/nvim/init.vim @@ -0,0 +1,4 @@ +set runtimepath^=~/.vim runtimepath+=~/.vim/after +let &packpath=&runtimepath +source ~/.vimrc + diff --git a/src/.config/picom/picom.conf b/src/.config/picom/picom.conf new file mode 100644 index 0000000..239a456 --- /dev/null +++ b/src/.config/picom/picom.conf @@ -0,0 +1,475 @@ +################################# +# Corners # +################################# +# requires: https://github.com/sdhand/compton +corner-radius = 10.0; +rounded-corners-exclude = [ + "window_type = 'tooltip'", + "window_type = 'popup_menu'", + "window_type = 'menu'", + #"class_g = 'URxvt'", + "class_g = 'Polybar'", + "class_g = 'Wine'", + #"class_g = 'Rofi'", +]; +round-borders = 1; +round-borders-exclude = [ + #"class_g = 'TelegramDesktop'", +]; + +# Specify a list of border width rules, in the format `PIXELS:PATTERN`, +# Note we don't make any guarantee about possible conflicts with the +# border_width set by the window manager. +# +# example: +# round-borders-rule = [ "2:class_g = 'URxvt'" ]; +# +round-borders-rule = [ + #"3:class_g = 'URxvt'", +]; + +################################# +# Shadows # +################################# + + +# Enabled client-side shadows on windows. Note desktop windows +# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow, +# unless explicitly requested using the wintypes option. +# +shadow = false +# shadow = true; + +# The blur radius for shadows, in pixels. (defaults to 12) +# shadow-radius = 12 +shadow-radius = 0; + +# The opacity of shadows. (0.0 - 1.0, defaults to 0.75) +# shadow-opacity = .75 + +# The left offset for shadows, in pixels. (defaults to -15) +# shadow-offset-x = -15 +shadow-offset-x = 0; + +# The top offset for shadows, in pixels. (defaults to -15) +# shadow-offset-y = -15 +shadow-offset-y = 0; + +# Avoid drawing shadows on dock/panel windows. This option is deprecated, +# you should use the *wintypes* option in your config file instead. +# +# no-dock-shadow = false + +# Don't draw shadows on drag-and-drop windows. This option is deprecated, +# you should use the *wintypes* option in your config file instead. +# +# no-dnd-shadow = false + +# Red color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-red = 0 + +# Green color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-green = 0 + +# Blue color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-blue = 0 + +# Do not paint shadows on shaped windows. Note shaped windows +# here means windows setting its shape through X Shape extension. +# Those using ARGB background is beyond our control. +# Deprecated, use +# shadow-exclude = 'bounding_shaped' +# or +# shadow-exclude = 'bounding_shaped && !rounded_corners' +# instead. +# +# shadow-ignore-shaped = '' + +# Specify a list of conditions of windows that should have no shadow. +# +# examples: +# shadow-exclude = "n:e:Notification"; +# +# shadow-exclude = [] +shadow-exclude = [ + "name = 'Notification'", + "class_g ?= 'Notify-osd'", + "class_g = 'Cairo-clock'", + "class_g = 'Polybar'", + "_GTK_FRAME_EXTENTS@:c" +]; + +# Specify a X geometry that describes the region in which shadow should not +# be painted in, such as a dock window region. Use +# shadow-exclude-reg = "x10+0+0" +# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on. +# +# shadow-exclude-reg = "" + +# Crop shadow of a window fully on a particular Xinerama screen to the screen. +# xinerama-shadow-crop = false + + +################################# +# Fading # +################################# + + +# Fade windows in/out when opening/closing and when opacity changes, +# unless no-fading-openclose is used. +fading = true; +# fading = true; + +# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028) +# fade-in-step = 0.028 +fade-in-step = 0.03; + +# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03) +# fade-out-step = 0.03 +fade-out-step = 0.03; + +# The time between steps in fade step, in milliseconds. (> 0, defaults to 10) +# fade-delta = 10 + +# Specify a list of conditions of windows that should not be faded. +# don't need this, we disable fading for all normal windows with wintypes: {} +fade-exclude = [ +] + +# Do not fade on window open/close. +# no-fading-openclose = false + +# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc. +# no-fading-destroyed-argb = false + + +################################# +# Transparency / Opacity # +################################# + + +# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0) +inactive-opacity = 0.95 +# inactive-opacity = 0.8; + +# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default) +# frame-opacity = 1.0 +# frame-opacity = 0.7; + +# Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0) +# menu-opacity = 1.0 + +# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows. +# inactive-opacity-override = true +inactive-opacity-override = false; +mark-ovredir-focused = false; + +# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0) +active-opacity = 0.97 + +# Dim inactive windows. (0.0 - 1.0, defaults to 0.0) +# inactive-dim = 0.0 + +# Specify a list of conditions of windows that should always be considered focused. +# focus-exclude = [] + +# Use fixed inactive dim value, instead of adjusting according to window opacity. +inactive-dim-fixed = 1; + +# Specify a list of opacity rules, in the format `PERCENT:PATTERN`, +# like `50:name *= "Firefox"`. picom-trans is recommended over this. +# Note we don't make any guarantee about possible conflicts with other +# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows. +# example: + opacity-rule = [ "100:class_g = 'firefox'", "80:class_g = 'Polybar'", "100:class_g = 'steam'", "100:class_g = 'wine'", ]; +# +# opacity-rule = [] + + +################################# +# Background-Blurring # +################################# + + +# Parameters for background blurring, see the *BLUR* section for more information. +# blur-method = +# blur-size = 12 +# +# blur-deviation = false + +# Blur background of semi-transparent / ARGB windows. +# Bad in performance, with driver-dependent behavior. +# The name of the switch may change without prior notifications. +# +# blur-background = true; + +# Blur background of windows when the window frame is not opaque. +# Implies: +# blur-background +# Bad in performance, with driver-dependent behavior. The name may change. +# +# blur-background-frame = false; + + +# Use fixed blur strength rather than adjusting according to window opacity. blur-background-fixed = false; + +# Specify the blur convolution kernel, with the following format: +# example: +# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"; +# +# blur-kern = '' +# blur-kern = "3x3box"; + +blur: { + # requires: https://github.com/ibhagwan/picom + method = "dual_kawase"; + #method = "kernel"; + strength = 12; + # deviation = 1.0; + # kernel = "11x11gaussian"; + background = false; + background-frame = false; + background-fixed = false; + kern = "3x3box"; +} + +# Exclude conditions for background blur. +blur-background-exclude = [ + #"window_type = 'dock'", + #"window_type = 'desktop'", + #"class_g = 'URxvt'", + "class_g = 'firefox'", + "class_g = 'polybar'", + # + # prevents picom from blurring the background + # when taking selection screenshot with `main` + # https://github.com/naelstrof/maim/issues/130 + "_GTK_FRAME_EXTENTS@:c" +] ; + + +################################# +# General Settings # +################################# + +# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers. +# daemon = false + +# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`. +# `xrender` is the default one. +# +experimental-backends = true; +backend = "glx"; +#backend = "xrender"; + + +# Enable/disable VSync. +vsync = false +# vsync = true + +# Enable remote control via D-Bus. See the *D-BUS API* section below for more details. +# dbus = false + +# Try to detect WM windows (a non-override-redirect window with no +# child that has 'WM_STATE') and mark them as active. +# +# mark-wmwin-focused = false +mark-wmwin-focused = true; + +# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused. +# mark-ovredir-focused = false +mark-ovredir-focused = false; + +# Try to detect windows with rounded corners and don't consider them +# shaped windows. The accuracy is not very high, unfortunately. +# +# detect-rounded-corners = false +detect-rounded-corners = true; + +# Detect '_NET_WM_OPACITY' on client windows, useful for window managers +# not passing '_NET_WM_OPACITY' of client windows to frame windows. +# +# detect-client-opacity = false +detect-client-opacity = true; + +# Specify refresh rate of the screen. If not specified or 0, picom will +# try detecting this with X RandR extension. +# +# Limit picom to repaint at most once every 1 / 'refresh_rate' second to + +# boost performance. This should not be used with +# vsync drm/opengl/opengl-oml +# as they essentially does sw-opti's job already, +# unless you wish to specify a lower refresh rate than the actual value. +# +# sw-opti = + +# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window, +# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy, +# provided that the WM supports it. +# +# use-ewmh-active-win = false + +# Unredirect all windows if a full-screen opaque window is detected, +# to maximize performance for full-screen windows. Known to cause flickering +# when redirecting/unredirecting windows. paint-on-overlay may make the flickering less obvious. +# +# unredir-if-possible = false + +# Delay before unredirecting the window, in milliseconds. Defaults to 0. +# unredir-if-possible-delay = 0 + +# Conditions of windows that shouldn't be considered full-screen for unredirecting screen. +# unredir-if-possible-exclude = [] + +# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows +# in the same group focused at the same time. +# +# detect-transient = false +detect-transient = true + +# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same +# group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if +# detect-transient is enabled, too. +# +# detect-client-leader = false +detect-client-leader = true + +# Resize damaged region by a specific number of pixels. +# A positive value enlarges it while a negative one shrinks it. +# If the value is positive, those additional pixels will not be actually painted +# to screen, only used in blur calculation, and such. (Due to technical limitations, +# with use-damage, those pixels will still be incorrectly painted to screen.) +# Primarily used to fix the line corruption issues of blur, +# in which case you should use the blur radius value here +# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`, +# with a 5x5 one you use `--resize-damage 2`, and so on). +# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly. +# +# resize-damage = 1 + +# Specify a list of conditions of windows that should be painted with inverted color. +# Resource-hogging, and is not well tested. +# +# invert-color-include = [] + +# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer. +# Might cause incorrect opacity when rendering transparent content (but never +# practically happened) and may not work with blur-background. +# My tests show a 15% performance boost. Recommended. +# +# glx-no-stencil = false + +# GLX backend: Avoid rebinding pixmap on window damage. +# Probably could improve performance on rapid window content changes, +# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.). +# Recommended if it works. +# +# glx-no-rebind-pixmap = false + +# Disable the use of damage information. +# This cause the whole screen to be redrawn everytime, instead of the part of the screen +# has actually changed. Potentially degrades the performance, but might fix some artifacts. +# The opposing option is use-damage +# +# no-use-damage = false +use-damage = true + +# Use X Sync fence to sync clients' draw calls, to make sure all draw +# calls are finished before picom starts drawing. Needed on nvidia-drivers +# with GLX backend for some users. +# +# xrender-sync-fence = false + +# GLX backend: Use specified GLSL fragment shader for rendering window contents. +# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl` +# in the source tree for examples. +# +# glx-fshader-win = '' + +# Force all windows to be painted with blending. Useful if you +# have a glx-fshader-win that could turn opaque pixels transparent. +# +# force-win-blend = false + +# Do not use EWMH to detect fullscreen windows. +# Reverts to checking if a window is fullscreen based only on its size and coordinates. +# +# no-ewmh-fullscreen = false + +# Dimming bright windows so their brightness doesn't exceed this set value. +# Brightness of a window is estimated by averaging all pixels in the window, +# so this could comes with a performance hit. +# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0) +# +# max-brightness = 1.0 + +# Make transparent windows clip other windows like non-transparent windows do, +# instead of blending on top of them. +# +transparent-clipping = false + +# Set the log level. Possible values are: +# "trace", "debug", "info", "warn", "error" +# in increasing level of importance. Case doesn't matter. +# If using the "TRACE" log level, it's better to log into a file +# using *--log-file*, since it can generate a huge stream of logs. +# +# log-level = "debug" +log-level = "info"; + +# Set the log file. +# If *--log-file* is never specified, logs will be written to stderr. +# Otherwise, logs will to written to the given file, though some of the early +# logs might still be written to the stderr. +# When setting this option from the config file, it is recommended to use an absolute path. +# +# log-file = '/path/to/your/log/file' + +# Show all X errors (for debugging) +# show-all-xerrors = false + +# Write process ID to a file. +# write-pid-path = '/path/to/your/log/file' + +# Window type settings +# +# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard: +# "unknown", "desktop", "dock", "toolbar", "menu", "utility", +# "splash", "dialog", "normal", "dropdown_menu", "popup_menu", +# "tooltip", "notification", "combo", and "dnd". +# +# Following per window-type options are available: :: +# +# fade, shadow::: +# Controls window-type-specific shadow and fade settings. +# +# opacity::: +# Controls default opacity of the window type. +# +# focus::: +# Controls whether the window of this type is to be always considered focused. +# (By default, all window types except "normal" and "dialog" has this on.) +# +# full-shadow::: +# Controls whether shadow is drawn under the parts of the window that you +# normally won't be able to see. Useful when the window has parts of it +# transparent, and you want shadows in those areas. +# +# redir-ignore::: +# Controls whether this type of windows should cause screen to become +# redirected again after been unredirected. If you have unredir-if-possible +# set, and doesn't want certain window to cause unnecessary screen redirection, +# you can set this to `true`. +# +wintypes: +{ + normal = { fade = false; shadow = false;} + #normal = { fade = false; full-shadow = true;} + #tooltip = { fade = true; opacity = 0.75; focus = true; shadow = true; full-shadow = true; } + dock = { shadow = false; } + dnd = { shadow = false; } + popup_menu = { opacity = 0.8; } + dropdown_menu = { opacity = 0.8; } +}; + diff --git a/src/.config/polybar/bars.ini b/src/.config/polybar/bars.ini new file mode 100644 index 0000000..06b6eda --- /dev/null +++ b/src/.config/polybar/bars.ini @@ -0,0 +1,551 @@ +;; ┌────────────────────────────────────────────────────┐ +;; │░█▀█░█▀█░█░░░█░█░█▀▄░█▀█░█▀▄░░░░░░░░░█▀▄░█▀█░█▀▄░█▀▀│ +;; │░█▀▀░█░█░█░░░░█░░█▀▄░█▀█░█▀▄░░░░▀░░░░█▀▄░█▀█░█▀▄░▀▀█│ +;; │░▀░░░▀▀▀░▀▀▀░░▀░░▀▀░░▀░▀░▀░▀░░░░▀░░░░▀▀░░▀░▀░▀░▀░▀▀▀│ +;; │░Created░By░Aditya░Shakya░@adi1090x░░░░░░░░░░░░░░░░░│ +;; └────────────────────────────────────────────────────┘ + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[bar] +fill = ⏽ +empty = ⏽ +indicator = +; Nerd font : , ⏽, 樂 籠 錄 , 雷 絛 + +[module/volume] +type = internal/alsa + +; Soundcard to be used +; Usually in the format hw:# where # is the card number +; You can find the different card numbers in `/proc/asound/cards` +master-soundcard = default +speaker-soundcard = default +headphone-soundcard = default + +; Name of the master, speaker and headphone mixers +; Use the following command to list available mixer controls: +; $ amixer scontrols | sed -nr "s/.*'([[:alnum:]]+)'.*/\1/p" +; If master, speaker or headphone-soundcard isn't the default, +; use `amixer -c # scontrols` instead where # is the number +; of the master, speaker or headphone soundcard respectively +; +; Default: Master +master-mixer = Master + +; Optionally define speaker and headphone mixers +; Default: none +;;speaker-mixer = Speaker +; Default: none +;;headphone-mixer = Headphone + +; NOTE: This is required if headphone_mixer is defined +; Use the following command to list available device controls +; $ amixer controls | sed -r "/CARD/\!d; s/.*=([0-9]+).*name='([^']+)'.*/printf '%3.0f: %s\n' '\1' '\2'/e" | sort +; You may also need to use `amixer -c # controls` as above for the mixer names +; Default: none +;;headphone-id = 9 + +; Use volume mapping (similar to amixer -M and alsamixer), where the increase in volume is linear to the ear +; Default: false +;;mapped = true + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +interval = 5 + +; Available tags: +; <label-volume> (default) +; <ramp-volume> +; <bar-volume> +format-volume = <ramp-volume> <bar-volume> + +; Available tags: +; <label-muted> (default) +; <ramp-volume> +; <bar-volume> +format-muted = <label-muted> +format-muted-prefix = +format-muted-prefix-foreground = ${color.red} + +; Available tokens: +; %percentage% (default) +label-volume = %percentage%% + +; Available tokens: +; %percentage% (default +label-muted = " Muted" +label-muted-foreground = ${color.sep} + +; Only applies if <ramp-volume> is used +ramp-volume-0 = +ramp-volume-1 = +ramp-volume-2 = +ramp-volume-foreground = ${color.blue} + +; Only applies if <bar-volume> is used +bar-volume-format = "%fill%%indicator%%empty%" +bar-volume-width = 11 +bar-volume-gradient = false + +bar-volume-indicator = ${bar.indicator} +bar-volume-indicator-foreground = ${color.foreground} +bar-volume-indicator-font = 2 + +bar-volume-fill = ${bar.fill} +bar-volume-fill-font = 2 +bar-volume-foreground-0 = ${color.green} +bar-volume-foreground-1 = ${color.green} +bar-volume-foreground-2 = ${color.yellow} +bar-volume-foreground-3 = ${color.yellow} +bar-volume-foreground-4 = ${color.red} + +bar-volume-empty = ${bar.empty} +bar-volume-empty-font = 2 +bar-volume-empty-foreground = ${color.sep} + +; If defined, it will replace <ramp-volume> when +; headphones are plugged in to `headphone_control_numid` +; If undefined, <ramp-volume> will be used for both +; Only applies if <ramp-volume> is used +ramp-headphones-0 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/brightness] +;type = internal/xbacklight +type = internal/backlight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +;card = intel_backlight +card = amdgpu_bl0 + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <ramp> <bar> + +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-foreground = ${color.lime} + +; Only applies if <bar> is used +bar-format = "%fill%%indicator%%empty%" +bar-width = 11 +bar-gradient = false + +bar-indicator = ${bar.indicator} +bar-indicator-foreground = ${color.foreground} +bar-indicator-font = 2 + +bar-fill = ${bar.fill} +bar-fill-font = 2 +bar-foreground-0 = ${color.green} +bar-foreground-1 = ${color.green} +bar-foreground-2 = ${color.yellow} +bar-foreground-3 = ${color.yellow} +bar-foreground-4 = ${color.red} + +bar-empty = ${bar.empty} +bar-empty-font = 2 +bar-empty-foreground = ${color.sep} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/battery_bar] +type = internal/battery + +; This is useful in case the battery never reports 100% charge +full-at = 99 + +; Use the following command to list batteries and adapters: +; $ ls -1 /sys/class/power_supply/ +battery = BAT1 +adapter = ACAD + +; If an inotify event haven't been reported in this many +; seconds, manually poll for new values. +; +; Needed as a fallback for systems that don't report events +; on sysfs/procfs. +; +; Disable polling by setting the interval to 0. +; +; Default: 5 +poll-interval = 2 + +; see "man date" for details on how to format the time string +; NOTE: if you want to use syntax tags here you need to use %%{...} +; Default: %H:%M:%S +time-format = %H:%M + +; Available tags: +; <label-charging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-charging> +format-charging = <bar-capacity> +format-charging-prefix = "" +format-charging-prefix-foreground = ${color.green} + +; Available tags: +; <label-discharging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-discharging> +format-discharging = <bar-capacity> +format-discharging-prefix = "" +format-discharging-prefix-foreground = ${color.pink} + +; Available tags: +; <label-full> (default) +; <bar-capacity> +; <ramp-capacity> +format-full = <label-full> +format-full-prefix = "" +format-full-prefix-foreground = ${color.red} + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current charge rate in watts) + +label-charging = %percentage%% + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current discharge rate in watts) +label-discharging = %percentage%% + +; Available tokens: +; %percentage% (default) +label-full = Full + +; Only applies if <bar-capacity> is used +bar-capacity-format = " %fill%%indicator%%empty%" +bar-capacity-width = 11 +bar-capacity-gradient = false + +bar-capacity-indicator = ${bar.indicator} +bar-capacity-indicator-font = 2 +bar-capacity-indicator-foreground = ${color.foreground} + +bar-capacity-fill = ${bar.fill} +bar-capacity-fill-font = 2 +bar-capacity-foreground-0 = ${color.green} +bar-capacity-foreground-1 = ${color.green} +bar-capacity-foreground-2 = ${color.yellow} +bar-capacity-foreground-3 = ${color.yellow} +bar-capacity-foreground-4 = ${color.red} + +bar-capacity-empty = ${bar.empty} +bar-capacity-empty-font = 2 +bar-capacity-empty-foreground = ${color.sep} +bar-fill-font = 2 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/cpu_bar] +type = internal/cpu + +; Seconds to sleep between updates +; Default: 1 +interval = 0.5 + +; Available tags: +; <label> (default) +; <bar-load> +; <ramp-load> +; <ramp-coreload> +;;format = <label> <ramp-coreload> +format = <bar-load><label> +format-prefix = +format-prefix-foreground = ${color.teal} + +; Available tokens: +; %percentage% (default) - total cpu load averaged over all cores +; %percentage-sum% - Cumulative load on all cores +; %percentage-cores% - load percentage for each core +; %percentage-core[1-9]% - load percentage for specific core +label = " %percentage%%" + +; Only applies if <bar-load> is used +bar-load-format = " %fill%%indicator%%empty%" +bar-load-width = 11 +bar-load-gradient = false + +bar-load-indicator = ${bar.indicator} +bar-load-indicator-font = 2 +bar-load-indicator-foreground = ${color.foreground} + +bar-load-fill = ${bar.fill} +bar-load-fill-font = 2 +bar-load-foreground-0 = ${color.green} +bar-load-foreground-1 = ${color.green} +bar-load-foreground-2 = ${color.yellow} +bar-load-foreground-3 = ${color.yellow} +bar-load-foreground-4 = ${color.red} + +bar-load-empty = ${bar.empty} +bar-load-empty-font = 2 +bar-load-empty-foreground = ${color.sep} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/filesystem_bar] +type = internal/fs + +; Mountpoints to display +mount-0 = / +;;mount-1 = /home +;;mount-2 = /var + +; Seconds to sleep between updates +; Default: 30 +interval = 30 + +; Display fixed precision values +; Default: false +fixed-values = false + +; Spacing between entries +; Default: 2 +;;spacing = 4 + +; Available tags: +; <label-mounted> (default) +; <bar-free> +; <bar-used> +; <ramp-capacity> +format-mounted = <bar-used><label-mounted> +format-mounted-prefix = +format-mounted-prefix-foreground = ${color.purple} + +; Available tags: +; <label-unmounted> (default) +format-unmounted = <label-unmounted> +format-unmounted-prefix = +format-unmounted-prefix-foreground = ${color.red} + +; Available tokens: +; %mountpoint% +; %type% +; %fsname% +; %percentage_free% +; %percentage_used% +; %total% +; %free% +; %used% +; Default: %mountpoint% %percentage_free%% +label-mounted = " %used%/%total%" + +; Available tokens: +; %mountpoint% +; Default: %mountpoint% is not mounted +label-unmounted = " %mountpoint%: not mounted" + +; Only applies if <bar-used> is used +bar-used-format = " %fill%%indicator%%empty%" +bar-used-width = 11 +bar-used-gradient = false + +bar-used-indicator = ${bar.indicator} +bar-used-indicator-font = 2 +bar-used-indicator-foreground = ${color.foreground} + +bar-used-fill = ${bar.fill} +bar-used-fill-font = 2 +bar-used-foreground-0 = ${color.green} +bar-used-foreground-1 = ${color.green} +bar-used-foreground-2 = ${color.yellow} +bar-used-foreground-3 = ${color.yellow} +bar-used-foreground-4 = ${color.red} + +bar-used-empty = ${bar.empty} +bar-used-empty-font = 2 +bar-used-empty-foreground = ${color.sep} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/memory_bar] +type = internal/memory + +; Seconds to sleep between updates +; Default: 1 +interval = 2 + +; Available tags: +; <label> (default) +; <bar-used> +; <bar-free> +; <ramp-used> +; <ramp-free> +; <bar-swap-used> +; <bar-swap-free> +; <ramp-swap-used> +; <ramp-swap-free> +format = <bar-used><label> +format-prefix = +format-prefix-foreground = ${color.indigo} + +; Available tokens: +; %percentage_used% (default) +; %percentage_free% +; %gb_used% +; %gb_free% +; %gb_total% +; %mb_used% +; %mb_free% +; %mb_total% +; %percentage_swap_used% +; %percentage_swap_free% +; %mb_swap_total% +; %mb_swap_free% +; %mb_swap_used% +; %gb_swap_total% +; %gb_swap_free% +; %gb_swap_used% + +label = " %mb_used%" + +; Only applies if <bar-used> is used +bar-used-format = " %fill%%indicator%%empty%" +bar-used-width = 11 +bar-used-gradient = false + +bar-used-indicator = ${bar.indicator} +bar-used-indicator-font = 2 +bar-used-indicator-foreground = ${color.foreground} + +bar-used-fill = ${bar.fill} +bar-used-fill-font = 2 +bar-used-foreground-0 = ${color.green} +bar-used-foreground-1 = ${color.green} +bar-used-foreground-2 = ${color.yellow} +bar-used-foreground-3 = ${color.yellow} +bar-used-foreground-4 = ${color.red} + +bar-used-empty = ${bar.empty} +bar-used-empty-font = 2 +bar-used-empty-foreground = ${color.sep} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mpd_bar] +type = internal/mpd + +; Host where mpd is running (either ip or domain name) +; Can also be the full path to a unix socket where mpd is running. +;;host = 127.0.0.1 +;;port = 6600 +;;password = mysecretpassword + +; Seconds to sleep between progressbar/song timer sync +; Default: 1 +interval = 1 + +; Available tags: +; <label-song> (default) +; <label-time> +; <bar-progress> +; <toggle> - gets replaced with <icon-(pause|play)> +; <toggle-stop> - gets replaced with <icon-(stop|play)> +; <icon-random> +; <icon-repeat> +; <icon-repeatone> (deprecated) +; <icon-single> - Toggle playing only a single song. Replaces <icon-repeatone> +; <icon-consume> +; <icon-prev> +; <icon-stop> +; <icon-play> +; <icon-pause> +; <icon-next> +; <icon-seekb> +; <icon-seekf> +format-online = <label-song><bar-progress><label-time> +format-online-prefix = +format-online-prefix-foreground = ${color.green} + +;format-playing = ${self.format-online} +;format-paused = ${self.format-online} +;format-stopped = ${self.format-online} + +; Available tags: +; <label-offline> +format-offline = <label-offline> +format-offline-prefix = +format-offline-prefix-foreground = ${color.red} + +; Available tokens: +; %artist% +; %album-artist% +; %album% +; %date% +; %title% +; Default: %artist% - %title% +label-song = " %artist% - %title%" +label-song-maxlen = 25 +label-song-ellipsis = true + +; Available tokens: +; %elapsed% +; %total% +; Default: %elapsed% / %total% +label-time = " %elapsed% / %total%" + +; Available tokens: +; None +label-offline = " Offline" + +; Only applies if <icon-X> is used +icon-play = +icon-pause = +icon-stop = +icon-next = +icon-prev = +icon-seekf = +icon-seekb = +icon-random = +icon-repeat = +icon-repeatone = +icon-single = +icon-consume = + +; Used to display the state of random/repeat/repeatone/single +; Only applies if <icon-[random|repeat|repeatone|single]> is used +toggle-on-foreground = ${color.primary} +toggle-off-foreground = ${color.secondary} + +; Only applies if <bar-progress> is used +bar-progress-format = " %fill%%indicator%%empty%" +bar-progress-width = 11 +bar-progress-gradient = false + +bar-progress-indicator = ${bar.indicator} +bar-progress-indicator-font = 2 +bar-progress-indicator-foreground = ${color.foreground} + +bar-progress-fill = ${bar.fill} +bar-progress-fill-font = 2 +bar-progress-foreground-0 = ${color.green} +bar-progress-foreground-1 = ${color.green} +bar-progress-foreground-2 = ${color.yellow} +bar-progress-foreground-3 = ${color.yellow} +bar-progress-foreground-4 = ${color.red} + +bar-progress-empty = ${bar.empty} +bar-progress-empty-font = 2 +bar-progress-empty-foreground = ${color.sep} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/src/.config/polybar/colors.ini b/src/.config/polybar/colors.ini new file mode 100644 index 0000000..ee5ea30 --- /dev/null +++ b/src/.config/polybar/colors.ini @@ -0,0 +1,36 @@ +;; ┌────────────────────────────────────────────────────────────┐ +;; │░█▀█░█▀█░█░░░█░█░█▀▄░█▀█░█▀▄░░░░░░░░░█▀▀░█▀█░█░░░█▀█░█▀▄░█▀▀│ +;; │░█▀▀░█░█░█░░░░█░░█▀▄░█▀█░█▀▄░░░░▀░░░░█░░░█░█░█░░░█░█░█▀▄░▀▀█│ +;; │░▀░░░▀▀▀░▀▀▀░░▀░░▀▀░░▀░▀░▀░▀░░░░▀░░░░▀▀▀░▀▀▀░▀▀▀░▀▀▀░▀░▀░▀▀▀│ +;; │░Created░By░Aditya░Shakya░@adi1090x░░░░░░░░░░░░░░░░░░░░░░░░░│ +;; └────────────────────────────────────────────────────────────┘ + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[color] + +;; Use pywal.sh in scripts directory to use colors from an image/wallpaper. + +;; main colors +background = #1d2021 +foreground = #EBDBB2 +sep = #505050 + +white = #FFFFFF +black = #000000 +red = #cc241d +pink = #EC407A +purple = #d3869b +blue = #458588 +cyan = #458588 +teal = #689d6a +green = #98971a +lime = #b8bb26 +yellow = #fabd2f +amber = #d79921 +orange = #fe8019 +brown = #32302f +indigo = #d3869b +gray = #928374 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/src/.config/polybar/config.ini b/src/.config/polybar/config.ini new file mode 100644 index 0000000..36383de --- /dev/null +++ b/src/.config/polybar/config.ini @@ -0,0 +1,296 @@ +;; ┌────────────────────────────────────────────────────────────┐ +;; │░█▀█░█▀█░█░░░█░█░█▀▄░█▀█░█▀▄░░░░░░░░░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀│ +;; │░█▀▀░█░█░█░░░░█░░█▀▄░█▀█░█▀▄░░░░▀░░░░█░░░█░█░█░█░█▀▀░░█░░█░█│ +;; │░▀░░░▀▀▀░▀▀▀░░▀░░▀▀░░▀░▀░▀░▀░░░░▀░░░░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀│ +;; │░Created░By░Aditya░Shakya░@adi1090x░░░░░░░░░░░░░░░░░░░░░░░░░│ +;; └────────────────────────────────────────────────────────────┘ + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Global WM Settings + +[global/wm] +; Adjust the _NET_WM_STRUT_PARTIAL top value +; Used for top aligned bars +margin-bottom = 0 + +; Adjust the _NET_WM_STRUT_PARTIAL bottom value +; Used for bottom aligned bars +margin-top = 0 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; File Inclusion +; include an external file, like module file, etc. + +include-file = ~/.config/polybar/bars.ini +include-file = ~/.config/polybar/colors.ini +include-file = ~/.config/polybar/modules.ini +include-file = ~/.config/polybar/user_modules.ini +#include-file = ~/Repos/ampp/ampp.ini + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Bar Settings + +[bar/main] +; Use either of the following command to list available outputs: +; If unspecified, the application will pick the first one it finds. +; $ polybar -m | cut -d ':' -f 1 +; $ xrandr -q | grep " connected" | cut -d ' ' -f1 +monitor = + +; Use the specified monitor as a fallback if the main one is not found. +monitor-fallback = + +; Require the monitor to be in connected state +; XRandR sometimes reports my monitor as being disconnected (when in use) +monitor-strict = false + +; Tell the Window Manager not to configure the window. +; Use this to detach the bar if your WM is locking its size/position. +override-redirect = false + +; Put the bar at the bottom of the screen +bottom = false + +; Prefer fixed center position for the `modules-center` block +; When false, the center position will be based on the size of the other blocks. +fixed-center = true + +; Dimension defined as pixel value (e.g. 35) or percentage (e.g. 50%), +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in a width or height of 50% minus 10 pixels +width = 100% +height = 30 + +; Offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in an offset in the x or y direction +; of 50% minus 10 pixels +offset-x = 0% +offset-y = 0% + +; Background ARGB color (e.g. #f00, #ff992a, #ddff1023) +background = ${color.background} + +; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023) +foreground = ${color.foreground} + +; Background gradient (vertical steps) +; background-[0-9]+ = #aarrggbb +;;background-0 = + +; Value used for drawing rounded corners +; Note: This shouldn't be used together with border-size because the border +; doesn't get rounded +; Individual top/bottom values can be defined using: +; radius-{top,bottom} +radius-top = 0.0 +radius-bottom = 0.0 + +; Under-/overline pixel size and argb color +; Individual values can be defined using: +; {overline,underline}-size +; {overline,underline}-color +line-size = 0 +line-color = ${color.background} + +; Values applied to all borders +; Individual side values can be defined using: +; border-{left,top,right,bottom}-size +; border-{left,top,right,bottom}-color +; The top and bottom borders are added to the bar height, so the effective +; window height is: +; height + border-top-size + border-bottom-size +; Meanwhile the effective window width is defined entirely by the width key and +; the border is placed withing this area. So you effectively only have the +; following horizontal space on the bar: +; width - border-right-size - border-left-size +border-bottom-size = 0 +border-bottom-color = ${color.foreground} + +; Number of spaces to add at the beginning/end of the bar +; Individual side values can be defined using: +; padding-{left,right} +padding = 2 + +; Number of spaces to add before/after each module +; Individual side values can be defined using: +; module-margin-{left,right} +module-margin-left = 1 +module-margin-right = 1 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; Fonts are defined using <font-name>;<vertical-offset> +; Font names are specified using a fontconfig pattern. +; font-0 = NotoSans-Regular:size=8;2 +; font-1 = MaterialIcons:size=10 +; font-2 = Termsynu:size=8;-1 +; font-3 = FontAwesome:size=10 +; See the Fonts wiki page for more details + +font-0 = "MesloLGS NF:size=10;3" +font-1 = "Iosevka Nerd Font:size=10;3" +font-2 = "feather:size=10;3" +font-3 = "Nerd Font:size=10;3" + +; Modules are added to one of the available blocks +; modules-left = cpu ram +; modules-center = xwindow xbacklight +; modules-right = ipc clock + +modules-left = workspaces +modules-center = title +modules-right = memory pulseaudio date + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; The separator will be inserted between the output of each module +separator = + +; Opacity value between 0.0 and 1.0 used on fade in/out +dim-value = 1.0 + +; Value to be used to set the WM_NAME atom +; If the value is empty or undefined, the atom value +; will be created from the following template: polybar-[BAR]_[MONITOR] +; NOTE: The placeholders are not available for custom values +wm-name = + +; Locale used to localize various module data (e.g. date) +; Expects a valid libc locale, for example: sv_SE.UTF-8 +locale = + +; Position of the system tray window +; If empty or undefined, tray support will be disabled +; NOTE: A center aligned tray will cover center aligned modules +; +; Available positions: +; left +; center +; right +; none +tray-position = none + +; If true, the bar will not shift its +; contents when the tray changes +tray-detached = false + +; Tray icon max size +tray-maxsize = 16 + +; Background color for the tray container +; ARGB color (e.g. #f00, #ff992a, #ddff1023) +; By default the tray container will use the bar +; background color. +tray-background = ${color.background} + +; Tray offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +tray-offset-x = 0 +tray-offset-y = 0 + +; Pad the sides of each tray icon +tray-padding = 0 + +; Scale factor for tray clients +tray-scale = 1.0 + +; Restack the bar window and put it above the +; selected window manager's root +; +; Fixes the issue where the bar is being drawn +; on top of fullscreen window's +; +; Currently supported WM's: +; bspwm +; i3 (requires: `override-redirect = true`) +;;wm-restack = + +; Set a DPI values used when rendering text +; This only affects scalable fonts +dpi = 96 + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +enable-ipc = true + +; Fallback click handlers that will be called if +; there's no matching module handler found. +click-left = +click-middle = +click-right = +scroll-up = +scroll-down = +double-click-left = +double-click-middle = +double-click-right = + +; Requires polybar to be built with xcursor support (xcb-util-cursor) +; Possible values are: +; - default : The default pointer as before, can also be an empty string (default) +; - pointer : Typically in the form of a hand +; - ns-resize : Up and down arrows, can be used to indicate scrolling +cursor-click = +cursor-scroll = + +;; WM Workspace Specific + +; bspwm +;;scroll-up = bspwm-desknext +;;scroll-down = bspwm-deskprev +;;scroll-up = bspc desktop -f prev.local +;;scroll-down = bspc desktop -f next.local + +;i3 +;;scroll-up = i3wm-wsnext +;;scroll-down = i3wm-wsprev +;;scroll-up = i3-msg workspace next_on_output +;;scroll-down = i3-msg workspace prev_on_output + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Application Settings + +[settings] +; The throttle settings lets the eventloop swallow up til X events +; if they happen within Y millisecond after first event was received. +; This is done to prevent flood of update event. +; +; For example if 5 modules emit an update event at the same time, we really +; just care about the last one. But if we wait too long for events to swallow +; the bar would appear sluggish so we continue if timeout +; expires or limit is reached. +throttle-output = 5 +throttle-output-for = 10 + +; Time in milliseconds that the input handler will wait between processing events +;throttle-input-for = 30 + +; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events +screenchange-reload = false + +; Compositing operators +; @see: https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t +compositing-background = source +compositing-foreground = over +compositing-overline = over +compositing-underline = over +compositing-border = over + +; Define fallback values used by all module formats +;format-foreground = +;format-background = +;format-underline = +;format-overline = +;format-spacing = +;format-padding = +;format-margin = +;format-offset = + +; Enables pseudo-transparency for the bar +; If set to true the bar can be transparent without a compositor. +pseudo-transparency = false + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/src/.config/polybar/launch.sh b/src/.config/polybar/launch.sh new file mode 100755 index 0000000..68ca15b --- /dev/null +++ b/src/.config/polybar/launch.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +# Add this script to your wm startup file. + +DIR="$HOME/.config/polybar" + +# Terminate already running bar instances +killall -q polybar + +# Wait until the processes have been shut down +while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done + +# Launch the bar +polybar -q main -c "$DIR"/config.ini & diff --git a/src/.config/polybar/modules.ini b/src/.config/polybar/modules.ini new file mode 100644 index 0000000..81c27d6 --- /dev/null +++ b/src/.config/polybar/modules.ini @@ -0,0 +1,1132 @@ +;; ┌────────────────────────────────────────────────────────────────┐ +;; │░█▀█░█▀█░█░░░█░█░█▀▄░█▀█░█▀▄░░░░░░░░░█▄█░█▀█░█▀▄░█░█░█░░░█▀▀░█▀▀│ +;; │░█▀▀░█░█░█░░░░█░░█▀▄░█▀█░█▀▄░░░░▀░░░░█░█░█░█░█░█░█░█░█░░░█▀▀░▀▀█│ +;; │░▀░░░▀▀▀░▀▀▀░░▀░░▀▀░░▀░▀░▀░▀░░░░▀░░░░▀░▀░▀▀▀░▀▀░░▀▀▀░▀▀▀░▀▀▀░▀▀▀│ +;; │░Created░By░Aditya░Shakya░@adi1090x░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│ +;; └────────────────────────────────────────────────────────────────┘ + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/alsa] +type = internal/alsa + +; Soundcard to be used +; Usually in the format hw:# where # is the card number +; You can find the different card numbers in `/proc/asound/cards` +master-soundcard = default +speaker-soundcard = default +headphone-soundcard = default + +; Name of the master, speaker and headphone mixers +; Use the following command to list available mixer controls: +; $ amixer scontrols | sed -nr "s/.*'([[:alnum:]]+)'.*/\1/p" +; If master, speaker or headphone-soundcard isn't the default, +; use `amixer -c # scontrols` instead where # is the number +; of the master, speaker or headphone soundcard respectively +; +; Default: Master +master-mixer = Master + +; Optionally define speaker and headphone mixers +; Default: none +;;speaker-mixer = Speaker +; Default: none +;;headphone-mixer = Headphone + +; NOTE: This is required if headphone_mixer is defined +; Use the following command to list available device controls +; $ amixer controls | sed -r "/CARD/\!d; s/.*=([0-9]+).*name='([^']+)'.*/printf '%3.0f: %s\n' '\1' '\2'/e" | sort +; You may also need to use `amixer -c # controls` as above for the mixer names +; Default: none +;;headphone-id = 9 + +; Use volume mapping (similar to amixer -M and alsamixer), where the increase in volume is linear to the ear +; Default: false +;;mapped = true + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +interval = 5 + +; Available tags: +; <label-volume> (default) +; <ramp-volume> +; <bar-volume> +format-volume = <ramp-volume> <label-volume> + +; Available tags: +; <label-muted> (default) +; <ramp-volume> +; <bar-volume> +format-muted = <label-muted> +format-muted-prefix = +format-muted-prefix-foreground = ${color.red} + +; Available tokens: +; %percentage% (default) +label-volume = %percentage%% + +; Available tokens: +; %percentage% (default +label-muted = " Muted" +label-muted-foreground = ${color.sep} + +; Only applies if <ramp-volume> is used +ramp-volume-0 = +ramp-volume-1 = +ramp-volume-2 = +ramp-volume-foreground = ${color.blue} + +; If defined, it will replace <ramp-volume> when +; headphones are plugged in to `headphone_control_numid` +; If undefined, <ramp-volume> will be used for both +; Only applies if <ramp-volume> is used +ramp-headphones-0 = +ramp-headphones-background = ${color.blue} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/backlight] +;type = internal/xbacklight +type = internal/backlight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +;card = intel_backlight +card = intel_backlight + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <ramp> <label> + +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-foreground = ${color.lime} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/battery] +type = internal/battery + +; This is useful in case the battery never reports 100% charge +full-at = 99 + +; Use the following command to list batteries and adapters: +; $ ls -1 /sys/class/power_supply/ +battery = macsmc-battery +adapter = macsmc-ac + +; If an inotify event haven't been reported in this many +; seconds, manually poll for new values. +; +; Needed as a fallback for systems that don't report events +; on sysfs/procfs. +; +; Disable polling by setting the interval to 0. +; +; Default: 5 +poll-interval = 2 + +; see "man date" for details on how to format the time string +; NOTE: if you want to use syntax tags here you need to use %%{...} +; Default: %H:%M:%S +time-format = %H:%M + +; Available tags: +; <label-charging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-charging> +format-charging = <label-charging> +format-charging-prefix = "" +format-charging-prefix-foreground = ${color.lime} + +; Available tags: +; <label-discharging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-discharging> +format-discharging = <label-discharging> +format-discharging-prefix = "" +format-discharging-prefix-foreground = ${color.lime} + +; Available tags: +; <label-full> (default) +; <bar-capacity> +; <ramp-capacity> +format-full = <label-full> +format-full-prefix = +format-full-prefix-foreground = ${color.lime} + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current charge rate in watts) +label-charging = " %percentage%%" + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current discharge rate in watts) +label-discharging = " %percentage%%" + +; Available tokens: +; %percentage% (default) +label-full = " Full" + +; Only applies if <ramp-capacity> is used +ramp-capacity-0 = +ramp-capacity-1 = +ramp-capacity-2 = +ramp-capacity-3 = +ramp-capacity-4 = + +; Only applies if <bar-capacity> is used +;bar-capacity-width = 10 + +; Only applies if <animation-charging> is used +animation-charging-0 = +animation-charging-1 = + +; Framerate in milliseconds +animation-charging-framerate = 750 + +; Only applies if <animation-discharging> is used +;;animation-discharging-0 = ${battery.anim0} +;;animation-discharging-1 = ${battery.anim1} + +; Framerate in milliseconds +;animation-discharging-framerate = 500 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/bspwm] +type = internal/bspwm + +; Only show workspaces defined on the same output as the bar +; NOTE: The bspwm and XRandR monitor names must match, which they do by default. +; Default: true +pin-workspaces = true + +; Output mode flags after focused state label +; Default: false +inline-mode = false + +; Create click handler used to focus workspace +; Default: true +enable-click = false + +; Create scroll handlers used to cycle workspaces +; Default: true +enable-scroll = false + +; Set the scroll cycle direction +; Default: true +reverse-scroll = false + +; Use fuzzy (partial) matching on labels when assigning +; icons to workspaces +; Example: code;♚ will apply the icon to all workspaces +; containing 'code' in the label +; Default: false +;;fuzzy-match = true + +; ws-icon-[0-9]+ = label;icon +; Note that the label needs to correspond with the bspwm workspace name +;;ws-icon-0 = code;♚ +;;ws-icon-1 = office;♛ +;;ws-icon-2 = graphics;♜ +;;ws-icon-3 = mail;♝ +;;ws-icon-4 = web;♞ +;;ws-icon-default = ♟ + +; Available tags: +; <label-monitor> +; <label-state> - gets replaced with <label-(focused|urgent|occupied|empty)> +; <label-mode> - gets replaced with <label-(monocle|tiled|fullscreen|floating|locked|sticky|private)> +; Default: <label-state> +;;format = <label-state> <label-mode> + +; Available tokens: +; %name% +; Default: %name% +;;label-monitor = %name% + +; If any values for label-dimmed-N are defined, the workspace/mode +; colors will get overridden with those values if the monitor is out of focus +; To only override workspaces in a specific state, use: +; label-dimmed-focused +; label-dimmed-occupied +; label-dimmed-urgent +; label-dimmed-empty +;;label-dimmed-foreground = #555 +;;label-dimmed-underline = ${bar/top.background} +;;label-dimmed-focused-background = #f00 + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +;;label-focused = %icon% +;;label-focused-foreground = #ffffff +;;label-focused-background = #3f3f3f +;;label-focused-underline = #fba922 + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +;;label-occupied = %icon% +;;label-occupied-underline = #555555 + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +;;label-urgent = %icon% +;;label-urgent-foreground = #000000 +;;label-urgent-background = #bd2c40 +;;label-urgent-underline = #9b0a20 + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +;;label-empty = %icon% +;;label-empty-foreground = #55 + +; The following labels will be used to indicate the layout/mode +; for the focused workspace. Requires <label-mode> +; +; Available tokens: +; None +;label-monocle = +;label-tiled = +;label-fullscreen = +;label-floating = +;label-pseudotiled = P +;label-locked = +;label-locked-foreground = #bd2c40 +;label-sticky = +;label-sticky-foreground = #fba922 +;label-private = +;label-private-foreground = #bd2c40 + +; Separator in between workspaces +;;label-separator = | +;;label-separator-padding = 2 +;;label-separator-foreground = #ffb52a + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/cpu] +type = internal/cpu + +; Seconds to sleep between updates +; Default: 1 +interval = 1 + +; Available tags: +; <label> (default) +; <bar-load> +; <ramp-load> +; <ramp-coreload> +;;format = <label> <ramp-coreload> +format = <label> +format-prefix = +format-prefix-foreground = ${color.yellow} + +; Available tokens: +; %percentage% (default) - total cpu load averaged over all cores +; %percentage-sum% - Cumulative load on all cores +; %percentage-cores% - load percentage for each core +; %percentage-core[1-9]% - load percentage for specific core +label = " %percentage%%" + +; Spacing between individual per-core ramps +;;ramp-coreload-spacing = 1 +;;ramp-coreload-0 = ${cpu.load0} +;;ramp-coreload-1 = ${cpu.load1} + +;;ramp-load-0 = ${cpu.load0} +;;ramp-load-1 = ${cpu.load1} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/date] +type = internal/date + +; Seconds to sleep between updates +interval = 1.0 + +; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string +; NOTE: if you want to use syntax tags here you need to use %%{...} +date = %A, %d %B + +; Optional time format +time = %d %b, %I:%M %p + +; if `date-alt` or `time-alt` is defined, clicking +; the module will toggle between formats + +; Available tags: +; <label> (default) +format = <label> +format-prefix = " " +format-prefix-foreground = ${color.cyan} + +; Available tokens: +; %date% +; %time% +; Default: %date% +label = %time% + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/filesystem] +type = internal/fs + +; Mountpoints to display +mount-0 = / +;;mount-1 = /home +;;mount-2 = /var + +; Seconds to sleep between updates +; Default: 30 +interval = 30 + +; Display fixed precision values +; Default: false +fixed-values = true + +; Spacing between entries +; Default: 2 +;;spacing = 4 + +; Available tags: +; <label-mounted> (default) +; <bar-free> +; <bar-used> +; <ramp-capacity> +format-mounted = <label-mounted> +format-mounted-prefix = +format-mounted-prefix-foreground = ${color.orange} + +; Available tags: +; <label-unmounted> (default) +format-unmounted = <label-unmounted> +format-unmounted-prefix = +format-unmounted-prefix-foreground = ${color.red} + +; Available tokens: +; %mountpoint% +; %type% +; %fsname% +; %percentage_free% +; %percentage_used% +; %total% +; %free% +; %used% +; Default: %mountpoint% %percentage_free%% +label-mounted = " %free%" + +; Available tokens: +; %mountpoint% +; Default: %mountpoint% is not mounted +label-unmounted = " %mountpoint%: NA" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;;[module/github] +;;type = internal/github + +; Accessing an access token stored in file +;;token = ${file:/path/to/file/containing/github/access.token} + +; Accessing an access token stored in an environment variable +;;token = ${env:GITHUB_ACCESS_TOKEN} + +; Whether empty notifications should be displayed or not +;;empty-notifications = false + +; Number of seconds in between requests +;;interval = 10 + +; Available tags: +; <label> (default) +;;format = <label> +;;format-prefix = + +; Available tokens: +; %notifications% (default) +; Default: Notifications: %notifications% +;;label = %notifications% + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;;[module/i3] +;;type = internal/i3 + +; Only show workspaces defined on the same output as the bar +; +; Useful if you want to show monitor specific workspaces +; on different bars +; +; Default: false +;;pin-workspaces = true + +; This will split the workspace name on ':' +; Default: false +;;strip-wsnumbers = true + +; Sort the workspaces by index instead of the default +; sorting that groups the workspaces by output +; Default: false +;;index-sort = true + +; Create click handler used to focus workspace +; Default: true +;;enable-click = false + +; Create scroll handlers used to cycle workspaces +; Default: true +;;enable-scroll = false + +; Wrap around when reaching the first/last workspace +; Default: true +;;wrapping-scroll = false + +; Set the scroll cycle direction +; Default: true +;;reverse-scroll = false + +; Use fuzzy (partial) matching on labels when assigning +; icons to workspaces +; Example: code;♚ will apply the icon to all workspaces +; containing 'code' in the label +; Default: false +;;fuzzy-match = true + +; ws-icon-[0-9]+ = label;icon +; NOTE: The label needs to match the name of the i3 workspace +;;ws-icon-0 = 1;♚ +;;ws-icon-1 = 2;♛ +;;ws-icon-2 = 3;♜ +;;ws-icon-3 = 4;♝ +;;ws-icon-4 = 5;♞ +;;ws-icon-default = ♟ +; NOTE: You cannot skip icons, e.g. to get a ws-icon-6 +; you must also define a ws-icon-5. + +; Available tags: +; <label-state> (default) - gets replaced with <label-(focused|unfocused|visible|urgent)> +; <label-mode> (default) +;;format = <label-state> <label-mode> + +; Available tokens: +; %mode% +; Default: %mode% +;;label-mode = %mode% +;;label-mode-padding = 2 +;;label-mode-background = #e60053 + +; Available tokens: +; %name% +; %icon% +; %index% +; %output% +; Default: %icon% %name% +;;label-focused = %index% +;;label-focused-foreground = #ffffff +;;label-focused-background = #3f3f3f +;;label-focused-underline = #fba922 +;;label-focused-padding = 4 + +; Available tokens: +; %name% +; %icon% +; %index% +; %output% +; Default: %icon% %name% +;;label-unfocused = %index% +;;label-unfocused-padding = 4 + +; Available tokens: +; %name% +; %icon% +; %index% +; %output% +; Default: %icon% %name% +;;label-visible = %index% +;;label-visible-underline = #555555 +;;label-visible-padding = 4 + +; Available tokens: +; %name% +; %icon% +; %index% +; %output% +; Default: %icon% %name% +;;label-urgent = %index% +;;label-urgent-foreground = #000000 +;;label-urgent-background = #bd2c40 +;;label-urgent-padding = 4 + +; Separator in between workspaces +;;label-separator = | +;;label-separator-padding = 2 +;;label-separator-foreground = #ffb52a + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/memory] +type = internal/memory + +; Seconds to sleep between updates +; Default: 1 +interval = 1 + +; Available tags: +; <label> (default) +; <bar-used> +; <bar-free> +; <ramp-used> +; <ramp-free> +; <bar-swap-used> +; <bar-swap-free> +; <ramp-swap-used> +; <ramp-swap-free> +format = <label> +format-prefix = +format-prefix-foreground = ${color.blue} + +; Available tokens: +; %percentage_used% (default) +; %percentage_free% +; %gb_used% +; %gb_free% +; %gb_total% +; %mb_used% +; %mb_free% +; %mb_total% +; %percentage_swap_used% +; %percentage_swap_free% +; %mb_swap_total% +; %mb_swap_free% +; %mb_swap_used% +; %gb_swap_total% +; %gb_swap_free% +; %gb_swap_used% + +label = " %mb_used%" + +; Only applies if <ramp-used> is used +;;ramp-used-0 = ${memory.used0} +;;ramp-used-1 = ${memory.used1} +;;ramp-used-2 = ${memory.used2} + +; Only applies if <ramp-free> is used +;;ramp-free-0 = ${memory.free0} +;;ramp-free-1 = ${memory.free1} +;;ramp-free-2 = ${memory.free2} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mpd] +type = internal/mpd + +; Host where mpd is running (either ip or domain name) +; Can also be the full path to a unix socket where mpd is running. +;;host = 127.0.0.1 +;;port = 6600 +;;password = mysecretpassword + +; Seconds to sleep between progressbar/song timer sync +; Default: 1 +interval = 1 + +; Available tags: +; <label-song> (default) +; <label-time> +; <bar-progress> +; <toggle> - gets replaced with <icon-(pause|play)> +; <toggle-stop> - gets replaced with <icon-(stop|play)> +; <icon-random> +; <icon-repeat> +; <icon-repeatone> (deprecated) +; <icon-single> - Toggle playing only a single song. Replaces <icon-repeatone> +; <icon-consume> +; <icon-prev> +; <icon-stop> +; <icon-play> +; <icon-pause> +; <icon-next> +; <icon-seekb> +; <icon-seekf> +format-online = <label-song> <icon-prev> <toggle> <icon-next> +format-online-prefix = +format-online-prefix-foreground = ${color.green} + +;format-playing = ${self.format-online} +;format-paused = ${self.format-online} +;format-stopped = ${self.format-online} + +; Available tags: +; <label-offline> +format-offline = <label-offline> +format-offline-prefix = +format-offline-prefix-foreground = ${color.red} + +; Available tokens: +; %artist% +; %album-artist% +; %album% +; %date% +; %title% +; Default: %artist% - %title% +label-song = " %artist% - %title%" +label-song-maxlen = 25 +label-song-ellipsis = true + +; Available tokens: +; %elapsed% +; %total% +; Default: %elapsed% / %total% +label-time = %elapsed% / %total% +label-time-background = ${color.background-alt} +label-time-padding = 1 + +; Available tokens: +; None +label-offline = " Offline" + +; Only applies if <icon-X> is used +icon-play = +icon-play-foreground = ${color.cyan} +icon-pause = +icon-pause-foreground = ${color.cyan} +icon-stop = +icon-stop-foreground = ${color.red} +icon-next = +icon-next-foreground = ${color.cyan} +icon-prev = +icon-prev-foreground = ${color.cyan} +icon-seekf = +icon-seekb = +icon-random = +icon-repeat = +icon-repeatone = +icon-single = +icon-consume = + +; Used to display the state of random/repeat/repeatone/single +; Only applies if <icon-[random|repeat|repeatone|single]> is used +toggle-on-foreground = ${color.primary} +toggle-off-foreground = ${color.red} + +; Only applies if <bar-progress> is used +;;bar-progress-width = 45 +;;bar-progress-indicator = | +;;bar-progress-fill = ─ +;;bar-progress-empty = ─ + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; If you use both a wired and a wireless network, just add 2 module definitions. For example +[module/wired-network] +type = internal/network +interface = enp6s0 + +[module/wireless-network] +type = internal/network +interface = wlp2s0 + +[module/vpn] +type = internal/network +interface = wg0 +; Seconds to sleep between updates +; Default: 1 +interval = 1.0 + +unknown-as-up = true +; Available tags: +; <label-connected> (default) +; <ramp-signal> +format-connected = <label-connected> +format-connected-prefix = +format-connected-prefix-foreground = ${color.yellow} + +; Available tags: +; <label-disconnected> (default) +format-disconnected = <label-disconnected> +format-disconnected-prefix = +format-disconnected-prefix-foreground = ${color.orange} + +; Available tags: +; <label-connected> (default) +; <label-packetloss> +; <animation-packetloss> +;;format-packetloss = <animation-packetloss> <label-connected> + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: %ifname% %local_ip% +label-connected = "%{A1:networkmanager_dmenu &:} %essid% %{F#6C77BB}" + +; Available tokens: +; %ifname% [wireless+wired] +; Default: (none) +label-disconnected = "%{A1:networkmanager_dmenu &:} Disconnected %{A}" + +; Normal Module +[module/network] +type = internal/network +interface = enp6s0 + +; Seconds to sleep between updates +; Default: 1 +interval = 1.0 + +; Test connectivity every Nth update +; A value of 0 disables the feature +; NOTE: Experimental (needs more testing) +; Default: 0 +;ping-interval = 3 + +; @deprecated: Define min width using token specifiers (%downspeed:min% and %upspeed:min%) +; Minimum output width of upload/download rate +; Default: 3 +;;udspeed-minwidth = 5 + +; Accumulate values from all interfaces +; when querying for up/downspeed rate +; Default: false +accumulate-stats = true + +; Consider an `UNKNOWN` interface state as up. +; Some devices have an unknown state, even when they're running +; Default: false +unknown-as-up = true + +; Available tags: +; <label-connected> (default) +; <ramp-signal> +format-connected = <label-connected> +format-connected-prefix = +format-connected-prefix-foreground = ${color.yellow} + +; Available tags: +; <label-disconnected> (default) +format-disconnected = <label-disconnected> +format-disconnected-prefix = +format-disconnected-prefix-foreground = ${color.orange} + +; Available tags: +; <label-connected> (default) +; <label-packetloss> +; <animation-packetloss> +;;format-packetloss = <animation-packetloss> <label-connected> + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: %ifname% %local_ip% +label-connected = "%{A1:networkmanager_dmenu &:} %ifname% %{F#6C77BB}" + +; Available tokens: +; %ifname% [wireless+wired] +; Default: (none) +label-disconnected = "%{A1:networkmanager_dmenu &:} Offline%{A}" + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: (none) +;label-packetloss = %essid% +;label-packetloss-foreground = #eefafafa + +; Only applies if <ramp-signal> is used +ramp-signal-0 = +ramp-signal-1 = +ramp-signal-2 = + +; Only applies if <animation-packetloss> is used +;;animation-packetloss-0 = ⚠ +;;animation-packetloss-0-foreground = #ffa64c +;;animation-packetloss-1 = ⚠ +;;animation-packetloss-1-foreground = #000000 +; Framerate in milliseconds +;;animation-packetloss-framerate = 500 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/pulseaudio] +type = internal/pulseaudio + +; Sink to be used, if it exists (find using `pacmd list-sinks`, name field) +; If not, uses default sink +sink = alsa_output.pci-0000_03_00.6.analog-stereo + +; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false +; Default: true +use-ui-max = false + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +; interval = 5 +interval = 1.0 + +; Available tags: +; <label-volume> (default) +; <ramp-volume> +; <bar-volume> +format-volume = <ramp-volume> <label-volume> + +; Available tags: +; <label-muted> (default) +; <ramp-volume> +; <bar-volume> +format-muted = <label-muted> +format-muted-prefix = +format-muted-prefix-foreground = ${color.red} + +; Available tokens: +; %percentage% (default) +label-volume = %percentage%% + +; Available tokens: +; %percentage% (default +label-muted = " Muted" +label-muted-foreground = ${color.sep} + +; Only applies if <ramp-volume> is used +ramp-volume-0 = +ramp-volume-1 = +ramp-volume-2 = +ramp-volume-foreground = ${color.blue} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/temperature] +type = internal/temperature + +; Seconds to sleep between updates +; Default: 1 +interval = 0.5 + +; Thermal zone to use +; To list all the zone types, run +; $ for i in /sys/class/thermal/thermal_zone*; do echo "$i: $(<$i/type)"; done +; Default: 0 +thermal-zone = 0 + +; Full path of temperature sysfs path +; Use `sensors` to find preferred temperature source, then run +; $ for i in /sys/class/hwmon/hwmon*/temp*_input; do echo "$(<$(dirname $i)/name): $(cat ${i%_*}_label 2>/dev/null || echo $(basename ${i%_*})) $(readlink -f $i)"; done +; to find path to desired file +; Default reverts to thermal zone setting +;;hwmon-path = /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input +hwmon-path = /sys/devices/pci0000:00/0000:00:01.3/0000:01:00.0/hwmon/hwmon0/temp1_input + +; Threshold temperature to display warning label (in degrees celsius) +; Default: 80 +warn-temperature = 65 + +; Whether or not to show units next to the temperature tokens (°C, °F) +; Default: true +units = true + +; Available tags: +; <label> (default) +; <ramp> +format = <ramp> <label> + +; Available tags: +; <label-warn> (default) +; <ramp> +format-warn = <ramp> <label-warn> + +; Available tokens: +; %temperature% (deprecated) +; %temperature-c% (default, temperature in °C) +; %temperature-f% (temperature in °F) +label = %temperature-c% + +; Available tokens: +; %temperature% (deprecated) +; %temperature-c% (default, temperature in °C) +; %temperature-f% (temperature in °F) +label-warn = "%temperature-c%" +label-warn-foreground = ${color.red} + +; Requires the <ramp> tag +; The icon selection will range from 0 to `warn-temperature` +; with the current temperature as index. +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-foreground = ${color.cyan} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/keyboard] +type = internal/xkeyboard + +; List of indicators to ignore +blacklist-0 = num lock +blacklist-1 = scroll lock + +; Available tags: +; <label-layout> (default) +; <label-indicator> (default) +format = <label-layout> <label-indicator> +format-prefix = +format-prefix-foreground = ${color.blue-gray} + +; Available tokens: +; %layout% +; %name% +; %number% +; Default: %layout% +label-layout = " %layout%" + +; Available tokens: +; %name% +; Default: %name% +label-indicator-on = "%name%" +label-indicator-on-foreground = ${color.cyan} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/title] +type = internal/xwindow + +; Available tags: +; <label> (default) +format = <label> + +; Available tokens: +; %title% +; Default: %title% +label = " %title%" +label-maxlen = 30 + +; Used instead of label when there is no window title +label-empty = "Desktop" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/workspaces] +type = internal/xworkspaces + +; Only show workspaces defined on the same output as the bar +; +; Useful if you want to show monitor specific workspaces +; on different bars +; +; Default: false +pin-workspaces = true + +; Create click handler used to focus desktop +; Default: true +enable-click = true + +; Create scroll handlers used to cycle desktops +; Default: true +enable-scroll = true + +; icon-[0-9]+ = <desktop-name>;<icon> +; NOTE: The desktop name needs to match the name configured by the WM +; You can get a list of the defined desktops using: +; $ xprop -root _NET_DESKTOP_NAMES +icon-0 = I; +icon-1 = II; +icon-2 = III; +icon-3 = IV; +icon-4 = V; +; + +; Available tags: +; <label-monitor> +; <label-state> - gets replaced with <label-(active|urgent|occupied|empty)> +; Default: <label-state> +format = <label-state> + +; Available tokens: +; %name% +; Default: %name% +label-monitor = %name% + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-active = %icon% +label-active-foreground = ${color.purple} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-occupied = %icon% +label-occupied-foreground = ${color.cyan} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-urgent = %icon% +label-urgent-foreground = ${color.red} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-empty = %icon% +label-empty-foreground = ${color.foreground} + +label-active-padding = 1 +label-urgent-padding = 1 +label-occupied-padding = 1 +label-empty-padding = 1 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/src/.config/polybar/preview.ini b/src/.config/polybar/preview.ini new file mode 100644 index 0000000..63d9a6f --- /dev/null +++ b/src/.config/polybar/preview.ini @@ -0,0 +1,310 @@ +;; ┌────────────────────────────────────────────────────────────────────┐ +;; │░█▀█░█▀█░█░░░█░█░█▀▄░█▀█░█▀▄░░░░░░░░░█▀█░█▀▄░█▀▀░█░█░▀█▀░█▀▀░█░█░█▀▀│ +;; │░█▀▀░█░█░█░░░░█░░█▀▄░█▀█░█▀▄░░░░▀░░░░█▀▀░█▀▄░█▀▀░▀▄▀░░█░░█▀▀░█▄█░▀▀█│ +;; │░▀░░░▀▀▀░▀▀▀░░▀░░▀▀░░▀░▀░▀░▀░░░░▀░░░░▀░░░▀░▀░▀▀▀░░▀░░▀▀▀░▀▀▀░▀░▀░▀▀▀│ +;; │░Created░By░Aditya░Shakya░@adi1090x░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│ +;; └────────────────────────────────────────────────────────────────────┘ + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Global WM Settings + +[global/wm] +; Adjust the _NET_WM_STRUT_PARTIAL top value +; Used for top aligned bars +margin-bottom = 0 + +; Adjust the _NET_WM_STRUT_PARTIAL bottom value +; Used for bottom aligned bars +margin-top = 0 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; File Inclusion +; include an external file, like module file, etc. + +include-file = ~/.config/polybar/bars.ini +include-file = ~/.config/polybar/colors.ini +include-file = ~/.config/polybar/modules.ini +include-file = ~/.config/polybar/user_modules.ini + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Bar Settings + +[bar/main] +; Use either of the following command to list available outputs: +; If unspecified, the application will pick the first one it finds. +; $ polybar -m | cut -d ':' -f 1 +; $ xrandr -q | grep " connected" | cut -d ' ' -f1 +monitor = + +; Use the specified monitor as a fallback if the main one is not found. +monitor-fallback = + +; Require the monitor to be in connected state +; XRandR sometimes reports my monitor as being disconnected (when in use) +monitor-strict = false + +; Tell the Window Manager not to configure the window. +; Use this to detach the bar if your WM is locking its size/position. +override-redirect = false + +; Put the bar at the bottom of the screen +bottom = false + +; Prefer fixed center position for the `modules-center` block +; When false, the center position will be based on the size of the other blocks. +fixed-center = true + +; Dimension defined as pixel value (e.g. 35) or percentage (e.g. 50%), +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in a width or height of 50% minus 10 pixels +width = 100% +height = 34 + +; Offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in an offset in the x or y direction +; of 50% minus 10 pixels +offset-x = 0% +offset-y = 0% + +; Background ARGB color (e.g. #f00, #ff992a, #ddff1023) +background = ${color.background} + +; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023) +foreground = ${color.foreground} + +; Background gradient (vertical steps) +; background-[0-9]+ = #aarrggbb +;;background-0 = + +; Value used for drawing rounded corners +; Note: This shouldn't be used together with border-size because the border +; doesn't get rounded +; Individual top/bottom values can be defined using: +; radius-{top,bottom} +radius-top = 0.0 +radius-bottom = 0.0 + +; Under-/overline pixel size and argb color +; Individual values can be defined using: +; {overline,underline}-size +; {overline,underline}-color +line-size = 5 +line-color = ${color.background} + +; Values applied to all borders +; Individual side values can be defined using: +; border-{left,top,right,bottom}-size +; border-{left,top,right,bottom}-color +; The top and bottom borders are added to the bar height, so the effective +; window height is: +; height + border-top-size + border-bottom-size +; Meanwhile the effective window width is defined entirely by the width key and +; the border is placed withing this area. So you effectively only have the +; following horizontal space on the bar: +; width - border-right-size - border-left-size +border-bottom-size = 0 +border-bottom-color = ${color.foreground} + +; Number of spaces to add at the beginning/end of the bar +; Individual side values can be defined using: +; padding-{left,right} +padding = 0 + +; Number of spaces to add before/after each module +; Individual side values can be defined using: +; module-margin-{left,right} +module-margin-left = 1 +module-margin-right = 1 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; Fonts are defined using <font-name>;<vertical-offset> +; Font names are specified using a fontconfig pattern. +; font-0 = NotoSans-Regular:size=8;2 +; font-1 = MaterialIcons:size=10 +; font-2 = Termsynu:size=8;-1 +; font-3 = FontAwesome:size=10 +; See the Fonts wiki page for more details + +font-0 = "Iosevka Nerd Font:size=10;4" +font-1 = "Iosevka Nerd Font:size=10;3" +font-2 = "feather:size=12;3" + +; Modules are added to one of the available blocks +; modules-left = cpu ram +; modules-center = xwindow xbacklight +; modules-right = ipc clock + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[bar/top] +inherit = bar/main +offset-y = 10 +modules-center = title sep menu sep term files browser settings sep filesystem sep temperature sep color-switch sep keyboard sep pulseaudio sep backlight sep updates sep powermenu +enable-ipc = true + +[bar/mid] +inherit = bar/main +offset-y = 54 +modules-center = volume sep brightness sep battery_bar sep cpu_bar sep filesystem_bar sep memory_bar sep mpd_bar +enable-ipc = true + +[bar/bottom] +inherit = bar/main +offset-y = 98 +modules-center = launcher sep workspaces sep cpu sep memory sep mpd sep alsa sep battery sep network sep date sep sysmenu +enable-ipc = true + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; The separator will be inserted between the output of each module +separator = + +; Opacity value between 0.0 and 1.0 used on fade in/out +dim-value = 1.0 + +; Value to be used to set the WM_NAME atom +; If the value is empty or undefined, the atom value +; will be created from the following template: polybar-[BAR]_[MONITOR] +; NOTE: The placeholders are not available for custom values +wm-name = + +; Locale used to localize various module data (e.g. date) +; Expects a valid libc locale, for example: sv_SE.UTF-8 +locale = + +; Position of the system tray window +; If empty or undefined, tray support will be disabled +; NOTE: A center aligned tray will cover center aligned modules +; +; Available positions: +; left +; center +; right +; none +tray-position = none + +; If true, the bar will not shift its +; contents when the tray changes +tray-detached = false + +; Tray icon max size +tray-maxsize = 16 + +; Background color for the tray container +; ARGB color (e.g. #f00, #ff992a, #ddff1023) +; By default the tray container will use the bar +; background color. +tray-background = ${color.background} + +; Tray offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +tray-offset-x = 0 +tray-offset-y = 0 + +; Pad the sides of each tray icon +tray-padding = 0 + +; Scale factor for tray clients +tray-scale = 1.0 + +; Restack the bar window and put it above the +; selected window manager's root +; +; Fixes the issue where the bar is being drawn +; on top of fullscreen window's +; +; Currently supported WM's: +; bspwm +; i3 (requires: `override-redirect = true`) +;;wm-restack = + +; Set a DPI values used when rendering text +; This only affects scalable fonts +; dpi = + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +;enable-ipc = true + +; Fallback click handlers that will be called if +; there's no matching module handler found. +click-left = +click-middle = +click-right = +scroll-up = +scroll-down = +double-click-left = +double-click-middle = +double-click-right = + +; Requires polybar to be built with xcursor support (xcb-util-cursor) +; Possible values are: +; - default : The default pointer as before, can also be an empty string (default) +; - pointer : Typically in the form of a hand +; - ns-resize : Up and down arrows, can be used to indicate scrolling +cursor-click = +cursor-scroll = + +;; WM Workspace Specific + +; bspwm +;;scroll-up = bspwm-desknext +;;scroll-down = bspwm-deskprev +;;scroll-up = bspc desktop -f prev.local +;;scroll-down = bspc desktop -f next.local + +;i3 +;;scroll-up = i3wm-wsnext +;;scroll-down = i3wm-wsprev +;;scroll-up = i3-msg workspace next_on_output +;;scroll-down = i3-msg workspace prev_on_output + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Application Settings + +[settings] +; The throttle settings lets the eventloop swallow up til X events +; if they happen within Y millisecond after first event was received. +; This is done to prevent flood of update event. +; +; For example if 5 modules emit an update event at the same time, we really +; just care about the last one. But if we wait too long for events to swallow +; the bar would appear sluggish so we continue if timeout +; expires or limit is reached. +throttle-output = 5 +throttle-output-for = 10 + +; Time in milliseconds that the input handler will wait between processing events +;throttle-input-for = 30 + +; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events +screenchange-reload = false + +; Compositing operators +; @see: https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t +compositing-background = source +compositing-foreground = over +compositing-overline = over +compositing-underline = over +compositing-border = over + +; Define fallback values used by all module formats +;format-foreground = +;format-background = +;format-underline = +;format-overline = +;format-spacing = +;format-padding = +;format-margin = +;format-offset = + +; Enables pseudo-transparency for the bar +; If set to true the bar can be transparent without a compositor. +pseudo-transparency = false + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/src/.config/polybar/preview.sh b/src/.config/polybar/preview.sh new file mode 100755 index 0000000..695d051 --- /dev/null +++ b/src/.config/polybar/preview.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +DIR="$HOME/.config/polybar/forest" + +# Terminate already running bar instances +killall -q polybar + +# Wait until the processes have been shut down +while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done + +# Launch the preview bar +polybar -q top -c "$DIR"/preview.ini & +polybar -q mid -c "$DIR"/preview.ini & +polybar -q bottom -c "$DIR"/preview.ini & diff --git a/src/.config/polybar/scripts/checkupdates b/src/.config/polybar/scripts/checkupdates new file mode 100755 index 0000000..4d8a5e8 --- /dev/null +++ b/src/.config/polybar/scripts/checkupdates @@ -0,0 +1,117 @@ +#!/usr/bin/bash +# +# checkupdates: Safely print a list of pending updates. +# +# Copyright (c) 2013 Kyle Keen <[email protected]> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + +declare -r myname='checkupdates' +declare -r myver='1.0.0' + +plain() { + (( QUIET )) && return + local mesg=$1; shift + printf "${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&1 +} + +msg() { + (( QUIET )) && return + local mesg=$1; shift + printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&1 +} + +msg2() { + (( QUIET )) && return + local mesg=$1; shift + printf "${BLUE} ->${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&1 +} + +ask() { + local mesg=$1; shift + printf "${BLUE}::${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}" "$@" >&1 +} + +warning() { + local mesg=$1; shift + printf "${YELLOW}==> $(gettext "WARNING:")${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2 +} + +error() { + local mesg=$1; shift + printf "${RED}==> $(gettext "ERROR:")${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2 +} + +# check if messages are to be printed using color +unset ALL_OFF BOLD BLUE GREEN RED YELLOW +if [[ -t 2 && ! $USE_COLOR = "n" ]]; then + # prefer terminal safe colored and bold text when tput is supported + if tput setaf 0 &>/dev/null; then + ALL_OFF="$(tput sgr0)" + BOLD="$(tput bold)" + BLUE="${BOLD}$(tput setaf 4)" + GREEN="${BOLD}$(tput setaf 2)" + RED="${BOLD}$(tput setaf 1)" + YELLOW="${BOLD}$(tput setaf 3)" + else + ALL_OFF="\e[1;0m" + BOLD="\e[1;1m" + BLUE="${BOLD}\e[1;34m" + GREEN="${BOLD}\e[1;32m" + RED="${BOLD}\e[1;31m" + YELLOW="${BOLD}\e[1;33m" + fi +fi +readonly ALL_OFF BOLD BLUE GREEN RED YELLOW + + +if (( $# > 0 )); then + echo "${myname} v${myver}" + echo + echo "Safely print a list of pending updates" + echo + echo "Usage: ${myname}" + echo + echo 'Note: Export the "CHECKUPDATES_DB" variable to change the path of the temporary database.' + exit 0 +fi + +if ! type -P fakeroot >/dev/null; then + error 'Cannot find the fakeroot binary.' + exit 1 +fi + +if [[ -z $CHECKUPDATES_DB ]]; then + CHECKUPDATES_DB="${TMPDIR:-/tmp}/checkup-db-${USER}/" +fi + +trap 'rm -f $CHECKUPDATES_DB/db.lck' INT TERM EXIT + +DBPath="$(pacman-conf DBPath)" +if [[ -z "$DBPath" ]] || [[ ! -d "$DBPath" ]]; then + DBPath="/var/lib/pacman/" +fi + +mkdir -p "$CHECKUPDATES_DB" +ln -s "${DBPath}/local" "$CHECKUPDATES_DB" &> /dev/null +if ! fakeroot -- pacman -Sy --dbpath "$CHECKUPDATES_DB" --logfile /dev/null &> /dev/null; then + error 'Cannot fetch updates' + exit 1 +fi +pacman -Qu --dbpath "$CHECKUPDATES_DB" 2> /dev/null | grep -v '\[.*\]' + +exit 0 + +# vim: set noet: diff --git a/src/.config/polybar/scripts/launcher.sh b/src/.config/polybar/scripts/launcher.sh new file mode 100755 index 0000000..7b4c31e --- /dev/null +++ b/src/.config/polybar/scripts/launcher.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +FILE="$HOME/.config/polybar/scripts/rofi/colors.rasi" + +## random accent color +#COLORS=('#EC7875' '#EC6798' '#BE78D1' '#75A4CD' '#00C7DF' '#00B19F' '#61C766' \ +# '#B9C244' '#EBD369' '#EDB83F' '#E57C46' '#AC8476' '#6C77BB' '#6D8895') +#AC="${COLORS[$(( $RANDOM % 14 ))]}" +#SE="${COLORS[$(( $RANDOM % 14 ))]}" +#sed -i -e "s/ac: .*/ac: ${AC}FF;/g" $FILE +#sed -i -e "s/se: .*/se: ${SE}FF;/g" $FILE + +rofi -dpi 96 -no-config -no-lazy-grab -show drun -modi drun -theme ~/.config/polybar/scripts/rofi/launcher.rasi diff --git a/src/.config/polybar/scripts/powermenu.sh b/src/.config/polybar/scripts/powermenu.sh new file mode 100755 index 0000000..7b229ae --- /dev/null +++ b/src/.config/polybar/scripts/powermenu.sh @@ -0,0 +1,91 @@ +#!/usr/bin/env bash + +## Author : Aditya Shakya +## Mail : [email protected] +## Github : @adi1090x +## Twitter : @adi1090x + +dir="~/.config/polybar/scripts/rofi" +uptime=$(uptime -p | sed -e 's/up //g') + +rofi_command="rofi -no-config -theme $dir/powermenu.rasi" + +# Options +shutdown=" Shutdown" +reboot=" Restart" +lock=" Lock" +suspend=" Sleep" +logout=" Logout" + +# Confirmation +confirm_exit() { + rofi -dmenu\ + -no-config\ + -i\ + -no-fixed-num-lines\ + -p "Are You Sure? : "\ + -theme $dir/confirm.rasi +} + +# Message +msg() { + rofi -no-config -theme "$dir/message.rasi" -e "Available Options - yes / y / no / n" +} + +# Variable passed to rofi +options="$lock\n$suspend\n$logout\n$reboot\n$shutdown" + +chosen="$(echo -e "$options" | $rofi_command -p "Uptime: $uptime" -dmenu -selected-row 0)" +case $chosen in + $shutdown) + ans=$(confirm_exit &) + if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then + systemctl poweroff + elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then + exit 0 + else + msg + fi + ;; + $reboot) + ans=$(confirm_exit &) + if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then + systemctl reboot + elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then + exit 0 + else + msg + fi + ;; + $lock) + ~/.config/i3lock/lock.sh + ;; + $suspend) + ans=$(confirm_exit &) + if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then + mpc -q pause + amixer set Master mute + systemctl suspend + elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then + exit 0 + else + msg + fi + ;; + $logout) + ans=$(confirm_exit &) + if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then + if [[ "$DESKTOP_SESSION" == "Openbox" ]]; then + openbox --exit + elif [[ "$DESKTOP_SESSION" == "bspwm" ]]; then + bspc quit + elif [[ "$DESKTOP_SESSION" == "i3" ]]; then + i3-msg exit + fi + elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then + exit 0 + else + msg + fi + ;; +esac diff --git a/src/.config/polybar/scripts/rofi/colors.rasi b/src/.config/polybar/scripts/rofi/colors.rasi new file mode 100644 index 0000000..94eaebe --- /dev/null +++ b/src/.config/polybar/scripts/rofi/colors.rasi @@ -0,0 +1,13 @@ +/* colors */ + +* { + al: #00000000; + bg: #1d2021FF; + bga: #313131FF; + fg: #EBDBB2FF; + ac: #FB4934FF; + se: #8EC07CFF; + we: #ebdbb2ff; + aq: #98971aff; + re: #cc241dff; +} diff --git a/src/.config/polybar/scripts/rofi/confirm.rasi b/src/.config/polybar/scripts/rofi/confirm.rasi new file mode 100644 index 0000000..0db4b79 --- /dev/null +++ b/src/.config/polybar/scripts/rofi/confirm.rasi @@ -0,0 +1,24 @@ +/* Confirm Dialog */ + +@import "colors.rasi" + +* { + background-color: @bg; + text-color: @fg; + font: "Iosevka Nerd Font 10"; +} + +window { + width: 210px; + padding: 25px; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @se; + location: center; + y-offset: -2em; +} + +entry { + expand: true; + text-color: @ac; +} diff --git a/src/.config/polybar/scripts/rofi/launcher.rasi b/src/.config/polybar/scripts/rofi/launcher.rasi new file mode 100644 index 0000000..916171c --- /dev/null +++ b/src/.config/polybar/scripts/rofi/launcher.rasi @@ -0,0 +1,118 @@ +/* + * + * Author : Aditya Shakya + * Mail : [email protected] + * Github : @adi1090x + * Twitter : @adi1090x + * + */ + +configuration { + font: "Iosevka Nerd Font 12"; + show-icons: true; + icon-theme: "Papirus"; + display-drun: ""; + drun-display-format: "{name}"; + disable-history: false; + fullscreen: false; + hide-scrollbar: true; + sidebar-mode: false; +} + +@import "colors.rasi" + +window { + transparency: "real"; + background-color: @bg; + text-color: @fg; + border: 1px 1px 1px 1px; + border-color: @fg; + border-radius: 0px; + width: 500px; + height: 500px; + location: center; + x-offset: 0; + y-offset: 0; +} + +prompt { + enabled: true; + padding: 0px; + background-color: @bga; + text-color: @fg; + font: "feather 12"; +} + +entry { + background-color: @al; + text-color: @fg; + placeholder-color: @fg; + expand: true; + horizontal-align: 0; + placeholder: "Search..."; + padding: 0px 0px 0px 5px; + blink: true; +} + +inputbar { + children: [ prompt, entry ]; + background-color: @bga; + text-color: @fg; + expand: false; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @fg; + margin: 0px; + padding: 10px; +} + +listview { + background-color: @al; + padding: 0px; + columns: 1; + lines: 6; + spacing: 5px; + cycle: true; + dynamic: true; + layout: vertical; +} + +mainbox { + background-color: @al; + border: 0px; + border-radius: 0px; + border-color: @ac; + children: [ inputbar, listview ]; + spacing: 5px; + padding: 5px; +} + +element { + background-color: @al; + text-color: @fg; + orientation: horizontal; + border-radius: 0px; + padding: 6px; +} + +element-icon { + size: 24px; + border: 0px; + background-color: @bg; +} + +element-text { + expand: true; + horizontal-align: 0; + vertical-align: 0.5; + margin: 0px 2.5px 0px 2.5px; + background-color: @bg; + color: @we; +} + +element selected { + text-color: @bg; + border: 2px 2px 2px 2px; + border-radius: 0px; + border-color: @fg; +} diff --git a/src/.config/polybar/scripts/rofi/message.rasi b/src/.config/polybar/scripts/rofi/message.rasi new file mode 100644 index 0000000..4c7ef7f --- /dev/null +++ b/src/.config/polybar/scripts/rofi/message.rasi @@ -0,0 +1,24 @@ +/* Confirm Dialog */ + +@import "colors.rasi" + +* { + background-color: @bg; + text-color: @fg; + font: "Iosevka Nerd Font 10"; +} + +window { + width: 320px; + padding: 25px; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @se; + location: center; + y-offset: -2em; +} + +entry { + expand: true; + text-color: @ac; +} diff --git a/src/.config/polybar/scripts/rofi/networkmenu.rasi b/src/.config/polybar/scripts/rofi/networkmenu.rasi new file mode 100644 index 0000000..012e1ea --- /dev/null +++ b/src/.config/polybar/scripts/rofi/networkmenu.rasi @@ -0,0 +1,123 @@ +/* + * + * Author : Aditya Shakya + * Mail : [email protected] + * Github : @adi1090x + * Twitter : @adi1090x + * + */ + +configuration { + font: "Iosevka Nerd Font 10"; + show-icons: true; + icon-theme: "Papirus"; + display-drun: ""; + drun-display-format: "{name}"; + disable-history: false; + fullscreen: false; + hide-scrollbar: true; + sidebar-mode: false; +} + +@import "colors.rasi" + +window { + transparency: "real"; + background-color: @bg; + text-color: @fg; + border: 0px 0px 0px 0px; + border-color: @ac; + border-radius: 0px; + width: 400px; + location: center; + x-offset: 0; + y-offset: 0; +} + +prompt { + enabled: true; + padding: 0px 0px 0px 10px; + background-color: @bga; + text-color: @fg; +} + +textbox-prompt-colon { + padding: 0px; + background-color: @bga; + text-color: @ac; + expand: false; + str: ""; + font: "feather 12"; +} + +entry { + background-color: @al; + text-color: @fg; + placeholder-color: @fg; + expand: true; + horizontal-align: 0; + placeholder: "Search..."; + padding: 0px 0px 0px 5px; + blink: true; +} + +inputbar { + children: [ textbox-prompt-colon, prompt ]; + background-color: @bga; + text-color: @fg; + expand: false; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @se; + margin: 0px; + padding: 10px; +} + +listview { + background-color: @al; + padding: 0px; + columns: 1; + lines: 8; + spacing: 5px; + cycle: true; + dynamic: true; + layout: vertical; +} + +mainbox { + background-color: @al; + border: 0px; + border-radius: 0px; + border-color: @ac; + children: [ inputbar, listview ]; + spacing: 5px; + padding: 5px; +} + +element { + background-color: @al; + text-color: @fg; + orientation: horizontal; + border-radius: 0px; + padding: 8px 8px 8px -15px; +} + +element-icon { + size: 24px; + border: 0px; +} + +element-text { + expand: true; + horizontal-align: 0; + vertical-align: 0.5; + margin: 0px 2.5px 0px 2.5px; +} + +element selected { + background-color: @se; + text-color: @bg; + border: 0px 0px 0px 0px; + border-radius: 0px; + border-color: @ac; +} diff --git a/src/.config/polybar/scripts/rofi/powermenu.rasi b/src/.config/polybar/scripts/rofi/powermenu.rasi new file mode 100644 index 0000000..4a63489 --- /dev/null +++ b/src/.config/polybar/scripts/rofi/powermenu.rasi @@ -0,0 +1,124 @@ +/* + * + * Author : Aditya Shakya + * Mail : [email protected] + * Github : @adi1090x + * Twitter : @adi1090x + * + */ + +configuration { + font: "Iosevka Nerd Font 12"; + show-icons: true; + icon-theme: "Papirus"; + display-drun: ""; + drun-display-format: "{name}"; + disable-history: false; + fullscreen: false; + hide-scrollbar: true; + sidebar-mode: false; +} + +@import "colors.rasi" + +window { + transparency: "real"; + background-color: @bg; + text-color: @fg; + border: 0px 0px 0px 0px; + border-color: @ac; + border-radius: 0px; + width: 350px; + location: center; + x-offset: 0; + y-offset: 0; +} + +prompt { + enabled: true; + padding: 0px 0px 0px 10px; + background-color: @bga; + text-color: @fg; +} + +textbox-prompt-colon { + padding: 0px; + background-color: @bga; + text-color: @ac; + expand: false; + str: ""; + font: "feather 12"; +} + +entry { + background-color: @al; + text-color: @fg; + placeholder-color: @fg; + expand: true; + horizontal-align: 0; + placeholder: "Search..."; + padding: 0px 0px 0px 5px; + blink: true; +} + +inputbar { + children: [ textbox-prompt-colon, prompt ]; + background-color: @bga; + text-color: @fg; + expand: false; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @re; + margin: 0px; + padding: 10px; +} + + +listview { + background-color: @al; + padding: 0px; + columns: 1; + lines: 5; + spacing: 5px; + cycle: true; + dynamic: true; + layout: vertical; +} + +mainbox { + background-color: @al; + border: 0px; + border-radius: 0px; + border-color: @ac; + children: [ inputbar, listview ]; + spacing: 5px; + padding: 5px; +} + +element { + background-color: @al; + text-color: @fg; + orientation: horizontal; + border-radius: 0px; + padding: 8px 8px 8px -20px; +} + +element-icon { + size: 24px; + border: 0px; +} +element-text { + expand: true; + horizontal-align: 0; + vertical-align: 0.5; + margin: 0px 2.5px 0px 2.5px; + background-color: @bg; + color: @we; +} + +element selected { + text-color: @bg; + border: 2px 2px 2px 2px; + border-radius: 0px; + border-color: @aq; +} diff --git a/src/.config/polybar/scripts/rofi/styles.rasi b/src/.config/polybar/scripts/rofi/styles.rasi new file mode 100644 index 0000000..6b7bd30 --- /dev/null +++ b/src/.config/polybar/scripts/rofi/styles.rasi @@ -0,0 +1,123 @@ +/* + * + * Author : Aditya Shakya + * Mail : [email protected] + * Github : @adi1090x + * Twitter : @adi1090x + * + */ + +configuration { + font: "Iosevka Nerd Font 10"; + show-icons: true; + icon-theme: "Papirus"; + display-drun: ""; + drun-display-format: "{name}"; + disable-history: false; + fullscreen: false; + hide-scrollbar: true; + sidebar-mode: false; +} + +@import "colors.rasi" + +window { + transparency: "real"; + background-color: @bg; + text-color: @fg; + border: 0px 0px 0px 0px; + border-color: @ac; + border-radius: 0px; + width: 350px; + location: center; + x-offset: 0; + y-offset: 0; +} + +prompt { + enabled: true; + padding: 0px 0px 0px 5px; + background-color: @bga; + text-color: @fg; +} + +textbox-prompt-colon { + padding: 0px; + background-color: @bga; + text-color: @ac; + expand: false; + str: ""; + font: "feather 12"; +} + +entry { + background-color: @al; + text-color: @fg; + placeholder-color: @fg; + expand: true; + horizontal-align: 0; + placeholder: "Search..."; + padding: 0px 0px 0px 10px; + blink: true; +} + +inputbar { + children: [ textbox-prompt-colon, entry ]; + background-color: @bga; + text-color: @fg; + expand: false; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @se; + margin: 0px; + padding: 10px; +} + +listview { + background-color: @al; + padding: 0px; + columns: 1; + lines: 5; + spacing: 5px; + cycle: true; + dynamic: true; + layout: vertical; +} + +mainbox { + background-color: @al; + border: 0px; + border-radius: 0px; + border-color: @ac; + children: [ inputbar, listview ]; + spacing: 5px; + padding: 5px; +} + +element { + background-color: @al; + text-color: @fg; + orientation: horizontal; + border-radius: 0px; + padding: 8px 8px 8px -20px; +} + +element-icon { + size: 24px; + border: 0px; +} + +element-text { + expand: true; + horizontal-align: 0; + vertical-align: 0.5; + margin: 0px 2.5px 0px 2.5px; +} + +element selected { + background-color: @se; + text-color: @bg; + border: 0px 0px 0px 0px; + border-radius: 0px; + border-color: @ac; +} diff --git a/src/.config/polybar/scripts/style-switch.sh b/src/.config/polybar/scripts/style-switch.sh new file mode 100755 index 0000000..e0188f3 --- /dev/null +++ b/src/.config/polybar/scripts/style-switch.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +SDIR="$HOME/.config/polybar/forest/scripts" + +# Launch Rofi +MENU="$(rofi -no-config -no-lazy-grab -sep "|" -dmenu -i -p '' \ +-theme $SDIR/rofi/styles.rasi \ +<<< " Default| Nord| Gruvbox| Dark| Cherry|")" + case "$MENU" in + *Default) "$SDIR"/styles.sh --default ;; + *Nord) "$SDIR"/styles.sh --nord ;; + *Gruvbox) "$SDIR"/styles.sh --gruvbox ;; + *Dark) "$SDIR"/styles.sh --dark ;; + *Cherry) "$SDIR"/styles.sh --cherry ;; + esac diff --git a/src/.config/polybar/scripts/styles.sh b/src/.config/polybar/scripts/styles.sh new file mode 100755 index 0000000..35899a9 --- /dev/null +++ b/src/.config/polybar/scripts/styles.sh @@ -0,0 +1,76 @@ +#!/usr/bin/env bash + +# Color files +PFILE="$HOME/.config/polybar/forest/colors.ini" +RFILE="$HOME/.config/polybar/forest/scripts/rofi/colors.rasi" + +# Change colors +change_color() { + # polybar + sed -i -e "s/background = #.*/background = $BG/g" $PFILE + sed -i -e "s/foreground = #.*/foreground = $FG/g" $PFILE + sed -i -e "s/sep = #.*/sep = $SEP/g" $PFILE + + # rofi + cat > $RFILE <<- EOF + /* colors */ + + * { + al: #00000000; + bg: ${BG}FF; + bga: ${BGA}FF; + fg: ${FG}FF; + ac: ${AC}FF; + se: ${SE}FF; + } + EOF + + polybar-msg cmd restart +} + +if [[ $1 = "--default" ]]; then + BG="#212B30" + FG="#C4C7C5" + BGA="#263035" + SEP="#3F5360" + AC="#EC407A" + SE="#4DD0E1" + change_color +elif [[ $1 = "--nord" ]]; then + BG="#3B4252" + FG="#E5E9F0" + BGA="#454C5C" + SEP="#5B6579" + AC="#BF616A" + SE="#88C0D0" + change_color +elif [[ $1 = "--gruvbox" ]]; then + BG="#282828" + FG="#EBDBB2" + BGA="#313131" + SEP="#505050" + AC="#FB4934" + SE="#8EC07C" + change_color +elif [[ $1 = "--dark" ]]; then + BG="#141C21" + FG="#93A1A1" + BGA="#1E262B" + SEP="#3C4449" + AC="#D12F2C" + SE="#33C5BA" + change_color +elif [[ $1 = "--cherry" ]]; then + BG="#1F1626" + FG="#FFFFFF" + BGA="#292030" + SEP="#473F4E" + AC="#D94084" + SE="#4F5D95" + change_color +else + cat <<- _EOF_ + No option specified, Available options: + --default --nord --gruvbox --dark --cherry + _EOF_ +fi diff --git a/src/.config/polybar/scripts/updates.sh b/src/.config/polybar/scripts/updates.sh new file mode 100755 index 0000000..70edf26 --- /dev/null +++ b/src/.config/polybar/scripts/updates.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash + +NOTIFY_ICON=/usr/share/icons/Papirus/32x32/apps/system-software-update.svg + +get_total_updates() { UPDATES=$(checkupdates 2>/dev/null | wc -l); } + +while true; do + get_total_updates + + # notify user of updates + if hash notify-send &>/dev/null; then + if (( UPDATES > 50 )); then + notify-send -u critical -i $NOTIFY_ICON \ + "You really need to update!!" "$UPDATES New packages" + elif (( UPDATES > 25 )); then + notify-send -u normal -i $NOTIFY_ICON \ + "You should update soon" "$UPDATES New packages" + elif (( UPDATES > 2 )); then + notify-send -u low -i $NOTIFY_ICON \ + "$UPDATES New packages" + fi + fi + + # when there are updates available + # every 10 seconds another check for updates is done + while (( UPDATES > 0 )); do + if (( UPDATES == 1 )); then + echo "$UPDATES" + elif (( UPDATES > 1 )); then + echo "$UPDATES" + else + echo "None" + fi + sleep 10 + get_total_updates + done + + # when no updates are available, use a longer loop, this saves on CPU + # and network uptime, only checking once every 30 min for new updates + while (( UPDATES == 0 )); do + echo "None" + sleep 1800 + get_total_updates + done +done diff --git a/src/.config/polybar/user_modules.ini b/src/.config/polybar/user_modules.ini new file mode 100644 index 0000000..7314509 --- /dev/null +++ b/src/.config/polybar/user_modules.ini @@ -0,0 +1,256 @@ +;; ┌──────────────────────────────────────────────────────────────────────────────-----┐ +;; │░█▀█░█▀█░█░░░█░█░█▀▄░█▀█░█▀▄░░░░░░░░░█░█░█▀▀░█▀▀░█▀▄░░░█▄█░█▀█░█▀▄░█░█░█░░░█▀▀░█▀▀ │ +;; │░█▀▀░█░█░█░░░░█░░█▀▄░█▀█░█▀▄░░░░▀░░░░█░█░▀▀█░█▀▀░█▀▄░░░█░█░█░█░█░█░█░█░█░░░█▀▀░▀▀█ │ +;; │░▀░░░▀▀▀░▀▀▀░░▀░░▀▀░░▀░▀░▀░▀░░░░▀░░░░▀▀▀░▀▀▀░▀▀▀░▀░▀░░░▀░▀░▀▀▀░▀▀░░▀▀▀░▀▀▀░▀▀▀░▀▀▀ │ +;; │░Created░By░Aditya░Shakya░@adi1090x░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│ +;; └──────────────────────────────────────────────────────────────────────────────-----┘ + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/updates] +type = custom/script + +; Available tokens: +; %counter% +; Command to be executed (using "/usr/bin/env sh -c [command]") +exec = ~/.config/polybar/scripts/updates.sh + +; Conditional command that, if defined, needs to exit successfully +; before the main exec command is invoked. +; Default: "" +;;exec-if = "" + +; Will the script output continous content? +; Default: false +tail = true + +; Seconds to sleep between updates +; Default: 2 (0 if `tail = true`) +interval = 5 + +; Available tags: +; <output> - deprecated +; <label> (default) +format = <label> +format-prefix = +format-prefix-foreground = ${color.yellow} + +; Available tokens: +; %output% +; Default: %output% +label = " %output%" + +; Available tokens: +; %counter% +; %pid% +; +; "click-(left|middle|right)" will be executed using "/usr/bin/env sh -c [command]" +click-left = exo-open --launch TerminalEmulator & +click-right = exo-open --launch TerminalEmulator & +;;double-click-left = echo double left %counter% +;;double-click-middle = echo double middle %counter% +;;double-click-right = echo double right %counter% + +; Available tokens: +; %counter% +; %pid% +; +; "scroll-(up|down)" will be executed using "/usr/bin/env sh -c [command]" +;;scroll-up = echo scroll up %counter% +;;scroll-down = echo scroll down %counter% + + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/launcher] +type = custom/text + +content = +content-foreground = ${color.purple} + +; "click-(left|middle|right)" will be executed using "/usr/bin/env sh -c $COMMAND" +click-left = ~/.config/polybar/scripts/launcher.sh & +;;click-middle = ~/.config/polybar/scripts/launcher-full +click-right = ~/.config/polybar/scripts/style-switch.sh & + +; "scroll-(up|down)" will be executed using "/usr/bin/env sh -c $COMMAND" +;;scroll-up = ~/.config/polybar/scripts/launcher.sh & +;;scroll-down = ~/.config/polybar/scripts/color-switch.sh & + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/sysmenu] +type = custom/text + +content = +content-foreground = ${color.cyan} + +click-left = ~/.config/polybar/scripts/powermenu.sh & + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/color-switch] +type = custom/text + +content = +content-foreground = ${color.red} + +click-left = ~/.config/polybar/scripts/style-switch.sh & + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/sep] +type = custom/text +content = | + +content-foreground = ${color.sep} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/apps] +type = custom/text + +[module/term] +inherit = module/apps +content = +content-foreground = ${color.blue-gray} +click-left = termite & +click-middle = urxvt & +click-right = xfce4-terminal & + +[module/files] +inherit = module/apps +content = +content-foreground = ${color.blue} +click-left = thunar & +click-right = pcmanfm & + +[module/browser] +inherit = module/apps +content = +content-foreground = ${color.orange} +click-left = firefox & +click-right = chromium & + +[module/settings] +inherit = module/apps +content = +content-foreground = ${color.teal} +click-left = xfce4-settings-manager & +click-right = lxappearance & + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/powermenu] +type = custom/menu + +; If true, <label-toggle> will be to the left of the menu items (default). +; If false, it will be on the right of all the items. +expand-right = true + +; "menu-LEVEL-N" has the same properties as "label-NAME" with +; the additional "exec" property +; +; Available exec commands: +; menu-open-LEVEL +; menu-close +; Other commands will be executed using "/usr/bin/env sh -c $COMMAND" +menu-0-0 = " Reboot |" +menu-0-0-exec = menu-open-1 +menu-0-1 = " Shutdown " +menu-0-1-exec = menu-open-2 + +menu-1-0 = " Back |" +menu-1-0-exec = menu-open-0 +menu-1-1 = " Reboot " +menu-1-1-exec = systemctl reboot + +menu-2-0 = " Shutdown |" +menu-2-0-exec = systemctl poweroff +menu-2-1 = " Back " +menu-2-1-exec = menu-open-0 + +; Available tags: +; <label-toggle> (default) - gets replaced with <label-(open|close)> +; <menu> (default) +; Note that if you use <label-toggle> you must also include +; the definition for <label-open> + +format = <label-toggle><menu> + +label-open = +label-open-foreground = ${color.cyan} +label-open-padding = 1 +label-close = +label-close-foreground = ${color.red} +label-close-padding = 1 + +; Optional item separator +; Default: none +;label-separator = " | " +;label-separator-foreground = ${color.foreground} +;label-separator-background = ${color.background-alt} + +;;label-open-foreground = ${color.foreground} +;;label-close-foreground = ${color.background} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/menu] +type = custom/menu + +; If true, <label-toggle> will be to the left of the menu items (default). +; If false, it will be on the right of all the items. +expand-right = true + +; "menu-LEVEL-N" has the same properties as "label-NAME" with +; the additional "exec" property +; +; Available exec commands: +; menu-open-LEVEL +; menu-close +; Other commands will be executed using "/usr/bin/env sh -c $COMMAND" +menu-0-0 =" Menu | " +menu-0-0-exec = ~/.config/polybar/scripts/launcher.sh & + +menu-0-1 =" Files | " +menu-0-1-exec = thunar & + +menu-0-2 =" Terminal | " +menu-0-2-exec = termite & + +menu-0-3 =" Browser " +menu-0-3-exec = firefox & + +; Available tags: +; <label-toggle> (default) - gets replaced with <label-(open|close)> +; <menu> (default) +; Note that if you use <label-toggle> you must also include +; the definition for <label-open> + +format = <label-toggle><menu> + +label-open = +label-open-foreground = ${color.yellow} +label-open-padding = 1 +label-close = +label-close-foreground = ${color.red} +label-close-padding = 1 + +; Optional item separator +; Default: none +;label-separator = " | " + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +; +; +; +; +[module/pipewire] +type = custom/script +exec = ~/.config/polybar/polybar-scripts/pipewire-simple.sh +interval = 1 +click-right = exec pavucontrol & +click-left = ~/.config/polybar/polybar-scripts/pipewire-simple.sh --mute & +scroll-up = ~/.config/polybar/polybar-scripts/pipewire-simple.sh --up & +scroll-down = ~/.config/polybar/polybar-scripts/pipewire-simple.sh --down & diff --git a/src/.config/sxhkd/sxhkdrc b/src/.config/sxhkd/sxhkdrc new file mode 100644 index 0000000..4d18159 --- /dev/null +++ b/src/.config/sxhkd/sxhkdrc @@ -0,0 +1,153 @@ +# +# wm independent hotkeys +# + +# terminal emulator +super + Return + alacritty + +# program launcher +super + @space + ~/.config/polybar/scripts/launcher.sh & + +# make sxhkd reload its configuration files: +super + Escape + pkill -USR1 -x sxhkd + +super + shift + {e} + ~/.config/polybar/scripts/powermenu.sh & +# +# bspwm hotkeys +# + +# quit/restart bspwm +super + alt + {q,r} + bspc {quit,wm -r} + +# close and kill +super + {_,shift + }w + bspc node -{c,k} + +# alternate between the tiled and monocle layout +super + m + bspc desktop -l next + +# send the newest marked node to the newest preselected node +super + y + bspc node newest.marked.local -n newest.!automatic.local + +# swap the current node and the biggest window +super + g + bspc node -s biggest.window + +# +# state/flags +# + +# set the window state +super + {t,shift + t,s,f} + bspc node -t {tiled,pseudo_tiled,floating,fullscreen} + +# set the node flags +super + ctrl + {m,x,y,z} + bspc node -g {marked,locked,sticky,private} + +# +# focus/swap +# + +# focus the node in the given direction +super + {_,shift + }{h,j,k,l} + bspc node -{f,s} {west,south,north,east} + +# focus the node for the given path jump +super + {p,b,comma,period} + bspc node -f @{parent,brother,first,second} + +# focus the next/previous window in the current desktop +super + {_,shift + }c + bspc node -f {next,prev}.local.!hidden.window + +# focus the next/previous desktop in the current monitor +super + bracket{left,right} + bspc desktop -f {prev,next}.local + +# focus the last node/desktop +super + {grave,Tab} + bspc {node,desktop} -f last + +# focus the older or newer node in the focus history +super + {o,i} + bspc wm -h off; \ + bspc node {older,newer} -f; \ + bspc wm -h on + +# focus or send to the given desktop +super + {_,shift + }{1-5,0} + bspc {desktop -f,node -d} '^{1-5,10}' + +# +# preselect +# + +# preselect the direction +super + ctrl + {h,j,k,l} + bspc node -p {west,south,north,east} + +# preselect the ratio +super + ctrl + {1-9} + bspc node -o 0.{1-9} + +# cancel the preselection for the focused node +super + ctrl + space + bspc node -p cancel + +# cancel the preselection for the focused desktop +super + ctrl + shift + space + bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel + +# +# move/resize +# + +# expand a window by moving one of its side outward +super + alt + {h,j,k,l} + bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0} + +# contract a window by moving one of its side inward +super + alt + shift + {h,j,k,l} + bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0} + +# move a floating window +super + {Left,Down,Up,Right} + bspc node -v {-20 0,0 20,0 -20,20 0} + + + +# Multimedia keys +XF86AudioRaiseVolume + pactl set-sink-volume @DEFAULT_SINK@ +5% + +# Still multimedia +XF86AudioLowerVolume + pactl set-sink-volume @DEFAULT_SINK@ -5% +# still +XF86AudioMute + pactl set-sink-mute @DEFAULT_SINK@ toggle + +XF86AudioPlay + playerctl -a play-pause + +XF86AudioPrev + playerctl -a previous + +XF86AudioNext + playerctl -a next + +# Brightness up +XF86MonBrightnessUp + brightnessctl set +10% + +# And brightness down +XF86MonBrightnessDown + brightnessctl set 10-% diff --git a/src/.config/waybar/config b/src/.config/waybar/config new file mode 100644 index 0000000..586f7c2 --- /dev/null +++ b/src/.config/waybar/config @@ -0,0 +1,99 @@ +{ + "layer": "top", // Waybar at top layer + "position": "top", // Waybar position (top|bottom|left|right) + "height":30 ,// Waybar height (to be removed for auto height) + "margin": 0, + //"width": 1920, // Waybar width + "spacing": 5, + "fixed-center": true, + // Choose the order of the modules + "modules-left": ["wlr/workspaces",], + "modules-right": ["memory","pulseaudio", "clock"], + "modules-center": ["hyprland/window"], + + "wlr/workspaces": { + "format": "{icon}", + "on-click": "activate", + "active-only": false, + "all-outputs": true, + "format-icons": { + "1": "", + "2": "", + "3": "", + "4": "", + "5": "", + }, + }, + "hyprland/window": { + "format": "{}", + "separate-outputs": true + }, + "tray": { + "icon-size": 21, + "spacing": 4, + "show-passive-items": true, + "max-length": 6, + "min-length": 6, + }, + "clock": { + "tooltip": false, + "interval": 60, + "format": "{:%d %b, %I:%M %p}", + "max-length": 25, + "on-click": "alacritty --class calendar -e calcure"}, + "cpu": { + "interval":1, + "format":"{icon0}{icon1}{icon2}{icon3}", + "format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"], + "on-click": "alacritty --class system_monitor -e btop", + "max-lenght": 25, + "min-length":6, + }, + "memory": { + "format": "<span color=\"#458588\"> </span>{used}GiB", + "interval": 1, + "on-click": "alacritty --class system_monitor -e btop", + "max-lenght": 25, + "min-length":6, + }, + "backlight": { + // "device": "acpi_video1", + "format": "{icon}{percent}%", + "format-icons": [" ", " ", " ", " ", " ", " ", " ", " ", " "], + "on-scroll-up":"brightnessctl set 30+", + "on-scroll-down":"brightnessctl set 30-", + "max-lenght": 25, + "min-length":6, + }, + "battery": { + "states": { + "full":100, + "warning": 50, + "critical": 20 + }, + "interval":60, + "format": "{icon} {capacity}%", + "format-icons": ["", "", "", "", ""] + }, + "network": { + "interface": "enp6s0", + "format-wifi": " ", + "format-disconnected": " 睊 ", + "tooltip-format": "{ifname} via {gwaddr} ", + "tooltip-format-wifi": "{essid} {signalStrength}%", + "on-click": "alacritty --class network -e nmtui" + }, + "pulseaudio": { + "format": "<span color=\"#458588\"> </span>{volume}%", + "format-muted": "<span color=\"#cc241d\"> </span>Muted", + "scroll-step": 1, + "on-click-right": "pavucontrol", + "ignored-sinks": ["Easy Effects Sink"], + "max-lenght": 25, + "exec":"pactl --format=json list sinks | jq -cM --unbuffered \"map(select(.name == \\\"$(pactl get-default-sink)\\\"))[0].properties | [.\\\"media.name\\\",.\\\"alsa.name\\\",.\\\"node.nick\\\",.\\\"alsa.long_card_name\\\"] | map(select(length>0))[0] | {text:.}\"", + "exec-if": "sleep 0.1", // Give enough time for `pactl get-default-sink` to update + "on-click": "pactl --format=json list sinks short | jq -cM --unbuffered \"[.[].name] | .[((index(\\\"$(pactl get-default-sink)\\\")+1)%length)]\" | xargs pactl set-default-sink" +} +} + + diff --git a/src/.config/waybar/style.css b/src/.config/waybar/style.css new file mode 100644 index 0000000..a2251f7 --- /dev/null +++ b/src/.config/waybar/style.css @@ -0,0 +1,108 @@ +* { + font-family: "MesloLGS NF"; + font-size: 14px; +} + +#window { + color: #ebdbb2; +} + +window#waybar { + background-color: #1d2021; + border-radius: 0px; +} + +.modules-right { + margin-right: 1.5rem; +} +.modules-left { + margin-left: 1.5rem; +} +tooltip { + background: #45403d; + border-radius: 10px; +} +tooltip label { + color: #ebdbb2; + background-color: #45403d; + border-radius: 10px; +} +tooltip * { + border-radius: 10px; +} +#workspaces button { + margin: 0; + color: #d4be98; + font-weight: bolder; + font-style: normal; + margin: 0.2rem 0.1rem; +} +button:hover { + box-shadow: inherit; + text-shadow: inherit; + background: inherit; +} +#workspaces button.active { + color: #458588; + transition: all 0.1s ease-in-out; +} + +#clock, +#custom-weather { + color: #ebdbb2; +} + +#clock { + padding: 0 0 0 1.5em; +} +#custom-weather { + padding: 0 1.5em 0 0.5em; +} +#memory { + color: #ebdbb2; + padding: 0 0.3em; +} + +#pulseaudio { + margin: 0; + padding: 0 0.5em 0 0.4em; + color: #ebdbb2; +} + +#backlight { + margin: 0; + padding: 0 0.5em 0 0.4em; + color: #d8a657; +} +#cpu { + margin: 0; + padding: 0 0.1em 0 0.1em; + color: #a9b665; +} +#network { + margin: 0; + padding: 0 0.4em 0 0.5em; + color: #d8a657; +} +#custom-cycle_wall { + margin: 0; + padding: 0 0.5em; + color: #d3869b; +} + +#language { + margin: 0; + padding: 0 0.1em; + color: #d3869b; +} +#tray { + margin: 0; + padding: 0 0.2em; + color: #d3869b; +} +#battery { + margin: 0; + padding: 0 0.5em 0 0.4em; + color: #a9b665; +} + diff --git a/src/auto-setup.sh b/src/auto-setup.sh new file mode 100755 index 0000000..4a176cc --- /dev/null +++ b/src/auto-setup.sh @@ -0,0 +1,4 @@ +mkdir ~/.config -p +cp -r .config/* ~/.config/ +cp -r .screenlayout ~/ +cp -r .wallpapers ~/ diff --git a/src/fonts/MesloLGS NF Bold Italic.ttf b/src/fonts/MesloLGS NF Bold Italic.ttf Binary files differnew file mode 100644 index 0000000..be059c0 --- /dev/null +++ b/src/fonts/MesloLGS NF Bold Italic.ttf diff --git a/src/fonts/MesloLGS NF Bold.ttf b/src/fonts/MesloLGS NF Bold.ttf Binary files differnew file mode 100644 index 0000000..6142dd0 --- /dev/null +++ b/src/fonts/MesloLGS NF Bold.ttf diff --git a/src/fonts/MesloLGS NF Italic.ttf b/src/fonts/MesloLGS NF Italic.ttf Binary files differnew file mode 100644 index 0000000..90ca569 --- /dev/null +++ b/src/fonts/MesloLGS NF Italic.ttf diff --git a/src/fonts/MesloLGS NF Regular.ttf b/src/fonts/MesloLGS NF Regular.ttf Binary files differnew file mode 100644 index 0000000..e9e4de5 --- /dev/null +++ b/src/fonts/MesloLGS NF Regular.ttf diff --git a/src/fonts/font-setup.sh b/src/fonts/font-setup.sh new file mode 100755 index 0000000..2bf02af --- /dev/null +++ b/src/fonts/font-setup.sh @@ -0,0 +1,6 @@ +echo "Making fonts directory..." +mkdir -p ~/.local/share/fonts/ -p +echo "Moving Meslo fonts to ~/.local/share/fonts ..." +cp Meslo* ~/.local/share/fonts + +sudo ln -s /usr/share/fontconfig/conf.avail/70-no-bitmaps.conf /etc/fonts/conf.d diff --git a/src/tools.sh b/src/tools.sh new file mode 100755 index 0000000..c80bb34 --- /dev/null +++ b/src/tools.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +sudo pacman -S wine wine-mono winetricks dunst steam htop thunderbird bitwarden firefox xorg-server bspwm sxhkd polybar rofi picom git lightdm bluez pipewire pipewire-jack pipewire-alsa pipewire-pulse brightnessctl alacritty xfce-power-manager blueman lightdm-gtk-greeter arandr nitrogen lxapperance playerctl hyperland-git waybar + + +sudo xbps-install wine wine-mono winetricks dunst steam htop thunderbird bitwarden firefox xorg bspwm sxhkd polybar rofi picom git lightdm bluez pipewire brightnessctl alacritty xfce4-power-manager blueman lightdm-gtk3-greeter arandr nitrogen pcmanfm NetworkManager + + +sudo xbps-install wine-32bit void-repo-multilib{,-nonfree} legendary python3 python3-pip libgcc-32bit libstdc++-32bit libdrm-32bit libglvnd-32bit mesa-dri-32bit mesa-dri mesa-32bit diff --git a/src/userChrome.css b/src/userChrome.css new file mode 100644 index 0000000..cbe4abc --- /dev/null +++ b/src/userChrome.css @@ -0,0 +1,8 @@ +* { + font-size: 15px !important; +} +.toolbarbutton-badge { + font-size: 8px !important; +} + + diff --git a/src/wallpapers/Pictures/.DS_Store b/src/wallpapers/Pictures/.DS_Store Binary files differnew file mode 100644 index 0000000..4e2f241 --- /dev/null +++ b/src/wallpapers/Pictures/.DS_Store diff --git a/src/wallpapers/Pictures/.localized b/src/wallpapers/Pictures/.localized new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/wallpapers/Pictures/.localized diff --git a/src/wallpapers/Pictures/1069099.png b/src/wallpapers/Pictures/1069099.png Binary files differnew file mode 100644 index 0000000..af81411 --- /dev/null +++ b/src/wallpapers/Pictures/1069099.png diff --git a/src/wallpapers/Pictures/My project.png b/src/wallpapers/Pictures/My project.png Binary files differnew file mode 100644 index 0000000..85355fc --- /dev/null +++ b/src/wallpapers/Pictures/My project.png diff --git a/src/wallpapers/Pictures/arceus.jpg b/src/wallpapers/Pictures/arceus.jpg Binary files differnew file mode 100644 index 0000000..15dbb2e --- /dev/null +++ b/src/wallpapers/Pictures/arceus.jpg diff --git a/src/wallpapers/Pictures/arceus_gruvbox.jpg b/src/wallpapers/Pictures/arceus_gruvbox.jpg Binary files differnew file mode 100644 index 0000000..15dbb2e --- /dev/null +++ b/src/wallpapers/Pictures/arceus_gruvbox.jpg diff --git a/src/wallpapers/Pictures/el_capitan.jpg b/src/wallpapers/Pictures/el_capitan.jpg Binary files differnew file mode 100644 index 0000000..92105af --- /dev/null +++ b/src/wallpapers/Pictures/el_capitan.jpg diff --git a/src/wallpapers/Pictures/empress.jpg b/src/wallpapers/Pictures/empress.jpg Binary files differnew file mode 100644 index 0000000..2ff0aa5 --- /dev/null +++ b/src/wallpapers/Pictures/empress.jpg diff --git a/src/wallpapers/Pictures/glitch.jpg b/src/wallpapers/Pictures/glitch.jpg Binary files differnew file mode 100644 index 0000000..bfd8d09 --- /dev/null +++ b/src/wallpapers/Pictures/glitch.jpg diff --git a/src/wallpapers/Pictures/gnome.png b/src/wallpapers/Pictures/gnome.png Binary files differnew file mode 100644 index 0000000..6554aa2 --- /dev/null +++ b/src/wallpapers/Pictures/gnome.png diff --git a/src/wallpapers/Pictures/gruv-gruvy.jpg b/src/wallpapers/Pictures/gruv-gruvy.jpg Binary files differnew file mode 100644 index 0000000..38d9372 --- /dev/null +++ b/src/wallpapers/Pictures/gruv-gruvy.jpg diff --git a/src/wallpapers/Pictures/gruv-material-texture.png b/src/wallpapers/Pictures/gruv-material-texture.png Binary files differnew file mode 100644 index 0000000..6d4ce32 --- /dev/null +++ b/src/wallpapers/Pictures/gruv-material-texture.png diff --git a/src/wallpapers/Pictures/gruv-nvim.png b/src/wallpapers/Pictures/gruv-nvim.png Binary files differnew file mode 100644 index 0000000..44ab50f --- /dev/null +++ b/src/wallpapers/Pictures/gruv-nvim.png diff --git a/src/wallpapers/Pictures/houses.png b/src/wallpapers/Pictures/houses.png Binary files differnew file mode 100644 index 0000000..63ef2ff --- /dev/null +++ b/src/wallpapers/Pictures/houses.png diff --git a/src/wallpapers/Pictures/leaves-2.jpg b/src/wallpapers/Pictures/leaves-2.jpg Binary files differnew file mode 100644 index 0000000..70bf5d7 --- /dev/null +++ b/src/wallpapers/Pictures/leaves-2.jpg diff --git a/src/wallpapers/Pictures/nms.jpg b/src/wallpapers/Pictures/nms.jpg Binary files differnew file mode 100644 index 0000000..d7cd841 --- /dev/null +++ b/src/wallpapers/Pictures/nms.jpg diff --git a/src/wallpapers/Pictures/pokemon_forest.jpg b/src/wallpapers/Pictures/pokemon_forest.jpg Binary files differnew file mode 100644 index 0000000..06ed525 --- /dev/null +++ b/src/wallpapers/Pictures/pokemon_forest.jpg diff --git a/src/wallpapers/Pictures/rl.jpg b/src/wallpapers/Pictures/rl.jpg Binary files differnew file mode 100644 index 0000000..d03b1fa --- /dev/null +++ b/src/wallpapers/Pictures/rl.jpg diff --git a/src/wallpapers/Pictures/rockets.jpg b/src/wallpapers/Pictures/rockets.jpg Binary files differnew file mode 100644 index 0000000..1b6f3c9 --- /dev/null +++ b/src/wallpapers/Pictures/rockets.jpg diff --git a/src/wallpapers/Pictures/rowlet_fat.jpg b/src/wallpapers/Pictures/rowlet_fat.jpg Binary files differnew file mode 100644 index 0000000..bde5e2c --- /dev/null +++ b/src/wallpapers/Pictures/rowlet_fat.jpg diff --git a/src/wallpapers/arch-transformed.jpeg b/src/wallpapers/arch-transformed.jpeg Binary files differnew file mode 100644 index 0000000..ba5e1c8 --- /dev/null +++ b/src/wallpapers/arch-transformed.jpeg diff --git a/src/wallpapers/arch.png b/src/wallpapers/arch.png Binary files differnew file mode 100644 index 0000000..f29715a --- /dev/null +++ b/src/wallpapers/arch.png diff --git a/src/wallpapers/galaxy.jpg b/src/wallpapers/galaxy.jpg Binary files differnew file mode 100644 index 0000000..ab3af33 --- /dev/null +++ b/src/wallpapers/galaxy.jpg diff --git a/src/wallpapers/gruv.png b/src/wallpapers/gruv.png Binary files differnew file mode 100644 index 0000000..021abeb --- /dev/null +++ b/src/wallpapers/gruv.png diff --git a/src/wallpapers/gusty.png b/src/wallpapers/gusty.png Binary files differnew file mode 100644 index 0000000..5763911 --- /dev/null +++ b/src/wallpapers/gusty.png diff --git a/src/wallpapers/ilex.png b/src/wallpapers/ilex.png Binary files differnew file mode 100644 index 0000000..4d2aed4 --- /dev/null +++ b/src/wallpapers/ilex.png diff --git a/src/wallpapers/legends.jpg b/src/wallpapers/legends.jpg Binary files differnew file mode 100644 index 0000000..913197a --- /dev/null +++ b/src/wallpapers/legends.jpg diff --git a/src/wallpapers/starbits.png b/src/wallpapers/starbits.png Binary files differnew file mode 100644 index 0000000..9f630f3 --- /dev/null +++ b/src/wallpapers/starbits.png diff --git a/src/xorg/80-libinput.conf b/src/xorg/80-libinput.conf new file mode 100644 index 0000000..12fa57b --- /dev/null +++ b/src/xorg/80-libinput.conf @@ -0,0 +1,53 @@ +# Match on all types of devices but joysticks +# +# If you want to configure your devices, do not copy this file. +# Instead, use a config snippet that contains something like this: +# +# Section "InputClass" +# Identifier "something or other" +# MatchDriver "libinput" +# +# MatchIsTouchpad "on" +# ... other Match directives ... +# Option "someoption" "value" +# EndSection +# +# This applies the option any libinput device also matched by the other +# directives. See the xorg.conf(5) man page for more info on +# matching devices. + +Section "InputClass" + Identifier "libinput pointer catchall" + MatchIsPointer "on" + MatchDevicePath "/dev/input/event*" + Driver "libinput" +EndSection + +Section "InputClass" + Identifier "libinput keyboard catchall" + MatchIsKeyboard "on" + MatchDevicePath "/dev/input/event*" + Driver "libinput" +EndSection + +Section "InputClass" + Identifier "libinput touchpad catchall" + MatchIsTouchpad "on" + MatchDevicePath "/dev/input/event*" + Option "NaturalScrolling" "true" + Driver "libinput" +EndSection + +Section "InputClass" + Identifier "libinput touchscreen catchall" + MatchIsTouchscreen "on" + MatchDevicePath "/dev/input/event*" + Driver "libinput" +EndSection + +Section "InputClass" + Identifier "libinput tablet catchall" + MatchIsTablet "on" + MatchDevicePath "/dev/input/event*" + Driver "libinput" +EndSection diff --git a/src/xorg/screenlayout/work.sh b/src/xorg/screenlayout/work.sh new file mode 100755 index 0000000..cab6376 --- /dev/null +++ b/src/xorg/screenlayout/work.sh @@ -0,0 +1,2 @@ +#!/bin/sh +xrandr --output eDP-1 --primary --mode 2560x1440 --pos 0x0 --rotate normal --output DP-1 --off --output DP-2 --off --output DP-3 --off --dpi 144 diff --git a/src/zsh-setup.sh b/src/zsh-setup.sh new file mode 100755 index 0000000..5808e34 --- /dev/null +++ b/src/zsh-setup.sh @@ -0,0 +1,14 @@ +sudo pacman -S zsh + +sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" + +git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions + +git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting + +git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k + + git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim + + +cp .zshrc .p10k ~/ |