diff --git a/terminal/.bash_profile b/bash/.bash_profile
similarity index 100%
rename from terminal/.bash_profile
rename to bash/.bash_profile
diff --git a/terminal/.bashrc b/bash/.bashrc
similarity index 100%
rename from terminal/.bashrc
rename to bash/.bashrc
diff --git a/terminal/.config/bash/env.d/bash-history-xdg.sh b/bash/.config/bash/env.d/bash-history-xdg.sh
similarity index 100%
rename from terminal/.config/bash/env.d/bash-history-xdg.sh
rename to bash/.config/bash/env.d/bash-history-xdg.sh
diff --git a/writing/.local/bin/bib-due b/bibtex/.local/bin/bib-due
similarity index 100%
rename from writing/.local/bin/bib-due
rename to bibtex/.local/bin/bib-due
diff --git a/writing/.local/bin/rofi-bib-due b/bibtex/.local/bin/rofi-bib-due
similarity index 100%
rename from writing/.local/bin/rofi-bib-due
rename to bibtex/.local/bin/rofi-bib-due
diff --git a/writing/.local/share/pandoc/templates/default.latex.BAK b/bibtex/.local/share/pandoc/templates/default.latex.BAK
similarity index 100%
rename from writing/.local/share/pandoc/templates/default.latex.BAK
rename to bibtex/.local/share/pandoc/templates/default.latex.BAK
diff --git a/writing/.local/share/pandoc/templates/paper.latex b/bibtex/.local/share/pandoc/templates/paper.latex
similarity index 100%
rename from writing/.local/share/pandoc/templates/paper.latex
rename to bibtex/.local/share/pandoc/templates/paper.latex
diff --git a/writing/README.md b/bibtex/README.md
similarity index 92%
rename from writing/README.md
rename to bibtex/README.md
index 278e97d..9e06767 100644
--- a/writing/README.md
+++ b/bibtex/README.md
@@ -1,11 +1,6 @@
-# Writing module
+# Bibtex module
[bibtex](https://en.wikipedia.org/wiki/BibTeX) - plain-text reference management
-[zathura](git.pwmt.org) - keyboard-driven PDF reading
-
-This readme is a little out of date, as are the scripts below.
-They are old, I used them during my time as a student and they are probably written terribly.
-But I still think there is value in them, hence not removing them from the repo just yet.
## bib-due
diff --git a/dunst/.config/dunst/dunstrc b/dunst/.config/dunst/dunstrc
new file mode 100644
index 0000000..fac271d
--- /dev/null
+++ b/dunst/.config/dunst/dunstrc
@@ -0,0 +1,417 @@
+[global]
+ ### Display ###
+
+ # Which monitor should the notifications be displayed on.
+ monitor = 0
+
+ # Display notification on focused monitor. Possible modes are:
+ # mouse: follow mouse pointer
+ # keyboard: follow window with keyboard focus
+ # none: don't follow anything
+ #
+ # "keyboard" needs a window manager that exports the
+ # _NET_ACTIVE_WINDOW property.
+ # This should be the case for almost all modern window managers.
+ #
+ # If this option is set to mouse or keyboard, the monitor option
+ # will be ignored.
+ follow = mouse
+
+ # The geometry of the window:
+ # [{width}]x{height}[+/-{x}+/-{y}]
+ # The geometry of the message window.
+ # The height is measured in number of notifications everything else
+ # in pixels. If the width is omitted but the height is given
+ # ("-geometry x2"), the message window expands over the whole screen
+ # (dmenu-like). If width is 0, the window expands to the longest
+ # message displayed. A positive x is measured from the left, a
+ # negative from the right side of the screen. Y is measured from
+ # the top and down respectively.
+ # The width can be negative. In this case the actual width is the
+ # screen width minus the width defined in within the geometry option.
+ geometry = "300x5-30+20"
+
+ # Show how many messages are currently hidden (because of geometry).
+ indicate_hidden = yes
+
+ # Shrink window if it's smaller than the width. Will be ignored if
+ # width is 0.
+ shrink = no
+
+ # The transparency of the window. Range: [0; 100].
+ # This option will only work if a compositing window manager is
+ # present (e.g. xcompmgr, compiz, etc.).
+ transparency = 20
+
+ # The height of the entire notification. If the height is smaller
+ # than the font height and padding combined, it will be raised
+ # to the font height and padding.
+ notification_height = 0
+
+ # Draw a line of "separator_height" pixel height between two
+ # notifications.
+ # Set to 0 to disable.
+ separator_height = 2
+
+ # Padding between text and separator.
+ padding = 8
+
+ # Horizontal padding.
+ horizontal_padding = 8
+
+ # Defines width in pixels of frame around the notification window.
+ # Set to 0 to disable.
+ frame_width = 3
+
+ # Defines color of the frame around the notification window.
+ frame_color = "#aaaaaa"
+
+ # Define a color for the separator.
+ # possible values are:
+ # * auto: dunst tries to find a color fitting to the background;
+ # * foreground: use the same color as the foreground;
+ # * frame: use the same color as the frame;
+ # * anything else will be interpreted as a X color.
+ separator_color = auto
+
+ # Sort messages by urgency.
+ sort = yes
+
+ # Don't remove messages, if the user is idle (no mouse or keyboard input)
+ # for longer than idle_threshold seconds.
+ # Set to 0 to disable.
+ # A client can set the 'transient' hint to bypass this. See the rules
+ # section for how to disable this if necessary
+ idle_threshold = 120
+
+ ### Text ###
+
+ font = Monospace 10
+
+ # The spacing between lines. If the height is smaller than the
+ # font height, it will get raised to the font height.
+ line_height = 0
+
+ # Possible values are:
+ # full: Allow a small subset of html markup in notifications:
+ # bold
+ # italic
+ # strikethrough
+ # underline
+ #
+ # For a complete reference see
+ # .
+ #
+ # strip: This setting is provided for compatibility with some broken
+ # clients that send markup even though it's not enabled on the
+ # server. Dunst will try to strip the markup but the parsing is
+ # simplistic so using this option outside of matching rules for
+ # specific applications *IS GREATLY DISCOURAGED*.
+ #
+ # no: Disable markup parsing, incoming notifications will be treated as
+ # plain text. Dunst will not advertise that it has the body-markup
+ # capability if this is set as a global setting.
+ #
+ # It's important to note that markup inside the format option will be parsed
+ # regardless of what this is set to.
+ markup = full
+
+ # The format of the message. Possible variables are:
+ # %a appname
+ # %s summary
+ # %b body
+ # %i iconname (including its path)
+ # %I iconname (without its path)
+ # %p progress value if set ([ 0%] to [100%]) or nothing
+ # %n progress value if set without any extra characters
+ # %% Literal %
+ # Markup is allowed
+ format = "%s\n%b"
+
+ # Alignment of message text.
+ # Possible values are "left", "center" and "right".
+ alignment = left
+
+ # Show age of message if message is older than show_age_threshold
+ # seconds.
+ # Set to -1 to disable.
+ show_age_threshold = 60
+
+ # Split notifications into multiple lines if they don't fit into
+ # geometry.
+ word_wrap = yes
+
+ # When word_wrap is set to no, specify where to make an ellipsis in long lines.
+ # Possible values are "start", "middle" and "end".
+ ellipsize = middle
+
+ # Ignore newlines '\n' in notifications.
+ ignore_newline = no
+
+ # Stack together notifications with the same content
+ stack_duplicates = true
+
+ # Hide the count of stacked notifications with the same content
+ hide_duplicate_count = false
+
+ # Display indicators for URLs (U) and actions (A).
+ show_indicators = yes
+
+ ### Icons ###
+
+ # Align icons left/right/off
+ icon_position = left
+
+ # Scale larger icons down to this size, set to 0 to disable
+ max_icon_size = 128
+
+ # Paths to default icons.
+ icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
+
+ ### History ###
+
+ # Should a notification popped up from history be sticky or timeout
+ # as if it would normally do.
+ sticky_history = yes
+
+ # Maximum amount of notifications kept in history
+ history_length = 20
+
+ ### Misc/Advanced ###
+
+ # dmenu path.
+ dmenu = /usr/bin/dmenu -p dunst:
+
+ # Browser for opening urls in context menu.
+ browser = xdg-open
+
+ # Always run rule-defined scripts, even if the notification is suppressed
+ always_run_script = true
+
+ # Define the title of the windows spawned by dunst
+ title = Dunst
+
+ # Define the class of the windows spawned by dunst
+ class = Dunst
+
+ # Print a notification on startup.
+ # This is mainly for error detection, since dbus (re-)starts dunst
+ # automatically after a crash.
+ startup_notification = false
+
+ # Manage dunst's desire for talking
+ # Can be one of the following values:
+ # crit: Critical features. Dunst aborts
+ # warn: Only non-fatal warnings
+ # mesg: Important Messages
+ # info: all unimportant stuff
+ # debug: all less than unimportant stuff
+ verbosity = mesg
+
+ # Define the corner radius of the notification window
+ # in pixel size. If the radius is 0, you have no rounded
+ # corners.
+ # The radius will be automatically lowered if it exceeds half of the
+ # notification height to avoid clipping text and/or icons.
+ corner_radius = 1
+
+ ### Legacy
+
+ # Use the Xinerama extension instead of RandR for multi-monitor support.
+ # This setting is provided for compatibility with older nVidia drivers that
+ # do not support RandR and using it on systems that support RandR is highly
+ # discouraged.
+ #
+ # By enabling this setting dunst will not be able to detect when a monitor
+ # is connected or disconnected which might break follow mode if the screen
+ # layout changes.
+ force_xinerama = false
+
+ ### mouse
+
+ # Defines action of mouse event
+ # Possible values are:
+ # * none: Don't do anything.
+ # * do_action: If the notification has exactly one action, or one is marked as default,
+ # invoke it. If there are multiple and no default, open the context menu.
+ # * close_current: Close current notification.
+ # * close_all: Close all notifications.
+ mouse_left_click = close_current
+ mouse_middle_click = close_all
+ mouse_right_click = do_action
+
+# Experimental features that may or may not work correctly. Do not expect them
+# to have a consistent behaviour across releases.
+[experimental]
+ # Calculate the dpi to use on a per-monitor basis.
+ # If this setting is enabled the Xft.dpi value will be ignored and instead
+ # dunst will attempt to calculate an appropriate dpi value for each monitor
+ # using the resolution and physical size. This might be useful in setups
+ # where there are multiple screens with very different dpi values.
+ per_monitor_dpi = false
+
+[shortcuts]
+
+ # Shortcuts are specified as [modifier+][modifier+]...key
+ # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
+ # "mod3" and "mod4" (windows-key).
+ # Xev might be helpful to find names for keys.
+
+ # Close notification.
+ close = ctrl+space
+
+ # Close all notifications.
+ close_all = ctrl+shift+space
+
+ # Redisplay last message(s).
+ # On the US keyboard layout "grave" is normally above TAB and left
+ # of "1". Make sure this key actually exists on your keyboard layout,
+ # e.g. check output of 'xmodmap -pke'
+ history = ctrl+grave
+
+ # Context menu.
+ context = ctrl+shift+period
+
+[urgency_low]
+ # IMPORTANT: colors have to be defined in quotation marks.
+ # Otherwise the "#" and following would be interpreted as a comment.
+ background = "#222222"
+ foreground = "#888888"
+ timeout = 10
+ # Icon for notifications with low urgency, uncomment to enable
+ #icon = /path/to/icon
+
+[urgency_normal]
+ background = "#285577"
+ foreground = "#ffffff"
+ timeout = 10
+ # Icon for notifications with normal urgency, uncomment to enable
+ #icon = /path/to/icon
+
+[urgency_critical]
+ background = "#900000"
+ foreground = "#ffffff"
+ frame_color = "#ff0000"
+ timeout = 0
+ # Icon for notifications with critical urgency, uncomment to enable
+ #icon = /path/to/icon
+
+# Every section that isn't one of the above is interpreted as a rules to
+# override settings for certain messages.
+#
+# Messages can be matched by
+# appname (discouraged, see desktop_entry)
+# body
+# category
+# desktop_entry
+# icon
+# match_transient
+# msg_urgency
+# stack_tag
+# summary
+#
+# and you can override the
+# background
+# foreground
+# format
+# frame_color
+# fullscreen
+# new_icon
+# set_stack_tag
+# set_transient
+# timeout
+# urgency
+#
+# Shell-like globbing will get expanded.
+#
+# Instead of the appname filter, it's recommended to use the desktop_entry filter.
+# GLib based applications export their desktop-entry name. In comparison to the appname,
+# the desktop-entry won't get localized.
+#
+# SCRIPTING
+# You can specify a script that gets run when the rule matches by
+# setting the "script" option.
+# The script will be called as follows:
+# script appname summary body icon urgency
+# where urgency can be "LOW", "NORMAL" or "CRITICAL".
+#
+# NOTE: if you don't want a notification to be displayed, set the format
+# to "".
+# NOTE: It might be helpful to run dunst -print in a terminal in order
+# to find fitting options for rules.
+
+# Disable the transient hint so that idle_threshold cannot be bypassed from the
+# client
+#[transient_disable]
+# match_transient = yes
+# set_transient = no
+#
+# Make the handling of transient notifications more strict by making them not
+# be placed in history.
+#[transient_history_ignore]
+# match_transient = yes
+# history_ignore = yes
+
+# fullscreen values
+# show: show the notifications, regardless if there is a fullscreen window opened
+# delay: displays the new notification, if there is no fullscreen window active
+# If the notification is already drawn, it won't get undrawn.
+# pushback: same as delay, but when switching into fullscreen, the notification will get
+# withdrawn from screen again and will get delayed like a new notification
+#[fullscreen_delay_everything]
+# fullscreen = delay
+[fullscreen_show_critical]
+ msg_urgency = critical
+ fullscreen = show
+[stack-volumes]
+ appname = "pavolume"
+ set_stack_tag = "volume"
+
+#[espeak]
+# summary = "*"
+# script = dunst_espeak.sh
+
+#[script-test]
+# summary = "*script*"
+# script = dunst_test.sh
+
+#[ignore]
+# # This notification will not be displayed
+# summary = "foobar"
+# format = ""
+
+#[history-ignore]
+# # This notification will not be saved in history
+# summary = "foobar"
+# history_ignore = yes
+
+#[skip-display]
+# # This notification will not be displayed, but will be included in the history
+# summary = "foobar"
+# skip_display = yes
+
+#[signed_on]
+# appname = Pidgin
+# summary = "*signed on*"
+# urgency = low
+#
+#[signed_off]
+# appname = Pidgin
+# summary = *signed off*
+# urgency = low
+#
+#[says]
+# appname = Pidgin
+# summary = *says*
+# urgency = critical
+#
+#[twitter]
+# appname = Pidgin
+# summary = *twitter.com*
+# urgency = normal
+#
+#[stack-volumes]
+# appname = "some_volume_notifiers"
+# set_stack_tag = "volume"
+#
+# vim: ft=cfg
diff --git a/kitty/.config/kitty/kitty.conf b/kitty/.config/kitty/kitty.conf
new file mode 100644
index 0000000..a17f428
--- /dev/null
+++ b/kitty/.config/kitty/kitty.conf
@@ -0,0 +1,8 @@
+enable_audio_bell no
+include current-theme.conf
+
+font_family Liga Iosevka
+bold_font Iosevka Term Bold Nerd Font Complete
+italic_font Iosevka Term Italic Nerd Font Complete
+bold_italic_font Iosevka Term Heavy Italic Nerd Font Complete
+
diff --git a/desktop/.config/mako/config b/mako/.config/mako/config
similarity index 100%
rename from desktop/.config/mako/config
rename to mako/.config/mako/config
diff --git a/multimedia/.config/mpv/input.conf b/mpv/.config/mpv/input.conf
similarity index 100%
rename from multimedia/.config/mpv/input.conf
rename to mpv/.config/mpv/input.conf
diff --git a/multimedia/.config/mpv/mpv.conf b/mpv/.config/mpv/mpv.conf
similarity index 100%
rename from multimedia/.config/mpv/mpv.conf
rename to mpv/.config/mpv/mpv.conf
diff --git a/multimedia/.config/mpv/script-opts/playlistmanager.conf b/mpv/.config/mpv/script-opts/playlistmanager.conf
similarity index 100%
rename from multimedia/.config/mpv/script-opts/playlistmanager.conf
rename to mpv/.config/mpv/script-opts/playlistmanager.conf
diff --git a/multimedia/.config/mpv/script-opts/uosc.conf b/mpv/.config/mpv/script-opts/uosc.conf
similarity index 100%
rename from multimedia/.config/mpv/script-opts/uosc.conf
rename to mpv/.config/mpv/script-opts/uosc.conf
diff --git a/multimedia/.config/mpv/script-opts/ytdl_hook.conf b/mpv/.config/mpv/script-opts/ytdl_hook.conf
similarity index 100%
rename from multimedia/.config/mpv/script-opts/ytdl_hook.conf
rename to mpv/.config/mpv/script-opts/ytdl_hook.conf
diff --git a/multimedia/.config/mpv/scripts/autoload.lua b/mpv/.config/mpv/scripts/autoload.lua
similarity index 100%
rename from multimedia/.config/mpv/scripts/autoload.lua
rename to mpv/.config/mpv/scripts/autoload.lua
diff --git a/multimedia/.config/mpv/scripts/battery.lua b/mpv/.config/mpv/scripts/battery.lua
similarity index 100%
rename from multimedia/.config/mpv/scripts/battery.lua
rename to mpv/.config/mpv/scripts/battery.lua
diff --git a/multimedia/.config/mpv/scripts/gallery-dl.lua b/mpv/.config/mpv/scripts/gallery-dl.lua
similarity index 100%
rename from multimedia/.config/mpv/scripts/gallery-dl.lua
rename to mpv/.config/mpv/scripts/gallery-dl.lua
diff --git a/multimedia/.config/mpv/scripts/playlistmanager.lua b/mpv/.config/mpv/scripts/playlistmanager.lua
similarity index 100%
rename from multimedia/.config/mpv/scripts/playlistmanager.lua
rename to mpv/.config/mpv/scripts/playlistmanager.lua
diff --git a/multimedia/.config/mpv/scripts/sponsorblock_minimal.lua b/mpv/.config/mpv/scripts/sponsorblock_minimal.lua
similarity index 100%
rename from multimedia/.config/mpv/scripts/sponsorblock_minimal.lua
rename to mpv/.config/mpv/scripts/sponsorblock_minimal.lua
diff --git a/multimedia/.config/mpv/scripts/uosc.lua b/mpv/.config/mpv/scripts/uosc.lua
similarity index 100%
rename from multimedia/.config/mpv/scripts/uosc.lua
rename to mpv/.config/mpv/scripts/uosc.lua
diff --git a/multimedia/.local/bin/umpv b/mpv/.local/bin/umpv
similarity index 100%
rename from multimedia/.local/bin/umpv
rename to mpv/.local/bin/umpv
diff --git a/multimedia/README.md b/mpv/README.md
similarity index 91%
rename from multimedia/README.md
rename to mpv/README.md
index 1a22a5e..2c55b89 100644
--- a/multimedia/README.md
+++ b/mpv/README.md
@@ -1,12 +1,6 @@
-# Multimedia module
+# mpv module
[mpv](https://mpv.io) -- free, open-source, cross-platform media player
-beets -- organize your music library
-mopidy -- serve your music library
-ncmpcpp -- actually play your music (and twist your tongue pronouncing it)
-
-The largest modifications so far are definitely to mpv (described below),
-with beets and mopidy being somewhat configured to my tastes as well.
mpv is set up to hopefully strike a balance between high quality playback, streaming with a reasonable speed and saving battery power.
It is set up to play both local files and streams from the web (especially youtube with playlisting and ad skipping), via a qutebrowser mapping if the corresponding module is installed.
diff --git a/rofi/.config/rofi/config.rasi b/rofi/.config/rofi/config.rasi
new file mode 100644
index 0000000..5a8bab2
--- /dev/null
+++ b/rofi/.config/rofi/config.rasi
@@ -0,0 +1,160 @@
+configuration {
+ show-icons: true;
+ icon-theme: "Paper";
+ theme: "themes/settings.rasi";
+ cycle: true;
+ hide-scrollbar: true;
+ disable-history: false;
+ modi: "drun";
+ display-drun: "apps";
+ columns: 2;
+ pid: "/run/user/1000/rofi.pid";
+}
+
+/* ALL OPTIONS */
+/* configuration { */
+/* modi: "window,run,ssh,drun,combi,keys,calc"; */
+/* width: 50;*/
+/* lines: 15;*/
+/* columns: 1;*/
+/* font: "mono 12";*/
+/* bw: 1;*/
+/* location: 0;*/
+/* padding: 5;*/
+/* yoffset: 0;*/
+/* xoffset: 0;*/
+/* fixed-num-lines: true;*/
+/* show-icons: false;*/
+/* terminal: "rofi-sensible-terminal";*/
+/* ssh-client: "ssh";*/
+/* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/
+/* run-command: "{cmd}";*/
+/* run-list-command: "";*/
+/* run-shell-command: "{terminal} -e {cmd}";*/
+/* window-command: "wmctrl -i -R {window}";*/
+/* window-match-fields: "all";*/
+/* icon-theme: ;*/
+/* drun-match-fields: "name,generic,exec,categories";*/
+/* drun-show-actions: false;*/
+/* drun-display-format: "{name} [({generic})]";*/
+/* disable-history: false;*/
+/* ignored-prefixes: "";*/
+/* sort: false;*/
+/* sorting-method: ;*/
+/* case-sensitive: false;*/
+/* cycle: true;*/
+/* sidebar-mode: false;*/
+/* eh: 1;*/
+/* auto-select: false;*/
+/* parse-hosts: false;*/
+/* parse-known-hosts: true;*/
+/* combi-modi: "window,run";*/
+/* matching: "normal";*/
+/* tokenize: true;*/
+/* m: "-5";*/
+/* line-margin: 2;*/
+/* line-padding: 1;*/
+/* filter: ;*/
+/* separator-style: "dash";*/
+/* hide-scrollbar: false;*/
+/* fullscreen: false; */
+/* fake-transparency: false;*/
+/* dpi: -1;*/
+/* threads: 0;*/
+/* scrollbar-width: 8;*/
+/* scroll-method: 0;*/
+/* fake-background: "screenshot";*/
+/* window-format: "{w} {c} {t}";*/
+/* click-to-exit: true;*/
+/* show-match: true;*/
+/* theme: "dmenu"; */
+/* color-normal: ;*/
+/* color-urgent: ;*/
+/* color-active: ;*/
+/* color-window: ;*/
+/* max-history-size: 25;*/
+/* combi-hide-mode-prefix: false;*/
+/* matching-negate-char: '-' /* unsupported */;*/
+/* cache-dir: ;*/
+/* pid: "/run/user/1000/rofi.pid"; */
+/* display-window: ;*/
+/* display-windowcd: ;*/
+/* display-run: ;*/
+/* display-ssh: ;*/
+/* display-drun: ;*/
+/* display-combi: ;*/
+/* display-keys: ;*/
+/* display-calc: ;*/
+/* kb-primary-paste: "Control+V,Shift+Insert";*/
+/* kb-secondary-paste: "Control+v,Insert";*/
+/* kb-clear-line: "Control+w";*/
+/* kb-move-front: "Control+a";*/
+/* kb-move-end: "Control+e";*/
+/* kb-move-word-back: "Alt+b,Control+Left";*/
+/* kb-move-word-forward: "Alt+f,Control+Right";*/
+/* kb-move-char-back: "Left,Control+b";*/
+/* kb-move-char-forward: "Right,Control+f";*/
+/* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/
+/* kb-remove-word-forward: "Control+Alt+d";*/
+/* kb-remove-char-forward: "Delete,Control+d";*/
+/* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/
+/* kb-remove-to-eol: "Control+k";*/
+/* kb-remove-to-sol: "Control+u";*/
+/* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/
+/* kb-accept-custom: "Control+Return";*/
+/* kb-accept-alt: "Shift+Return";*/
+/* kb-delete-entry: "Shift+Delete";*/
+/* kb-mode-next: "Shift+Right,Control+Tab";*/
+/* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/
+/* kb-row-left: "Control+Page_Up";*/
+/* kb-row-right: "Control+Page_Down";*/
+/* kb-row-up: "Up,Control+p,ISO_Left_Tab";*/
+/* kb-row-down: "Down,Control+n";*/
+/* kb-row-tab: "Tab";*/
+/* kb-page-prev: "Page_Up";*/
+/* kb-page-next: "Page_Down";*/
+/* kb-row-first: "Home,KP_Home";*/
+/* kb-row-last: "End,KP_End";*/
+/* kb-row-select: "Control+space";*/
+/* kb-screenshot: "Alt+S";*/
+/* kb-ellipsize: "Alt+period";*/
+/* kb-toggle-case-sensitivity: "grave,dead_grave";*/
+/* kb-toggle-sort: "Alt+grave";*/
+/* kb-cancel: "Escape,Control+g,Control+bracketleft";*/
+/* kb-custom-1: "Alt+1";*/
+/* kb-custom-2: "Alt+2";*/
+/* kb-custom-3: "Alt+3";*/
+/* kb-custom-4: "Alt+4";*/
+/* kb-custom-5: "Alt+5";*/
+/* kb-custom-6: "Alt+6";*/
+/* kb-custom-7: "Alt+7";*/
+/* kb-custom-8: "Alt+8";*/
+/* kb-custom-9: "Alt+9";*/
+/* kb-custom-10: "Alt+0";*/
+/* kb-custom-11: "Alt+exclam";*/
+/* kb-custom-12: "Alt+at";*/
+/* kb-custom-13: "Alt+numbersign";*/
+/* kb-custom-14: "Alt+dollar";*/
+/* kb-custom-15: "Alt+percent";*/
+/* kb-custom-16: "Alt+dead_circumflex";*/
+/* kb-custom-17: "Alt+ampersand";*/
+/* kb-custom-18: "Alt+asterisk";*/
+/* kb-custom-19: "Alt+parenleft";*/
+/* kb-select-1: "Super+1";*/
+/* kb-select-2: "Super+2";*/
+/* kb-select-3: "Super+3";*/
+/* kb-select-4: "Super+4";*/
+/* kb-select-5: "Super+5";*/
+/* kb-select-6: "Super+6";*/
+/* kb-select-7: "Super+7";*/
+/* kb-select-8: "Super+8";*/
+/* kb-select-9: "Super+9";*/
+/* kb-select-10: "Super+0";*/
+/* ml-row-left: "ScrollLeft";*/
+/* ml-row-right: "ScrollRight";*/
+/* ml-row-up: "ScrollUp";*/
+/* ml-row-down: "ScrollDown";*/
+/* me-select-entry: "MousePrimary";*/
+/* me-accept-entry: "MouseDPrimary";*/
+/* me-accept-custom: "Control+MouseDPrimary";*/
+/* } */
diff --git a/rofi/.config/rofi/modes/fontawesome b/rofi/.config/rofi/modes/fontawesome
new file mode 100755
index 0000000..9674bc5
--- /dev/null
+++ b/rofi/.config/rofi/modes/fontawesome
@@ -0,0 +1,47 @@
+#!/usr/bin/env sh
+# Original wrapper script from: https://github.com/wstam88/rofi-fontawesome
+# more fa icon lists can be obtained there as well
+
+# a file to read from, will be preferred over url
+# ROFI_FONTAWESOME_LIST_FILE="some-fa5-icon-list.txt"
+# a url to pull list from
+# ROFI_FONTAWESOME_LIST_URL="https://point-me-to/a/fa-icon-list.txt"
+# icon|name|unicode, icon is default
+# ROFI_FONTAWESOME_OUTPUT="icon"
+
+if [ -n "$*" ]; then
+ output="${ROFI_FONTAWESOME_OUTPUT}"
+ case "$output" in
+ unicode)
+ printf "%s" "$*" |
+ grep -o -e '...;' |
+ sed 's/^//' |
+ sed 's/;$//' |
+ xclip -selection clipboard >/dev/null 2>/dev/null &
+ ;;
+ name)
+ printf "%s" "$*" |
+ cut -d\' -f2 |
+ xclip -selection clipboard >/dev/null 2>/dev/null &
+ ;;
+ icon | *)
+ printf "%s" "$*" |
+ grep -o -e '...;' |
+ sed 's/^/\\u/' |
+ sed 's/;$//' |
+ xclip -selection clipboard >/dev/null 2>/dev/null &
+ ;;
+ esac
+ exit 0
+
+elif [ -z "$*" ]; then
+ printf "\x00prompt\x1fIcon> \n"
+ printf "\x00markup-rows\x1ftrue\n"
+
+ url=${ROFI_FONTAWESOME_LIST_URL:-"https://raw.githubusercontent.com/wstam88/rofi-fontawesome/master/fa5-icon-list.txt"}
+ if [ -n "${ROFI_FONTAWESOME_LIST_FILE}" ]; then
+ cat "$ROFI_FONTAWESOME_LIST_FILE"
+ elif [ -n "${url}" ]; then
+ curl -s "${url}"
+ fi
+fi
diff --git a/rofi/.config/rofi/modes/nerdfont b/rofi/.config/rofi/modes/nerdfont
new file mode 100755
index 0000000..2345988
--- /dev/null
+++ b/rofi/.config/rofi/modes/nerdfont
@@ -0,0 +1,37 @@
+#!/usr/bin/env sh
+# Nerdfont csv from: https://github.com/shanedabes/rofi-nerdfonts
+
+# a file to read from, will be preferred over url
+# ROFI_NERDFONT_LIST_FILE="point/to/nerdfont-chars.csv"
+# a url to pull list from
+# ROFI_NERDFONT_LIST_URL="https://point-me-to/a/nerd-icon-list.csv"
+# icon|name, icon is default
+# ROFI_NERDFONT_OUTPUT="icon"
+
+if [ -n "$*" ]; then
+ output="${ROFI_NERDFONT_OUTPUT}"
+ case "$output" in
+ name)
+ printf "%s" "$*" |
+ cut -d',' -f2 |
+ xclip -selection clipboard >/dev/null 2>/dev/null &
+ ;;
+ icon | *)
+ printf "%s" "$*" |
+ cut -d',' -f1 |
+ xclip -selection clipboard >/dev/null 2>/dev/null &
+ ;;
+ esac
+ exit 0
+
+elif [ -z "$*" ]; then
+ printf "\x00prompt\x1fIcon> \n"
+ printf "\x00markup-rows\x1ftrue\n"
+
+ url=${ROFI_NERDFONT_LIST_URL:-"https://raw.githubusercontent.com/shanedabes/rofi-nerdfonts/master/chars.csv"}
+ if [ -n "${ROFI_NERDFONT_LIST_FILE}" ]; then
+ cat "$ROFI_NERDFONT_LIST_FILE"
+ elif [ -n "${url}" ]; then
+ curl -s "${url}"
+ fi
+fi
diff --git a/rofi/.config/rofi/modes/rofi-colors b/rofi/.config/rofi/modes/rofi-colors
new file mode 100755
index 0000000..fa07f8c
--- /dev/null
+++ b/rofi/.config/rofi/modes/rofi-colors
@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+
+rofi_command="rofi"
+
+original_args=("$@")
+for ((i = 0; i <= "${#original_args[@]}"; i++)); do
+ if [ "${original_args[i]}" == "-color" ]; then
+ for ((j = 0; j <= "${#original_args[@]}"; j++)); do
+ if [ "${original_args[j]}" == "-theme" ]; then
+ echo "with theme: $i : ${original_args[i]} ${original_args[i + 1]}"
+ fi
+ done
+ fi
+done
+
+# for ((index = 0; index <= ${#lines_ary[@]}; index++)); do
+# if [ "${lines_ary[index]}" == "Release:" ]; then
+# echo "${lines_ary[index + 1]}"
+# fi
+# done
+
+$rofi_command "${original_args[@]}"
+
+# if [ -z "${color}" ]; then
+# command rofi "${original_args[@]}"
+# fi
+
+# echo "color = ${color}"
diff --git a/rofi/.config/rofi/rofi-bang-commands.csv b/rofi/.config/rofi/rofi-bang-commands.csv
new file mode 100644
index 0000000..44aca27
--- /dev/null
+++ b/rofi/.config/rofi/rofi-bang-commands.csv
@@ -0,0 +1,6 @@
+Calculator,!c,source,"rofi -show calc -modi calc -no-show-match -no-sort -theme Arc-Dark"
+Clipboard,!y,source,"rofi -modi "clipboard:greenclip print" -show clipboard -run-command '{cmd}' -theme Arc-Dark"
+Emojis,!e,source,"rofimoji --rofi-args '-theme sidebar'"
+Youtube,!yt,source,"someroficommand"
+Wikipedia,!w,source,"someroficommand"
+DuckDuckGo,!ddg,source,"someroficommand"
diff --git a/rofi/.config/rofi/themes/colorschemes/dmenu.rasi b/rofi/.config/rofi/themes/colorschemes/dmenu.rasi
new file mode 100644
index 0000000..60007ac
--- /dev/null
+++ b/rofi/.config/rofi/themes/colorschemes/dmenu.rasi
@@ -0,0 +1,11 @@
+* {
+accent: #ffffff; // anything which should be accented
+background: #000000; // rofi background color
+ background-nofocus: #000000;// bg of items not focused
+ background-focus: #4682b4; // bg of item focused
+foreground: #ffffff; // rofi foreground color
+ foreground-nofocus: #ffffff;// fg of items not focused
+ foreground-focus: #000000; // fg of items focused
+on: #6B9BC3; // color to signify something is turned on
+off: #1D354A; // color to signify something is turned off
+}
diff --git a/rofi/.config/rofi/themes/colorschemes/gruvbox-dark.rasi b/rofi/.config/rofi/themes/colorschemes/gruvbox-dark.rasi
new file mode 100644
index 0000000..2639f7d
--- /dev/null
+++ b/rofi/.config/rofi/themes/colorschemes/gruvbox-dark.rasi
@@ -0,0 +1,11 @@
+* {
+accent: #83a598; // anything which should be accented
+background: #282828; // rofi background color
+ background-nofocus: #282828;// bg of items not focused
+ background-focus: #1d2021; // bg of item focused
+foreground: #ebdbb2; // rofi foreground color
+ foreground-nofocus: #ebdbb2;// fg of items not focused
+ foreground-focus: #83a598; // fg of items focused
+on: #83a598; // color to signify something is turned on
+off: #fb4934; // color to signify something is turned off
+}
diff --git a/rofi/.config/rofi/themes/dmenu.rasi b/rofi/.config/rofi/themes/dmenu.rasi
new file mode 100644
index 0000000..46aab32
--- /dev/null
+++ b/rofi/.config/rofi/themes/dmenu.rasi
@@ -0,0 +1,35 @@
+/**
+ * Layout for the horizontal top bar
+ * dmenu we all know and love
+ *
+ */
+
+@import "layouts/list-horizontal.rasi"
+* {
+ background-color: @background;
+ border-color: @accent;
+ text-color: @foreground;
+ font: @text-font;
+}
+
+#window {
+ anchor: north;
+ location: north;
+ width: 100%;
+ padding: 4px;
+}
+
+#listview {
+ spacing: 5px;
+ lines: 100;
+ border: 0px;
+}
+
+#entry {
+ expand: false;
+ width: 10em;
+}
+
+#element {
+ padding: 0px 2px;
+}
diff --git a/rofi/.config/rofi/themes/dropdown.rasi b/rofi/.config/rofi/themes/dropdown.rasi
new file mode 100644
index 0000000..4d4b542
--- /dev/null
+++ b/rofi/.config/rofi/themes/dropdown.rasi
@@ -0,0 +1,17 @@
+
+/**
+ * This theme is intended for a full-width dropdown. It will dynamically resize, depending on the amount of list items.
+ */
+
+@import "./layouts/list-vertical-dynamic.rasi"
+
+#window {
+ width: 100%;
+ location:north;
+ anchor:north;
+}
+
+#listview {
+dynamic: true;
+fixed-height: false;
+}
diff --git a/rofi/.config/rofi/themes/layouts/list-horizontal.rasi b/rofi/.config/rofi/themes/layouts/list-horizontal.rasi
new file mode 100644
index 0000000..dd4bcaa
--- /dev/null
+++ b/rofi/.config/rofi/themes/layouts/list-horizontal.rasi
@@ -0,0 +1,28 @@
+/**
+ * Settings for a general purpose
+ * horizontal options list menu:
+ */
+@import "../settings.rasi"
+* {
+ background-color: @background;
+ text-color: @foreground;
+ font: @text-font;
+}
+#window {
+children: [ horizbox ];
+}
+#horizbox {
+orientation: horizontal;
+children: [ prompt, entry, listview ];
+}
+#listview {
+layout: horizontal;
+}
+#element {
+ background-color: @background-nofocus;
+ text-color: @foreground-nofocus;
+}
+#element.selected {
+ background-color: @background-focus;
+ text-color: @foreground-focus;
+}
diff --git a/rofi/.config/rofi/themes/layouts/list-vertical-dynamic.rasi b/rofi/.config/rofi/themes/layouts/list-vertical-dynamic.rasi
new file mode 100644
index 0000000..88e6a61
--- /dev/null
+++ b/rofi/.config/rofi/themes/layouts/list-vertical-dynamic.rasi
@@ -0,0 +1,18 @@
+/**
+ * This theme is intended for a normal vertical list, which can fill the width of the screen.
+ */
+
+@import "../settings.rasi"
+
+#window {
+ padding: 5;
+}
+
+#listview {
+layout: vertical;
+spacing: @option-5-listview-spacing;
+}
+
+#element {
+ padding: 10;
+}
diff --git a/rofi/.config/rofi/themes/layouts/options-horizontal-fullscreen.rasi b/rofi/.config/rofi/themes/layouts/options-horizontal-fullscreen.rasi
new file mode 100644
index 0000000..fe19d41
--- /dev/null
+++ b/rofi/.config/rofi/themes/layouts/options-horizontal-fullscreen.rasi
@@ -0,0 +1,55 @@
+/**
+ * Settings for a general purpose full screen
+ * horizontal options screen. The options will
+ * make use of icons.
+ * Px values for 1920x1080 screens.
+ *
+ * Depending on how many options your list
+ * should display, choose the corresponding padding and spacing
+ * for window and listview from below and add it to your
+ * specific theme.
+ */
+
+@import "list-horizontal.rasi"
+* {
+ /* General */
+ icon-font: "Iosevka 40";
+ font: @icon-font;
+ inputbar-margin: 4px 4px;
+ prompt-padding: 16px 20px;
+ entry-padding: 18px 16px 16px 0px;
+ list-element-padding: 20px;
+ list-element-margin: @inputbar-margin;
+ list-element-border: 0px 0px 0px 8px;
+ list-8-window-padding: 219px 360px;
+ /**
+ * Values bellow are 'no-padding' ones for Iosevka icons in this size.
+ * If you use a different sized font, you will have to find your own
+ * padding and spacing values.
+ * -12px 0px -19px -96px */
+ option-element-padding: 88px 100px 81px 4px;
+ option-3-window-padding: 415px 446px;
+ option-3-listview-spacing: 140px;
+ option-5-window-padding: 415px 183px;
+ option-5-listview-spacing: 77px;
+ option-6-listview-spacing: 50px;
+}
+
+#window {
+ width: 100%;
+ height: 100%;
+ padding: @option-5-window-padding;
+}
+
+#horizbox {
+ children: [ listview ];
+}
+
+#listview {
+ spacing: @option-5-listview-spacing;
+}
+
+#element {
+ padding: @option-element-padding;
+ border: @list-element-border;
+}
diff --git a/rofi/.config/rofi/themes/powermenu.rasi b/rofi/.config/rofi/themes/powermenu.rasi
new file mode 100644
index 0000000..1e7e6f4
--- /dev/null
+++ b/rofi/.config/rofi/themes/powermenu.rasi
@@ -0,0 +1,14 @@
+/**
+ * This theme is intended for a 5 items wide menu on a 1920x1080 pixels resolution.
+ * You may have to tweak values such as the window padding if you have a different resolution.
+ */
+
+@import "layouts/options-horizontal-fullscreen.rasi"
+
+#window {
+ padding: @option-5-window-padding;
+}
+#listview {
+spacing: @option-5-listview-spacing;
+lines: 5;
+}
diff --git a/rofi/.config/rofi/themes/settings.rasi b/rofi/.config/rofi/themes/settings.rasi
new file mode 100644
index 0000000..93146a1
--- /dev/null
+++ b/rofi/.config/rofi/themes/settings.rasi
@@ -0,0 +1,41 @@
+/**
+ * Changing this file allows all other theme files to be affected since
+ * they all get their default settings from here.
+ * Idea cribbed from: https://gitlab.com/vahnrr/rofi-menus
+ *
+ * Structure (what goes where) should be set in specific theme files, which pull from more general layouts/ files
+ * Color (what has which accent) can be added with colorschemes/ files, and then set globally from here
+ *
+ * if a layout needs a *very* specific colorscheme it can also be set in the layouts/theme files
+ * but try to keep the two separated as much as possible, so we can adjust global options easily from here
+ */
+
+//default import
+@import "colorschemes/gruvbox-dark.rasi"
+
+* {
+ /* General */
+ text-font: "Iosevka Nerd Font";
+ text-font-mono: "Iosevka Nerd Font";
+ icon-font: "Iosevka Nerd Font";
+ icon-font-small: "Iosevka Nerd Font";
+}
+
+/**
+ * In case rofi gets started without a specific theme
+ * try to match the imported theme colors as best we
+ * can to any general purpose.
+ */
+* {
+ background-color: @background;
+ text-color: @foreground;
+ font: @text-font;
+}
+#element {
+ background-color: @background-nofocus;
+ text-color: @foreground-nofocus;
+}
+#element.selected {
+ background-color: @background-focus;
+ text-color: @foreground-focus;
+}
diff --git a/rofi/.local/bin/rofi-bang b/rofi/.local/bin/rofi-bang
new file mode 100755
index 0000000..3ccf38f
--- /dev/null
+++ b/rofi/.local/bin/rofi-bang
@@ -0,0 +1,48 @@
+#!/bin/bash
+#
+#
+# rofi-bang
+#
+
+# Allows execution of arbitrary commands through rofi by
+# invoking shell scripts. These shell scripts can in turn
+# of course be other rofi commands, which allows the creation
+# of chained rofi executions (e.g. !c 1+2) to run a
+# calculator script within rofi and immediately execute it.
+# Hence, rofi-bang.
+
+cwd="$XDG_CONFIG_HOME"/rofi
+if [ ! -d "$cwd" ]; then
+ echo "The necessary directory at $HOME/.config/rofi is not set up correctly."
+ exit 1
+fi
+
+cmdfile="$cwd/rofi-bang-commands.csv"
+if [ ! -f "$cmdfile" ]; then
+ echo "The nessesary file at $cwd/rofi-bang-commands.csv has not been found."
+ exit 1
+fi
+
+# Present the initial selection screen - but as soon as only one candidate is left exit out
+# since bangs are unique (!text will not be matched by anything else) it should automatically exit
+# whenever a bang has been typed
+selection=$(
+ cut <"$cmdfile" -s -d ',' -f 1,2 |
+ sed 's/,/: /' |
+ printf "%s\n%s\n%s" "$(cat -)" "suffix that is not in cmd file" "one last entry" |
+ rofi -dmenu -i -p "Run> " -theme "Arc-Dark" -auto-select |
+ sed 's/: /,/' |
+ head -n 1
+)
+# we did not select anything, just exit
+if [ -z "$selection" ]; then exit 0; fi
+
+# we selected something, check if it is in the bang commands file
+# if it is, we should execute the bang
+is_bang=$(grep "$selection" "$cmdfile")
+if [ -n "$is_bang" ]; then
+ cmd=$(echo "$is_bang" | cut -s -d ',' -f 4)
+ echo "$cmd" | xargs --no-run-if-empty -I "{}" /bin/bash -c "{}"
+else
+ echo "not implemented yet, should re-run rofi with the exact same settings"
+fi
diff --git a/rofi/.local/bin/rofi-surfraw b/rofi/.local/bin/rofi-surfraw
new file mode 100755
index 0000000..93293c6
--- /dev/null
+++ b/rofi/.local/bin/rofi-surfraw
@@ -0,0 +1,87 @@
+#!/usr/bin/env bash
+
+# source surfraw config
+source $HOME/.surfraw.conf
+
+# load global files
+source /etc/rofi-surfraw.conf
+
+# create local copy of custom searchengines
+if [[ ! -d $HOME/.config/rofi-surfraw ]]; then
+ mkdir $HOME/.config/rofi-surfraw/searchengines
+fi
+if [[ ! -f $HOME/.config/rofi-surfraw/searchengines ]]; then
+ cp /usr/share/doc/rofi-surfraw/searchengines $HOME/.config/rofi-surfraw/searchengines
+fi
+
+# get local config
+if [[ -f $HOME/.config/rofi-surfraw/config ]]; then
+ source $HOME/.config/rofi-surfraw/config
+fi
+
+# get list of search engines from surfraw
+if [[ $@ == *"--no-list"* ]]; then
+ :
+else
+ # list=$(sr -elvi | awk '{ print "?"$1 }' | tail -n +2)
+ list=$(sr -elvi | awk '{if (NR!=1) print "?"$1 }')
+fi
+
+# get custom engines from text file
+if [[ $@ == *"--no-custom"* ]]; then
+ :
+else
+ # custom=$(cat $HOME/.config/rofi-surfraw/searchengines | awk -F ' - ' '{ print $1 }')
+ custom=$(awk -F ' - ' '{ print $1 }' $HOME/.config/rofi-surfraw/searchengines)
+fi
+
+main() {
+ # Draw Menu
+ HELP_MSG="Hit Ctrl+Space to complete Engine Name
+Searches without prepended engine use "${default}""
+ elvi=$(echo -e "${list}\n${custom}" | rofi -dmenu -mesg "${HELP_MSG}" -p "Search > ")
+
+ # Some logic
+ if [[ $elvi == "" ]]; then
+ exit
+ elif [[ $elvi == "!"* ]]; then
+ entry=$(grep "$(echo "${elvi}" | awk '{ print $1 }')" "$HOME/.config/rofi-surfraw/searchengines")
+ method=$(echo "${entry}" | awk -F ' - ' '{ print $2 }')
+ bang=$(echo "${entry}" | awk -F ' - ' '{ print $3 }')
+ search=$(echo "${elvi}" | awk '{$1=""; print $0}' | cut -c 2-)
+ if [[ $method == "surfraw" ]]; then
+ sr ${bang} ${search}
+ elif [[ $method == "custom" ]]; then
+ "$SURFRAW_graphical_browser" $SURFRAW_graphical_browser_args ${bang}"${search}"
+ fi
+ elif [[ $elvi == "?"* ]]; then
+ name=$(echo "${elvi}" | awk '{ print $1 }' | cut -c 2-)
+ search=$(echo "${elvi}" | awk '{$1=""; print $0}' | cut -c 2-)
+ sr ${name} ${search}
+ else
+ if [[ $default == "!"* ]]; then
+ entry=$(grep "$(echo "${default}" | awk '{ print $1 }')" "$HOME/.config/rofi-surfraw/searchengines")
+ method=$(echo "${entry}" | awk -F ' - ' '{ print $2 }')
+ bang=$(echo "${entry}" | awk -F ' - ' '{ print $3 }')
+ else
+ method="surfraw"
+ bang="$default"
+ fi
+ search="${elvi}"
+ if [[ $method == "surfraw" ]]; then
+ sr ${bang} ${search}
+ elif [[ $method == "custom" ]]; then
+ "$SURFRAW_graphical_browser" $SURFRAW_graphical_browser_args ${bang}"${search}"
+ fi
+ fi
+}
+
+if [[ $1 == "--help" ]]; then
+ echo "rofi-surfraw - (C) 2015 Rasmus Steinke "
+ echo "---"
+ echo "--help this help"
+ echo "--no-list do not show inbuild search engines"
+ echo "--no-custom do not show custom search engines"
+else
+ main
+fi
diff --git a/terminal/.config/bat/config b/terminal/.config/bat/config
deleted file mode 100644
index c623dbb..0000000
--- a/terminal/.config/bat/config
+++ /dev/null
@@ -1,25 +0,0 @@
-# This is `bat`s configuration file. Each line either contains a comment or
-# a command-line option that you want to pass to `bat` by default. You can
-# run `bat --help` to get a list of all possible configuration options.
-
-# Desired highlighting theme (e.g. "TwoDark"). Run `bat --list-themes`
-# for a list of all available themes
---theme="base16"
-
-# Use italic text on the terminal. This is not supported on all
-# terminal emulators (like tmux, by default):
---italic-text=always
-
-# Uncomment the following line to disable automatic paging:
-#--paging=never
-
-# Uncomment the following line if you are using less version >= 551 and want to
-# enable mouse scrolling support in `bat` when running inside tmux. This might
-# disable text selection, unless you press shift.
-#--pager="less --RAW-CONTROL-CHARS --quit-if-one-screen --mouse"
-
-# Syntax mappings: map a certain filename pattern to a language.
-# Example 1: use the C++ syntax for Arduino .ino files
-# Example 2: Use ".gitignore"-style highlighting for ".ignore" files
-#--map-syntax "*.ino:C++"
-#--map-syntax ".ignore:Git Ignore"
diff --git a/terminal/.config/sh/alias.d/tmux.sh b/tmux/.config/sh/alias.d/tmux.sh
similarity index 100%
rename from terminal/.config/sh/alias.d/tmux.sh
rename to tmux/.config/sh/alias.d/tmux.sh
diff --git a/terminal/.config/tmux/sessions/dot.session b/tmux/.config/tmux/sessions/dot.session
similarity index 100%
rename from terminal/.config/tmux/sessions/dot.session
rename to tmux/.config/tmux/sessions/dot.session
diff --git a/terminal/.config/tmux/sessions/music.session b/tmux/.config/tmux/sessions/music.session
similarity index 100%
rename from terminal/.config/tmux/sessions/music.session
rename to tmux/.config/tmux/sessions/music.session
diff --git a/terminal/.config/tmux/sessions/notes.session b/tmux/.config/tmux/sessions/notes.session
similarity index 100%
rename from terminal/.config/tmux/sessions/notes.session
rename to tmux/.config/tmux/sessions/notes.session
diff --git a/terminal/.config/tmux/sessions/social.session b/tmux/.config/tmux/sessions/social.session
similarity index 100%
rename from terminal/.config/tmux/sessions/social.session
rename to tmux/.config/tmux/sessions/social.session
diff --git a/terminal/.config/tmux/sessions/sport.session b/tmux/.config/tmux/sessions/sport.session
similarity index 100%
rename from terminal/.config/tmux/sessions/sport.session
rename to tmux/.config/tmux/sessions/sport.session
diff --git a/terminal/.config/tmux/sessions/todo.session b/tmux/.config/tmux/sessions/todo.session
similarity index 100%
rename from terminal/.config/tmux/sessions/todo.session
rename to tmux/.config/tmux/sessions/todo.session
diff --git a/terminal/.config/tmux/tmux.conf b/tmux/.config/tmux/tmux.conf
similarity index 100%
rename from terminal/.config/tmux/tmux.conf
rename to tmux/.config/tmux/tmux.conf
diff --git a/terminal/.config/tmux/tmux.remote.conf b/tmux/.config/tmux/tmux.remote.conf
similarity index 100%
rename from terminal/.config/tmux/tmux.remote.conf
rename to tmux/.config/tmux/tmux.remote.conf
diff --git a/terminal/.config/zsh/completions/_tmux_attach_start b/tmux/.config/zsh/completions/_tmux_attach_start
similarity index 100%
rename from terminal/.config/zsh/completions/_tmux_attach_start
rename to tmux/.config/zsh/completions/_tmux_attach_start
diff --git a/terminal/.local/bin/test/tmux_attach_start.bats b/tmux/.local/bin/test/tmux_attach_start.bats
similarity index 100%
rename from terminal/.local/bin/test/tmux_attach_start.bats
rename to tmux/.local/bin/test/tmux_attach_start.bats
diff --git a/terminal/.local/bin/tmux_attach_start b/tmux/.local/bin/tmux_attach_start
similarity index 100%
rename from terminal/.local/bin/tmux_attach_start
rename to tmux/.local/bin/tmux_attach_start
diff --git a/terminal/.local/bin/tmux_pane_tree b/tmux/.local/bin/tmux_pane_tree
similarity index 100%
rename from terminal/.local/bin/tmux_pane_tree
rename to tmux/.local/bin/tmux_pane_tree
diff --git a/terminal/.config/vifm/colors/Default.vifm b/vifm/.config/vifm/colors/Default.vifm
similarity index 100%
rename from terminal/.config/vifm/colors/Default.vifm
rename to vifm/.config/vifm/colors/Default.vifm
diff --git a/terminal/.config/vifm/colors/cfillion.vifm b/vifm/.config/vifm/colors/cfillion.vifm
similarity index 100%
rename from terminal/.config/vifm/colors/cfillion.vifm
rename to vifm/.config/vifm/colors/cfillion.vifm
diff --git a/terminal/.config/vifm/scripts/README b/vifm/.config/vifm/scripts/README
similarity index 100%
rename from terminal/.config/vifm/scripts/README
rename to vifm/.config/vifm/scripts/README
diff --git a/terminal/.config/vifm/scripts/vifm-default-viewer b/vifm/.config/vifm/scripts/vifm-default-viewer
similarity index 100%
rename from terminal/.config/vifm/scripts/vifm-default-viewer
rename to vifm/.config/vifm/scripts/vifm-default-viewer
diff --git a/terminal/.config/vifm/scripts/vifm-sixel b/vifm/.config/vifm/scripts/vifm-sixel
similarity index 100%
rename from terminal/.config/vifm/scripts/vifm-sixel
rename to vifm/.config/vifm/scripts/vifm-sixel
diff --git a/terminal/.config/vifm/scripts/vifm-thumbnailer b/vifm/.config/vifm/scripts/vifm-thumbnailer
similarity index 100%
rename from terminal/.config/vifm/scripts/vifm-thumbnailer
rename to vifm/.config/vifm/scripts/vifm-thumbnailer
diff --git a/terminal/.config/vifm/vifmrc b/vifm/.config/vifm/vifmrc
similarity index 100%
rename from terminal/.config/vifm/vifmrc
rename to vifm/.config/vifm/vifmrc
diff --git a/desktop/.config/fontconfig/fonts.conf b/wayland/.config/fontconfig/fonts.conf
similarity index 100%
rename from desktop/.config/fontconfig/fonts.conf
rename to wayland/.config/fontconfig/fonts.conf
diff --git a/desktop/.config/kanshi/config b/wayland/.config/kanshi/config
similarity index 100%
rename from desktop/.config/kanshi/config
rename to wayland/.config/kanshi/config
diff --git a/desktop/.config/river/init b/wayland/.config/river/init
similarity index 100%
rename from desktop/.config/river/init
rename to wayland/.config/river/init
diff --git a/desktop/.config/sh/env.d/compose-key.sh b/wayland/.config/sh/env.d/compose-key.sh
similarity index 100%
rename from desktop/.config/sh/env.d/compose-key.sh
rename to wayland/.config/sh/env.d/compose-key.sh
diff --git a/desktop/.config/waybar/config b/wayland/.config/waybar/config
similarity index 100%
rename from desktop/.config/waybar/config
rename to wayland/.config/waybar/config
diff --git a/desktop/.config/waybar/modules/archupdates b/wayland/.config/waybar/modules/archupdates
similarity index 100%
rename from desktop/.config/waybar/modules/archupdates
rename to wayland/.config/waybar/modules/archupdates
diff --git a/desktop/.config/waybar/modules/khal.py b/wayland/.config/waybar/modules/khal.py
similarity index 100%
rename from desktop/.config/waybar/modules/khal.py
rename to wayland/.config/waybar/modules/khal.py
diff --git a/desktop/.config/waybar/modules/wireguard b/wayland/.config/waybar/modules/wireguard
similarity index 100%
rename from desktop/.config/waybar/modules/wireguard
rename to wayland/.config/waybar/modules/wireguard
diff --git a/desktop/.config/waybar/style.css b/wayland/.config/waybar/style.css
similarity index 100%
rename from desktop/.config/waybar/style.css
rename to wayland/.config/waybar/style.css
diff --git a/desktop/.local/bin/screenshot b/wayland/.local/bin/screenshot
similarity index 100%
rename from desktop/.local/bin/screenshot
rename to wayland/.local/bin/screenshot
diff --git a/desktop/README.md b/wayland/README.md
similarity index 89%
rename from desktop/README.md
rename to wayland/README.md
index 84d8e15..56f574f 100644
--- a/desktop/README.md
+++ b/wayland/README.md
@@ -1,18 +1,10 @@
-# Wayland desktop environment
+# wayland
Contains:
[riverwm](https://github.com/riverwm/river)
[waybar](https://github.com/Alexays/Waybar)
-mako -- notification daemon
-font settings
-kanshi -- display output setup
-The thoughts below are overhauled and fairly old - they are still based on my first days and weeks on wayland.
-Takeaway is this: I love the river wm, waybar is unexciting but does what it's supposed to and the wayland environment is totally worth it.
-
----
-
-My first foray into wayland is based on river,
+My first foray into wayland is based on river,
a tiling window manager somewhat based on bspwm.
This is only a very work-in-progress README file.
diff --git a/terminal/.config/wezterm/events.lua b/wezterm/.config/wezterm/events.lua
similarity index 100%
rename from terminal/.config/wezterm/events.lua
rename to wezterm/.config/wezterm/events.lua
diff --git a/terminal/.config/wezterm/maps.lua b/wezterm/.config/wezterm/maps.lua
similarity index 100%
rename from terminal/.config/wezterm/maps.lua
rename to wezterm/.config/wezterm/maps.lua
diff --git a/terminal/.config/wezterm/statusbar.lua b/wezterm/.config/wezterm/statusbar.lua
similarity index 100%
rename from terminal/.config/wezterm/statusbar.lua
rename to wezterm/.config/wezterm/statusbar.lua
diff --git a/terminal/.config/wezterm/wezterm.lua b/wezterm/.config/wezterm/wezterm.lua
similarity index 100%
rename from terminal/.config/wezterm/wezterm.lua
rename to wezterm/.config/wezterm/wezterm.lua
diff --git a/writing/.config/zathura/zathurarc b/zathura/.config/zathura/zathurarc
similarity index 100%
rename from writing/.config/zathura/zathurarc
rename to zathura/.config/zathura/zathurarc
diff --git a/terminal/.config/zsh/.zprofile b/zsh/.config/zsh/.zprofile
similarity index 100%
rename from terminal/.config/zsh/.zprofile
rename to zsh/.config/zsh/.zprofile
diff --git a/terminal/.config/zsh/.zshenv b/zsh/.config/zsh/.zshenv
similarity index 100%
rename from terminal/.config/zsh/.zshenv
rename to zsh/.config/zsh/.zshenv
diff --git a/terminal/.config/zsh/.zshrc b/zsh/.config/zsh/.zshrc
similarity index 100%
rename from terminal/.config/zsh/.zshrc
rename to zsh/.config/zsh/.zshrc
diff --git a/terminal/.zshenv b/zsh/.zshenv
similarity index 100%
rename from terminal/.zshenv
rename to zsh/.zshenv