@@ -1,6 +1,6 @@
|
||||
! urxvt
|
||||
! Fonts
|
||||
urxvt*font: xft:Hack Nerd Font Mono:style=Regular:size=11:hinting=full, xft:DejaVu Sans Mono for Powerline:size=11, SourceHanSans-Regular
|
||||
urxvt*font: xft:DejaVuSansM Nerd Font Mono:style=Regular:size=11:hinting=full
|
||||
|
||||
! Behavior
|
||||
urxvt*scrollBar: false
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
set -g prefix F12
|
||||
unbind-key -n C-a
|
||||
@@ -1,15 +0,0 @@
|
||||
# Status bar for tmux and screen
|
||||
|
||||
# Status beginning with '#' are disabled.
|
||||
|
||||
# Screen has two status lines, with 4 quadrants for status
|
||||
screen_upper_left="color"
|
||||
screen_upper_right="color whoami hostname ip_address menu"
|
||||
screen_lower_left="color logo distro release #arch session"
|
||||
screen_lower_right="color network #disk_io custom #entropy raid reboot_required updates_available #apport #services #mail users uptime #fan_speed #cpu_temp battery wifi_quality #processes load_average cpu_count cpu_freq memory #swap disk #time_utc date time"
|
||||
|
||||
|
||||
# Tmux has one status line, with 2 halves for status
|
||||
tmux_left=" logo #distro #release #arch #session"
|
||||
# You can have as many tmux right lines below here, and cycle through them using Shift-F5
|
||||
tmux_right="#network #disk_io #custom #entropy #raid #reboot_required #updates_available #apport #services #mail #users #uptime #fan_speed #cpu_temp battery #wifi_quality #processes #load_average #cpu_count #cpu_freq #memory #swap #disk #whoami #hostname ip_address #time_utc date time"
|
||||
@@ -1,5 +1,5 @@
|
||||
[font]
|
||||
size = 10
|
||||
size = 12
|
||||
|
||||
[font.bold]
|
||||
style = "Bold"
|
||||
@@ -11,7 +11,7 @@ style = "Bold Italic"
|
||||
style = "Italic"
|
||||
|
||||
[font.normal]
|
||||
family = "DejaVu Sans Mono for Powerline"
|
||||
family = "DejaVuSansM Nerd Font Mono"
|
||||
style = "Regular"
|
||||
|
||||
[window]
|
||||
|
||||
@@ -1,895 +0,0 @@
|
||||
# Configuration for Alacritty, the GPU enhanced terminal emulator.
|
||||
|
||||
# Import additional configuration files
|
||||
#
|
||||
# Imports are loaded in order, skipping all missing files, with the importing
|
||||
# file being loaded last. If a field is already present in a previous import, it
|
||||
# will be replaced.
|
||||
#
|
||||
# All imports must either be absolute paths starting with `/`, or paths relative
|
||||
# to the user's home directory starting with `~/`.
|
||||
#import:
|
||||
# - /path/to/alacritty.yml
|
||||
|
||||
# Any items in the `env` entry below will be added as
|
||||
# environment variables. Some entries may override variables
|
||||
# set by alacritty itself.
|
||||
#env:
|
||||
# TERM variable
|
||||
#
|
||||
# This value is used to set the `$TERM` environment variable for
|
||||
# each instance of Alacritty. If it is not present, alacritty will
|
||||
# check the local terminfo database and use `alacritty` if it is
|
||||
# available, otherwise `xterm-256color` is used.
|
||||
#TERM: alacritty
|
||||
|
||||
window:
|
||||
# Window dimensions (changes require restart)
|
||||
#
|
||||
# Number of lines/columns (not pixels) in the terminal. Both lines and columns
|
||||
# must be non-zero for this to take effect. The number of columns must be at
|
||||
# least `2`, while using a value of `0` for columns and lines will fall back
|
||||
# to the window manager's recommended size
|
||||
#dimensions:
|
||||
# columns: 0
|
||||
# lines: 0
|
||||
|
||||
# Window position (changes require restart)
|
||||
#
|
||||
# Specified in number of pixels.
|
||||
# If the position is not set, the window manager will handle the placement.
|
||||
#position:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Window padding (changes require restart)
|
||||
#
|
||||
# Blank space added around the window in pixels. This padding is scaled
|
||||
# by DPI and the specified value is always added at both opposing sides.
|
||||
#padding:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Spread additional padding evenly around the terminal content.
|
||||
#dynamic_padding: false
|
||||
|
||||
# Window decorations
|
||||
#
|
||||
# Values for `decorations`:
|
||||
# - full: Borders and title bar
|
||||
# - none: Neither borders nor title bar
|
||||
#
|
||||
# Values for `decorations` (macOS only):
|
||||
# - transparent: Title bar, transparent background and title bar buttons
|
||||
# - buttonless: Title bar, transparent background and no title bar buttons
|
||||
decorations: none
|
||||
|
||||
# Background opacity
|
||||
#
|
||||
# Window opacity as a floating point number from `0.0` to `1.0`.
|
||||
# The value `0.0` is completely transparent and `1.0` is opaque.
|
||||
opacity: 0.9
|
||||
|
||||
# Startup Mode (changes require restart)
|
||||
#
|
||||
# Values for `startup_mode`:
|
||||
# - Windowed
|
||||
# - Maximized
|
||||
# - Fullscreen
|
||||
#
|
||||
# Values for `startup_mode` (macOS only):
|
||||
# - SimpleFullscreen
|
||||
#startup_mode: Windowed
|
||||
|
||||
# Window title
|
||||
#title: Alacritty
|
||||
|
||||
# Allow terminal applications to change Alacritty's window title.
|
||||
#dynamic_title: true
|
||||
|
||||
# Window class (Linux/BSD only):
|
||||
#class:
|
||||
# Application instance name
|
||||
#instance: Alacritty
|
||||
# General application class
|
||||
#general: Alacritty
|
||||
|
||||
# Decorations theme variant (Linux/BSD only)
|
||||
#
|
||||
# Override the variant of the GTK theme/Wayland client side decorations.
|
||||
# Commonly supported values are `dark` and `light`. Set this to `None` to use
|
||||
# the default theme variant.
|
||||
#decorations_theme_variant: None
|
||||
|
||||
#scrolling:
|
||||
# Maximum number of lines in the scrollback buffer.
|
||||
# Specifying '0' will disable scrolling.
|
||||
#history: 10000
|
||||
|
||||
# Scrolling distance multiplier.
|
||||
#multiplier: 3
|
||||
|
||||
# Font configuration
|
||||
font:
|
||||
# Normal (roman) font face
|
||||
normal:
|
||||
# Font family
|
||||
#
|
||||
# Default:
|
||||
# - (macOS) Menlo
|
||||
# - (Linux/BSD) monospace
|
||||
# - (Windows) Consolas
|
||||
family: DejaVu Sans Mono for Powerline
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
style: Regular
|
||||
|
||||
# Bold font face
|
||||
bold:
|
||||
# Font family
|
||||
#
|
||||
# If the bold family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
# family: monospace
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
style: Bold
|
||||
|
||||
# Italic font face
|
||||
italic:
|
||||
# Font family
|
||||
#
|
||||
# If the italic family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
# family: monospace
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
style: Italic
|
||||
|
||||
# Bold italic font face
|
||||
bold_italic:
|
||||
# Font family
|
||||
#
|
||||
# If the bold italic family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
# family: monospace
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
style: Bold Italic
|
||||
|
||||
# Point size
|
||||
size: 7
|
||||
|
||||
# Offset is the extra space around each character. `offset.y` can be thought
|
||||
# of as modifying the line spacing, and `offset.x` as modifying the letter
|
||||
# spacing.
|
||||
#offset:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Glyph offset determines the locations of the glyphs within their cells with
|
||||
# the default being at the bottom. Increasing `x` moves the glyph to the
|
||||
# right, increasing `y` moves the glyph upward.
|
||||
#glyph_offset:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Use built-in font for box drawing characters.
|
||||
#
|
||||
# If `true`, Alacritty will use a custom built-in font for box drawing
|
||||
# characters (Unicode points 2500 - 259f).
|
||||
#
|
||||
#builtin_box_drawing: true
|
||||
|
||||
# If `true`, bold text is drawn using the bright color variants.
|
||||
#draw_bold_text_with_bright_colors: false
|
||||
|
||||
# Colors (Tomorrow Night)
|
||||
#colors:
|
||||
# Default colors
|
||||
#primary:
|
||||
# background: '#1d1f21'
|
||||
# foreground: '#c5c8c6'
|
||||
|
||||
# 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
|
||||
@@ -21,9 +21,8 @@ focus_follows_mouse no
|
||||
|
||||
# Configure
|
||||
# border style <normal|1pixel|pixel xx|none|pixel>
|
||||
new_window pixel 2
|
||||
new_float normal
|
||||
hide_edge_borders none
|
||||
default_border none
|
||||
|
||||
################################################################################################
|
||||
###################################### Workspace Settings ######################################
|
||||
@@ -80,6 +79,7 @@ bindsym $mod+Shift+9 move container to workspace $ws9; workspace $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace $ws0; workspace $ws0
|
||||
|
||||
# Open specific applications in floating mode
|
||||
<<<<<<< HEAD
|
||||
for_window [class="^Thunderbird$" title="^.*Event:"] floating enable
|
||||
|
||||
# https://github.com/z3ntu/dotfiles/blob/master/i3/.config/i3/config
|
||||
@@ -93,22 +93,53 @@ for_window [class="^Steam$" title="^Steam - Self Updater$"] floating enable
|
||||
for_window [class="^Steam$" title="^Screenshot Uploader$"] floating enable
|
||||
for_window [class="^Steam$" title="^Steam Guard - Computer Authorization Required$"] floating enable
|
||||
for_window [title="^Steam Keyboard$"] floating enable
|
||||
||||||| e9d53f0
|
||||
for_window [class="(?i)virtualbox"] floating enable border normal
|
||||
for_window [title="KeePassX$"] floating enable border normal
|
||||
for_window [class="^Thunderbird$" title="^.*Event:"] floating enable
|
||||
|
||||
# https://github.com/z3ntu/dotfiles/blob/master/i3/.config/i3/config
|
||||
# Steam
|
||||
for_window [class="^Steam$" title="^Friends List$"] floating enable
|
||||
for_window [class="^Steam$" title="Steam"] floating enable
|
||||
for_window [class="^Steam$" title="^Settings$"] floating enable
|
||||
for_window [class="^Steam$" title=".* - event started"] floating enable
|
||||
for_window [class="^Steam$" title=".* CD key"] floating enable
|
||||
for_window [class="^Steam$" title="^Steam - Self Updater$"] floating enable
|
||||
for_window [class="^Steam$" title="^Screenshot Uploader$"] floating enable
|
||||
for_window [class="^Steam$" title="^Steam Guard - Computer Authorization Required$"] floating enable
|
||||
for_window [title="^Steam Keyboard$"] floating enable
|
||||
=======
|
||||
for_window [class="(?i)virtualbox"] floating enable border normal
|
||||
for_window [title="KeePassX$"] floating enable border normal
|
||||
>>>>>>> clean_emacs
|
||||
|
||||
###############################################################################
|
||||
############################ Startup Applications #############################
|
||||
###############################################################################
|
||||
|
||||
# exec --no-startup-id setxkbmap us,de; setxkbmap -option ctrl:nocaps; setxkbmap -option grp:lalt_lshift_toggle
|
||||
exec --no-startup-id setxkbmap eu; setxkbmap -option ctrl:nocaps;
|
||||
exec --no-startup-id picom
|
||||
exec --no-startup-id udiskie
|
||||
exec --no-startup-id conky -c ~/.conky/syclo-crimson-bottomleft.conkyrc
|
||||
# exec --no-startup-id synergyc -f --no-tray --debug INFO --name genesis --enable-crypto 192.168.178.38:24800
|
||||
exec --no-startup-id dunst
|
||||
exec --no-startup-id ~/.scripts/startup.sh
|
||||
<<<<<<< HEAD
|
||||
exec --no-startup-id ~/.scripts/battery_stats.sh
|
||||
exec --no-startup-id llk
|
||||
||||||| e9d53f0
|
||||
exec --no-startup-id llk
|
||||
exec --no-startup-id emacs --daemon
|
||||
=======
|
||||
>>>>>>> clean_emacs
|
||||
exec --no-startup-id syncthing
|
||||
<<<<<<< HEAD
|
||||
exec --no-startup-id xrandr --output eDP1 --auto --left-of HDMI1 --output HDMI1 --off --output DP1 --off
|
||||
||||||| e9d53f0
|
||||
exec --no-startup-id xrandr --output eDP1 --auto --left-of HDMI1 --output HDMI1 --off --output DP1 --off; feh --randomize --bg-fill /home/tuan/Pictures/Wallpaper/*
|
||||
=======
|
||||
>>>>>>> clean_emacs
|
||||
exec --no-startup-id feh --randomize --bg-fill $HOME/Pictures/Wallpaper/*
|
||||
|
||||
###############################################################################
|
||||
@@ -122,13 +153,13 @@ bindsym $mod+Shift+s exec poweroff
|
||||
|
||||
# start a terminal
|
||||
bindsym $mod+space exec alacritty
|
||||
bindsym $mod+Return exec alacritty -e nu /home/tuan/.scripts/zellij-chooser.nu
|
||||
bindsym $mod+Return exec alacritty -e zellij
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
|
||||
# start program launcher
|
||||
bindsym $mod+d exec --no-startup-id /home/tuan/.config/rofi/launchers/type-1/launcher.sh
|
||||
bindsym $mod+d exec --no-startup-id $HOME/.config/rofi/launchers/type-1/launcher.sh
|
||||
|
||||
# Screen brightness controls
|
||||
bindsym XF86MonBrightnessUp exec --no-startup-id ~/.scripts/screen.sh up
|
||||
@@ -138,21 +169,30 @@ bindsym XF86MonBrightnessDown exec --no-startup-id ~/.scripts/screen.sh down
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id ~/.scripts/sound.sh down
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id ~/.scripts/sound.sh up
|
||||
bindsym XF86AudioMute exec --no-startup-id ~/.scripts/sound.sh toggle
|
||||
bindsym XF86AudioPlay exec "playerctl play-pause; cmus-remote -u"
|
||||
bindsym XF86AudioStop exec "playerctl stop; cmus-remote -s"
|
||||
bindsym XF86AudioNext exec "playerctl next; cmus-remote -n"
|
||||
bindsym XF86AudioPrevious exec "playerctl previous; cmus-remote -r"
|
||||
bindsym XF86AudioPlay exec "playerctl play-pause"
|
||||
bindsym XF86AudioStop exec "playerctl stop"
|
||||
bindsym XF86AudioNext exec "playerctl next"
|
||||
bindsym XF86AudioPrevious exec "playerctl previous"
|
||||
|
||||
# Application Shortcuts
|
||||
bindsym $mod+b exec firefox
|
||||
<<<<<<< HEAD
|
||||
bindsym $mod+p exec firefox --private-window https://mos4.de
|
||||
bindsym $mod+e exec emacs
|
||||
bindsym $mod+m exec thunderbird
|
||||
||||||| e9d53f0
|
||||
bindsym $mod+p exec firefox --private-window https://mos4.de
|
||||
bindsym $mod+e exec emacsclient -c
|
||||
bindsym $mod+m exec thunderbird
|
||||
=======
|
||||
bindsym $mod+p exec firefox --private-window https://tudattr.dev
|
||||
>>>>>>> clean_emacs
|
||||
|
||||
# Whole Screen
|
||||
bindsym Control+Print exec --no-startup-id ~/.scripts/screenshot.sh screen
|
||||
|
||||
# Window
|
||||
|
||||
bindsym Mod1+Sys_Req --release exec --no-startup-id ~/.scripts/screenshot.sh window
|
||||
|
||||
# Area
|
||||
@@ -191,7 +231,7 @@ bindsym $mod+f fullscreen toggle
|
||||
bindsym $mod+Mod1+space floating toggle
|
||||
|
||||
# change focus between tiling / floating windows
|
||||
# bindsym $mod+space focus mode_toggle
|
||||
bindsym $mod+Shift+f focus mode_toggle
|
||||
|
||||
# focus the parent container
|
||||
bindsym $mod+a focus parent
|
||||
@@ -313,3 +353,4 @@ bindsym $mod+g mode "default"
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
|
||||
@@ -1,392 +0,0 @@
|
||||
[colors]
|
||||
background = ${xrdb:color0:#22300}
|
||||
background-alt = ${xrdb:color8:#fa400}
|
||||
foreground = ${xrdb:color7:#cdd}
|
||||
foreground-alt = ${xrdb:color15:#eef}
|
||||
black = ${xrdb:color0:#233}
|
||||
red = ${xrdb:color1:#f90}
|
||||
green = ${xrdb:color2:#8c4}
|
||||
yellow = ${xrdb:color3:#fc0}
|
||||
blue = ${xrdb:color4:#0af}
|
||||
magenta = ${xrdb:color5:#e16}
|
||||
cyan = ${xrdb:color6:#098}
|
||||
white = ${xrdb:color7:#cdd}
|
||||
|
||||
[bar/systray]
|
||||
width = 100%
|
||||
height = 25
|
||||
|
||||
radius = 6.0
|
||||
fixed-center = true
|
||||
|
||||
tray-position = right
|
||||
tray-padding = 0
|
||||
|
||||
background = #00000000
|
||||
foreground = ${colors.foreground}
|
||||
|
||||
module-margin-left = 1
|
||||
module-margin-right = 1
|
||||
|
||||
font-0 = DejaVu Sans Mono for Powerline:pixelsize=10;1
|
||||
# font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
|
||||
# font-2 = siji:pixelsize=10;1
|
||||
# font-3 = FontAwesome:style=Regular:pixelsize=10
|
||||
|
||||
modules-left =
|
||||
modules-center = i3
|
||||
modules-right =
|
||||
|
||||
cursor-click = pointer
|
||||
cursor-scroll = ns-resize
|
||||
|
||||
|
||||
[bar/beep]
|
||||
width = 100%
|
||||
height = 25
|
||||
|
||||
radius = 6.0
|
||||
fixed-center = true
|
||||
|
||||
tray-position = right
|
||||
tray-padding = 2
|
||||
|
||||
background = #00000000
|
||||
foreground = ${colors.foreground}
|
||||
|
||||
module-margin-left = 1
|
||||
module-margin-right = 1
|
||||
|
||||
font-0 = fixed:pixelsize=10;1
|
||||
font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
|
||||
font-2 = siji:pixelsize=10;1
|
||||
font-3 = FontAwesome:style=Regular:pixelsize=10
|
||||
|
||||
modules-left = volume xkeyboard
|
||||
modules-center = date
|
||||
modules-right =
|
||||
|
||||
cursor-click = pointer
|
||||
cursor-scroll = ns-resize
|
||||
|
||||
[bar/boop]
|
||||
width = 100%
|
||||
height = 2%
|
||||
bottom = true
|
||||
radius = 6.0
|
||||
fixed-center = true
|
||||
|
||||
background = #00000000
|
||||
foreground = ${colors.foreground}
|
||||
|
||||
line-size = 0
|
||||
|
||||
line-color = ${colors.blue}
|
||||
|
||||
border-size = 0
|
||||
border-color = #00000000
|
||||
|
||||
padding-left = 0
|
||||
padding-right = 2
|
||||
|
||||
module-margin-left = 1
|
||||
module-margin-right = 2
|
||||
|
||||
font-0 = fixed:pixelsize=10;1
|
||||
font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
|
||||
font-2 = siji:pixelsize=10;1
|
||||
font-3 = FontAwesome:style=Regular:pixelsize=10
|
||||
|
||||
modules-left = airvpn
|
||||
modules-center = i3
|
||||
modules-right = xbacklight wlan eth battery1 powermenu
|
||||
|
||||
cursor-click = pointer
|
||||
cursor-scroll = ns-resize
|
||||
|
||||
[module/xkeyboard]
|
||||
type = internal/xkeyboard
|
||||
blacklist-0 = num lock
|
||||
|
||||
format-prefix = " "
|
||||
format-prefix-foreground = ${colors.foreground-alt}
|
||||
format-prefix-underline = ${colors.magenta}
|
||||
|
||||
label-layout = %layout%
|
||||
label-layout-underline = ${colors.magenta}
|
||||
|
||||
label-indicator-padding = 2
|
||||
label-indicator-margin = 1
|
||||
label-indicator-background = ${colors.magenta}
|
||||
label-indicator-underline = ${colors.magenta}
|
||||
|
||||
[module/spotify]
|
||||
type = custom/script
|
||||
exec-if = pgrep -x spotify
|
||||
exec = echo "$(playerctl metadata xesam:artist) - $(playerctl metadata xesam:title)"
|
||||
|
||||
[module/spotify-prev]
|
||||
type = custom/script
|
||||
exec-if = pgrep -x spotify
|
||||
exec = echo ""
|
||||
click-left = bash -c "playerctl previous"
|
||||
|
||||
[module/spotify-next]
|
||||
type = custom/script
|
||||
exec-if = pgrep -x spotify
|
||||
exec = echo ""
|
||||
click-left = bash -c "playerctl next"
|
||||
|
||||
[module/spotify-play]
|
||||
type = custom/script
|
||||
exec-if = pgrep -x spotify
|
||||
exec = ~/.scripts/spotify-play.out
|
||||
tail = true
|
||||
click-left = bash -c "if [ `cat /home/$USER/.scripts/playstate` = 0 ]; then echo '1'>/home/$USER/.scripts/playstate;else echo '0'>/home/$USER/.scripts/playstate;fi"
|
||||
|
||||
[module/spotify-stop]
|
||||
type = custom/script
|
||||
exec-if = pgrep -x spotify
|
||||
exec = echo ""
|
||||
tail = true
|
||||
click-left = bash -c "playerctl stop && echo '0'>/home/$USER/.scripts/playstate"
|
||||
|
||||
[module/airvpn]
|
||||
type = custom/script
|
||||
exec-if =
|
||||
exec = "if [[ $(ip addr | grep tun) ]]; then echo 'VPN: connected'; else echo 'VPN: disconnectd'; fi"
|
||||
tail = true
|
||||
|
||||
|
||||
[module/i3]
|
||||
type = internal/i3
|
||||
|
||||
pin-workspaces = true
|
||||
|
||||
strip-wsnumbers = true
|
||||
|
||||
index-sort = false
|
||||
|
||||
enable-click = false
|
||||
|
||||
enable-scroll = false
|
||||
|
||||
wrapping-scroll = false
|
||||
|
||||
reverse-scroll = false
|
||||
|
||||
fuzzy-match = true
|
||||
|
||||
ws-icon-0 = 1;
|
||||
ws-icon-1 = 2;
|
||||
ws-icon-2 = 3;
|
||||
ws-icon-3 = 4;
|
||||
ws-icon-4 = 5;
|
||||
ws-icon-5 = 6;
|
||||
ws-icon-6 = 7;
|
||||
ws-icon-7 = 8;
|
||||
ws-icon-8 = 9;
|
||||
ws-icon-default =
|
||||
|
||||
format = <label-state>
|
||||
|
||||
label-mode = %mode%
|
||||
label-mode-padding = 2
|
||||
label-mode-background = ${colors.black}
|
||||
|
||||
label-focused = %name%
|
||||
label-focused-foreground = ${colors.foreground}
|
||||
label-focused-background = ${colors.background}
|
||||
label-focused-underline = ${colors.blue}
|
||||
label-focused-padding = 4
|
||||
|
||||
label-unfocused = %name%
|
||||
label-unfocused-padding = 4
|
||||
|
||||
label-visible = %name%
|
||||
label-visible-underline = ${colors.red}
|
||||
label-visible-padding = 4
|
||||
|
||||
label-urgent = %name%
|
||||
label-urgent-foreground = ${colors.black}
|
||||
label-urgent-background = ${colors.red}
|
||||
label-urgent-padding = 4
|
||||
|
||||
[module/xbacklight]
|
||||
type = internal/xbacklight
|
||||
|
||||
format = <label>
|
||||
label = %percentage%%
|
||||
label-underline = ${colors.yellow}
|
||||
|
||||
[module/backlight-acpi]
|
||||
inherit = module/xbacklight
|
||||
type = internal/backlight
|
||||
card = intel_backlight
|
||||
|
||||
[module/wlan]
|
||||
type = internal/network
|
||||
interface = wlp2s0
|
||||
interval = 3.0
|
||||
|
||||
format-connected = <label-connected>
|
||||
format-connected-underline = ${colors.cyan}
|
||||
label-connected = %essid%
|
||||
|
||||
format-disconnected =
|
||||
;format-disconnected = <label-disconnected>
|
||||
;format-disconnected-underline = ${self.format-connected-underline}
|
||||
;label-disconnected = %ifname% disconnected
|
||||
;label-disconnected-foreground = ${colors.foreground-alt}
|
||||
|
||||
|
||||
[module/date]
|
||||
type = internal/date
|
||||
interval = 1
|
||||
|
||||
date =
|
||||
date-alt = " %Y-%m-%d"
|
||||
|
||||
time = " %H:%M:%S"
|
||||
time-alt =
|
||||
|
||||
format-prefix =
|
||||
format-prefix-foreground = ${colors.foreground-alt}
|
||||
format-underline = ${colors.magenta}
|
||||
|
||||
label = %date% %time%
|
||||
|
||||
[module/volume]
|
||||
type = internal/volume
|
||||
|
||||
format-volume = <label-volume> <bar-volume>
|
||||
label-volume =
|
||||
label-volume-foreground = ${root.foreground}
|
||||
format-volume-underline = ${colors.green}
|
||||
|
||||
|
||||
format-muted-foreground = ${colors.foreground-alt}
|
||||
label-muted = Muted
|
||||
label-muted-underline = ${colors.red}
|
||||
|
||||
bar-volume-width = 10
|
||||
bar-volume-foreground-0 = ${colors.green}
|
||||
bar-volume-foreground-1 = ${colors.green}
|
||||
bar-volume-foreground-2 = ${colors.green}
|
||||
bar-volume-foreground-3 = ${colors.green}
|
||||
bar-volume-foreground-4 = ${colors.green}
|
||||
bar-volume-foreground-5 = ${colors.yellow}
|
||||
bar-volume-foreground-6 = ${colors.red}
|
||||
bar-volume-gradient = true
|
||||
bar-volume-indicator = |
|
||||
bar-volume-indicator-font = 2
|
||||
bar-volume-fill = ─
|
||||
bar-volume-fill-font = 2
|
||||
bar-volume-empty = ─
|
||||
bar-volume-empty-font = 2
|
||||
bar-volume-empty-foreground = ${colors.foreground-alt}
|
||||
|
||||
[module/battery1]
|
||||
type = internal/battery
|
||||
battery = BAT0
|
||||
adapter = AC0
|
||||
full-at = 98
|
||||
|
||||
format-charging = <animation-charging> <label-charging>
|
||||
format-charging-underline = ${colors.yellow}
|
||||
|
||||
format-discharging = <ramp-capacity> <label-discharging>
|
||||
format-discharging-underline = ${self.format-charging-underline}
|
||||
|
||||
format-full-prefix =
|
||||
format-full-prefix-foreground = ${colors.foreground-alt}
|
||||
format-full-underline = ${self.format-charging-underline}
|
||||
|
||||
ramp-capacity-0 =
|
||||
ramp-capacity-1 =
|
||||
ramp-capacity-2 =
|
||||
ramp-capacity-3 =
|
||||
ramp-capacity-4 =
|
||||
ramp-capacity-foreground = ${colors.foreground-alt}
|
||||
|
||||
animation-charging-0 =
|
||||
animation-charging-1 =
|
||||
animation-charging-2 =
|
||||
animation-charging-3 =
|
||||
animation-charging-4 =
|
||||
animation-charging-foreground = ${colors.foreground-alt}
|
||||
animation-charging-framerate = 750
|
||||
|
||||
[module/battery2]
|
||||
type = internal/battery
|
||||
battery = BAT1
|
||||
adapter = ACP0
|
||||
full-at = 98
|
||||
|
||||
format-charging = <animation-charging> <label-charging>
|
||||
format-charging-underline = ${colors.yellow}
|
||||
|
||||
format-discharging = <ramp-capacity> <label-discharging>
|
||||
format-discharging-underline = ${self.format-charging-underline}
|
||||
|
||||
format-full-prefix =
|
||||
format-full-prefix-foreground = ${colors.foreground-alt}
|
||||
format-full-underline = ${self.format-charging-underline}
|
||||
|
||||
ramp-capacity-0 =
|
||||
ramp-capacity-1 =
|
||||
ramp-capacity-2 =
|
||||
ramp-capacity-3 =
|
||||
ramp-capacity-4 =
|
||||
ramp-capacity-foreground = ${colors.foreground-alt}
|
||||
|
||||
animation-charging-0 =
|
||||
animation-charging-1 =
|
||||
animation-charging-2 =
|
||||
animation-charging-3 =
|
||||
animation-charging-4 =
|
||||
animation-charging-foreground = ${colors.foreground-alt}
|
||||
animation-charging-framerate = 750
|
||||
|
||||
# [module/powermenu]
|
||||
# type = custom/menu
|
||||
# expand-right = true
|
||||
# format-spacing = 1
|
||||
#
|
||||
# label-open =
|
||||
# label-open-foreground = ${colors.magenta}
|
||||
# label-close = cancel
|
||||
# label-close-foreground = ${colors.magenta}
|
||||
# label-separator = |
|
||||
# label-separator-foreground = ${colors.foreground-alt}
|
||||
#
|
||||
# menu-0-0 = power off
|
||||
# menu-0-0-exec = poweroff
|
||||
# menu-0-1 = reboot
|
||||
# menu-0-1-exec = reboot
|
||||
# menu-0-2 = logout
|
||||
# menu-0-2-exec = dm-tool lock
|
||||
|
||||
;; Power Menu Module
|
||||
[module/powermenu]
|
||||
type = custom/text
|
||||
|
||||
content = aaa
|
||||
content-background = ${colors.magenta}
|
||||
content-foreground = ${colors.magenta}
|
||||
|
||||
click-left = ~/.config/rofi/powermenu/type-1/powermenu.sh
|
||||
click-right = powermenu_t1
|
||||
|
||||
[settings]
|
||||
;screenchange-reload = true
|
||||
;compositing-background = xor
|
||||
;compositing-background = screen
|
||||
;compositing-foreground = source
|
||||
;compositing-border = over
|
||||
|
||||
[global/wm]
|
||||
margin-top = 5
|
||||
margin-bottom = 5
|
||||
|
||||
|
||||
@@ -16,5 +16,5 @@ theme='style-7'
|
||||
|
||||
## Run
|
||||
rofi \
|
||||
-show run \
|
||||
-theme ${dir}/${theme}.rasi
|
||||
-show run \
|
||||
-theme ${dir}/${theme}.rasi
|
||||
|
||||
@@ -1,208 +0,0 @@
|
||||
|
||||
# you can edit this file to change keybindings lines that start with '#' are comments
|
||||
# the syntax is pretty simple. Some examples:
|
||||
#command k (command is executed when k is pressed)
|
||||
#command <C-k> (command is executed when k is pressed while holding control)
|
||||
#command <S-k> (command is executed when k is pressed while holding shift)
|
||||
#command <A-k> (command is executed when k is pressed while holding alt)
|
||||
#command <S-+> (command is executed when = is pressed while holding shift.
|
||||
# Note that <S-=> would not work because of a bug in the command system so
|
||||
# when prefixing non-ascii keys with shift, you have to specify the shift
|
||||
# modified key in addition to the shift modifier)
|
||||
#command <C-S-k> (command is executed when k is pressed while holding control and shift)
|
||||
#command gg (command is executed when g is pressed twice)
|
||||
#command gt (command is executed when g is pressed and then t is pressed)
|
||||
#command g<C-n><S-d>t (command is executed when g is pressed and then n is pressed while holding\
|
||||
# control and then d is pressed while holding shift and then t is pressed)
|
||||
|
||||
|
||||
# ---------- NAVIGATION AND ZOOM ----------
|
||||
|
||||
# Goto the begining of document. If prefixed with a number, it will go to that page.
|
||||
# for example 150gg goes to page 150.
|
||||
goto_begining gg
|
||||
goto_begining <C-<home>>
|
||||
|
||||
# Opens a prompt to enter page number and jump to that page
|
||||
goto_page_with_page_number <home>
|
||||
|
||||
# Goto the end of the document
|
||||
goto_end <end>
|
||||
goto_end <S-g>
|
||||
|
||||
# movement (can be prefixed with a number)
|
||||
move_down <down>
|
||||
move_up <up>
|
||||
move_left <right>
|
||||
move_right <left>
|
||||
move_down j
|
||||
move_up k
|
||||
move_left l
|
||||
move_right h
|
||||
|
||||
# Goto forward for one page width. (can be prefixed with a number)
|
||||
# (note that going forward for one page width is not usually what you want becaue if
|
||||
# the page is larger than the screen you will miss some content. What you usually want is screen_down)
|
||||
next_page <C-<pagedown>>
|
||||
previous_page <C-<pageup>>
|
||||
|
||||
# Go down one screen width (can be prefixed with a number which tells how many screen widths should we go down)
|
||||
screen_down <space>
|
||||
screen_up <S-space>
|
||||
screen_down <pagedown>
|
||||
screen_up <pageup>
|
||||
|
||||
# Goto the next/prev chapter
|
||||
next_chapter gc
|
||||
prev_chapter g<S-c>
|
||||
|
||||
# Goto previous viewing state and delete the current (and future) state(s).
|
||||
pop_state w
|
||||
|
||||
# if we are not at the end of viewing history, goto the next history point
|
||||
next_state <l>
|
||||
# goto the previous history point
|
||||
prev_state <h>
|
||||
prev_state <backspace>
|
||||
next_state <C-<right>>
|
||||
prev_state <C-<left>>
|
||||
|
||||
# Open table of contents.
|
||||
goto_toc t
|
||||
|
||||
# zoom
|
||||
zoom_in <S-+>
|
||||
zoom_in =
|
||||
zoom_out -
|
||||
|
||||
# Automatically set the zoom level and horizontal offset such that the current page is centered horizontally and
|
||||
# it fills the screen width
|
||||
fit_to_page_width <f9>
|
||||
# same as fit_to_page_with but ignores page margins
|
||||
fit_to_page_width_smart <f10>
|
||||
|
||||
# Open a file dialog to select a document.
|
||||
open_document o
|
||||
open_document_embedded <C-o>
|
||||
open_document_embedded_from_current_path <C-S-o>
|
||||
|
||||
# Open a searchable list of previously opened documents.
|
||||
open_prev_doc <S-o>
|
||||
|
||||
|
||||
# ---------- SEARCH ----------
|
||||
|
||||
# search the document.
|
||||
# example: /something (searches the document for 'something')
|
||||
# you can also specify a page range to search:
|
||||
# example: /<110,135>something (searches pages 110 to 135 (inclusive) for 'something')
|
||||
search <C-f>
|
||||
search /
|
||||
|
||||
# this is the same as search.
|
||||
ranged_search r<C-f>
|
||||
ranged_search r/
|
||||
|
||||
# searches the current chapter. This is essentially the same as search but the range prefix is autofilled
|
||||
# with the range of the current lowest level subchapter.
|
||||
chapter_search c<C-f>
|
||||
chapter_search c/
|
||||
|
||||
# Goto the next search item. Can be prefixed with a number which is the same as performing the command n times
|
||||
# for example if we are on the 10th search result and we input 15n, we go to the 25th search result.
|
||||
next_item n
|
||||
# Goto the previous search result. Can be prefixed with a number with similar rules as next_item.
|
||||
previous_item <S-n>
|
||||
|
||||
# ---------- BOOKMARKS ----------
|
||||
# Add a bookmark in the current location (opens a text input where you can specify the bookmark text)
|
||||
add_bookmark b
|
||||
delete_bookmark db
|
||||
|
||||
# Open bookmarks menu of the current document.
|
||||
goto_bookmark gb
|
||||
|
||||
# Open bookmarks menu of all documents.
|
||||
goto_bookmark_g g<S-b>
|
||||
|
||||
# ---------- HIGHLIGHTS ----------
|
||||
# you can select a piece of text and press the `add_highlight` shortcut followed by a symbol (a character from a-z) to highlight
|
||||
# the text
|
||||
add_highlight h
|
||||
# search in highlights of current document
|
||||
goto_highlight gh
|
||||
# search in highlights of all documents
|
||||
goto_highlight_g g<S-h>
|
||||
# click on a highlight and then press the `delete_highlight` shortcut to delete it.
|
||||
delete_highlight dh
|
||||
|
||||
# ---------- MARKS ----------
|
||||
|
||||
# Mark the current location. After pressing the mark button, you must enter a symbol (a letter from a-z or A-Z).
|
||||
# this marks the current location in the file with the entered symbol. Afterwards you will be able to return to
|
||||
# the locations of the marks using goto_mark command.
|
||||
# example: mm (marks the current location in the file with a mark named 'm')
|
||||
set_mark m
|
||||
# Goto a previously set mark. After pressing goto_mark you must enter a symbol associated with a previously set mark.
|
||||
# example: `m (goes to the location of the mark named m)
|
||||
goto_mark `
|
||||
|
||||
|
||||
# ---------- PORTALS ----------
|
||||
# If we are in default state, goto portal state with the current location in document as the portal source
|
||||
# if we are already in the portal state, create the portal with the current location as destination.
|
||||
link p
|
||||
|
||||
# Delete the portal with the closest source to current location
|
||||
delete_link dp
|
||||
|
||||
# Goto the position of the portal with the closest source to current location
|
||||
goto_link <tab>
|
||||
|
||||
# Similar to goto_link, except when prev_state is called, the destination of the link is update to be the state
|
||||
# on which prev_state is called
|
||||
edit_link <S-p>
|
||||
edit_link <S-<tab>>
|
||||
|
||||
# Open/Close the helper window for portals
|
||||
toggle_one_window <f12>
|
||||
|
||||
# ---------- MISC ----------
|
||||
|
||||
# copy selected text
|
||||
copy y
|
||||
|
||||
toggle_fullscreen <f11>
|
||||
|
||||
# Toggles whether we highlight pdf links or not
|
||||
toggle_highlight <f1>
|
||||
|
||||
# open command line
|
||||
command <S-:>
|
||||
|
||||
# seach the selected text using one of the search engines defined using search_url_* settings in prefs.config (* can be any letter between 'a' and 'z')
|
||||
external_search s
|
||||
|
||||
#search_selected_text_in_google_scholar ss
|
||||
#search_selected_text_in_libgen sl
|
||||
|
||||
open_selected_url <S-q>
|
||||
|
||||
toggle_dark_mode <f8>
|
||||
|
||||
# toggle synctex mode. When in synctex mode, right clicking on a pdf launches the corresponding latex page.
|
||||
toggle_synctex <f4>
|
||||
|
||||
# while in mouse drag mode, instead of selecting text you can pan the screen using mouse
|
||||
toggle_mouse_drag_mode <f6>
|
||||
|
||||
# command the move the visual mark to the next/previous line
|
||||
#move_visual_mark_up k
|
||||
#move_visual_mark_down j
|
||||
|
||||
# In visual scroll mode, mouse wheel performs `move_visual_mark_up` and `move_visual_mark_down` commands
|
||||
toggle_visual_scroll <f7>
|
||||
|
||||
toggle_presentation_mode <f5>
|
||||
|
||||
quit q
|
||||
@@ -1,137 +0,0 @@
|
||||
# (can be 0 or 1) if set, shows a notification on startup if a new version of sioyek is available
|
||||
check_for_updates_on_startup 0
|
||||
|
||||
# The color with which the screen is cleared before rendering the pdf
|
||||
background_color 1.0 1.0 1.0
|
||||
dark_mode_background_color 0.0 0.0 0.0
|
||||
|
||||
# Showing full white text on black background can be irritating for the eye, we can dim the whites a little bit using the contrast option
|
||||
dark_mode_contrast 0.8
|
||||
|
||||
# Highlight color when text is selected using mouse
|
||||
text_highlight_color 1.0 1.0 0.0
|
||||
|
||||
# The color of highlight bar which is displayed when right click is pressed
|
||||
vertical_line_color 0.0 0.0 0.0 0.1
|
||||
|
||||
# Highlight color when text is a search match
|
||||
search_highlight_color 0.0 1.0 0.0
|
||||
|
||||
# Hihglight color for PDF links (note that highlight is off by default
|
||||
# and can only be seen by performing a toggle_highlight command. See keys.config for more details)
|
||||
link_highlight_color 0.0 0.0 1.0
|
||||
|
||||
# Hihglight color for synctex forward search highlights
|
||||
synctex_highlight_color 1.0 0.0 1.0
|
||||
|
||||
# urls to use when executing external_search commands
|
||||
search_url_s https://scholar.google.com/scholar?q=
|
||||
search_url_l http://gen.lib.rus.ec/scimag/?q=
|
||||
search_url_g https://www.google.com/search?q=
|
||||
|
||||
# which search url to choose when middle clicking or shift middle clicking on text (the values are the letters of corresponding search_url_* )
|
||||
# for example if i set `middle_click_search_engine s`, then we use the url associated with `search_url_s` to handle middle click searches
|
||||
middle_click_search_engine s
|
||||
shift_middle_click_search_engine l
|
||||
|
||||
# The factor by which we increase/decrease zoom when performing zoom_in or zoom_out
|
||||
zoom_inc_factor 1.2
|
||||
|
||||
# How many inches we move vertically/horizontally when performing move_* commands
|
||||
vertical_move_amount 1.0
|
||||
horizontal_move_amount 1.0
|
||||
|
||||
# When performing screen_down/screen_up we usually don't move a full screen because it causes the user to lose context
|
||||
# Here we specify the fraction of the screen width by which we move when performing these commands
|
||||
move_screen_percentage 0.5
|
||||
|
||||
# If 0, Table of Contents is shown in a hierarchial tree, otherwise it is a flat list (can improve performance for extremely large table of contents)
|
||||
flat_toc 0
|
||||
|
||||
# If it is 1, when launching the application if we detect multiple monitors, we automatically launch the helper window in second monitor
|
||||
should_use_multiple_monitors 0
|
||||
|
||||
# if the last opened document is empty, load the tutorial pdf instead
|
||||
should_load_tutorial_when_no_other_file 1
|
||||
|
||||
# if it is 0, then we use the previous instance of sioyek when launching a new file.
|
||||
# otherwise a new instance is launched every time we open a new file.
|
||||
should_launch_new_instance 0
|
||||
|
||||
# the command to use when trying to do inverse search into a LaTeX document. Uncomment and provide your own command.
|
||||
# %1 expands to the name of the file and %2 expans to the line number.
|
||||
#inverse_search_command "C:\path\to\vscode\Code.exe" -r -g %1:%2
|
||||
|
||||
# you can specify the exact highlight color for each of 26 different highlight types
|
||||
|
||||
# when moving to the next line using visual marker, this setting specifies the distance of the market to the top of the screen in fractions of screen size
|
||||
visual_mark_next_page_fraction 0.25
|
||||
|
||||
# when moving to the next line using visual marker, this setting determines at which point we move the screen
|
||||
visual_mark_next_page_fraction 0.2
|
||||
|
||||
#Amethyst
|
||||
highlight_color_a 0.94 0.64 1.00
|
||||
#Blue
|
||||
highlight_color_b 0.00 0.46 0.86
|
||||
#Caramel
|
||||
highlight_color_c 0.60 0.25 0.00
|
||||
#Damson
|
||||
highlight_color_d 0.30 0.00 0.36
|
||||
#Ebony
|
||||
highlight_color_e 0.10 0.10 0.10
|
||||
#Forest
|
||||
highlight_color_f 0.00 0.36 0.19
|
||||
#Green
|
||||
highlight_color_g 0.17 0.81 0.28
|
||||
#Honeydew
|
||||
highlight_color_h 1.00 0.80 0.60
|
||||
#Iron
|
||||
highlight_color_i 0.50 0.50 0.50
|
||||
#Jade
|
||||
highlight_color_j 0.58 1.00 0.71
|
||||
#Khaki
|
||||
highlight_color_k 0.56 0.49 0.00
|
||||
#Lime
|
||||
highlight_color_l 0.62 0.80 0.00
|
||||
#Mallow
|
||||
highlight_color_m 0.76 0.00 0.53
|
||||
#Navy
|
||||
highlight_color_n 0.00 0.20 0.50
|
||||
#Orpiment
|
||||
highlight_color_o 1.00 0.64 0.02
|
||||
#Pink
|
||||
highlight_color_p 1.00 0.66 0.73
|
||||
#Quagmire
|
||||
highlight_color_q 0.26 0.40 0.00
|
||||
#Red
|
||||
highlight_color_r 1.00 0.00 0.06
|
||||
#Sky
|
||||
highlight_color_s 0.37 0.95 0.95
|
||||
#Turquoise
|
||||
highlight_color_t 0.00 0.60 0.56
|
||||
#Uranium
|
||||
highlight_color_u 0.88 1.00 0.40
|
||||
#Violet
|
||||
highlight_color_v 0.45 0.04 1.00
|
||||
#Wine
|
||||
highlight_color_w 0.60 0.00 0.00
|
||||
#Xanthin
|
||||
highlight_color_x 1.00 1.00 0.50
|
||||
#Yellow
|
||||
highlight_color_y 1.00 1.00 0.00
|
||||
#Zinnia
|
||||
highlight_color_z 1.00 0.31 0.02
|
||||
|
||||
|
||||
# if set, we display a checkerboard pattern for unrendered pages (by default we display nothing)
|
||||
should_draw_unrendered_pages 0
|
||||
|
||||
# displays an overview of destination when hovering over a link with mouse
|
||||
hover_overview 0
|
||||
|
||||
# Use dark mode by default
|
||||
default_dark_mode 0
|
||||
|
||||
# if set, we sort the bookmarks by their location instead of their creation time
|
||||
sort_bookmarks_by_location 0
|
||||
@@ -1,64 +0,0 @@
|
||||
format = """
|
||||
[░▒▓](#a3aed2)\
|
||||
[ ](bg:#a3aed2 fg:#090c0c)\
|
||||
[](bg:#769ff0 fg:#a3aed2)\
|
||||
$directory\
|
||||
[](fg:#769ff0 bg:#394260)\
|
||||
$git_branch\
|
||||
$git_status\
|
||||
[](fg:#394260 bg:#212736)\
|
||||
$nodejs\
|
||||
$rust\
|
||||
$golang\
|
||||
$php\
|
||||
[](fg:#212736 bg:#1d2230)\
|
||||
$time\
|
||||
[ ](fg:#1d2230)\
|
||||
\n$character"""
|
||||
|
||||
[directory]
|
||||
style = "fg:#e3e5e5 bg:#769ff0"
|
||||
format = "[ $path ]($style)"
|
||||
truncation_length = 3
|
||||
truncation_symbol = "…/"
|
||||
|
||||
[directory.substitutions]
|
||||
"Documents" = " "
|
||||
"Downloads" = " "
|
||||
"Music" = " "
|
||||
"Pictures" = " "
|
||||
|
||||
[git_branch]
|
||||
symbol = ""
|
||||
style = "bg:#394260"
|
||||
format = '[[ $symbol $branch ](fg:#769ff0 bg:#394260)]($style)'
|
||||
|
||||
[git_status]
|
||||
style = "bg:#394260"
|
||||
format = '[[($all_status$ahead_behind )](fg:#769ff0 bg:#394260)]($style)'
|
||||
|
||||
[nodejs]
|
||||
symbol = ""
|
||||
style = "bg:#212736"
|
||||
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
|
||||
|
||||
[rust]
|
||||
symbol = ""
|
||||
style = "bg:#212736"
|
||||
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
|
||||
|
||||
[golang]
|
||||
symbol = "ﳑ"
|
||||
style = "bg:#212736"
|
||||
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
|
||||
|
||||
[php]
|
||||
symbol = ""
|
||||
style = "bg:#212736"
|
||||
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
|
||||
|
||||
[time]
|
||||
disabled = false
|
||||
time_format = "%R" # Hour:Minute Format
|
||||
style = "bg:#1d2230"
|
||||
format = '[[ $time ](fg:#a0a9cb bg:#1d2230)]($style)'
|
||||
@@ -1,46 +0,0 @@
|
||||
[options]
|
||||
font = Hack Nerd Font Monoo 11
|
||||
font = DejaVu Sans Mono for Powerline 11
|
||||
|
||||
[colors]
|
||||
|
||||
[colors]
|
||||
|
||||
# special
|
||||
foreground = #98abb2
|
||||
foreground_bold = #98abb2
|
||||
cursor = #98abb2
|
||||
background = rgba(0,0,0,0.9)
|
||||
|
||||
# black
|
||||
color0 = #000000
|
||||
color8 = #0c0e14
|
||||
|
||||
# red
|
||||
color1 = #e84f4f
|
||||
color9 = #d23d3d
|
||||
|
||||
# green
|
||||
color2 = #00ffaf
|
||||
color10 = #237885
|
||||
|
||||
# yellow
|
||||
color3 = #ffbb24
|
||||
color11 = #f8ec09
|
||||
|
||||
# blue
|
||||
color4 = #007fff
|
||||
color12 = #00c4ff
|
||||
|
||||
# magenta
|
||||
color5 = #8c00fd
|
||||
color13 = #cd00df
|
||||
|
||||
# cyan
|
||||
color6 = #00e8b7
|
||||
color14 = #00d3a7
|
||||
|
||||
# white
|
||||
color7 = #98abb2
|
||||
color15 = #c0bfbc
|
||||
|
||||
18
config/.gitconfig
Normal file
18
config/.gitconfig
Normal file
@@ -0,0 +1,18 @@
|
||||
[core]
|
||||
pager = delta
|
||||
|
||||
[interactive]
|
||||
diffFilter = delta --color-only
|
||||
|
||||
[delta]
|
||||
navigate = true # use n and N to move between diff sections
|
||||
light = false # set to true if you're in a terminal w/ a light background color (e.g. the default macOS terminal)
|
||||
|
||||
[merge]
|
||||
conflictstyle = diff3
|
||||
|
||||
[diff]
|
||||
colorMoved = default
|
||||
[user]
|
||||
email = tuan-dat.tran@tudattr.dev
|
||||
name = Tuan-Dat Tran
|
||||
@@ -1,3 +0,0 @@
|
||||
#back-button, #forward-button, #page-action-buttons{
|
||||
display:none;
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
[Install4F96D1932A9F858E]
|
||||
Default=2x4tnepw.default
|
||||
Locked=1
|
||||
|
||||
[Profile0]
|
||||
Name=default
|
||||
IsRelative=1
|
||||
Path=2x4tnepw.default
|
||||
Default=1
|
||||
|
||||
[General]
|
||||
StartWithLastProfile=1
|
||||
Version=2
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
#!/usr/bin/env nu
|
||||
|
||||
let zellij_session_table = (zellij ls | lines);
|
||||
let zellij_session_count = ($zellij_session_table | length);
|
||||
|
||||
if $zellij_session_count == 0 {
|
||||
zellij
|
||||
} else if $zellij_session_count == 1 {
|
||||
zellij attach
|
||||
} else {
|
||||
let prompt = $" zellij sessions:
|
||||
|
||||
($zellij_session_table|table)
|
||||
|
||||
Choose session 0-($zellij_session_count - 1): ";
|
||||
|
||||
let user_input = (input $"($prompt)");
|
||||
|
||||
try {
|
||||
"Into Try"
|
||||
let user_input = ($user_input | into int);
|
||||
"Converted"
|
||||
$"User Input: ($user_input)";
|
||||
$"Threshold: 0-($zellij_session_count - 0)";
|
||||
$"UserInput in Threshold? (0 < $user_input or $user_input < $zellij_session_count - 1)"
|
||||
if (0 < $user_input or $user_input < $zellij_session_count - 1) {
|
||||
"Valid Input"
|
||||
let table_entry = ($zellij_session_table | select $user_input);
|
||||
zellij attach $table_entry;
|
||||
} else {
|
||||
"Invalid Input"
|
||||
zellij;
|
||||
}
|
||||
} catch {
|
||||
"Catch"
|
||||
zellij;
|
||||
}
|
||||
}
|
||||
@@ -1,25 +1,21 @@
|
||||
# Services
|
||||
Host github.com
|
||||
Hostname github.com
|
||||
Host github.com gitlab.com git.uni-due.de
|
||||
Port 22
|
||||
User git
|
||||
IdentityFile /mnt/veracrypt1/git
|
||||
|
||||
Host github.com
|
||||
Hostname github.com
|
||||
|
||||
Host gitlab.com
|
||||
Hostname gitlab.com
|
||||
Port 22
|
||||
User git
|
||||
IdentityFile /mnt/veracrypt1/git
|
||||
|
||||
Host picoCTF
|
||||
HostName 2018shell4.picoctf.com
|
||||
Port 22
|
||||
User mos4
|
||||
IdentityFile "/home/tuan/Documents/CTF/picoCTF/2018/30 - ssh-keyz/picoCTF"
|
||||
|
||||
Host git.uni-due.de
|
||||
HostName git.uni-due.de
|
||||
Port 22
|
||||
|
||||
Host git.tudattr.dev
|
||||
Hostname 192.168.20.12
|
||||
Port 2222
|
||||
User git
|
||||
IdentityFile /mnt/veracrypt1/git
|
||||
|
||||
@@ -42,12 +38,34 @@ Host madrigal
|
||||
User tudattr
|
||||
IdentityFile /mnt/veracrypt1/mikrotik_rsa
|
||||
|
||||
Host aya01
|
||||
Host inko inko.mii
|
||||
HostName 192.168.20.14
|
||||
|
||||
Host naruto naruto.mii
|
||||
HostName 192.168.20.13
|
||||
|
||||
Host pi pi.mii
|
||||
HostName 192.168.20.11
|
||||
|
||||
Host aya01 aya01.mii
|
||||
HostName 192.168.20.12
|
||||
|
||||
Host behemoth behemoth.mii
|
||||
User tuan
|
||||
HostName 192.168.30.174
|
||||
|
||||
Host mii
|
||||
HostName tudattr.dev
|
||||
|
||||
Host inko.mii pi.mii aya01.mii naruto.mii behemoth.mii
|
||||
ProxyJump mii
|
||||
|
||||
Host mii pi aya01 inko naruto inko.mii pi.mii aya01.mii naruto.mii behemoth behemoth.mii
|
||||
Port 22
|
||||
User tudattr
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
|
||||
<<<<<<< HEAD
|
||||
Host inko
|
||||
HostName 192.168.20.14
|
||||
Port 22
|
||||
@@ -57,15 +75,26 @@ Host inko
|
||||
Host naruto
|
||||
HostName 192.168.20.13
|
||||
Port 22
|
||||
||||||| e9d53f0
|
||||
Host git.aya01
|
||||
HostName 192.168.20.12
|
||||
Port 23231
|
||||
=======
|
||||
# Work
|
||||
Host mini
|
||||
HostName 100.76.45.158
|
||||
Port 22
|
||||
>>>>>>> clean_emacs
|
||||
User tudattr
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
|
||||
Host pi
|
||||
HostName 192.168.20.11
|
||||
Port 22
|
||||
User tudattr
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
Host tail-pi
|
||||
HostName 100.93.79.94
|
||||
Port 22
|
||||
User tuant
|
||||
IdentityFile /mnt/veracrypt1/work/minis
|
||||
|
||||
<<<<<<< HEAD
|
||||
Host mii-root
|
||||
HostName 202.61.207.139
|
||||
Port 22
|
||||
@@ -106,13 +135,22 @@ Host ncs-tailscale
|
||||
User tuant
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
|
||||
||||||| e9d53f0
|
||||
# Work
|
||||
=======
|
||||
>>>>>>> clean_emacs
|
||||
Host ncs-head
|
||||
HostName 132.252.68.50
|
||||
Port 2122
|
||||
User tuan-dat.tran
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
ForwardX11 yes
|
||||
<<<<<<< HEAD
|
||||
ProxyJump ncs-tailscale
|
||||
||||||| e9d53f0
|
||||
=======
|
||||
ProxyJump tail-pi
|
||||
>>>>>>> clean_emacs
|
||||
|
||||
Host ncs-head-user
|
||||
HostName 132.252.68.50
|
||||
@@ -123,62 +161,44 @@ Host ncs-head-user
|
||||
|
||||
Host ncs2
|
||||
HostName 192.168.1.13
|
||||
Port 22
|
||||
User tuan-dat.tran
|
||||
|
||||
Host ncs2 ncs2-user ncs-node1 ncs-node2 ncs-node2-user ncs-node3 ncs-node4 ncs-node5 ncs-node6 ncs-node7 ncs-wedge
|
||||
Port 22
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs2-user
|
||||
HostName 192.168.1.13
|
||||
Port 22
|
||||
User user # tuan-dat.tran
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-node1
|
||||
HostName 192.168.1.11
|
||||
Port 22
|
||||
User user
|
||||
IdentityFile /mnt/veracrypt1/tudattr
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-node2
|
||||
HostName 192.168.1.7
|
||||
Port 22
|
||||
User tuan-dat.tran
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
ProxyJump ncs-head
|
||||
ForwardX11 yes
|
||||
|
||||
Host ncs-node2-user
|
||||
HostName 192.168.1.7
|
||||
Port 22
|
||||
User user
|
||||
IdentityFile /mnt/veracrypt1/tudattr
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-node3
|
||||
Hostname 192.168.1.19
|
||||
Port 22
|
||||
User tuan-dat.tran
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
ForwardX11 yes
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-node3-user
|
||||
Hostname 192.168.1.19
|
||||
Port 22
|
||||
User user
|
||||
IdentityFile /mnt/veracrypt1/tudattr
|
||||
ForwardX11 yes
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-node4
|
||||
HostName 192.168.1.9
|
||||
Port 22
|
||||
User tuan-dat.tran
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-node4-user
|
||||
HostName 192.168.1.9
|
||||
@@ -189,18 +209,11 @@ Host ncs-node4-user
|
||||
|
||||
Host ncs-node5
|
||||
HostName 192.168.1.15
|
||||
Port 22
|
||||
User tuan-dat.tran
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-node6
|
||||
Hostname 192.168.1.17
|
||||
Port 22
|
||||
User tuan-dat.tran
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
# ForwardX11 yes
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-node6-user
|
||||
Hostname 192.168.1.17
|
||||
@@ -212,20 +225,53 @@ Host ncs-node6-user
|
||||
|
||||
Host ncs-node7
|
||||
Hostname 192.168.1.18
|
||||
Port 22
|
||||
User tuan-dat.tran
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
ForwardX11 yes
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-wedge
|
||||
Hostname 192.168.1.5
|
||||
Port 22
|
||||
User user
|
||||
<<<<<<< HEAD
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
# ForwardX11 yes
|
||||
ProxyJump ncs-head
|
||||
|
||||
||||||| e9d53f0
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
# ForwardX11 yes
|
||||
ProxyJump ncs-head
|
||||
|
||||
Host ncs-local-server
|
||||
HostName 192.168.1.1
|
||||
Port 22
|
||||
User tuan-dat.tran
|
||||
IdentityFile /mnt/veracrypt1/tudattr
|
||||
StrictHostKeyChecking no
|
||||
|
||||
Host ncs-local-server-user
|
||||
HostName 192.168.1.1
|
||||
Port 22
|
||||
User user
|
||||
IdentityFile /mnt/veracrypt1/tudattr
|
||||
StrictHostKeyChecking no
|
||||
|
||||
Host ncs-local-server2
|
||||
HostName 192.168.2.2
|
||||
Port 22
|
||||
User user
|
||||
IdentityFile /mnt/veracrypt1/tudattr
|
||||
StrictHostKeyChecking no
|
||||
ProxyJump ncs-local-server
|
||||
|
||||
Host phone
|
||||
Hostname 192.168.30.245
|
||||
Port 2222
|
||||
User tuan-dat.tran
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> clean_emacs
|
||||
Host ncs-gpu
|
||||
Hostname 192.168.1.21
|
||||
Port 22
|
||||
@@ -234,18 +280,29 @@ Host ncs-gpu
|
||||
ForwardX11 yes
|
||||
ProxyJump ncs-head
|
||||
|
||||
<<<<<<< HEAD
|
||||
Host ncs-aws-iperf3
|
||||
Hostname 18.185.5.191
|
||||
Port 22
|
||||
User ec2-user
|
||||
IdentityFile /mnt/veracrypt1/work/aws_ncs.pem
|
||||
|
||||
||||||| e9d53f0
|
||||
Host ncs-aws-iperf3
|
||||
Hostname 18.185.5.191
|
||||
Port 22
|
||||
User ec2-user
|
||||
IdentityFile /mnt/veracrypt1/aws_ncs.pem
|
||||
|
||||
=======
|
||||
>>>>>>> clean_emacs
|
||||
Host ami
|
||||
Hostname 3.72.156.214
|
||||
Port 22
|
||||
User ubuntu
|
||||
IdentityFile /mnt/veracrypt1/work/aws-rizk.pem
|
||||
|
||||
<<<<<<< HEAD
|
||||
Host 5g-mec
|
||||
Hostname 192.168.100.1
|
||||
Port 22
|
||||
@@ -264,3 +321,25 @@ Host minis
|
||||
User tudattr
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
|
||||
||||||| e9d53f0
|
||||
=======
|
||||
|
||||
## 5g IANA
|
||||
Host 5g-iana-mec
|
||||
Hostname 192.168.100.1
|
||||
Port 22
|
||||
User udue
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
|
||||
Host uulm-obu0 uulm-obu1
|
||||
Port 22
|
||||
User user
|
||||
ProxyJump 5g-iana-mec
|
||||
IdentityFile /mnt/veracrypt1/genesis
|
||||
|
||||
Host uulm-obu0
|
||||
Hostname 192.168.201.7
|
||||
|
||||
Host uulm-obu1
|
||||
Hostname 192.168.201.11
|
||||
>>>>>>> clean_emacs
|
||||
|
||||
@@ -1,606 +0,0 @@
|
||||
#! perl -w
|
||||
# Author: Bert Muennich
|
||||
# Website: http://www.github.com/muennich/urxvt-perls
|
||||
# License: GPLv2
|
||||
|
||||
# Use keyboard shortcuts to select and copy text.
|
||||
|
||||
# Usage: put the following lines in your .Xdefaults/.Xresources:
|
||||
# URxvt.perl-ext-common: ...,keyboard-select
|
||||
# URxvt.keysym.M-Escape: perl:keyboard-select:activate
|
||||
# The following line overwrites the default Meta-s binding and allows to
|
||||
# activate keyboard-select directly in backward search mode:
|
||||
# URxvt.keysym.M-s: perl:keyboard-select:search
|
||||
|
||||
# Use Meta-Escape to activate selection mode, then use the following keys:
|
||||
# h/j/k/l: Move cursor left/down/up/right (also with arrow keys)
|
||||
# g/G/0/^/$/H/M/L/f/F/;/,/w/W/b/B/e/E: More vi-like cursor movement keys
|
||||
# '/'/?: Start forward/backward search
|
||||
# n/N: Repeat last search, N: in reverse direction
|
||||
# Ctrl-f/b: Scroll down/up one screen
|
||||
# Ctrl-d/u: Scroll down/up half a screen
|
||||
# v/V/Ctrl-v: Toggle normal/linewise/blockwise selection
|
||||
# y/Return: Copy selection to primary buffer, Return: quit afterwards
|
||||
# Y: Copy selected lines to primary buffer or cursor line and quit
|
||||
# q/Escape: Quit keyboard selection mode
|
||||
|
||||
# Options:
|
||||
# URxvt.keyboard-select.clipboard: If true, copy to clipboard too
|
||||
|
||||
|
||||
use strict;
|
||||
|
||||
sub on_start{
|
||||
my ($self) = @_;
|
||||
|
||||
$self->{clipboard} = $self->x_resource_boolean('keyboard-select.clipboard');
|
||||
|
||||
$self->{patterns}{'w'} = qr/\w[^\w\s]|\W\w|\s\S/;
|
||||
$self->{patterns}{'W'} = qr/\s\S/;
|
||||
$self->{patterns}{'b'} = qr/.*(?:\w[^\w\s]|\W\w|\s\S)/;
|
||||
$self->{patterns}{'B'} = qr/.*\s\S/;
|
||||
$self->{patterns}{'e'} = qr/[^\w\s](?=\w)|\w(?=\W)|\S(?=\s|$)/;
|
||||
$self->{patterns}{'E'} = qr/\S(?=\s|$)/;
|
||||
|
||||
()
|
||||
}
|
||||
|
||||
|
||||
sub on_action {
|
||||
my ($self, $action) = @_;
|
||||
|
||||
on_user_command($self, "keyboard-select:" . $action);
|
||||
}
|
||||
|
||||
|
||||
sub on_user_command {
|
||||
my ($self, $cmd) = @_;
|
||||
|
||||
if (not $self->{active}) {
|
||||
if ($cmd eq 'keyboard-select:activate') {
|
||||
activate($self);
|
||||
} elsif ($cmd eq 'keyboard-select:search') {
|
||||
activate($self, 1);
|
||||
}
|
||||
}
|
||||
|
||||
()
|
||||
}
|
||||
|
||||
|
||||
sub key_press {
|
||||
my ($self, $event, $keysym, $char) = @_;
|
||||
my $key = chr($keysym);
|
||||
|
||||
if (lc($key) eq 'c' && $event->{state} & urxvt::ControlMask) {
|
||||
deactivate($self);
|
||||
} elsif ($self->{search}) {
|
||||
if ($keysym == 0xff1b) {
|
||||
if ($self->{search_mode}) {
|
||||
deactivate($self);
|
||||
} else {
|
||||
$self->{search} = '';
|
||||
status_area($self);
|
||||
}
|
||||
} elsif ($keysym == 0xff08) {
|
||||
$self->{search} = substr($self->{search}, 0, -1);
|
||||
if (not $self->{search} and $self->{search_mode}) {
|
||||
deactivate($self);
|
||||
} else {
|
||||
status_area($self);
|
||||
}
|
||||
} elsif ($keysym == 0xff0d ||
|
||||
(lc($key) eq 'm' && $event->{state} & urxvt::ControlMask)) {
|
||||
my $txt = substr($self->{search}, 1);
|
||||
if ($txt) {
|
||||
$self->{pattern} = ($txt =~ m/[[:upper:]]/) ? qr/\Q$txt\E/ :
|
||||
qr/\Q$txt\E/i;
|
||||
} elsif ($self->{pattern}) {
|
||||
delete $self->{pattern};
|
||||
}
|
||||
$self->{search} = '';
|
||||
$self->screen_cur($self->{srhcr}, $self->{srhcc});
|
||||
if (not find_next($self)) {
|
||||
if ($self->{search_mode}) {
|
||||
deactivate($self);
|
||||
} else {
|
||||
status_area($self);
|
||||
}
|
||||
}
|
||||
} elsif (length($char) > 0) {
|
||||
$self->{search} .= $self->locale_decode($char);
|
||||
my $txt = substr($self->{search}, 1);
|
||||
if ($txt) {
|
||||
$self->{pattern} = ($txt =~ m/[[:upper:]]/) ? qr/\Q$txt\E/ :
|
||||
qr/\Q$txt\E/i;
|
||||
} elsif ($self->{pattern}) {
|
||||
delete $self->{pattern};
|
||||
}
|
||||
$self->screen_cur($self->{srhcr}, $self->{srhcc});
|
||||
find_next($self);
|
||||
status_area($self);
|
||||
}
|
||||
} elsif ($self->{move_to}) {
|
||||
if ($keysym == 0xff1b) {
|
||||
$self->{move_to} = 0;
|
||||
status_area($self);
|
||||
} elsif (length($char) > 0) {
|
||||
$self->{move_to} = 0;
|
||||
$self->{patterns}{'f-1'} = qr/^.*\Q$key\E/;
|
||||
$self->{patterns}{'f+1'} = qr/^.+?\Q$key\E/;
|
||||
move_to($self, ';');
|
||||
status_area($self);
|
||||
}
|
||||
} elsif ($keysym == 0xff1b || lc($key) eq 'q') {
|
||||
deactivate($self);
|
||||
} elsif (lc($key) eq 'y' || $keysym == 0xff0d ||
|
||||
(lc($key) eq 'm' && $event->{state} & urxvt::ControlMask)) {
|
||||
my $quit = 0;
|
||||
if ($key eq 'Y' && $self->{select} ne 'l') {
|
||||
$quit = !$self->{select};
|
||||
toggle_select($self, 'l');
|
||||
}
|
||||
if ($self->{select}) {
|
||||
my ($br, $bc, $er, $ec) = calc_span($self);
|
||||
$ec = $self->line($er)->l if $self->{select} eq 'l';
|
||||
$self->selection_beg($br, $bc);
|
||||
$self->selection_end($er, $ec);
|
||||
$self->selection_make($event->{time}, $self->{select} eq 'b');
|
||||
if ($self->{clipboard}) {
|
||||
$self->selection($self->selection(), 1);
|
||||
$self->selection_grab($event->{time}, 1);
|
||||
}
|
||||
if (lc($key) eq 'y') {
|
||||
$self->selection_beg(1, 0);
|
||||
$self->selection_end(1, 0);
|
||||
$self->{select} = '';
|
||||
status_area($self);
|
||||
$self->want_refresh();
|
||||
} else {
|
||||
$quit = 1;
|
||||
}
|
||||
}
|
||||
if ($quit) {
|
||||
deactivate($self);
|
||||
}
|
||||
} elsif ($key eq 'V') {
|
||||
toggle_select($self, 'l');
|
||||
} elsif ($key eq 'v') {
|
||||
if ($event->{state} & urxvt::ControlMask) {
|
||||
toggle_select($self, 'b');
|
||||
} else {
|
||||
toggle_select($self, 'n');
|
||||
}
|
||||
} elsif ($key eq 'k' || $keysym == 0xff52) {
|
||||
move_cursor($self, 'k');
|
||||
} elsif ($key eq 'j' || $keysym == 0xff54) {
|
||||
move_cursor($self, 'j');
|
||||
} elsif ($key eq 'h' || $keysym == 0xff51) {
|
||||
move_cursor($self, 'h');
|
||||
} elsif ($key eq 'l' || $keysym == 0xff53) {
|
||||
move_cursor($self, 'l');
|
||||
} elsif ($keysym == 0xff57) {
|
||||
move_cursor($self, '$');
|
||||
} elsif ($keysym == 0xff50) {
|
||||
move_cursor($self, '^');
|
||||
} elsif ('gG0^$HML' =~ m/\Q$key\E/ ||
|
||||
('fbdu' =~ m/\Q$key\E/ && $event->{state} & urxvt::ControlMask)) {
|
||||
move_cursor($self, $key);
|
||||
} elsif (lc($key) eq 'f') {
|
||||
$self->{move_to} = 1;
|
||||
$self->{move_dir} = $key eq 'F' ? -1 : 1;
|
||||
status_area($self, $key);
|
||||
} elsif (';,wWbBeE' =~ m/\Q$key\E/) {
|
||||
move_to($self, $key);
|
||||
} elsif ($key eq '/' || $key eq '?') {
|
||||
$self->{search} = $key;
|
||||
$self->{search_dir} = $key eq '?' ? -1 : 1;
|
||||
($self->{srhcr}, $self->{srhcc}) = $self->screen_cur();
|
||||
status_area($self);
|
||||
} elsif (lc($key) eq 'n') {
|
||||
find_next($self, $self->{search_dir} * ($key eq 'N' ? -1 : 1));
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
sub move_cursor {
|
||||
my ($self, $key) = @_;
|
||||
my ($cr, $cc) = $self->screen_cur();
|
||||
my $line = $self->line($cr);
|
||||
|
||||
if ($key eq 'k' && $line->beg > $self->top_row) {
|
||||
$cr = $line->beg - 1;
|
||||
} elsif ($key eq 'j' && $line->end < $self->nrow - 1) {
|
||||
$cr = $line->end + 1;
|
||||
} elsif ($key eq 'h' && $self->{offset} > 0) {
|
||||
$self->{offset} = $line->offset_of($cr, $cc) - 1;
|
||||
$self->{dollar} = 0;
|
||||
} elsif ($key eq 'l' && $self->{offset} < $line->l - 1) {
|
||||
++$self->{offset};
|
||||
} elsif ($key eq 'f' || $key eq 'd') {
|
||||
my $vs = $self->view_start() +
|
||||
($key eq 'd' ? $self->nrow / 2 : $self->nrow - 1);
|
||||
$vs = 0 if $vs > 0;
|
||||
$cr += $vs - $self->view_start($vs);
|
||||
} elsif ($key eq 'b' || $key eq 'u') {
|
||||
my $vs = $self->view_start() -
|
||||
($key eq 'u' ? $self->nrow / 2 : $self->nrow - 1);
|
||||
$vs = $self->top_row if $vs < $self->top_row;
|
||||
$cr += $vs - $self->view_start($vs);
|
||||
} elsif ($key eq 'g') {
|
||||
($cr, $self->{offset}) = ($self->top_row, 0);
|
||||
$self->{dollar} = 0;
|
||||
} elsif ($key eq 'G') {
|
||||
($cr, $self->{offset}) = ($self->nrow - 1, 0);
|
||||
$self->{dollar} = 0;
|
||||
} elsif ($key eq '0') {
|
||||
$self->{offset} = 0;
|
||||
$self->{dollar} = 0;
|
||||
} elsif ($key eq '^') {
|
||||
my $ltxt = $self->special_decode($line->t);
|
||||
while ($ltxt =~ s/^( *)\t/$1 . " " x (8 - length($1) % 8)/e) {}
|
||||
$self->{offset} = $ltxt =~ m/^ +/ ? $+[0] : 0;
|
||||
$self->{dollar} = 0;
|
||||
} elsif ($key eq '$') {
|
||||
my $co = $line->offset_of($cr, $cc);
|
||||
$self->{dollar} = $co + 1;
|
||||
$self->{offset} = $line->l - 1;
|
||||
} elsif ($key eq 'H') {
|
||||
$cr = $self->view_start();
|
||||
} elsif ($key eq 'M') {
|
||||
$cr = $self->view_start() + $self->nrow / 2;
|
||||
} elsif ($key eq 'L') {
|
||||
$cr = $self->view_start() + $self->nrow - 1;
|
||||
}
|
||||
|
||||
$line = $self->line($cr);
|
||||
$cc = $self->{dollar} || $self->{offset} >= $line->l ? $line->l - 1 :
|
||||
$self->{offset};
|
||||
$self->screen_cur($line->coord_of($cc));
|
||||
|
||||
status_area($self);
|
||||
$self->want_refresh();
|
||||
|
||||
()
|
||||
}
|
||||
|
||||
|
||||
sub move_to {
|
||||
my ($self, $key) = @_;
|
||||
my ($cr, $cc) = $self->screen_cur();
|
||||
my $line = $self->line($cr);
|
||||
my $offset = $self->{offset};
|
||||
my ($dir, $pattern);
|
||||
my ($wrap, $found) = (0, 0);
|
||||
|
||||
if ($key eq ';' || $key eq ',') {
|
||||
$dir = $self->{move_dir} * ($key eq ',' ? -1 : 1);
|
||||
$pattern = $self->{patterns}{sprintf('f%+d', $dir)};
|
||||
return if not $pattern;
|
||||
} else {
|
||||
if (lc($key) eq 'b') {
|
||||
$dir = -1;
|
||||
} else {
|
||||
$dir = 1;
|
||||
++$offset if lc($key) eq 'e';
|
||||
}
|
||||
$pattern = $self->{patterns}{$key};
|
||||
$wrap = 1;
|
||||
}
|
||||
|
||||
if ($dir > 0) {
|
||||
NEXTDOWN: my $text = substr($line->t, $offset);
|
||||
if ($text =~ m/$pattern/) {
|
||||
$offset += $+[0] - 1;
|
||||
$found = 1;
|
||||
} elsif ($wrap && $line->end + 1 < $self->nrow) {
|
||||
$cr = $line->end + 1;
|
||||
$line = $self->line($cr);
|
||||
$offset = 0;
|
||||
if (lc($key) eq 'e') {
|
||||
goto NEXTDOWN;
|
||||
} else {
|
||||
$found = 1;
|
||||
}
|
||||
}
|
||||
} elsif ($dir < 0) {
|
||||
NEXTUP: my $text = substr($line->t, 0, $offset);
|
||||
if ($text =~ m/$pattern/) {
|
||||
$offset += $+[0] - length($text) - 1;
|
||||
$found = 1;
|
||||
} elsif ($wrap) {
|
||||
if ($offset > 0) {
|
||||
$offset = 0;
|
||||
$found = 1;
|
||||
} elsif ($line->beg > $self->top_row) {
|
||||
$cr = $line->beg - 1;
|
||||
$line = $self->line($cr);
|
||||
$offset = $line->l;
|
||||
goto NEXTUP;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($found) {
|
||||
$self->{dollar} = 0;
|
||||
$self->{offset} = $offset;
|
||||
$self->screen_cur($line->coord_of($offset));
|
||||
$self->want_refresh();
|
||||
}
|
||||
|
||||
()
|
||||
}
|
||||
|
||||
|
||||
sub find_next {
|
||||
my ($self, $dir) = @_;
|
||||
|
||||
return if not $self->{pattern};
|
||||
$dir = $self->{search_dir} if not $dir;
|
||||
|
||||
my ($cr, $cc) = $self->screen_cur();
|
||||
my $line = $self->line($cr);
|
||||
my $offset = $line->offset_of($cr, $cc);
|
||||
my $text;
|
||||
my $found = 0;
|
||||
|
||||
++$offset if $dir > 0;
|
||||
|
||||
while (not $found) {
|
||||
if ($dir > 0) {
|
||||
$text = substr($line->t, $offset);
|
||||
if ($text =~ m/$self->{pattern}/) {
|
||||
$found = 1;
|
||||
$offset += $-[0];
|
||||
} else {
|
||||
last if $line->end >= $self->nrow;
|
||||
$line = $self->line($line->end + 1);
|
||||
$offset = 0;
|
||||
}
|
||||
} else {
|
||||
$text = substr($line->t, 0, $offset);
|
||||
if ($text =~ m/$self->{pattern}/) {
|
||||
$found = 1;
|
||||
$offset = $-[0] while $text =~ m/$self->{pattern}/g;
|
||||
} else {
|
||||
last if $line->beg <= $self->top_row;
|
||||
$line = $self->line($line->beg - 1);
|
||||
$offset = $line->l;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($found) {
|
||||
$self->{dollar} = 0;
|
||||
$self->{offset} = $offset;
|
||||
$self->screen_cur($line->coord_of($offset));
|
||||
status_area($self);
|
||||
$self->want_refresh();
|
||||
}
|
||||
|
||||
return $found;
|
||||
}
|
||||
|
||||
|
||||
sub tt_write {
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
sub refresh {
|
||||
my ($self) = @_;
|
||||
my ($cr, $cc) = $self->screen_cur();
|
||||
|
||||
# scroll the current cursor position into visible area
|
||||
if ($cr < $self->view_start()) {
|
||||
$self->view_start($cr);
|
||||
} elsif ($cr >= $self->view_start() + $self->nrow) {
|
||||
$self->view_start($cr - $self->nrow + 1);
|
||||
}
|
||||
|
||||
if ($self->{select}) {
|
||||
my ($hl, $reverse_cursor);
|
||||
my ($br, $bc, $er, $ec) = calc_span($self);
|
||||
|
||||
if ($self->x_resource('highlightColor')) {
|
||||
$hl = urxvt::RS_Sel;
|
||||
$reverse_cursor = 0;
|
||||
} else {
|
||||
$hl = urxvt::RS_RVid;
|
||||
$reverse_cursor = $self->{select} ne 'l';
|
||||
}
|
||||
if ($self->{select} eq 'b') {
|
||||
my $co = $self->line($cr)->offset_of($cr, $cc);
|
||||
my $dollar = $self->{dollar} && $co >= $self->{dollar} - 1;
|
||||
|
||||
my $r = $br;
|
||||
while ($r <= $er) {
|
||||
my $line = $self->line($r);
|
||||
if ($bc < $line->l) {
|
||||
$ec = $line->l if $dollar;
|
||||
my ($br, $bc) = $line->coord_of($bc);
|
||||
my ($er, $ec) = $line->coord_of($ec <= $line->l ? $ec : $line->l);
|
||||
$self->scr_xor_span($br, $bc, $er, $ec, $hl);
|
||||
} elsif ($r == $cr) {
|
||||
$reverse_cursor = 0;
|
||||
}
|
||||
$r = $line->end + 1;
|
||||
}
|
||||
} else {
|
||||
$self->scr_xor_span($br, $bc, $er, $ec, $hl);
|
||||
}
|
||||
|
||||
if ($reverse_cursor) {
|
||||
# make the cursor visible again
|
||||
$self->scr_xor_span($cr, $cc, $cr, $cc + 1, $hl);
|
||||
}
|
||||
}
|
||||
|
||||
()
|
||||
}
|
||||
|
||||
|
||||
sub activate {
|
||||
my ($self, $search) = @_;
|
||||
|
||||
$self->{active} = 1;
|
||||
|
||||
$self->{select} = '';
|
||||
$self->{dollar} = 0;
|
||||
$self->{move_to} = 0;
|
||||
|
||||
if ($search) {
|
||||
$self->{search} = '?';
|
||||
$self->{search_dir} = -1;
|
||||
$self->{search_mode} = 1;
|
||||
} else {
|
||||
$self->{search} = '';
|
||||
$self->{search_mode} = 0;
|
||||
}
|
||||
|
||||
($self->{oldcr}, $self->{oldcc}) = $self->screen_cur();
|
||||
($self->{srhcr}, $self->{srhcc}) = $self->screen_cur();
|
||||
$self->{old_view_start} = $self->view_start();
|
||||
$self->{old_pty_ev_events} = $self->pty_ev_events(urxvt::EV_NONE);
|
||||
|
||||
my $line = $self->line($self->{oldcr});
|
||||
$self->{offset} = $line->offset_of($self->{oldcr}, $self->{oldcc});
|
||||
|
||||
$self->selection_beg(1, 0);
|
||||
$self->selection_end(1, 0);
|
||||
|
||||
$self->enable(
|
||||
key_press => \&key_press,
|
||||
refresh_begin => \&refresh,
|
||||
refresh_end => \&refresh,
|
||||
tt_write => \&tt_write,
|
||||
);
|
||||
|
||||
if ($self->{offset} >= $line->l) {
|
||||
$self->{offset} = $line->l > 0 ? $line->l - 1 : 0;
|
||||
$self->screen_cur($line->coord_of($self->{offset}));
|
||||
$self->want_refresh();
|
||||
}
|
||||
|
||||
$self->{overlay_len} = 0;
|
||||
status_area($self);
|
||||
|
||||
()
|
||||
}
|
||||
|
||||
|
||||
sub deactivate {
|
||||
my ($self) = @_;
|
||||
|
||||
$self->selection_beg(1, 0);
|
||||
$self->selection_end(1, 0);
|
||||
|
||||
delete $self->{overlay} if $self->{overlay};
|
||||
|
||||
$self->disable("key_press", "refresh_begin", "refresh_end", "tt_write");
|
||||
$self->screen_cur($self->{oldcr}, $self->{oldcc});
|
||||
$self->view_start($self->{old_view_start});
|
||||
$self->pty_ev_events($self->{old_pty_ev_events});
|
||||
|
||||
$self->want_refresh();
|
||||
|
||||
$self->{active} = 0;
|
||||
|
||||
()
|
||||
}
|
||||
|
||||
|
||||
sub status_area {
|
||||
my ($self, $extra) = @_;
|
||||
my ($stat, $stat_len);
|
||||
|
||||
if ($self->{search}) {
|
||||
$stat_len = $self->ncol;
|
||||
$stat = $self->{search} . ' ' x ($stat_len - length($self->{search}));
|
||||
} else {
|
||||
if ($self->{select}) {
|
||||
$stat = "-V" . ($self->{select} ne 'n' ? uc($self->{select}) : "") . "- ";
|
||||
}
|
||||
|
||||
if ($self->top_row == 0) {
|
||||
$stat .= "All";
|
||||
} elsif ($self->view_start() == $self->top_row) {
|
||||
$stat .= "Top";
|
||||
} elsif ($self->view_start() == 0) {
|
||||
$stat .= "Bot";
|
||||
} else {
|
||||
$stat .= sprintf("%2d%%",
|
||||
($self->top_row - $self->view_start) * 100 / $self->top_row);
|
||||
}
|
||||
|
||||
$stat = "$extra $stat" if $extra;
|
||||
$stat_len = length($stat);
|
||||
}
|
||||
|
||||
if (!$self->{overlay} || $self->{overlay_len} != $stat_len) {
|
||||
delete $self->{overlay} if $self->{overlay};
|
||||
$self->{overlay} = $self->overlay(-1, -1, $stat_len, 1,
|
||||
urxvt::OVERLAY_RSTYLE, 0);
|
||||
$self->{overlay_len} = $stat_len;
|
||||
}
|
||||
|
||||
$self->{overlay}->set(0, 0, $self->special_encode($stat));
|
||||
$self->{overlay}->show();
|
||||
|
||||
()
|
||||
}
|
||||
|
||||
|
||||
sub toggle_select {
|
||||
my ($self, $mode) = @_;
|
||||
|
||||
if ($self->{select} eq $mode) {
|
||||
$self->{select} = '';
|
||||
} else {
|
||||
if (not $self->{select}) {
|
||||
($self->{ar}, $self->{ac}) = $self->screen_cur();
|
||||
}
|
||||
$self->{select} = $mode;
|
||||
}
|
||||
|
||||
status_area($self);
|
||||
$self->want_refresh();
|
||||
|
||||
()
|
||||
}
|
||||
|
||||
|
||||
sub calc_span {
|
||||
my ($self) = @_;
|
||||
my ($cr, $cc) = $self->screen_cur();
|
||||
my ($br, $bc, $er, $ec);
|
||||
|
||||
if ($self->{select} eq 'b') {
|
||||
$br = $self->line($cr)->beg;
|
||||
$bc = $self->line($cr)->offset_of($cr, $cc);
|
||||
$er = $self->line($self->{ar})->beg;
|
||||
$ec = $self->line($self->{ar})->offset_of($self->{ar}, $self->{ac});
|
||||
($br, $er) = ($er, $br) if $br > $er;
|
||||
($bc, $ec) = ($ec, $bc) if $bc > $ec;
|
||||
} else {
|
||||
if ($cr < $self->{ar}) {
|
||||
($br, $bc, $er, $ec) = ($cr, $cc, $self->{ar}, $self->{ac});
|
||||
} elsif ($cr > $self->{ar}) {
|
||||
($br, $bc, $er, $ec) = ($self->{ar}, $self->{ac}, $cr, $cc);
|
||||
} else {
|
||||
($br, $er) = ($cr, $cr);
|
||||
($bc, $ec) = $cc < $self->{ac} ? ($cc, $self->{ac}) : ($self->{ac}, $cc);
|
||||
}
|
||||
}
|
||||
|
||||
if ($self->{select} eq 'l') {
|
||||
($br, $er) = ($self->line($br)->beg, $self->line($er)->end);
|
||||
($bc, $ec) = (0, $self->ncol);
|
||||
} else {
|
||||
++$ec;
|
||||
}
|
||||
|
||||
return ($br, $bc, $er, $ec);
|
||||
}
|
||||
Reference in New Issue
Block a user