From 368dd54d39f4d5a753f544ebc33142736839cf78 Mon Sep 17 00:00:00 2001 From: Mari Date: Fri, 23 Jul 2021 23:38:36 -0400 Subject: [PATCH] Reorganizations, customizations, additions --- .gitmodules | 6 + TODO.md | 24 +- alacritty/alacritty.yml | 852 ++++++++++++++++++ alacritty/themes/tokyo-night.yaml | 29 + bash/bash_aliases.sh | 4 + bash/bash_tmux.sh | 2 +- gammastep/config.ini | 10 + i3/brightness-display.sh | 3 - i3/config | 85 +- i3/{ => helpers/barista}/barista-bar.go | 0 i3/{ => helpers/barista}/build-barista-bar.sh | 0 i3/{ => helpers/barista}/go.mod | 0 i3/{ => helpers/barista}/go.sum | 0 i3/helpers/brightness.sh | 22 + i3/helpers/picom.conf | 419 +++++++++ i3/helpers/recently_used | 1 + i3/helpers/screenshot.sh | 51 ++ i3/helpers/volume.sh | 40 + .../.config/alacritty/alacritty.yml | 1 + per-host/costadelsol/.config/alacritty/themes | 1 + .../.config/alacritty/alacritty.yml | 1 + per-host/crystarium/.config/alacritty/themes | 1 + .../.config/alacritty/alacritty.yml | 1 + per-host/goldsaucer/.config/alacritty/themes | 1 + .../gubal/.config/alacritty/alacritty.yml | 1 + per-host/gubal/.config/alacritty/themes | 1 + .../mordhona/.config/alacritty/alacritty.yml | 1 + per-host/mordhona/.config/alacritty/themes | 1 + .../template/.config/alacritty/alacritty.yml | 1 + per-host/template/.config/alacritty/themes | 1 + rofi/config.rasi | 145 +++ tmux/tmux-open | 1 + tmux/tmux.conf | 10 +- zsh/customizations/zsh_aliases.zsh | 4 + zsh/customizations/zsh_tmux.zsh | 2 +- 35 files changed, 1690 insertions(+), 32 deletions(-) create mode 100644 alacritty/alacritty.yml create mode 100644 alacritty/themes/tokyo-night.yaml create mode 100644 gammastep/config.ini delete mode 100644 i3/brightness-display.sh rename i3/{ => helpers/barista}/barista-bar.go (100%) rename i3/{ => helpers/barista}/build-barista-bar.sh (100%) rename i3/{ => helpers/barista}/go.mod (100%) rename i3/{ => helpers/barista}/go.sum (100%) create mode 100755 i3/helpers/brightness.sh create mode 100644 i3/helpers/picom.conf create mode 160000 i3/helpers/recently_used create mode 100755 i3/helpers/screenshot.sh create mode 100755 i3/helpers/volume.sh create mode 120000 per-host/costadelsol/.config/alacritty/alacritty.yml create mode 120000 per-host/costadelsol/.config/alacritty/themes create mode 120000 per-host/crystarium/.config/alacritty/alacritty.yml create mode 120000 per-host/crystarium/.config/alacritty/themes create mode 120000 per-host/goldsaucer/.config/alacritty/alacritty.yml create mode 120000 per-host/goldsaucer/.config/alacritty/themes create mode 120000 per-host/gubal/.config/alacritty/alacritty.yml create mode 120000 per-host/gubal/.config/alacritty/themes create mode 120000 per-host/mordhona/.config/alacritty/alacritty.yml create mode 120000 per-host/mordhona/.config/alacritty/themes create mode 120000 per-host/template/.config/alacritty/alacritty.yml create mode 120000 per-host/template/.config/alacritty/themes create mode 100644 rofi/config.rasi create mode 160000 tmux/tmux-open diff --git a/.gitmodules b/.gitmodules index b1846ad..c6736bf 100644 --- a/.gitmodules +++ b/.gitmodules @@ -49,3 +49,9 @@ [submodule "tmux/oh-my-tmux"] path = tmux/oh-my-tmux url = https://github.com/gpakosz/.tmux.git +[submodule "tmux/tmux-open"] + path = tmux/tmux-open + url = https://github.com/tmux-plugins/tmux-open +[submodule "i3/helpers/recently_used"] + path = i3/helpers/recently_used + url = https://github.com/xenomachina/recently_used diff --git a/TODO.md b/TODO.md index 943395f..0a48b81 100644 --- a/TODO.md +++ b/TODO.md @@ -1,16 +1,24 @@ # Things to clean up -* Premade launchers for Firefox (one for each profile), IDEs, Discord, Spotify, which start the profiles on the correct workspace. -* Brightness and volume indicators when pressing the respective shortcuts - yad? +* Keybind launchers for IDEs, some file explorer, which start the apps on the correct workspace and switch to that workspace. * Configure Barista bar * Include mail notifier (count of unread/read messages in INBOX) * Include calendar notifier (next event name+time, events today/tomorrow) * Include yubikey notifier (U2F waiting to trigger) -* Configure Rofi more intimately +* Configure Rofi more intimately as a multi-launcher +* Use Rofi for the confirmation dialogue for exiting +* Use dunstify for a notification after reloading the i3 config * Include the mozc and dunst configs and rofi configs in here -* Configure alacritty and make it the new i3 terminal -* Set up the xscreensaver config to be shared between machines -* Group the fonts together to be sent to gubal and make Lilex the primary alacritty font, while Gohu is the primary i3 font. +* Install+configure (or is it configure+install?) xst and make it the new i3 terminal +* Store the Ubuntu NerdFonts on Gubal. * Wrap the lock process in a wrapper which pauses dunst and then unpauses it -* Add a fortune to the start of each new terminal session -* Enable some form of gamma shifting (if it's even possible...) +* Enable automatic gamma shifting with gammastep using the randr method +* Replace i3 shell scripts with Go binaries - or maybe just one Go binary with many options, busybox-style? +* Set up picom as compositor for i3, and embed its config here +* Set up individual desktop entries for the two firefox profiles with their -P and --class settings. +* Theme Rofi, dunst, i3, and xst - maybe use user scripts below? +* Add battery warning for low battery, and persistent battery warning for critical battery +* Add shutdown and reboot options to the main rofi menu - maybe use user scripts below? +* Upgrade rofi to the latest - v 1.6.1 - from source +* Add user scripts to rofi to make it prettier and more useful: https://github.com/davatorium/rofi/wiki/User-scripts or https://github.com/topics/rofi +* Set up a desktop background diff --git a/alacritty/alacritty.yml b/alacritty/alacritty.yml new file mode 100644 index 0000000..acb55ef --- /dev/null +++ b/alacritty/alacritty.yml @@ -0,0 +1,852 @@ +# 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: + - ~/.config/alacritty/themes/tokyo-night.yml + +# Any items in the `env` entry below will be added as +# environment variables. Some entries may override variables +# set by alacritty itself. +#env: + # TERM variable + # + # This value is used to set the `$TERM` environment variable for + # each instance of Alacritty. If it is not present, alacritty will + # check the local terminfo database and use `alacritty` if it is + # available, otherwise `xterm-256color` is used. + #TERM: alacritty + +window: + # Window dimensions (changes require restart) + # + # Number of lines/columns (not pixels) in the terminal. The number of columns + # must be at least `2`, while using a value of `0` for columns and lines will + # fall back to the window manager's recommended size. + #dimensions: + # columns: 0 + # lines: 0 + + # Window position (changes require restart) + # + # Specified in number of pixels. + # If the position is not set, the window manager will handle the placement. + #position: + # x: 0 + # y: 0 + + # Window padding (changes require restart) + # + # Blank space added around the window in pixels. This padding is scaled + # by DPI and the specified value is always added at both opposing sides. + #padding: + # x: 0 + # y: 0 + + # Spread additional padding evenly around the terminal content. + #dynamic_padding: false + + # Window decorations + # + # Values for `decorations`: + # - full: Borders and title bar + # - none: Neither borders nor title bar + # + # Values for `decorations` (macOS only): + # - transparent: Title bar, transparent background and title bar buttons + # - buttonless: Title bar, transparent background and no title bar buttons + decorations: none + + # Startup Mode (changes require restart) + # + # Values for `startup_mode`: + # - Windowed + # - Maximized + # - Fullscreen + # + # Values for `startup_mode` (macOS only): + # - SimpleFullscreen + #startup_mode: Windowed + + # Window title + #title: Alacritty + + # Allow terminal applications to change Alacritty's window title. + #dynamic_title: true + + # Window class (Linux/BSD only): + #class: + # Application instance name + #instance: Alacritty + # General application class + #general: Alacritty + + # GTK theme variant (Linux/BSD only) + # + # Override the variant of the GTK theme. Commonly supported values are `dark` + # and `light`. Set this to `None` to use the default theme variant. + #gtk_theme_variant: None + +scrolling: + # Maximum number of lines in the scrollback buffer. + # Specifying '0' will disable scrolling. + history: 0 # tmux can handle scrollback itself; no need to have alacritty do it + + # Scrolling distance multiplier. + #multiplier: 3 + +# Font configuration +font: + # Normal (roman) font face + normal: + # Font family + # + # Default: + # - (macOS) Menlo + # - (Linux/BSD) monospace + # - (Windows) Consolas + family: Lilex Nerd Font Mono + + # 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: Lilex Nerd Font Mono + + # 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: UbuntuMono Nerd Font Mono + + # 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: UbuntuMono Nerd Font Mono + + # The `style` can be specified to pick a specific face. + style: Bold Italic + + # Point size + size: 6.0 + + # Offset is the extra space around each character. `offset.y` can be thought + # of as modifying the line spacing, and `offset.x` as modifying the letter + # spacing. + #offset: + # x: 0 + # y: 0 + + # Glyph offset determines the locations of the glyphs within their cells with + # the default being at the bottom. Increasing `x` moves the glyph to the + # right, increasing `y` moves the glyph upward. + #glyph_offset: + # x: 0 + # y: 0 + + # Thin stroke font rendering (macOS only) + # + # Thin strokes are suitable for retina displays, but for non-retina screens + # it is recommended to set `use_thin_strokes` to `false`. + #use_thin_strokes: true + +# 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' + + #bar: + # background: '#c5c8c6' + # foreground: '#1d1f21' + + # Keyboard regex hints + #hints: + # Fist character in the hint label + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #start: + # foreground: '#1d1f21' + # background: '#e9ff5e' + + # All characters after the first one in the hint label + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #end: + # foreground: '#e9ff5e' + # background: '#1d1f21' + + # Line indicator + # + # Color used for the indicator displaying the position in history during + # search and vi mode. + # + # By default, these will use the opposing primary color. + #line_indicator: + # foreground: None + # background: None + + # Selection colors + # + # Colors which should be used to draw the selection area. + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #selection: + # text: CellBackground + # background: CellForeground + + # Normal colors + #normal: + # black: '#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: [] + +# 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: EaseOutCubic + + # Duration of the visual bell flash in milliseconds. A `duration` of `0` will + # disable the visual bell animation. + duration: 400 + + # Visual bell animation color. + color: '#FF8811' + + # 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 + +# Background opacity +# +# Window opacity as a floating point number from `0.0` to `1.0`. +# The value `0.0` is completely transparent and `1.0` is opaque. +background_opacity: 1.0 + +#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: On + + # Vi mode cursor style + # + # If the vi mode cursor style is `None` or not specified, it will fall back to + # the style of the active value of the normal cursor. + # + # See `cursor.style` for available options. + vi_mode_style: None + + # Cursor blinking interval in milliseconds. + blink_interval: 750 + + # If this is `true`, the cursor will be rendered as a hollow box when the + # window is not focused. + unfocused_hollow: true + + # Thickness of the cursor relative to the cell width as floating point number + # from `0.0` to `1.0`. + #thickness: 0.15 + +# Live config reload (changes require restart) +live_config_reload: true + +# Shell +# +# You can set `shell.program` to the path of your favorite shell, e.g. +# `/bin/fish`. Entries in `shell.args` are passed unmodified as arguments to the +# shell. +# +# Default: +# - (macOS) /bin/bash --login +# - (Linux/BSD) user login shell +# - (Windows) powershell +#shell: +# program: /bin/bash +# args: +# - --login + +# Startup directory +# +# Directory the shell is started in. If this is unset, or `None`, the working +# directory of the parent process will be used. +#working_directory: None + +# Send ESC (\x1b) before characters when alt is pressed. +#alt_send_esc: true + +mouse: + # Click settings + # + # The `double_click` and `triple_click` settings control the time + # alacritty should wait for accepting multiple clicks as one double + # or triple click. + double_click: { threshold: 300 } + triple_click: { threshold: 300 } + + # If this is `true`, the cursor is temporarily hidden when typing. + hide_when_typing: false + +# Regex hints +# +# Terminal hints can be used to find text in the visible part of the terminal +# and pipe it to other applications. +hints: + # Keys used for the hint labels. + alphabet: "jfkdls;ahgurieowpq" + + # List with all available hints + # + # Each hint must have a `regex` and either an `action` or a `command` field. + # The fields `mouse`, `binding` and `post_processing` are optional. + # + # The fields `command`, `binding.key`, `binding.mods` and `mouse.mods` accept + # the same values as they do in the `key_bindings` section. + # + # The `mouse.enabled` field controls if the hint should be underlined while + # the mouse with all `mouse.mods` keys held or the vi mode cursor is above it. + # + # If the `post_processing` field is set to `true`, heuristics will be used to + # shorten the match if there are characters likely not to be part of the hint + # (e.g. a trailing `.`). This is most useful for URIs. + # + # Values for `action`: + # - Copy + # Copy the hint's text to the clipboard. + # - Paste + # Paste the hint's text to the terminal or search. + # - Select + # Select the hint's text. + # - MoveViModeCursor + # Move the vi mode cursor to the beginning of the hint. + enabled: + - regex: "(mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)\ + [^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^⟨⟩`]+" + command: xdg-open + post_processing: true + mouse: + enabled: true + mods: None + binding: + key: U + mods: Control|Shift + +# Mouse bindings +# +# Mouse bindings are specified as a list of objects, much like the key +# bindings further below. +# +# To trigger mouse bindings when an application running within Alacritty +# captures the mouse, the `Shift` modifier is automatically added as a +# requirement. +# +# Each mouse binding will specify a: +# +# - `mouse`: +# +# - Middle +# - Left +# - Right +# - Numeric identifier such as `5` +# +# - `action` (see key bindings) +# +# And optionally: +# +# - `mods` (see key bindings) +#mouse_bindings: +# - { mouse: Middle, action: PasteSelection } + +# Key bindings +# +# Key bindings are specified as a list of objects. For example, this is the +# default paste binding: +# +# `- { key: V, mods: Control|Shift, action: Paste }` +# +# Each key binding will specify a: +# +# - `key`: Identifier of the key pressed +# +# - A-Z +# - F1-F24 +# - Key0-Key9 +# +# A full list with available key codes can be found here: +# https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants +# +# Instead of using the name of the keys, the `key` field also supports using +# the scancode of the desired key. Scancodes have to be specified as a +# decimal number. This command will allow you to display the hex scancodes +# for certain keys: +# +# `showkey --scancodes`. +# +# Then exactly one of: +# +# - `chars`: Send a byte sequence to the running application +# +# The `chars` field writes the specified string to the terminal. This makes +# it possible to pass escape sequences. To find escape codes for bindings +# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside +# of tmux. Note that applications use terminfo to map escape sequences back +# to keys. It is therefore required to update the terminfo when changing an +# escape sequence. +# +# - `action`: Execute a predefined action +# +# - 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. +# - ClearLogNotice +# Clear Alacritty's UI warning and error notice. +# - ClearSelection +# Remove the active selection. +# - ReceiveChar +# - None +# +# - Vi mode exclusive actions: +# +# - Open +# Perform the action of the first matching hint under the vi mode cursor +# with `mouse.enabled` set to `true`. +# - ToggleNormalSelection +# - ToggleLineSelection +# - ToggleBlockSelection +# - ToggleSemanticSelection +# Toggle semantic selection based on `selection.semantic_escape_chars`. +# +# - Vi mode exclusive cursor motion actions: +# +# - Up +# One line up. +# - Down +# One line down. +# - Left +# One character left. +# - Right +# One character right. +# - First +# First column, or beginning of the line when already at the first column. +# - Last +# Last column, or beginning of the line when already at the last column. +# - FirstOccupied +# First non-empty cell in this terminal row, or first non-empty cell of +# the line when already at the first cell of the row. +# - High +# Top of the screen. +# - Middle +# Center of the screen. +# - Low +# Bottom of the screen. +# - SemanticLeft +# Start of the previous semantically separated word. +# - SemanticRight +# Start of the next semantically separated word. +# - SemanticLeftEnd +# End of the previous semantically separated word. +# - SemanticRightEnd +# End of the next semantically separated word. +# - WordLeft +# Start of the previous whitespace separated word. +# - WordRight +# Start of the next whitespace separated word. +# - WordLeftEnd +# End of the previous whitespace separated word. +# - WordRightEnd +# End of the next whitespace separated word. +# - Bracket +# Character matching the bracket at the cursor's location. +# - SearchNext +# Beginning of the next match. +# - SearchPrevious +# Beginning of the previous match. +# - SearchStart +# Start of the match to the left of the vi mode cursor. +# - SearchEnd +# End of the match to the right of the vi mode cursor. +# +# - Search mode exclusive actions: +# - SearchFocusNext +# Move the focus to the next search match. +# - SearchFocusPrevious +# Move the focus to the previous search match. +# - SearchConfirm +# - SearchCancel +# - SearchClear +# Reset the search regex. +# - SearchDeleteWord +# Delete the last word in the search regex. +# - SearchHistoryPrevious +# Go to the previous regex in the search history. +# - SearchHistoryNext +# Go to the next regex in the search history. +# +# - macOS exclusive actions: +# - ToggleSimpleFullscreen +# Enter fullscreen without occupying another space. +# +# - Linux/BSD exclusive actions: +# +# - CopySelection +# Copy from the selection buffer. +# - PasteSelection +# Paste from the selection buffer. +# +# - `command`: Fork and execute a specified command plus arguments +# +# The `command` field must be a map containing a `program` string and an +# `args` array of command line parameter strings. For example: +# `{ program: "alacritty", args: ["-e", "vttest"] }` +# +# And optionally: +# +# - `mods`: Key modifiers to filter binding actions +# +# - Command +# - Control +# - Option +# - Super +# - Shift +# - Alt +# +# Multiple `mods` can be combined using `|` like this: +# `mods: Control|Shift`. +# Whitespace and capitalization are relevant and must match the example. +# +# - `mode`: Indicate a binding for only specific terminal reported modes +# +# This is mainly used to send applications the correct escape sequences +# when in different modes. +# +# - AppCursor +# - AppKeypad +# - Search +# - Alt +# - Vi +# +# A `~` operator can be used before a mode to apply the binding whenever +# the mode is *not* active, e.g. `~Alt`. +# +# Bindings are always filled by default, but will be replaced when a new +# binding with the same triggers is defined. To unset a default binding, it can +# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for +# a no-op if you do not wish to receive input characters for that binding. +# +# If the same trigger is assigned to multiple actions, all of them are executed +# in the order they were defined in. +#key_bindings: + #- { key: Paste, action: Paste } + #- { key: Copy, action: Copy } + #- { key: L, mods: Control, action: ClearLogNotice } + #- { key: L, mods: Control, mode: ~Vi|~Search, chars: "\x0c" } + #- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp, } + #- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown } + #- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop, } + #- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom } + + # Vi Mode + #- { key: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom } + #- { key: Space, mods: Shift|Control, mode: ~Search, action: ToggleViMode } + #- { key: Escape, mode: Vi|~Search, action: ClearSelection } + #- { key: I, mode: Vi|~Search, action: ScrollToBottom } + #- { key: I, mode: Vi|~Search, action: ToggleViMode } + #- { key: C, mods: Control, mode: Vi|~Search, action: ToggleViMode } + #- { key: Y, mods: Control, mode: Vi|~Search, action: ScrollLineUp } + #- { key: E, mods: Control, mode: Vi|~Search, action: ScrollLineDown } + #- { key: G, mode: Vi|~Search, action: ScrollToTop } + #- { key: G, mods: Shift, mode: Vi|~Search, action: ScrollToBottom } + #- { key: B, mods: Control, mode: Vi|~Search, action: ScrollPageUp } + #- { key: F, mods: Control, mode: Vi|~Search, action: ScrollPageDown } + #- { key: U, mods: Control, mode: Vi|~Search, action: ScrollHalfPageUp } + #- { key: D, mods: Control, mode: Vi|~Search, action: ScrollHalfPageDown } + #- { key: Y, mode: Vi|~Search, action: Copy } + #- { key: Y, mode: Vi|~Search, action: ClearSelection } + #- { key: Copy, mode: Vi|~Search, action: ClearSelection } + #- { key: V, mode: Vi|~Search, action: ToggleNormalSelection } + #- { key: V, mods: Shift, mode: Vi|~Search, action: ToggleLineSelection } + #- { key: V, mods: Control, mode: Vi|~Search, action: ToggleBlockSelection } + #- { key: V, mods: Alt, mode: Vi|~Search, action: ToggleSemanticSelection } + #- { key: Return, mode: Vi|~Search, action: Open } + #- { key: K, mode: Vi|~Search, action: Up } + #- { key: J, mode: Vi|~Search, action: Down } + #- { key: H, mode: Vi|~Search, action: Left } + #- { key: L, mode: Vi|~Search, action: Right } + #- { key: Up, mode: Vi|~Search, action: Up } + #- { key: Down, mode: Vi|~Search, action: Down } + #- { key: Left, mode: Vi|~Search, action: Left } + #- { key: Right, mode: Vi|~Search, action: Right } + #- { key: Key0, mode: Vi|~Search, action: First } + #- { key: Key4, mods: Shift, mode: Vi|~Search, action: Last } + #- { key: Key6, mods: Shift, mode: Vi|~Search, action: FirstOccupied } + #- { key: H, mods: Shift, mode: Vi|~Search, action: High } + #- { key: M, mods: Shift, mode: Vi|~Search, action: Middle } + #- { key: L, mods: Shift, mode: Vi|~Search, action: Low } + #- { key: B, mode: Vi|~Search, action: SemanticLeft } + #- { key: W, mode: Vi|~Search, action: SemanticRight } + #- { key: E, mode: Vi|~Search, action: SemanticRightEnd } + #- { key: B, mods: Shift, mode: Vi|~Search, action: WordLeft } + #- { key: W, mods: Shift, mode: Vi|~Search, action: WordRight } + #- { key: E, mods: Shift, mode: Vi|~Search, action: WordRightEnd } + #- { key: Key5, mods: Shift, mode: Vi|~Search, action: Bracket } + #- { key: Slash, mode: Vi|~Search, action: SearchForward } + #- { key: Slash, mods: Shift, mode: Vi|~Search, action: SearchBackward } + #- { key: N, mode: Vi|~Search, action: SearchNext } + #- { key: N, mods: Shift, mode: Vi|~Search, action: SearchPrevious } + + # Search Mode + #- { key: Return, mode: Search|Vi, action: SearchConfirm } + #- { key: Escape, mode: Search, action: SearchCancel } + #- { key: C, mods: Control, mode: Search, action: SearchCancel } + #- { key: U, mods: Control, mode: Search, action: SearchClear } + #- { key: W, mods: Control, mode: Search, action: SearchDeleteWord } + #- { key: P, mods: Control, mode: Search, action: SearchHistoryPrevious } + #- { key: N, mods: Control, mode: Search, action: SearchHistoryNext } + #- { key: Up, mode: Search, action: SearchHistoryPrevious } + #- { key: Down, mode: Search, action: SearchHistoryNext } + #- { key: Return, mode: Search|~Vi, action: SearchFocusNext } + #- { key: Return, mods: Shift, mode: Search|~Vi, action: SearchFocusPrevious } + + # (Windows, Linux, and BSD only) + #- { key: V, mods: Control|Shift, mode: ~Vi, action: Paste } + #- { key: C, mods: Control|Shift, action: Copy } + #- { key: F, mods: Control|Shift, mode: ~Search, action: SearchForward } + #- { key: B, mods: Control|Shift, mode: ~Search, action: SearchBackward } + #- { key: C, mods: Control|Shift, mode: Vi|~Search, action: ClearSelection } + #- { key: Insert, mods: Shift, action: PasteSelection } + #- { key: Key0, mods: Control, action: ResetFontSize } + #- { key: Equals, mods: Control, action: IncreaseFontSize } + #- { key: Plus, mods: Control, action: IncreaseFontSize } + #- { key: NumpadAdd, mods: Control, action: IncreaseFontSize } + #- { key: Minus, mods: Control, action: DecreaseFontSize } + #- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize } + + # (Windows only) + #- { key: Return, mods: Alt, action: ToggleFullscreen } + + # (macOS only) + #- { key: K, mods: Command, mode: ~Vi|~Search, chars: "\x0c" } + #- { key: K, mods: Command, mode: ~Vi|~Search, action: ClearHistory } + #- { key: Key0, mods: Command, action: ResetFontSize } + #- { key: Equals, mods: Command, action: IncreaseFontSize } + #- { key: Plus, mods: Command, action: IncreaseFontSize } + #- { key: NumpadAdd, mods: Command, action: IncreaseFontSize } + #- { key: Minus, mods: Command, action: DecreaseFontSize } + #- { key: NumpadSubtract, mods: Command, action: DecreaseFontSize } + #- { key: V, mods: Command, action: Paste } + #- { key: C, mods: Command, action: Copy } + #- { key: C, mods: Command, mode: Vi|~Search, action: ClearSelection } + #- { key: H, mods: Command, action: Hide } + #- { key: H, mods: Command|Alt, action: HideOtherApplications } + #- { key: M, mods: Command, action: Minimize } + #- { key: Q, mods: Command, action: Quit } + #- { key: W, mods: Command, action: Quit } + #- { key: N, mods: Command, action: SpawnNewInstance } + #- { key: F, mods: Command|Control, action: ToggleFullscreen } + #- { key: F, mods: Command, mode: ~Search, action: SearchForward } + #- { key: B, mods: Command, mode: ~Search, action: SearchBackward } + +#debug: + # Display the time it takes to redraw each frame. + #render_timer: false + + # Keep the log file after quitting Alacritty. + #persistent_logging: false + + # Log level + # + # Values for `log_level`: + # - Off + # - Error + # - Warn + # - Info + # - Debug + # - Trace + #log_level: Warn + + # Print all received window events. + #print_events: false diff --git a/alacritty/themes/tokyo-night.yaml b/alacritty/themes/tokyo-night.yaml new file mode 100644 index 0000000..a88fd9b --- /dev/null +++ b/alacritty/themes/tokyo-night.yaml @@ -0,0 +1,29 @@ +# Colors (Tokyo Night) +# Source: https://github.com/zatchheems/tokyo-night-alacritty-theme +colors: + # Default colors + primary: + background: '0x1a1b26' + foreground: '0xa9b1d6' + + # Normal colors + normal: + black: '0x32344a' + red: '0xf7768e' + green: '0x9ece6a' + yellow: '0xe0af68' + blue: '0x7aa2f7' + magenta: '0xad8ee6' + cyan: '0x449dab' + white: '0x787c99' + + # Bright colors + bright: + black: '0x444b6a' + red: '0xff7a93' + green: '0xb9f27c' + yellow: '0xff9e64' + blue: '0x7da6ff' + magenta: '0xbb9af7' + cyan: '0x0db9d7' + white: '0xacb0d0' diff --git a/bash/bash_aliases.sh b/bash/bash_aliases.sh index 2faa265..b2e4afe 100644 --- a/bash/bash_aliases.sh +++ b/bash/bash_aliases.sh @@ -13,6 +13,10 @@ export SSH_AUTH_SOCK="$HOME/.ssh/ssh_auth_sock" # Install EDITOR export EDITOR='nvim' +# Install PAGER +export PAGER='less --mouse' +# Install BROWSER +export BROWSER='firefox -P Mari --class Firefox.Main' # Set up the vim config path export VIM_CONFIG_DIR=$__COMMON_CONFIGS/vim diff --git a/bash/bash_tmux.sh b/bash/bash_tmux.sh index 3142daa..bb0fc7d 100644 --- a/bash/bash_tmux.sh +++ b/bash/bash_tmux.sh @@ -11,7 +11,7 @@ function tmux_running() { } function tmux_init() { - tmux -2 new-session -d -s "Nexus" -n "Misc." + tmux -2 new-session -d -s "Nexus" -n "Misc." 'LC_ALL=C.UTF-8 fortune | cowsay -f eyes -W "$COLUMNS"; exec "$SHELL" -i' } function go_tmux () diff --git a/gammastep/config.ini b/gammastep/config.ini new file mode 100644 index 0000000..6385797 --- /dev/null +++ b/gammastep/config.ini @@ -0,0 +1,10 @@ +[general] +temp-day=6500 +temp-night=3600 +fade=1 +brightness-day=0.5 +brightness-night=0.5 +dawn-time=08:00-09:00 +dusk-time=19:00-20:00 +adjustment-method=randr +location-provider=manual diff --git a/i3/brightness-display.sh b/i3/brightness-display.sh deleted file mode 100644 index ed7a042..0000000 --- a/i3/brightness-display.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -yad --progress --image=display-brightness-symbolic --splash --no-buttons --on-top --no-focus --undecorated --text='Brightness' --text-align=center --sticky --percentage=$(( $(brightnessctl get) * 100 / $(brightnessctl max) )) --no-escape --borders=10 --skip-taskbar --center diff --git a/i3/config b/i3/config index b699d61..184c5b5 100644 --- a/i3/config +++ b/i3/config @@ -13,7 +13,7 @@ set $mod Mod4 # Font for window titles. Will also be used by the bar unless a different font # is used in the bar {} block below. -font pango:monospace 8 +font pango:Ubuntu Mono, UbuntuMono Nerd Font 10 # This font is widely installed, provides lots of unicode glyphs, right-to-left # text rendering and scalability on retina/hidpi displays (thanks to pango). @@ -25,9 +25,6 @@ font pango:monospace 8 # xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the # screen before suspend. Use loginctl lock-session to lock your screen. exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork -c 0081a7 -e -# Enable the X screensaver system. -exec --no-startup-id xscreensaver - # NetworkManager is the most popular way to manage wireless networks on Linux, # and nm-applet is a desktop environment-independent system tray GUI for it. @@ -39,6 +36,12 @@ exec --no-startup-id /usr/libexec/gnome-settings-daemon-localeexec # Fix a bug in gnome-settings-daemon: http://feeding.cloud.geek.nz/posts/creating-a-modern-tiling-desktop-environment-using-i3/ exec --no-startup-id dconf write /org/gnome/settings-daemon/plugins/cursor/active false +# Initialize a tmux session on startup +exec --no-startup-id zsh -ic "tmux_init" + +# Start up the gammastep color temperature adjustment daemon. +exec --no-startup-id gammastep + # Enable the relevant xkb options to allow the capslock remapping to proceed exec --no-startup-id setxkbmap -option shift:both_capslock,caps:hyper # Set up xcape to switch input modes for mozc with caps lock @@ -49,21 +52,38 @@ exec --no-startup-id xcape -e 'Control_L=Escape' exec --no-startup-id xcape -e 'Super_L=Control_L|a' # Use pactl to adjust volume in PulseAudio. -set $refresh_i3status killall -SIGUSR1 i3status -bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status -bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status -bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status +set $refresh_i4status killall -SIGUSR1 i3status +bindsym XF86AudioRaiseVolume exec --no-startup-id ~/.config/i3/helpers/volume.sh up +bindsym XF86AudioLowerVolume exec --no-startup-id ~/.config/i3/helpers/volume.sh down +bindsym Shift+XF86AudioLowerVolume exec --no-startup-id ~/.config/i3/helpers/volume.sh off +bindsym Shift+XF86AudioRaiseVolume exec --no-startup-id ~/.config/i3/helpers/volume.sh max +bindsym XF86AudioMute exec --no-startup-id ~/.config/i3/helpers/volume.sh toggle_mute +bindsym Shift+XF86AudioMute exec --no-startup-id ~/.config/i3/helpers/volume.sh full_mute bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status # Use brightnessctl to adjust screen brightness. -bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl set 10%+ -bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl set --min-value=100 10%- +bindsym XF86MonBrightnessUp exec --no-startup-id ~/.config/i3/helpers/brightness.sh up +bindsym XF86MonBrightnessDown exec --no-startup-id ~/.config/i3/helpers/brightness.sh down +bindsym Shift+XF86MonBrightnessUp exec --no-startup-id ~/.config/i3/helpers/brightness.sh max +bindsym Shift+XF86MonBrightnessDown exec --no-startup-id ~/.config/i3/helpers/brightness.sh off + +# Use the screenshot wrapper script. +bindsym Print --release exec --no-startup-id ~/.config/i3/helpers/screenshot.sh screen +bindsym Shift+Print --release exec --no-startup-id ~/.config/i3/helpers/screenshot.sh area +# This is Alt+Print, but it's actually registered as a different key (on laptops at least). +bindsym Sys_Req --release exec --no-startup-id ~/.config/i3/helpers/screenshot.sh current_window +bindsym Shift+Sys_Req --release exec --no-startup-id ~/.config/i3/helpers/screenshot.sh select_window +# Nonetheless, we bind the same Alt+Printscreen shortcut just in case. +bindsym Mod1+Print --release exec --no-startup-id ~/.config/i3/helpers/screenshot.sh current_window +bindsym Shift+Mod1+Print --release exec --no-startup-id ~/.config/i3/helpers/screenshot.sh select_window +# Use Control instead of Alt in case Alt+Printscreen is ignored by i3. +bindsym Control+Print --release exec --no-startup-id ~/.config/i3/helpers/screenshot.sh current_window +bindsym Shift+Control+Print --release exec --no-startup-id ~/.config/i3/helpers/screenshot.sh select_window + # Use Mouse+$mod to drag floating windows to their wanted position floating_modifier $mod -# start a terminal -bindsym $mod+Return exec # kill focused window bindsym $mod+Shift+q kill @@ -73,7 +93,7 @@ bindsym $mod+Shift+l exec --no-startup-id loginctl lock-session # start dmenu (a program launcher) # bindsym $mod+d exec --no-startup-id dmenu_run # A more modern dmenu replacement is rofi: -bindsym $mod+d exec "rofi -modi drun,run -show drun -show-icons" +bindsym $mod+d --release exec "rofi -modi drun,run -show drun -show-icons" # bindcode $mod+40 exec "rofi -modi drun,run -show drun" # There also is i3-dmenu-desktop which only displays applications shipping a # .desktop file. It is a wrapper around dmenu, so you need that installed. @@ -136,11 +156,11 @@ set $ws2 "2: Media" set $ws3 "3: Chat" set $ws4 "4: IDE" set $ws5 "5: Terminal" -set $ws6 "6" +set $ws6 "6: Files" set $ws7 "7" set $ws8 "8" set $ws9 "9" -set $ws10 "10" +set $ws10 "10: Lewd Zone" # switch to workspace bindsym $mod+1 workspace number $ws1 @@ -200,6 +220,41 @@ mode "resize" { bindsym $mod+r mode "resize" +# new_window none +default_border pixel 3 +default_floating_border pixel 5 +hide_edge_borders smart + +# Place normal firefox windows on workspace 1. +assign [class="^Firefox\.Main$"] workspace number $ws1 +bindsym $mod+Control+1 workspace $ws1 ; exec firefox -P "Mari" --class "Firefox.Main" + +# Place Spotify windows on workspace 2. +for_window [class="^Spotify$"] move to workspace number $ws2 +bindsym $mod+Control+2 workspace $ws2 ; exec spotify + +# Place Discord windows on workspace 3. +assign [class="^discord$"] workspace number $ws3 +bindsym $mod+Control+3 workspace $ws3 ; exec discord + +# Make the JetBrains IDEs' opening windows float +for_window [class="^jetbrains-.*$" title="win0"] floating enable +# Make the JetBrains IDEs place their windows on desktop 4 +assign [class="^jetbrains-.*$"] workspace number $ws4 + +# start a terminal +assign [class="^Lxterminal$"] workspace number $ws5 +bindsym $mod+Control+5 workspace $ws5 ; exec lxterminal -e '$SHELL -ic "go_tmux -x"' +bindsym $mod+Return workspace $ws5 ; exec lxterminal -e '$SHELL -ic "go_tmux -x"' + +# open a file manager +assign [class="^Org\.gnome\.Nautilus$"] workspace number $ws6 +bindsym $mod+Control+6 workspace $ws6 ; exec nautilus + +# Place lewd firefox windows on workspace 10. +assign [class="^Firefox\.Lewd$"] workspace number $ws10 +bindsym $mod+Control+0 workspace $ws10 ; exec firefox -P "Reya" --class "Firefox.Lewd" + # Start i3bar to display a workspace bar (plus the system information i3status # finds out, if available) bar { diff --git a/i3/barista-bar.go b/i3/helpers/barista/barista-bar.go similarity index 100% rename from i3/barista-bar.go rename to i3/helpers/barista/barista-bar.go diff --git a/i3/build-barista-bar.sh b/i3/helpers/barista/build-barista-bar.sh similarity index 100% rename from i3/build-barista-bar.sh rename to i3/helpers/barista/build-barista-bar.sh diff --git a/i3/go.mod b/i3/helpers/barista/go.mod similarity index 100% rename from i3/go.mod rename to i3/helpers/barista/go.mod diff --git a/i3/go.sum b/i3/helpers/barista/go.sum similarity index 100% rename from i3/go.sum rename to i3/helpers/barista/go.sum diff --git a/i3/helpers/brightness.sh b/i3/helpers/brightness.sh new file mode 100755 index 0000000..1ddf49c --- /dev/null +++ b/i3/helpers/brightness.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +case $1 in + up) + brightnessctl set 10%+ + ;; + down) + brightnessctl set --min-value=1 10%- + ;; + off) + brightnessctl set 0 + ;; + max) + brightnessctl set 100% + ;; +esac +ID_LOCATION=/run/user/$(id -u)/i3-helpers/brightness-notification-id +OLD_ID=$(<"$ID_LOCATION") +BRIGHTNESS=$(( $(brightnessctl get) * 100 / $(brightnessctl max) )) +NEW_ID=$(dunstify --appname=brightness.sh --timeout=3000 --hints="int:value:$BRIGHTNESS" --printid "${OLD_ID:+--replace="${OLD_ID}"}" "Brightness" "${BRIGHTNESS}%" ) +mkdir -p $(dirname "$ID_LOCATION") +echo "$NEW_ID" >"$ID_LOCATION" diff --git a/i3/helpers/picom.conf b/i3/helpers/picom.conf new file mode 100644 index 0000000..797c867 --- /dev/null +++ b/i3/helpers/picom.conf @@ -0,0 +1,419 @@ +################################# +# Shadows # +################################# + + +# Enabled client-side shadows on windows. Note desktop windows +# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow, +# unless explicitly requested using the wintypes option. +# +# shadow = false +shadow = true; + +# The blur radius for shadows, in pixels. (defaults to 12) +# shadow-radius = 12 +shadow-radius = 7; + +# The opacity of shadows. (0.0 - 1.0, defaults to 0.75) +# shadow-opacity = .75 + +# The left offset for shadows, in pixels. (defaults to -15) +# shadow-offset-x = -15 +shadow-offset-x = -7; + +# The top offset for shadows, in pixels. (defaults to -15) +# shadow-offset-y = -15 +shadow-offset-y = -7; + +# Red color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-red = 0 + +# Green color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-green = 0 + +# Blue color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-blue = 0 + +# Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue) +# shadow-color = "#000000" + +# Specify a list of conditions of windows that should have no shadow. +# +# examples: +# shadow-exclude = "n:e:Notification"; +# +# shadow-exclude = [] +shadow-exclude = [ + "name = 'Notification'", + "class_g = 'Conky'", + "class_g ?= 'Notify-osd'", + "class_g = 'Cairo-clock'", + "_GTK_FRAME_EXTENTS@:c" +]; + +# Specify a list of conditions of windows that should have no shadow painted over, such as a dock window. +# clip-shadow-above = [] + +# Specify a X geometry that describes the region in which shadow should not +# be painted in, such as a dock window region. Use +# shadow-exclude-reg = "x10+0+0" +# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on. +# +# shadow-exclude-reg = "" + +# Crop shadow of a window fully on a particular Xinerama screen to the screen. +# xinerama-shadow-crop = false + + +################################# +# Fading # +################################# + + +# Fade windows in/out when opening/closing and when opacity changes, +# unless no-fading-openclose is used. +# fading = false +fading = true; + +# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028) +# fade-in-step = 0.028 +fade-in-step = 0.03; + +# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03) +# fade-out-step = 0.03 +fade-out-step = 0.03; + +# The time between steps in fade step, in milliseconds. (> 0, defaults to 10) +# fade-delta = 10 + +# Specify a list of conditions of windows that should not be faded. +# fade-exclude = [] + +# Do not fade on window open/close. +# no-fading-openclose = false + +# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc. +# no-fading-destroyed-argb = false + + +################################# +# Transparency / Opacity # +################################# + + +# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0) +# inactive-opacity = 1 +inactive-opacity = 0.8; + +# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default) +# frame-opacity = 1.0 +frame-opacity = 0.7; + +# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows. +# inactive-opacity-override = true +inactive-opacity-override = false; + +# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0) +# active-opacity = 1.0 + +# Dim inactive windows. (0.0 - 1.0, defaults to 0.0) +# inactive-dim = 0.0 + +# Specify a list of conditions of windows that should never be considered focused. +# focus-exclude = [] +focus-exclude = [ "class_g = 'Cairo-clock'" ]; + +# Use fixed inactive dim value, instead of adjusting according to window opacity. +# inactive-dim-fixed = 1.0 + +# Specify a list of opacity rules, in the format `PERCENT:PATTERN`, +# like `50:name *= "Firefox"`. picom-trans is recommended over this. +# Note we don't make any guarantee about possible conflicts with other +# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows. +# example: +# opacity-rule = [ "80:class_g = 'URxvt'" ]; +# +# opacity-rule = [] + + +################################# +# Corners # +################################# + +# Sets the radius of rounded window corners. When > 0, the compositor will +# round the corners of windows. Does not interact well with +# `transparent-clipping`. +corner-radius = 0 + +# Exclude conditions for rounded corners. +rounded-corners-exclude = [ + "window_type = 'dock'", + "window_type = 'desktop'" +]; + + +################################# +# Background-Blurring # +################################# + + +# Parameters for background blurring, see the *BLUR* section for more information. +# blur-method = +# blur-size = 12 +# +# blur-deviation = false +# +# blur-strength = 5 + +# Blur background of semi-transparent / ARGB windows. +# Bad in performance, with driver-dependent behavior. +# The name of the switch may change without prior notifications. +# +# blur-background = false + +# Blur background of windows when the window frame is not opaque. +# Implies: +# blur-background +# Bad in performance, with driver-dependent behavior. The name may change. +# +# blur-background-frame = false + + +# Use fixed blur strength rather than adjusting according to window opacity. +# blur-background-fixed = false + + +# Specify the blur convolution kernel, with the following format: +# example: +# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"; +# +# blur-kern = "" +blur-kern = "3x3box"; + + +# Exclude conditions for background blur. +# blur-background-exclude = [] +blur-background-exclude = [ + "window_type = 'dock'", + "window_type = 'desktop'", + "_GTK_FRAME_EXTENTS@:c" +]; + +################################# +# General Settings # +################################# + +# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers. +# daemon = false + +# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`. +# `xrender` is the default one. +# +# backend = "glx" +backend = "xrender"; + +# Enable/disable VSync. +# vsync = false +vsync = true; + +# Enable remote control via D-Bus. See the *D-BUS API* section below for more details. +# dbus = false + +# Try to detect WM windows (a non-override-redirect window with no +# child that has 'WM_STATE') and mark them as active. +# +# mark-wmwin-focused = false +mark-wmwin-focused = true; + +# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused. +# mark-ovredir-focused = false +mark-ovredir-focused = true; + +# Try to detect windows with rounded corners and don't consider them +# shaped windows. The accuracy is not very high, unfortunately. +# +# detect-rounded-corners = false +detect-rounded-corners = true; + +# Detect '_NET_WM_OPACITY' on client windows, useful for window managers +# not passing '_NET_WM_OPACITY' of client windows to frame windows. +# +# detect-client-opacity = false +detect-client-opacity = true; + +# Specify refresh rate of the screen. If not specified or 0, picom will +# try detecting this with X RandR extension. +# +# refresh-rate = 60 +refresh-rate = 0; + +# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window, +# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy, +# provided that the WM supports it. +# +# use-ewmh-active-win = false + +# Unredirect all windows if a full-screen opaque window is detected, +# to maximize performance for full-screen windows. Known to cause flickering +# when redirecting/unredirecting windows. +# +# unredir-if-possible = false + +# Delay before unredirecting the window, in milliseconds. Defaults to 0. +# unredir-if-possible-delay = 0 + +# Conditions of windows that shouldn't be considered full-screen for unredirecting screen. +# unredir-if-possible-exclude = [] + +# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows +# in the same group focused at the same time. +# +# detect-transient = false +detect-transient = true; + +# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same +# group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if +# detect-transient is enabled, too. +# +# detect-client-leader = false +detect-client-leader = true; + +# Resize damaged region by a specific number of pixels. +# A positive value enlarges it while a negative one shrinks it. +# If the value is positive, those additional pixels will not be actually painted +# to screen, only used in blur calculation, and such. (Due to technical limitations, +# with use-damage, those pixels will still be incorrectly painted to screen.) +# Primarily used to fix the line corruption issues of blur, +# in which case you should use the blur radius value here +# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`, +# with a 5x5 one you use `--resize-damage 2`, and so on). +# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly. +# +# resize-damage = 1 + +# Specify a list of conditions of windows that should be painted with inverted color. +# Resource-hogging, and is not well tested. +# +# invert-color-include = [] + +# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer. +# Might cause incorrect opacity when rendering transparent content (but never +# practically happened) and may not work with blur-background. +# My tests show a 15% performance boost. Recommended. +# +# glx-no-stencil = false + +# GLX backend: Avoid rebinding pixmap on window damage. +# Probably could improve performance on rapid window content changes, +# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.). +# Recommended if it works. +# +# glx-no-rebind-pixmap = false + +# Disable the use of damage information. +# This cause the whole screen to be redrawn everytime, instead of the part of the screen +# has actually changed. Potentially degrades the performance, but might fix some artifacts. +# The opposing option is use-damage +# +# no-use-damage = false +use-damage = true; + +# Use X Sync fence to sync clients' draw calls, to make sure all draw +# calls are finished before picom starts drawing. Needed on nvidia-drivers +# with GLX backend for some users. +# +# xrender-sync-fence = false + +# GLX backend: Use specified GLSL fragment shader for rendering window contents. +# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl` +# in the source tree for examples. +# +# glx-fshader-win = "" + +# Force all windows to be painted with blending. Useful if you +# have a glx-fshader-win that could turn opaque pixels transparent. +# +# force-win-blend = false + +# Do not use EWMH to detect fullscreen windows. +# Reverts to checking if a window is fullscreen based only on its size and coordinates. +# +# no-ewmh-fullscreen = false + +# Dimming bright windows so their brightness doesn't exceed this set value. +# Brightness of a window is estimated by averaging all pixels in the window, +# so this could comes with a performance hit. +# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0) +# +# max-brightness = 1.0 + +# Make transparent windows clip other windows like non-transparent windows do, +# instead of blending on top of them. +# +# transparent-clipping = false + +# Set the log level. Possible values are: +# "trace", "debug", "info", "warn", "error" +# in increasing level of importance. Case doesn't matter. +# If using the "TRACE" log level, it's better to log into a file +# using *--log-file*, since it can generate a huge stream of logs. +# +# log-level = "debug" +log-level = "warn"; + +# Set the log file. +# If *--log-file* is never specified, logs will be written to stderr. +# Otherwise, logs will to written to the given file, though some of the early +# logs might still be written to the stderr. +# When setting this option from the config file, it is recommended to use an absolute path. +# +# log-file = "/path/to/your/log/file" + +# Show all X errors (for debugging) +# show-all-xerrors = false + +# Write process ID to a file. +# write-pid-path = "/path/to/your/log/file" + +# Window type settings +# +# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard: +# "unknown", "desktop", "dock", "toolbar", "menu", "utility", +# "splash", "dialog", "normal", "dropdown_menu", "popup_menu", +# "tooltip", "notification", "combo", and "dnd". +# +# Following per window-type options are available: :: +# +# fade, shadow::: +# Controls window-type-specific shadow and fade settings. +# +# opacity::: +# Controls default opacity of the window type. +# +# focus::: +# Controls whether the window of this type is to be always considered focused. +# (By default, all window types except "normal" and "dialog" has this on.) +# +# full-shadow::: +# Controls whether shadow is drawn under the parts of the window that you +# normally won't be able to see. Useful when the window has parts of it +# transparent, and you want shadows in those areas. +# +# clip-shadow-above::: +# Controls wether shadows that would have been drawn above the window should +# be clipped. Useful for dock windows that should have no shadow painted on top. +# +# redir-ignore::: +# Controls whether this type of windows should cause screen to become +# redirected again after been unredirected. If you have unredir-if-possible +# set, and doesn't want certain window to cause unnecessary screen redirection, +# you can set this to `true`. +# +wintypes: +{ + tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; }; + dock = { shadow = false; clip-shadow-above = true; } + dnd = { shadow = false; } + popup_menu = { opacity = 0.8; } + dropdown_menu = { opacity = 0.8; } +}; diff --git a/i3/helpers/recently_used b/i3/helpers/recently_used new file mode 160000 index 0000000..214f15d --- /dev/null +++ b/i3/helpers/recently_used @@ -0,0 +1 @@ +Subproject commit 214f15d38dac18d23b32d310b290491d91fff958 diff --git a/i3/helpers/screenshot.sh b/i3/helpers/screenshot.sh new file mode 100755 index 0000000..8f1af09 --- /dev/null +++ b/i3/helpers/screenshot.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +function area() { + maim --select --tolerance 0 "$@" && \ + echo "the selected area" +} + +function screen() { + maim "$@" && \ + echo "the full screen" +} + +function current_window() { + WINDOW_ID=$(xdotool getwindowfocus) && \ + WINDOW_NAME=$(xdotool getwindowname "$WINDOW_ID") && \ + maim --window="$WINDOW_ID" "$@" && \ + echo "the current window ($WINDOW_NAME)" +} + +function select_window() { + maim --select --tolerance 999999 "$@" && \ + echo "the selected window" +} + +OPTION=$1 +shift +OPTION_TYPE=$(type -t "$OPTION") +if [[ $OPTION_TYPE != function ]]; then + >&2 echo "Must give the type of screenshot: area, screen, current_window, or select_window, but gave ${OPTION:-(nothing)} which was ${OPTION_TYPE:-undefined}" + exit 1 +fi + +SCREENSHOT_DIR=~/Screenshots +if [[ ! -d $SCREENSHOT_DIR ]]; then + if [[ ! -t 2 ]]; then + if [[ -z $SCREENSHOT_DIR ]]; then + dunstify --appname=screenshot.sh --timeout 3000 "Screenshot Failed" "Failed to take screenshot: Screenshot directory not set" + else + dunstify --appname=screenshot.sh --timeout 3000 "Screenshot Failed" "Failed to take screenshot: No such directory ${SCREENSHOT_DIR}" + fi + else + >&2 echo "Must give the screenshot directory, which must exist and be a directory, but gave ${SCREENSHOT_DIR:-(nothing)}" + fi + exit 2 +fi + +FILENAME=${SCREENSHOT_DIR}/Screenshot\ from\ $(date '+%Y-%m-%d %H-%M-%S').png +AREA=$("$OPTION" "$@" "$FILENAME") && \ + xclip -selection clipboard -t image/png < "$FILENAME" && \ + dunstify --appname=screenshot.sh --timeout 3000 --raw_icon="$FILENAME" "Screenshot Captured" "Saved screenshot of $AREA to clipboard and $FILENAME" && \ + "$(readlink -e "$( dirname "$(realpath -e "${BASH_SOURCE[0]}")" )")/recently_used/recently_used.py" -A screenshot.sh "$FILENAME" diff --git a/i3/helpers/volume.sh b/i3/helpers/volume.sh new file mode 100755 index 0000000..4de5226 --- /dev/null +++ b/i3/helpers/volume.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +function volumedelta() { + local CURRENT_VOLUME=$( pacmd list-sinks | grep -A 15 '* index' | awk '/volume: front/{ print $5 }' | sed 's/[%|,]//g') + local NEW_VOLUME=$(( $CURRENT_VOLUME + $1 )) + local NEW_VOLUME=$(( $NEW_VOLUME > 100 ? 100 : $NEW_VOLUME )) + local NEW_VOLUME=$(( $NEW_VOLUME < 0 ? 0 : $NEW_VOLUME )) + pactl set-sink-volume '@DEFAULT_SINK@' "${NEW_VOLUME}%" +} +case $1 in + up) + volumedelta 10 + pactl set-sink-mute '@DEFAULT_SINK@' 0 + ;; + down) + volumedelta -10 + ;; + off) + volumedelta -9999 + ;; + max) + volumedelta 9999 + pactl set-sink-mute '@DEFAULT_SINK@' 0 + ;; + toggle_mute) + pactl set-sink-mute '@DEFAULT_SINK@' toggle + ;; + full_mute) + pactl set-sink-mute '@DEFAULT_SINK@' 1 + pactl set-sink-volume '@DEFAULT_SINK@' 0 + ;; +esac +pkill -SIGUSR1 i3status +VOLUME=$( pacmd list-sinks | grep -A 15 '* index' | awk '/volume: front/{ print $5 }' | sed 's/[%|,]//g' ) +MUTED=$( pacmd list-sinks | grep -A 15 '* index' | awk '/muted:/{ print $2 }' | grep -m1 yes ) +ID_LOCATION=/run/user/$(id -u)/i3-helpers/volume-notification-id +OLD_ID=$(<"$ID_LOCATION") +NEW_ID=$(dunstify --appname=brightness.sh --timeout=3000 --hints="int:value:$VOLUME" --printid "${OLD_ID:+--replace="${OLD_ID}"}" "Volume" "${VOLUME}%${MUTED:+ (Muted)}" ) +mkdir -p $(dirname "$ID_LOCATION") +echo "$NEW_ID" >"$ID_LOCATION" diff --git a/per-host/costadelsol/.config/alacritty/alacritty.yml b/per-host/costadelsol/.config/alacritty/alacritty.yml new file mode 120000 index 0000000..0fed743 --- /dev/null +++ b/per-host/costadelsol/.config/alacritty/alacritty.yml @@ -0,0 +1 @@ +../../../../alacritty/alacritty.yml \ No newline at end of file diff --git a/per-host/costadelsol/.config/alacritty/themes b/per-host/costadelsol/.config/alacritty/themes new file mode 120000 index 0000000..b48d7ee --- /dev/null +++ b/per-host/costadelsol/.config/alacritty/themes @@ -0,0 +1 @@ +../../../../alacritty/themes \ No newline at end of file diff --git a/per-host/crystarium/.config/alacritty/alacritty.yml b/per-host/crystarium/.config/alacritty/alacritty.yml new file mode 120000 index 0000000..0fed743 --- /dev/null +++ b/per-host/crystarium/.config/alacritty/alacritty.yml @@ -0,0 +1 @@ +../../../../alacritty/alacritty.yml \ No newline at end of file diff --git a/per-host/crystarium/.config/alacritty/themes b/per-host/crystarium/.config/alacritty/themes new file mode 120000 index 0000000..b48d7ee --- /dev/null +++ b/per-host/crystarium/.config/alacritty/themes @@ -0,0 +1 @@ +../../../../alacritty/themes \ No newline at end of file diff --git a/per-host/goldsaucer/.config/alacritty/alacritty.yml b/per-host/goldsaucer/.config/alacritty/alacritty.yml new file mode 120000 index 0000000..0fed743 --- /dev/null +++ b/per-host/goldsaucer/.config/alacritty/alacritty.yml @@ -0,0 +1 @@ +../../../../alacritty/alacritty.yml \ No newline at end of file diff --git a/per-host/goldsaucer/.config/alacritty/themes b/per-host/goldsaucer/.config/alacritty/themes new file mode 120000 index 0000000..b48d7ee --- /dev/null +++ b/per-host/goldsaucer/.config/alacritty/themes @@ -0,0 +1 @@ +../../../../alacritty/themes \ No newline at end of file diff --git a/per-host/gubal/.config/alacritty/alacritty.yml b/per-host/gubal/.config/alacritty/alacritty.yml new file mode 120000 index 0000000..0fed743 --- /dev/null +++ b/per-host/gubal/.config/alacritty/alacritty.yml @@ -0,0 +1 @@ +../../../../alacritty/alacritty.yml \ No newline at end of file diff --git a/per-host/gubal/.config/alacritty/themes b/per-host/gubal/.config/alacritty/themes new file mode 120000 index 0000000..b48d7ee --- /dev/null +++ b/per-host/gubal/.config/alacritty/themes @@ -0,0 +1 @@ +../../../../alacritty/themes \ No newline at end of file diff --git a/per-host/mordhona/.config/alacritty/alacritty.yml b/per-host/mordhona/.config/alacritty/alacritty.yml new file mode 120000 index 0000000..0fed743 --- /dev/null +++ b/per-host/mordhona/.config/alacritty/alacritty.yml @@ -0,0 +1 @@ +../../../../alacritty/alacritty.yml \ No newline at end of file diff --git a/per-host/mordhona/.config/alacritty/themes b/per-host/mordhona/.config/alacritty/themes new file mode 120000 index 0000000..b48d7ee --- /dev/null +++ b/per-host/mordhona/.config/alacritty/themes @@ -0,0 +1 @@ +../../../../alacritty/themes \ No newline at end of file diff --git a/per-host/template/.config/alacritty/alacritty.yml b/per-host/template/.config/alacritty/alacritty.yml new file mode 120000 index 0000000..0fed743 --- /dev/null +++ b/per-host/template/.config/alacritty/alacritty.yml @@ -0,0 +1 @@ +../../../../alacritty/alacritty.yml \ No newline at end of file diff --git a/per-host/template/.config/alacritty/themes b/per-host/template/.config/alacritty/themes new file mode 120000 index 0000000..b48d7ee --- /dev/null +++ b/per-host/template/.config/alacritty/themes @@ -0,0 +1 @@ +../../../../alacritty/themes \ No newline at end of file diff --git a/rofi/config.rasi b/rofi/config.rasi new file mode 100644 index 0000000..d504267 --- /dev/null +++ b/rofi/config.rasi @@ -0,0 +1,145 @@ +configuration { + modi: "drun,run,window,ssh"; +/* width: 50;*/ +/* lines: 15;*/ +/* columns: 1;*/ +/* font: "mono 12";*/ +/* bw: 1;*/ +/* location: 0;*/ +/* padding: 5;*/ +/* yoffset: 0;*/ +/* xoffset: 0;*/ +/* fixed-num-lines: true;*/ +/* show-icons: false;*/ +/* terminal: "rofi-sensible-terminal";*/ +/* ssh-client: "ssh";*/ +/* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/ +/* run-command: "{cmd}";*/ +/* run-list-command: "";*/ +/* run-shell-command: "{terminal} -e {cmd}";*/ +/* window-command: "wmctrl -i -R {window}";*/ +/* window-match-fields: "all";*/ +/* icon-theme: ;*/ +/* drun-match-fields: "name,generic,exec,categories";*/ +/* drun-show-actions: false;*/ +/* drun-display-format: "{name} [({generic})]";*/ +/* disable-history: false;*/ +/* ignored-prefixes: "";*/ +/* sort: false;*/ +/* sorting-method: ;*/ +/* case-sensitive: false;*/ +/* cycle: true;*/ +/* sidebar-mode: false;*/ +/* eh: 1;*/ + auto-select: true; +/* parse-hosts: false;*/ +/* parse-known-hosts: true;*/ +/* combi-modi: "window,run";*/ +/* matching: "normal";*/ +/* tokenize: true;*/ +/* m: "-5";*/ +/* line-margin: 2;*/ +/* line-padding: 1;*/ +/* filter: ;*/ +/* separator-style: "dash";*/ +/* hide-scrollbar: false;*/ +/* fullscreen: false;*/ +/* fake-transparency: false;*/ +/* dpi: -1;*/ +/* threads: 0;*/ +/* scrollbar-width: 8;*/ +/* scroll-method: 0;*/ +/* fake-background: "screenshot";*/ +/* window-format: "{w} {c} {t}";*/ +/* click-to-exit: true;*/ +/* show-match: true;*/ +/* theme: ;*/ +/* color-normal: ;*/ +/* color-urgent: ;*/ +/* color-active: ;*/ +/* color-window: ;*/ +/* max-history-size: 25;*/ +/* combi-hide-mode-prefix: false;*/ +/* matching-negate-char: '-' /* unsupported */;*/ +/* cache-dir: ;*/ +/* pid: "/run/user/1000/rofi.pid";*/ +/* display-window: ;*/ +/* display-windowcd: ;*/ +/* display-run: ;*/ +/* display-ssh: ;*/ +/* display-drun: ;*/ +/* display-combi: ;*/ +/* display-keys: ;*/ +/* kb-primary-paste: "Control+V,Shift+Insert";*/ +/* kb-secondary-paste: "Control+v,Insert";*/ +/* kb-clear-line: "Control+w";*/ +/* kb-move-front: "Control+a";*/ +/* kb-move-end: "Control+e";*/ +/* kb-move-word-back: "Alt+b,Control+Left";*/ +/* kb-move-word-forward: "Alt+f,Control+Right";*/ +/* kb-move-char-back: "Left,Control+b";*/ +/* kb-move-char-forward: "Right,Control+f";*/ +/* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/ +/* kb-remove-word-forward: "Control+Alt+d";*/ +/* kb-remove-char-forward: "Delete,Control+d";*/ +/* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/ +/* kb-remove-to-eol: "Control+k";*/ +/* kb-remove-to-sol: "Control+u";*/ +/* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/ +/* kb-accept-custom: "Control+Return";*/ +/* kb-accept-alt: "Shift+Return";*/ +/* kb-delete-entry: "Shift+Delete";*/ +/* kb-mode-next: "Shift+Right,Control+Tab";*/ +/* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/ +/* kb-row-left: "Control+Page_Up";*/ +/* kb-row-right: "Control+Page_Down";*/ +/* kb-row-up: "Up,Control+p,ISO_Left_Tab";*/ +/* kb-row-down: "Down,Control+n";*/ +/* kb-row-tab: "Tab";*/ +/* kb-page-prev: "Page_Up";*/ +/* kb-page-next: "Page_Down";*/ +/* kb-row-first: "Home,KP_Home";*/ +/* kb-row-last: "End,KP_End";*/ +/* kb-row-select: "Control+space";*/ +/* kb-screenshot: "Alt+S";*/ +/* kb-ellipsize: "Alt+period";*/ +/* kb-toggle-case-sensitivity: "grave,dead_grave";*/ +/* kb-toggle-sort: "Alt+grave";*/ +/* kb-cancel: "Escape,Control+g,Control+bracketleft";*/ +/* kb-custom-1: "Alt+1";*/ +/* kb-custom-2: "Alt+2";*/ +/* kb-custom-3: "Alt+3";*/ +/* kb-custom-4: "Alt+4";*/ +/* kb-custom-5: "Alt+5";*/ +/* kb-custom-6: "Alt+6";*/ +/* kb-custom-7: "Alt+7";*/ +/* kb-custom-8: "Alt+8";*/ +/* kb-custom-9: "Alt+9";*/ +/* kb-custom-10: "Alt+0";*/ +/* kb-custom-11: "Alt+exclam";*/ +/* kb-custom-12: "Alt+at";*/ +/* kb-custom-13: "Alt+numbersign";*/ +/* kb-custom-14: "Alt+dollar";*/ +/* kb-custom-15: "Alt+percent";*/ +/* kb-custom-16: "Alt+dead_circumflex";*/ +/* kb-custom-17: "Alt+ampersand";*/ +/* kb-custom-18: "Alt+asterisk";*/ +/* kb-custom-19: "Alt+parenleft";*/ +/* kb-select-1: "Super+1";*/ +/* kb-select-2: "Super+2";*/ +/* kb-select-3: "Super+3";*/ +/* kb-select-4: "Super+4";*/ +/* kb-select-5: "Super+5";*/ +/* kb-select-6: "Super+6";*/ +/* kb-select-7: "Super+7";*/ +/* kb-select-8: "Super+8";*/ +/* kb-select-9: "Super+9";*/ +/* kb-select-10: "Super+0";*/ +/* ml-row-left: "ScrollLeft";*/ +/* ml-row-right: "ScrollRight";*/ +/* ml-row-up: "ScrollUp";*/ +/* ml-row-down: "ScrollDown";*/ +/* me-select-entry: "MousePrimary";*/ +/* me-accept-entry: "MouseDPrimary";*/ +/* me-accept-custom: "Control+MouseDPrimary";*/ +} diff --git a/tmux/tmux-open b/tmux/tmux-open new file mode 160000 index 0000000..5b09bd9 --- /dev/null +++ b/tmux/tmux-open @@ -0,0 +1 @@ +Subproject commit 5b09bd955292ae33ef6d3519df09b5bc1b0ff49e diff --git a/tmux/tmux.conf b/tmux/tmux.conf index 96ab554..d4ffbd6 100644 --- a/tmux/tmux.conf +++ b/tmux/tmux.conf @@ -546,7 +546,8 @@ tmux_conf_theme_right_separator_sub='\uE0B3' # PowerlineSymbols.otf font, see # - #{username} # - #{username_ssh} tmux_conf_theme_status_left=" #{host_short}#[blink,fg=$tmux_conf_theme_colour_8]#{reboot}#[noblink,fg=$tmux_conf_theme_colour_6] | #S#{root} " -tmux_conf_theme_status_right=" , #{?battery_status,#{battery_status}, OK }#{?battery_bar,#{battery_bar},}#{?battery_percentage, #{battery_percentage},} | #{prefix}#{mouse}| %b %d | %R " +tmux_conf_theme_status_right="#{prefix}#{mouse}| %a %b %d | %R " +# battery: , #{?battery_status,#{battery_status}, OK }#{?battery_bar,#{battery_bar},}#{?battery_percentage, #{battery_percentage},} | # uptime: up #{?uptime_y, #{uptime_y}y,}#{?uptime_d, #{uptime_d}d,}#{?uptime_h, #{uptime_h}h,}#{?uptime_m, #{uptime_m}m,} # status left style tmux_conf_theme_status_left_fg="$tmux_conf_theme_colour_6,$tmux_conf_theme_colour_7" @@ -554,8 +555,8 @@ tmux_conf_theme_status_left_bg="$tmux_conf_theme_colour_9,$tmux_conf_theme_colou tmux_conf_theme_status_left_attr="bold,none" # status right style -tmux_conf_theme_status_right_fg="$tmux_conf_theme_colour_3,$tmux_conf_theme_colour_12,$tmux_conf_theme_colour_13,$tmux_conf_theme_colour_14" -tmux_conf_theme_status_right_bg="$tmux_conf_theme_colour_1,$tmux_conf_theme_colour_15,$tmux_conf_theme_colour_16,$tmux_conf_theme_colour_17" +tmux_conf_theme_status_right_fg="$tmux_conf_theme_colour_12,$tmux_conf_theme_colour_13,$tmux_conf_theme_colour_14" +tmux_conf_theme_status_right_bg="$tmux_conf_theme_colour_15,$tmux_conf_theme_colour_16,$tmux_conf_theme_colour_17" tmux_conf_theme_status_right_attr="none,none,none,bold" # pairing indicator @@ -652,6 +653,7 @@ set -g mouse on #set -g status-keys vi #set -g mode-keys vi source-file $TMUX_CONF_DIR/screen.conf +run-shell $TMUX_CONF_DIR/tmux-open/open.tmux # replace C-b by C-a instead of using both prefixes set -gu prefix2 @@ -660,7 +662,7 @@ unbind C-b set -g prefix C-a set-option -g base-index 1 set-option -g history-limit 99999 -# bind C-a send-prefix +bind C-a send-prefix # move status line to top #set -g status-position top diff --git a/zsh/customizations/zsh_aliases.zsh b/zsh/customizations/zsh_aliases.zsh index 65e4807..8f7ead1 100644 --- a/zsh/customizations/zsh_aliases.zsh +++ b/zsh/customizations/zsh_aliases.zsh @@ -5,6 +5,10 @@ stty -ixon # Install EDITOR export EDITOR='nvim' +# Install PAGER +export PAGER='less --mouse' +# Install BROWSER +export BROWSER='firefox -P Mari --class Firefox.Main' # Set up the vim config path export VIM_CONFIG_DIR=$__COMMON_CONFIGS/vim # Set the SSH auth sock to the central location diff --git a/zsh/customizations/zsh_tmux.zsh b/zsh/customizations/zsh_tmux.zsh index 37184d0..4b638f1 100644 --- a/zsh/customizations/zsh_tmux.zsh +++ b/zsh/customizations/zsh_tmux.zsh @@ -6,7 +6,7 @@ function tmux_running() { } function tmux_init() { - tmux -2 new-session -d -s "Nexus" -n "Misc." + tmux -2 new-session -d -s "Nexus" -n "Misc." 'LC_ALL=C.UTF-8 fortune | cowsay -f eyes -W "$COLUMNS"; exec "$SHELL" -i' } function go_tmux() {