diff options
author | Aaditya Dhruv <[email protected]> | 2022-06-25 15:32:25 -0700 |
---|---|---|
committer | Aaditya Dhruv <[email protected]> | 2022-06-25 15:32:25 -0700 |
commit | 6fd5cebde927dfd3cbfcf60242379bd23b644cb1 (patch) | |
tree | 45f6003a9e6905a12c402751facb2f2a9c183f69 /.config | |
parent | 2d1d5172cff28610f7c384131260a6462ffdba1e (diff) |
config files
Diffstat (limited to '.config')
27 files changed, 5065 insertions, 0 deletions
diff --git a/.config/alacritty/alacritty.yml b/.config/alacritty/alacritty.yml new file mode 100644 index 0000000..9756ad2 --- /dev/null +++ b/.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: '#282828' + 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/.config/bspwm/bspwmrc b/.config/bspwm/bspwmrc new file mode 100755 index 0000000..381a536 --- /dev/null +++ b/.config/bspwm/bspwmrc @@ -0,0 +1,29 @@ +#! /bin/sh + + +~/.screenlayout/work.sh +nitrogen --restore +~/.config/polybar/forest/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 & +pgrep -x sxhkd > /dev/null || sxhkd & + +xfce4-power-manager & + +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 rule -a Gimp desktop='^8' state=floating follow=on +bspc rule -a Chromium desktop='^2' +bspc rule -a mplayer2 state=floating +bspc rule -a Kupfer.py focus=on +bspc rule -a Screenkey manage=off + +bspc config active_border_color '#0C1115' +bspc config focused_border_color '#ebdbb2' diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim new file mode 100644 index 0000000..c891ba1 --- /dev/null +++ b/.config/nvim/init.vim @@ -0,0 +1,4 @@ +set runtimepath^=~/.vim runtimepath+=~/.vim/after +let &packpath=&runtimepath +source ~/.vimrc + diff --git a/.config/picom/picom.conf b/.config/picom/picom.conf new file mode 100644 index 0000000..061d3c5 --- /dev/null +++ b/.config/picom/picom.conf @@ -0,0 +1,475 @@ +################################# +# Corners # +################################# +# requires: https://github.com/sdhand/compton +corner-radius = 15.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 = -7; + +# The top offset for shadows, in pixels. (defaults to -15) +# shadow-offset-y = -15 +shadow-offset-y = -7; + +# 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 = false; +# 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 = [ "80:class_g = 'URxvt'" ]; +# +# 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 = 'Chromium'", + # + # 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; shadow = true; opacity = 0.75; focus = true; full-shadow = false; } + #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/.config/polybar/forest/bars.ini b/.config/polybar/forest/bars.ini new file mode 100644 index 0000000..06b6eda --- /dev/null +++ b/.config/polybar/forest/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/.config/polybar/forest/colors.ini b/.config/polybar/forest/colors.ini new file mode 100644 index 0000000..9c9d213 --- /dev/null +++ b/.config/polybar/forest/colors.ini @@ -0,0 +1,37 @@ +;; ┌────────────────────────────────────────────────────────────┐ +;; │░█▀█░█▀█░█░░░█░█░█▀▄░█▀█░█▀▄░░░░░░░░░█▀▀░█▀█░█░░░█▀█░█▀▄░█▀▀│ +;; │░█▀▀░█░█░█░░░░█░░█▀▄░█▀█░█▀▄░░░░▀░░░░█░░░█░█░█░░░█░█░█▀▄░▀▀█│ +;; │░▀░░░▀▀▀░▀▀▀░░▀░░▀▀░░▀░▀░▀░▀░░░░▀░░░░▀▀▀░▀▀▀░▀▀▀░▀▀▀░▀░▀░▀▀▀│ +;; │░Created░By░Aditya░Shakya░@adi1090x░░░░░░░░░░░░░░░░░░░░░░░░░│ +;; └────────────────────────────────────────────────────────────┘ + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[color] + +;; Use pywal.sh in scripts directory to use colors from an image/wallpaper. + +;; main colors +background = #98282828 +foreground = #98EBDBB2 +sep = #505050 + +white = #FFFFFF +black = #000000 +red = #EC7875 +pink = #EC407A +purple = #BA68C8 +blue = #42A5F5 +cyan = #4DD0E1 +teal = #00B19F +green = #61C766 +lime = #B9C244 +yellow = #FDD835 +amber = #FBC02D +orange = #E57C46 +brown = #AC8476 +indigo = #6C77BB +gray = #9E9E9E +blue-gray = #6D8895 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/.config/polybar/forest/config.ini b/.config/polybar/forest/config.ini new file mode 100644 index 0000000..fd2de42 --- /dev/null +++ b/.config/polybar/forest/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/forest/bars.ini +include-file = ~/.config/polybar/forest/colors.ini +include-file = ~/.config/polybar/forest/modules.ini +include-file = ~/.config/polybar/forest/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 = 40 + +; 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 = 8.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 = "Meslo LGS NF:size=12;4" +font-1 = "Iosevka Nerd Font:size=12;3" +font-2 = "feather:size=12;3" +font-3 = "Nerd Font:size=12;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 sep updates filesystem +modules-center = ampp-left ampp-play ampp-right date +modules-right = battery network sep pulseaudio brightness sep + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; 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/.config/polybar/forest/launch.sh b/.config/polybar/forest/launch.sh new file mode 100755 index 0000000..2c31c90 --- /dev/null +++ b/.config/polybar/forest/launch.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +# Add this script to your wm startup file. + +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 bar +polybar -q main -c "$DIR"/config.ini & diff --git a/.config/polybar/forest/modules.ini b/.config/polybar/forest/modules.ini new file mode 100644 index 0000000..ce46ea6 --- /dev/null +++ b/.config/polybar/forest/modules.ini @@ -0,0 +1,1090 @@ +;; ┌────────────────────────────────────────────────────────────────┐ +;; │░█▀█░█▀█░█░░░█░█░█▀▄░█▀█░█▀▄░░░░░░░░░█▄█░█▀█░█▀▄░█░█░█░░░█▀▀░█▀▀│ +;; │░█▀▀░█░█░█░░░░█░░█▀▄░█▀█░█▀▄░░░░▀░░░░█░█░█░█░█░█░█░█░█░░░█▀▀░▀▀█│ +;; │░▀░░░▀▀▀░▀▀▀░░▀░░▀▀░░▀░▀░▀░▀░░░░▀░░░░▀░▀░▀▀▀░▀▀░░▀▀▀░▀▀▀░▀▀▀░▀▀▀│ +;; │░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 = BAT0 +adapter = 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.green} + +; Available tags: +; <label-discharging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-discharging> +format-discharging = <label-discharging> +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 <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 = at %I:%M %p + +; if `date-alt` or `time-alt` is defined, clicking +; the module will toggle between formats +date-alt = It's %A, %d %B %Y +time-alt = at %k:%M:%S + +; Available tags: +; <label> (default) +format = <label> +format-prefix = " " +format-prefix-foreground = ${color.red} + +; Available tokens: +; %date% +; %time% +; Default: %date% +label = %date% %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 = eth0 + +[module/wireless-network] +type = internal/network +interface = wlp2s0 + +; Normal Module +[module/network] +type = internal/network +interface = wlp2s0 + +; 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.purple} + +; 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 &:} 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 + +; 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> +format-prefix = +format-foreground = ${color.foreground} + +; 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.pink} + +; 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/.config/polybar/forest/preview.ini b/.config/polybar/forest/preview.ini new file mode 100644 index 0000000..bcd553f --- /dev/null +++ b/.config/polybar/forest/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/forest/bars.ini +include-file = ~/.config/polybar/forest/colors.ini +include-file = ~/.config/polybar/forest/modules.ini +include-file = ~/.config/polybar/forest/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/.config/polybar/forest/preview.sh b/.config/polybar/forest/preview.sh new file mode 100755 index 0000000..695d051 --- /dev/null +++ b/.config/polybar/forest/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/.config/polybar/forest/scripts/checkupdates b/.config/polybar/forest/scripts/checkupdates new file mode 100755 index 0000000..4d8a5e8 --- /dev/null +++ b/.config/polybar/forest/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/.config/polybar/forest/scripts/launcher.sh b/.config/polybar/forest/scripts/launcher.sh new file mode 100755 index 0000000..b853625 --- /dev/null +++ b/.config/polybar/forest/scripts/launcher.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +FILE="$HOME/.config/polybar/forest/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 -no-config -no-lazy-grab -show drun -modi drun -theme ~/.config/polybar/forest/scripts/rofi/launcher.rasi diff --git a/.config/polybar/forest/scripts/powermenu.sh b/.config/polybar/forest/scripts/powermenu.sh new file mode 100755 index 0000000..84eddf4 --- /dev/null +++ b/.config/polybar/forest/scripts/powermenu.sh @@ -0,0 +1,94 @@ +#!/usr/bin/env bash + +## Author : Aditya Shakya +## Mail : [email protected] +## Github : @adi1090x +## Twitter : @adi1090x + +dir="~/.config/polybar/forest/scripts/rofi" +uptime=$(uptime -p | sed -e 's/up //g') + +rofi_command="rofi -theme $dir/powermenu.rasi" + +# Options +shutdown=" Shutdown" +reboot=" Restart" +lock=" Lock" +suspend=" Sleep" +logout=" Logout" + +# Confirmation +confirm_exit() { + rofi -dmenu\ + -i\ + -no-fixed-num-lines\ + -p "Are You Sure? : "\ + -theme $dir/confirm.rasi +} + +# Message +msg() { + rofi -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) + if [[ -f /usr/bin/i3lock ]]; then + i3lock + elif [[ -f /usr/bin/betterlockscreen ]]; then + betterlockscreen -l + fi + ;; + $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/.config/polybar/forest/scripts/rofi/colors.rasi b/.config/polybar/forest/scripts/rofi/colors.rasi new file mode 100644 index 0000000..d3de6f0 --- /dev/null +++ b/.config/polybar/forest/scripts/rofi/colors.rasi @@ -0,0 +1,13 @@ +/* colors */ + +* { + al: #00000000; + bg: #282828FF; + bga: #313131FF; + fg: #EBDBB2FF; + ac: #FB4934FF; + se: #8EC07CFF; + we: #ebdbb2ff; + aq: #98971aff; + re: #cc241dff; +} diff --git a/.config/polybar/forest/scripts/rofi/confirm.rasi b/.config/polybar/forest/scripts/rofi/confirm.rasi new file mode 100644 index 0000000..0db4b79 --- /dev/null +++ b/.config/polybar/forest/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/.config/polybar/forest/scripts/rofi/launcher.rasi b/.config/polybar/forest/scripts/rofi/launcher.rasi new file mode 100644 index 0000000..54340ab --- /dev/null +++ b/.config/polybar/forest/scripts/rofi/launcher.rasi @@ -0,0 +1,117 @@ +/* + * + * 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: 500px; + location: center; + x-offset: 0; + y-offset: 0; +} + +prompt { + enabled: true; + padding: 0px; + background-color: @bga; + text-color: @ac; + 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: @re; + 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: 12px; +} + +element-icon { + size: 36px; + 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: @aq; +} diff --git a/.config/polybar/forest/scripts/rofi/message.rasi b/.config/polybar/forest/scripts/rofi/message.rasi new file mode 100644 index 0000000..4c7ef7f --- /dev/null +++ b/.config/polybar/forest/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/.config/polybar/forest/scripts/rofi/networkmenu.rasi b/.config/polybar/forest/scripts/rofi/networkmenu.rasi new file mode 100644 index 0000000..012e1ea --- /dev/null +++ b/.config/polybar/forest/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/.config/polybar/forest/scripts/rofi/powermenu.rasi b/.config/polybar/forest/scripts/rofi/powermenu.rasi new file mode 100644 index 0000000..4a63489 --- /dev/null +++ b/.config/polybar/forest/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/.config/polybar/forest/scripts/rofi/styles.rasi b/.config/polybar/forest/scripts/rofi/styles.rasi new file mode 100644 index 0000000..6b7bd30 --- /dev/null +++ b/.config/polybar/forest/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/.config/polybar/forest/scripts/style-switch.sh b/.config/polybar/forest/scripts/style-switch.sh new file mode 100755 index 0000000..e0188f3 --- /dev/null +++ b/.config/polybar/forest/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/.config/polybar/forest/scripts/styles.sh b/.config/polybar/forest/scripts/styles.sh new file mode 100755 index 0000000..35899a9 --- /dev/null +++ b/.config/polybar/forest/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/.config/polybar/forest/scripts/updates.sh b/.config/polybar/forest/scripts/updates.sh new file mode 100755 index 0000000..70edf26 --- /dev/null +++ b/.config/polybar/forest/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/.config/polybar/forest/user_modules.ini b/.config/polybar/forest/user_modules.ini new file mode 100644 index 0000000..507db1f --- /dev/null +++ b/.config/polybar/forest/user_modules.ini @@ -0,0 +1,244 @@ +;; ┌──────────────────────────────────────────────────────────────────────────────-----┐ +;; │░█▀█░█▀█░█░░░█░█░█▀▄░█▀█░█▀▄░░░░░░░░░█░█░█▀▀░█▀▀░█▀▄░░░█▄█░█▀█░█▀▄░█░█░█░░░█▀▀░█▀▀ │ +;; │░█▀▀░█░█░█░░░░█░░█▀▄░█▀█░█▀▄░░░░▀░░░░█░█░▀▀█░█▀▀░█▀▄░░░█░█░█░█░█░█░█░█░█░░░█▀▀░▀▀█ │ +;; │░▀░░░▀▀▀░▀▀▀░░▀░░▀▀░░▀░▀░▀░▀░░░░▀░░░░▀▀▀░▀▀▀░▀▀▀░▀░▀░░░▀░▀░▀▀▀░▀▀░░▀▀▀░▀▀▀░▀▀▀░▀▀▀ │ +;; │░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/forest/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/forest/scripts/launcher.sh & +;;click-middle = ~/.config/polybar/forest/scripts/launcher-full +click-right = ~/.config/polybar/forest/scripts/style-switch.sh & + +; "scroll-(up|down)" will be executed using "/usr/bin/env sh -c $COMMAND" +;;scroll-up = ~/.config/polybar/forest/scripts/launcher.sh & +;;scroll-down = ~/.config/polybar/forest/scripts/color-switch.sh & + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/sysmenu] +type = custom/text + +content = +content-foreground = ${color.cyan} + +click-left = ~/.config/polybar/forest/scripts/powermenu.sh & + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/color-switch] +type = custom/text + +content = +content-foreground = ${color.red} + +click-left = ~/.config/polybar/forest/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/forest/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 = " | " + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/.config/polybar/launch.sh b/.config/polybar/launch.sh new file mode 100755 index 0000000..c2da5b7 --- /dev/null +++ b/.config/polybar/launch.sh @@ -0,0 +1,81 @@ +#!/usr/bin/env bash + +dir="$HOME/.config/polybar" +themes=(`ls --hide="launch.sh" $dir`) + +launch_bar() { + # 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 + if [[ "$style" == "hack" || "$style" == "cuts" ]]; then + polybar -q top -c "$dir/$style/config.ini" & + polybar -q bottom -c "$dir/$style/config.ini" & + elif [[ "$style" == "pwidgets" ]]; then + bash "$dir"/pwidgets/launch.sh --main + else + polybar -q main -c "$dir/$style/config.ini" & + fi +} + +if [[ "$1" == "--material" ]]; then + style="material" + launch_bar + +elif [[ "$1" == "--shades" ]]; then + style="shades" + launch_bar + +elif [[ "$1" == "--hack" ]]; then + style="hack" + launch_bar + +elif [[ "$1" == "--docky" ]]; then + style="docky" + launch_bar + +elif [[ "$1" == "--cuts" ]]; then + style="cuts" + launch_bar + +elif [[ "$1" == "--shapes" ]]; then + style="shapes" + launch_bar + +elif [[ "$1" == "--grayblocks" ]]; then + style="grayblocks" + launch_bar + +elif [[ "$1" == "--blocks" ]]; then + style="blocks" + launch_bar + +elif [[ "$1" == "--colorblocks" ]]; then + style="colorblocks" + launch_bar + +elif [[ "$1" == "--forest" ]]; then + style="forest" + launch_bar + +elif [[ "$1" == "--pwidgets" ]]; then + style="pwidgets" + launch_bar + +elif [[ "$1" == "--panels" ]]; then + style="panels" + launch_bar + +else + cat <<- EOF + Usage : launch.sh --theme + + Available Themes : + --blocks --colorblocks --cuts --docky + --forest --grayblocks --hack --material + --panels --pwidgets --shades --shapes + EOF +fi diff --git a/.config/sxhkd/sxhkdrc b/.config/sxhkd/sxhkdrc new file mode 100644 index 0000000..c8714e3 --- /dev/null +++ b/.config/sxhkd/sxhkdrc @@ -0,0 +1,133 @@ +# +# wm independent hotkeys +# + +# terminal emulator +super + Return + alacritty + +# program launcher +super + @space + ~/.config/polybar/forest/scripts/launcher.sh & + +# make sxhkd reload its configuration files: +super + Escape + pkill -USR1 -x sxhkd + +super + shift + {e} + ~/.config/polybar/forest/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} + + +XF86AudioRaiseVolume + pactl set-sink-volume @DEFAULT_SINK@ +5% +XF86AudioLowerVolume + pactl set-sink-volume @DEFAULT_SINK@ -5% + + +XF86MonBrightness{Up, Down} + xbacklight -{inc, dec} 5 & |