From 8cef869e3289be2f9f2b90998e08c7192408336f Mon Sep 17 00:00:00 2001 From: fschl Date: Thu, 4 Nov 2021 23:42:24 +0100 Subject: [PATCH] mostly happy with sway setup, not decided on status bar --- .i3/status.conf | 18 +- README.org | 7 + alacritty.yml | 882 ++++++++++++++++++++++++++++++++++++++++++ scripts/install.sh | 108 ++++-- sway/.bashrc | 79 ++++ sway/.exports | 2 + sway/config | 281 ++++++++++++++ sway/status-rust.toml | 95 +++++ 8 files changed, 1425 insertions(+), 47 deletions(-) create mode 100644 alacritty.yml create mode 100755 sway/.bashrc create mode 100644 sway/.exports create mode 100755 sway/config create mode 100644 sway/status-rust.toml diff --git a/.i3/status.conf b/.i3/status.conf index b754c3b..5cbeeaf 100755 --- a/.i3/status.conf +++ b/.i3/status.conf @@ -12,23 +12,24 @@ general { color_good = "#26F582" color_degraded = "#f4d430" - color_bad = "#EE6B6F" + color_bad = "#ddbb6f" } order += "disk /" order += "disk /var" order += "disk /home" -order += "disk /media/driveBay" -#order += "run_watch Docker" -#order += "run_watch DHCP" -order += "path_exists VPN" +# order += "disk /media/driveBay" +order += "run_watch Docker" +order += "run_watch DHCP" +# order += "path_exists VPN" #order += "ipv6" order += "wireless wlp3s0" order += "ethernet fschl-vpn" order += "ethernet enp0s25" order += "volume Master" order += "battery 0" -#order += "cpu_temperature 0" +# order += "cpu_temperature 0" +order += "memory" order += "load" #order += "tztime local" order += "tztime DE" @@ -99,6 +100,11 @@ cpu_temperature 0 { path = "/sys/devices/platform/coretemp.0/hwmon/hwmon1/temp1_input" } +memory { + format = "RAM %used/%total" + #%free %total , %available avail, %used used" +} + disk "/" { format = "/ %avail" } diff --git a/README.org b/README.org index 7d130ad..f925e36 100644 --- a/README.org +++ b/README.org @@ -13,6 +13,13 @@ - Rescue+Recover friends laptops/computers - panic-ops using a friends laptop +*** Firefox/Thunderbird customization + + - goto ~.mozilla/firefox//~ + - ~mkdir chrome/ && cp ~/dotfiles/userChrome.css ./chrome/~ + - open Firefox: ~about:config~ and set + ~toolkit.legacyUserProfileCustomizations.stylesheets~ to *true* + *** Security **** Hardening ssh diff --git a/alacritty.yml b/alacritty.yml new file mode 100644 index 0000000..dcb35c1 --- /dev/null +++ b/alacritty.yml @@ -0,0 +1,882 @@ +# 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. 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: 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: monospace + + # 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: 9.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 (Solarized Dark) +colors: + # Default colors + primary: + # background: '0x002b36' + background: '0x001b26' + foreground: '0x839496' + + # Normal colors + normal: + black: '0x073642' + red: '0xdc322f' + green: '0x859900' + yellow: '0xb58900' + blue: '0x268bd2' + magenta: '0xd33682' + cyan: '0x2aa198' + white: '0xeee8d5' + + # Bright colors + bright: + black: '0x002b36' + red: '0xcb4b16' + green: '0x586e75' + yellow: '0x657b83' + blue: '0x839496' + magenta: '0x6c71c4' + cyan: '0x93a1a1' + white: '0x + +# 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: + # 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 + + # 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: 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 + +# Background opacity +# +# Window opacity as a floating point number from `0.0` to `1.0`. +# The value `0.0` is completely transparent and `1.0` is opaque. +background_opacity: 0.95 + +#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 + + # 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: true + +# 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`, `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. + # + # 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{-}\\^⟨⟩`]+" + # 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: ~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: 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/scripts/install.sh b/scripts/install.sh index acd7740..e9bbf8e 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -61,6 +61,7 @@ base_applications() { apt-transport-https \ automake \ bash-completion \ + bat \ bmon \ bzip2 \ ca-certificates \ @@ -69,6 +70,7 @@ base_applications() { cryptsetup \ curl \ dnsutils \ + fzf \ gcc \ git \ gnupg \ @@ -82,6 +84,8 @@ base_applications() { make \ mount \ net-tools \ + restic \ + ripgrep \ rsync \ ssh \ sudo \ @@ -103,7 +107,8 @@ base_applications() { $SUDO apt autoclean $SUDO apt clean - $SUDO ip link add dev wg0 type wireguard + restic self-update + } install_server_base() { @@ -191,12 +196,12 @@ install_latex() { } install_workstation_apps() { - + DEBIAN_FRONTEND=noninteractive - # TODO add non-free to apt/sources.list apt update apt install -y \ + alsa-tools \ alsa-utils \ aspell \ aspell-de \ @@ -221,12 +226,10 @@ install_workstation_apps() { libreoffice-writer \ ntfs-3g \ nmap \ - pulseaudio \ - slim \ + fonts-powerline \ thunderbird \ thunderbird-l10n-de \ thunderbird-l10n-en-gb \ - vlc \ --no-install-recommends TARGET="/home/$USERNAME/.emacs.d" @@ -237,25 +240,32 @@ install_workstation_apps() { } install_sway() { - echo ".... TODO ;-) ..." + echo " installing sway and wayland tools..." + DEBIAN_FRONTEND=noninteractive + apt update + apt install -y \ + brightnessctl \ + dunst \ + sway \ + wl-clipboard \ + wob \ + wofi \ + ydotool \ + --no-install-recommends + + rm /home/${USERNAME}/.bashrc + ln -s /home/${USERNAME}/ + } install_i3() { - echo "update and installing i3wm and some tools..." + echo "Xorg with i3wm and some tools..." # check if CJK and other eastern letters are displayed correctly: # https://meta.wikimedia.org/wiki/List_of_Wikipedias - # tlp: Advanced Linux Power Management - # http://linrunner.de/en/tlp/docs/tlp-linux-advanced-power-management.html - # deb http://repo.linrunner.de/debian sid main - - # add the tlp apt-repo gpg key - # apt-key adv --keyserver pool.sks-keyservers.net --recv-keys CD4E8809 - DEBIAN_FRONTEND=noninteractive - # TODO add non-free to apt/sources.list apt update apt install -y \ feh \ @@ -276,6 +286,7 @@ install_i3() { shotwell \ slim \ vlc \ + xdotool \ xorg \ --no-install-recommends @@ -378,7 +389,7 @@ install_compose() { # https://github.com/docker/compose/releases # btw: *not* for raspbian! you got 3 choices: hypriot, install via pip or build yourself # https://www.berthon.eu/2017/getting-docker-compose-on-raspberry-pi-arm-the-easy-way/ - VERS="1.28.6" + VERS="1.29.2" FILE="docker-compose-$(uname -s)-$(uname -m)" echo "installing docker-compose $VERS ... curling from github" @@ -412,17 +423,6 @@ install_virtualbox() { } -get_dotfiles() { - - ( - # git clone https://gitlab.com/fschl/dotfiles.git "/home/$USERNAME/dotfiles" - # cd "/home/$USERNAME/dotfiles" && make - - # TODO: propbably dont really need the whole repo - git clone https://gitlab.com/fschl/dockerfiles.git "/home/$USERNAME/dockerfiles" - ) -} - # install/update golang from source install_golang() { export GO_VERSION=1.16.0 @@ -440,40 +440,66 @@ install_golang() { } install_rust() { - echo ".... TODO ! rustup.sh ... " + echo "... rustup.sh ... " + curl --proto 'https' --tlsv1.2 https://sh.rustup.rs | sh + + eco "... adding dependencies for alacritty and i3status-rs ... " + sudo apt install -y \ + cmake \ + fonts-font-awesome \ + gcc \ + pkg-config \ + libdbus-1-dev \ + libfreetype6-dev \ + libfontconfig1-dev \ + libssl-dev \ + libxcb-xfixes0-dev \ + libxkbcommon-dev \ + python3 \ + --no-install-recommends + + # for whatever reason alacritty is not available in debian repos + cargo install alacritty + cargo install du-dust + + ( + mkdir -p "/home/$USERNAME/projects" + TARGET="/home/$USERNAME/projects/i3status-rust" + git clone https://github.com/greshake/i3status-rust ${TARGET} + cd ${TARGET} + cargo install --path . + ./install.sh + ) + } main() { local cmd=$1 if [[ -z "$cmd" ]]; then - echo "Usage: \n base (incl docker+compose)| desktop | server | dotfiles | vscode | latex | update-docker | go | rust" + echo "Usage: \n base (incl docker+compose)| i3 | sway | server | latex | update-docker | vscode | go | rust" fi case "$cmd" in base) - # apt_sources buster base_applications install_docker install_compose ;; - dotfiles) - get_dotfiles - ;; server) install_server_base ;; - desktop) - # apt_sources buster + i3) base_applications - install_docker - install_compose install_syncthing install_i3 install_workstation_apps - if [ -f "./get_private_stuff.sh" ]; then - source get_private_stuff.sh - fi + ;; + sway) + base_applications + install_syncthing + install_sway + install_workstation_apps ;; latex) install_latex diff --git a/sway/.bashrc b/sway/.bashrc new file mode 100755 index 0000000..e76cc93 --- /dev/null +++ b/sway/.bashrc @@ -0,0 +1,79 @@ +# ~/.bashrc: executed by bash(1) for non-login shells. +# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) +# for examples + +# If not running interactively, don't do anything +case $- in + *i*) ;; + *) return;; +esac + +# don't put duplicate lines or lines starting with space in the history. +# See bash(1) for more options +HISTCONTROL=ignoreboth + +# Load the shell dotfiles, and then some: +# * ~/.path can be used to extend `$PATH`. +# * ~/.extra can be used for other settings you don’t want to commit. +for file in ~/.{aliases,bash_prompt,functions,path,extra,exports}; do + [[ -r "$file" ]] && [[ -f "$file" ]] && source "$file" +done +unset file + +# Case-insensitive globbing (used in pathname expansion) +shopt -s nocaseglob + +# append to the history file, don't overwrite it +shopt -s histappend + +# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) +HISTSIZE=1000000 +HISTFILESIZE=20000000 + +export TERMINAL="alacritty"; +export TERM="alacritty"; + +# check the window size after each command and, if necessary, +# update the values of LINES and COLUMNS. +shopt -s checkwinsize + +# If set, the pattern "**" used in a pathname expansion context will +# match all files and zero or more directories and subdirectories. +#shopt -s globstar + +# make less more friendly for non-text input files, see lesspipe(1) +[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" + +# set variable identifying the chroot you work in (used in the prompt below) +if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then + debian_chroot=$(cat /etc/debian_chroot) +fi + +PS1="\[\e[01;36m\]\u\[\e[0m\]\[\e[00;37m\]@\[\e[0m\]\[\e[01;33m\]\h\[\e[0m\]\[\e[00;36m\][\w]\[\e[0m\]\[\e[01;31m\]\n\\$\[\e[0m\]\[\e[00;37m\] \[\e[0m\]" + +# If this is an xterm set the title to user@host:dir +PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" + +# enable color support of ls and also add handy aliases +if [ -x /usr/bin/dircolors ]; then + eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" + alias ls='ls --color=auto' + alias grep='grep --color=auto' + alias fgrep='fgrep --color=auto' + alias egrep='egrep --color=auto' +fi + +# Add an "alert" alias for long running commands. Use like so: +# sleep 10; alert +alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' + +# enable programmable completion features (you don't need to enable +# this, if it's already enabled in /etc/bash.bashrc and /etc/profile +# sources /etc/bash.bashrc). +if ! shopt -oq posix; then + if [ -f /usr/share/bash-completion/bash_completion ]; then + . /usr/share/bash-completion/bash_completion + elif [ -f /etc/bash_completion ]; then + . /etc/bash_completion + fi +fi diff --git a/sway/.exports b/sway/.exports new file mode 100644 index 0000000..f767a8a --- /dev/null +++ b/sway/.exports @@ -0,0 +1,2 @@ +export MOZ_ENABLE_WAYLAND=1 +export QT_QPA_PLATFORM=wayland \ No newline at end of file diff --git a/sway/config b/sway/config new file mode 100755 index 0000000..e066c49 --- /dev/null +++ b/sway/config @@ -0,0 +1,281 @@ +# Default config for sway +# +# Copy this to ~/.config/sway/config and edit it to your liking. +# +# Read `man 5 sway` for a complete reference. + +# Logo key. Use Mod1 for Alt. +set $mod Mod4 + +font pango:DejaVu Sans Mono 8 + +set $term alacritty + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +hide_edge_borders both # none|vertical|horizontal|both + +output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill + +# start a terminal +bindsym $mod+Return exec alacritty + +# kill focused window +bindsym $mod+Shift+q kill + +# start dmenu (a program launcher) +for_window [app_id="^launcher$"] floating enable, sticky enable, resize set 30 ppt 60 ppt, border pixel 10 +set $menu exec $term --class=launcher -e /home/fschl/projects/sway-launcher-desktop/sway-launcher-desktop.sh +bindsym $mod+d exec $menu + +# bindsym Ctrl+Shift+l exec i3lock-fancy + +input * { + xkb_layout "de" + xkb_variant "nodeadkeys" + xkb_options "ctrl:nocaps" +} + +# change focus +bindsym $mod+j focus left +bindsym $mod+k focus down +bindsym $mod+l focus right + +# alternatively, you can use the cursor keys: +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Right focus right + +# move focused window +bindsym $mod+Shift+j move left +bindsym $mod+Shift+k move down +bindsym $mod+Shift+l move right + +# alternatively, you can use the cursor keys: +bindsym $mod+Shift+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Right move right + +# split in horizontal orientation +bindsym $mod+h split h + +# split in vertical orientation +bindsym $mod+v split v + +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + +# toggle tiling / floating +bindsym $mod+Shift+space floating toggle + +# change focus between tiling / floating windows +bindsym $mod+space focus mode_toggle +# float some applications +for_window [class="Tor Browser"] floating enable + +bindsym $mod+a focus parent # focus the parent container + +# manage workspaces +# look for icons: https://fontawesome.com/icons?d=gallery +# firefox - browser is placed on this Workspace +set $WS1 "1 " +# git - emacs <3 +set $WS2 "2 " +# terminal - place for urxvt +set $WS3 "3 " +# envelope - thunderbird windows on here +set $WS4 "4 " +# code - eclise, intellij IDEs, etc +set $WS5 "5 " +# unlock-alt - keepassxc defaults here +set $WS8 "8 " +# linux - less often used terminals for background processes +set $WS9 "9 " + +assign [class="^Firefox$"] $WS1 +assign [class="^Eclipse$"] $WS5 +assign [class="^Thunderbird$"] $WS4 +assign [class=".*ee.*ass.*"] $WS8 + +# https://faq.i3wm.org/question/3726/workspace-output-multiple-values/index.html%3Fanswer=3731.html#post-id-3731 +set $LAPTOP LVDS-1 +set $CENTER HDMI-1 +set $RIGHT VGA-1 + +# monitor settings +bindsym $mod+m mode "monitor" +mode "monitor" { + # only laptop + bindsym 1 exec xrandr --output $LAPTOP --auto --primary --output $CENTER --off $RIGHT --off + # HDMI main, laptop secondary + bindsym 2 exec xrandr --output $CENTER --primary --auto --output $LAPTOP --auto --left-of $CENTER --output $RIGHT --off + # HDMI main, laptop left, VGA right, *not* supported on X230 + bindsym 3 exec xrandr --output $CENTER --primary --auto --output $LAPTOP --auto --left-of $CENTER --output $RIGHT --auto --right-of $CENTER + # HDMI main, VGA right, laptop off + bindsym 4 exec xrandr --output $CENTER --primary --auto --output $RIGHT --right-of $CENTER --rotate left --auto --output $LAPTOP --off + # VGA main, laptop left, HDMI off + bindsym 8 exec xrandr --output $RIGHT --primary --auto --output $LAPTOP --auto --left-of $RIGHT --output $CENTER --off + # HDMI main, VGA right, laptop off + bindsym 9 exec xrandr --output $CENTER --primary --auto --output $RIGHT --auto --right-of $CENTER --output $LAPTOP --off + + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" + bindsym $mod+m mode "default" +} + +bindsym $mod+p exec xrandr-toggle + +workspace $WS1 output $CENTER +workspace $WS2 output $CENTER +workspace $WS3 output $LAPTOP +workspace $WS4 output $LAPTOP +workspace $WS5 output $CENTER +workspace $WS8 output $LAPTOP +workspace $WS9 output $LAPTOP + +# switch to workspace +bindsym $mod+1 workspace $WS1 +bindsym $mod+2 workspace $WS2 +bindsym $mod+3 workspace $WS3 +bindsym $mod+4 workspace $WS4 +bindsym $mod+5 workspace $WS5 +bindsym $mod+6 workspace 6 +bindsym $mod+7 workspace 7 +bindsym $mod+8 workspace $WS8 +bindsym $mod+9 workspace $WS9 +bindsym $mod+0 workspace 10 + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace $WS1 +bindsym $mod+Shift+2 move container to workspace $WS2 +bindsym $mod+Shift+3 move container to workspace $WS3 +bindsym $mod+Shift+4 move container to workspace $WS4 +bindsym $mod+Shift+5 move container to workspace $WS5 +bindsym $mod+Shift+6 move container to workspace 6 +bindsym $mod+Shift+7 move container to workspace 7 +bindsym $mod+Shift+8 move container to workspace $WS8 +bindsym $mod+Shift+9 move container to workspace $WS9 +bindsym $mod+Shift+0 move container to workspace 10 + +set $WOBSOCK $XDG_RUNTIME_DIR/wob.sock +exec mkfifo $WOBSOCK && tail -f $WOBSOCK | wob + +# audio controls +bindsym XF86AudioRaiseVolume exec amixer sset Master 5%+ | sed -En 's/.*\[([0-9]+)%\].*/\1/p' | head -1 > $WOBSOCK +bindsym XF86AudioLowerVolume exec amixer sset Master 5%- | sed -En 's/.*\[([0-9]+)%\].*/\1/p' | head -1 > $WOBSOCK +bindsym XF86AudioMute exec amixer sset Master toggle | sed -En '/\[on\]/ s/.*\[([0-9]+)%\].*/\1/ p; /\[off\]/ s/.*/0/p' | head -1 > $WOBSOCK + +bindsym XF86MonBrightnessDown exec brightnessctl set 5%- | sed -En 's/.*\(([0-9]+)%\).*/\1/p' > $WOBSOCK +bindsym XF86MonBrightnessUp exec brightnessctl set +5% | sed -En 's/.*\(([0-9]+)%\).*/\1/p' > $WOBSOCK + + +# bindsym XF86AudioRaiseVolume exec amixer set Master 5+ #increase sound volume +# bindsym XF86AudioLowerVolume exec amixer set Master 5- #decrease sound volume +# bindsym XF86AudioMute exec amixer set Master 1+ toggle # mute sound +# bindsym XF86AudioMicMute exec amixer set Capture toggle # mute mic + +# reload the configuration file +bindsym $mod+Shift+c reload +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+Shift+r restart +# exit i3 (logs you out of your X session) +bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" + +# resize window (you can also use the mouse for that) +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + + # Pressing left will shrink the window’s width. + # Pressing right will grow the window’s width. + # Pressing up will shrink the window’s height. + # Pressing down will grow the window’s height. + bindsym j resize shrink width 10 px or 10 ppt + bindsym i resize grow height 10 px or 10 ppt + bindsym k resize shrink height 10 px or 10 ppt + bindsym l resize grow width 10 px or 10 ppt + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} + +bindsym $mod+r mode "resize" + +# Start i3bar to display a workspace bar (plus the system information i3status +# finds out, if available) +# actually use the rust port https://github.com/greshake/i3status-rust +bar { + colors { + background #223232 + statusline #93b4a6 + # focused_workspace #7d9683 #6c71c4 #fdf6e3 + # active_workspace #fdf6e3 #6c71c4 #fdf6e3 + # inactive_workspace #002b36 #586e75 #002b36 + # urgent_workspace #d33682 #d33682 #fdf6e3 + } + + status_command ~/.cargo/bin/i3status-rs ~/dotfiles/sway/status-rust.toml + tray_output $LAPTOP + + output $LAPTOP + output $CENTER + font pango:DejaVu Sans Mono, FontAwesome 8 +} + +bar { + # position top + colors { + background #323232 + statusline #93b4a6 + focused_workspace #7d9683 #6c71b4 #ede6b3 + active_workspace #fdf6e3 #6c71b4 #ede6b3 + # focused_workspace #7d9683 #6c71c4 #fdf6e3 + # active_workspace #fdf6e3 #6c71c4 #fdf6e3 + inactive_workspace #002b36 #586e75 #002b36 + urgent_workspace #d33682 #d33682 #fdf6e3 + } + + status_command i3status --config ~/dotfiles/.i3/status.conf + tray_output $LAPTOP + + # i3blocks: http://kumarcode.com/Colorful-i3/ + # status_command i3blocks -c ~/.i3/i3blocks.conf + output $LAPTOP + output $CENTER + font pango:DejaVu Sans Mono, FontAwesome 8 +} + +# bar { +# # output $CENTER +# output $RIGHT +# status_command i3status --config ~/.i3/status_small.conf +# tray_output $LAPTOP +# } + +# startup programs +# exec amixer set Master 1+ off +# exec amixer set Master 54 +# exec --no-startup-id nm-applet +# exec --no-startup-id xrandr --output LVDS1 --left-of VGA1 --auto +# exec --no-startup-id xrandr --output VGA1 --auto +# #exec --no-startup-id clipit +# exec --no-startup-id i3-msg 'workspace $WS1; exec firefox;' +# exec --no-startup-id i3-msg 'workspace $WS2; exec emacs' +# exec --no-startup-id i3-msg 'exec thunderbird' +# exec --no-startup-id i3-msg 'exec keepassxc' +# # exec --no-startup-id i3-msg 'exec nextcloud' +# exec --no-startup-id i3-msg 'workspace $WS3; exec urxvt;' + diff --git a/sway/status-rust.toml b/sway/status-rust.toml new file mode 100644 index 0000000..8273411 --- /dev/null +++ b/sway/status-rust.toml @@ -0,0 +1,95 @@ +theme = "semi-native" +# theme = "solarized-dark" +icons = "awesome" + +[[block]] +block = "pomodoro" +length = 25 +break_length = 5 +message = "Take a break!" +break_message = "Back to work!" +notifier = "swaynag" + +[[block]] +block = "disk_space" +path = "/" +info_type = "available" +unit = "GB" +interval = 20 +warning = 12.0 +alert = 8.0 +alert_absolute = true +format = "{icon}/{available}" + +[[block]] +block = "disk_space" +path = "/home" +info_type = "available" +unit = "GB" +interval = 20 +warning = 20.0 +alert = 10.0 +alert_absolute = true +format = "{icon}/home {available}" + +# [[block]] +# block = "docker" +# interval = 2 +# format = "{running}/{total} | {images}" + +[[block]] +block = "memory" +display_type = "memory" +format_mem = "{mem_used_percents}" +format_swap = "{swap_used_percents}" + +[[block]] +block = "cpu" +interval = 5 + +[[block]] +block = "load" +interval = 5 +format = "{1m}" + +[[block]] +block = "net" +device = "enp0s25" +format = "eth {ip} {speed_down;K*b} {graph_down;K*b}" +interval = 5 + +[[block]] +block = "net" +device = "wlp3s0" +format = "{ssid} {signal_strength} {ip} {speed_down;K*b} {graph_down;K*b}" +interval = 5 + +[[block]] +block = "sound" +format = "{volume}" +show_volume_when_muted = true + +# [[block]] +# block = "sound" +# name = "Mic" +# format = "{output_name} {volume}" +# show_volume_when_muted = true + +[[block]] +block = "battery" +driver = "upower" +format = "{percentage} {time}" + +[[block]] +block = "networkmanager" +on_click = "alacritty -e nmtui" +interface_name_exclude = ["br\\-[0-9a-f]{12}", "docker\\d+"] +interface_name_include = [] +ap_format = "{ssid^10}" + + +[[block]] +block = "time" +timezone = "Europe/Berlin" +interval = 5 +format = "%a %Y-%m-%d %R:%S"