From 39abd6b00a427ac4d33564d9a00cde35abe90be8 Mon Sep 17 00:00:00 2001 From: "bozo.kopic" Date: Mon, 8 Jan 2024 18:50:10 +0100 Subject: . --- aerc/aerc.conf | 4 + aerc/binds.conf | 17 + alacritty/alacritty.toml | 613 ++++++++++++++++++++++++++++++ alacritty/alacritty.yml | 454 ---------------------- chromium/chromium | 11 +- drawio/drawio | 11 +- foot/foot.ini | 6 +- git/.gitconfig | 5 + install.sh | 59 ++- neomutt/mailboxes.py | 20 + nvim/init.lua | 32 +- qutebrowser/autoconfig.yml | 4 +- river/init | 54 ++- river/run-river.sh | 10 + shell/.profile | 9 +- sublime-text/LSP.sublime-settings | 4 + sublime-text/Preferences.sublime-settings | 3 + sway/run-sway.sh | 4 +- tmux/tmux.conf | 10 - vm/alpine-armv7.sh | 39 ++ vm/alpine-x86_64.sh | 29 ++ vm/alpine/armv7/run.sh | 28 -- vm/alpine/x86_64/run.sh | 25 -- vm/arch-armv7.sh | 52 +++ vm/archlinux/armv7/run.sh | 49 --- vm/debian-armv7.sh | 45 +++ vm/debian/armv7/run.sh | 49 --- vm/netbsd.sh | 32 ++ vm/netbsd/run.sh | 28 -- vm/openbsd.sh | 29 ++ vm/openbsd/run.sh | 26 -- vm/run.sh | 25 ++ vm/win11.sh | 109 ++++++ vm/win11/run.sh | 115 ------ waybar/river.conf | 18 +- 35 files changed, 1149 insertions(+), 879 deletions(-) create mode 100644 aerc/aerc.conf create mode 100644 aerc/binds.conf create mode 100644 alacritty/alacritty.toml delete mode 100644 alacritty/alacritty.yml create mode 100644 neomutt/mailboxes.py create mode 100755 river/run-river.sh create mode 100644 vm/alpine-armv7.sh create mode 100644 vm/alpine-x86_64.sh delete mode 100755 vm/alpine/armv7/run.sh delete mode 100755 vm/alpine/x86_64/run.sh create mode 100644 vm/arch-armv7.sh delete mode 100755 vm/archlinux/armv7/run.sh create mode 100644 vm/debian-armv7.sh delete mode 100755 vm/debian/armv7/run.sh create mode 100644 vm/netbsd.sh delete mode 100755 vm/netbsd/run.sh create mode 100644 vm/openbsd.sh delete mode 100755 vm/openbsd/run.sh create mode 100755 vm/run.sh create mode 100644 vm/win11.sh delete mode 100755 vm/win11/run.sh diff --git a/aerc/aerc.conf b/aerc/aerc.conf new file mode 100644 index 0000000..34fedc0 --- /dev/null +++ b/aerc/aerc.conf @@ -0,0 +1,4 @@ +[ui] +mouse-enabled = true +threading-enabled = true +sidebar-width = 40 diff --git a/aerc/binds.conf b/aerc/binds.conf new file mode 100644 index 0000000..c846546 --- /dev/null +++ b/aerc/binds.conf @@ -0,0 +1,17 @@ +L = :next-tab +H = :prev-tab +? = :help keys + = :prompt 'Quit?' quit + +[messages] +q = :prompt 'Quit?' quit + = :view + +j = :next +k = :prev +J = :next-folder +K = :prev-folder + = :next 50% + = :prev 50% +g = :select 0 +G = :select -1 diff --git a/alacritty/alacritty.toml b/alacritty/alacritty.toml new file mode 100644 index 0000000..2eac6e7 --- /dev/null +++ b/alacritty/alacritty.toml @@ -0,0 +1,613 @@ +live_config_reload = true + +[bell] +animation = "EaseOutExpo" +duration = 0 + +[colors] +draw_bold_text_with_bright_colors = true + +[colors.bright] +black = "0x666666" +blue = "0x7aa6da" +cyan = "0x54ced6" +green = "0x00cf00" +magenta = "0xb77ee0" +red = "0xff3334" +white = "0xffffff" +yellow = "0xe7c547" + +[colors.dim] +black = "0x333333" +blue = "0x6699cc" +cyan = "0x66cccc" +green = "0x99cc99" +magenta = "0xcc99cc" +red = "0xf2777a" +white = "0xdddddd" +yellow = "0xffcc66" + +[colors.normal] +black = "0x000000" +blue = "0x7aa6da" +cyan = "0x70c0ba" +green = "0x00af00" +magenta = "0xc397d8" +red = "0xd54e53" +white = "0xffffff" +yellow = "0xe6c547" + +[colors.primary] +background = "0x000000" +foreground = "0xeaeaea" + +[cursor] +style = "Block" +unfocused_hollow = true + +[font] +size = 14 + +[font.bold] +family = "monospace" +style = "Bold" + +[font.glyph_offset] +x = 0 +y = 0 + +[font.italic] +family = "monospace" +style = "Italic" + +[font.normal] +family = "monospace" +style = "Regular" + +[font.offset] +x = 0 +y = 0 + +[[keyboard.bindings]] +action = "Paste" +key = "V" +mods = "Control|Shift" + +[[keyboard.bindings]] +action = "Copy" +key = "C" +mods = "Control|Shift" + +[[keyboard.bindings]] +action = "Paste" +key = "Paste" + +[[keyboard.bindings]] +action = "Copy" +key = "Copy" + +[[keyboard.bindings]] +action = "Quit" +key = "Q" +mods = "Command" + +[[keyboard.bindings]] +action = "Quit" +key = "W" +mods = "Command" + +[[keyboard.bindings]] +action = "PasteSelection" +key = "Insert" +mods = "Shift" + +[[keyboard.bindings]] +action = "ResetFontSize" +key = "Key0" +mods = "Control" + +[[keyboard.bindings]] +action = "IncreaseFontSize" +key = "Equals" +mods = "Control" + +[[keyboard.bindings]] +action = "DecreaseFontSize" +key = "Minus" +mods = "Control" + +[[keyboard.bindings]] +chars = "\u001BOH" +key = "Home" +mode = "AppCursor" + +[[keyboard.bindings]] +chars = "\u001B[H" +key = "Home" +mode = "~AppCursor" + +[[keyboard.bindings]] +chars = "\u001BOF" +key = "End" +mode = "AppCursor" + +[[keyboard.bindings]] +chars = "\u001B[F" +key = "End" +mode = "~AppCursor" + +[[keyboard.bindings]] +chars = "\u001B[5;2~" +key = "PageUp" +mods = "Shift" + +[[keyboard.bindings]] +chars = "\u001B[5;5~" +key = "PageUp" +mods = "Control" + +[[keyboard.bindings]] +chars = "\u001B[5~" +key = "PageUp" + +[[keyboard.bindings]] +chars = "\u001B[6;2~" +key = "PageDown" +mods = "Shift" + +[[keyboard.bindings]] +chars = "\u001B[6;5~" +key = "PageDown" +mods = "Control" + +[[keyboard.bindings]] +chars = "\u001B[6~" +key = "PageDown" + +[[keyboard.bindings]] +chars = "\u001B[Z" +key = "Tab" +mods = "Shift" + +[[keyboard.bindings]] +chars = "\u007F" +key = "Back" + +[[keyboard.bindings]] +chars = "\u001B\u007F" +key = "Back" +mods = "Alt" + +[[keyboard.bindings]] +chars = "\u001B[2~" +key = "Insert" + +[[keyboard.bindings]] +chars = "\u001B[3~" +key = "Delete" + +[[keyboard.bindings]] +chars = "\u001B[1;2D" +key = "Left" +mods = "Shift" + +[[keyboard.bindings]] +chars = "\u001B[1;5D" +key = "Left" +mods = "Control" + +[[keyboard.bindings]] +chars = "\u001B[1;3D" +key = "Left" +mods = "Alt" + +[[keyboard.bindings]] +chars = "\u001B[1;7D" +key = "Left" +mods = "Control|Alt" + +[[keyboard.bindings]] +chars = "\u001B[D" +key = "Left" +mode = "~AppCursor" + +[[keyboard.bindings]] +chars = "\u001BOD" +key = "Left" +mode = "AppCursor" + +[[keyboard.bindings]] +chars = "\u001B[1;2C" +key = "Right" +mods = "Shift" + +[[keyboard.bindings]] +chars = "\u001B[1;5C" +key = "Right" +mods = "Control" + +[[keyboard.bindings]] +chars = "\u001B[1;3C" +key = "Right" +mods = "Alt" + +[[keyboard.bindings]] +chars = "\u001B[1;7C" +key = "Right" +mods = "Control|Alt" + +[[keyboard.bindings]] +chars = "\u001B[C" +key = "Right" +mode = "~AppCursor" + +[[keyboard.bindings]] +chars = "\u001BOC" +key = "Right" +mode = "AppCursor" + +[[keyboard.bindings]] +chars = "\u001B[1;2A" +key = "Up" +mods = "Shift" + +[[keyboard.bindings]] +chars = "\u001B[1;5A" +key = "Up" +mods = "Control" + +[[keyboard.bindings]] +chars = "\u001B[1;3A" +key = "Up" +mods = "Alt" + +[[keyboard.bindings]] +chars = "\u001B[A" +key = "Up" +mode = "~AppCursor" + +[[keyboard.bindings]] +chars = "\u001BOA" +key = "Up" +mode = "AppCursor" + +[[keyboard.bindings]] +chars = "\u001B[1;2B" +key = "Down" +mods = "Shift" + +[[keyboard.bindings]] +chars = "\u001B[1;5B" +key = "Down" +mods = "Control" + +[[keyboard.bindings]] +chars = "\u001B[1;3B" +key = "Down" +mods = "Alt" + +[[keyboard.bindings]] +chars = "\u001B[B" +key = "Down" +mode = "~AppCursor" + +[[keyboard.bindings]] +chars = "\u001BOB" +key = "Down" +mode = "AppCursor" + +[[keyboard.bindings]] +chars = "\u001BOP" +key = "F1" + +[[keyboard.bindings]] +chars = "\u001BOQ" +key = "F2" + +[[keyboard.bindings]] +chars = "\u001BOR" +key = "F3" + +[[keyboard.bindings]] +chars = "\u001BOS" +key = "F4" + +[[keyboard.bindings]] +chars = "\u001B[15~" +key = "F5" + +[[keyboard.bindings]] +chars = "\u001B[17~" +key = "F6" + +[[keyboard.bindings]] +chars = "\u001B[18~" +key = "F7" + +[[keyboard.bindings]] +chars = "\u001B[19~" +key = "F8" + +[[keyboard.bindings]] +chars = "\u001B[20~" +key = "F9" + +[[keyboard.bindings]] +chars = "\u001B[21~" +key = "F10" + +[[keyboard.bindings]] +chars = "\u001B[23~" +key = "F11" + +[[keyboard.bindings]] +chars = "" +key = "F12" + +[[keyboard.bindings]] +chars = "\u001B[1;2P" +key = "F1" +mods = "Shift" + +[[keyboard.bindings]] +chars = "\u001B[1;2Q" +key = "F2" +mods = "Shift" + +[[keyboard.bindings]] +chars = "\u001B[1;2R" +key = "F3" +mods = "Shift" + +[[keyboard.bindings]] +chars = "\u001B[1;2S" +key = "F4" +mods = "Shift" + +[[keyboard.bindings]] +chars = "\u001B[15;2~" +key = "F5" +mods = "Shift" + +[[keyboard.bindings]] +chars = "\u001B[17;2~" +key = "F6" +mods = "Shift" + +[[keyboard.bindings]] +chars = "\u001B[18;2~" +key = "F7" +mods = "Shift" + +[[keyboard.bindings]] +chars = "\u001B[19;2~" +key = "F8" +mods = "Shift" + +[[keyboard.bindings]] +chars = "\u001B[20;2~" +key = "F9" +mods = "Shift" + +[[keyboard.bindings]] +chars = "\u001B[21;2~" +key = "F10" +mods = "Shift" + +[[keyboard.bindings]] +chars = "\u001B[23;2~" +key = "F11" +mods = "Shift" + +[[keyboard.bindings]] +chars = "\u001B[24;2~" +key = "F12" +mods = "Shift" + +[[keyboard.bindings]] +chars = "\u001B[1;5P" +key = "F1" +mods = "Control" + +[[keyboard.bindings]] +chars = "\u001B[1;5Q" +key = "F2" +mods = "Control" + +[[keyboard.bindings]] +chars = "\u001B[1;5R" +key = "F3" +mods = "Control" + +[[keyboard.bindings]] +chars = "\u001B[1;5S" +key = "F4" +mods = "Control" + +[[keyboard.bindings]] +chars = "\u001B[15;5~" +key = "F5" +mods = "Control" + +[[keyboard.bindings]] +chars = "\u001B[17;5~" +key = "F6" +mods = "Control" + +[[keyboard.bindings]] +chars = "\u001B[18;5~" +key = "F7" +mods = "Control" + +[[keyboard.bindings]] +chars = "\u001B[19;5~" +key = "F8" +mods = "Control" + +[[keyboard.bindings]] +chars = "\u001B[20;5~" +key = "F9" +mods = "Control" + +[[keyboard.bindings]] +chars = "\u001B[21;5~" +key = "F10" +mods = "Control" + +[[keyboard.bindings]] +chars = "\u001B[23;5~" +key = "F11" +mods = "Control" + +[[keyboard.bindings]] +chars = "\u001B[24;5~" +key = "F12" +mods = "Control" + +[[keyboard.bindings]] +chars = "\u001B[1;6P" +key = "F1" +mods = "Alt" + +[[keyboard.bindings]] +chars = "\u001B[1;6Q" +key = "F2" +mods = "Alt" + +[[keyboard.bindings]] +chars = "\u001B[1;6R" +key = "F3" +mods = "Alt" + +[[keyboard.bindings]] +chars = "\u001B[1;6S" +key = "F4" +mods = "Alt" + +[[keyboard.bindings]] +chars = "\u001B[15;6~" +key = "F5" +mods = "Alt" + +[[keyboard.bindings]] +chars = "\u001B[17;6~" +key = "F6" +mods = "Alt" + +[[keyboard.bindings]] +chars = "\u001B[18;6~" +key = "F7" +mods = "Alt" + +[[keyboard.bindings]] +chars = "\u001B[19;6~" +key = "F8" +mods = "Alt" + +[[keyboard.bindings]] +chars = "\u001B[20;6~" +key = "F9" +mods = "Alt" + +[[keyboard.bindings]] +chars = "\u001B[21;6~" +key = "F10" +mods = "Alt" + +[[keyboard.bindings]] +chars = "\u001B[23;6~" +key = "F11" +mods = "Alt" + +[[keyboard.bindings]] +chars = "\u001B[24;6~" +key = "F12" +mods = "Alt" + +[[keyboard.bindings]] +chars = "\u001B[1;3P" +key = "F1" +mods = "Super" + +[[keyboard.bindings]] +chars = "\u001B[1;3Q" +key = "F2" +mods = "Super" + +[[keyboard.bindings]] +chars = "\u001B[1;3R" +key = "F3" +mods = "Super" + +[[keyboard.bindings]] +chars = "\u001B[1;3S" +key = "F4" +mods = "Super" + +[[keyboard.bindings]] +chars = "\u001B[15;3~" +key = "F5" +mods = "Super" + +[[keyboard.bindings]] +chars = "\u001B[17;3~" +key = "F6" +mods = "Super" + +[[keyboard.bindings]] +chars = "\u001B[18;3~" +key = "F7" +mods = "Super" + +[[keyboard.bindings]] +chars = "\u001B[19;3~" +key = "F8" +mods = "Super" + +[[keyboard.bindings]] +chars = "\u001B[20;3~" +key = "F9" +mods = "Super" + +[[keyboard.bindings]] +chars = "\u001B[21;3~" +key = "F10" +mods = "Super" + +[[keyboard.bindings]] +chars = "\u001B[23;3~" +key = "F11" +mods = "Super" + +[[keyboard.bindings]] +chars = "\u001B[24;3~" +key = "F12" +mods = "Super" + +[mouse] +hide_when_typing = false + +[[mouse.bindings]] +action = "PasteSelection" +mouse = "Middle" + +[scrolling] +history = 10000 +multiplier = 3 + +[selection] +save_to_clipboard = false +semantic_escape_chars = ",│`|:\"' ()[]{}<>" + +[window] +decorations = "full" +dynamic_title = true +opacity = 1.0 + +[window.dimensions] +columns = 80 +lines = 24 + +[window.padding] +x = 2 +y = 2 diff --git a/alacritty/alacritty.yml b/alacritty/alacritty.yml deleted file mode 100644 index 1285d95..0000000 --- a/alacritty/alacritty.yml +++ /dev/null @@ -1,454 +0,0 @@ -# Configuration for Alacritty, the GPU enhanced terminal emulator. - -# 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: xterm-256color - -window: - # Window dimensions (changes require restart) - # - # Specified in number of columns/lines, not pixels. - # If both are `0`, this setting is ignored. - dimensions: - columns: 80 - lines: 24 - - # 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: 2 - y: 2 - - # Window decorations - # - # Values for `decorations`: - # - full: Borders and title bar - # - none: Neither borders nor title bar - decorations: full - - dynamic_title: true - - opacity: 1.0 - -scrolling: - # Maximum number of lines in the scrollback buffer. - # Specifying '0' will disable scrolling. - history: 10000 - - # Number of lines the viewport will move for every line scrolled when - # scrollback is enabled (history > 0). - multiplier: 3 - - -# Font configuration (changes require restart) -# -# Important font attributes like antialiasing, subpixel aa, and hinting can be -# controlled through fontconfig. Specifically, the following attributes should -# have an effect: -# - hintstyle -# - antialias -# - lcdfilter -# - rgba -# -# For instance, if you wish to disable subpixel antialiasing, you might set the -# rgba property to `none`. If you wish to completely disable antialiasing, you -# can set antialias to `false`. -# -# Please see these resources for more information on how to use fontconfig: -# - https://wiki.archlinux.org/index.php/font_configuration#Fontconfig_configuration -# - file:///usr/share/doc/fontconfig/fontconfig-user.html -font: - # Normal (roman) font face - normal: - family: monospace - # The `style` can be specified to pick a specific face. - style: Regular - - # Bold font face - bold: - family: monospace - # The `style` can be specified to pick a specific face. - style: Bold - - # Italic font face - italic: - family: monospace - # The `style` can be specified to pick a specific face. - style: Italic - - # Point size - size: 14 - - # 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 upwards. - glyph_offset: - x: 0 - y: 0 - - # Scale the font size based on the monitor's DPI. This will lead to bigger text on HiDPI - # screens and make reading text a little easier. - # On X11 it is possible to change the DPI for each instance of alacritty by using - # `WINIT_HIDPI_FACTOR=1.0 alacritty` to scale the font. - #scale_with_dpi: true - - -# If `true`, bold text is drawn using the bright color variants. -draw_bold_text_with_bright_colors: true - -# Colors (Tomorrow Night Bright) -colors: - # Default colors - primary: - background: '0x000000' - foreground: '0xeaeaea' - - # 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: '0x9a9a9a' - #bright_foreground: '0xffffff' - - # Cursor colors - # - # Colors which should be used to draw the terminal cursor. If these are unset, - # the cursor color will be the inverse of the cell color. - #cursor: - # text: '0x000000' - # cursor: '0xffffff' - - # Normal colors - normal: - black: '0x000000' - red: '0xd54e53' - green: '0x00af00' - yellow: '0xe6c547' - blue: '0x7aa6da' - magenta: '0xc397d8' - cyan: '0x70c0ba' - white: '0xffffff' - - # Bright colors - bright: - black: '0x666666' - red: '0xff3334' - green: '0x00cf00' - yellow: '0xe7c547' - blue: '0x7aa6da' - magenta: '0xb77ee0' - cyan: '0x54ced6' - white: '0xffffff' - - # Dim colors - # - # If the dim colors are not set, they will be calculated automatically based - # on the `normal` colors. - dim: - black: '0x333333' - red: '0xf2777a' - green: '0x99cc99' - yellow: '0xffcc66' - blue: '0x6699cc' - magenta: '0xcc99cc' - cyan: '0x66cccc' - white: '0xdddddd' - - # Indexed Colors - # - # The indexed colors include all colors from 16 to 256. - # When these are not set, they're filled with sensible defaults. - #indexed_colors: - # - { index: 16, color: '0x000000' } - -# Visual Bell -# -# Any time the BEL code is received, Alacritty "rings" the visual bell. Once -# rung, the terminal background will be set to white and transition back to the -# default background color. You can control the rate of this transition by -# setting the `duration` property (represented in milliseconds). You can also -# configure the transition function by setting the `animation` property. -# -# Values for `animation`: -# - Ease -# - EaseOut -# - EaseOutSine -# - EaseOutQuad -# - EaseOutCubic -# - EaseOutQuart -# - EaseOutQuint -# - EaseOutExpo -# - EaseOutCirc -# - Linear -# -# Specifying a `duration` of `0` will disable the visual bell. -bell: - animation: EaseOutExpo - duration: 0 - -# Mouse bindings -# -# Available fields: -# - mouse -# - action -# - mods (optional) -# -# Values for `mouse`: -# - Middle -# - Left -# - Right -# - Numeric identifier such as `5` -# -# All available `mods` and `action` values are documented in the key binding -# section. -mouse_bindings: - - { mouse: Middle, action: PasteSelection } - -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 - -selection: - semantic_escape_chars: ",│`|:\"' ()[]{}<>" - - # When set to `true`, selected text will be copied to both the primary and - # the selection clipboard. Otherwise, it will only be copied to the selection - # clipboard. - save_to_clipboard: false - - -cursor: - # Cursor style - # - # Values for 'style': - # - ▇ Block - # - _ Underline - # - | Beam - style: Block - - # If this is `true`, the cursor will be rendered as a hollow box when the - # window is not focused. - unfocused_hollow: true - -# 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. -#shell: -# program: /bin/bash -# args: -# - --login - -# Key bindings -# -# Key bindings are specified as a list of objects. Each binding will specify -# a key and modifiers required to trigger it, terminal modes where the binding -# is applicable, and what should be done when the key binding fires. It can -# either send a byte sequnce to the running application (`chars`), execute -# a predefined action (`action`) or fork and execute a specified command plus -# arguments (`command`). -# -# Example: -# `- { key: V, mods: Command, action: Paste }` -# -# Available fields: -# - key -# - mods (optional) -# - chars | action | command (exactly one required) -# - mode (optional) -# -# Values for `key`: -# - `A` -> `Z` -# - `F1` -> `F12` -# - `Key1` -> `Key0` -# -# A full list with available key codes can be found here: -# https://docs.rs/glutin/*/glutin/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` -# -# Values for `mods`: -# - Command -# - Control -# - Shift -# - Alt -# -# Multiple `mods` can be combined using `|` like this: `mods: Control|Shift`. -# Whitespace and capitalization is relevant and must match the example. -# -# Values for `chars`: -# 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. -# -# Values for `action`: -# - Paste -# - PasteSelection -# - Copy -# - IncreaseFontSize -# - DecreaseFontSize -# - ResetFontSize -# - ScrollPageUp -# - ScrollPageDown -# - ScrollToTop -# - ScrollToBottom -# - ClearHistory -# - Hide -# - Quit -# -# Values for `command`: -# The `command` field must be a map containing a `program` string and -# an `args` array of command line parameter strings. -# -# Example: -# `command: { program: "alacritty", args: ["-e", "vttest"] }` -# -# Values for `mode`: -# - ~AppCursor -# - AppCursor -# - ~AppKeypad -# - AppKeypad -key_bindings: - - { key: V, mods: Control|Shift, action: Paste } - - { key: C, mods: Control|Shift, action: Copy } - - { key: Paste, action: Paste } - - { key: Copy, action: Copy } - - { key: Q, mods: Command, action: Quit } - - { key: W, mods: Command, action: Quit } - - { key: Insert, mods: Shift, action: PasteSelection } - - { key: Key0, mods: Control, action: ResetFontSize } - - { key: Equals, mods: Control, action: IncreaseFontSize } - - { key: Minus, mods: Control, action: DecreaseFontSize } - - { key: Home, chars: "\x1bOH", mode: AppCursor } - - { key: Home, chars: "\x1b[H", mode: ~AppCursor } - - { key: End, chars: "\x1bOF", mode: AppCursor } - - { key: End, chars: "\x1b[F", mode: ~AppCursor } - - { key: PageUp, mods: Shift, chars: "\x1b[5;2~" } - - { key: PageUp, mods: Control, chars: "\x1b[5;5~" } - - { key: PageUp, chars: "\x1b[5~" } - - { key: PageDown, mods: Shift, chars: "\x1b[6;2~" } - - { key: PageDown, mods: Control, chars: "\x1b[6;5~" } - - { key: PageDown, chars: "\x1b[6~" } - - { key: Tab, mods: Shift, chars: "\x1b[Z" } - - { key: Back, chars: "\x7f" } - - { key: Back, mods: Alt, chars: "\x1b\x7f" } - - { key: Insert, chars: "\x1b[2~" } - - { key: Delete, chars: "\x1b[3~" } - - { key: Left, mods: Shift, chars: "\x1b[1;2D" } - - { key: Left, mods: Control, chars: "\x1b[1;5D" } - - { key: Left, mods: Alt, chars: "\x1b[1;3D" } - - { key: Left, mods: Control|Alt, chars: "\x1b[1;7D" } - - { key: Left, chars: "\x1b[D", mode: ~AppCursor } - - { key: Left, chars: "\x1bOD", mode: AppCursor } - - { key: Right, mods: Shift, chars: "\x1b[1;2C" } - - { key: Right, mods: Control, chars: "\x1b[1;5C" } - - { key: Right, mods: Alt, chars: "\x1b[1;3C" } - - { key: Right, mods: Control|Alt, chars: "\x1b[1;7C" } - - { key: Right, chars: "\x1b[C", mode: ~AppCursor } - - { key: Right, chars: "\x1bOC", mode: AppCursor } - - { key: Up, mods: Shift, chars: "\x1b[1;2A" } - - { key: Up, mods: Control, chars: "\x1b[1;5A" } - - { key: Up, mods: Alt, chars: "\x1b[1;3A" } - - { key: Up, chars: "\x1b[A", mode: ~AppCursor } - - { key: Up, chars: "\x1bOA", mode: AppCursor } - - { key: Down, mods: Shift, chars: "\x1b[1;2B" } - - { key: Down, mods: Control, chars: "\x1b[1;5B" } - - { key: Down, mods: Alt, chars: "\x1b[1;3B" } - - { key: Down, chars: "\x1b[B", mode: ~AppCursor } - - { key: Down, chars: "\x1bOB", mode: AppCursor } - - { key: F1, chars: "\x1bOP" } - - { key: F2, chars: "\x1bOQ" } - - { key: F3, chars: "\x1bOR" } - - { key: F4, chars: "\x1bOS" } - - { key: F5, chars: "\x1b[15~" } - - { key: F6, chars: "\x1b[17~" } - - { key: F7, chars: "\x1b[18~" } - - { key: F8, chars: "\x1b[19~" } - - { key: F9, chars: "\x1b[20~" } - - { key: F10, chars: "\x1b[21~" } - - { key: F11, chars: "\x1b[23~" } - - { key: F12, chars: "" } - - { key: F1, mods: Shift, chars: "\x1b[1;2P" } - - { key: F2, mods: Shift, chars: "\x1b[1;2Q" } - - { key: F3, mods: Shift, chars: "\x1b[1;2R" } - - { key: F4, mods: Shift, chars: "\x1b[1;2S" } - - { key: F5, mods: Shift, chars: "\x1b[15;2~" } - - { key: F6, mods: Shift, chars: "\x1b[17;2~" } - - { key: F7, mods: Shift, chars: "\x1b[18;2~" } - - { key: F8, mods: Shift, chars: "\x1b[19;2~" } - - { key: F9, mods: Shift, chars: "\x1b[20;2~" } - - { key: F10, mods: Shift, chars: "\x1b[21;2~" } - - { key: F11, mods: Shift, chars: "\x1b[23;2~" } - - { key: F12, mods: Shift, chars: "\x1b[24;2~" } - - { key: F1, mods: Control, chars: "\x1b[1;5P" } - - { key: F2, mods: Control, chars: "\x1b[1;5Q" } - - { key: F3, mods: Control, chars: "\x1b[1;5R" } - - { key: F4, mods: Control, chars: "\x1b[1;5S" } - - { key: F5, mods: Control, chars: "\x1b[15;5~" } - - { key: F6, mods: Control, chars: "\x1b[17;5~" } - - { key: F7, mods: Control, chars: "\x1b[18;5~" } - - { key: F8, mods: Control, chars: "\x1b[19;5~" } - - { key: F9, mods: Control, chars: "\x1b[20;5~" } - - { key: F10, mods: Control, chars: "\x1b[21;5~" } - - { key: F11, mods: Control, chars: "\x1b[23;5~" } - - { key: F12, mods: Control, chars: "\x1b[24;5~" } - - { key: F1, mods: Alt, chars: "\x1b[1;6P" } - - { key: F2, mods: Alt, chars: "\x1b[1;6Q" } - - { key: F3, mods: Alt, chars: "\x1b[1;6R" } - - { key: F4, mods: Alt, chars: "\x1b[1;6S" } - - { key: F5, mods: Alt, chars: "\x1b[15;6~" } - - { key: F6, mods: Alt, chars: "\x1b[17;6~" } - - { key: F7, mods: Alt, chars: "\x1b[18;6~" } - - { key: F8, mods: Alt, chars: "\x1b[19;6~" } - - { key: F9, mods: Alt, chars: "\x1b[20;6~" } - - { key: F10, mods: Alt, chars: "\x1b[21;6~" } - - { key: F11, mods: Alt, chars: "\x1b[23;6~" } - - { key: F12, mods: Alt, chars: "\x1b[24;6~" } - - { key: F1, mods: Super, chars: "\x1b[1;3P" } - - { key: F2, mods: Super, chars: "\x1b[1;3Q" } - - { key: F3, mods: Super, chars: "\x1b[1;3R" } - - { key: F4, mods: Super, chars: "\x1b[1;3S" } - - { key: F5, mods: Super, chars: "\x1b[15;3~" } - - { key: F6, mods: Super, chars: "\x1b[17;3~" } - - { key: F7, mods: Super, chars: "\x1b[18;3~" } - - { key: F8, mods: Super, chars: "\x1b[19;3~" } - - { key: F9, mods: Super, chars: "\x1b[20;3~" } - - { key: F10, mods: Super, chars: "\x1b[21;3~" } - - { key: F11, mods: Super, chars: "\x1b[23;3~" } - - { key: F12, mods: Super, chars: "\x1b[24;3~" } diff --git a/chromium/chromium b/chromium/chromium index 8498b76..1e74a62 100755 --- a/chromium/chromium +++ b/chromium/chromium @@ -1,6 +1,9 @@ #!/bin/sh -exec /usr/bin/chromium \ - $([ -n "$WAYLAND_DISPLAY" ] && \ - echo "--enable-features=UseOzonePlatform --ozone-platform=wayland") \ - "$@" +if [ -n "$WAYLAND_DISPLAY" ]; then + args="--enable-features=UseOzonePlatform --ozone-platform=wayland" +else + args="" +fi + +exec /usr/bin/chromium $args "$@" diff --git a/drawio/drawio b/drawio/drawio index d38d17f..4bb3cd9 100755 --- a/drawio/drawio +++ b/drawio/drawio @@ -4,7 +4,10 @@ # let argv = process.argv; # argv = argv.filter(i => !i.startsWith('--enable-features=') && !i.startsWith('--ozone-platform=')); -exec electron25 \ - $([ -n "$WAYLAND_DISPLAY" ] && \ - echo "--enable-features=UseOzonePlatform --ozone-platform=wayland") \ - /usr/lib/draw.io "$@" +if [ -n "$WAYLAND_DISPLAY" ]; then + args="--enable-features=UseOzonePlatform --ozone-platform=wayland" +else + args="" +fi + +exec electron25 $args /usr/lib/draw.io "$@" diff --git a/foot/foot.ini b/foot/foot.ini index 98b09a6..65affb1 100644 --- a/foot/foot.ini +++ b/foot/foot.ini @@ -70,7 +70,8 @@ include=/usr/share/foot/themes/tango # alternate-scroll-mode=yes [colors] -# alpha=1.0 +alpha=1.0 +foreground=dcdcdc # foreground=dcdccc # background=111111 # background=080808 @@ -84,6 +85,7 @@ include=/usr/share/foot/themes/tango # regular5=dc8cc3 # magenta # regular6=93e0e3 # cyan # regular7=dcdccc # white +regular7=dcdcdc ## Bright colors (color palette 8-15) # bright0=666666 # bright black @@ -93,7 +95,7 @@ include=/usr/share/foot/themes/tango # bright4=8cd0d3 # bright blue # bright5=fcace3 # bright magenta # bright6=b3ffff # bright cyan -# bright7=ffffff # bright white +bright7=ffffff # bright white ## dimmed colors (see foot.ini(5) man page) # dim0= diff --git a/git/.gitconfig b/git/.gitconfig index 77ecd9f..1da265b 100644 --- a/git/.gitconfig +++ b/git/.gitconfig @@ -26,3 +26,8 @@ submodulesummary = 1 [init] defaultBranch = master +[sendemail] + smtpserver = echo.mxrouting.net + smtpuser = bozo@kopic.xyz + smtpencryption = ssl + smtpserverport = 465 diff --git a/install.sh b/install.sh index acbb0ba..532f357 100755 --- a/install.sh +++ b/install.sh @@ -6,12 +6,16 @@ symlink () { ln -sfT "$@" } -DOTFILES_DIR=~/.dotfiles -CONFIG_DIR=~/.config -LOCAL_DIR=~/.local -PICTURES_DIR=~/.pictures -REPOS_DIR=~/repos -VM_DIR=~/vm +if [ ! -d "$HOME" ]; then + echo "invalid \$HOME" + exit 1 +fi + +DOTFILES_DIR=$HOME/.dotfiles +CONFIG_DIR=$HOME/.config +LOCAL_DIR=$HOME/.local +PICTURES_DIR=$HOME/.pictures +REPOS_DIR=$HOME/repos BIN_DIR=$LOCAL_DIR/bin OPT_DIR=$LOCAL_DIR/opt @@ -27,6 +31,11 @@ mkdir -p $CONFIG_DIR \ symlink $(cd $(dirname "$0"); pwd -P) $DOTFILES_DIR +# aerc +mkdir -p $CONFIG_DIR/aerc +symlink $DOTFILES_DIR/aerc/aerc.conf $CONFIG_DIR/aerc/aerc.conf +symlink $DOTFILES_DIR/aerc/binds.conf $CONFIG_DIR/aerc/binds.conf + # alacritty symlink $DOTFILES_DIR/alacritty $CONFIG_DIR/alacritty @@ -49,11 +58,11 @@ mkdir -p $CONFIG_DIR/cudatext/settings symlink $DOTFILES_DIR/cudatext/user.json $CONFIG_DIR/cudatext/settings/user.json # drawio -if [ -f /usr/share/applications/drawio.desktop ]; then +if [ -f /usr/share/applications/draw.io.desktop ]; then symlink $DOTFILES_DIR/drawio/drawio $BIN_DIR/drawio - cp /usr/share/applications/drawio.desktop $APP_DIR + cp /usr/share/applications/draw.io.desktop $APP_DIR sed -i "s/^Exec=\\S*/Exec=$(cd $LOCAL_DIR; pwd | sed 's/\//\\\//g')\\/bin\\/drawio/g" \ - $APP_DIR/drawio.desktop + $APP_DIR/draw.io.desktop fi # dunst @@ -66,7 +75,7 @@ symlink $DOTFILES_DIR/fontconfig $CONFIG_DIR/fontconfig symlink $DOTFILES_DIR/foot $CONFIG_DIR/foot # git -symlink $DOTFILES_DIR/git/.gitconfig ~/.gitconfig +symlink $DOTFILES_DIR/git/.gitconfig $HOME/.gitconfig # i3 symlink $DOTFILES_DIR/i3 $CONFIG_DIR/i3 @@ -116,6 +125,7 @@ symlink $DOTFILES_DIR/ranger $CONFIG_DIR/ranger # river symlink $DOTFILES_DIR/river $CONFIG_DIR/river +symlink $DOTFILES_DIR/river/run-river.sh $BIN_DIR/run-river # rofi symlink $DOTFILES_DIR/rofi $CONFIG_DIR/rofi @@ -124,18 +134,18 @@ symlink $DOTFILES_DIR/rofi $CONFIG_DIR/rofi symlink $DOTFILES_DIR/setkbmap/setkbmap $BIN_DIR/setkbmap # shell -symlink $DOTFILES_DIR/shell/.profile ~/.profile +symlink $DOTFILES_DIR/shell/.profile $HOME/.profile # shell - bash -symlink $DOTFILES_DIR/shell/bash/.bashrc ~/.bashrc -symlink ~/.profile ~/.bash_profile +symlink $DOTFILES_DIR/shell/bash/.bashrc $HOME/.bashrc +symlink $HOME/.profile $HOME/.bash_profile # shell - fish symlink $DOTFILES_DIR/shell/fish $CONFIG_DIR/fish # shell - zsh -symlink $DOTFILES_DIR/shell/zsh/.zshrc ~/.zshrc -symlink ~/.profile ~/.zprofile +symlink $DOTFILES_DIR/shell/zsh/.zshrc $HOME/.zshrc +symlink $HOME/.profile $HOME/.zprofile # sublime-text mkdir -p $CONFIG_DIR/sublime-text/Packages/User @@ -158,20 +168,7 @@ symlink $DOTFILES_DIR/sway/run-sway.sh $BIN_DIR/run-sway symlink $DOTFILES_DIR/tmux $CONFIG_DIR/tmux # vm -mkdir -p $VM_DIR/alpine/armv7 -mkdir -p $VM_DIR/alpine/x86_64 -mkdir -p $VM_DIR/archlinux/armv7 -mkdir -p $VM_DIR/debian/armv7 -mkdir -p $VM_DIR/netbsd -mkdir -p $VM_DIR/openbsd -mkdir -p $VM_DIR/win11 -symlink $DOTFILES_DIR/vm/alpine/x86_64/run.sh $VM_DIR/alpine/x86_64/run.sh -symlink $DOTFILES_DIR/vm/alpine/armv7/run.sh $VM_DIR/alpine/armv7/run.sh -symlink $DOTFILES_DIR/vm/archlinux/armv7/run.sh $VM_DIR/archlinux/armv7/run.sh -symlink $DOTFILES_DIR/vm/debian/armv7/run.sh $VM_DIR/debian/armv7/run.sh -symlink $DOTFILES_DIR/vm/netbsd/run.sh $VM_DIR/netbsd/run.sh -symlink $DOTFILES_DIR/vm/openbsd/run.sh $VM_DIR/openbsd/run.sh -symlink $DOTFILES_DIR/vm/win11/run.sh $VM_DIR/win11/run.sh +symlink $DOTFILES_DIR/vm/run.sh $BIN_DIR/vm # nvim mkdir -p $CONFIG_DIR/nvim @@ -181,7 +178,7 @@ symlink $DOTFILES_DIR/nvim/init.lua $CONFIG_DIR/nvim/init.lua symlink $DOTFILES_DIR/waybar $CONFIG_DIR/waybar # xorg -symlink $DOTFILES_DIR/xorg/.xinitrc ~/.xinitrc -symlink $DOTFILES_DIR/xorg/.Xresources ~/.Xresources +symlink $DOTFILES_DIR/xorg/.xinitrc $HOME/.xinitrc +symlink $DOTFILES_DIR/xorg/.Xresources $HOME/.Xresources symlink $DOTFILES_DIR/xorg/loadxresources $BIN_DIR/loadxresources symlink $DOTFILES_DIR/xorg/setwallpaper $BIN_DIR/setwallpaper diff --git a/neomutt/mailboxes.py b/neomutt/mailboxes.py new file mode 100644 index 0000000..d685553 --- /dev/null +++ b/neomutt/mailboxes.py @@ -0,0 +1,20 @@ +from pathlib import Path +import sys + + +def main(): + for inbox_dir in sys.argv[1:]: + inbox_dir = Path(inbox_dir).resolve() + print(inbox_dir, '', end='') + + for path in sorted(inbox_dir.glob('.*')): + if not path.is_dir(): + continue + + segments = path.name.split('.') + print(f'-label "{(len(segments) - 1) * 2 * " "}{segments[-1]}"', + path, '', end='') + + +if __name__ == '__main__': + main() diff --git a/nvim/init.lua b/nvim/init.lua index 13b834a..2226b2d 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -206,36 +206,12 @@ require('packer').startup { vim.keymap.set('', '', vim.cmd.NvimTreeToggle) end } - + use { - 'romgrk/barbar.nvim', - after = { - 'nvim-tree.lua', - 'nvim-web-devicons' - }, + 'akinsho/bufferline.nvim', + requires = 'nvim-tree/nvim-web-devicons', config = function() - require('bufferline').setup { - auto_hide = false - } - - local tree_events = require('nvim-tree.events') - local bufferline_api = require('bufferline.api') - - local function get_tree_size() - return require('nvim-tree.view').View.width - end - - tree_events.subscribe('TreeOpen', function() - bufferline_api.set_offset(get_tree_size()) - end) - - tree_events.subscribe('Resize', function() - bufferline_api.set_offset(get_tree_size()) - end) - - tree_events.subscribe('TreeClose', function() - bufferline_api.set_offset(0) - end) + require("bufferline").setup() end } diff --git a/qutebrowser/autoconfig.yml b/qutebrowser/autoconfig.yml index 90ed30f..a88f790 100644 --- a/qutebrowser/autoconfig.yml +++ b/qutebrowser/autoconfig.yml @@ -1,6 +1,6 @@ # If a config.py file exists, this file is ignored unless it's explicitly loaded # via config.load_autoconfig(). For more information, see: -# https://github.com/qutebrowser/qutebrowser/blob/master/doc/help/configuring.asciidoc#loading-autoconfigyml +# https://github.com/qutebrowser/qutebrowser/blob/main/doc/help/configuring.asciidoc#loading-autoconfigyml # DO NOT edit this file by hand, qutebrowser will overwrite it. # Instead, create a config.py - see :help for details. @@ -20,6 +20,8 @@ settings: global: default_size sans-serif qt.highdpi: global: true + scrolling.smooth: + global: true tabs.indicator.padding: global: bottom: 2 diff --git a/river/init b/river/init index 5adcc00..8fb3a70 100755 --- a/river/init +++ b/river/init @@ -2,6 +2,9 @@ mod=Mod4 +# displays="$(wlr-randr | grep -e '^[[:alnum:]]' | cut -d ' ' -f 1)" +# primary=eDP-1 + # riverctl map normal None F12 spawn ~/.config/river/terminal.sh # riverctl map normal None Print spawn spectacle @@ -17,10 +20,22 @@ riverctl map normal $mod+Shift Q close riverctl map normal $mod+Shift Return toggle-fullscreen riverctl map normal $mod+Shift Space toggle-float -for i in $(seq 1 9); do - tags=$((1 << ($i - 1))) - riverctl map normal $mod $i set-focused-tags $tags - riverctl map normal $mod+Shift $i set-view-tags $tags +riverctl map normal $mod h focus-view left +riverctl map normal $mod j focus-view down +riverctl map normal $mod k focus-view up +riverctl map normal $mod l focus-view right + +riverctl map normal $mod+Shift H swap left +riverctl map normal $mod+Shift J swap down +riverctl map normal $mod+Shift K swap up +riverctl map normal $mod+Shift L swap right + +for i in 1:1 2:2 3:3 4:4 5:a 6:s 7:d 8:f; do + index=${i%:*} + key=${i#*:} + tags=$((1 << ($index - 1))) + riverctl map normal $mod $key set-focused-tags $tags + riverctl map normal $mod+Shift $key set-view-tags $tags done riverctl focus-follows-cursor normal @@ -30,19 +45,28 @@ riverctl xcursor-theme default 32 riverctl default-layout rivertile # export GDK_DPI_SCALE=0.95 -gsettings set org.gnome.desktop.interface scaling-factor 1 -gsettings set org.gnome.desktop.interface text-scaling-factor 1 -gsettings set org.gnome.desktop.interface cursor-size 32 +if command -v gsettings > /dev/null; then + gsettings set org.gnome.desktop.interface scaling-factor 1 + gsettings set org.gnome.desktop.interface text-scaling-factor 1 + gsettings set org.gnome.desktop.interface cursor-size 32 +fi export QT_QPA_PLATFORM=wayland -systemctl --user import-environment \ - QT_QPA_PLATFORM \ - WAYLAND_DISPLAY \ - XDG_SESSION_TYPE \ - XDG_CURRENT_DESKTOP -dbus-update-activation-environment --systemd --all - -systemctl --user restart plasma-kactivitymanagerd.service +export XDG_CURRENT_DESKTOP=river + +if command -v systemctl > /dev/null; then + systemctl --user import-environment \ + QT_QPA_PLATFORM \ + SWAYSOCK \ + WAYLAND_DISPLAY \ + XDG_SESSION_TYPE \ + XDG_CURRENT_DESKTOP + dbus-update-activation-environment --systemd --all + + systemctl --user restart xdg-desktop-portal + systemctl --user restart xdg-desktop-portal-wlr + systemctl --user restart plasma-kactivitymanagerd +fi waybar -c ~/.config/waybar/river.conf & diff --git a/river/run-river.sh b/river/run-river.sh new file mode 100755 index 0000000..1fb1620 --- /dev/null +++ b/river/run-river.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +exec > ~/.river.log 2>&1 + +if ( ( command -v systemctl && systemctl --user is-system-running ) || + pgrep -U $(id -u) dbus-daemon ) > /dev/null; then + exec river +else + exec dbus-run-session -- river +fi diff --git a/shell/.profile b/shell/.profile index f0077e1..6a15331 100644 --- a/shell/.profile +++ b/shell/.profile @@ -8,6 +8,11 @@ prepend_path () { esac } +append_lua_path() { + LUA_PATH="${LUA_PATH:+$LUA_PATH;}$1/?.lua;$1/?/init.lua" + LUA_CPATH="${LUA_CPATH:+$LUA_CPATH;}$1/?.so" +} + [ -z "$XDG_RUNTIME_DIR" ] && \ export XDG_RUNTIME_DIR=/tmp/$(id -u)-runtime-dir @@ -34,7 +39,6 @@ export VISUAL=nvim prepend_path ~/.local/opt/river/bin prepend_path ~/.local/opt/janet/bin -prepend_path ~/.local/opt/pkgsrc/bin prepend_path ~/.local/opt/nnn/bin prepend_path ~/.local/bin export PATH @@ -42,6 +46,9 @@ export PATH [ -n "$(command -v luarocks)" ] && \ eval "$(luarocks path)" +append_lua_path ~/repos/private/bk-lua/src_lua +export LUA_PATH +export LUA_CPATH # nix_profile_sh=~/.nix-profile/etc/profile.d/nix.sh # [ -e $nix_profile_sh ] && . $nix_profile_sh diff --git a/sublime-text/LSP.sublime-settings b/sublime-text/LSP.sublime-settings index 600a0dd..b5cece1 100644 --- a/sublime-text/LSP.sublime-settings +++ b/sublime-text/LSP.sublime-settings @@ -5,21 +5,25 @@ "command": ["jedi-language-server"], "selector": "source.python", "enabled": false, + "diagnostics_mode": "open_files" }, "bash-language-server": { "command": ["bash-language-server", "start"], "selector": "source.shell.bash", "enabled": true, + "diagnostics_mode": "open_files" }, "clangd": { "command": ["clangd", "--header-insertion=never"], "selector": "source.c | source.c++", "enabled": true, + "diagnostics_mode": "open_files" }, "typescript-language-server": { "command": ["typescript-language-server", "--stdio"], "selector": "source.ts", "enabled": true, + "diagnostics_mode": "open_files" }, }, } diff --git a/sublime-text/Preferences.sublime-settings b/sublime-text/Preferences.sublime-settings index 4041136..8253f42 100644 --- a/sublime-text/Preferences.sublime-settings +++ b/sublime-text/Preferences.sublime-settings @@ -51,6 +51,8 @@ [ "AutoWrap", "Compare Side-By-Side", + "Material Theme", + "Package Control", "PackageResourceViewer", "Python", "SublimeLinter-eslint", @@ -72,4 +74,5 @@ "update_check": false, "sublime_merge_path": null, "show_panel_on_build": false, + "index_files": true, } diff --git a/sway/run-sway.sh b/sway/run-sway.sh index 7a48353..ed0c0d7 100755 --- a/sway/run-sway.sh +++ b/sway/run-sway.sh @@ -1,6 +1,8 @@ #!/bin/sh -if pidof dbus-daemon > /dev/null; then + +if ( ( command -v systemctl && systemctl --user is-system-running ) || + pgrep -U $(id -u) dbus-daemon ) > /dev/null; then exec sway > ~/.sway.log 2>&1 else exec dbus-run-session -- sway > ~/.sway.log 2>&1 diff --git a/tmux/tmux.conf b/tmux/tmux.conf index 9a5c623..acd45b1 100644 --- a/tmux/tmux.conf +++ b/tmux/tmux.conf @@ -17,18 +17,8 @@ set -g mouse on bind-key -n 'C-M-Left' prev bind-key -n 'C-M-Right' next -bind-key -n 'C-M-Up' new-window -bind-key -n 'C-M-Down' confirm-before -p "kill-window #W? (y/n)" kill-window - bind-key -n 'C-M-h' prev bind-key -n 'C-M-l' next -bind-key -n 'C-M-k' new-window -bind-key -n 'C-M-j' confirm-before -p "kill-window #W? (y/n)" kill-window - -#bind-key -n 'C-M-\\' split-window -h -#bind-key -n 'C-M-\-' split-window -bind-key -n 'C-M-x' confirm-before -p "kill-pane #P? (y/n)" kill-pane - set -g status-style "fg=black,bg=colour34" bind-key 'Up' select-pane -P 'fg=white,bg=black' diff --git a/vm/alpine-armv7.sh b/vm/alpine-armv7.sh new file mode 100644 index 0000000..2d6e6e7 --- /dev/null +++ b/vm/alpine-armv7.sh @@ -0,0 +1,39 @@ +: ${VM_CACHE:?} ${VM_DATA:?} + +alpine_url=https://dl-cdn.alpinelinux.org/alpine/v3.18/releases/armv7/alpine-uboot-3.18.4-armv7.tar.gz + +alpine_path=$VM_CACHE/$(basename -- "$alpine_url") +kernel_path=$VM_CACHE/vmlinuz-lts +initrd_path=$VM_CACHE/initramfs-lts + +image_path=$VM_DATA/alpine.qcow2 + + +if [ ! -f $alpine_path ]; then + curl -L -o $alpine_path $alpine_url +fi + +if [ ! -f $kernel_path ]; then + tar -x -f $alpine_path -C $(dirname $kernel_path) \ + --strip-components=2 ./boot/$(basename $kernel_path) +fi + +if [ ! -f $initrd_path ]; then + tar -x -f $alpine_path -C $(dirname $initrd_path) \ + --strip-components=2 ./boot/$(basename $initrd_path) +fi + +if [ ! -f $image_path ]; then + qemu-img create -f qcow2 $image_path 20G +fi + +exec qemu-system-arm \ + -M virt \ + -m 1G \ + -cpu cortex-a15 \ + -kernel $kernel_path \ + -initrd $initrd_path \ + -append "console=ttyAMA0" \ + -hda $image_path \ + -nographic \ + "$@" diff --git a/vm/alpine-x86_64.sh b/vm/alpine-x86_64.sh new file mode 100644 index 0000000..814977a --- /dev/null +++ b/vm/alpine-x86_64.sh @@ -0,0 +1,29 @@ +: ${VM_CACHE:?} ${VM_DATA:?} + +alpine_url=https://dl-cdn.alpinelinux.org/alpine/v3.14/releases/x86_64/alpine-virt-3.14.1-x86_64.iso + +iso_path=$VM_CACHE/alpine.iso + +image_path=$VM_DATA/alpine.qcow2 + + +if [ ! -f $iso_path ]; then + curl -L -o $iso_path $alpine_url +fi + +if [ ! -f $image_path ]; then + qemu-img create -f qcow2 $image_path 20G +fi + +exec qemu-system-x86_64 \ + -enable-kvm \ + -cpu host \ + -hda $image_path \ + -cdrom $iso_path \ + -m 2G \ + -device e1000,netdev=net0 \ + -netdev user,id=net0 \ + -usb \ + -device usb-tablet \ + -nographic \ + "$@" diff --git a/vm/alpine/armv7/run.sh b/vm/alpine/armv7/run.sh deleted file mode 100755 index 8e5f16d..0000000 --- a/vm/alpine/armv7/run.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - -set -e - -cd $(dirname -- "$0") - -[ -f alpine.tar.gz ] || \ - curl -L -o alpine.tar.gz https://dl-cdn.alpinelinux.org/alpine/v3.18/releases/armv7/alpine-uboot-3.18.4-armv7.tar.gz - -[ -f vmlinuz-lts ] || \ - tar -x -f alpine.tar.gz --strip-components=2 ./boot/vmlinuz-lts - -[ -f initramfs-lts ] || \ - tar -x -f alpine.tar.gz --strip-components=2 ./boot/initramfs-lts - -[ -f alpine.qcow2 ] || \ - qemu-img create -f qcow2 alpine.qcow2 20G - -exec qemu-system-arm \ - -M virt \ - -m 1G \ - -cpu cortex-a15 \ - -kernel vmlinuz-lts \ - -initrd initramfs-lts \ - -append "console=ttyAMA0" \ - -hda alpine.qcow2 \ - -nographic \ - "$@" diff --git a/vm/alpine/x86_64/run.sh b/vm/alpine/x86_64/run.sh deleted file mode 100755 index 8681b9d..0000000 --- a/vm/alpine/x86_64/run.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -set -e - -cd $(dirname -- "$0") - -if [ ! -f alpine.iso ]; then - curl -L -o alpine.iso https://dl-cdn.alpinelinux.org/alpine/v3.14/releases/x86_64/alpine-virt-3.14.1-x86_64.iso -fi - -if [ ! -f alpine.qcow2 ]; then - qemu-img create -f qcow2 alpine.qcow2 20G -fi - -exec qemu-system-x86_64 \ - -enable-kvm \ - -cpu host \ - -hda alpine.qcow2 \ - -cdrom alpine.iso \ - -m 2G \ - -device e1000,netdev=net0 \ - -netdev user,id=net0 \ - -usb \ - -device usb-tablet \ - "$@" diff --git a/vm/arch-armv7.sh b/vm/arch-armv7.sh new file mode 100644 index 0000000..41b3a1a --- /dev/null +++ b/vm/arch-armv7.sh @@ -0,0 +1,52 @@ +: ${VM_CACHE:?} ${VM_DATA:?} ${VM_TMP:?} + +arch_url=http://os.archlinuxarm.org/os/ArchLinuxARM-armv7-latest.tar.gz + +arch_path=$VM_CACHE/$(basename -- "$arch_url") +kernel_path=$VM_CACHE/zImage +initrd_path=$VM_CACHE/initramfs-linux.img + +image_path=$VM_DATA/image + + +if [ ! -f $arch_path ]; then + curl -L -o $arch_path $arch_url +fi + +if [ ! -f $kernel_path ]; then + bsdtar -x -f $arch_path -C $(dirname $kernel_path) \ + --strip-components=2 ./boot/$(basename $kernel_path) +fi + +if [ ! -f $initrd_path ]; then + bsdtar -x -f $arch_path -C $(dirname $initrd_path) \ + --strip-components=2 ./boot/$(basename $initrd_path) +fi + +if [ ! -f $image_path ]; then + truncate -s 2G $image_path + mkfs.ext4 -q $image_path + mkdir -p $VM_TMP/mnt + doas mount -o loop $image_path $VM_TMP/mnt + doas bsdtar -xpf $arch_path -C $VM_TMP/mnt + doas umount $VM_TMP/mnt + rmdir $VM_TMP/mnt +fi + +exec qemu-system-arm \ + -machine virt \ + -cpu cortex-a15 \ + -m 2G \ + -kernel $kernel_path \ + -initrd $initrd_path \ + -append "root=/dev/sda rw" \ + -drive if=none,file=$image_path,format=raw,id=drive0 \ + -netdev user,id=netdev0 \ + -device virtio-scsi-pci,id=scsi \ + -device virtio-blk-pci,drive=drive0 \ + -device virtio-net-pci,netdev=netdev0 \ + -nographic \ + "$@" + + + diff --git a/vm/archlinux/armv7/run.sh b/vm/archlinux/armv7/run.sh deleted file mode 100755 index c53adb7..0000000 --- a/vm/archlinux/armv7/run.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh - -set -e - -cd $(dirname -- "$0") - -ROOT_URL=http://os.archlinuxarm.org/os/ArchLinuxARM-armv7-latest.tar.gz -IMG_PATH=archlinuxarm.img -KERNEL_PATH=boot/zImage -INITRAMFS_PATH=boot/initramfs-linux.img - -ROOT_PATH=$(basename $ROOT_URL) - -if [ ! -f $ROOT_PATH ]; then - curl -L -o $ROOT_PATH $ROOT_URL -fi - -if [ ! \( \( -f $KERNEL_PATH \) -a \ - \( -f $INITRAMFS_PATH \) \) ]; then - bsdtar -xf $ROOT_PATH $KERNEL_PATH $INITRAMFS_PATH -fi - -if [ ! -f $IMG_PATH ]; then - truncate -s 2G $IMG_PATH - mkfs.ext4 -q $IMG_PATH - mkdir -p mnt - doas mount -o loop $IMG_PATH mnt - doas bsdtar -xpf $ROOT_PATH -C mnt - doas umount mnt - rmdir mnt -fi - -exec qemu-system-arm \ - -machine virt \ - -cpu cortex-a15 \ - -m 2G \ - -kernel $KERNEL_PATH \ - -initrd $INITRAMFS_PATH \ - -append "root=/dev/sda rw" \ - -drive if=none,file=$IMG_PATH,format=raw,id=drive0 \ - -netdev user,id=netdev0 \ - -device virtio-scsi-pci,id=scsi \ - -device virtio-blk-pci,drive=drive0 \ - -device virtio-net-pci,netdev=netdev0 \ - -nographic \ - "$@" - - - diff --git a/vm/debian-armv7.sh b/vm/debian-armv7.sh new file mode 100644 index 0000000..aa407e6 --- /dev/null +++ b/vm/debian-armv7.sh @@ -0,0 +1,45 @@ +: ${VM_CACHE:?} ${VM_DATA:?} + +ISO_URL=https://cdimage.debian.org/debian-cd/current/armhf/iso-cd/debian-11.6.0-armhf-netinst.iso +KERNEL_URL=http://ftp.us.debian.org/debian/dists/stable/main/installer-armhf/current/images/cdrom/vmlinuz +INITRD_URL=http://ftp.us.debian.org/debian/dists/stable/main/installer-armhf/current/images/cdrom/initrd.gz + +ISO_PATH=$VM_CACHE/$(basename $ISO_URL) +KERNEL_PATH=$VM_CACHE/$(basename $KERNEL_URL) +INITRD_PATH=$VM_CACHE/$(basename $INITRD_URL) + +IMG_PATH=$VM_DATA/debian.qcow2 + +if [ ! -f $ISO_PATH ]; then + curl -L -o $ISO_PATH $ISO_URL +fi + +if [ ! -f $KERNEL_PATH ]; then + curl -L -o $KERNEL_PATH $KERNEL_URL +fi + +if [ ! -f $INITRD_PATH ]; then + curl -L -o $INITRD_PATH $INITRD_URL +fi + +if [ ! -f $IMG_PATH ]; then + qemu-img create -f qcow2 $IMG_PATH 20G +fi + +exec qemu-system-arm \ + -machine virt \ + -cpu cortex-a15 \ + -smp 4 \ + -m 2G \ + -kernel $KERNEL_PATH \ + -initrd $INITRD_PATH \ + -append "console=ttyAMA0" \ + -drive if=none,file=$ISO_PATH,media=cdrom,id=drive0 \ + -drive if=none,file=$IMG_PATH,media=disk,id=drive1 \ + -netdev user,id=netdev0 \ + -device virtio-scsi-device \ + -device scsi-cd,drive=drive0 \ + -device scsi-hd,drive=drive1 \ + -device virtio-net-device,netdev=netdev0 \ + -nographic \ + "$@" diff --git a/vm/debian/armv7/run.sh b/vm/debian/armv7/run.sh deleted file mode 100755 index 33f3ff3..0000000 --- a/vm/debian/armv7/run.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh - -set -e - -cd $(dirname -- "$0") - -ISO_URL=https://cdimage.debian.org/debian-cd/current/armhf/iso-cd/debian-11.6.0-armhf-netinst.iso -KERNEL_URL=http://ftp.us.debian.org/debian/dists/stable/main/installer-armhf/current/images/cdrom/vmlinuz -INITRD_URL=http://ftp.us.debian.org/debian/dists/stable/main/installer-armhf/current/images/cdrom/initrd.gz - -ISO_PATH=$(basename $ISO_URL) -KERNEL_PATH=$(basename $KERNEL_URL) -INITRD_PATH=$(basename $INITRD_URL) - -IMG_PATH=debian.qcow2 - -if [ ! -f $ISO_PATH ]; then - curl -L -o $ISO_PATH $ISO_URL -fi - -if [ ! -f $KERNEL_PATH ]; then - curl -L -o $KERNEL_PATH $KERNEL_URL -fi - -if [ ! -f $INITRD_PATH ]; then - curl -L -o $INITRD_PATH $INITRD_URL -fi - -if [ ! -f $IMG_PATH ]; then - qemu-img create -f qcow2 $IMG_PATH 20G -fi - -exec qemu-system-arm \ - -machine virt \ - -cpu cortex-a15 \ - -smp 4 \ - -m 2G \ - -kernel $KERNEL_PATH \ - -initrd $INITRD_PATH \ - -append "console=ttyAMA0" \ - -drive if=none,file=$ISO_PATH,media=cdrom,id=drive0 \ - -drive if=none,file=$IMG_PATH,media=disk,id=drive1 \ - -netdev user,id=netdev0 \ - -device virtio-scsi-device \ - -device scsi-cd,drive=drive0 \ - -device scsi-hd,drive=drive1 \ - -device virtio-net-device,netdev=netdev0 \ - -nographic \ - "$@" diff --git a/vm/netbsd.sh b/vm/netbsd.sh new file mode 100644 index 0000000..18aef3b --- /dev/null +++ b/vm/netbsd.sh @@ -0,0 +1,32 @@ +: ${VM_CACHE:?} ${VM_DATA:?} + +netbsd_url=https://cdn.netbsd.org/pub/NetBSD/NetBSD-9.3/images/NetBSD-9.3-amd64.iso + +iso_path=$VM_CACHE/$(basename -- "$netbsd_url") + +image_path=$VM_DATA/netbsd.qcow2 + + +if [ ! -f $iso_path ]; then + curl -L -o $iso_path $netbsd_url +fi + +if [ ! -f $image_path ]; then + qemu-img create -f qcow2 $image_path 20G +fi + +exec qemu-system-x86_64 \ + -enable-kvm \ + -cpu host \ + -hda $image_path \ + -cdrom $iso_path \ + -m 2G \ + -device e1000,netdev=net0 \ + -netdev user,id=net0 \ + -usb \ + -device usb-tablet \ + -display curses \ + -vga std \ + "$@" + + diff --git a/vm/netbsd/run.sh b/vm/netbsd/run.sh deleted file mode 100755 index d487259..0000000 --- a/vm/netbsd/run.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - -set -e - -cd $(dirname -- "$0") - -if [ ! -f netbsd.iso ]; then - curl -L -o netbsd.iso https://cdn.netbsd.org/pub/NetBSD/NetBSD-9.3/images/NetBSD-9.3-amd64.iso -fi - -if [ ! -f netbsd.qcow2 ]; then - qemu-img create -f qcow2 netbsd.qcow2 20G -fi - -exec qemu-system-x86_64 \ - -enable-kvm \ - -cpu host \ - -hda netbsd.qcow2 \ - -cdrom netbsd.iso \ - -m 2G \ - -device e1000,netdev=net0 \ - -netdev user,id=net0 \ - -usb \ - -device usb-tablet \ - -display curses \ - "$@" - - diff --git a/vm/openbsd.sh b/vm/openbsd.sh new file mode 100644 index 0000000..eed668a --- /dev/null +++ b/vm/openbsd.sh @@ -0,0 +1,29 @@ +: ${VM_CACHE:?} ${VM_DATA:?} + +openbsd_url=https://cdn.openbsd.org/pub/OpenBSD/7.3/i386/cd73.iso + +iso_path=$VM_CACHE/openbsd.iso + +image_path=$VM_DATA/openbsd.qcow2 + + +if [ ! -f $iso_path ]; then + curl -L -o $iso_path $openbsd_url +fi + +if [ ! -f $image_path ]; then + qemu-img create -f qcow2 $image_path 20G +fi + +exec qemu-system-x86_64 \ + -enable-kvm \ + -cpu host \ + -hda $image_path \ + -cdrom $iso_path \ + -m 2G \ + -device e1000,netdev=net0 \ + -netdev user,id=net0 \ + -usb \ + -device usb-tablet \ + -display curses \ + "$@" diff --git a/vm/openbsd/run.sh b/vm/openbsd/run.sh deleted file mode 100755 index 69cbcca..0000000 --- a/vm/openbsd/run.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -set -e - -cd $(dirname -- "$0") - -if [ ! -f openbsd.iso ]; then - curl -L -o openbsd.iso https://cdn.openbsd.org/pub/OpenBSD/7.3/i386/cd73.iso -fi - -if [ ! -f openbsd.qcow2 ]; then - qemu-img create -f qcow2 openbsd.qcow2 20G -fi - -exec qemu-system-x86_64 \ - -enable-kvm \ - -cpu host \ - -hda openbsd.qcow2 \ - -cdrom openbsd.iso \ - -m 2G \ - -device e1000,netdev=net0 \ - -netdev user,id=net0 \ - -usb \ - -device usb-tablet \ - -nographic \ - "$@" diff --git a/vm/run.sh b/vm/run.sh new file mode 100755 index 0000000..70a796d --- /dev/null +++ b/vm/run.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +set -e + +VM_ROOT=$(dirname "$(realpath "$0")") +VM_NAME=$1 + +if [ ! -f "$VM_ROOT/$VM_NAME.sh" ]; then + echo "invalid vm name" >&2 + exit 1 +fi + +shift + +VM_CACHE=$HOME/.local/vm/cache/$VM_NAME +VM_DATA=$HOME/.local/vm/data/$VM_NAME +VM_TMP=$HOME/.local/vm/tmp/$VM_NAME + +rm -rf $VM_TMP +mkdir -p $VM_CACHE $VM_DATA $VM_TMP + +trap "exit 1" HUP INT PIPE QUIT TERM +trap "rm -rf $VM_TMP" EXIT + +. $VM_ROOT/$VM_NAME.sh diff --git a/vm/win11.sh b/vm/win11.sh new file mode 100644 index 0000000..3e6410d --- /dev/null +++ b/vm/win11.sh @@ -0,0 +1,109 @@ +: ${VM_CACHE:?} ${VM_DATA:?} ${VM_TMP:?} + +WIN11_ZIP_URL="https://aka.ms/windev_VM_virtualbox" + +WIN11_ZIP_PATH=$VM_CACHE/win11.zip +OVMF_PATH=$VM_CACHE/OVMF.fd +INIT_ISO_PATH=$VM_CACHE/init.iso + +WIN11_IMG_PATH=$VM_DATA/win11.qcow2 +TPM_PATH=$VM_DATA/tpm +SHARE_PATH=$VM_DATA/share # \\10.0.2.4\qemu + + +SAVE= +while getopts s flag; do + case $flag in + s) SAVE=1;; + ?) ;; + esac +done + + +mkdir -p $SHARE_PATH + +if [ ! -f $WIN11_ZIP_PATH ]; then + wget --show-progress -q -c -O $WIN11_ZIP_PATH $WIN11_ZIP_URL +fi + +if [ ! -f $WIN11_IMG_PATH ]; then + mkdir -p $VM_TMP/img + unzip -p $WIN11_ZIP_PATH *.ova | tar -x -C $VM_TMP/img + qemu-img convert -p -c -f vmdk -O qcow2 $VM_TMP/img/*.vmdk $WIN11_IMG_PATH + rm -rf $VM_TMP/img +fi + +if [ ! -f $OVMF_PATH ]; then + cp /usr/share/edk2-ovmf/x64/OVMF.fd $OVMF_PATH +fi + +if [ ! -f $INIT_ISO_PATH ]; then + mkdir -p $VM_TMP/iso + cat > $VM_TMP/iso/init.bat << EOF +powershell -executionpolicy bypass d:\\_init.ps1 +EOF + cat > $VM_TMP/iso/_init.ps1 << EOF +Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False +Set-MpPreference -DisableRealtimeMonitoring \$true +Set-Service -Name wuauserv -StartupType Disabled + +\$wc = New-Object System.Net.WebClient +\$wc.DownloadFile("https://www.python.org/ftp/python/3.8.9/python-3.8.9-amd64.exe", + "c:\\\\Users\\\\User\\\\Downloads\\\\python-3.8.9-amd64.exe") +\$wc.DownloadFile("https://www.python.org/ftp/python/3.9.8/python-3.9.8-amd64.exe", + "c:\\\\Users\\\\User\\\\Downloads\\\\python-3.9.8-amd64.exe") +\$wc.DownloadFile("https://repo.msys2.org/distrib/x86_64/msys2-x86_64-20210228.exe", + "c:\\\\Users\\\\User\\\\Downloads\\\\msys2-x86_64-20210228.exe") +\$wc.DownloadFile("https://nodejs.org/dist/v14.16.1/node-v14.16.1-x64.msi", + "c:\\\\Users\\\\User\\\\Downloads\\\\node-v14.16.1-x64.msi") +\$wc.DownloadFile("https://yarnpkg.com/latest.msi", + "c:\\\\Users\\\\User\\\\Downloads\\\\yarn.msi") + +\$env:Path = "C:\\Python39;C:\\Python39\\Scripts;C:\\msys64\\mingw64\\bin;C:\\msys64\\usr\\bin;" + \$env:Path +\$env:Path += ";C:\\nodejs;C:\\Yarn\\bin" +[Environment]::SetEnvironmentVariable( + "Path", \$env:Path, [System.EnvironmentVariableTarget]::Machine) + +cmd /C "c:\\Users\\User\\Downloads\\python-3.8.9-amd64.exe InstallAllUsers=1 TargetDir=c:\\Python38 /passive" +cmd /C "c:\\Users\\User\\Downloads\\python-3.9.8-amd64.exe InstallAllUsers=1 TargetDir=c:\\Python39 /passive" +cmd /C "c:\\Users\\User\\Downloads\\node-v14.16.1-x64.msi INSTALLDIR=C:\\nodejs /passive" +cmd /C "c:\\Users\\User\\Downloads\\yarn.msi INSTALLDIR=c:\\Yarn /passive" + +cmd /C "c:\\Users\\User\\Downloads\\msys2-x86_64-20210228.exe install -c --root c:\\msys64" +cmd.exe /C "pacman -Syu --noconfirm" +cmd.exe /C "pacman -Syu --noconfirm" +cmd.exe /C "pacman -Syu --noconfirm base-devel git mingw-w64-x86_64-toolchain socat" +EOF + mkisofs -J -l -R -V "init" -iso-level 4 -o $INIT_ISO_PATH $VM_TMP/iso + rm -rf $VM_TMP/iso +fi + +if [ ! -z $SAVE ]; then + TMP_IMG_PATH=$WIN11_IMG_PATH +else + TMP_IMG_PATH=$WIN11_IMG_PATH.tmp + rm -f $TMP_IMG_PATH + qemu-img create -q -F qcow2 -f qcow2 -b $WIN11_IMG_PATH $TMP_IMG_PATH +fi + +mkdir -p $TPM_PATH +swtpm socket \ + --tpm2 \ + --tpmstate dir=$TPM_PATH \ + --ctrl type=unixio,path=$TPM_PATH/socket & +exec qemu-system-x86_64 \ + -enable-kvm \ + -machine q35 \ + -device intel-iommu \ + -drive file=$OVMF_PATH,if=pflash,format=raw \ + -drive file=$TMP_IMG_PATH,media=disk \ + -drive file=$INIT_ISO_PATH,media=cdrom \ + -chardev socket,id=chrtpm,path=$TPM_PATH/socket \ + -tpmdev emulator,id=tpm0,chardev=chrtpm \ + -device tpm-tis,tpmdev=tpm0 \ + -m 4G \ + -device e1000,netdev=net0 \ + -netdev user,id=net0,smb=$SHARE_PATH \ + -usb \ + -device usb-tablet \ + -rtc base=localtime diff --git a/vm/win11/run.sh b/vm/win11/run.sh deleted file mode 100755 index 195bbed..0000000 --- a/vm/win11/run.sh +++ /dev/null @@ -1,115 +0,0 @@ -#!/bin/sh - -set -e - - -WIN11_ZIP_URL="https://aka.ms/windev_VM_virtualbox" - -ROOT_PATH=$(cd; pwd)/vm/win11 -WIN11_ZIP_PATH=$ROOT_PATH/win11.zip -WIN11_IMG_PATH=$ROOT_PATH/win11.qcow2 -TMP_PATH=$ROOT_PATH/tmp -OVMF_PATH=$ROOT_PATH/OVMF.fd -TPM_PATH=$ROOT_PATH/tpm -INIT_ISO_PATH=$ROOT_PATH/init.iso -SHARE_PATH=$ROOT_PATH/share # \\10.0.2.4\qemu - - -SAVE= -while getopts s flag; do - case $flag in - s) SAVE=1;; - ?) ;; - esac -done - - -mkdir -p $ROOT_PATH $SHARE_PATH - -if [ ! -f $WIN11_ZIP_PATH ]; then - wget --show-progress -q -c -O $WIN11_ZIP_PATH $WIN11_ZIP_URL -fi - -if [ ! -f $WIN11_IMG_PATH ]; then - rm -rf $TMP_PATH - mkdir -p $TMP_PATH - unzip -p $WIN11_ZIP_PATH *.ova | tar -x -C $TMP_PATH - qemu-img convert -p -c -f vmdk -O qcow2 $TMP_PATH/*.vmdk $WIN11_IMG_PATH - rm -rf $TMP_PATH -fi - -if [ ! -f $OVMF_PATH ]; then - cp /usr/share/edk2-ovmf/x64/OVMF.fd $OVMF_PATH -fi - -if [ ! -f $INIT_ISO_PATH ]; then - rm -rf $TMP_PATH - mkdir -p $TMP_PATH - cat > $TMP_PATH/init.bat << EOF -powershell -executionpolicy bypass d:\\_init.ps1 -EOF - cat > $TMP_PATH/_init.ps1 << EOF -Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False -Set-MpPreference -DisableRealtimeMonitoring \$true -Set-Service -Name wuauserv -StartupType Disabled - -\$wc = New-Object System.Net.WebClient -\$wc.DownloadFile("https://www.python.org/ftp/python/3.8.9/python-3.8.9-amd64.exe", - "c:\\\\Users\\\\User\\\\Downloads\\\\python-3.8.9-amd64.exe") -\$wc.DownloadFile("https://www.python.org/ftp/python/3.9.8/python-3.9.8-amd64.exe", - "c:\\\\Users\\\\User\\\\Downloads\\\\python-3.9.8-amd64.exe") -\$wc.DownloadFile("https://repo.msys2.org/distrib/x86_64/msys2-x86_64-20210228.exe", - "c:\\\\Users\\\\User\\\\Downloads\\\\msys2-x86_64-20210228.exe") -\$wc.DownloadFile("https://nodejs.org/dist/v14.16.1/node-v14.16.1-x64.msi", - "c:\\\\Users\\\\User\\\\Downloads\\\\node-v14.16.1-x64.msi") -\$wc.DownloadFile("https://yarnpkg.com/latest.msi", - "c:\\\\Users\\\\User\\\\Downloads\\\\yarn.msi") - -\$env:Path = "C:\\Python39;C:\\Python39\\Scripts;C:\\msys64\\mingw64\\bin;C:\\msys64\\usr\\bin;" + \$env:Path -\$env:Path += ";C:\\nodejs;C:\\Yarn\\bin" -[Environment]::SetEnvironmentVariable( - "Path", \$env:Path, [System.EnvironmentVariableTarget]::Machine) - -cmd /C "c:\\Users\\User\\Downloads\\python-3.8.9-amd64.exe InstallAllUsers=1 TargetDir=c:\\Python38 /passive" -cmd /C "c:\\Users\\User\\Downloads\\python-3.9.8-amd64.exe InstallAllUsers=1 TargetDir=c:\\Python39 /passive" -cmd /C "c:\\Users\\User\\Downloads\\node-v14.16.1-x64.msi INSTALLDIR=C:\\nodejs /passive" -cmd /C "c:\\Users\\User\\Downloads\\yarn.msi INSTALLDIR=c:\\Yarn /passive" - -cmd /C "c:\\Users\\User\\Downloads\\msys2-x86_64-20210228.exe install -c --root c:\\msys64" -cmd.exe /C "pacman -Syu --noconfirm" -cmd.exe /C "pacman -Syu --noconfirm" -cmd.exe /C "pacman -Syu --noconfirm base-devel git mingw-w64-x86_64-toolchain socat" -EOF - mkisofs -J -l -R -V "init" -iso-level 4 -o $INIT_ISO_PATH $TMP_PATH - rm -rf $TMP_PATH -fi - -if [ ! -z $SAVE ]; then - TMP_IMG_PATH=$WIN11_IMG_PATH -else - TMP_IMG_PATH=$WIN11_IMG_PATH.tmp - rm -f $TMP_IMG_PATH - qemu-img create -q -F qcow2 -f qcow2 -b $WIN11_IMG_PATH $TMP_IMG_PATH -fi - -mkdir -p $TPM_PATH -swtpm socket \ - --tpm2 \ - --tpmstate dir=$TPM_PATH \ - --ctrl type=unixio,path=$TPM_PATH/socket & -exec qemu-system-x86_64 \ - -enable-kvm \ - -machine q35 \ - -device intel-iommu \ - -drive file=$OVMF_PATH,if=pflash,format=raw \ - -drive file=$TMP_IMG_PATH,media=disk \ - -drive file=$INIT_ISO_PATH,media=cdrom \ - -chardev socket,id=chrtpm,path=$TPM_PATH/socket \ - -tpmdev emulator,id=tpm0,chardev=chrtpm \ - -device tpm-tis,tpmdev=tpm0 \ - -m 4G \ - -device e1000,netdev=net0 \ - -netdev user,id=net0,smb=$SHARE_PATH \ - -usb \ - -device usb-tablet \ - -rtc base=localtime diff --git a/waybar/river.conf b/waybar/river.conf index 6c8553a..92530f7 100644 --- a/waybar/river.conf +++ b/waybar/river.conf @@ -5,29 +5,31 @@ "modules-right": ["network", "pulseaudio", "battery", "clock", "tray"], "river/tags" : { + "num-tags": 8, + "tag-labels": ["1", "2", "3", "4", "a", "s", "d", "f"] }, "network": { - "format-wifi": "直 {essid}", - "format-ethernet": "ﯱ {ifname}", - "format-disconnected": " disconnected", + "format-wifi": " {essid}", + "format-ethernet": "󰛳 {ifname}", + "format-disconnected": "󰲛 disconnected", "on-click": "connman-gtk" }, "pulseaudio": { - "format": "墳 {volume:3}%", - "format-muted": "婢 mute", + "format": "󰕾 {volume:3}%", + "format-muted": "󰝟 mute", "scroll-step": 5, "on-click": "pavucontrol", "on-click-right": "pulsemixer --toggle-mute" }, "battery": { - "format": "{icon} {capacity:3}%", - "format-icons": ["", "", ""] + "format": "{icon} {capacity:3}%", + "format-icons": ["", "", "", "", ""] }, "clock": { - "format": " {:%Y-%m-%d %H:%M}" + "format": "󰃰 {:%Y-%m-%d %H:%M}" } } -- cgit v1.2.3-70-g09d2