diff --git a/config/.config/arkrc b/config/.config/arkrc
deleted file mode 100644
index 715c36e..0000000
--- a/config/.config/arkrc
+++ /dev/null
@@ -1,7 +0,0 @@
-[General]
-LockSidebar=true
-ShowSidebar=true
-
-[MainWindow]
-StatusBar=Disabled
-ToolBarsMovable=Disabled
diff --git a/config/.config/btop/btop.conf b/config/.config/btop/btop.conf
deleted file mode 100644
index 77142d3..0000000
--- a/config/.config/btop/btop.conf
+++ /dev/null
@@ -1,254 +0,0 @@
-#? 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 = ""
diff --git a/config/.config/castero/castero.conf b/config/.config/castero/castero.conf
deleted file mode 100644
index 6f3e1bc..0000000
--- a/config/.config/castero/castero.conf
+++ /dev/null
@@ -1,315 +0,0 @@
-# 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
diff --git a/config/.config/clipse/clipboard_history.json b/config/.config/clipse/clipboard_history.json
deleted file mode 100644
index c24a79d..0000000
--- a/config/.config/clipse/clipboard_history.json
+++ /dev/null
@@ -1 +0,0 @@
-{"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}]}
\ No newline at end of file
diff --git a/config/.config/clipse/clipse.log b/config/.config/clipse/clipse.log
deleted file mode 100644
index 83be91e..0000000
--- a/config/.config/clipse/clipse.log
+++ /dev/null
@@ -1,3 +0,0 @@
-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
diff --git a/config/.config/clipse/config.json b/config/.config/clipse/config.json
deleted file mode 100644
index 7952499..0000000
--- a/config/.config/clipse/config.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "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
- }
-}
\ No newline at end of file
diff --git a/config/.config/clipse/custom_theme.json b/config/.config/clipse/custom_theme.json
deleted file mode 100644
index 3759206..0000000
--- a/config/.config/clipse/custom_theme.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "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"
-}
\ No newline at end of file
diff --git a/config/.config/cointop/config.toml b/config/.config/cointop/config.toml
deleted file mode 100644
index 76c5e2e..0000000
--- a/config/.config/cointop/config.toml
+++ /dev/null
@@ -1,122 +0,0 @@
-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
diff --git a/config/.config/dolphinrc b/config/.config/dolphinrc
deleted file mode 100644
index a3e0169..0000000
--- a/config/.config/dolphinrc
+++ /dev/null
@@ -1,13 +0,0 @@
-[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
diff --git a/config/.config/emacs/eln-cache/29.4-34619dd7/site-start-b807e9b1-8f4312e0.eln b/config/.config/emacs/eln-cache/29.4-34619dd7/site-start-b807e9b1-8f4312e0.eln
deleted file mode 100755
index 7bfc9d2..0000000
Binary files a/config/.config/emacs/eln-cache/29.4-34619dd7/site-start-b807e9b1-8f4312e0.eln and /dev/null differ
diff --git a/config/.config/emacs/eln-cache/30.1-5ce9200b/site-start-c2eb548f-8f4312e0.eln b/config/.config/emacs/eln-cache/30.1-5ce9200b/site-start-c2eb548f-8f4312e0.eln
deleted file mode 100755
index b94dbe3..0000000
Binary files a/config/.config/emacs/eln-cache/30.1-5ce9200b/site-start-c2eb548f-8f4312e0.eln and /dev/null differ
diff --git a/config/.config/emacs/eln-cache/30.1-a4618eb1/site-start-335fd812-f1c28c94.eln b/config/.config/emacs/eln-cache/30.1-a4618eb1/site-start-335fd812-f1c28c94.eln
deleted file mode 100755
index f0846a9..0000000
Binary files a/config/.config/emacs/eln-cache/30.1-a4618eb1/site-start-335fd812-f1c28c94.eln and /dev/null differ
diff --git a/config/.config/emacs/eln-cache/30.1-b306151b/site-start-4d2fbafe-8f4312e0.eln b/config/.config/emacs/eln-cache/30.1-b306151b/site-start-4d2fbafe-8f4312e0.eln
deleted file mode 100755
index 4fdc1ce..0000000
Binary files a/config/.config/emacs/eln-cache/30.1-b306151b/site-start-4d2fbafe-8f4312e0.eln and /dev/null differ
diff --git a/config/.config/emacs/init.el b/config/.config/emacs/init.el
deleted file mode 100644
index daea666..0000000
--- a/config/.config/emacs/init.el
+++ /dev/null
@@ -1 +0,0 @@
-;; emacs config
diff --git a/config/.config/foot/foot.ini b/config/.config/foot/foot.ini
deleted file mode 100644
index c2d83c3..0000000
--- a/config/.config/foot/foot.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-font=NotoSansMono-Regular:size=15
-background=000000
diff --git a/config/.config/fuzzel/fuzzel.ini b/config/.config/fuzzel/fuzzel.ini
deleted file mode 100644
index e768a02..0000000
--- a/config/.config/fuzzel/fuzzel.ini
+++ /dev/null
@@ -1,15 +0,0 @@
-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
diff --git a/config/.config/htop/htoprc b/config/.config/htop/htoprc
deleted file mode 100644
index 6d6c3a4..0000000
--- a/config/.config/htop/htoprc
+++ /dev/null
@@ -1,63 +0,0 @@
-# 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
diff --git a/config/.config/hypr/hyprpaper.conf b/config/.config/hypr/hyprpaper.conf
index 39cea38..c685198 100644
--- a/config/.config/hypr/hyprpaper.conf
+++ b/config/.config/hypr/hyprpaper.conf
@@ -1,12 +1,2 @@
-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
-
-
+preload = /home/jonas/workspace/backg.jpg
+wallpaper = ,/home/jonas/workspace/backg.jpg
diff --git a/config/.config/i3/config b/config/.config/i3/config
deleted file mode 100644
index 60ae0d1..0000000
--- a/config/.config/i3/config
+++ /dev/null
@@ -1,190 +0,0 @@
-# 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 window’s width.
- # Pressing right will grow the window’s width.
- # Pressing up will shrink the window’s height.
- # Pressing down will grow the window’s height.
- bindsym j resize shrink width 10 px or 10 ppt
- bindsym 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
-}
diff --git a/config/.config/iamb/config.toml b/config/.config/iamb/config.toml
deleted file mode 100644
index 1764e95..0000000
--- a/config/.config/iamb/config.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-[profiles."uni-goettingen.de"]
-user_id = "@j.hahn02:uni-goettingen.de"
diff --git a/config/.config/keepassxc/keepassxc.ini b/config/.config/keepassxc/keepassxc.ini
deleted file mode 100644
index 1280854..0000000
--- a/config/.config/keepassxc/keepassxc.ini
+++ /dev/null
@@ -1,14 +0,0 @@
-[General]
-ConfigVersion=2
-
-[GUI]
-ApplicationTheme=dark
-HideMenubar=false
-HideToolbar=true
-
-[PasswordGenerator]
-AdditionalChars=
-ExcludedChars=
-Length=14
-Numbers=true
-SpecialChars=true
diff --git a/config/.config/konsole.kmessagebox b/config/.config/konsole.kmessagebox
deleted file mode 100644
index 96dc191..0000000
--- a/config/.config/konsole.kmessagebox
+++ /dev/null
@@ -1,2 +0,0 @@
-[General]
-CloseAllTabs=3
diff --git a/config/.config/konsolerc b/config/.config/konsolerc
deleted file mode 100644
index 96ccac2..0000000
--- a/config/.config/konsolerc
+++ /dev/null
@@ -1,8 +0,0 @@
-[Desktop Entry]
-DefaultProfile=MainProfile.profile
-
-[General]
-ConfigVersion=1
-
-[UiSettings]
-ColorScheme=AdwaitaDark
diff --git a/config/.config/neofetch/config.conf b/config/.config/neofetch/config.conf
deleted file mode 100644
index 28ba94a..0000000
--- a/config/.config/neofetch/config.conf
+++ /dev/null
@@ -1,880 +0,0 @@
-# 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"
diff --git a/config/.config/neomutt/mailcap b/config/.config/neomutt/mailcap
deleted file mode 100644
index 02f29dd..0000000
--- a/config/.config/neomutt/mailcap
+++ /dev/null
@@ -1,5 +0,0 @@
-text/html; firefox %s
-text/plain; nvim %s
-application/pdf; zathura --fork %s
-image/png; feh %s
-image/jpeg; feh %s
diff --git a/config/.config/neomutt/neomuttrc b/config/.config/neomutt/neomuttrc
deleted file mode 100644
index ffea215..0000000
--- a/config/.config/neomutt/neomuttrc
+++ /dev/null
@@ -1,106 +0,0 @@
-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
diff --git a/config/.config/nixpkgs/config.nix b/config/.config/nixpkgs/config.nix
deleted file mode 100644
index 3f43c6e..0000000
--- a/config/.config/nixpkgs/config.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- packageOverrides = pkgs: {
- nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/main.tar.gz") {
- inherit pkgs;
- };
- };
-}
diff --git a/config/.config/nwg-look/config b/config/.config/nwg-look/config
deleted file mode 100644
index a244fe5..0000000
--- a/config/.config/nwg-look/config
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "export-settings-ini": true,
- "export-gtkrc-20": true,
- "export-index-theme": true,
- "export-xsettingsd": true
-}
\ No newline at end of file
diff --git a/config/.config/pavucontrol.ini b/config/.config/pavucontrol.ini
deleted file mode 100644
index d67bbba..0000000
--- a/config/.config/pavucontrol.ini
+++ /dev/null
@@ -1,8 +0,0 @@
-[window]
-width=500
-height=400
-sinkInputType=1
-sourceOutputType=1
-sinkType=0
-sourceType=1
-showVolumeMeters=1
diff --git a/config/.config/qalculate/qalculate-qt.cfg b/config/.config/qalculate/qalculate-qt.cfg
deleted file mode 100644
index 82f86c2..0000000
--- a/config/.config/qalculate/qalculate-qt.cfg
+++ /dev/null
@@ -1,354 +0,0 @@
-
-[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=6 + 5
-history_result=11
-history_time=1743752005
-history_expression=(6+5)×324
-history_parse=(6 + 5) × 324
-history_result=3564
-history_time=1743752006
-history_expression=((6+5)×324)−143
-history_parse=((6 + 5) × 324) − 143
-history_result=3421
-history_time=1743752021
-history_expression=plot(((6+5)×324)−143)
-history_parse=plot(((6 + 5) × 324) − 143)
-history_result=0
-history_time=1743963251
-history_expression=3×7
-history_parse=3 × 7
-history_result=21
-history_time=1743973370
-history_expression=plot(1)
-history_parse=plot(1)
-history_result=0
-history_time=1744283151
-history_expression=21×3
-history_parse=21 × 3
-history_result=63
-history_time=1744888841
-history_expression=plot horzcat(d)
-history_parse=plot(horzcat(day))
-history_result=0
-history_time=1744888846
-history_expression=plot horzcat(3d)
-history_parse=plot(horzcat(3 days))
-history_result=0
-history_time=1744888856
-history_expression=3d −8d
-history_parse=(3 days) − (8 days)
-history_result=−5 d
-history_time=1744888860
-history_expression=3d −8s
-history_parse=(3 days) − (8 seconds)
-history_result=2 d + 23 h + 59 min + 52 s
-history_time=1746774540
-history_expression=2min
-history_parse=2 minutes
-history_result=120 s
-history_time=1748979700
-history_expression=01h50min
-history_parse=1 hour × 50 minutes × 5 hours × 0 minute × 8 hours × 20 minutes × 7 hours × 10 minutes × 4 hours × 30 minutes × 7 hours × 50 minutes × 11 hours × 50 minutes × 4 hours × 0 minute
-history_result=0 min16
-history_time=1748979733
-history_expression=01h50min+
-history_parse=((1 hour) + (50 minutes)) + ((5 hours) + (0 minute)) + ((8 hours) + (20 minutes)) + ((7 hours) + (10 minutes)) + ((4 hours) + (30 minutes)) + ((7 hours) + (50 minutes)) + ((11 hours) + (50 minutes)) + ((4 hours) + (0 minute))
-history_result=2 d + 2 h + 30 min
-history_time=1748979845
-history_expression=24 × 12
-history_parse=24 × 12
-history_result=288
-history_time=1749131235
-history_expression=36/pi
-history_parse=36 ∕ pi
-history_result_approximate=11.459 155 90
-history_time=1749739743
-history_expression=0.1s/10nF 1/(ln(1−0.2V/800V)−ln(1−4.2V/800V))
-history_parse=(((0.1 second) ∕ (10 nanofarads)) × 1) ∕ (ln(1 − ((0.2 volt) ∕ (800 volts))) − ln(1 − ((4.2 volts) ∕ (800 volts))))
-history_result_approximate=1.994 495 822 GΩ
-history_time=1749739766
-history_expression=integral sinx from 0 to pi
-history_parse=integrate(sin(x radians) × rontobyte·meters) × 0
-history_result_approximate=0.000 000 000π B·m
-history_time=1749740493
-history_expression=e^x(^2
-history_parse=ex × 2
-history_result_approximate=2 × 2.718 281 828x
-history_time=1749740495
-history_expression=(e^x(^2)
-history_parse=ex × 2
-history_result_approximate=2 × 2.718 281 828x
-history_time=1749740786
-history_expression=lim x−>0 x^2
-history_parse=link·meter × x
-history_result=(12 573 ∕ (62 500x))(x2 m2)
-history_time=1749810709
-history_expression=1g/cm to kg/m
-history_parse=1 gram ∕ centimeter
-history_result=0.1 kg ∕ m
-history_time=1749959212
-history_expression=1/2 year
-history_parse=(1 ∕ 2) years
-history_result=0.5 aj
-history_time=1749959216
-history_expression=1/2 year to seconds
-history_parse=(1 ∕ 2) years
-history_result=15 778 800 s
-history_time=1749994252
-history_expression=inv(1/sqrt(2) matrix(2,2,[1,1,1−1]))
-history_parse=inv((1 ∕ sqrt(2)) × matrix(2, 2, [1 1 (1 − 1)]))
-history_result=[0 (−1 ∕ √(2)); 0 (1 ∕ √(2))] ∕ 0
-history_result_approximate=inv(0.707 106 781 2 × matrix(2, 2, [1 1 0.000 000 000]))
-history_time=1750100978
-history_expression=ε_0
-history_parse=ElectricConstant
-history_result_approximate=8.854 187 82 nF ∕ km
-history_time=1750101026
-history_expression=1/((c^2)×ε_0)
-history_parse=1 ∕ (SpeedOfLight2 × ElectricConstant)
-history_result_approximate=1.256 637 061 mH ∕ km
-history_time=1750101055
-history_expression=μ_0
-history_parse=MagneticConstant
-history_result_approximate=1.256 637 061 mH ∕ km
-history_time=1750547653
-history_expression=01h50min+
-history_parse=((1 hour) + (50 minutes)) + ((5 hours) + (0 minute)) + ((8 hours) + (20 minutes)) + ((7 hours) + (10 minutes)) + ((4 hours) + (30 minutes)) + ((7 hours) + (50 minutes)) + ((11 hours) + (50 minutes)) + ((4 hours) + (0 minute)) + ((2 hours) + (0 minute)) + ((3 hours) + (10 minutes)) + ((15 hours) + (10 minutes))
-history_result=2 d + 22 h + 50 min
-history_time=1752824632
-history_expression=0.988c × 31.6 us
-history_parse=(0.988 × SpeedOfLight) × (31.6 microseconds)
-history_result_approximate=9.359 760 373 km
-history_time=1752824799
-history_expression=0.998c × 2 us
-history_parse=(0.998 × SpeedOfLight) × (2 microseconds)
-history_result_approximate=598.385 746 2 m
-history_time=1754678052
-history_expression=90kB × 10000
-history_parse=(90 kilobytes) × 10 000
-history_result=900 MB
-history_time=1754692078
-history_expression=01h50min+
-history_parse=((1 hour) + (50 minutes)) + ((5 hours) + (0 minute)) + ((8 hours) + (20 minutes)) + ((7 hours) + (10 minutes)) + ((4 hours) + (30 minutes)) + ((7 hours) + (50 minutes)) + ((11 hours) + (50 minutes)) + ((4 hours) + (0 minute)) + ((2 hours) + (0 minute)) + ((3 hours) + (10 minutes)) + ((15 hours) + (10 minutes)) + ((1 hour) + (20 minutes)) + ((4 hours) + (20 minutes)) + ((6 hours) + (0 minute)) + ((6 hours) + (20 minutes)) + ((6 hours) + (30 minutes))
-history_result=3 d + 23 h + 20 min
-history_time=1754692152
-history_expression=01h50min+
-history_parse=((1 hour) + (50 minutes)) + ((5 hours) + (0 minute)) + ((8 hours) + (20 minutes)) + ((7 hours) + (10 minutes)) + ((4 hours) + (30 minutes)) + ((7 hours) + (50 minutes)) + ((11 hours) + (50 minutes)) + ((4 hours) + (0 minute)) + ((2 hours) + (0 minute)) + ((3 hours) + (10 minutes)) + ((15 hours) + (10 minutes)) + ((1 hour) + (20 minutes)) + ((4 hours) + (20 minutes)) + ((6 hours) + (0 minute)) + ((6 hours) + (20 minutes)) + ((6 hours) + (30 minutes)) + (inch·hour)
-history_result=60 in·min + 5720 min
-history_time=1754692158
-history_expression=01h50min+
-history_parse=((1 hour) + (50 minutes)) + ((5 hours) + (0 minute)) + ((8 hours) + (20 minutes)) + ((7 hours) + (10 minutes)) + ((4 hours) + (30 minutes)) + ((7 hours) + (50 minutes)) + ((11 hours) + (50 minutes)) + ((4 hours) + (0 minute)) + ((2 hours) + (0 minute)) + ((3 hours) + (10 minutes)) + ((15 hours) + (10 minutes)) + ((1 hour) + (20 minutes)) + ((4 hours) + (20 minutes)) + ((6 hours) + (0 minute)) + ((6 hours) + (20 minutes)) + ((6 hours) + (30 minutes))
-history_result=95 h + 20 min
-history_time=1754692168
-history_expression=01h50min+
-history_parse=((1 hour) + (50 minutes)) + ((5 hours) + (0 minute)) + ((8 hours) + (20 minutes)) + ((7 hours) + (10 minutes)) + ((4 hours) + (30 minutes)) + ((7 hours) + (50 minutes)) + ((11 hours) + (50 minutes)) + ((4 hours) + (0 minute)) + ((2 hours) + (0 minute)) + ((3 hours) + (10 minutes)) + ((15 hours) + (10 minutes)) + ((1 hour) + (20 minutes)) + ((4 hours) + (20 minutes)) + ((6 hours) + (0 minute)) + ((6 hours) + (20 minutes)) + ((6 hours) + (30 minutes))
-history_result_approximate=4 × 23.833 333 33 h
-history_time=1754692175
-history_expression=01h50min+
-history_parse=((1 hour) + (50 minutes)) + ((5 hours) + (0 minute)) + ((8 hours) + (20 minutes)) + ((7 hours) + (10 minutes)) + ((4 hours) + (30 minutes)) + ((7 hours) + (50 minutes)) + ((11 hours) + (50 minutes)) + ((4 hours) + (0 minute)) + ((2 hours) + (0 minute)) + ((3 hours) + (10 minutes)) + ((15 hours) + (10 minutes)) + ((1 hour) + (20 minutes)) + ((4 hours) + (20 minutes)) + ((6 hours) + (0 minute)) + ((6 hours) + (20 minutes)) + ((6 hours) + (30 minutes))
-history_result=95 h + 20 min
-history_time=1754692280
-history_expression=01h50min+
-history_parse=((1 hour) + (50 minutes)) + ((5 hours) + (0 minute)) + ((8 hours) + (20 minutes)) + ((7 hours) + (10 minutes)) + ((4 hours) + (30 minutes)) + ((7 hours) + (50 minutes)) + ((11 hours) + (50 minutes)) + ((4 hours) + (0 minute)) + ((3 hours) + (0 minute)) + ((3 hours) + (10 minutes)) + ((15 hours) + (10 minutes)) + ((1 hour) + (20 minutes)) + ((4 hours) + (20 minutes)) + ((6 hours) + (0 minute)) + ((6 hours) + (20 minutes)) + ((6 hours) + (30 minutes))
-history_result=4 d + 20 min
-history_time=1756493228
-history_expression=1 × 12 × 20
-history_parse=1 × 12 × 20
-history_result=240
-history_time=1756493458
-history_expression=2×12
-history_parse=2 × 12
-history_result=24
-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,1−1]))
-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(1−0.2V/800V)−ln(1−4.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
diff --git a/config/.config/ranger/commands.py b/config/.config/ranger/commands.py
deleted file mode 100644
index 2031756..0000000
--- a/config/.config/ranger/commands.py
+++ /dev/null
@@ -1,62 +0,0 @@
-# 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" 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
-
- 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".
- 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 and -1 for 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()
diff --git a/config/.config/ranger/commands_full.py b/config/.config/ranger/commands_full.py
deleted file mode 100644
index 932baf7..0000000
--- a/config/.config/ranger/commands_full.py
+++ /dev/null
@@ -1,2122 +0,0 @@
-# -*- coding: utf-8 -*-
-# This file is part of ranger, the console file manager.
-# This configuration file is licensed under the same terms as ranger.
-# ===================================================================
-#
-# NOTE: If you copied this file to /etc/ranger/commands_full.py or
-# ~/.config/ranger/commands_full.py, then it will NOT be loaded by ranger,
-# and only serve as a reference.
-#
-# ===================================================================
-# This file contains ranger's commands.
-# It's all in python; lines beginning with # are comments.
-#
-# Note that additional commands are automatically generated from the methods
-# of the class ranger.core.actions.Actions.
-#
-# You can customize commands in the files /etc/ranger/commands.py (system-wide)
-# and ~/.config/ranger/commands.py (per user).
-# They have the same syntax as this file. In fact, you can just copy this
-# file to ~/.config/ranger/commands_full.py with
-# `ranger --copy-config=commands_full' and make your modifications, don't
-# forget to rename it to commands.py. You can also use
-# `ranger --copy-config=commands' to copy a short sample commands.py that
-# has everything you need to get started.
-# But make sure you update your configs when you update ranger.
-#
-# ===================================================================
-# Every class defined here which is a subclass of `Command' will be used as a
-# command in ranger. Several methods are defined to interface with ranger:
-# execute(): called when the command is executed.
-# cancel(): called when closing the console.
-# tab(tabnum): called when is pressed.
-# quick(): called after each keypress.
-#
-# tab() argument tabnum is 1 for and -1 for by default
-#
-# The return values for tab() can be either:
-# None: There is no tab completion
-# A string: Change the console to this string
-# A list/tuple/generator: cycle through every item in it
-#
-# The return value for quick() can be:
-# False: Nothing happens
-# True: Execute the command afterwards
-#
-# The return value for execute() and cancel() doesn't matter.
-#
-# ===================================================================
-# Commands have certain attributes and methods that facilitate parsing of
-# the arguments:
-#
-# self.line: The whole line that was written in the console.
-# self.args: A list of all (space-separated) arguments to the command.
-# self.quantifier: If this command was mapped to the key "X" and
-# the user pressed 6X, self.quantifier will be 6.
-# self.arg(n): The n-th argument, or an empty string if it doesn't exist.
-# self.rest(n): The n-th argument plus everything that followed. For example,
-# if the command was "search foo bar a b c", rest(2) will be "bar a b c"
-# self.start(n): Anything before the n-th argument. For example, if the
-# command was "search foo bar a b c", start(2) will be "search foo"
-#
-# ===================================================================
-# And this is a little reference for common ranger functions and objects:
-#
-# self.fm: A reference to the "fm" object which contains most information
-# about ranger.
-# self.fm.notify(string): Print the given string on the screen.
-# self.fm.notify(string, bad=True): Print the given string in RED.
-# self.fm.reload_cwd(): Reload the current working directory.
-# self.fm.thisdir: The current working directory. (A File object.)
-# self.fm.thisfile: The current file. (A File object too.)
-# self.fm.thistab.get_selection(): A list of all selected files.
-# self.fm.execute_console(string): Execute the string as a ranger command.
-# self.fm.open_console(string): Open the console with the given string
-# already typed in for you.
-# self.fm.move(direction): Moves the cursor in the given direction, which
-# can be something like down=3, up=5, right=1, left=1, to=6, ...
-#
-# File objects (for example self.fm.thisfile) have these useful attributes and
-# methods:
-#
-# tfile.path: The path to the file.
-# tfile.basename: The base name only.
-# tfile.load_content(): Force a loading of the directories content (which
-# obviously works with directories only)
-# tfile.is_directory: True/False depending on whether it's a directory.
-#
-# For advanced commands it is unavoidable to dive a bit into the source code
-# of ranger.
-# ===================================================================
-
-from __future__ import (absolute_import, division, print_function)
-
-from collections import deque
-import os
-import re
-from io import open
-
-from ranger import PY3
-from ranger.api.commands import Command
-
-
-class alias(Command):
- """:alias
-
- Copies the oldcommand as newcommand.
- """
-
- context = 'browser'
- resolve_macros = False
-
- def execute(self):
- if not self.arg(1) or not self.arg(2):
- self.fm.notify('Syntax: alias ', bad=True)
- return
-
- self.fm.commands.alias(self.arg(1), self.rest(2))
-
-
-class echo(Command):
- """:echo
-
- Display the text in the statusbar.
- """
-
- def execute(self):
- self.fm.notify(self.rest(1))
-
-
-class cd(Command):
- """:cd [-r]
-
- The cd command changes the directory.
- If the path is a file, selects that file.
- The command 'cd -' is equivalent to typing ``.
- Using the option "-r" will get you to the real path.
- """
-
- def execute(self):
- if self.arg(1) == '-r':
- self.shift()
- destination = os.path.realpath(self.rest(1))
- if os.path.isfile(destination):
- self.fm.select_file(destination)
- return
- elif self.arg(1) == '-e':
- self.shift()
- destination = os.path.realpath(os.path.expandvars(self.rest(1)))
- if os.path.isfile(destination):
- self.fm.select_file(destination)
- return
- else:
- destination = self.rest(1)
-
- if not destination:
- destination = '~'
-
- if destination == '-':
- self.fm.enter_bookmark('`')
- else:
- self.fm.cd(destination)
-
- def _tab_args(self):
- # dest must be rest because path could contain spaces
- if self.arg(1) == '-r':
- start = self.start(2)
- dest = self.rest(2)
- else:
- start = self.start(1)
- dest = self.rest(1)
-
- if dest:
- head, tail = os.path.split(os.path.expanduser(dest))
- if head:
- dest_exp = os.path.join(os.path.normpath(head), tail)
- else:
- dest_exp = tail
- else:
- dest_exp = ''
- return (start, dest_exp, os.path.join(self.fm.thisdir.path, dest_exp),
- dest.endswith(os.path.sep))
-
- @staticmethod
- def _tab_paths(dest, dest_abs, ends_with_sep):
- if not dest:
- try:
- return next(os.walk(dest_abs))[1], dest_abs
- except (OSError, StopIteration):
- return [], ''
-
- if ends_with_sep:
- try:
- return [os.path.join(dest, path) for path in next(os.walk(dest_abs))[1]], ''
- except (OSError, StopIteration):
- return [], ''
-
- return None, None
-
- def _tab_match(self, path_user, path_file):
- if self.fm.settings.cd_tab_case == 'insensitive':
- path_user = path_user.lower()
- path_file = path_file.lower()
- elif self.fm.settings.cd_tab_case == 'smart' and path_user.islower():
- path_file = path_file.lower()
- return path_file.startswith(path_user)
-
- def _tab_normal(self, dest, dest_abs):
- dest_dir = os.path.dirname(dest)
- dest_base = os.path.basename(dest)
-
- try:
- dirnames = next(os.walk(os.path.dirname(dest_abs)))[1]
- except (OSError, StopIteration):
- return [], ''
-
- return [os.path.join(dest_dir, d) for d in dirnames if self._tab_match(dest_base, d)], ''
-
- def _tab_fuzzy_match(self, basepath, tokens):
- """ Find directories matching tokens recursively """
- if not tokens:
- tokens = ['']
- paths = [basepath]
- while True:
- token = tokens.pop()
- matches = []
- for path in paths:
- try:
- directories = next(os.walk(path))[1]
- except (OSError, StopIteration):
- continue
- matches += [os.path.join(path, d) for d in directories
- if self._tab_match(token, d)]
- if not tokens or not matches:
- return matches
- paths = matches
-
- return None
-
- def _tab_fuzzy(self, dest, dest_abs):
- tokens = []
- basepath = dest_abs
- while True:
- basepath_old = basepath
- basepath, token = os.path.split(basepath)
- if basepath == basepath_old:
- break
- if os.path.isdir(basepath_old) and not token.startswith('.'):
- basepath = basepath_old
- break
- tokens.append(token)
-
- paths = self._tab_fuzzy_match(basepath, tokens)
- if not os.path.isabs(dest):
- paths_rel = self.fm.thisdir.path
- paths = [os.path.relpath(os.path.join(basepath, path), paths_rel)
- for path in paths]
- else:
- paths_rel = ''
- return paths, paths_rel
-
- def tab(self, tabnum):
- from os.path import sep
-
- start, dest, dest_abs, ends_with_sep = self._tab_args()
-
- paths, paths_rel = self._tab_paths(dest, dest_abs, ends_with_sep)
- if paths is None:
- if self.fm.settings.cd_tab_fuzzy:
- paths, paths_rel = self._tab_fuzzy(dest, dest_abs)
- else:
- paths, paths_rel = self._tab_normal(dest, dest_abs)
-
- paths.sort()
-
- if self.fm.settings.cd_bookmarks:
- paths[0:0] = [
- os.path.relpath(v.path, paths_rel) if paths_rel else v.path
- for v in self.fm.bookmarks.dct.values() for path in paths
- if v.path.startswith(os.path.join(paths_rel, path) + sep)
- ]
-
- if not paths:
- return None
- if len(paths) == 1:
- return start + paths[0] + sep
- return [start + dirname + sep for dirname in paths]
-
-
-class chain(Command):
- """:chain ; ; ...
-
- Calls multiple commands at once, separated by semicolons.
- """
- resolve_macros = False
-
- def execute(self):
- if not self.rest(1).strip():
- self.fm.notify('Syntax: chain ; ; ...', bad=True)
- return
- for command in [s.strip() for s in self.rest(1).split(";")]:
- self.fm.execute_console(command)
-
-
-class shell(Command):
- escape_macros_for_shell = True
-
- def execute(self):
- if self.arg(1) and self.arg(1)[0] == '-':
- flags = self.arg(1)[1:]
- command = self.rest(2)
- else:
- flags = ''
- command = self.rest(1)
-
- if command:
- self.fm.execute_command(command, flags=flags)
-
- def tab(self, tabnum):
- from ranger.ext.get_executables import get_executables
- if self.arg(1) and self.arg(1)[0] == '-':
- command = self.rest(2)
- else:
- command = self.rest(1)
- start = self.line[0:len(self.line) - len(command)]
-
- try:
- position_of_last_space = command.rindex(" ")
- except ValueError:
- return (start + program + ' ' for program
- in get_executables() if program.startswith(command))
- if position_of_last_space == len(command) - 1:
- selection = self.fm.thistab.get_selection()
- if len(selection) == 1:
- return self.line + selection[0].shell_escaped_basename + ' '
- return self.line + '%s '
-
- before_word, start_of_word = self.line.rsplit(' ', 1)
- return (before_word + ' ' + file.shell_escaped_basename
- for file in self.fm.thisdir.files or []
- if file.shell_escaped_basename.startswith(start_of_word))
-
-
-class open_with(Command):
-
- def execute(self):
- app, flags, mode = self._get_app_flags_mode(self.rest(1))
- self.fm.execute_file(
- files=self.fm.thistab.get_selection(),
- app=app,
- flags=flags,
- mode=mode)
-
- def tab(self, tabnum):
- return self._tab_through_executables()
-
- def _get_app_flags_mode(self, string): # pylint: disable=too-many-branches,too-many-statements
- """Extracts the application, flags and mode from a string.
-
- examples:
- "mplayer f 1" => ("mplayer", "f", 1)
- "atool 4" => ("atool", "", 4)
- "p" => ("", "p", 0)
- "" => None
- """
-
- app = ''
- flags = ''
- mode = 0
- split = string.split()
-
- if len(split) == 1:
- part = split[0]
- if self._is_app(part):
- app = part
- elif self._is_flags(part):
- flags = part
- elif self._is_mode(part):
- mode = part
-
- elif len(split) == 2:
- part0 = split[0]
- part1 = split[1]
-
- if self._is_app(part0):
- app = part0
- if self._is_flags(part1):
- flags = part1
- elif self._is_mode(part1):
- mode = part1
- elif self._is_flags(part0):
- flags = part0
- if self._is_mode(part1):
- mode = part1
- elif self._is_mode(part0):
- mode = part0
- if self._is_flags(part1):
- flags = part1
-
- elif len(split) >= 3:
- part0 = split[0]
- part1 = split[1]
- part2 = split[2]
-
- if self._is_app(part0):
- app = part0
- if self._is_flags(part1):
- flags = part1
- if self._is_mode(part2):
- mode = part2
- elif self._is_mode(part1):
- mode = part1
- if self._is_flags(part2):
- flags = part2
- elif self._is_flags(part0):
- flags = part0
- if self._is_mode(part1):
- mode = part1
- elif self._is_mode(part0):
- mode = part0
- if self._is_flags(part1):
- flags = part1
-
- return app, flags, int(mode)
-
- def _is_app(self, arg):
- return not self._is_flags(arg) and not arg.isdigit()
-
- @staticmethod
- def _is_flags(arg):
- from ranger.core.runner import ALLOWED_FLAGS
- return all(x in ALLOWED_FLAGS for x in arg)
-
- @staticmethod
- def _is_mode(arg):
- return all(x in '0123456789' for x in arg)
-
-
-class set_(Command):
- """:set