Flinner 3 years ago
commit ae384a00b4
Signed by: flinner
GPG Key ID: 95CE0DA7F0E58CA6
  1. 730
      alacritty/.config/alacritty/alacritty.yml
  2. 8
      bash/.Xresources
  3. 72
      bash/.bashrc
  4. 55
      bash/.profile
  5. 26
      bat/.config/bat/config
  6. 15
      betterlockscreen/.config/betterlockscreenrc
  7. 5
      bin/bin/aur-update
  8. 42
      bin/bin/autostart
  9. 104
      bin/bin/cat-with-cat
  10. 3
      bin/bin/color-blocks
  11. 115
      bin/bin/cutefetch
  12. 2
      bin/bin/discord
  13. 3
      bin/bin/flush-dns.sh
  14. 33
      bin/bin/git-large-files
  15. 9
      bin/bin/image-compress.sh
  16. 4
      bin/bin/is-reboot-needed
  17. 1
      bin/bin/jekyll
  18. 4
      bin/bin/keyboard
  19. 3
      bin/bin/pause-mpv
  20. 7
      bin/bin/proxy-session
  21. 38
      bin/bin/reducepdf
  22. 1
      bin/bin/video-compress.sh
  23. 53
      bin/bin/wm/bspswallow
  24. 13
      bin/bin/wm/download-wallpaper
  25. 6
      bin/bin/wm/focus
  26. 11
      bin/bin/wm/lockscreen
  27. 6
      bin/bin/wm/monitor-setup
  28. 5
      bin/bin/wm/sxhkd-help
  29. 48
      bspwm/.config/bspwm/bspwmrc
  30. 4
      bspwm/.config/bspwm/terminals
  31. 231
      compton/.config/compton.conf
  32. 444
      doom/.config/doom/config.el
  33. 781
      doom/.config/doom/config.org
  34. 6
      doom/.config/doom/custom.el
  35. 213
      doom/.config/doom/init.el
  36. 103
      doom/.config/doom/packages.el
  37. 9
      doom/.local/share/applications/Nihongo.desktop
  38. 9
      doom/.local/share/applications/librewolf-default.desktop
  39. 2
      doom/.local/share/applications/mimeinfo.cache
  40. 7
      doom/.local/share/applications/org-protocol.desktop
  41. 11
      doom/README.org
  42. 833
      emacs.mine/.config/emacs.mine/emacs.org
  43. 4
      emacs.mine/.emacs-profiles.el
  44. 1
      fonts/.local/share/fonts/.uuid
  45. BIN
      fonts/.local/share/fonts/FantasqueSansMono-Regular.ttf
  46. BIN
      fonts/.local/share/fonts/MaterialIcons-Regular.ttf
  47. BIN
      fonts/.local/share/fonts/all-the-icons.ttf
  48. BIN
      fonts/.local/share/fonts/fantasque_sans_mono.ttf
  49. BIN
      fonts/.local/share/fonts/feather.ttf
  50. BIN
      fonts/.local/share/fonts/file-icons.ttf
  51. BIN
      fonts/.local/share/fonts/fontawesome.ttf
  52. BIN
      fonts/.local/share/fonts/iosevka_nerd_font.ttf
  53. BIN
      fonts/.local/share/fonts/material-design-icons.ttf
  54. BIN
      fonts/.local/share/fonts/material_design_iconic_font.ttf
  55. BIN
      fonts/.local/share/fonts/octicons.ttf
  56. 1
      fonts/.local/share/fonts/panels/.uuid
  57. BIN
      fonts/.local/share/fonts/panels/droid_sans.ttf
  58. BIN
      fonts/.local/share/fonts/panels/icomoon_feather.ttf
  59. BIN
      fonts/.local/share/fonts/panels/material.ttf
  60. BIN
      fonts/.local/share/fonts/panels/noto_sans.ttf
  61. 1
      fonts/.local/share/fonts/terminus/.uuid
  62. BIN
      fonts/.local/share/fonts/terminus/ter-u12b.otb
  63. BIN
      fonts/.local/share/fonts/terminus/ter-u12n.otb
  64. BIN
      fonts/.local/share/fonts/terminus/ter-u14b.otb
  65. BIN
      fonts/.local/share/fonts/terminus/ter-u14n.otb
  66. BIN
      fonts/.local/share/fonts/terminus/ter-u14v.otb
  67. BIN
      fonts/.local/share/fonts/terminus/ter-u16b.otb
  68. BIN
      fonts/.local/share/fonts/terminus/ter-u16n.otb
  69. BIN
      fonts/.local/share/fonts/terminus/ter-u16v.otb
  70. BIN
      fonts/.local/share/fonts/terminus/ter-u18b.otb
  71. BIN
      fonts/.local/share/fonts/terminus/ter-u18n.otb
  72. BIN
      fonts/.local/share/fonts/terminus/ter-u20b.otb
  73. BIN
      fonts/.local/share/fonts/terminus/ter-u20n.otb
  74. BIN
      fonts/.local/share/fonts/terminus/ter-u22b.otb
  75. BIN
      fonts/.local/share/fonts/terminus/ter-u22n.otb
  76. BIN
      fonts/.local/share/fonts/terminus/ter-u24b.otb
  77. BIN
      fonts/.local/share/fonts/terminus/ter-u24n.otb
  78. BIN
      fonts/.local/share/fonts/terminus/ter-u28b.otb
  79. BIN
      fonts/.local/share/fonts/terminus/ter-u28n.otb
  80. BIN
      fonts/.local/share/fonts/terminus/ter-u32b.otb
  81. BIN
      fonts/.local/share/fonts/terminus/ter-u32n.otb
  82. 11566
      fonts/.local/share/fonts/waffle.bdf
  83. BIN
      fonts/.local/share/fonts/weathericons.ttf
  84. 11
      gtk/.config/gtk-2.0/gtkfilechooser.ini
  85. 39
      gtk/.config/gtk-3.0/assets/close-active.svg
  86. 39
      gtk/.config/gtk-3.0/assets/close-backdrop-active.svg
  87. 33
      gtk/.config/gtk-3.0/assets/close-backdrop-hover.svg
  88. 27
      gtk/.config/gtk-3.0/assets/close-backdrop-normal.svg
  89. 33
      gtk/.config/gtk-3.0/assets/close-hover.svg
  90. 27
      gtk/.config/gtk-3.0/assets/close-normal.svg
  91. 39
      gtk/.config/gtk-3.0/assets/maximize-active.svg
  92. 39
      gtk/.config/gtk-3.0/assets/maximize-backdrop-active.svg
  93. 33
      gtk/.config/gtk-3.0/assets/maximize-backdrop-hover.svg
  94. 27
      gtk/.config/gtk-3.0/assets/maximize-backdrop-normal.svg
  95. 33
      gtk/.config/gtk-3.0/assets/maximize-hover.svg
  96. 27
      gtk/.config/gtk-3.0/assets/maximize-normal.svg
  97. 45
      gtk/.config/gtk-3.0/assets/maximized-active.svg
  98. 45
      gtk/.config/gtk-3.0/assets/maximized-backdrop-active.svg
  99. 39
      gtk/.config/gtk-3.0/assets/maximized-backdrop-hover.svg
  100. 27
      gtk/.config/gtk-3.0/assets/maximized-backdrop-normal.svg
  101. Some files were not shown because too many files have changed in this diff Show More

@ -0,0 +1,730 @@
# Configuration for Alacritty, the GPU enhanced terminal emulator.
# Import additional configuration files
# import:
# - /path/to/alacritty.yml
# - ./shades-of-purple.yml
#fps: false
# 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: 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: 9
y: 6
# Spread additional padding evenly around the terminal content.
dynamic_padding: true
# 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, but no title bar buttons
#decorations: full
# 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: Fira Code
family: Fira Code
# 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: 6.0
# Offset is the extra space around each character. `offset.y` can be thought of
# as modifying the line spacing, and `offset.x` as modifying the letter spacing.
#offset:
# x: 0
# y: 0
# Glyph offset determines the locations of the glyphs within their cells with
# the default being at the bottom. Increasing `x` moves the glyph to the right,
# increasing `y` moves the glyph upward.
#glyph_offset:
# x: 0
# y: 0
# Thin stroke font rendering (macOS only)
#
# Thin strokes are suitable for retina displays, but for non-retina screens
# it is recommended to set `use_thin_strokes` to `false`.
#use_thin_strokes: true
# Choose whether to enable ligature (Currently only in Linux, may work in macOS)
# by default it's true (enabled)
#ligature: true
# If `true`, bold text is drawn using the bright color variants.
#draw_bold_text_with_bright_colors: false
# Colors
# 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 and 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 and CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff.
#vi_mode_cursor:
# text: CellBackground
# cursor: CellForeground
# Selection colors
#
# Colors which should be used to draw the selection area.
#
# Allowed values are CellForeground and CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff.
#selection:
# text: CellBackground
# background: CellForeground
# Search colors
#
# Colors used for the search bar and match highlighting.
#search:
# Allowed values are CellForeground and CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff.
#matches:
# foreground: '#000000'
# background: '#ffffff'
#bar:
# background: '#c5c8c6'
# foreground: '#1d1f21'
draw_bold_text_with_bright_colors: true
# 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. 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: 1.0
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
#
# Values for `style`:
# - ▇ Block
# - _ Underline
# - | Beam
#style: Block
# 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
# 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: /usr/bin/zsh
# 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
# WinPTY backend (Windows only)
#
# Alacritty defaults to using the newer ConPTY backend if it is available,
# since it resolves a lot of bugs and is quite a bit faster. If it is not
# available, the WinPTY backend will be used instead.
#
# Setting this option to `true` makes Alacritty use the legacy WinPTY backend,
# even if the ConPTY backend is available.
#winpty_backend: false
# Send ESC (\x1b) before characters when alt is pressed.
#alt_send_esc: true
#mouse:
# Click settings
#
# The `double_click` and `triple_click` settings control the time
# alacritty should wait for accepting multiple clicks as one double
# or triple click.
#double_click: { threshold: 300 }
#triple_click: { threshold: 300 }
# If this is `true`, the cursor is temporarily hidden when typing.
#hide_when_typing: false
url:
# URL launcher
#
# This program is executed when clicking on a text which is recognized as a URL.
# The URL is always added to the command as the last parameter.
#
# When set to `launcher: None`, URL launching will be disabled completely.
#
# Default:
# - (macOS) open
# - (Linux/BSD) xdg-open
# - (Windows) explorer
launcher:
program: xdg-open
# args: []
# URL modifiers
#
# These are the modifiers that need to be held down for opening URLs when clicking
# on them. The available modifiers are documented in the key binding section.
#modifiers: None
# 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
#
# (`mode: Vi` only):
# - Open
# Open URLs at the cursor location with the launcher configured in `url.launcher`.
# - Up
# Move the vi mode cursor up by one line.
# - Down
# Move the vi mode cursor down by one line.
# - Left
# Move the vi mode cursor left by one character.
# - Right
# Move the vi mode cursor right by one character.
# - First
# Move the vi mode cursor to the start of the line, searching across newlines if it is already at the beginning.
# - Last
# Move the vi mode cursor to the end of the line, searching across newlines if it is already at the end.
# - FirstOccupied
# Move the vi mode cursor to the first non-empty cell in this line, searching across newlines if it is already at the first one.
# - High
# Move the vi mode cursor to the top of the screen.
# - Middle
# Move the vi mode cursor to the middle of the screen.
# - Low
# Move the vi mode cursor to the bottom of the screen.
# - SemanticLeft
# Move the vi mode cursor to the start of the previous semantically separated word.
# - SemanticRight
# Move the vi mode cursor to the start of the next semantically separated word.
# - SemanticLeftEnd
# Move the vi mode cursor to the end of the previous semantically separated word.
# - SemanticRightEnd
# Move the vi mode cursor to the end of the next semantically separated word.
# - WordLeft
# Move the vi mode cursor to the start of the previous whitespace separated word.
# - WordRight
# Move the vi mode cursor to the start of the next whitespace separated word.
# - WordLeftEnd
# Move the vi mode cursor to the end of the previous whitespace separated word.
# - WordRightEnd
# Move the vi mode cursor to the end of the next whitespace separated word.
# - Bracket
# Move the vi mode cursor to the next character that matches the bracket at the cursor's
# current location.
# - ToggleNormalSelection
# - ToggleLineSelection
# - ToggleBlockSelection
# - ToggleSemanticSelection
# Toggle semantic selection based on `selection.semantic_escape_chars`.
# - SearchNext
# Jump to the beginning of the next match.
# - SearchPrevious
# Jump to the beginning of the previous match.
# - SearchStart
# Jump to the next start of a match to the left of the vi mode cursor.
# - SearchEnd
# Jump to the next end of a match to the left of the vi mode cursor.
#
# (macOS only):
# - ToggleSimpleFullscreen
# Enter fullscreen without occupying another space.
#
# (Linux/BSD only):
# - 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
# - 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, chars: "\x0c" }
#- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp, }
#- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown }
#- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop, }
#- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom }
# Vi Mode
#- { key: Space, mods: Shift|Control, mode: Vi, action: ScrollToBottom }
#- { key: Space, mods: Shift|Control, action: ToggleViMode }
#- { key: Escape, mode: Vi, action: ClearSelection }
#- { key: I, mode: Vi, action: ScrollToBottom }
#- { key: I, mode: Vi, action: ToggleViMode }
#- { key: C, mods: Control, mode: Vi, action: ToggleViMode }
#- { key: Y, mods: Control, mode: Vi, action: ScrollLineUp }
#- { key: E, mods: Control, mode: Vi, action: ScrollLineDown }
#- { key: G, mode: Vi, action: ScrollToTop }
#- { key: G, mods: Shift, mode: Vi, action: ScrollToBottom }
#- { key: B, mods: Control, mode: Vi, action: ScrollPageUp }
#- { key: F, mods: Control, mode: Vi, action: ScrollPageDown }
#- { key: U, mods: Control, mode: Vi, action: ScrollHalfPageUp }
#- { key: D, mods: Control, mode: Vi, action: ScrollHalfPageDown }
#- { key: Y, mode: Vi, action: Copy }
#- { key: Y, mode: Vi, action: ClearSelection }
#- { key: Copy, mode: Vi, action: ClearSelection }
#- { key: V, mode: Vi, action: ToggleNormalSelection }
#- { key: V, mods: Shift, mode: Vi, action: ToggleLineSelection }
#- { key: V, mods: Control, mode: Vi, action: ToggleBlockSelection }
#- { key: V, mods: Alt, mode: Vi, action: ToggleSemanticSelection }
#- { key: Return, mode: Vi, action: Open }
#- { key: K, mode: Vi, action: Up }
#- { key: J, mode: Vi, action: Down }
#- { key: H, mode: Vi, action: Left }
#- { key: L, mode: Vi, action: Right }
#- { key: Up, mode: Vi, action: Up }
#- { key: Down, mode: Vi, action: Down }
#- { key: Left, mode: Vi, action: Left }
#- { key: Right, mode: Vi, action: Right }
#- { key: Key0, mode: Vi, action: First }
#- { key: Key4, mods: Shift, mode: Vi, action: Last }
#- { key: Key6, mods: Shift, mode: Vi, action: FirstOccupied }
#- { key: H, mods: Shift, mode: Vi, action: High }
#- { key: M, mods: Shift, mode: Vi, action: Middle }
#- { key: L, mods: Shift, mode: Vi, action: Low }
#- { key: B, mode: Vi, action: SemanticLeft }
#- { key: W, mode: Vi, action: SemanticRight }
#- { key: E, mode: Vi, action: SemanticRightEnd }
#- { key: B, mods: Shift, mode: Vi, action: WordLeft }
#- { key: W, mods: Shift, mode: Vi, action: WordRight }
#- { key: E, mods: Shift, mode: Vi, action: WordRightEnd }
#- { key: Key5, mods: Shift, mode: Vi, action: Bracket }
#- { key: Slash, mode: Vi, action: SearchForward }
#- { key: Slash, mods: Shift, mode: Vi, action: SearchBackward }
#- { key: N, mode: Vi, action: SearchNext }
#- { key: N, mods: Shift, mode: Vi, action: SearchPrevious }
# (Windows, Linux, and BSD only)
#- { key: V, mods: Control|Shift, action: Paste }
#- { key: C, mods: Control|Shift, action: Copy }
#- { key: F, mods: Control|Shift, action: SearchForward }
#- { key: B, mods: Control|Shift, action: SearchBackward }
#- { key: C, mods: Control|Shift, mode: Vi, action: ClearSelection }
#- { key: Insert, mods: Shift, action: PasteSelection }
#- { key: Key0, mods: Control, action: ResetFontSize }
#- { key: Equals, mods: Control, action: IncreaseFontSize }
#- { key: Add, mods: Control, action: IncreaseFontSize }
#- { key: Subtract, mods: Control, action: DecreaseFontSize }
#- { key: Minus, mods: Control, action: DecreaseFontSize }
# (Windows only)
#- { key: Return, mods: Alt, action: ToggleFullscreen }
# (macOS only)
#- { key: K, mods: Command, mode: ~Vi, chars: "\x0c" }
#- { key: Key0, mods: Command, action: ResetFontSize }
#- { key: Equals, mods: Command, action: IncreaseFontSize }
#- { key: Add, mods: Command, action: IncreaseFontSize }
#- { key: Minus, mods: Command, action: DecreaseFontSize }
#- { key: K, mods: Command, action: ClearHistory }
#- { key: V, mods: Command, action: Paste }
#- { key: C, mods: Command, action: Copy }
#- { key: C, mods: Command, mode: Vi, action: ClearSelection }
#- { key: H, mods: Command, action: Hide }
#- { key: M, mods: Command, action: Minimize }
#- { key: Q, mods: Command, action: Quit }
#- { key: W, mods: Command, action: Quit }
- { key: Return, mods: Shift|Super, action: SpawnNewInstance }
#- { key: F, mods: Command|Control, action: ToggleFullscreen }
#- { key: F, mods: Command, action: SearchForward }
#- { key: B, mods: Command, 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`:
# - None
# - Error
# - Warn
# - Info
# - Debug
# - Trace
#log_level: Warn
# Print all received window events.
#print_events: false
schemes:
flinty_dark: &flinty_dark
primary:
background: '#282828' # gruvbox
foreground: '#eff0eb'
# Normal colors
normal:
black: '#282a36'
red: '#ff5c57'
green: '#5af78e'
yellow: '#f3f99d'
blue: '#57c7ff'
magenta: '#ff6ac1'
cyan: '#9aedfe'
white: '#f1f1f0'
# Bright colors
bright:
black: '#686868'
red: '#ff5c57'
green: '#5af78e'
yellow: '#f3f99d'
blue: '#57c7ff'
magenta: '#ff6ac1'
cyan: '#9aedfe'
white: '#f1f1f0'
snazzy_dark: &snazzy_dark
primary:
background: '#282a36'
foreground: '#eff0eb'
# Normal colors
normal:
black: '#282a36'
red: '#ff5c57'
green: '#5af78e'
yellow: '#f3f99d'
blue: '#57c7ff'
magenta: '#ff6ac1'
cyan: '#9aedfe'
white: '#f1f1f0'
# Bright colors
bright:
black: '#686868'
red: '#ff5c57'
green: '#5af78e'
yellow: '#f3f99d'
blue: '#57c7ff'
magenta: '#ff6ac1'
cyan: '#9aedfe'
white: '#f1f1f0'
# The definition of color schemes.
gruvbox_dark: &gruvbox_dark
primary:
# hard contrast: background = '#1d2021'
background: '#282828'
# soft contrast: background = '#32302f'
foreground: '#ebdbb2'
# Normal colors
normal:
black: '#282828'
red: '#cc241d'
green: '#98971a'
yellow: '#d79921'
blue: '#458588'
magenta: '#b16286'
cyan: '#689d6a'
white: '#a89984'
# Bright colors
bright:
black: '#928374'
red: '#fb4934'
green: '#b8bb26'
yellow: '#fabd2f'
blue: '#83a598'
magenta: '#d3869b'
cyan: '#8ec07c'
white: '#ebdbb2'
# Apply the color scheme.
colors: *flinty_dark

@ -0,0 +1,8 @@
! -----------------------------------------------------------------------------
! File: gruvbox-dark.xresources
! Description: Retro groove colorscheme generalized
! Author: morhetz <morhetz@gmail.com>
! Source: https://github.com/morhetz/gruvbox-generalized
! Last Modified: 6 Sep 2014
! -----------------------------------------------------------------------------

@ -0,0 +1,72 @@
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
TERM=xterm
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
if [ -f ~/.config/sh_vars/variables.sh ]; then . $HOME/.config/sh_vars/variables.sh ;fi
if [ -f ~/.config/sh_vars/aliases.sh ]; then . $HOME/.config/sh_vars/aliases.sh ;fi
alias sc="zathura $HOME/schedule.pdf"
# don't put duplicate lines or lines starting with space in the history.
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTCONTROL=ignoreboth
HISTSIZE=1000
HISTFILESIZE=2000
# 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
# 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
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
source /etc/profile
if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases ; fi
#eval "$(starship init bash)"

@ -0,0 +1,55 @@
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
if [ -f ~/.config/sh_vars/variables.sh ]; then . $HOME/.config/sh_vars/variables.sh ;fi
if [ -f ~/.config/sh_vars/aliases.sh ]; then . $HOME/.config/sh_vars/aliases.sh ;fi
# if running zsh
if [ -f "$HOME/.zsh" ]; then
. "$HOME/.zsh"
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
# Japanese Input
#export GTK_IM_MODULE=ibus
#export XMODIFIERS=@im=ibus
#export QT_IM_MODULE=ibus
#if [ -x /usr/bin/spice-vdagent ] ; then
#/usr/bin/spice-vdagent
##!/bin/sh
#sleep 2
#xrandr --output "$(xrandr | awk '/ connected/{print $1; exit; }')" --auto
#xev -root -event randr | \
#grep --line-buffered 'subtype XRROutputChangeNotifyEvent' | \
#while read foo ; do \
#xrandr --output "$(xrandr | awk '/ connected/{print $1; exit; }')" --auto
#done
#fi

@ -0,0 +1,26 @@
# This is `bat`s configuration file. Each line either contains a comment or
# a command-line option that you want to pass to `bat` by default. You can
# run `bat --help` to get a list of all possible configuration options.
# Specify desired highlighting theme (e.g. "TwoDark"). Run `bat --list-themes`
# for a list of all available themes
#--theme="Solarized (light)"
# Enable this to use italic text on the terminal. This is not supported on all
# terminal emulators (like tmux, by default):
#--italic-text=always
# Uncomment the following line to disable automatic paging:
#--paging=never
# Uncomment the following line if you are using less version >= 551 and want to
# enable mouse scrolling support in `bat` when running inside tmux. This might
# disable text selection, unless you press shift.
#--pager="less --RAW-CONTROL-CHARS --quit-if-one-screen --mouse"
# Syntax mappings: map a certain filename pattern to a language.
# Example 1: use the C++ syntax for .ino files
# Example 2: Use ".gitignore"-style highlighting for ".ignore" files
#--map-syntax "*.ino:C++"
#--map-syntax ".ignore:Git Ignore"
--decorations=never

@ -0,0 +1,15 @@
# configuration file for betterlockscreen
insidecolor=00000000
ringcolor=ffffffff
keyhlcolor=d23c3dff
bshlcolor=d23c3dff
separatorcolor=00000000
insidevercolor=54e6f2ff
insidewrongcolor=d23c3dff
ringvercolor=ffffffff
ringwrongcolor=ffffff00
verifcolor=ffffff00
timecolor=ffffffff
datecolor=ffffffff
loginbox=ffffff22

@ -0,0 +1,5 @@
updpkgsums
makepkg --printsrcinfo > .SRCINFO
git add .SRCINFO PKGBUILD
git status

@ -0,0 +1,42 @@
#!/bin/bash
#xset r rate 400 100
##emacs -fs &
rm -rf ~/.cache/fontconfig
# dbus-launch sxhkd &
#gpg-agent --server &
#feh --bg-fill ~/Pictures/monochrome.jpg
#single monitor wallpaper
source ~/.fehbg
#feh --randomize --bg-fill Pictures/wallpapers
# dual monitor
#feh --bg-scale ~/Pictures/wallpapers/morning-wallpaper-cut1.jpg ~/Pictures/wallpapers/morning-wallpaper.-cut2.jpg # dual monitor
#Pictures/wander1.png
#dbus-launch emacs --daemon &
#other
(sleep 1 && picom --config "$HOME/.config/picom.conf" )&
(sleep 1 && keynav)&
(sleep 1 && ~/bin/startup/keyboard ) &
(sleep 1 && wired ) &
(sleep 3 && optimus-manager-qt) &
(sleep 3 && flameshot) &
(sleep 4 && keepassxc) &
(sleep 5 && syncthing -no-browser) &
(sleep 5 && thunderbird ) &
#ibus-daemon &
#uim-toolbar-gtk3-systray & #uim Japanses Input
#if bspwm
#thunderbird &
#ibus-daemon -drx &
#syncthing-gtk -m &
#qbittorrent &
#~/bin/wm/download-wallpaper

@ -0,0 +1,104 @@
#!/bin/bash
if [ ! -t 1 ] ; then
cat "$@"
exit 0
fi
ncol=`tput cols`
# If you modify the cat, be sure to mantain the same length in every line (newline excluded).
# Leave an empty array index where you want the cat output, and specify it in OUTPUT_INDEX.
# Modify UPPER and LOWER_LINE INDEX and CHAR if you want to modify the appearance and position
# of the two delimiters, or set their index at -1 if you don't want them.
t[0]=' ∧_∧ '
t[1]=' ( ・ω・) '
t[2]='―∪――――∪―'
t[4]='________'
t[5]=' | | '
t[6]=' | | '
t[7]=' U U '
#################################
# #
# Modify these constants if you #
# modify the drawing #
# #
#################################
# Drawing width
DRAWING_WIDTH=8
# At which index of the array t (declared above) should
# print the input file
OUTPUT_INDEX=3
# Characters to use for the text delimiter, and at which
# indices they should be printed
UPPER_LINE_CHAR="―"
LOWER_LINE_CHAR="_"
UPPER_LINE_INDEX=2
LOWER_LINE_INDEX=4
# Padding before and after the printed file. No padding
# could give unwanted results (see issue #4)
PADDING=1
# Percentage that indicates the position of the drawing
# in the terminal. 0 = align to the left, 100 = align to
# the right
DRAWING_POSITION=25
#################################
arrayLen=${#t[@]}
halfDrawingLen=$(($DRAWING_WIDTH / 2))
leadingSpaces=$(($ncol * $DRAWING_POSITION / 100 - $halfDrawingLen))
if [[ $leadingSpaces -lt 0 ]]; then
leadingSpaces=0
fi
trailingSpaces=$(($ncol - $leadingSpaces - $DRAWING_WIDTH))
if [[ $leadingSpaces -gt $(($ncol - $DRAWING_WIDTH)) ]]; then
leadingSpaces=$(($ncol - $DRAWING_WIDTH))
trailingSpaces=0
fi
echo ""
for i in $(seq 0 $arrayLen); do
if [[ $i = $OUTPUT_INDEX ]]; then
for n in $(seq 1 $PADDING); do
echo ""
done
cat "$@"
for n in $(seq 1 $PADDING); do
echo ""
done
else
car=""
if [[ $i = $UPPER_LINE_INDEX ]]; then
car=$UPPER_LINE_CHAR
elif [[ $i = $LOWER_LINE_INDEX ]]; then
car=$LOWER_LINE_CHAR
else
car=" "
fi
for s in $(seq 1 $leadingSpaces); do
printf "$car"
done
printf "${t[$i]}"
if [[ $i -eq $LOWER_LINE_INDEX || $i -eq $UPPER_LINE_INDEX ]]; then
for s in $(seq 1 $trailingSpaces); do
printf "$car"
done
printf "\n"
else
printf "\n"
fi
fi
done
echo ""

@ -0,0 +1,3 @@
#!/usr/bin/env bash
pcs() { for i in {0..7}; do echo -en "\e[${1}$((30+$i))m \u2588\u2588 \e[0m"; done; }
printf "\n%s\n%s\n\n" "$(pcs)" "$(pcs '1;')"

@ -0,0 +1,115 @@
#!/usr/bin/env bash
# Tiny colored fetch script
# Requires Typicons Font to display the icons
f=3 b=4
for j in f b; do
for i in {0..7}; do
printf -v $j$i %b "\e[${!j}${i}m"
done
done
d=$'\e[1m'
t=$'\e[0m'
v=$'\e[7m'
# Items
sep=
s=$d$f0$sep$t
#w=
w=
netname="$(nmcli -g common | grep -m 1 connected | awk '{print($4)}')"
[[ -z $netname ]] && netname="no wifi"
h=
wmname="$(xprop -id $(xprop -root -notype | awk '$1=="_NET_SUPPORTING_WM_CHECK:"{print $5}') -notype -f _NET_WM_NAME 8t | grep -m 1 "WM_NAME" | cut -f2 -d \")"
k=
kernel="$(uname -r | cut -d '-' -f1)"
r=
resolution="$(xwininfo -root | grep geometry | awk '{print $2}' | cut -d + -f1)"
sh=
shell=$(basename $SHELL)
# set the eyes, ^.^ by default
eyes() {
if [[ -z $1 ]]; then
echo "^.^"
elif [[ $1 = "0" ]]; then
echo ". ."
elif [[ $1 = "1" ]]; then
echo "· ·"
elif [[ $1 = "2" ]]; then
echo "^ ^"
elif [[ $1 = "3" ]]; then
echo "- -"
elif [[ $1 = "4" ]]; then
echo "~ ~"
elif [[ $1 = "5" ]]; then
echo "* *"
elif [[ $1 = "6" ]]; then
echo "^.^"
elif [[ $1 = "7" ]]; then
echo "-.-"
elif [[ $1 = "8" ]]; then
echo "~.~"
elif [[ $1 = "9" ]]; then
echo "*.*"
elif [[ $1 = "10" ]]; then
echo "0.0"
elif [[ $1 = "11" ]]; then
echo "0 0"
elif [[ $1 = "12" ]]; then
echo "o o"
elif [[ $1 = "13" ]]; then
echo "o.o"
else
echo "^.^"
fi
}
# sysinfo with cute kitty
kittyfetch() {
printf " $d$f1$h $t$wmname
/\_/\ $f3$k $t$kernel
( $d$(eyes $1)$t ) $f2$sh $t$shell
$f1>$t $f3^$t $f1<$t $f5$r $t$resolution
$f4$w $t$netname
"
}
# sysinfo with cute bunny
bunnyfetch() {
printf " $d$f1$h $t$wmname
(\ /) $f3$k $t$kernel
( $d$(eyes $1)$t) $f2$sh $t$shell
c($f1\"$t)($f1\"$t) $f5$r $t$resolution
$f4$w $t$netname
"
}
# script information
scriptinfo() {
printf "cutefetch - simple colored script to display system info
Usage: cutefetch kitty/bunny
If no argument is given, kitty is assumed.
If unknown argument is given, this message is shown.
"
}
# print the fetch info, kitty by default, bunny otherwise
cutefunc() {
if [[ -z $1 ]] || [[ $1 = "kitty" ]] || [[ $1 = "k" ]]; then
kittyfetch $2
elif [[ $1 = "bunny" ]] || [[ $1 = "b" ]]; then
[[ -z $2 ]] && eye="0" || eye=$2
bunnyfetch $eye
else
[[ $1 == ?(-)+([0-9]) ]] && kittyfetch $1 || scriptinfo
fi
}
# call the main function
cutefunc $1 $2

@ -0,0 +1,2 @@
#!/bin/sh
chromium --app="https://discord.com/channels/@me"

@ -0,0 +1,3 @@
#!/bin/sh
systemctl restart nscd.service
systemctl restart dnsmasq.service

@ -0,0 +1,33 @@
#!/bin/bash
#set -x
# Shows you the largest objects in your repo's pack file.
# Written for osx.
#
# @see http://stubbisms.wordpress.com/2009/07/10/git-script-to-show-largest-pack-objects-and-trim-your-waist-line/
# @author Antony Stubbs
# set the internal field spereator to line break, so that we can iterate easily over the verify-pack output
IFS=$'\n';
# list all objects including their size, sort by size, take top 10
objects=`git verify-pack -v .git/objects/pack/pack-*.idx | grep -v chain | sort -k3nr | head`
echo "All sizes are in kB. The pack column is the size of the object, compressed, inside the pack file."
output="size,pack,SHA,location"
for y in $objects
do
# extract the size in bytes
size=$((`echo $y | cut -f 5 -d ' '`/1024))
# extract the compressed size in bytes
compressedSize=$((`echo $y | cut -f 6 -d ' '`/1024))
# extract the SHA
sha=`echo $y | cut -f 1 -d ' '`
# find the objects location in the repository tree
other=`git rev-list --all --objects | grep $sha`
#lineBreak=`echo -e "\n"`
output="${output}\n${size},${compressedSize},${other}"
done
echo -e $output | column -t -s ', '

@ -0,0 +1,9 @@
#!/bin/bash
#https://stackoverflow.com/questions/7261855/recommendation-for-compressing-jpg-files-with-imagemagick
#quality in 85
#progressive (comprobed compression)
#a very tiny gausssian blur to optimize the size (0.05 or 0.5 of radius) depends on the quality and size of the picture, this notably optimizes the size of the jpeg.
#Strip any comment or EXIF metadata
magick "$1" -strip -interlace Plane -sampling-factor 4:2:0 -quality 75% "$2"

@ -0,0 +1,4 @@
#!/bin/sh
grep -qs '^ID=arch$' /etc/os-release \
&& { test -e /lib/modules/`uname -r` \
|| echo Kernel updated, reboot computer.; }

@ -0,0 +1 @@
~/.gem/ruby/2.7.0/bin/jekyll "$@"

@ -0,0 +1,4 @@
setxkbmap -option ctrl:swapcaps
setxkbmap -option altwin:swap_lalt_lwin
setxkbmap -model pc105 -layout us,ar -variant ,qwerty -option grp:shifts_toggle

@ -0,0 +1,3 @@
#!/bin/bash
xdotool search --class mpv | xargs -I % xdotool key --window % space &&
notify-send "MPV" "Pausing/Playing"

@ -0,0 +1,7 @@
#!/bin/sh
export http_proxy='socks5://127.0.0.1:12345'
export https_proxy='socks5://127.0.0.1:12345'
echo $https_proxy
echo $http_proxy

@ -0,0 +1,38 @@
#!/bin/sh
echo "settings: '/screen' '/ebook' 'printer' '/repress'"
PS3='Please enter your choice: '
SETTINGS=''
options=("low" "medium" "high" "highest" "quti")
select opt in "${options[@]}"
do
case $opt in
"low")
echo "you chose '/screen'"
SETTINGS="/screen"
break
;;
"medium")
echo "you choose '/ebook'"
SETTINGS="/ebook"
break
;;
"high")
echo "you chose '/printer'"
SETTINGS="/printer"
break
;;
"highest")
echo "you chose '/repress'"
SETTINGS="/repress"
break
;;
"quit")
echo "quitting..."
break
;;
*) echo "invalid option $REPLY";;
esac
done
gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=$SETTINGS -sOutputFile=$2 $1

@ -0,0 +1 @@
ffmpeg -i "$1" -vcodec libx265 -crf 28 "compressed-${1%.*}.mp4"

@ -0,0 +1,53 @@
#!/bin/sh
# Get class of a wid
get_class() {
id=$1
if [ -z "$id" ]; then
echo ""
else
xprop -id "$id" | sed -n '/WM_CLASS\|WM_COMMAND/s/.*"\(.*\)".*/\1/p'
fi
}
swallow() {
addedtodesktop=$2
lasttermdesktop=$(bspc query -D -n last)
swallowerid=$1
swallowingid=$(bspc query -N -n last)
if [ "$addedtodesktop" = "$lasttermdesktop" ]; then
cat ~/.config/bspwm/noswallow ~/.config/bspwm/terminals | grep "^$(get_class "$swallowerid")$" && return
grep "^$(get_class "$swallowingid")$" ~/.config/bspwm/terminals || return
echo "$swallowerid $swallowingid" >> /tmp/swallowids
bspc node "$swallowingid" --flag hidden=on
fi
}
spit() {
spitterid=$1
spitterdesktop=$2
grep "^$spitterid" /tmp/swallowids || return
spittingid=$(grep "^$spitterid" /tmp/swallowids | head -n1 | awk '{print $2}')
bspc node "$spittingid" --flag hidden=off
termdesktop=$(bspc query -D -n "$spittingid")
[ "$termdesktop" = "$spitterdesktop" ] || bspc node "$spittingid" -d "$spitterdesktop"
bspc node "$spittingid" -f
sed -i "/^$spitterid/d" /tmp/swallowids
}
bspc subscribe node_add node_remove | while read -r event
do
case $(echo "$event" | awk '{ print $1 }') in
node_add)
swallow $(echo "$event" | awk '{print $5 " " $3}')
;;
node_remove)
spit $(echo "$event" | awk '{print $4 " " $3}')
;;
esac
done

@ -0,0 +1,13 @@
#!/bin/bash
echo "hi" > /tmp/picpresent
# What I cant create I can understand, Richard Fayman
URL="https://wallpapercave.com/download/richard-feynman-wallpapers-wp6637060?nocache=1"
# WRech
#URL="https://preview.redd.it/eyuib1knsco61.png?width=1920&format=png&auto=webp&s=bb57dce3780b4cd5d7dfd3f2a795053e3cc22ad9"
CACHE_PATH="${XDG_CACHE_HOME}/$(echo $URL | sed 's/\///g')"
[ -f "$CACHE_PATH" ] || curl "$URL" -o "$CACHE_PATH"
[ -f "$CACHE_PATH" ] && feh --bg-fill "$CACHE_PATH"

@ -0,0 +1,6 @@
#!/bin/sh
# if bspwm
bspc node "$@" ||
bspc monitor "$@"

@ -0,0 +1,11 @@
#!/bin/bash
#img=$(mktemp /tmp/XXXXXXXXXX.png)
qdbus org.keepassxc.KeePassXC.MainWindow /keepassxc org.keepassxc.MainWindow.lockAllDatabases &
img="$HOME/Pictures/wallpapers/arch-linux-dunno.png"
# Take a screenshot of current desktop
#import -window root $img
## Pixelate the screenshot
#convert $img -blur 9,9 $img
i3lock -i "$img" -f
#rm $img

@ -0,0 +1,6 @@
#!/bin/bash
my_laptop_external_monitor=$(xrandr --query | grep 'HDMI-0')
if [[ $my_laptop_external_monitor = *connected* ]]; then
xrandr --output HDMI-0 --primary --mode 1920x1080 --rotate normal --output eDP-1-1 --mode 1920x1080 --rotate normal --left-of HDMI-0 &
fi

@ -0,0 +1,5 @@
#!/bin/bash
awk '/^[a-z]/ && last {print "<small>",$0,"\t",last,"</small>"} {last=""} /^#/{last=$0}' ~/.config/sxhkd/sxhkdrc{,.common} |
column -t -s $'\t' |
rofi -dmenu -i -markup-rows -no-show-icons -width 1000 -lines 15 -yoffset 40

@ -0,0 +1,48 @@
#! /bin/sh
pgrep -x sxhkd > /dev/null || sxhkd &
#sxhkd &
#Swallow
pgrep ~/bin/wm/bspswallow || ~/bin/wm/bspswallow &
bspc monitor -d I II III IV V VI VII
#bspc config ignore_ewmh_fullscreen all
bspc config ignore_ewmh_focus true
bspc config window_gap 0
bspc config border_width 0
bspc config normal_border_color '#aaaaaa'
bspc config focused_border_color "#FFFFFF"
bspc config presel_feedback_color "#bbbbbb"
bspc config directional_focus_tightness low
bspc config split_ratio 0.52
bspc config borderless_monocle true
bspc config gapless_monocle true
bspc config single_monocle true
bspc config focus_follows_pointer true
bspc config pointer_follows_focus true
# bspc rule -a Gimp desktop='^8' state=floating follow=on
#bspc rule -a Chromium desktop='^1'
bspc rule -a Thunderbird desktop='^6'
bspc rule -a Dino desktop='^6'
bspc rule -a KeePassXC desktop='^6'
bspc rule -a Peek state=floating
bspc rule -a Connman-gtk state=floating
bspc rule -a mplayer2 state=floating
bspc rule -a Emacs state=tiled
bspc rule -a Zathura state=tiled
bspc rule -a Kupfer.py focus=on
bspc rule -a Screenkey manage=off
bspc rule -a wmpin sticky=on
bspc rule -a Floating state=floating
~/bin/autostart
xsetroot -cursor_name left_ptr &
~/.config/polybar/forest/launch.sh &

@ -0,0 +1,4 @@
Alacritty
Kitty
nvim
xterm

@ -0,0 +1,231 @@
#
# Backend
#
#################################
# Backend to use: "xrender" or "glx".
# GLX backend is typically much faster but depends on a sane driver.
backend = "glx";
#################################
#
# GLX backend
#
#################################
glx-no-stencil = true;
# GLX backend: Copy unmodified regions from front buffer instead of redrawing them all.
# My tests with nvidia-drivers show a 10% decrease in performance when the whole screen is modified,
# but a 20% increase when only 1/4 is.
# My tests on nouveau show terrible slowdown.
# Useful with --glx-swap-method, as well.
glx-copy-from-front = false;
# GLX backend: Use MESA_copy_sub_buffer to do partial screen update.
# My tests on nouveau shows a 200% performance boost when only 1/4 of the screen is updated.
# May break VSync and is not available on some drivers.
# Overrides --glx-copy-from-front.
# glx-use-copysubbuffermesa = true;
# GLX backend: Avoid rebinding pixmap on window damage.
# Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe).
# Recommended if it works.
# glx-no-rebind-pixmap = true;
# GLX backend: GLX buffer swap method we assume.
# Could be undefined (0), copy (1), exchange (2), 3-6, or buffer-age (-1).
# undefined is the slowest and the safest, and the default value.
# copy is fastest, but may fail on some drivers,
# 2-6 are gradually slower but safer (6 is still faster than 0).
# Usually, double buffer means 2, triple buffer means 3.
# buffer-age means auto-detect using GLX_EXT_buffer_age, supported by some drivers.
# Useless with --glx-use-copysubbuffermesa.
# Partially breaks --resize-damage.
# Defaults to undefined.
glx-swap-method = "undefined";
#################################
#
# Shadows
#
#################################
# Enabled client-side shadows on windows.
shadow = true;
# Don't draw shadows on DND windows.
no-dnd-shadow = true;
# Avoid drawing shadows on dock/panel windows.
no-dock-shadow = true;
# Zero the part of the shadow's mask behind the window. Fix some weirdness with ARGB windows.
clear-shadow = true;
# The blur radius for shadows. (default 12)
shadow-radius = 5;
# The left offset for shadows. (default -15)
shadow-offset-x = -5;
# The top offset for shadows. (default -15)
shadow-offset-y = -5;
# The translucency for shadows. (default .75)
shadow-opacity = 0.5;
# Set if you want different colour shadows
# shadow-red = 0.0;
# shadow-green = 0.0;
# shadow-blue = 0.0;
# The shadow exclude options are helpful if you have shadows enabled. Due to the way compton draws its shadows, certain applications will have visual glitches
# (most applications are fine, only apps that do weird things with xshapes or argb are affected).
# This list includes all the affected apps I found in my testing. The "! name~=''" part excludes shadows on any "Unknown" windows, this prevents a visual glitch with the XFWM alt tab switcher.
shadow-exclude = [
"! name~=''",
"name = 'Notification'",
"name = 'Plank'",
"name = 'Docky'",
"name = 'Kupfer'",
"name = 'xfce4-notifyd'",
"name *= 'VLC'",
"name *= 'compton'",
# "name *= 'Chromium'",
"name *= 'Brave-browser'",
"name *= 'Firefox'",
"class_g = 'Conky'",
"class_g = 'Kupfer'",
"class_g = 'Synapse'",
"class_g ?= 'Notify-osd'",
"class_g ?= 'Cairo-dock'",
"class_g ?= 'Xfce4-notifyd'",
"class_g ?= 'Xfce4-power-manager'"
];
# Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners)
shadow-ignore-shaped = false;
#################################
#
# Opacity
#
#################################
menu-opacity = 1;
inactive-opacity = 0.7;
active-opacity = 1;
frame-opacity = 0.7;
inactive-opacity-override = false;
alpha-step = 0.06;
# Dim inactive windows. (0.0 - 1.0)
# inactive-dim = 0.2;
# Do not let dimness adjust based on window opacity.
# inactive-dim-fixed = true;
# Blur background of transparent windows. Bad performance with X Render backend. GLX backend is preferred.
blur-background = true;
# Blur background of opaque windows with transparent frames as well.
blur-background-frame = true;
# Do not let blur radius adjust based on window opacity.
blur-background-fixed = false;
blur-background-exclude = [
"window_type = 'dock'",
"window_type = 'desktop'"
];
# special cases and yes 100% doesn't work
opacity-rule = [ "99:name *= 'Brave'" ];
#################################
#
# Fading
#
#################################
# Fade windows during opacity changes.
fading = true;
# The time between steps in a fade in milliseconds. (default 10).
fade-delta = 4;
# Opacity change between steps while fading in. (default 0.028).
fade-in-step = 0.03;
# Opacity change between steps while fading out. (default 0.03).
fade-out-step = 0.03;
# Fade windows in/out when opening/closing
# no-fading-openclose = true;
# Specify a list of conditions of windows that should not be faded.
fade-exclude = [ ];
#################################
#
# Other
#
#################################
# Try to detect WM windows and mark them as active.
mark-wmwin-focused = true;
# Mark all non-WM but override-redirect windows active (e.g. menus).
mark-ovredir-focused = true;
# Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused instead of using FocusIn/Out events.
# Usually more reliable but depends on a EWMH-compliant WM.
use-ewmh-active-win = true;
# Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on.
detect-rounded-corners = true;
# Detect _NET_WM_OPACITY on client windows, useful for window managers not passing _NET_WM_OPACITY of client windows to frame windows.
# This prevents opacity being ignored for some apps.
# For example without this enabled my xfce4-notifyd is 100% opacity no matter what.
detect-client-opacity = true;
# Specify refresh rate of the screen.
# If not specified or 0, compton will try detecting this with X RandR extension.
refresh-rate = 0;
# Set VSync method. VSync methods currently available:
# none: No VSync
# drm: VSync with DRM_IOCTL_WAIT_VBLANK. May only work on some drivers.
# opengl: Try to VSync with SGI_video_sync OpenGL extension. Only work on some drivers.
# opengl-oml: Try to VSync with OML_sync_control OpenGL extension. Only work on some drivers.
# opengl-swc: Try to VSync with SGI_swap_control OpenGL extension. Only work on some drivers. Works only with GLX backend. Known to be most effective on many drivers. Does not actually control paint timing, only buffer swap is affected, so it doesn’t have the effect of --sw-opti unlike other methods. Experimental.
# opengl-mswc: Try to VSync with MESA_swap_control OpenGL extension. Basically the same as opengl-swc above, except the extension we use.
# (Note some VSync methods may not be enabled at compile time.)
vsync = "opengl-swc";
# Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing.
# Reported to have no effect, though.
dbe = false;
# Painting on X Composite overlay window. Recommended.
paint-on-overlay = true;
# Limit compton to repaint at most once every 1 / refresh_rate second to boost performance.
# This should not be used with --vsync drm/opengl/opengl-oml as they essentially does --sw-opti's job already,
# unless you wish to specify a lower refresh rate than the actual value.
sw-opti = false;
# Unredirect all windows if a full-screen opaque window is detected, to maximize performance for full-screen windows, like games.
# Known to cause flickering when redirecting/unredirecting windows.
# paint-on-overlay may make the flickering less obvious.
unredir-if-possible = true;
# Specify a list of conditions of windows that should always be considered focused.
focus-exclude = [ ];
# Use WM_TRANSIENT_FOR to group windows, and consider windows in the same group focused at the same time.
detect-transient = true;
# Use WM_CLIENT_LEADER to group windows, and consider windows in the same group focused at the same time.
# WM_TRANSIENT_FOR has higher priority if --detect-transient is enabled, too.
detect-client-leader = true;
#################################
#
# Window type settings
#
#################################
wintypes:
{
tooltip =
{
# fade: Fade the particular type of windows.
fade = true;
# shadow: Give those windows shadow
shadow = false;
# opacity: Default opacity for the type of windows.
opacity = 0.85;
# focus: Whether to always consider windows of this type focused.
focus = true;
};
};

@ -0,0 +1,444 @@
(add-hook 'markdown-mode-hook 'mixed-pitch-mode)
(add-hook 'org-mode-hook 'mixed-pitch-mode)
(setq leuven-scale-org-agenda-structure nil)
(setq leuven-scale-outline-headlines nil)
(setq doom-theme 'doom-gruvbox)
(setq doom-font (font-spec :family "FiraCode" :size 9.0 :weight 'regular)
doom-variable-pitch-font (font-spec :family "sans" :size 9.0))
(after! doom-themes
(set-fontset-font t 'arabic "Noto Sans Arabic UI")
(setq doom-themes-enable-bold t
doom-themes-enable-italic t
))
(custom-set-faces!
'(font-lock-comment-face :slant italic)
'(font-lock-keyword-face :slant italic)
)
;;(setq doom-font (font-spec :family "Open Sans" :size 12 :weight 'regular)
;;doom-variable-pitch-font (font-spec :family "sans" :size 12))
(setq display-line-numbers-type 't)
(setq neo-theme (if (display-graphic-p) 'icons 'arrow))
(map!
:n "<f5>" 'rustic-cargo-test
:n "C-<f5>" 'compile-on-save-mode
:n "<f6>" 'elfeed
;; :n "<f7>" email TODO: Add email
:n "<f8>" (cmd! (org-agenda nil "c"))
:n "<f12>" 'delve-open-or-select
)
(setq doom-leader-alt-key "C-SPC")
(setq doom-localleader-alt-key "C-SPC m")
(map! "C-h" 'backward-delete-char-untabify)
(defun doom/ediff-init-and-example ()
"ediff the current `init.el' with the example in doom-emacs-dir"
(interactive)
(ediff-files (concat doom-private-dir "init.el")
(concat doom-emacs-dir "init.example.el")))
(define-key! help-map
"di" #'doom/ediff-init-and-example
)
(setq-default fill-column 80)
(setq scroll-conservatively 10)
(setq scroll-margin 3)
;;(add-hook 'text-mode-hook 'mixed-pitch-mode)
(add-hook 'text-mode-hook 'blink-cursor-mode)
(use-package org-roam-server
:after org-roam
:config
(setq org-roam-server-host "127.0.0.1"
org-roam-server-port 8888
org-roam-server-authenticate nil
org-roam-server-export-inline-images t
org-roam-server-serve-files nil
org-roam-server-served-file-extensions '("pdf" "mp4" "ogv")
org-roam-server-network-poll t
org-roam-server-network-arrows nil
org-roam-server-network-label-truncate t
org-roam-server-network-label-truncate-length 60
org-roam-server-network-label-wrap-length 20)
(defun org-roam-server-open ()
"Ensure the server is active, then open the roam graph."
(interactive)
(unless (server-running-p)
(org-roam-server-mode 1))
(browse-url-xdg-open (format "http://localhost:%d" org-roam-server-port))))
;; Moved to Org Directory
(setq deft-directory "~/org/roam")
(setq deft-extensions '("md" "tex" "org"))
(setq deft-recursive t)
(setq deft-strip-title-regexp "\\(?:^%+\\|^#\\+TITLE: *\\|^[#* ]+\\|-\\*-[[:alpha:]]+-\\*-\\|^Title:[ ]*\\|#+$\\)")
(setq org-roam-dailies-capture-templates
(let ((head "\
:PROPERTIES:
:ID: %<%Y%m%d>-daily
:TITLE: %<%Y-%m-%d (%A)>
:STARTUP: showall
:ROAM_TAGS: dailies
:END:\
\n#+STARTUP: showall\
\* MetaData\
\n- type: [[id:8bedd21f][Dailies]]\
\n* Journal :journal: \
\n Feelings throught the day\
\n* Gratitude \n1. Past\n2. Present\n3. Future\
\n* Goals for today [/][%]\
\n- [ ] \
\n* The Good and Bad \
\n** YES \
\n** NO \
"))
`(("j" "journal" entry
#'org-roam-capture--get-point
"* %<%H:%M> %?"
:file-name "daily/%<%Y-%m-%d>"
:head ,head
:olp ("Journal"))
("t" "do today" item
#'org-roam-capture--get-point
"[ ] %(princ as/agenda-captured-link)"
:file-name "daily/%<%Y-%m-%d>"
:head ,head
:olp ("Do Today")
:immediate-finish t)
("m" "maybe do today" item
#'org-roam-capture--get-point
"[ ] %(princ as/agenda-captured-link)"
:file-name "daily/%<%Y-%m-%d>"
:head ,head
:olp ("Maybe Do Today")
:immediate-finish t))))
;(add-hook 'org-mode-hook #'delve-minor-mode-maybe-activate)
(setq delve-use-icons-in-completions t)
(set-evil-initial-state! 'delve-mode 'insert)
(map! :map delve-mode-map
:n "gr" #'delve-refresh-buffer
:n "<right>" #'delve-expand-insert-tolinks
:n "<left>" #'devle-expand-insert-backlinks
:n "TAB" #'delve-expand-toggle-sublist)
"RET" #'lister-key-action
:localleader
"RET" #'lister-key-action
"TAB" #'delve-expand-toggle-sublist
(defun org-roam-server-open ()
"Ensure the server is active, then open the roam graph."
(interactive)
(smartparens-global-mode -1)
(org-roam-server-mode 1)
(browse-url-xdg-open (format "http://localhost:%d" org-roam-server-port))
(smartparens-global-mode 1))
;; automatically enable server-mode
;; (after! org-roam
;; (smartparens-global-mode -1)
;; (org-roam-server-mode)
;; (smartparens-global-mode 1))
(setq org-roam-prefer-id-links t)
(setq org-directory "~/org/org/")
(setq org-college-file(concat org-directory "college.org"))
;; roam
(setq org-roam-directory "~/org/roam/")
(setq org-roam-dailies-directory "daily/")
(setq org-roam-intersting-file (concat org-roam-directory "internet/intersting.org"))
(setq org-roam-goals-file (concat org-roam-directory "goals.org"))
(use-package! org-super-agenda
:after org-agenda
;;:custom-face
;;(org-super-agenda-header ((default (:inherit propositum-agenda-heading))))
:init
(setq
org-agenda-skip-scheduled-if-done t
org-agenda-skip-deadline-if-done t
org-agenda-include-deadlines t
org-agenda-block-separator nil
org-agenda-compact-blocks t
org-agenda-start-day nil ;; i.e. today
org-agenda-span 1
org-agenda-start-on-weekday nil
)
(setq org-agenda-custom-commands
'(("c" "Super view"
(
(agenda "" ((org-agenda-overriding-header "")
(org-super-agenda-groups
'((:name "Today"
:time-grid t
:date today
:order 1)
(:discard (:anything t))
))))
(alltodo "" ((org-agenda-overriding-header "")
(org-super-agenda-groups
'(;;(:log t)
(:name "Important"
:priority "A"
:order 1
)
;; College
(:name "Events"
:tag "event"
:order 2
)
(:name "College"
:tag "college"
:order 3
)
;; (:name "Next"
;; :todo "STRT"
;; :order 2)
;; ====schedules====== ;;
;; (:name "habits"
;; :and (:habit t :scheduled today )
;; :order 13
;; )
(:name "Scheduled Soon"
:and (:scheduled future :not (:habit t))
:order 6)
(:name "Due Soon"
:deadline future
:order 6)
(:name "Missed"
:scheduled past
:deadline past
:order 7)
;;==============================;;
(:name "FOSS"
:tag "foss"
:order 9
)
(:name "Media to Consoom"
:tag "media"
:order 14
)
(:name "code"
:tag "code"
:order 15
)
(:name "Linux"
:tag "rice"
:order 16
)
(:discard (:habit t))
))))))))
:config
(org-super-agenda-mode))
(add-hook 'org-agenda-mode-hook 'elegant-agenda-mode)
(with-eval-after-load 'org-agenda
(define-key org-super-agenda-header-map "j" nil)
(define-key org-super-agenda-header-map "k" nil))
(advice-add 'org-agenda-quit :before 'org-save-all-org-buffers)
(add-hook 'org-mode-hook 'turn-on-auto-fill)
(defun update-org-latex-fragments ()
(org-latex-preview '(64))
(plist-put org-format-latex-options :scale text-scale-mode-amount)
(org-latex-preview '(16)))
(add-hook 'text-scale-mode-hook 'update-org-latex-fragments)
(eval-after-load "preview"
'(add-to-list 'preview-default-preamble "\\PreviewEnvironment{tikzpicture}" t))
(after! org (add-hook 'org-mode-hook 'turn-on-org-cdlatex))
(cl-defmacro lsp-org-babel-enable (lang)
"Support LANG in org source code block."
(setq centaur-lsp 'lsp-mode)
(cl-check-type lang stringp)
(let* ((edit-pre (intern (format "org-babel-edit-prep:%s" lang)))
(intern-pre (intern (format "lsp--%s" (symbol-name edit-pre)))))
`(progn
(defun ,intern-pre (info)
(let ((file-name (->> info caddr (alist-get :file))))
(unless file-name
(setq file-name (make-temp-file "babel-lsp-")))
(setq buffer-file-name file-name)
(lsp-deferred)))
(put ',intern-pre 'function-documentation
(format "Enable lsp-mode in the buffer of org source block (%s)."
(upcase ,lang)))
(if (fboundp ',edit-pre)
(advice-add ',edit-pre :after ',intern-pre)
(progn
(defun ,edit-pre (info)
(,intern-pre info))
(put ',edit-pre 'function-documentation
(format "Prepare local buffer environment for org source block (%s)."
(upcase ,lang))))))))
(defvar org-babel-lang-list
'("go" "python" "ipython" "bash" "sh"))
(dolist (lang org-babel-lang-list)
(eval `(lsp-org-babel-enable ,lang)))
(after! org
(setq org-capture-templates
'(
("t" "General Todo")
("tt" "General" entry
(file+headline +org-capture-todo-file "Inbox")
"* TODO %?\n%i")
("tT" "Today" entry
(file+headline +org-capture-todo-file "Inbox")
"* TODO %?\n%iSCHEDULED: %T\n")
;; College
("c" "College")
("ch" "Homework" entry
(file+headline org-college-file "Homework :college:hw:")
"* TODO %?\n%i:PROPERTIES:\n:Created: %U\n:END:")
("cq" "Quiz/Exam/Test" entry
(file+headline org-college-file "Quiz :college:exam:")
"* TODO %?\n%i:PROPERTIES:\n:Created: %U\n:END:")
("ce" "Event" entry
(file+headline org-college-file "Event :college:event:")
"* TODO %?\n%i:PROPERTIES:\n:Created: %U\n:END:")
("ct" "Todo" entry
(file+headline org-college-file "College Todo :college:")
"* TODO %?\n%i:PROPERTIES:\n:Created: %U\n:END:")
("i" "Interesting")
("iw" "Interesting Website" entry
(file+headline org-roam-intersting-file "Website")
"* %?\n%i\n")
("it" "Interesting tweet" entry
(file+headline org-roam-intersting-file "Tweet")
"- %?\n%i\n")
("ii" "Information" entry
(file+headline org-roam-intersting-file "Information")
"** PROJ %?\n%i\n")
("iq" "Quote" entry
(file+headline org-roam-intersting-file "Quotes")
"** %?\n%i\n")
("ip" "Project Idea" entry
(file+headline org-roam-goals-file "Project Ideas")
"** PROJ %?\n%i\n")
("ib" "Blog Ideas" entry
(file+headline org-roam-goals-file "Blog Ideas")
"- %?\n%i\n")
;; Media
("m" "Media")
("mr" "To Read" entry
(file+headline +org-capture-todo-file "To Read :media:read:")
"* TODO %?\n%i\n")
("mw" "To Watch" entry
(file+headline +org-capture-todo-file "To Watch :media:watch:")
"* TODO %?\n%i\n")
("r" "Rice")
("ie" "Emacs Ideas" entry
(file+headline +org-capture-todo-file "Emacs Ideas :emacs:rice:")
"- %?\n%i\n")
("ro" "Other Ideas" entry
(file+headline +org-capture-todo-file "Window Manager :wm:rice:")
"- %?\n%i\n")
("o" "Free/Open software")
("oa" "AUR" entry
(file+headline +org-capture-todo-file "AUR :foss:aur:")
"* TODO %? \n%i\n")
)))
;;(add-hook 'org-mode-hook #'mixed-pitch-mode)
(setq geiser-default-implementation 'guile)
(setq org-ditaa-jar-path "/usr/share/java/ditaa/ditaa-0.11.jar")
(setq org-hide-emphasis-markers t)
;(after! org (setq org-tags-column 60))
(setq-default elfeed-search-filter "@1-week-ago")
;(setq rmh-elfeed-org-files (list "~/.doom.d/elfeed.org" (concat org-roam-directory "internet/elfeed.org")))
(setq rmh-elfeed-org-files (list (concat org-roam-directory "elfeed.org")))
(setf url-queue-parallel-processes 20
url-queue-timeout 10)
(after! elfeed (map! :map elfeed-search-mode-map
:n "gv" 'elfeed-view-mpv
:n "R" 'elfeed-update
:n "r" 'elfeed-search-untag-all-unread
:n "u" 'elfeed-search-tag-all-unread
:n "G" 'evil-goto-line
:n "<f6>" 'elfeed-close-prev-buffer
:n "b" 'elfeed-search-browse-url
:n "c" 'elfeed-search-clear-filter
))
(defun elfeed-close-prev-buffer ()
(interactive)
"elfeed-kill and restore prev buffer"
(elfeed-kill-buffer)
(previous-buffer))
(defun elfeed-v-mpv (url title)
"Watch a video from URL in MPV"
(defvar cmd (format "mpv --ytdl-format=worst '%s'" url))
(save-window-excursion
(async-shell-command cmd)
(save-window-excursion
(shell-command (format"notify-send 'Loading Video' '%s'" title)))
(message "Video Loading")
)
)
(defun elfeed-view-mpv (&optional use-generic-p)
"Youtube-feed link"
(interactive "P")
(let ((entries (elfeed-search-selected)))
(cl-loop for entry in entries
do (elfeed-untag entry 'unread)
when (elfeed-entry-link entry)
do (elfeed-v-mpv it (elfeed-entry-title entry))) ;; print title
(mapc #'elfeed-search-update-entry entries)
(unless (use-region-p) (forward-line))))
;;(add-hook 'elfeed-show-mode-hook #'mixed-pitch-mode)
(setq lsp-rust-target "/tmp/rust-crap")
(with-eval-after-load 'telega
(define-key telega-msg-button-map "k" nil)
(define-key telega-msg-button-map "l" nil))
(setq telega-chat-bidi-display-reordering 'right-to-left)
(setq company-idle-delay 0.0
company-minimum-prefix-length 1)
(ranger-override-dired-mode t)
(when EMACS28+
(add-hook 'latex-mode-hook #'TeX-latex-mode))
(setq haskell-process-type 'cabal-new-repl)

@ -0,0 +1,781 @@
# -*- eval:(org-content 2) -*-
#+TITLE: Config
#+STARTUP: content
* Table of content :toc_2:FOLD:
- [[#info][Info]]
- [[#global-settings][Global Settings]]
- [[#private-config][Private Config]]
- [[#start-as-a-server][Start as a server]]
- [[#ui][UI]]
- [[#keybinds][KeyBinds]]
- [[#fill-column][Fill column]]
- [[#scroll][Scroll]]
- [[#modes][Modes]]
- [[#org-mode][Org-Mode]]
- [[#roam][ROAM]]
- [[#org-directory][Org Directory]]
- [[#agenda][Agenda]]
- [[#org-latex][Org-Latex]]
- [[#capture-templates][Capture templates]]
- [[#modes-1][Modes]]
- [[#ui-1][UI]]
- [[#elfeed][Elfeed]]
- [[#setup][Setup]]
- [[#key-maps][Key Maps]]
- [[#utils][Utils]]
- [[#modes-2][Modes]]
- [[#languages][Languages]]
- [[#rust][Rust]]
- [[#nand2tetris][nand2tetris]]
- [[#irc][IRC]]
- [[#telega][Telega]]
- [[#company-mode][Company mode]]
- [[#ranger][Ranger]]
- [[#fixes][Fixes]]
* Info
#+begin_src emacs-lisp
;; DOOMDIR/config.el -*- lexical-binding: t; -*-
;; Here are some additional functions/macros that could help you configure Doom:
;;
;; - `load!' for loading external *.el files relative to this one
;; - `use-package!' for configuring packages
;; - `after!' for running code after a package has loaded
;; - `add-load-path!' for adding directories to the `load-path', relative to
;; this file. Emacs searches the `load-path' when you load packages with
;; `require' or `use-package'.
;; - `map!' for binding new keys
;;
;; To get information about any of these functions/macros, move the cursor over
;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k').
;; This will open documentation for it, including demos of how they are used.
;;
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
;; they are implemented.
;;
#+end_src
* Global Settings
Place your private configuration here! Remember, you do not need to run 'doom
sync' after modifying this file!
** Private Config
Some functionality uses this to identify you, e.g. GPG configuration, email
clients, file templates and snippets.
#+begin_src emacs-lisp
(setq user-full-name "Serben"
user-mail-address "serben@disroot.org")
#+end_src
** Start as a server
#+begin_src emacs-lisp
;;(server-start)
#+end_src
** UI
Doom exposes five (optional) variables for controlling fonts in Doom. Here
are the three important ones:
+ src_lisp{doom-font'}
+ src_lisp{doom-variable-pitch-font'}
+ src_lisp{doom-big-font'} -- used for `doom-big-font-mode'; use this for
presentations or streaming.
They all accept either a font-spec, font string ("Input Mono-12"), or xlfd
font string. You generally only need these two:
*** Theme
There are two ways to load a theme. Both assume the theme is installed and
available. You can either set src_elisp{`doom-theme'} or manually load a theme
with the src_elisp{`load-theme'} function. This is the default src_elisp{(setq
doom-theme 'doom-one)}
#+begin_src elisp :tangle yes
(setq leuven-scale-org-agenda-structure nil)
(setq leuven-scale-outline-headlines nil)
(setq doom-theme 'doom-gruvbox)
#+end_src
*** Font
#+begin_src elisp :tangle yes
(setq doom-font (font-spec :family "FiraCode" :size 9.0 :weight 'regular)
doom-variable-pitch-font (font-spec :family "sans" :size 9.0))
(after! doom-themes
(set-fontset-font t 'arabic "Noto Sans Arabic UI")
(setq doom-themes-enable-bold t
doom-themes-enable-italic t
))
(custom-set-faces!
'(font-lock-comment-face :slant italic)
'(font-lock-keyword-face :slant italic)
)
;;(setq doom-font (font-spec :family "Open Sans" :size 12 :weight 'regular)
;;doom-variable-pitch-font (font-spec :family "sans" :size 12))
#+end_src
*** Line Numbers
#+begin_src elisp
(setq display-line-numbers-type 't)
#+end_src
*** Neotree
Use Icons
#+begin_src elisp :tangle yes
(setq neo-theme (if (display-graphic-p) 'icons 'arrow))
#+end_src
** KeyBinds
*** Function row <F-{1-12}>
#+begin_src elisp :tangle yes
(map!
:n "<f5>" 'rustic-cargo-test
:n "C-<f5>" 'compile-on-save-mode
:n "<f6>" 'elfeed
;; :n "<f7>" email TODO: Add email
:n "<f8>" (cmd! (org-agenda nil "c"))
:n "<f12>" 'delve-open-or-select
)
#+end_src
*** alt Leader key
#+begin_src elisp :tangle yes
(setq doom-leader-alt-key "C-SPC")
(setq doom-localleader-alt-key "C-SPC m")
#+end_src
*** Text Manipulation
**** C-h as backspace
#+begin_src elisp :tangle yes
(map! "C-h" 'backward-delete-char-untabify)
#+end_src
**** ediff init and example
#+begin_src elisp :tangle yes
(defun doom/ediff-init-and-example ()
"ediff the current `init.el' with the example in doom-emacs-dir"
(interactive)
(ediff-files (concat doom-private-dir "init.el")
(concat doom-emacs-dir "init.example.el")))
(define-key! help-map
"di" #'doom/ediff-init-and-example
)
#+end_src
** Fill column
#+begin_src elisp :tangle yes
(setq-default fill-column 80)
#+end_src
** Scroll
#+begin_src elisp :tangle yes
(setq scroll-conservatively 10)
(setq scroll-margin 3)
#+end_src
* Modes
Global Mixed Pitch mode!
#+begin_src elisp :tangle yes
;;(add-hook 'text-mode-hook 'mixed-pitch-mode)
(add-hook 'text-mode-hook 'blink-cursor-mode)
#+end_src
* Org-Mode
** ROAM
*** Setup
#+begin_src elisp :tangle yes
(use-package org-roam-server
:after org-roam
:config
(setq org-roam-server-host "127.0.0.1"
org-roam-server-port 8888
org-roam-server-authenticate nil
org-roam-server-export-inline-images t
org-roam-server-serve-files nil
org-roam-server-served-file-extensions '("pdf" "mp4" "ogv")
org-roam-server-network-poll t
org-roam-server-network-arrows nil
org-roam-server-network-label-truncate t
org-roam-server-network-label-truncate-length 60
org-roam-server-network-label-wrap-length 20)
(defun org-roam-server-open ()
"Ensure the server is active, then open the roam graph."
(interactive)
(unless (server-running-p)
(org-roam-server-mode 1))
(browse-url-xdg-open (format "http://localhost:%d" org-roam-server-port))))
#+end_src
*** Set Directory
#+begin_src elisp :tangle yes
;; Moved to Org Directory
#+end_src
*** Deft
#+begin_src elisp :tangle yes
(setq deft-directory "~/org/roam")
(setq deft-extensions '("md" "tex" "org"))
(setq deft-recursive t)
(setq deft-strip-title-regexp "\\(?:^%+\\|^#\\+TITLE: *\\|^[#* ]+\\|-\\*-[[:alpha:]]+-\\*-\\|^Title:[ ]*\\|#+$\\)")
#+end_src
*** Dailies Template
me is Smurt
#+begin_src elisp :tangle yes
(setq org-roam-dailies-capture-templates
(let ((head "\
:PROPERTIES:
:ID: %<%Y%m%d>-daily
:TITLE: %<%Y-%m-%d (%A)>
:STARTUP: showall
:ROAM_TAGS: dailies
:END:\
\n#+STARTUP: showall\
\* MetaData\
\n- type: [[id:8bedd21f][Dailies]]\
\n* Journal :journal: \
\n Feelings throught the day\
\n* Gratitude \n1. Past\n2. Present\n3. Future\
\n* Goals for today [/][%]\
\n- [ ] \
\n* The Good and Bad \
\n** YES \
\n** NO \
"))
`(("j" "journal" entry
#'org-roam-capture--get-point
"* %<%H:%M> %?"
:file-name "daily/%<%Y-%m-%d>"
:head ,head
:olp ("Journal"))
("t" "do today" item
#'org-roam-capture--get-point
"[ ] %(princ as/agenda-captured-link)"
:file-name "daily/%<%Y-%m-%d>"
:head ,head
:olp ("Do Today")
:immediate-finish t)
("m" "maybe do today" item
#'org-roam-capture--get-point
"[ ] %(princ as/agenda-captured-link)"
:file-name "daily/%<%Y-%m-%d>"
:head ,head
:olp ("Maybe Do Today")
:immediate-finish t))))
#+end_src
#+RESULTS:
| j | journal | entry | #'org-roam-capture--get-point | * %<%H:%M> %? | :file-name | daily/%<%Y-%m-%d> | :head | :PROPERTIES: |
*** Templates
#+INCLUDE: "~/org/roam/templates.org"
*** delve
#+begin_src elisp :tangle yes
;(add-hook 'org-mode-hook #'delve-minor-mode-maybe-activate)
(setq delve-use-icons-in-completions t)
(set-evil-initial-state! 'delve-mode 'insert)
(map! :map delve-mode-map
:n "gr" #'delve-refresh-buffer
:n "<right>" #'delve-expand-insert-tolinks
:n "<left>" #'devle-expand-insert-backlinks
:n "TAB" #'delve-expand-toggle-sublist)
"RET" #'lister-key-action
:localleader
"RET" #'lister-key-action
"TAB" #'delve-expand-toggle-sublist
#+end_src
*** fixes
smartparens breaks file viewer! [[https://github.com/org-roam/org-roam-server/issues/115][org-roam/org-roam-server#115 Calling "org-roam-server-mode" throws "Wrong typ...]]
#+begin_src elisp :tangle yes
(defun org-roam-server-open ()
"Ensure the server is active, then open the roam graph."
(interactive)
(smartparens-global-mode -1)
(org-roam-server-mode 1)
(browse-url-xdg-open (format "http://localhost:%d" org-roam-server-port))
(smartparens-global-mode 1))
;; automatically enable server-mode
;; (after! org-roam
;; (smartparens-global-mode -1)
;; (org-roam-server-mode)
;; (smartparens-global-mode 1))
#+end_src
for v2,
#+begin_src elisp :tangle yes
(setq org-roam-prefer-id-links t)
#+end_src
** Org Directory
If you use `org' and don't want your org files in the default location below,
change `org-directory'. It must be set before org loads!, end it with a slash "/"
#+begin_src elisp
(setq org-directory "~/org/org/")
(setq org-college-file(concat org-directory "college.org"))
;; roam
(setq org-roam-directory "~/org/roam/")
(setq org-roam-dailies-directory "daily/")
(setq org-roam-intersting-file (concat org-roam-directory "internet/intersting.org"))
(setq org-roam-goals-file (concat org-roam-directory "goals.org"))
#+end_src
** Agenda
*** custom commands [Inactive]
#+begin_src elisp :tangle no
(setq org-agenda-custom-commands
'(("d" "Today"
((tags-todo "SCHEDULED<\"<+1d>\"&PRIORITY=\"A\""
((org-agenda-skip-function
'(org-agenda-skip-entry-if 'todo 'done))
(org-agenda-overriding-header "High-priority unfinished tasks:")))
(agenda "" ((org-agenda-span 1)
(org-scheduled-delay-days -14)
(org-agenda-overriding-header "Schedule")))
(tags-todo "SCHEDULED<\"<+1d>\""
((org-agenda-skip-function
'(or (org-agenda-skip-entry-if 'done)))
(org-agenda-overriding-header "Tasks:")))))))
#+end_src
*** Org super agenda mode
[[https://github.com/alphapapa/org-super-agenda][Documentation]]
This is the raw example
#+begin_src elisp :tangle yes
(use-package! org-super-agenda
:after org-agenda
;;:custom-face
;;(org-super-agenda-header ((default (:inherit propositum-agenda-heading))))
:init
(setq
org-agenda-skip-scheduled-if-done t
org-agenda-skip-deadline-if-done t
org-agenda-include-deadlines t
org-agenda-block-separator nil
org-agenda-compact-blocks t
org-agenda-start-day nil ;; i.e. today
org-agenda-span 1
org-agenda-start-on-weekday nil
)
(setq org-agenda-custom-commands
'(("c" "Super view"
(
(agenda "" ((org-agenda-overriding-header "")
(org-super-agenda-groups
'((:name "Today"
:time-grid t
:date today
:order 1)
(:discard (:anything t))
))))
(alltodo "" ((org-agenda-overriding-header "")
(org-super-agenda-groups
'(;;(:log t)
(:name "Important"
:priority "A"
:order 1
)
;; College
(:name "Events"
:tag "event"
:order 2
)
(:name "College"
:tag "college"
:order 3
)
;; (:name "Next"
;; :todo "STRT"
;; :order 2)
;; ====schedules====== ;;
;; (:name "habits"
;; :and (:habit t :scheduled today )
;; :order 13
;; )
(:name "Scheduled Soon"
:and (:scheduled future :not (:habit t))
:order 6)
(:name "Due Soon"
:deadline future
:order 6)
(:name "Missed"
:scheduled past
:deadline past
:order 7)
;;==============================;;
(:name "FOSS"
:tag "foss"
:order 9
)
(:name "Media to Consoom"
:tag "media"
:order 14
)
(:name "code"
:tag "code"
:order 15
)
(:name "Linux"
:tag "rice"
:order 16
)
(:discard (:habit t))
))))))))
:config
(org-super-agenda-mode))
#+end_src
*** UI
#+begin_src elisp :tangle yes
(add-hook 'org-agenda-mode-hook 'elegant-agenda-mode)
#+end_src
*** fixes
#+begin_src elisp :tangle yes
(with-eval-after-load 'org-agenda
(define-key org-super-agenda-header-map "j" nil)
(define-key org-super-agenda-header-map "k" nil))
#+end_src
save before quiting!
#+begin_src elisp
(advice-add 'org-agenda-quit :before 'org-save-all-org-buffers)
#+end_src
** Org-Latex
*** Latex Image Preview options
#+begin_src elisp :tangle no
'(org-format-latex-options
(quote
(:foreground default :background default :scale 0.5 :html-foreground "Black" :html-background "Transparent" :html-scale 1.0 :matchers
("begin" "$1" "$" "$$" "\\(" "\\["))))
(set-default 'preview-scale-function 0.2)
#+end_src
Imagemagick since dvipng can't handle tikz \LaTeX
#+begin_src elisp :tangle no
(setq org-latex-create-formula-image-program 'imagemagick)
#+end_src
*** Update Latex Fragments with font change
#+begin_src elisp :tangle yes
(add-hook 'org-mode-hook 'turn-on-auto-fill)
(defun update-org-latex-fragments ()
(org-latex-preview '(64))
(plist-put org-format-latex-options :scale text-scale-mode-amount)
(org-latex-preview '(16)))
(add-hook 'text-scale-mode-hook 'update-org-latex-fragments)
#+end_src
*** Tikz Preview
#+begin_src elisp :tangle yes
(eval-after-load "preview"
'(add-to-list 'preview-default-preamble "\\PreviewEnvironment{tikzpicture}" t))
#+end_src
*** nice to be able to use cdlatex.
#+begin_src elisp :tangle yes
(after! org (add-hook 'org-mode-hook 'turn-on-org-cdlatex))
#+end_src
*** Now, by default, LSPs don’t really function at all in src blocks.
#+begin_src elisp :tangle yes
(cl-defmacro lsp-org-babel-enable (lang)
"Support LANG in org source code block."
(setq centaur-lsp 'lsp-mode)
(cl-check-type lang stringp)
(let* ((edit-pre (intern (format "org-babel-edit-prep:%s" lang)))
(intern-pre (intern (format "lsp--%s" (symbol-name edit-pre)))))
`(progn
(defun ,intern-pre (info)
(let ((file-name (->> info caddr (alist-get :file))))
(unless file-name
(setq file-name (make-temp-file "babel-lsp-")))
(setq buffer-file-name file-name)
(lsp-deferred)))
(put ',intern-pre 'function-documentation
(format "Enable lsp-mode in the buffer of org source block (%s)."
(upcase ,lang)))
(if (fboundp ',edit-pre)
(advice-add ',edit-pre :after ',intern-pre)
(progn
(defun ,edit-pre (info)
(,intern-pre info))
(put ',edit-pre 'function-documentation
(format "Prepare local buffer environment for org source block (%s)."
(upcase ,lang))))))))
(defvar org-babel-lang-list
'("go" "python" "ipython" "bash" "sh"))
(dolist (lang org-babel-lang-list)
(eval `(lsp-org-babel-enable ,lang)))
#+end_src
** Capture templates
#+begin_src elisp :tangle yes
(after! org
(setq org-capture-templates
'(
("t" "General Todo")
("tt" "General" entry
(file+headline +org-capture-todo-file "Inbox")
"* TODO %?\n%i")
("tT" "Today" entry
(file+headline +org-capture-todo-file "Inbox")
"* TODO %?\n%iSCHEDULED: %T\n")
;; College
("c" "College")
("ch" "Homework" entry
(file+headline org-college-file "Homework :college:hw:")
"* TODO %?\n%i:PROPERTIES:\n:Created: %U\n:END:")
("cq" "Quiz/Exam/Test" entry
(file+headline org-college-file "Quiz :college:exam:")
"* TODO %?\n%i:PROPERTIES:\n:Created: %U\n:END:")
("ce" "Event" entry
(file+headline org-college-file "Event :college:event:")
"* TODO %?\n%i:PROPERTIES:\n:Created: %U\n:END:")
("ct" "Todo" entry
(file+headline org-college-file "College Todo :college:")
"* TODO %?\n%i:PROPERTIES:\n:Created: %U\n:END:")
("i" "Interesting")
("iw" "Interesting Website" entry
(file+headline org-roam-intersting-file "Website")
"* %?\n%i\n")
("it" "Interesting tweet" entry
(file+headline org-roam-intersting-file "Tweet")
"- %?\n%i\n")
("ii" "Information" entry
(file+headline org-roam-intersting-file "Information")
"** PROJ %?\n%i\n")
("iq" "Quote" entry
(file+headline org-roam-intersting-file "Quotes")
"** %?\n%i\n")
("ip" "Project Idea" entry
(file+headline org-roam-goals-file "Project Ideas")
"** PROJ %?\n%i\n")
("ib" "Blog Ideas" entry
(file+headline org-roam-goals-file "Blog Ideas")
"- %?\n%i\n")
;; Media
("m" "Media")
("mr" "To Read" entry
(file+headline +org-capture-todo-file "To Read :media:read:")
"* TODO %?\n%i\n")
("mw" "To Watch" entry
(file+headline +org-capture-todo-file "To Watch :media:watch:")
"* TODO %?\n%i\n")
("r" "Rice")
("ie" "Emacs Ideas" entry
(file+headline +org-capture-todo-file "Emacs Ideas :emacs:rice:")
"- %?\n%i\n")
("ro" "Other Ideas" entry
(file+headline +org-capture-todo-file "Window Manager :wm:rice:")
"- %?\n%i\n")
("o" "Free/Open software")
("oa" "AUR" entry
(file+headline +org-capture-todo-file "AUR :foss:aur:")
"* TODO %? \n%i\n")
)))
#+end_src
** Modes
#+begin_src elisp :tangle yes
;;(add-hook 'org-mode-hook #'mixed-pitch-mode)
(setq geiser-default-implementation 'guile)
#+end_src
*** ditaa
#+begin_src elisp :tangle yes
(setq org-ditaa-jar-path "/usr/share/java/ditaa/ditaa-0.11.jar")
#+end_src
*** Mixed pitch mode
#+begin_src emacs-lisp :tangle yes
(add-hook 'markdown-mode-hook 'mixed-pitch-mode)
(add-hook 'org-mode-hook 'mixed-pitch-mode)
#+end_src
** UI
*** hide the emphasis markup (e.g. /.../ for italics, *...* for bold, etc.):
#+begin_src elisp :tangle yes
(setq org-hide-emphasis-markers t)
#+end_src
*** Fonts
#+begin_src elisp :tangle no
(let* ((variable-tuple
(cond ((x-list-fonts "Source Sans Pro") '(:font "Source Sans Pro"))
((x-list-fonts "Lucida Grande") '(:font "Lucida Grande"))
((x-list-fonts "Verdana") '(:font "Verdana"))
((x-family-fonts "Sans Serif") '(:family "Sans Serif"))
(nil (warn "Cannot find a Sans Serif Font. Install Source Sans Pro."))))
(base-font-color (face-foreground 'default nil 'default))
(headline `(:inherit default :weight bold :foreground ,base-font-color)))
(custom-theme-set-faces
'user
`(org-level-8 ((t (,@headline ,@variable-tuple))))
`(org-level-7 ((t (,@headline ,@variable-tuple))))
`(org-level-6 ((t (,@headline ,@variable-tuple))))
`(org-level-5 ((t (,@headline ,@variable-tuple))))
`(org-level-4 ((t (,@headline ,@variable-tuple :height 1.1))))
`(org-level-3 ((t (,@headline ,@variable-tuple :height 1.25))))
`(org-level-2 ((t (,@headline ,@variable-tuple :height 1.5))))
`(org-level-1 ((t (,@headline ,@variable-tuple :height 1.75))))
`(org-document-title ((t (,@headline ,@variable-tuple :height 2.0 :underline nil))))))
#+end_src
*** Image preview from urls
#+begin_src elisp :tangle no
(defun org-image-link (protocol link _description)
"Interpret LINK as base64-encoded image data."
(cl-assert (string-match "\\`img" protocol) nil
"Expected protocol type starting with img")
(let ((buf (url-retrieve-synchronously (concat (substring protocol 3) ":" link))))
(cl-assert buf nil
"Download of image \"%s\" failed." link)
(with-current-buffer buf
(goto-char (point-min))
(re-search-forward "\r?\n\r?\n")
(buffer-substring-no-properties (point) (point-max)))))
(org-link-set-parameters
"imghttp"
:image-data-fun #'org-image-link)
(org-link-set-parameters
"imghttps"
:image-data-fun #'org-image-link)
#+end_src
*** align tags
aligning tags misses up with capture templates
#+begin_src elisp :tangle yes
;(after! org (setq org-tags-column 60))
#+end_src
* Elfeed
** Setup
*** Use Filter:
#+begin_src elisp :tangle yes
(setq-default elfeed-search-filter "@1-week-ago")
#+end_src
*** Source of Feeds
Takes feeds from Org-File
#+begin_src elisp :tangle yes
;(setq rmh-elfeed-org-files (list "~/.doom.d/elfeed.org" (concat org-roam-directory "internet/elfeed.org")))
(setq rmh-elfeed-org-files (list (concat org-roam-directory "elfeed.org")))
#+end_src
*** Refresh Feed
Set up the url-queue variables for swift and complete operation. The
defaults are too bad. Especially /url-queue-timeout/ is way too short
for loading feeds.
#+begin_src elisp :tangle yes
(setf url-queue-parallel-processes 20
url-queue-timeout 10)
#+end_src
** Key Maps
| KeyBinds | Usage |
|----------+----------------|
| gv | Open With mpv |
| R | Update Feed |
| r | Mark As Read |
| u | Mark As Unread |
| <f6> | Close |
| b | browse url |
| c | clear filter |
| s | search live |
| S | set search |
Search examples: `@1-week-ago +videos -linux` (+/- are used to filter tags)
#+begin_src elisp :tangle yes
(after! elfeed (map! :map elfeed-search-mode-map
:n "gv" 'elfeed-view-mpv
:n "R" 'elfeed-update
:n "r" 'elfeed-search-untag-all-unread
:n "u" 'elfeed-search-tag-all-unread
:n "G" 'evil-goto-line
:n "<f6>" 'elfeed-close-prev-buffer
:n "b" 'elfeed-search-browse-url
:n "c" 'elfeed-search-clear-filter
))
#+end_src
** Utils
*** elfeed-close-prev-buffer
Closing elfeed forwards to prev buffer
#+begin_src elisp :tangle yes
(defun elfeed-close-prev-buffer ()
(interactive)
"elfeed-kill and restore prev buffer"
(elfeed-kill-buffer)
(previous-buffer))
#+end_src
*** elfeed-view-mpv
(add-hook 'LaTeX-mode-hook (lambda () (yas-minor-mode -1)))
(add-hook 'LaTeX-mode-hook #'auto-fill-mode)
Run video in mpv
#+begin_src elisp :tangle yes
(defun elfeed-v-mpv (url title)
"Watch a video from URL in MPV"
(defvar cmd (format "mpv --ytdl-format=worst '%s'" url))
(save-window-excursion
(async-shell-command cmd)
(save-window-excursion
(shell-command (format"notify-send 'Loading Video' '%s'" title)))
(message "Video Loading")
)
)
(defun elfeed-view-mpv (&optional use-generic-p)
"Youtube-feed link"
(interactive "P")
(let ((entries (elfeed-search-selected)))
(cl-loop for entry in entries
do (elfeed-untag entry 'unread)
when (elfeed-entry-link entry)
do (elfeed-v-mpv it (elfeed-entry-title entry))) ;; print title
(mapc #'elfeed-search-update-entry entries)
(unless (use-region-p) (forward-line))))
#+end_src
** Modes
#+begin_src elisp :tangle yes
;;(add-hook 'elfeed-show-mode-hook #'mixed-pitch-mode)
#+end_src
* Languages
** Rust
Fix "waiting blocking file"
#+begin_src elisp :tangle yes
(setq lsp-rust-target "/tmp/rust-crap")
#+end_src
** nand2tetris
#+begin_src elisp :tangle yes
#+end_src
* IRC
Include The Irc stuff
##+INCLUDE: "~/Documents/org-roam/internet/irc.org"
#+begin_src elisp :tangle no
(after! circe
(set-irc-server! "example.com"
`(:tls t
:port 6697
:nick "username"
:sasl-username ,(+pass-get-user "irc/example.com")
:sasl-password (lambda (&rest _) (+pass-get-secret "irc/example.com"))
:channels ("#lainchan" "#questions")))
(set-irc-server! "chat.freenode.net"
`(:tls t
:port 6697
:nick "username"
:sasl-username ,(+pass-get-user "irc/example.net")
:sasl-password (lambda (&rest _) (+pass-get-secret "irc/example.net"))
:channels ("#emacs")))
#+end_src
* Telega
k conflicts with evil up
#+begin_src elisp :tangle yes
(with-eval-after-load 'telega
(define-key telega-msg-button-map "k" nil)
(define-key telega-msg-button-map "l" nil))
(setq telega-chat-bidi-display-reordering 'right-to-left)
#+end_src
* Company mode
#+begin_src elisp :tangle yes
(setq company-idle-delay 0.0
company-minimum-prefix-length 1)
#+end_src
* Ranger
replace dired
#+begin_src elisp :tangle yes
(ranger-override-dired-mode t)
#+end_src
* Fixes
In case of Emacs28,
#+begin_src elisp :tangle yes
(when EMACS28+
(add-hook 'latex-mode-hook #'TeX-latex-mode))
(setq haskell-process-type 'cabal-new-repl)
#+end_src

@ -0,0 +1,6 @@
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)

@ -0,0 +1,213 @@
;;; init.el -*- lexical-binding: t; -*-
;; This file controls what Doom modules are enabled and what order they load
;; in. Remember to run 'doom sync' after modifying it!
;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's
;; documentation. There you'll find a "Module Index" link where you'll find
;; a comprehensive list of Doom's modules and what flags they support.
;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or
;; 'C-c c k' for non-vim users) to view its documentation. This works on
;; flags as well (those symbols that start with a plus).
;;
;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its
;; directory (for easy access to its source code).
(doom! :input
;;chinese
;; japanese
;;layout ; auie,ctsrnm is the superior home row
:completion
(company +childframe) ; the ultimate code completion backend
;;helm ; the *other* search engine for love and life
;;ido ; the other *other* search engine...
ivy ; a search engine for love and life
:ui
deft ; notational velocity for Emacs
doom ; what makes DOOM look the way it does
doom-dashboard ; a nifty splash screen for Emacs
doom-quit ; DOOM quit-message prompts when you quit Emacs
;; (emoji +github +unicode)
; 🙂
;;fill-column ; a `fill-column' indicator
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
;;hydra
;;indent-guides ; highlighted indent columns
;; (ligatures
;; +fira
;; +extra)
; ligatures and symbols to make your code pretty again
;;minimap ; show a map of the code on the side
modeline ; snazzy, Atom-inspired modeline, plus API
;;nav-flash ; blink cursor line after big motions
neotree ; a project drawer, like NERDTree for vim
ophints ; highlight the region an operation acts on
(popup +defaults) ; tame sudden yet inevitable temporary windows
;;tabs ; a tab bar for Emacs
treemacs ; a project drawer, like neotree but cooler
;;unicode ; extended unicode support for various languages
vc-gutter ; vcs diff in the fringe
vi-tilde-fringe ; fringe tildes to mark beyond EOB
;;window-select ; visually switch windows
workspaces ; tab emulation, persistence & separate workspaces
;;zen ; distraction-free coding or writing
:editor
(evil +everywhere) ; come to the dark side, we have cookies
file-templates ; auto-snippets for empty files
fold ; (nigh) universal code folding
(format +onsave) ; automated prettiness
;;god ; run Emacs commands without modifier keys
lispy ; vim for lisp, for people who don't like vim
;;multiple-cursors ; editing in many places at once
;;objed ; text object editing for the innocent
;;parinfer ; turn lisp into python, sort of
;;rotate-text ; cycle region at point between text candidates
snippets ; my elves. They type so I don't have to
;;word-wrap ; soft wrapping with language-aware indent
:emacs
dired ; making dired pretty [functional]
electric ; smarter, keyword-based electric-indent
;;ibuffer ; interactive buffer management
(undo +tree) ; persistent, smarter undo for your inevitable mistakes
vc ; version-control and Emacs, sitting in a tree
:term
;;eshell ; the elisp shell that works everywhere
;;shell ; simple shell REPL for Emacs
;;term ; basic terminal emulator for Emacs
vterm ; the best terminal emulation in Emacs
:checkers
syntax ; tasing you for every semicolon you forget
;;spell ; tasing you for misspelling mispelling
;;grammar ; tasing grammar mistake every you make
:tools
;;ansible
;;debugger ; FIXME stepping through code, to help you add bug
;; direnv
;;docker
editorconfig ; let someone else argue about tabs vs spaces
;;ein ; tame Jupyter notebooks with emacs
(eval +overlay) ; run code, run (also, repls)
;;gist ; interacting with github gists
lookup ; navigate your code and its documentation
(lsp +peek)
;;macos ; MacOS-specific commands
magit ; a git porcelain for Emacs
make ; run make tasks from Emacs
pass ; password manager for nerds
pdf ; pdf enhancements
;;prodigy ; FIXME managing external services & code builders
rgb ; creating color strings
;;taskrunner ; taskrunner for all your projects
;;terraform ; infrastructure as code
;;tmux ; an API for interacting with tmux
;;upload ; map local to remote projects via ssh/ftp
:os
(:if IS-MAC macos) ; improve compatibility with macOS
;;tty ; improve the terminal Emacs experience
:lang
;;agda ; types of types of types of types...
;;(cc +lsp) ; C/C++/Obj-C madness
;;clojure ; java with a lisp
;;common-lisp ; if you've seen one lisp, you've seen them all
;;coq ; proofs-as-programs
;;crystal ; ruby at the speed of c
;;csharp ; unity, .NET, and mono shenanigans
data ; config/data formats
;;(dart +flutter) ; paint ui and not much else
;;elixir ; erlang done right
;;elm ; care for a cup of TEA?
emacs-lisp ; drown in parentheses
;;erlang ; an elegant language for a more civilized age
;;ess ; emacs speaks statistics
;;faust ; dsp, but you get to keep your soul
;;fsharp ; ML stands for Microsoft's Language
;;fstar ; (dependent) types and (monadic) effects and Z3
;; (gdscript
;; +lsp)
; the language you waited for
(go +lsp) ; the hipster dialect
(haskell
+dante
+ghcide
+lsp
) ; a language that's lazier than I am
;;hy ; readability of scheme w/ speed of python
;;idris ;
json ; At least it ain't XML
;;(java +meghanada) ; the poster child for carpal tunnel syndrome
(javascript +lsp)
; all(hope(abandon(ye(who(enter(here))))))
;;julia ; a better, faster MATLAB
;;kotlin ; a better, slicker Java(Script)
(latex
+fold
+lsp
+latexmk
+cdlatex) ; writing papers in Emacs has never been so fun
;;lean
;;factor
;;ledger ; an accounting system in Emacs
;;lua ; one-based indices? one-based indices
markdown ; writing docs for people to ignore
;;nim ; python + lisp at the speed of c
;;nix ; I hereby declare "nix geht mehr!"
;;ocaml ; an objective camel
(org
+roam)
;;+pretty
; organize your plain life in plain text
;;php ; perl's insecure younger brother
;;plantuml ; diagrams for confusing people more
;;purescript ; javascript, but functional
;;python ; beautiful is better than ugly
;;qt ; the 'cutest' gui framework ever
;;racket ; a DSL for DSLs
;;raku ; the artist formerly known as perl6
;; (rest
;; +company-restclient)
; Emacs as a REST client
;;rst ; ReST in peace
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
(rust
+lsp)
; Fe2O3.unwrap().unwrap().unwrap().unwrap()
;;scala ; java, but good
;; (scheme
;; +guile)
; a fully conniving family of lisps
sh ; she sells {ba,z,fi}sh shells on the C xor
;;sml
;;solidity ; do you need a blockchain? No.
;;swift ; who asked for emoji variables?
;;terra ; Earth and Moon in alignment for performance.
(web ; the tubes
+lsp)
yaml ; JSON, but readable
;;zig ; C, but simpler
:email
;;(mu4e +gmail)
;;notmuch
;;(wanderlust +gmail)
:app
;;calendar
;;emms
;everywhere ; *leave* Emacs!? You must be joking
irc ; how neckbeards socialize
(rss +org) ; emacs as an RSS reader
;;twitter ; twitter client https://twitter.com/vnought
:config
literate
(default +bindings +smartparens))

@ -0,0 +1,103 @@
;; -*- no-byte-compile: t; -*-
;;; $DOOMDIR/packages.el
;; To install a package with Doom you must declare them here and run 'doom sync'
;; on the command line, then restart Emacs for the changes to take effect -- or
;; use 'M-x doom/reload'.
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
;(package! some-package)
(package! ranger)
;; To install a package directly from a remote git repo, you must specify a
;; `:recipe'. You'll find documentation on what `:recipe' accepts here:
;; https://github.com/raxod502/straight.el#the-recipe-format
;(package! another-package
; :recipe (:host github :repo "username/repo"))
;; If the package you are trying to install does not contain a PACKAGENAME.el
;; file, or is located in a subdirectory of the repo, you'll need to specify
;; `:files' in the `:recipe':
;(package! this-package
; :recipe (:host github :repo "username/repo"
; :files ("some-file.el" "src/lisp/*.el")))
;; If you'd like to disable a package included with Doom, you can do so here
;; with the `:disable' property:
;(package! builtin-package :disable t)
;; You can override the recipe of a built in package without having to specify
;; all the properties for `:recipe'. These will inherit the rest of its recipe
;; from Doom or MELPA/ELPA/Emacsmirror:
;(package! builtin-package :recipe (:nonrecursive t))
;(package! builtin-package-2 :recipe (:repo "myfork/package"))
;; Specify a `:branch' to install a package from a particular branch or tag.
;; This is required for some packages whose default branch isn't 'master' (which
;; our package manager can't deal with; see raxod502/straight.el#279)
;(package! builtin-package :recipe (:branch "develop"))
;; Use `:pin' to specify a particular commit to install.
;(package! builtin-package :pin "1a2b3c4d5e")
;; Doom's packages are pinned to a specific commit and updated from release to
;; release. The `unpin!' macro allows you to unpin single packages...
;(unpin! pinned-package)
;; ...or multiple packages
;(unpin! pinned-package another-pinned-package)
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
;(unpin! t)
;; (package! vue-mode)
(package! elpher)
(package! eglot)
;; (package! ox-json);; org to json
;(package! another-package
; :recipe (:host github :repo "username/repo"))
;; https://github.com/justinbarclay/elegant-agenda-mode
;;(package! elegant-emacs
;;:recipe (:host github :repo "rougier/elegant-emacs"
;;:files ("elegant-dark-theme.el"
;;"elegant-light-theme.el"
;;"elegance.el"
;;"sanity.el" )
;;))
;; ORG ROAM
(unpin! org-roam org-roam-server)
(package! company-org-roam
:recipe (:host github :repo "org-roam/company-org-roam"))
(package! elegant-agenda-mode
:recipe (:host github :repo "justinbarclay/elegant-agenda-mode"
;; :files ("elegant-agenda-mode.el")
))
;;; delve for org-roam
(package! lister ;deps for delve
:recipe (:host github :repo "publicimageltd/lister"))
(package! delve
:recipe (:host github :repo "publicimageltd/delve"))
(package! peasant-mode
:recipe (:host github :repo "flinner/peasant-mode"))
;;; Agenda
(package! org-super-agenda)
;; (package! org-roam-server)
(package! mixed-pitch)
;; This is for image previews from urls in org mode
(package! org-analyzer)

@ -0,0 +1,9 @@
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=Nihongo-LibreWolf
Exec=/usr/bin/librewolf -P nihongo %u
Icon=librewolf
StartupWMClass=LibreWolf

@ -0,0 +1,9 @@
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=default-LibreWolf
Exec=/usr/bin/librewolf -P default-release %u
Icon=librewolf
StartupWMClass=LibreWolf

@ -0,0 +1,2 @@
[MIME Cache]
x-scheme-handler/org-protocol=org-protocol.desktop;

@ -0,0 +1,7 @@
[Desktop Entry]
Name=org-protocol
Exec=emacsclient -n %u
Type=Application
Terminal=false
Categories=System;
MimeType=x-scheme-handler/org-protocol;

@ -0,0 +1,11 @@
* DOOM EMACS
** .doom.d
contains doom config
#+begin_src sh
.emacs.d/bin/doom build
#+end_src
** .local
contains the org-protocol
#+begin_src sh
update-desktop-database ~/.local/share/applications/
#+end_src

@ -0,0 +1,833 @@
#+title: Flinner's Config
#+PROPERTY: header-args:emacs-lisp :tangle ./init.el :mkdirp yes
#+startup: content
* Packaging
Initialize Package sources
#+begin_src emacs-lisp
(require 'package)
(setq package-archives '(("melpa" . "https://melpa.org/packages/")
("org" . "https://orgmode.org/elpa/")
("elpa" . "https://elpa.gnu.org/packages/")))
(package-initialize)
(unless package-archive-contents
(package-refresh-contents))
;; Initialize use-package on non-Linux platforms
(unless (package-installed-p 'use-package)
(package-install 'use-package))
#+end_src
Make sure to download packages if not present
#+begin_src emacs-lisp
(require 'use-package)
(setq use-package-always-ensure t)
#+end_src
straight
#+begin_src emacs-lisp
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
(bootstrap-version 5))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage))
(straight-use-package 'use-package)
(setq straight-use-package-by-default t)
#+end_src
* Basic UI Configuration
** Better Defaults
#+begin_src emacs-lisp
(setq inhibit-startup-message t)
(scroll-bar-mode -1) ; Disable visible scrollbar
(tool-bar-mode -1) ; Disable the toolbar
(tooltip-mode -1) ; Disable tooltips
(set-fringe-mode 10) ; Give some breathing room
(menu-bar-mode -1) ; Disable the menu bar
(winner-mode 1) ; Disable the menu bar
(setq visible-bell nil) ; Set up the visible bell
(column-number-mode) ; Display Column Number in the modline
#+end_src
Emacs Backups trashing local dir!
#+begin_src emacs-lisp
(setq backup-directory-alist `(("." . "~/.local/share/emacs-backups")))
(setq make-backup-files t ; backup of a file the first time it is saved.
backup-by-copying t ; don't clobber symlinks
version-control t ; version numbers for backup files
delete-old-versions t ; delete excess backup files silently
delete-by-moving-to-trash t
kept-old-versions 6 ; oldest versions to keep when a new numbered backup is made
kept-new-versions 9 ; newest versions to keep when a new numbered backup is made
auto-save-default t ; auto-save every buffer that visits a file
auto-save-timeout 20 ; number of seconds idle time before auto-save (default: 30)
auto-save-interval 200 ; number of keystrokes between auto-saves (default: 300)
)
#+end_src
Better Scrolling
#+begin_src elisp
(setq scroll-conservatively 10)
(setq scroll-margin 3)
#+end_src
** Fonts
#+begin_src emacs-lisp
(setq my/ui/monofont "FiraCode")
(setq my/ui/varfont "Cantarell")
#+end_src
#+begin_src emacs-lisp
(set-face-attribute 'default nil :font my/ui/monofont :height 90)
(set-face-attribute 'fixed-pitch nil :font my/ui/monofont :height 90)
(set-face-attribute 'variable-pitch nil :font my/ui/varfont :height 90)
;; Info has a horrible mono font
(set-face-attribute 'Info-quoted nil :font my/ui/monofont :height 90)
#+end_src
** Theme
Run =M-x= all-the-icons-install-fonts for the first time!
#+begin_src emacs-lisp
(use-package all-the-icons)
#+end_src
#+begin_src emacs-lisp
(use-package doom-modeline
:ensure t
:init (doom-modeline-mode 1)
:custom ((doom-modeline-height 15)))
#+end_src
Actuall Theme:
#+begin_src emacs-lisp
(use-package doom-themes
:config
;; Global settings (defaults)
(setq doom-themes-enable-bold t ; if nil, bold is universally disabled
doom-themes-enable-italic t) ; if nil, italics is universally disabled
(load-theme 'doom-gruvbox t)
;; Enable custom neotree theme (all-the-icons must be installed!)
(doom-themes-neotree-config)
;; or for treemacs users
(setq doom-themes-treemacs-theme "doom-atom") ; use "doom-colors" for less minimal icon theme
(doom-themes-treemacs-config)
;; Corrects (and improves) org-mode's native fontification.
(doom-themes-org-config))
#+end_src
** Line Numbers
Enable Globally
#+begin_src emacs-lisp
(global-display-line-numbers-mode 1)
#+end_src
Disable for the following modes
#+begin_src emacs-lisp
(defun disable-line-numbers () "Disables line number" (interactive) (display-line-numbers-mode 0))
(dolist (mode '(org-mode-hook
term-mode-hook
treemacs-mode-hook
shell-mode-hook
eshell-mode-hook))
(add-hook mode #'disable-line-numbers))
#+end_src
** Undo
#+begin_src emacs-lisp
(use-package undo-fu)
#+end_src
* Help
=helpful-key= and =describe-function=
#+begin_src emacs-lisp
(use-package helpful
:commands (helpful-callable helpful-variable helpful-command helpful-key)
:custom
(counsel-describe-function-function #'helpful-callable)
(counsel-describe-variable-function #'helpful-variable)
:bind
([remap describe-function] . counsel-describe-function)
([remap describe-command] . helpful-command)
([remap describe-variable] . counsel-describe-variable)
([remap describe-key] . helpful-key))
#+end_src
* Keybinds
Single Esc to Quit, instead of *three*
#+begin_src emacs-lisp
(global-set-key (kbd "<escape>") 'keyboard-escape-quit)
#+end_src
** General.el
Eval First and Last at least block!
*** use-package
#+begin_src emacs-lisp
(use-package general
:after evil
:preface
#+end_src
*** Helper Functions
#+begin_src emacs-lisp
(defun my/keybind/config ()
(interactive)
(counsel-find-file "emacs" "~/.config/"))
#+end_src
*** leader-keys
#+begin_src emacs-lisp
:config
(general-create-definer my/leader-keys
:keymaps '(normal insert visual emacs)
:prefix "SPC"
:global-prefix "C-SPC")
#+end_src
**** Symbols, Spaces, Numbers, u
#+begin_src emacs-lisp
(my/leader-keys
"." '(counsel-find-file :which-key "find file")
"SPC" '(projectile-find-file :which-key "projectile find file")
"/" '(counsel-projectile-rg :which-key "projects")
"," '(counsel-rg :which-key "rg")
"u" '(universal-argument :which-key "universal arg")
#+end_src
**** Toggles (t)
#+begin_src emacs-lisp
"t" '(:ignore t :which-key "toggles")
#+end_src
**** Help (h)
#+begin_src emacs-lisp
"h" '(:ignore t :which-key "Help")
"ht" '(counsel-load-theme :which-key "Choose Theme")
"hk" '(helpful-key :which-key "Describe Key")
"hf" '(counsel-describe-function :which-key "Describe Function")
"hv" '(counsel-describe-variable :which-key "Describe Variable")
#+end_src
**** search (s)
#+begin_src emacs-lisp
"s" '(:ignore t :which-key "Search")
"sb" '(swiper :which-key "Choose Theme")
#+end_src
**** Files (f)
#+begin_src emacs-lisp
"f" '(:ignore t :which-key "Files")
"fr" '(counsel-recentf :which-key "Recent Files")
"fp" '(my/keybind/config :which-key "Recent Files")
"fd" '(dired :which-key "dired prompt")
"fD" '(dired-jump :which-key "dired current")
#+end_src
**** Buffers (b)
#+begin_src emacs-lisp
"b" '(:ignore t :which-key "buffers")
"bs" '(save-buffer :which-key "Save Buffer")
"bk" '(kill-this-buffer :which-key "Kill Buffer")
"bl" '(evil-switch-to-windows-last-buffer :which-key "Last Buffer")
"bi" '(ibuffer :which-key "Ibuffer")
"br" '(revert-buffer :which-key "Ibuffer")
#+end_src
**** Windows (w)
#+begin_src emacs-lisp
"w" '(:ignore t :which-key "Windows")
"wj" '(evil-window-down :which-key "Evil Window Down")
"wk" '(evil-window-up :which-key "Window Up")
"wl" '(evil-window-right :which-key "Window Left")
"wh" '(evil-window-left :which-key "Window Down")
"ws" '(evil-window-split :which-key "Window Split")
"wv" '(evil-window-vsplit :which-key "Window Vsplit")
"wd" '(evil-window-delete :which-key "Window delete")
"wu" '(winner-undo :which-key "Window Undo")
"wr" '(winner-redo :which-key "Window Redo")
"wt" '(treemacs :which-key "Treemacs")
#+end_src
**** Code (c)
#+begin_src emacs-lisp
"c" '(:ignore t :which-key "code")
"ce" '(eval-last-sexp :which-key "Eval Function")
"cb" '(eval-buffer :which-key "Eval Buffer")
"ca" '(lsp-execute-code-action :which-key "Code Action")
"ci" '(lsp-ui-imenu :which-key "lsp imenu")
"cr" '(lsp-rename :which-key "rename")
"cs" '(lsp-find-refernces :which-key "rename")
#+end_src
**** Git (g)
#+begin_src emacs-lisp
"g" '(:ignore t :which-key "Git")
"gg" '(magit-status :which-key "Magit")
#+end_src
**** Projectile (p)
#+begin_src emacs-lisp
"p" '(projectile-command-map t :which-key "Projectile")
#+end_src
*** Closing Brackets
#+begin_src emacs-lisp
))
#+end_src
** Evil
*** Basic Evil
#+begin_src emacs-lisp
(use-package evil
:init
(setq evil-want-integration t
evil-want-keybinding nil
evil-want-C-u-scroll t
evil-normal-state-cursor 'box
evil-emacs-state-cursor '(box +evil-emacs-cursor-fn); TODO: fix
evil-insert-state-cursor 'bar
evil-visual-state-cursor 'hollow
evil-undo-system 'undo-redo
)
;(setq evil-want-C-i-jump t)
:config
(evil-mode 1)
(define-key evil-insert-state-map (kbd "C-g") 'evil-normal-state)
(define-key evil-insert-state-map (kbd "C-h") 'evil-delete-backward-char-and-join)
(define-key evil-normal-state-map "u" 'undo-fu-only-undo)
(define-key evil-normal-state-map "\C-r" 'undo-fu-only-redo)
(define-key evil-normal-state-map "\C-e" 'evil-end-of-line)
(define-key evil-insert-state-map "\C-a" 'evil-beginning-of-line)
(define-key evil-insert-state-map "\C-e" 'end-of-line)
(define-key evil-visual-state-map "\C-e" 'evil-end-of-line)
(define-key evil-motion-state-map "\C-e" 'evil-end-of-line)
(define-key evil-normal-state-map "\C-f" 'evil-forward-char)
(define-key evil-insert-state-map "\C-f" 'evil-forward-char)
(define-key evil-insert-state-map "\C-f" 'evil-forward-char)
(define-key evil-normal-state-map "\C-b" 'evil-backward-char)
(define-key evil-insert-state-map "\C-b" 'evil-backward-char)
(define-key evil-visual-state-map "\C-b" 'evil-backward-char)
(define-key evil-insert-state-map "\C-d" 'evil-delete-char)
(define-key evil-normal-state-map "\C-n" 'evil-next-line)
(define-key evil-insert-state-map "\C-n" 'evil-next-line)
(define-key evil-visual-state-map "\C-n" 'evil-next-line)
(define-key evil-normal-state-map "\C-p" 'evil-previous-line)
(define-key evil-insert-state-map "\C-p" 'evil-previous-line)
(define-key evil-visual-state-map "\C-p" 'evil-previous-line)
(define-key evil-normal-state-map "\C-w" 'evil-delete)
(define-key evil-insert-state-map "\C-w" 'evil-delete)
(define-key evil-visual-state-map "\C-w" 'evil-delete)
(define-key evil-normal-state-map "\C-y" 'yank)
(define-key evil-insert-state-map "\C-y" 'yank)
(define-key evil-visual-state-map "\C-y" 'yank)
;(define-key evil-insert-state-map "\C-k" 'kill-line)
(define-key evil-normal-state-map "Q" 'call-last-kbd-macro)
(define-key evil-visual-state-map "Q" 'call-last-kbd-macro)
(define-key evil-normal-state-map (kbd "TAB") 'evil-undefine)
;; Use visual line motions even outside of visual-line-mode buffers
(evil-global-set-key 'motion "j" 'evil-next-visual-line)
(evil-global-set-key 'motion "k" 'evil-previous-visual-line)
(evil-set-initial-state 'messages-buffer-mode 'normal)
(evil-set-initial-state 'dashboard-mode 'normal))
#+end_src
(Not Working) Emacs State Cursor Color
#+begin_src emacs-lisp
(defun +evil-default-cursor-fn ()
(evil-set-cursor-color (get 'cursor 'evil-normal-color)))
(defun +evil-emacs-cursor-fn () (interactive)
(evil-set-cursor-color (get 'cursor 'evil-emacs-color)))
#+end_src
*** Evil Collection
#+begin_src emacs-lisp
(use-package evil-collection
:after evil
:config
(evil-collection-init))
#+end_src
*** Evil Escape
#+begin_src emacs-lisp
(use-package evil-escape
:after evil
:init
(evil-escape-mode)
:config
(setq evil-escape-key-sequence "jk")
(setq evil-escape-delay 0.2)
(setq evil-escape-unordered-key-sequence t)
)
#+end_src
* Completions
** ivy
#+begin_src emacs-lisp
(use-package ivy
:diminish
:bind (("C-s" . swiper); TODO: move to Keybinds
:map ivy-minibuffer-map
("TAB" . ivy-alt-done)
("C-l" . ivy-alt-done)
("C-j" . ivy-next-line)
("C-k" . ivy-previous-line)
:map ivy-switch-buffer-map
("C-k" . ivy-previous-line)
("C-l" . ivy-done)
("C-d" . ivy-switch-buffer-kill)
:map ivy-reverse-i-search-map
("C-k" . ivy-previous-line)
("C-d" . ivy-reverse-i-search-kill))
:config
(ivy-mode 1))
#+end_src
Ivy Rich for having =M-x= description and keybinds
#+begin_src emacs-lisp
(use-package ivy-rich
:init (ivy-rich-mode 1))
#+end_src
Ivy floating
#+begin_src emacs-lisp
(use-package ivy-posframe
:after ivy
:diminish
:custom-face
(ivy-posframe-border ((t (:background "#ffffff"))))
:config
(setq ivy-posframe-display-functions-alist '((t . ivy-posframe-display-at-frame-top-center))
ivy-posframe-height-alist '((t . 20))
ivy-posframe-parameters '((internal-border-width . 10)))
(setq ivy-posframe-width 70)
(setq ivy-posframe-parameters
'((left-fringe . 8)
(right-fringe . 8)))
(ivy-posframe-mode +1))
#+end_src
** Counsel
#+begin_src emacs-lisp
(use-package counsel
:bind (("M-x" . counsel-M-x)
;("C-x b" . counsel-ibuffer)
("C-x C-f" . counsel-find-file)
:map minibuffer-local-map
("C-r" . 'counsel-minibuffer-history)
("C-w" . 'evil-delete-backward-word))
:config (setq ivy-initial-inputs-alist nil)) ;; Don't start searches with '^'
#+end_src
** Which Key (Shows Next keys)
#+begin_src emacs-lisp
(use-package which-key
:init (which-key-mode)
:diminish which-key-mode
:config (setq which-key-idle-delay 1))
#+end_src
** Company Mode
#+begin_src emacs-lisp
(use-package company
:ensure
; :hook (lsp-mode . company-mode)
:custom
(company-idle-delay 0.0) ;; how long to wait until popup
(company-minimum-prefix-length 1) ;; The minimum prefix length for idle completion.
;; (company-begin-commands nil) ;; uncomment to disable popup
:bind
(:map company-active-map
("C-n". company-select-next)
("<tab>" . company-complete-common-or-cycle)
("RET" . company-complete-selection)
("C-p". company-select-previous)
("M-<". company-select-first)
("M->". company-select-last))
(:map lsp-mode-map
("<tab>" . company-indent-or-complete-common)))
;; (use-package company-lsp)
(use-package company-box
:hook (company-mode . company-box-mode))
#+end_src
** Prescient
better sorting for ivy, company..
#+begin_src emacs-lisp
(use-package prescient
:diminish
:config (prescient-persist-mode 1))
(use-package ivy-prescient
:after counsel
:init (ivy-prescient-mode 1))
(use-package company-prescient
:after company
:init (company-prescient-mode 1))
;; (use-package selectrum-prescient)
#+end_src
* Org-Mode
** use-package and Appereance
Modes To Start
#+begin_src emacs-lisp
(defun my/org-mode/org-mode-setup ()
(interactive)
(org-indent-mode)
(variable-pitch-mode 1)
(visual-line-mode 1))
#+end_src
use-package
#+begin_src emacs-lisp
(use-package org
:hook (org-mode . my/org-mode/org-mode-setup)
(org-mode . my/org-mode/load-prettify-symbols); symbols
:config
(setq org-ellipsis " ⤵")
(setq org-agenda-start-with-log-mode t)
(setq org-log-done 'time)
(setq org-log-into-drawer t)
(dolist (face '((org-document-title . 2.0)
(org-level-1 . 1.2)
(org-level-2 . 1.1)
(org-level-3 . 1.05)
(org-level-4 . 1.0)
(org-level-5 . 1.1)
(org-level-6 . 1.1)
(org-level-7 . 1.1)
(org-level-8 . 1.1)))
(set-face-attribute (car face) nil :font my/ui/varfont :weight 'regular :height (cdr face)))
;; Ensure that anything that should be fixed-pitch in Org files appears that way
(set-face-attribute 'org-block nil :foreground nil :inherit 'fixed-pitch)
(set-face-attribute 'org-code nil :inherit '(shadow fixed-pitch))
(set-face-attribute 'org-table nil :inherit '(shadow fixed-pitch))
(set-face-attribute 'org-verbatim nil :inherit '(shadow fixed-pitch))
(set-face-attribute 'org-special-keyword nil :inherit '(font-lock-comment-face fixed-pitch))
(set-face-attribute 'org-meta-line nil :inherit '(font-lock-comment-face fixed-pitch))
(set-face-attribute 'org-checkbox nil :inherit 'fixed-pitch))
#+end_src
Symbols
#+begin_src emacs-lisp
(defun my/org-mode/load-prettify-symbols ()
(interactive)
(setq prettify-symbols-alist
(mapcan (lambda (x) (list x (cons (upcase (car x)) (cdr x))))
'(("#+begin_src" . ?)
("#+end_src" . ?)
("#+begin_example" . ?)
("#+end_example" . ?)
("#+header:" . ?)
("#+name:" . ?﮸)
("#+title:" . "")
("#+results:" . ?)
("#+call:" . ?)
(":properties:" . ?)
(":logbook:" . ?))))
(prettify-symbols-mode 1))
#+end_src
** Set directories
#+begin_src emacs-lisp
(setq org-directory "~/org/gtd/"
org-agenda-files (list org-directory)
)
#+end_src
** Structure Templates
Allow fast code insertion
#+begin_src emacs-lisp
;; This is needed as of Org 9.2
(require 'org-tempo)
(add-to-list 'org-structure-template-alist '("sh" . "src shell"))
(add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp"))
(add-to-list 'org-structure-template-alist '("py" . "src python"))
#+end_src
** org-bullets
#+begin_src emacs-lisp
(use-package org-bullets
:after org
:hook (org-mode . org-bullets-mode)
:custom
(org-bullets-bullet-list '("◉" "○" "●" "○" "●" "○" "●")))
#+end_src
** Visual Fill (center)
#+begin_src emacs-lisp
(defun my/org-mode/org-mode-visual-fill ()
(interactive)
(setq visual-fill-column-width 100
visual-fill-column-center-text t)
(visual-fill-column-mode 1))
#+end_src
#+begin_src emacs-lisp
(use-package visual-fill-column; center text
:hook (org-mode . my/org-mode/org-mode-visual-fill))
#+end_src
** Babel
Don't confirm, I know what I am doing
#+begin_src emacs-lisp
(setq org-confirm-babel-evaluate nil)
#+end_src
Language List
#+begin_src emacs-lisp
(org-babel-do-load-languages
'org-babel-load-languages
'((emacs-lisp . t)
(python . t)
(shell . t)))
#+end_src
** Agenda
*** T/ODOs
#+begin_src emacs-lisp
(setq org-todo-keywords
'((sequence "TODO(t)" "NEXT(n)" "|" "DONE(d!)")
(sequence "BACKLOG(b)" "PLAN(p)" "READY(r)" "ACTIVE(a)"
"REVIEW(v)" "WAIT(w@/!)" "HOLD(h)" "|" "COMPLETED(c)" "CANC(k@)")))
#+end_src
** Auto Tangle Configuration Files
Automatically tangle our Emacs.org config file when we save it
#+begin_src emacs-lisp
(defun my/org-mode/org-babel-tangle-config ()
(when (string-equal (buffer-file-name)
(expand-file-name "~/.config/emacs/init.org"))
;; Dynamic scoping to the rescue
(let ((org-confirm-babel-evaluate nil))
(org-babel-tangle))))
(add-hook 'org-mode-hook
(lambda () (add-hook 'after-save-hook #'my/org-mode/org-babel-tangle-config)))
#+end_src
* Development
** General
*** Colored Brackets (rainbow delimiters)
#+begin_src emacs-lisp
(use-package rainbow-delimiters
:hook (prog-mode . rainbow-delimiters-mode))
#+end_src
*** Projectile
#+begin_src emacs-lisp
(use-package projectile
:diminish projectile-mode
:config (projectile-mode)
:custom ((projectile-completion-system 'ivy))
:init
;; NOTE: Set this to the folder where you keep your Git repos!
(when (file-directory-p "~/code")
(setq projectile-project-search-path '("~/code")))
(setq projectile-switch-project-action #'projectile-dired))
#+end_src
Counsel Projectile
#+begin_src emacs-lisp
(use-package counsel-projectile
:config (counsel-projectile-mode))
#+end_src
*** lsp-mode
#+begin_src emacs-lisp
(use-package lsp-mode
:commands (lsp lsp-deferred)
;; :hook
;; (lsp-mode . my/lsp/lsp-mode-setup)
:init
:custom
(lsp-headerline-breadcrumb-segments '(path-up-to-project file))
(lsp-rust-analyzer-cargo-watch-command "clippy")
(lsp-eldoc-render-all t)
(lsp-eldoc-enable-hover nil)
(lsp-idle-delay 0.6)
(lsp-idle-delay 0.6)
(lsp-rust-analyzer-server-display-inlay-hints t)
;(setq lsp-keymap-prefix "C-c l") ;; Or 'C-l', 's-l'
:config
(lsp-enable-which-key-integration t)
(setq lsp-headerline-breadcrumb-enable nil); anonying tabs
(add-hook 'lsp-mode-hook 'lsp-ui-mode)
(lsp-headerline-breadcrumb-mode -1)
(flycheck-mode 1)
)
#+end_src
Lsp UI
#+begin_src emacs-lisp
(use-package lsp-ui
:ensure
:commands lsp-ui-mode
:custom
;(lsp-ui-peek-always-show t)
(lsp-ui-doc-mode t)
;(lsp-ui-sideline-show-hover t)
; (lsp-ui-doc-enable nil)
:bind (:map lsp-ui-mode-map
("U" . lsp-ui-doc-focus-frame)
:map lsp-ui-doc-frame-mode-map
("Q" . lsp-ui-doc-unfocus-frame)
))
#+end_src
*** lsp treemacs
#+begin_src emacs-lisp
;; (use-package lsp-treemacs
;; :after lsp)
#+end_src
*** Flycheck
#+begin_src emacs-lisp
(use-package flycheck :ensure)
#+end_src
*** Origami Mode (Folding)
#+begin_src emacs-lisp
(use-package origami)
#+end_src
** Git
*** Magit
#+begin_src emacs-lisp
(use-package magit
:custom
(magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1))
#+end_src
*** TODO Forge
#+begin_src emacs-lisp
;(use-package forge)
#+end_src
** Language
*** Rust
#+begin_src emacs-lisp
(use-package rustic
:ensure
:bind (:map rustic-mode-map
("C-c C-c l" . lsp-ui-flycheck-list)
("C-c C-c s" . lsp-rust-analyzer-status))
:config
;; uncomment for less flashiness
;; (setq lsp-eldoc-hook nil)
;; (setq lsp-enable-symbol-highlighting nil)
;; (setq lsp-signature-auto-activate nil)
;; comment to disable rustfmt on save
(setq rustic-format-on-save t)
(add-hook 'rustic-mode-hook 'my/dev/rustic-mode-hook))
(defun my/dev/rustic-mode-hook ()
;; so that run C-c C-c C-r works without having to confirm, but don't try to
;; save rust buffers that are not file visiting. Once
;; https://github.com/brotzeit/rustic/issues/253 has been resolved this should
;; no longer be necessary.
(when buffer-file-name
(setq-local buffer-save-without-query t)))
#+end_src
*** Elisp emacs-lisp
#+begin_src emacs-lisp
;; (add-hook 'emacs-lisp-mode-hook 'company-mode)
(add-hook 'emacs-lisp-mode-hook 'flycheck-mode)
#+end_src
*** V
#+begin_src emacs-lisp
(use-package v-mode
:preface
(defun my/lsp/v ()
(interactive)
(lsp)
(flycheck-mode 1)
(company-mode 1))
:init
(delete '("\\.[ds]?va?h?\\'" . verilog-mode) auto-mode-alist)
;; :straight (v-mode
;; :type git
;; :host github
;; :repo "damon-kwok/v-mode"
;; :files ("tokens" "v-mode.el"))
(setq auto-mode-alist
(cons '("\\(\\.v\\|\\.vv\\|\\.vsh\\)$" . v-mode) auto-mode-alist))
:hook (v-mode . my/lsp/v)
:config
(flycheck-define-checker v-checker
"A v syntax checker using the v fmt."
:command ("v" "fmt" "-verify" (eval (buffer-file-name)))
:error-patterns
((error line-start (file-name) ":" line ":" column ": error: " (message) line-end))
:modes v-mode)
(add-to-list 'flycheck-checkers 'v-checker)
:bind-keymap
("M-z" . v-menu)
("<f6>" . v-menu)
("C-c C-f" . v-format-buffer)
:mode ("\\.v\\.vsh\\'" . 'v-mode))
#+end_src
** Treemacs
use-package
#+begin_src emacs-lisp
(use-package treemacs
:defer t
:init
(setq treemacs-follow-after-init t
treemacs-is-never-other-window t
treemacs-sorting 'alphabetic-case-insensitive-asc))
#+end_src
fix evil keybinds
#+begin_src emacs-lisp
(use-package treemacs-evil
;:when (package-installed-p 'evil-collection)
;:defer t
:after treemacs
:init
:config
(general-def evil-treemacs-state-map
[return] #'treemacs-RET-action
[tab] #'treemacs-TAB-action
"TAB" #'treemacs-TAB-action
"o v" #'treemacs-visit-node-horizontal-split
"o s" #'treemacs-visit-node-vertical-split))
#+end_src
Get treemacs-lsp
#+begin_src emacs-lisp
(use-package lsp-treemacs
:after (treemacs lsp))
(use-package treemacs-magit
:after treemacs magit)
;(use-package! treemacs-persp
;:after treemacs
;:config (treemacs-set-scope-type 'Perspectives))
#+end_src
* Tmp
#+begin_src emacs-lisp
;; (use-package peasant-mode
;; :straight (peasant-mode
;; :type git
;; :host github
;; :repo "flinner/peasant-mode")
;; :config
;; (peasant-mode))
#+end_src

@ -0,0 +1,4 @@
(("doom" . ((user-emacs-directory . "~/.config/emacs.doom")
(env . (("DOOMDIR" . "~/.config/dots/doom/.config/doom/")))))
("default" . ((user-emacs-directory . "~/.config/emacs.mine")))
)

@ -0,0 +1 @@
b68d3361-ad67-49c5-ada9-7da6ad28d446

@ -0,0 +1 @@
f98c2caa-6d19-4be0-8395-cc461c5878c4

@ -0,0 +1 @@
4acf1369-cad7-48f3-a589-839c3db49cb0

File diff suppressed because it is too large Load Diff

@ -0,0 +1,11 @@
[Filechooser Settings]
LocationMode=path-bar
ShowHidden=false
ShowSizeColumn=true
GeometryX=570
GeometryY=257
GeometryWidth=780
GeometryHeight=585
SortColumn=modified
SortOrder=descending
StartupMode=recent

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg viewBox="0 0 50 50"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" baseProfile="tiny">
<title>Qt SVG Document</title>
<desc>Generated with Qt</desc>
<defs>
</defs>
<g fill="none" stroke="black" stroke-width="1" fill-rule="evenodd" stroke-linecap="square" stroke-linejoin="bevel" >
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-915.625,595.743)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0" >
<rect x="293" y="-190.638" width="16" height="16"/>
</g>
<g fill="#e9524a" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
<path vector-effect="none" fill-rule="evenodd" d="M12.0001,1047.36 C15.866,1047.36 19,1044.23 19,1040.36 C19,1036.5 15.866,1033.36 12.0001,1033.36 C8.13402,1033.36 5,1036.5 5,1040.36 C5,1044.23 8.13402,1047.36 12.0001,1047.36 "/>
</g>
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0.5" >
<path vector-effect="none" fill-rule="nonzero" d="M9.17157,1037.53 C8.77984,1037.93 8.77984,1038.56 9.17157,1038.95 L10.5858,1040.36 L9.17157,1041.78 C8.77984,1042.17 8.77984,1042.8 9.17157,1043.19 C9.56331,1043.58 10.194,1043.58 10.5858,1043.19 L12,1041.78 L13.4142,1043.19 C13.806,1043.58 14.4367,1043.58 14.8284,1043.19 C15.2202,1042.8 15.2202,1042.17 14.8284,1041.78 L13.4142,1040.36 L14.8284,1038.95 C15.2202,1038.56 15.2202,1037.93 14.8284,1037.53 C14.4367,1037.14 13.806,1037.14 13.4142,1037.53 L12,1038.95 L10.5858,1037.53 C10.194,1037.14 9.56331,1037.14 9.17157,1037.53 "/>
</g>
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0.2" >
<path vector-effect="none" fill-rule="evenodd" d="M12.0001,1047.36 C15.866,1047.36 19,1044.23 19,1040.36 C19,1036.5 15.866,1033.36 12.0001,1033.36 C8.13402,1033.36 5,1036.5 5,1040.36 C5,1044.23 8.13402,1047.36 12.0001,1047.36 "/>
</g>
<g fill="none" stroke="#000000" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(1,0,0,1,0,0)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg viewBox="0 0 50 50"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" baseProfile="tiny">
<title>Qt SVG Document</title>
<desc>Generated with Qt</desc>
<defs>
</defs>
<g fill="none" stroke="black" stroke-width="1" fill-rule="evenodd" stroke-linecap="square" stroke-linejoin="bevel" >
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-915.625,595.743)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0" >
<rect x="293" y="-190.638" width="16" height="16"/>
</g>
<g fill="#e9524a" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
<path vector-effect="none" fill-rule="evenodd" d="M12.0001,1047.36 C15.866,1047.36 19,1044.23 19,1040.36 C19,1036.5 15.866,1033.36 12.0001,1033.36 C8.13402,1033.36 5,1036.5 5,1040.36 C5,1044.23 8.13402,1047.36 12.0001,1047.36 "/>
</g>
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0.5" >
<path vector-effect="none" fill-rule="nonzero" d="M9.17157,1037.53 C8.77984,1037.93 8.77984,1038.56 9.17157,1038.95 L10.5858,1040.36 L9.17157,1041.78 C8.77984,1042.17 8.77984,1042.8 9.17157,1043.19 C9.56331,1043.58 10.194,1043.58 10.5858,1043.19 L12,1041.78 L13.4142,1043.19 C13.806,1043.58 14.4367,1043.58 14.8284,1043.19 C15.2202,1042.8 15.2202,1042.17 14.8284,1041.78 L13.4142,1040.36 L14.8284,1038.95 C15.2202,1038.56 15.2202,1037.93 14.8284,1037.53 C14.4367,1037.14 13.806,1037.14 13.4142,1037.53 L12,1038.95 L10.5858,1037.53 C10.194,1037.14 9.56331,1037.14 9.17157,1037.53 "/>
</g>
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0.2" >
<path vector-effect="none" fill-rule="evenodd" d="M12.0001,1047.36 C15.866,1047.36 19,1044.23 19,1040.36 C19,1036.5 15.866,1033.36 12.0001,1033.36 C8.13402,1033.36 5,1036.5 5,1040.36 C5,1044.23 8.13402,1047.36 12.0001,1047.36 "/>
</g>
<g fill="none" stroke="#000000" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(1,0,0,1,0,0)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg viewBox="0 0 50 50"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" baseProfile="tiny">
<title>Qt SVG Document</title>
<desc>Generated with Qt</desc>
<defs>
</defs>
<g fill="none" stroke="black" stroke-width="1" fill-rule="evenodd" stroke-linecap="square" stroke-linejoin="bevel" >
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-915.625,676.993)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0" >
<rect x="293" y="-216.638" width="16" height="16"/>
</g>
<g fill="#e9524a" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
<path vector-effect="none" fill-rule="evenodd" d="M12.0001,1047.36 C15.866,1047.36 19,1044.23 19,1040.36 C19,1036.5 15.866,1033.36 12.0001,1033.36 C8.13402,1033.36 5,1036.5 5,1040.36 C5,1044.23 8.13402,1047.36 12.0001,1047.36 "/>
</g>
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0.5" >
<path vector-effect="none" fill-rule="nonzero" d="M9.17157,1037.53 C8.77984,1037.93 8.77984,1038.56 9.17157,1038.95 L10.5858,1040.36 L9.17157,1041.78 C8.77984,1042.17 8.77984,1042.8 9.17157,1043.19 C9.56331,1043.58 10.194,1043.58 10.5858,1043.19 L12,1041.78 L13.4142,1043.19 C13.806,1043.58 14.4367,1043.58 14.8284,1043.19 C15.2202,1042.8 15.2202,1042.17 14.8284,1041.78 L13.4142,1040.36 L14.8284,1038.95 C15.2202,1038.56 15.2202,1037.93 14.8284,1037.53 C14.4367,1037.14 13.806,1037.14 13.4142,1037.53 L12,1038.95 L10.5858,1037.53 C10.194,1037.14 9.56331,1037.14 9.17157,1037.53 "/>
</g>
<g fill="none" stroke="#000000" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(1,0,0,1,0,0)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg viewBox="0 0 50 50"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" baseProfile="tiny">
<title>Qt SVG Document</title>
<desc>Generated with Qt</desc>
<defs>
</defs>
<g fill="none" stroke="black" stroke-width="1" fill-rule="evenodd" stroke-linecap="square" stroke-linejoin="bevel" >
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-915.625,839.493)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0" >
<rect x="293" y="-268.638" width="16" height="16"/>
</g>
<g fill="#5d5d5d" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
<path vector-effect="none" fill-rule="evenodd" d="M12.0001,1047.36 C15.866,1047.36 19,1044.23 19,1040.36 C19,1036.5 15.866,1033.36 12.0001,1033.36 C8.13402,1033.36 5,1036.5 5,1040.36 C5,1044.23 8.13402,1047.36 12.0001,1047.36 "/>
</g>
<g fill="none" stroke="#000000" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(1,0,0,1,0,0)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg viewBox="0 0 50 50"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" baseProfile="tiny">
<title>Qt SVG Document</title>
<desc>Generated with Qt</desc>
<defs>
</defs>
<g fill="none" stroke="black" stroke-width="1" fill-rule="evenodd" stroke-linecap="square" stroke-linejoin="bevel" >
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-915.625,676.993)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0" >
<rect x="293" y="-216.638" width="16" height="16"/>
</g>
<g fill="#e9524a" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
<path vector-effect="none" fill-rule="evenodd" d="M12.0001,1047.36 C15.866,1047.36 19,1044.23 19,1040.36 C19,1036.5 15.866,1033.36 12.0001,1033.36 C8.13402,1033.36 5,1036.5 5,1040.36 C5,1044.23 8.13402,1047.36 12.0001,1047.36 "/>
</g>
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0.5" >
<path vector-effect="none" fill-rule="nonzero" d="M9.17157,1037.53 C8.77984,1037.93 8.77984,1038.56 9.17157,1038.95 L10.5858,1040.36 L9.17157,1041.78 C8.77984,1042.17 8.77984,1042.8 9.17157,1043.19 C9.56331,1043.58 10.194,1043.58 10.5858,1043.19 L12,1041.78 L13.4142,1043.19 C13.806,1043.58 14.4367,1043.58 14.8284,1043.19 C15.2202,1042.8 15.2202,1042.17 14.8284,1041.78 L13.4142,1040.36 L14.8284,1038.95 C15.2202,1038.56 15.2202,1037.93 14.8284,1037.53 C14.4367,1037.14 13.806,1037.14 13.4142,1037.53 L12,1038.95 L10.5858,1037.53 C10.194,1037.14 9.56331,1037.14 9.17157,1037.53 "/>
</g>
<g fill="none" stroke="#000000" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(1,0,0,1,0,0)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg viewBox="0 0 50 50"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" baseProfile="tiny">
<title>Qt SVG Document</title>
<desc>Generated with Qt</desc>
<defs>
</defs>
<g fill="none" stroke="black" stroke-width="1" fill-rule="evenodd" stroke-linecap="square" stroke-linejoin="bevel" >
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-915.625,758.243)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0" >
<rect x="293" y="-242.638" width="16" height="16"/>
</g>
<g fill="#e9524a" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
<path vector-effect="none" fill-rule="evenodd" d="M12.0001,1047.36 C15.866,1047.36 19,1044.23 19,1040.36 C19,1036.5 15.866,1033.36 12.0001,1033.36 C8.13402,1033.36 5,1036.5 5,1040.36 C5,1044.23 8.13402,1047.36 12.0001,1047.36 "/>
</g>
<g fill="none" stroke="#000000" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(1,0,0,1,0,0)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg viewBox="0 0 50 50"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" baseProfile="tiny">
<title>Qt SVG Document</title>
<desc>Generated with Qt</desc>
<defs>
</defs>
<g fill="none" stroke="black" stroke-width="1" fill-rule="evenodd" stroke-linecap="square" stroke-linejoin="bevel" >
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-853.125,595.743)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0" >
<rect x="273" y="-190.638" width="16" height="16"/>
</g>
<g fill="#59c837" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
<path vector-effect="none" fill-rule="evenodd" d="M12.0001,1047.36 C15.866,1047.36 19,1044.23 19,1040.36 C19,1036.5 15.866,1033.36 12.0001,1033.36 C8.13402,1033.36 5,1036.5 5,1040.36 C5,1044.23 8.13402,1047.36 12.0001,1047.36 "/>
</g>
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0.5" >
<path vector-effect="none" fill-rule="nonzero" d="M10.4141,1037.36 L15,1041.95 L15,1038.36 C15,1037.95 14.4155,1037.36 14,1037.36 L10.4141,1037.36 M9,1038.78 L9,1042.36 C9,1042.78 9.5845,1043.36 10,1043.36 L13.5859,1043.36 L9,1038.78"/>
</g>
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0.2" >
<path vector-effect="none" fill-rule="evenodd" d="M12.0001,1047.36 C15.866,1047.36 19,1044.23 19,1040.36 C19,1036.5 15.866,1033.36 12.0001,1033.36 C8.13402,1033.36 5,1036.5 5,1040.36 C5,1044.23 8.13402,1047.36 12.0001,1047.36 "/>
</g>
<g fill="none" stroke="#000000" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(1,0,0,1,0,0)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg viewBox="0 0 50 50"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" baseProfile="tiny">
<title>Qt SVG Document</title>
<desc>Generated with Qt</desc>
<defs>
</defs>
<g fill="none" stroke="black" stroke-width="1" fill-rule="evenodd" stroke-linecap="square" stroke-linejoin="bevel" >
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-853.125,595.743)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0" >
<rect x="273" y="-190.638" width="16" height="16"/>
</g>
<g fill="#59c837" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
<path vector-effect="none" fill-rule="evenodd" d="M12.0001,1047.36 C15.866,1047.36 19,1044.23 19,1040.36 C19,1036.5 15.866,1033.36 12.0001,1033.36 C8.13402,1033.36 5,1036.5 5,1040.36 C5,1044.23 8.13402,1047.36 12.0001,1047.36 "/>
</g>
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0.5" >
<path vector-effect="none" fill-rule="nonzero" d="M10.4141,1037.36 L15,1041.95 L15,1038.36 C15,1037.95 14.4155,1037.36 14,1037.36 L10.4141,1037.36 M9,1038.78 L9,1042.36 C9,1042.78 9.5845,1043.36 10,1043.36 L13.5859,1043.36 L9,1038.78"/>
</g>
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0.2" >
<path vector-effect="none" fill-rule="evenodd" d="M12.0001,1047.36 C15.866,1047.36 19,1044.23 19,1040.36 C19,1036.5 15.866,1033.36 12.0001,1033.36 C8.13402,1033.36 5,1036.5 5,1040.36 C5,1044.23 8.13402,1047.36 12.0001,1047.36 "/>
</g>
<g fill="none" stroke="#000000" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(1,0,0,1,0,0)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg viewBox="0 0 50 50"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" baseProfile="tiny">
<title>Qt SVG Document</title>
<desc>Generated with Qt</desc>
<defs>
</defs>
<g fill="none" stroke="black" stroke-width="1" fill-rule="evenodd" stroke-linecap="square" stroke-linejoin="bevel" >
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-853.125,676.993)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0" >
<rect x="273" y="-216.638" width="16" height="16"/>
</g>
<g fill="#59c837" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
<path vector-effect="none" fill-rule="evenodd" d="M12.0001,1047.36 C15.866,1047.36 19,1044.23 19,1040.36 C19,1036.5 15.866,1033.36 12.0001,1033.36 C8.13402,1033.36 5,1036.5 5,1040.36 C5,1044.23 8.13402,1047.36 12.0001,1047.36 "/>
</g>
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0.5" >
<path vector-effect="none" fill-rule="nonzero" d="M10.4141,1037.36 L15,1041.95 L15,1038.36 C15,1037.95 14.4155,1037.36 14,1037.36 L10.4141,1037.36 M9,1038.78 L9,1042.36 C9,1042.78 9.5845,1043.36 10,1043.36 L13.5859,1043.36 L9,1038.78"/>
</g>
<g fill="none" stroke="#000000" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(1,0,0,1,0,0)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg viewBox="0 0 50 50"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" baseProfile="tiny">
<title>Qt SVG Document</title>
<desc>Generated with Qt</desc>
<defs>
</defs>
<g fill="none" stroke="black" stroke-width="1" fill-rule="evenodd" stroke-linecap="square" stroke-linejoin="bevel" >
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-853.125,839.493)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0" >
<rect x="273" y="-268.638" width="16" height="16"/>
</g>
<g fill="#5d5d5d" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
<path vector-effect="none" fill-rule="evenodd" d="M12.0001,1047.36 C15.866,1047.36 19,1044.23 19,1040.36 C19,1036.5 15.866,1033.36 12.0001,1033.36 C8.13402,1033.36 5,1036.5 5,1040.36 C5,1044.23 8.13402,1047.36 12.0001,1047.36 "/>
</g>
<g fill="none" stroke="#000000" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(1,0,0,1,0,0)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg viewBox="0 0 50 50"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" baseProfile="tiny">
<title>Qt SVG Document</title>
<desc>Generated with Qt</desc>
<defs>
</defs>
<g fill="none" stroke="black" stroke-width="1" fill-rule="evenodd" stroke-linecap="square" stroke-linejoin="bevel" >
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-853.125,676.993)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0" >
<rect x="273" y="-216.638" width="16" height="16"/>
</g>
<g fill="#59c837" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
<path vector-effect="none" fill-rule="evenodd" d="M12.0001,1047.36 C15.866,1047.36 19,1044.23 19,1040.36 C19,1036.5 15.866,1033.36 12.0001,1033.36 C8.13402,1033.36 5,1036.5 5,1040.36 C5,1044.23 8.13402,1047.36 12.0001,1047.36 "/>
</g>
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0.5" >
<path vector-effect="none" fill-rule="nonzero" d="M10.4141,1037.36 L15,1041.95 L15,1038.36 C15,1037.95 14.4155,1037.36 14,1037.36 L10.4141,1037.36 M9,1038.78 L9,1042.36 C9,1042.78 9.5845,1043.36 10,1043.36 L13.5859,1043.36 L9,1038.78"/>
</g>
<g fill="none" stroke="#000000" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(1,0,0,1,0,0)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg viewBox="0 0 50 50"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" baseProfile="tiny">
<title>Qt SVG Document</title>
<desc>Generated with Qt</desc>
<defs>
</defs>
<g fill="none" stroke="black" stroke-width="1" fill-rule="evenodd" stroke-linecap="square" stroke-linejoin="bevel" >
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-853.125,758.243)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0" >
<rect x="273" y="-242.638" width="16" height="16"/>
</g>
<g fill="#59c837" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
<path vector-effect="none" fill-rule="evenodd" d="M12.0001,1047.36 C15.866,1047.36 19,1044.23 19,1040.36 C19,1036.5 15.866,1033.36 12.0001,1033.36 C8.13402,1033.36 5,1036.5 5,1040.36 C5,1044.23 8.13402,1047.36 12.0001,1047.36 "/>
</g>
<g fill="none" stroke="#000000" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(1,0,0,1,0,0)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg viewBox="0 0 50 50"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" baseProfile="tiny">
<title>Qt SVG Document</title>
<desc>Generated with Qt</desc>
<defs>
</defs>
<g fill="none" stroke="black" stroke-width="1" fill-rule="evenodd" stroke-linecap="square" stroke-linejoin="bevel" >
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-978.125,595.743)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0" >
<rect x="313" y="-190.638" width="16" height="16"/>
</g>
<g fill="#59c837" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-994.444,623.182)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
<path vector-effect="none" fill-rule="evenodd" d="M326.222,-184.418 C330.088,-184.418 333.222,-187.552 333.222,-191.418 C333.222,-195.284 330.088,-198.418 326.222,-198.418 C322.356,-198.418 319.222,-195.284 319.222,-191.418 C319.222,-187.552 322.356,-184.418 326.222,-184.418 "/>
</g>
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-994.42,704.673)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0.5" >
<path vector-effect="none" fill-rule="nonzero" d="M326.214,-222.086 L326.214,-218.5 C326.214,-218.084 326.798,-217.5 327.214,-217.5 L330.8,-217.5 L326.214,-222.086"/>
</g>
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-994.42,704.673)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0.5" >
<path vector-effect="none" fill-rule="nonzero" d="M326.215,-212.905 L326.215,-216.491 C326.215,-216.906 325.63,-217.491 325.215,-217.491 L321.629,-217.491 L326.215,-212.905"/>
</g>
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-994.444,623.182)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0.2" >
<path vector-effect="none" fill-rule="evenodd" d="M326.222,-184.418 C330.088,-184.418 333.222,-187.552 333.222,-191.418 C333.222,-195.284 330.088,-198.418 326.222,-198.418 C322.356,-198.418 319.222,-195.284 319.222,-191.418 C319.222,-187.552 322.356,-184.418 326.222,-184.418 "/>
</g>
<g fill="none" stroke="#000000" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(1,0,0,1,0,0)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg viewBox="0 0 50 50"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" baseProfile="tiny">
<title>Qt SVG Document</title>
<desc>Generated with Qt</desc>
<defs>
</defs>
<g fill="none" stroke="black" stroke-width="1" fill-rule="evenodd" stroke-linecap="square" stroke-linejoin="bevel" >
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-978.125,595.743)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0" >
<rect x="313" y="-190.638" width="16" height="16"/>
</g>
<g fill="#59c837" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-994.444,623.182)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
<path vector-effect="none" fill-rule="evenodd" d="M326.222,-184.418 C330.088,-184.418 333.222,-187.552 333.222,-191.418 C333.222,-195.284 330.088,-198.418 326.222,-198.418 C322.356,-198.418 319.222,-195.284 319.222,-191.418 C319.222,-187.552 322.356,-184.418 326.222,-184.418 "/>
</g>
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-994.42,704.673)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0.5" >
<path vector-effect="none" fill-rule="nonzero" d="M326.214,-222.086 L326.214,-218.5 C326.214,-218.084 326.798,-217.5 327.214,-217.5 L330.8,-217.5 L326.214,-222.086"/>
</g>
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-994.42,704.673)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0.5" >
<path vector-effect="none" fill-rule="nonzero" d="M326.215,-212.905 L326.215,-216.491 C326.215,-216.906 325.63,-217.491 325.215,-217.491 L321.629,-217.491 L326.215,-212.905"/>
</g>
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-994.444,623.182)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0.2" >
<path vector-effect="none" fill-rule="evenodd" d="M326.222,-184.418 C330.088,-184.418 333.222,-187.552 333.222,-191.418 C333.222,-195.284 330.088,-198.418 326.222,-198.418 C322.356,-198.418 319.222,-195.284 319.222,-191.418 C319.222,-187.552 322.356,-184.418 326.222,-184.418 "/>
</g>
<g fill="none" stroke="#000000" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(1,0,0,1,0,0)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg viewBox="0 0 50 50"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" baseProfile="tiny">
<title>Qt SVG Document</title>
<desc>Generated with Qt</desc>
<defs>
</defs>
<g fill="none" stroke="black" stroke-width="1" fill-rule="evenodd" stroke-linecap="square" stroke-linejoin="bevel" >
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-978.125,676.993)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0" >
<rect x="313" y="-216.638" width="16" height="16"/>
</g>
<g fill="#59c837" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-994.444,704.432)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
<path vector-effect="none" fill-rule="evenodd" d="M326.222,-210.418 C330.088,-210.418 333.222,-213.552 333.222,-217.418 C333.222,-221.284 330.088,-224.418 326.222,-224.418 C322.356,-224.418 319.222,-221.284 319.222,-217.418 C319.222,-213.552 322.356,-210.418 326.222,-210.418 "/>
</g>
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-994.42,704.673)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0.5" >
<path vector-effect="none" fill-rule="nonzero" d="M326.214,-222.086 L326.214,-218.5 C326.214,-218.084 326.798,-217.5 327.214,-217.5 L330.8,-217.5 L326.214,-222.086"/>
</g>
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-994.42,704.673)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0.5" >
<path vector-effect="none" fill-rule="nonzero" d="M326.215,-212.905 L326.215,-216.491 C326.215,-216.906 325.63,-217.491 325.215,-217.491 L321.629,-217.491 L326.215,-212.905"/>
</g>
<g fill="none" stroke="#000000" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(1,0,0,1,0,0)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg viewBox="0 0 50 50"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" baseProfile="tiny">
<title>Qt SVG Document</title>
<desc>Generated with Qt</desc>
<defs>
</defs>
<g fill="none" stroke="black" stroke-width="1" fill-rule="evenodd" stroke-linecap="square" stroke-linejoin="bevel" >
<g fill="#000000" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-978.125,839.493)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
opacity="0" >
<rect x="313" y="-268.638" width="16" height="16"/>
</g>
<g fill="#5d5d5d" fill-opacity="1" stroke="none" transform="matrix(3.125,0,0,3.125,-12.5,-3226.13)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
<path vector-effect="none" fill-rule="evenodd" d="M12.0001,1047.36 C15.866,1047.36 19,1044.23 19,1040.36 C19,1036.5 15.866,1033.36 12.0001,1033.36 C8.13402,1033.36 5,1036.5 5,1040.36 C5,1044.23 8.13402,1047.36 12.0001,1047.36 "/>
</g>
<g fill="none" stroke="#000000" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(1,0,0,1,0,0)"
font-family="Noto Sans" font-size="10" font-weight="400" font-style="normal"
>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save