Initial commit

This commit is contained in:
2025-08-30 20:23:00 +02:00
commit cfc897c53b
133 changed files with 18569 additions and 0 deletions

7
config/.config/arkrc Normal file
View File

@@ -0,0 +1,7 @@
[General]
LockSidebar=true
ShowSidebar=true
[MainWindow]
StatusBar=Disabled
ToolBarsMovable=Disabled

View File

@@ -0,0 +1,254 @@
#? Config file for btop v. 1.4.3
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
color_theme = "/nix/store/yk4xkyhnr2fpzd7xpysr643gpm1qwqwq-btop-1.4.0/share/btop/themes/flat-remix.theme"
#* If the theme set background should be shown, set to False if you want terminal background transparency.
theme_background = True
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
truecolor = True
#* Set to true to force tty mode regardless if a real tty has been detected or not.
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
force_tty = False
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
#* Use whitespace " " as separator between different presets.
#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
vim_keys = True
#* Rounded corners on boxes, is ignored if TTY mode is ON.
rounded_corners = True
#* Default symbols to use for graph creation, "braille", "block" or "tty".
#* "braille" offers the highest resolution but might not be included in all fonts.
#* "block" has half the resolution of braille but uses more common characters.
#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
graph_symbol = "braille"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_cpu = "default"
# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty".
graph_symbol_gpu = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_mem = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_net = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_proc = "default"
#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
shown_boxes = "cpu mem net proc"
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
update_ms = 2000
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
proc_sorting = "cpu lazy"
#* Reverse sorting order, True or False.
proc_reversed = False
#* Show processes as a tree.
proc_tree = True
#* Use the cpu graph colors in the process list.
proc_colors = True
#* Use a darkening gradient in the process list.
proc_gradient = True
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
proc_per_core = True
#* Show process memory as bytes instead of percent.
proc_mem_bytes = True
#* Show cpu graph for each process.
proc_cpu_graphs = True
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
proc_info_smaps = False
#* Show proc box on left side of screen instead of right.
proc_left = False
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
proc_filter_kernel = True
#* In tree-view, always accumulate child process resources in the parent process.
proc_aggregate = True
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
#* Select from a list of detected attributes from the options menu.
cpu_graph_upper = "Auto"
#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
#* Select from a list of detected attributes from the options menu.
cpu_graph_lower = "Auto"
#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off".
show_gpu_info = "Auto"
#* Toggles if the lower CPU graph should be inverted.
cpu_invert_lower = True
#* Set to True to completely disable the lower CPU graph.
cpu_single_graph = False
#* Show cpu box at bottom of screen instead of top.
cpu_bottom = False
#* Shows the system uptime in the CPU box.
show_uptime = True
#* Show cpu temperature.
check_temp = True
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
cpu_sensor = "Auto"
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
show_coretemp = True
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
#* Example: "4:0 5:1 6:3"
cpu_core_map = ""
#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
temp_scale = "celsius"
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
base_10_sizes = False
#* Show CPU frequency.
show_cpu_freq = True
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
clock_format = "%X"
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
background_update = True
#* Custom cpu model name, empty string to disable.
custom_cpu_name = ""
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user".
disks_filter = ""
#* Show graphs instead of meters for memory values.
mem_graphs = True
#* Show mem box below net box instead of above.
mem_below_net = False
#* Count ZFS ARC in cached and available memory.
zfs_arc_cached = True
#* If swap memory should be shown in memory box.
show_swap = True
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
swap_disk = True
#* If mem box should be split to also show disks info.
show_disks = False
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
only_physical = True
#* Read disks list from /etc/fstab. This also disables only_physical.
use_fstab = True
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
zfs_hide_datasets = False
#* Set to true to show available disk space for privileged users.
disk_free_priv = False
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
show_io_stat = True
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
io_mode = False
#* Set to True to show combined read/write io graphs in io mode.
io_graph_combined = False
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
#* Example: "/mnt/media:100 /:20 /boot:1".
io_graph_speeds = ""
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
net_download = 100
net_upload = 100
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
net_auto = True
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
net_sync = True
#* Starts with the Network Interface specified here.
net_iface = ""
#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes.
base_10_bitrate = "Auto"
#* Show battery stats in top right if battery is present.
show_battery = True
#* Which battery to use if multiple are present. "Auto" for auto detection.
selected_battery = "Auto"
#* Show power stats of battery next to charge indicator.
show_battery_watts = True
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
log_level = "WARNING"
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
nvml_measure_pcie_speeds = True
#* Measure PCIe throughput on AMD cards, may impact performance on certain cards.
rsmi_measure_pcie_speeds = True
#* Horizontally mirror the GPU graph.
gpu_mirror_graph = True
#* Custom gpu0 model name, empty string to disable.
custom_gpu_name0 = ""
#* Custom gpu1 model name, empty string to disable.
custom_gpu_name1 = ""
#* Custom gpu2 model name, empty string to disable.
custom_gpu_name2 = ""
#* Custom gpu3 model name, empty string to disable.
custom_gpu_name3 = ""
#* Custom gpu4 model name, empty string to disable.
custom_gpu_name4 = ""
#* Custom gpu5 model name, empty string to disable.
custom_gpu_name5 = ""

View File

@@ -0,0 +1,315 @@
# castero configuration file
# https://github.com/xgi/castero
[client]
# Whether to limit the amount of memory used by the client (by doing more
# disk I/O). Enabling this will reduce performance -- only enable it if you
# know you need to.
# default: False
restrict_memory_usage = False
# Whether to ask for confirmation before deleting a feed.
# default: False
delete_feed_confirmation = False
# The minimum number of feeds before the client asks you for confirmation
# after pressing the reload key.
# default: 10
reload_feeds_threshold = 10
# The maximum number of episodes to retain per feed. Set to -1 for no limit.
# default: -1
max_episodes = -1
# Whether to keep episodes in the client even if they are no longer present on
# the feed (i.e. the RSS feed only shows the x most recent episodes).
# default: False
retain_absent_episodes = False
# Default window layout. This can also be changed within castero by pressing the corresponding key.
# 1 - feeds + episodes + metadata
# 2 - queue + metadata
# 3 - feeds + episodes
# 4 - downloaded episodes + metadata
# 5 - all episodes + metadata
# default: 1
default_layout = 1
# Hide vertical borders between menus.
# default: False
disable_vertical_borders = False
# Whether to remove HTML tags from feed/episode descriptions.
# default: True
clean_html_descriptions = True
# The display refresh delay, in ms. Increase to reduce idle CPU usage.
# default: 30
refresh_delay = 30
# The external player to use for media playback.
# If the given player is not valid or a dependency is not met, the client will
# instead try to use the first valid interface.
# Available players (in order of precedence):
# mpv, vlc
# default: (blank)
player =
# The command to run when you press key_execute (default e). All instances of
# the following tokens are replaced with the corresponding episode attributes:
# {file} - the episode enclosure, usually a remote mp3 file
# {title} - the episode name
# {description} - the episode description
# {link} - the link to the episode, which is often a blog post
# {pubdate} - the publish date/time of the episode
# {copyright} - the copyright of the episode
# Most of these attributes have spaces, so you will probably want to enclose
# the token with quotations.
# For example, `firefox "{file}"` would open the file in Firefox.
# The client executes the text you enter as a shell command. Use with caution!
# default: (blank)
execute_command =
# An HTTP or SOCKS proxy to use for HTTP network requests.
# example: http://user:pass@10.10.1.10:3128
# example: socks5://user:pass@host:port
# default: (blank)
proxy_http =
# An HTTP or SOCKS proxy to use for HTTPS network requests.
# example: http://user:pass@10.10.1.10:3128
# example: socks5://user:pass@host:port
# default: (blank)
proxy_https =
# Behavior when adding selected feed into queue.
# If set to true, only unplayed episodes will be added to the queue.
# default: False
add_only_unplayed_episodes = False
[feeds]
# Whether to reload/refresh your feeds when the client starts. Depending on how
# many feeds you have, this operation may take a long time.
# default: False
reload_on_start = False
[downloads]
# The (absolute) location to save episodes downloaded for offline playback. Set
# to blank or whitespaces to disable -- the client will default to either
# $XDG_DATA_DIR, if set, otherwise ~/.local/share/castero/downloaded
# default: (blank)
custom_download_dir =
# The timeout for network requests, in seconds. The same value is used for
# connection and read timeouts.
# default: 3
request_timeout = 3
[colors]
# Available colors for all fields are:
# black, blue, cyan, green, magenta, red, white, yellow, transparent (background),
# integer from -1 to 255 if terminal supports 256 colors
# NOTE: Background transparency only works on compatible terminals with compositing
# The foreground (text) color of the main interface.
# default: yellow
color_foreground = yellow
# The background color of the main interface.
# default: black
color_background = black
# The foreground (text) color of selected items.
# default: black
color_foreground_alt = black
# The background color of selected items.
# default: white
color_background_alt = white
# The foreground (text) color of marked items. Paired with color_background.
# default: green
color_foreground_dim = green
# The foreground (text) color of status lines. Paired with color_background.
# default: white
color_foreground_status = white
# The foreground (text) color of menu headings. Paired with color_background.
# default: yellow
color_foreground_heading = yellow
# The foreground (text) color of dividers. Paired with color_background.
# default: white
color_foreground_dividers = white
[playback]
# The distance to move forward when pressing seek keys, in seconds.
# default: 30
seek_distance_forward = 30
# The distance to move backward when pressing seek keys, in seconds.
# default: 10
seek_distance_backward = 10
# The default playback speed. See also the rate_increase/rate_decrease keys.
# default: 1.0
default_playback_speed = 1.0
# The default volume. Can be 0-100, inclusive.
# default: 100
default_volume = 100
# The amount to adjust the volume when pressing the volume up/down keys.
# default: 5
volume_adjust_distance = 5
# The distance to rewind when resuming from playback, in seconds.
# default: 0
resume_rewind_distance = 0
[keys]
# Keybindings for controlling the client. Entries may not be blank, but may
# overlap -- however, only one operation will be performed for each key press.
# Please see this page for a list of available key names:
# https://docs.python.org/3/library/curses.html#constants
# Show the help menu.
# default: h
key_help = LEFT
# Exit the client
# default: q
key_exit = q
# Add a feed.
# default: a
key_add_feed = a
# Remove the selected feed.
# default: d
key_remove = d
# Reload/refresh all feeds.
# default: r
key_reload = r
# Reload/refresh the selected feed.
# default: R
key_reload_selected = R
# Save episode for offline playback.
# default: s
key_save = s
# Delete downloaded episodes.
# default: x
key_delete = x
# Navigate up.
# default: UP
key_up = k
# Navigate right.
# default: RIGHT
key_right = l
# Navigate down.
# default: DOWN
key_down = j
# Navigate left.
# default: LEFT
key_left = h
# Scroll menu up.
# default: PPAGE
key_scroll_up = PPAGE
# Scroll menu down.
# default: NPAGE
key_scroll_down = NPAGE
# Play selected feed/episode.
# default: ENTER
key_play_selected = ENTER
# Add selected feed/episode to queue.
# default: SPACE
key_add_selected = SPACE
# Clear the queue.
# default: c
key_clear = c
# Clear progress from episode.
# default: z
key_clear_progress = z
# Go to the next episode in the queue.
# default: n
key_next = n
# Execute a command on the selected episode. See also execute_command.
key_execute = e
# Invert the order of the menu.
# default: i
key_invert = i
# Filter the contents of the menu. Press again to clear the filter.
# default: /
key_filter = /
# Mark the episode as played/unplayed.
# default: i
key_mark_played = m
# Pause/play the current episode.
# default: p
key_pause_play = p
# Alternate binding for key_pause_play -- make identical to disable.
# default: k
key_pause_play_alt = UP
# Seek forward.
# default: f
key_seek_forward = f
# Alternate binding for key_seek_forward -- make identical to disable.
# default: l
key_seek_forward_alt = RIGHT
# Seek backward.
# default: b
key_seek_backward = b
# Alternate binding for key_seek_backward -- make identical to disable.
# default: j
key_seek_backward_alt = DOWN
# Increase playback speed.
# default: ]
key_rate_increase = ]
# Decrease playback speed.
# default: [
key_rate_decrease = [
# Increase volume.
# default: =
key_volume_increase = =
# Decrease volume.
# default: -
key_volume_decrease = -
# Show episode URL.
# default: u
key_show_url = u

View File

@@ -0,0 +1 @@
{"clipboardHistory":[{"value":" qt = {\n enable = true;\n platformTheme = \"gnome\";\n style = \"adwaita-dark\";\n };","recorded":"2025-04-03 13:15:33.677704480","filePath":"null","pinned":false},{"value":" theme = {\n name = \"Awesthetic-dark\";\n };","recorded":"2025-04-03 13:02:39.613255820","filePath":"null","pinned":false},{"value":"zafiro-icons","recorded":"2025-04-03 12:29:36.241084737","filePath":"null","pinned":false}]}

View File

@@ -0,0 +1,3 @@
2025/04/03 12:32:44 logger.go:19: ERROR: failed to kill process: exit status 1
2025/04/03 12:51:57 logger.go:19: ERROR: failed to kill process: exit status 1
2025/04/03 13:07:03 logger.go:19: ERROR: failed to kill process: exit status 1

View File

@@ -0,0 +1,35 @@
{
"allowDuplicates": false,
"historyFile": "clipboard_history.json",
"maxHistory": 100,
"logFile": "clipse.log",
"themeFile": "custom_theme.json",
"tempDir": "tmp_files",
"keyBindings": {
"choose": "enter",
"clearSelected": "S",
"down": "down",
"end": "end",
"filter": "/",
"home": "home",
"more": "?",
"nextPage": "right",
"prevPage": "left",
"preview": " ",
"quit": "q",
"remove": "x",
"selectDown": "ctrl+down",
"selectSingle": "s",
"selectUp": "ctrl+up",
"togglePin": "p",
"togglePinned": "tab",
"up": "up",
"yankFilter": "ctrl+s"
},
"imageDisplay": {
"type": "basic",
"scaleX": 9,
"scaleY": 9,
"heightCut": 2
}
}

View File

@@ -0,0 +1,28 @@
{
"useCustomTheme": false,
"TitleFore": "#ffffff",
"TitleBack": "#6F4CBC",
"TitleInfo": "#3498db",
"NormalTitle": "#ffffff",
"DimmedTitle": "#808080",
"SelectedTitle": "#FF69B4",
"NormalDesc": "#808080",
"DimmedDesc": "#808080",
"SelectedDesc": "#FF69B4",
"StatusMsg": "#2ecc71",
"PinIndicatorColor": "#FFD700",
"SelectedBorder": "#3498db",
"SelectedDescBorder": "#3498db",
"FilteredMatch": "#ffffff",
"FilterPrompt": "#2ecc71",
"FilterInfo": "#3498db",
"FilterText": "#ffffff",
"FilterCursor": "#FFD700",
"HelpKey": "#999999",
"HelpDesc": "#808080",
"PageActiveDot": "#3498db",
"PageInactiveDot": "#808080",
"DividerDot": "#3498db",
"PreviewedText": "#ffffff",
"PreviewBorder": "#3498db"
}

View File

@@ -0,0 +1,122 @@
currency = "USD"
default_view = ""
default_chart_range = "1Y"
api = "coingecko"
colorscheme = ""
refresh_rate = 60
cache_dir = ":PREFERRED_CACHE_HOME:/cointop"
compact_notation = false
enable_mouse = true
[shortcuts]
"!" = "sort_column_cost"
"#" = "sort_column_pnl_percent"
"$" = "last_page"
"%" = "sort_column_percent_holdings"
"+" = "show_price_alert_add_menu"
"/" = "open_search"
0 = "move_to_first_page_first_row"
1 = "sort_column_1h_change"
2 = "sort_column_24h_change"
3 = "sort_column_30d_change"
7 = "sort_column_7d_change"
"<" = "scroll_left"
">" = "scroll_right"
"?" = "help"
"@" = "sort_column_pnl"
A = "toggle_price_alerts"
C = "show_currency_convert_menu"
E = "show_portfolio_edit_menu"
F = "toggle_show_favorites"
F1 = "help"
F5 = "refresh"
G = "move_to_page_last_row"
H = "move_to_page_visible_first_row"
L = "move_to_page_visible_last_row"
M = "move_to_page_visible_middle_row"
O = "open_link"
P = "toggle_portfolio"
Q = "quit_view"
"[" = "previous_chart_range"
"\\\\" = "toggle_table_fullscreen"
"]" = "next_chart_range"
a = "sort_column_available_supply"
"alt+down" = "sort_column_desc"
"alt+left" = "sort_left_column"
"alt+right" = "sort_right_column"
"alt+up" = "sort_column_asc"
b = "sort_column_balance"
c = "show_currency_convert_menu"
"ctrl+C" = "quit"
"ctrl+R" = "refresh"
"ctrl+S" = "save"
"ctrl+c" = "quit"
"ctrl+d" = "page_down"
"ctrl+f" = "open_search"
"ctrl+j" = "enlarge_chart"
"ctrl+k" = "shorten_chart"
"ctrl+n" = "next_page"
"ctrl+p" = "previous_page"
"ctrl+r" = "refresh"
"ctrl+s" = "save"
"ctrl+space" = "toggle_portfolio_balances"
"ctrl+u" = "page_up"
down = "move_down"
e = "show_portfolio_edit_menu"
end = "move_to_page_last_row"
enter = "toggle_row_chart"
esc = "quit_view"
f = "toggle_favorite"
g = "move_to_page_first_row"
h = "previous_page"
home = "move_to_page_first_row"
j = "move_down"
k = "move_up"
l = "next_page"
left = "previous_page"
m = "sort_column_market_cap"
n = "sort_column_name"
o = "open_link"
p = "sort_column_price"
pagedown = "page_down"
pageup = "page_up"
q = "quit_view"
r = "sort_column_rank"
right = "next_page"
s = "sort_column_symbol"
space = "toggle_favorite"
t = "sort_column_total_supply"
tab = "move_down_or_next_page"
u = "sort_column_last_updated"
up = "move_up"
v = "sort_column_24h_volume"
y = "sort_column_1y_change"
"{" = "first_chart_range"
"|" = "toggle_chart_fullscreen"
"}" = "last_chart_range"
[favorites]
character = "*"
columns = ["rank", "name", "symbol", "price", "1h_change", "24h_change", "7d_change", "24h_volume", "market_cap", "available_supply", "total_supply", "last_updated"]
compact_notation = false
names = []
[portfolio]
columns = ["rank", "name", "symbol", "price", "holdings", "balance", "1h_change", "24h_change", "7d_change", "percent_holdings", "cost_price", "cost", "pnl", "pnl_percent", "last_updated"]
compact_notation = false
holdings = []
[price_alerts]
alerts = []
[coinmarketcap]
pro_api_key = ""
[table]
columns = ["rank", "name", "symbol", "price", "1h_change", "24h_change", "7d_change", "24h_volume", "market_cap", "available_supply", "total_supply", "last_updated"]
compact_notation = false
keep_row_focus_on_sort = false
[chart]
height = 10
max_width = 175

13
config/.config/dolphinrc Normal file
View File

@@ -0,0 +1,13 @@
[General]
Version=202
ViewPropsTimestamp=2025,1,21,17,27,55.466
[KFileDialog Settings]
Places Icons Auto-resize=false
Places Icons Static Size=22
[MainWindow]
MenuBar=Disabled
[Search]
Location=Everywhere

View File

@@ -0,0 +1,41 @@
# Main dunst configuration
[global]
monitor = 0
follow = none
origin = top-right
offset = 5 x 15
# for example dunstify -h int:value:12
progress_bar = true
progress_bar_height = 14
progress_bar_frame_width = 0
progress_bar_min_width = 100
progress_bar_max_width = 300
progress_bar_corner_radius = 5
progress_bar_corners = bottom-left, top-right
frame_width = 1
background = "#222222"
foreground = "#ffffff"
frame_color = "#5e5086"
font = Fira Mono 12
gap_size = 6
padding = 10
horizontal_padding = 8
alignment = left
vertical_alignment = center
ignore_newline = no
stack_duplicates = true
hide_duplicate_count = false
show_indicators = no
notification_limit = 10
indicate_hidden = yes
corner_radius = 5
corners = bottom, top-left

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

@@ -0,0 +1 @@
;; emacs config

View File

@@ -0,0 +1,2 @@
font=NotoSansMono-Regular:size=15
background=000000

View File

@@ -0,0 +1,15 @@
fields=name,generic,comment,categories,filename,keywords
terminal=foot -e
prompt=" "
show-actions=yes
[colors]
background=282a36fa
selection=3d4474fa
border=fffffffa
[border]
radius=20
[dmenu]
exit-immediately-if-empty=yes

View File

@@ -0,0 +1,63 @@
# Beware! This file is rewritten by htop when settings are changed in the interface.
# The parser is also very primitive, and not human-friendly.
htop_version=3.3.0
config_reader_min_version=3
fields=0 48 49 1
hide_kernel_threads=1
hide_userland_threads=1
hide_running_in_container=1
shadow_other_users=1
show_thread_names=0
show_program_path=0
highlight_base_name=1
highlight_deleted_exe=1
shadow_distribution_path_prefix=0
highlight_megabytes=1
highlight_threads=1
highlight_changes=0
highlight_changes_delay_secs=5
find_comm_in_cmdline=1
strip_exe_from_cmdline=1
show_merged_command=0
header_margin=1
screen_tabs=1
detailed_cpu_time=0
cpu_count_from_one=0
show_cpu_usage=1
show_cpu_frequency=0
show_cpu_temperature=0
degree_fahrenheit=0
update_process_names=0
account_guest_in_cpu_meter=0
color_scheme=0
enable_mouse=0
delay=15
hide_function_bar=0
header_layout=two_50_50
column_meters_0=AllCPUs Memory Swap
column_meter_modes_0=1 1 1
column_meters_1=Tasks LoadAverage Uptime
column_meter_modes_1=2 2 2
tree_view=1
sort_key=46
tree_sort_key=0
sort_direction=-1
tree_sort_direction=-1
tree_view_always_by_pid=0
all_branches_collapsed=0
screen:Main=PID USER TIME Command
.sort_key=PERCENT_CPU
.tree_sort_key=PID
.tree_view_always_by_pid=0
.tree_view=1
.sort_direction=-1
.tree_sort_direction=-1
.all_branches_collapsed=0
screen:I/O=PID USER IO_PRIORITY IO_RATE IO_READ_RATE IO_WRITE_RATE PERCENT_SWAP_DELAY PERCENT_IO_DELAY Command
.sort_key=IO_RATE
.tree_sort_key=PID
.tree_view_always_by_pid=0
.tree_view=0
.sort_direction=-1
.tree_sort_direction=1
.all_branches_collapsed=0

View File

@@ -0,0 +1,274 @@
#######################################################################################hypr
# Current setup for mirroring
# TODO: create a keybind for F7 to switch betwen
#monitor=,preferred,auto,1
monitor = , preferred, auto, 1, mirror, eDP-1
#######################################################################################
#$terminal = ~/projects/scripts/run_kitty.sh
$terminal = kitty
$explorer = dolphin --platformtheme kvantum
$menu = tofi-drun --terminal=$terminal | sh
#######################################################################################
exec-once = waybar
#exec-once = clipse -listen
exec-once = hyprsunset -t 3000
#exec-once = wl-clip-persist --clipboard regular
exec-once = hyprpaper
exec-once = nm-applet
exec-once = ~/projects/scripts/rnote_mapper.sh
# Check the hostname and enable animations only on a specific device
#exec-once = sh -c 'if [ "$(hostname)" = "minoxy" ]; then hyprctl keyword animations enabled; fi'
#######################################################################################
# Split up the monitors by default for the main working machine
workspace=1,monitor:HDMI-A-1
workspace=2,monitor:HDMI-A-1
workspace=3,monitor:HDMI-A-1
workspace=4,monitor:HDMI-A-1
workspace=5,monitor:HDMI-A-1
workspace=6,monitor:HDMI-A-1
workspace=8,monitor:HDMI-A-1
workspace=7,monitor:HDMI-A-2
workspace=9,monitor:HDMI-A-2
workspace=0,monitor:HDMI-A-2
env = HYPRCURSOR_THEME,catppuccin-frappe-rosewater-cursors
# This cursor needs to bigger than defined in nix becuase I dont know
env = HYPRCURSOR_SIZE,18
env = WLR_NO_HARDWARE_CURSORS,1
#######################################################################################
general {
gaps_in = 3
gaps_out = 0
border_size = 1
#workspace_per_monitor = true
col.active_border = rgba(777777ee) rgba(777777ee)
resize_on_border = false
}
animations {
enabled = no
# Default curves, see https://wiki.hypr.land/Configuring/Animations/#curves
# NAME, X0, Y0, X1, Y1
bezier = easeOutQuint, 0.23, 1, 0.32, 1
bezier = easeInOutCubic, 0.65, 0.05, 0.36, 1
bezier = linear, 0, 0, 1, 1
bezier = almostLinear, 0.5, 0.5, 0.75, 1
bezier = quick, 0.15, 0, 0.1, 1
# Default animations, see https://wiki.hypr.land/Configuring/Animations/
# NAME, ONOFF, SPEED, CURVE, [STYLE]
animation = global, 1, 10, default
animation = border, 1, 5.39, easeOutQuint
animation = windows, 1, 4.79, easeOutQuint
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
animation = windowsOut, 1, 1.49, linear, popin 87%
animation = fadeIn, 1, 1.73, almostLinear
animation = fadeOut, 1, 1.46, almostLinear
animation = fade, 1, 3.03, quick
animation = layers, 1, 3.81, easeOutQuint
animation = layersIn, 1, 4, easeOutQuint, fade
animation = layersOut, 1, 1.5, linear, fade
animation = fadeLayersIn, 1, 1.79, almostLinear
animation = fadeLayersOut, 1, 1.39, almostLinear
animation = workspaces, 1, 1.94, almostLinear, fade
animation = workspacesIn, 1, 1.21, almostLinear, fade
animation = workspacesOut, 1, 1.94, almostLinear, fade
}
misc {
disable_hyprland_logo = true
}
input {
kb_layout = us
follow_mouse = 1
touchpad {
natural_scroll = false
}
}
###################
### KEYBINDINGS ###
###################
$mainMod = SUPER
# Quick openers and default bindings
bind = $mainMod, Q, exec, $terminal
bind = $mainMod, C, killactive,
bind = $mainMod, B, exec, firefox
bind = $mainMod, R, exec, kitty -e yazi
bind = $mainMod, V, exec, kitty -e nvim
bind = $mainMod, M, exit,
bind = $mainMod, F, togglefloating,
bind = $mainMod, P, exec, $menu
bind = $mainMod, D, exec, $explorer # D for direcotry
# Some keybindings for screenshot and colorpicking
bind = , Print, exec, hyprshot -m region --clipboard-only
bind = SHIFT, Print, exec, hyprpicker -a
bind = CONTROL, Print, exec, hyprshot -m output -m active --clipboard-only
# Move focus with mainMod + vim keys
bind = $mainMod, k, movefocus, u
bind = $mainMod, j, movefocus, d
bind = $mainMod, l, movefocus, r
bind = $mainMod, h, movefocus, l
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
bind = $mainMod, F12, exec, ~/projects/scripts/unison_sync.sh
# showing the clipboard history
#bind = SUPER, V, exec, kitty --class clipse -e clipse
# Resizeing with mouse buttons while pressed mod
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 3%+
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 3%-
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 3%+
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 3%-
# Toggle waybar
bindt = Super_L, W,exec, pkill -SIGUSR1 waybar
bindt = $mainMod SHIFT, L, exec, hyprlock
#######################################################################################
# Some settings for floating apps
# Ignore maximize requests from apps. You'll probably like this.
windowrulev2 = suppressevent maximize, class:.*
windowrulev2 = float, class:(clipse)
windowrulev2 = size 622 652, class:(clipse)
windowrulev2 = stayfocused, class:(clipse)
windowrulev2 = float, class:(org.kde.dolphin)
# App rules
# Terminal basekittyd
windowrulev2 = workspace 1, class:(kitty)
windowrulev2 = workspace 1, class:(Emacs)
windowrulev2 = workspace 1, class:(foot)
windowrulev2 = workspace 1, class:(Alacritty)
# Browsers
windowrulev2 = workspace 2, class:(firefox)
windowrulev2 = workspace 2, class:(org.kde.falkon)
windowrulev2 = workspace 2, class:(midori)
windowrulev2 = workspace 2, class:(org.gnome.Epiphany)
# PDFS (keep all the pdfs here)
windowrulev2 = workspace 3, class:(sioyek)
windowrulev2 = workspace 3, class:(zathura)
# Having code here because it is also fast
windowrulev2 = workspace 4, class:(code)
windowrulev2 = workspace 4, class:(thunderbird)
windowrulev2 = workspace 4, class:(jetbrains-studio)
# Gaming and other things
windowrulev2 = workspace 5, class:(steam)
windowrulev2 = workspace 5, class:(blender)
windowrulev2 = workspace 5, class:(com.github.flxzt.rnote)
windowrulev2 = workspace 5, class:(com.github.xournalpp.xournalpp)
windowrulev2 = workspace 6, initialTitle:(LibreOffice)
windowrulev2 = workspace 6, initialTitle:(GNU Image Manipulation Program)
windowrulev2 = workspace 6, class:(org.shotcut.Shotcut)
# Social Apps
windowrulev2 = workspace 7, class:(signal)
windowrulev2 = workspace 7, class:(Slack)
windowrulev2 = workspace 7, class:(zoom)
windowrulev2 = workspace 7, class:(discord)
windowrulev2 = workspace 8, class:(anki)
windowrulev2 = workspace 8, class:(obsidian)
windowrulev2 = workspace 8, class:(org.qbittorrent.qBittorrent)
# Media and passwords
windowrulev2 = workspace 9, class:(\b(feh|mpv|vlc)\b)
windowrulev2 = workspace 9, class:(KeePassXC)
windowrulev2 = workspace 9, class:(spotify)
# Other stuff
windowrulev2 = workspace 10, class:(Matplotlib)
#windowrulev2 = workspace 10, title:(PallSim)
windowrulev2 = workspace 10, class:(m.py)
windowrulev2 = workspace 10, class:(org.prismlauncher.PrismLauncher)
# Can find sioyek in classes
#windowrule = float,^(sioyek)$ # set rounding to 10 for kitty
windowrulev2 = size 900 500, title:(Select Document)
windowrulev2 = size 900 500, title:(Open File)
# Settings applications will float
windowrulev2 = float, class:(qt6ct)
windowrulev2 = float, class:(simple-scan)
windowrulev2 = float, title:(Kvantum Manager)
windowrulev2 = float, class:(qt5ct)
windowrulev2 = float, title:(Open File)
windowrulev2 = float, title:(Open Folder)
windowrulev2 = float, title:(Save As)
# fixing the movement for smaller res displays
windowrulev2 = size 450 450, class:(Gnuplot)
windowrulev2 = move 100 203100, class:(Gnuplot)
windowrulev2 = float, class:(io.github.Qalculate.qalculate-qt)
windowrulev2 = size 700 700, class:(Qalculate!)
#windowrulev2 = tile, class:^(sioyek)$
windowrulev2 = float, title:(Select Document)
windowrulev2 = size 800 250, class:(org.pulseaudio.pavucontrol)
windowrulev2 = move 40 80, class:(org.pulseaudio.pavucontrol)
windowrulev2 = float, class:(org.pulseaudio.pavucontrol)
windowrulev2 = float, class:(cheese)
# Setup drag and drop support for terminal based applications
windowrulev2 = move 50 100, class:(xdragon)
windowrulev2 = pin, class:(xdragon)
windowrulev2 = pseudo, class:(xdragon)
#windowrulev2 = opacity 0.9, class:(xdragon)
windowrulev2 = bordersize 30, class:(xdragon)
windowrulev2 = bordercolor rgba(b3cc1aee) rgba(a3af1aee), class:(xdragon)
windowrulev2 = rounding 3, class:(xdragon)
#######################################################################################

View File

@@ -0,0 +1,111 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# Hyprlock
# Original config submitted by https://github.com/SherLock707
$background = rgb(000006)
$foreground = rgb(D0E9FC)
$color0 = rgb(000006)
$color1 = rgb(060A53)
$color2 = rgb(01236A)
$color3 = rgb(0140B4)
$color4 = rgb(0144BE)
$color5 = rgb(8B3AA9)
$color6 = rgb(5B90B8)
$color7 = rgb(B3D7F2)
$color8 = rgb(7E97A9)
$color9 = rgb(080E6F)
$color10 = rgb(012E8E)
$color11 = rgb(0155F0)
$color12 = rgb(015BFE)
$color13 = rgb(B94EE1)
$color14 = rgb(79C0F5)
$color15 = rgb(B3D7F2)
general {
grace = 1
}
background {
monitor =
#path = screenshot # screenshot of your desktop
# all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
blur_size = 5
blur_passes = 1 # 0 disables blurring
noise = 0.0117
contrast = 1.3000 # Vibrant!!!
brightness = 0.8000
vibrancy = 0.2100
vibrancy_darkness = 0.0
}
input-field {
monitor =
size = 250, 50
outline_thickness = 3
dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
outer_color = $color5
inner_color = $color0
font_color = $color12
#fade_on_empty = true
placeholder_text = <i>Password...</i> # Text rendered in the input box when it's empty.
hide_input = false
position = 0, 200
halign = center
valign = bottom
}
# Date
label {
monitor =
text = cmd[update:18000000] echo "<b> "$(date +'%A, %-d %B %Y')" </b>"
color = $color12
font_size = 34
font_family = JetBrains Mono Nerd Font 10
position = 0, -150
halign = center
valign = top
}
# Week
label {
monitor =
text = cmd[update:18000000] echo "<b> "$(date +'Week %U')" </b>"
color = $color5
font_size = 24
font_family = JetBrains Mono Nerd Font 10
position = 0, -250
halign = center
valign = top
}
# Time
label {
monitor =
#text = cmd[update:1000] echo "<b><big> $(date +"%I:%M:%S %p") </big></b>" # AM/PM
text = cmd[update:1000] echo "<b><big> $(date +"%H:%M:%S") </big></b>" # 24H
color = $color15
font_size = 94
font_family = JetBrains Mono Nerd Font 10
position = 0, 0
halign = center
valign = center
}
# User
label {
monitor =
text = Nutzer: $USER
color = "#123456"
font_size = 18
font_family = Inter Display Medium
position = 0, 100
halign = center
valign = bottom
}

View File

@@ -0,0 +1,12 @@
preload = /home/jonas/workspace-local/backg.jpg
#set the default wallpaper(s) seen on initial workspace(s) --depending on the number of monitors used
wallpaper = ,/home/jonas/workspace-local/backg.jpg
#enable splash text rendering over the wallpaper
# splash = true
#fully disable ipc
# ipc = off

190
config/.config/i3/config Normal file
View File

@@ -0,0 +1,190 @@
# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod4
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:monospace 8
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
#font pango:DejaVu Sans Mono 8
# Start XDG autostart .desktop files using dex. See also
# https://wiki.archlinux.org/index.php/XDG_Autostart
exec --no-startup-id dex-autostart --autostart --environment i3
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
# they are included here as an example. Modify as you see fit.
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
# screen before suspend. Use loginctl lock-session to lock your screen.
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
# NetworkManager is the most popular way to manage wireless networks on Linux,
# and nm-applet is a desktop environment-independent system tray GUI for it.
exec --no-startup-id nm-applet
# Use pactl to adjust volume in PulseAudio.
set $refresh_i3status killall -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# move tiling windows via drag & drop by left-clicking into the title bar,
# or left-clicking anywhere into the window while holding the floating modifier.
tiling_drag modifier titlebar
# start a terminal
bindsym $mod+Return exec i3-sensible-terminal
# kill focused window
bindsym $mod+Shift+q kill
# start dmenu (a program launcher)
bindsym $mod+d exec --no-startup-id dmenu_run
# A more modern dmenu replacement is rofi:
# bindcode $mod+40 exec "rofi -modi drun,run -show drun"
# There also is i3-dmenu-desktop which only displays applications shipping a
# .desktop file. It is a wrapper around dmenu, so you need that installed.
# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop
# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+j move left
bindsym $mod+Shift+k move down
bindsym $mod+Shift+l move up
bindsym $mod+Shift+semicolon move right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
bindsym $mod+h split h
# split in vertical orientation
bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
# switch to workspace
bindsym $mod+1 workspace number $ws1
bindsym $mod+2 workspace number $ws2
bindsym $mod+3 workspace number $ws3
bindsym $mod+4 workspace number $ws4
bindsym $mod+5 workspace number $ws5
bindsym $mod+6 workspace number $ws6
bindsym $mod+7 workspace number $ws7
bindsym $mod+8 workspace number $ws8
bindsym $mod+9 workspace number $ws9
bindsym $mod+0 workspace number $ws10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number $ws1
bindsym $mod+Shift+2 move container to workspace number $ws2
bindsym $mod+Shift+3 move container to workspace number $ws3
bindsym $mod+Shift+4 move container to workspace number $ws4
bindsym $mod+Shift+5 move container to workspace number $ws5
bindsym $mod+Shift+6 move container to workspace number $ws6
bindsym $mod+Shift+7 move container to workspace number $ws7
bindsym $mod+Shift+8 move container to workspace number $ws8
bindsym $mod+Shift+9 move container to workspace number $ws9
bindsym $mod+Shift+0 move container to workspace number $ws10
# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym j resize shrink width 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym l resize shrink height 10 px or 10 ppt
bindsym semicolon resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
bindsym $mod+r mode "resize"
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
status_command i3status
}

View File

@@ -0,0 +1,2 @@
[profiles."uni-goettingen.de"]
user_id = "@j.hahn02:uni-goettingen.de"

View File

@@ -0,0 +1,14 @@
[General]
ConfigVersion=2
[GUI]
ApplicationTheme=dark
HideMenubar=false
HideToolbar=true
[PasswordGenerator]
AdditionalChars=
ExcludedChars=
Length=14
Numbers=true
SpecialChars=true

View File

@@ -0,0 +1,21 @@
background #1d1d1d
foreground #f7f6ec
cursor #eccf4f
selection_background #165776
color0 #343835
color8 #585a58
color1 #ce3e60
color9 #d18ea6
color2 #7bb75b
color10 #767e2b
color3 #e8b32a
color11 #77592e
color4 #4c99d3
color12 #135879
color5 #a57fc4
color13 #5f4190
color6 #389aac
color14 #76bbca
color7 #f9faf6
color15 #b1b5ae
selection_foreground #1d1d1d

View File

@@ -0,0 +1,49 @@
# gruvbox dark by morhetz, https://github.com/morhetz/gruvbox
# This work is licensed under the terms of the MIT license.
# For a copy, see https://opensource.org/licenses/MIT.
background #282828
foreground #ebdbb2
cursor #928374
selection_foreground #928374
selection_background #3c3836
color0 #282828
color8 #928374
# red
color1 #cc241d
# light red
color9 #fb4934
# green
color2 #98971a
# light green
color10 #b8bb26
# yellow
color3 #d79921
# light yellow
color11 #fabd2d
# blue
color4 #458588
# light blue
color12 #83a598
# magenta
color5 #b16286
# light magenta
color13 #d3869b
# cyan
color6 #689d6a
# lighy cyan
color14 #8ec07c
# light gray
color7 #a89984
# dark gray
color15 #928374

View File

@@ -0,0 +1,27 @@
# The default kitty configuration
# The documentation
# https://sw.kovidgoyal.net/kitty/
startup_session ./main_session.conf
include ./theme.conf
# General settings
font_size 11.5
enable_audio_bell yes
background_opacity 0.80
default_pointer_shape arrow
mouse_hide_wait 1
# Remappings
map f1 copy_to_buffer a
map f2 paste_from_buffer a
# Remap the window switcher probably the most used one
#map ctrl+shift+k focus_visible_window
#map ctrl+shift+j swap_with_window
map ctrl+shift+n new_tab
map ctrl+shift+k next_tab
map ctrl+shift+j previous_tab
paste_actions quote-urls-at-prompt

View File

@@ -0,0 +1,9 @@
# Set the default tab name
new_tab MainKity
# Launch fastfetch on first shell
#launch --hold fastfetch
# Not all the seven layouts
enabled_layouts tall,stack

View File

@@ -0,0 +1,21 @@
background #1d1d1d
foreground #f7f6ec
cursor #eccf4f
selection_foreground #f7f6ec
selection_background #385776
color0 #343835
color8 #585a58
color1 #ce3e60
color9 #d18ea6
color2 #7bb75b
color10 #767e2b
color3 #e8b32a
color11 #77592e
color4 #4c99d3
color12 #337879
color5 #a57fc4
color13 #7f5190
color6 #389aac
color14 #76bbca
color7 #f9faf6
color15 #b1b5ae

View File

@@ -0,0 +1,2 @@
[General]
CloseAllTabs=3

8
config/.config/konsolerc Normal file
View File

@@ -0,0 +1,8 @@
[Desktop Entry]
DefaultProfile=MainProfile.profile
[General]
ConfigVersion=1
[UiSettings]
ColorScheme=AdwaitaDark

View File

@@ -0,0 +1,42 @@
# Implement more commands to be more productive
customCommands:
- key: 'U'
context: 'status'
# WARNING: this only works when the remote is a ssh remote
# TODO: Implement a script that can figure out if it ssh or http and act accordingly
command: "xdg-open https://$(git remote get-url origin | tr @ '\n' | grep : | tr : / | rev | cut -c5- | rev)"
description: 'open the remote url in smime'
notARepository: 'skip'
# Dont prompt here
promptToReturnFromSubprocess: false
# Setting the theme to cattpuccin
gui:
skipDiscardChangeWarning: true
theme:
activeBorderColor:
- '#eba0ac'
- bold
inactiveBorderColor:
- '#a6adc8'
optionsTextColor:
- '#89b4fa'
selectedLineBgColor:
- '#313244'
cherryPickedCommitBgColor:
- '#45475a'
cherryPickedCommitFgColor:
- '#eba0ac'
unstagedChangesColor:
- '#f38ba8'
defaultFgColor:
- '#cdd6f4'
searchingActiveBorderColor:
- '#f9e2af'
authorColors:
'*': '#b4befe'
showFileTree: false

View File

@@ -0,0 +1,880 @@
# See this wiki page for more info:
# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
print_info() {
info title
info underline
info "OS" distro
info "Host" model
info "Kernel" kernel
info "Uptime" uptime
info "Packages" packages
info "Shell" shell
info "Resolution" resolution
info "DE" de
info "WM" wm
info "WM Theme" wm_theme
info "Theme" theme
info "Icons" icons
info "Terminal" term
info "Terminal Font" term_font
info "CPU" cpu
info "GPU" gpu
info "Memory" memory
# info "GPU Driver" gpu_driver # Linux/macOS only
# info "Disk" disk
# info "Battery" battery
# info "Font" font
# info "Song" song
# [[ "$player" ]] && prin "Music Player" "$player"
# info "Local IP" local_ip
# info "Public IP" public_ip
# info "Users" users
# info "Locale" locale # This only works on glibc systems.
info cols
}
# Title
# Hide/Show Fully qualified domain name.
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --title_fqdn
title_fqdn="off"
# Kernel
# Shorten the output of the kernel function.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --kernel_shorthand
# Supports: Everything except *BSDs (except PacBSD and PC-BSD)
#
# Example:
# on: '4.8.9-1-ARCH'
# off: 'Linux 4.8.9-1-ARCH'
kernel_shorthand="on"
# Distro
# Shorten the output of the distro function
#
# Default: 'off'
# Values: 'on', 'tiny', 'off'
# Flag: --distro_shorthand
# Supports: Everything except Windows and Haiku
distro_shorthand="off"
# Show/Hide OS Architecture.
# Show 'x86_64', 'x86' and etc in 'Distro:' output.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --os_arch
#
# Example:
# on: 'Arch Linux x86_64'
# off: 'Arch Linux'
os_arch="on"
# Uptime
# Shorten the output of the uptime function
#
# Default: 'on'
# Values: 'on', 'tiny', 'off'
# Flag: --uptime_shorthand
#
# Example:
# on: '2 days, 10 hours, 3 mins'
# tiny: '2d 10h 3m'
# off: '2 days, 10 hours, 3 minutes'
uptime_shorthand="on"
# Memory
# Show memory percentage in output.
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --memory_percent
#
# Example:
# on: '1801MiB / 7881MiB (22%)'
# off: '1801MiB / 7881MiB'
memory_percent="off"
# Change memory output unit.
#
# Default: 'mib'
# Values: 'kib', 'mib', 'gib'
# Flag: --memory_unit
#
# Example:
# kib '1020928KiB / 7117824KiB'
# mib '1042MiB / 6951MiB'
# gib: ' 0.98GiB / 6.79GiB'
memory_unit="mib"
# Packages
# Show/Hide Package Manager names.
#
# Default: 'tiny'
# Values: 'on', 'tiny' 'off'
# Flag: --package_managers
#
# Example:
# on: '998 (pacman), 8 (flatpak), 4 (snap)'
# tiny: '908 (pacman, flatpak, snap)'
# off: '908'
package_managers="on"
# Shell
# Show the path to $SHELL
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --shell_path
#
# Example:
# on: '/bin/bash'
# off: 'bash'
shell_path="off"
# Show $SHELL version
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --shell_version
#
# Example:
# on: 'bash 4.4.5'
# off: 'bash'
shell_version="on"
# CPU
# CPU speed type
#
# Default: 'bios_limit'
# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'.
# Flag: --speed_type
# Supports: Linux with 'cpufreq'
# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value.
speed_type="bios_limit"
# CPU speed shorthand
#
# Default: 'off'
# Values: 'on', 'off'.
# Flag: --speed_shorthand
# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz
#
# Example:
# on: 'i7-6500U (4) @ 3.1GHz'
# off: 'i7-6500U (4) @ 3.100GHz'
speed_shorthand="off"
# Enable/Disable CPU brand in output.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --cpu_brand
#
# Example:
# on: 'Intel i7-6500U'
# off: 'i7-6500U (4)'
cpu_brand="on"
# CPU Speed
# Hide/Show CPU speed.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --cpu_speed
#
# Example:
# on: 'Intel i7-6500U (4) @ 3.1GHz'
# off: 'Intel i7-6500U (4)'
cpu_speed="on"
# CPU Cores
# Display CPU cores in output
#
# Default: 'logical'
# Values: 'logical', 'physical', 'off'
# Flag: --cpu_cores
# Support: 'physical' doesn't work on BSD.
#
# Example:
# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores)
# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores)
# off: 'Intel i7-6500U @ 3.1GHz'
cpu_cores="logical"
# CPU Temperature
# Hide/Show CPU temperature.
# Note the temperature is added to the regular CPU function.
#
# Default: 'off'
# Values: 'C', 'F', 'off'
# Flag: --cpu_temp
# Supports: Linux, BSD
# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable
# coretemp kernel module. This only supports newer Intel processors.
#
# Example:
# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]'
# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]'
# off: 'Intel i7-6500U (4) @ 3.1GHz'
cpu_temp="off"
# GPU
# Enable/Disable GPU Brand
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --gpu_brand
#
# Example:
# on: 'AMD HD 7950'
# off: 'HD 7950'
gpu_brand="on"
# Which GPU to display
#
# Default: 'all'
# Values: 'all', 'dedicated', 'integrated'
# Flag: --gpu_type
# Supports: Linux
#
# Example:
# all:
# GPU1: AMD HD 7950
# GPU2: Intel Integrated Graphics
#
# dedicated:
# GPU1: AMD HD 7950
#
# integrated:
# GPU1: Intel Integrated Graphics
gpu_type="all"
# Resolution
# Display refresh rate next to each monitor
# Default: 'off'
# Values: 'on', 'off'
# Flag: --refresh_rate
# Supports: Doesn't work on Windows.
#
# Example:
# on: '1920x1080 @ 60Hz'
# off: '1920x1080'
refresh_rate="off"
# Gtk Theme / Icons / Font
# Shorten output of GTK Theme / Icons / Font
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --gtk_shorthand
#
# Example:
# on: 'Numix, Adwaita'
# off: 'Numix [GTK2], Adwaita [GTK3]'
gtk_shorthand="off"
# Enable/Disable gtk2 Theme / Icons / Font
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --gtk2
#
# Example:
# on: 'Numix [GTK2], Adwaita [GTK3]'
# off: 'Adwaita [GTK3]'
gtk2="on"
# Enable/Disable gtk3 Theme / Icons / Font
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --gtk3
#
# Example:
# on: 'Numix [GTK2], Adwaita [GTK3]'
# off: 'Numix [GTK2]'
gtk3="on"
# IP Address
# Website to ping for the public IP
#
# Default: 'http://ident.me'
# Values: 'url'
# Flag: --ip_host
public_ip_host="http://ident.me"
# Public IP timeout.
#
# Default: '2'
# Values: 'int'
# Flag: --ip_timeout
public_ip_timeout=2
# Local IP interface
#
# Default: 'auto' (interface of default route)
# Values: 'auto', 'en0', 'en1'
# Flag: --ip_interface
local_ip_interface=('auto')
# Desktop Environment
# Show Desktop Environment version
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --de_version
de_version="on"
# Disk
# Which disks to display.
# The values can be any /dev/sdXX, mount point or directory.
# NOTE: By default we only show the disk info for '/'.
#
# Default: '/'
# Values: '/', '/dev/sdXX', '/path/to/drive'.
# Flag: --disk_show
#
# Example:
# disk_show=('/' '/dev/sdb1'):
# 'Disk (/): 74G / 118G (66%)'
# 'Disk (/mnt/Videos): 823G / 893G (93%)'
#
# disk_show=('/'):
# 'Disk (/): 74G / 118G (66%)'
#
disk_show=('/')
# Disk subtitle.
# What to append to the Disk subtitle.
#
# Default: 'mount'
# Values: 'mount', 'name', 'dir', 'none'
# Flag: --disk_subtitle
#
# Example:
# name: 'Disk (/dev/sda1): 74G / 118G (66%)'
# 'Disk (/dev/sdb2): 74G / 118G (66%)'
#
# mount: 'Disk (/): 74G / 118G (66%)'
# 'Disk (/mnt/Local Disk): 74G / 118G (66%)'
# 'Disk (/mnt/Videos): 74G / 118G (66%)'
#
# dir: 'Disk (/): 74G / 118G (66%)'
# 'Disk (Local Disk): 74G / 118G (66%)'
# 'Disk (Videos): 74G / 118G (66%)'
#
# none: 'Disk: 74G / 118G (66%)'
# 'Disk: 74G / 118G (66%)'
# 'Disk: 74G / 118G (66%)'
disk_subtitle="mount"
# Disk percent.
# Show/Hide disk percent.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --disk_percent
#
# Example:
# on: 'Disk (/): 74G / 118G (66%)'
# off: 'Disk (/): 74G / 118G'
disk_percent="on"
# Song
# Manually specify a music player.
#
# Default: 'auto'
# Values: 'auto', 'player-name'
# Flag: --music_player
#
# Available values for 'player-name':
#
# amarok
# audacious
# banshee
# bluemindo
# clementine
# cmus
# deadbeef
# deepin-music
# dragon
# elisa
# exaile
# gnome-music
# gmusicbrowser
# gogglesmm
# guayadeque
# io.elementary.music
# iTunes
# Music
# juk
# lollypop
# MellowPlayer
# mocp
# mopidy
# mpd
# muine
# netease-cloud-music
# olivia
# playerctl
# pogo
# pragha
# qmmp
# quodlibet
# rhythmbox
# sayonara
# smplayer
# spotify
# strawberry
# tauonmb
# tomahawk
# vlc
# xmms2d
# xnoise
# yarock
music_player="auto"
# Format to display song information.
#
# Default: '%artist% - %album% - %title%'
# Values: '%artist%', '%album%', '%title%'
# Flag: --song_format
#
# Example:
# default: 'Song: Jet - Get Born - Sgt Major'
song_format="%artist% - %album% - %title%"
# Print the Artist, Album and Title on separate lines
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --song_shorthand
#
# Example:
# on: 'Artist: The Fratellis'
# 'Album: Costello Music'
# 'Song: Chelsea Dagger'
#
# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger'
song_shorthand="off"
# 'mpc' arguments (specify a host, password etc).
#
# Default: ''
# Example: mpc_args=(-h HOST -P PASSWORD)
mpc_args=()
# Text Colors
# Text Colors
#
# Default: 'distro'
# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
# Flag: --colors
#
# Each number represents a different part of the text in
# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info'
#
# Example:
# colors=(distro) - Text is colored based on Distro colors.
# colors=(4 6 1 8 8 6) - Text is colored in the order above.
colors=(distro)
# Text Options
# Toggle bold text
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --bold
bold="on"
# Enable/Disable Underline
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --underline
underline_enabled="on"
# Underline character
#
# Default: '-'
# Values: 'string'
# Flag: --underline_char
underline_char="-"
# Info Separator
# Replace the default separator with the specified string.
#
# Default: ':'
# Flag: --separator
#
# Example:
# separator="->": 'Shell-> bash'
# separator=" =": 'WM = dwm'
separator=":"
# Color Blocks
# Color block range
# The range of colors to print.
#
# Default: '0', '15'
# Values: 'num'
# Flag: --block_range
#
# Example:
#
# Display colors 0-7 in the blocks. (8 colors)
# neofetch --block_range 0 7
#
# Display colors 0-15 in the blocks. (16 colors)
# neofetch --block_range 0 15
block_range=(0 15)
# Toggle color blocks
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --color_blocks
color_blocks="on"
# Color block width in spaces
#
# Default: '3'
# Values: 'num'
# Flag: --block_width
block_width=3
# Color block height in lines
#
# Default: '1'
# Values: 'num'
# Flag: --block_height
block_height=1
# Color Alignment
#
# Default: 'auto'
# Values: 'auto', 'num'
# Flag: --col_offset
#
# Number specifies how far from the left side of the terminal (in spaces) to
# begin printing the columns, in case you want to e.g. center them under your
# text.
# Example:
# col_offset="auto" - Default behavior of neofetch
# col_offset=7 - Leave 7 spaces then print the colors
col_offset="auto"
# Progress Bars
# Bar characters
#
# Default: '-', '='
# Values: 'string', 'string'
# Flag: --bar_char
#
# Example:
# neofetch --bar_char 'elapsed' 'total'
# neofetch --bar_char '-' '='
bar_char_elapsed="-"
bar_char_total="="
# Toggle Bar border
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --bar_border
bar_border="on"
# Progress bar length in spaces
# Number of chars long to make the progress bars.
#
# Default: '15'
# Values: 'num'
# Flag: --bar_length
bar_length=15
# Progress bar colors
# When set to distro, uses your distro's logo colors.
#
# Default: 'distro', 'distro'
# Values: 'distro', 'num'
# Flag: --bar_colors
#
# Example:
# neofetch --bar_colors 3 4
# neofetch --bar_colors distro 5
bar_color_elapsed="distro"
bar_color_total="distro"
# Info display
# Display a bar with the info.
#
# Default: 'off'
# Values: 'bar', 'infobar', 'barinfo', 'off'
# Flags: --memory_display
# --battery_display
# --disk_display
#
# Example:
# bar: '[---=======]'
# infobar: 'info [---=======]'
# barinfo: '[---=======] info'
# off: 'info'
memory_display="off"
battery_display="off"
disk_display="off"
# Backend Settings
# Image backend.
#
# Default: 'ascii'
# Values: 'ascii', 'caca', 'catimg', 'chafa', 'jp2a', 'iterm2', 'off',
# 'pot', 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty', 'ueberzug',
# 'viu'
# Flag: --backend
image_backend="ascii"
# Image Source
#
# Which image or ascii file to display.
#
# Default: 'auto'
# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/'
# 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")'
# Flag: --source
#
# NOTE: 'auto' will pick the best image source for whatever image backend is used.
# In ascii mode, distro ascii art will be used and in an image mode, your
# wallpaper will be used.
image_source="auto"
# Ascii Options
# Ascii distro
# Which distro's ascii art to display.
#
# Default: 'auto'
# Values: 'auto', 'distro_name'
# Flag: --ascii_distro
# NOTE: AIX, Hash, Alpine, AlterLinux, Amazon, Anarchy, Android, instantOS,
# Antergos, antiX, "AOSC OS", "AOSC OS/Retro", Apricity, ArchCraft,
# ArcoLinux, ArchBox, ARCHlabs, ArchStrike, XFerience, ArchMerge, Arch,
# Artix, Arya, Bedrock, Bitrig, BlackArch, BLAG, BlankOn, BlueLight,
# Bodhi, bonsai, BSD, BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS,
# Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover, Condres,
# Container_Linux, Crystal Linux, CRUX, Cucumber, dahlia, Debian, Deepin,
# DesaOS, Devuan, DracOS, DarkOs, Itc, DragonFly, Drauger, Elementary,
# EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD,
# FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo,
# gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra, HydroOS
# Hyperbola, iglunix, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion, Korora,
# KSLinux, Kubuntu, LEDE, LaxerOS, LibreELEC, LFS, Linux_Lite, LMDE,
# Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva, Manjaro, TeArch, Maui,
# Mer, Minix, LinuxMint, Live_Raizo, MX_Linux, Namib, Neptune, NetBSD,
# Netrunner, Nitrux, NixOS, Nurunner, NuTyX, OBRevenge, OpenBSD,
# openEuler, OpenIndiana, openmamba, OpenMandriva, OpenStage, OpenWrt,
# osmc, Oracle, OS Elbrus, PacBSD, Parabola, Pardus, Parrot, Parsix,
# TrueOS, PCLinuxOS, Pengwin, Peppermint, Pisi, popos, Porteus, PostMarketOS,
# Proxmox, PuffOS, Puppy, PureOS, Qubes, Qubyt, Quibian, Radix, Raspbian,
# Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan, Regata, Regolith,
# Rocky, Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific, Septor,
# SereneLinux, SharkLinux, Siduction, SkiffOS, Slackware, SliTaz, SmartOS,
# Solus, Source_Mage, Sparky, Star, SteamOS, SunOS, openSUSE_Leap, t2,
# openSUSE_Tumbleweed, openSUSE, SwagArch, Tails, Trisquel,
# Ubuntu-Cinnamon, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE,
# Ubuntu-Studio, Ubuntu, Univention, Venom, Void, VNux, LangitKetujuh, semc,
# Obarun, windows10, Windows7, Xubuntu, Zorin, and IRIX have ascii logos.
# NOTE: Arch, Ubuntu, Redhat, Fedora and Dragonfly have 'old' logo variants.
# Use '{distro name}_old' to use the old logos.
# NOTE: Ubuntu has flavor variants.
# Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME,
# Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors.
# NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu,
# CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android,
# Artix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola,
# Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS,
# Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian,
# postmarketOS, and Void have a smaller logo variant.
# Use '{distro name}_small' to use the small variants.
ascii_distro="auto"
# Ascii Colors
#
# Default: 'distro'
# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
# Flag: --ascii_colors
#
# Example:
# ascii_colors=(distro) - Ascii is colored based on Distro colors.
# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors.
ascii_colors=(distro)
# Bold ascii logo
# Whether or not to bold the ascii logo.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --ascii_bold
ascii_bold="on"
# Image Options
# Image loop
# Setting this to on will make neofetch redraw the image constantly until
# Ctrl+C is pressed. This fixes display issues in some terminal emulators.
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --loop
image_loop="off"
# Thumbnail directory
#
# Default: '~/.cache/thumbnails/neofetch'
# Values: 'dir'
thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
# Crop mode
#
# Default: 'normal'
# Values: 'normal', 'fit', 'fill'
# Flag: --crop_mode
#
# See this wiki page to learn about the fit and fill options.
# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F
crop_mode="normal"
# Crop offset
# Note: Only affects 'normal' crop mode.
#
# Default: 'center'
# Values: 'northwest', 'north', 'northeast', 'west', 'center'
# 'east', 'southwest', 'south', 'southeast'
# Flag: --crop_offset
crop_offset="center"
# Image size
# The image is half the terminal width by default.
#
# Default: 'auto'
# Values: 'auto', '00px', '00%', 'none'
# Flags: --image_size
# --size
image_size="auto"
# Catimg block size.
# Control the resolution of catimg.
#
# Default: '2'
# Values: '1', '2'
# Flags: --catimg_size
catimg_size="2"
# Gap between image and text
#
# Default: '3'
# Values: 'num', '-num'
# Flag: --gap
gap=3
# Image offsets
# Only works with the w3m backend.
#
# Default: '0'
# Values: 'px'
# Flags: --xoffset
# --yoffset
yoffset=0
xoffset=0
# Image background color
# Only works with the w3m backend.
#
# Default: ''
# Values: 'color', 'blue'
# Flag: --bg_color
background_color=
# Misc Options
# Stdout mode
# Turn off all colors and disables image backend (ASCII/Image).
# Useful for piping into another command.
# Default: 'off'
# Values: 'on', 'off'
stdout="off"

View File

@@ -0,0 +1,5 @@
text/html; firefox %s
text/plain; nvim %s
application/pdf; zathura --fork %s
image/png; feh %s
image/jpeg; feh %s

View File

@@ -0,0 +1,106 @@
source ~/vault/mutt_keys
set spoolfile="imaps://imap.gmx.net/"
set sidebar_visible
set header_cache = "~/.cache/mutt"
set message_cachedir = "~/.cache/mutt"
set mailcap_path = "~/.config/neomutt/mailcap"
set mail_check = 5
set folder=/dev/null
account-hook . 'unset imap_user; unset imap_pass; unset tunnel'
account-hook imap.gmx.net "set from=$my_user imap_user=$my_user imap_pass=$my_pass smtp_user=$my_user smtp_pass=$my_pass smtp_url=smtps://smtp.gmx.net"
account-hook email.gwdg.de "set imap_user=$my_user2 imap_pass=$my_pass2 smtp_user=$my_user2 smtp_pass=$my_pass2 smtp_url=smtps://email.gwdg.de"
account-hook imap.web.de "set imap_user=$my_user3 imap_pass=$my_pass3 smtp_user=$my_user3 smtp_pass=$my_pass3 smtp_url=smtps://smtp.web.de"
account-hook imap.mail.me.com "set imap_user=$my_user4 imap_pass=$my_pass4 smtp_user=$my_user4 smtp_pass=$my_pass4 smtp_url=smtps://smtp.mail.me.com"
named-mailboxes "UniStud" imaps://email.gwdg.de
named-mailboxes "WebHorn" imaps://imap.web.de
named-mailboxes "GmxMain" imaps://imap.gmx.net
named-mailboxes "Apple" imaps://imap.mail.me.com
# Color definitions
set my_bg = "color236"
set my_fg = "color252"
set my_red = "color210"
set my_green = "color114"
set my_blue = "color68"
set my_aqua = "color80"
set my_yellow = "color221"
set my_orange = "color209"
set my_purple = "color176"
set my_comment = "color246"
set my_selection = "color239"
set my_current_line = "color237"
# basic components
color hdrdefault $my_green $my_bg
color signature $my_blue $my_bg
color attachment $my_yellow $my_bg
color prompt $my_purple $my_bg
color message $my_green $my_bg
color error $my_red $my_bg
color indicator $my_fg $my_selection
color status $my_bg $my_orange
color tree $my_blue $my_bg
color normal $my_fg $my_bg
color markers $my_red $my_bg
color search $my_bg $my_yellow
color tilde $my_purple $my_bg
color underline $my_bg $my_yellow
color index $my_green $my_bg ~F
color index $my_blue $my_bg "~N|~O"
### Highlights inside the body of a message ###
# URLs
color body $my_aqua $my_bg "(https?|s?ftp|news|telnet|finger|ssh)://[^ \"\t\r\n]*"
color body $my_aqua $my_bg "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"
mono body bold "(https?|s?ftp|news|telnet|finger|ssh)://[^ \"\t\r\n]*"
mono body bold "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"
# email addresses
color body $my_blue $my_bg "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"
#mono body bold "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"
### Header components ###
color header $my_green $my_bg "^from:"
color header $my_green $my_bg "^to:"
color header $my_green $my_bg "^cc:"
color header $my_green $my_bg "^date:"
color header $my_yellow $my_bg "^newsgroups:"
color header $my_yellow $my_bg "^reply-to:"
color header $my_aqua $my_bg "^subject:"
color header $my_red $my_bg "^x-spam-rule:"
color header $my_green $my_bg "^x-mailer:"
color header $my_yellow $my_bg "^message-id:"
color header $my_yellow $my_bg "^Organization:"
color header $my_yellow $my_bg "^Organisation:"
color header $my_yellow $my_bg "^User-Agent:"
color header $my_yellow $my_bg "^message-id: .*pine"
color header $my_yellow $my_bg "^X-Fnord:"
color header $my_yellow $my_bg "^X-WebTV-Stationery:"
color header $my_yellow $my_bg "^X-Message-Flag:"
color header $my_yellow $my_bg "^X-Spam-Status:"
color header $my_yellow $my_bg "^X-SpamProbe:"
color header $my_red $my_bg "^X-SpamProbe: SPAM"
### Coloring quoted text - coloring the first 7 levels ###
color quoted $my_aqua $my_bg
color quoted1 $my_yellow $my_bg
color quoted2 $my_red $my_bg
color quoted3 $my_green $my_bg
color quoted4 $my_aqua $my_bg
color quoted5 $my_yellow $my_bg
color quoted6 $my_red $my_bg
color quoted7 $my_green $my_bg
### sidebar colors ###
color sidebar_divider $my_comment $my_bg
color sidebar_flagged $my_aqua $my_bg
color sidebar_highlight $my_bg $my_yellow
color sidebar_new $my_green $my_bg
color sidebar_spoolfile $my_blue $my_bg

View File

@@ -0,0 +1,7 @@
{
packageOverrides = pkgs: {
nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/main.tar.gz") {
inherit pkgs;
};
};
}

View File

@@ -0,0 +1,6 @@
{
"export-settings-ini": true,
"export-gtkrc-20": true,
"export-index-theme": true,
"export-xsettingsd": true
}

View File

@@ -0,0 +1,8 @@
[window]
width=500
height=400
sinkInputType=1
sourceOutputType=1
sinkType=0
sourceType=1
showVolumeMeters=1

View File

@@ -0,0 +1,354 @@
[General]
version=5.5.1
allow_multiple_instances=-1
ignore_locale=0
check_version=0
window_state=AAAA/wAAAAD9AAAAAgAAAAIAAAAAAAAAAPwBAAAAAvsAAAAiAG4AdQBtAGIAZQByAC0AYgBhAHMAZQBzAC0AZABvAGMAawAAAAAA/////wAAAeUA////+wAAABAAcgBwAG4ALQBkAG8AYwBrAAAAAAD/////AAAAhQD///8AAAADAAACWAAAALP8AQAAAAH7AAAAFgBrAGUAeQBwAGEAZAAtAGQAbwBjAGsAAAAAAAAAAlgAAAInAP///wAAA7sAAAIGAAAABAAAAAQAAAAIAAAACPwAAAABAAAAAgAAAAEAAAAOAFQAbwBvAGwAYgBhAHIAAAAAAP////8AAAAAAAAAAA==
window_geometry=AdnQywADAAAAAAPEAAACMQAAB34AAAQ2AAADxAAAAjEAAAd+AAAENgAAAAAAAAAAB4AAAAPEAAACMQAAB34AAAQ2
preserve_history_height=0
splitter_state=AAAA/wAAAAEAAAACAAAARQAAAMAB/////wEAAAACAA==
keep_function_dialog_open=0
units_geometry=AdnQywADAAAAAAH0AAAAZAAABXcAAAODAAAB9AAAAGQAAAV3AAADgwAAAAACAAAAB4AAAAH0AAAAZAAABXcAAAOD
units_vsplitter_state=AAAA/wAAAAEAAAACAAACmgAAAMAB/////wEAAAACAA==
units_hsplitter_state=AAAA/wAAAAEAAAACAAACAAAAAwAB/////wEAAAABAA==
variables_geometry=AdnQywADAAAAAAH0AAAAlgAABXcAAANRAAAB9AAAAJYAAAV3AAADUQAAAAACAAAAB4AAAAH0AAAAlgAABXcAAANR
variables_vsplitter_state=AAAA/wAAAAEAAAACAAACmgAAAMAB/////wEAAAACAA==
variables_hsplitter_state=AAAA/wAAAAEAAAACAAACAAAAAwAB/////wEAAAABAA==
always_on_top=0
save_mode_on_exit=1
save_definitions_on_exit=1
clear_history_on_exit=0
enable_input_method=0
enable_tooltips=0
display_expression_status=1
expression_status_delay=1000
enable_completion=1
enable_completion2=1
completion_min=1
completion_min2=1
completion_delay=500
separate_keypad_menu_buttons=0
palette=1
color=1
use_custom_result_font=0
use_custom_expression_font=0
use_custom_keypad_font=0
use_custom_application_font=0
replace_expression=0
autocopy_result=0
history_expression_type=0
keypad_type=0
show_keypad=0
hide_numpad=0
show_bases=0
rpn_keys=1
show_all_functions=0
show_all_units=0
show_all_variables=0
use_function_dialog=1
recent_variable=magnetic_constant
recent_variable=electric_constant
spell_out_logical_operators=1
caret_as_xor=0
automatic_digit_grouping=0
close_with_esc=1
copy_ascii=0
copy_ascii_without_units=0
digit_grouping=1
decimal_comma=-1
dot_as_separator=-1
comma_as_separator=0
twos_complement=1
hexadecimal_twos_complement=0
twos_complement_input=0
hexadecimal_twos_complement_input=0
use_unicode_signs=1
lower_case_numbers=0
duodecimal_symbols=0
exp_display=0
imaginary_j=0
base_display=3
auto_update_exchange_rates=7
local_currency_conversion=1
use_binary_prefixes=0
calculate_as_you_type=1
calculate_as_you_type_delay=500
status_in_history=1
autocalc_selection=0
[Mode]
min_deci=0
use_min_deci=0
max_deci=2
use_max_deci=0
precision=10
interval_display=0
min_exp=-1
negative_exponents=0
sort_minus_last=1
number_fraction_format=-1
complex_number_form=0
use_prefixes=1
use_prefixes_for_all_units=0
use_prefixes_for_currencies=0
use_binary_prefixes=0
prefixes_default=1
abbreviate_names=1
all_prefixes_enabled=0
denominator_prefix_enabled=1
place_units_separately=1
auto_post_conversion=3
mixed_units_conversion=3
number_base=10
number_base_expression=10
read_precision=0
assume_denominators_nonzero=1
warn_about_denominators_assumed_nonzero=1
structuring=1
angle_unit=1
functions_enabled=1
variables_enabled=1
calculate_functions=1
calculate_variables=1
variable_units_enabled=1
sync_units=1
unknownvariables_enabled=0
units_enabled=1
allow_complex=1
allow_infinite=1
indicate_infinite_series=0
show_ending_zeroes=1
rounding_mode=0
approximation=-1
concise_uncertainty_input=0
interval_calculation=1
rpn_mode=0
chain_mode=0
limit_implicit_multiplication=0
parsing_mode=0
simplified_percentage=-1
spacious=1
excessive_parenthesis=0
default_assumption_type=4
default_assumption_sign=0
[Plotting]
plot_legend_placement=2
plot_style=0
plot_smoothing=0
plot_display_grid=1
plot_full_border=0
plot_min=0
plot_max=10
plot_step=1
plot_sampling_rate=1001
plot_use_sampling_rate=1
plot_variable=x
plot_rows=0
plot_type=0
plot_color=1
plot_linewidth=2
[History]
history_time=1743752002
history_expression=6+5
history_parse=<span style="color:#AAFFFF">6</span> + <span style="color:#AAFFFF">5</span>
history_result=<span style="color:#AAFFFF">11</span>
history_time=1743752005
history_expression=(6+5)×324
history_parse=(<span style="color:#AAFFFF">6</span> + <span style="color:#AAFFFF">5</span>) × <span style="color:#AAFFFF">324</span>
history_result=<span style="color:#AAFFFF">3564</span>
history_time=1743752006
history_expression=((6+5)×324)143
history_parse=((<span style="color:#AAFFFF">6</span> + <span style="color:#AAFFFF">5</span>) × <span style="color:#AAFFFF">324</span>) <span style="color:#AAFFFF">143</span>
history_result=<span style="color:#AAFFFF">3421</span>
history_time=1743752021
history_expression=plot(((6+5)×324)143)
history_parse=plot(((<span style="color:#AAFFFF">6</span> + <span style="color:#AAFFFF">5</span>) × <span style="color:#AAFFFF">324</span>) <span style="color:#AAFFFF">143</span>)
history_result=<span style="color:#AAFFFF">0</span>
history_time=1743963251
history_expression=3×7
history_parse=<span style="color:#AAFFFF">3</span> × <span style="color:#AAFFFF">7</span>
history_result=<span style="color:#AAFFFF">21</span>
history_time=1743973370
history_expression=plot(1)
history_parse=plot(<span style="color:#AAFFFF">1</span>)
history_result=<span style="color:#AAFFFF">0</span>
history_time=1744283151
history_expression=21×3
history_parse=<span style="color:#AAFFFF">21</span> × <span style="color:#AAFFFF">3</span>
history_result=<span style="color:#AAFFFF">63</span>
history_time=1744888841
history_expression=plot horzcat(d)
history_parse=plot(horzcat(<span style="color:#BBFFBB">day</span>))
history_result=<span style="color:#AAFFFF">0</span>
history_time=1744888846
history_expression=plot horzcat(3d)
history_parse=plot(horzcat(<span style="color:#AAFFFF">3</span><span style="color:#BBFFBB">days</span>))
history_result=<span style="color:#AAFFFF">0</span>
history_time=1744888856
history_expression=3d 8d
history_parse=(<span style="color:#AAFFFF">3</span><span style="color:#BBFFBB">days</span>) (<span style="color:#AAFFFF">8</span><span style="color:#BBFFBB">days</span>)
history_result=<span style="color:#AAFFFF"></span><span style="color:#AAFFFF">5</span><span style="color:#BBFFBB">d</span>
history_time=1744888860
history_expression=3d 8s
history_parse=(<span style="color:#AAFFFF">3</span><span style="color:#BBFFBB">days</span>) (<span style="color:#AAFFFF">8</span><span style="color:#BBFFBB">seconds</span>)
history_result=<span style="color:#AAFFFF">2</span><span style="color:#BBFFBB">d</span> + <span style="color:#AAFFFF">23</span><span style="color:#BBFFBB">h</span> + <span style="color:#AAFFFF">59</span><span style="color:#BBFFBB">min</span> + <span style="color:#AAFFFF">52</span><span style="color:#BBFFBB">s</span>
history_time=1746774540
history_expression=2min
history_parse=<span style="color:#AAFFFF">2</span><span style="color:#BBFFBB">minutes</span>
history_result=<span style="color:#AAFFFF">120</span><span style="color:#BBFFBB">s</span>
history_time=1748979700
history_expression=01h50min
history_parse=<span style="color:#AAFFFF">1</span><span style="color:#BBFFBB">hour</span> × <span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span> × <span style="color:#AAFFFF">5</span><span style="color:#BBFFBB">hours</span> × <span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span> × <span style="color:#AAFFFF">8</span><span style="color:#BBFFBB">hours</span> × <span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span> × <span style="color:#AAFFFF">7</span><span style="color:#BBFFBB">hours</span> × <span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">minutes</span> × <span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span> × <span style="color:#AAFFFF">30</span><span style="color:#BBFFBB">minutes</span> × <span style="color:#AAFFFF">7</span><span style="color:#BBFFBB">hours</span> × <span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span> × <span style="color:#AAFFFF">11</span><span style="color:#BBFFBB">hours</span> × <span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span> × <span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span> × <span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>
history_result=<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">min<sup>16</sup></span>
history_time=1748979733
history_expression=01h50min+
history_parse=((<span style="color:#AAFFFF">1</span><span style="color:#BBFFBB">hour</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">5</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">8</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">7</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">30</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">7</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">11</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>))
history_result=<span style="color:#AAFFFF">2</span><span style="color:#BBFFBB">d</span> + <span style="color:#AAFFFF">2</span><span style="color:#BBFFBB">h</span> + <span style="color:#AAFFFF">30</span><span style="color:#BBFFBB">min</span>
history_time=1748979845
history_expression=24 × 12
history_parse=<span style="color:#AAFFFF">24</span> × <span style="color:#AAFFFF">12</span>
history_result=<span style="color:#AAFFFF">288</span>
history_time=1749131235
history_expression=36/pi
history_parse=<span style="color:#AAFFFF">36</span> <span style="color:#FFFFAA">pi</span>
history_result_approximate=<span style="color:#AAFFFF">11.45915590</span>
history_time=1749739743
history_expression=0.1s/10nF 1/(ln(10.2V/800V)ln(14.2V/800V))
history_parse=(((<span style="color:#AAFFFF">0.1</span><span style="color:#BBFFBB">second</span>) (<span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">nanofarads</span>)) × <span style="color:#AAFFFF">1</span>) (ln(<span style="color:#AAFFFF">1</span> ((<span style="color:#AAFFFF">0.2</span><span style="color:#BBFFBB">volt</span>) (<span style="color:#AAFFFF">800</span><span style="color:#BBFFBB">volts</span>))) ln(<span style="color:#AAFFFF">1</span> ((<span style="color:#AAFFFF">4.2</span><span style="color:#BBFFBB">volts</span>) (<span style="color:#AAFFFF">800</span><span style="color:#BBFFBB">volts</span>))))
history_result_approximate=<span style="color:#AAFFFF">1.994495822</span><span style="color:#BBFFBB">GΩ</span>
history_time=1749739766
history_expression=integral sinx from 0 to pi
history_parse=integrate(sin(<span style="color:#FFFFAA"><i>x</i></span><span style="color:#BBFFBB">radians</span>) × <span style="color:#BBFFBB">rontobyte·meters</span>) × <span style="color:#AAFFFF">0</span>
history_result_approximate=<span style="color:#AAFFFF">0.000000000</span><span style="color:#FFFFAA">π</span><span style="color:#BBFFBB">B·m</span>
history_time=1749740493
history_expression=e^x(^2
history_parse=<span style="color:#FFFFAA">e</span><sup><span style="color:#FFFFAA"><i>x</i></span></sup> × <span style="color:#AAFFFF">2</span>
history_result_approximate=<span style="color:#AAFFFF">2</span> × <span style="color:#AAFFFF">2.718281828</span><sup><span style="color:#FFFFAA"><i>x</i></span></sup>
history_time=1749740495
history_expression=(e^x(^2)
history_parse=<span style="color:#FFFFAA">e</span><sup><span style="color:#FFFFAA"><i>x</i></span></sup> × <span style="color:#AAFFFF">2</span>
history_result_approximate=<span style="color:#AAFFFF">2</span> × <span style="color:#AAFFFF">2.718281828</span><sup><span style="color:#FFFFAA"><i>x</i></span></sup>
history_time=1749740786
history_expression=lim x>0 x^2
history_parse=<span style="color:#BBFFBB">link·</span><span style="color:#BBFFBB">meter</span> × <span style="color:#FFFFAA"><i>x</i></span>
history_result=(<span style="color:#AAFFFF">12573</span> (<span style="color:#AAFFFF">62500</span><span style="color:#FFFFAA"><i>x</i></span>))(<span style="color:#FFFFAA"><i>x</i></span><sup><span style="color:#AAFFFF">2</span></sup><span style="color:#BBFFBB">m<sup>2</sup></span>)
history_time=1749810709
history_expression=1g/cm to kg/m
history_parse=<span style="color:#AAFFFF">1</span><span style="color:#BBFFBB">gram centimeter</span>
history_result=<span style="color:#AAFFFF">0.1</span><span style="color:#BBFFBB">kg m</span>
history_time=1749959212
history_expression=1/2 year
history_parse=(<span style="color:#AAFFFF">1</span> <span style="color:#AAFFFF">2</span>)<span style="color:#BBFFBB">years</span>
history_result=<span style="color:#AAFFFF">0.5</span><span style="color:#BBFFBB">a<sub>j</sub></span>
history_time=1749959216
history_expression=1/2 year to seconds
history_parse=(<span style="color:#AAFFFF">1</span> <span style="color:#AAFFFF">2</span>)<span style="color:#BBFFBB">years</span>
history_result=<span style="color:#AAFFFF">15778800</span><span style="color:#BBFFBB">s</span>
history_time=1749994252
history_expression=inv(1/sqrt(2) matrix(2,2,[1,1,11]))
history_parse=inv((<span style="color:#AAFFFF">1</span> sqrt(<span style="color:#AAFFFF">2</span>)) × matrix(<span style="color:#AAFFFF">2</span>, <span style="color:#AAFFFF">2</span>, [<span style="color:#AAFFFF">1</span>&nbsp; <span style="color:#AAFFFF">1</span>&nbsp; (<span style="color:#AAFFFF">1</span> <span style="color:#AAFFFF">1</span>)]))
history_result=[<span style="color:#AAFFFF">0</span>&nbsp; (<span style="color:#AAFFFF"></span><span style="color:#AAFFFF">1</span> √(<span style="color:#AAFFFF">2</span>)); <span style="color:#AAFFFF">0</span>&nbsp; (<span style="color:#AAFFFF">1</span> √(<span style="color:#AAFFFF">2</span>))] <span style="color:#AAFFFF">0</span>
history_result_approximate=inv(<span style="color:#AAFFFF">0.7071067812</span> × matrix(<span style="color:#AAFFFF">2</span>, <span style="color:#AAFFFF">2</span>, [<span style="color:#AAFFFF">1</span>&nbsp; <span style="color:#AAFFFF">1</span>&nbsp; <span style="color:#AAFFFF">0.000000000</span>]))
history_time=1750100978
history_expression=ε_0
history_parse=<span style="color:#FFFFAA">ElectricConstant</span>
history_result_approximate=<span style="color:#AAFFFF">8.85418782</span><span style="color:#BBFFBB">nF km</span>
history_time=1750101026
history_expression=1/((c^2)×ε_0)
history_parse=<span style="color:#AAFFFF">1</span> (<span style="color:#FFFFAA">SpeedOfLight</span><sup><span style="color:#AAFFFF">2</span></sup> × <span style="color:#FFFFAA">ElectricConstant</span>)
history_result_approximate=<span style="color:#AAFFFF">1.256637061</span><span style="color:#BBFFBB">mH km</span>
history_time=1750101055
history_expression=μ_0
history_parse=<span style="color:#FFFFAA">MagneticConstant</span>
history_result_approximate=<span style="color:#AAFFFF">1.256637061</span><span style="color:#BBFFBB">mH km</span>
history_time=1750547653
history_expression=01h50min+
history_parse=((<span style="color:#AAFFFF">1</span><span style="color:#BBFFBB">hour</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">5</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">8</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">7</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">30</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">7</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">11</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">2</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">3</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">15</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">minutes</span>))
history_result=<span style="color:#AAFFFF">2</span><span style="color:#BBFFBB">d</span> + <span style="color:#AAFFFF">22</span><span style="color:#BBFFBB">h</span> + <span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">min</span>
history_time=1752824632
history_expression=0.988c × 31.6 us
history_parse=(<span style="color:#AAFFFF">0.988</span> × <span style="color:#FFFFAA">SpeedOfLight</span>) × (<span style="color:#AAFFFF">31.6</span><span style="color:#BBFFBB">microseconds</span>)
history_result_approximate=<span style="color:#AAFFFF">9.359760373</span><span style="color:#BBFFBB">km</span>
history_time=1752824799
history_expression=0.998c × 2 us
history_parse=(<span style="color:#AAFFFF">0.998</span> × <span style="color:#FFFFAA">SpeedOfLight</span>) × (<span style="color:#AAFFFF">2</span><span style="color:#BBFFBB">microseconds</span>)
history_result_approximate=<span style="color:#AAFFFF">598.3857462</span><span style="color:#BBFFBB">m</span>
history_time=1754678052
history_expression=90kB × 10000
history_parse=(<span style="color:#AAFFFF">90</span><span style="color:#BBFFBB">kilobytes</span>) × <span style="color:#AAFFFF">10000</span>
history_result=<span style="color:#AAFFFF">900</span><span style="color:#BBFFBB">MB</span>
history_time=1754692078
history_expression=01h50min+
history_parse=((<span style="color:#AAFFFF">1</span><span style="color:#BBFFBB">hour</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">5</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">8</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">7</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">30</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">7</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">11</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">2</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">3</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">15</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">1</span><span style="color:#BBFFBB">hour</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">6</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">6</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">6</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">30</span><span style="color:#BBFFBB">minutes</span>))
history_result=<span style="color:#AAFFFF">3</span><span style="color:#BBFFBB">d</span> + <span style="color:#AAFFFF">23</span><span style="color:#BBFFBB">h</span> + <span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">min</span>
history_time=1754692152
history_expression=01h50min+
history_parse=((<span style="color:#AAFFFF">1</span><span style="color:#BBFFBB">hour</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">5</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">8</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">7</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">30</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">7</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">11</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">2</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">3</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">15</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">1</span><span style="color:#BBFFBB">hour</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">6</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">6</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">6</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">30</span><span style="color:#BBFFBB">minutes</span>)) + (<span style="color:#BBFFBB">inch·hour</span>)
history_result=<span style="color:#AAFFFF">60</span><span style="color:#BBFFBB">in·min</span> + <span style="color:#AAFFFF">5720</span><span style="color:#BBFFBB">min</span>
history_time=1754692158
history_expression=01h50min+
history_parse=((<span style="color:#AAFFFF">1</span><span style="color:#BBFFBB">hour</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">5</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">8</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">7</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">30</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">7</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">11</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">2</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">3</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">15</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">1</span><span style="color:#BBFFBB">hour</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">6</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">6</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">6</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">30</span><span style="color:#BBFFBB">minutes</span>))
history_result=<span style="color:#AAFFFF">95</span><span style="color:#BBFFBB">h</span> + <span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">min</span>
history_time=1754692168
history_expression=01h50min+
history_parse=((<span style="color:#AAFFFF">1</span><span style="color:#BBFFBB">hour</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">5</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">8</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">7</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">30</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">7</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">11</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">2</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">3</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">15</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">1</span><span style="color:#BBFFBB">hour</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">6</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">6</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">6</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">30</span><span style="color:#BBFFBB">minutes</span>))
history_result_approximate=<span style="color:#AAFFFF">4</span> × <span style="color:#AAFFFF">23.83333333</span><span style="color:#BBFFBB">h</span>
history_time=1754692175
history_expression=01h50min+
history_parse=((<span style="color:#AAFFFF">1</span><span style="color:#BBFFBB">hour</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">5</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">8</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">7</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">30</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">7</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">11</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">2</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">3</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">15</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">1</span><span style="color:#BBFFBB">hour</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">6</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">6</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">6</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">30</span><span style="color:#BBFFBB">minutes</span>))
history_result=<span style="color:#AAFFFF">95</span><span style="color:#BBFFBB">h</span> + <span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">min</span>
history_time=1754692280
history_expression=01h50min+
history_parse=((<span style="color:#AAFFFF">1</span><span style="color:#BBFFBB">hour</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">5</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">8</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">7</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">30</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">7</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">11</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">50</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">3</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">3</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">15</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">10</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">1</span><span style="color:#BBFFBB">hour</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">6</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">0</span><span style="color:#BBFFBB">minute</span>)) + ((<span style="color:#AAFFFF">6</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">minutes</span>)) + ((<span style="color:#AAFFFF">6</span><span style="color:#BBFFBB">hours</span>) + (<span style="color:#AAFFFF">30</span><span style="color:#BBFFBB">minutes</span>))
history_result=<span style="color:#AAFFFF">4</span><span style="color:#BBFFBB">d</span> + <span style="color:#AAFFFF">20</span><span style="color:#BBFFBB">min</span>
history_time=1756493228
history_expression=1 × 12 × 20
history_parse=<span style="color:#AAFFFF">1</span> × <span style="color:#AAFFFF">12</span> × <span style="color:#AAFFFF">20</span>
history_result=<span style="color:#AAFFFF">240</span>
history_time=1756493458
history_expression=2×12
history_parse=<span style="color:#AAFFFF">2</span> × <span style="color:#AAFFFF">12</span>
history_result=<span style="color:#AAFFFF">24</span>
expression_history=2×12
expression_history=1 × 12 × 20
expression_history=01h50min+ 05h00min+ 08h20min+ 07h10min+ 04h30min+ 07h50min+ 11h50min+ 04h00min+ 03h00min+ 03h10min+ 15h10min+ 01h20min+ 04h20min+ 06h00min+ 06h20min+ 06h30min+
expression_history=01h50min+ 05h00min+ 08h20min+ 07h10min+ 04h30min+ 07h50min+ 11h50min+ 04h00min+ 02h00min+ 03h10min+ 15h10min+ 01h20min+ 04h20min+ 06h00min+ 06h20min+ 06h30min+ to h
expression_history=01h50min+ 05h00min+ 08h20min+ 07h10min+ 04h30min+ 07h50min+ 11h50min+ 04h00min+ 02h00min+ 03h10min+ 15h10min+ 01h20min+ 04h20min+ 06h00min+ 06h20min+ 06h30min+ to h × 4
expression_history=01h50min+ 05h00min+ 08h20min+ 07h10min+ 04h30min+ 07h50min+ 11h50min+ 04h00min+ 02h00min+ 03h10min+ 15h10min+ 01h20min+ 04h20min+ 06h00min+ 06h20min+ 06h30min+ in h
expression_history=01h50min+ 05h00min+ 08h20min+ 07h10min+ 04h30min+ 07h50min+ 11h50min+ 04h00min+ 02h00min+ 03h10min+ 15h10min+ 01h20min+ 04h20min+ 06h00min+ 06h20min+ 06h30min+
expression_history=90kB × 10000
expression_history=0.998c × 2 us
expression_history=0.988c × 31.6 us
expression_history=01h50min+ 05h00min+ 08h20min+ 07h10min+ 04h30min+ 07h50min+ 11h50min+ 04h00min+ 02h00min+ 03h10min+ 15h10min
expression_history=01h50min+ 05h00min+ 08h20min+ 07h10min+ 04h30min+ 07h50min+ 11h50min+ 04h00min+ 02h00min+ 03h10min+ 15h10min+
expression_history=μ_0
expression_history=1/((c^2)×ε_0)
expression_history=ε_0
expression_history=inv(1/sqrt(2) matrix(2,2,[1,1,11]))
expression_history=1/2 year to seconds
expression_history=1/2 year
expression_history=1g/cm to kg/m
expression_history=lim x>0 x^2
expression_history=(e^x(^2)
expression_history=e^x(^2
expression_history=integral sinx from 0 to pi
expression_history=0.1s/10nF 1/(ln(10.2V/800V)ln(14.2V/800V))
expression_history=36/pi
expression_history=24 × 12
expression_history=01h50min+ 05h00min+ 08h20min+ 07h10min+ 04h30min+ 07h50min+ 11h50min+ 04h00min+
expression_history=01h50min 05h00min 08h20min 07h10min 04h30min 07h50min 11h50min 04h00min
expression_history=2min
expression_history=3d 8s
expression_history=3d 8d
expression_history=plot horzcat(3d)
expression_history=plot horzcat(d)
expression_history=21×3
expression_history=plot(1)
expression_history=3×7
expression_history=plot(((6+5)×324)143)
expression_history=((6+5)×324)143
expression_history=(6+5)×324
expression_history=6+5

View File

@@ -0,0 +1,62 @@
# This is a sample commands.py. You can add your own commands here.
#
# Please refer to commands_full.py for all the default commands and a complete
# documentation. Do NOT add them all here, or you may end up with defunct
# commands when upgrading ranger.
# A simple command for demonstration purposes follows.
# -----------------------------------------------------------------------------
from __future__ import (absolute_import, division, print_function)
# You can import any python module as needed.
import os
# You always need to import ranger.api.commands here to get the Command class:
from ranger.api.commands import Command
# Any class that is a subclass of "Command" will be integrated into ranger as a
# command. Try typing ":my_edit<ENTER>" in ranger!
class my_edit(Command):
# The so-called doc-string of the class will be visible in the built-in
# help that is accessible by typing "?c" inside ranger.
""":my_edit <filename>
A sample command for demonstration purposes that opens a file in an editor.
"""
# The execute method is called when you run this command in ranger.
def execute(self):
# self.arg(1) is the first (space-separated) argument to the function.
# This way you can write ":my_edit somefilename<ENTER>".
if self.arg(1):
# self.rest(1) contains self.arg(1) and everything that follows
target_filename = self.rest(1)
else:
# self.fm is a ranger.core.filemanager.FileManager object and gives
# you access to internals of ranger.
# self.fm.thisfile is a ranger.container.file.File object and is a
# reference to the currently selected file.
target_filename = self.fm.thisfile.path
# This is a generic function to print text in ranger.
self.fm.notify("Let's edit the file " + target_filename + "!")
# Using bad=True in fm.notify allows you to print error messages:
if not os.path.exists(target_filename):
self.fm.notify("The given file does not exist!", bad=True)
return
# This executes a function from ranger.core.actions, a module with a
# variety of subroutines that can help you construct commands.
# Check out the source, or run "pydoc ranger.core.actions" for a list.
self.fm.edit_file(target_filename)
# The tab method is called when you press tab, and should return a list of
# suggestions that the user will tab through.
# tabnum is 1 for <TAB> and -1 for <S-TAB> by default
def tab(self, tabnum):
# This is a generic tab-completion function that iterates through the
# content of the current directory.
return self._tab_directory_content()

View File

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,780 @@
# ===================================================================
# This file contains the default startup commands for ranger.
# To change them, it is recommended to create either /etc/ranger/rc.conf
# (system-wide) or ~/.config/ranger/rc.conf (per user) and add your custom
# commands there.
#
# If you copy this whole file there, you may want to set the environment
# variable RANGER_LOAD_DEFAULT_RC to FALSE to avoid loading it twice.
#
# The purpose of this file is mainly to define keybindings and settings.
# For running more complex python code, please create a plugin in "plugins/" or
# a command in "commands.py".
#
# Each line is a command that will be run before the user interface
# is initialized. As a result, you can not use commands which rely
# on the UI such as :delete or :mark.
# ===================================================================
# ===================================================================
# == Options
# ===================================================================
# Which viewmode should be used? Possible values are:
# miller: Use miller columns which show multiple levels of the hierarchy
# multipane: Midnight-commander like multipane view showing all tabs next
# to each other
set viewmode miller
# How many columns are there, and what are their relative widths?
set column_ratios 1,3,4
# Which files should be hidden? (regular expression)
set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$
# Show hidden files? You can toggle this by typing 'zh'
set show_hidden false
# Ask for a confirmation when running the "delete" command?
# Valid values are "always", "never", "multiple" (default)
# With "multiple", ranger will ask only if you delete multiple files at once.
set confirm_on_delete multiple
# Use non-default path for file preview script?
# ranger ships with scope.sh, a script that calls external programs (see
# README.md for dependencies) to preview images, archives, etc.
set preview_script /nix/store/dbfjcgvhcff9dqjg9aq8xqx1qpwdjgng-ranger-1.9.3-unstable-2023-08-23/share/doc/ranger/config/scope.sh
# Use the external preview script or display simple plain text or image previews?
set use_preview_script true
# Automatically count files in the directory, even before entering them?
set automatically_count_files true
# Open all images in this directory when running certain image viewers
# like feh or sxiv? You can still open selected files by marking them.
set open_all_images true
# Be aware of version control systems and display information.
set vcs_aware false
# State of the four backends git, hg, bzr, svn. The possible states are
# disabled, local (only show local info), enabled (show local and remote
# information).
set vcs_backend_git enabled
set vcs_backend_hg disabled
set vcs_backend_bzr disabled
set vcs_backend_svn disabled
# Truncate the long commit messages to this length when shown in the statusbar.
set vcs_msg_length 50
# Use one of the supported image preview protocols
set preview_images true
# Set the preview image method. Supported methods:
#
# * w3m (default):
# Preview images in full color with the external command "w3mimgpreview"?
# This requires the console web browser "w3m" and a supported terminal.
# It has been successfully tested with "xterm" and "urxvt" without tmux.
#
# * iterm2:
# Preview images in full color using iTerm2 image previews
# (http://iterm2.com/images.html). This requires using iTerm2 compiled
# with image preview support.
#
# This feature relies on the dimensions of the terminal's font. By default, a
# width of 8 and height of 11 are used. To use other values, set the options
# iterm2_font_width and iterm2_font_height to the desired values.
#
# * terminology:
# Previews images in full color in the terminology terminal emulator.
# Supports a wide variety of formats, even vector graphics like svg.
#
# * sixel:
# Previews images using the SIXEL protocol. This requires "imagemagick".
#
# * urxvt:
# Preview images in full color using urxvt image backgrounds. This
# requires using urxvt compiled with pixbuf support.
#
# * urxvt-full:
# The same as urxvt but utilizing not only the preview pane but the
# whole terminal window.
#
# * kitty:
# Preview images in full color using kitty image protocol.
# Requires python PIL or pillow library.
# If ranger does not share the local filesystem with kitty
# the transfer method is changed to encode the whole image;
# while slower, this allows remote previews,
# for example during an ssh session.
# Tmux is unsupported.
#
# * ueberzug:
# Preview images in full color with the external command "ueberzug".
# Images are shown by using a child window.
# Only for users who run X11 in GNU/Linux.
set preview_images_method w3m
# Delay in seconds before displaying an image with the w3m method.
# Increase it in case of experiencing display corruption.
set w3m_delay 0.02
# Manually adjust the w3mimg offset when using a terminal which needs this
set w3m_offset 0
# Default iTerm2 font size (see: preview_images_method: iterm2)
set iterm2_font_width 8
set iterm2_font_height 11
# Dithering mode for SIXEL previews. One of:
# None, Riemersma, FloydSteinberg
# (see: preview_images_method: sixel)
set sixel_dithering FloydSteinberg
# Use a unicode "..." character to mark cut-off filenames?
set unicode_ellipsis false
# BIDI support - try to properly display file names in RTL languages (Hebrew, Arabic).
# Requires the python-bidi pip package
set bidi_support false
# Show dotfiles in the bookmark preview box?
set show_hidden_bookmarks true
# Which colorscheme to use? These colorschemes are available by default:
# default, jungle, snow, solarized
set colorscheme default
# Preview files on the rightmost column?
# And collapse (shrink) the last column if there is nothing to preview?
set preview_files true
set preview_directories true
set collapse_preview true
# Wrap long lines in plain text previews?
set wrap_plaintext_previews false
# Save the console history on exit?
set save_console_history true
# Draw the status bar on top of the browser window (default: bottom)
set status_bar_on_top false
# Draw a progress bar in the status bar which displays the average state of all
# currently running tasks which support progress bars?
set draw_progress_bar_in_status_bar true
# Draw borders around columns? (separators, outline, both, or none)
# Separators are vertical lines between columns.
# Outline draws a box around all the columns.
# Both combines the two.
set draw_borders none
# Display the directory name in tabs?
set dirname_in_tabs false
# Enable the mouse support?
set mouse_enabled true
# Display the file size in the main column or status bar?
set display_size_in_main_column true
set display_size_in_status_bar true
# Display the free disk space in the status bar?
set display_free_space_in_status_bar true
# Display files tags in all columns or only in main column?
set display_tags_in_all_columns true
# Set a title for the window? Updates both `WM_NAME` and `WM_ICON_NAME`
set update_title false
# Set the tmux/screen window-name to "ranger"?
set update_tmux_title true
# Shorten the title if it gets long? The number defines how many
# directories are displayed at once, 0 turns off this feature.
set shorten_title 3
# Show hostname in titlebar?
set hostname_in_titlebar true
# Abbreviate $HOME with ~ in the titlebar (first line) of ranger?
set tilde_in_titlebar false
# How many directory-changes or console-commands should be kept in history?
set max_history_size 20
set max_console_history_size 50
# Try to keep so much space between the top/bottom border when scrolling:
set scroll_offset 8
# Flush the input after each key hit? (Noticeable when ranger lags)
set flushinput true
# Padding on the right when there's no preview?
# This allows you to click into the space to run the file.
set padding_right true
# Save bookmarks (used with mX and `X) instantly?
# This helps to synchronize bookmarks between multiple ranger
# instances but leads to *slight* performance loss.
# When false, bookmarks are saved when ranger is exited.
set autosave_bookmarks true
# Save the "`" bookmark to disk. This can be used to switch to the last
# directory by typing "``".
set save_backtick_bookmark true
# You can display the "real" cumulative size of directories by using the
# command :get_cumulative_size or typing "dc". The size is expensive to
# calculate and will not be updated automatically. You can choose
# to update it automatically though by turning on this option:
set autoupdate_cumulative_size false
# Turning this on makes sense for screen readers:
set show_cursor false
# One of: size, natural, basename, atime, ctime, mtime, type, random
set sort natural
# Additional sorting options
set sort_reverse false
set sort_case_insensitive true
set sort_directories_first true
set sort_unicode false
# Enable this if key combinations with the Alt Key don't work for you.
# (Especially on xterm)
set xterm_alt_key false
# Whether to include bookmarks in cd command
set cd_bookmarks true
# Changes case sensitivity for the cd command tab completion
set cd_tab_case sensitive
# Use fuzzy tab completion with the "cd" command. For example,
# ":cd /u/lo/b<tab>" expands to ":cd /usr/local/bin".
set cd_tab_fuzzy false
# Avoid previewing files larger than this size, in bytes. Use a value of 0 to
# disable this feature.
set preview_max_size 0
# The key hint lists up to this size have their sublists expanded.
# Otherwise the submaps are replaced with "...".
set hint_collapse_threshold 10
# Add the highlighted file to the path in the titlebar
set show_selection_in_titlebar true
# The delay that ranger idly waits for user input, in milliseconds, with a
# resolution of 100ms. Lower delay reduces lag between directory updates but
# increases CPU load.
set idle_delay 2000
# When the metadata manager module looks for metadata, should it only look for
# a ".metadata.json" file in the current directory, or do a deep search and
# check all directories above the current one as well?
set metadata_deep_search false
# Clear all existing filters when leaving a directory
set clear_filters_on_dir_change false
# Disable displaying line numbers in main column.
# Possible values: false, absolute, relative.
set line_numbers false
# When line_numbers=relative show the absolute line number in the
# current line.
set relative_current_zero false
# Start line numbers from 1 instead of 0
set one_indexed false
# Save tabs on exit
set save_tabs_on_exit false
# Remove tabs with unavailable paths on startup
set filter_dead_tabs_on_startup false
# Enable scroll wrapping - moving down while on the last item will wrap around to
# the top and vice versa.
set wrap_scroll false
# Set the global_inode_type_filter to nothing. Possible options: d, f and l for
# directories, files and symlinks respectively.
set global_inode_type_filter
# This setting allows to freeze the list of files to save I/O bandwidth. It
# should be 'false' during start-up, but you can toggle it by pressing F.
set freeze_files false
# Print file sizes in bytes instead of the default human-readable format.
set size_in_bytes false
# Shows large filesizes with binary unit prefixes - kibibytes=Ki, mebibytes=Mi etc.
# instead of the default decimal prefixes - kilobytes=k, megabytes=M etc.
# Each binary unit prefix signifies 1024=2^10 of the preceding unit prefix (there are
# 1024 KiB in 1 MiB) as opposed to decimal unit prefixes which signify a
# 1000 of the preceding unit prefix (there are 1000 kB in 1 MB)
# https://en.wikipedia.org/wiki/Binary_prefix
set binary_size_prefix false
# Warn at startup if RANGER_LEVEL env var is greater than 0, in other words
# give a warning when you nest ranger in a subshell started by ranger.
# Special value "error" makes the warning more visible.
set nested_ranger_warning true
# ===================================================================
# == Local Options
# ===================================================================
# You can set local options that only affect a single directory.
# Examples:
# setlocal path=~/downloads sort mtime
# ===================================================================
# == Command Aliases in the Console
# ===================================================================
alias e edit
alias q quit
alias q! quit!
alias qa quitall
alias qa! quitall!
alias qall quitall
alias qall! quitall!
alias setl setlocal
alias filter scout -prts
alias hide scout -prtsv
alias find scout -aets
alias mark scout -mr
alias unmark scout -Mr
alias search scout -rs
alias search_inc scout -rts
alias travel scout -aefklst
# ===================================================================
# == Define keys for the browser
# ===================================================================
# Basic
map Q quitall
map q quit
copymap q ZZ ZQ
map R reload_cwd
map F set freeze_files!
map <C-r> reset
map <C-l> redraw_window
map <C-c> abort
map <esc> change_mode normal
map ~ set viewmode!
map i display_file
map <A-j> scroll_preview 1
map <A-k> scroll_preview -1
map ? help
map W display_log
map w taskview_open
map S shell $SHELL
map : console
map ; console
map ! console shell%space
map @ console -p6 shell %%s
map # console shell -p%space
map s console shell%space
map r chain draw_possible_programs; console open_with%space
map f console find%space
map cd console cd%space
map <C-p> chain console; eval fm.ui.console.history_move(-1)
# Change the line mode
map Mf linemode filename
map Mi linemode fileinfo
map Mm linemode mtime
map Mh linemode humanreadablemtime
map Mp linemode permissions
map Ms linemode sizemtime
map MH linemode sizehumanreadablemtime
map Mt linemode metatitle
# Tagging / Marking
map t tag_toggle
map ut tag_remove
map "<any> tag_toggle tag=%any
map <Space> mark_files toggle=True
map v mark_files all=True toggle=True
map uv mark_files all=True val=False
map V toggle_visual_mode
map uV toggle_visual_mode reverse=True
# For the nostalgics: Midnight Commander bindings
map <F1> help
map <F2> rename_append
map <F3> display_file
map <F4> edit
map <F5> copy
map <F6> cut
map <F7> console mkdir%space
map <F8> console delete
#map <F8> console trash
map <F10> exit
# In case you work on a keyboard with dvorak layout
map <UP> move up=1
map <DOWN> move down=1
map <LEFT> move left=1
map <RIGHT> move right=1
map <HOME> move to=0
map <END> move to=-1
map <PAGEDOWN> move down=1 pages=True
map <PAGEUP> move up=1 pages=True
map <CR> move right=1
#map <DELETE> console delete
map <INSERT> console touch%space
# VIM-like
copymap <UP> k
copymap <DOWN> j
copymap <LEFT> h
copymap <RIGHT> l
copymap <HOME> gg
copymap <END> G
copymap <PAGEDOWN> <C-F>
copymap <PAGEUP> <C-B>
map J move down=0.5 pages=True
map K move up=0.5 pages=True
copymap J <C-D>
copymap K <C-U>
# Jumping around
map H history_go -1
map L history_go 1
map ] move_parent 1
map [ move_parent -1
map } traverse
map { traverse_backwards
map ) jump_non
map gh cd ~
map ge cd /etc
map gu cd /usr
map gd cd /dev
map gl cd -r .
map gL cd -r %f
map go cd /opt
map gv cd /var
map gm cd /media
map gi eval fm.cd('/run/media/' + os.getenv('USER'))
map gM cd /mnt
map gs cd /srv
map gp cd /tmp
map gr cd /
map gR eval fm.cd(ranger.RANGERDIR)
map g/ cd /
map g? cd /nix/store/dbfjcgvhcff9dqjg9aq8xqx1qpwdjgng-ranger-1.9.3-unstable-2023-08-23/share/doc/ranger
# External Programs
map E edit
map du shell -p du -d 1 -h "$(2>/dev/null >&2 du --apparent-size /dev/null && printf '%s\n' --apparent-size || printf '%s\n' --)"
map dU shell -p du -d 1 -h "$(2>/dev/null >&2 du --apparent-size /dev/null && printf '%s\n' --apparent-size || printf '%s\n' --)" | sort -rh
map yp yank path
map yd yank dir
map yn yank name
map y. yank name_without_extension
# Filesystem Operations
map = chmod
map cw console rename%space
map a rename_append
map A eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"))
map I eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"), position=7)
map pp paste
map po paste overwrite=True
map pP paste append=True
map pO paste overwrite=True append=True
map pl paste_symlink relative=False
map pL paste_symlink relative=True
map phl paste_hardlink
map pht paste_hardlinked_subtree
map pd console paste dest=
map p`<any> paste dest=%any_path
map p'<any> paste dest=%any_path
map dD console delete
map dT console trash
map dd cut
map ud uncut
map da cut mode=add
map dr cut mode=remove
map dt cut mode=toggle
map yy copy
map uy uncut
map ya copy mode=add
map yr copy mode=remove
map yt copy mode=toggle
# Temporary workarounds
map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier)
map dG eval fm.cut(dirarg=dict(to=-1), narg=quantifier)
map dj eval fm.cut(dirarg=dict(down=1), narg=quantifier)
map dk eval fm.cut(dirarg=dict(up=1), narg=quantifier)
map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier)
map yG eval fm.copy(dirarg=dict(to=-1), narg=quantifier)
map yj eval fm.copy(dirarg=dict(down=1), narg=quantifier)
map yk eval fm.copy(dirarg=dict(up=1), narg=quantifier)
# Searching
map / console search%space
map n search_next
map N search_next forward=False
map ct search_next order=tag
map cs search_next order=size
map ci search_next order=mimetype
map cc search_next order=ctime
map cm search_next order=mtime
map ca search_next order=atime
# Tabs
map <C-n> tab_new
map <C-w> tab_close
map <TAB> tab_move 1
map <S-TAB> tab_move -1
map <A-Right> tab_move 1
map <A-Left> tab_move -1
map gt tab_move 1
map gT tab_move -1
map gn tab_new
map gc tab_close
map uq tab_restore
map <a-1> tab_open 1
map <a-2> tab_open 2
map <a-3> tab_open 3
map <a-4> tab_open 4
map <a-5> tab_open 5
map <a-6> tab_open 6
map <a-7> tab_open 7
map <a-8> tab_open 8
map <a-9> tab_open 9
map <a-r> tab_shift 1
map <a-l> tab_shift -1
# Sorting
map or set sort_reverse!
map oz set sort=random
map os chain set sort=size; set sort_reverse=False
map ob chain set sort=basename; set sort_reverse=False
map on chain set sort=natural; set sort_reverse=False
map om chain set sort=mtime; set sort_reverse=False
map oc chain set sort=ctime; set sort_reverse=False
map oa chain set sort=atime; set sort_reverse=False
map ot chain set sort=type; set sort_reverse=False
map oe chain set sort=extension; set sort_reverse=False
map oS chain set sort=size; set sort_reverse=True
map oB chain set sort=basename; set sort_reverse=True
map oN chain set sort=natural; set sort_reverse=True
map oM chain set sort=mtime; set sort_reverse=True
map oC chain set sort=ctime; set sort_reverse=True
map oA chain set sort=atime; set sort_reverse=True
map oT chain set sort=type; set sort_reverse=True
map oE chain set sort=extension; set sort_reverse=True
map dc get_cumulative_size
# Settings
map zc set collapse_preview!
map zd set sort_directories_first!
map zh set show_hidden!
map <C-h> set show_hidden!
copymap <C-h> <backspace>
copymap <backspace> <backspace2>
map zI set flushinput!
map zi set preview_images!
map zm set mouse_enabled!
map zp set preview_files!
map zP set preview_directories!
map zs set sort_case_insensitive!
map zu set autoupdate_cumulative_size!
map zv set use_preview_script!
map zf console filter%space
copymap zf zz
# Filter stack
map .d filter_stack add type d
map .f filter_stack add type f
map .l filter_stack add type l
map .m console filter_stack add mime%space
map .n console filter_stack add name%space
map .# console filter_stack add hash%space
map ." filter_stack add duplicate
map .' filter_stack add unique
map .| filter_stack add or
map .& filter_stack add and
map .! filter_stack add not
map .r filter_stack rotate
map .c filter_stack clear
map .* filter_stack decompose
map .p filter_stack pop
map .. filter_stack show
# Bookmarks
map `<any> enter_bookmark %any
map '<any> enter_bookmark %any
map m<any> set_bookmark %any
map um<any> unset_bookmark %any
map m<bg> draw_bookmarks
copymap m<bg> um<bg> `<bg> '<bg> p`<bg> p'<bg>
# Generate all the chmod bindings with some python help:
eval for arg in "rwxXst": cmd("map +u{0} shell -f chmod u+{0} %s".format(arg))
eval for arg in "rwxXst": cmd("map +g{0} shell -f chmod g+{0} %s".format(arg))
eval for arg in "rwxXst": cmd("map +o{0} shell -f chmod o+{0} %s".format(arg))
eval for arg in "rwxXst": cmd("map +a{0} shell -f chmod a+{0} %s".format(arg))
eval for arg in "rwxXst": cmd("map +{0} shell -f chmod +{0} %s".format(arg))
eval for arg in "rwxXst": cmd("map -u{0} shell -f chmod u-{0} %s".format(arg))
eval for arg in "rwxXst": cmd("map -g{0} shell -f chmod g-{0} %s".format(arg))
eval for arg in "rwxXst": cmd("map -o{0} shell -f chmod o-{0} %s".format(arg))
eval for arg in "rwxXst": cmd("map -a{0} shell -f chmod a-{0} %s".format(arg))
eval for arg in "rwxXst": cmd("map -{0} shell -f chmod -{0} %s".format(arg))
# ===================================================================
# == Define keys for the console
# ===================================================================
# Note: Unmapped keys are passed directly to the console.
# Basic
cmap <tab> eval fm.ui.console.tab()
cmap <s-tab> eval fm.ui.console.tab(-1)
cmap <ESC> eval fm.ui.console.close()
cmap <CR> eval fm.ui.console.execute()
cmap <C-l> redraw_window
copycmap <ESC> <C-c>
copycmap <CR> <C-j>
# Move around
cmap <up> eval fm.ui.console.history_move(-1)
cmap <down> eval fm.ui.console.history_move(1)
cmap <left> eval fm.ui.console.move(left=1)
cmap <right> eval fm.ui.console.move(right=1)
cmap <home> eval fm.ui.console.move(right=0, absolute=True)
cmap <end> eval fm.ui.console.move(right=-1, absolute=True)
cmap <a-b> eval fm.ui.console.move_word(left=1)
cmap <a-f> eval fm.ui.console.move_word(right=1)
copycmap <a-b> <a-left>
copycmap <a-f> <a-right>
# Line Editing
cmap <backspace> eval fm.ui.console.delete(-1)
cmap <delete> eval fm.ui.console.delete(0)
cmap <C-w> eval fm.ui.console.delete_word()
cmap <A-d> eval fm.ui.console.delete_word(backward=False)
cmap <C-k> eval fm.ui.console.delete_rest(1)
cmap <C-u> eval fm.ui.console.delete_rest(-1)
cmap <C-y> eval fm.ui.console.paste()
cmap <C-t> eval fm.ui.console.transpose_chars()
cmap <A-t> eval fm.ui.console.transpose_words()
# And of course the emacs way
copycmap <ESC> <C-g>
copycmap <up> <C-p>
copycmap <down> <C-n>
copycmap <left> <C-b>
copycmap <right> <C-f>
copycmap <home> <C-a>
copycmap <end> <C-e>
copycmap <delete> <C-d>
copycmap <backspace> <C-h>
# Note: There are multiple ways to express backspaces. <backspace> (code 263)
# and <backspace2> (code 127). To be sure, use both.
copycmap <backspace> <backspace2>
# This special expression allows typing in numerals:
cmap <allow_quantifiers> false
# ===================================================================
# == Pager Keybindings
# ===================================================================
# Movement
pmap <down> pager_move down=1
pmap <up> pager_move up=1
pmap <left> pager_move left=4
pmap <right> pager_move right=4
pmap <home> pager_move to=0
pmap <end> pager_move to=-1
pmap <pagedown> pager_move down=1.0 pages=True
pmap <pageup> pager_move up=1.0 pages=True
pmap <C-d> pager_move down=0.5 pages=True
pmap <C-u> pager_move up=0.5 pages=True
copypmap <UP> k <C-p>
copypmap <DOWN> j <C-n> <CR>
copypmap <LEFT> h
copypmap <RIGHT> l
copypmap <HOME> g
copypmap <END> G
copypmap <C-d> d
copypmap <C-u> u
copypmap <PAGEDOWN> n f <C-F> <Space>
copypmap <PAGEUP> p b <C-B>
# Basic
pmap <C-l> redraw_window
pmap <ESC> pager_close
copypmap <ESC> q Q i <F3>
pmap E edit_file
# ===================================================================
# == Taskview Keybindings
# ===================================================================
# Movement
tmap <up> taskview_move up=1
tmap <down> taskview_move down=1
tmap <home> taskview_move to=0
tmap <end> taskview_move to=-1
tmap <pagedown> taskview_move down=1.0 pages=True
tmap <pageup> taskview_move up=1.0 pages=True
tmap <C-d> taskview_move down=0.5 pages=True
tmap <C-u> taskview_move up=0.5 pages=True
copytmap <UP> k <C-p>
copytmap <DOWN> j <C-n> <CR>
copytmap <HOME> g
copytmap <END> G
copytmap <C-u> u
copytmap <PAGEDOWN> n f <C-F> <Space>
copytmap <PAGEUP> p b <C-B>
# Changing priority and deleting tasks
tmap J eval -q fm.ui.taskview.task_move(-1)
tmap K eval -q fm.ui.taskview.task_move(0)
tmap dd eval -q fm.ui.taskview.task_remove()
tmap <pagedown> eval -q fm.ui.taskview.task_move(-1)
tmap <pageup> eval -q fm.ui.taskview.task_move(0)
tmap <delete> eval -q fm.ui.taskview.task_remove()
# Basic
tmap <C-l> redraw_window
tmap <ESC> taskview_close
copytmap <ESC> q Q w <C-c>

View File

@@ -0,0 +1,301 @@
# vim: ft=cfg
#
# This is the configuration file of "rifle", ranger's file executor/opener.
# Each line consists of conditions and a command. For each line the conditions
# are checked and if they are met, the respective command is run.
#
# Syntax:
# <condition1> , <condition2> , ... = command
#
# The command can contain these environment variables:
# $1-$9 | The n-th selected file
# $@ | All selected files
#
# If you use the special command "ask", rifle will ask you what program to run.
#
# Prefixing a condition with "!" will negate its result.
# These conditions are currently supported:
# match <regexp> | The regexp matches $1
# ext <regexp> | The regexp matches the extension of $1
# mime <regexp> | The regexp matches the mime type of $1
# name <regexp> | The regexp matches the basename of $1
# path <regexp> | The regexp matches the absolute path of $1
# has <program> | The program is installed (i.e. located in $PATH)
# env <variable> | The environment variable "variable" is non-empty
# file | $1 is a file
# directory | $1 is a directory
# number <n> | change the number of this command to n
# terminal | stdin, stderr and stdout are connected to a terminal
# X | A graphical environment is available (darwin, Xorg, or Wayland)
#
# There are also pseudo-conditions which have a "side effect":
# flag <flags> | Change how the program is run. See below.
# label <label> | Assign a label or name to the command so it can
# | be started with :open_with <label> in ranger
# | or `rifle -p <label>` in the standalone executable.
# else | Always true.
#
# Flags are single characters which slightly transform the command:
# f | Fork the program, make it run in the background.
# | New command = setsid $command >& /dev/null &
# r | Execute the command with root permissions
# | New command = sudo $command
# t | Run the program in a new terminal. If $TERMCMD is not defined,
# | rifle will attempt to extract it from $TERM.
# | New command = $TERMCMD -e $command
# Note: The "New command" serves only as an illustration, the exact
# implementation may differ.
# Note: When using rifle in ranger, there is an additional flag "c" for
# only running the current file even if you have marked multiple files.
#-------------------------------------------
# Websites
#-------------------------------------------
# Rarely installed browsers get higher priority; It is assumed that if you
# install a rare browser, you probably use it. Firefox/konqueror/w3m on the
# other hand are often only installed as fallback browsers.
ext x?html?, has surf, X, flag f = surf -- file://"$1"
ext x?html?, has vimprobable, X, flag f = vimprobable -- "$@"
ext x?html?, has vimprobable2, X, flag f = vimprobable2 -- "$@"
ext x?html?, has qutebrowser, X, flag f = qutebrowser -- "$@"
ext x?html?, has dwb, X, flag f = dwb -- "$@"
ext x?html?, has jumanji, X, flag f = jumanji -- "$@"
ext x?html?, has luakit, X, flag f = luakit -- "$@"
ext x?html?, has uzbl, X, flag f = uzbl -- "$@"
ext x?html?, has uzbl-tabbed, X, flag f = uzbl-tabbed -- "$@"
ext x?html?, has uzbl-browser, X, flag f = uzbl-browser -- "$@"
ext x?html?, has uzbl-core, X, flag f = uzbl-core -- "$@"
ext x?html?, has midori, X, flag f = midori -- "$@"
ext x?html?, has opera, X, flag f = opera -- "$@"
ext x?html?, has firefox, X, flag f = firefox -- "$@"
ext x?html?, has seamonkey, X, flag f = seamonkey -- "$@"
ext x?html?, has iceweasel, X, flag f = iceweasel -- "$@"
ext x?html?, has chromium-browser, X, flag f = chromium-browser -- "$@"
ext x?html?, has chromium, X, flag f = chromium -- "$@"
ext x?html?, has google-chrome, X, flag f = google-chrome -- "$@"
ext x?html?, has epiphany, X, flag f = epiphany -- "$@"
ext x?html?, has konqueror, X, flag f = konqueror -- "$@"
ext x?html?, has elinks, terminal = elinks "$@"
ext x?html?, has links2, terminal = links2 "$@"
ext x?html?, has links, terminal = links "$@"
ext x?html?, has lynx, terminal = lynx -- "$@"
ext x?html?, has w3m, terminal = w3m "$@"
#-------------------------------------------
# Misc
#-------------------------------------------
# Define the "editor" for text files as first action
mime ^text, label editor = ${VISUAL:-$EDITOR} -- "$@"
mime ^text, label pager = $PAGER -- "$@"
!mime ^text, label editor, ext xml|json|csv|tex|py|pl|rb|rs|js|sh|php|dart = ${VISUAL:-$EDITOR} -- "$@"
!mime ^text, label pager, ext xml|json|csv|tex|py|pl|rb|rs|js|sh|php|dart = $PAGER -- "$@"
ext 1 = man "$1"
ext s[wmf]c, has zsnes, X = zsnes "$1"
ext s[wmf]c, has snes9x-gtk,X = snes9x-gtk "$1"
ext nes, has fceux, X = fceux "$1"
ext exe, has wine = wine "$1"
name ^[mM]akefile$ = make
#--------------------------------------------
# Scripts
#-------------------------------------------
ext py = python -- "$1"
ext pl = perl -- "$1"
ext rb = ruby -- "$1"
ext js = node -- "$1"
ext sh = sh -- "$1"
ext php = php -- "$1"
ext dart = dart run -- "$1"
#--------------------------------------------
# Audio without X
#-------------------------------------------
mime ^audio|ogg$, terminal, has mpv = mpv -- "$@"
mime ^audio|ogg$, terminal, has mplayer2 = mplayer2 -- "$@"
mime ^audio|ogg$, terminal, has mplayer = mplayer -- "$@"
ext midi?, terminal, has wildmidi = wildmidi -- "$@"
#--------------------------------------------
# Video/Audio with a GUI
#-------------------------------------------
mime ^video|^audio, has gmplayer, X, flag f = gmplayer -- "$@"
mime ^video|^audio, has smplayer, X, flag f = smplayer "$@"
mime ^video, has mpv, X, flag f = mpv -- "$@"
mime ^video, has mpv, X, flag f = mpv --fs -- "$@"
mime ^video, has mplayer2, X, flag f = mplayer2 -- "$@"
mime ^video, has mplayer2, X, flag f = mplayer2 -fs -- "$@"
mime ^video, has mplayer, X, flag f = mplayer -- "$@"
mime ^video, has mplayer, X, flag f = mplayer -fs -- "$@"
mime ^video|^audio, has vlc, X, flag f = vlc -- "$@"
mime ^video|^audio, has totem, X, flag f = totem -- "$@"
mime ^video|^audio, has totem, X, flag f = totem --fullscreen -- "$@"
mime ^audio, has audacity, X, flag f = audacity -- "$@"
ext aup, has audacity, X, flag f = audacity -- "$@"
#--------------------------------------------
# Video without X
#-------------------------------------------
mime ^video, terminal, !X, has mpv = mpv -- "$@"
mime ^video, terminal, !X, has mplayer2 = mplayer2 -- "$@"
mime ^video, terminal, !X, has mplayer = mplayer -- "$@"
#-------------------------------------------
# Documents
#-------------------------------------------
ext pdf, has llpp, X, flag f = llpp "$@"
ext pdf, has zathura, X, flag f = zathura -- "$@"
ext pdf, has mupdf, X, flag f = mupdf "$@"
ext pdf, has mupdf-x11,X, flag f = mupdf-x11 "$@"
ext pdf, has apvlv, X, flag f = apvlv -- "$@"
ext pdf, has xpdf, X, flag f = xpdf -- "$@"
ext pdf, has evince, X, flag f = evince -- "$@"
ext pdf, has atril, X, flag f = atril -- "$@"
ext pdf, has okular, X, flag f = okular -- "$@"
ext pdf, has epdfview, X, flag f = epdfview -- "$@"
ext pdf, has qpdfview, X, flag f = qpdfview "$@"
ext pdf, has open, X, flag f = open "$@"
ext sc, has sc, = sc -- "$@"
ext docx?, has catdoc, terminal = catdoc -- "$@" | $PAGER
ext sxc|xlsx?|xlt|xlw|gnm|gnumeric, has gnumeric, X, flag f = gnumeric -- "$@"
ext sxc|xlsx?|xlt|xlw|gnm|gnumeric, has kspread, X, flag f = kspread -- "$@"
ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has libreoffice, X, flag f = libreoffice "$@"
ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has soffice, X, flag f = soffice "$@"
ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has ooffice, X, flag f = ooffice "$@"
ext djvu, has zathura,X, flag f = zathura -- "$@"
ext djvu, has evince, X, flag f = evince -- "$@"
ext djvu, has atril, X, flag f = atril -- "$@"
ext djvu, has djview, X, flag f = djview -- "$@"
ext epub, has ebook-viewer, X, flag f = ebook-viewer -- "$@"
ext epub, has zathura, X, flag f = zathura -- "$@"
ext epub, has mupdf, X, flag f = mupdf -- "$@"
ext mobi, has ebook-viewer, X, flag f = ebook-viewer -- "$@"
ext cb[rz], has qcomicbook, X, flag f = qcomicbook "$@"
ext cb[rz], has mcomix, X, flag f = mcomix -- "$@"
ext cb[rz], has zathura, X, flag f = zathura -- "$@"
ext cb[rz], has atril, X, flag f = atril -- "$@"
ext sla, has scribus, X, flag f = scribus -- "$@"
#-------------------------------------------
# Images
#-------------------------------------------
mime ^image, has viewnior, X, flag f = viewnior -- "$@"
mime ^image/svg, has inkscape, X, flag f = inkscape -- "$@"
mime ^image/svg, has display, X, flag f = display -- "$@"
mime ^image, has imv, X, flag f = imv -- "$@"
mime ^image, has pqiv, X, flag f = pqiv -- "$@"
mime ^image, has sxiv, X, flag f = sxiv -- "$@"
mime ^image, has feh, X, flag f, !ext gif = feh -- "$@"
mime ^image, has mirage, X, flag f = mirage -- "$@"
mime ^image, has ristretto, X, flag f = ristretto "$@"
mime ^image, has eog, X, flag f = eog -- "$@"
mime ^image, has eom, X, flag f = eom -- "$@"
mime ^image, has nomacs, X, flag f = nomacs -- "$@"
mime ^image, has geeqie, X, flag f = geeqie -- "$@"
mime ^image, has gpicview, X, flag f = gpicview -- "$@"
mime ^image, has gwenview, X, flag f = gwenview -- "$@"
mime ^image, has xviewer, X, flag f = xviewer -- "$@"
mime ^image, has mcomix, X, flag f = mcomix -- "$@"
mime ^image, has gimp, X, flag f = gimp -- "$@"
mime ^image, has krita, X, flag f = krita -- "$@"
ext kra, has krita, X, flag f = krita -- "$@"
ext xcf, X, flag f = gimp -- "$@"
#-------------------------------------------
# Archives
#-------------------------------------------
# avoid password prompt by providing empty password
ext 7z, has 7z = 7z -p l "$@" | $PAGER
# This requires atool
ext ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has atool = atool --list --each -- "$@" | $PAGER
ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has atool = atool --list --each -- "$@" | $PAGER
ext 7z|ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has atool = atool --extract --each -- "$@"
ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has atool = atool --extract --each -- "$@"
# Listing and extracting archives without atool:
ext tar|gz|bz2|xz, has tar = tar vvtf "$1" | $PAGER
ext tar|gz|bz2|xz, has tar = for file in "$@"; do tar vvxf "$file"; done
ext bz2, has bzip2 = for file in "$@"; do bzip2 -dk "$file"; done
ext zip, has unzip = unzip -l "$1" | less
ext zip, has unzip = for file in "$@"; do unzip -d "${file%.*}" "$file"; done
ext ace, has unace = unace l "$1" | less
ext ace, has unace = for file in "$@"; do unace e "$file"; done
ext rar, has unrar = unrar l "$1" | less
ext rar, has unrar = for file in "$@"; do unrar x "$file"; done
ext rar|zip, has qcomicbook, X, flag f = qcomicbook "$@"
ext rar|zip, has mcomix, X, flag f = mcomix -- "$@"
ext rar|zip, has zathura, X, flag f = zathura -- "$@"
#-------------------------------------------
# Fonts
#-------------------------------------------
mime ^font, has fontforge, X, flag f = fontforge "$@"
#-------------------------------------------
# Flag t fallback terminals
#-------------------------------------------
# Rarely installed terminal emulators get higher priority; It is assumed that
# if you install a rare terminal emulator, you probably use it.
# gnome-terminal/konsole/xterm on the other hand are often installed as part of
# a desktop environment or as fallback terminal emulators.
mime ^ranger/x-terminal-emulator, has terminology = terminology -e "$@"
mime ^ranger/x-terminal-emulator, has kitty = kitty -- "$@"
mime ^ranger/x-terminal-emulator, has alacritty = alacritty -e "$@"
mime ^ranger/x-terminal-emulator, has sakura = sakura -e "$@"
mime ^ranger/x-terminal-emulator, has lilyterm = lilyterm -e "$@"
#mime ^ranger/x-terminal-emulator, has cool-retro-term = cool-retro-term -e "$@"
mime ^ranger/x-terminal-emulator, has termite = termite -x '"$@"'
#mime ^ranger/x-terminal-emulator, has yakuake = yakuake -e "$@"
mime ^ranger/x-terminal-emulator, has guake = guake -ne "$@"
mime ^ranger/x-terminal-emulator, has tilda = tilda -c "$@"
mime ^ranger/x-terminal-emulator, has st = st -e "$@"
mime ^ranger/x-terminal-emulator, has terminator = terminator -x "$@"
mime ^ranger/x-terminal-emulator, has urxvt = urxvt -e "$@"
mime ^ranger/x-terminal-emulator, has pantheon-terminal = pantheon-terminal -e "$@"
mime ^ranger/x-terminal-emulator, has lxterminal = lxterminal -e "$@"
mime ^ranger/x-terminal-emulator, has mate-terminal = mate-terminal -x "$@"
mime ^ranger/x-terminal-emulator, has xfce4-terminal = xfce4-terminal -x "$@"
mime ^ranger/x-terminal-emulator, has konsole = konsole -e "$@"
mime ^ranger/x-terminal-emulator, has gnome-terminal = gnome-terminal -- "$@"
mime ^ranger/x-terminal-emulator, has xterm = xterm -e "$@"
#-------------------------------------------
# Misc
#-------------------------------------------
label wallpaper, number 11, mime ^image, has feh, X = feh --bg-scale "$1"
label wallpaper, number 12, mime ^image, has feh, X = feh --bg-tile "$1"
label wallpaper, number 13, mime ^image, has feh, X = feh --bg-center "$1"
label wallpaper, number 14, mime ^image, has feh, X = feh --bg-fill "$1"
#-------------------------------------------
# Generic file openers
#-------------------------------------------
label open, has xdg-open = xdg-open "$@"
label open, has open = open -- "$@"
# Define the editor for non-text files + pager as last action
!mime ^text, !ext xml|json|csv|tex|py|pl|rb|rs|js|sh|php|dart = ask
label editor, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|rs|js|sh|php|dart = ${VISUAL:-$EDITOR} -- "$@"
label pager, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|rs|js|sh|php|dart = $PAGER -- "$@"
######################################################################
# The actions below are left so low down in this file on purpose, so #
# they are never triggered accidentally. #
######################################################################
# Execute a file as program/script.
mime application/x-executable = "$1"
# Move the file to trash using trash-cli.
label trash, has trash-put = trash-put -- "$@"
label trash = mkdir -p -- "${XDG_DATA_HOME:-$HOME/.local/share}/ranger/trash"; mv -- "$@" "${XDG_DATA_HOME:-$HOME/.local/share}/ranger/trash"

477
config/.config/ranger/scope.sh Executable file
View File

@@ -0,0 +1,477 @@
#!/usr/bin/env bash
set -o noclobber -o noglob -o nounset -o pipefail
IFS=$'\n'
## If the option `use_preview_script` is set to `true`,
## then this script will be called and its output will be displayed in ranger.
## ANSI color codes are supported.
## STDIN is disabled, so interactive scripts won't work properly
## This script is considered a configuration file and must be updated manually.
## It will be left untouched if you upgrade ranger.
## Because of some automated testing we do on the script #'s for comments need
## to be doubled up. Code that is commented out, because it's an alternative for
## example, gets only one #.
## Meanings of exit codes:
## code | meaning | action of ranger
## -----+------------+-------------------------------------------
## 0 | success | Display stdout as preview
## 1 | no preview | Display no preview at all
## 2 | plain text | Display the plain content of the file
## 3 | fix width | Don't reload when width changes
## 4 | fix height | Don't reload when height changes
## 5 | fix both | Don't ever reload
## 6 | image | Display the image `$IMAGE_CACHE_PATH` points to as an image preview
## 7 | image | Display the file directly as an image
## Script arguments
FILE_PATH="${1}" # Full path of the highlighted file
PV_WIDTH="${2}" # Width of the preview pane (number of fitting characters)
## shellcheck disable=SC2034 # PV_HEIGHT is provided for convenience and unused
PV_HEIGHT="${3}" # Height of the preview pane (number of fitting characters)
IMAGE_CACHE_PATH="${4}" # Full path that should be used to cache image preview
PV_IMAGE_ENABLED="${5}" # 'True' if image previews are enabled, 'False' otherwise.
FILE_EXTENSION="${FILE_PATH##*.}"
FILE_EXTENSION_LOWER="$(printf "%s" "${FILE_EXTENSION}" | tr '[:upper:]' '[:lower:]')"
## Settings
HIGHLIGHT_SIZE_MAX=262143 # 256KiB
HIGHLIGHT_TABWIDTH="${HIGHLIGHT_TABWIDTH:-8}"
HIGHLIGHT_STYLE="${HIGHLIGHT_STYLE:-pablo}"
HIGHLIGHT_OPTIONS="--replace-tabs=${HIGHLIGHT_TABWIDTH} --style=${HIGHLIGHT_STYLE} ${HIGHLIGHT_OPTIONS:-}"
PYGMENTIZE_STYLE="${PYGMENTIZE_STYLE:-autumn}"
BAT_STYLE="${BAT_STYLE:-plain}"
OPENSCAD_IMGSIZE="${RNGR_OPENSCAD_IMGSIZE:-1000,1000}"
OPENSCAD_COLORSCHEME="${RNGR_OPENSCAD_COLORSCHEME:-Tomorrow Night}"
SQLITE_TABLE_LIMIT=20 # Display only the top <limit> tables in database, set to 0 for no exhaustive preview (only the sqlite_master table is displayed).
SQLITE_ROW_LIMIT=5 # Display only the first and the last (<limit> - 1) records in each table, set to 0 for no limits.
handle_extension() {
case "${FILE_EXTENSION_LOWER}" in
## Archive
a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\
rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)
atool --list -- "${FILE_PATH}" && exit 5
bsdtar --list --file "${FILE_PATH}" && exit 5
exit 1;;
rar)
## Avoid password prompt by providing empty password
unrar lt -p- -- "${FILE_PATH}" && exit 5
exit 1;;
7z)
## Avoid password prompt by providing empty password
7z l -p -- "${FILE_PATH}" && exit 5
exit 1;;
## PDF
pdf)
## Preview as text conversion
pdftotext -l 10 -nopgbrk -q -- "${FILE_PATH}" - | \
fmt -w "${PV_WIDTH}" && exit 5
mutool draw -F txt -i -- "${FILE_PATH}" 1-10 | \
fmt -w "${PV_WIDTH}" && exit 5
exiftool "${FILE_PATH}" && exit 5
exit 1;;
## BitTorrent
torrent)
transmission-show -- "${FILE_PATH}" && exit 5
exit 1;;
## OpenDocument
odt|sxw)
## Preview as text conversion
odt2txt "${FILE_PATH}" && exit 5
## Preview as markdown conversion
pandoc -s -t markdown -- "${FILE_PATH}" && exit 5
exit 1;;
ods|odp)
## Preview as text conversion (unsupported by pandoc for markdown)
odt2txt "${FILE_PATH}" && exit 5
exit 1;;
## XLSX
xlsx)
## Preview as csv conversion
## Uses: https://github.com/dilshod/xlsx2csv
xlsx2csv -- "${FILE_PATH}" && exit 5
exit 1;;
## HTML
htm|html|xhtml)
## Preview as text conversion
w3m -dump "${FILE_PATH}" && exit 5
lynx -dump -- "${FILE_PATH}" && exit 5
elinks -dump "${FILE_PATH}" && exit 5
pandoc -s -t markdown -- "${FILE_PATH}" && exit 5
;;
## JSON
json)
jq --color-output . "${FILE_PATH}" && exit 5
python -m json.tool -- "${FILE_PATH}" && exit 5
;;
## Jupyter Notebooks
ipynb)
jupyter nbconvert --to markdown "${FILE_PATH}" --stdout | env COLORTERM=8bit bat --color=always --style=plain --language=markdown && exit 5
jupyter nbconvert --to markdown "${FILE_PATH}" --stdout && exit 5
jq --color-output . "${FILE_PATH}" && exit 5
python -m json.tool -- "${FILE_PATH}" && exit 5
;;
## Direct Stream Digital/Transfer (DSDIFF) and wavpack aren't detected
## by file(1).
dff|dsf|wv|wvc)
mediainfo "${FILE_PATH}" && exit 5
exiftool "${FILE_PATH}" && exit 5
;; # Continue with next handler on failure
esac
}
handle_image() {
## Size of the preview if there are multiple options or it has to be
## rendered from vector graphics. If the conversion program allows
## specifying only one dimension while keeping the aspect ratio, the width
## will be used.
local DEFAULT_SIZE="1920x1080"
local mimetype="${1}"
case "${mimetype}" in
## SVG
image/svg+xml|image/svg)
rsvg-convert --keep-aspect-ratio --width "${DEFAULT_SIZE%x*}" "${FILE_PATH}" -o "${IMAGE_CACHE_PATH}.png" \
&& mv "${IMAGE_CACHE_PATH}.png" "${IMAGE_CACHE_PATH}" \
&& exit 6
exit 1;;
## DjVu
image/vnd.djvu)
ddjvu -format=tiff -quality=90 -page=1 -size="${DEFAULT_SIZE}" \
- "${IMAGE_CACHE_PATH}" < "${FILE_PATH}" \
&& exit 6 || exit 1;;
## Image
image/*)
local orientation
orientation="$( identify -format '%[EXIF:Orientation]\n' -- "${FILE_PATH}" )"
## If orientation data is present and the image actually
## needs rotating ("1" means no rotation)...
if [[ -n "$orientation" && "$orientation" != 1 ]]; then
## ...auto-rotate the image according to the EXIF data.
convert -- "${FILE_PATH}" -auto-orient "${IMAGE_CACHE_PATH}" && exit 6
fi
## `w3mimgdisplay` will be called for all images (unless overridden
## as above), but might fail for unsupported types.
exit 7;;
## Video
# video/*)
# # Get embedded thumbnail
# ffmpeg -i "${FILE_PATH}" -map 0:v -map -0:V -c copy "${IMAGE_CACHE_PATH}" && exit 6
# # Get frame 10% into video
# ffmpegthumbnailer -i "${FILE_PATH}" -o "${IMAGE_CACHE_PATH}" -s 0 && exit 6
# exit 1;;
## Audio
# audio/*)
# # Get embedded thumbnail
# ffmpeg -i "${FILE_PATH}" -map 0:v -map -0:V -c copy \
# "${IMAGE_CACHE_PATH}" && exit 6;;
## PDF
# application/pdf)
# pdftoppm -f 1 -l 1 \
# -scale-to-x "${DEFAULT_SIZE%x*}" \
# -scale-to-y -1 \
# -singlefile \
# -jpeg -tiffcompression jpeg \
# -- "${FILE_PATH}" "${IMAGE_CACHE_PATH%.*}" \
# && exit 6 || exit 1;;
## ePub, MOBI, FB2 (using Calibre)
# application/epub+zip|application/x-mobipocket-ebook|\
# application/x-fictionbook+xml)
# # ePub (using https://github.com/marianosimone/epub-thumbnailer)
# epub-thumbnailer "${FILE_PATH}" "${IMAGE_CACHE_PATH}" \
# "${DEFAULT_SIZE%x*}" && exit 6
# ebook-meta --get-cover="${IMAGE_CACHE_PATH}" -- "${FILE_PATH}" \
# >/dev/null && exit 6
# exit 1;;
## Font
application/font*|application/*opentype)
preview_png="/tmp/$(basename "${IMAGE_CACHE_PATH%.*}").png"
if fontimage -o "${preview_png}" \
--pixelsize "120" \
--fontname \
--pixelsize "80" \
--text " ABCDEFGHIJKLMNOPQRSTUVWXYZ " \
--text " abcdefghijklmnopqrstuvwxyz " \
--text " 0123456789.:,;(*!?') ff fl fi ffi ffl " \
--text " The quick brown fox jumps over the lazy dog. " \
"${FILE_PATH}";
then
convert -- "${preview_png}" "${IMAGE_CACHE_PATH}" \
&& rm "${preview_png}" \
&& exit 6
else
exit 1
fi
;;
## Preview archives using the first image inside.
## (Very useful for comic book collections for example.)
# application/zip|application/x-rar|application/x-7z-compressed|\
# application/x-xz|application/x-bzip2|application/x-gzip|application/x-tar)
# local fn=""; local fe=""
# local zip=""; local rar=""; local tar=""; local bsd=""
# case "${mimetype}" in
# application/zip) zip=1 ;;
# application/x-rar) rar=1 ;;
# application/x-7z-compressed) ;;
# *) tar=1 ;;
# esac
# { [ "$tar" ] && fn=$(tar --list --file "${FILE_PATH}"); } || \
# { fn=$(bsdtar --list --file "${FILE_PATH}") && bsd=1 && tar=""; } || \
# { [ "$rar" ] && fn=$(unrar lb -p- -- "${FILE_PATH}"); } || \
# { [ "$zip" ] && fn=$(zipinfo -1 -- "${FILE_PATH}"); } || return
#
# fn=$(echo "$fn" | python -c "from __future__ import print_function; \
# import sys; import mimetypes as m; \
# [ print(l, end='') for l in sys.stdin if \
# (m.guess_type(l[:-1])[0] or '').startswith('image/') ]" |\
# sort -V | head -n 1)
# [ "$fn" = "" ] && return
# [ "$bsd" ] && fn=$(printf '%b' "$fn")
#
# [ "$tar" ] && tar --extract --to-stdout \
# --file "${FILE_PATH}" -- "$fn" > "${IMAGE_CACHE_PATH}" && exit 6
# fe=$(echo -n "$fn" | sed 's/[][*?\]/\\\0/g')
# [ "$bsd" ] && bsdtar --extract --to-stdout \
# --file "${FILE_PATH}" -- "$fe" > "${IMAGE_CACHE_PATH}" && exit 6
# [ "$bsd" ] || [ "$tar" ] && rm -- "${IMAGE_CACHE_PATH}"
# [ "$rar" ] && unrar p -p- -inul -- "${FILE_PATH}" "$fn" > \
# "${IMAGE_CACHE_PATH}" && exit 6
# [ "$zip" ] && unzip -pP "" -- "${FILE_PATH}" "$fe" > \
# "${IMAGE_CACHE_PATH}" && exit 6
# [ "$rar" ] || [ "$zip" ] && rm -- "${IMAGE_CACHE_PATH}"
# ;;
esac
# openscad_image() {
# TMPPNG="$(mktemp -t XXXXXX.png)"
# openscad --colorscheme="${OPENSCAD_COLORSCHEME}" \
# --imgsize="${OPENSCAD_IMGSIZE/x/,}" \
# -o "${TMPPNG}" "${1}"
# mv "${TMPPNG}" "${IMAGE_CACHE_PATH}"
# }
case "${FILE_EXTENSION_LOWER}" in
## 3D models
## OpenSCAD only supports png image output, and ${IMAGE_CACHE_PATH}
## is hardcoded as jpeg. So we make a tempfile.png and just
## move/rename it to jpg. This works because image libraries are
## smart enough to handle it.
# csg|scad)
# openscad_image "${FILE_PATH}" && exit 6
# ;;
# 3mf|amf|dxf|off|stl)
# openscad_image <(echo "import(\"${FILE_PATH}\");") && exit 6
# ;;
drawio)
draw.io -x "${FILE_PATH}" -o "${IMAGE_CACHE_PATH}" \
--width "${DEFAULT_SIZE%x*}" && exit 6
exit 1;;
esac
}
handle_mime() {
local mimetype="${1}"
case "${mimetype}" in
## RTF and DOC
text/rtf|*msword)
## Preview as text conversion
## note: catdoc does not always work for .doc files
## catdoc: http://www.wagner.pp.ru/~vitus/software/catdoc/
catdoc -- "${FILE_PATH}" && exit 5
exit 1;;
## DOCX, ePub, FB2 (using markdown)
## You might want to remove "|epub" and/or "|fb2" below if you have
## uncommented other methods to preview those formats
*wordprocessingml.document|*/epub+zip|*/x-fictionbook+xml)
## Preview as markdown conversion
pandoc -s -t markdown -- "${FILE_PATH}" && exit 5
exit 1;;
## E-mails
message/rfc822)
## Parsing performed by mu: https://github.com/djcb/mu
mu view -- "${FILE_PATH}" && exit 5
exit 1;;
## XLS
*ms-excel)
## Preview as csv conversion
## xls2csv comes with catdoc:
## http://www.wagner.pp.ru/~vitus/software/catdoc/
xls2csv -- "${FILE_PATH}" && exit 5
exit 1;;
## SQLite
*sqlite3)
## Preview as text conversion
sqlite_tables="$( sqlite3 "file:${FILE_PATH}?mode=ro" '.tables' )" \
|| exit 1
[ -z "${sqlite_tables}" ] &&
{ echo "Empty SQLite database." && exit 5; }
sqlite_show_query() {
sqlite-utils query "${FILE_PATH}" "${1}" --table --fmt fancy_grid \
|| sqlite3 "file:${FILE_PATH}?mode=ro" "${1}" -header -column
}
## Display basic table information
sqlite_rowcount_query="$(
sqlite3 "file:${FILE_PATH}?mode=ro" -noheader \
'SELECT group_concat(
"SELECT """ || name || """ AS tblname,
count(*) AS rowcount
FROM " || name,
" UNION ALL "
)
FROM sqlite_master
WHERE type="table" AND name NOT LIKE "sqlite_%";'
)"
sqlite_show_query \
"SELECT tblname AS 'table', rowcount AS 'count',
(
SELECT '(' || group_concat(name, ', ') || ')'
FROM pragma_table_info(tblname)
) AS 'columns',
(
SELECT '(' || group_concat(
upper(type) || (
CASE WHEN pk > 0 THEN ' PRIMARY KEY' ELSE '' END
),
', '
) || ')'
FROM pragma_table_info(tblname)
) AS 'types'
FROM (${sqlite_rowcount_query});"
if [ "${SQLITE_TABLE_LIMIT}" -gt 0 ] &&
[ "${SQLITE_ROW_LIMIT}" -ge 0 ]; then
## Do exhaustive preview
echo && printf '>%.0s' $( seq "${PV_WIDTH}" ) && echo
sqlite3 "file:${FILE_PATH}?mode=ro" -noheader \
"SELECT name FROM sqlite_master
WHERE type='table' AND name NOT LIKE 'sqlite_%'
LIMIT ${SQLITE_TABLE_LIMIT};" |
while read -r sqlite_table; do
sqlite_rowcount="$(
sqlite3 "file:${FILE_PATH}?mode=ro" -noheader \
"SELECT count(*) FROM ${sqlite_table}"
)"
echo
if [ "${SQLITE_ROW_LIMIT}" -gt 0 ] &&
[ "${SQLITE_ROW_LIMIT}" \
-lt "${sqlite_rowcount}" ]; then
echo "${sqlite_table} [${SQLITE_ROW_LIMIT} of ${sqlite_rowcount}]:"
sqlite_ellipsis_query="$(
sqlite3 "file:${FILE_PATH}?mode=ro" -noheader \
"SELECT 'SELECT ' || group_concat(
'''...''', ', '
)
FROM pragma_table_info(
'${sqlite_table}'
);"
)"
sqlite_show_query \
"SELECT * FROM (
SELECT * FROM ${sqlite_table} LIMIT 1
)
UNION ALL ${sqlite_ellipsis_query} UNION ALL
SELECT * FROM (
SELECT * FROM ${sqlite_table}
LIMIT (${SQLITE_ROW_LIMIT} - 1)
OFFSET (
${sqlite_rowcount}
- (${SQLITE_ROW_LIMIT} - 1)
)
);"
else
echo "${sqlite_table} [${sqlite_rowcount}]:"
sqlite_show_query "SELECT * FROM ${sqlite_table};"
fi
done
fi
exit 5;;
## Text
text/* | */xml)
## Syntax highlight
if [[ "$( stat --printf='%s' -- "${FILE_PATH}" )" -gt "${HIGHLIGHT_SIZE_MAX}" ]]; then
exit 2
fi
if [[ "$( tput colors )" -ge 256 ]]; then
local pygmentize_format='terminal256'
local highlight_format='xterm256'
else
local pygmentize_format='terminal'
local highlight_format='ansi'
fi
env HIGHLIGHT_OPTIONS="${HIGHLIGHT_OPTIONS}" highlight \
--out-format="${highlight_format}" \
--force -- "${FILE_PATH}" && exit 5
env COLORTERM=8bit bat --color=always --style="${BAT_STYLE}" \
-- "${FILE_PATH}" && exit 5
pygmentize -f "${pygmentize_format}" -O "style=${PYGMENTIZE_STYLE}"\
-- "${FILE_PATH}" && exit 5
exit 2;;
## DjVu
image/vnd.djvu)
## Preview as text conversion (requires djvulibre)
djvutxt "${FILE_PATH}" | fmt -w "${PV_WIDTH}" && exit 5
exiftool "${FILE_PATH}" && exit 5
exit 1;;
## Image
image/*)
## Preview as text conversion
# img2txt --gamma=0.6 --width="${PV_WIDTH}" -- "${FILE_PATH}" && exit 4
exiftool "${FILE_PATH}" && exit 5
exit 1;;
## Video and audio
video/* | audio/*)
mediainfo "${FILE_PATH}" && exit 5
exiftool "${FILE_PATH}" && exit 5
exit 1;;
## ELF files (executables and shared objects)
application/x-executable | application/x-pie-executable | application/x-sharedlib)
readelf -WCa "${FILE_PATH}" && exit 5
exit 1;;
esac
}
handle_fallback() {
echo '----- File Type Classification -----' && file --dereference --brief -- "${FILE_PATH}" && exit 5
}
MIMETYPE="$( file --dereference --brief --mime-type -- "${FILE_PATH}" )"
if [[ "${PV_IMAGE_ENABLED}" == 'True' ]]; then
handle_image "${MIMETYPE}"
fi
handle_extension
handle_mime "${MIMETYPE}"
handle_fallback
exit 1

View File

@@ -0,0 +1,7 @@
[StratoMain]
type = webdav
url = https://sync.hahn1.one
vendor = other
user = jonas
pass = irl_9sZw-ar_qkwn9SjGzRsVl8m0Kf8Y5rpC

View File

@@ -0,0 +1,8 @@
[window]
width=955
height=518
is-maximized=true
is-fullscreen=false
[scanner]
scan-type=adf

View File

View File

@@ -0,0 +1,6 @@
startup_commands fit_to_page_height
case_sensitive_search 0
super_fast_search 1
should_launch_new_window 1
create_table_of_contents_if_not_exists 1
max_created_toc_size 2000

View File

@@ -0,0 +1 @@
startup_commands toggle_visual_scroll

View File

@@ -0,0 +1 @@
../../../../../synced/vault/keys/keys.txt

View File

@@ -0,0 +1,49 @@
theme = "dracula"
client_id = "65b708073fc0480ea92a077233ca87bd"
client_port = 8080
login_redirect_uri = "http://127.0.0.1:8989/login"
playback_format = """
{status} {track} • {artists}
{album}
{metadata}"""
notify_timeout_in_secs = 0
tracks_playback_limit = 50
app_refresh_duration_in_ms = 32
playback_refresh_duration_in_ms = 0
page_size_in_rows = 20
play_icon = "▶"
pause_icon = "▌▌"
liked_icon = "♥"
border_type = "Plain"
progress_bar_type = "Rectangle"
cover_img_length = 9
cover_img_width = 5
cover_img_scale = 1.0
enable_media_control = true
enable_streaming = "Always"
enable_notify = true
enable_cover_image_cache = true
default_device = "spotify-player"
notify_streaming_only = false
seek_duration_secs = 5
[notify_format]
summary = "{track} • {artists}"
body = "{album}"
[layout]
playback_window_position = "Top"
playback_window_height = 6
[layout.library]
playlist_percent = 40
album_percent = 40
[device]
name = "JonasSpotify"
device_type = "speaker"
volume = 70
bitrate = 320
audio_cache = false
normalization = false
autoplay = false

159
config/.config/sway/config Normal file
View File

@@ -0,0 +1,159 @@
# Default config for sway
#
# Copy this to ~/.config/sway/config and edit it to your liking.
#
# Read `man 5 sway` for a complete reference.
### Variables
#
# Logo key. Use Mod1 for Alt.
set $mod Mod4
# Home row direction keys, like vim
set $left h
set $down j
set $up k
set $right l
# Your preferred terminal emulator
set $term foot
# Your preferred application launcher
set $menu ~/projects/scripts/dmenu_drun
### Key bindings
#
# Basics:
#
# Start a terminal
bindsym $mod+Return exec $term
# Kill focused window
bindsym $mod+Shift+q kill
# Start your launcher
bindsym $mod+p exec $menu
# Drag floating windows by holding down $mod and left mouse button.
# Resize them with right mouse button + $mod.
# Despite the name, also works for non-floating windows.
# Change normal to inverse to use left mouse button for resizing and right
# mouse button for dragging.
floating_modifier $mod normal
# Reload the configuration file
bindsym $mod+Shift+c reload
# Exit sway (logs you out of your Wayland session)
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
#
# Moving around:
#
# Move your focus around
bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right
# Move the focused window with the same, but add Shift
bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right
#
# Workspaces:
#
# Switch to workspace
bindsym $mod+1 workspace number 1
bindsym $mod+2 workspace number 2
bindsym $mod+3 workspace number 3
bindsym $mod+4 workspace number 4
bindsym $mod+5 workspace number 5
bindsym $mod+6 workspace number 6
bindsym $mod+7 workspace number 7
bindsym $mod+8 workspace number 8
bindsym $mod+9 workspace number 9
bindsym $mod+0 workspace number 10
# Move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number 1
bindsym $mod+Shift+2 move container to workspace number 2
bindsym $mod+Shift+3 move container to workspace number 3
bindsym $mod+Shift+4 move container to workspace number 4
bindsym $mod+Shift+5 move container to workspace number 5
bindsym $mod+Shift+6 move container to workspace number 6
bindsym $mod+Shift+7 move container to workspace number 7
bindsym $mod+Shift+8 move container to workspace number 8
bindsym $mod+Shift+9 move container to workspace number 9
bindsym $mod+Shift+0 move container to workspace number 10
# Note: workspaces can have any name you want, not just numbers.
# We just use 1-10 as the default.
#
# Layout stuff:
#
# You can "split" the current object of your focus with
# $mod+b or $mod+v, for horizontal and vertical splits
# respectively.
bindsym $mod+b splith
bindsym $mod+v splitv
# Switch the current container between different layout styles
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# Make the current focus fullscreen
bindsym $mod+f fullscreen
# Toggle the current focus between tiling and floating mode
bindsym $mod+Shift+space floating toggle
# Swap focus between the tiling area and the floating area
bindsym $mod+space focus mode_toggle
# Move focus to the parent container
bindsym $mod+a focus parent
#
# Scratchpad:
#
# Sway has a "scratchpad", which is a bag of holding for windows.
# You can send windows there and get them back later.
# Move the currently focused window to the scratchpad
bindsym $mod+Shift+minus move scratchpad
# Show the next scratchpad window or hide the focused scratchpad window.
# If there are multiple scratchpad windows, this command cycles through them.
bindsym $mod+minus scratchpad show
#
# Resizing containers:
#
mode "resize" {
# left will shrink the containers width
# right will grow the containers width
# up will shrink the containers height
# down will grow the containers height
bindsym $left resize shrink width 50px
bindsym $down resize grow height 50px
bindsym $up resize shrink height 50px
bindsym $right resize grow width 50px
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
default_border pixel 1
# Special key to take a screenshot with grim
bindsym Print exec grim
bar {
position top
mode hide
status_command while date +'%Y-%m-%d %X'; do sleep 1; done
colors {
statusline #ffffff
background #323232
inactive_workspace #323232ff #323232ff #5c5c5c
}
}
include @sysconfdir@/sway/config.d/*

View File

@@ -0,0 +1,26 @@
font = NotoFont
font-size = 14
outline-width = 0
border-width = 1
padding-left = 4%
padding-top = 2%
background-color = #111
text-color = #f9fbff
selection-color = #933
prompt-text = "Act: "
width = 20%
height = 40%
anchor = bottom-right
margin-top = 100
margin-bottom = 100
input-background = #1234
margin-left = 100
margin-right = 100
hide-cursor = false
corner-radius = 10
border-color = #F9a672
background-color = #1B1D1Eaa

View File

@@ -0,0 +1,20 @@
[General]
filedialog-path=@Variant(\0\0\0\x11\0\0\0\v/home/jonas)
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x3\xc4\0\0\x2\x31\0\0\a~\0\0\x4\x36\0\0\x3\xc4\0\0\x2\x31\0\0\a~\0\0\x4\x36\0\0\0\0\0\0\0\0\a\x80\0\0\x3\xc4\0\0\x2\x31\0\0\a~\0\0\x4\x36)
[FullScreen]
pos=@Point(0 0)
screen=@Rect(0 0 0 0)
wide=false
[MainWindow]
adv-controls=0
bgSize=@Size(600 0)
pl-dock-status=true
playlist-visible=false
playlistSize=@Size(-1 -1)
status-bar-visible=false
[RecentsMRL]
list=@Invalid()
times=@Invalid()

4688
config/.config/vlc/vlcrc Normal file
View File

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,126 @@
{
"activation_mode": {
"labels": "jkl;asdf"
},
"as_window": false,
"builtins": {
"applications": {
"actions": true,
"context_aware": true,
"name": "applications",
"placeholder": "Applications",
"prioritize_new": true,
"refresh": true,
"show_generic": false,
"show_icon_when_single": true,
"show_sub_when_single": true,
"weight": 5
},
"calc": {
"icon": "accessories-calculator",
"min_chars": 4,
"name": "calc",
"placeholder": "Calculator",
"weight": 5
},
"clipboard": {
"image_height": 300,
"max_entries": 10,
"name": "clipboard",
"placeholder": "Clipboard",
"switcher_only": true,
"weight": 5
},
"commands": {
"icon": "utilities-terminal",
"name": "commands",
"placeholder": "Commands",
"switcher_only": true,
"weight": 5
},
"custom_commands": {
"icon": "utilities-terminal",
"name": "custom_commands",
"placeholder": "Custom Commands",
"weight": 5
},
"dmenu": {
"name": "dmenu",
"placeholder": "Dmenu",
"switcher_only": true,
"weight": 5
},
"emojis": {
"history": true,
"name": "emojis",
"placeholder": "Emojis",
"switcher_only": true,
"typeahead": true,
"weight": 5
},
"finder": {
"concurrency": 8,
"icon": "folder",
"ignore_gitignore": true,
"name": "finder",
"placeholder": "Finder",
"refresh": true,
"switcher_only": true,
"weight": 5
},
"runner": {
"generic_entry": false,
"history": true,
"icon": "utilities-terminal",
"name": "runner",
"placeholder": "Runner",
"refresh": true,
"typeahead": true,
"weight": 5
},
"ssh": {
"history": true,
"icon": "preferences-system-network",
"name": "ssh",
"placeholder": "SSH",
"refresh": true,
"switcher_only": true,
"weight": 5
},
"switcher": {
"name": "switcher",
"placeholder": "Switcher",
"prefix": "/",
"weight": 5
},
"websearch": {
"engines": [
"google"
],
"icon": "applications-internet",
"name": "websearch",
"placeholder": "Websearch",
"weight": 5
},
"windows": {
"icon": "view-restore",
"name": "windows",
"placeholder": "Windows",
"weight": 5
}
},
"disable_click_to_close": false,
"force_keyboard_focus": true,
"list": {
"max_entries": 50,
"show_initial_entries": true,
"single_click": true
},
"search": {
"delay": 0,
"force_keyboard_focus": true,
"history": true,
"placeholder": "Search..."
},
"theme": "catppuccin"
}

View File

@@ -0,0 +1,135 @@
#window,
#box,
#search,
#password,
#input,
#typeahead,
#spinner,
#list,
child,
scrollbar,
slider,
#item,
#text,
#label,
#sub,
#activationlabel {
all: unset;
}
#window {
background: none;
}
#box {
background: #303446;
padding: 16px;
border-radius: 8px;
box-shadow:
0 19px 38px rgba(0, 0, 0, 0.3),
0 15px 12px rgba(0, 0, 0, 0.22);
}
scrollbar {
background: none;
padding-left: 8px;
}
slider {
min-width: 2px;
background: #7f849c;
opacity: 0.5;
}
#search {
}
#password,
#input,
#typeahead {
background: #363a4f;
background: none;
box-shadow: none;
border-radius: 0px;
border-radius: 32px;
color: #c6d0f5;
padding-left: 12px;
padding-right: 12px;
}
#input {
background: none;
}
#input > *:first-child,
#typeahead > *:first-child {
color: #7f849c;
margin-right: 7px;
}
#input > *:last-child,
#typeahead > *:last-child {
color: #7f849c;
}
#spinner {
}
#typeahead {
color: #89b4fa;
}
#input placeholder {
opacity: 0.5;
}
#list {
}
child {
border-radius: 8px;
color: #cad3f5;
padding: 4px;
}
child:selected,
child:hover {
background: #414559;
box-shadow: none;
color: #cad3f5;
}
#item {
}
#icon {
}
#text {
}
#label {
font-weight: bold;
color: #cad3f5;
}
#sub {
opacity: 0.5;
color: #cad3f5;
}
#activationlabel {
opacity: 0.5;
padding-right: 4px;
}
.activation #activationlabel {
font-weight: bold;
color: #89b4fa;
opacity: 1;
}
.activation #text,
.activation #icon,
.activation #search {
}

View File

@@ -0,0 +1,56 @@
{
"ui": {
"anchors": {
"bottom": true,
"left": true,
"right": true,
"top": true
},
"window": {
"box": {
"h_align": "center",
"margins": {
"bottom": 200,
"top": 200
},
"orientation": "horizontal",
"scroll": {
"list": {
"always_show": true,
"item": {
"activation_label": {
"h_align": "end",
"h_expand": true,
"justify": "right",
"x_align": 1
},
"icon": {
"theme": "Papirus"
},
"spacing": 5,
"text": {
"h_align": "fill",
"h_expand": true,
"revert": true
}
},
"max_height": 300,
"max_width": 400,
"min_width": 400,
"width": 400
},
"overlay_scrolling": false
},
"search": {
"spacing": 10,
"v_align": "start",
"width": 400
},
"spacing": 10,
"v_align": "start"
},
"h_align": "fill",
"v_align": "fill"
}
}
}

View File

@@ -0,0 +1,10 @@
[
[
1745197433,
1745197441,
"conf",
"203cd966cba34ef09162d539cfe4615b",
[],
1745197441
]
]

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,5 @@
{
"project": "conf",
"start": 1745197433,
"tags": []
}

View File

@@ -0,0 +1,47 @@
{
"position": "top",
"modules-left": ["hyprland/workspaces", "hyprland/window"],
"modules-center": ["custom/webdav","clock", "custom/status"],
"modules-right": ["tray", "pulseaudio", "backlight", "cpu", "memory", "battery"],
"clock": {
"format": "{:%H:%M}",
"format-alt": "{:%d.%m.%Y}",
"tooltip": false,
},
"memory": {
"interval": 10,
"format": "⛃ {}%"
},
"cpu": {
"interval": 7,
"format": "🧠 {usage:2}%"
},
"backlight": {
"format": "🌥️ {percent}% ",
"tooltip": false,
},
"hyprland/window": {
"format": "👉 {}",
"separate-outputs": true,
},
"pulseaudio": {
"format": "🔉 {volume}%",
"on-click": "pavucontrol",
"tooltip": false,
},
"battery": {
"interval": 30,
"states": {
"good": 90,
"warning": 30,
"critical": 20
},
"format": "🔋 {capacity}% ",
"format-charging": "⚡ {capacity}%",
},
"tray": {
"icon-size": 21,
"spacing": 5
},
}

View File

@@ -0,0 +1,155 @@
* {
font-family: 'NotoFont';
font-size: 12px;
font-weight: bold;
}
window#waybar {
/* transparent background for the main bar */
background-color: rgba(0, 0, 0, 0);
color: #fbf1c7;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
button:hover {
background: inherit;
background-color: inherit;
box-shadow: inherit;
color: inherit;
font-weight: inherit;
font-size: inherit;
}
#workspaces {
padding: 1px 5px;
border-radius: 5px;
margin: 2px 5px;
}
#workspaces button {
padding: 0 5px;
background-color: #3e4243;
color: #ed817d;
margin: 1px 3px;
}
#workspaces button.active {
background-color: #9a5263;
color: #ebdbb2;
box-shadow: inset 0 -3px #ebdbb2;
}
#workspaces button.urgent {
background-color: #d395a7;
color: #282828;
box-shadow: inset 0 -3px #ebdbb2;
}
#window {
color: #ca9d1f;
padding: 0 8px;
background-color: rgba(100, 50, 50, 0.75);
margin: 2px 0;
border-radius: 5px;
box-shadow: inset 0 -3px #ca9d1f;
}
#backlight {
background-color: #282828;
color: #ebdbb2;
margin: 2px 3px;
padding: 0 7px;
border-radius: 5px;
box-shadow: inset 0 -3px #ebdbb2;
}
#battery {
background-color: #282828;
color: #b8bb26;
padding: 0 7px;
border-radius: 5px;
margin: 2px 3px;
box-shadow: inset 0 -3px #b8bb26;
}
#battery.charging {
background-color: #282828;
color: #b8bb26;
}
#battery.good:not(.charging) {
background-color: #282828;
color: #b8bb26;
}
#battery.warning:not(.charging) {
background-color: #a76911;
color: #ebdbb2;
}
#battery.critical:not(.charging) {
background-color: #cc241d;
color: #ffffff;
}
#pulseaudio {
background-color: #282828;
color: #fabd2f;
padding: 0 7px;
border-radius: 5px;
margin: 2px 3px;
box-shadow: inset 0 -3px #fabd2f;
}
#pulseaudio.muted {
background-color: #282828;
color: #a89984;
box-shadow: inset 0 -3px #a89984;
}
#tray {
background-color: #282828;
padding: 0 7px;
border-radius: 5px;
margin: 2px 3px;
}
#custom-status,
#custom-webdav {
background-color: #3e3e3e; /* Slightly lighter dark gray */
font-size: 12px; /* Smaller text */
border-radius: 4px; /* Rounded corners */
padding: 4px 10px; /* Padding inside the box */
margin-left: 10px; /* Move it away from center modules */
margin: 5px 5px;
color: #ffffff; /* Optional: make sure text is visible */
}
#clock {
background-color: #282828;
color: #d3869b;
padding: 0 7px;
border-radius: 5px;
margin: 2px 13;
box-shadow: inset 0 -3px #d3869b;
}
#memory {
background-color: #282828;
color: #a39bcb;
padding: 0 7px;
border-radius: 5px;
margin: 2px 3px;
box-shadow: inset 0 -3px #a39bcb;
}
#cpu {
background-color: #282828;
color: #ee9c70;
padding: 0 7px;
border-radius: 5px;
margin: 2px 3px;
box-shadow: inset 0 -3px #ee9c70;
}

View File

@@ -0,0 +1,49 @@
#
# weechat -- alias.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/weechat/quickstart/
#
config_version = 2
[cmd]
aaway = "allserv /away"
anick = "allserv /nick"
beep = "print -beep"
bye = "quit"
c = "buffer clear"
chat = "dcc chat"
cl = "buffer clear"
close = "buffer close"
exit = "quit"
ig = "ignore"
j = "join"
k = "kick"
kb = "kickban"
leave = "part"
m = "msg"
msgbuf = "command -buffer $1 * /input send $2-"
mub = "unban *"
n = "names"
q = "query"
redraw = "window refresh"
say = "msg *"
signoff = "quit"
t = "topic"
ub = "unban"
umode = "mode $nick"
v = "command core version"
w = "who"
wc = "window close"
wi = "whois"
wii = "whois $1 $1"
wm = "window merge"
ww = "whowas"
[completion]
msgbuf = "%(buffers_plugins_names)"

View File

@@ -0,0 +1,41 @@
#
# weechat -- buflist.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/weechat/quickstart/
#
[look]
add_newline = on
auto_scroll = 50
display_conditions = "${buffer.hidden}==0"
enabled = on
mouse_jump_visited_buffer = off
mouse_move_buffer = on
mouse_wheel = on
nick_prefix = off
nick_prefix_empty = on
signals_refresh = ""
sort = "number,-active"
use_items = 1
[format]
buffer = "${format_number}${indent}${format_nick_prefix}${color_hotlist}${format_name}"
buffer_current = "${color:,100}${format_buffer}"
hotlist = " ${color:green}(${hotlist}${color:green})"
hotlist_highlight = "${color:magenta}"
hotlist_low = "${color:white}"
hotlist_message = "${color:brown}"
hotlist_none = "${color:default}"
hotlist_private = "${color:green}"
hotlist_separator = "${color:default},"
indent = " "
lag = " ${color:green}[${color:brown}${lag}${color:green}]"
name = "${name}"
nick_prefix = "${color_nick_prefix}${nick_prefix}"
number = "${color:green}${number}${if:${number_displayed}?.: }"
tls_version = " ${color:default}(${if:${tls_version}==TLS1.3?${color:green}:${if:${tls_version}==TLS1.2?${color:yellow}:${color:red}}}${translate:${tls_version}}${color:default})"

View File

@@ -0,0 +1,18 @@
#
# weechat -- charset.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/weechat/quickstart/
#
[default]
decode = "iso-8859-1"
encode = ""
[decode]
[encode]

View File

@@ -0,0 +1,19 @@
#
# weechat -- exec.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/weechat/quickstart/
#
[command]
default_options = ""
purge_delay = 0
shell = "${env:SHELL}"
[color]
flag_finished = lightred
flag_running = lightgreen

View File

@@ -0,0 +1,14 @@
#
# weechat -- fifo.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/weechat/quickstart/
#
[file]
enabled = on
path = "${weechat_runtime_dir}/weechat_fifo_${info:pid}"

View File

@@ -0,0 +1,100 @@
#
# weechat -- fset.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/weechat/quickstart/
#
[look]
auto_refresh = "*"
auto_unmark = off
condition_catch_set = "${count} >= 1"
export_help_default = on
format_number = 1
marked_string = "*"
scroll_horizontal = 10
show_plugins_desc = off
sort = "~name"
unmarked_string = " "
use_color_value = on
use_keys = on
use_mute = off
[format]
export_help = "# ${description2}"
export_option = "/set ${name} ${quoted_value}"
export_option_null = "/unset ${name}"
option1 = ""
option2 = "${marked} ${name} ${type} ${value2}${newline} ${empty_name} ${_default_value}${color:244} -- ${_allowed_values}${newline} ${empty_name} ${_description}"
[color]
allowed_values = default
allowed_values_selected = white
color_name = 246
color_name_selected = default
default_value = default
default_value_selected = white
description = 242
description_selected = default
file = default
file_changed = brown
file_changed_selected = yellow
file_selected = white
help_default_value = white
help_description = default
help_name = white
help_quotes = darkgray
help_values = default
index = cyan
index_selected = lightcyan
line_marked_bg1 = 17
line_marked_bg2 = 17
line_selected_bg1 = 24
line_selected_bg2 = 24
marked = brown
marked_selected = yellow
max = default
max_selected = white
min = default
min_selected = white
name = default
name_changed = 185
name_changed_selected = yellow
name_selected = white
option = default
option_changed = brown
option_changed_selected = yellow
option_selected = white
parent_name = default
parent_name_selected = white
parent_value = cyan
parent_value_selected = lightcyan
quotes = darkgray
quotes_changed = default
quotes_changed_selected = white
quotes_selected = default
section = default
section_changed = brown
section_changed_selected = yellow
section_selected = white
string_values = default
string_values_selected = white
title_count_options = cyan
title_current_option = lightcyan
title_filter = yellow
title_marked_options = lightgreen
title_sort = white
type = 138
type_selected = 216
unmarked = default
unmarked_selected = white
value = 38
value_changed = 185
value_changed_selected = yellow
value_selected = 159
value_undef = magenta
value_undef_selected = lightmagenta

View File

@@ -0,0 +1,14 @@
#
# weechat -- guile.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/weechat/quickstart/
#
[look]
check_license = off
eval_keep_context = on

View File

@@ -0,0 +1,237 @@
#
# weechat -- irc.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/weechat/quickstart/
#
config_version = 5
[look]
buffer_open_before_autojoin = on
buffer_open_before_join = off
buffer_switch_autojoin = on
buffer_switch_join = on
color_nicks_in_names = off
color_nicks_in_nicklist = off
color_nicks_in_server_messages = on
color_pv_nick_like_channel = on
ctcp_time_format = "%a, %d %b %Y %T %z"
display_account_message = on
display_away = local
display_ctcp_blocked = on
display_ctcp_reply = on
display_ctcp_unknown = on
display_extended_join = on
display_host_join = on
display_host_join_local = on
display_host_notice = on
display_host_quit = on
display_host_wallops = on
display_join_message = "329,332,333,366"
display_old_topic = on
display_pv_away_once = on
display_pv_back = on
display_pv_nick_change = on
display_pv_warning_address = off
highlight_channel = "$nick"
highlight_pv = "$nick"
highlight_server = "$nick"
highlight_tags_restrict = "irc_privmsg,irc_notice"
ignore_tag_messages = off
item_channel_modes_hide_args = "k"
item_display_server = buffer_plugin
item_nick_modes = on
item_nick_prefix = on
join_auto_add_chantype = off
list_buffer = on
list_buffer_format_export = "${name} (${users}): "${topic}""
list_buffer_scroll_horizontal = 10
list_buffer_sort = "~name2"
list_buffer_topic_strip_colors = on
msgbuffer_fallback = current
new_channel_position = none
new_list_position = none
new_pv_position = none
nick_completion_smart = speakers
nick_mode = prefix
nick_mode_empty = off
nicks_hide_password = "nickserv"
notice_as_pv = auto
notice_welcome_redirect = on
notice_welcome_tags = ""
notify_tags_ison = "notify_message"
notify_tags_whois = "notify_message"
open_pv_buffer_echo_msg = on
part_closes_buffer = off
pv_buffer = independent
pv_tags = "notify_private"
raw_messages = 256
server_buffer = merge_with_core
smart_filter = on
smart_filter_account = on
smart_filter_chghost = on
smart_filter_delay = 1
smart_filter_join = on
smart_filter_join_unmask = 30
smart_filter_mode = "+"
smart_filter_nick = on
smart_filter_quit = on
smart_filter_setname = on
temporary_servers = off
topic_strip_colors = off
typing_status_nicks = off
typing_status_self = off
[color]
input_nick = lightcyan
item_lag_counting = default
item_lag_finished = yellow
item_nick_modes = default
item_tls_version_deprecated = yellow
item_tls_version_insecure = red
item_tls_version_ok = green
list_buffer_line_selected = white
list_buffer_line_selected_bg = 24
message_account = cyan
message_chghost = brown
message_join = green
message_kick = red
message_quit = red
message_setname = brown
mirc_remap = "1,-1:darkgray"
nick_prefixes = "y:lightred;q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue"
notice = green
reason_kick = default
reason_quit = 244
term_remap = "0,-1:darkgray"
topic_current = default
topic_new = 36
topic_old = 244
[network]
autoreconnect_delay_growing = 2
autoreconnect_delay_max = 600
ban_mask_default = "*!$ident@$host"
colors_receive = on
colors_send = on
lag_check = 60
lag_max = 1800
lag_min_show = 500
lag_reconnect = 300
lag_refresh_interval = 1
notify_check_ison = 1
notify_check_whois = 5
sasl_fail_unavailable = on
send_unknown_commands = off
whois_double_nick = off
[msgbuffer]
[ctcp]
clientinfo = "${clientinfo}"
source = "${download}"
time = "${time}"
version = "WeeChat ${version}"
[ignore]
[server_default]
addresses = ""
anti_flood = 2000
autoconnect = off
autojoin = ""
autojoin_delay = 0
autojoin_dynamic = off
autoreconnect = on
autoreconnect_delay = 10
autorejoin = off
autorejoin_delay = 30
away_check = 0
away_check_max_nicks = 25
capabilities = "*"
charset_message = message
command = ""
command_delay = 0
connection_timeout = 60
default_chantypes = "#&"
ipv6 = auto
local_hostname = ""
msg_kick = ""
msg_part = "WeeChat ${info:version}"
msg_quit = "WeeChat ${info:version}"
nicks = "${username},${username}2,${username}3,${username}4,${username}5"
nicks_alternate = on
notify = ""
password = ""
proxy = ""
realname = ""
registered_mode = "r"
sasl_fail = reconnect
sasl_key = ""
sasl_mechanism = plain
sasl_password = ""
sasl_timeout = 15
sasl_username = ""
split_msg_max_length = 512
tls = on
tls_cert = ""
tls_dhkey_size = 2048
tls_fingerprint = ""
tls_password = ""
tls_priorities = "NORMAL"
tls_verify = on
usermode = ""
username = "${username}"
[server]
libera.addresses = "irc.libera.chat/6697"
libera.proxy
libera.ipv6
libera.tls = on
libera.tls_cert
libera.tls_password
libera.tls_priorities
libera.tls_dhkey_size
libera.tls_fingerprint
libera.tls_verify
libera.password
libera.capabilities
libera.sasl_mechanism
libera.sasl_username = "jonas2"
libera.sasl_password = "${sec.data.libera_password}"
libera.sasl_key
libera.sasl_timeout
libera.sasl_fail
libera.autoconnect = on
libera.autoreconnect
libera.autoreconnect_delay
libera.nicks = "zennit"
libera.nicks_alternate
libera.username = "Ascyii"
libera.realname
libera.local_hostname
libera.usermode
libera.command_delay
libera.command
libera.autojoin_delay
libera.autojoin = "#weechat,#zen,#linux,#security"
libera.autojoin_dynamic
libera.autorejoin
libera.autorejoin_delay
libera.connection_timeout
libera.anti_flood
libera.away_check
libera.away_check_max_nicks
libera.msg_kick
libera.msg_part
libera.msg_quit
libera.notify
libera.split_msg_max_length
libera.charset_message
libera.default_chantypes
libera.registered_mode

View File

@@ -0,0 +1,40 @@
#
# weechat -- logger.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/weechat/quickstart/
#
[look]
backlog = 20
backlog_conditions = ""
[color]
backlog_end = 246
backlog_line = 246
[file]
auto_log = on
color_lines = off
flush_delay = 120
fsync = off
info_lines = off
log_conditions = ""
mask = "$plugin.$name.weechatlog"
name_lower_case = on
nick_prefix = ""
nick_suffix = ""
path = "${weechat_data_dir}/logs"
replacement_char = "_"
rotation_compression_level = 20
rotation_compression_type = none
rotation_size_max = "0"
time_format = "%Y-%m-%d %H:%M:%S"
[level]
[mask]

View File

@@ -0,0 +1,14 @@
#
# weechat -- lua.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/weechat/quickstart/
#
[look]
check_license = off
eval_keep_context = on

View File

@@ -0,0 +1,14 @@
#
# weechat -- perl.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/weechat/quickstart/
#
[look]
check_license = off
eval_keep_context = on

View File

@@ -0,0 +1,14 @@
#
# weechat -- plugins.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/weechat/quickstart/
#
[var]
[desc]

View File

@@ -0,0 +1,14 @@
#
# weechat -- python.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/weechat/quickstart/
#
[look]
check_license = off
eval_keep_context = on

View File

@@ -0,0 +1,70 @@
#
# weechat -- relay.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/weechat/quickstart/
#
config_version = 2
[look]
auto_open_buffer = "irc,weechat"
display_clients = "irc,weechat"
raw_messages = 256
raw_messages_max_length = 4096
[color]
client = cyan
status_active = green
status_auth_failed = lightmagenta
status_authenticating = yellow
status_connecting = white
status_disconnected = lightred
text = default
text_bg = default
text_selected = white
[network]
allow_empty_password = off
allowed_ips = ""
auth_timeout = 60
bind_address = ""
clients_purge_delay = 0
commands = "*,!quit"
compression = 20
ipv6 = on
max_clients = 5
nonce_size = 16
password = ""
password_hash_algo = "*"
password_hash_iterations = 100000
time_window = 5
tls_cert_key = "${weechat_config_dir}/tls/relay.pem"
tls_priorities = "NORMAL"
totp_secret = ""
totp_window = 0
websocket_allowed_origins = ""
websocket_permessage_deflate = on
[irc]
backlog_max_minutes = 0
backlog_max_number = 1024
backlog_since_last_disconnect = on
backlog_since_last_message = off
backlog_tags = "irc_privmsg"
backlog_time_format = "[%H:%M] "
[api]
remote_autoreconnect_delay_growing = 2
remote_autoreconnect_delay_max = 600
remote_get_lines = 1000
[port]
[path]
[remote]

View File

@@ -0,0 +1,14 @@
#
# weechat -- ruby.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/weechat/quickstart/
#
[look]
check_license = off
eval_keep_context = on

View File

@@ -0,0 +1,57 @@
#
# weechat -- script.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/weechat/quickstart/
#
[look]
columns = "%s %n %V %v %u | %d | %t"
diff_color = on
diff_command = "auto"
display_source = on
quiet_actions = on
sort = "i,p,n"
translate_description = on
use_keys = on
[color]
status_autoloaded = 39
status_held = white
status_installed = lightcyan
status_obsolete = lightmagenta
status_popular = yellow
status_running = lightgreen
status_unknown = lightred
text = default
text_bg = default
text_bg_selected = 24
text_date = 65
text_date_selected = 50
text_delimiters = 240
text_description = 249
text_description_selected = white
text_extension = 242
text_extension_selected = 248
text_name = 73
text_name_selected = 51
text_selected = white
text_tags = brown
text_tags_selected = yellow
text_version = blue
text_version_loaded = 246
text_version_loaded_selected = white
text_version_selected = 228
[scripts]
autoload = on
cache_expire = 1440
download_enabled = off
download_timeout = 30
hold = ""
path = "${weechat_cache_dir}/script"
url = "https://weechat.org/files/plugins.xml.gz"

View File

@@ -0,0 +1,20 @@
#
# weechat -- sec.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/weechat/quickstart/
#
[crypt]
cipher = aes256
hash_algo = sha256
passphrase_command = ""
salt = on
[data]
__passphrase__ = on
libera_password = "A4AE45D22CFB0C1925758BD65F1EC012311404966DFCFDB714E0150D3F17E867AB969A616A06BDF9F7F5B7443249552EF3B613D8F40AECE9D164"

View File

@@ -0,0 +1,33 @@
#
# weechat -- spell.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/weechat/quickstart/
#
[color]
misspelled = lightred
suggestion = default
suggestion_delimiter_dict = cyan
suggestion_delimiter_word = cyan
[check]
commands = "away,command,cycle,kick,kickban,me,msg,notice,part,query,quit,topic"
default_dict = ""
during_search = off
enabled = on
real_time = off
suggestions = -1
word_min_length = 2
[dict]
[look]
suggestion_delimiter_dict = " / "
suggestion_delimiter_word = ","
[option]

View File

@@ -0,0 +1,14 @@
#
# weechat -- tcl.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/weechat/quickstart/
#
[look]
check_license = off
eval_keep_context = on

View File

@@ -0,0 +1,66 @@
#
# weechat -- trigger.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/weechat/quickstart/
#
[look]
enabled = on
monitor_strip_colors = off
[color]
flag_command = lightgreen
flag_conditions = yellow
flag_post_action = lightblue
flag_regex = lightcyan
flag_return_code = lightmagenta
identifier = cyan
regex = white
replace = cyan
[trigger]
beep.arguments = ""
beep.command = "/print -beep"
beep.conditions = "${tg_displayed} && ${tg_tags} !!- ,notify_none, && (${tg_highlight} || ${tg_msg_pv}) && ${buffer.notify} > 0"
beep.enabled = on
beep.hook = print
beep.post_action = none
beep.regex = ""
beep.return_code = ok
cmd_pass.arguments = "5000|input_text_display;5000|history_add;5000|irc_command_auth"
cmd_pass.command = ""
cmd_pass.conditions = ""
cmd_pass.enabled = on
cmd_pass.hook = modifier
cmd_pass.post_action = none
cmd_pass.regex = "s==^((/(msg|m|quote) +(-server +[^ \n]+ +)?nickserv +(id|identify|set +password|ghost +[^ \n]+|release +[^ \n]+|regain +[^ \n]+|recover +[^ \n]+|setpass +[^ \n]+) +)|/oper +[^ \n]+ +|/quote +pass +|/secure +(passphrase|decrypt|set +[^ \n]+) +)([^\n]*)==${re:1}${hide:*,${re:+}}"
cmd_pass.return_code = ok
cmd_pass_register.arguments = "5000|input_text_display;5000|history_add;5000|irc_command_auth"
cmd_pass_register.command = ""
cmd_pass_register.conditions = ""
cmd_pass_register.enabled = on
cmd_pass_register.hook = modifier
cmd_pass_register.post_action = none
cmd_pass_register.regex = "s==^(/(msg|m|quote) +(-server +[^ \n]+ +)?nickserv +register +)([^ \n]+)([^\n]*)==${re:1}${hide:*,${re:4}}${re:5}"
cmd_pass_register.return_code = ok
msg_auth.arguments = "5000|irc_message_auth"
msg_auth.command = ""
msg_auth.conditions = ""
msg_auth.enabled = on
msg_auth.hook = modifier
msg_auth.post_action = none
msg_auth.regex = "s==^(.*(id|identify|set +password|register|ghost +[^ ]+|release +[^ ]+|regain +[^ ]+|recover +[^ ]+) +)(.*)==${re:1}${hide:*,${re:+}}"
msg_auth.return_code = ok
server_pass.arguments = "5000|input_text_display;5000|history_add"
server_pass.command = ""
server_pass.conditions = ""
server_pass.enabled = on
server_pass.hook = modifier
server_pass.post_action = none
server_pass.regex = "s==^(/(server|connect) [^\n]*-(sasl_)?password=)([^ \n]+)([^\n]*)==${re:1}${hide:*,${re:4}}${re:5}"
server_pass.return_code = ok

View File

@@ -0,0 +1,19 @@
#
# weechat -- typing.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/weechat/quickstart/
#
[look]
delay_purge_paused = 30
delay_purge_typing = 6
delay_set_paused = 10
enabled_nicks = off
enabled_self = off
input_min_chars = 4
item_max_length = 0

View File

@@ -0,0 +1,697 @@
#
# weechat -- weechat.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/weechat/quickstart/
#
config_version = 4
[debug]
[startup]
command_after_plugins = ""
command_before_plugins = ""
display_logo = on
display_version = on
sys_rlimit = ""
[look]
align_end_of_lines = message
align_multiline_words = on
bar_more_down = "++"
bar_more_left = "<<"
bar_more_right = ">>"
bar_more_up = "--"
bare_display_exit_on_input = on
bare_display_time_format = "%H:%M"
buffer_auto_renumber = on
buffer_notify_default = all
buffer_position = end
buffer_search_case_sensitive = off
buffer_search_force_default = off
buffer_search_history = local
buffer_search_regex = off
buffer_search_where = prefix_message
buffer_time_format = "%H:%M:%S"
buffer_time_same = ""
chat_space_right = off
color_basic_force_bold = off
color_inactive_buffer = on
color_inactive_message = on
color_inactive_prefix = on
color_inactive_prefix_buffer = on
color_inactive_time = on
color_inactive_window = on
color_nick_offline = off
color_pairs_auto_reset = 5
color_real_white = off
command_chars = ""
command_incomplete = off
config_permissions = "600"
confirm_quit = on
confirm_upgrade = off
day_change = on
day_change_message_1date = "-- %a, %d %b %Y --"
day_change_message_2dates = "-- %%a, %%d %%b %%Y (%a, %d %b %Y) --"
eat_newline_glitch = off
emphasized_attributes = ""
highlight = ""
highlight_disable_regex = ""
highlight_prefix = on
highlight_regex = ""
highlight_tags = ""
hotlist_add_conditions = "${away} || ${buffer.num_displayed} == 0 || ${info:relay_client_count,weechat,connected} > 0"
hotlist_buffer_separator = ", "
hotlist_count_max = 2
hotlist_count_min_msg = 2
hotlist_names_count = 3
hotlist_names_length = 0
hotlist_names_level = 12
hotlist_names_merged_buffers = off
hotlist_prefix = "H: "
hotlist_remove = merged
hotlist_short_names = on
hotlist_sort = "-priority,time,time_usec"
hotlist_suffix = ""
hotlist_unique_numbers = on
hotlist_update_on_buffer_switch = on
input_cursor_scroll = 20
input_multiline_lead_linebreak = on
input_share = none
input_share_overwrite = off
input_undo_max = 32
item_away_message = on
item_buffer_filter = "*"
item_buffer_zoom = "!"
item_mouse_status = "M"
item_time_format = "%H:%M"
jump_current_to_previous_buffer = on
jump_previous_buffer_when_closing = on
jump_smart_back_to_buffer = on
key_bind_safe = on
key_grab_delay = 800
mouse = off
nick_color_force = ""
nick_color_hash = djb2
nick_color_hash_salt = ""
nick_color_stop_chars = "_|["
nick_prefix = ""
nick_suffix = ""
paste_bracketed = on
paste_bracketed_timer_delay = 10
paste_max_lines = 100
prefix_action = " *"
prefix_align = right
prefix_align_max = 0
prefix_align_min = 0
prefix_align_more = "+"
prefix_align_more_after = on
prefix_buffer_align = right
prefix_buffer_align_max = 0
prefix_buffer_align_more = "+"
prefix_buffer_align_more_after = on
prefix_error = "=!="
prefix_join = "-->"
prefix_network = "--"
prefix_quit = "<--"
prefix_same_nick = ""
prefix_same_nick_middle = ""
prefix_suffix = "│"
quote_nick_prefix = "<"
quote_nick_suffix = ">"
quote_time_format = "%H:%M:%S"
read_marker = line
read_marker_always_show = off
read_marker_string = "- "
read_marker_update_on_buffer_switch = on
save_config_on_exit = on
save_config_with_fsync = off
save_layout_on_exit = none
scroll_amount = 3
scroll_bottom_after_switch = off
scroll_page_percent = 100
search_text_not_found_alert = on
separator_horizontal = "-"
separator_vertical = ""
tab_width = 1
time_format = "%a, %d %b %Y %T"
window_auto_zoom = off
window_separator_horizontal = on
window_separator_vertical = on
window_title = ""
word_chars_highlight = "!\u00A0,-,_,|,alnum"
word_chars_input = "!\u00A0,-,_,|,alnum"
[palette]
100 = "blue"
[color]
bar_more = lightmagenta
chat = default
chat_bg = default
chat_buffer = white
chat_channel = white
chat_day_change = cyan
chat_delimiters = 22
chat_highlight = yellow
chat_highlight_bg = green
chat_host = cyan
chat_inactive_buffer = default
chat_inactive_window = 240
chat_nick = lightcyan
chat_nick_colors = "cyan,magenta,green,brown,lightblue,lightcyan,lightmagenta,lightgreen,31,35,38,40,49,63,70,80,92,99,112,126,130,138,142,148,160,162,167,169,174,176,178,184,186,210,212,215,248"
chat_nick_offline = 242
chat_nick_offline_highlight = default
chat_nick_offline_highlight_bg = 17
chat_nick_other = cyan
chat_nick_prefix = green
chat_nick_self = white
chat_nick_suffix = green
chat_prefix_action = white
chat_prefix_buffer = 180
chat_prefix_buffer_inactive_buffer = default
chat_prefix_error = yellow
chat_prefix_join = lightgreen
chat_prefix_more = lightmagenta
chat_prefix_network = magenta
chat_prefix_quit = lightred
chat_prefix_suffix = 24
chat_read_marker = magenta
chat_read_marker_bg = default
chat_server = brown
chat_status_disabled = red
chat_status_enabled = green
chat_tags = red
chat_text_found = yellow
chat_text_found_bg = lightmagenta
chat_time = default
chat_time_delimiters = brown
chat_value = cyan
chat_value_null = blue
emphasized = yellow
emphasized_bg = 54
eval_syntax_colors = "green,lightred,lightblue,lightmagenta,yellow,cyan"
input_actions = lightgreen
input_text_not_found = red
item_away = yellow
nicklist_away = 240
nicklist_group = green
separator = 236
status_count_highlight = magenta
status_count_msg = brown
status_count_other = default
status_count_private = green
status_data_highlight = lightmagenta
status_data_msg = yellow
status_data_other = default
status_data_private = lightgreen
status_filter = green
status_modes = default
status_more = yellow
status_mouse = lightgreen
status_name = white
status_name_insecure = lightmagenta
status_name_tls = white
status_nicklist_count = default
status_number = yellow
status_time = default
[completion]
base_word_until_cursor = on
case_sensitive = on
command_inline = on
default_template = "%(nicks)|%(irc_channels)"
nick_add_space = on
nick_case_sensitive = off
nick_completer = ": "
nick_first_only = off
nick_ignore_chars = "[]`_-^"
partial_completion_alert = on
partial_completion_command = off
partial_completion_command_arg = off
partial_completion_count = on
partial_completion_other = off
partial_completion_templates = "config_options"
[history]
display_default = 5
max_buffer_lines_minutes = 0
max_buffer_lines_number = 4096
max_commands = 100
max_visited_buffers = 50
[proxy]
[network]
connection_timeout = 60
gnutls_ca_system = on
gnutls_ca_user = ""
gnutls_handshake_timeout = 30
proxy_curl = ""
[plugin]
autoload = "*"
extension = ".so,.dll"
path = "${weechat_data_dir}/plugins"
save_config_on_unload = on
[signal]
sighup = "${if:${info:weechat_headless}?/reload:/quit -yes}"
sigquit = "/quit -yes"
sigterm = "/quit -yes"
sigusr1 = ""
sigusr2 = ""
[bar]
buflist.color_bg = default
buflist.color_bg_inactive = default
buflist.color_delim = default
buflist.color_fg = default
buflist.conditions = ""
buflist.filling_left_right = vertical
buflist.filling_top_bottom = columns_vertical
buflist.hidden = off
buflist.items = "buflist"
buflist.position = left
buflist.priority = 0
buflist.separator = on
buflist.size = 0
buflist.size_max = 0
buflist.type = root
fset.color_bg = default
fset.color_bg_inactive = default
fset.color_delim = cyan
fset.color_fg = default
fset.conditions = "${buffer.full_name} == fset.fset"
fset.filling_left_right = vertical
fset.filling_top_bottom = horizontal
fset.hidden = off
fset.items = "fset"
fset.position = top
fset.priority = 0
fset.separator = on
fset.size = 3
fset.size_max = 3
fset.type = window
input.color_bg = default
input.color_bg_inactive = default
input.color_delim = cyan
input.color_fg = default
input.conditions = ""
input.filling_left_right = vertical
input.filling_top_bottom = horizontal
input.hidden = off
input.items = "[input_prompt]+(away),[input_search],[input_paste],input_text"
input.position = bottom
input.priority = 1000
input.separator = off
input.size = 0
input.size_max = 0
input.type = window
nicklist.color_bg = default
nicklist.color_bg_inactive = default
nicklist.color_delim = cyan
nicklist.color_fg = default
nicklist.conditions = "${nicklist}"
nicklist.filling_left_right = vertical
nicklist.filling_top_bottom = columns_vertical
nicklist.hidden = off
nicklist.items = "buffer_nicklist"
nicklist.position = right
nicklist.priority = 200
nicklist.separator = on
nicklist.size = 0
nicklist.size_max = 0
nicklist.type = window
status.color_bg = 234
status.color_bg_inactive = 232
status.color_delim = cyan
status.color_fg = default
status.conditions = ""
status.filling_left_right = vertical
status.filling_top_bottom = horizontal
status.hidden = off
status.items = "[time],[buffer_last_number],[buffer_plugin],buffer_number+:+buffer_name+(buffer_modes)+{buffer_nicklist_count}+buffer_zoom+buffer_filter,mouse_status,scroll,[lag],[hotlist],[typing],completion"
status.position = bottom
status.priority = 500
status.separator = off
status.size = 1
status.size_max = 0
status.type = window
title.color_bg = 234
title.color_bg_inactive = 232
title.color_delim = cyan
title.color_fg = default
title.conditions = ""
title.filling_left_right = vertical
title.filling_top_bottom = horizontal
title.hidden = off
title.items = "buffer_title"
title.position = top
title.priority = 500
title.separator = off
title.size = 1
title.size_max = 0
title.type = window
[custom_bar_item]
[layout]
[buffer]
[notify]
[filter]
irc_smart = on;*;irc_smart_filter;*
[key]
backspace = "/input delete_previous_char"
ctrl-_ = "/input undo"
ctrl-a = "/input move_beginning_of_line"
ctrl-b = "/input move_previous_char"
ctrl-c,_ = "/input insert \x1F"
ctrl-c,b = "/input insert \x02"
ctrl-c,c = "/input insert \x03"
ctrl-c,d = "/input insert \x04"
ctrl-c,i = "/input insert \x1D"
ctrl-c,o = "/input insert \x0F"
ctrl-c,v = "/input insert \x16"
ctrl-d = "/input delete_next_char"
ctrl-down = "/input history_global_next"
ctrl-e = "/input move_end_of_line"
ctrl-f = "/input move_next_char"
ctrl-f1 = "/bar scroll buflist * -100%"
ctrl-f11 = "/bar scroll nicklist * -100%"
ctrl-f12 = "/bar scroll nicklist * +100%"
ctrl-f2 = "/bar scroll buflist * +100%"
ctrl-h = "/window -1"
ctrl-k = "/input delete_end_of_line"
ctrl-l = "/window refresh"
ctrl-left = "/input move_previous_word"
ctrl-n = "/buffer +1"
ctrl-o = "/input history_use_get_next"
ctrl-p = "/buffer -1"
ctrl-r = "/input search_history"
ctrl-right = "/input move_next_word"
ctrl-s = "/input search_text_here"
ctrl-t = "/input transpose_chars"
ctrl-u = "/input delete_beginning_of_line"
ctrl-up = "/input history_global_previous"
ctrl-w = "/input delete_previous_word_whitespace"
ctrl-x = "/buffer switch"
ctrl-y = "/input clipboard_paste"
ctrl-z = "/sys suspend"
delete = "/input delete_next_char"
down = "/input history_next"
end = "/input move_end_of_line"
f1 = "/bar scroll buflist * -100%"
f10 = "/bar scroll title * +30%"
f11 = "/bar scroll nicklist * -100%"
f12 = "/bar scroll nicklist * +100%"
f2 = "/bar scroll buflist * +100%"
f5 = "/buffer -1"
f6 = "/buffer +1"
f7 = "/window -1"
f8 = "/window +1"
f9 = "/bar scroll title * -30%"
home = "/input move_beginning_of_line"
left = "/input move_previous_char"
meta-- = "/filter toggle @"
meta-/ = "/buffer jump last_displayed"
meta-0 = "/buffer *10"
meta-1 = "/buffer *1"
meta-2 = "/buffer *2"
meta-3 = "/buffer *3"
meta-4 = "/buffer *4"
meta-5 = "/buffer *5"
meta-6 = "/buffer *6"
meta-7 = "/buffer *7"
meta-8 = "/buffer *8"
meta-9 = "/buffer *9"
meta-< = "/buffer jump prev_visited"
meta-= = "/filter toggle"
meta-> = "/buffer jump next_visited"
meta-B = "/buflist toggle"
meta-N = "/bar toggle nicklist"
meta-R = "/input delete_input"
meta-U = "/allbuf /buffer set unread"
meta-_ = "/input redo"
meta-a = "/buffer jump smart"
meta-b = "/input move_previous_word"
meta-backspace = "/input delete_previous_word"
meta-ctrl-k = "/input delete_end_of_input"
meta-ctrl-u = "/input delete_beginning_of_input"
meta-d = "/input delete_next_word"
meta-down = "/buffer +1"
meta-end = "/window scroll_bottom"
meta-f = "/input move_next_word"
meta-f1 = "/bar scroll buflist * b"
meta-f11 = "/bar scroll nicklist * b"
meta-f12 = "/bar scroll nicklist * e"
meta-f2 = "/bar scroll buflist * e"
meta-h,meta-R = "/hotlist restore -all"
meta-h,meta-c = "/hotlist clear"
meta-h,meta-m = "/hotlist remove"
meta-h,meta-r = "/hotlist restore"
meta-home = "/window scroll_top"
meta-j,0,1 = "/buffer *1"
meta-j,0,2 = "/buffer *2"
meta-j,0,3 = "/buffer *3"
meta-j,0,4 = "/buffer *4"
meta-j,0,5 = "/buffer *5"
meta-j,0,6 = "/buffer *6"
meta-j,0,7 = "/buffer *7"
meta-j,0,8 = "/buffer *8"
meta-j,0,9 = "/buffer *9"
meta-j,1,0 = "/buffer *10"
meta-j,1,1 = "/buffer *11"
meta-j,1,2 = "/buffer *12"
meta-j,1,3 = "/buffer *13"
meta-j,1,4 = "/buffer *14"
meta-j,1,5 = "/buffer *15"
meta-j,1,6 = "/buffer *16"
meta-j,1,7 = "/buffer *17"
meta-j,1,8 = "/buffer *18"
meta-j,1,9 = "/buffer *19"
meta-j,2,0 = "/buffer *20"
meta-j,2,1 = "/buffer *21"
meta-j,2,2 = "/buffer *22"
meta-j,2,3 = "/buffer *23"
meta-j,2,4 = "/buffer *24"
meta-j,2,5 = "/buffer *25"
meta-j,2,6 = "/buffer *26"
meta-j,2,7 = "/buffer *27"
meta-j,2,8 = "/buffer *28"
meta-j,2,9 = "/buffer *29"
meta-j,3,0 = "/buffer *30"
meta-j,3,1 = "/buffer *31"
meta-j,3,2 = "/buffer *32"
meta-j,3,3 = "/buffer *33"
meta-j,3,4 = "/buffer *34"
meta-j,3,5 = "/buffer *35"
meta-j,3,6 = "/buffer *36"
meta-j,3,7 = "/buffer *37"
meta-j,3,8 = "/buffer *38"
meta-j,3,9 = "/buffer *39"
meta-j,4,0 = "/buffer *40"
meta-j,4,1 = "/buffer *41"
meta-j,4,2 = "/buffer *42"
meta-j,4,3 = "/buffer *43"
meta-j,4,4 = "/buffer *44"
meta-j,4,5 = "/buffer *45"
meta-j,4,6 = "/buffer *46"
meta-j,4,7 = "/buffer *47"
meta-j,4,8 = "/buffer *48"
meta-j,4,9 = "/buffer *49"
meta-j,5,0 = "/buffer *50"
meta-j,5,1 = "/buffer *51"
meta-j,5,2 = "/buffer *52"
meta-j,5,3 = "/buffer *53"
meta-j,5,4 = "/buffer *54"
meta-j,5,5 = "/buffer *55"
meta-j,5,6 = "/buffer *56"
meta-j,5,7 = "/buffer *57"
meta-j,5,8 = "/buffer *58"
meta-j,5,9 = "/buffer *59"
meta-j,6,0 = "/buffer *60"
meta-j,6,1 = "/buffer *61"
meta-j,6,2 = "/buffer *62"
meta-j,6,3 = "/buffer *63"
meta-j,6,4 = "/buffer *64"
meta-j,6,5 = "/buffer *65"
meta-j,6,6 = "/buffer *66"
meta-j,6,7 = "/buffer *67"
meta-j,6,8 = "/buffer *68"
meta-j,6,9 = "/buffer *69"
meta-j,7,0 = "/buffer *70"
meta-j,7,1 = "/buffer *71"
meta-j,7,2 = "/buffer *72"
meta-j,7,3 = "/buffer *73"
meta-j,7,4 = "/buffer *74"
meta-j,7,5 = "/buffer *75"
meta-j,7,6 = "/buffer *76"
meta-j,7,7 = "/buffer *77"
meta-j,7,8 = "/buffer *78"
meta-j,7,9 = "/buffer *79"
meta-j,8,0 = "/buffer *80"
meta-j,8,1 = "/buffer *81"
meta-j,8,2 = "/buffer *82"
meta-j,8,3 = "/buffer *83"
meta-j,8,4 = "/buffer *84"
meta-j,8,5 = "/buffer *85"
meta-j,8,6 = "/buffer *86"
meta-j,8,7 = "/buffer *87"
meta-j,8,8 = "/buffer *88"
meta-j,8,9 = "/buffer *89"
meta-j,9,0 = "/buffer *90"
meta-j,9,1 = "/buffer *91"
meta-j,9,2 = "/buffer *92"
meta-j,9,3 = "/buffer *93"
meta-j,9,4 = "/buffer *94"
meta-j,9,5 = "/buffer *95"
meta-j,9,6 = "/buffer *96"
meta-j,9,7 = "/buffer *97"
meta-j,9,8 = "/buffer *98"
meta-j,9,9 = "/buffer *99"
meta-j,meta-f = "/buffer -"
meta-j,meta-l = "/buffer +"
meta-j,meta-r = "/server raw"
meta-j,meta-s = "/server jump"
meta-k = "/input grab_key_command"
meta-l = "/window bare"
meta-left = "/buffer -1"
meta-m = "/mute mouse toggle"
meta-n = "/window scroll_next_highlight"
meta-p = "/window scroll_previous_highlight"
meta-pgdn = "/window scroll_down"
meta-pgup = "/window scroll_up"
meta-r = "/input delete_line"
meta-return = "/input insert \n"
meta-right = "/buffer +1"
meta-s = "/mute spell toggle"
meta-u = "/window scroll_unread"
meta-up = "/buffer -1"
meta-w,meta-b = "/window balance"
meta-w,meta-down = "/window down"
meta-w,meta-left = "/window left"
meta-w,meta-right = "/window right"
meta-w,meta-s = "/window swap"
meta-w,meta-up = "/window up"
meta-x = "/buffer zoom"
meta-z = "/window zoom"
pgdn = "/window page_down"
pgup = "/window page_up"
return = "/input return"
right = "/input move_next_char"
shift-down = "/input move_next_line"
shift-end = "/input move_end_of_input"
shift-home = "/input move_beginning_of_input"
shift-left = "/input move_previous_char"
shift-right = "/input move_next_char"
shift-tab = "/input complete_previous"
shift-up = "/input move_previous_line"
tab = "/input complete_next"
up = "/input history_previous"
[key_search]
ctrl-q = "/input search_stop"
ctrl-r = "/input search_previous"
ctrl-s = "/input search_next"
ctrl-x = "/input search_switch_regex"
down = "/input search_next"
meta-c = "/input search_switch_case"
return = "/input search_stop_here"
tab = "/input search_switch_where"
up = "/input search_previous"
[key_histsearch]
ctrl-o = "/input history_use_get_next"
ctrl-q = "/input search_stop"
ctrl-r = "/input search_previous"
ctrl-s = "/input search_next"
ctrl-x = "/input search_switch_regex"
down = "/input search_next"
meta-c = "/input search_switch_case"
return = "/input search_stop_here"
tab = "/input search_switch_where"
up = "/input search_previous"
[key_cursor]
@chat:Q = "hsignal:chat_quote_time_prefix_message;/cursor stop"
@chat:l = "hsignal:chat_quote_focused_line;/cursor stop"
@chat:m = "hsignal:chat_quote_message;/cursor stop"
@chat:q = "hsignal:chat_quote_prefix_message;/cursor stop"
@item(buffer_nicklist):K = "/window ${_window_number};/kickban ${nick}"
@item(buffer_nicklist):b = "/window ${_window_number};/ban ${nick}"
@item(buffer_nicklist):k = "/window ${_window_number};/kick ${nick}"
@item(buffer_nicklist):q = "/window ${_window_number};/query ${nick};/cursor stop"
@item(buffer_nicklist):w = "/window ${_window_number};/whois ${nick}"
down = "/cursor move down"
left = "/cursor move left"
meta-down = "/cursor move edge_bottom"
meta-end = "/cursor move bottom_right"
meta-home = "/cursor move top_left"
meta-left = "/cursor move edge_left"
meta-right = "/cursor move edge_right"
meta-shift-down = "/cursor move area_down"
meta-shift-left = "/cursor move area_left"
meta-shift-right = "/cursor move area_right"
meta-shift-up = "/cursor move area_up"
meta-up = "/cursor move edge_top"
return = "/cursor stop"
right = "/cursor move right"
up = "/cursor move up"
[key_mouse]
@*:button3 = "/cursor go ${_x},${_y}"
@bar(buflist):ctrl-wheeldown = "hsignal:buflist_mouse"
@bar(buflist):ctrl-wheelup = "hsignal:buflist_mouse"
@bar(input):button2 = "/input grab_mouse_area"
@bar(nicklist):button1-gesture-down = "/bar scroll nicklist ${_window_number} +100%"
@bar(nicklist):button1-gesture-down-long = "/bar scroll nicklist ${_window_number} e"
@bar(nicklist):button1-gesture-up = "/bar scroll nicklist ${_window_number} -100%"
@bar(nicklist):button1-gesture-up-long = "/bar scroll nicklist ${_window_number} b"
@bar:wheeldown = "/bar scroll ${_bar_name} ${_window_number} +20%"
@bar:wheelup = "/bar scroll ${_bar_name} ${_window_number} -20%"
@chat(fset.fset):button1 = "/window ${_window_number};/fset -go ${fset_option_index}"
@chat(fset.fset):button2* = "hsignal:fset_mouse"
@chat(fset.fset):wheeldown = "/fset -down 5"
@chat(fset.fset):wheelup = "/fset -up 5"
@chat(irc.list_*):button1 = "/window ${_window_number};/list -go ${_chat_line_y}"
@chat(irc.list_*):button2* = "hsignal:irc_list_mouse"
@chat(irc.list_*):wheeldown = "/list -down 5"
@chat(irc.list_*):wheelup = "/list -up 5"
@chat(script.scripts):button1 = "/window ${_window_number};/script -go ${_chat_line_y}"
@chat(script.scripts):button2 = "/window ${_window_number};/script -go ${_chat_line_y};/script installremove -q ${script_name_with_extension}"
@chat(script.scripts):wheeldown = "/script -down 5"
@chat(script.scripts):wheelup = "/script -up 5"
@chat:button1 = "/window ${_window_number}"
@chat:button1-gesture-left = "/window ${_window_number};/buffer -1"
@chat:button1-gesture-left-long = "/window ${_window_number};/buffer 1"
@chat:button1-gesture-right = "/window ${_window_number};/buffer +1"
@chat:button1-gesture-right-long = "/window ${_window_number};/buffer +"
@chat:ctrl-wheeldown = "/window scroll_horiz -window ${_window_number} +10%"
@chat:ctrl-wheelup = "/window scroll_horiz -window ${_window_number} -10%"
@chat:wheeldown = "/window scroll_down -window ${_window_number}"
@chat:wheelup = "/window scroll_up -window ${_window_number}"
@item(buffer_nicklist):button1 = "/window ${_window_number};/query ${nick}"
@item(buffer_nicklist):button1-gesture-left = "/window ${_window_number};/kick ${nick}"
@item(buffer_nicklist):button1-gesture-left-long = "/window ${_window_number};/kickban ${nick}"
@item(buffer_nicklist):button2 = "/window ${_window_number};/whois ${nick}"
@item(buffer_nicklist):button2-gesture-left = "/window ${_window_number};/ban ${nick}"
@item(buflist):button1* = "hsignal:buflist_mouse"
@item(buflist):button2* = "hsignal:buflist_mouse"
@item(buflist2):button1* = "hsignal:buflist_mouse"
@item(buflist2):button2* = "hsignal:buflist_mouse"
@item(buflist3):button1* = "hsignal:buflist_mouse"
@item(buflist3):button2* = "hsignal:buflist_mouse"
@item(buflist4):button1* = "hsignal:buflist_mouse"
@item(buflist4):button2* = "hsignal:buflist_mouse"
@item(buflist5):button1* = "hsignal:buflist_mouse"
@item(buflist5):button2* = "hsignal:buflist_mouse"

View File

@@ -0,0 +1,49 @@
#
# weechat -- xfer.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/weechat/quickstart/
#
[look]
auto_open_buffer = on
progress_bar_size = 20
pv_tags = "notify_private"
[color]
status_aborted = lightred
status_active = lightblue
status_connecting = yellow
status_done = lightgreen
status_failed = lightred
status_waiting = lightcyan
text = default
text_bg = default
text_selected = white
[network]
blocksize = 65536
fast_send = on
own_ip = ""
port_range = ""
send_ack = on
speed_limit_recv = 0
speed_limit_send = 0
timeout = 300
[file]
auto_accept_chats = off
auto_accept_files = off
auto_accept_nicks = ""
auto_check_crc32 = off
auto_rename = on
auto_resume = on
convert_spaces = on
download_path = "${weechat_data_dir}/xfer"
download_temporary_suffix = ".part"
upload_path = "~"
use_nick_in_filename = on

View File

@@ -0,0 +1,62 @@
[api]
pre_language = 'https://'
post_language = '.wikipedia.org/w/api.php'
language = 'English'
language_changed_popup = true
article_language_changed_popup = true
[theme]
text = 'white'
title = 'red'
highlight = 'red'
background = 'black'
search_match = 'red'
highlight_text = 'white'
highlight_inactive = 'black'
[logging]
enabled = true
log_level = 'INFO'
[features]
links = true
toc = false
[keybindings.down]
key = 'j'
mode = 'normal'
[keybindings.up]
key = 'k'
mode = 'normal'
[keybindings.left]
key = 'h'
mode = 'normal'
[keybindings.right]
key = 'l'
mode = 'normal'
[keybindings.focus_next]
key = 'tab'
mode = 'normal'
[keybindings.focus_prev]
key = 'tab'
mode = 'shift'
[keybindings.toggle_language_selection]
key = 'f2'
mode = 'normal'
[keybindings.toggle_article_language_selection]
key = 'f3'
mode = 'normal'
[settings.toc]
position = 'Right'
title = 'Default'
min_width = 20
max_width = 60
scroll_x = true
scroll_y = true
item_format = '{NUMBER} {TEXT}'

View File

@@ -0,0 +1,5 @@
modmap:
- name: Caps Lock Remap
remap:
CapsLock: Esc

View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2024 Dmitry Nefedov
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2024 Dmitry Nefedov
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -0,0 +1,32 @@
<div align="center">
<img src="https://github.com/sxyazi/yazi/blob/main/assets/logo.png?raw=true" alt="Yazi logo" width="20%">
</div>
<h3 align="center">
Kanagawa Flavor for <a href="https://github.com/sxyazi/yazi">Yazi</a>
</h3>
## 👀 Preview
<img src="preview.png" width="600" />
## 🎨 Installation
```bash
ya pack -a dangooddd/kanagawa
```
## ⚙️ Usage
Add these lines to your `theme.toml` configuration file to use it:
```toml
[flavor]
dark = "kanagawa"
```
## 📜 License
The flavor is MIT-licensed, and the included tmTheme is also MIT-licensed.
Check the [LICENSE](LICENSE) and [LICENSE-tmtheme](LICENSE-tmtheme) file for more details.

View File

@@ -0,0 +1,136 @@
## Color palette
## Check https://github.com/rebelot/kanagawa.nvim for more details
# sumiInk0 "#16161d"
# sumiInk3 "#1f1f28" bg
# sumiInk4 "#2a2a37"
# sumiInk6 "#54546d"
# fujiWhite "#dcd7ba" fg
# fujiGray "#727169"
# peachRed "#ff5d62"
# autumnRed "#c34043"
# crystalBlue "#7e9cd8"
# waveRed "#e46876"
# carpYellow "#e6c384"
# springGreen "#98bb6c"
# autumnGreen "#76946a"
# oniViolet "#957fb8"
# waveAqua1 "#6a9589"
# surimiOrange "#ffa066"
# waveAqua2 "#7aa89f"
[manager]
marker_copied = { fg = "#98bb6c", bg = "#98bb6c" }
marker_cut = { fg = "#e46876", bg = "#e46876" }
marker_marked = { fg = "#957fb8", bg = "#957fb8" }
marker_selected = { fg = "#ffa066", bg = "#ffa066" }
cwd = { fg = "#e6c384" }
hovered = { reversed = true }
preview_hovered = { reversed = true }
find_keyword = { fg = "#ffa066", bg = "#1f1f28" }
find_position = {}
tab_active = { reversed = true }
tab_inactive = {}
tab_width = 1
count_copied = { fg = "#1f1f28", bg = "#98bb6c" }
count_cut = { fg = "#1f1f28", bg = "#e46876" }
count_selected = { fg = "#1f1f28", bg = "#e6c384" }
border_symbol = "│"
border_style = { fg = "#dcd7ba" }
[mode]
normal_main = { fg = "#1f1f28", bg = "#7e9cd8" }
normal_alt = { fg = "#7e9cd8", bg = "#2a2a37" }
select_main = { fg = "#1f1f28", bg = "#957fb8" }
select_alt = { fg = "#957fb8", bg = "#2a2a37" }
unset_main = { fg = "#1f1f28", bg = "#e6c384" }
unset_alt = { fg = "#e6c384", bg = "#2a2a37" }
[status]
separator_open = ""
separator_close = ""
separator_style = { fg = "reset", bg = "#2a2a37" }
progress_label = { fg = "#7e9cd8", bg = "#2a2a37", bold = true }
progress_normal = { fg = "#2a2a37", bg = "#1f1f28" }
progress_error = { fg = "#2a2a37", bg = "#1f1f28" }
perm_type = { fg = "#98bb6c" }
perm_read = { fg = "#e6c384" }
perm_write = { fg = "#ff5d62" }
perm_exec = { fg = "#7aa89f" }
perm_sep = { fg = "#957fb8" }
[pick]
border = { fg = "#7fb4ca" }
active = { fg = "#957fb8", bold = true }
inactive = {}
[input]
border = { fg = "#7fb4ca" }
title = {}
value = {}
selected = { reversed = true }
[completion]
border = { fg = "#7fb4ca" }
active = { reversed = true }
inactive = {}
[tasks]
border = { fg = "#7fb4ca" }
title = {}
hovered = { fg = "#957fb8" }
[which]
cols = 2
separator = " - "
separator_style = { fg = "#727169" }
mask = { bg = "#16161d" }
rest = { fg = "#727169" }
cand = { fg = "#7e9cd8" }
desc = { fg = "#54546d" }
[help]
on = { fg = "#7aa89f" }
run = { fg = "#957fb8" }
desc = {}
hovered = { reversed = true, bold = true }
footer = { fg = "#1f1f28", bg = "#dcd7ba" }
[notify]
title_info = { fg = "#98bb6c" }
title_warn = { fg = "#e6c384" }
title_error = { fg = "#ff5d62" }
[filetype]
rules = [
# images
{ mime = "image/*", fg = "#e6c384" },
# media
{ mime = "{audio,video}/*", fg = "#957fb8" },
# archives
{ mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", fg = "#e46876" },
# documents
{ mime = "application/{pdf,doc,rtf,vnd.*}", fg = "#6a9589" },
# broken links
{ name = "*", is = "orphan", fg = "#c34043" },
# executables
{ name = "*", is = "exec", fg = "#76946a" },
# fallback
{ name = "*", fg = "#dcd7ba" },
{ name = "*/", fg = "#7e9cd8" },
]

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 KiB

View File

@@ -0,0 +1,448 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>name</key>
<string>Kanagawa</string>
<key>settings</key>
<array>
<dict>
<key>settings</key>
<dict>
<key>background</key>
<string>#1F1F28</string>
<key>caret</key>
<string>#C8C093</string>
<key>foreground</key>
<string>#DCD7BA</string>
<key>invisibles</key>
<string>#54546D</string>
<key>lineHighlight</key>
<string>#2D4F67</string>
<key>selection</key>
<string>#2D4F67</string>
<key>findHighlight</key>
<string>#2D4F67</string>
<key>selectionBorder</key>
<string>#222218</string>
<key>gutterForeground</key>
<string>#54546D</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Comment</string>
<key>scope</key>
<string>comment</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#727169</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>String</string>
<key>scope</key>
<string>string</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#98BB6C</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Number</string>
<key>scope</key>
<string>constant.numeric</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D27E99</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Built-in constant</string>
<key>scope</key>
<string>constant.language</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#FFA066</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>User-defined constant</string>
<key>scope</key>
<string>constant.character, constant.other</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#E6C384</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable</string>
<key>scope</key>
<string>variable</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string>#E6C384</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Ruby's @variable</string>
<key>scope</key>
<string>variable.other.readwrite.instance</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string/>
<key>foreground</key>
<string>#E6C384</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>String interpolation</string>
<key>scope</key>
<string>constant.character.escaped, constant.character.escape, string source, string source.ruby</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string/>
<key>foreground</key>
<string>#C0A36E</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Keyword</string>
<key>scope</key>
<string>keyword</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#E46876</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage</string>
<key>scope</key>
<string>storage</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string/>
<key>foreground</key>
<string>#957FB8</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage type</string>
<key>scope</key>
<string>storage.type</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#957FB8</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Class name</string>
<key>scope</key>
<string>entity.name.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#7AA89F</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Inherited class</string>
<key>scope</key>
<string>entity.other.inherited-class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#7AA89F</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Function name</string>
<key>scope</key>
<string>entity.name.function</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string/>
<key>foreground</key>
<string>#7E9CD8</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Function argument</string>
<key>scope</key>
<string>variable.parameter</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b8b4d0</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tag name</string>
<key>scope</key>
<string>entity.name.tag</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string/>
<key>foreground</key>
<string>#7FB4CA</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tag attribute</string>
<key>scope</key>
<string>entity.other.attribute-name</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string/>
<key>foreground</key>
<string>#E6C384</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library function</string>
<key>scope</key>
<string>support.function</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string/>
<key>foreground</key>
<string>#7FB4CA</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library constant</string>
<key>scope</key>
<string>support.constant</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string/>
<key>foreground</key>
<string>#7FB4CA</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library class/type</string>
<key>scope</key>
<string>support.type, support.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#7AA89F</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library variable</string>
<key>scope</key>
<string>support.other.variable</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#FFA066</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Invalid</string>
<key>scope</key>
<string>invalid</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string/>
<key>foreground</key>
<string>#FF5D62</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Invalid deprecated</string>
<key>scope</key>
<string>invalid.deprecated</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#717C7C</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>JSON String</string>
<key>scope</key>
<string>meta.structure.dictionary.json string.quoted.double.json</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#957FB8</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>diff.header</string>
<key>scope</key>
<string>meta.diff, meta.diff.header</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#7E9CD8</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>diff.deleted</string>
<key>scope</key>
<string>markup.deleted</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#43242B</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>diff.inserted</string>
<key>scope</key>
<string>markup.inserted</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#2B3328</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>diff.changed</string>
<key>scope</key>
<string>markup.changed</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#49443C</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>constant.numeric.line-number.find-in-files - match</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#54546D</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>entity.name.filename</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#C8C093</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>message.error</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#E82424</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>JSON Punctuation</string>
<key>scope</key>
<string>punctuation.definition.string.begin.json - meta.structure.dictionary.value.json, punctuation.definition.string.end.json - meta.structure.dictionary.value.json</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#9CABCA</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>JSON Structure</string>
<key>scope</key>
<string>meta.structure.dictionary.json string.quoted.double.json</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#957FB8</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>JSON String</string>
<key>scope</key>
<string>meta.structure.dictionary.value.json string.quoted.double.json</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ffffff</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Escape Characters</string>
<key>scope</key>
<string>constant.character.escape</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#FF5D62</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regular Expressions</string>
<key>scope</key>
<string>string.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#E6C384</string>
</dict>
</dict>
</array>
<key>uuid</key>
<string>592FC036-6BB7-4676-A2F5-2894D48C8E33</string>
<key>colorSpaceName</key>
<string>sRGB</string>
<key>semanticClass</key>
<string>theme.dark.kanagawa</string>
</dict>
</plist>

View File

@@ -0,0 +1,19 @@
-- ~/.config/yazi/init.lua
require("bookmarks"):setup({
last_directory = { enable = true, persist = true, mode="dir" },
persist = "all",
desc_format = "full",
file_pick_mode = "hover",
custom_desc_input = false,
notify = {
enable = true,
timeout = 1,
message = {
new = "New bookmark '<key>' -> '<folder>'",
delete = "Deleted bookmark in '<key>'",
delete_all = "Deleted all bookmarks",
},
},
})

View File

@@ -0,0 +1,52 @@
[mgr]
# Custom mappings
prepend_keymap = [
#{ on = "<C-a>", run = "echo 'one'", desc = "Single command with `Ctrl + a`" },
# This is for drag and drop support of terminal filemanger (works also with signal and other applications)
{ on = [ "<C-n>" ], run = '''shell 'xdragon -x -T "$1"' --confirm''' },
# Lazygit in yazi
{on = [ "g", "i" ],run = "plugin lazygit",desc = "run lazygit"},
# Chmod in yazi
{on = [ "c", "m" ],run = "plugin chmod",desc = "Chmod on selected files"},
# Recover the last delted file
{ on = ["u"], run = "plugin restore", desc = "Restore last deleted files/folders" },
# Get the size of the cwd
{ on = [ "\\", "s" ], run = "plugin what-size", desc = "Calc size of selection or cwd" },
# Bookmark support
{on = [ "m" ],run = "plugin bookmarks save",desc = "Save current position as a bookmark"},
{on = [ "'" ],run = "plugin bookmarks jump",desc = "Jump to a bookmark"},
{on = [ "b", "d" ],run = "plugin bookmarks delete",desc = "Delete a bookmark"},
{on = [ "b", "D" ],run = "plugin bookmarks delete_all",desc = "Delete all bookmarks"},
# new linemodes
{on = [ "\\", "n", "m" ],run = "linemode mtime",desc = "Modified time"},
{on = [ "\\", "n", "n" ],run = "linemode none",desc = "no time"},
{on = [ "\\", "n", "b" ],run = "linemode btime",desc = "Birth time"},
]
# More mappings
append_keymap = [
# Default jumping to stuff
{ on = [ "g", "s" ], run = "cd ~/synced", desc = "Go to Synced folder" },
{ on = [ "g", "u" ], run = "cd ~/projects/university", desc = "Go to University folder" },
{ on = [ "g", "n" ], run = "cd ~/configuration", desc = "Go to config folder" },
{ on = [ "g", "p" ], run = "cd ~/projects", desc = "Go to projects folder" },
{ on = [ "g", "w" ], run = "cd ~/workspace_local", desc = "Go to workspace" },
{ on = [ "g", "e" ], run = "cd ~/configuration/dotfiles", desc = "Go to dotfilEs" },
{ on = [ "g", "r" ], run = "cd /", desc = "Go to root" },
{ on = [ "g", "b" ], run = "cd ~/synced/docs/books", desc = "Go to books" },
{ on = [ "g", "l" ], run = "cd ~/.local", desc = "Go to Local" },
{ on = [ "g", "v" ], run = "cd ~/synced/webdav_folder", desc = "Go to Webdav" },
{ on = [ "g", "o" ], run = "cd ~/Documents", desc = "Go to Docs" },
{ on = [ "g", "a" ], run = "cd ~/.cache", desc = "Go to Cache" },
{ on = [ "g", "t" ], run = "cd ~/.local/share/Trash", desc = "Go to Trash" },
{ on = [ "g", "U" ], run = "cd ~/projects/university/pdfs", desc = "Go to Uni PDF" },
]

View File

@@ -0,0 +1,29 @@
[[plugin.deps]]
use = "Lil-Dank/lazygit"
rev = "7a08a09"
hash = "a1fa2b3e1826c3a34804ea8c548e9f80"
[[plugin.deps]]
use = "yazi-rs/plugins:chmod"
rev = "b12a9ab"
hash = "2f1053f89d1a301a648ab181d0948e38"
[[plugin.deps]]
use = "boydaihungst/restore"
rev = "328dd88"
hash = "ad406e4a5ada589211e6ffe8bad3c983"
[[plugin.deps]]
use = "pirafrank/what-size"
rev = "f1c6b69"
hash = "6e789212eb41d937bab04877ca361099"
[[plugin.deps]]
use = "dedukun/bookmarks"
rev = "a70648a"
hash = "b836fb264381f35dec79930438a906d5"
[[flavor.deps]]
use = "dangooddd/kanagawa"
rev = "d98f0c3"
hash = "cada780385f75abbcfbf5343256b441"

View File

@@ -0,0 +1,19 @@
Copyright (c) 2024 dedukun
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View File

@@ -0,0 +1,146 @@
# bookmarks.yazi
A [Yazi](https://github.com/sxyazi/yazi) plugin that adds the basic functionality of [vi-like marks](https://neovim.io/doc/user/motion.html#mark-motions).
https://github.com/dedukun/bookmarks.yazi/assets/25795432/9a9fe345-dd06-442e-99f1-8475ab22fad5
## Requirements
- [Yazi](https://github.com/sxyazi/yazi) v25.4.8+
## Features
- Create/delete bookmarks
- Custom Notifications
- `''` to go back to the previous folder
- Bookmarks persistence
## Installation
```sh
ya pack -a dedukun/bookmarks
```
## Import/Export bookmarks
This plugin uses [Yazi's DDS](https://yazi-rs.github.io/docs/dds/) for bookmark persistence, as such,
the bookmarks are saved in DDS's state file (`~/.local/state/yazi/.dds` on Linux and `C:\Users\USERNAME\AppData\Roaming\yazi\state\.dds` on Windows)
**_NOTE:_** This system may be used by other plugins that you have installed, so this file might have more data than just the bookmarks.
## Configuration
Add this to your `keymap.toml`:
```toml
[[manager.prepend_keymap]]
on = [ "m" ]
run = "plugin bookmarks save"
desc = "Save current position as a bookmark"
[[manager.prepend_keymap]]
on = [ "'" ]
run = "plugin bookmarks jump"
desc = "Jump to a bookmark"
[[manager.prepend_keymap]]
on = [ "b", "d" ]
run = "plugin bookmarks delete"
desc = "Delete a bookmark"
[[manager.prepend_keymap]]
on = [ "b", "D" ]
run = "plugin bookmarks delete_all"
desc = "Delete all bookmarks"
```
---
Additionally there are configurations that can be done using the plugin's `setup` function in Yazi's `init.lua`, i.e. `~/.config/yazi/init.lua`.
The following are the default configurations:
```lua
-- ~/.config/yazi/init.lua
require("bookmarks"):setup({
last_directory = { enable = false, persist = false, mode="dir" },
persist = "none",
desc_format = "full",
file_pick_mode = "hover",
custom_desc_input = false,
notify = {
enable = false,
timeout = 1,
message = {
new = "New bookmark '<key>' -> '<folder>'",
delete = "Deleted bookmark in '<key>'",
delete_all = "Deleted all bookmarks",
},
},
})
```
### `last_directory`
When enabled, a new bookmark is automatically created in `'` which allows the user to jump back to
the last directory.
There's also the option to enable persistence to this automatic bookmark.
Finally, there's a `mode` option with the following options:
| Value | Description |
| ------ | ------------------------------------------------------------ |
| `jump` | It saves the position before the last used mark |
| `mark` | It saves the last created mark |
| `dir` | Default, it saves the last visited directory (old behaviour) |
### `persist`
When enabled the bookmarks will persist, i.e. if you close and reopen Yazi they will still be
present.
There are three possible values for this option:
| Value | Description |
| ------ | -------------------------------------------------------------------------------------------------------------------- |
| `none` | The default value, i.e., no persistance |
| `all` | All the bookmarks are saved in persistent memory |
| `vim` | This mode emulates the vim global marks, i.e., only the bookmarks in upper case (A-Z) are saved to persistent memory |
### `desc_format`
The format for the bookmark description.
There are two possible values for this option:
| Value | Description |
| -------- | ----------------------------------------------------------------------------------------------- |
| `full` | The default, it shows the full path of the bookmark, i.e., the parent folder + the hovered file |
| `parent` | Only shows the parent folder of the bookmark |
### `file_pick_mode`
The mode for choosing which directory to bookmark.
There are two possible values for this option:
| Value | Description |
| -------- | ------------------------------------------------------------------- |
| `hover` | The default, it uses the path of the hovered file for new bookmarks |
| `parent` | Uses the path of the parent folder for new bookmarks |
### `notify`
When enabled, notifications will be shown when the user creates a new bookmark and deletes one or
all saved bookmarks.
By default the notification has a 1 second timeout that can be changed with `notify.timeout`.
Furthermore, you can customize the notification messages with `notify.message`.
For the `new` and `delete` messages, the `<key>` and `<folder>` keywords can be used, which will be replaced by the respective new/deleted bookmark's associated key and folder.
### `custom_desc_input`
When enabled, user can change description for new bookmark before it is saved.
By default the custom description input is filled with path.

View File

@@ -0,0 +1,383 @@
--- @since 25.4.8
-- stylua: ignore
local SUPPORTED_KEYS = {
{ on = "0"}, { on = "1"}, { on = "2"}, { on = "3"}, { on = "4"},
{ on = "5"}, { on = "6"}, { on = "7"}, { on = "8"}, { on = "9"},
{ on = "A"}, { on = "B"}, { on = "C"}, { on = "D"}, { on = "E"},
{ on = "F"}, { on = "G"}, { on = "H"}, { on = "I"}, { on = "J"},
{ on = "K"}, { on = "L"}, { on = "M"}, { on = "N"}, { on = "O"},
{ on = "P"}, { on = "Q"}, { on = "R"}, { on = "S"}, { on = "T"},
{ on = "U"}, { on = "V"}, { on = "W"}, { on = "X"}, { on = "Y"}, { on = "Z"},
{ on = "a"}, { on = "b"}, { on = "c"}, { on = "d"}, { on = "e"},
{ on = "f"}, { on = "g"}, { on = "h"}, { on = "i"}, { on = "j"},
{ on = "k"}, { on = "l"}, { on = "m"}, { on = "n"}, { on = "o"},
{ on = "p"}, { on = "q"}, { on = "r"}, { on = "s"}, { on = "t"},
{ on = "u"}, { on = "v"}, { on = "w"}, { on = "x"}, { on = "y"}, { on = "z"},
}
local _send_notification = ya.sync(
function(state, message)
ya.notify {
title = "Bookmarks",
content = message,
timeout = state.notify.timeout,
}
end
)
local _get_real_index = ya.sync(function(state, idx)
for key, value in pairs(state.bookmarks) do
if value.on == SUPPORTED_KEYS[idx].on then
return key
end
end
return nil
end)
local _get_bookmark_file = ya.sync(function(state)
local folder = cx.active.current
if state.file_pick_mode == "parent" or not folder.hovered then
return { url = folder.cwd, is_parent = true }
end
return { url = folder.hovered.url, is_parent = false }
end)
local _generate_description = ya.sync(function(state, file)
-- if this is true, we don't have information about the folder, so just return the folder url
if file.is_parent then
return tostring(file.url)
end
if state.desc_format == "parent" then
return tostring(file.url.parent)
end
-- full description
return tostring(file.url)
end)
local _load_state = ya.sync(function(state)
ps.sub_remote("@bookmarks", function(body)
if not state.bookmarks and body then
state.bookmarks = {}
for _, value in pairs(body) do
table.insert(state.bookmarks, value)
end
end
end)
end)
local _save_state = ya.sync(function(state, bookmarks)
if not bookmarks then
ps.pub_to(0, "@bookmarks", nil)
return
end
local save_state = {}
if state.persist == "all" then
save_state = bookmarks
else -- VIM mode
local idx = 1
for _, value in pairs(bookmarks) do
-- Only save bookmarks in upper case keys
if string.match(value.on, "%u") then
save_state[idx] = value
idx = idx + 1
end
end
end
ps.pub_to(0, "@bookmarks", save_state)
end)
local _load_last = ya.sync(function(state)
ps.sub_remote("@bookmarks-last", function(body)
state.last_dir = body
if state.last_mode ~= "dir" then
ps.unsub_remote("@bookmarks-last")
end
end)
end)
local _save_last = ya.sync(function(state, persist, imediate)
local file = _get_bookmark_file()
local curr = {
on = "'",
desc = _generate_description(file),
path = tostring(file.url),
is_parent = file.is_parent,
}
if imediate then
state.curr_dir = nil
state.last_dir = curr
else
state.last_dir = state.curr_dir
state.curr_dir = curr
end
if persist and state.last_dir then
ps.pub_to(0, "@bookmarks-last", state.last_dir)
end
end)
local get_last_mode = ya.sync(function(state) return state.last_mode end)
local save_last_dir = ya.sync(function(state)
ps.sub("cd", function() _save_last(state.last_persist, false) end)
ps.sub("hover", function()
local file = _get_bookmark_file()
state.curr_dir.desc = _generate_description(file)
state.curr_dir.path = tostring(file.url)
end)
end)
local save_last_jump = ya.sync(function(state) _save_last(state.last_persist, true) end)
local save_last_mark = ya.sync(function(state) _save_last(state.last_persist, true) end)
local _is_custom_desc_input_enabled = ya.sync(function(state) return state.custom_desc_input end)
-- ***********************************************
-- **============= C O M M A N D S =============**
-- ***********************************************
local save_bookmark = ya.sync(function(state, idx, custom_desc)
local file = _get_bookmark_file()
state.bookmarks = state.bookmarks or {}
local _idx = _get_real_index(idx)
if not _idx then
_idx = #state.bookmarks + 1
end
local bookmark_desc = tostring(file.url)
if custom_desc then
bookmark_desc = tostring(custom_desc)
end
state.bookmarks[_idx] = {
on = SUPPORTED_KEYS[idx].on,
desc = bookmark_desc,
path = tostring(file.url),
is_parent = file.is_parent,
}
-- Custom sorting function
table.sort(state.bookmarks, function(a, b)
local key_a, key_b = a.on, b.on
-- Numbers first
if key_a:match("%d") and not key_b:match("%d") then
return true
elseif key_b:match("%d") and not key_a:match("%d") then
return false
end
-- Uppercase before lowercase
if key_a:match("%u") and key_b:match("%l") then
return true
elseif key_b:match("%u") and key_a:match("%l") then
return false
end
-- Regular alphabetical sorting
return key_a < key_b
end)
if state.persist then
_save_state(state.bookmarks)
end
if state.notify and state.notify.enable then
local message = state.notify.message.new
message, _ = message:gsub("<key>", state.bookmarks[_idx].on)
message, _ = message:gsub("<folder>", state.bookmarks[_idx].desc)
_send_notification(message)
end
if get_last_mode() == "mark" then
save_last_mark()
end
end)
local all_bookmarks = ya.sync(function(state, append_last_dir)
local bookmarks = {}
if state.bookmarks then
for _, value in pairs(state.bookmarks) do
table.insert(bookmarks, value)
end
end
if append_last_dir and state.last_dir then
table.insert(bookmarks, state.last_dir)
end
return bookmarks
end)
local delete_bookmark = ya.sync(function(state, idx)
if state.notify and state.notify.enable then
local message = state.notify.message.delete
message, _ = message:gsub("<key>", state.bookmarks[idx].on)
message, _ = message:gsub("<folder>", state.bookmarks[idx].desc)
_send_notification(message)
end
table.remove(state.bookmarks, idx)
if state.persist then
_save_state(state.bookmarks)
end
end)
local delete_all_bookmarks = ya.sync(function(state)
state.bookmarks = nil
if state.persist then
_save_state(nil)
end
if state.notify and state.notify.enable then
_send_notification(state.notify.message.delete_all)
end
end)
return {
entry = function(_, job)
local action = job.args[1]
if not action then
return
end
if action == "save" then
local key = ya.which { cands = SUPPORTED_KEYS, silent = true }
if key then
if _is_custom_desc_input_enabled() then
local value, event = ya.input {
title = "Save with custom description:",
position = { "top-center", y = 3, w = 60 },
value = tostring(_get_bookmark_file().url),
}
if event ~= 1 then
return
end
save_bookmark(key, value)
return
end
save_bookmark(key)
end
return
end
if action == "delete_all" then
return delete_all_bookmarks()
end
local bookmarks = all_bookmarks(action == "jump")
local selected = #bookmarks > 0 and ya.which { cands = bookmarks }
if not selected then
return
end
if action == "jump" then
if get_last_mode() == "jump" then
save_last_jump()
end
if bookmarks[selected].is_parent then
ya.mgr_emit("cd", { bookmarks[selected].path })
else
ya.mgr_emit("reveal", { bookmarks[selected].path })
end
elseif action == "delete" then
delete_bookmark(selected)
end
end,
setup = function(state, args)
if not args then
return
end
if type(args.last_directory) == "table" then
if args.last_directory.enable then
if args.last_directory.mode == "mark" then
state.last_persist = args.last_directory.persist
state.last_mode = "mark"
elseif args.last_directory.mode == "jump" then
state.last_persist = args.last_directory.persist
state.last_mode = "jump"
elseif args.last_directory.mode == "dir" then
state.last_persist = args.last_directory.persist
state.last_mode = "dir"
save_last_dir()
else
-- default
state.last_persist = args.last_directory.persist
state.last_mode = "dir"
save_last_dir()
end
if args.last_directory.persist then
_load_last()
end
end
end
if args.persist == "all" or args.persist == "vim" then
state.persist = args.persist
_load_state()
end
if args.desc_format == "parent" then
state.desc_format = "parent"
else
state.desc_format = "full"
end
if args.file_pick_mode == "parent" then
state.file_pick_mode = "parent"
else
state.file_pick_mode = "hover"
end
if type(args.custom_desc_input) == "boolean" then
state.custom_desc_input = args.custom_desc_input
end
state.notify = {
enable = false,
timeout = 1,
message = {
new = "New bookmark '<key>' -> '<folder>'",
delete = "Deleted bookmark in '<key>'",
delete_all = "Deleted all bookmarks",
},
}
if type(args.notify) == "table" then
if type(args.notify.enable) == "boolean" then
state.notify.enable = args.notify.enable
end
if type(args.notify.timeout) == "number" then
state.notify.timeout = args.notify.timeout
end
if type(args.notify.message) == "table" then
if type(args.notify.message.new) == "string" then
state.notify.message.new = args.notify.message.new
end
if type(args.notify.message.delete) == "string" then
state.notify.message.delete = args.notify.message.delete
end
if type(args.notify.message.delete_all) == "string" then
state.notify.message.delete_all = args.notify.message.delete_all
end
end
end
end,
}

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