aboutsummaryrefslogtreecommitdiff
path: root/.config
diff options
context:
space:
mode:
authorNPScript <nathan@reinerweb.ch>2022-04-09 21:22:20 +0200
committerNPScript <nathan@reinerweb.ch>2022-04-09 21:22:20 +0200
commit896c311feb10e947c727a888308dbc7eb71d1ec2 (patch)
treeb6713478d14eb8ea531107c3f399c437db7fd2fb /.config
init commit
Diffstat (limited to '.config')
-rw-r--r--.config/dunst/dunstrc413
-rw-r--r--.config/mimeapps.list222
-rw-r--r--.config/mutt/muttrc31
-rw-r--r--.config/nvim/.netrwhist12
-rw-r--r--.config/nvim/README.md3
-rw-r--r--.config/nvim/init.lua10
-rw-r--r--.config/nvim/lua/keymap.lua55
-rw-r--r--.config/nvim/lua/lsp.lua46
-rw-r--r--.config/nvim/lua/plug.lua22
-rw-r--r--.config/nvim/lua/settings.lua45
-rw-r--r--.config/qutebrowser/autoconfig.yml138
-rw-r--r--.config/sc-im/scimrc10
-rw-r--r--.config/sway/config287
-rw-r--r--.config/waybar/config160
-rw-r--r--.config/waybar/style.css127
-rw-r--r--.config/zsh/.zshrc45
-rw-r--r--.config/zsh/knight17
17 files changed, 1643 insertions, 0 deletions
diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc
new file mode 100644
index 0000000..5f0b827
--- /dev/null
+++ b/.config/dunst/dunstrc
@@ -0,0 +1,413 @@
+[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-15+42"
+
+ # 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 = 0
+
+ # 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 = 1
+
+ # 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 = 1
+
+ # Defines color of the frame around the notification window.
+ frame_color = "#547f62""
+
+ # 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 = frame
+
+ # 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 = SauceCodePro Nerd Font 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:
+ # <b>bold</b>
+ # <i>italic</i>
+ # <s>strikethrough</s>
+ # <u>underline</u>
+ #
+ # For a complete reference see
+ # <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
+ #
+ # 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 = "<b>%s</b>\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 = off
+
+ # Scale larger icons down to this size, set to 0 to disable
+ max_icon_size = 32
+
+ # 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 = /usr/bin/brave -new-tab
+
+ # 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 = 0
+
+ ### 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 = do_action
+ mouse_right_click = close_all
+
+# 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 = "#191919"
+ foreground = "#999999"
+ timeout = 10
+ # Icon for notifications with low urgency, uncomment to enable
+ #icon = /path/to/icon
+
+[urgency_normal]
+ background = "#191919"
+ foreground = "#ffffff"
+ timeout = 10
+ # Icon for notifications with normal urgency, uncomment to enable
+ #icon = /path/to/icon
+
+[urgency_critical]
+ background = "#fd4d4d"
+ foreground = "#ffffff"
+ 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
+
+#[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/.config/mimeapps.list b/.config/mimeapps.list
new file mode 100644
index 0000000..6c1db7b
--- /dev/null
+++ b/.config/mimeapps.list
@@ -0,0 +1,222 @@
+[Default Applications]
+
+x-scheme-handler/lbry=lbry.desktop
+x-scheme-handler/etcher=balena-etcher-electron.desktop
+x-scheme-handler/http=org.qutebrowser.qutebrowser.desktop
+x-scheme-handler/https=org.qutebrowser.qutebrowser.desktop
+x-scheme-handler/qute=org.qutebrowser.qutebrowser.desktop
+x-scheme-handler/mailto=neomutt.desktop
+
+applications/pdf=org.pwmt.zathura.desktop
+application/pdf=org.pwmt.zathura.desktop
+
+text/comma-separated-values=nvim.desktop
+text/csv=nvim.desktop
+text/english=nvim.desktop
+text/google-video-pointer=nvim.desktop
+text/html=nvim.desktop
+text/mathml=nvim.desktop
+text/plain=nvim.desktop
+text/rtf=nvim.desktop
+text/spreadsheet=nvim.desktop
+text/tab-separated-values=nvim.desktop
+text/vnd.trolltech.linguist=nvim.desktop
+text/x-c=nvim.desktop
+text/x-c++=nvim.desktop
+text/x-c++hdr=nvim.desktop
+text/x-chdr=nvim.desktop
+text/x-comma-separated-values=nvim.desktop
+text/x-c++src=nvim.desktop
+text/x-csrc=nvim.desktop
+text/x-csv=nvim.desktop
+text/x-google-video-pointer=nvim.desktop
+text/x-java=nvim.desktop
+text/x-makefile=nvim.desktop
+text/xml=nvim.desktop
+text/x-moc=nvim.desktop
+text/x-pascal=nvim.desktop
+text/x-tcl=nvim.desktop
+text/x-tex=nvim.desktop
+
+audio/3gpp=mpv.desktop
+audio/3gpp2=mpv.desktop
+audio/aac=mpv.desktop
+audio/ac3=mpv.desktop
+audio/aiff=mpv.desktop
+audio/AMR=mpv.desktop
+audio/amr-wb=mpv.desktop
+audio/AMR-WB=mpv.desktop
+audio/basic=mpv.desktop
+audio/dv=mpv.desktop
+audio/eac3=mpv.desktop
+audio/flac=mpv.desktop
+audio/m3u=mpv.desktop
+audio/m4a=mpv.desktop
+audio/midi=mpv.desktop
+audio/mp1=mpv.desktop
+audio/mp2=mpv.desktop
+audio/mp3=mpv.desktop
+audio/mp4=mpv.desktop
+audio/mpeg=mpv.desktop
+audio/mpeg2=mpv.desktop
+audio/mpeg3=mpv.desktop
+audio/mpegurl=mpv.desktop
+audio/mpg=mpv.desktop
+audio/musepack=mpv.desktop
+audio/ogg=mpv.desktop
+audio/opus=mpv.desktop
+audio/rn-mpeg=mpv.desktop
+audio/scpls=mpv.desktop
+audio/vnd.dolby.heaac.1=mpv.desktop
+audio/vnd.dolby.heaac.2=mpv.desktop
+audio/vnd.dolby.mlp=mpv.desktop
+audio/vnd.dts=mpv.desktop
+audio/vnd.dts.hd=mpv.desktop
+audio/vnd.rn-realaudio=mpv.desktop
+audio/vorbis=mpv.desktop
+audio/wav=mpv.desktop
+audio/webm=mpv.desktop
+audio/x-aac=mpv.desktop
+audio/x-adpcm=mpv.desktop
+audio/x-aiff=mpv.desktop
+audio/x-ape=mpv.desktop
+audio/x-flac=mpv.desktop
+audio/x-gsm=mpv.desktop
+audio/x-gtp=mpv.desktop
+audio/x-it=mpv.desktop
+audio/x-m4a=mpv.desktop
+audio/x-matroska=mpv.desktop
+audio/x-mod=mpv.desktop
+audio/x-mp1=mpv.desktop
+audio/x-mp2=mpv.desktop
+audio/x-mp3=mpv.desktop
+audio/x-mpeg=mpv.desktop
+audio/x-mpegurl=mpv.desktop
+audio/x-mpg=mpv.desktop
+audio/x-ms-asf=mpv.desktop
+audio/x-ms-asx=mpv.desktop
+audio/x-ms-wax=mpv.desktop
+audio/x-ms-wma=mpv.desktop
+audio/x-musepack=mpv.desktop
+audio/x-pls=mpv.desktop
+audio/x-pn-aiff=mpv.desktop
+audio/x-pn-au=mpv.desktop
+audio/x-pn-realaudio=mpv.desktop
+audio/x-pn-realaudio-plugin=mpv.desktop
+audio/x-pn-wav=mpv.desktop
+audio/x-pn-windows-acm=mpv.desktop
+audio/x-pn-windows-pcm=mpv.desktop
+audio/x-ptb=mpv.desktop
+audio/x-real-audio=mpv.desktop
+audio/x-realaudio=mpv.desktop
+audio/x-s3m=mpv.desktop
+audio/x-scpls=mpv.desktop
+audio/x-shorten=mpv.desktop
+audio/x-speex=mpv.desktop
+audio/x-tta=mpv.desktop
+audio/x-vorbis=mpv.desktop
+audio/x-vorbis+ogg=mpv.desktop
+audio/x-wav=mpv.desktop
+audio/x-wavpack=mpv.desktop
+audio/x-xm=mpv.desktop
+
+
+image/x-minolta-mrw=sxiv.desktop
+image/webp=sxiv.desktop
+image/vnd.ms-modi=sxiv.desktop
+image/cgm=sxiv.desktop
+image/vnd.rn-realpix=sxiv.desktop
+image/x-pentax-pef=sxiv.desktop
+image/vnd.dwg=sxiv.desktop
+image/x-pict=sxiv.desktop
+image/g3fax=sxiv.desktop
+image/dpx=sxiv.desktop
+image/x-kodak-kdc=sxiv.desktop
+image/x-pic=sxiv.desktop
+image/x-gimp-gih=sxiv.desktop
+image/avif=sxiv.desktop
+image/x-adobe-dng=sxiv.desktop
+image/x-3ds=sxiv.desktop
+image/x-kodak-dcr=sxiv.desktop
+image/svg+xml-compressed=sxiv.desktop
+image/x-panasonic-rw=sxiv.desktop
+image/x-portable-bitmap=sxiv.desktop
+image/ief=sxiv.desktop
+image/tiff=sxiv.desktop
+image/astc=sxiv.desktop
+image/vnd.microsoft.icon=sxiv.desktop
+image/jpm=sxiv.desktop
+image/x-quicktime=sxiv.desktop
+image/x-jp2-codestream=sxiv.desktop
+image/x-icns=sxiv.desktop
+image/x-applix-graphics=sxiv.desktop
+image/x-kodak-k25=sxiv.desktop
+image/x-sony-srf=sxiv.desktop
+image/x-xfig=sxiv.desktop
+image/x-xwindowdump=sxiv.desktop
+image/jpx=sxiv.desktop
+image/x-tiff-multipage=sxiv.desktop
+image/heif=sxiv.desktop
+image/x-canon-cr2=sxiv.desktop
+image/x-macpaint=sxiv.desktop
+image/x-skencil=sxiv.desktop
+image/x-portable-anymap=sxiv.desktop
+image/x-jng=sxiv.desktop
+image/x-dib=sxiv.desktop
+image/x-rgb=sxiv.desktop
+image/x-sigma-x3f=sxiv.desktop
+image/x-xbitmap=sxiv.desktop
+image/x-sun-raster=sxiv.desktop
+image/x-eps=sxiv.desktop
+image/x-gimp-gbr=sxiv.desktop
+image/x-gzeps=sxiv.desktop
+image/x-sony-arw=sxiv.desktop
+image/png=sxiv.desktop
+image/wmf=sxiv.desktop
+image/fits=sxiv.desktop
+image/jpeg=sxiv.desktop
+image/vnd.dxf=sxiv.desktop
+image/emf=sxiv.desktop
+image/x-photo-cd=sxiv.desktop
+image/x-cmu-raster=sxiv.desktop
+image/x-olympus-orf=sxiv.desktop
+image/vnd.djvu=sxiv.desktop
+image/x-fuji-raf=sxiv.desktop
+image/x-kde-raw=sxiv.desktop
+image/x-portable-pixmap=sxiv.desktop
+image/vnd.zbrush.pcx=sxiv.desktop
+image/x-lwo=sxiv.desktop
+image/x-win-bitmap=sxiv.desktop
+image/x-exr=sxiv.desktop
+image/ktx=sxiv.desktop
+image/x-niff=sxiv.desktop
+image/x-xcf=sxiv.desktop
+image/x-lws=sxiv.desktop
+image/x-xcursor=sxiv.desktop
+image/x-sgi=sxiv.desktop
+image/x-msod=sxiv.desktop
+image/x-fpx=sxiv.desktop
+image/vnd.adobe.photoshop=sxiv.desktop
+image/x-panasonic-rw2=sxiv.desktop
+image/x-nikon-nef=sxiv.desktop
+image/vnd.wap.wbmp=sxiv.desktop
+image/x-compressed-xcf=sxiv.desktop
+image/x-hdr=sxiv.desktop
+image/x-portable-graymap=sxiv.desktop
+image/jp2=sxiv.desktop
+image/x-bzeps=sxiv.desktop
+image/svg+xml=sxiv.desktop
+image/rle=sxiv.desktop
+image/gif=sxiv.desktop
+image/x-dcraw=sxiv.desktop
+image/ktx2=sxiv.desktop
+image/x-tga=sxiv.desktop
+image/vnd.djvu+multipage=sxiv.desktop
+image/x-dds=sxiv.desktop
+image/x-sony-sr2=sxiv.desktop
+image/openraster=sxiv.desktop
+image/x-canon-crw=sxiv.desktop
+image/x-ilbm=sxiv.desktop
+image/x-xpixmap=sxiv.desktop
+image/x-gimp-pat=sxiv.desktop
+image/bmp=sxiv.desktop
diff --git a/.config/mutt/muttrc b/.config/mutt/muttrc
new file mode 100644
index 0000000..8896639
--- /dev/null
+++ b/.config/mutt/muttrc
@@ -0,0 +1,31 @@
+# vim: filetype=neomuttrc
+source /usr/share/mutt-wizard/mutt-wizard.muttrc
+
+set editor = "nvim"
+auto_view text/html
+
+color hdrdefault green black
+color quoted blue black
+color signature blue black
+color attachment red black
+color prompt brightmagenta black
+color message brightred black
+color error brightred black
+color indicator black green
+color status color234 green
+color tree brightblack black
+color normal white black
+color markers green black
+color search white black
+color tilde brightmagenta black
+color index blue black ~F
+color index green black "~N|~O"
+
+bind pager j next-line
+bind pager k previous-line
+bind attach,index,pager \CD next-page
+bind attach,index,pager \CU previous-page
+bind pager G bottom
+bind attach,index G last-entry
+bind pager l next-undeleted
+bind pager h previous-undeleted
diff --git a/.config/nvim/.netrwhist b/.config/nvim/.netrwhist
new file mode 100644
index 0000000..a27bcca
--- /dev/null
+++ b/.config/nvim/.netrwhist
@@ -0,0 +1,12 @@
+let g:netrw_dirhistmax =10
+let g:netrw_dirhistcnt =1
+let g:netrw_dirhist_1='/home/nathanreiner/Dokumente/ctf'
+let g:netrw_dirhist_0='/home/nathanreiner/Dokumente/ctf/misc'
+let g:netrw_dirhist_9='/home/nathanreiner/Dokumente/ctf'
+let g:netrw_dirhist_8='/home/nathanreiner'
+let g:netrw_dirhist_7='/home/nathanreiner/.config/nvim'
+let g:netrw_dirhist_6='/home/nathanreiner'
+let g:netrw_dirhist_5='/home/nathanreiner/.config/nvim'
+let g:netrw_dirhist_4='/home/nathanreiner'
+let g:netrw_dirhist_3='/home/nathanreiner/Dokumente/C++'
+let g:netrw_dirhist_2='/home/nathanreiner/Dokumente'
diff --git a/.config/nvim/README.md b/.config/nvim/README.md
new file mode 100644
index 0000000..12b2670
--- /dev/null
+++ b/.config/nvim/README.md
@@ -0,0 +1,3 @@
+# NeoVim Configuration
+
+My NeoVim Configuration
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua
new file mode 100644
index 0000000..95f4370
--- /dev/null
+++ b/.config/nvim/init.lua
@@ -0,0 +1,10 @@
+-- ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
+-- ┃ ┏┓╻┏━┓ ╻ ╻╻┏┳┓ ┏━╸┏━┓┏┓╻┏━╸╻┏━╸╻ ╻┏━┓┏━┓╺┳╸╻┏━┓┏┓╻ ┃
+-- ┃ ┃┗┫┣━┫ ┃┏┛┃┃┃┃ ┃ ┃ ┃┃┗┫┣╸ ┃┃╺┓┃ ┃┣┳┛┣━┫ ┃ ┃┃ ┃┃┗┫ ┃
+-- ┃ ╹ ╹┗━┛ ┗┛ ╹╹ ╹ ┗━╸┗━┛╹ ╹╹ ╹┗━┛┗━┛╹┗╸╹ ╹ ╹ ╹┗━┛╹ ╹ ┃
+-- ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
+
+require('plug')
+require('keymap')
+require('settings')
+require('lsp')
diff --git a/.config/nvim/lua/keymap.lua b/.config/nvim/lua/keymap.lua
new file mode 100644
index 0000000..200c5cb
--- /dev/null
+++ b/.config/nvim/lua/keymap.lua
@@ -0,0 +1,55 @@
+-- ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
+-- ┃ ┏┓╻┏━┓ ╻ ╻╻┏┳┓ ╻┏ ┏━╸╻ ╻┏┳┓┏━┓┏━┓┏━┓ ┃
+-- ┃ ┃┗┫┣━┫ ┃┏┛┃┃┃┃ ┣┻┓┣╸ ┗┳┛┃┃┃┣━┫┣━┛┗━┓ ┃
+-- ┃ ╹ ╹┗━┛ ┗┛ ╹╹ ╹ ╹ ╹┗━╸ ╹ ╹ ╹╹ ╹╹ ┗━┛ ┃
+-- ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
+
+vim.g.mapleader = ','
+vim.api.nvim_set_keymap("n", "<leader>C", "<leader>c<space>", {})
+vim.api.nvim_set_keymap("n", "<leader>n", "<C-w>n", {noremap = true})
+vim.api.nvim_set_keymap("n", "<leader>sc", ":so $MYVIMRC<CR>", {noremap = true})
+vim.api.nvim_set_keymap("n", "<leader>ec", ":e $MYVIMRC<CR>", {noremap = true})
+vim.api.nvim_set_keymap("n", "<leader>tn", ":tabnew<CR>", {noremap = true})
+vim.api.nvim_set_keymap("n", "<leader>tc", ":tabclose<CR>", {noremap = true})
+vim.api.nvim_set_keymap("n", "<leader>tt", ":tabnew<CR>:term<CR>a", {noremap = true})
+vim.api.nvim_set_keymap("n", "<leader>Tn", ":tnext<CR>", {noremap = true})
+vim.api.nvim_set_keymap("n", "<leader>Tp", ":tprevious<CR>", {noremap = true})
+vim.api.nvim_set_keymap("n", "<leader>Tf", ":tfirst<CR>", {noremap = true})
+vim.api.nvim_set_keymap("n", "<leader>Tl", ":tlast<CR>", {noremap = true})
+vim.api.nvim_set_keymap("n", "<leader>tselect", ":tselect<Space>", {noremap = true})
+vim.api.nvim_set_keymap("n", "<leader>Tc", ":!ctags -R --sort=yes --c++-kins=+p --filed=+iaS --extras=+q . <CR><CR>", {noremap = true})
+
+vim.api.nvim_set_keymap("n", "<leader>f", ":Lexplore<CR>", {noremap = true})
+vim.api.nvim_set_keymap("n", "<leader>F", ":Lexplore %:p:h<CR>", {noremap = true})
+
+vim.api.nvim_set_keymap("n", "<leader>zt", ":VZKFindTag<CR>", {noremap = true})
+vim.api.nvim_set_keymap("n", "<leader>zh", ":VZKHistory<CR>", {noremap = true})
+
+vim.api.nvim_set_keymap("i", "(", "()<Esc>i", {noremap = true})
+vim.api.nvim_set_keymap("i", ")", "<ESC>:call brackify#putbracket(')')<CR>la", {noremap = true})
+vim.api.nvim_set_keymap("i", "[", "[]<Esc>i", {noremap = true})
+vim.api.nvim_set_keymap("i", "]", "<ESC>:call brackify#putbracket(']')<CR>la", {noremap = true})
+vim.api.nvim_set_keymap("i", "{", "{}<Esc>i", {noremap = true})
+vim.api.nvim_set_keymap("i", "}", "<ESC>:call brackify#putbracket('}')<CR>la", {noremap = true})
+vim.cmd('autocmd Filetype html inoremap <buffer> < <><ESC>i')
+vim.cmd('autocmd Filetype html inoremap <buffer> > <ESC>:call brackify#putbracket(">")<CR>la')
+
+vim.api.nvim_set_keymap("i", '"', "<ESC>:call brackify#putquotes('\"')<CR>a", {noremap = true})
+vim.api.nvim_set_keymap("i", "'", "<ESC>:call brackify#putquotes(\"'\")<CR>a", {noremap = true})
+
+vim.api.nvim_set_keymap("v", "(", "s(<ESC>pa)", {noremap = true})
+vim.api.nvim_set_keymap("v", "[", "s[<ESC>pa]", {noremap = true})
+vim.api.nvim_set_keymap("v", "{", "s{<ESC>pa}", {noremap = true})
+vim.api.nvim_set_keymap("v", '"', 's"<ESC>pa"', {noremap = true})
+vim.api.nvim_set_keymap("v", "'", "s'<ESC>pa'", {noremap = true})
+vim.cmd('autocmd Filetype c nnoremap <buffer> <tab> :CSelNextArg<Cr>')
+
+vim.api.nvim_set_keymap("n", "<leader>dB", ":GdbBreakpointToggle", {noremap = true})
+vim.api.nvim_set_keymap("n", "<leader>dn", ":GdbNext", {noremap = true})
+vim.api.nvim_set_keymap("n", "<leader>ds", ":GdbStep", {noremap = true})
+vim.api.nvim_set_keymap("n", "<leader>dr", ":GdbRun", {noremap = true})
+vim.api.nvim_set_keymap("n", "<leader>dc", ":GdbContinue", {noremap = true})
+vim.cmd('inoremap <expr> <Tab> pumvisible() ? "\\<C-n>" : "\\<Tab>"')
+vim.cmd('inoremap <expr> <S-Tab> pumvisible() ? "\\<C-p>" : "\\<S-Tab>"')
+
+vim.cmd("autocmd TextChangedI * lua vim.lsp.omnifunc(1)")
diff --git a/.config/nvim/lua/lsp.lua b/.config/nvim/lua/lsp.lua
new file mode 100644
index 0000000..41c9e16
--- /dev/null
+++ b/.config/nvim/lua/lsp.lua
@@ -0,0 +1,46 @@
+local clangd_on_attach = function(client, bufnr)
+
+ local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
+ local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end
+
+ -- Enable completion triggered by <c-x><c-o>
+ buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
+
+ -- Mappings.
+ local opts = { noremap=true, silent=true }
+ -- See `:help vim.lsp.*` for documentation on any of the below functions
+ buf_set_keymap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
+ buf_set_keymap('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
+ buf_set_keymap('n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
+ buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
+ buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
+ buf_set_keymap('n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
+ buf_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
+ buf_set_keymap('n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
+ buf_set_keymap('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
+ buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
+ buf_set_keymap('n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
+ buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
+ buf_set_keymap('n', '<space>e', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
+ buf_set_keymap('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<CR>', opts)
+ buf_set_keymap('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<CR>', opts)
+ buf_set_keymap('n', '<space>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', opts)
+ buf_set_keymap('n', '<space>f', '<cmd>lua vim.lsp.buf.formatting()<CR>', opts)
+ buf_set_keymap('i', '<c-space>', '<c-x><c-o>', opts)
+ buf_set_keymap('i', '::', '::<c-x><c-o>', opts)
+ buf_set_keymap('i', '.', '.<c-x><c-o>', opts)
+ buf_set_keymap('i', '->', '-><c-x><c-o>', opts)
+ buf_set_keymap('i', '<BS>', '<BS><c-x><c-o>', opts);
+end
+
+
+require('lspconfig').clangd.setup{
+ cmd = {
+ "clangd",
+ "--enable-config",
+ "--background-index",
+ "--pch-storage=memory",
+ "--all-scopes-completion",
+ },
+ on_attach = clangd_on_attach,
+}
diff --git a/.config/nvim/lua/plug.lua b/.config/nvim/lua/plug.lua
new file mode 100644
index 0000000..43c036e
--- /dev/null
+++ b/.config/nvim/lua/plug.lua
@@ -0,0 +1,22 @@
+-- ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
+-- ┃ ┏┓╻┏━┓ ╻ ╻╻┏┳┓ ┏━┓╻ ╻ ╻┏━╸╻┏┓╻┏━┓ ┃
+-- ┃ ┃┗┫┣━┫ ┃┏┛┃┃┃┃ ┣━┛┃ ┃ ┃┃╺┓┃┃┗┫┗━┓ ┃
+-- ┃ ╹ ╹┗━┛ ┗┛ ╹╹ ╹ ╹ ┗━╸┗━┛┗━┛╹╹ ╹┗━┛ ┃
+-- ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
+
+local Plug = vim.fn['plug#']
+
+vim.call('plug#begin', '~/.local/share/nvim/plugged')
+
+Plug 'airblade/vim-gitgutter'
+Plug 'tpope/vim-fugitive'
+Plug 'scrooloose/nerdcommenter'
+Plug 'neovim/nvim-lspconfig'
+Plug 'NPScript/vim-zettelkasten'
+Plug 'sakhnik/nvim-gdb'
+Plug 'nvim-treesitter/nvim-treesitter'
+Plug 'jalvesaq/Nvim-R'
+
+vim.call('plug#end')
+
+
diff --git a/.config/nvim/lua/settings.lua b/.config/nvim/lua/settings.lua
new file mode 100644
index 0000000..c3bd598
--- /dev/null
+++ b/.config/nvim/lua/settings.lua
@@ -0,0 +1,45 @@
+-- ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
+-- ┃ ┏┓╻┏━┓ ╻ ╻╻┏┳┓ ┏━┓┏━╸╺┳╸╺┳╸╻┏┓╻┏━╸┏━┓ ┃
+-- ┃ ┃┗┫┣━┫ ┃┏┛┃┃┃┃ ┗━┓┣╸ ┃ ┃ ┃┃┗┫┃╺┓┗━┓ ┃
+-- ┃ ╹ ╹┗━┛ ┗┛ ╹╹ ╹ ┗━┛┗━╸ ╹ ╹ ╹╹ ╹┗━┛┗━┛ ┃
+-- ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
+
+vim.opt.shell = '/usr/bin/zsh'
+vim.opt.path = "**"
+
+vim.cmd('colorscheme n8')
+
+vim.opt.mouse = 'a'
+vim.opt.tabstop = 2
+vim.opt.softtabstop = 0
+vim.opt.expandtab = false
+vim.opt.shiftwidth = 2
+vim.opt.smartindent = true
+vim.opt.list = true;
+vim.opt.listchars = { tab= '> ', eol = '¬', trail = '·', nbsp = '•'}
+vim.opt.splitright = true
+vim.opt.splitbelow = false
+vim.opt.laststatus = 2
+vim.opt.clipboard = "unnamedplus"
+vim.opt.number = true
+vim.opt.showcmd = true
+vim.opt.wildmenu = true
+vim.opt.hlsearch = true
+vim.opt.conceallevel = 2
+vim.opt.colorcolumn = "80"
+vim.cmd('filetype indent on')
+
+vim.opt.completeopt = { "menuone", "menu", "longest", "preview", "noinsert", "noselect" }
+
+vim.opt.spelllang = { "de_ch", "en_us" }
+
+vim.g.netrw_liststyle = 3
+vim.g.netrw_banner = false
+vim.g.netrw_browser_split = 2
+vim.g.netrw_keepdir = true
+vim.g.netrw_winsize = 30
+vim.cmd('autocmd Filetype netrw setlocal nolist')
+
+vim.g.airline_powerline_fonts = true
+
+vim.cmd("call statusbar#refresh()")
diff --git a/.config/qutebrowser/autoconfig.yml b/.config/qutebrowser/autoconfig.yml
new file mode 100644
index 0000000..f03d42d
--- /dev/null
+++ b/.config/qutebrowser/autoconfig.yml
@@ -0,0 +1,138 @@
+# If a config.py file exists, this file is ignored unless it's explicitly loaded
+# via config.load_autoconfig(). For more information, see:
+# https://github.com/qutebrowser/qutebrowser/blob/master/doc/help/configuring.asciidoc#loading-autoconfigyml
+# DO NOT edit this file by hand, qutebrowser will overwrite it.
+# Instead, create a config.py - see :help for details.
+
+config_version: 2
+settings:
+ bindings.commands:
+ global:
+ normal:
+ gle: spawn --userscript leo-eng
+ glf: spawn --userscript leo-fr
+ colors.completion.category.bg:
+ global: '#252525'
+ colors.completion.category.border.bottom:
+ global: '#252525'
+ colors.completion.category.border.top:
+ global: '#252525'
+ colors.completion.even.bg:
+ global: '#181818'
+ colors.completion.item.selected.bg:
+ global: '#547f62'
+ colors.completion.item.selected.border.bottom:
+ global: '#547f62'
+ colors.completion.item.selected.border.top:
+ global: '#547f62'
+ colors.completion.item.selected.match.fg:
+ global: '#ffffff'
+ colors.completion.match.fg:
+ global: '#547f62'
+ colors.completion.odd.bg:
+ global: '#181818'
+ colors.completion.scrollbar.bg:
+ global: '#252525'
+ colors.completion.scrollbar.fg:
+ global: '#547f62'
+ colors.messages.error.bg:
+ global: '#bc5858'
+ colors.messages.info.bg:
+ global: '#181818'
+ colors.messages.warning.bg:
+ global: '#e8c75c'
+ colors.statusbar.command.bg:
+ global: '#181818'
+ colors.statusbar.insert.bg:
+ global: '#252525'
+ colors.statusbar.normal.bg:
+ global: '#181818'
+ colors.statusbar.progress.bg:
+ global: '#547f62'
+ colors.statusbar.url.error.fg:
+ global: '#bc5858'
+ colors.statusbar.url.hover.fg:
+ global: '#6da6ce'
+ colors.statusbar.url.success.http.fg:
+ global: '#989898'
+ colors.statusbar.url.success.https.fg:
+ global: '#547f62'
+ colors.tabs.bar.bg:
+ global: '#181818'
+ colors.tabs.even.bg:
+ global: '#181818'
+ colors.tabs.even.fg:
+ global: '#999'
+ colors.tabs.indicator.error:
+ global: '#e8c75c'
+ colors.tabs.indicator.start:
+ global: '#6da6ce'
+ colors.tabs.indicator.stop:
+ global: '#547f62'
+ colors.tabs.odd.bg:
+ global: '#181818'
+ colors.tabs.odd.fg:
+ global: '#999'
+ colors.tabs.selected.even.bg:
+ global: '#547f62'
+ colors.tabs.selected.odd.bg:
+ global: '#547f62'
+ colors.webpage.darkmode.algorithm:
+ global: lightness-cielab
+ colors.webpage.darkmode.enabled:
+ global: false
+ colors.webpage.darkmode.grayscale.all:
+ global: true
+ colors.webpage.darkmode.grayscale.images:
+ global: 0.5
+ colors.webpage.darkmode.policy.images:
+ global: never
+ colors.webpage.darkmode.policy.page:
+ global: always
+ colors.webpage.darkmode.threshold.background:
+ global: 24
+ content.blocking.enabled:
+ global: true
+ content.blocking.method:
+ global: adblock
+ content.notifications.enabled:
+ https://www.chess.com: false
+ https://www.reddit.com: false
+ downloads.location.directory:
+ global: ~/Downloads
+ qt.force_platformtheme:
+ global: null
+ qt.workarounds.locale:
+ global: true
+ qt.workarounds.remove_service_workers:
+ global: false
+ statusbar.padding:
+ global:
+ bottom: 5
+ left: 5
+ right: 5
+ top: 5
+ statusbar.position:
+ global: bottom
+ tabs.indicator.padding:
+ global:
+ bottom: 4
+ left: 2
+ right: 5
+ top: 4
+ tabs.indicator.width:
+ global: 9
+ tabs.max_width:
+ global: 250
+ tabs.padding:
+ global:
+ bottom: 5
+ left: 5
+ right: 5
+ top: 5
+ tabs.position:
+ global: top
+ url.default_page:
+ global: ~/.config/startpage/start.html
+ url.start_pages:
+ global: ~/.config/startpage/start.html
diff --git a/.config/sc-im/scimrc b/.config/sc-im/scimrc
new file mode 100644
index 0000000..13761e4
--- /dev/null
+++ b/.config/sc-im/scimrc
@@ -0,0 +1,10 @@
+set autocalc
+set numeric
+set numeric_decimal=0
+set overlap
+set xlsx_readformulas
+
+color "type=HEADINGS bold=0 fg=BLACK bg=GREEN"
+color "type=HEADINGS_ODD bold=0 fg=BLACK bg=GREEN"
+color "type=CELL_SELECTION bold=0 fg=BLACK bg=GREEN"
+color "type=CELL_SELECTION_SC bold=0 fg=BLACK bg=BLUE"
diff --git a/.config/sway/config b/.config/sway/config
new file mode 100644
index 0000000..3621a50
--- /dev/null
+++ b/.config/sway/config
@@ -0,0 +1,287 @@
+# Default config for sway
+#
+# Copy this to ~/.config/sway/config and edit it to your liking.
+#
+# Read `man 5 sway` for a complete reference.
+
+### Variables
+#
+# Logo key. Use Mod1 for Alt.
+set $mod Mod4
+# Home row direction keys, like vim
+set $left h
+set $down j
+set $up k
+set $right l
+# Your preferred terminal emulator
+set $term st
+# Your preferred application launcher
+# Note: pass the final command to swaymsg so that the resulting window can be opened
+# on the original workspace that the command was run on.
+set $menu dmenu_path | dmenu | xargs swaymsg exec --
+
+set $browser qutebrowser
+set $cmus st -e cmus
+set $mail st -e neomutt
+set $pass passmenu --type
+set $filebrowser st -e luis
+
+set $lock swaylock -c 181818 \
+ --font "Source Code Pro" \
+ --inside-color 181818 \
+ --inside-ver-color 181818 \
+ --ring-color 547f62 \
+ --ring-ver-color 547f62 \
+ --separator-color 547f62 \
+ --text-color ffffff \
+ --text-ver-color ffffff \
+ -r -K
+
+### Output configuration
+#
+# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
+
+output * bg /home/nathanreiner/Bilder/bg.png fill
+#
+# Example configuration:
+#
+# output HDMI-A-1 resolution 1920x1080 position 1920,0
+#
+# You can get the names of your outputs by running: swaymsg -t get_outputs
+
+output VGA-1 transform 270
+output VGA-1 pos 0 0
+output HDMI-1 pos 1600 0
+output VGA-1 mode --custom 1600x900@59.946Hz
+
+default_border pixel 2
+
+# Set colors
+set $bg #181818
+set $fg #eff1f5
+set $br #547f62
+set $ia #232425
+
+
+# class border backgr. text indicator child_border
+client.focused $br $br $fg $bg $br
+client.focused_inactive $bg $bg $fg $bg $bg
+client.unfocused $bg $bg $fg $bg $bg
+#client.urgent $br $br $fg $bg $br #currently not implemented
+#client.placeholder $br $br $fg $bg $br #currently not implemented
+client.background $bg
+
+### Idle configuration
+#
+# Example configuration:
+#
+exec swayidle -w \
+ timeout 300 'swaylock -f -c 000000' \
+ timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
+ before-sleep 'swaylock -f -c 000000'
+#
+# This will lock your screen after 300 seconds of inactivity, then turn off
+# your displays after another 300 seconds, and turn your screens back on when
+# resumed. It will also lock your screen before your computer goes to sleep.
+
+### Input configuration
+#
+# Example configuration:
+#
+# input "2:14:SynPS/2_Synaptics_TouchPad" {
+# dwt enabled
+# tap enabled
+# natural_scroll enabled
+# middle_emulation enabled
+# }
+#
+# You can get the names of your inputs by running: swaymsg -t get_inputs
+# Read `man 5 sway-input` for more information about this section.
+
+input "9494:66:Cooler_Master_Technology_Inc._MasterKeys_Lite_L_Combo_Keyboard(KB)" {
+ # Keyboard
+ xkb_layout "us,ch"
+ xkb_variant ",de_mac"
+ xkb_options "caps:escape,grp:win_space_toggle"
+}
+
+input "1133:49257:Logitech_USB_Laser_Mouse" {
+ natural_scroll "enabled"
+}
+
+### Key bindings
+#
+# Basics:
+#
+ bindsym $mod+Shift+Return exec $term
+ bindsym $mod+Shift+b exec $browser
+ bindsym $mod+Shift+m exec $cmus
+ bindsym $mod+Shift+e exec $mail
+ bindsym $mod+Escape exec $lock
+ bindsym $mod+Shift+p exec $pass
+ bindsym $mod+Shift+f exec $filebrowser
+
+ bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
+ bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
+ bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
+ bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
+ bindsym XF86MonBrightnessDown exec brightnessctl set 5%-
+ bindsym XF86MonBrightnessUp exec brightnessctl set +5%
+ bindsym XF86AudioPlay exec playerctl play-pause
+ bindsym XF86AudioNext exec playerctl next
+ bindsym XF86AudioPrev exec playerctl previous
+
+ # Kill focused window
+ bindsym $mod+Shift+c kill
+
+ # Start your launcher
+ bindsym $mod+p exec $menu
+
+ # Drag floating windows by holding down $mod and left mouse button.
+ # Resize them with right mouse button + $mod.
+ # Despite the name, also works for non-floating windows.
+ # Change normal to inverse to use left mouse button for resizing and right
+ # mouse button for dragging.
+ floating_modifier $mod normal
+
+ # Reload the configuration file
+ bindsym $mod+c reload
+
+ # Exit sway (logs you out of your Wayland session)
+ bindsym $mod+Shift+q exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'
+#
+# Moving around:
+#
+ # Move your focus around
+ bindsym $mod+$left focus left
+ bindsym $mod+$down focus down
+ bindsym $mod+$up focus up
+ bindsym $mod+$right focus right
+ # Or use $mod+[up|down|left|right]
+ bindsym $mod+Left focus left
+ bindsym $mod+Down focus down
+ bindsym $mod+Up focus up
+ bindsym $mod+Right focus right
+
+ # Move the focused window with the same, but add Shift
+ bindsym $mod+Shift+$left move left
+ bindsym $mod+Shift+$down move down
+ bindsym $mod+Shift+$up move up
+ bindsym $mod+Shift+$right move right
+ # Ditto, with arrow 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
+#
+# Workspaces:
+#
+ # Switch to workspace
+ bindsym $mod+1 workspace number 1
+ bindsym $mod+2 workspace number 2
+ bindsym $mod+3 workspace number 3
+ bindsym $mod+4 workspace number 4
+ bindsym $mod+5 workspace number 5
+ bindsym $mod+6 workspace number 6
+ bindsym $mod+7 workspace number 7
+ bindsym $mod+8 workspace number 8
+ bindsym $mod+9 workspace number 9
+ bindsym $mod+0 workspace number 10
+ # Move focused container to workspace
+ bindsym $mod+Shift+1 move container to workspace number 1
+ bindsym $mod+Shift+2 move container to workspace number 2
+ bindsym $mod+Shift+3 move container to workspace number 3
+ bindsym $mod+Shift+4 move container to workspace number 4
+ bindsym $mod+Shift+5 move container to workspace number 5
+ bindsym $mod+Shift+6 move container to workspace number 6
+ bindsym $mod+Shift+7 move container to workspace number 7
+ bindsym $mod+Shift+8 move container to workspace number 8
+ bindsym $mod+Shift+9 move container to workspace number 9
+ bindsym $mod+Shift+0 move container to workspace number 10
+ # Note: workspaces can have any name you want, not just numbers.
+ # We just use 1-10 as the default.
+#
+# Layout stuff:
+#
+ # You can "split" the current object of your focus with
+ # $mod+b or $mod+v, for horizontal and vertical splits
+ # respectively.
+ bindsym $mod+b splith
+ bindsym $mod+v splitv
+
+ # Switch the current container between different layout styles
+ bindsym $mod+s layout stacking
+ bindsym $mod+w layout tabbed
+ bindsym $mod+e layout toggle split
+
+ # Make the current focus fullscreen
+ bindsym $mod+f fullscreen
+
+ # Toggle the current focus between tiling and floating mode
+ bindsym $mod+Shift+space floating toggle
+
+ # Swap focus between the tiling area and the floating area
+ bindsym $mod+space focus mode_toggle
+
+ # Move focus to the parent container
+ bindsym $mod+a focus parent
+#
+# Scratchpad:
+#
+ # Sway has a "scratchpad", which is a bag of holding for windows.
+ # You can send windows there and get them back later.
+
+ # Move the currently focused window to the scratchpad
+ bindsym $mod+Shift+minus move scratchpad
+
+ # Show the next scratchpad window or hide the focused scratchpad window.
+ # If there are multiple scratchpad windows, this command cycles through them.
+ bindsym $mod+minus scratchpad show
+#
+# Resizing containers:
+#
+mode "resize" {
+ # left will shrink the containers width
+ # right will grow the containers width
+ # up will shrink the containers height
+ # down will grow the containers height
+ bindsym $left resize shrink width 10px
+ bindsym $down resize grow height 10px
+ bindsym $up resize shrink height 10px
+ bindsym $right resize grow width 10px
+
+ # Ditto, with arrow keys
+ bindsym Left resize shrink width 10px
+ bindsym Down resize grow height 10px
+ bindsym Up resize shrink height 10px
+ bindsym Right resize grow width 10px
+
+ # Return to default mode
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+}
+bindsym $mod+r mode "resize"
+
+#
+# Status Bar:
+#
+# Read `man 5 sway-bar` for more information about this section.
+# bar {
+# position top
+#
+# # When the status_command prints a new line to stdout, swaybar updates.
+# # The default just shows the current date and time.
+# status_command while date +'%Y-%m-%d %l:%M:%S %p'; do sleep 1; done
+#
+# colors {
+# statusline #ffffff
+# background #323232
+# inactive_workspace #32323200 #32323200 #5c5c5c
+# }
+# }
+
+exec waybar
+
+include /etc/sway/config.d/*
+
+exec sprogs
diff --git a/.config/waybar/config b/.config/waybar/config
new file mode 100644
index 0000000..9743a0f
--- /dev/null
+++ b/.config/waybar/config
@@ -0,0 +1,160 @@
+{
+ // "layer": "top", // Waybar at top layer
+ // "position": "bottom", // Waybar position (top|bottom|left|right)
+ "height": 30, // Waybar height (to be removed for auto height)
+ // "width": 1280, // Waybar width
+ "spacing": 4, // Gaps between modules (4px)
+ // Choose the order of the modules
+ "modules-left": ["sway/workspaces"],
+ "modules-center": ["sway/window"],
+ "modules-right": ["pulseaudio", "network", "sway/language", "clock", "tray"],
+ // Modules configuration
+ // "sway/workspaces": {
+ // "disable-scroll": true,
+ // "all-outputs": true,
+ // "format": "{name}: {icon}",
+ // "format-icons": {
+ // "1": "",
+ // "2": "",
+ // "3": "",
+ // "4": "",
+ // "5": "",
+ // "urgent": "",
+ // "focused": "",
+ // "default": ""
+ // }
+ // },
+ "keyboard-state": {
+ "numlock": true,
+ "capslock": true,
+ "format": "{name} {icon}",
+ "format-icons": {
+ "locked": "",
+ "unlocked": ""
+ }
+ },
+ "sway/mode": {
+ "format": "<span style=\"italic\">{}</span>"
+ },
+ "mpd": {
+ "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ",
+ "format-disconnected": "Disconnected ",
+ "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
+ "unknown-tag": "N/A",
+ "interval": 2,
+ "consume-icons": {
+ "on": " "
+ },
+ "random-icons": {
+ "off": "<span color=\"#f53c3c\"></span> ",
+ "on": " "
+ },
+ "repeat-icons": {
+ "on": " "
+ },
+ "single-icons": {
+ "on": "1 "
+ },
+ "state-icons": {
+ "paused": "",
+ "playing": ""
+ },
+ "tooltip-format": "MPD (connected)",
+ "tooltip-format-disconnected": "MPD (disconnected)"
+ },
+ "idle_inhibitor": {
+ "format": "{icon}",
+ "format-icons": {
+ "activated": "",
+ "deactivated": ""
+ }
+ },
+ "tray": {
+ // "icon-size": 21,
+ "spacing": 10
+ },
+ "clock": {
+ // "timezone": "America/New_York",
+ "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
+ "format-alt": "{:%Y-%m-%d}"
+ },
+ "cpu": {
+ "format": "{usage}% ",
+ "tooltip": false
+ },
+ "memory": {
+ "format": "{}% "
+ },
+ "temperature": {
+ // "thermal-zone": 2,
+ // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
+ "critical-threshold": 80,
+ // "format-critical": "{temperatureC}°C {icon}",
+ "format": "{temperatureC}°C {icon}",
+ "format-icons": ["", "", ""]
+ },
+ "backlight": {
+ // "device": "acpi_video1",
+ "format": "{percent}% {icon}",
+ "format-icons": ["", ""]
+ },
+ "battery": {
+ "states": {
+ // "good": 95,
+ "warning": 30,
+ "critical": 15
+ },
+ "format": "{capacity}% {icon}",
+ "format-charging": "{capacity}% ",
+ "format-plugged": "{capacity}% ",
+ "format-alt": "{time} {icon}",
+ // "format-good": "", // An empty format will hide the module
+ // "format-full": "",
+ "format-icons": ["", "", "", "", ""]
+ },
+ "battery#bat2": {
+ "bat": "BAT2"
+ },
+ "network": {
+ // "interface": "wlp2*", // (Optional) To force the use of this interface
+ "format-wifi": "{essid} ({signalStrength}%) ",
+ "format-ethernet": "{ipaddr}/{cidr} ",
+ "tooltip-format": "{ifname} via {gwaddr} ",
+ "format-linked": "{ifname} (No IP) ",
+ "format-disconnected": "Disconnected ⚠",
+ "format-alt": "{ifname}: {ipaddr}/{cidr}"
+ },
+ "pulseaudio": {
+ // "scroll-step": 1, // %, can be a float
+ "format": "{volume}% {icon}",
+ "format-bluetooth": "{volume}% {icon} {format_source}",
+ "format-bluetooth-muted": " {icon} {format_source}",
+ "format-muted": " {format_source}",
+ "format-source": "{volume}% ",
+ "format-source-muted": "",
+ "format-icons": {
+ "headphone": "",
+ "hands-free": "",
+ "headset": "",
+ "phone": "",
+ "portable": "",
+ "car": "",
+ "default": ["", "", ""]
+ },
+ "on-click": "pavucontrol"
+ },
+ "custom/media": {
+ "format": "{icon} {}",
+ "return-type": "json",
+ "max-length": 40,
+ "format-icons": {
+ "Playing": ">",
+ "Pause": "||",
+ "No players found": "0"
+ },
+ "escape": true,
+ "exec": "playerctl status 2> /dev/null" // Script in resources folder
+ // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
+ },
+}
+
diff --git a/.config/waybar/style.css b/.config/waybar/style.css
new file mode 100644
index 0000000..99be8d7
--- /dev/null
+++ b/.config/waybar/style.css
@@ -0,0 +1,127 @@
+* {
+ /* `otf-font-awesome` is required to be installed for icons */
+ font-family: 'Source Code Pro', Roboto, Helvetica, Arial, sans-serif;
+ font-size: 13px;
+}
+
+window#waybar {
+ background-color: #191919;
+ border-bottom: 3px solid #282828;
+ color: #ffffff;
+ transition-property: background-color;
+ transition-duration: .5s;
+}
+
+window#waybar.hidden {
+ opacity: 0.2;
+}
+
+/*
+window#waybar.empty {
+background-color: transparent;
+}
+window#waybar.solo {
+background-color: #FFFFFF;
+}
+ */
+
+ window#waybar.termite {
+ background-color: #3F3F3F;
+ }
+
+ window#waybar.chromium {
+ background-color: #000000;
+ border: none;
+ }
+
+ #workspaces button {
+ padding: 0 5px;
+ background-color: transparent;
+ color: #ffffff;
+ /* Use box-shadow instead of border so the text isn't offset */
+ box-shadow: inset 0 -3px transparent;
+ /* Avoid rounded borders under each workspace name */
+ border: none;
+ border-radius: 0;
+ }
+
+ /* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
+ #workspaces button:hover {
+ background: rgba(0, 0, 0, 0);
+ box-shadow: inset 0 -3px #547f62;
+ }
+
+ #workspaces button.focused {
+ background-color: #547f62;
+ box-shadow: inset 0 -3px #547f62;
+ }
+
+ #workspaces button.urgent {
+ background-color: #eb4d4b;
+ }
+
+ #mode {
+ background-color: #64727D;
+ border-bottom: 3px solid #ffffff;
+ }
+
+ #clock,
+ #battery,
+ #cpu,
+ #memory,
+ #disk,
+ #temperature,
+ #backlight,
+ #network,
+ #pulseaudio,
+ #custom-media,
+ #language,
+ #tray,
+ #mode,
+ #idle_inhibitor,
+ #mpd {
+ padding: 0 10px;
+ color: #ffffff;
+ background-color: #282828;
+ }
+
+ #window,
+ #workspaces {
+ margin: 0 4px;
+ }
+
+ /* If workspaces is the leftmost module, omit left margin */
+ .modules-left > widget:first-child > #workspaces {
+ margin-left: 0;
+ }
+
+ /* If workspaces is the rightmost module, omit right margin */
+ .modules-right > widget:last-child > #workspaces {
+ margin-right: 0;
+ }
+
+ @keyframes blink {
+ to {
+ background-color: #ffffff;
+ color: #000000;
+ }
+ }
+
+ #battery.critical:not(.charging) {
+ background-color: #f53c3c;
+ color: #ffffff;
+ animation-name: blink;
+ animation-duration: 0.5s;
+ animation-timing-function: linear;
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+ }
+
+ #tray > .passive {
+ -gtk-icon-effect: dim;
+ }
+
+ #tray > .needs-attention {
+ -gtk-icon-effect: highlight;
+ background-color: #eb4d4b;
+ }
diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc
new file mode 100644
index 0000000..7eb08bb
--- /dev/null
+++ b/.config/zsh/.zshrc
@@ -0,0 +1,45 @@
+# Created by newuser for 5.8
+
+autoload -Uz compinit promptinit
+
+# Completion
+compinit
+zstyle ':completion::complete:*' gain-privileges 1
+zstyle ':completion:*' menu select
+
+# Prompt
+if [ "$TERM" != "linux" ]; then
+ fpath=(~/.config/zsh/ $fpath)
+ autoload -Uz knight
+ knight
+else
+ PROMPT='%n @ %m %~ %# '
+fi;
+
+STATUS="Hallo"
+
+# Keybindings
+bindkey -v
+
+# Aliases
+alias ls='ls --color=auto'
+alias la='ls -a --color=auto'
+alias ll='ls -l --color=auto -h'
+setopt COMPLETE_ALIASES
+
+# History
+export HISTSIZE=1000
+export SAVEHIST=1000
+export HISTFILE=~/.zsh_history
+setopt INC_APPEND_HISTORY
+setopt HIST_IGNORE_DUPS
+
+# Syntax Highlight
+source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
+
+source ~/.profile
+
+# Auto CD
+setopt AUTO_CD
+
+export HISTFILE="$XDG_CACHE_HOME"/zsh/history
diff --git a/.config/zsh/knight b/.config/zsh/knight
new file mode 100644
index 0000000..507212f
--- /dev/null
+++ b/.config/zsh/knight
@@ -0,0 +1,17 @@
+
+prompt_git_status() {
+ if [ -d ".git" ]; then
+ sign="\ue725";
+ [[ -n $(git status -s) ]] && sign="\ufc1a";
+ git_branch=$(git branch);
+ echo "%F{#547f62}%f%B%F{#191919}%K{#547f62} ${sign} ${git_branch##*\* } %f%k%b";
+ fi;
+}
+
+update_prompt() {
+ RPROMPT="$(prompt_git_status)"
+}
+
+PROMPT="%B%F{#191919}%K{#547f62} %n %k%b%f%F{#547f62}%K{#191919}%f%k%F{#191919}%K{#547f62}%f%k%B%K{#547f62}%F{#191919} %m %b%k%f%F{#547f62}%K{#191919}%f%k%F{#191919}%K{#7698C4}%B %~ %b%f%k%F{#7698C4}%k%f "
+
+[[ -z $precmd_functions ]] && precmd_functions=() precmd_functions=($precmd_functions update_prompt)