From cfc897c53bdc01859b420476b3c3ae80d895f54e Mon Sep 17 00:00:00 2001 From: Jonas Hahn Date: Sat, 30 Aug 2025 20:23:00 +0200 Subject: [PATCH] Initial commit --- config/.config/arkrc | 7 + config/.config/btop/btop.conf | 254 + config/.config/castero/castero.conf | 315 ++ config/.config/clipse/clipboard_history.json | 1 + config/.config/clipse/clipse.log | 3 + config/.config/clipse/config.json | 35 + config/.config/clipse/custom_theme.json | 28 + config/.config/cointop/config.toml | 122 + config/.config/dolphinrc | 13 + config/.config/dunst/dunstrc | 41 + .../site-start-b807e9b1-8f4312e0.eln | Bin 0 -> 18848 bytes .../site-start-c2eb548f-8f4312e0.eln | Bin 0 -> 18848 bytes .../site-start-335fd812-f1c28c94.eln | Bin 0 -> 19040 bytes .../site-start-4d2fbafe-8f4312e0.eln | Bin 0 -> 18848 bytes config/.config/emacs/init.el | 1 + config/.config/foot/foot.ini | 2 + config/.config/fuzzel/fuzzel.ini | 15 + config/.config/htop/htoprc | 63 + config/.config/hypr/hyprland.conf | 274 + config/.config/hypr/hyprlock.conf | 111 + config/.config/hypr/hyprpaper.conf | 12 + config/.config/i3/config | 190 + config/.config/iamb/config.toml | 2 + config/.config/keepassxc/keepassxc.ini | 14 + .../kitty/kitty-themes/themes/Japanesque.conf | 21 + .../kitty-themes/themes/gruvbox_dark.conf | 49 + config/.config/kitty/kitty.conf | 27 + config/.config/kitty/main_session.conf | 9 + config/.config/kitty/theme.conf | 21 + config/.config/konsole.kmessagebox | 2 + config/.config/konsolerc | 8 + config/.config/lazygit/config.yml | 42 + config/.config/neofetch/config.conf | 880 ++++ config/.config/neomutt/mailcap | 5 + config/.config/neomutt/neomuttrc | 106 + config/.config/nixpkgs/config.nix | 7 + config/.config/nwg-look/config | 6 + config/.config/pavucontrol.ini | 8 + config/.config/qalculate/qalculate-qt.cfg | 354 ++ config/.config/ranger/commands.py | 62 + config/.config/ranger/commands_full.py | 2122 ++++++++ config/.config/ranger/rc.conf | 780 +++ config/.config/ranger/rifle.conf | 301 ++ config/.config/ranger/scope.sh | 477 ++ config/.config/rclone/rclone.conf | 7 + config/.config/simple-scan/state | 8 + config/.config/sioyek/keys_user.config | 0 config/.config/sioyek/prefs.config | 6 + config/.config/sioyek/prefs_user.config | 1 + config/.config/sops/age/keys.txt | 1 + config/.config/spotify-player/app.toml | 49 + config/.config/sway/config | 159 + config/.config/tofi/config | 26 + config/.config/vlc/vlc-qt-interface.conf | 20 + config/.config/vlc/vlcrc | 4688 +++++++++++++++++ config/.config/walker/config.json | 126 + config/.config/walker/themes/catppuccin.css | 135 + config/.config/walker/themes/catppuccin.json | 56 + config/.config/watson/frames | 10 + config/.config/watson/state | 1 + config/.config/watson/state.bak | 5 + config/.config/waybar/config | 47 + config/.config/waybar/style.css | 155 + config/.config/weechat/alias.conf | 49 + config/.config/weechat/buflist.conf | 41 + config/.config/weechat/charset.conf | 18 + config/.config/weechat/exec.conf | 19 + config/.config/weechat/fifo.conf | 14 + config/.config/weechat/fset.conf | 100 + config/.config/weechat/guile.conf | 14 + config/.config/weechat/irc.conf | 237 + config/.config/weechat/logger.conf | 40 + config/.config/weechat/lua.conf | 14 + config/.config/weechat/perl.conf | 14 + config/.config/weechat/plugins.conf | 14 + config/.config/weechat/python.conf | 14 + config/.config/weechat/relay.conf | 70 + config/.config/weechat/ruby.conf | 14 + config/.config/weechat/script.conf | 57 + config/.config/weechat/sec.conf | 20 + config/.config/weechat/spell.conf | 33 + config/.config/weechat/tcl.conf | 14 + config/.config/weechat/trigger.conf | 66 + config/.config/weechat/typing.conf | 19 + config/.config/weechat/weechat.conf | 697 +++ config/.config/weechat/xfer.conf | 49 + config/.config/wiki-tui/config.toml | 62 + config/.config/xremap/config.yml | 5 + .../yazi/flavors/kanagawa.yazi/LICENSE | 21 + .../flavors/kanagawa.yazi/LICENSE-tmtheme | 21 + .../yazi/flavors/kanagawa.yazi/README.md | 32 + .../yazi/flavors/kanagawa.yazi/flavor.toml | 136 + .../yazi/flavors/kanagawa.yazi/preview.png | Bin 0 -> 294877 bytes .../yazi/flavors/kanagawa.yazi/tmtheme.xml | 448 ++ config/.config/yazi/init.lua | 19 + config/.config/yazi/keymap.toml | 52 + config/.config/yazi/package.toml | 29 + .../yazi/plugins/bookmarks.yazi/LICENSE | 19 + .../yazi/plugins/bookmarks.yazi/README.md | 146 + .../yazi/plugins/bookmarks.yazi/main.lua | 383 ++ .../.config/yazi/plugins/chmod.yazi/LICENSE | 21 + .../.config/yazi/plugins/chmod.yazi/README.md | 28 + .../.config/yazi/plugins/chmod.yazi/main.lua | 41 + .../.config/yazi/plugins/lazygit.yazi/LICENSE | 21 + .../yazi/plugins/lazygit.yazi/README.md | 29 + .../yazi/plugins/lazygit.yazi/main.lua | 31 + .../.config/yazi/plugins/restore.yazi/LICENSE | 661 +++ .../yazi/plugins/restore.yazi/README.md | 86 + .../yazi/plugins/restore.yazi/main.lua | 269 + .../yazi/plugins/what-size.yazi/LICENSE | 21 + .../yazi/plugins/what-size.yazi/README.md | 83 + .../yazi/plugins/what-size.yazi/main.lua | 96 + config/.config/yazi/theme.toml | 2 + config/.config/yazi/yazi.toml | 33 + home/.Xauthority | Bin 0 -> 54 bytes home/.Xmodmap | 248 + home/.bash_profile | 1 + home/.bashrc | 28 + home/.common_shell | 107 + home/.gitconfig | 48 + home/.newsboat/config | 22 + home/.newsboat/urls | 5 + home/.offlineimaprc | 15 + home/.pinerc | 693 +++ home/.ssh/config | 32 + home/.tmux.conf | 42 + home/.todo/config | 90 + home/.tor/torrc | 194 + home/.unison/custom.prf | 41 + home/.vitetris | 6 + home/.w3m/config | 165 + home/.zshrc | 104 + starship.toml | 16 + 133 files changed, 18569 insertions(+) create mode 100644 config/.config/arkrc create mode 100644 config/.config/btop/btop.conf create mode 100644 config/.config/castero/castero.conf create mode 100644 config/.config/clipse/clipboard_history.json create mode 100644 config/.config/clipse/clipse.log create mode 100644 config/.config/clipse/config.json create mode 100644 config/.config/clipse/custom_theme.json create mode 100644 config/.config/cointop/config.toml create mode 100644 config/.config/dolphinrc create mode 100644 config/.config/dunst/dunstrc create mode 100755 config/.config/emacs/eln-cache/29.4-34619dd7/site-start-b807e9b1-8f4312e0.eln create mode 100755 config/.config/emacs/eln-cache/30.1-5ce9200b/site-start-c2eb548f-8f4312e0.eln create mode 100755 config/.config/emacs/eln-cache/30.1-a4618eb1/site-start-335fd812-f1c28c94.eln create mode 100755 config/.config/emacs/eln-cache/30.1-b306151b/site-start-4d2fbafe-8f4312e0.eln create mode 100644 config/.config/emacs/init.el create mode 100644 config/.config/foot/foot.ini create mode 100644 config/.config/fuzzel/fuzzel.ini create mode 100644 config/.config/htop/htoprc create mode 100644 config/.config/hypr/hyprland.conf create mode 100644 config/.config/hypr/hyprlock.conf create mode 100644 config/.config/hypr/hyprpaper.conf create mode 100644 config/.config/i3/config create mode 100644 config/.config/iamb/config.toml create mode 100644 config/.config/keepassxc/keepassxc.ini create mode 100644 config/.config/kitty/kitty-themes/themes/Japanesque.conf create mode 100644 config/.config/kitty/kitty-themes/themes/gruvbox_dark.conf create mode 100644 config/.config/kitty/kitty.conf create mode 100644 config/.config/kitty/main_session.conf create mode 100644 config/.config/kitty/theme.conf create mode 100644 config/.config/konsole.kmessagebox create mode 100644 config/.config/konsolerc create mode 100644 config/.config/lazygit/config.yml create mode 100644 config/.config/neofetch/config.conf create mode 100644 config/.config/neomutt/mailcap create mode 100644 config/.config/neomutt/neomuttrc create mode 100644 config/.config/nixpkgs/config.nix create mode 100644 config/.config/nwg-look/config create mode 100644 config/.config/pavucontrol.ini create mode 100644 config/.config/qalculate/qalculate-qt.cfg create mode 100644 config/.config/ranger/commands.py create mode 100644 config/.config/ranger/commands_full.py create mode 100644 config/.config/ranger/rc.conf create mode 100644 config/.config/ranger/rifle.conf create mode 100755 config/.config/ranger/scope.sh create mode 100644 config/.config/rclone/rclone.conf create mode 100644 config/.config/simple-scan/state create mode 100644 config/.config/sioyek/keys_user.config create mode 100644 config/.config/sioyek/prefs.config create mode 100644 config/.config/sioyek/prefs_user.config create mode 120000 config/.config/sops/age/keys.txt create mode 100644 config/.config/spotify-player/app.toml create mode 100644 config/.config/sway/config create mode 100644 config/.config/tofi/config create mode 100644 config/.config/vlc/vlc-qt-interface.conf create mode 100644 config/.config/vlc/vlcrc create mode 100644 config/.config/walker/config.json create mode 100644 config/.config/walker/themes/catppuccin.css create mode 100644 config/.config/walker/themes/catppuccin.json create mode 100644 config/.config/watson/frames create mode 100644 config/.config/watson/state create mode 100644 config/.config/watson/state.bak create mode 100644 config/.config/waybar/config create mode 100644 config/.config/waybar/style.css create mode 100644 config/.config/weechat/alias.conf create mode 100644 config/.config/weechat/buflist.conf create mode 100644 config/.config/weechat/charset.conf create mode 100644 config/.config/weechat/exec.conf create mode 100644 config/.config/weechat/fifo.conf create mode 100644 config/.config/weechat/fset.conf create mode 100644 config/.config/weechat/guile.conf create mode 100644 config/.config/weechat/irc.conf create mode 100644 config/.config/weechat/logger.conf create mode 100644 config/.config/weechat/lua.conf create mode 100644 config/.config/weechat/perl.conf create mode 100644 config/.config/weechat/plugins.conf create mode 100644 config/.config/weechat/python.conf create mode 100644 config/.config/weechat/relay.conf create mode 100644 config/.config/weechat/ruby.conf create mode 100644 config/.config/weechat/script.conf create mode 100644 config/.config/weechat/sec.conf create mode 100644 config/.config/weechat/spell.conf create mode 100644 config/.config/weechat/tcl.conf create mode 100644 config/.config/weechat/trigger.conf create mode 100644 config/.config/weechat/typing.conf create mode 100644 config/.config/weechat/weechat.conf create mode 100644 config/.config/weechat/xfer.conf create mode 100644 config/.config/wiki-tui/config.toml create mode 100644 config/.config/xremap/config.yml create mode 100644 config/.config/yazi/flavors/kanagawa.yazi/LICENSE create mode 100644 config/.config/yazi/flavors/kanagawa.yazi/LICENSE-tmtheme create mode 100644 config/.config/yazi/flavors/kanagawa.yazi/README.md create mode 100644 config/.config/yazi/flavors/kanagawa.yazi/flavor.toml create mode 100644 config/.config/yazi/flavors/kanagawa.yazi/preview.png create mode 100644 config/.config/yazi/flavors/kanagawa.yazi/tmtheme.xml create mode 100644 config/.config/yazi/init.lua create mode 100644 config/.config/yazi/keymap.toml create mode 100644 config/.config/yazi/package.toml create mode 100644 config/.config/yazi/plugins/bookmarks.yazi/LICENSE create mode 100644 config/.config/yazi/plugins/bookmarks.yazi/README.md create mode 100644 config/.config/yazi/plugins/bookmarks.yazi/main.lua create mode 100644 config/.config/yazi/plugins/chmod.yazi/LICENSE create mode 100644 config/.config/yazi/plugins/chmod.yazi/README.md create mode 100644 config/.config/yazi/plugins/chmod.yazi/main.lua create mode 100644 config/.config/yazi/plugins/lazygit.yazi/LICENSE create mode 100644 config/.config/yazi/plugins/lazygit.yazi/README.md create mode 100644 config/.config/yazi/plugins/lazygit.yazi/main.lua create mode 100644 config/.config/yazi/plugins/restore.yazi/LICENSE create mode 100644 config/.config/yazi/plugins/restore.yazi/README.md create mode 100644 config/.config/yazi/plugins/restore.yazi/main.lua create mode 100644 config/.config/yazi/plugins/what-size.yazi/LICENSE create mode 100644 config/.config/yazi/plugins/what-size.yazi/README.md create mode 100644 config/.config/yazi/plugins/what-size.yazi/main.lua create mode 100644 config/.config/yazi/theme.toml create mode 100644 config/.config/yazi/yazi.toml create mode 100644 home/.Xauthority create mode 100644 home/.Xmodmap create mode 100644 home/.bash_profile create mode 100644 home/.bashrc create mode 100644 home/.common_shell create mode 100644 home/.gitconfig create mode 100644 home/.newsboat/config create mode 100644 home/.newsboat/urls create mode 100644 home/.offlineimaprc create mode 100644 home/.pinerc create mode 100644 home/.ssh/config create mode 100644 home/.tmux.conf create mode 100644 home/.todo/config create mode 100644 home/.tor/torrc create mode 100644 home/.unison/custom.prf create mode 100644 home/.vitetris create mode 100644 home/.w3m/config create mode 100644 home/.zshrc create mode 100644 starship.toml 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 0000000000000000000000000000000000000000..7bfc9d2ed80d517624f42c39c40e5603d7e87e1a GIT binary patch literal 18848 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 F{|nEqxn2MO literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f0846a911b464e213ad83c34a923bf31c5c6beb6 GIT binary patch literal 19040 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 Q{NEjNDE^)a74-7|H#PzKEC2ui literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4fdc1ce7b1ae988fdece104c627d857746805b67 GIT binary patch literal 18848 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 F|6hUTxMlzV literal 0 HcmV?d00001 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