parent
6d93a8c225
commit
9060606810
@ -0,0 +1,3 @@
|
||||
[submodule "config/zsh/plugins/zsh-autosuggestions"]
|
||||
path = config/zsh/plugins/zsh-autosuggestions
|
||||
url = https://github.com/zsh-users/zsh-autosuggestions
|
||||
@ -0,0 +1,551 @@
|
||||
# Configuration for Alacritty, the GPU enhanced terminal emulator.
|
||||
|
||||
# Any items in the `env` entry below will be added as
|
||||
# environment variables. Some entries may override variables
|
||||
# set by alacritty itself.
|
||||
env:
|
||||
# TERM variable
|
||||
#
|
||||
# This value is used to set the `$TERM` environment variable for
|
||||
# each instance of Alacritty. If it is not present, alacritty will
|
||||
# check the local terminfo database and use `alacritty` if it is
|
||||
# available, otherwise `xterm-256color` is used.
|
||||
TERM: xterm-256color
|
||||
|
||||
window:
|
||||
# Window dimensions (changes require restart)
|
||||
#
|
||||
# Specified in number of columns/lines, not pixels.
|
||||
# If both are `0`, this setting is ignored.
|
||||
#dimensions:
|
||||
# columns: 0
|
||||
# lines: 0
|
||||
|
||||
# Window position (changes require restart)
|
||||
#
|
||||
# Specified in number of pixels.
|
||||
# If the position is not set, the window manager will handle the placement.
|
||||
#position:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Window padding (changes require restart)
|
||||
#
|
||||
# Blank space added around the window in pixels. This padding is scaled
|
||||
# by DPI and the specified value is always added at both opposing sides.
|
||||
padding:
|
||||
x: 4
|
||||
y: 4
|
||||
|
||||
# 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, but no title bar buttons
|
||||
decorations: full
|
||||
|
||||
# Startup Mode (changes require restart)
|
||||
#
|
||||
# Values for `startup_mode`:
|
||||
# - Windowed
|
||||
# - Maximized
|
||||
# - Fullscreen
|
||||
#
|
||||
# Values for `startup_mode` (macOS only):
|
||||
# - SimpleFullscreen
|
||||
#startup_mode: Windowed
|
||||
|
||||
# Window title
|
||||
#title: Alacritty
|
||||
|
||||
# Window class (Linux/BSD only):
|
||||
#class:
|
||||
# Application instance name
|
||||
#instance: Alacritty
|
||||
# General application class
|
||||
#general: Alacritty
|
||||
|
||||
# GTK theme variant (Linux/BSD only)
|
||||
#
|
||||
# Override the variant of the GTK theme. Commonly supported values are `dark` and `light`.
|
||||
# Set this to `None` to use the default theme variant.
|
||||
#gtk_theme_variant: None
|
||||
|
||||
#scrolling:
|
||||
# Maximum number of lines in the scrollback buffer.
|
||||
# Specifying '0' will disable scrolling.
|
||||
#history: 10000
|
||||
|
||||
# Number of lines the viewport will move for every line scrolled when
|
||||
# scrollback is enabled (history > 0).
|
||||
#multiplier: 3
|
||||
|
||||
# Font configuration
|
||||
font:
|
||||
# Normal (roman) font face
|
||||
normal:
|
||||
# Font family
|
||||
#
|
||||
# Default:
|
||||
# - (macOS) Menlo
|
||||
# - (Linux/BSD) monospace
|
||||
# - (Windows) Consolas
|
||||
family: DejaVuSansMono Nerd Font
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
style: Regular
|
||||
|
||||
# Bold font face
|
||||
bold:
|
||||
# Font family
|
||||
#
|
||||
# If the bold family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
family: DejaVuSansMono Nerd Font
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
style: Bold
|
||||
|
||||
# Italic font face
|
||||
italic:
|
||||
# Font family
|
||||
#
|
||||
# If the italic family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
family: DejaVuSansMono Nerd Font
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
style: Italic
|
||||
|
||||
# Bold italic font face
|
||||
bold_italic:
|
||||
# Font family
|
||||
#
|
||||
# If the bold italic family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
family: DejaVuSansMono Nerd Font
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
style: Bold Italic
|
||||
|
||||
# Point size
|
||||
size: 8
|
||||
|
||||
# Offset is the extra space around each character. `offset.y` can be thought of
|
||||
# as modifying the line spacing, and `offset.x` as modifying the letter spacing.
|
||||
#offset:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Glyph offset determines the locations of the glyphs within their cells with
|
||||
# the default being at the bottom. Increasing `x` moves the glyph to the right,
|
||||
# increasing `y` moves the glyph upwards.
|
||||
#glyph_offset:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Thin stroke font rendering (macOS only)
|
||||
#
|
||||
# Thin strokes are suitable for retina displays, but for non-retina screens
|
||||
# it is recommended to set `use_thin_strokes` to `false`
|
||||
#
|
||||
# macOS >= 10.14.x:
|
||||
#
|
||||
# If the font quality on non-retina display looks bad then set
|
||||
# `use_thin_strokes` to `true` and enable font smoothing by running the
|
||||
# following command:
|
||||
# `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO`
|
||||
#
|
||||
# This is a global setting and will require a log out or restart to take
|
||||
# effect.
|
||||
#use_thin_strokes: true
|
||||
|
||||
# If `true`, bold text is drawn using the bright color variants.
|
||||
#draw_bold_text_with_bright_colors: false
|
||||
|
||||
# Colors (Dracula)
|
||||
colors:
|
||||
# Default colors
|
||||
primary:
|
||||
background: '#282a36'
|
||||
foreground: '#f8f8f2'
|
||||
|
||||
# Bright and dim foreground colors
|
||||
#
|
||||
# The dimmed foreground color is calculated automatically if it is not present.
|
||||
# If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
|
||||
# is `false`, the normal foreground color will be used.
|
||||
#dim_foreground: '0x9a9a9a'
|
||||
bright_foreground: '#6e46a4'
|
||||
|
||||
# Cursor colors
|
||||
#
|
||||
# Colors which should be used to draw the terminal cursor. If these are unset,
|
||||
# the cursor color will be the inverse of the cell color.
|
||||
cursor:
|
||||
text: '#44475a'
|
||||
cursor: '#f8f8f2'
|
||||
|
||||
# Normal colors
|
||||
normal:
|
||||
black: '#262626'
|
||||
red: '#e64747'
|
||||
green: '#42e66c'
|
||||
yellow: '#e4f34a'
|
||||
blue: '#9b6bdf'
|
||||
magenta: '#e356a7'
|
||||
cyan: '#75d7ec'
|
||||
white: '#efa554'
|
||||
|
||||
# Bright colors
|
||||
bright:
|
||||
black: '#7a7a7a'
|
||||
red: '#ff5555'
|
||||
green: '#50fa7b'
|
||||
yellow: '#f1fa8c'
|
||||
blue: '#bd93f9'
|
||||
magenta: '#ff79c6'
|
||||
cyan: '#8be9fd'
|
||||
white: '#ffb86c'
|
||||
|
||||
# Dim colors
|
||||
#
|
||||
# If the dim colors are not set, they will be calculated automatically based
|
||||
# on the `normal` colors.
|
||||
#dim:
|
||||
# black: '#14151b'
|
||||
# red: '#ff2222'
|
||||
# green: '#1ef956'
|
||||
# yellow: '#ebf85b'
|
||||
# blue: '#4d5b86'
|
||||
# magenta: '#ff46b0'
|
||||
# cyan: '#59dffc'
|
||||
# white: '#e6e6d1'
|
||||
|
||||
# Indexed Colors
|
||||
#
|
||||
# The indexed colors include all colors from 16 to 256.
|
||||
# When these are not set, they're filled with sensible defaults.
|
||||
#
|
||||
# Example:
|
||||
# `- { index: 16, color: '0xff00ff' }`
|
||||
#
|
||||
indexed_colors: []
|
||||
|
||||
# Visual Bell
|
||||
#
|
||||
# Any time the BEL code is received, Alacritty "rings" the visual bell. Once
|
||||
# rung, the terminal background will be set to white and transition back to the
|
||||
# default background color. You can control the rate of this transition by
|
||||
# setting the `duration` property (represented in milliseconds). You can also
|
||||
# configure the transition function by setting the `animation` property.
|
||||
#
|
||||
# Values for `animation`:
|
||||
# - Ease
|
||||
# - EaseOut
|
||||
# - EaseOutSine
|
||||
# - EaseOutQuad
|
||||
# - EaseOutCubic
|
||||
# - EaseOutQuart
|
||||
# - EaseOutQuint
|
||||
# - EaseOutExpo
|
||||
# - EaseOutCirc
|
||||
# - Linear
|
||||
#
|
||||
# Specifying a `duration` of `0` will disable the visual bell.
|
||||
#visual_bell:
|
||||
# animation: EaseOutExpo
|
||||
# duration: 0
|
||||
# color: '#ffffff'
|
||||
|
||||
# Background opacity
|
||||
#
|
||||
# Window opacity as a floating point number from `0.0` to `1.0`.
|
||||
# The value `0.0` is completely transparent and `1.0` is opaque.
|
||||
background_opacity: 0.9
|
||||
|
||||
#selection:
|
||||
#semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
|
||||
|
||||
# When set to `true`, selected text will be copied to the primary clipboard.
|
||||
#save_to_clipboard: false
|
||||
|
||||
# Allow terminal applications to change Alacritty's window title.
|
||||
#dynamic_title: true
|
||||
|
||||
#cursor:
|
||||
# Cursor style
|
||||
#
|
||||
# Values for `style`:
|
||||
# - ▇ Block
|
||||
# - _ Underline
|
||||
# - | Beam
|
||||
#style: Block
|
||||
|
||||
# If this is `true`, the cursor will be rendered as a hollow box when the
|
||||
# window is not focused.
|
||||
#unfocused_hollow: true
|
||||
|
||||
# Live config reload (changes require restart)
|
||||
#live_config_reload: true
|
||||
|
||||
# Shell
|
||||
#
|
||||
# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`.
|
||||
# Entries in `shell.args` are passed unmodified as arguments to the shell.
|
||||
#
|
||||
# Default:
|
||||
# - (macOS) /bin/bash --login
|
||||
# - (Linux/BSD) user login shell
|
||||
# - (Windows) powershell
|
||||
#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
|
||||
|
||||
# WinPTY backend (Windows only)
|
||||
#
|
||||
# Alacritty defaults to using the newer ConPTY backend if it is available,
|
||||
# since it resolves a lot of bugs and is quite a bit faster. If it is not
|
||||
# available, the the WinPTY backend will be used instead.
|
||||
#
|
||||
# Setting this option to `true` makes Alacritty use the legacy WinPTY backend,
|
||||
# even if the ConPTY backend is available.
|
||||
#winpty_backend: false
|
||||
|
||||
# Send ESC (\x1b) before characters when alt is pressed.
|
||||
#alt_send_esc: true
|
||||
|
||||
#mouse:
|
||||
# Click settings
|
||||
#
|
||||
# The `double_click` and `triple_click` settings control the time
|
||||
# alacritty should wait for accepting multiple clicks as one double
|
||||
# or triple click.
|
||||
#double_click: { threshold: 300 }
|
||||
#triple_click: { threshold: 300 }
|
||||
|
||||
# If this is `true`, the cursor is temporarily hidden when typing.
|
||||
#hide_when_typing: false
|
||||
|
||||
#url:
|
||||
# URL launcher
|
||||
#
|
||||
# This program is executed when clicking on a text which is recognized as a URL.
|
||||
# The URL is always added to the command as the last parameter.
|
||||
#
|
||||
# When set to `None`, URL launching will be disabled completely.
|
||||
#
|
||||
# Default:
|
||||
# - (macOS) open
|
||||
# - (Linux/BSD) xdg-open
|
||||
# - (Windows) explorer
|
||||
#launcher:
|
||||
# program: xdg-open
|
||||
# args: []
|
||||
|
||||
# URL modifiers
|
||||
#
|
||||
# These are the modifiers that need to be held down for opening URLs when clicking
|
||||
# on them. The available modifiers are documented in the key binding section.
|
||||
#modifiers: None
|
||||
|
||||
# Mouse bindings
|
||||
#
|
||||
# Mouse bindings are specified as a list of objects, much like the key
|
||||
# bindings further below.
|
||||
#
|
||||
# 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)
|
||||
#
|
||||
# And optionally:
|
||||
#
|
||||
# - `mods` (see key bindings)
|
||||
#mouse_bindings:
|
||||
# - { mouse: Middle, action: PasteSelection }
|
||||
|
||||
# Key bindings
|
||||
#
|
||||
# Key bindings are specified as a list of objects. For example, this is the
|
||||
# default paste binding:
|
||||
#
|
||||
# `- { key: V, mods: Control|Shift, action: Paste }`
|
||||
#
|
||||
# Each key binding will specify a:
|
||||
#
|
||||
# - `key`: Identifier of the key pressed
|
||||
#
|
||||
# - A-Z
|
||||
# - F1-F24
|
||||
# - Key0-Key9
|
||||
#
|
||||
# A full list with available key codes can be found here:
|
||||
# https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants
|
||||
#
|
||||
# Instead of using the name of the keys, the `key` field also supports using
|
||||
# the scancode of the desired key. Scancodes have to be specified as a
|
||||
# decimal number. This command will allow you to display the hex scancodes
|
||||
# for certain keys:
|
||||
#
|
||||
# `showkey --scancodes`.
|
||||
#
|
||||
# Then exactly one of:
|
||||
#
|
||||
# - `chars`: Send a byte sequence to the running application
|
||||
#
|
||||
# The `chars` field writes the specified string to the terminal. This makes
|
||||
# it possible to pass escape sequences. To find escape codes for bindings
|
||||
# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside
|
||||
# of tmux. Note that applications use terminfo to map escape sequences back
|
||||
# to keys. It is therefore required to update the terminfo when changing an
|
||||
# escape sequence.
|
||||
#
|
||||
# - `action`: Execute a predefined action
|
||||
#
|
||||
# - Copy
|
||||
# - Paste
|
||||
# - PasteSelection
|
||||
# - IncreaseFontSize
|
||||
# - DecreaseFontSize
|
||||
# - ResetFontSize
|
||||
# - ScrollPageUp
|
||||
# - ScrollPageDown
|
||||
# - ScrollLineUp
|
||||
# - ScrollLineDown
|
||||
# - ScrollToTop
|
||||
# - ScrollToBottom
|
||||
# - ClearHistory
|
||||
# - Hide
|
||||
# - Minimize
|
||||
# - Quit
|
||||
# - ToggleFullscreen
|
||||
# - SpawnNewInstance
|
||||
# - ClearLogNotice
|
||||
# - ReceiveChar
|
||||
# - None
|
||||
#
|
||||
# (macOS only):
|
||||
# - ToggleSimpleFullscreen: Enters fullscreen without occupying another space
|
||||
#
|
||||
# - `command`: Fork and execute a specified command plus arguments
|
||||
#
|
||||
# The `command` field must be a map containing a `program` string and an
|
||||
# `args` array of command line parameter strings. For example:
|
||||
# `{ program: "alacritty", args: ["-e", "vttest"] }`
|
||||
#
|
||||
# And optionally:
|
||||
#
|
||||
# - `mods`: Key modifiers to filter binding actions
|
||||
#
|
||||
# - Command
|
||||
# - Control
|
||||
# - Option
|
||||
# - Super
|
||||
# - Shift
|
||||
# - Alt
|
||||
#
|
||||
# Multiple `mods` can be combined using `|` like this:
|
||||
# `mods: Control|Shift`.
|
||||
# Whitespace and capitalization are relevant and must match the example.
|
||||
#
|
||||
# - `mode`: Indicate a binding for only specific terminal reported modes
|
||||
#
|
||||
# This is mainly used to send applications the correct escape sequences
|
||||
# when in different modes.
|
||||
#
|
||||
# - AppCursor
|
||||
# - AppKeypad
|
||||
# - Alt
|
||||
#
|
||||
# A `~` operator can be used before a mode to apply the binding whenever
|
||||
# the mode is *not* active, e.g. `~Alt`.
|
||||
#
|
||||
# Bindings are always filled by default, but will be replaced when a new
|
||||
# binding with the same triggers is defined. To unset a default binding, it can
|
||||
# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for
|
||||
# a no-op if you do not wish to receive input characters for that binding.
|
||||
#
|
||||
# If the same trigger is assigned to multiple actions, all of them are executed
|
||||
# at once.
|
||||
#key_bindings:
|
||||
# (Windows, Linux, and BSD only)
|
||||
#- { key: V, mods: Control|Shift, action: Paste }
|
||||
#- { key: C, mods: Control|Shift, action: Copy }
|
||||
#- { key: Insert, mods: Shift, action: PasteSelection }
|
||||
#- { key: Key0, mods: Control, action: ResetFontSize }
|
||||
#- { key: Equals, mods: Control, action: IncreaseFontSize }
|
||||
#- { key: Add, mods: Control, action: IncreaseFontSize }
|
||||
#- { key: Subtract, mods: Control, action: DecreaseFontSize }
|
||||
#- { key: Minus, mods: Control, action: DecreaseFontSize }
|
||||
|
||||
# (Windows only)
|
||||
#- { key: Return, mods: Alt, action: ToggleFullscreen }
|
||||
|
||||
# (macOS only)
|
||||
#- { key: Key0, mods: Command, action: ResetFontSize }
|
||||
#- { key: Equals, mods: Command, action: IncreaseFontSize }
|
||||
#- { key: Add, mods: Command, action: IncreaseFontSize }
|
||||
#- { key: Minus, mods: Command, action: DecreaseFontSize }
|
||||
#- { key: K, mods: Command, action: ClearHistory }
|
||||
#- { key: K, mods: Command, chars: "\x0c" }
|
||||
#- { key: V, mods: Command, action: Paste }
|
||||
#- { key: C, mods: Command, action: Copy }
|
||||
#- { key: H, mods: Command, action: Hide }
|
||||
#- { key: M, mods: Command, action: Minimize }
|
||||
#- { key: Q, mods: Command, action: Quit }
|
||||
#- { key: W, mods: Command, action: Quit }
|
||||
#- { key: F, mods: Command|Control, action: ToggleFullscreen }
|
||||
|
||||
#- { key: Paste, action: Paste }
|
||||
#- { key: Copy, action: Copy }
|
||||
#- { key: L, mods: Control, action: ClearLogNotice }
|
||||
#- { key: L, mods: Control, chars: "\x0c" }
|
||||
#- { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt }
|
||||
#- { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt }
|
||||
#- { key: Home, mods: Shift, action: ScrollToTop, mode: ~Alt }
|
||||
#- { key: End, mods: Shift, action: ScrollToBottom, mode: ~Alt }
|
||||
|
||||
#debug:
|
||||
# Display the time it takes to redraw each frame.
|
||||
#render_timer: false
|
||||
|
||||
# Keep the log file after quitting Alacritty.
|
||||
#persistent_logging: false
|
||||
|
||||
# Log level
|
||||
#
|
||||
# Values for `log_level`:
|
||||
# - None
|
||||
# - Error
|
||||
# - Warn
|
||||
# - Info
|
||||
# - Debug
|
||||
# - Trace
|
||||
#log_level: Warn
|
||||
|
||||
# Print all received window events.
|
||||
#print_events: false
|
||||
@ -0,0 +1,40 @@
|
||||
#! /usr/bin/bash
|
||||
|
||||
# Workaround for: https://github.com/baskerville/bspwm/issues/52
|
||||
wmname LG3D
|
||||
export _JAVA_AWT_WM_NONPARENTING=1
|
||||
|
||||
|
||||
# Fix monitors
|
||||
xrandr --output DisplayPort-0 --primary --auto --output DisplayPort-1 --auto --left-of DisplayPort-0 --output HDMI-A-0 --auto --right-of DisplayPort-0
|
||||
|
||||
|
||||
sxhkd &
|
||||
picom -b
|
||||
copyq &
|
||||
|
||||
# https://wiki.archlinux.org/index.php/GNOME/Keyring
|
||||
# eval $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh)
|
||||
# export $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh)
|
||||
|
||||
# Wallpaper and finally the status bar
|
||||
feh --bg-scale ~/Pictures/wallpaper.jpg
|
||||
$HOME/.config/polybar/launchpolybar
|
||||
# Swallow parent process with the child
|
||||
pidof bspswallow || bspswallow &
|
||||
|
||||
|
||||
bspc config border_width 1
|
||||
bspc config window_gap 7
|
||||
|
||||
bspc config split_ratio 0.50
|
||||
bspc config borderless_monocle true
|
||||
bspc config gapless_monocle true
|
||||
bspc config focused_border_color \#444444
|
||||
bspc config normal_border_color \#080808
|
||||
|
||||
bspc monitor DisplayPort-0 -d 4 5 6 7 8
|
||||
bspc monitor DisplayPort-1 -d 1 2 3
|
||||
bspc monitor HDMI-A-0 -d 9 0
|
||||
|
||||
bspc rule -a Zathura state=tiled
|
||||
@ -0,0 +1,2 @@
|
||||
xev
|
||||
|
||||
@ -0,0 +1 @@
|
||||
Alacritty
|
||||
@ -0,0 +1,139 @@
|
||||
set previewer pistol
|
||||
set hidden true
|
||||
set color256 true
|
||||
set drawbox true
|
||||
set icons true
|
||||
set ignorecase true
|
||||
|
||||
cmd open ${{
|
||||
case $(file --mime-type "$f" -bL) in
|
||||
text/*|application/json) $EDITOR "$f";;
|
||||
image/*) sxiv "$f";;
|
||||
application/pdf) zathura "$f";;
|
||||
video/*) mpv "$f";;
|
||||
*) xdg-open "$f";;
|
||||
esac
|
||||
}}
|
||||
|
||||
cmd mkdir ${{
|
||||
printf "Directory Name: "
|
||||
read ans
|
||||
mkdir $ans
|
||||
}}
|
||||
|
||||
cmd mkfile ${{
|
||||
printf "File Name: "
|
||||
read ans
|
||||
$EDITOR $ans
|
||||
}}
|
||||
|
||||
cmd chmod ${{
|
||||
printf "Bits: "
|
||||
read ans
|
||||
for file in "$fx"
|
||||
do
|
||||
chmod $ans $file
|
||||
done
|
||||
|
||||
lf -remote "send reload"
|
||||
}}
|
||||
|
||||
cmd sudochmod ${{
|
||||
printf "(sudo) Bits: "
|
||||
read ans
|
||||
for file in "$fx"
|
||||
do
|
||||
sudo chmod $ans $file
|
||||
done
|
||||
|
||||
lf -remote "send reload"
|
||||
}}
|
||||
|
||||
cmd sudomkfile ${{
|
||||
printf "(sudo) File Name: "
|
||||
read ans
|
||||
sudo $EDITOR $ans
|
||||
}}
|
||||
|
||||
cmd setwallpaper %cp "$f" ~/.config/wall.png && feh --bg-scale "$f"
|
||||
|
||||
cmd fzfjump ${{
|
||||
res="$(find . -maxdepth 3 | fzf --reverse --header='Jump to location')"
|
||||
if [ -f "$res" ]; then
|
||||
cmd="select"
|
||||
elif [ -d "$res" ]; then
|
||||
cmd="cd"
|
||||
fi
|
||||
lf -remote "send $id $cmd \"$res\""
|
||||
}}
|
||||
|
||||
cmd unarchive ${{
|
||||
case "$f" in
|
||||
*.zip) unzip "$f" ;;
|
||||
*.tar*) tar -xvf "$f";;
|
||||
*) echo "Unsupported Format";;
|
||||
esac
|
||||
}}
|
||||
|
||||
# Key Bindings
|
||||
|
||||
# Remove some default bindings
|
||||
map m
|
||||
map o
|
||||
map n
|
||||
map "'"
|
||||
map '"'
|
||||
map d
|
||||
map c
|
||||
map e
|
||||
map f
|
||||
map v
|
||||
map i
|
||||
map i invert
|
||||
map w
|
||||
|
||||
# File Openers
|
||||
map ee $$EDITOR "$f"
|
||||
map v $view "$f"
|
||||
map u unarchive
|
||||
|
||||
# Finder
|
||||
map f fzfjump
|
||||
|
||||
map . set hidden!
|
||||
map dd delete
|
||||
map p paste
|
||||
map y copy
|
||||
map x cut
|
||||
map <enter> open
|
||||
map mf mkfile
|
||||
map md mkdir
|
||||
map mr sudomkfile
|
||||
map ch chmod
|
||||
map cr sudochmod
|
||||
map bg setwallpaper
|
||||
map r rename
|
||||
map H top
|
||||
map L bottom
|
||||
map R reload
|
||||
map C clear
|
||||
map U unselect
|
||||
|
||||
map gh cd ~
|
||||
map gp cd ~/Pictures
|
||||
map gw cd ~/Pictures/Wallpapers
|
||||
|
||||
map gd cd ~/Documents
|
||||
map gD cd ~/Downloads
|
||||
|
||||
map gb cd ~/bin
|
||||
|
||||
map gc. cd ~/code
|
||||
map gcg cd ~/code/Projects/Golang/src
|
||||
map gcp cd ~/code/Projects/Python
|
||||
map gcr cd ~/code/Projects/Rust
|
||||
|
||||
map giws cd ~/code/IWS
|
||||
map gcfg cd ~/.config
|
||||
map ge cd /etc
|
||||
map g/ cd /
|
||||
@ -0,0 +1,494 @@
|
||||
" Fisa-nvim-config
|
||||
" http://nvim.fisadev.com
|
||||
" version: 11.1
|
||||
|
||||
" Vim-plug initialization {{{
|
||||
" Avoid modifying this section, unless you are very sure of what you are doing
|
||||
|
||||
let vim_plug_just_installed = 0
|
||||
let vim_plug_path = expand('~/.config/nvim/autoload/plug.vim')
|
||||
if !filereadable(vim_plug_path)
|
||||
echo "Installing Vim-plug..."
|
||||
echo ""
|
||||
silent !mkdir -p ~/.config/nvim/autoload
|
||||
silent !curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||
let vim_plug_just_installed = 1
|
||||
endif
|
||||
|
||||
" manually load vim-plug the first time
|
||||
if vim_plug_just_installed
|
||||
:execute 'source '.fnameescape(vim_plug_path)
|
||||
endif
|
||||
|
||||
" Obscure hacks done, you can now modify the rest of the .vimrc as you wish :)
|
||||
" }}}
|
||||
" Active plugins {{{
|
||||
" You can disable or add new ones here:
|
||||
|
||||
" this needs to be here, so vim-plug knows we are declaring the plugins we
|
||||
" want to use
|
||||
call plug#begin('~/.config/nvim/plugged')
|
||||
|
||||
" Now the actual plugins:
|
||||
|
||||
" VimWiki
|
||||
Plug 'vimwiki/vimwiki'
|
||||
|
||||
" Golang plugin
|
||||
Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }
|
||||
|
||||
" Markdown previewer
|
||||
Plug 'iamcco/markdown-preview.nvim', { 'do': { -> mkdp#util#install() } }
|
||||
|
||||
" Markdown Syntax
|
||||
Plug 'godlygeek/tabular'
|
||||
Plug 'elzr/vim-json'
|
||||
Plug 'plasticboy/vim-markdown'
|
||||
|
||||
" Code commenter
|
||||
Plug 'scrooloose/nerdcommenter'
|
||||
|
||||
" Better file browser
|
||||
Plug 'scrooloose/nerdtree'
|
||||
|
||||
" Class/module browser
|
||||
Plug 'majutsushi/tagbar'
|
||||
" TODO known problems:
|
||||
" * current block not refreshing
|
||||
|
||||
" Search results counter
|
||||
Plug 'vim-scripts/IndexedSearch'
|
||||
|
||||
" Badwolf Colorscheme
|
||||
Plug 'sjl/badwolf'
|
||||
|
||||
" Airline
|
||||
Plug 'vim-airline/vim-airline'
|
||||
Plug 'vim-airline/vim-airline-themes'
|
||||
|
||||
" Code and files fuzzy finder
|
||||
" Plug 'ctrlpvim/ctrlp.vim'
|
||||
" Extension to ctrlp, for fuzzy command finder
|
||||
" Plug 'fisadev/vim-ctrlp-cmdpalette'
|
||||
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
|
||||
Plug 'junegunn/fzf.vim'
|
||||
|
||||
" Async autocompletion
|
||||
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
|
||||
" Completion from other opened files
|
||||
Plug 'Shougo/context_filetype.vim'
|
||||
" Python autocompletion
|
||||
Plug 'zchee/deoplete-jedi', { 'do': ':UpdateRemotePlugins' }
|
||||
" Just to add the python go-to-definition and similar features, autocompletion
|
||||
" from this plugin is disabled
|
||||
Plug 'davidhalter/jedi-vim'
|
||||
|
||||
" Automatically close parenthesis, etc
|
||||
Plug 'Townk/vim-autoclose'
|
||||
|
||||
" Surround
|
||||
Plug 'tpope/vim-surround'
|
||||
|
||||
" Indent text object
|
||||
Plug 'michaeljsmith/vim-indent-object'
|
||||
|
||||
" Indentation based movements
|
||||
Plug 'jeetsukumaran/vim-indentwise'
|
||||
|
||||
" Better language packs
|
||||
Plug 'sheerun/vim-polyglot'
|
||||
|
||||
" Paint css colors with the real color
|
||||
Plug 'lilydjwg/colorizer'
|
||||
|
||||
" Window chooser
|
||||
Plug 't9md/vim-choosewin'
|
||||
|
||||
" Automatically sort python imports
|
||||
Plug 'fisadev/vim-isort'
|
||||
|
||||
" Highlight matching html tags
|
||||
Plug 'valloric/MatchTagAlways'
|
||||
|
||||
" Generate html in a simple way
|
||||
Plug 'mattn/emmet-vim'
|
||||
|
||||
" Git integration
|
||||
Plug 'tpope/vim-fugitive'
|
||||
|
||||
" Git/mercurial/others diff icons on the side of the file lines
|
||||
Plug 'mhinz/vim-signify'
|
||||
|
||||
" Yank history navigation
|
||||
Plug 'vim-scripts/YankRing.vim'
|
||||
|
||||
" Black Linter integration
|
||||
Plug 'psf/black', { 'branch': 'stable' }
|
||||
|
||||
" Nice icons
|
||||
Plug 'ryanoasis/vim-devicons'
|
||||
|
||||
" Easier Terminal splits
|
||||
Plug 'vimlab/split-term.vim'
|
||||
|
||||
" Dracula theme
|
||||
Plug 'dracula/vim', {'as': 'dracula'}
|
||||
|
||||
" Tell vim-plug we finished declaring plugins, so it can load them
|
||||
call plug#end()
|
||||
|
||||
" Install plugins the first time vim runs
|
||||
|
||||
if vim_plug_just_installed
|
||||
echo "Installing Bundles, please ignore key map error messages"
|
||||
:PlugInstall
|
||||
endif
|
||||
" }}}
|
||||
" Vim settings and mappings {{{
|
||||
" You can edit them as you wish
|
||||
|
||||
" tabs and spaces handling
|
||||
set expandtab
|
||||
set tabstop=4
|
||||
set softtabstop=4
|
||||
set shiftwidth=4
|
||||
set smarttab
|
||||
if has("autocmd")
|
||||
au BufReadPost * if &modifiable | retab | endif
|
||||
endif
|
||||
|
||||
" autoread and autowrite
|
||||
augroup save
|
||||
au!
|
||||
au FocusLost * wall
|
||||
augroup END
|
||||
set nohidden
|
||||
set nobackup
|
||||
set noswapfile
|
||||
set nowritebackup
|
||||
set autoread
|
||||
set autowrite
|
||||
set autowriteall
|
||||
|
||||
" persistant undo
|
||||
set undodir=~/.vim/undo
|
||||
set undofile
|
||||
|
||||
set path+=**
|
||||
|
||||
"
|
||||
|
||||
" Reloads vimrc after saving but keeps cursor position
|
||||
if !exists('*ReloadVimrc')
|
||||
fun! ReloadVimrc()
|
||||
let save_cursor = getcurpos()
|
||||
source $MYVIMRC
|
||||
call setpos('.', save_cursor)
|
||||
endfun
|
||||
endif
|
||||
autocmd! BufWritePost $MYVIMRC call ReloadVimrc()
|
||||
|
||||
" Set 80 character column identifier
|
||||
set colorcolumn=80,100,120
|
||||
|
||||
" show line numbers
|
||||
set number relativenumber
|
||||
|
||||
" Toggle between number and relativenumber
|
||||
function! ToggleNumber()
|
||||
if(&relativenumber == 1)
|
||||
set norelativenumber
|
||||
set number
|
||||
else
|
||||
set number relativenumber
|
||||
endif
|
||||
endfunc
|
||||
|
||||
:augroup numbertoggle
|
||||
: autocmd!
|
||||
: autocmd BufEnter,FocusGained,InsertLeave * set relativenumber
|
||||
: autocmd BufLeave,FocusLost,InsertEnter * set norelativenumber
|
||||
:augroup END
|
||||
|
||||
nnoremap <F2> :call ToggleNumber()<CR>
|
||||
nnoremap <F5> :buffers<CR>:buffer<Space>
|
||||
|
||||
" Highlight current line
|
||||
set cursorline
|
||||
|
||||
" Load filetype-specific indent files
|
||||
filetype indent on
|
||||
|
||||
" Visual autocompletion for command window
|
||||
set wildmenu
|
||||
|
||||
" Redraw only when needed
|
||||
set lazyredraw
|
||||
|
||||
" Highlight matching brackets
|
||||
set showmatch
|
||||
|
||||
" Transparent background
|
||||
let g:dracula_colorterm = 0
|
||||
|
||||
" use 256 colors when possible
|
||||
if (&term =~? 'mlterm\|xterm\|xterm-256\|screen-256') || has('nvim')
|
||||
let &t_Co = 256
|
||||
colorscheme dracula
|
||||
else
|
||||
colorscheme delek
|
||||
endif
|
||||
|
||||
" needed so deoplete can auto select the first suggestion
|
||||
" set completeopt+=noinsert
|
||||
" comment this line to enable autocompletion preview window
|
||||
" (displays documentation related to the selected completion option)
|
||||
" set completeopt-=preview
|
||||
|
||||
" autocompletion of files and commands behaves like shell
|
||||
" (complete only the common part, list the options that match)
|
||||
set wildmode=list:longest
|
||||
|
||||
" when scrolling, keep cursor 5 lines away from screen border
|
||||
set scrolloff=5
|
||||
|
||||
" clear search results
|
||||
nnoremap <silent> // :noh<CR>
|
||||
|
||||
" clear empty spaces at the end of lines on save of python files
|
||||
autocmd BufWritePre *.py :%s/\s\+$//e
|
||||
|
||||
" Ability to add python breakpoints
|
||||
" (I use ipdb, but you can change it to whatever tool you use for debugging)
|
||||
au FileType python map <silent> <leader>b Oimport pudb; pudb.set_trace()<esc>
|
||||
|
||||
set incsearch " Search as characters are entered
|
||||
set hlsearch " Highlight matches
|
||||
|
||||
" Turn off search highlight
|
||||
nnoremap <leader>m :nohlsearch<CR>
|
||||
|
||||
" Enable folding
|
||||
set foldenable
|
||||
set foldlevelstart=10 " Open most folds when file opened
|
||||
set foldnestmax=10 " Only nest folds 10 deep
|
||||
" Use Space to open and close folds
|
||||
nnoremap <space> za
|
||||
set foldmethod=indent
|
||||
|
||||
" Movement remaps
|
||||
" Visually move between lines
|
||||
nnoremap j gj
|
||||
nnoremap k gk
|
||||
" Move to beginning/end of line with better keybindings
|
||||
nnoremap B ^
|
||||
nnoremap E $
|
||||
" Highlight last inserted text
|
||||
nnoremap gV `[v`]
|
||||
|
||||
" Leader Shortcuts
|
||||
let mapleader=","
|
||||
" Use jk as escape
|
||||
inoremap jk <esc>
|
||||
|
||||
" Check final line for modeline
|
||||
set modelines=1
|
||||
|
||||
" Set Python interpreters
|
||||
let g:python3_host_prog = '/home/dustyp/.pyenv/versions/3.8.2/bin/python'
|
||||
let g:python2_host_prog = '/home/dustyp/.pyenv/versions/2.7.16/bin/python'
|
||||
|
||||
" Remap Ctrl+hjkl to move between windows
|
||||
nnoremap <C-h> <C-w>h
|
||||
nnoremap <C-j> <C-w>j
|
||||
nnoremap <C-k> <C-w>k
|
||||
nnoremap <C-l> <C-w>l
|
||||
|
||||
" Enable Mouse support
|
||||
set mouse=a
|
||||
" }}}
|
||||
" Plugins settings and mappings {{{
|
||||
" Tagbar {{{
|
||||
|
||||
" toggle tagbar display
|
||||
map <F4> :TagbarToggle<CR>
|
||||
" autofocus on tagbar open
|
||||
let g:tagbar_autofocus = 1
|
||||
" }}}
|
||||
" NERDTree {{{
|
||||
|
||||
" toggle nerdtree display
|
||||
map <F3> :NERDTreeToggle<CR>
|
||||
" open nerdtree with the current file selected
|
||||
nmap <leader>t :NERDTreeFind<CR>
|
||||
" don;t show these file types
|
||||
let NERDTreeIgnore = ['\.pyc$', '\.pyo$']
|
||||
" }}}
|
||||
" Black {{{
|
||||
|
||||
" Execute Black on file save
|
||||
autocmd BufWritePre *.py execute ':Black'
|
||||
|
||||
" Execute Black with keypress
|
||||
nnoremap <F9> :Black<CR>
|
||||
" }}}
|
||||
" Fzf {{{
|
||||
|
||||
" file finder mapping
|
||||
nmap <leader>e :Files<CR>
|
||||
" tags (symbols) in current file finder mapping
|
||||
nmap <leader>g :BTag<CR>
|
||||
" tags (symbols) in all files finder mapping
|
||||
nmap <leader>G :Tags<CR>
|
||||
" general code finder in current file mapping
|
||||
nmap <leader>f :BLines<CR>
|
||||
" general code finder in all files mapping
|
||||
nmap <leader>F :Lines<CR>
|
||||
" commands finder mapping
|
||||
nmap <leader>c :Commands<CR>
|
||||
" search in path
|
||||
nmap <leader>ag :Ag<CR>
|
||||
" to be able to call CtrlP with default search text
|
||||
function! CtrlPWithSearchText(search_text, ctrlp_command_end)
|
||||
execute ':CtrlP' . a:ctrlp_command_end
|
||||
call feedkeys(a:search_text)
|
||||
endfunction
|
||||
" same as previous mappings, but calling with current word as default text
|
||||
nmap <leader>wg :call CtrlPWithSearchText(expand('<cword>'), 'BufTag')<CR>
|
||||
nmap <leader>wG :call CtrlPWithSearchText(expand('<cword>'), 'BufTagAll')<CR>
|
||||
nmap <leader>wf :call CtrlPWithSearchText(expand('<cword>'), 'Line')<CR>
|
||||
nmap <leader>we :call CtrlPWithSearchText(expand('<cword>'), '')<CR>
|
||||
nmap <leader>pe :call CtrlPWithSearchText(expand('<cfile>'), '')<CR>
|
||||
nmap <leader>wm :call CtrlPWithSearchText(expand('<cword>'), 'MRUFiles')<CR>
|
||||
nmap <leader>wc :call CtrlPWithSearchText(expand('<cword>'), 'CmdPalette')<CR>
|
||||
" }}}
|
||||
" Deoplete {{{
|
||||
|
||||
" Use deoplete.
|
||||
|
||||
let g:deoplete#enable_at_startup = 1
|
||||
let g:deoplete#enable_ignore_case = 1
|
||||
call deoplete#custom#option("enable_smart_case", 1)
|
||||
" complete with words from any opened file
|
||||
let g:context_filetype#same_filetypes = {}
|
||||
let g:context_filetype#same_filetypes._ = '_'
|
||||
" }}}
|
||||
" Jedi-vim {{{
|
||||
|
||||
" Disable autocompletion (using deoplete instead)
|
||||
let g:jedi#completions_enabled = 0
|
||||
|
||||
" All these mappings work only for python code:
|
||||
" Go to definition
|
||||
let g:jedi#goto_command = ',d'
|
||||
" Find ocurrences
|
||||
let g:jedi#usages_command = ',o'
|
||||
" Find assignments
|
||||
let g:jedi#goto_assignments_command = ',a'
|
||||
" Go to definition in new tab
|
||||
nmap ,D :tab split<CR>:call jedi#goto()<CR>
|
||||
" }}}
|
||||
" Window Chooser {{{
|
||||
|
||||
" mapping
|
||||
nmap - <Plug>(choosewin)
|
||||
" show big letters
|
||||
let g:choosewin_overlay_enable = 1
|
||||
" }}}
|
||||
" Signify {{{
|
||||
|
||||
" this first setting decides in which order try to guess your current vcs
|
||||
" UPDATE it to reflect your preferences, it will speed up opening files
|
||||
let g:signify_vcs_list = [ 'git' ]
|
||||
" mappings to jump to changed blocks
|
||||
nmap <leader>sn <plug>(signify-next-hunk)
|
||||
nmap <leader>sp <plug>(signify-prev-hunk)
|
||||
" nicer colors
|
||||
highlight DiffAdd cterm=bold ctermbg=none ctermfg=119
|
||||
highlight DiffDelete cterm=bold ctermbg=none ctermfg=167
|
||||
highlight DiffChange cterm=bold ctermbg=none ctermfg=227
|
||||
highlight SignifySignAdd cterm=bold ctermbg=237 ctermfg=119
|
||||
highlight SignifySignDelete cterm=bold ctermbg=237 ctermfg=167
|
||||
highlight SignifySignChange cterm=bold ctermbg=237 ctermfg=227
|
||||
" }}}
|
||||
" Autoclose {{{
|
||||
|
||||
" Fix to let ESC work as espected with Autoclose plugin
|
||||
" (without this, when showing an autocompletion window, ESC won't leave insert
|
||||
" mode)
|
||||
let g:AutoClosePumvisible = {"ENTER": "\<C-Y>", "ESC": "\<ESC>"}
|
||||
" }}}
|
||||
" Yankring {{{
|
||||
|
||||
" Fix for yankring and neovim problem when system has non-text things copied
|
||||
" in clipboard
|
||||
let g:yankring_clipboard_monitor = 0
|
||||
let g:yankring_history_dir = '~/.config/nvim/'
|
||||
" }}}
|
||||
" Airline {{{
|
||||
|
||||
let g:airline_powerline_fonts = 1
|
||||
let g:airline_theme = 'bubblegum'
|
||||
let g:airline#extensions#whitespace#enabled = 0
|
||||
let g:airline#extensions#tabline#enabled = 1
|
||||
" to use fancy symbols for airline, uncomment the following lines and use a
|
||||
" patched font (more info on docs/fancy_symbols.rst)
|
||||
if !exists('g:airline_symbols')
|
||||
let g:airline_symbols = {}
|
||||
endif
|
||||
let g:airline_left_sep = '⮀'
|
||||
let g:airline_left_alt_sep = '⮁'
|
||||
let g:airline_right_sep = '⮂'
|
||||
let g:airline_right_alt_sep = '⮃'
|
||||
let g:airline_symbols.branch = '⭠'
|
||||
let g:airline_symbols.readonly = '⭤'
|
||||
let g:airline_symbols.linenr = '⭡'
|
||||
" }}}
|
||||
" Isort {{{
|
||||
nnoremap <leader>s :Isort<CR>
|
||||
" }}}
|
||||
" Split Term {{{
|
||||
" Split terms to the right and below current buffer
|
||||
set splitright
|
||||
set splitbelow
|
||||
" Set default shell to ZSH
|
||||
let g:split_term_default_shell = "zsh"
|
||||
|
||||
" Shortcuts to open terminals
|
||||
nnoremap <C-v> :VTerm<CR>
|
||||
nnoremap <C-t> :10Term<CR>
|
||||
nnoremap <C-y> :VTerm python<CR>
|
||||
" }}}
|
||||
" Vim-Markdown {{{
|
||||
let g:vim_markdown_folding_disabled = 1
|
||||
let g:vim_markdown_conceal = 0
|
||||
let g:tex_conceal = ""
|
||||
let g:vim_markdown_math = 1
|
||||
let g:vim_markdown_frontmatter = 1 " for YAML format
|
||||
let g:vim_markdown_toml_frontmatter = 1 " for TOML format
|
||||
let g:vim_markdown_json_frontmatter = 1 " for JSON format
|
||||
" }}}
|
||||
" Markdown Preview {{{
|
||||
nnoremap <M-m> :MarkdownPreview<CR>
|
||||
let g:mkdp_auto_close = 0
|
||||
" }}}
|
||||
" vim-go {{{
|
||||
let g:go_fmt_command = "goimports"
|
||||
let g:go_auto_type_info = 1
|
||||
" }}}
|
||||
" vimwiki {{{
|
||||
let g:vimwiki_list = [
|
||||
\{'path': '~/Notes', 'syntax': 'markdown', 'ext': '.md'},
|
||||
\{'path': '~/Notes/Programming', 'syntax': 'markdown', 'ext': '.md'},
|
||||
\{'path': '~/Notes/Programming/Golang', 'syntax': 'markdown', 'ext': '.md'},
|
||||
\{'path': '~/Notes/Programming/Python', 'syntax': 'markdown', 'ext': '.md'},
|
||||
\{'path': '~/Notes/Programming/Rust', 'syntax': 'markdown', 'ext': '.md'},
|
||||
\{'path': '~/Notes/Britecore', 'syntax': 'markdown', 'ext': '.md'},
|
||||
\{'path': '~/Notes/Arch', 'syntax': 'markdown', 'ext': '.md'},
|
||||
\{'path': '~/Notes/AWS', 'syntax': 'markdown', 'ext': '.md'},
|
||||
\{'path': '~/Notes/Bible Study', 'syntax': 'markdown', 'ext': '.md'},
|
||||
\{'path': '~/Notes/Preparedness', 'syntax': 'markdown', 'ext': '.md'}]
|
||||
" }}}
|
||||
" }}}
|
||||
|
||||
" vim:foldmethod=marker:foldlevel=0
|
||||
@ -0,0 +1,542 @@
|
||||
;==========================================================
|
||||
;
|
||||
;
|
||||
; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
|
||||
; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
|
||||
; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
|
||||
; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
|
||||
; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
|
||||
; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
|
||||
;
|
||||
;
|
||||
; To learn more about how to configure Polybar
|
||||
; go to https://github.com/polybar/polybar
|
||||
;
|
||||
; The README contains a lot of information
|
||||
;
|
||||
;==========================================================
|
||||
|
||||
[colors]
|
||||
;background = ${xrdb:color0:#222}
|
||||
background = #282a36
|
||||
background-alt = #7a7a7a
|
||||
;foreground = ${xrdb:color7:#222}
|
||||
foreground = #ffb86c
|
||||
foreground-alt = #7a7a7a
|
||||
primary = #f8f8f2
|
||||
secondary = #e64747
|
||||
alert = #ff5555
|
||||
|
||||
[bar/topbar]
|
||||
;monitor = ${env:MONITOR:HDMI-1}
|
||||
width = 100%
|
||||
height = 27
|
||||
;offset-x = 1%
|
||||
;offset-y = 1%
|
||||
radius = 6.0
|
||||
fixed-center = false
|
||||
monitor = DisplayPort-0
|
||||
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
|
||||
line-size = 3
|
||||
line-color = #f00
|
||||
|
||||
border-size = 4
|
||||
border-color = #000
|
||||
|
||||
padding-left = 0
|
||||
padding-right = 2
|
||||
|
||||
module-margin-left = 1
|
||||
module-margin-right = 2
|
||||
|
||||
font-0 = DejaVuSansMono Nerd Font:style=Regular:size=8;4
|
||||
font-1 = Font Awesome 5 Free:style=Solid:size=10;4
|
||||
font-2 = Font Awesome 5 Free:style=Regular:size=10;4
|
||||
font-3 = FontAwesome5Brands:style=Regular:size=10;4
|
||||
|
||||
modules-left = bspwm
|
||||
modules-center = xwindow
|
||||
modules-right = filesystem alsa memory cpu wlan eth temperature date powermenu
|
||||
|
||||
tray-position = right
|
||||
tray-padding = 2
|
||||
;tray-background = #0063ff
|
||||
|
||||
wm-restack = bspwm
|
||||
;wm-restack = i3
|
||||
|
||||
;override-redirect = true
|
||||
|
||||
;scroll-up = bspwm-desknext
|
||||
;scroll-down = bspwm-deskprev
|
||||
|
||||
;scroll-up = i3wm-wsnext
|
||||
;scroll-down = i3wm-wsprev
|
||||
|
||||
cursor-click = pointer
|
||||
cursor-scroll = ns-resize
|
||||
|
||||
[bar/left]
|
||||
;monitor = ${env:MONITOR:HDMI-1}
|
||||
width = 100%
|
||||
height = 27
|
||||
;offset-x = 1%
|
||||
;offset-y = 1%
|
||||
radius = 6.0
|
||||
fixed-center = false
|
||||
monitor = DisplayPort-1
|
||||
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
|
||||
line-size = 3
|
||||
line-color = #f00
|
||||
|
||||
border-size = 4
|
||||
border-color = #000
|
||||
|
||||
padding-left = 0
|
||||
padding-right = 2
|
||||
|
||||
module-margin-left = 1
|
||||
module-margin-right = 2
|
||||
|
||||
font-0 = DejaVuSansMono Nerd Font:style=Regular:size=8;4
|
||||
font-1 = Font Awesome 5 Free:style=Solid:size=10;4
|
||||
font-2 = Font Awesome 5 Free:style=Regular:size=10;4
|
||||
font-3 = FontAwesome5Brands:style=Regular:size=10;4
|
||||
|
||||
modules-left = bspwm
|
||||
modules-center = xwindow
|
||||
modules-right = filesystem alsa memory cpu wlan eth temperature date
|
||||
|
||||
tray-position = right
|
||||
tray-padding = 2
|
||||
;tray-background = #0063ff
|
||||
|
||||
wm-restack = bspwm
|
||||
;wm-restack = i3
|
||||
|
||||
;override-redirect = true
|
||||
|
||||
;scroll-up = bspwm-desknext
|
||||
;scroll-down = bspwm-deskprev
|
||||
|
||||
;scroll-up = i3wm-wsnext
|
||||
;scroll-down = i3wm-wsprev
|
||||
|
||||
cursor-click = pointer
|
||||
cursor-scroll = ns-resize
|
||||
|
||||
[bar/right]
|
||||
;monitor = ${env:MONITOR:HDMI-1}
|
||||
width = 100%
|
||||
height = 27
|
||||
;offset-x = 1%
|
||||
;offset-y = 1%
|
||||
radius = 6.0
|
||||
fixed-center = false
|
||||
monitor = HDMI-A-0
|
||||
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
|
||||
line-size = 3
|
||||
line-color = #f00
|
||||
|
||||
border-size = 4
|
||||
border-color = #000
|
||||
|
||||
padding-left = 0
|
||||
padding-right = 2
|
||||
|
||||
module-margin-left = 1
|
||||
module-margin-right = 2
|
||||
|
||||
font-0 = DejaVuSansMono Nerd Font:style=Regular:size=8;4
|
||||
font-1 = Font Awesome 5 Free:style=Solid:size=10;4
|
||||
font-2 = Font Awesome 5 Free:style=Regular:size=10;4
|
||||
font-3 = FontAwesome5Brands:style=Regular:size=10;4
|
||||
|
||||
modules-left = bspwm
|
||||
modules-center = xwindow
|
||||
modules-right = filesystem alsa memory cpu wlan eth temperature date
|
||||
|
||||
tray-position = right
|
||||
tray-padding = 2
|
||||
;tray-background = #0063ff
|
||||
|
||||
wm-restack = bspwm
|
||||
;wm-restack = i3
|
||||
|
||||
;override-redirect = true
|
||||
|
||||
;scroll-up = bspwm-desknext
|
||||
;scroll-down = bspwm-deskprev
|
||||
|
||||
;scroll-up = i3wm-wsnext
|
||||
;scroll-down = i3wm-wsprev
|
||||
|
||||
cursor-click = pointer
|
||||
cursor-scroll = ns-resize
|
||||
|
||||
[module/xwindow]
|
||||
type = internal/xwindow
|
||||
label = %title:0:30:...%
|
||||
|
||||
[module/xkeyboard]
|
||||
type = internal/xkeyboard
|
||||
blacklist-0 = num lock
|
||||
|
||||
format-prefix = " "
|
||||
format-prefix-foreground = ${colors.foreground-alt}
|
||||
format-prefix-underline = ${colors.secondary}
|
||||
|
||||
label-layout = %layout%
|
||||
label-layout-underline = ${colors.secondary}
|
||||
|
||||
label-indicator-padding = 2
|
||||
label-indicator-margin = 1
|
||||
label-indicator-background = ${colors.secondary}
|
||||
label-indicator-underline = ${colors.secondary}
|
||||
|
||||
[module/filesystem]
|
||||
type = internal/fs
|
||||
interval = 25
|
||||
|
||||
mount-0 = /
|
||||
mount-1 = /home
|
||||
|
||||
label-mounted = %{F#75d7ec}%mountpoint%%{F-}: %percentage_used%%
|
||||
label-unmounted = %mountpoint% not mounted
|
||||
label-unmounted-foreground = ${colors.foreground-alt}
|
||||
|
||||
[module/bspwm]
|
||||
type = internal/bspwm
|
||||
|
||||
ws-icon-0 = "1;"
|
||||
ws-icon-1 = "2;"
|
||||
ws-icon-2 = "3;"
|
||||
ws-icon-3 = "4;"
|
||||
ws-icon-4 = "5;"
|
||||
ws-icon-5 = "6;"
|
||||
ws-icon-6 = "7;"
|
||||
ws-icon-7 = "8;ﱮ"
|
||||
ws-icon-8 = "9;ﭮ"
|
||||
ws-icon-9 = "0;"
|
||||
ws-icon-default = ""
|
||||
|
||||
label-focused = %name%:%icon%
|
||||
label-focused-background = ${colors.background-alt}
|
||||
label-focused-underline= ${colors.primary}
|
||||
label-focused-padding = 1
|
||||
|
||||
label-occupied = %name%:%icon%
|
||||
label-occupied-padding = 1
|
||||
|
||||
label-urgent = %name%:%icon%!
|
||||
label-urgent-background = ${colors.alert}
|
||||
label-urgent-padding = 1
|
||||
|
||||
label-empty = %name%:%icon%
|
||||
label-empty-foreground = ${colors.foreground-alt}
|
||||
label-empty-padding = 1
|
||||
|
||||
; Separator in between workspaces
|
||||
; label-separator = |
|
||||
|
||||
[module/i3]
|
||||
type = internal/i3
|
||||
format = <label-state> <label-mode>
|
||||
index-sort = true
|
||||
wrapping-scroll = false
|
||||
|
||||
; Only show workspaces on the same output as the bar
|
||||
;pin-workspaces = true
|
||||
|
||||
label-mode-padding = 2
|
||||
label-mode-foreground = #000
|
||||
label-mode-background = ${colors.primary}
|
||||
|
||||
; focused = Active workspace on focused monitor
|
||||
label-focused = %index%
|
||||
label-focused-background = ${colors.background-alt}
|
||||
label-focused-underline= ${colors.primary}
|
||||
label-focused-padding = 2
|
||||
|
||||
; unfocused = Inactive workspace on any monitor
|
||||
label-unfocused = %index%
|
||||
label-unfocused-padding = 2
|
||||
|
||||
; visible = Active workspace on unfocused monitor
|
||||
label-visible = %index%
|
||||
label-visible-background = ${self.label-focused-background}
|
||||
label-visible-underline = ${self.label-focused-underline}
|
||||
label-visible-padding = ${self.label-focused-padding}
|
||||
|
||||
; urgent = Workspace with urgency hint set
|
||||
label-urgent = %index%
|
||||
label-urgent-background = ${colors.alert}
|
||||
label-urgent-padding = 2
|
||||
|
||||
; Separator in between workspaces
|
||||
; label-separator = |
|
||||
|
||||
|
||||
[module/mpd]
|
||||
type = internal/mpd
|
||||
format-online = <label-song> <icon-prev> <icon-stop> <toggle> <icon-next>
|
||||
|
||||
icon-prev = ←
|
||||
icon-stop = ■
|
||||
icon-play = ▶
|
||||
icon-pause = ❚❚
|
||||
icon-next = →
|
||||
|
||||
label-song-maxlen = 25
|
||||
label-song-ellipsis = true
|
||||
|
||||
[module/xbacklight]
|
||||
type = internal/xbacklight
|
||||
|
||||
format = <label> <bar>
|
||||
label = BL
|
||||
|
||||
bar-width = 10
|
||||
bar-indicator = |
|
||||
bar-indicator-foreground = #7a7a7a
|
||||
bar-indicator-font = 2
|
||||
bar-fill = ─
|
||||
bar-fill-font = 2
|
||||
bar-fill-foreground = #9b6bdf
|
||||
bar-empty = ─
|
||||
bar-empty-font = 2
|
||||
bar-empty-foreground = ${colors.foreground-alt}
|
||||
|
||||
[module/backlight-acpi]
|
||||
inherit = module/xbacklight
|
||||
type = internal/backlight
|
||||
card = intel_backlight
|
||||
|
||||
[module/cpu]
|
||||
type = internal/cpu
|
||||
interval = 2
|
||||
format-prefix = " "
|
||||
format-prefix-foreground = ${colors.foreground-alt}
|
||||
format-underline = #42e66c
|
||||
label = %percentage:2%%
|
||||
|
||||
[module/memory]
|
||||
type = internal/memory
|
||||
interval = 2
|
||||
format-prefix = " "
|
||||
format-prefix-foreground = ${colors.foreground-alt}
|
||||
format-underline = #75d7ec
|
||||
label = %percentage_used%%
|
||||
|
||||
[module/wlan]
|
||||
type = internal/network
|
||||
interface = wlan0
|
||||
interval = 3.0
|
||||
|
||||
format-connected = <ramp-signal> <label-connected>
|
||||
format-connected-underline = #9b6bdf
|
||||
label-connected = %essid%
|
||||
|
||||
format-disconnected =
|
||||
;format-disconnected = <label-disconnected>
|
||||
;format-disconnected-underline = ${self.format-connected-underline}
|
||||
;label-disconnected = %ifname% disconnected
|
||||
;label-disconnected-foreground = ${colors.foreground-alt}
|
||||
|
||||
ramp-signal-0 =
|
||||
ramp-signal-foreground = ${colors.foreground-alt}
|
||||
|
||||
[module/eth]
|
||||
type = internal/network
|
||||
interface = enp6s0
|
||||
interval = 3.0
|
||||
|
||||
format-connected-underline = #e356a7
|
||||
format-connected-prefix = " "
|
||||
format-connected-prefix-foreground = ${colors.foreground-alt}
|
||||
label-connected = %local_ip%
|
||||
|
||||
format-disconnected =
|
||||
;format-disconnected = <label-disconnected>
|
||||
;format-disconnected-underline = ${self.format-connected-underline}
|
||||
;label-disconnected = %ifname% disconnected
|
||||
;label-disconnected-foreground = ${colors.foreground-alt}
|
||||
|
||||
[module/date]
|
||||
type = internal/date
|
||||
interval = 5
|
||||
|
||||
date = " %Y-%m-%d"
|
||||
date-alt =
|
||||
|
||||
time = %H:%M:%S
|
||||
time-alt = %H:%M:%S
|
||||
|
||||
format-prefix =
|
||||
format-prefix-foreground = ${colors.foreground-alt}
|
||||
format-underline = #e4f34a
|
||||
|
||||
label = %date% %time%
|
||||
|
||||
[module/pulseaudio]
|
||||
type = internal/pulseaudio
|
||||
|
||||
format-volume = <label-volume> <bar-volume>
|
||||
label-volume = %percentage%%
|
||||
label-volume-foreground = ${root.foreground}
|
||||
|
||||
label-muted = muted
|
||||
label-muted-foreground = #666
|
||||
|
||||
bar-volume-width = 10
|
||||
bar-volume-foreground-0 = #ff5555
|
||||
bar-volume-foreground-1 = #ff5555
|
||||
bar-volume-foreground-2 = #ffb86c
|
||||
bar-volume-foreground-3 = #ffb86c
|
||||
bar-volume-foreground-4 = #42e66c
|
||||
bar-volume-foreground-5 = #42e66c
|
||||
bar-volume-foreground-6 = #42e66c
|
||||
bar-volume-gradient = false
|
||||
bar-volume-indicator = |
|
||||
bar-volume-indicator-font = 2
|
||||
bar-volume-fill = ─
|
||||
bar-volume-fill-font = 2
|
||||
bar-volume-empty = ─
|
||||
bar-volume-empty-font = 2
|
||||
bar-volume-empty-foreground = ${colors.foreground-alt}
|
||||
|
||||
[module/alsa]
|
||||
type = internal/alsa
|
||||
|
||||
master-soundcard = hw:3
|
||||
master-mixer = "UMC202HD 192k Output"
|
||||
|
||||
format-volume = <label-volume> <bar-volume>
|
||||
label-volume =
|
||||
label-volume-foreground = ${root.foreground}
|
||||
|
||||
format-muted-prefix = " "
|
||||
format-muted-foreground = ${colors.foreground-alt}
|
||||
label-muted = muted
|
||||
|
||||
bar-volume-width = 10
|
||||
bar-volume-foreground-0 = #ff2222
|
||||
bar-volume-foreground-1 = #ff5555
|
||||
bar-volume-foreground-2 = #efa554
|
||||
bar-volume-foreground-3 = #ffb86c
|
||||
bar-volume-foreground-4 = #59dffc
|
||||
bar-volume-foreground-5 = #8be9fd
|
||||
bar-volume-foreground-6 = #1ef956
|
||||
bar-volume-foreground-7 = #50fa7b
|
||||
bar-volume-gradient = true
|
||||
bar-volume-indicator = |
|
||||
bar-volume-indicator-font = 2
|
||||
bar-volume-fill = ─
|
||||
bar-volume-fill-font = 2
|
||||
bar-volume-empty = ─
|
||||
bar-volume-empty-font = 2
|
||||
bar-volume-empty-foreground = ${colors.foreground-alt}
|
||||
|
||||
[module/battery]
|
||||
type = internal/battery
|
||||
battery = BAT0
|
||||
adapter = AC
|
||||
full-at = 98
|
||||
|
||||
format-charging = <animation-charging> <label-charging>
|
||||
format-charging-underline = #75d7ec
|
||||
|
||||
format-discharging = <animation-discharging> <label-discharging>
|
||||
format-discharging-underline = ${self.format-charging-underline}
|
||||
|
||||
format-full-prefix = " "
|
||||
format-full-prefix-foreground = ${colors.foreground-alt}
|
||||
format-full-underline = ${self.format-charging-underline}
|
||||
|
||||
ramp-capacity-0 =
|
||||
ramp-capacity-1 =
|
||||
ramp-capacity-2 =
|
||||
ramp-capacity-3 =
|
||||
ramp-capacity-4 =
|
||||
ramp-capacity-foreground = ${colors.foreground-alt}
|
||||
|
||||
animation-charging-0 =
|
||||
animation-charging-foreground = ${colors.foreground-alt}
|
||||
animation-charging-framerate = 750
|
||||
|
||||
animation-discharging-0 =
|
||||
animation-discharging-1 =
|
||||
animation-discharging-2 =
|
||||
animation-discharging-3 =
|
||||
animation-discharging-4 =
|
||||
animation-discharging-foreground = ${colors.foreground-alt}
|
||||
animation-discharging-framerate = 750
|
||||
|
||||
[module/temperature]
|
||||
type = internal/temperature
|
||||
thermal-zone = 0
|
||||
warn-temperature = 60
|
||||
|
||||
format = <ramp> <label>
|
||||
format-underline = #262626
|
||||
format-warn = <ramp> <label-warn>
|
||||
format-warn-underline = ${self.format-underline}
|
||||
|
||||
label = %temperature-c%
|
||||
label-warn = %temperature-c%
|
||||
label-warn-foreground = ${colors.secondary}
|
||||
|
||||
ramp-0 =
|
||||
ramp-foreground = ${colors.foreground-alt}
|
||||
|
||||
[module/powermenu]
|
||||
type = custom/menu
|
||||
|
||||
expand-right = true
|
||||
|
||||
format-spacing = 1
|
||||
|
||||
label-open =
|
||||
label-open-foreground = ${colors.secondary}
|
||||
label-close = cancel
|
||||
label-close-foreground = ${colors.secondary}
|
||||
label-separator = |
|
||||
label-separator-foreground = ${colors.foreground-alt}
|
||||
|
||||
menu-0-0 = reboot
|
||||
menu-0-0-exec = menu-open-1
|
||||
menu-0-1 = power off
|
||||
menu-0-1-exec = menu-open-2
|
||||
|
||||
menu-1-0 = cancel
|
||||
menu-1-0-exec = menu-open-0
|
||||
menu-1-1 = reboot
|
||||
menu-1-1-exec = reboot
|
||||
|
||||
menu-2-0 = power off
|
||||
menu-2-0-exec = poweroff
|
||||
menu-2-1 = cancel
|
||||
menu-2-1-exec = menu-open-0
|
||||
|
||||
[settings]
|
||||
screenchange-reload = true
|
||||
;compositing-background = xor
|
||||
;compositing-background = screen
|
||||
;compositing-foreground = source
|
||||
;compositing-border = over
|
||||
;pseudo-transparency = false
|
||||
|
||||
[global/wm]
|
||||
margin-top = 5
|
||||
margin-bottom = 5
|
||||
|
||||
; vim:ft=dosini
|
||||
@ -0,0 +1,139 @@
|
||||
#
|
||||
# wm independent hotkeys
|
||||
#
|
||||
|
||||
# terminal emulator
|
||||
super + Return
|
||||
alacritty
|
||||
|
||||
# program launcher
|
||||
super + d
|
||||
rofi -show run -font "Monospace Bold 12" -m -1 -fullscreen -padding 300 -hide-scrollbar
|
||||
|
||||
# make sxhkd reload its configuration files:
|
||||
super + Escape
|
||||
pkill -USR1 -x sxhkd
|
||||
|
||||
#
|
||||
# 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-9,0}
|
||||
bspc {desktop -f,node -d} '^{1-9,10}'
|
||||
|
||||
#
|
||||
# preselect
|
||||
#
|
||||
|
||||
# preselect the direction
|
||||
super + ctrl + {h,j,k,l}
|
||||
bspc node -p {west,south,north,east}
|
||||
|
||||
# preselect the ratio
|
||||
super + ctrl + {1-9}
|
||||
bspc node -o 0.{1-9}
|
||||
|
||||
# cancel the preselection for the focused node
|
||||
super + ctrl + space
|
||||
bspc node -p cancel
|
||||
|
||||
# cancel the preselection for the focused desktop
|
||||
super + ctrl + shift + space
|
||||
bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
|
||||
|
||||
#
|
||||
# move/resize
|
||||
#
|
||||
|
||||
# expand a window by moving one of its side outward
|
||||
super + alt + {h,j,k,l}
|
||||
bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
|
||||
|
||||
# contract a window by moving one of its side inward
|
||||
super + alt + shift + {h,j,k,l}
|
||||
bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
|
||||
|
||||
# move a floating window
|
||||
super + {Left,Down,Up,Right}
|
||||
bspc node -v {-20 0,0 20,0 -20,20 0}
|
||||
|
||||
# Multimedia
|
||||
XF86Audio{Raise,Lower}Volume
|
||||
amixer sset Master {5%+,5%-}
|
||||
XF86AudioMute
|
||||
amixer sset Master toggle
|
||||
|
||||
# Tabbed
|
||||
super + t; {h,j,k,l}
|
||||
tabc add {west,south,north,east} $(bspc query -N -n focused)
|
||||
super + t; r
|
||||
tabbed=$(bspc query -N -n focused)
|
||||
child=$(tabc list $tabbed | head -n1)
|
||||
tabc remove $child
|
||||
|
||||
# xbacklight has to be installed
|
||||
XF86MonBrightness{Up,Down}
|
||||
adjust_brightness.py {10,-10}
|
||||
@ -0,0 +1,12 @@
|
||||
source $HOME/.config/zsh/plugins/catimg.plugin.zsh
|
||||
source $HOME/.config/zsh/plugins/command-not-found.plugin.zsh
|
||||
source $HOME/.config/zsh/plugins/extract.plugin.zsh
|
||||
source $HOME/.config/zsh/plugins/git.plugin.zsh
|
||||
source $HOME/.config/zsh/plugins/history.plugin.zsh
|
||||
source $HOME/.config/zsh/plugins/pip.plugin.zsh
|
||||
source $HOME/.config/zsh/plugins/python.plugin.zsh
|
||||
source $HOME/.config/zsh/plugins/sudo.plugin.zsh
|
||||
source $HOME/.config/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.plugin.zsh
|
||||
source $HOME/.config/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.plugin.zsh
|
||||
source $HOME/.config/zsh/plugins/zsh-you-should-use/you-should-use.plugin.zsh
|
||||
|
||||
@ -0,0 +1,17 @@
|
||||
################################################################################
|
||||
# catimg script by Eduardo San Martin Morote aka Posva #
|
||||
# https://posva.net #
|
||||
# #
|
||||
# Ouput the content of an image to the stdout using the 256 colors of the #
|
||||
# terminal. #
|
||||
# GitHub: https://github.com/posva/catimg #
|
||||
################################################################################
|
||||
|
||||
|
||||
function catimg() {
|
||||
if [[ -x `which convert` ]]; then
|
||||
zsh $ZSH/plugins/catimg/catimg.sh $@
|
||||
else
|
||||
echo "catimg need convert (ImageMagick) to work)"
|
||||
fi
|
||||
}
|
||||
@ -0,0 +1,38 @@
|
||||
# Uses the command-not-found package zsh support
|
||||
# as seen in https://www.porcheron.info/command-not-found-for-zsh/
|
||||
# this is installed in Ubuntu
|
||||
|
||||
[[ -e /etc/zsh_command_not_found ]] && source /etc/zsh_command_not_found
|
||||
|
||||
# Arch Linux command-not-found support, you must have package pkgfile installed
|
||||
# https://wiki.archlinux.org/index.php/Pkgfile#.22Command_not_found.22_hook
|
||||
[[ -e /usr/share/doc/pkgfile/command-not-found.zsh ]] && source /usr/share/doc/pkgfile/command-not-found.zsh
|
||||
|
||||
# Fedora command-not-found support
|
||||
if [ -f /usr/libexec/pk-command-not-found ]; then
|
||||
command_not_found_handler () {
|
||||
runcnf=1
|
||||
retval=127
|
||||
[ ! -S /var/run/dbus/system_bus_socket ] && runcnf=0
|
||||
[ ! -x /usr/libexec/packagekitd ] && runcnf=0
|
||||
if [ $runcnf -eq 1 ]
|
||||
then
|
||||
/usr/libexec/pk-command-not-found $@
|
||||
retval=$?
|
||||
fi
|
||||
return $retval
|
||||
}
|
||||
fi
|
||||
|
||||
# OSX command-not-found support
|
||||
# https://github.com/Homebrew/homebrew-command-not-found
|
||||
if [[ -s '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh' ]]; then
|
||||
source '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh'
|
||||
fi
|
||||
|
||||
# NixOS command-not-found support
|
||||
if [ -x /run/current-system/sw/bin/command-not-found ]; then
|
||||
command_not_found_handler () {
|
||||
/run/current-system/sw/bin/command-not-found $@
|
||||
}
|
||||
fi
|
||||
@ -0,0 +1,82 @@
|
||||
alias x=extract
|
||||
|
||||
extract() {
|
||||
local remove_archive
|
||||
local success
|
||||
local extract_dir
|
||||
|
||||
if (( $# == 0 )); then
|
||||
cat <<-'EOF' >&2
|
||||
Usage: extract [-option] [file ...]
|
||||
|
||||
Options:
|
||||
-r, --remove Remove archive after unpacking.
|
||||
EOF
|
||||
fi
|
||||
|
||||
remove_archive=1
|
||||
if [[ "$1" == "-r" ]] || [[ "$1" == "--remove" ]]; then
|
||||
remove_archive=0
|
||||
shift
|
||||
fi
|
||||
|
||||
while (( $# > 0 )); do
|
||||
if [[ ! -f "$1" ]]; then
|
||||
echo "extract: '$1' is not a valid file" >&2
|
||||
shift
|
||||
continue
|
||||
fi
|
||||
|
||||
success=0
|
||||
extract_dir="${1:t:r}"
|
||||
case "${1:l}" in
|
||||
(*.tar.gz|*.tgz) (( $+commands[pigz] )) && { pigz -dc "$1" | tar xv } || tar zxvf "$1" ;;
|
||||
(*.tar.bz2|*.tbz|*.tbz2) tar xvjf "$1" ;;
|
||||
(*.tar.xz|*.txz)
|
||||
tar --xz --help &> /dev/null \
|
||||
&& tar --xz -xvf "$1" \
|
||||
|| xzcat "$1" | tar xvf - ;;
|
||||
(*.tar.zma|*.tlz)
|
||||
tar --lzma --help &> /dev/null \
|
||||
&& tar --lzma -xvf "$1" \
|
||||
|| lzcat "$1" | tar xvf - ;;
|
||||
(*.tar.zst|*.tzst)
|
||||
tar --zstd --help &> /dev/null \
|
||||
&& tar --zstd -xvf "$1" \
|
||||
|| zstdcat "$1" | tar xvf - ;;
|
||||
(*.tar) tar xvf "$1" ;;
|
||||
(*.tar.lz) (( $+commands[lzip] )) && tar xvf "$1" ;;
|
||||
(*.tar.lz4) lz4 -c -d "$1" | tar xvf - ;;
|
||||
(*.tar.lrz) (( $+commands[lrzuntar] )) && lrzuntar "$1" ;;
|
||||
(*.gz) (( $+commands[pigz] )) && pigz -dk "$1" || gunzip -k "$1" ;;
|
||||
(*.bz2) bunzip2 "$1" ;;
|
||||
(*.xz) unxz "$1" ;;
|
||||
(*.lrz) (( $+commands[lrunzip] )) && lrunzip "$1" ;;
|
||||
(*.lz4) lz4 -d "$1" ;;
|
||||
(*.lzma) unlzma "$1" ;;
|
||||
(*.z) uncompress "$1" ;;
|
||||
(*.zip|*.war|*.jar|*.sublime-package|*.ipsw|*.xpi|*.apk|*.aar|*.whl) unzip "$1" -d $extract_dir ;;
|
||||
(*.rar) unrar x -ad "$1" ;;
|
||||
(*.rpm) mkdir "$extract_dir" && cd "$extract_dir" && rpm2cpio "../$1" | cpio --quiet -id && cd .. ;;
|
||||
(*.7z) 7za x "$1" ;;
|
||||
(*.deb)
|
||||
mkdir -p "$extract_dir/control"
|
||||
mkdir -p "$extract_dir/data"
|
||||
cd "$extract_dir"; ar vx "../${1}" > /dev/null
|
||||
cd control; tar xzvf ../control.tar.gz
|
||||
cd ../data; extract ../data.tar.*
|
||||
cd ..; rm *.tar.* debian-binary
|
||||
cd ..
|
||||
;;
|
||||
(*.zst) unzstd "$1" ;;
|
||||
(*)
|
||||
echo "extract: '$1' cannot be extracted" >&2
|
||||
success=1
|
||||
;;
|
||||
esac
|
||||
|
||||
(( success = $success > 0 ? $success : $? ))
|
||||
(( $success == 0 )) && (( $remove_archive == 0 )) && rm "$1"
|
||||
shift
|
||||
done
|
||||
}
|
||||
@ -0,0 +1,272 @@
|
||||
#
|
||||
# Functions
|
||||
#
|
||||
|
||||
# The name of the current branch
|
||||
# Back-compatibility wrapper for when this function was defined here in
|
||||
# the plugin, before being pulled in to core lib/git.zsh as git_current_branch()
|
||||
# to fix the core -> git plugin dependency.
|
||||
function current_branch() {
|
||||
git_current_branch
|
||||
}
|
||||
|
||||
# Pretty log messages
|
||||
function _git_log_prettily(){
|
||||
if ! [ -z $1 ]; then
|
||||
git log --pretty=$1
|
||||
fi
|
||||
}
|
||||
compdef _git _git_log_prettily=git-log
|
||||
|
||||
# Warn if the current branch is a WIP
|
||||
function work_in_progress() {
|
||||
if $(git log -n 1 2>/dev/null | grep -q -c "\-\-wip\-\-"); then
|
||||
echo "WIP!!"
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# Aliases
|
||||
# (sorted alphabetically)
|
||||
#
|
||||
|
||||
alias g='git'
|
||||
|
||||
alias ga='git add'
|
||||
alias gaa='git add --all'
|
||||
alias gapa='git add --patch'
|
||||
alias gau='git add --update'
|
||||
alias gav='git add --verbose'
|
||||
alias gap='git apply'
|
||||
|
||||
alias gb='git branch'
|
||||
alias gba='git branch -a'
|
||||
alias gbd='git branch -d'
|
||||
alias gbda='git branch --no-color --merged | command grep -vE "^(\+|\*|\s*(master|develop|dev)\s*$)" | command xargs -n 1 git branch -d'
|
||||
alias gbD='git branch -D'
|
||||
alias gbl='git blame -b -w'
|
||||
alias gbnm='git branch --no-merged'
|
||||
alias gbr='git branch --remote'
|
||||
alias gbs='git bisect'
|
||||
alias gbsb='git bisect bad'
|
||||
alias gbsg='git bisect good'
|
||||
alias gbsr='git bisect reset'
|
||||
alias gbss='git bisect start'
|
||||
|
||||
alias gc='git commit -v'
|
||||
alias gc!='git commit -v --amend'
|
||||
alias gcn!='git commit -v --no-edit --amend'
|
||||
alias gca='git commit -v -a'
|
||||
alias gca!='git commit -v -a --amend'
|
||||
alias gcan!='git commit -v -a --no-edit --amend'
|
||||
alias gcans!='git commit -v -a -s --no-edit --amend'
|
||||
alias gcam='git commit -a -m'
|
||||
alias gcsm='git commit -s -m'
|
||||
alias gcb='git checkout -b'
|
||||
alias gcf='git config --list'
|
||||
alias gcl='git clone --recurse-submodules'
|
||||
alias gclean='git clean -id'
|
||||
alias gpristine='git reset --hard && git clean -dffx'
|
||||
alias gcm='git checkout master'
|
||||
alias gcd='git checkout develop'
|
||||
alias gcmsg='git commit -m'
|
||||
alias gco='git checkout'
|
||||
alias gcount='git shortlog -sn'
|
||||
alias gcp='git cherry-pick'
|
||||
alias gcpa='git cherry-pick --abort'
|
||||
alias gcpc='git cherry-pick --continue'
|
||||
alias gcs='git commit -S'
|
||||
|
||||
alias gd='git diff'
|
||||
alias gdca='git diff --cached'
|
||||
alias gdcw='git diff --cached --word-diff'
|
||||
alias gdct='git describe --tags $(git rev-list --tags --max-count=1)'
|
||||
alias gds='git diff --staged'
|
||||
alias gdt='git diff-tree --no-commit-id --name-only -r'
|
||||
alias gdw='git diff --word-diff'
|
||||
|
||||
function gdv() { git diff -w "$@" | view - }
|
||||
compdef _git gdv=git-diff
|
||||
|
||||
alias gf='git fetch'
|
||||
alias gfa='git fetch --all --prune'
|
||||
alias gfo='git fetch origin'
|
||||
|
||||
alias gfg='git ls-files | grep'
|
||||
|
||||
alias gg='git gui citool'
|
||||
alias gga='git gui citool --amend'
|
||||
|
||||
function ggf() {
|
||||
[[ "$#" != 1 ]] && local b="$(git_current_branch)"
|
||||
git push --force origin "${b:=$1}"
|
||||
}
|
||||
compdef _git ggf=git-checkout
|
||||
function ggfl() {
|
||||
[[ "$#" != 1 ]] && local b="$(git_current_branch)"
|
||||
git push --force-with-lease origin "${b:=$1}"
|
||||
}
|
||||
compdef _git ggfl=git-checkout
|
||||
|
||||
function ggl() {
|
||||
if [[ "$#" != 0 ]] && [[ "$#" != 1 ]]; then
|
||||
git pull origin "${*}"
|
||||
else
|
||||
[[ "$#" == 0 ]] && local b="$(git_current_branch)"
|
||||
git pull origin "${b:=$1}"
|
||||
fi
|
||||
}
|
||||
compdef _git ggl=git-checkout
|
||||
|
||||
function ggp() {
|
||||
if [[ "$#" != 0 ]] && [[ "$#" != 1 ]]; then
|
||||
git push origin "${*}"
|
||||
else
|
||||
[[ "$#" == 0 ]] && local b="$(git_current_branch)"
|
||||
git push origin "${b:=$1}"
|
||||
fi
|
||||
}
|
||||
compdef _git ggp=git-checkout
|
||||
|
||||
function ggpnp() {
|
||||
if [[ "$#" == 0 ]]; then
|
||||
ggl && ggp
|
||||
else
|
||||
ggl "${*}" && ggp "${*}"
|
||||
fi
|
||||
}
|
||||
compdef _git ggpnp=git-checkout
|
||||
|
||||
function ggu() {
|
||||
[[ "$#" != 1 ]] && local b="$(git_current_branch)"
|
||||
git pull --rebase origin "${b:=$1}"
|
||||
}
|
||||
compdef _git ggu=git-checkout
|
||||
|
||||
alias ggpur='ggu'
|
||||
alias ggpull='git pull origin "$(git_current_branch)"'
|
||||
alias ggpush='git push origin "$(git_current_branch)"'
|
||||
|
||||
alias ggsup='git branch --set-upstream-to=origin/$(git_current_branch)'
|
||||
alias gpsup='git push --set-upstream origin $(git_current_branch)'
|
||||
|
||||
alias ghh='git help'
|
||||
|
||||
alias gignore='git update-index --assume-unchanged'
|
||||
alias gignored='git ls-files -v | grep "^[[:lower:]]"'
|
||||
alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk'
|
||||
|
||||
alias gk='\gitk --all --branches'
|
||||
alias gke='\gitk --all $(git log -g --pretty=%h)'
|
||||
|
||||
alias gl='git pull'
|
||||
alias glg='git log --stat'
|
||||
alias glgp='git log --stat -p'
|
||||
alias glgg='git log --graph'
|
||||
alias glgga='git log --graph --decorate --all'
|
||||
alias glgm='git log --graph --max-count=10'
|
||||
alias glo='git log --oneline --decorate'
|
||||
alias glol="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'"
|
||||
alias glols="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --stat"
|
||||
alias glod="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset'"
|
||||
alias glods="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short"
|
||||
alias glola="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --all"
|
||||
alias glog='git log --oneline --decorate --graph'
|
||||
alias gloga='git log --oneline --decorate --graph --all'
|
||||
alias glp="_git_log_prettily"
|
||||
|
||||
alias gm='git merge'
|
||||
alias gmom='git merge origin/master'
|
||||
alias gmt='git mergetool --no-prompt'
|
||||
alias gmtvim='git mergetool --no-prompt --tool=vimdiff'
|
||||
alias gmum='git merge upstream/master'
|
||||
alias gma='git merge --abort'
|
||||
|
||||
alias gp='git push'
|
||||
alias gpd='git push --dry-run'
|
||||
alias gpf='git push --force-with-lease'
|
||||
alias gpf!='git push --force'
|
||||
alias gpoat='git push origin --all && git push origin --tags'
|
||||
alias gpu='git push upstream'
|
||||
alias gpv='git push -v'
|
||||
|
||||
alias gr='git remote'
|
||||
alias gra='git remote add'
|
||||
alias grb='git rebase'
|
||||
alias grba='git rebase --abort'
|
||||
alias grbc='git rebase --continue'
|
||||
alias grbd='git rebase develop'
|
||||
alias grbi='git rebase -i'
|
||||
alias grbm='git rebase master'
|
||||
alias grbs='git rebase --skip'
|
||||
alias grev='git revert'
|
||||
alias grh='git reset'
|
||||
alias grhh='git reset --hard'
|
||||
alias groh='git reset origin/$(git_current_branch) --hard'
|
||||
alias grm='git rm'
|
||||
alias grmc='git rm --cached'
|
||||
alias grmv='git remote rename'
|
||||
alias grrm='git remote remove'
|
||||
alias grs='git restore'
|
||||
alias grset='git remote set-url'
|
||||
alias grss='git restore --source'
|
||||
alias grt='cd "$(git rev-parse --show-toplevel || echo .)"'
|
||||
alias gru='git reset --'
|
||||
alias grup='git remote update'
|
||||
alias grv='git remote -v'
|
||||
|
||||
alias gsb='git status -sb'
|
||||
alias gsd='git svn dcommit'
|
||||
alias gsh='git show'
|
||||
alias gsi='git submodule init'
|
||||
alias gsps='git show --pretty=short --show-signature'
|
||||
alias gsr='git svn rebase'
|
||||
alias gss='git status -s'
|
||||
alias gst='git status'
|
||||
|
||||
# use the default stash push on git 2.13 and newer
|
||||
autoload -Uz is-at-least
|
||||
is-at-least 2.13 "$(git --version 2>/dev/null | awk '{print $3}')" \
|
||||
&& alias gsta='git stash push' \
|
||||
|| alias gsta='git stash save'
|
||||
|
||||
alias gstaa='git stash apply'
|
||||
alias gstc='git stash clear'
|
||||
alias gstd='git stash drop'
|
||||
alias gstl='git stash list'
|
||||
alias gstp='git stash pop'
|
||||
alias gsts='git stash show --text'
|
||||
alias gstu='git stash --include-untracked'
|
||||
alias gstall='git stash --all'
|
||||
alias gsu='git submodule update'
|
||||
alias gsw='git switch'
|
||||
alias gswc='git switch -c'
|
||||
|
||||
alias gts='git tag -s'
|
||||
alias gtv='git tag | sort -V'
|
||||
alias gtl='gtl(){ git tag --sort=-v:refname -n -l "${1}*" }; noglob gtl'
|
||||
|
||||
alias gunignore='git update-index --no-assume-unchanged'
|
||||
alias gunwip='git log -n 1 | grep -q -c "\-\-wip\-\-" && git reset HEAD~1'
|
||||
alias gup='git pull --rebase'
|
||||
alias gupv='git pull --rebase -v'
|
||||
alias gupa='git pull --rebase --autostash'
|
||||
alias gupav='git pull --rebase --autostash -v'
|
||||
alias glum='git pull upstream master'
|
||||
|
||||
alias gwch='git whatchanged -p --abbrev-commit --pretty=medium'
|
||||
alias gwip='git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign -m "--wip-- [skip ci]"'
|
||||
|
||||
function grename() {
|
||||
if [[ -z "$1" || -z "$2" ]]; then
|
||||
echo "Usage: $0 old_branch new_branch"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Rename branch locally
|
||||
git branch -m "$1" "$2"
|
||||
# Rename branch in origin remote
|
||||
if git push origin :"$1"; then
|
||||
git push --set-upstream origin "$2"
|
||||
fi
|
||||
}
|
||||
@ -0,0 +1,3 @@
|
||||
alias h='history'
|
||||
alias hs='history | grep'
|
||||
alias hsi='history | grep -i'
|
||||
@ -0,0 +1,82 @@
|
||||
# Usage:
|
||||
# Just add pip to your installed plugins.
|
||||
|
||||
# If you would like to change the cheeseshops used for autocomplete set
|
||||
# ZSH_PIP_INDEXES in your zshrc. If one of your indexes are bogus you won't get
|
||||
# any kind of error message, pip will just not autocomplete from them. Double
|
||||
# check!
|
||||
#
|
||||
# If you would like to clear your cache, go ahead and do a
|
||||
# "zsh-pip-clear-cache".
|
||||
|
||||
ZSH_PIP_CACHE_FILE=~/.pip/zsh-cache
|
||||
ZSH_PIP_INDEXES=(https://pypi.org/simple/)
|
||||
|
||||
zsh-pip-clear-cache() {
|
||||
rm $ZSH_PIP_CACHE_FILE
|
||||
unset piplist
|
||||
}
|
||||
|
||||
zsh-pip-clean-packages() {
|
||||
sed -n '/<a href/ s/.*>\([^<]\{1,\}\).*/\1/p'
|
||||
}
|
||||
|
||||
zsh-pip-cache-packages() {
|
||||
if [[ ! -d ${ZSH_PIP_CACHE_FILE:h} ]]; then
|
||||
mkdir -p ${ZSH_PIP_CACHE_FILE:h}
|
||||
fi
|
||||
|
||||
if [[ ! -f $ZSH_PIP_CACHE_FILE ]]; then
|
||||
echo -n "(...caching package index...)"
|
||||
tmp_cache=/tmp/zsh_tmp_cache
|
||||
touch $tmp_cache
|
||||
for index in $ZSH_PIP_INDEXES ; do
|
||||
# well... I've already got two problems
|
||||
curl -L $index 2>/dev/null | \
|
||||
zsh-pip-clean-packages \
|
||||
>> $tmp_cache
|
||||
done
|
||||
sort $tmp_cache | uniq | tr '\n' ' ' > $ZSH_PIP_CACHE_FILE
|
||||
rm $tmp_cache
|
||||
fi
|
||||
}
|
||||
|
||||
# A test function that validates the regex against known forms of the simple
|
||||
# index. If you modify the regex to make it work for you, you should add a test
|
||||
# case in here and make sure that your changes don't break things for someone
|
||||
# else.
|
||||
zsh-pip-test-clean-packages() {
|
||||
local expected
|
||||
local actual
|
||||
expected="0x10c-asm
|
||||
1009558_nester"
|
||||
|
||||
actual=$(echo -n "<html><head><title>Simple Index</title><meta name=\"api-version\" value=\"2\" /></head><body>
|
||||
<a href='0x10c-asm'>0x10c-asm</a><br/>
|
||||
<a href='1009558_nester'>1009558_nester</a><br/>
|
||||
</body></html>" | zsh-pip-clean-packages)
|
||||
|
||||
if [[ $actual != $expected ]] ; then
|
||||
echo -e "python's simple index is broken:\n$actual\n !=\n$expected"
|
||||
else
|
||||
echo "python's simple index is fine"
|
||||
fi
|
||||
|
||||
actual=$(echo -n '<html>
|
||||
<head>
|
||||
<title>Simple Package Index</title>
|
||||
</head>
|
||||
<body>
|
||||
<a href="0x10c-asm">0x10c-asm</a><br/>
|
||||
<a href="1009558_nester">1009558_nester</a><br/>
|
||||
</body></html>' | zsh-pip-clean-packages)
|
||||
|
||||
if [[ $actual != $expected ]] ; then
|
||||
echo -e "the djangopypi2 index is broken:\n$actual\n !=\n$expected"
|
||||
else
|
||||
echo "the djangopypi2 index is fine"
|
||||
fi
|
||||
}
|
||||
|
||||
alias pip="noglob pip" # allows square brackets for pip command invocation
|
||||
|
||||
@ -0,0 +1,42 @@
|
||||
# This plugin loads pyenv into the current shell and provides prompt info via
|
||||
# the 'pyenv_prompt_info' function. Also loads pyenv-virtualenv if available.
|
||||
|
||||
# Load pyenv only if command not already available
|
||||
command -v pyenv &> /dev/null && FOUND_PYENV=1 || FOUND_PYENV=0
|
||||
|
||||
if [[ $FOUND_PYENV -ne 1 ]]; then
|
||||
pyenvdirs=("$HOME/.pyenv" "/usr/local/pyenv" "/opt/pyenv" "/usr/local/opt/pyenv")
|
||||
for dir in $pyenvdirs; do
|
||||
if [[ -d $dir/bin ]]; then
|
||||
export PATH="$PATH:$dir/bin"
|
||||
FOUND_PYENV=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ $FOUND_PYENV -ne 1 ]]; then
|
||||
if (( $+commands[brew] )) && dir=$(brew --prefix pyenv 2>/dev/null); then
|
||||
if [[ -d $dir/bin ]]; then
|
||||
export PATH="$PATH:$dir/bin"
|
||||
FOUND_PYENV=1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ $FOUND_PYENV -eq 1 ]]; then
|
||||
eval "$(pyenv init - zsh)"
|
||||
if (( $+commands[pyenv-virtualenv-init] )); then
|
||||
eval "$(pyenv virtualenv-init - zsh)"
|
||||
fi
|
||||
function pyenv_prompt_info() {
|
||||
echo "$(pyenv version-name)"
|
||||
}
|
||||
else
|
||||
# fallback to system python
|
||||
function pyenv_prompt_info() {
|
||||
echo "system: $(python -V 2>&1 | cut -f 2 -d ' ')"
|
||||
}
|
||||
fi
|
||||
|
||||
unset FOUND_PYENV pyenvdirs dir
|
||||
@ -0,0 +1,47 @@
|
||||
# Find python file
|
||||
alias pyfind='find . -name "*.py"'
|
||||
|
||||
# Remove python compiled byte-code and mypy/pytest cache in either the current
|
||||
# directory or in a list of specified directories (including sub directories).
|
||||
function pyclean() {
|
||||
ZSH_PYCLEAN_PLACES=${*:-'.'}
|
||||
find ${ZSH_PYCLEAN_PLACES} -type f -name "*.py[co]" -delete
|
||||
find ${ZSH_PYCLEAN_PLACES} -type d -name "__pycache__" -delete
|
||||
find ${ZSH_PYCLEAN_PLACES} -depth -type d -name ".mypy_cache" -exec rm -r "{}" +
|
||||
find ${ZSH_PYCLEAN_PLACES} -depth -type d -name ".pytest_cache" -exec rm -r "{}" +
|
||||
}
|
||||
|
||||
# Add the user installed site-packages paths to PYTHONPATH, only if the
|
||||
# directory exists. Also preserve the current PYTHONPATH value.
|
||||
# Feel free to autorun this when .zshrc loads.
|
||||
function pyuserpaths() {
|
||||
local targets=("python2" "python3") # bins
|
||||
|
||||
# Get existing interpreters.
|
||||
local interps=()
|
||||
for target in $targets; do
|
||||
[ `command -v $target` ] && interps+=($target)
|
||||
done
|
||||
|
||||
# Check for a non-standard install directory.
|
||||
local user_base="${HOME}/.local"
|
||||
[ $PYTHONUSERBASE ] && user_base=$PYTHONUSERBASE
|
||||
|
||||
# Add version specific paths, if:
|
||||
# it exists in the filesystem;
|
||||
# it isn't in PYTHONPATH already.
|
||||
for interp in $interps; do
|
||||
# Get minor release version.
|
||||
local ver=`$interp -V 2>&1`
|
||||
ver=`echo ${ver:7} | cut -d '.' -f 1,2` # The patch version is variable length, truncate it.
|
||||
|
||||
local site_pkgs="${user_base}/lib/python${ver}/site-packages"
|
||||
[[ -d $site_pkgs && ! $PYTHONPATH =~ $site_pkgs ]] && export PYTHONPATH=${site_pkgs}:$PYTHONPATH
|
||||
done
|
||||
}
|
||||
|
||||
# Grep among .py files
|
||||
alias pygrep='grep -r --include="*.py"'
|
||||
|
||||
# Run proper IPython regarding current virtualenv (if any)
|
||||
alias ipython="python -c 'import IPython; IPython.terminal.ipapp.launch_new_instance()'"
|
||||
@ -0,0 +1,33 @@
|
||||
# ------------------------------------------------------------------------------
|
||||
# Description
|
||||
# -----------
|
||||
#
|
||||
# sudo or sudoedit will be inserted before the command
|
||||
#
|
||||
# ------------------------------------------------------------------------------
|
||||
# Authors
|
||||
# -------
|
||||
#
|
||||
# * Dongweiming <ciici123@gmail.com>
|
||||
#
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
sudo-command-line() {
|
||||
[[ -z $BUFFER ]] && zle up-history
|
||||
if [[ $BUFFER == sudo\ * ]]; then
|
||||
LBUFFER="${LBUFFER#sudo }"
|
||||
elif [[ $BUFFER == $EDITOR\ * ]]; then
|
||||
LBUFFER="${LBUFFER#$EDITOR }"
|
||||
LBUFFER="sudoedit $LBUFFER"
|
||||
elif [[ $BUFFER == sudoedit\ * ]]; then
|
||||
LBUFFER="${LBUFFER#sudoedit }"
|
||||
LBUFFER="$EDITOR $LBUFFER"
|
||||
else
|
||||
LBUFFER="sudo $LBUFFER"
|
||||
fi
|
||||
}
|
||||
zle -N sudo-command-line
|
||||
# Defined shortcut keys: [Esc] [Esc]
|
||||
bindkey -M emacs '\e\e' sudo-command-line
|
||||
bindkey -M vicmd '\e\e' sudo-command-line
|
||||
bindkey -M viins '\e\e' sudo-command-line
|
||||
@ -0,0 +1 @@
|
||||
Subproject commit ae315ded4dba10685dbbafbfa2ff3c1aefeb490d
|
||||
@ -0,0 +1 @@
|
||||
Subproject commit e7d3fbc50b0209cb9f9b0812fd40298be03c7808
|
||||
@ -0,0 +1 @@
|
||||
Subproject commit b4aec740f23d195116d1fddec91d67b5e9c2c5c7
|
||||
@ -0,0 +1,30 @@
|
||||
SPACESHIP_PROMPT_SEPARATE_LINE=false
|
||||
SPACESHIP_DIR_TRUNK_PREFIX="…/"
|
||||
SPACESHIP_PACKAGE_SHOW=false
|
||||
SPACESHIP_NODE_SHOW=false
|
||||
SPACESHIP_RUBY_SHOW=false
|
||||
SPACESHIP_ELM_SHOW=false
|
||||
SPACESHIP_ELIXIR_SHOW=false
|
||||
SPACESHIP_XCODE_SHOW_LOCAL=false
|
||||
SPACESHIP_XCODE_SHOW_GLOBAL=false
|
||||
SPACESHIP_SWIFT_SHOW_LOCAL=false
|
||||
SPACESHIP_SWIFT_SHOW_GLOBAL=false
|
||||
SPACESHIP_GOLANG_SYMBOL="\UFCD1 "
|
||||
SPACESHIP_GOLANG_SHOW=false
|
||||
SPACESHIP_PYTHON_SHOW=false
|
||||
SPACESHIP_PYENV_SHOW=false
|
||||
SPACESHIP_PHP_SHOW=false
|
||||
SPACESHIP_RUST_SYMBOL="\Ue7a8 "
|
||||
SPACESHIP_JULIA_SHOW=false
|
||||
SPACESHIP_DOCKER_SYMBOL="\UF308 "
|
||||
SPACESHIP_AWS_SYMBOL="\UE7AD "
|
||||
SPACESHIP_AWS_PREFIX=""
|
||||
SPACESHIP_DOTNET_SHOW=false
|
||||
SPACESHIP_EMBER_SHOW=false
|
||||
SPACESHIP_KUBECTL_SHOW=false
|
||||
SPACESHIP_KUBECTL_VERSION_SHOW=false
|
||||
SPACESHIP_KUBECONTEXT_SHOW=false
|
||||
SPACESHIP_TERRAFORM_SHOW=false
|
||||
SPACESHIP_BATTERY_THRESHOLD=100
|
||||
|
||||
spaceship_vi_mode_enable
|
||||
@ -0,0 +1 @@
|
||||
source $HOME/.config/zsh/themes/spaceship-prompt/spaceship.zsh-theme
|
||||
@ -0,0 +1 @@
|
||||
Subproject commit 8275b72a5f50d7862c62ac9ab277b3f6aa63a5ce
|
||||
@ -0,0 +1,81 @@
|
||||
# Fix issue with git plugin
|
||||
autoload -U +X compinit && compinit
|
||||
|
||||
# If you come from bash you might have to change your $PATH.
|
||||
export PATH=$HOME/code/Projects/Golang/bin:$HOME/go/go1.14.2/bin:$HOME/code/Bin:$HOME/.cargo/bin:$HOME/scripts:$HOME/.gem/ruby/2.7.0/gems:/usr/local/bin:$PATH
|
||||
|
||||
export LANG=en_US.UTF-8
|
||||
export LC_ALL=en_US.UTF-8
|
||||
|
||||
source $HOME/.config/zsh/aliases.zsh
|
||||
source $HOME/.config/zsh/plugins.zsh
|
||||
source $HOME/.config/zsh/themes.zsh
|
||||
|
||||
export VISUAL=vim
|
||||
export EDITOR=$VISUAL
|
||||
|
||||
export LESS_TERMCAP_mb=$'\e[1;32m'
|
||||
export LESS_TERMCAP_md=$'\e[1;32m'
|
||||
export LESS_TERMCAP_me=$'\e[0m'
|
||||
export LESS_TERMCAP_se=$'\e[0m'
|
||||
export LESS_TERMCAP_so=$'\e[01;33m'
|
||||
export LESS_TERMCAP_ue=$'\e[0m'
|
||||
export LESS_TERMCAP_us=$'\e[1;4;31m'
|
||||
|
||||
bindkey '^`' autosuggest-clear
|
||||
bindkey -v
|
||||
|
||||
# ------ ZSH Settings -----
|
||||
|
||||
unsetopt NO_BEEP
|
||||
unsetopt NO_MATCH
|
||||
setopt AUTO_CD
|
||||
setopt BEEP
|
||||
setopt NOMATCH
|
||||
setopt NOTIFY
|
||||
setopt INC_APPEND_HISTORY
|
||||
setopt SHARE_HISTORY
|
||||
setopt HIST_EXPIRE_DUPS_FIRST
|
||||
setopt HIST_IGNORE_DUPS
|
||||
setopt HIST_IGNORE_ALL_DUPS
|
||||
setopt HIST_FIND_NO_DUPS
|
||||
setopt HIST_SAVE_NO_DUPS
|
||||
setopt HIST_REDUCE_BLANKS
|
||||
setopt HIST_VERIFY
|
||||
setopt HIST_BEEP
|
||||
setopt INTERACTIVE_COMMENTS
|
||||
setopt MAGIC_EQUAL_SUBST
|
||||
|
||||
HISTFILE="$HOME/.zsh_history"
|
||||
HIST_STAMPS=yyyy-mm-dd
|
||||
HISTSIZE=5000
|
||||
SAVEHIST=5000
|
||||
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=#ccc'
|
||||
ZLE_RPROMPT_INDENT=0
|
||||
|
||||
source $HOME/.config/zsh/spaceship.zsh
|
||||
|
||||
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
|
||||
|
||||
export OPENCV_LOG_LEVEL=ERROR
|
||||
|
||||
# For BriteDevEnv...
|
||||
function load_britedevenv() {
|
||||
# Activate direnv, which will pick up the `.envrc`.
|
||||
eval "$(direnv hook zsh)"
|
||||
|
||||
# Since 'docker-compose' will now be working across multiple repositories,
|
||||
# we'll export a ENV variable that it can read to figure out where all our
|
||||
# repos are checked out at.
|
||||
export REPO_DIR="~/code/IWS"
|
||||
|
||||
export BRITEDEVENV_PATH="/home/dustyp/code/IWS/BriteDevEnv"
|
||||
bde_zsh_extras="${BRITEDEVENV_PATH}/shells/zsh_extras.sh"
|
||||
|
||||
if [ -f ${bde_zsh_extras} ]
|
||||
then
|
||||
source ${bde_zsh_extras}
|
||||
fi
|
||||
}
|
||||
|
||||
load_britedevenv
|
||||
@ -0,0 +1,53 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Get class of a wid
|
||||
get_class() {
|
||||
id=$1
|
||||
if [ -z "$id" ]; then
|
||||
echo ""
|
||||
else
|
||||
xprop -id "$id" | sed -n '/WM_CLASS\|WM_COMMAND/s/.*"\(.*\)".*/\1/p'
|
||||
fi
|
||||
}
|
||||
|
||||
swallow() {
|
||||
addedtodesktop=$2
|
||||
lasttermdesktop=$(bspc query -D -n last)
|
||||
|
||||
swallowerid=$1
|
||||
swallowingid=$(bspc query -N -n last)
|
||||
|
||||
if [ "$addedtodesktop" = "$lasttermdesktop" ]; then
|
||||
cat ~/.config/bspwm/noswallow ~/.config/bspwm/terminals | grep "^$(get_class "$swallowerid")$" && return
|
||||
grep "^$(get_class "$swallowingid")$" ~/.config/bspwm/terminals || return
|
||||
echo "$swallowerid $swallowingid" >> /tmp/swallowids
|
||||
bspc node "$swallowingid" --flag hidden=on
|
||||
fi
|
||||
}
|
||||
|
||||
spit() {
|
||||
spitterid=$1
|
||||
spitterdesktop=$2
|
||||
grep "^$spitterid" /tmp/swallowids || return
|
||||
spittingid=$(grep "^$spitterid" /tmp/swallowids | head -n1 | awk '{print $2}')
|
||||
|
||||
bspc node "$spittingid" --flag hidden=off
|
||||
|
||||
termdesktop=$(bspc query -D -n "$spittingid")
|
||||
[ "$termdesktop" = "$spitterdesktop" ] || bspc node "$spittingid" -d "$spitterdesktop"
|
||||
|
||||
bspc node "$spittingid" -f
|
||||
sed -i "/^$spitterid/d" /tmp/swallowids
|
||||
}
|
||||
|
||||
bspc subscribe node_add node_remove | while read -r event
|
||||
do
|
||||
case $(echo "$event" | awk '{ print $1 }') in
|
||||
node_add)
|
||||
swallow $(echo "$event" | awk '{print $5 " " $3}')
|
||||
;;
|
||||
node_remove)
|
||||
spit $(echo "$event" | awk '{print $4 " " $3}')
|
||||
;;
|
||||
esac
|
||||
done
|
||||
@ -0,0 +1,14 @@
|
||||
#!/bin/zsh
|
||||
|
||||
# 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 Polybar, using default config location ~/.config/polybar/config
|
||||
polybar topbar &
|
||||
polybar right &
|
||||
polybar left &
|
||||
|
||||
echo "Polybar launched..."
|
||||
Loading…
Reference in new issue