config files
This commit is contained in:
commit
e39997c54b
69
.bin/rofi-usb-mount.sh
Executable file
69
.bin/rofi-usb-mount.sh
Executable file
@ -0,0 +1,69 @@
|
||||
#!/bin/bash
|
||||
|
||||
purple=#a0b0e8
|
||||
|
||||
usbcheck(){ \
|
||||
mounteddrives="$(lsblk -rpo "name,type,size,mountpoint" | grep -v 'sda' | awk '$2=="part"&&$4!=""{printf "%s (%s)\t ",$1,$3}')"
|
||||
if [ $(echo "$mounteddrives" | wc -w) -gt 0 ]; then
|
||||
echo " $mounteddrives"
|
||||
else
|
||||
if [ $(echo "$usbdrives" | wc -w) -gt 0 ]; then
|
||||
echo %{u"$purple"}%{+u}%{T2}%{F"$purple"} USB%{T-}%{F-}
|
||||
else
|
||||
echo ""
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
mountusb(){ \
|
||||
chosen=$(echo "$usbdrives" | rofi -dmenu -theme ~/.config/bspwm/themes/mytheme/rofi/menu.rasi -show run -lines 5 -opacity "85" -bw 0 -width 30 -padding 20 -i -p "Mount which drive?" | awk '{print $1}')
|
||||
mountpoint=$(udisksctl mount --no-user-interaction -b "$chosen" 2>/dev/null) && notify-send "💻 USB mounting" "$chosen mounted to $mountpoint" && exit 0
|
||||
|
||||
}
|
||||
|
||||
umountusb(){ \
|
||||
chosen=$(echo "$mounteddrives" | rofi -dmenu -theme ~/.config/bspwm/themes/mytheme/rofi/menu.rasi -show run -lines 5 -opacity "85" -bw 0 -width 30 -padding 20 -i -p "Unmount which drive?" | awk '{print $1}')
|
||||
mountpoint=$(udisksctl unmount --no-user-interaction -b "$chosen" 2>/dev/null) && notify-send "💻 USB unmounting" "$chosen mounted" && exit 0
|
||||
udisksctl power-off --no-user-interaction -b "$chosen"
|
||||
}
|
||||
|
||||
umountall(){ \
|
||||
for chosen in $(echo $(lsblk -rpo "name,type,size,mountpoint" | grep -v 'sda' | awk '$2=="part"&&$4!=""{printf "%s\n",$1}')); do
|
||||
udisksctl unmount --no-user-interaction -b "$chosen"
|
||||
udisksctl power-off --no-user-interaction -b "$chosen"
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
usbdrives="$(lsblk -rpo "name,type,size,mountpoint" | grep -v 'sda' | awk '$2=="part"&&$4==""{printf "%s (%s)\n",$1,$3}')"
|
||||
mounteddrives="$(lsblk -rpo "name,type,size,mountpoint" | grep -v 'sda' | awk '$2=="part"&&$4!=""{printf "%s (%s)\n",$1,$3}')"
|
||||
|
||||
case "$1" in
|
||||
--check)
|
||||
usbcheck
|
||||
;;
|
||||
--mount)
|
||||
if [ $(echo "$usbdrives" | wc -w) -gt 0 ]; then
|
||||
notify-send "USB drive(s) detected."
|
||||
mountusb
|
||||
else
|
||||
notify-send "No USB drive(s) detected." && exit
|
||||
fi
|
||||
;;
|
||||
--umount)
|
||||
if [ $(echo "$mounteddrives" | wc -w) -gt 0 ]; then
|
||||
notify-send "USB drive(s) detected."
|
||||
umountusb
|
||||
else
|
||||
notify-send "No USB drive(s) to unmount." && exit
|
||||
fi
|
||||
;;
|
||||
--umount-all)
|
||||
if [ $(echo "$mounteddrives" | wc -w) -gt 0 ]; then
|
||||
notify-send "Unmounting all USB drives."
|
||||
umountall
|
||||
else
|
||||
notify-send "No USB drive(s) to unmount." && exit
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
747
.config/alacritty/alacritty.yml
Executable file
747
.config/alacritty/alacritty.yml
Executable file
@ -0,0 +1,747 @@
|
||||
window:
|
||||
padding:
|
||||
x: 15
|
||||
y: 15
|
||||
opacity: 0.3
|
||||
|
||||
scrolling:
|
||||
history: 100
|
||||
|
||||
font:
|
||||
normal:
|
||||
family: JetBrainsMono
|
||||
style: Bold
|
||||
|
||||
bold:
|
||||
family: JetBrainsMono
|
||||
style: Bold
|
||||
|
||||
size: 10.0
|
||||
|
||||
colors:
|
||||
primary:
|
||||
background: '#2e3440'
|
||||
foreground: '#d8dee9'
|
||||
|
||||
normal:
|
||||
black: '#3b4252'
|
||||
red: '#bf616a'
|
||||
green: '#a3be8c'
|
||||
yellow: '#ebcb8b'
|
||||
blue: '#81a1c1'
|
||||
magenta: '#b48ead'
|
||||
cyan: '#88c0d0'
|
||||
white: '#e5e9f0'
|
||||
bright:
|
||||
black: '#4c566a'
|
||||
red: '#bf616a'
|
||||
green: '#a3be8c'
|
||||
yellow: '#ebcb8b'
|
||||
blue: '#81a1c1'
|
||||
magenta: '#b48ead'
|
||||
cyan: '#8fbcbb'
|
||||
white: '#eceff4'
|
||||
|
||||
# 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'
|
||||
|
||||
# Keyboard 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
|
||||
|
||||
# Footer bar
|
||||
#
|
||||
# Color used for the footer bar on the bottom, used by search regex input,
|
||||
# hyperlink URI preview, etc.
|
||||
#
|
||||
#footer_bar:
|
||||
# background: '#c5c8c6'
|
||||
# foreground: '#1d1f21'
|
||||
|
||||
# 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: '#1d1f21'
|
||||
# red: '#cc6666'
|
||||
# green: '#b5bd68'
|
||||
# yellow: '#f0c674'
|
||||
# blue: '#81a2be'
|
||||
# magenta: '#b294bb'
|
||||
# cyan: '#8abeb7'
|
||||
# white: '#c5c8c6'
|
||||
|
||||
# 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
|
||||
|
||||
# Time after which cursor stops blinking, in seconds.
|
||||
#
|
||||
# Specifying '0' will disable timeout for blinking.
|
||||
#blink_timeout: 5
|
||||
|
||||
# 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:
|
||||
# - (Linux/BSD/macOS) `$SHELL` or the user's login shell, if `$SHELL` is unset
|
||||
# - (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
|
||||
|
||||
# Hints
|
||||
#
|
||||
# Terminal hints can be used to find text or hyperlink 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 any of `regex` or `hyperlinks` field and either an
|
||||
# `action` or a `command` field. The fields `mouse`, `binding` and
|
||||
# `post_processing` are optional.
|
||||
#
|
||||
# The `hyperlinks` option will cause OSC 8 escape sequence hyperlinks to be
|
||||
# highlighted.
|
||||
#
|
||||
# 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 and applies only to
|
||||
# `regex` matches.
|
||||
#
|
||||
# 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{-}\\^⟨⟩`]+"
|
||||
# hyperlinks: true
|
||||
# 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`.
|
||||
# - CenterAroundViCursor
|
||||
# Center view around vi mode cursor
|
||||
#
|
||||
# - 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: Z, mode: Vi|~Search, action: CenterAroundViCursor }
|
||||
#- { 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
|
||||
|
||||
# Highlight window damage information.
|
||||
#highlight_damage: false
|
||||
|
||||
48
.config/alacritty/output.toml
Executable file
48
.config/alacritty/output.toml
Executable file
@ -0,0 +1,48 @@
|
||||
[window]
|
||||
opacity = 0.6
|
||||
|
||||
[window.padding]
|
||||
x = 10
|
||||
y = 10
|
||||
|
||||
[scrolling]
|
||||
history = 100
|
||||
|
||||
[font]
|
||||
size = 11
|
||||
|
||||
[font.normal]
|
||||
family = "Iosevka Nerd Font Mono"
|
||||
style = "Bold"
|
||||
|
||||
[font.bold]
|
||||
family = "Iosevka Nerd Font Mono"
|
||||
style = "Bold"
|
||||
|
||||
[colors.primary]
|
||||
background = "#2e3440"
|
||||
foreground = "#d8dee9"
|
||||
|
||||
[colors.normal]
|
||||
black = "#3b4252"
|
||||
red = "#e37488"
|
||||
green = "#a3be8c"
|
||||
yellow = "#ebcb8b"
|
||||
blue = "#729ac2"
|
||||
magenta = "#b48ead"
|
||||
cyan = "#9ed0de"
|
||||
white = "#e5e9f0"
|
||||
|
||||
[colors.bright]
|
||||
black = "#4c566a"
|
||||
red = "#bf616a"
|
||||
green = "#a3be8c"
|
||||
yellow = "#ebcb8b"
|
||||
blue = "#81a1c1"
|
||||
magenta = "#b48ead"
|
||||
cyan = "#8fbcbb"
|
||||
white = "#eceff4"
|
||||
|
||||
[colors.cursor]
|
||||
text = "CellBackground"
|
||||
cursor = "CellForeground"
|
||||
39
.config/bspwm/bspwmrc
Executable file
39
.config/bspwm/bspwmrc
Executable file
@ -0,0 +1,39 @@
|
||||
#! /bin/bash
|
||||
#AUTOSTART
|
||||
|
||||
numlockx &
|
||||
dunst --config ~/.config/dunst/dunstrc &
|
||||
picom --config ~/.config/bspwm/themes/mytheme/picom/picom.conf &
|
||||
xsetroot -cursor_name left_ptr &
|
||||
feh --bg-scale ~/wallpapers/0008.png
|
||||
~/.config/bspwm/themes/mytheme/scripts/launch_polybar.sh &
|
||||
|
||||
|
||||
#WORKSPACE
|
||||
bspc rule -a TelegramDesktop state=floating rectangle=450x700+100+100 desktop='^3'
|
||||
bspc rule -a mpv state=floating rectangle=800x450+560+315 follow=off
|
||||
bspc rule -a dmenu rectangle=900x22+610+90
|
||||
bspc rule -a Viewnior rectangle=1350x900+285+90 state=floating
|
||||
bspc rule -a PortProton state=floating desktop='^5'
|
||||
bspc rule -a Steam state=floating desktop='^5'
|
||||
|
||||
#
|
||||
bspc monitor -d
|
||||
|
||||
bspc config border_width 2
|
||||
bspc config window_gap 5
|
||||
|
||||
bspc config normal_border_color "#2e3440"
|
||||
bspc config active_border_color "#2e3440"
|
||||
bspc config focused_border_color "#6b6b6b"
|
||||
bspc config presel_feedback_color "#2e3440"
|
||||
|
||||
bspc config split_ratio 0.5
|
||||
|
||||
bspc config focus_follows_pointer true
|
||||
bspc config pointer_modifier super
|
||||
|
||||
bspc config single_monocle true
|
||||
bspc config borderless_monocle true
|
||||
bspc config gapless_monocle false
|
||||
bspc config paddingless_monocle true
|
||||
439
.config/dunst/dunstrc
Executable file
439
.config/dunst/dunstrc
Executable file
@ -0,0 +1,439 @@
|
||||
# See dunst(5) for all configuration options
|
||||
|
||||
[global]
|
||||
### Display ###
|
||||
|
||||
# Which monitor should the notifications be displayed on.
|
||||
monitor = 0
|
||||
|
||||
# Display notification on focused monitor. Possible modes are:
|
||||
# mouse: follow mouse pointer
|
||||
# keyboard: follow window with keyboard focus
|
||||
# none: don't follow anything
|
||||
#
|
||||
# "keyboard" needs a window manager that exports the
|
||||
# _NET_ACTIVE_WINDOW property.
|
||||
# This should be the case for almost all modern window managers.
|
||||
#
|
||||
# If this option is set to mouse or keyboard, the monitor option
|
||||
# will be ignored.
|
||||
follow = none
|
||||
|
||||
### Geometry ###
|
||||
|
||||
# dynamic width from 0 to 300
|
||||
# width = (0, 300)
|
||||
# constant width of 300
|
||||
width = (0, 300)
|
||||
|
||||
# The maximum height of a single notification, excluding the frame.
|
||||
height = 200
|
||||
|
||||
# Position the notification in the top right corner
|
||||
origin = top-right
|
||||
|
||||
# Offset from the origin
|
||||
offset = 20x50
|
||||
|
||||
# Scale factor. It is auto-detected if value is 0.
|
||||
scale = 0
|
||||
|
||||
# Maximum number of notification (0 means no limit)
|
||||
notification_limit = 0
|
||||
|
||||
### Progress bar ###
|
||||
|
||||
# Turn on the progess bar. It appears when a progress hint is passed with
|
||||
# for example dunstify -h int:value:12
|
||||
progress_bar = true
|
||||
|
||||
# Set the progress bar height. This includes the frame, so make sure
|
||||
# it's at least twice as big as the frame width.
|
||||
progress_bar_height = 10
|
||||
|
||||
# Set the frame width of the progress bar
|
||||
progress_bar_frame_width = 1
|
||||
|
||||
# Set the minimum width for the progress bar
|
||||
progress_bar_min_width = 150
|
||||
|
||||
# Set the maximum width for the progress bar
|
||||
progress_bar_max_width = 300
|
||||
|
||||
|
||||
# Show how many messages are currently hidden (because of
|
||||
# notification_limit).
|
||||
indicate_hidden = yes
|
||||
|
||||
# The transparency of the window. Range: [0; 100].
|
||||
# This option will only work if a compositing window manager is
|
||||
# present (e.g. xcompmgr, compiz, etc.). (X11 only)
|
||||
transparency = 20
|
||||
|
||||
# Draw a line of "separator_height" pixel height between two
|
||||
# notifications.
|
||||
# Set to 0 to disable.
|
||||
separator_height = 2
|
||||
|
||||
# Padding between text and separator.
|
||||
padding = 8
|
||||
|
||||
# Horizontal padding.
|
||||
horizontal_padding = 8
|
||||
|
||||
# Padding between text and icon.
|
||||
text_icon_padding = 0
|
||||
|
||||
# Defines width in pixels of frame around the notification window.
|
||||
# Set to 0 to disable.
|
||||
frame_width = 1
|
||||
|
||||
# Defines color of the frame around the notification window.
|
||||
frame_color = "#3d3d3d"
|
||||
|
||||
# Define a color for the separator.
|
||||
# possible values are:
|
||||
# * auto: dunst tries to find a color fitting to the background;
|
||||
# * foreground: use the same color as the foreground;
|
||||
# * frame: use the same color as the frame;
|
||||
# * anything else will be interpreted as a X color.
|
||||
separator_color = frame
|
||||
|
||||
# Sort messages by urgency.
|
||||
sort = yes
|
||||
|
||||
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||
# for longer than idle_threshold seconds.
|
||||
# Set to 0 to disable.
|
||||
# A client can set the 'transient' hint to bypass this. See the rules
|
||||
# section for how to disable this if necessary
|
||||
# idle_threshold = 120
|
||||
|
||||
### Text ###
|
||||
|
||||
font = iosevka nerd font mono 9
|
||||
|
||||
# The spacing between lines. If the height is smaller than the
|
||||
# font height, it will get raised to the font height.
|
||||
line_height = 0
|
||||
|
||||
# Possible values are:
|
||||
# full: Allow a small subset of html markup in notifications:
|
||||
# <b>bold</b>
|
||||
# <i>italic</i>
|
||||
# <s>strikethrough</s>
|
||||
# <u>underline</u>
|
||||
#
|
||||
# For a complete reference see
|
||||
# <https://docs.gtk.org/Pango/pango_markup.html>.
|
||||
#
|
||||
# strip: This setting is provided for compatibility with some broken
|
||||
# clients that send markup even though it's not enabled on the
|
||||
# server. Dunst will try to strip the markup but the parsing is
|
||||
# simplistic so using this option outside of matching rules for
|
||||
# specific applications *IS GREATLY DISCOURAGED*.
|
||||
#
|
||||
# no: Disable markup parsing, incoming notifications will be treated as
|
||||
# plain text. Dunst will not advertise that it has the body-markup
|
||||
# capability if this is set as a global setting.
|
||||
#
|
||||
# It's important to note that markup inside the format option will be parsed
|
||||
# regardless of what this is set to.
|
||||
markup = full
|
||||
|
||||
# The format of the message. Possible variables are:
|
||||
# %a appname
|
||||
# %s summary
|
||||
# %b body
|
||||
# %i iconname (including its path)
|
||||
# %I iconname (without its path)
|
||||
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||
# %n progress value if set without any extra characters
|
||||
# %% Literal %
|
||||
# Markup is allowed
|
||||
format = "<b>%s</b>\n%b"
|
||||
|
||||
# Alignment of message text.
|
||||
# Possible values are "left", "center" and "right".
|
||||
alignment = left
|
||||
|
||||
# Vertical alignment of message text and icon.
|
||||
# Possible values are "top", "center" and "bottom".
|
||||
vertical_alignment = center
|
||||
|
||||
# Show age of message if message is older than show_age_threshold
|
||||
# seconds.
|
||||
# Set to -1 to disable.
|
||||
show_age_threshold = 60
|
||||
|
||||
# Specify where to make an ellipsis in long lines.
|
||||
# Possible values are "start", "middle" and "end".
|
||||
ellipsize = middle
|
||||
|
||||
# Ignore newlines '\n' in notifications.
|
||||
ignore_newline = no
|
||||
|
||||
# Stack together notifications with the same content
|
||||
stack_duplicates = true
|
||||
|
||||
# Hide the count of stacked notifications with the same content
|
||||
hide_duplicate_count = false
|
||||
|
||||
# Display indicators for URLs (U) and actions (A).
|
||||
show_indicators = yes
|
||||
|
||||
### Icons ###
|
||||
|
||||
# Align icons left/right/top/off
|
||||
icon_position = left
|
||||
|
||||
# Scale small icons up to this size, set to 0 to disable. Helpful
|
||||
# for e.g. small files or high-dpi screens. In case of conflict,
|
||||
# max_icon_size takes precedence over this.
|
||||
min_icon_size = 0
|
||||
|
||||
# Scale larger icons down to this size, set to 0 to disable
|
||||
max_icon_size = 32
|
||||
|
||||
# Paths to default icons.
|
||||
icon_path = /usr/share/icons/Nordzy/status/16/:/usr/share/icons/Nordzy/devices/16/
|
||||
|
||||
### History ###
|
||||
|
||||
# Should a notification popped up from history be sticky or timeout
|
||||
# as if it would normally do.
|
||||
sticky_history = yes
|
||||
|
||||
# Maximum amount of notifications kept in history
|
||||
history_length = 20
|
||||
|
||||
### Misc/Advanced ###
|
||||
|
||||
# dmenu path.
|
||||
dmenu = /usr/bin/dmenu -p dunst:
|
||||
|
||||
# Browser for opening urls in context menu.
|
||||
browser = /usr/bin/xdg-open
|
||||
|
||||
# Always run rule-defined scripts, even if the notification is suppressed
|
||||
always_run_script = true
|
||||
|
||||
# Define the title of the windows spawned by dunst
|
||||
title = Dunst
|
||||
|
||||
# Define the class of the windows spawned by dunst
|
||||
class = Dunst
|
||||
|
||||
# Define the corner radius of the notification window
|
||||
# in pixel size. If the radius is 0, you have no rounded
|
||||
# corners.
|
||||
# The radius will be automatically lowered if it exceeds half of the
|
||||
# notification height to avoid clipping text and/or icons.
|
||||
corner_radius = 4
|
||||
|
||||
# Ignore the dbus closeNotification message.
|
||||
# Useful to enforce the timeout set by dunst configuration. Without this
|
||||
# parameter, an application may close the notification sent before the
|
||||
# user defined timeout.
|
||||
ignore_dbusclose = false
|
||||
|
||||
### Wayland ###
|
||||
# These settings are Wayland-specific. They have no effect when using X11
|
||||
|
||||
# Uncomment this if you want to let notications appear under fullscreen
|
||||
# applications (default: overlay)
|
||||
# layer = top
|
||||
|
||||
# Set this to true to use X11 output on Wayland.
|
||||
force_xwayland = false
|
||||
|
||||
### Legacy
|
||||
|
||||
# Use the Xinerama extension instead of RandR for multi-monitor support.
|
||||
# This setting is provided for compatibility with older nVidia drivers that
|
||||
# do not support RandR and using it on systems that support RandR is highly
|
||||
# discouraged.
|
||||
#
|
||||
# By enabling this setting dunst will not be able to detect when a monitor
|
||||
# is connected or disconnected which might break follow mode if the screen
|
||||
# layout changes.
|
||||
force_xinerama = false
|
||||
|
||||
### mouse
|
||||
|
||||
# Defines list of actions for each mouse event
|
||||
# Possible values are:
|
||||
# * none: Don't do anything.
|
||||
# * do_action: Invoke the action determined by the action_name rule. If there is no
|
||||
# such action, open the context menu.
|
||||
# * open_url: If the notification has exactly one url, open it. If there are multiple
|
||||
# ones, open the context menu.
|
||||
# * close_current: Close current notification.
|
||||
# * close_all: Close all notifications.
|
||||
# * context: Open context menu for the notification.
|
||||
# * context_all: Open context menu for all notifications.
|
||||
# These values can be strung together for each mouse event, and
|
||||
# will be executed in sequence.
|
||||
mouse_left_click = close_current
|
||||
mouse_middle_click = do_action, close_current
|
||||
mouse_right_click = close_all
|
||||
|
||||
# Experimental features that may or may not work correctly. Do not expect them
|
||||
# to have a consistent behaviour across releases.
|
||||
[experimental]
|
||||
# Calculate the dpi to use on a per-monitor basis.
|
||||
# If this setting is enabled the Xft.dpi value will be ignored and instead
|
||||
# dunst will attempt to calculate an appropriate dpi value for each monitor
|
||||
# using the resolution and physical size. This might be useful in setups
|
||||
# where there are multiple screens with very different dpi values.
|
||||
per_monitor_dpi = false
|
||||
|
||||
|
||||
[urgency_low]
|
||||
# IMPORTANT: colors have to be defined in quotation marks.
|
||||
# Otherwise the "#" and following would be interpreted as a comment.
|
||||
background = "#222222"
|
||||
foreground = "#888888"
|
||||
timeout = 5
|
||||
# Icon for notifications with low urgency, uncomment to enable
|
||||
#default_icon = /path/to/icon
|
||||
|
||||
[urgency_normal]
|
||||
background = "#465465"
|
||||
foreground = "#ffffff"
|
||||
timeout = 5
|
||||
# Icon for notifications with normal urgency, uncomment to enable
|
||||
#default_icon = /path/to/icon
|
||||
|
||||
[urgency_critical]
|
||||
background = "#900000"
|
||||
foreground = "#ffffff"
|
||||
frame_color = "#ff0000"
|
||||
timeout = 0
|
||||
# Icon for notifications with critical urgency, uncomment to enable
|
||||
#default_icon = /path/to/icon
|
||||
|
||||
# Every section that isn't one of the above is interpreted as a rules to
|
||||
# override settings for certain messages.
|
||||
#
|
||||
# Messages can be matched by
|
||||
# appname (discouraged, see desktop_entry)
|
||||
# body
|
||||
# category
|
||||
# desktop_entry
|
||||
# icon
|
||||
# match_transient
|
||||
# msg_urgency
|
||||
# stack_tag
|
||||
# summary
|
||||
#
|
||||
# and you can override the
|
||||
# background
|
||||
# foreground
|
||||
# format
|
||||
# frame_color
|
||||
# fullscreen
|
||||
# new_icon
|
||||
# set_stack_tag
|
||||
# set_transient
|
||||
# set_category
|
||||
# timeout
|
||||
# urgency
|
||||
# icon_position
|
||||
# skip_display
|
||||
# history_ignore
|
||||
# action_name
|
||||
# word_wrap
|
||||
# ellipsize
|
||||
# alignment
|
||||
# hide_text
|
||||
#
|
||||
# Shell-like globbing will get expanded.
|
||||
#
|
||||
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
|
||||
# GLib based applications export their desktop-entry name. In comparison to the appname,
|
||||
# the desktop-entry won't get localized.
|
||||
#
|
||||
# SCRIPTING
|
||||
# You can specify a script that gets run when the rule matches by
|
||||
# setting the "script" option.
|
||||
# The script will be called as follows:
|
||||
# script appname summary body icon urgency
|
||||
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||
#
|
||||
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||
# to find fitting options for rules.
|
||||
|
||||
# Disable the transient hint so that idle_threshold cannot be bypassed from the
|
||||
# client
|
||||
#[transient_disable]
|
||||
# match_transient = yes
|
||||
# set_transient = no
|
||||
#
|
||||
# Make the handling of transient notifications more strict by making them not
|
||||
# be placed in history.
|
||||
#[transient_history_ignore]
|
||||
# match_transient = yes
|
||||
# history_ignore = yes
|
||||
|
||||
# fullscreen values
|
||||
# show: show the notifications, regardless if there is a fullscreen window opened
|
||||
# delay: displays the new notification, if there is no fullscreen window active
|
||||
# If the notification is already drawn, it won't get undrawn.
|
||||
# pushback: same as delay, but when switching into fullscreen, the notification will get
|
||||
# withdrawn from screen again and will get delayed like a new notification
|
||||
#[fullscreen_delay_everything]
|
||||
# fullscreen = delay
|
||||
#[fullscreen_show_critical]
|
||||
# msg_urgency = critical
|
||||
# fullscreen = show
|
||||
|
||||
#[espeak]
|
||||
# summary = "*"
|
||||
# script = dunst_espeak.sh
|
||||
|
||||
#[script-test]
|
||||
# summary = "*script*"
|
||||
# script = dunst_test.sh
|
||||
|
||||
#[ignore]
|
||||
# # This notification will not be displayed
|
||||
# summary = "foobar"
|
||||
# skip_display = true
|
||||
|
||||
[history-ignore]
|
||||
# # This notification will not be saved in history
|
||||
# summary = "foobar"
|
||||
# history_ignore = yes
|
||||
appname = chngevolume
|
||||
history_ignore = yes
|
||||
#[skip-display]
|
||||
# # This notification will not be displayed, but will be included in the history
|
||||
# summary = "foobar"
|
||||
# skip_display = yes
|
||||
|
||||
#[signed_on]
|
||||
# appname = Pidgin
|
||||
# summary = "*signed on*"
|
||||
# urgency = low
|
||||
#
|
||||
#[signed_off]
|
||||
# appname = Pidgin
|
||||
# summary = *signed off*
|
||||
# urgency = low
|
||||
#
|
||||
#[says]
|
||||
# appname = Pidgin
|
||||
# summary = *says*
|
||||
# urgency = critical
|
||||
#
|
||||
#[twitter]
|
||||
# appname = Pidgin
|
||||
# summary = *twitter.com*
|
||||
# urgency = normal
|
||||
#
|
||||
#[stack-volumes]
|
||||
# appname = "some_volume_notifiers"
|
||||
# set_stack_tag = "volume"
|
||||
#
|
||||
# vim: ft=cfg
|
||||
28
.config/dunst/volume
Normal file
28
.config/dunst/volume
Normal file
@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
function send_notification() {
|
||||
volume=$(pamixier --get-volume)
|
||||
dunstify -a "changevolume" -u low -r 9980 -h int:value:"$volume" -i "volume-$1" "Volume: ${volume}%" -t 2000
|
||||
}
|
||||
|
||||
case $1 in
|
||||
up)
|
||||
#Set the volume on (if it was muted)
|
||||
pamixer -u
|
||||
pamixer -i 5 --allow-boost
|
||||
send_notification $1
|
||||
;;
|
||||
down)
|
||||
pamixer -u
|
||||
pamixer -d 5 --allow-boost
|
||||
send_notification $1
|
||||
;;
|
||||
mute)
|
||||
pamixer -t
|
||||
if $(pamixer --get-mute); then
|
||||
dunstify -i volume-mute -a "changevolume" -t 2000 -r 9980 -u low "Muted"
|
||||
else
|
||||
send_notification up
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
151
.config/mc/ini
Normal file
151
.config/mc/ini
Normal file
@ -0,0 +1,151 @@
|
||||
[Midnight-Commander]
|
||||
verbose=true
|
||||
shell_patterns=true
|
||||
auto_save_setup=true
|
||||
preallocate_space=false
|
||||
auto_menu=false
|
||||
use_internal_view=true
|
||||
use_internal_edit=true
|
||||
clear_before_exec=true
|
||||
confirm_delete=true
|
||||
confirm_overwrite=true
|
||||
confirm_execute=false
|
||||
confirm_history_cleanup=true
|
||||
confirm_exit=false
|
||||
confirm_directory_hotlist_delete=false
|
||||
confirm_view_dir=false
|
||||
safe_delete=false
|
||||
safe_overwrite=false
|
||||
use_8th_bit_as_meta=false
|
||||
mouse_move_pages_viewer=true
|
||||
mouse_close_dialog=false
|
||||
fast_refresh=false
|
||||
drop_menus=false
|
||||
wrap_mode=true
|
||||
old_esc_mode=true
|
||||
cd_symlinks=true
|
||||
show_all_if_ambiguous=false
|
||||
use_file_to_guess_type=true
|
||||
alternate_plus_minus=false
|
||||
only_leading_plus_minus=true
|
||||
show_output_starts_shell=false
|
||||
xtree_mode=false
|
||||
file_op_compute_totals=true
|
||||
classic_progressbar=true
|
||||
use_netrc=true
|
||||
ftpfs_always_use_proxy=false
|
||||
ftpfs_use_passive_connections=true
|
||||
ftpfs_use_passive_connections_over_proxy=false
|
||||
ftpfs_use_unix_list_options=true
|
||||
ftpfs_first_cd_then_ls=true
|
||||
ignore_ftp_chattr_errors=true
|
||||
editor_fill_tabs_with_spaces=false
|
||||
editor_return_does_auto_indent=true
|
||||
editor_backspace_through_tabs=false
|
||||
editor_fake_half_tabs=true
|
||||
editor_option_save_position=true
|
||||
editor_option_auto_para_formatting=false
|
||||
editor_option_typewriter_wrap=false
|
||||
editor_edit_confirm_save=true
|
||||
editor_syntax_highlighting=true
|
||||
editor_persistent_selections=true
|
||||
editor_drop_selection_on_copy=true
|
||||
editor_cursor_beyond_eol=false
|
||||
editor_cursor_after_inserted_block=false
|
||||
editor_visible_tabs=true
|
||||
editor_visible_spaces=true
|
||||
editor_line_state=false
|
||||
editor_simple_statusbar=false
|
||||
editor_check_new_line=false
|
||||
editor_show_right_margin=false
|
||||
editor_group_undo=false
|
||||
editor_state_full_filename=false
|
||||
editor_ask_filename_before_edit=false
|
||||
nice_rotating_dash=true
|
||||
shadows=true
|
||||
mcview_remember_file_position=false
|
||||
auto_fill_mkdir_name=true
|
||||
copymove_persistent_attr=true
|
||||
pause_after_run=1
|
||||
mouse_repeat_rate=100
|
||||
double_click_speed=250
|
||||
old_esc_mode_timeout=1000000
|
||||
max_dirt_limit=10
|
||||
num_history_items_recorded=60
|
||||
vfs_timeout=60
|
||||
ftpfs_directory_timeout=900
|
||||
ftpfs_retry_seconds=30
|
||||
fish_directory_timeout=900
|
||||
editor_tab_spacing=8
|
||||
editor_word_wrap_line_length=72
|
||||
editor_option_save_mode=0
|
||||
editor_backup_extension=~
|
||||
editor_filesize_threshold=64M
|
||||
editor_stop_format_chars=-+*\\,.;:&>
|
||||
mcview_eof=
|
||||
skin=julia256
|
||||
filepos_max_saved_entries=1024
|
||||
|
||||
[Layout]
|
||||
output_lines=0
|
||||
left_panel_size=118
|
||||
top_panel_size=0
|
||||
message_visible=true
|
||||
keybar_visible=true
|
||||
xterm_title=true
|
||||
command_prompt=true
|
||||
menubar_visible=true
|
||||
free_space=true
|
||||
horizontal_split=false
|
||||
vertical_equal=true
|
||||
horizontal_equal=true
|
||||
|
||||
[Misc]
|
||||
timeformat_recent=%b %e %H:%M
|
||||
timeformat_old=%b %e %Y
|
||||
ftp_proxy_host=gate
|
||||
ftpfs_password=anonymous@
|
||||
display_codepage=UTF-8
|
||||
source_codepage=Other_8_bit
|
||||
autodetect_codeset=
|
||||
clipboard_store=
|
||||
clipboard_paste=
|
||||
|
||||
[Colors]
|
||||
base_color=
|
||||
linux=
|
||||
color_terminals=
|
||||
xterm-256color=
|
||||
alacritty=
|
||||
|
||||
base_color=normal=brightgray,default:marked=yellow,default:directory=grey,defaul
|
||||
t:marked=yellow,default:errors=red,default:marked=yellow,default:executable=brig
|
||||
htgreen,default:marked=yellow,default:link=brightblue,default:marked=yellow,defa
|
||||
ult:device=brightmagenta,default:marked=yellow,default
|
||||
|
||||
[Panels]
|
||||
show_mini_info=true
|
||||
kilobyte_si=false
|
||||
mix_all_files=false
|
||||
show_backups=true
|
||||
show_dot_files=true
|
||||
fast_reload=false
|
||||
fast_reload_msg_shown=false
|
||||
mark_moves_down=true
|
||||
reverse_files_only=true
|
||||
auto_save_setup_panels=false
|
||||
navigate_with_arrows=true
|
||||
panel_scroll_pages=true
|
||||
panel_scroll_center=false
|
||||
mouse_move_pages=true
|
||||
filetype_mode=true
|
||||
permission_mode=false
|
||||
torben_fj_mode=false
|
||||
quick_search_mode=2
|
||||
select_flags=6
|
||||
|
||||
[Panelize]
|
||||
Найти оригиналы (*.orig) после команды patch=find . -name \\*.orig -print
|
||||
Найти корректуры, отвергнутые командой patch=find . -name \\*.rej -print
|
||||
Изменённые файлы под контролем git=git ls-files --modified
|
||||
Найти программы с установленными битами SUID/SGID=find . \\( \\( -perm -04000 -a -perm /011 \\) -o \\( -perm -02000 -a -perm /01 \\) \\) -print
|
||||
0
.config/mc/panels.ini
Normal file
0
.config/mc/panels.ini
Normal file
60
.config/picom/picom.conf
Executable file
60
.config/picom/picom.conf
Executable file
@ -0,0 +1,60 @@
|
||||
corner-radius = 8;
|
||||
round-borders = 8;
|
||||
|
||||
shadow = true;
|
||||
shadow-radius = 15;
|
||||
shadow-offset-x = -8;
|
||||
shadow-offset-y = -8;
|
||||
shadow-opacity = 0.2;
|
||||
shadow-exclude = [
|
||||
"_GTK_FRAME_EXTENTS@:c",
|
||||
"class_g = 'Polybar'"
|
||||
];
|
||||
|
||||
fading = true;
|
||||
fade-in-step = 0.04;
|
||||
fade-out-step = 0.04;
|
||||
fade-delta = 8;
|
||||
|
||||
inactive-dim=0
|
||||
focus-exclude = [
|
||||
"class_g = 'Rofi'"
|
||||
];
|
||||
|
||||
frame-opacity = 1;
|
||||
active-opacity = 1;
|
||||
inactive-opacity = 0.9;
|
||||
dropdown_menu = { opacity = 1; }
|
||||
popup_menu = { opacity = 1; }
|
||||
|
||||
|
||||
opacity-rule = [
|
||||
"100:_NET_WM_STATE@:32a = '_NET_WM_STATE_FULLSCREEN'",
|
||||
"85:class_g = 'Polybar'",
|
||||
"85:class_g = 'Rofi'",
|
||||
"80:class_g = 'slop'",
|
||||
"100:class_g = 'TelegramDesktop'",
|
||||
"100:class_g = 'Firefox'"
|
||||
|
||||
];
|
||||
|
||||
blur: {
|
||||
method = "dual_kawase";
|
||||
strength = 7;
|
||||
}
|
||||
blur-background-exclude = [
|
||||
"_GTK_FRAME_EXTENTS@:c",
|
||||
"class_g = 'Maim'",
|
||||
"class_g = 'conky'"
|
||||
];
|
||||
|
||||
backend = "glx";
|
||||
vsync = true;
|
||||
use-damage = false;
|
||||
unredir-if-possible = true;
|
||||
|
||||
wintypes: {
|
||||
dropdown_menu = { opacity = 0.9; }
|
||||
tooltip = { fade = true; shadow = true; opacity = 0.9; focus = true; }
|
||||
popup_menu = { opacity = 0.9; }
|
||||
}
|
||||
19
.config/polybar/colors.ini
Executable file
19
.config/polybar/colors.ini
Executable file
@ -0,0 +1,19 @@
|
||||
# ---- ЦВЕТА -----------------------------------------------------------------
|
||||
[color]
|
||||
|
||||
# ---- NORD ------------------------------------------------------------------
|
||||
bg = #2e3440
|
||||
fg = #eceff4
|
||||
black = #3b4252
|
||||
red = #bf616a
|
||||
green = #a3be8c
|
||||
grey = #6b6b6b
|
||||
yellow = #ebcb8b
|
||||
blue = #81a1c1
|
||||
magenta = #b48ead
|
||||
cyan = #88c0d0
|
||||
orange = #d08770
|
||||
white = #e5e9f0
|
||||
alpha = #00000000
|
||||
br = #303354
|
||||
tos = #aaade5
|
||||
36
.config/polybar/config.ini
Executable file
36
.config/polybar/config.ini
Executable file
@ -0,0 +1,36 @@
|
||||
# ---- ПОДКЛЮЧЕНИЕ ОТДЕЛЬНОГО ФАЙЛА С ЦВЕТАМИ И МОДУЛЯМИ --------------------
|
||||
include-file = $HOME/.config/bspwm/themes/mytheme/polybar/colors.ini
|
||||
include-file = $HOME/.config/bspwm/themes/mytheme/polybar/modules.ini
|
||||
|
||||
# ---- POLYBAR С РАСПОЛОЖЕНИЕМ СВЕРХУ ----
|
||||
|
||||
[bar/top]
|
||||
width = 99.5%
|
||||
height = 32
|
||||
padding-left = 1
|
||||
padding-right = 2
|
||||
background = ${color.br}
|
||||
foreground = ${color.fg}
|
||||
radius = 4
|
||||
dim-value = 1.0
|
||||
offset-x = 5
|
||||
offset-y = 5
|
||||
|
||||
border-size = 2
|
||||
border-color = #a7abf6
|
||||
|
||||
#separator =
|
||||
|
||||
modules-left = xworkspaces sep xwindow
|
||||
modules-center = date weather
|
||||
modules-right = tray sep alsa xkeyboard memory wg wlan usb powermenu
|
||||
module-margin = 1
|
||||
|
||||
font-0 = JetBrainsMono-Bold:style=Bold:pixelsize=11;3
|
||||
font-1 = Symbols Nerd Font:style=Regular:pixelsize=10;3
|
||||
font-2 = Material Icons:style=Regular:size=11
|
||||
|
||||
cursor-click = pointer
|
||||
cursor-scroll = ns-resize
|
||||
enable-ipc = true
|
||||
wm-restrack = bspwm
|
||||
224
.config/polybar/modules.ini
Executable file
224
.config/polybar/modules.ini
Executable file
@ -0,0 +1,224 @@
|
||||
[module/launch]
|
||||
type = custom/script
|
||||
exec = echo ""
|
||||
click-left = rofi -show drun -config .config/bspwm/themes/mytheme/rofi/menu.rasi -show-icons
|
||||
label-foreground = ${colors.blue}
|
||||
label-background = ${colors.gray}
|
||||
label-font = 1
|
||||
|
||||
[module/xworkspaces]
|
||||
type = internal/xworkspaces
|
||||
|
||||
label-active = %name%
|
||||
label-active-foreground = #1ad2d2
|
||||
label-active-background = ${color.br}
|
||||
label-active-padding = 2
|
||||
|
||||
label-occupied = %name%
|
||||
label-occupied-padding = 2
|
||||
label-occupied-foreground = #149292
|
||||
label-occupied-background = ${color.br}
|
||||
|
||||
label-urgent = %name%
|
||||
label-urgent-background = ${color.red}
|
||||
label-urgent-padding = 2
|
||||
|
||||
label-empty = %name%
|
||||
label-empty-foreground = #a7abf6
|
||||
label-empty-background = ${color.br}
|
||||
label-empty-padding = 2
|
||||
|
||||
|
||||
[module/xwindow]
|
||||
type = internal/xwindow
|
||||
label = %title:0:60:...%
|
||||
label-maxlen = 30
|
||||
label-empty = Empty
|
||||
label-foreground = ${color.fg}
|
||||
label-background = ${color.br}
|
||||
|
||||
|
||||
[module/date]
|
||||
type = internal/date
|
||||
interval = 5
|
||||
date =
|
||||
date-alt = "%Y-%m-%d"
|
||||
time = "%H:%M"
|
||||
format-prefix =""
|
||||
label =%date% %time%
|
||||
|
||||
format-prefix-foreground = ${color.tos}
|
||||
format-prefix-background = ${color.br}
|
||||
label-foreground = ${color.tos}
|
||||
label-background = ${color.br}
|
||||
|
||||
|
||||
[module/weather]
|
||||
type = custom/script
|
||||
exec = ~/.config/bspwm/themes/mytheme/scripts/weather.sh
|
||||
interval = 600
|
||||
format-prefix = "| "
|
||||
|
||||
format-prefix-foreground = ${color.fg}
|
||||
format-prefix-background = ${color.br}
|
||||
label-foreground = ${color.fg}
|
||||
label-background = ${color.br}
|
||||
|
||||
|
||||
[module/cmus]
|
||||
type = custom/script
|
||||
exec = ~/.config/bspwm/themes/mytheme/scripts/cmus.sh
|
||||
exec-if = pgrep -x cmus
|
||||
interval = 1
|
||||
|
||||
click-left = cmus-remote --pause
|
||||
click-right = cmus-remote --play
|
||||
scroll-up = cmus-remote --next
|
||||
scroll-down = cmus-remote --prev
|
||||
|
||||
format-prefix = " "
|
||||
format = <label>
|
||||
label = %output%
|
||||
label-maxlen = 40
|
||||
|
||||
format-prefix-foreground = ${color.yellow}
|
||||
format-prefix-background = ${color.bg}
|
||||
label-foreground = ${color.fg}
|
||||
label-background = ${color.bg}
|
||||
|
||||
[module/alsa]
|
||||
type = internal/alsa
|
||||
format-volume = <ramp-volume> <label-volume>
|
||||
format-volume-padding = 1
|
||||
format-muted =
|
||||
format-muted-padding = 1
|
||||
label-volume = %percentage%%
|
||||
ramp-volume-0 = %{F#a7abf6}%{F-}
|
||||
ramp-volume-1 = %{F#a7abf6}%{F-}
|
||||
ramp-volume-2 = %{F#a7abf6}%{F-}
|
||||
ramp-volume-3 = %{F#a7abf6}%{F-}
|
||||
ramp-volume-4 = %{F#a7abf6}%{F-}
|
||||
ramp-volume-5 = %{F#a7abf6}%{F-}
|
||||
ramp-volume-6 = %{F#a7abf6}%{F-}
|
||||
ramp-volume-7 = %{F#a7abf6}%{F-}
|
||||
ramp-volume-8 = %{F#a7abf6}%{F-}
|
||||
ramp-volume-9 = %{F#a7abf6}%{F-}
|
||||
ramp-headphone-0 =
|
||||
parm-headphone-1 =
|
||||
label-volume-foreground = ${color.tos}
|
||||
format-volume-foreground = #5d9967
|
||||
format-muted-foreground = #d35f5e
|
||||
|
||||
[module/xkeyboard]
|
||||
type = internal/xkeyboard
|
||||
blacklist-0 = num lock
|
||||
blacklist-1 = caps lock
|
||||
|
||||
label-layout = " %icon%"
|
||||
layout-icon-0 = us;US
|
||||
layout-icon-1 = ru;RU
|
||||
label-layout-foreground = ${color.tos}
|
||||
label-layout-background = ${color.br}
|
||||
|
||||
|
||||
format-prefix = ""
|
||||
format-prefix-foreground = ${color.tos}
|
||||
format-prefix-background = ${color.br}
|
||||
|
||||
|
||||
[module/powermenu]
|
||||
type = custom/script
|
||||
exec = echo ""
|
||||
click-left = ~/.config/bspwm/themes/mytheme/scripts/powermenu.sh
|
||||
label-foreground = #e87287
|
||||
label-background = %{color.br}
|
||||
|
||||
|
||||
[module/memory]
|
||||
type = internal/memory
|
||||
interval = 2
|
||||
label = %percentage_used:2%%
|
||||
format-prefix =" "
|
||||
format-prefix-foreground = #a29653
|
||||
format-prefix-background = ${color.br}
|
||||
label-foreground = #a29653
|
||||
label-background = ${color.br}
|
||||
|
||||
|
||||
[module/cpu]
|
||||
type = internal/cpu
|
||||
interval = 2
|
||||
label = %percentage:2%%
|
||||
format-prefix =""
|
||||
format-prefix-foreground = #d94338
|
||||
format-prefix-background = ${color.br}
|
||||
label-foreground = #dbbfb4
|
||||
label-background = ${color.br}
|
||||
|
||||
[module/wlan]
|
||||
type = internal/network
|
||||
interface = ${system.network_interface_wired}
|
||||
interface-type = wireless
|
||||
interval = 2
|
||||
format-connected = <label-connected>
|
||||
label-connected = "%{A1:sh ~/.config/bspwm/themes/mytheme/scripts/wifimenu:} %netspeed%%{A}"
|
||||
fomat-disconnected = <label-disconnected>
|
||||
label-disconnected = "%{A1:sh ~/.config/bspwm/themes/mytheme/scripts/wifimenu:}%{A}"
|
||||
label-connected-foreground = ${color.tos}
|
||||
label-connected-background = ${color.br}
|
||||
format-connected-foreground = ${color.br}
|
||||
format-connected-background = ${color.tos}
|
||||
|
||||
[module/ethernet]
|
||||
type = internal/network
|
||||
interface = enp0s3
|
||||
format-connected = <label-connected>
|
||||
format-connected-prefix = ""
|
||||
format-conncted-padding = 1
|
||||
format-disconnected = <label-disconnected>
|
||||
format-disconnected-prefix = ""
|
||||
format-disconnected-padding = 1
|
||||
label-connected = %netspeed%
|
||||
label-disconnected = "%{A1:networkmanager_dmenu &:}Offline%{A}"
|
||||
|
||||
[module/wg]
|
||||
type = custom/script
|
||||
exec = ~/.config/bspwm/themes/mytheme/scripts/wireguard
|
||||
tail = false
|
||||
interval =1
|
||||
click-left = "~/.config/bspwm/themes/mytheme/scripts/wireguard --toggle &"
|
||||
|
||||
[module/cava]
|
||||
type = custom/script
|
||||
tail = true
|
||||
exec = ~/.config/bspwm/themes/bspwm_nord/scripts/cava.sh
|
||||
format = <label>
|
||||
format-background = ${colors.gray}
|
||||
format-font = 2
|
||||
label = %output%
|
||||
format-padding = 1
|
||||
|
||||
[module/usb]
|
||||
type = custom/script
|
||||
exec = ~/.bin/rofi-usb-mount.sh --check
|
||||
tail = true
|
||||
click-left = ~/.bin/rofi-usb-mount.sh --mount &
|
||||
click-right = ~/.bin/rofi-usb-mount.sh --umount &
|
||||
click-middle = ~/.bin/rofi-usb-mount.sh --umount-all &
|
||||
|
||||
[module/tray]
|
||||
type = internal/tray
|
||||
|
||||
tray-spacing = 3px
|
||||
tray-background = %{color.br}
|
||||
|
||||
[module/void]
|
||||
type = custom/text
|
||||
content = .
|
||||
|
||||
[module/sep]
|
||||
type = custom/text
|
||||
content =
|
||||
content-foreground = ${color.br}
|
||||
content-background = ${color.br}
|
||||
content-padding = 1
|
||||
13
.config/rofi/colors.rasi
Executable file
13
.config/rofi/colors.rasi
Executable file
@ -0,0 +1,13 @@
|
||||
*{
|
||||
bg: #2e3440;
|
||||
fg: #d8dee9;
|
||||
black: #3b4252;
|
||||
red: #bf616a;
|
||||
green: #a3be8c;
|
||||
yellow: #ebcb8b;
|
||||
blue: #81a1c1;
|
||||
magenta: #b48ead;
|
||||
cyan: #88c0d0;
|
||||
white: #e5e9f0;
|
||||
gr: #3b4252;
|
||||
}
|
||||
131
.config/rofi/menu.rasi
Executable file
131
.config/rofi/menu.rasi
Executable file
@ -0,0 +1,131 @@
|
||||
configuration {
|
||||
display-drun: "";
|
||||
display-clipboard: "";
|
||||
drun-display-format: "{name}";
|
||||
modi: "drun";
|
||||
}
|
||||
|
||||
@import "~/.config/bspwm/themes/bspwm_nord/rofi/colors.rasi"
|
||||
|
||||
* {
|
||||
font: "JetbrainsMono 10";
|
||||
|
||||
background-color: @gr;
|
||||
separatorcolor: transparent;
|
||||
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
spacing: 0;
|
||||
}
|
||||
|
||||
window {
|
||||
width: 700px;
|
||||
height: 350px;
|
||||
border-radius: 0;
|
||||
border: 0;
|
||||
padding: 10;
|
||||
background-color: @bg;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @bg;
|
||||
children: [inputbar,listview];
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
listview {
|
||||
scrollbar: false;
|
||||
padding: 2 0;
|
||||
background-color: @bg;
|
||||
columns: 2;
|
||||
lines: 7;
|
||||
margin: 8 0 0 0;
|
||||
}
|
||||
|
||||
|
||||
inputbar {
|
||||
children: [prompt, entry];
|
||||
background-color: @gr;
|
||||
border-radius: 10;
|
||||
margin: 10 0 10 0;
|
||||
}
|
||||
|
||||
prompt {
|
||||
font: "Symbols Nerd Font 10";
|
||||
background-color: @gr;
|
||||
text-color: @bg;
|
||||
enabled: true;
|
||||
border-radius: 0;
|
||||
padding: 5 10 0 10;
|
||||
|
||||
}
|
||||
|
||||
entry {
|
||||
background-color: transparent;
|
||||
text-color: @bg;
|
||||
placeholder-color: @fg;
|
||||
border-radius: 0;
|
||||
placeholder: "Search...";
|
||||
blink: false;
|
||||
padding: 4;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: rgba(0,0,0,0);
|
||||
padding: 10;
|
||||
border-radius: 10;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
expand: true;
|
||||
horizontal-align: 0;
|
||||
vertical-align: 0.5;
|
||||
}
|
||||
|
||||
element-icon {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
padding: 0 10 0 0;
|
||||
}
|
||||
|
||||
element.normal.normal {
|
||||
background-color: @bg;
|
||||
text-color: @fg;
|
||||
}
|
||||
element.normal.urgent {
|
||||
background-color: @gr;
|
||||
text-color: @fg;
|
||||
}
|
||||
element.normal.active {
|
||||
background-color: @gr;
|
||||
text-color: @fg;
|
||||
}
|
||||
element.selected.normal {
|
||||
background-color: @fg;
|
||||
text-color: @bg;
|
||||
}
|
||||
element.selected.urgent {
|
||||
background-color: @fg;
|
||||
text-color: @bg;
|
||||
}
|
||||
element.selected.active {
|
||||
background-color: @fg;
|
||||
text-color: @bg;
|
||||
}
|
||||
element.alternate.normal {
|
||||
background-color: @bg;
|
||||
text-color: @fg;
|
||||
}
|
||||
element.alternate.urgent {
|
||||
background-color: @bg;
|
||||
text-color: @fg;
|
||||
}
|
||||
element.alternate.active {
|
||||
background-color: @bg;
|
||||
text-color: @fg;
|
||||
}
|
||||
132
.config/rofi/powermenu.rasi
Executable file
132
.config/rofi/powermenu.rasi
Executable file
@ -0,0 +1,132 @@
|
||||
configuration {
|
||||
display-drun: "";
|
||||
display-clipboard: "";
|
||||
drun-display-format: "{name}";
|
||||
modi: "drun";
|
||||
}
|
||||
|
||||
@import "~/.config/bspwm/themes/bspwm_nord/rofi/colors.rasi"
|
||||
|
||||
* {
|
||||
font: "JetbrainsMono 10";
|
||||
|
||||
background-color: @gr;
|
||||
separatorcolor: transparent;
|
||||
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
spacing: 0;
|
||||
}
|
||||
|
||||
window {
|
||||
width: 170px;
|
||||
height: 150px;
|
||||
border-radius: 0;
|
||||
border: 0;
|
||||
padding: 10;
|
||||
background-color: @bg;
|
||||
x-offset: 840px;
|
||||
y-offset: -420px;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @bg;
|
||||
children: [listview];
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
listview {
|
||||
scrollbar: false;
|
||||
padding: 2 0;
|
||||
background-color: @bg;
|
||||
columns: 1;
|
||||
lines: 7;
|
||||
margin: 8 0 0 0;
|
||||
}
|
||||
|
||||
|
||||
inputbar {
|
||||
children: [prompt, entry];
|
||||
background-color: @gr;
|
||||
border-radius: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: false;
|
||||
font: "Symbols Nerd Font 10";
|
||||
background-color: @gr;
|
||||
text-color: @gr2;
|
||||
enabled: true;
|
||||
border-radius: 0;
|
||||
padding: 0;
|
||||
|
||||
}
|
||||
|
||||
entry {
|
||||
background-color: transparent;
|
||||
text-color: @fg;
|
||||
placeholder-color: @gr2;
|
||||
border-radius: 0;
|
||||
placeholder: "Search...";
|
||||
blink: false;
|
||||
padding: 4;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: rgba(0,0,0,0);
|
||||
padding: 10;
|
||||
border-radius: 10;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
expand: true;
|
||||
horizontal-align: 0;
|
||||
vertical-align: 0.5;
|
||||
}
|
||||
|
||||
element-icon {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
padding: 0 10 0 0;
|
||||
}
|
||||
|
||||
element.normal.normal {
|
||||
background-color: @bg;
|
||||
text-color: @fg;
|
||||
}
|
||||
element.normal.urgent {
|
||||
background-color: @gr;
|
||||
text-color: @fg;
|
||||
}
|
||||
element.normal.active {
|
||||
background-color: @gr;
|
||||
text-color: @fg;
|
||||
}
|
||||
element.selected.normal {
|
||||
background-color: @gr;
|
||||
text-color: @fg;
|
||||
}
|
||||
element.selected.urgent {
|
||||
background-color: @gr;
|
||||
text-color: @fg;
|
||||
}
|
||||
element.selected.active {
|
||||
background-color: @gr;
|
||||
text-color: @fg;
|
||||
}
|
||||
element.alternate.normal {
|
||||
background-color: @bg;
|
||||
text-color: @fg;
|
||||
}
|
||||
element.alternate.urgent {
|
||||
background-color: @bg;
|
||||
text-color: @fg;
|
||||
}
|
||||
element.alternate.active {
|
||||
background-color: @bg;
|
||||
text-color: @fg;
|
||||
}
|
||||
132
.config/rofi/wifimenu.rasi
Executable file
132
.config/rofi/wifimenu.rasi
Executable file
@ -0,0 +1,132 @@
|
||||
configuration {
|
||||
display-drun: "";
|
||||
display-clipboard: "";
|
||||
drun-display-format: "{name}";
|
||||
modi: "drun";
|
||||
}
|
||||
|
||||
@import "~/.config/bspwm/themes/bspwm_nord/rofi/colors.rasi"
|
||||
|
||||
* {
|
||||
font: "JetbrainsMono 10";
|
||||
|
||||
background-color: @gr;
|
||||
separatorcolor: transparent;
|
||||
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
spacing: 0;
|
||||
}
|
||||
|
||||
window {
|
||||
width: 270px;
|
||||
height: 150px;
|
||||
border-radius: 0;
|
||||
border: 0;
|
||||
padding: 10;
|
||||
background-color: @bg;
|
||||
x-offset: 810px;
|
||||
y-offset: -420px;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @bg;
|
||||
children: [listview];
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
listview {
|
||||
scrollbar: false;
|
||||
padding: 2 0;
|
||||
background-color: @bg;
|
||||
columns: 1;
|
||||
lines: 7;
|
||||
margin: 8 0 0 0;
|
||||
}
|
||||
|
||||
|
||||
inputbar {
|
||||
children: [prompt, entry];
|
||||
background-color: @gr;
|
||||
border-radius: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: false;
|
||||
font: "Symbols Nerd Font 10";
|
||||
background-color: @gr;
|
||||
text-color: @gr2;
|
||||
enabled: true;
|
||||
border-radius: 0;
|
||||
padding: 0;
|
||||
|
||||
}
|
||||
|
||||
entry {
|
||||
background-color: transparent;
|
||||
text-color: @fg;
|
||||
placeholder-color: @gr2;
|
||||
border-radius: 0;
|
||||
placeholder: "Search...";
|
||||
blink: false;
|
||||
padding: 4;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: rgba(0,0,0,0);
|
||||
padding: 10;
|
||||
border-radius: 10;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
expand: true;
|
||||
horizontal-align: 0;
|
||||
vertical-align: 0.5;
|
||||
}
|
||||
|
||||
element-icon {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
padding: 0 10 0 0;
|
||||
}
|
||||
|
||||
element.normal.normal {
|
||||
background-color: @bg;
|
||||
text-color: @fg;
|
||||
}
|
||||
element.normal.urgent {
|
||||
background-color: @gr;
|
||||
text-color: @fg;
|
||||
}
|
||||
element.normal.active {
|
||||
background-color: @gr;
|
||||
text-color: @fg;
|
||||
}
|
||||
element.selected.normal {
|
||||
background-color: @gr;
|
||||
text-color: @fg;
|
||||
}
|
||||
element.selected.urgent {
|
||||
background-color: @gr;
|
||||
text-color: @fg;
|
||||
}
|
||||
element.selected.active {
|
||||
background-color: @gr;
|
||||
text-color: @fg;
|
||||
}
|
||||
element.alternate.normal {
|
||||
background-color: @bg;
|
||||
text-color: @fg;
|
||||
}
|
||||
element.alternate.urgent {
|
||||
background-color: @bg;
|
||||
text-color: @fg;
|
||||
}
|
||||
element.alternate.active {
|
||||
background-color: @bg;
|
||||
text-color: @fg;
|
||||
}
|
||||
39
.config/scripts/cava.sh
Executable file
39
.config/scripts/cava.sh
Executable file
@ -0,0 +1,39 @@
|
||||
#! /bin/bash
|
||||
|
||||
bar="▁▂▃▄▅▆▇█"
|
||||
dict="s/;//g;"
|
||||
|
||||
# creating "dictionary" to replace char with bar
|
||||
i=0
|
||||
while [ $i -lt ${#bar} ]
|
||||
do
|
||||
dict="${dict}s/$i/${bar:$i:1}/g;"
|
||||
i=$((i=i+1))
|
||||
done
|
||||
|
||||
# make sure to clean pipe
|
||||
pipe="/tmp/cava.fifo"
|
||||
if [ -p $pipe ]; then
|
||||
unlink $pipe
|
||||
fi
|
||||
mkfifo $pipe
|
||||
|
||||
# write cava config
|
||||
config_file="/tmp/polybar_cava_config"
|
||||
echo "
|
||||
[general]
|
||||
bars = 12
|
||||
[output]
|
||||
method = raw
|
||||
raw_target = $pipe
|
||||
data_format = ascii
|
||||
ascii_max_range = 7
|
||||
" > $config_file
|
||||
|
||||
# run cava in the background
|
||||
cava -p $config_file &
|
||||
|
||||
# reading data from fifo
|
||||
while read -r cmd; do
|
||||
echo $cmd | sed $dict
|
||||
done < $pipe
|
||||
20
.config/scripts/cmus.sh
Executable file
20
.config/scripts/cmus.sh
Executable file
@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
|
||||
prepend_zero () {
|
||||
seq -f "%02g" $1 $1
|
||||
}
|
||||
|
||||
artist=$(echo -n $(cmus-remote -C 'format_print %F'))
|
||||
|
||||
if [[ $artist = *[!\ ]* ]]; then
|
||||
# song=$(echo -n $(cmus-remote -C status | grep title | cut -c 11-))
|
||||
position=$(cmus-remote -C status | grep position | cut -c 10-)
|
||||
minutes1=$(prepend_zero $(($position / 60)))
|
||||
seconds1=$(prepend_zero $(($position % 60)))
|
||||
duration=$(cmus-remote -C status | grep duration | cut -c 10-)
|
||||
minutes2=$(prepend_zero $(($duration / 60)))
|
||||
seconds2=$(prepend_zero $(($duration % 60)))
|
||||
echo -n "$artist"
|
||||
else
|
||||
echo
|
||||
fi
|
||||
6
.config/scripts/launch_polybar.sh
Executable file
6
.config/scripts/launch_polybar.sh
Executable file
@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
killall -q polybar
|
||||
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
||||
|
||||
polybar -c ~/.config/bspwm/themes/mytheme/polybar/config.ini &
|
||||
17
.config/scripts/powermenu.sh
Executable file
17
.config/scripts/powermenu.sh
Executable file
@ -0,0 +1,17 @@
|
||||
#! /bin/sh
|
||||
|
||||
rofi_cmd() {
|
||||
rofi -dmenu \
|
||||
-theme ~/.config/bspwm/themes/bspwm_nord/rofi/powermenu.rasi
|
||||
}
|
||||
|
||||
chosen=$(printf "⏻ poweroff\n reboot\n exit" | rofi_cmd)
|
||||
|
||||
case "$chosen" in
|
||||
|
||||
"⏻ poweroff") poweroff ;;
|
||||
" reboot") reboot ;;
|
||||
" exit") bspc quit ;;
|
||||
*) exit 1 ;;
|
||||
|
||||
esac
|
||||
159
.config/scripts/scope.sh
Executable file
159
.config/scripts/scope.sh
Executable file
@ -0,0 +1,159 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -o noclobber -o noglob -o nounset -o pipefail
|
||||
IFS=$'\n'
|
||||
|
||||
# If the option `use_preview_script` is set to `true`,
|
||||
# then this script will be called and its output will be displayed in ranger.
|
||||
# ANSI color codes are supported.
|
||||
# STDIN is disabled, so interactive scripts won't work properly
|
||||
|
||||
# This script is considered a configuration file and must be updated manually.
|
||||
# It will be left untouched if you upgrade ranger.
|
||||
|
||||
# Meanings of exit codes:
|
||||
# code | meaning | action of ranger
|
||||
# -----+------------+-------------------------------------------
|
||||
# 0 | success | Display stdout as preview
|
||||
# 1 | no preview | Display no preview at all
|
||||
# 2 | plain text | Display the plain content of the file
|
||||
# 3 | fix width | Don't reload when width changes
|
||||
# 4 | fix height | Don't reload when height changes
|
||||
# 5 | fix both | Don't ever reload
|
||||
# 6 | image | Display the image `$IMAGE_CACHE_PATH` points to as an image preview
|
||||
# 7 | image | Display the file directly as an image
|
||||
|
||||
# Script arguments
|
||||
FILE_PATH="${1}" # Full path of the highlighted file
|
||||
PV_WIDTH="${2}" # Width of the preview pane (number of fitting characters)
|
||||
PV_HEIGHT="${3}" # Height of the preview pane (number of fitting characters)
|
||||
IMAGE_CACHE_PATH="${4}" # Full path that should be used to cache image preview
|
||||
PV_IMAGE_ENABLED="${5}" # 'True' if image previews are enabled, 'False' otherwise.
|
||||
|
||||
FILE_EXTENSION="${FILE_PATH##*.}"
|
||||
FILE_EXTENSION_LOWER="${FILE_EXTENSION,,}"
|
||||
|
||||
# Settings
|
||||
HIGHLIGHT_SIZE_MAX=262143 # 256KiB
|
||||
HIGHLIGHT_STYLE='pablo'
|
||||
PYGMENTIZE_STYLE='autumn'
|
||||
|
||||
|
||||
handle_extension() {
|
||||
case "${FILE_EXTENSION_LOWER}" in
|
||||
# Archive
|
||||
a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\
|
||||
rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)
|
||||
atool --list -- "${FILE_PATH}" && exit 5
|
||||
bsdtar --list --file "${FILE_PATH}" && exit 5
|
||||
exit 1;;
|
||||
rar)
|
||||
# Avoid password prompt by providing empty password
|
||||
unrar lt -p- -- "${FILE_PATH}" && exit 5
|
||||
exit 1;;
|
||||
7z)
|
||||
# Avoid password prompt by providing empty password
|
||||
7z l -p -- "${FILE_PATH}" && exit 5
|
||||
exit 1;;
|
||||
|
||||
# PDF
|
||||
pdf)
|
||||
# Preview as text conversion
|
||||
pdftotext -l 10 -nopgbrk -q -- "${FILE_PATH}" - && exit 5
|
||||
exiftool "${FILE_PATH}" && exit 5
|
||||
exit 1;;
|
||||
|
||||
# BitTorrent
|
||||
torrent)
|
||||
transmission-show -- "${FILE_PATH}" && exit 5
|
||||
exit 1;;
|
||||
|
||||
# OpenDocument
|
||||
odt|ods|odp|sxw)
|
||||
# Preview as text conversion
|
||||
odt2txt "${FILE_PATH}" && exit 5
|
||||
exit 1;;
|
||||
|
||||
# HTML
|
||||
htm|html|xhtml)
|
||||
# Preview as text conversion
|
||||
w3m -dump "${FILE_PATH}" && exit 5
|
||||
lynx -dump -- "${FILE_PATH}" && exit 5
|
||||
elinks -dump "${FILE_PATH}" && exit 5
|
||||
;; # Continue with next handler on failure
|
||||
esac
|
||||
}
|
||||
|
||||
handle_image() {
|
||||
local mimetype="${1}"
|
||||
case "${mimetype}" in
|
||||
# SVG
|
||||
image/svg+xml)
|
||||
convert "${FILE_PATH}" "${IMAGE_CACHE_PATH}" && exit 6
|
||||
exit 1;;
|
||||
|
||||
# Image
|
||||
image/*)
|
||||
# `w3mimgdisplay` will be called for all images (unless overriden as above),
|
||||
# but might fail for unsupported types.
|
||||
exit 7;;
|
||||
|
||||
# Video
|
||||
video/*)
|
||||
# Thumbnail
|
||||
ffmpegthumbnailer -i "${FILE_PATH}" -o "${IMAGE_CACHE_PATH}" -s 0 && exit 6
|
||||
exit 1;;
|
||||
esac
|
||||
}
|
||||
|
||||
handle_mime() {
|
||||
local mimetype="${1}"
|
||||
case "${mimetype}" in
|
||||
# Text
|
||||
text/* | */xml)
|
||||
# Syntax highlight
|
||||
if [[ "$( stat --printf='%s' -- "${FILE_PATH}" )" -gt "${HIGHLIGHT_SIZE_MAX}" ]]; then
|
||||
exit 2
|
||||
fi
|
||||
if [[ "$( tput colors )" -ge 256 ]]; then
|
||||
local pygmentize_format='terminal256'
|
||||
local highlight_format='xterm256'
|
||||
else
|
||||
local pygmentize_format='terminal'
|
||||
local highlight_format='ansi'
|
||||
fi
|
||||
highlight --out-format="${highlight_format}" --style="${HIGHLIGHT_STYLE}" -- "${FILE_PATH}" && exit 5
|
||||
# pygmentize -f "${pygmentize_format}" -O "style=${PYGMENTIZE_STYLE}" -- "${FILE_PATH}" && exit 5
|
||||
exit 2;;
|
||||
|
||||
# Image
|
||||
image/*)
|
||||
# Preview as text conversion
|
||||
# img2txt --gamma=0.6 --width="${PV_WIDTH}" -- "${FILE_PATH}" && exit 4
|
||||
exiftool "${FILE_PATH}" && exit 5
|
||||
exit 1;;
|
||||
|
||||
# Video and audio
|
||||
video/* | audio/*)
|
||||
mediainfo "${FILE_PATH}" && exit 5
|
||||
exiftool "${FILE_PATH}" && exit 5
|
||||
exit 1;;
|
||||
esac
|
||||
}
|
||||
|
||||
handle_fallback() {
|
||||
echo '----- File Type Classification -----' && file --dereference --brief -- "${FILE_PATH}" && exit 5
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
handle_extension
|
||||
MIMETYPE="$( file --dereference --brief --mime-type -- "${FILE_PATH}" )"
|
||||
if [[ "${PV_IMAGE_ENABLED}" == 'True' ]]; then
|
||||
handle_image "${MIMETYPE}"
|
||||
fi
|
||||
handle_mime "${MIMETYPE}"
|
||||
handle_fallback
|
||||
|
||||
exit 1
|
||||
|
||||
BIN
.config/scripts/vpn/1.png
Normal file
BIN
.config/scripts/vpn/1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
BIN
.config/scripts/vpn/2.png
Normal file
BIN
.config/scripts/vpn/2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.9 KiB |
75
.config/scripts/weather.sh
Executable file
75
.config/scripts/weather.sh
Executable file
@ -0,0 +1,75 @@
|
||||
#!/bin/sh
|
||||
|
||||
get_icon() {
|
||||
case $1 in
|
||||
# Icons for weather-icons
|
||||
01d) icon="";;
|
||||
01n) icon="";;
|
||||
02d) icon="";;
|
||||
02n) icon="";;
|
||||
03*) icon="";;
|
||||
04*) icon="";;
|
||||
09d) icon="";;
|
||||
09n) icon="";;
|
||||
10d) icon="";;
|
||||
10n) icon="";;
|
||||
11d) icon="";;
|
||||
11n) icon="";;
|
||||
13d) icon="";;
|
||||
13n) icon="";;
|
||||
50d) icon="";;
|
||||
50n) icon="";;
|
||||
*) icon="";
|
||||
|
||||
# Icons for Font Awesome 5 Pro
|
||||
#01d) icon="";;
|
||||
#01n) icon="";;
|
||||
#02d) icon="";;
|
||||
#02n) icon="";;
|
||||
#03d) icon="";;
|
||||
#03n) icon="";;
|
||||
#04*) icon="";;
|
||||
#09*) icon="";;
|
||||
#10d) icon="";;
|
||||
#10n) icon="";;
|
||||
#11*) icon="";;
|
||||
#13*) icon="";;
|
||||
#50*) icon="";;
|
||||
#*) icon="";
|
||||
esac
|
||||
|
||||
echo $icon
|
||||
}
|
||||
|
||||
KEY="e434b5435a979de6e155570590bee89b"
|
||||
CITY="Krasnoyarsk"
|
||||
UNITS="metric"
|
||||
SYMBOL="°"
|
||||
|
||||
API="https://api.openweathermap.org/data/2.5"
|
||||
|
||||
if [ -n "$CITY" ]; then
|
||||
if [ "$CITY" -eq "$CITY" ] 2>/dev/null; then
|
||||
CITY_PARAM="id=$CITY"
|
||||
else
|
||||
CITY_PARAM="q=$CITY"
|
||||
fi
|
||||
|
||||
weather=$(curl -sf "$API/weather?appid=$KEY&$CITY_PARAM&units=$UNITS")
|
||||
else
|
||||
location=$(curl -sf https://location.services.mozilla.com/v1/geolocate?key=geoclue)
|
||||
|
||||
if [ -n "$location" ]; then
|
||||
location_lat="$(echo "$location" | jq '.location.lat')"
|
||||
location_lon="$(echo "$location" | jq '.location.lng')"
|
||||
|
||||
weather=$(curl -sf "$API/weather?appid=$KEY&lat=$location_lat&lon=$location_lon&units=$UNITS")
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$weather" ]; then
|
||||
weather_temp=$(echo "$weather" | jq ".main.temp" | cut -d "." -f 1)
|
||||
weather_icon=$(echo "$weather" | jq -r ".weather[0].icon")
|
||||
|
||||
echo "$weather_temp$SYMBOL"
|
||||
fi
|
||||
48
.config/scripts/wifimenu
Executable file
48
.config/scripts/wifimenu
Executable file
@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Load NetworkManager
|
||||
network_status=$(ps aux | grep NetworkManager | grep root)
|
||||
|
||||
# Если служба не запущена
|
||||
if [ "$network_status" = "" ]; then
|
||||
# TODO: Hide password entry
|
||||
rofi -dmenu -p "Root Password: " | sudo -S NetworkManager
|
||||
fi
|
||||
|
||||
# Starts a scan of available broadcasting SSIDs
|
||||
# nmcli dev wifi rescan
|
||||
notify-send "Getting list of available Wi-Fi networks..."
|
||||
wifi_list=$(nmcli --fields "SECURITY,SSID" device wifi list | sed 1d | sed 's/ */ /g' | sed -E "s/WPA*.?\S/ /g" | sed "s/^--/ /g" | sed "s/ //g" | sed "/--/d")
|
||||
# Gives a list of known connections so we can parse it later
|
||||
|
||||
connected=$(nmcli -fields WIFI g)
|
||||
if [[ "$connected" =~ "enabled" ]]; then
|
||||
toggle=" Disable Wi-Fi"
|
||||
elif [[ "$connected" =~ "disabled" ]]; then
|
||||
toggle=" Enable Wi-Fi"
|
||||
fi
|
||||
|
||||
chosen_network=$(echo -e "$toggle\n$wifi_list" | uniq -u | rofi -dmenu -theme ~/.config/bspwm/themes/bspwm_nord/rofi/menu.rasi -i -selected-row 1 -p "Wi-Fi SSID: " )
|
||||
chosen_id=$(echo "${chosen_network:3}" | xargs)
|
||||
|
||||
# Parses the list of preconfigured connections to see if it already contains the chosen SSID. This speeds up the connection process
|
||||
if [ "$chosen_network" = "" ]; then
|
||||
exit
|
||||
elif [ "$chosen_network" = " Enable Wi-Fi" ]; then
|
||||
nmcli radio wifi on
|
||||
elif [ "$chosen_network" = " Disable Wi-Fi" ]; then
|
||||
nmcli radio wifi off
|
||||
else
|
||||
# Message to show when connection is activated successfully
|
||||
success_message="You are now connected to the Wi-Fi network \"$chosen_id\"."
|
||||
# Get known connections
|
||||
saved_connections=$(nmcli -g NAME connection)
|
||||
if [[ $(echo "$saved_connections" | grep -w "$chosen_id") = "$chosen_id" ]]; then
|
||||
nmcli connection up id "$chosen_id" | grep "successfully" && notify-send "Connection Established" "$success_message"
|
||||
else
|
||||
if [[ "$chosen_network" =~ "" ]]; then
|
||||
wifi_password=$(rofi -dmenu -p "Password: " )
|
||||
fi
|
||||
nmcli device wifi connect "$chosen_id" password "$wifi_password" | grep "successfully" && notify-send "Connection Established" "$success_message"
|
||||
fi
|
||||
fi
|
||||
58
.config/scripts/wireguard
Executable file
58
.config/scripts/wireguard
Executable file
@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
# Unfortunately it's not easy to directly use Polybar colour values in this
|
||||
# script so I have to redefine some of my colours here. See the link below for
|
||||
# more details:
|
||||
# https://github.com/polybar/polybar/wiki/Formatting#format-tags-inside-polybar-config
|
||||
green=#55aa55
|
||||
br=#cfd1cd
|
||||
configs_path="/etc/wireguard/"
|
||||
connected_interface=$(networkctl | grep -P "\d+ .* wireguard routable" -o | cut -d" " -f2)
|
||||
|
||||
connect() {
|
||||
selected_config=$(ls $configs_path/*.conf | xargs basename -a -s .conf | rofi -dmenu -theme ~/.config/bspwm/themes/bspwm_nord/rofi/menu.rasi -p "WG choose")
|
||||
[[ $selected_config ]] && sudo /usr/bin/wg-quick up "$configs_path"/"$selected_config".conf
|
||||
}
|
||||
|
||||
disconnect() {
|
||||
# Normally we should have a single connected interface but technically
|
||||
# there's nothing stopping us from having multiple active intgerfaces so
|
||||
# let's do this in a loop:
|
||||
for connected_config in $(networkctl | grep -P "\d+ .* wireguard routable" -o | cut -d" " -f2)
|
||||
do
|
||||
sudo /usr/bin/wg-quick down $configs_path/"$connected_config".conf
|
||||
done
|
||||
}
|
||||
|
||||
toggle() {
|
||||
if [[ $connected_interface ]]
|
||||
then
|
||||
disconnect
|
||||
else
|
||||
connect
|
||||
fi
|
||||
}
|
||||
|
||||
print() {
|
||||
if [[ $connected_interface ]]
|
||||
then
|
||||
echo %{u"$green"}%{+u}%{T2}%{F"$green"} VPN: "$connected_interface%"{T-}%{F-}
|
||||
else
|
||||
echo %{u"$br"}%{+u}%{T2}%{F"$br"} VPN: off%{T-}%{F-} "$connected_interface"
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
--connect)
|
||||
connect
|
||||
;;
|
||||
--disconnect)
|
||||
disconnect
|
||||
;;
|
||||
--toggle)
|
||||
toggle
|
||||
;;
|
||||
*)
|
||||
print
|
||||
;;
|
||||
esac
|
||||
82
.config/sxhkd/sxhkdrc
Executable file
82
.config/sxhkd/sxhkdrc
Executable file
@ -0,0 +1,82 @@
|
||||
super + d
|
||||
rofi -show drun -config .config/bspwm/themes/mytheme/rofi/menu.rasi -show-icons
|
||||
|
||||
super + {_,shift +} Return
|
||||
{alacritty --config-file ~/.config/bspwm/themes/mytheme/alacritty/output.toml, bspc node -s biggest.local}
|
||||
|
||||
@Print
|
||||
scrot
|
||||
|
||||
shift + @Print
|
||||
scrot -d 5
|
||||
|
||||
super + n
|
||||
nemo
|
||||
|
||||
super + i
|
||||
inkscape
|
||||
|
||||
|
||||
|
||||
|
||||
#ПЕРЕЗАГРУЗИТЬ КОНФИГ SXHKD
|
||||
super + e
|
||||
pkill -USR1 -x sxhkd
|
||||
|
||||
#ВЫЙТИ/ПЕРЕЗАГРУЗИТЬ BSPWM
|
||||
super + shift + {q,r}
|
||||
bspc {quit,wm -r}
|
||||
|
||||
#ПЕРЕЗАГРУЗКА
|
||||
super + ctrl + r
|
||||
sudo shutdown -r now
|
||||
|
||||
#ВЫКЛЮЧЕНИЕ
|
||||
super + ctrl + p
|
||||
sudo shutdown -h now
|
||||
|
||||
|
||||
|
||||
|
||||
#ПОМЕНЯТЬ СТАТУС ОКНА НА /ТАЙЛОВОЕ/ПСЕВДО ТАЙЛОВОЕ/ПЛАВАЮЩЕЕ/ПОЛНОЭКРАННОЕ
|
||||
super + {t,shift + t,s,f}
|
||||
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
|
||||
bspc node -g {marked,locked,sticky,private}
|
||||
|
||||
#ВЫБРАТЬ НАПРАВЛЕНИЕ В КОТОРОМ ОТКРОЕТСЯ НОВОЕ ОКНО
|
||||
super + alt + {Left,Down,Up,Right}
|
||||
bspc node -p {west,south,north,east}
|
||||
|
||||
#ОТМЕНИТЬ НАПРАВЛЕНИЕ В КОТОРОМ ОТКРОЕТСЯ НОВОЕ ОКНО
|
||||
super + alt + space
|
||||
bspc node -p cancel
|
||||
|
||||
#ПЕРЕКЛЮЧИТСЯ НА ВОРКСПЕЙС ИЛИ ПЕРЕТАЩИТЬ НА НЕГО АКТИВНОЕ ОКНО
|
||||
super + {_,shift + }{1-9,0}
|
||||
bspc {desktop -f,node -d} '^{1-9,10}'
|
||||
|
||||
#ЗАКРЫТЬ ОКНО ИЛИ УБИТЬ ЕГО
|
||||
super + {_, shift + }c
|
||||
bspc node -{c}
|
||||
|
||||
#ПЕРЕМЕЩЕНИЕ ТАЙЛИНГОВЫХ ОКОН
|
||||
super + {_,shift + }{Left,Down,Up,Right}
|
||||
bspc node -{f,s} {west,south,north,east}
|
||||
|
||||
#РЕСАЙЗ ТАЙЛИНГОВЫХ ОКОН
|
||||
super + ctrl + {Left,Down,Up,Right}
|
||||
{bspc node -z left -20 0; bspc node -z right -20 0, \
|
||||
bspc node -z bottom 0 20; bspc node -z top 0 20, \
|
||||
bspc node -z bottom 0 -20; bspc node -z top 0 -20, \
|
||||
bspc node -z left 20 0; bspc node -z right 20 0}
|
||||
|
||||
#РЕСАЙЗА ПЛАВАЮЩИХ ОКОН
|
||||
alt + ctrl + {Left,Down,Up,Right}
|
||||
{bspc node -z right -20 20, \
|
||||
bspc node -z bottom 20 20, \
|
||||
bspc node -z bottom 20 -20, \
|
||||
bspc node -z right 20 20}
|
||||
|
||||
#ПЕРЕМЕЩЕНИЕ ПЛАВАЮЩИХ ОКОН
|
||||
ctrl + shift + {Left,Down,Up,Right}
|
||||
bspc node -v {-20 0,0 20,0 -20,20 0}
|
||||
2
.screenlayout/display.sh
Executable file
2
.screenlayout/display.sh
Executable file
@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
xrandr --output VGA-0 --primary --mode 1920x1080 --pos 0x0 --rotate normal --output Virtual-2 --off --output Virtual-3 --off --output Virtual-4 --off --output Virtual-5 --off --output Virtual-6 --off --output Virtual-7 --off --output Virtual-8 --off
|
||||
55
.xinitrc
Executable file
55
.xinitrc
Executable file
@ -0,0 +1,55 @@
|
||||
#!/bin/sh
|
||||
|
||||
userresources=$HOME/.Xresources
|
||||
usermodmap=$HOME/.Xmodmap
|
||||
sysresources=/etc/X11/xinit/.Xresources
|
||||
sysmodmap=/etc/X11/xinit/.Xmodmap
|
||||
|
||||
# merge in defaults and keymaps
|
||||
|
||||
if [ -f $sysresources ]; then
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
xrdb -merge $sysresources
|
||||
|
||||
fi
|
||||
|
||||
if [ -f $sysmodmap ]; then
|
||||
xmodmap $sysmodmap
|
||||
fi
|
||||
|
||||
if [ -f "$userresources" ]; then
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
xrdb -merge "$userresources"
|
||||
|
||||
fi
|
||||
|
||||
if [ -f "$usermodmap" ]; then
|
||||
xmodmap "$usermodmap"
|
||||
fi
|
||||
|
||||
# start some nice programs
|
||||
|
||||
if [ -d /etc/X11/xinit/xinitrc.d ] ; then
|
||||
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
|
||||
[ -x "$f" ] && . "$f"
|
||||
done
|
||||
unset f
|
||||
fi
|
||||
|
||||
setxkbmap -layout us,ru -option grp:alt_shift_toggle
|
||||
|
||||
$HOME/.screenlayout/display.sh
|
||||
exec sxhkd -c ~/.config/bspwm/themes/mytheme/sxhkd/sxhkdrc &
|
||||
exec bspwm -c ~/.config/bspwm/themes/mytheme/bspwm/bspwmrc
|
||||
Loading…
x
Reference in New Issue
Block a user