commit cfc897c53bdc01859b420476b3c3ae80d895f54e Author: Jonas Hahn Date: Sat Aug 30 20:23:00 2025 +0200 Initial commit diff --git a/config/.config/arkrc b/config/.config/arkrc new file mode 100644 index 0000000..715c36e --- /dev/null +++ b/config/.config/arkrc @@ -0,0 +1,7 @@ +[General] +LockSidebar=true +ShowSidebar=true + +[MainWindow] +StatusBar=Disabled +ToolBarsMovable=Disabled diff --git a/config/.config/btop/btop.conf b/config/.config/btop/btop.conf new file mode 100644 index 0000000..77142d3 --- /dev/null +++ b/config/.config/btop/btop.conf @@ -0,0 +1,254 @@ +#? Config file for btop v. 1.4.3 + +#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. +#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" +color_theme = "/nix/store/yk4xkyhnr2fpzd7xpysr643gpm1qwqwq-btop-1.4.0/share/btop/themes/flat-remix.theme" + +#* If the theme set background should be shown, set to False if you want terminal background transparency. +theme_background = True + +#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false. +truecolor = True + +#* Set to true to force tty mode regardless if a real tty has been detected or not. +#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols. +force_tty = False + +#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets. +#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box. +#* Use whitespace " " as separator between different presets. +#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty" +presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty" + +#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists. +#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift. +vim_keys = True + +#* Rounded corners on boxes, is ignored if TTY mode is ON. +rounded_corners = True + +#* Default symbols to use for graph creation, "braille", "block" or "tty". +#* "braille" offers the highest resolution but might not be included in all fonts. +#* "block" has half the resolution of braille but uses more common characters. +#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY. +#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view. +graph_symbol = "braille" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_cpu = "default" + +# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty". +graph_symbol_gpu = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_mem = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_net = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_proc = "default" + +#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace. +shown_boxes = "cpu mem net proc" + +#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. +update_ms = 2000 + +#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", +#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. +proc_sorting = "cpu lazy" + +#* Reverse sorting order, True or False. +proc_reversed = False + +#* Show processes as a tree. +proc_tree = True + +#* Use the cpu graph colors in the process list. +proc_colors = True + +#* Use a darkening gradient in the process list. +proc_gradient = True + +#* If process cpu usage should be of the core it's running on or usage of the total available cpu power. +proc_per_core = True + +#* Show process memory as bytes instead of percent. +proc_mem_bytes = True + +#* Show cpu graph for each process. +proc_cpu_graphs = True + +#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate) +proc_info_smaps = False + +#* Show proc box on left side of screen instead of right. +proc_left = False + +#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). +proc_filter_kernel = True + +#* In tree-view, always accumulate child process resources in the parent process. +proc_aggregate = True + +#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_upper = "Auto" + +#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_lower = "Auto" + +#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off". +show_gpu_info = "Auto" + +#* Toggles if the lower CPU graph should be inverted. +cpu_invert_lower = True + +#* Set to True to completely disable the lower CPU graph. +cpu_single_graph = False + +#* Show cpu box at bottom of screen instead of top. +cpu_bottom = False + +#* Shows the system uptime in the CPU box. +show_uptime = True + +#* Show cpu temperature. +check_temp = True + +#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors. +cpu_sensor = "Auto" + +#* Show temperatures for cpu cores also if check_temp is True and sensors has been found. +show_coretemp = True + +#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core. +#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine. +#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries. +#* Example: "4:0 5:1 6:3" +cpu_core_map = "" + +#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine". +temp_scale = "celsius" + +#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024. +base_10_sizes = False + +#* Show CPU frequency. +show_cpu_freq = True + +#* Draw a clock at top of screen, formatting according to strftime, empty string to disable. +#* Special formatting: /host = hostname | /user = username | /uptime = system uptime +clock_format = "%X" + +#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort. +background_update = True + +#* Custom cpu model name, empty string to disable. +custom_cpu_name = "" + +#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ". +#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user". +disks_filter = "" + +#* Show graphs instead of meters for memory values. +mem_graphs = True + +#* Show mem box below net box instead of above. +mem_below_net = False + +#* Count ZFS ARC in cached and available memory. +zfs_arc_cached = True + +#* If swap memory should be shown in memory box. +show_swap = True + +#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk. +swap_disk = True + +#* If mem box should be split to also show disks info. +show_disks = False + +#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar. +only_physical = True + +#* Read disks list from /etc/fstab. This also disables only_physical. +use_fstab = True + +#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool) +zfs_hide_datasets = False + +#* Set to true to show available disk space for privileged users. +disk_free_priv = False + +#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view. +show_io_stat = True + +#* Toggles io mode for disks, showing big graphs for disk read/write speeds. +io_mode = False + +#* Set to True to show combined read/write io graphs in io mode. +io_graph_combined = False + +#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ". +#* Example: "/mnt/media:100 /:20 /boot:1". +io_graph_speeds = "" + +#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False. +net_download = 100 + +net_upload = 100 + +#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest. +net_auto = True + +#* Sync the auto scaling for download and upload to whichever currently has the highest scale. +net_sync = True + +#* Starts with the Network Interface specified here. +net_iface = "" + +#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes. +base_10_bitrate = "Auto" + +#* Show battery stats in top right if battery is present. +show_battery = True + +#* Which battery to use if multiple are present. "Auto" for auto detection. +selected_battery = "Auto" + +#* Show power stats of battery next to charge indicator. +show_battery_watts = True + +#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". +#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. +log_level = "WARNING" + +#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards. +nvml_measure_pcie_speeds = True + +#* Measure PCIe throughput on AMD cards, may impact performance on certain cards. +rsmi_measure_pcie_speeds = True + +#* Horizontally mirror the GPU graph. +gpu_mirror_graph = True + +#* Custom gpu0 model name, empty string to disable. +custom_gpu_name0 = "" + +#* Custom gpu1 model name, empty string to disable. +custom_gpu_name1 = "" + +#* Custom gpu2 model name, empty string to disable. +custom_gpu_name2 = "" + +#* Custom gpu3 model name, empty string to disable. +custom_gpu_name3 = "" + +#* Custom gpu4 model name, empty string to disable. +custom_gpu_name4 = "" + +#* Custom gpu5 model name, empty string to disable. +custom_gpu_name5 = "" diff --git a/config/.config/castero/castero.conf b/config/.config/castero/castero.conf new file mode 100644 index 0000000..6f3e1bc --- /dev/null +++ b/config/.config/castero/castero.conf @@ -0,0 +1,315 @@ +# castero configuration file +# https://github.com/xgi/castero + + +[client] +# Whether to limit the amount of memory used by the client (by doing more +# disk I/O). Enabling this will reduce performance -- only enable it if you +# know you need to. +# default: False +restrict_memory_usage = False + +# Whether to ask for confirmation before deleting a feed. +# default: False +delete_feed_confirmation = False + +# The minimum number of feeds before the client asks you for confirmation +# after pressing the reload key. +# default: 10 +reload_feeds_threshold = 10 + +# The maximum number of episodes to retain per feed. Set to -1 for no limit. +# default: -1 +max_episodes = -1 + +# Whether to keep episodes in the client even if they are no longer present on +# the feed (i.e. the RSS feed only shows the x most recent episodes). +# default: False +retain_absent_episodes = False + +# Default window layout. This can also be changed within castero by pressing the corresponding key. +# 1 - feeds + episodes + metadata +# 2 - queue + metadata +# 3 - feeds + episodes +# 4 - downloaded episodes + metadata +# 5 - all episodes + metadata +# default: 1 +default_layout = 1 + +# Hide vertical borders between menus. +# default: False +disable_vertical_borders = False + +# Whether to remove HTML tags from feed/episode descriptions. +# default: True +clean_html_descriptions = True + +# The display refresh delay, in ms. Increase to reduce idle CPU usage. +# default: 30 +refresh_delay = 30 + +# The external player to use for media playback. +# If the given player is not valid or a dependency is not met, the client will +# instead try to use the first valid interface. +# Available players (in order of precedence): +# mpv, vlc +# default: (blank) +player = + +# The command to run when you press key_execute (default e). All instances of +# the following tokens are replaced with the corresponding episode attributes: +# {file} - the episode enclosure, usually a remote mp3 file +# {title} - the episode name +# {description} - the episode description +# {link} - the link to the episode, which is often a blog post +# {pubdate} - the publish date/time of the episode +# {copyright} - the copyright of the episode +# Most of these attributes have spaces, so you will probably want to enclose +# the token with quotations. +# For example, `firefox "{file}"` would open the file in Firefox. +# The client executes the text you enter as a shell command. Use with caution! +# default: (blank) +execute_command = + +# An HTTP or SOCKS proxy to use for HTTP network requests. +# example: http://user:pass@10.10.1.10:3128 +# example: socks5://user:pass@host:port +# default: (blank) +proxy_http = + +# An HTTP or SOCKS proxy to use for HTTPS network requests. +# example: http://user:pass@10.10.1.10:3128 +# example: socks5://user:pass@host:port +# default: (blank) +proxy_https = + +# Behavior when adding selected feed into queue. +# If set to true, only unplayed episodes will be added to the queue. +# default: False +add_only_unplayed_episodes = False + +[feeds] +# Whether to reload/refresh your feeds when the client starts. Depending on how +# many feeds you have, this operation may take a long time. +# default: False +reload_on_start = False + + +[downloads] +# The (absolute) location to save episodes downloaded for offline playback. Set +# to blank or whitespaces to disable -- the client will default to either +# $XDG_DATA_DIR, if set, otherwise ~/.local/share/castero/downloaded +# default: (blank) +custom_download_dir = + +# The timeout for network requests, in seconds. The same value is used for +# connection and read timeouts. +# default: 3 +request_timeout = 3 + + +[colors] +# Available colors for all fields are: +# black, blue, cyan, green, magenta, red, white, yellow, transparent (background), +# integer from -1 to 255 if terminal supports 256 colors +# NOTE: Background transparency only works on compatible terminals with compositing + +# The foreground (text) color of the main interface. +# default: yellow +color_foreground = yellow + +# The background color of the main interface. +# default: black +color_background = black + +# The foreground (text) color of selected items. +# default: black +color_foreground_alt = black + +# The background color of selected items. +# default: white +color_background_alt = white + +# The foreground (text) color of marked items. Paired with color_background. +# default: green +color_foreground_dim = green + +# The foreground (text) color of status lines. Paired with color_background. +# default: white +color_foreground_status = white + +# The foreground (text) color of menu headings. Paired with color_background. +# default: yellow +color_foreground_heading = yellow + +# The foreground (text) color of dividers. Paired with color_background. +# default: white +color_foreground_dividers = white + + +[playback] +# The distance to move forward when pressing seek keys, in seconds. +# default: 30 +seek_distance_forward = 30 + +# The distance to move backward when pressing seek keys, in seconds. +# default: 10 +seek_distance_backward = 10 + +# The default playback speed. See also the rate_increase/rate_decrease keys. +# default: 1.0 +default_playback_speed = 1.0 + +# The default volume. Can be 0-100, inclusive. +# default: 100 +default_volume = 100 + +# The amount to adjust the volume when pressing the volume up/down keys. +# default: 5 +volume_adjust_distance = 5 + +# The distance to rewind when resuming from playback, in seconds. +# default: 0 +resume_rewind_distance = 0 + + +[keys] +# Keybindings for controlling the client. Entries may not be blank, but may +# overlap -- however, only one operation will be performed for each key press. +# Please see this page for a list of available key names: +# https://docs.python.org/3/library/curses.html#constants + +# Show the help menu. +# default: h +key_help = LEFT + +# Exit the client +# default: q +key_exit = q + +# Add a feed. +# default: a +key_add_feed = a + +# Remove the selected feed. +# default: d +key_remove = d + +# Reload/refresh all feeds. +# default: r +key_reload = r + +# Reload/refresh the selected feed. +# default: R +key_reload_selected = R + +# Save episode for offline playback. +# default: s +key_save = s + +# Delete downloaded episodes. +# default: x +key_delete = x + +# Navigate up. +# default: UP +key_up = k + +# Navigate right. +# default: RIGHT +key_right = l + +# Navigate down. +# default: DOWN +key_down = j + +# Navigate left. +# default: LEFT +key_left = h + +# Scroll menu up. +# default: PPAGE +key_scroll_up = PPAGE + +# Scroll menu down. +# default: NPAGE +key_scroll_down = NPAGE + +# Play selected feed/episode. +# default: ENTER +key_play_selected = ENTER + +# Add selected feed/episode to queue. +# default: SPACE +key_add_selected = SPACE + +# Clear the queue. +# default: c +key_clear = c + +# Clear progress from episode. +# default: z +key_clear_progress = z + +# Go to the next episode in the queue. +# default: n +key_next = n + +# Execute a command on the selected episode. See also execute_command. +key_execute = e + +# Invert the order of the menu. +# default: i +key_invert = i + +# Filter the contents of the menu. Press again to clear the filter. +# default: / +key_filter = / + +# Mark the episode as played/unplayed. +# default: i +key_mark_played = m + +# Pause/play the current episode. +# default: p +key_pause_play = p + +# Alternate binding for key_pause_play -- make identical to disable. +# default: k +key_pause_play_alt = UP + +# Seek forward. +# default: f +key_seek_forward = f + +# Alternate binding for key_seek_forward -- make identical to disable. +# default: l +key_seek_forward_alt = RIGHT + +# Seek backward. +# default: b +key_seek_backward = b + +# Alternate binding for key_seek_backward -- make identical to disable. +# default: j +key_seek_backward_alt = DOWN + +# Increase playback speed. +# default: ] +key_rate_increase = ] + +# Decrease playback speed. +# default: [ +key_rate_decrease = [ + +# Increase volume. +# default: = +key_volume_increase = = + +# Decrease volume. +# default: - +key_volume_decrease = - + +# Show episode URL. +# default: u +key_show_url = u diff --git a/config/.config/clipse/clipboard_history.json b/config/.config/clipse/clipboard_history.json new file mode 100644 index 0000000..c24a79d --- /dev/null +++ b/config/.config/clipse/clipboard_history.json @@ -0,0 +1 @@ +{"clipboardHistory":[{"value":" qt = {\n enable = true;\n platformTheme = \"gnome\";\n style = \"adwaita-dark\";\n };","recorded":"2025-04-03 13:15:33.677704480","filePath":"null","pinned":false},{"value":" theme = {\n name = \"Awesthetic-dark\";\n };","recorded":"2025-04-03 13:02:39.613255820","filePath":"null","pinned":false},{"value":"zafiro-icons","recorded":"2025-04-03 12:29:36.241084737","filePath":"null","pinned":false}]} \ No newline at end of file diff --git a/config/.config/clipse/clipse.log b/config/.config/clipse/clipse.log new file mode 100644 index 0000000..83be91e --- /dev/null +++ b/config/.config/clipse/clipse.log @@ -0,0 +1,3 @@ +2025/04/03 12:32:44 logger.go:19: ERROR: failed to kill process: exit status 1 +2025/04/03 12:51:57 logger.go:19: ERROR: failed to kill process: exit status 1 +2025/04/03 13:07:03 logger.go:19: ERROR: failed to kill process: exit status 1 diff --git a/config/.config/clipse/config.json b/config/.config/clipse/config.json new file mode 100644 index 0000000..7952499 --- /dev/null +++ b/config/.config/clipse/config.json @@ -0,0 +1,35 @@ +{ + "allowDuplicates": false, + "historyFile": "clipboard_history.json", + "maxHistory": 100, + "logFile": "clipse.log", + "themeFile": "custom_theme.json", + "tempDir": "tmp_files", + "keyBindings": { + "choose": "enter", + "clearSelected": "S", + "down": "down", + "end": "end", + "filter": "/", + "home": "home", + "more": "?", + "nextPage": "right", + "prevPage": "left", + "preview": " ", + "quit": "q", + "remove": "x", + "selectDown": "ctrl+down", + "selectSingle": "s", + "selectUp": "ctrl+up", + "togglePin": "p", + "togglePinned": "tab", + "up": "up", + "yankFilter": "ctrl+s" + }, + "imageDisplay": { + "type": "basic", + "scaleX": 9, + "scaleY": 9, + "heightCut": 2 + } +} \ No newline at end of file diff --git a/config/.config/clipse/custom_theme.json b/config/.config/clipse/custom_theme.json new file mode 100644 index 0000000..3759206 --- /dev/null +++ b/config/.config/clipse/custom_theme.json @@ -0,0 +1,28 @@ +{ + "useCustomTheme": false, + "TitleFore": "#ffffff", + "TitleBack": "#6F4CBC", + "TitleInfo": "#3498db", + "NormalTitle": "#ffffff", + "DimmedTitle": "#808080", + "SelectedTitle": "#FF69B4", + "NormalDesc": "#808080", + "DimmedDesc": "#808080", + "SelectedDesc": "#FF69B4", + "StatusMsg": "#2ecc71", + "PinIndicatorColor": "#FFD700", + "SelectedBorder": "#3498db", + "SelectedDescBorder": "#3498db", + "FilteredMatch": "#ffffff", + "FilterPrompt": "#2ecc71", + "FilterInfo": "#3498db", + "FilterText": "#ffffff", + "FilterCursor": "#FFD700", + "HelpKey": "#999999", + "HelpDesc": "#808080", + "PageActiveDot": "#3498db", + "PageInactiveDot": "#808080", + "DividerDot": "#3498db", + "PreviewedText": "#ffffff", + "PreviewBorder": "#3498db" +} \ No newline at end of file diff --git a/config/.config/cointop/config.toml b/config/.config/cointop/config.toml new file mode 100644 index 0000000..76c5e2e --- /dev/null +++ b/config/.config/cointop/config.toml @@ -0,0 +1,122 @@ +currency = "USD" +default_view = "" +default_chart_range = "1Y" +api = "coingecko" +colorscheme = "" +refresh_rate = 60 +cache_dir = ":PREFERRED_CACHE_HOME:/cointop" +compact_notation = false +enable_mouse = true + +[shortcuts] + "!" = "sort_column_cost" + "#" = "sort_column_pnl_percent" + "$" = "last_page" + "%" = "sort_column_percent_holdings" + "+" = "show_price_alert_add_menu" + "/" = "open_search" + 0 = "move_to_first_page_first_row" + 1 = "sort_column_1h_change" + 2 = "sort_column_24h_change" + 3 = "sort_column_30d_change" + 7 = "sort_column_7d_change" + "<" = "scroll_left" + ">" = "scroll_right" + "?" = "help" + "@" = "sort_column_pnl" + A = "toggle_price_alerts" + C = "show_currency_convert_menu" + E = "show_portfolio_edit_menu" + F = "toggle_show_favorites" + F1 = "help" + F5 = "refresh" + G = "move_to_page_last_row" + H = "move_to_page_visible_first_row" + L = "move_to_page_visible_last_row" + M = "move_to_page_visible_middle_row" + O = "open_link" + P = "toggle_portfolio" + Q = "quit_view" + "[" = "previous_chart_range" + "\\\\" = "toggle_table_fullscreen" + "]" = "next_chart_range" + a = "sort_column_available_supply" + "alt+down" = "sort_column_desc" + "alt+left" = "sort_left_column" + "alt+right" = "sort_right_column" + "alt+up" = "sort_column_asc" + b = "sort_column_balance" + c = "show_currency_convert_menu" + "ctrl+C" = "quit" + "ctrl+R" = "refresh" + "ctrl+S" = "save" + "ctrl+c" = "quit" + "ctrl+d" = "page_down" + "ctrl+f" = "open_search" + "ctrl+j" = "enlarge_chart" + "ctrl+k" = "shorten_chart" + "ctrl+n" = "next_page" + "ctrl+p" = "previous_page" + "ctrl+r" = "refresh" + "ctrl+s" = "save" + "ctrl+space" = "toggle_portfolio_balances" + "ctrl+u" = "page_up" + down = "move_down" + e = "show_portfolio_edit_menu" + end = "move_to_page_last_row" + enter = "toggle_row_chart" + esc = "quit_view" + f = "toggle_favorite" + g = "move_to_page_first_row" + h = "previous_page" + home = "move_to_page_first_row" + j = "move_down" + k = "move_up" + l = "next_page" + left = "previous_page" + m = "sort_column_market_cap" + n = "sort_column_name" + o = "open_link" + p = "sort_column_price" + pagedown = "page_down" + pageup = "page_up" + q = "quit_view" + r = "sort_column_rank" + right = "next_page" + s = "sort_column_symbol" + space = "toggle_favorite" + t = "sort_column_total_supply" + tab = "move_down_or_next_page" + u = "sort_column_last_updated" + up = "move_up" + v = "sort_column_24h_volume" + y = "sort_column_1y_change" + "{" = "first_chart_range" + "|" = "toggle_chart_fullscreen" + "}" = "last_chart_range" + +[favorites] + character = "*" + columns = ["rank", "name", "symbol", "price", "1h_change", "24h_change", "7d_change", "24h_volume", "market_cap", "available_supply", "total_supply", "last_updated"] + compact_notation = false + names = [] + +[portfolio] + columns = ["rank", "name", "symbol", "price", "holdings", "balance", "1h_change", "24h_change", "7d_change", "percent_holdings", "cost_price", "cost", "pnl", "pnl_percent", "last_updated"] + compact_notation = false + holdings = [] + +[price_alerts] + alerts = [] + +[coinmarketcap] + pro_api_key = "" + +[table] + columns = ["rank", "name", "symbol", "price", "1h_change", "24h_change", "7d_change", "24h_volume", "market_cap", "available_supply", "total_supply", "last_updated"] + compact_notation = false + keep_row_focus_on_sort = false + +[chart] + height = 10 + max_width = 175 diff --git a/config/.config/dolphinrc b/config/.config/dolphinrc new file mode 100644 index 0000000..a3e0169 --- /dev/null +++ b/config/.config/dolphinrc @@ -0,0 +1,13 @@ +[General] +Version=202 +ViewPropsTimestamp=2025,1,21,17,27,55.466 + +[KFileDialog Settings] +Places Icons Auto-resize=false +Places Icons Static Size=22 + +[MainWindow] +MenuBar=Disabled + +[Search] +Location=Everywhere diff --git a/config/.config/dunst/dunstrc b/config/.config/dunst/dunstrc new file mode 100644 index 0000000..72bc2ad --- /dev/null +++ b/config/.config/dunst/dunstrc @@ -0,0 +1,41 @@ +# Main dunst configuration + +[global] + monitor = 0 + follow = none + origin = top-right + offset = 5 x 15 + + # for example dunstify -h int:value:12 + progress_bar = true + progress_bar_height = 14 + progress_bar_frame_width = 0 + progress_bar_min_width = 100 + progress_bar_max_width = 300 + progress_bar_corner_radius = 5 + progress_bar_corners = bottom-left, top-right + + frame_width = 1 + background = "#222222" + foreground = "#ffffff" + frame_color = "#5e5086" + + font = Fira Mono 12 + + gap_size = 6 + padding = 10 + horizontal_padding = 8 + alignment = left + vertical_alignment = center + + + ignore_newline = no + stack_duplicates = true + hide_duplicate_count = false + show_indicators = no + notification_limit = 10 + indicate_hidden = yes + + corner_radius = 5 + corners = bottom, top-left + 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 new file mode 100755 index 0000000..7bfc9d2 Binary files /dev/null and b/config/.config/emacs/eln-cache/29.4-34619dd7/site-start-b807e9b1-8f4312e0.eln 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 new file mode 100755 index 0000000..b94dbe3 Binary files /dev/null and b/config/.config/emacs/eln-cache/30.1-5ce9200b/site-start-c2eb548f-8f4312e0.eln 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 new file mode 100755 index 0000000..f0846a9 Binary files /dev/null and b/config/.config/emacs/eln-cache/30.1-a4618eb1/site-start-335fd812-f1c28c94.eln 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 new file mode 100755 index 0000000..4fdc1ce Binary files /dev/null and b/config/.config/emacs/eln-cache/30.1-b306151b/site-start-4d2fbafe-8f4312e0.eln differ diff --git a/config/.config/emacs/init.el b/config/.config/emacs/init.el new file mode 100644 index 0000000..daea666 --- /dev/null +++ b/config/.config/emacs/init.el @@ -0,0 +1 @@ +;; emacs config diff --git a/config/.config/foot/foot.ini b/config/.config/foot/foot.ini new file mode 100644 index 0000000..c2d83c3 --- /dev/null +++ b/config/.config/foot/foot.ini @@ -0,0 +1,2 @@ +font=NotoSansMono-Regular:size=15 +background=000000 diff --git a/config/.config/fuzzel/fuzzel.ini b/config/.config/fuzzel/fuzzel.ini new file mode 100644 index 0000000..e768a02 --- /dev/null +++ b/config/.config/fuzzel/fuzzel.ini @@ -0,0 +1,15 @@ +fields=name,generic,comment,categories,filename,keywords +terminal=foot -e +prompt="❯ " +show-actions=yes + +[colors] +background=282a36fa +selection=3d4474fa +border=fffffffa + +[border] +radius=20 + +[dmenu] +exit-immediately-if-empty=yes diff --git a/config/.config/htop/htoprc b/config/.config/htop/htoprc new file mode 100644 index 0000000..6d6c3a4 --- /dev/null +++ b/config/.config/htop/htoprc @@ -0,0 +1,63 @@ +# Beware! This file is rewritten by htop when settings are changed in the interface. +# The parser is also very primitive, and not human-friendly. +htop_version=3.3.0 +config_reader_min_version=3 +fields=0 48 49 1 +hide_kernel_threads=1 +hide_userland_threads=1 +hide_running_in_container=1 +shadow_other_users=1 +show_thread_names=0 +show_program_path=0 +highlight_base_name=1 +highlight_deleted_exe=1 +shadow_distribution_path_prefix=0 +highlight_megabytes=1 +highlight_threads=1 +highlight_changes=0 +highlight_changes_delay_secs=5 +find_comm_in_cmdline=1 +strip_exe_from_cmdline=1 +show_merged_command=0 +header_margin=1 +screen_tabs=1 +detailed_cpu_time=0 +cpu_count_from_one=0 +show_cpu_usage=1 +show_cpu_frequency=0 +show_cpu_temperature=0 +degree_fahrenheit=0 +update_process_names=0 +account_guest_in_cpu_meter=0 +color_scheme=0 +enable_mouse=0 +delay=15 +hide_function_bar=0 +header_layout=two_50_50 +column_meters_0=AllCPUs Memory Swap +column_meter_modes_0=1 1 1 +column_meters_1=Tasks LoadAverage Uptime +column_meter_modes_1=2 2 2 +tree_view=1 +sort_key=46 +tree_sort_key=0 +sort_direction=-1 +tree_sort_direction=-1 +tree_view_always_by_pid=0 +all_branches_collapsed=0 +screen:Main=PID USER TIME Command +.sort_key=PERCENT_CPU +.tree_sort_key=PID +.tree_view_always_by_pid=0 +.tree_view=1 +.sort_direction=-1 +.tree_sort_direction=-1 +.all_branches_collapsed=0 +screen:I/O=PID USER IO_PRIORITY IO_RATE IO_READ_RATE IO_WRITE_RATE PERCENT_SWAP_DELAY PERCENT_IO_DELAY Command +.sort_key=IO_RATE +.tree_sort_key=PID +.tree_view_always_by_pid=0 +.tree_view=0 +.sort_direction=-1 +.tree_sort_direction=1 +.all_branches_collapsed=0 diff --git a/config/.config/hypr/hyprland.conf b/config/.config/hypr/hyprland.conf new file mode 100644 index 0000000..141a19f --- /dev/null +++ b/config/.config/hypr/hyprland.conf @@ -0,0 +1,274 @@ +#######################################################################################hypr + +# Current setup for mirroring +# TODO: create a keybind for F7 to switch betwen +#monitor=,preferred,auto,1 +monitor = , preferred, auto, 1, mirror, eDP-1 + +####################################################################################### + +#$terminal = ~/projects/scripts/run_kitty.sh +$terminal = kitty +$explorer = dolphin --platformtheme kvantum +$menu = tofi-drun --terminal=$terminal | sh + +####################################################################################### + +exec-once = waybar +#exec-once = clipse -listen +exec-once = hyprsunset -t 3000 +#exec-once = wl-clip-persist --clipboard regular +exec-once = hyprpaper +exec-once = nm-applet +exec-once = ~/projects/scripts/rnote_mapper.sh + +# Check the hostname and enable animations only on a specific device +#exec-once = sh -c 'if [ "$(hostname)" = "minoxy" ]; then hyprctl keyword animations enabled; fi' + +####################################################################################### + +# Split up the monitors by default for the main working machine +workspace=1,monitor:HDMI-A-1 +workspace=2,monitor:HDMI-A-1 +workspace=3,monitor:HDMI-A-1 +workspace=4,monitor:HDMI-A-1 +workspace=5,monitor:HDMI-A-1 +workspace=6,monitor:HDMI-A-1 +workspace=8,monitor:HDMI-A-1 + +workspace=7,monitor:HDMI-A-2 +workspace=9,monitor:HDMI-A-2 +workspace=0,monitor:HDMI-A-2 + + +env = HYPRCURSOR_THEME,catppuccin-frappe-rosewater-cursors +# This cursor needs to bigger than defined in nix becuase I dont know +env = HYPRCURSOR_SIZE,18 +env = WLR_NO_HARDWARE_CURSORS,1 + + +####################################################################################### + +general { + gaps_in = 3 + gaps_out = 0 + border_size = 1 + #workspace_per_monitor = true + col.active_border = rgba(777777ee) rgba(777777ee) + resize_on_border = false +} + +animations { + enabled = no + + # Default curves, see https://wiki.hypr.land/Configuring/Animations/#curves + # NAME, X0, Y0, X1, Y1 + bezier = easeOutQuint, 0.23, 1, 0.32, 1 + bezier = easeInOutCubic, 0.65, 0.05, 0.36, 1 + bezier = linear, 0, 0, 1, 1 + bezier = almostLinear, 0.5, 0.5, 0.75, 1 + bezier = quick, 0.15, 0, 0.1, 1 + + # Default animations, see https://wiki.hypr.land/Configuring/Animations/ + # NAME, ONOFF, SPEED, CURVE, [STYLE] + animation = global, 1, 10, default + animation = border, 1, 5.39, easeOutQuint + animation = windows, 1, 4.79, easeOutQuint + animation = windowsIn, 1, 4.1, easeOutQuint, popin 87% + animation = windowsOut, 1, 1.49, linear, popin 87% + animation = fadeIn, 1, 1.73, almostLinear + animation = fadeOut, 1, 1.46, almostLinear + animation = fade, 1, 3.03, quick + animation = layers, 1, 3.81, easeOutQuint + animation = layersIn, 1, 4, easeOutQuint, fade + animation = layersOut, 1, 1.5, linear, fade + animation = fadeLayersIn, 1, 1.79, almostLinear + animation = fadeLayersOut, 1, 1.39, almostLinear + animation = workspaces, 1, 1.94, almostLinear, fade + animation = workspacesIn, 1, 1.21, almostLinear, fade + animation = workspacesOut, 1, 1.94, almostLinear, fade +} +misc { + disable_hyprland_logo = true +} + +input { + kb_layout = us + follow_mouse = 1 + touchpad { + natural_scroll = false + } +} + +################### +### KEYBINDINGS ### +################### + +$mainMod = SUPER + +# Quick openers and default bindings +bind = $mainMod, Q, exec, $terminal +bind = $mainMod, C, killactive, +bind = $mainMod, B, exec, firefox +bind = $mainMod, R, exec, kitty -e yazi +bind = $mainMod, V, exec, kitty -e nvim +bind = $mainMod, M, exit, +bind = $mainMod, F, togglefloating, +bind = $mainMod, P, exec, $menu +bind = $mainMod, D, exec, $explorer # D for direcotry + +# Some keybindings for screenshot and colorpicking +bind = , Print, exec, hyprshot -m region --clipboard-only +bind = SHIFT, Print, exec, hyprpicker -a +bind = CONTROL, Print, exec, hyprshot -m output -m active --clipboard-only + +# Move focus with mainMod + vim keys +bind = $mainMod, k, movefocus, u +bind = $mainMod, j, movefocus, d +bind = $mainMod, l, movefocus, r +bind = $mainMod, h, movefocus, l + +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 +bind = $mainMod SHIFT, 1, movetoworkspace, 1 +bind = $mainMod SHIFT, 2, movetoworkspace, 2 +bind = $mainMod SHIFT, 3, movetoworkspace, 3 +bind = $mainMod SHIFT, 4, movetoworkspace, 4 +bind = $mainMod SHIFT, 5, movetoworkspace, 5 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 +bind = $mainMod SHIFT, 7, movetoworkspace, 7 +bind = $mainMod SHIFT, 8, movetoworkspace, 8 +bind = $mainMod SHIFT, 9, movetoworkspace, 9 +bind = $mainMod SHIFT, 0, movetoworkspace, 10 +bind = $mainMod, F12, exec, ~/projects/scripts/unison_sync.sh +# showing the clipboard history +#bind = SUPER, V, exec, kitty --class clipse -e clipse + +# Resizeing with mouse buttons while pressed mod +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle +bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle +bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 3%+ +bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 3%- +bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 3%+ +bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 3%- + +# Toggle waybar +bindt = Super_L, W,exec, pkill -SIGUSR1 waybar +bindt = $mainMod SHIFT, L, exec, hyprlock + +####################################################################################### + +# Some settings for floating apps + +# Ignore maximize requests from apps. You'll probably like this. +windowrulev2 = suppressevent maximize, class:.* + +windowrulev2 = float, class:(clipse) +windowrulev2 = size 622 652, class:(clipse) +windowrulev2 = stayfocused, class:(clipse) +windowrulev2 = float, class:(org.kde.dolphin) + +# App rules +# Terminal basekittyd +windowrulev2 = workspace 1, class:(kitty) +windowrulev2 = workspace 1, class:(Emacs) +windowrulev2 = workspace 1, class:(foot) +windowrulev2 = workspace 1, class:(Alacritty) + +# Browsers +windowrulev2 = workspace 2, class:(firefox) +windowrulev2 = workspace 2, class:(org.kde.falkon) +windowrulev2 = workspace 2, class:(midori) +windowrulev2 = workspace 2, class:(org.gnome.Epiphany) + +# PDFS (keep all the pdfs here) +windowrulev2 = workspace 3, class:(sioyek) +windowrulev2 = workspace 3, class:(zathura) + +# Having code here because it is also fast +windowrulev2 = workspace 4, class:(code) +windowrulev2 = workspace 4, class:(thunderbird) +windowrulev2 = workspace 4, class:(jetbrains-studio) + +# Gaming and other things +windowrulev2 = workspace 5, class:(steam) +windowrulev2 = workspace 5, class:(blender) +windowrulev2 = workspace 5, class:(com.github.flxzt.rnote) +windowrulev2 = workspace 5, class:(com.github.xournalpp.xournalpp) + +windowrulev2 = workspace 6, initialTitle:(LibreOffice) +windowrulev2 = workspace 6, initialTitle:(GNU Image Manipulation Program) +windowrulev2 = workspace 6, class:(org.shotcut.Shotcut) + +# Social Apps +windowrulev2 = workspace 7, class:(signal) +windowrulev2 = workspace 7, class:(Slack) +windowrulev2 = workspace 7, class:(zoom) +windowrulev2 = workspace 7, class:(discord) + +windowrulev2 = workspace 8, class:(anki) +windowrulev2 = workspace 8, class:(obsidian) +windowrulev2 = workspace 8, class:(org.qbittorrent.qBittorrent) + +# Media and passwords +windowrulev2 = workspace 9, class:(\b(feh|mpv|vlc)\b) +windowrulev2 = workspace 9, class:(KeePassXC) +windowrulev2 = workspace 9, class:(spotify) + +# Other stuff +windowrulev2 = workspace 10, class:(Matplotlib) +#windowrulev2 = workspace 10, title:(PallSim) +windowrulev2 = workspace 10, class:(m.py) +windowrulev2 = workspace 10, class:(org.prismlauncher.PrismLauncher) + +# Can find sioyek in classes +#windowrule = float,^(sioyek)$ # set rounding to 10 for kitty +windowrulev2 = size 900 500, title:(Select Document) +windowrulev2 = size 900 500, title:(Open File) + +# Settings applications will float +windowrulev2 = float, class:(qt6ct) +windowrulev2 = float, class:(simple-scan) +windowrulev2 = float, title:(Kvantum Manager) +windowrulev2 = float, class:(qt5ct) +windowrulev2 = float, title:(Open File) +windowrulev2 = float, title:(Open Folder) +windowrulev2 = float, title:(Save As) + +# fixing the movement for smaller res displays +windowrulev2 = size 450 450, class:(Gnuplot) +windowrulev2 = move 100 203100, class:(Gnuplot) + +windowrulev2 = float, class:(io.github.Qalculate.qalculate-qt) +windowrulev2 = size 700 700, class:(Qalculate!) +#windowrulev2 = tile, class:^(sioyek)$ +windowrulev2 = float, title:(Select Document) + +windowrulev2 = size 800 250, class:(org.pulseaudio.pavucontrol) +windowrulev2 = move 40 80, class:(org.pulseaudio.pavucontrol) +windowrulev2 = float, class:(org.pulseaudio.pavucontrol) +windowrulev2 = float, class:(cheese) + + + +# Setup drag and drop support for terminal based applications +windowrulev2 = move 50 100, class:(xdragon) +windowrulev2 = pin, class:(xdragon) +windowrulev2 = pseudo, class:(xdragon) +#windowrulev2 = opacity 0.9, class:(xdragon) +windowrulev2 = bordersize 30, class:(xdragon) +windowrulev2 = bordercolor rgba(b3cc1aee) rgba(a3af1aee), class:(xdragon) +windowrulev2 = rounding 3, class:(xdragon) + +####################################################################################### diff --git a/config/.config/hypr/hyprlock.conf b/config/.config/hypr/hyprlock.conf new file mode 100644 index 0000000..75d0d16 --- /dev/null +++ b/config/.config/hypr/hyprlock.conf @@ -0,0 +1,111 @@ +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # +# Hyprlock +# Original config submitted by https://github.com/SherLock707 + +$background = rgb(000006) +$foreground = rgb(D0E9FC) +$color0 = rgb(000006) +$color1 = rgb(060A53) +$color2 = rgb(01236A) +$color3 = rgb(0140B4) +$color4 = rgb(0144BE) +$color5 = rgb(8B3AA9) +$color6 = rgb(5B90B8) +$color7 = rgb(B3D7F2) +$color8 = rgb(7E97A9) +$color9 = rgb(080E6F) +$color10 = rgb(012E8E) +$color11 = rgb(0155F0) +$color12 = rgb(015BFE) +$color13 = rgb(B94EE1) +$color14 = rgb(79C0F5) +$color15 = rgb(B3D7F2) + +general { + grace = 1 +} + +background { + monitor = + #path = screenshot # screenshot of your desktop + + # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations + blur_size = 5 + blur_passes = 1 # 0 disables blurring + noise = 0.0117 + contrast = 1.3000 # Vibrant!!! + brightness = 0.8000 + vibrancy = 0.2100 + vibrancy_darkness = 0.0 +} + +input-field { + monitor = + size = 250, 50 + outline_thickness = 3 + dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = true + outer_color = $color5 + inner_color = $color0 + font_color = $color12 + #fade_on_empty = true + placeholder_text = Password... # Text rendered in the input box when it's empty. + hide_input = false + + position = 0, 200 + halign = center + valign = bottom +} + +# Date +label { + monitor = + text = cmd[update:18000000] echo " "$(date +'%A, %-d %B %Y')" " + color = $color12 + font_size = 34 + font_family = JetBrains Mono Nerd Font 10 + + position = 0, -150 + halign = center + valign = top +} + +# Week +label { + monitor = + text = cmd[update:18000000] echo " "$(date +'Week %U')" " + color = $color5 + font_size = 24 + font_family = JetBrains Mono Nerd Font 10 + position = 0, -250 + halign = center + valign = top +} + +# Time +label { + monitor = + #text = cmd[update:1000] echo " $(date +"%I:%M:%S %p") " # AM/PM + text = cmd[update:1000] echo " $(date +"%H:%M:%S") " # 24H + color = $color15 + font_size = 94 + font_family = JetBrains Mono Nerd Font 10 + + position = 0, 0 + halign = center + valign = center +} + +# User +label { + monitor = + text = Nutzer: $USER + color = "#123456" + font_size = 18 + font_family = Inter Display Medium + position = 0, 100 + halign = center + valign = bottom +} + diff --git a/config/.config/hypr/hyprpaper.conf b/config/.config/hypr/hyprpaper.conf new file mode 100644 index 0000000..39cea38 --- /dev/null +++ b/config/.config/hypr/hyprpaper.conf @@ -0,0 +1,12 @@ +preload = /home/jonas/workspace-local/backg.jpg + +#set the default wallpaper(s) seen on initial workspace(s) --depending on the number of monitors used +wallpaper = ,/home/jonas/workspace-local/backg.jpg + +#enable splash text rendering over the wallpaper +# splash = true + +#fully disable ipc +# ipc = off + + diff --git a/config/.config/i3/config b/config/.config/i3/config new file mode 100644 index 0000000..60ae0d1 --- /dev/null +++ b/config/.config/i3/config @@ -0,0 +1,190 @@ +# This file has been auto-generated by i3-config-wizard(1). +# It will not be overwritten, so edit it as you like. +# +# Should you change your keyboard layout some time, delete +# this file and re-run i3-config-wizard(1). +# + +# i3 config file (v4) +# +# Please see https://i3wm.org/docs/userguide.html for a complete reference! + +set $mod Mod4 + +# Font for window titles. Will also be used by the bar unless a different font +# is used in the bar {} block below. +font pango:monospace 8 + +# This font is widely installed, provides lots of unicode glyphs, right-to-left +# text rendering and scalability on retina/hidpi displays (thanks to pango). +#font pango:DejaVu Sans Mono 8 + +# Start XDG autostart .desktop files using dex. See also +# https://wiki.archlinux.org/index.php/XDG_Autostart +exec --no-startup-id dex-autostart --autostart --environment i3 + +# The combination of xss-lock, nm-applet and pactl is a popular choice, so +# they are included here as an example. Modify as you see fit. + +# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the +# screen before suspend. Use loginctl lock-session to lock your screen. +exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork + +# NetworkManager is the most popular way to manage wireless networks on Linux, +# and nm-applet is a desktop environment-independent system tray GUI for it. +exec --no-startup-id nm-applet + +# Use pactl to adjust volume in PulseAudio. +set $refresh_i3status killall -SIGUSR1 i3status +bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status +bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status +bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# move tiling windows via drag & drop by left-clicking into the title bar, +# or left-clicking anywhere into the window while holding the floating modifier. +tiling_drag modifier titlebar + +# start a terminal +bindsym $mod+Return exec i3-sensible-terminal + +# kill focused window +bindsym $mod+Shift+q kill + +# start dmenu (a program launcher) +bindsym $mod+d exec --no-startup-id dmenu_run +# A more modern dmenu replacement is rofi: +# bindcode $mod+40 exec "rofi -modi drun,run -show drun" +# There also is i3-dmenu-desktop which only displays applications shipping a +# .desktop file. It is a wrapper around dmenu, so you need that installed. +# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop + +# change focus +bindsym $mod+j focus left +bindsym $mod+k focus down +bindsym $mod+l focus up +bindsym $mod+semicolon focus right + +# alternatively, you can use the cursor keys: +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# move focused window +bindsym $mod+Shift+j move left +bindsym $mod+Shift+k move down +bindsym $mod+Shift+l move up +bindsym $mod+Shift+semicolon move right + +# alternatively, you can use the cursor keys: +bindsym $mod+Shift+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up +bindsym $mod+Shift+Right move right + +# split in horizontal orientation +bindsym $mod+h split h + +# split in vertical orientation +bindsym $mod+v split v + +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen toggle + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + +# toggle tiling / floating +bindsym $mod+Shift+space floating toggle + +# change focus between tiling / floating windows +bindsym $mod+space focus mode_toggle + +# focus the parent container +bindsym $mod+a focus parent + +# focus the child container +#bindsym $mod+d focus child + +# Define names for default workspaces for which we configure key bindings later on. +# We use variables to avoid repeating the names in multiple places. +set $ws1 "1" +set $ws2 "2" +set $ws3 "3" +set $ws4 "4" +set $ws5 "5" +set $ws6 "6" +set $ws7 "7" +set $ws8 "8" +set $ws9 "9" +set $ws10 "10" + +# switch to workspace +bindsym $mod+1 workspace number $ws1 +bindsym $mod+2 workspace number $ws2 +bindsym $mod+3 workspace number $ws3 +bindsym $mod+4 workspace number $ws4 +bindsym $mod+5 workspace number $ws5 +bindsym $mod+6 workspace number $ws6 +bindsym $mod+7 workspace number $ws7 +bindsym $mod+8 workspace number $ws8 +bindsym $mod+9 workspace number $ws9 +bindsym $mod+0 workspace number $ws10 + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace number $ws1 +bindsym $mod+Shift+2 move container to workspace number $ws2 +bindsym $mod+Shift+3 move container to workspace number $ws3 +bindsym $mod+Shift+4 move container to workspace number $ws4 +bindsym $mod+Shift+5 move container to workspace number $ws5 +bindsym $mod+Shift+6 move container to workspace number $ws6 +bindsym $mod+Shift+7 move container to workspace number $ws7 +bindsym $mod+Shift+8 move container to workspace number $ws8 +bindsym $mod+Shift+9 move container to workspace number $ws9 +bindsym $mod+Shift+0 move container to workspace number $ws10 + +# reload the configuration file +bindsym $mod+Shift+c reload +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+Shift+r restart +# exit i3 (logs you out of your X session) +bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'" + +# resize window (you can also use the mouse for that) +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + + # Pressing left will shrink the 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 new file mode 100644 index 0000000..1764e95 --- /dev/null +++ b/config/.config/iamb/config.toml @@ -0,0 +1,2 @@ +[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 new file mode 100644 index 0000000..1280854 --- /dev/null +++ b/config/.config/keepassxc/keepassxc.ini @@ -0,0 +1,14 @@ +[General] +ConfigVersion=2 + +[GUI] +ApplicationTheme=dark +HideMenubar=false +HideToolbar=true + +[PasswordGenerator] +AdditionalChars= +ExcludedChars= +Length=14 +Numbers=true +SpecialChars=true diff --git a/config/.config/kitty/kitty-themes/themes/Japanesque.conf b/config/.config/kitty/kitty-themes/themes/Japanesque.conf new file mode 100644 index 0000000..c045273 --- /dev/null +++ b/config/.config/kitty/kitty-themes/themes/Japanesque.conf @@ -0,0 +1,21 @@ +background #1d1d1d +foreground #f7f6ec +cursor #eccf4f +selection_background #165776 +color0 #343835 +color8 #585a58 +color1 #ce3e60 +color9 #d18ea6 +color2 #7bb75b +color10 #767e2b +color3 #e8b32a +color11 #77592e +color4 #4c99d3 +color12 #135879 +color5 #a57fc4 +color13 #5f4190 +color6 #389aac +color14 #76bbca +color7 #f9faf6 +color15 #b1b5ae +selection_foreground #1d1d1d diff --git a/config/.config/kitty/kitty-themes/themes/gruvbox_dark.conf b/config/.config/kitty/kitty-themes/themes/gruvbox_dark.conf new file mode 100644 index 0000000..369da8d --- /dev/null +++ b/config/.config/kitty/kitty-themes/themes/gruvbox_dark.conf @@ -0,0 +1,49 @@ +# gruvbox dark by morhetz, https://github.com/morhetz/gruvbox +# This work is licensed under the terms of the MIT license. +# For a copy, see https://opensource.org/licenses/MIT. + +background #282828 +foreground #ebdbb2 + +cursor #928374 + +selection_foreground #928374 +selection_background #3c3836 + +color0 #282828 +color8 #928374 + +# red +color1 #cc241d +# light red +color9 #fb4934 + +# green +color2 #98971a +# light green +color10 #b8bb26 + +# yellow +color3 #d79921 +# light yellow +color11 #fabd2d + +# blue +color4 #458588 +# light blue +color12 #83a598 + +# magenta +color5 #b16286 +# light magenta +color13 #d3869b + +# cyan +color6 #689d6a +# lighy cyan +color14 #8ec07c + +# light gray +color7 #a89984 +# dark gray +color15 #928374 diff --git a/config/.config/kitty/kitty.conf b/config/.config/kitty/kitty.conf new file mode 100644 index 0000000..43b9604 --- /dev/null +++ b/config/.config/kitty/kitty.conf @@ -0,0 +1,27 @@ +# The default kitty configuration +# The documentation +# https://sw.kovidgoyal.net/kitty/ +startup_session ./main_session.conf +include ./theme.conf + +# General settings +font_size 11.5 +enable_audio_bell yes +background_opacity 0.80 +default_pointer_shape arrow +mouse_hide_wait 1 + +# Remappings +map f1 copy_to_buffer a +map f2 paste_from_buffer a + +# Remap the window switcher probably the most used one +#map ctrl+shift+k focus_visible_window +#map ctrl+shift+j swap_with_window + +map ctrl+shift+n new_tab + +map ctrl+shift+k next_tab +map ctrl+shift+j previous_tab + +paste_actions quote-urls-at-prompt diff --git a/config/.config/kitty/main_session.conf b/config/.config/kitty/main_session.conf new file mode 100644 index 0000000..f983052 --- /dev/null +++ b/config/.config/kitty/main_session.conf @@ -0,0 +1,9 @@ +# Set the default tab name +new_tab MainKity + +# Launch fastfetch on first shell +#launch --hold fastfetch + +# Not all the seven layouts +enabled_layouts tall,stack + diff --git a/config/.config/kitty/theme.conf b/config/.config/kitty/theme.conf new file mode 100644 index 0000000..955a417 --- /dev/null +++ b/config/.config/kitty/theme.conf @@ -0,0 +1,21 @@ +background #1d1d1d +foreground #f7f6ec +cursor #eccf4f +selection_foreground #f7f6ec +selection_background #385776 +color0 #343835 +color8 #585a58 +color1 #ce3e60 +color9 #d18ea6 +color2 #7bb75b +color10 #767e2b +color3 #e8b32a +color11 #77592e +color4 #4c99d3 +color12 #337879 +color5 #a57fc4 +color13 #7f5190 +color6 #389aac +color14 #76bbca +color7 #f9faf6 +color15 #b1b5ae diff --git a/config/.config/konsole.kmessagebox b/config/.config/konsole.kmessagebox new file mode 100644 index 0000000..96dc191 --- /dev/null +++ b/config/.config/konsole.kmessagebox @@ -0,0 +1,2 @@ +[General] +CloseAllTabs=3 diff --git a/config/.config/konsolerc b/config/.config/konsolerc new file mode 100644 index 0000000..96ccac2 --- /dev/null +++ b/config/.config/konsolerc @@ -0,0 +1,8 @@ +[Desktop Entry] +DefaultProfile=MainProfile.profile + +[General] +ConfigVersion=1 + +[UiSettings] +ColorScheme=AdwaitaDark diff --git a/config/.config/lazygit/config.yml b/config/.config/lazygit/config.yml new file mode 100644 index 0000000..38db058 --- /dev/null +++ b/config/.config/lazygit/config.yml @@ -0,0 +1,42 @@ +# Implement more commands to be more productive +customCommands: + - key: 'U' + context: 'status' + # WARNING: this only works when the remote is a ssh remote + # TODO: Implement a script that can figure out if it ssh or http and act accordingly + command: "xdg-open https://$(git remote get-url origin | tr @ '\n' | grep : | tr : / | rev | cut -c5- | rev)" + description: 'open the remote url in smime' + +notARepository: 'skip' + +# Dont prompt here +promptToReturnFromSubprocess: false + +# Setting the theme to cattpuccin +gui: + skipDiscardChangeWarning: true + theme: + activeBorderColor: + - '#eba0ac' + - bold + inactiveBorderColor: + - '#a6adc8' + optionsTextColor: + - '#89b4fa' + selectedLineBgColor: + - '#313244' + cherryPickedCommitBgColor: + - '#45475a' + cherryPickedCommitFgColor: + - '#eba0ac' + unstagedChangesColor: + - '#f38ba8' + defaultFgColor: + - '#cdd6f4' + searchingActiveBorderColor: + - '#f9e2af' + + authorColors: + '*': '#b4befe' + showFileTree: false + diff --git a/config/.config/neofetch/config.conf b/config/.config/neofetch/config.conf new file mode 100644 index 0000000..28ba94a --- /dev/null +++ b/config/.config/neofetch/config.conf @@ -0,0 +1,880 @@ +# See this wiki page for more info: +# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info +print_info() { + info title + info underline + + info "OS" distro + info "Host" model + info "Kernel" kernel + info "Uptime" uptime + info "Packages" packages + info "Shell" shell + info "Resolution" resolution + info "DE" de + info "WM" wm + info "WM Theme" wm_theme + info "Theme" theme + info "Icons" icons + info "Terminal" term + info "Terminal Font" term_font + info "CPU" cpu + info "GPU" gpu + info "Memory" memory + + # info "GPU Driver" gpu_driver # Linux/macOS only + # info "Disk" disk + # info "Battery" battery + # info "Font" font + # info "Song" song + # [[ "$player" ]] && prin "Music Player" "$player" + # info "Local IP" local_ip + # info "Public IP" public_ip + # info "Users" users + # info "Locale" locale # This only works on glibc systems. + + info cols +} + +# Title + + +# Hide/Show Fully qualified domain name. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --title_fqdn +title_fqdn="off" + + +# Kernel + + +# Shorten the output of the kernel function. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --kernel_shorthand +# Supports: Everything except *BSDs (except PacBSD and PC-BSD) +# +# Example: +# on: '4.8.9-1-ARCH' +# off: 'Linux 4.8.9-1-ARCH' +kernel_shorthand="on" + + +# Distro + + +# Shorten the output of the distro function +# +# Default: 'off' +# Values: 'on', 'tiny', 'off' +# Flag: --distro_shorthand +# Supports: Everything except Windows and Haiku +distro_shorthand="off" + +# Show/Hide OS Architecture. +# Show 'x86_64', 'x86' and etc in 'Distro:' output. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --os_arch +# +# Example: +# on: 'Arch Linux x86_64' +# off: 'Arch Linux' +os_arch="on" + + +# Uptime + + +# Shorten the output of the uptime function +# +# Default: 'on' +# Values: 'on', 'tiny', 'off' +# Flag: --uptime_shorthand +# +# Example: +# on: '2 days, 10 hours, 3 mins' +# tiny: '2d 10h 3m' +# off: '2 days, 10 hours, 3 minutes' +uptime_shorthand="on" + + +# Memory + + +# Show memory percentage in output. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --memory_percent +# +# Example: +# on: '1801MiB / 7881MiB (22%)' +# off: '1801MiB / 7881MiB' +memory_percent="off" + +# Change memory output unit. +# +# Default: 'mib' +# Values: 'kib', 'mib', 'gib' +# Flag: --memory_unit +# +# Example: +# kib '1020928KiB / 7117824KiB' +# mib '1042MiB / 6951MiB' +# gib: ' 0.98GiB / 6.79GiB' +memory_unit="mib" + + +# Packages + + +# Show/Hide Package Manager names. +# +# Default: 'tiny' +# Values: 'on', 'tiny' 'off' +# Flag: --package_managers +# +# Example: +# on: '998 (pacman), 8 (flatpak), 4 (snap)' +# tiny: '908 (pacman, flatpak, snap)' +# off: '908' +package_managers="on" + + +# Shell + + +# Show the path to $SHELL +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --shell_path +# +# Example: +# on: '/bin/bash' +# off: 'bash' +shell_path="off" + +# Show $SHELL version +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --shell_version +# +# Example: +# on: 'bash 4.4.5' +# off: 'bash' +shell_version="on" + + +# CPU + + +# CPU speed type +# +# Default: 'bios_limit' +# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'. +# Flag: --speed_type +# Supports: Linux with 'cpufreq' +# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value. +speed_type="bios_limit" + +# CPU speed shorthand +# +# Default: 'off' +# Values: 'on', 'off'. +# Flag: --speed_shorthand +# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz +# +# Example: +# on: 'i7-6500U (4) @ 3.1GHz' +# off: 'i7-6500U (4) @ 3.100GHz' +speed_shorthand="off" + +# Enable/Disable CPU brand in output. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --cpu_brand +# +# Example: +# on: 'Intel i7-6500U' +# off: 'i7-6500U (4)' +cpu_brand="on" + +# CPU Speed +# Hide/Show CPU speed. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --cpu_speed +# +# Example: +# on: 'Intel i7-6500U (4) @ 3.1GHz' +# off: 'Intel i7-6500U (4)' +cpu_speed="on" + +# CPU Cores +# Display CPU cores in output +# +# Default: 'logical' +# Values: 'logical', 'physical', 'off' +# Flag: --cpu_cores +# Support: 'physical' doesn't work on BSD. +# +# Example: +# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores) +# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores) +# off: 'Intel i7-6500U @ 3.1GHz' +cpu_cores="logical" + +# CPU Temperature +# Hide/Show CPU temperature. +# Note the temperature is added to the regular CPU function. +# +# Default: 'off' +# Values: 'C', 'F', 'off' +# Flag: --cpu_temp +# Supports: Linux, BSD +# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable +# coretemp kernel module. This only supports newer Intel processors. +# +# Example: +# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]' +# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]' +# off: 'Intel i7-6500U (4) @ 3.1GHz' +cpu_temp="off" + + +# GPU + + +# Enable/Disable GPU Brand +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gpu_brand +# +# Example: +# on: 'AMD HD 7950' +# off: 'HD 7950' +gpu_brand="on" + +# Which GPU to display +# +# Default: 'all' +# Values: 'all', 'dedicated', 'integrated' +# Flag: --gpu_type +# Supports: Linux +# +# Example: +# all: +# GPU1: AMD HD 7950 +# GPU2: Intel Integrated Graphics +# +# dedicated: +# GPU1: AMD HD 7950 +# +# integrated: +# GPU1: Intel Integrated Graphics +gpu_type="all" + + +# Resolution + + +# Display refresh rate next to each monitor +# Default: 'off' +# Values: 'on', 'off' +# Flag: --refresh_rate +# Supports: Doesn't work on Windows. +# +# Example: +# on: '1920x1080 @ 60Hz' +# off: '1920x1080' +refresh_rate="off" + + +# Gtk Theme / Icons / Font + + +# Shorten output of GTK Theme / Icons / Font +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --gtk_shorthand +# +# Example: +# on: 'Numix, Adwaita' +# off: 'Numix [GTK2], Adwaita [GTK3]' +gtk_shorthand="off" + + +# Enable/Disable gtk2 Theme / Icons / Font +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gtk2 +# +# Example: +# on: 'Numix [GTK2], Adwaita [GTK3]' +# off: 'Adwaita [GTK3]' +gtk2="on" + +# Enable/Disable gtk3 Theme / Icons / Font +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gtk3 +# +# Example: +# on: 'Numix [GTK2], Adwaita [GTK3]' +# off: 'Numix [GTK2]' +gtk3="on" + + +# IP Address + + +# Website to ping for the public IP +# +# Default: 'http://ident.me' +# Values: 'url' +# Flag: --ip_host +public_ip_host="http://ident.me" + +# Public IP timeout. +# +# Default: '2' +# Values: 'int' +# Flag: --ip_timeout +public_ip_timeout=2 + +# Local IP interface +# +# Default: 'auto' (interface of default route) +# Values: 'auto', 'en0', 'en1' +# Flag: --ip_interface +local_ip_interface=('auto') + + +# Desktop Environment + + +# Show Desktop Environment version +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --de_version +de_version="on" + + +# Disk + + +# Which disks to display. +# The values can be any /dev/sdXX, mount point or directory. +# NOTE: By default we only show the disk info for '/'. +# +# Default: '/' +# Values: '/', '/dev/sdXX', '/path/to/drive'. +# Flag: --disk_show +# +# Example: +# disk_show=('/' '/dev/sdb1'): +# 'Disk (/): 74G / 118G (66%)' +# 'Disk (/mnt/Videos): 823G / 893G (93%)' +# +# disk_show=('/'): +# 'Disk (/): 74G / 118G (66%)' +# +disk_show=('/') + +# Disk subtitle. +# What to append to the Disk subtitle. +# +# Default: 'mount' +# Values: 'mount', 'name', 'dir', 'none' +# Flag: --disk_subtitle +# +# Example: +# name: 'Disk (/dev/sda1): 74G / 118G (66%)' +# 'Disk (/dev/sdb2): 74G / 118G (66%)' +# +# mount: 'Disk (/): 74G / 118G (66%)' +# 'Disk (/mnt/Local Disk): 74G / 118G (66%)' +# 'Disk (/mnt/Videos): 74G / 118G (66%)' +# +# dir: 'Disk (/): 74G / 118G (66%)' +# 'Disk (Local Disk): 74G / 118G (66%)' +# 'Disk (Videos): 74G / 118G (66%)' +# +# none: 'Disk: 74G / 118G (66%)' +# 'Disk: 74G / 118G (66%)' +# 'Disk: 74G / 118G (66%)' +disk_subtitle="mount" + +# Disk percent. +# Show/Hide disk percent. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --disk_percent +# +# Example: +# on: 'Disk (/): 74G / 118G (66%)' +# off: 'Disk (/): 74G / 118G' +disk_percent="on" + + +# Song + + +# Manually specify a music player. +# +# Default: 'auto' +# Values: 'auto', 'player-name' +# Flag: --music_player +# +# Available values for 'player-name': +# +# amarok +# audacious +# banshee +# bluemindo +# clementine +# cmus +# deadbeef +# deepin-music +# dragon +# elisa +# exaile +# gnome-music +# gmusicbrowser +# gogglesmm +# guayadeque +# io.elementary.music +# iTunes +# Music +# juk +# lollypop +# MellowPlayer +# mocp +# mopidy +# mpd +# muine +# netease-cloud-music +# olivia +# playerctl +# pogo +# pragha +# qmmp +# quodlibet +# rhythmbox +# sayonara +# smplayer +# spotify +# strawberry +# tauonmb +# tomahawk +# vlc +# xmms2d +# xnoise +# yarock +music_player="auto" + +# Format to display song information. +# +# Default: '%artist% - %album% - %title%' +# Values: '%artist%', '%album%', '%title%' +# Flag: --song_format +# +# Example: +# default: 'Song: Jet - Get Born - Sgt Major' +song_format="%artist% - %album% - %title%" + +# Print the Artist, Album and Title on separate lines +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --song_shorthand +# +# Example: +# on: 'Artist: The Fratellis' +# 'Album: Costello Music' +# 'Song: Chelsea Dagger' +# +# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger' +song_shorthand="off" + +# 'mpc' arguments (specify a host, password etc). +# +# Default: '' +# Example: mpc_args=(-h HOST -P PASSWORD) +mpc_args=() + + +# Text Colors + + +# Text Colors +# +# Default: 'distro' +# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' +# Flag: --colors +# +# Each number represents a different part of the text in +# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info' +# +# Example: +# colors=(distro) - Text is colored based on Distro colors. +# colors=(4 6 1 8 8 6) - Text is colored in the order above. +colors=(distro) + + +# Text Options + + +# Toggle bold text +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --bold +bold="on" + +# Enable/Disable Underline +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --underline +underline_enabled="on" + +# Underline character +# +# Default: '-' +# Values: 'string' +# Flag: --underline_char +underline_char="-" + + +# Info Separator +# Replace the default separator with the specified string. +# +# Default: ':' +# Flag: --separator +# +# Example: +# separator="->": 'Shell-> bash' +# separator=" =": 'WM = dwm' +separator=":" + + +# Color Blocks + + +# Color block range +# The range of colors to print. +# +# Default: '0', '15' +# Values: 'num' +# Flag: --block_range +# +# Example: +# +# Display colors 0-7 in the blocks. (8 colors) +# neofetch --block_range 0 7 +# +# Display colors 0-15 in the blocks. (16 colors) +# neofetch --block_range 0 15 +block_range=(0 15) + +# Toggle color blocks +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --color_blocks +color_blocks="on" + +# Color block width in spaces +# +# Default: '3' +# Values: 'num' +# Flag: --block_width +block_width=3 + +# Color block height in lines +# +# Default: '1' +# Values: 'num' +# Flag: --block_height +block_height=1 + +# Color Alignment +# +# Default: 'auto' +# Values: 'auto', 'num' +# Flag: --col_offset +# +# Number specifies how far from the left side of the terminal (in spaces) to +# begin printing the columns, in case you want to e.g. center them under your +# text. +# Example: +# col_offset="auto" - Default behavior of neofetch +# col_offset=7 - Leave 7 spaces then print the colors +col_offset="auto" + +# Progress Bars + + +# Bar characters +# +# Default: '-', '=' +# Values: 'string', 'string' +# Flag: --bar_char +# +# Example: +# neofetch --bar_char 'elapsed' 'total' +# neofetch --bar_char '-' '=' +bar_char_elapsed="-" +bar_char_total="=" + +# Toggle Bar border +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --bar_border +bar_border="on" + +# Progress bar length in spaces +# Number of chars long to make the progress bars. +# +# Default: '15' +# Values: 'num' +# Flag: --bar_length +bar_length=15 + +# Progress bar colors +# When set to distro, uses your distro's logo colors. +# +# Default: 'distro', 'distro' +# Values: 'distro', 'num' +# Flag: --bar_colors +# +# Example: +# neofetch --bar_colors 3 4 +# neofetch --bar_colors distro 5 +bar_color_elapsed="distro" +bar_color_total="distro" + + +# Info display +# Display a bar with the info. +# +# Default: 'off' +# Values: 'bar', 'infobar', 'barinfo', 'off' +# Flags: --memory_display +# --battery_display +# --disk_display +# +# Example: +# bar: '[---=======]' +# infobar: 'info [---=======]' +# barinfo: '[---=======] info' +# off: 'info' +memory_display="off" +battery_display="off" +disk_display="off" + + +# Backend Settings + + +# Image backend. +# +# Default: 'ascii' +# Values: 'ascii', 'caca', 'catimg', 'chafa', 'jp2a', 'iterm2', 'off', +# 'pot', 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty', 'ueberzug', +# 'viu' + +# Flag: --backend +image_backend="ascii" + +# Image Source +# +# Which image or ascii file to display. +# +# Default: 'auto' +# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/' +# 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")' +# Flag: --source +# +# NOTE: 'auto' will pick the best image source for whatever image backend is used. +# In ascii mode, distro ascii art will be used and in an image mode, your +# wallpaper will be used. +image_source="auto" + + +# Ascii Options + + +# Ascii distro +# Which distro's ascii art to display. +# +# Default: 'auto' +# Values: 'auto', 'distro_name' +# Flag: --ascii_distro +# NOTE: AIX, Hash, Alpine, AlterLinux, Amazon, Anarchy, Android, instantOS, +# Antergos, antiX, "AOSC OS", "AOSC OS/Retro", Apricity, ArchCraft, +# ArcoLinux, ArchBox, ARCHlabs, ArchStrike, XFerience, ArchMerge, Arch, +# Artix, Arya, Bedrock, Bitrig, BlackArch, BLAG, BlankOn, BlueLight, +# Bodhi, bonsai, BSD, BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS, +# Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover, Condres, +# Container_Linux, Crystal Linux, CRUX, Cucumber, dahlia, Debian, Deepin, +# DesaOS, Devuan, DracOS, DarkOs, Itc, DragonFly, Drauger, Elementary, +# EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD, +# FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo, +# gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra, HydroOS +# Hyperbola, iglunix, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion, Korora, +# KSLinux, Kubuntu, LEDE, LaxerOS, LibreELEC, LFS, Linux_Lite, LMDE, +# Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva, Manjaro, TeArch, Maui, +# Mer, Minix, LinuxMint, Live_Raizo, MX_Linux, Namib, Neptune, NetBSD, +# Netrunner, Nitrux, NixOS, Nurunner, NuTyX, OBRevenge, OpenBSD, +# openEuler, OpenIndiana, openmamba, OpenMandriva, OpenStage, OpenWrt, +# osmc, Oracle, OS Elbrus, PacBSD, Parabola, Pardus, Parrot, Parsix, +# TrueOS, PCLinuxOS, Pengwin, Peppermint, Pisi, popos, Porteus, PostMarketOS, +# Proxmox, PuffOS, Puppy, PureOS, Qubes, Qubyt, Quibian, Radix, Raspbian, +# Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan, Regata, Regolith, +# Rocky, Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific, Septor, +# SereneLinux, SharkLinux, Siduction, SkiffOS, Slackware, SliTaz, SmartOS, +# Solus, Source_Mage, Sparky, Star, SteamOS, SunOS, openSUSE_Leap, t2, +# openSUSE_Tumbleweed, openSUSE, SwagArch, Tails, Trisquel, +# Ubuntu-Cinnamon, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, +# Ubuntu-Studio, Ubuntu, Univention, Venom, Void, VNux, LangitKetujuh, semc, +# Obarun, windows10, Windows7, Xubuntu, Zorin, and IRIX have ascii logos. +# NOTE: Arch, Ubuntu, Redhat, Fedora and Dragonfly have 'old' logo variants. +# Use '{distro name}_old' to use the old logos. +# NOTE: Ubuntu has flavor variants. +# Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME, +# Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors. +# NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu, +# CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android, +# Artix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola, +# Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS, +# Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian, +# postmarketOS, and Void have a smaller logo variant. +# Use '{distro name}_small' to use the small variants. +ascii_distro="auto" + +# Ascii Colors +# +# Default: 'distro' +# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' +# Flag: --ascii_colors +# +# Example: +# ascii_colors=(distro) - Ascii is colored based on Distro colors. +# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors. +ascii_colors=(distro) + +# Bold ascii logo +# Whether or not to bold the ascii logo. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --ascii_bold +ascii_bold="on" + + +# Image Options + + +# Image loop +# Setting this to on will make neofetch redraw the image constantly until +# Ctrl+C is pressed. This fixes display issues in some terminal emulators. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --loop +image_loop="off" + +# Thumbnail directory +# +# Default: '~/.cache/thumbnails/neofetch' +# Values: 'dir' +thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch" + +# Crop mode +# +# Default: 'normal' +# Values: 'normal', 'fit', 'fill' +# Flag: --crop_mode +# +# See this wiki page to learn about the fit and fill options. +# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F +crop_mode="normal" + +# Crop offset +# Note: Only affects 'normal' crop mode. +# +# Default: 'center' +# Values: 'northwest', 'north', 'northeast', 'west', 'center' +# 'east', 'southwest', 'south', 'southeast' +# Flag: --crop_offset +crop_offset="center" + +# Image size +# The image is half the terminal width by default. +# +# Default: 'auto' +# Values: 'auto', '00px', '00%', 'none' +# Flags: --image_size +# --size +image_size="auto" + +# Catimg block size. +# Control the resolution of catimg. +# +# Default: '2' +# Values: '1', '2' +# Flags: --catimg_size +catimg_size="2" + +# Gap between image and text +# +# Default: '3' +# Values: 'num', '-num' +# Flag: --gap +gap=3 + +# Image offsets +# Only works with the w3m backend. +# +# Default: '0' +# Values: 'px' +# Flags: --xoffset +# --yoffset +yoffset=0 +xoffset=0 + +# Image background color +# Only works with the w3m backend. +# +# Default: '' +# Values: 'color', 'blue' +# Flag: --bg_color +background_color= + + +# Misc Options + +# Stdout mode +# Turn off all colors and disables image backend (ASCII/Image). +# Useful for piping into another command. +# Default: 'off' +# Values: 'on', 'off' +stdout="off" diff --git a/config/.config/neomutt/mailcap b/config/.config/neomutt/mailcap new file mode 100644 index 0000000..02f29dd --- /dev/null +++ b/config/.config/neomutt/mailcap @@ -0,0 +1,5 @@ +text/html; firefox %s +text/plain; nvim %s +application/pdf; zathura --fork %s +image/png; feh %s +image/jpeg; feh %s diff --git a/config/.config/neomutt/neomuttrc b/config/.config/neomutt/neomuttrc new file mode 100644 index 0000000..ffea215 --- /dev/null +++ b/config/.config/neomutt/neomuttrc @@ -0,0 +1,106 @@ +source ~/vault/mutt_keys + +set spoolfile="imaps://imap.gmx.net/" + +set sidebar_visible +set header_cache = "~/.cache/mutt" +set message_cachedir = "~/.cache/mutt" +set mailcap_path = "~/.config/neomutt/mailcap" + +set mail_check = 5 +set folder=/dev/null +account-hook . 'unset imap_user; unset imap_pass; unset tunnel' +account-hook imap.gmx.net "set from=$my_user imap_user=$my_user imap_pass=$my_pass smtp_user=$my_user smtp_pass=$my_pass smtp_url=smtps://smtp.gmx.net" +account-hook email.gwdg.de "set imap_user=$my_user2 imap_pass=$my_pass2 smtp_user=$my_user2 smtp_pass=$my_pass2 smtp_url=smtps://email.gwdg.de" +account-hook imap.web.de "set imap_user=$my_user3 imap_pass=$my_pass3 smtp_user=$my_user3 smtp_pass=$my_pass3 smtp_url=smtps://smtp.web.de" +account-hook imap.mail.me.com "set imap_user=$my_user4 imap_pass=$my_pass4 smtp_user=$my_user4 smtp_pass=$my_pass4 smtp_url=smtps://smtp.mail.me.com" +named-mailboxes "UniStud" imaps://email.gwdg.de +named-mailboxes "WebHorn" imaps://imap.web.de +named-mailboxes "GmxMain" imaps://imap.gmx.net +named-mailboxes "Apple" imaps://imap.mail.me.com + +# Color definitions +set my_bg = "color236" +set my_fg = "color252" +set my_red = "color210" +set my_green = "color114" +set my_blue = "color68" +set my_aqua = "color80" +set my_yellow = "color221" +set my_orange = "color209" +set my_purple = "color176" +set my_comment = "color246" +set my_selection = "color239" +set my_current_line = "color237" + +# basic components +color hdrdefault $my_green $my_bg +color signature $my_blue $my_bg +color attachment $my_yellow $my_bg +color prompt $my_purple $my_bg +color message $my_green $my_bg +color error $my_red $my_bg +color indicator $my_fg $my_selection +color status $my_bg $my_orange +color tree $my_blue $my_bg +color normal $my_fg $my_bg +color markers $my_red $my_bg +color search $my_bg $my_yellow +color tilde $my_purple $my_bg +color underline $my_bg $my_yellow +color index $my_green $my_bg ~F +color index $my_blue $my_bg "~N|~O" + +### Highlights inside the body of a message ### + +# URLs +color body $my_aqua $my_bg "(https?|s?ftp|news|telnet|finger|ssh)://[^ \"\t\r\n]*" +color body $my_aqua $my_bg "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+" +mono body bold "(https?|s?ftp|news|telnet|finger|ssh)://[^ \"\t\r\n]*" +mono body bold "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+" + +# email addresses +color body $my_blue $my_bg "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+" +#mono body bold "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+" + +### Header components ### + +color header $my_green $my_bg "^from:" +color header $my_green $my_bg "^to:" +color header $my_green $my_bg "^cc:" +color header $my_green $my_bg "^date:" +color header $my_yellow $my_bg "^newsgroups:" +color header $my_yellow $my_bg "^reply-to:" +color header $my_aqua $my_bg "^subject:" +color header $my_red $my_bg "^x-spam-rule:" +color header $my_green $my_bg "^x-mailer:" +color header $my_yellow $my_bg "^message-id:" +color header $my_yellow $my_bg "^Organization:" +color header $my_yellow $my_bg "^Organisation:" +color header $my_yellow $my_bg "^User-Agent:" +color header $my_yellow $my_bg "^message-id: .*pine" +color header $my_yellow $my_bg "^X-Fnord:" +color header $my_yellow $my_bg "^X-WebTV-Stationery:" +color header $my_yellow $my_bg "^X-Message-Flag:" +color header $my_yellow $my_bg "^X-Spam-Status:" +color header $my_yellow $my_bg "^X-SpamProbe:" +color header $my_red $my_bg "^X-SpamProbe: SPAM" + +### Coloring quoted text - coloring the first 7 levels ### + +color quoted $my_aqua $my_bg +color quoted1 $my_yellow $my_bg +color quoted2 $my_red $my_bg +color quoted3 $my_green $my_bg +color quoted4 $my_aqua $my_bg +color quoted5 $my_yellow $my_bg +color quoted6 $my_red $my_bg +color quoted7 $my_green $my_bg + +### sidebar colors ### + +color sidebar_divider $my_comment $my_bg +color sidebar_flagged $my_aqua $my_bg +color sidebar_highlight $my_bg $my_yellow +color sidebar_new $my_green $my_bg +color sidebar_spoolfile $my_blue $my_bg diff --git a/config/.config/nixpkgs/config.nix b/config/.config/nixpkgs/config.nix new file mode 100644 index 0000000..3f43c6e --- /dev/null +++ b/config/.config/nixpkgs/config.nix @@ -0,0 +1,7 @@ +{ + 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 new file mode 100644 index 0000000..a244fe5 --- /dev/null +++ b/config/.config/nwg-look/config @@ -0,0 +1,6 @@ +{ + "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 new file mode 100644 index 0000000..d67bbba --- /dev/null +++ b/config/.config/pavucontrol.ini @@ -0,0 +1,8 @@ +[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 new file mode 100644 index 0000000..82f86c2 --- /dev/null +++ b/config/.config/qalculate/qalculate-qt.cfg @@ -0,0 +1,354 @@ + +[General] +version=5.5.1 +allow_multiple_instances=-1 +ignore_locale=0 +check_version=0 +window_state=AAAA/wAAAAD9AAAAAgAAAAIAAAAAAAAAAPwBAAAAAvsAAAAiAG4AdQBtAGIAZQByAC0AYgBhAHMAZQBzAC0AZABvAGMAawAAAAAA/////wAAAeUA////+wAAABAAcgBwAG4ALQBkAG8AYwBrAAAAAAD/////AAAAhQD///8AAAADAAACWAAAALP8AQAAAAH7AAAAFgBrAGUAeQBwAGEAZAAtAGQAbwBjAGsAAAAAAAAAAlgAAAInAP///wAAA7sAAAIGAAAABAAAAAQAAAAIAAAACPwAAAABAAAAAgAAAAEAAAAOAFQAbwBvAGwAYgBhAHIAAAAAAP////8AAAAAAAAAAA== +window_geometry=AdnQywADAAAAAAPEAAACMQAAB34AAAQ2AAADxAAAAjEAAAd+AAAENgAAAAAAAAAAB4AAAAPEAAACMQAAB34AAAQ2 +preserve_history_height=0 +splitter_state=AAAA/wAAAAEAAAACAAAARQAAAMAB/////wEAAAACAA== +keep_function_dialog_open=0 +units_geometry=AdnQywADAAAAAAH0AAAAZAAABXcAAAODAAAB9AAAAGQAAAV3AAADgwAAAAACAAAAB4AAAAH0AAAAZAAABXcAAAOD +units_vsplitter_state=AAAA/wAAAAEAAAACAAACmgAAAMAB/////wEAAAACAA== +units_hsplitter_state=AAAA/wAAAAEAAAACAAACAAAAAwAB/////wEAAAABAA== +variables_geometry=AdnQywADAAAAAAH0AAAAlgAABXcAAANRAAAB9AAAAJYAAAV3AAADUQAAAAACAAAAB4AAAAH0AAAAlgAABXcAAANR +variables_vsplitter_state=AAAA/wAAAAEAAAACAAACmgAAAMAB/////wEAAAACAA== +variables_hsplitter_state=AAAA/wAAAAEAAAACAAACAAAAAwAB/////wEAAAABAA== +always_on_top=0 +save_mode_on_exit=1 +save_definitions_on_exit=1 +clear_history_on_exit=0 +enable_input_method=0 +enable_tooltips=0 +display_expression_status=1 +expression_status_delay=1000 +enable_completion=1 +enable_completion2=1 +completion_min=1 +completion_min2=1 +completion_delay=500 +separate_keypad_menu_buttons=0 +palette=1 +color=1 +use_custom_result_font=0 +use_custom_expression_font=0 +use_custom_keypad_font=0 +use_custom_application_font=0 +replace_expression=0 +autocopy_result=0 +history_expression_type=0 +keypad_type=0 +show_keypad=0 +hide_numpad=0 +show_bases=0 +rpn_keys=1 +show_all_functions=0 +show_all_units=0 +show_all_variables=0 +use_function_dialog=1 +recent_variable=magnetic_constant +recent_variable=electric_constant +spell_out_logical_operators=1 +caret_as_xor=0 +automatic_digit_grouping=0 +close_with_esc=1 +copy_ascii=0 +copy_ascii_without_units=0 +digit_grouping=1 +decimal_comma=-1 +dot_as_separator=-1 +comma_as_separator=0 +twos_complement=1 +hexadecimal_twos_complement=0 +twos_complement_input=0 +hexadecimal_twos_complement_input=0 +use_unicode_signs=1 +lower_case_numbers=0 +duodecimal_symbols=0 +exp_display=0 +imaginary_j=0 +base_display=3 +auto_update_exchange_rates=7 +local_currency_conversion=1 +use_binary_prefixes=0 +calculate_as_you_type=1 +calculate_as_you_type_delay=500 +status_in_history=1 +autocalc_selection=0 + +[Mode] +min_deci=0 +use_min_deci=0 +max_deci=2 +use_max_deci=0 +precision=10 +interval_display=0 +min_exp=-1 +negative_exponents=0 +sort_minus_last=1 +number_fraction_format=-1 +complex_number_form=0 +use_prefixes=1 +use_prefixes_for_all_units=0 +use_prefixes_for_currencies=0 +use_binary_prefixes=0 +prefixes_default=1 +abbreviate_names=1 +all_prefixes_enabled=0 +denominator_prefix_enabled=1 +place_units_separately=1 +auto_post_conversion=3 +mixed_units_conversion=3 +number_base=10 +number_base_expression=10 +read_precision=0 +assume_denominators_nonzero=1 +warn_about_denominators_assumed_nonzero=1 +structuring=1 +angle_unit=1 +functions_enabled=1 +variables_enabled=1 +calculate_functions=1 +calculate_variables=1 +variable_units_enabled=1 +sync_units=1 +unknownvariables_enabled=0 +units_enabled=1 +allow_complex=1 +allow_infinite=1 +indicate_infinite_series=0 +show_ending_zeroes=1 +rounding_mode=0 +approximation=-1 +concise_uncertainty_input=0 +interval_calculation=1 +rpn_mode=0 +chain_mode=0 +limit_implicit_multiplication=0 +parsing_mode=0 +simplified_percentage=-1 +spacious=1 +excessive_parenthesis=0 +default_assumption_type=4 +default_assumption_sign=0 + +[Plotting] +plot_legend_placement=2 +plot_style=0 +plot_smoothing=0 +plot_display_grid=1 +plot_full_border=0 +plot_min=0 +plot_max=10 +plot_step=1 +plot_sampling_rate=1001 +plot_use_sampling_rate=1 +plot_variable=x +plot_rows=0 +plot_type=0 +plot_color=1 +plot_linewidth=2 + +[History] +history_time=1743752002 +history_expression=6+5 +history_parse=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(3days)) +history_result=0 +history_time=1744888856 +history_expression=3d −8d +history_parse=(3days) − (8days) +history_result=5d +history_time=1744888860 +history_expression=3d −8s +history_parse=(3days) − (8seconds) +history_result=2d + 23h + 59min + 52s +history_time=1746774540 +history_expression=2min +history_parse=2minutes +history_result=120s +history_time=1748979700 +history_expression=01h50min +history_parse=1hour × 50minutes × 5hours × 0minute × 8hours × 20minutes × 7hours × 10minutes × 4hours × 30minutes × 7hours × 50minutes × 11hours × 50minutes × 4hours × 0minute +history_result=0min16 +history_time=1748979733 +history_expression=01h50min+ +history_parse=((1hour) + (50minutes)) + ((5hours) + (0minute)) + ((8hours) + (20minutes)) + ((7hours) + (10minutes)) + ((4hours) + (30minutes)) + ((7hours) + (50minutes)) + ((11hours) + (50minutes)) + ((4hours) + (0minute)) +history_result=2d + 2h + 30min +history_time=1748979845 +history_expression=24 × 12 +history_parse=24 × 12 +history_result=288 +history_time=1749131235 +history_expression=36/pi +history_parse=36pi +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.1second) ∕ (10nanofarads)) × 1) ∕ (ln(1 − ((0.2volt) ∕ (800volts))) − ln(1 − ((4.2volts) ∕ (800volts)))) +history_result_approximate=1.994 495 822 +history_time=1749739766 +history_expression=integral sinx from 0 to pi +history_parse=integrate(sin(xradians) × 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))(x2m2) +history_time=1749810709 +history_expression=1g/cm to kg/m +history_parse=1gram ∕ centimeter +history_result=0.1kg ∕ m +history_time=1749959212 +history_expression=1/2 year +history_parse=(12) years +history_result=0.5aj +history_time=1749959216 +history_expression=1/2 year to seconds +history_parse=(12) years +history_result=15 778 800s +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  (11)])) +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 82nF ∕ km +history_time=1750101026 +history_expression=1/((c^2)×ε_0) +history_parse=1 ∕ (SpeedOfLight2 × ElectricConstant) +history_result_approximate=1.256 637 061mH ∕ km +history_time=1750101055 +history_expression=μ_0 +history_parse=MagneticConstant +history_result_approximate=1.256 637 061mH ∕ km +history_time=1750547653 +history_expression=01h50min+ +history_parse=((1hour) + (50minutes)) + ((5hours) + (0minute)) + ((8hours) + (20minutes)) + ((7hours) + (10minutes)) + ((4hours) + (30minutes)) + ((7hours) + (50minutes)) + ((11hours) + (50minutes)) + ((4hours) + (0minute)) + ((2hours) + (0minute)) + ((3hours) + (10minutes)) + ((15hours) + (10minutes)) +history_result=2d + 22h + 50min +history_time=1752824632 +history_expression=0.988c × 31.6 us +history_parse=(0.988 × SpeedOfLight) × (31.6microseconds) +history_result_approximate=9.359 760 373km +history_time=1752824799 +history_expression=0.998c × 2 us +history_parse=(0.998 × SpeedOfLight) × (2microseconds) +history_result_approximate=598.385 746 2m +history_time=1754678052 +history_expression=90kB × 10000 +history_parse=(90kilobytes) × 10 000 +history_result=900MB +history_time=1754692078 +history_expression=01h50min+ +history_parse=((1hour) + (50minutes)) + ((5hours) + (0minute)) + ((8hours) + (20minutes)) + ((7hours) + (10minutes)) + ((4hours) + (30minutes)) + ((7hours) + (50minutes)) + ((11hours) + (50minutes)) + ((4hours) + (0minute)) + ((2hours) + (0minute)) + ((3hours) + (10minutes)) + ((15hours) + (10minutes)) + ((1hour) + (20minutes)) + ((4hours) + (20minutes)) + ((6hours) + (0minute)) + ((6hours) + (20minutes)) + ((6hours) + (30minutes)) +history_result=3d + 23h + 20min +history_time=1754692152 +history_expression=01h50min+ +history_parse=((1hour) + (50minutes)) + ((5hours) + (0minute)) + ((8hours) + (20minutes)) + ((7hours) + (10minutes)) + ((4hours) + (30minutes)) + ((7hours) + (50minutes)) + ((11hours) + (50minutes)) + ((4hours) + (0minute)) + ((2hours) + (0minute)) + ((3hours) + (10minutes)) + ((15hours) + (10minutes)) + ((1hour) + (20minutes)) + ((4hours) + (20minutes)) + ((6hours) + (0minute)) + ((6hours) + (20minutes)) + ((6hours) + (30minutes)) + (inch·hour) +history_result=60in·min + 5720min +history_time=1754692158 +history_expression=01h50min+ +history_parse=((1hour) + (50minutes)) + ((5hours) + (0minute)) + ((8hours) + (20minutes)) + ((7hours) + (10minutes)) + ((4hours) + (30minutes)) + ((7hours) + (50minutes)) + ((11hours) + (50minutes)) + ((4hours) + (0minute)) + ((2hours) + (0minute)) + ((3hours) + (10minutes)) + ((15hours) + (10minutes)) + ((1hour) + (20minutes)) + ((4hours) + (20minutes)) + ((6hours) + (0minute)) + ((6hours) + (20minutes)) + ((6hours) + (30minutes)) +history_result=95h + 20min +history_time=1754692168 +history_expression=01h50min+ +history_parse=((1hour) + (50minutes)) + ((5hours) + (0minute)) + ((8hours) + (20minutes)) + ((7hours) + (10minutes)) + ((4hours) + (30minutes)) + ((7hours) + (50minutes)) + ((11hours) + (50minutes)) + ((4hours) + (0minute)) + ((2hours) + (0minute)) + ((3hours) + (10minutes)) + ((15hours) + (10minutes)) + ((1hour) + (20minutes)) + ((4hours) + (20minutes)) + ((6hours) + (0minute)) + ((6hours) + (20minutes)) + ((6hours) + (30minutes)) +history_result_approximate=4 × 23.833 333 33h +history_time=1754692175 +history_expression=01h50min+ +history_parse=((1hour) + (50minutes)) + ((5hours) + (0minute)) + ((8hours) + (20minutes)) + ((7hours) + (10minutes)) + ((4hours) + (30minutes)) + ((7hours) + (50minutes)) + ((11hours) + (50minutes)) + ((4hours) + (0minute)) + ((2hours) + (0minute)) + ((3hours) + (10minutes)) + ((15hours) + (10minutes)) + ((1hour) + (20minutes)) + ((4hours) + (20minutes)) + ((6hours) + (0minute)) + ((6hours) + (20minutes)) + ((6hours) + (30minutes)) +history_result=95h + 20min +history_time=1754692280 +history_expression=01h50min+ +history_parse=((1hour) + (50minutes)) + ((5hours) + (0minute)) + ((8hours) + (20minutes)) + ((7hours) + (10minutes)) + ((4hours) + (30minutes)) + ((7hours) + (50minutes)) + ((11hours) + (50minutes)) + ((4hours) + (0minute)) + ((3hours) + (0minute)) + ((3hours) + (10minutes)) + ((15hours) + (10minutes)) + ((1hour) + (20minutes)) + ((4hours) + (20minutes)) + ((6hours) + (0minute)) + ((6hours) + (20minutes)) + ((6hours) + (30minutes)) +history_result=4d + 20min +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 new file mode 100644 index 0000000..2031756 --- /dev/null +++ b/config/.config/ranger/commands.py @@ -0,0 +1,62 @@ +# This is a sample commands.py. You can add your own commands here. +# +# Please refer to commands_full.py for all the default commands and a complete +# documentation. Do NOT add them all here, or you may end up with defunct +# commands when upgrading ranger. + +# A simple command for demonstration purposes follows. +# ----------------------------------------------------------------------------- + +from __future__ import (absolute_import, division, print_function) + +# You can import any python module as needed. +import os + +# You always need to import ranger.api.commands here to get the Command class: +from ranger.api.commands import Command + + +# Any class that is a subclass of "Command" will be integrated into ranger as a +# command. Try typing ":my_edit" 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 new file mode 100644 index 0000000..932baf7 --- /dev/null +++ b/config/.config/ranger/commands_full.py @@ -0,0 +1,2122 @@ +# -*- 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