config files

This commit is contained in:
farkadi 2024-08-27 22:07:40 +07:00
commit e39997c54b
30 changed files with 2829 additions and 0 deletions

69
.bin/rofi-usb-mount.sh Executable file
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View File

60
.config/picom/picom.conf Executable file
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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

View 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
View 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
View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

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
View 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
View 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
View 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
View 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
View 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
View 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

0
README.md Normal file
View File