diff --git a/.config/compton.conf b/.config/compton.conf
new file mode 100644
index 0000000..5068e93
--- /dev/null
+++ b/.config/compton.conf
@@ -0,0 +1,97 @@
+# Shadow
+shadow = true;
+no-dnd-shadow = true;
+no-dock-shadow = true;
+clear-shadow = true;
+shadow-radius = 7;
+shadow-offset-x = -7;
+shadow-offset-y = -7;
+# shadow-opacity = 0.7;
+shadow-red = 0.3;
+shadow-green = 0.0;
+shadow-blue = 0.1;
+shadow-exclude = [
+ "name = 'Notification'",
+ "class_g = 'Conky'",
+ "class_g ?= 'Notify-osd'",
+ "class_g = 'Cairo-clock'",
+ "_GTK_FRAME_EXTENTS@:c",
+
+ "!I3_FLOATING_WINDOW@:c",
+ "class_g = 'i3-frame'"
+];
+# shadow-exclude = "n:e:Notification";
+# shadow-exclude-reg = "x10+0+0";
+# xinerama-shadow-crop = true;
+
+# Opacity
+menu-opacity = 0.8;
+inactive-opacity = 0.8;
+# active-opacity = 0.8;
+frame-opacity = 0.7;
+inactive-opacity-override = false;
+alpha-step = 0.06;
+# inactive-dim = 0.2;
+# inactive-dim-fixed = true;
+# blur-background = true;
+# blur-background-frame = true;
+blur-kern = "3x3box";
+# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
+# blur-background-fixed = true;
+blur-background-exclude = [
+ "window_type = 'dock'",
+ "window_type = 'desktop'",
+ "_GTK_FRAME_EXTENTS@:c"
+];
+# opacity-rule = [ "80:class_g = 'URxvt'" ];
+opacity-rule = [
+ "0:_NET_WM_STATE@[0]:32a = '_NET_WM_STATE_HIDDEN'",
+ "99:_NET_WM_STATE@:32a = '_NET_WM_STATE_FULLSCREEN'",
+ "90:class_g = 'Brave' && !_NET_WM_STATE@:32a"
+];
+
+# Fading
+fading = false;
+# fade-delta = 30;
+fade-in-step = 0.03;
+fade-out-step = 0.03;
+# no-fading-openclose = true;
+# no-fading-destroyed-argb = true;
+fade-exclude = [ ];
+
+# Other
+backend = "xrender";
+mark-wmwin-focused = true;
+mark-ovredir-focused = true;
+# use-ewmh-active-win = true;
+detect-rounded-corners = true;
+detect-client-opacity = true;
+refresh-rate = 0;
+vsync = "none";
+dbe = false;
+paint-on-overlay = true;
+# sw-opti = true;
+# unredir-if-possible = true;
+# unredir-if-possible-delay = 5000;
+# unredir-if-possible-exclude = [ ];
+focus-exclude = [ "class_g = 'Cairo-clock'" ];
+detect-transient = true;
+detect-client-leader = true;
+invert-color-include = [ ];
+# resize-damage = 1;
+
+# GLX backend
+# glx-no-stencil = true;
+glx-copy-from-front = false;
+# glx-use-copysubbuffermesa = true;
+# glx-no-rebind-pixmap = true;
+glx-swap-method = "undefined";
+# glx-use-gpushader4 = true;
+# xrender-sync = true;
+# xrender-sync-fence = true;
+
+# Window type settings
+wintypes:
+{
+ tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; };
+};
diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc
new file mode 100644
index 0000000..5b372a8
--- /dev/null
+++ b/.config/dunst/dunstrc
@@ -0,0 +1,431 @@
+[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 = 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 = 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 = "#b30e63"
+
+ # 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 = Monospace 8
+
+ # 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
+
+ # Vertical alignment of message text and icon.
+ # Possible values are "top", "center" and "bottom".
+ vertical_alignment = center
+
+ # 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 small icons up to this size, set to 0 to disable. Helpful
+ # for e.g. small files or high-dpi screens. In case of conflict,
+ # max_icon_size takes precedence over this.
+ min_icon_size = 0
+
+ # 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 = /snap/bin/brave
+
+ # 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
+
+ # Ignore the dbus closeNotification message.
+ # Useful to enforce the timeout set by dunst configuration. Without this
+ # parameter, an application may close the notification sent before the
+ # user defined timeout.
+ ignore_dbusclose = false
+
+ ### 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 list of actions for each 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.
+ # These values can be strung together for each mouse event, and
+ # will be executed in sequence.
+ mouse_left_click = close_current
+ mouse_middle_click = do_action, close_current
+ 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 = "#222222"
+ foreground = "#888888"
+ timeout = 10
+ # Icon for notifications with low urgency, uncomment to enable
+ #icon = /path/to/icon
+
+[urgency_normal]
+ background = "#333333"
+ foreground = "#d10f73"
+ timeout = 10
+ # Icon for notifications with normal urgency, uncomment to enable
+ #icon = /path/to/icon
+
+[urgency_critical]
+ background = "#333333"
+ foreground = "#ff0000"
+ 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
+
+#[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/i3/.i3status.conf b/.config/i3/.i3status.conf
new file mode 100644
index 0000000..1210ce6
--- /dev/null
+++ b/.config/i3/.i3status.conf
@@ -0,0 +1,67 @@
+#i3status configuration file.
+# see "man i3status" for documentation.
+
+# It is important that this file is edited as UTF-8.
+# The following line should contain a sharp s:
+# ß
+# If the above line is not correctly displayed, fix your editor first!
+
+general {
+ colors = true
+ interval = 1
+}
+
+#order += "ipv6"
+order += "memory"
+order += "wireless _first_"
+#order += "ethernet _first_"
+order += "battery all"
+#order += "disk /"
+#order += "load"
+order += "volume master"
+order += "tztime local"
+
+wireless _first_ {
+ format_up = " %essid %quality"
+ format_down = " "
+}
+
+ethernet _first_ {
+ format_up = "E: %ip (%speed)"
+ format_down = "E: down"
+}
+
+battery all {
+ format = "%status %percentage"
+ format_down = " "
+ status_chr = " "
+ status_bat = " "
+ status_unk = " "
+ status_full = " "
+}
+
+disk "/" {
+ format = "%avail"
+}
+
+load {
+ format = "%1min"
+}
+
+memory {
+ format = " %used / %available"
+ threshold_degraded = "1G"
+ format_degraded = "MEMORY < %available"
+}
+
+tztime local {
+ format = " %d.%m.%Y %H:%M:%S"
+}
+
+volume master {
+ format = ": %volume"
+ format_muted = "♪: muted (%volume)"
+ device = "default"
+ mixer = "Master"
+ mixer_idx = 0
+}
diff --git a/.config/i3/config b/.config/i3/config
new file mode 100644
index 0000000..83e8f56
--- /dev/null
+++ b/.config/i3/config
@@ -0,0 +1,353 @@
+# This file has been auto-generated by i3-config-wizard(1).
+# It will not be overwritten, so edit it as you like.
+#
+# Should you change your keyboard layout some time, delete
+# this file and re-run i3-config-wizard(1).
+#
+
+# i3 config file (v4)
+#
+# Please see https://i3wm.org/docs/userguide.html for a complete reference!
+
+set $mod Mod4
+set $alt Mod1
+#############################################################################
+########################## Monitors #########################################
+#############################################################################
+
+exec --no-startup-id xrandr --output HDMI-1 --left-of DP-1 --auto
+set $firstmonitor DP-1
+set $secondmonitor HDMI-1
+
+# Enable Tap Click
+exec_always "xinput set-prop 'ELAN07A4:00 04F3:3244 Touchpad' 'libinput Tapping Enabled' 1"
+
+
+bindsym $mod+p exec "bash /home/lorenz/.config/i3/rofi/screenmenu.sh"
+bindsym $mod+i exec "gnome-control-center"
+# Font for window titles. Will also be used by the bar unless a different font
+# is used in the bar {} block below.
+font pango:UbuntuMonoNerdFont-Regular 10
+
+# This font is widely installed, provides lots of unicode glyphs, right-to-left
+# text rendering and scalability on retina/hidpi displays (thanks to pango).
+#font pango:DejaVu Sans Mono 8
+
+# Start XDG autostart .desktop files using dex. See also
+# https://wiki.archlinux.org/index.php/XDG_Autostart
+exec --no-startup-id dex --autostart --environment i3
+
+# The combination of xss-lock, nm-applet and pactl is a popular choice, so
+# they are included here as an example. Modify as you see fit.
+
+# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
+# screen before suspend. Use loginctl lock-session to lock your screen.
+exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
+
+# NetworkManager is the most popular way to manage wireless networks on Linux,
+# and nm-applet is a desktop environment-independent system tray GUI for it.
+exec --no-startup-id nm-applet
+
+# Use pactl to adjust volume in PulseAudio.
+set $refresh_i3status killall -SIGUSR1 i3status
+bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
+bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
+bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
+bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
+
+#i3 specific for window tweaks
+for_window [title="Microsoft Teams Notification"] floating enable; border none
+for_window [class="^.*Chromium"] border pixel 1
+for_window [title="^.*Google Chrome"] border pixel 1
+for_window [title="^.*Mozilla Firefox"] border pixel 1
+for_window [title="- IntelliJ IDEA"] border pixel 0
+
+# Use Mouse+$mod to drag floating windows to their wanted position
+floating_modifier $mod
+
+# start a terminal
+bindsym $mod+Return exec kitty
+
+# kill focused window
+bindsym $mod+Shift+q kill
+
+# start dmenu (a program launcher)
+bindsym $mod+d exec "rofi -modi drun,run -show drun"
+bindsym $mod+m exec "rofi -modi emoji -show emoji"
+# A more modern dmenu replacement is rofi:
+# bindcode $mod+40 exec "rofi -modi drun,run -show drun"
+# There also is i3-dmenu-desktop which only displays applications shipping a
+# .desktop file. It is a wrapper around dmenu, so you need that installed.
+# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop
+bindsym $alt+Tab exec "rofi -modi window -show window"
+
+# change focus
+bindsym $mod+h focus left
+bindsym $mod+j focus down
+bindsym $mod+k focus up
+bindsym $mod+l focus right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Left focus left
+bindsym $mod+Down focus down
+bindsym $mod+Up focus up
+bindsym $mod+Right focus right
+
+# move focused window
+bindsym $mod+Shift+h move left
+bindsym $mod+Shift+j move down
+bindsym $mod+Shift+k move up
+bindsym $mod+Shift+l move right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Shift+Left move left
+bindsym $mod+Shift+Down move down
+bindsym $mod+Shift+Up move up
+bindsym $mod+Shift+Right move right
+
+# split in horizontal orientation
+bindsym $mod+b split h
+
+# split in vertical orientation
+bindsym $mod+n split v
+
+# enter fullscreen mode for the focused container
+bindsym $mod+f fullscreen toggle
+
+# change container layout (stacked, tabbed, toggle split)
+bindsym $mod+s layout stacking
+bindsym $mod+w layout tabbed
+bindsym $mod+e layout toggle split
+
+# toggle tiling / floating
+bindsym $mod+Shift+space floating toggle
+
+# change focus between tiling / floating windows
+bindsym $mod+$alt focus mode_toggle
+
+# focus the parent container
+bindsym $mod+a focus parent
+
+# focus the child container
+#bindsym $mod+d focus child
+
+# Define names for default workspaces for which we configure key bindings later on.
+# We use variables to avoid repeating the names in multiple places.
+set $ws1 "1"
+set $ws2 "2"
+set $ws3 "3"
+set $ws4 "4"
+set $ws5 "5"
+set $ws6 "6"
+set $ws7 "7"
+set $ws8 "8"
+set $ws9 "9"
+set $ws10 "10"
+
+# switch to workspace
+bindsym $mod+1 workspace number $ws1
+bindsym $mod+2 workspace number $ws2
+bindsym $mod+3 workspace number $ws3
+bindsym $mod+4 workspace number $ws4
+bindsym $mod+5 workspace number $ws5
+bindsym $mod+6 workspace number $ws6
+bindsym $mod+7 workspace number $ws7
+bindsym $mod+8 workspace number $ws8
+bindsym $mod+9 workspace number $ws9
+bindsym $mod+0 workspace number $ws10
+
+# move focused container to workspace
+bindsym $mod+Shift+1 move container to workspace number $ws1
+bindsym $mod+Shift+2 move container to workspace number $ws2
+bindsym $mod+Shift+3 move container to workspace number $ws3
+bindsym $mod+Shift+4 move container to workspace number $ws4
+bindsym $mod+Shift+5 move container to workspace number $ws5
+bindsym $mod+Shift+6 move container to workspace number $ws6
+bindsym $mod+Shift+7 move container to workspace number $ws7
+bindsym $mod+Shift+8 move container to workspace number $ws8
+bindsym $mod+Shift+9 move container to workspace number $ws9
+bindsym $mod+Shift+0 move container to workspace number $ws10
+
+
+
+# reload the configuration file
+bindsym $mod+Shift+c reload
+# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
+bindsym $mod+Shift+r restart
+# reload dunst
+bindsym $mod+Shift+d --release exec --no-startup-id "killall dunst && dunstify -u low foo && dunstify foo && dunstify -u critical foo"
+# exit i3 (logs you out of your X session)
+bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
+bindsym $mod+$alt+l exec bash /home/lorenz/.config/i3/lockscreen.sh
+bindsym $mod+$alt+k exec bash /home/lorenz/.config/i3/rofi/sleepmenu.sh
+
+# resize window (you can also use the mouse for that)
+mode "resize" {
+ # These bindings trigger as soon as you enter the resize mode
+
+ # Pressing left will shrink the window’s width.
+ # Pressing right will grow the window’s width.
+ # Pressing up will shrink the window’s height.
+ # Pressing down will grow the window’s height.
+ bindsym h resize shrink width 10 px or 10 ppt
+ bindsym j resize grow height 10 px or 10 ppt
+ bindsym k resize shrink height 10 px or 10 ppt
+ bindsym l resize grow width 10 px or 10 ppt
+
+ # same bindings, but for the arrow keys
+ bindsym Left resize shrink width 10 px or 10 ppt
+ bindsym Down resize grow height 10 px or 10 ppt
+ bindsym Up resize shrink height 10 px or 10 ppt
+ bindsym Right resize grow width 10 px or 10 ppt
+
+ # back to normal: Enter or Escape or $mod+r
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+ bindsym $mod+r mode "default"
+}
+
+bindsym $mod+r mode "resize"
+
+# Start i3bar to display a workspace bar (plus the system information i3status
+
+exec_always "bash $HOME/.config/polybar/launch.sh"
+
+#colors: border backgr. text indicator
+client.focused #650C3A #460728 #ffffff #2b2b2b
+client.focused_inactive #4D4D4D #2b2b2b #ffffff #2b2b2b
+client.unfocused #4D4D4D #2b2b2b #ffffff #2b2b2b
+client.urgent #900000 #900000 #ffffff #2b2b2b
+
+client.background #333333
+
+exec_always nitrogen --restore
+exec_always compton
+exec_always copyq
+exec_always --no-startup-id dunst
+bindsym $mod+v exec copyq toggle
+bindsym $mod+c exec "flatpak run com.github.rajsolai.textsnatcher"
+
+gaps inner 15
+gaps outer 5
+
+set $mode_gaps Gaps: (o)uter, (i)nner, (h)orizontal, (v)ertical, (t)op, (r)ight, (b)ottom, (l)eft
+set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global)
+set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global)
+set $mode_gaps_horiz Horizontal Gaps: +|-|0 (local), Shift + +|-|0 (global)
+set $mode_gaps_verti Vertical Gaps: +|-|0 (local), Shift + +|-|0 (global)
+set $mode_gaps_top Top Gaps: +|-|0 (local), Shift + +|-|0 (global)
+set $mode_gaps_right Right Gaps: +|-|0 (local), Shift + +|-|0 (global)
+set $mode_gaps_bottom Bottom Gaps: +|-|0 (local), Shift + +|-|0 (global)
+set $mode_gaps_left Left Gaps: +|-|0 (local), Shift + +|-|0 (global)
+bindsym $mod+Shift+g mode "$mode_gaps"
+
+mode "$mode_gaps" {
+ bindsym o mode "$mode_gaps_outer"
+ bindsym i mode "$mode_gaps_inner"
+ bindsym h mode "$mode_gaps_horiz"
+ bindsym v mode "$mode_gaps_verti"
+ bindsym t mode "$mode_gaps_top"
+ bindsym r mode "$mode_gaps_right"
+ bindsym b mode "$mode_gaps_bottom"
+ bindsym l mode "$mode_gaps_left"
+ bindsym Return mode "$mode_gaps"
+ bindsym Escape mode "default"
+}
+
+
+mode "$mode_gaps_outer" {
+ bindsym k gaps outer current plus 5
+ bindsym j gaps outer current minus 5
+ bindsym 0 gaps outer current set 0
+
+ bindsym Shift+k gaps outer all plus 5
+ bindsym Shift+j gaps outer all minus 5
+ bindsym Shift+0 gaps outer all set 0
+
+ bindsym Return mode "$mode_gaps"
+ bindsym Escape mode "default"
+}
+mode "$mode_gaps_inner" {
+ bindsym k gaps inner current plus 5
+ bindsym j gaps inner current minus 5
+ bindsym 0 gaps inner current set 0
+
+ bindsym Shift+k gaps inner all plus 5
+ bindsym Shift+j gaps inner all minus 5
+ bindsym Shift+0 gaps inner all set 0
+
+ bindsym Return mode "$mode_gaps"
+ bindsym Escape mode "default"
+}
+mode "$mode_gaps_horiz" {
+ bindsym k gaps horizontal current plus 5
+ bindsym j gaps horizontal current minus 5
+ bindsym 0 gaps horizontal current set 0
+
+ bindsym Shift+k gaps horizontal all plus 5
+ bindsym Shift+j gaps horizontal all minus 5
+ bindsym Shift+0 gaps horizontal all set 0
+
+ bindsym Return mode "$mode_gaps"
+ bindsym Escape mode "default"
+}
+mode "$mode_gaps_verti" {
+ bindsym k gaps vertical current plus 5
+ bindsym j gaps vertical current minus 5
+ bindsym 0 gaps vertical current set 0
+
+ bindsym Shift+k gaps vertical all plus 5
+ bindsym Shift+j gaps vertical all minus 5
+ bindsym Shift+0 gaps vertical all set 0
+
+ bindsym Return mode "$mode_gaps"
+ bindsym Escape mode "default"
+}
+mode "$mode_gaps_top" {
+ bindsym k gaps top current plus 5
+ bindsym j gaps top current minus 5
+ bindsym 0 gaps top current set 0
+
+ bindsym Shift+k gaps top all plus 5
+ bindsym Shift+j gaps top all minus 5
+ bindsym Shift+0 gaps top all set 0
+
+ bindsym Return mode "$mode_gaps"
+ bindsym Escape mode "default"
+}
+mode "$mode_gaps_right" {
+ bindsym k gaps right current plus 5
+ bindsym j gaps right current minus 5
+ bindsym 0 gaps right current set 0
+
+ bindsym Shift+k gaps right all plus 5
+ bindsym Shift+j gaps right all minus 5
+ bindsym Shift+0 gaps right all set 0
+
+ bindsym Return mode "$mode_gaps"
+ bindsym Escape mode "default"
+}
+mode "$mode_gaps_bottom" {
+ bindsym k gaps bottom current plus 5
+ bindsym j gaps bottom current minus 5
+ bindsym 0 gaps bottom current set 0
+
+ bindsym Shift+k gaps bottom all plus 5
+ bindsym Shift+j gaps bottom all minus 5
+ bindsym Shift+0 gaps bottom all set 0
+
+ bindsym Return mode "$mode_gaps"
+ bindsym Escape mode "default"
+}
+mode "$mode_gaps_left" {
+ bindsym k gaps left current plus 5
+ bindsym j gaps left current minus 5
+ bindsym 0 gaps left current set 0
+
+ bindsym Shift+k gaps left all plus 5
+ bindsym Shift+j gaps left all minus 5
+ bindsym Shift+0 gaps left all set 0
+
+ bindsym Return mode "$mode_gaps"
+ bindsym Escape mode "default"
+}
diff --git a/.config/i3/config-lorez b/.config/i3/config-lorez
new file mode 100644
index 0000000..94629ad
--- /dev/null
+++ b/.config/i3/config-lorez
@@ -0,0 +1,221 @@
+# This file has been auto-generated by i3-config-wizard(1).
+# It will not be overwritten, so edit it as you like.
+#
+# Should you change your keyboard layout some time, delete
+# this file and re-run i3-config-wizard(1).
+#
+
+# i3 config file (v4)
+#
+# Please see https://i3wm.org/docs/userguide.html for a complete reference!
+
+set $mod Mod4
+set $alt Mod1
+#############################################################################
+########################## Monitors #########################################
+#############################################################################
+
+exec --no-startup-id xrandr --output HDMI-1 --left-of DP-1 --auto
+set $firstmonitor DP-1
+set $secondmonitor HDMI-1
+
+bindsym $mod+p exec "/usr/local/bin/rofi-dmenus/screenmenu"
+# Font for window titles. Will also be used by the bar unless a different font
+# is used in the bar {} block below.
+font pango:UbuntuMonoNerdFont-Regular 10
+
+# This font is widely installed, provides lots of unicode glyphs, right-to-left
+# text rendering and scalability on retina/hidpi displays (thanks to pango).
+#font pango:DejaVu Sans Mono 8
+
+# Start XDG autostart .desktop files using dex. See also
+# https://wiki.archlinux.org/index.php/XDG_Autostart
+exec --no-startup-id dex --autostart --environment i3
+
+# The combination of xss-lock, nm-applet and pactl is a popular choice, so
+# they are included here as an example. Modify as you see fit.
+
+# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
+# screen before suspend. Use loginctl lock-session to lock your screen.
+exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
+
+# NetworkManager is the most popular way to manage wireless networks on Linux,
+# and nm-applet is a desktop environment-independent system tray GUI for it.
+exec --no-startup-id nm-applet
+
+# Use pactl to adjust volume in PulseAudio.
+set $refresh_i3status killall -SIGUSR1 i3status
+bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
+bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
+bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
+bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
+
+# Use Mouse+$mod to drag floating windows to their wanted position
+floating_modifier $mod
+
+# start a terminal
+bindsym $mod+Return exec kitty
+
+# kill focused window
+bindsym $mod+Shift+q kill
+
+# start dmenu (a program launcher)
+bindsym $mod+d exec "rofi -modi drun,run -show drun"
+bindsym $mod+m exec "rofi -modi emoji -show emoji"
+# A more modern dmenu replacement is rofi:
+# bindcode $mod+40 exec "rofi -modi drun,run -show drun"
+# There also is i3-dmenu-desktop which only displays applications shipping a
+# .desktop file. It is a wrapper around dmenu, so you need that installed.
+# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop
+bindsym $alt+Tab exec "rofi -modi window -show window"
+
+# change focus
+bindsym $mod+h focus left
+bindsym $mod+j focus down
+bindsym $mod+k focus up
+bindsym $mod+l focus right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Left focus left
+bindsym $mod+Down focus down
+bindsym $mod+Up focus up
+bindsym $mod+Right focus right
+
+# move focused window
+bindsym $mod+Shift+h move left
+bindsym $mod+Shift+j move down
+bindsym $mod+Shift+k move up
+bindsym $mod+Shift+l move right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Shift+Left move left
+bindsym $mod+Shift+Down move down
+bindsym $mod+Shift+Up move up
+bindsym $mod+Shift+Right move right
+
+# split in horizontal orientation
+bindsym $mod+c split h
+
+# split in vertical orientation
+bindsym $mod+v split v
+
+# enter fullscreen mode for the focused container
+bindsym $mod+f fullscreen toggle
+
+# change container layout (stacked, tabbed, toggle split)
+bindsym $mod+s layout stacking
+bindsym $mod+w layout tabbed
+bindsym $mod+e layout toggle split
+
+# toggle tiling / floating
+bindsym $mod+Shift+space floating toggle
+
+# change focus between tiling / floating windows
+bindsym $mod+$alt focus mode_toggle
+
+# focus the parent container
+bindsym $mod+a focus parent
+
+# focus the child container
+#bindsym $mod+d focus child
+
+# Define names for default workspaces for which we configure key bindings later on.
+# We use variables to avoid repeating the names in multiple places.
+set $ws1 "1"
+set $ws2 "2"
+set $ws3 "3"
+set $ws4 "4"
+set $ws5 "5"
+set $ws6 "6"
+set $ws7 "7"
+set $ws8 "8"
+set $ws9 "9"
+set $ws10 "10"
+
+# switch to workspace
+bindsym $mod+1 workspace number $ws1
+bindsym $mod+2 workspace number $ws2
+bindsym $mod+3 workspace number $ws3
+bindsym $mod+4 workspace number $ws4
+bindsym $mod+5 workspace number $ws5
+bindsym $mod+6 workspace number $ws6
+bindsym $mod+7 workspace number $ws7
+bindsym $mod+8 workspace number $ws8
+bindsym $mod+9 workspace number $ws9
+bindsym $mod+0 workspace number $ws10
+
+# move focused container to workspace
+bindsym $mod+Shift+1 move container to workspace number $ws1
+bindsym $mod+Shift+2 move container to workspace number $ws2
+bindsym $mod+Shift+3 move container to workspace number $ws3
+bindsym $mod+Shift+4 move container to workspace number $ws4
+bindsym $mod+Shift+5 move container to workspace number $ws5
+bindsym $mod+Shift+6 move container to workspace number $ws6
+bindsym $mod+Shift+7 move container to workspace number $ws7
+bindsym $mod+Shift+8 move container to workspace number $ws8
+bindsym $mod+Shift+9 move container to workspace number $ws9
+bindsym $mod+Shift+0 move container to workspace number $ws10
+
+
+
+# reload the configuration file
+bindsym $mod+Shift+c reload
+# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
+bindsym $mod+Shift+r restart
+# exit i3 (logs you out of your X session)
+bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
+bindsym $mod+$alt+l exec bash /home/lorenz/.config/i3/lockscreen.sh
+
+# resize window (you can also use the mouse for that)
+mode "resize" {
+ # These bindings trigger as soon as you enter the resize mode
+
+ # Pressing left will shrink the window’s width.
+ # Pressing right will grow the window’s width.
+ # Pressing up will shrink the window’s height.
+ # Pressing down will grow the window’s height.
+ bindsym h resize shrink width 10 px or 10 ppt
+ bindsym j resize grow height 10 px or 10 ppt
+ bindsym k resize shrink height 10 px or 10 ppt
+ bindsym l resize grow width 10 px or 10 ppt
+
+ # same bindings, but for the arrow keys
+ bindsym Left resize shrink width 10 px or 10 ppt
+ bindsym Down resize grow height 10 px or 10 ppt
+ bindsym Up resize shrink height 10 px or 10 ppt
+ bindsym Right resize grow width 10 px or 10 ppt
+
+ # back to normal: Enter or Escape or $mod+r
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+ bindsym $mod+r mode "default"
+}
+
+bindsym $mod+r mode "resize"
+
+# Start i3bar to display a workspace bar (plus the system information i3status
+
+bar {
+ status_command i3status --config /home/lorenz/.config/i3/.i3status.conf
+ position top
+ colors {
+ #color class border back. text
+ focused_workspace #460728 #650C3A #ffffff
+ active_workspace #555555 #555555 #ffffff
+ inactive_workspace #000000 #000000 #888888
+ urgent_workspace #2f343a #900000 #ffffff
+ }
+}
+
+#gaps
+
+#colors: border backgr. text indicator
+client.focused #650C3A #460728 #ffffff #2b2b2b
+client.focused_inactive #4D4D4D #2b2b2b #ffffff #2b2b2b
+client.unfocused #4D4D4D #2b2b2b #ffffff #2b2b2b
+client.urgent #900000 #900000 #ffffff #2b2b2b
+
+client.background #ffffff
+
+exec_always nitrogen --restore
+exec_always copyq
diff --git a/.config/i3/lockscreen.sh b/.config/i3/lockscreen.sh
new file mode 100644
index 0000000..bfaf334
--- /dev/null
+++ b/.config/i3/lockscreen.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+BLANK='#00000000'
+CLEAR='#ffffff22'
+DEFAULT='#ff00ffcc'
+TEXT='#ee00eeee'
+BLUE='#5e60ce'
+WRONG='#880000bb'
+VERIFYING='#bb00bbbb'
+
+i3lock \
+--insidever-color=$CLEAR \
+--ringver-color=$VERIFYING \
+\
+--insidewrong-color=$CLEAR \
+--ringwrong-color=$WRONG \
+\
+--inside-color=$BLANK \
+--ring-color=$DEFAULT \
+--line-color=$BLANK \
+--separator-color=$CLEAR \
+\
+--verif-color=$VERIFYING \
+--wrong-color=$WRONG \
+--time-color=$TEXT \
+--layout-color=$TEXT \
+--date-color=$TEXT \
+--keyhl-color=$BLUE \
+--bshl-color=$WRONG \
+\
+--screen 1 \
+--clock \
+--indicator \
+--time-str="%H:%M:%S" \
+--date-str="%a, %d.%m.%Y" \
+-c 272932 \
diff --git a/.config/i3/original-conf b/.config/i3/original-conf
new file mode 100644
index 0000000..26b899e
--- /dev/null
+++ b/.config/i3/original-conf
@@ -0,0 +1,242 @@
+# i3 config file (v4)
+#
+# Please see https://i3wm.org/docs/userguide.html for a complete reference!
+#
+# This config file uses keycodes (bindsym) and was written for the QWERTY
+# layout.
+#
+# To get a config file with the same key positions, but for your current
+# layout, use the i3-config-wizard
+#
+set $HOME /home/$USER
+set $exe exec --no-startup-id
+set $ROFI_THEMES_FOLDER $HOME/.config/rofi
+font pango:Terminus 10px
+
+# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
+# screen before suspend. Use loginctl lock-session to lock your screen.
+#$exe xss-lock --transfer-sleep-lock -- i3lock --nofork
+bindsym Control+Mod1+l $exe LANG=C LC_ALL=C xlock
+
+# Use pactl to adjust volume in PulseAudio.
+set $refresh_i3status killall -SIGUSR1 i3status
+bindsym XF86AudioRaiseVolume $exe pactl set-sink-volume @DEFAULT_SINK@ +1% && $refresh_i3status
+bindsym XF86AudioLowerVolume $exe pactl set-sink-volume @DEFAULT_SINK@ -1% && $refresh_i3status
+bindsym XF86AudioMute $exe pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
+bindsym XF86AudioMicMute $exe pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
+
+set $mod Mod4
+
+# use these keys for focus, movement, and resize directions when reaching for
+# the arrows is not convenient
+set $up k
+set $down j
+set $left h
+set $right l
+
+# use Mouse+Mod1 to drag floating windows to their wanted position
+floating_modifier Mod1
+
+# alt-tab
+bindsym Mod1+Tab $exe rofi -no-config -no-lazy-grab -modi window -show window -theme $ROFI_THEMES_FOLDER/launcher.rasi
+
+bindsym $mod+Return exec xfce4-terminal
+bindsym $mod+b exec firefox
+bindsym $mod+c exec google-chrome
+bindsym $mod+Shift+q kill
+bindsym $mod+Shift+n exec nmcli -g SSID device wifi | rofi -dmenu -i -p "Wifi network" -no-custom -theme $ROFI_THEMES_FOLDER/launcher.rasi
+
+# start rofi dmenu (a program launcher)
+bindsym $mod+d $exe rofi -show drun -theme $ROFI_THEMES_FOLDER/launcher_side.rasi
+
+#polybar restart
+bindsym $mod+Mod1+r $exe $HOME/scripts/polybarlaunch --hack && dunstify "reload polybar"
+
+
+# change focus
+bindsym $mod+$left focus left
+bindsym $mod+$down focus down
+bindsym $mod+$up focus up
+bindsym $mod+$right focus right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Left focus left
+bindsym $mod+Down focus down
+bindsym $mod+Up focus up
+bindsym $mod+Right focus right
+
+# move focused window
+bindsym $mod+Shift+$left move left
+bindsym $mod+Shift+$down move down
+bindsym $mod+Shift+$up move up
+bindsym $mod+Shift+$right move right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Shift+Left move left
+bindsym $mod+Shift+Down move down
+bindsym $mod+Shift+Up move up
+bindsym $mod+Shift+Right move right
+
+#bindsym $mod+Shift+h split h
+bindsym $mod+v split v
+bindsym $mod+f fullscreen toggle
+
+# change container layout (stacked, tabbed, toggle split)
+bindsym $mod+s layout stacking
+bindsym $mod+w layout tabbed
+bindsym $mod+e layout toggle split
+
+# toggle tiling / floating
+bindsym $mod+Shift+space floating toggle
+
+# change focus between tiling / floating windows
+bindsym $mod+space focus mode_toggle
+
+# focus the parent container
+bindsym $mod+p focus parent
+
+bindsym $mod+Shift+minus move scratchpad
+bindsym $mod+minus scratchpad show
+
+
+# Define names for default workspaces for which we configure key bindings later on.
+# We use variables to avoid repeating the names in multiple places.
+set $ws1 "1"
+set $ws2 "2"
+set $ws3 "3"
+set $ws4 "4"
+set $ws5 "5"
+set $ws6 "6"
+set $ws7 "7"
+set $ws8 "8"
+set $ws9 "9"
+set $ws10 "10"
+
+# switch to workspace
+bindsym $mod+1 workspace number $ws1
+bindsym $mod+2 workspace number $ws2
+bindsym $mod+3 workspace number $ws3
+bindsym $mod+4 workspace number $ws4
+bindsym $mod+5 workspace number $ws5
+bindsym $mod+6 workspace number $ws6
+bindsym $mod+7 workspace number $ws7
+bindsym $mod+8 workspace number $ws8
+bindsym $mod+9 workspace number $ws9
+bindsym $mod+0 workspace number $ws10
+
+# move focused container to workspace
+bindsym $mod+Shift+1 move container to workspace number $ws1
+bindsym $mod+Shift+2 move container to workspace number $ws2
+bindsym $mod+Shift+3 move container to workspace number $ws3
+bindsym $mod+Shift+4 move container to workspace number $ws4
+bindsym $mod+Shift+5 move container to workspace number $ws5
+bindsym $mod+Shift+6 move container to workspace number $ws6
+bindsym $mod+Shift+7 move container to workspace number $ws7
+bindsym $mod+Shift+8 move container to workspace number $ws8
+bindsym $mod+Shift+9 move container to workspace number $ws9
+bindsym $mod+Shift+0 move container to workspace number $ws10
+
+# cycle workspaces
+bindsym $mod+Control+Prior workspace next
+bindsym $mod+Control+Next workspace prev
+
+# reload the configuration file
+bindsym $mod+Shift+c reload
+# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
+bindsym $mod+Shift+r restart
+# exit i3 (logs you out of your X session)
+bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
+
+# resize window (you can also use the mouse for that)
+mode "resize" {
+ bindsym $left resize shrink width 10 px or 10 ppt
+ bindsym $down resize grow height 10 px or 10 ppt
+ bindsym $up resize shrink height 10 px or 10 ppt
+ bindsym $right resize grow width 10 px or 10 ppt
+
+ # same bindings, but for the arrow keys
+ bindsym Left resize shrink width 10 px or 10 ppt
+ bindsym Down resize grow height 10 px or 10 ppt
+ bindsym Up resize shrink height 10 px or 10 ppt
+ bindsym Right resize grow width 10 px or 10 ppt
+
+ bindsym Shift+$left resize shrink width 1 px or 1 ppt
+ bindsym Shift+$down resize grow height 1 px or 1 ppt
+ bindsym Shift+$up resize shrink height 1 px or 1 ppt
+ bindsym Shift+$right resize grow width 1 px or 1 ppt
+
+ # back to normal: Enter or Escape or $mod+r
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+ bindsym $mod+r mode "default"
+}
+bindsym $mod+r mode "resize"
+
+# First time config
+#exec i3-config-wizard
+
+# screen brightness
+
+#bindsym XF86MonBrightnessUp exec light -A 3
+#bindsym XF86MonBrightnessDown exec light -U 3
+
+# opensuse leap 15.4 and intel card working:
+bindsym XF86MonBrightnessDown exec brightnessctl s 100-
+bindsym XF86MonBrightnessUp exec brightnessctl s +100
+
+#Assign workspaces, always put virtualbox on Workspace 8
+#assign [class="^VirtualBox$"] 8
+
+##############
+# screen layouts
+##############
+bindsym $mod+Control+d $exe $HOME/scripts/select-screenlayout.sh
+
+##############
+# autostart programs
+##############
+$exe compton -b --config $HOME/.config/picom/picom.conf
+#$exe feh --randomize --bg-fill $HOME/Sync/Wallpapers/*
+$exe $HOME/scripts/setwall.sh
+$exe $HOME/.config/polybar/launch.sh --hack &
+# $exe flatpak run com.github.hluk.copyq &
+$exe nm-applet &
+# password prompt - tested on opensuse
+$exe /usr/lib64/libexec/polkit-kde-authentication-agent-1 &
+$exe dunst &
+$exe xfce4-power-manager &
+
+# Gaps if no i3-GAPS, comment this out!
+gaps inner 7
+gaps outer 7
+
+#https://www.youtube.com/watch?v=HIiJ9GNtwAM
+bindsym $mod+Shift+d gaps inner all set 0; gaps outer all set 0
+bindsym $mod+Shift+g gaps inner all set 7; gaps outer all set 7
+
+
+#i3 specific for window tweaks
+for_window [title="Volume Control"] floating enable; border none
+for_window [title="Remmina Remote Desktop Client"] floating enable; border none
+for_window [title="Microsoft Teams Notification"] floating enable; border none
+for_window [class="^.*"] border normal 1
+for_window [class="^.*Chromium"] border pixel 1
+for_window [title="^.*Google Chrome"] border pixel 1
+for_window [title="^.*Mozilla Firefox"] border pixel 1
+for_window [title="- IntelliJ IDEA"] border pixel 0
+for_window [title="^.*CopyQ"] floating enable; border none
+
+set_from_resource $bg_act i3wm.color1 #333333
+set_from_resource $bg_inact i3wm.color0 #333333
+set_from_resource $fg_txt i3wm.color0 #333333
+set_from_resource $fg_inact_txt i3wm.color1 #333333
+set_from_resource $background i3wm.color9 #333333
+
+# color for window border i3 windows
+# class border backgr. text indicator child_border
+client.focused #333333 $bg_act $fg_txt #2e9ef4 #285577
+client.focused_inactive #333333 $bg_inact $fg_inact_txt #484e50 #5f676a
+client.unfocused #333333 #222222 #888888 #292d2e #222222
+client.urgent #2f343a #900000 #ffffff #900000 #900000
+client.placeholder #000000 #0c0c0c #ffffff #000000 #0c0c0c
+client.background $background
diff --git a/.config/i3/rofi/screenmenu.sh b/.config/i3/rofi/screenmenu.sh
new file mode 100644
index 0000000..55d01fc
--- /dev/null
+++ b/.config/i3/rofi/screenmenu.sh
@@ -0,0 +1,11 @@
+#! /bin/sh
+
+chosen=$(printf "Only Extended\nAll\nOnly Laptop" | rofi -dmenu -i)
+
+case "$chosen" in
+ "Only Extended") xrandr --output eDP-1 --off --output DP-1 --right-of HDMI-1 && i3-msg reload ;;
+ "All") xrandr --auto && xrandr --output eDP-1 --left-of HDMI-1 --output DP-1 --right-of HDMI-1 && i3-msg reload ;;
+ "Only Laptop") xrandr --output eDP-1 -output DP-1 --off --right-of HDMI-1 --off --auto && i3-msg reload ;;
+ *) exit 1;;
+esac
+
diff --git a/.config/i3/rofi/sleepmenu.sh b/.config/i3/rofi/sleepmenu.sh
new file mode 100644
index 0000000..bb0d254
--- /dev/null
+++ b/.config/i3/rofi/sleepmenu.sh
@@ -0,0 +1,13 @@
+#! /bin/sh
+
+LOCK='/home/lorenz/.config/i3/lockscreen.sh'
+chosen=$(printf "suspend\nhibernate\nhybrid-sleep\nsuspend-then-hibernate" | rofi -dmenu -i)
+
+case "$chosen" in
+ "suspend") bash $LOCK && systemctl suspend ;;
+ "hibernate") bash $LOCK && systemctl hibernate ;;
+ "hybrid-sleep") bash $LOCK && systemctl hybrid-sleep ;;
+ "suspend-then-hibernate") bash $LOCK && systemctl suspend-then-hibernate ;;
+ *) exit 1;;
+esac
+
diff --git a/.config/kitty/kitty.conf b/.config/kitty/kitty.conf
new file mode 100644
index 0000000..d4e1541
--- /dev/null
+++ b/.config/kitty/kitty.conf
@@ -0,0 +1,1469 @@
+# vim:fileencoding=utf-8:ft=conf:foldmethod=marker
+
+#: Fonts {{{
+
+#: kitty has very powerful font management. You can configure
+#: individual font faces and even specify special fonts for particular
+#: characters.
+
+font_family monospace
+# bold_font auto
+# italic_font auto
+# bold_italic_font auto
+
+#: You can specify different fonts for the bold/italic/bold-italic
+#: variants. To get a full list of supported fonts use the `kitty
+#: list-fonts` command. By default they are derived automatically, by
+#: the OSes font system. Setting them manually is useful for font
+#: families that have many weight variants like Book, Medium, Thick,
+#: etc. For example::
+
+#: font_family Operator Mono Book
+#: bold_font Operator Mono Medium
+#: italic_font Operator Mono Book Italic
+#: bold_italic_font Operator Mono Medium Italic
+
+# font_size 11.0
+
+#: Font size (in pts)
+
+# force_ltr no
+
+#: kitty does not support BIDI (bidirectional text), however, for RTL
+#: scripts, words are automatically displayed in RTL. That is to say,
+#: in an RTL script, the words "HELLO WORLD" display in kitty as
+#: "WORLD HELLO", and if you try to select a substring of an RTL-
+#: shaped string, you will get the character that would be there had
+#: the the string been LTR. For example, assuming the Hebrew word
+#: ירושלים, selecting the character that on the screen appears to be ם
+#: actually writes into the selection buffer the character י. kitty's
+#: default behavior is useful in conjunction with a filter to reverse
+#: the word order, however, if you wish to manipulate RTL glyphs, it
+#: can be very challenging to work with, so this option is provided to
+#: turn it off. Furthermore, this option can be used with the command
+#: line program GNU FriBidi
+#: to get BIDI
+#: support, because it will force kitty to always treat the text as
+#: LTR, which FriBidi expects for terminals.
+
+# adjust_line_height 0
+# adjust_column_width 0
+
+#: Change the size of each character cell kitty renders. You can use
+#: either numbers, which are interpreted as pixels or percentages
+#: (number followed by %), which are interpreted as percentages of the
+#: unmodified values. You can use negative pixels or percentages less
+#: than 100% to reduce sizes (but this might cause rendering
+#: artifacts).
+
+# adjust_baseline 0
+
+#: Adjust the vertical alignment of text (the height in the cell at
+#: which text is positioned). You can use either numbers, which are
+#: interpreted as pixels or a percentages (number followed by %),
+#: which are interpreted as the percentage of the line height. A
+#: positive value moves the baseline up, and a negative value moves
+#: them down. The underline and strikethrough positions are adjusted
+#: accordingly.
+
+# symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 PowerlineSymbols
+
+#: Map the specified unicode codepoints to a particular font. Useful
+#: if you need special rendering for some symbols, such as for : Powerline. Avoids the need for patched fonts. Each unicode code
+#: point is specified in the form U+. You
+#: can specify multiple code points, separated by commas and ranges
+#: separated by hyphens. symbol_map itself can be specified multiple
+#: times. Syntax is::
+
+#: symbol_map codepoints Font Family Name
+
+# disable_ligatures never
+
+#: Choose how you want to handle multi-character ligatures. The
+#: default is to always render them. You can tell kitty to not render
+#: them when the cursor is over them by using cursor to make editing
+#: easier, or have kitty never render them at all by using always, if
+#: you don't like them. The ligature strategy can be set per-window
+#: either using the kitty remote control facility or by defining
+#: shortcuts for it in kitty.conf, for example::
+
+#: map alt+1 disable_ligatures_in active always
+#: map alt+2 disable_ligatures_in all never
+#: map alt+3 disable_ligatures_in tab cursor
+
+#: Note that this refers to programming ligatures, typically
+#: implemented using the calt OpenType feature. For disabling general
+#: ligatures, use the font_features setting.
+
+# font_features none
+
+#: Choose exactly which OpenType features to enable or disable. This
+#: is useful as some fonts might have features worthwhile in a
+#: terminal. For example, Fira Code Retina includes a discretionary
+#: feature, zero, which in that font changes the appearance of the
+#: zero (0), to make it more easily distinguishable from Ø. Fira Code
+#: Retina also includes other discretionary features known as
+#: Stylistic Sets which have the tags ss01 through ss20.
+
+#: For the exact syntax to use for individual features, see the
+#: Harfbuzz documentation .
+
+#: Note that this code is indexed by PostScript name, and not the font
+#: family. This allows you to define very precise feature settings;
+#: e.g. you can disable a feature in the italic font but not in the
+#: regular font.
+
+#: On Linux, these are read from the FontConfig database first and
+#: then this, setting is applied, so they can be configured in a
+#: single, central place.
+
+#: To get the PostScript name for a font, use kitty + list-fonts
+#: --psnames:
+
+#: .. code-block:: sh
+
+#: $ kitty + list-fonts --psnames | grep Fira
+#: Fira Code
+#: Fira Code Bold (FiraCode-Bold)
+#: Fira Code Light (FiraCode-Light)
+#: Fira Code Medium (FiraCode-Medium)
+#: Fira Code Regular (FiraCode-Regular)
+#: Fira Code Retina (FiraCode-Retina)
+
+#: The part in brackets is the PostScript name.
+
+#: Enable alternate zero and oldstyle numerals::
+
+#: font_features FiraCode-Retina +zero +onum
+
+#: Enable only alternate zero::
+
+#: font_features FiraCode-Retina +zero
+
+#: Disable the normal ligatures, but keep the calt feature which (in
+#: this font) breaks up monotony::
+
+#: font_features TT2020StyleB-Regular -liga +calt
+
+#: In conjunction with force_ltr, you may want to disable Arabic
+#: shaping entirely, and only look at their isolated forms if they
+#: show up in a document. You can do this with e.g.::
+
+#: font_features UnifontMedium +isol -medi -fina -init
+
+# box_drawing_scale 0.001, 1, 1.5, 2
+
+#: Change the sizes of the lines used for the box drawing unicode
+#: characters These values are in pts. They will be scaled by the
+#: monitor DPI to arrive at a pixel value. There must be four values
+#: corresponding to thin, normal, thick, and very thick lines.
+
+#: }}}
+
+#: Cursor customization {{{
+
+# cursor #cccccc
+
+#: Default cursor color
+
+# cursor_text_color #111111
+
+#: Choose the color of text under the cursor. If you want it rendered
+#: with the background color of the cell underneath instead, use the
+#: special keyword: background
+
+cursor_shape beam
+
+#: The cursor shape can be one of (block, beam, underline). Note that
+#: when reloading the config this will be changed only if the cursor
+#: shape has not been set by the program running in the terminal.
+
+# cursor_beam_thickness 1.5
+
+#: Defines the thickness of the beam cursor (in pts)
+
+# cursor_underline_thickness 2.0
+
+#: Defines the thickness of the underline cursor (in pts)
+
+# cursor_blink_interval -1
+
+#: The interval (in seconds) at which to blink the cursor. Set to zero
+#: to disable blinking. Negative values mean use system default. Note
+#: that numbers smaller than repaint_delay will be limited to
+#: repaint_delay.
+
+# cursor_stop_blinking_after 15.0
+
+#: Stop blinking cursor after the specified number of seconds of
+#: keyboard inactivity. Set to zero to never stop blinking.
+
+#: }}}
+
+#: Scrollback {{{
+
+# scrollback_lines 2000
+
+#: Number of lines of history to keep in memory for scrolling back.
+#: Memory is allocated on demand. Negative numbers are (effectively)
+#: infinite scrollback. Note that using very large scrollback is not
+#: recommended as it can slow down performance of the terminal and
+#: also use large amounts of RAM. Instead, consider using
+#: scrollback_pager_history_size. Note that on config reload if this
+#: is changed it will only affect newly created windows, not existing
+#: ones.
+
+# scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER
+
+#: Program with which to view scrollback in a new window. The
+#: scrollback buffer is passed as STDIN to this program. If you change
+#: it, make sure the program you use can handle ANSI escape sequences
+#: for colors and text formatting. INPUT_LINE_NUMBER in the command
+#: line above will be replaced by an integer representing which line
+#: should be at the top of the screen. Similarly CURSOR_LINE and
+#: CURSOR_COLUMN will be replaced by the current cursor position.
+
+# scrollback_pager_history_size 0
+
+#: Separate scrollback history size, used only for browsing the
+#: scrollback buffer (in MB). This separate buffer is not available
+#: for interactive scrolling but will be piped to the pager program
+#: when viewing scrollback buffer in a separate window. The current
+#: implementation stores the data in UTF-8, so approximatively 10000
+#: lines per megabyte at 100 chars per line, for pure ASCII text,
+#: unformatted text. A value of zero or less disables this feature.
+#: The maximum allowed size is 4GB. Note that on config reload if this
+#: is changed it will only affect newly created windows, not existing
+#: ones.
+
+# scrollback_fill_enlarged_window no
+
+#: Fill new space with lines from the scrollback buffer after
+#: enlarging a window.
+
+# wheel_scroll_multiplier 5.0
+
+#: Modify the amount scrolled by the mouse wheel. Note this is only
+#: used for low precision scrolling devices, not for high precision
+#: scrolling on platforms such as macOS and Wayland. Use negative
+#: numbers to change scroll direction.
+
+# touch_scroll_multiplier 1.0
+
+#: Modify the amount scrolled by a touchpad. Note this is only used
+#: for high precision scrolling devices on platforms such as macOS and
+#: Wayland. Use negative numbers to change scroll direction.
+
+#: }}}
+
+#: Mouse {{{
+
+# mouse_hide_wait 3.0
+
+#: Hide mouse cursor after the specified number of seconds of the
+#: mouse not being used. Set to zero to disable mouse cursor hiding.
+#: Set to a negative value to hide the mouse cursor immediately when
+#: typing text. Disabled by default on macOS as getting it to work
+#: robustly with the ever-changing sea of bugs that is Cocoa is too
+#: much effort.
+
+# url_color #0087bd
+# url_style curly
+
+#: The color and style for highlighting URLs on mouse-over. url_style
+#: can be one of: none, single, double, curly
+
+# open_url_with default
+
+#: The program with which to open URLs that are clicked on. The
+#: special value default means to use the operating system's default
+#: URL handler.
+
+# url_prefixes http https file ftp gemini irc gopher mailto news git
+
+#: The set of URL prefixes to look for when detecting a URL under the
+#: mouse cursor.
+
+# detect_urls yes
+
+#: Detect URLs under the mouse. Detected URLs are highlighted with an
+#: underline and the mouse cursor becomes a hand over them. Even if
+#: this option is disabled, URLs are still clickable.
+
+# url_excluded_characters
+
+#: Additional characters to be disallowed from URLs, when detecting
+#: URLs under the mouse cursor. By default, all characters legal in
+#: URLs are allowed.
+
+# copy_on_select no
+
+#: Copy to clipboard or a private buffer on select. With this set to
+#: clipboard, simply selecting text with the mouse will cause the text
+#: to be copied to clipboard. Useful on platforms such as macOS that
+#: do not have the concept of primary selections. You can instead
+#: specify a name such as a1 to copy to a private kitty buffer
+#: instead. Map a shortcut with the paste_from_buffer action to paste
+#: from this private buffer. For example::
+
+#: map cmd+shift+v paste_from_buffer a1
+
+#: Note that copying to the clipboard is a security risk, as all
+#: programs, including websites open in your browser can read the
+#: contents of the system clipboard.
+
+# strip_trailing_spaces never
+
+#: Remove spaces at the end of lines when copying to clipboard. A
+#: value of smart will do it when using normal selections, but not
+#: rectangle selections. always will always do it.
+
+# select_by_word_characters @-./_~?&=%+#
+
+#: Characters considered part of a word when double clicking. In
+#: addition to these characters any character that is marked as an
+#: alphanumeric character in the unicode database will be matched.
+
+# click_interval -1.0
+
+#: The interval between successive clicks to detect double/triple
+#: clicks (in seconds). Negative numbers will use the system default
+#: instead, if available, or fallback to 0.5.
+
+# focus_follows_mouse no
+
+#: Set the active window to the window under the mouse when moving the
+#: mouse around
+
+# pointer_shape_when_grabbed arrow
+
+#: The shape of the mouse pointer when the program running in the
+#: terminal grabs the mouse. Valid values are: arrow, beam and hand
+
+# default_pointer_shape beam
+
+#: The default shape of the mouse pointer. Valid values are: arrow,
+#: beam and hand
+
+# pointer_shape_when_dragging beam
+
+#: The default shape of the mouse pointer when dragging across text.
+#: Valid values are: arrow, beam and hand
+
+#: Mouse actions {{{
+
+#: Mouse buttons can be remapped to perform arbitrary actions. The
+#: syntax for doing so is:
+
+#: .. code-block:: none
+
+#: mouse_map button-name event-type modes action
+
+#: Where ``button-name`` is one of ``left``, ``middle``, ``right`` or
+#: ``b1 ... b8`` with added keyboard modifiers, for example:
+#: ``ctrl+shift+left`` refers to holding the ctrl+shift keys while
+#: clicking with the left mouse button. The number ``b1 ... b8`` can
+#: be used to refer to upto eight buttons on a mouse.
+
+#: ``event-type`` is one ``press``, ``release``, ``doublepress``,
+#: ``triplepress``, ``click`` and ``doubleclick``. ``modes``
+#: indicates whether the action is performed when the mouse is grabbed
+#: by the program running in the terminal, or not. It can have one or
+#: more or the values, ``grabbed,ungrabbed``. ``grabbed`` refers to
+#: when the program running in the terminal has requested mouse
+#: events. Note that the click and double click events have a delay of
+#: click_interval to disambiguate from double and triple presses.
+
+#: You can run kitty with the kitty --debug-input command line option
+#: to see mouse events. See the builtin actions below to get a sense
+#: of what is possible.
+
+#: If you want to unmap an action map it to ``no-op``. For example, to
+#: disable opening of URLs with a plain click::
+
+#: mouse_map left click ungrabbed no-op
+
+#: .. note::
+#: Once a selection is started, releasing the button that started it will
+#: automatically end it and no release event will be dispatched.
+
+# mouse_map left click ungrabbed mouse_click_url_or_select
+# mouse_map shift+left click grabbed,ungrabbed mouse_click_url_or_select
+# mouse_map ctrl+shift+left release grabbed,ungrabbed mouse_click_url
+
+#: Variant with ctrl+shift is present because the simple click based
+#: version has an unavoidable delay of click_interval, to disambiguate
+#: clicks from double clicks.
+
+# mouse_map ctrl+shift+left press grabbed discard_event
+
+#: Prevent this press event from being sent to the program that has
+#: grabbed the mouse, as the corresponding release event is used to
+#: open a URL.
+
+# mouse_map middle release ungrabbed paste_from_selection
+# mouse_map left press ungrabbed mouse_selection normal
+# mouse_map ctrl+alt+left press ungrabbed mouse_selection rectangle
+# mouse_map left doublepress ungrabbed mouse_selection word
+# mouse_map left triplepress ungrabbed mouse_selection line
+
+#: Select the entire line
+
+# mouse_map ctrl+alt+left triplepress ungrabbed mouse_selection line_from_point
+
+#: Select from the clicked point to the end of the line
+
+# mouse_map right press ungrabbed mouse_selection extend
+# mouse_map shift+middle release ungrabbed,grabbed paste_selection
+# mouse_map shift+left press ungrabbed,grabbed mouse_selection normal
+# mouse_map shift+ctrl+alt+left press ungrabbed,grabbed mouse_selection rectangle
+# mouse_map shift+left doublepress ungrabbed,grabbed mouse_selection word
+# mouse_map shift+left triplepress ungrabbed,grabbed mouse_selection line
+
+#: Select the entire line
+
+# mouse_map shift+ctrl+alt+left triplepress ungrabbed,grabbed mouse_selection line_from_point
+
+#: Select from the clicked point to the end of the line
+
+# mouse_map shift+right press ungrabbed,grabbed mouse_selection extend
+#: }}}
+
+#: }}}
+
+#: Performance tuning {{{
+
+# repaint_delay 10
+
+#: Delay (in milliseconds) between screen updates. Decreasing it,
+#: increases frames-per-second (FPS) at the cost of more CPU usage.
+#: The default value yields ~100 FPS which is more than sufficient for
+#: most uses. Note that to actually achieve 100 FPS you have to either
+#: set sync_to_monitor to no or use a monitor with a high refresh
+#: rate. Also, to minimize latency when there is pending input to be
+#: processed, repaint_delay is ignored.
+
+# input_delay 3
+
+#: Delay (in milliseconds) before input from the program running in
+#: the terminal is processed. Note that decreasing it will increase
+#: responsiveness, but also increase CPU usage and might cause flicker
+#: in full screen programs that redraw the entire screen on each loop,
+#: because kitty is so fast that partial screen updates will be drawn.
+
+# sync_to_monitor yes
+
+#: Sync screen updates to the refresh rate of the monitor. This
+#: prevents tearing (https://en.wikipedia.org/wiki/Screen_tearing)
+#: when scrolling. However, it limits the rendering speed to the
+#: refresh rate of your monitor. With a very high speed mouse/high
+#: keyboard repeat rate, you may notice some slight input latency. If
+#: so, set this to no.
+
+#: }}}
+
+#: Terminal bell {{{
+
+# enable_audio_bell yes
+
+#: Enable/disable the audio bell. Useful in environments that require
+#: silence.
+
+# visual_bell_duration 0.0
+
+#: Visual bell duration. Flash the screen when a bell occurs for the
+#: specified number of seconds. Set to zero to disable.
+
+# window_alert_on_bell yes
+
+#: Request window attention on bell. Makes the dock icon bounce on
+#: macOS or the taskbar flash on linux.
+
+# bell_on_tab yes
+
+#: Show a bell symbol on the tab if a bell occurs in one of the
+#: windows in the tab and the window is not the currently focused
+#: window
+
+# command_on_bell none
+
+#: Program to run when a bell occurs.
+
+#: }}}
+
+#: Window layout {{{
+
+# remember_window_size yes
+# initial_window_width 640
+# initial_window_height 400
+
+#: If enabled, the window size will be remembered so that new
+#: instances of kitty will have the same size as the previous
+#: instance. If disabled, the window will initially have size
+#: configured by initial_window_width/height, in pixels. You can use a
+#: suffix of "c" on the width/height values to have them interpreted
+#: as number of cells instead of pixels.
+
+# enabled_layouts *
+
+#: The enabled window layouts. A comma separated list of layout names.
+#: The special value all means all layouts. The first listed layout
+#: will be used as the startup layout. Default configuration is all
+#: layouts in alphabetical order. For a list of available layouts, see
+#: the https://sw.kovidgoyal.net/kitty/index.html#layouts.
+
+# window_resize_step_cells 2
+# window_resize_step_lines 2
+
+#: The step size (in units of cell width/cell height) to use when
+#: resizing windows. The cells value is used for horizontal resizing
+#: and the lines value for vertical resizing.
+
+# window_border_width 0.5pt
+
+#: The width of window borders. Can be either in pixels (px) or pts
+#: (pt). Values in pts will be rounded to the nearest number of pixels
+#: based on screen resolution. If not specified the unit is assumed to
+#: be pts. Note that borders are displayed only when more than one
+#: window is visible. They are meant to separate multiple windows.
+
+# draw_minimal_borders yes
+
+#: Draw only the minimum borders needed. This means that only the
+#: minimum needed borders for inactive windows are drawn. That is only
+#: the borders that separate the inactive window from a neighbor. Note
+#: that setting a non-zero window margin overrides this and causes all
+#: borders to be drawn.
+
+# window_margin_width 0
+
+#: The window margin (in pts) (blank area outside the border). A
+#: single value sets all four sides. Two values set the vertical and
+#: horizontal sides. Three values set top, horizontal and bottom. Four
+#: values set top, right, bottom and left.
+
+# single_window_margin_width -1
+
+#: The window margin (in pts) to use when only a single window is
+#: visible. Negative values will cause the value of
+#: window_margin_width to be used instead. A single value sets all
+#: four sides. Two values set the vertical and horizontal sides. Three
+#: values set top, horizontal and bottom. Four values set top, right,
+#: bottom and left.
+
+# window_padding_width 0
+
+#: The window padding (in pts) (blank area between the text and the
+#: window border). A single value sets all four sides. Two values set
+#: the vertical and horizontal sides. Three values set top, horizontal
+#: and bottom. Four values set top, right, bottom and left.
+
+# placement_strategy center
+
+#: When the window size is not an exact multiple of the cell size, the
+#: cell area of the terminal window will have some extra padding on
+#: the sides. You can control how that padding is distributed with
+#: this option. Using a value of center means the cell area will be
+#: placed centrally. A value of top-left means the padding will be on
+#: only the bottom and right edges.
+
+# active_border_color #00ff00
+
+#: The color for the border of the active window. Set this to none to
+#: not draw borders around the active window.
+
+# inactive_border_color #cccccc
+
+#: The color for the border of inactive windows
+
+# bell_border_color #ff5a00
+
+#: The color for the border of inactive windows in which a bell has
+#: occurred
+
+# inactive_text_alpha 1.0
+
+#: Fade the text in inactive windows by the specified amount (a number
+#: between zero and one, with zero being fully faded).
+
+# hide_window_decorations no
+
+#: Hide the window decorations (title-bar and window borders) with
+#: yes. On macOS, titlebar-only can be used to only hide the titlebar.
+#: Whether this works and exactly what effect it has depends on the
+#: window manager/operating system. Note that the effects of changing
+#: this setting when reloading config are undefined.
+
+# resize_debounce_time 0.1
+
+#: The time (in seconds) to wait before redrawing the screen when a
+#: resize event is received. On platforms such as macOS, where the
+#: operating system sends events corresponding to the start and end of
+#: a resize, this number is ignored.
+
+# resize_draw_strategy static
+
+#: Choose how kitty draws a window while a resize is in progress. A
+#: value of static means draw the current window contents, mostly
+#: unchanged. A value of scale means draw the current window contents
+#: scaled. A value of blank means draw a blank window. A value of size
+#: means show the window size in cells.
+
+# resize_in_steps no
+
+#: Resize the OS window in steps as large as the cells, instead of
+#: with the usual pixel accuracy. Combined with an
+#: initial_window_width and initial_window_height in number of cells,
+#: this option can be used to keep the margins as small as possible
+#: when resizing the OS window. Note that this does not currently work
+#: on Wayland.
+
+# confirm_os_window_close 0
+
+#: Ask for confirmation when closing an OS window or a tab that has at
+#: least this number of kitty windows in it. A value of zero disables
+#: confirmation. This confirmation also applies to requests to quit
+#: the entire application (all OS windows, via the quit action).
+
+#: }}}
+
+#: Tab bar {{{
+
+# tab_bar_edge bottom
+
+#: Which edge to show the tab bar on, top or bottom
+
+# tab_bar_margin_width 0.0
+
+#: The margin to the left and right of the tab bar (in pts)
+
+# tab_bar_margin_height 0.0 0.0
+
+#: The margin above and below the tab bar (in pts). The first number
+#: is the margin between the edge of the OS Window and the tab bar and
+#: the second number is the margin between the tab bar and the
+#: contents of the current tab.
+
+# tab_bar_style fade
+
+#: The tab bar style, can be one of: fade, separator, powerline, or
+#: hidden. In the fade style, each tab's edges fade into the
+#: background color, in the separator style, tabs are separated by a
+#: configurable separator, and the powerline shows the tabs as a
+#: continuous line. If you use the hidden style, you might want to
+#: create a mapping for the select_tab action which presents you with
+#: a list of tabs and allows for easy switching to a tab.
+
+# tab_bar_min_tabs 2
+
+#: The minimum number of tabs that must exist before the tab bar is
+#: shown
+
+# tab_switch_strategy previous
+
+#: The algorithm to use when switching to a tab when the current tab
+#: is closed. The default of previous will switch to the last used
+#: tab. A value of left will switch to the tab to the left of the
+#: closed tab. A value of right will switch to the tab to the right of
+#: the closed tab. A value of last will switch to the right-most tab.
+
+# tab_fade 0.25 0.5 0.75 1
+
+#: Control how each tab fades into the background when using fade for
+#: the tab_bar_style. Each number is an alpha (between zero and one)
+#: that controls how much the corresponding cell fades into the
+#: background, with zero being no fade and one being full fade. You
+#: can change the number of cells used by adding/removing entries to
+#: this list.
+
+# tab_separator " ┇"
+
+#: The separator between tabs in the tab bar when using separator as
+#: the tab_bar_style.
+
+# tab_powerline_style angled
+
+#: The powerline separator style between tabs in the tab bar when
+#: using powerline as the tab_bar_style, can be one of: angled,
+#: slanted, or round.
+
+# tab_activity_symbol none
+
+#: Some text or a unicode symbol to show on the tab if a window in the
+#: tab that does not have focus has some activity.
+
+# tab_title_template "{title}"
+
+#: A template to render the tab title. The default just renders the
+#: title. If you wish to include the tab-index as well, use something
+#: like: {index}: {title}. Useful if you have shortcuts mapped for
+#: goto_tab N. If you prefer to see the index as a superscript, use
+#: {sup.index}. In addition you can use {layout_name} for the current
+#: layout name and {num_windows} for the number of windows in the tab.
+#: Note that formatting is done by Python's string formatting
+#: machinery, so you can use, for instance, {layout_name[:2].upper()}
+#: to show only the first two letters of the layout name, upper-cased.
+#: If you want to style the text, you can use styling directives, for
+#: example: {fmt.fg.red}red{fmt.fg.default}normal{fmt.bg._00FF00}green
+#: bg{fmt.bg.normal}. Similarly, for bold and italic:
+#: {fmt.bold}bold{fmt.nobold}normal{fmt.italic}italic{fmt.noitalic}.
+
+# active_tab_title_template none
+
+#: Template to use for active tabs, if not specified falls back to
+#: tab_title_template.
+
+# active_tab_foreground #000
+# active_tab_background #eee
+# active_tab_font_style bold-italic
+# inactive_tab_foreground #444
+# inactive_tab_background #999
+# inactive_tab_font_style normal
+
+#: Tab bar colors and styles
+
+# tab_bar_background none
+
+#: Background color for the tab bar. Defaults to using the terminal
+#: background color.
+
+#: }}}
+
+#: Color scheme {{{
+
+ foreground #dddddd
+ background #242423
+
+#: The foreground and background colors
+
+ background_opacity 0.8
+
+#: The opacity of the background. A number between 0 and 1, where 1 is
+#: opaque and 0 is fully transparent. This will only work if
+#: supported by the OS (for instance, when using a compositor under
+#: X11). Note that it only sets the background color's opacity in
+#: cells that have the same background color as the default terminal
+#: background. This is so that things like the status bar in vim,
+#: powerline prompts, etc. still look good. But it means that if you
+#: use a color theme with a background color in your editor, it will
+#: not be rendered as transparent. Instead you should change the
+#: default background color in your kitty config and not use a
+#: background color in the editor color scheme. Or use the escape
+#: codes to set the terminals default colors in a shell script to
+#: launch your editor. Be aware that using a value less than 1.0 is a
+#: (possibly significant) performance hit. If you want to dynamically
+#: change transparency of windows set dynamic_background_opacity to
+#: yes (this is off by default as it has a performance cost). Changing
+#: this setting when reloading the config will only work if
+#: dynamic_background_opacity was enabled in the original config.
+
+# background_image none
+
+#: Path to a background image. Must be in PNG format.
+
+# background_image_layout tiled
+
+#: Whether to tile or scale the background image.
+
+# background_image_linear no
+
+#: When background image is scaled, whether linear interpolation
+#: should be used.
+
+# dynamic_background_opacity no
+
+#: Allow changing of the background_opacity dynamically, using either
+#: keyboard shortcuts (increase_background_opacity and
+#: decrease_background_opacity) or the remote control facility.
+#: Changing this setting by reloading the config is not supported.
+
+# background_tint 0.0
+
+#: How much to tint the background image by the background color. The
+#: tint is applied only under the text area, not margin/borders. Makes
+#: it easier to read the text. Tinting is done using the current
+#: background color for each window. This setting applies only if
+#: background_opacity is set and transparent windows are supported or
+#: background_image is set.
+
+# dim_opacity 0.75
+
+#: How much to dim text that has the DIM/FAINT attribute set. One
+#: means no dimming and zero means fully dimmed (i.e. invisible).
+
+# selection_foreground #000000
+
+#: The foreground for text selected with the mouse. A value of none
+#: means to leave the color unchanged.
+
+# selection_background #fffacd
+
+#: The background for text selected with the mouse.
+
+#: The color table {{{
+
+#: The 256 terminal colors. There are 8 basic colors, each color has a
+#: dull and bright version, for the first 16 colors. You can set the
+#: remaining 240 colors as color16 to color255.
+
+# color0 #000000
+# color8 #767676
+
+#: black
+
+# color1 #cc0403
+# color9 #f2201f
+
+#: red
+
+# color2 #19cb00
+# color10 #23fd00
+
+#: green
+
+# color3 #cecb00
+# color11 #fffd00
+
+#: yellow
+
+# color4 #0d73cc
+# color12 #1a8fff
+
+#: blue
+
+# color5 #cb1ed1
+# color13 #fd28ff
+
+#: magenta
+
+# color6 #0dcdcd
+# color14 #14ffff
+
+#: cyan
+
+# color7 #dddddd
+# color15 #ffffff
+
+#: white
+
+# mark1_foreground black
+
+#: Color for marks of type 1
+
+# mark1_background #98d3cb
+
+#: Color for marks of type 1 (light steel blue)
+
+# mark2_foreground black
+
+#: Color for marks of type 2
+
+# mark2_background #f2dcd3
+
+#: Color for marks of type 1 (beige)
+
+# mark3_foreground black
+
+#: Color for marks of type 3
+
+# mark3_background #f274bc
+
+#: Color for marks of type 3 (violet)
+
+#: }}}
+
+#: }}}
+
+#: Advanced {{{
+
+# shell .
+
+#: The shell program to execute. The default value of . means to use
+#: whatever shell is set as the default shell for the current user.
+#: Note that on macOS if you change this, you might need to add
+#: --login to ensure that the shell starts in interactive mode and
+#: reads its startup rc files.
+
+# editor .
+
+#: The console editor to use when editing the kitty config file or
+#: similar tasks. A value of . means to use the environment variables
+#: VISUAL and EDITOR in that order. Note that this environment
+#: variable has to be set not just in your shell startup scripts but
+#: system-wide, otherwise kitty will not see it.
+
+# close_on_child_death no
+
+#: Close the window when the child process (shell) exits. If no (the
+#: default), the terminal will remain open when the child exits as
+#: long as there are still processes outputting to the terminal (for
+#: example disowned or backgrounded processes). If yes, the window
+#: will close as soon as the child process exits. Note that setting it
+#: to yes means that any background processes still using the terminal
+#: can fail silently because their stdout/stderr/stdin no longer work.
+
+# allow_remote_control no
+
+#: Allow other programs to control kitty. If you turn this on other
+#: programs can control all aspects of kitty, including sending text
+#: to kitty windows, opening new windows, closing windows, reading the
+#: content of windows, etc. Note that this even works over ssh
+#: connections. You can chose to either allow any program running
+#: within kitty to control it, with yes or only programs that connect
+#: to the socket specified with the kitty --listen-on command line
+#: option, if you use the value socket-only. The latter is useful if
+#: you want to prevent programs running on a remote computer over ssh
+#: from controlling kitty. Changing this option by reloading the
+#: config will only affect newly created windows.
+
+# listen_on none
+
+#: Tell kitty to listen to the specified unix/tcp socket for remote
+#: control connections. Note that this will apply to all kitty
+#: instances. It can be overridden by the kitty --listen-on command
+#: line flag. This option accepts only UNIX sockets, such as
+#: unix:${TEMP}/mykitty or (on Linux) unix:@mykitty. Environment
+#: variables are expanded. If {kitty_pid} is present then it is
+#: replaced by the PID of the kitty process, otherwise the PID of the
+#: kitty process is appended to the value, with a hyphen. This option
+#: is ignored unless you also set allow_remote_control to enable
+#: remote control. See the help for kitty --listen-on for more
+#: details. Changing this option by reloading the config is not
+#: supported.
+
+# env
+
+#: Specify environment variables to set in all child processes. Note
+#: that environment variables are expanded recursively, so if you
+#: use::
+
+#: env MYVAR1=a
+#: env MYVAR2=${MYVAR1}/${HOME}/b
+
+#: The value of MYVAR2 will be a//b.
+
+# update_check_interval 24
+
+#: Periodically check if an update to kitty is available. If an update
+#: is found a system notification is displayed informing you of the
+#: available update. The default is to check every 24 hrs, set to zero
+#: to disable. Changing this option by reloading the config is not
+#: supported.
+
+# startup_session none
+
+#: Path to a session file to use for all kitty instances. Can be
+#: overridden by using the kitty --session command line option for
+#: individual instances. See
+#: https://sw.kovidgoyal.net/kitty/index.html#sessions in the kitty
+#: documentation for details. Note that relative paths are interpreted
+#: with respect to the kitty config directory. Environment variables
+#: in the path are expanded. Changing this option by reloading the
+#: config is not supported.
+
+# clipboard_control write-clipboard write-primary
+
+#: Allow programs running in kitty to read and write from the
+#: clipboard. You can control exactly which actions are allowed. The
+#: set of possible actions is: write-clipboard read-clipboard write-
+#: primary read-primary. You can additionally specify no-append to
+#: disable kitty's protocol extension for clipboard concatenation. The
+#: default is to allow writing to the clipboard and primary selection
+#: with concatenation enabled. Note that enabling the read
+#: functionality is a security risk as it means that any program, even
+#: one running on a remote server via SSH can read your clipboard.
+
+# allow_hyperlinks yes
+
+#: Process hyperlink (OSC 8) escape sequences. If disabled OSC 8
+#: escape sequences are ignored. Otherwise they become clickable
+#: links, that you can click by holding down ctrl+shift and clicking
+#: with the mouse. The special value of ``ask`` means that kitty will
+#: ask before opening the link.
+
+# term xterm-kitty
+
+#: The value of the TERM environment variable to set. Changing this
+#: can break many terminal programs, only change it if you know what
+#: you are doing, not because you read some advice on Stack Overflow
+#: to change it. The TERM variable is used by various programs to get
+#: information about the capabilities and behavior of the terminal. If
+#: you change it, depending on what programs you run, and how
+#: different the terminal you are changing it to is, various things
+#: from key-presses, to colors, to various advanced features may not
+#: work. Changing this option by reloading the config will only affect
+#: newly created windows.
+
+#: }}}
+
+#: OS specific tweaks {{{
+
+# wayland_titlebar_color system
+
+#: Change the color of the kitty window's titlebar on Wayland systems
+#: with client side window decorations such as GNOME. A value of
+#: system means to use the default system color, a value of background
+#: means to use the background color of the currently active window
+#: and finally you can use an arbitrary color, such as #12af59 or red.
+
+# macos_titlebar_color system
+
+#: Change the color of the kitty window's titlebar on macOS. A value
+#: of system means to use the default system color, a value of
+#: background means to use the background color of the currently
+#: active window and finally you can use an arbitrary color, such as
+#: #12af59 or red. WARNING: This option works by using a hack, as
+#: there is no proper Cocoa API for it. It sets the background color
+#: of the entire window and makes the titlebar transparent. As such it
+#: is incompatible with background_opacity. If you want to use both,
+#: you are probably better off just hiding the titlebar with
+#: hide_window_decorations.
+
+# macos_option_as_alt no
+
+#: Use the option key as an alt key. With this set to no, kitty will
+#: use the macOS native Option+Key = unicode character behavior. This
+#: will break any Alt+key keyboard shortcuts in your terminal
+#: programs, but you can use the macOS unicode input technique. You
+#: can use the values: left, right, or both to use only the left,
+#: right or both Option keys as Alt, instead. Changing this setting by
+#: reloading the config is not supported.
+
+# macos_hide_from_tasks no
+
+#: Hide the kitty window from running tasks (⌘+Tab) on macOS. Changing
+#: this setting by reloading the config is not supported.
+
+# macos_quit_when_last_window_closed no
+
+#: Have kitty quit when all the top-level windows are closed. By
+#: default, kitty will stay running, even with no open windows, as is
+#: the expected behavior on macOS.
+
+# macos_window_resizable yes
+
+#: Disable this if you want kitty top-level (OS) windows to not be
+#: resizable on macOS. Changing this setting by reloading the config
+#: will only affect newly created windows.
+
+# macos_thicken_font 0
+
+#: Draw an extra border around the font with the given width, to
+#: increase legibility at small font sizes. For example, a value of
+#: 0.75 will result in rendering that looks similar to sub-pixel
+#: antialiasing at common font sizes.
+
+# macos_traditional_fullscreen no
+
+#: Use the traditional full-screen transition, that is faster, but
+#: less pretty.
+
+# macos_show_window_title_in all
+
+#: Show or hide the window title in the macOS window or menu-bar. A
+#: value of window will show the title of the currently active window
+#: at the top of the macOS window. A value of menubar will show the
+#: title of the currently active window in the macOS menu-bar, making
+#: use of otherwise wasted space. all will show the title everywhere
+#: and none hides the title in the window and the menu-bar.
+
+# macos_custom_beam_cursor no
+
+#: Enable/disable custom mouse cursor for macOS that is easier to see
+#: on both light and dark backgrounds. WARNING: this might make your
+#: mouse cursor invisible on dual GPU machines. Changing this setting
+#: by reloading the config is not supported.
+
+# linux_display_server auto
+
+#: Choose between Wayland and X11 backends. By default, an appropriate
+#: backend based on the system state is chosen automatically. Set it
+#: to x11 or wayland to force the choice. Changing this setting by
+#: reloading the config is not supported.
+
+#: }}}
+
+#: Keyboard shortcuts {{{
+
+#: Keys are identified simply by their lowercase unicode characters.
+#: For example: ``a`` for the A key, ``[`` for the left square bracket
+#: key, etc. For functional keys, such as ``Enter or Escape`` the
+#: names are present at https://sw.kovidgoyal.net/kitty/keyboard-
+#: protocol.html#functional-key-definitions. For a list of modifier
+#: names, see: GLFW mods
+#:
+
+#: On Linux you can also use XKB key names to bind keys that are not
+#: supported by GLFW. See XKB keys
+#: for a list of key names. The name to use is the part
+#: after the XKB_KEY_ prefix. Note that you can only use an XKB key
+#: name for keys that are not known as GLFW keys.
+
+#: Finally, you can use raw system key codes to map keys, again only
+#: for keys that are not known as GLFW keys. To see the system key
+#: code for a key, start kitty with the kitty --debug-input option.
+#: Then kitty will output some debug text for every key event. In that
+#: text look for ``native_code`` the value of that becomes the key
+#: name in the shortcut. For example:
+
+#: .. code-block:: none
+
+#: on_key_input: glfw key: 65 native_code: 0x61 action: PRESS mods: 0x0 text: 'a'
+
+#: Here, the key name for the A key is 0x61 and you can use it with::
+
+#: map ctrl+0x61 something
+
+#: to map ctrl+a to something.
+
+#: You can use the special action no_op to unmap a keyboard shortcut
+#: that is assigned in the default configuration::
+
+#: map kitty_mod+space no_op
+
+#: You can combine multiple actions to be triggered by a single
+#: shortcut, using the syntax below::
+
+#: map key combine action1 action2 action3 ...
+
+#: For example::
+
+#: map kitty_mod+e combine : new_window : next_layout
+
+#: this will create a new window and switch to the next available
+#: layout
+
+#: You can use multi-key shortcuts using the syntax shown below::
+
+#: map key1>key2>key3 action
+
+#: For example::
+
+#: map ctrl+f>2 set_font_size 20
+
+# kitty_mod ctrl+shift
+
+#: The value of kitty_mod is used as the modifier for all default
+#: shortcuts, you can change it in your kitty.conf to change the
+#: modifiers for all the default shortcuts.
+
+# clear_all_shortcuts no
+
+#: You can have kitty remove all shortcut definition seen up to this
+#: point. Useful, for instance, to remove the default shortcuts.
+
+# kitten_alias hints hints --hints-offset=0
+
+#: You can create aliases for kitten names, this allows overriding the
+#: defaults for kitten options and can also be used to shorten
+#: repeated mappings of the same kitten with a specific group of
+#: options. For example, the above alias changes the default value of
+#: kitty +kitten hints --hints-offset to zero for all mappings,
+#: including the builtin ones.
+
+#: Clipboard {{{
+
+# map kitty_mod+c copy_to_clipboard
+
+#: There is also a copy_or_interrupt action that can be optionally
+#: mapped to Ctrl+c. It will copy only if there is a selection and
+#: send an interrupt otherwise. Similarly, copy_and_clear_or_interrupt
+#: will copy and clear the selection or send an interrupt if there is
+#: no selection.
+
+# map kitty_mod+v paste_from_clipboard
+# map kitty_mod+s paste_from_selection
+# map kitty_mod+o pass_selection_to_program
+
+#: You can also pass the contents of the current selection to any
+#: program using pass_selection_to_program. By default, the system's
+#: open program is used, but you can specify your own, the selection
+#: will be passed as a command line argument to the program, for
+#: example::
+
+#: map kitty_mod+o pass_selection_to_program firefox
+
+#: You can pass the current selection to a terminal program running in
+#: a new kitty window, by using the @selection placeholder::
+
+#: map kitty_mod+y new_window less @selection
+
+#: }}}
+
+#: Scrolling {{{
+
+# map kitty_mod+up scroll_line_up
+# map kitty_mod+down scroll_line_down
+# map kitty_mod+page_up scroll_page_up
+# map kitty_mod+page_down scroll_page_down
+# map kitty_mod+home scroll_home
+# map kitty_mod+end scroll_end
+# map kitty_mod+h show_scrollback
+
+#: You can pipe the contents of the current screen + history buffer as
+#: STDIN to an arbitrary program using the ``launch`` function. For
+#: example, the following opens the scrollback buffer in less in an
+#: overlay window::
+
+#: map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R
+
+#: For more details on piping screen and buffer contents to external
+#: programs, see launch.
+
+#: }}}
+
+#: Window management {{{
+
+# map kitty_mod+enter new_window
+
+#: You can open a new window running an arbitrary program, for
+#: example::
+
+#: map kitty_mod+y launch mutt
+
+#: You can open a new window with the current working directory set to
+#: the working directory of the current window using::
+
+#: map ctrl+alt+enter launch --cwd=current
+
+#: You can open a new window that is allowed to control kitty via the
+#: kitty remote control facility by prefixing the command line with @.
+#: Any programs running in that window will be allowed to control
+#: kitty. For example::
+
+#: map ctrl+enter launch --allow-remote-control some_program
+
+#: You can open a new window next to the currently active window or as
+#: the first window, with::
+
+#: map ctrl+n launch --location=neighbor some_program
+#: map ctrl+f launch --location=first some_program
+
+#: For more details, see launch.
+
+# map kitty_mod+n new_os_window
+
+#: Works like new_window above, except that it opens a top level OS
+#: kitty window. In particular you can use new_os_window_with_cwd to
+#: open a window with the current working directory.
+
+# map kitty_mod+w close_window
+# map kitty_mod+] next_window
+# map kitty_mod+[ previous_window
+# map kitty_mod+f move_window_forward
+# map kitty_mod+b move_window_backward
+# map kitty_mod+` move_window_to_top
+# map kitty_mod+r start_resizing_window
+# map kitty_mod+1 first_window
+# map kitty_mod+2 second_window
+# map kitty_mod+3 third_window
+# map kitty_mod+4 fourth_window
+# map kitty_mod+5 fifth_window
+# map kitty_mod+6 sixth_window
+# map kitty_mod+7 seventh_window
+# map kitty_mod+8 eighth_window
+# map kitty_mod+9 ninth_window
+# map kitty_mod+0 tenth_window
+#: }}}
+
+#: Tab management {{{
+
+# map kitty_mod+right next_tab
+# map kitty_mod+left previous_tab
+# map kitty_mod+t new_tab
+# map kitty_mod+q close_tab
+# map shift+cmd+w close_os_window
+# map kitty_mod+. move_tab_forward
+# map kitty_mod+, move_tab_backward
+# map kitty_mod+alt+t set_tab_title
+
+#: You can also create shortcuts to go to specific tabs, with 1 being
+#: the first tab, 2 the second tab and -1 being the previously active
+#: tab, and any number larger than the last tab being the last tab::
+
+#: map ctrl+alt+1 goto_tab 1
+#: map ctrl+alt+2 goto_tab 2
+
+#: Just as with new_window above, you can also pass the name of
+#: arbitrary commands to run when using new_tab and use
+#: new_tab_with_cwd. Finally, if you want the new tab to open next to
+#: the current tab rather than at the end of the tabs list, use::
+
+#: map ctrl+t new_tab !neighbor [optional cmd to run]
+#: }}}
+
+#: Layout management {{{
+
+# map kitty_mod+l next_layout
+
+#: You can also create shortcuts to switch to specific layouts::
+
+#: map ctrl+alt+t goto_layout tall
+#: map ctrl+alt+s goto_layout stack
+
+#: Similarly, to switch back to the previous layout::
+
+#: map ctrl+alt+p last_used_layout
+#: }}}
+
+#: Font sizes {{{
+
+#: You can change the font size for all top-level kitty OS windows at
+#: a time or only the current one.
+
+# map kitty_mod+equal change_font_size all +2.0
+# map kitty_mod+minus change_font_size all -2.0
+# map kitty_mod+backspace change_font_size all 0
+
+#: To setup shortcuts for specific font sizes::
+
+#: map kitty_mod+f6 change_font_size all 10.0
+
+#: To setup shortcuts to change only the current OS window's font
+#: size::
+
+#: map kitty_mod+f6 change_font_size current 10.0
+#: }}}
+
+#: Select and act on visible text {{{
+
+#: Use the hints kitten to select text and either pass it to an
+#: external program or insert it into the terminal or copy it to the
+#: clipboard.
+
+# map kitty_mod+e kitten hints
+
+#: Open a currently visible URL using the keyboard. The program used
+#: to open the URL is specified in open_url_with.
+
+# map kitty_mod+p>f kitten hints --type path --program -
+
+#: Select a path/filename and insert it into the terminal. Useful, for
+#: instance to run git commands on a filename output from a previous
+#: git command.
+
+# map kitty_mod+p>shift+f kitten hints --type path
+
+#: Select a path/filename and open it with the default open program.
+
+# map kitty_mod+p>l kitten hints --type line --program -
+
+#: Select a line of text and insert it into the terminal. Use for the
+#: output of things like: ls -1
+
+# map kitty_mod+p>w kitten hints --type word --program -
+
+#: Select words and insert into terminal.
+
+# map kitty_mod+p>h kitten hints --type hash --program -
+
+#: Select something that looks like a hash and insert it into the
+#: terminal. Useful with git, which uses sha1 hashes to identify
+#: commits
+
+# map kitty_mod+p>n kitten hints --type linenum
+
+#: Select something that looks like filename:linenum and open it in
+#: vim at the specified line number.
+
+# map kitty_mod+p>y kitten hints --type hyperlink
+
+#: Select a hyperlink (i.e. a URL that has been marked as such by the
+#: terminal program, for example, by ls --hyperlink=auto).
+
+
+#: The hints kitten has many more modes of operation that you can map
+#: to different shortcuts. For a full description see kittens/hints.
+#: }}}
+
+#: Miscellaneous {{{
+
+# map kitty_mod+f11 toggle_fullscreen
+# map kitty_mod+f10 toggle_maximized
+# map kitty_mod+u kitten unicode_input
+# map kitty_mod+f2 edit_config_file
+# map kitty_mod+escape kitty_shell window
+
+#: Open the kitty shell in a new window/tab/overlay/os_window to
+#: control kitty using commands.
+
+# map kitty_mod+a>m set_background_opacity +0.1
+# map kitty_mod+a>l set_background_opacity -0.1
+# map kitty_mod+a>1 set_background_opacity 1
+# map kitty_mod+a>d set_background_opacity default
+# map kitty_mod+delete clear_terminal reset active
+
+#: You can create shortcuts to clear/reset the terminal. For example::
+
+#: # Reset the terminal
+#: map kitty_mod+f9 clear_terminal reset active
+#: # Clear the terminal screen by erasing all contents
+#: map kitty_mod+f10 clear_terminal clear active
+#: # Clear the terminal scrollback by erasing it
+#: map kitty_mod+f11 clear_terminal scrollback active
+#: # Scroll the contents of the screen into the scrollback
+#: map kitty_mod+f12 clear_terminal scroll active
+
+#: If you want to operate on all windows instead of just the current
+#: one, use all instead of active.
+
+#: It is also possible to remap Ctrl+L to both scroll the current
+#: screen contents into the scrollback buffer and clear the screen,
+#: instead of just clearing the screen, for example, for ZSH add the
+#: following to ~/.zshrc:
+
+#: .. code-block:: sh
+
+#: scroll-and-clear-screen() {
+#: printf '\n%.0s' {1..$LINES}
+#: zle clear-screen
+#: }
+#: zle -N scroll-and-clear-screen
+#: bindkey '^l' scroll-and-clear-screen
+
+# map kitty_mod+f5 load_config_file
+
+#: Reload kitty.conf, applying any changes since the last time it was
+#: loaded. Note that a handful of settings cannot be dynamically
+#: changed and require a full restart of kitty. You can also map a
+#: keybinding to load a different config file, for example::
+
+#: map f5 load_config /path/to/alternative/kitty.conf
+
+#: Note that all setting from the original kitty.conf are discarded,
+#: in other words the new conf settings *replace* the old ones.
+
+# map kitty_mod+f6 debug_config
+
+#: Show details about exactly what configuration kitty is running with
+#: and its host environment. Useful for debugging issues.
+
+
+#: You can tell kitty to send arbitrary (UTF-8) encoded text to the
+#: client program when pressing specified shortcut keys. For example::
+
+#: map ctrl+alt+a send_text all Special text
+
+#: This will send "Special text" when you press the ctrl+alt+a key
+#: combination. The text to be sent is a python string literal so you
+#: can use escapes like \x1b to send control codes or \u21fb to send
+#: unicode characters (or you can just input the unicode characters
+#: directly as UTF-8 text). The first argument to send_text is the
+#: keyboard modes in which to activate the shortcut. The possible
+#: values are normal or application or kitty or a comma separated
+#: combination of them. The special keyword all means all modes. The
+#: modes normal and application refer to the DECCKM cursor key mode
+#: for terminals, and kitty refers to the special kitty extended
+#: keyboard protocol.
+
+#: Another example, that outputs a word and then moves the cursor to
+#: the start of the line (same as pressing the Home key)::
+
+#: map ctrl+alt+a send_text normal Word\x1b[H
+#: map ctrl+alt+a send_text application Word\x1bOH
+
+#: }}}
+
+#: }}}
diff --git a/.config/nvim b/.config/nvim
new file mode 160000
index 0000000..611bebe
--- /dev/null
+++ b/.config/nvim
@@ -0,0 +1 @@
+Subproject commit 611bebeef3622a12199767e900f957bf717ba5bf
diff --git a/.config/polybar/config.ini b/.config/polybar/config.ini
new file mode 100644
index 0000000..c25e5b2
--- /dev/null
+++ b/.config/polybar/config.ini
@@ -0,0 +1,199 @@
+;==========================================================
+;
+;
+; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
+; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
+; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
+; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
+; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
+; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
+;
+;
+; To learn more about how to configure Polybar
+; go to https://github.com/polybar/polybar
+;
+; The README contains a lot of information
+;
+;==========================================================
+
+[colors]
+background = #111111
+background-alt = #333333
+foreground = #C5C8C6
+primary = #b30e63
+secondary = #8ABEB7
+alert = #A54242
+disabled = #707880
+
+[bar/lho]
+monitor = ${env:MONITOR:}
+width = 100%
+height = 16pt
+
+; dpi = 96
+
+background = ${colors.background}
+foreground = ${colors.foreground}
+
+line-size = 3pt
+
+border-size = 4pt
+border-color = #00000000
+
+padding-left = 0
+padding-right = 1
+
+module-margin = 1
+
+separator = |
+separator-foreground = ${colors.disabled}
+
+font-0 = "Iosevka Nerd Font:size=10;2"
+
+modules-left = xworkspaces xwindow
+modules-right = pulseaudio memory cpu battery wlan date
+
+cursor-click = pointer
+cursor-scroll = ns-resize
+
+enable-ipc = true
+
+; wm-restack = generic
+; wm-restack = bspwm
+; wm-restack = i3
+
+; override-redirect = true
+
+[module/systray]
+type = internal/tray
+
+format-margin = 8pt
+tray-spacing = 16pt
+
+[module/xworkspaces]
+type = internal/xworkspaces
+pin-workspaces = true
+label-active = "%name%"
+label-active-background = ${colors.background-alt}
+label-active-underline= ${colors.primary}
+label-active-padding = 1
+
+label-occupied = %name%
+label-occupied-padding = 1
+
+label-urgent = %name%
+label-urgent-background = ${colors.alert}
+label-urgent-padding = 1
+
+label-empty = %name%
+label-empty-foreground = ${colors.disabled}
+label-empty-padding = 1
+
+[module/xwindow]
+type = internal/xwindow
+label = %title:0:60:...%
+
+[module/filesystem]
+type = internal/fs
+interval = 25
+
+mount-0 = /
+
+label-mounted = %{F#F0C674}%mountpoint%%{F-} %percentage_used%%
+
+label-unmounted = %mountpoint% not mounted
+label-unmounted-foreground = ${colors.disabled}
+
+[module/pulseaudio]
+type = internal/pulseaudio
+
+format-volume-prefix = " Vol "
+format-volume-prefix-foreground = ${colors.primary}
+format-volume =
+
+label-volume = %percentage%%
+
+label-muted = " muted"
+label-muted-foreground = ${colors.disabled}
+
+[module/battery]
+
+type = internal/battery
+full-at = 99
+low-at = 20
+battery = BAT0
+format-charging-prefix = " BAT "
+format-discharging-prefix = " BAT "
+label-charging = %percentage%%
+label-discharging = %percentage%%
+format-charging-prefix-foreground = ${colors.primary}
+format-discharging-prefix-foreground = ${colors.disabled}
+format-charging =
+format-discharging =
+
+;poll-interval = 5
+
+[module/xkeyboard]
+type = internal/xkeyboard
+blacklist-0 = num lock
+
+label-layout = %layout%
+label-layout-foreground = ${colors.primary}
+
+label-indicator-padding = 2
+label-indicator-margin = 1
+label-indicator-foreground = ${colors.background}
+label-indicator-background = ${colors.secondary}
+
+[module/memory]
+type = internal/memory
+interval = 2
+format-prefix = " Ram "
+format-prefix-foreground = ${colors.primary}
+label = %percentage_used:2%%
+
+[module/cpu]
+type = internal/cpu
+interval = 2
+format-prefix = " Cpu "
+format-prefix-foreground = ${colors.primary}
+label = %percentage:2%%
+
+[network-base]
+type = internal/network
+interval = 5
+format-connected =
+format-disconnected =
+label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected
+
+[module/wlan]
+inherit = network-base
+interface-type = wireless
+label-connected = "%essid% : %downspeed:9% %upspeed:9%"
+ramp-signal-0 =
+ramp-signal-1 =
+ramp-signal-2 =
+ramp-signal-3 =
+ramp-signal-4 =
+ramp-signal-5 =
+
+[module/eth]
+inherit = network-base
+interface-type = wired
+label-connected = %{F#F0C674}%ifname%%{F-} %local_ip%
+
+[module/date]
+type = internal/date
+interval = 1
+
+date = " %m.%d %H:%M:%S"
+date-alt = %Y-%m-%d %H:%M:%S
+
+label = %date%
+label-foreground = ${colors.primary}
+
+[settings]
+screenchange-reload = true
+pseudo-transparency = true
+
+; vim:ft=dosini
diff --git a/.config/polybar/launch.sh b/.config/polybar/launch.sh
new file mode 100644
index 0000000..d0660d2
--- /dev/null
+++ b/.config/polybar/launch.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/env bash
+
+# Terminate already running bar instances
+# If all your bars have ipc enabled, you can use
+polybar-msg cmd quit
+# Otherwise you can use the nuclear option:
+# killall -q polybar
+
+if type "xrandr"; then
+ for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do
+ MONITOR=$m polybar --reload lho &
+ done
+else
+ polybar --reload lho &
+fi
+
+echo "Bars launched..."
diff --git a/.config/rofi/colors.rasi b/.config/rofi/colors.rasi
new file mode 100644
index 0000000..56ef721
--- /dev/null
+++ b/.config/rofi/colors.rasi
@@ -0,0 +1,11 @@
+/* colors */
+
+* {
+ background: #111212;
+ background-alt: #11384d;
+ foreground: #d6d6d8;
+ foreground-alt: #d0dadf;
+ primary: #A49B93;
+ red: #F9E0EA;
+ yellow: #fffbda;
+}
diff --git a/.config/rofi/config.rasi b/.config/rofi/config.rasi
new file mode 100644
index 0000000..a8be91b
--- /dev/null
+++ b/.config/rofi/config.rasi
@@ -0,0 +1,88 @@
+/************************************************
+ * ROFI Color theme
+ * User: leofa
+ * Copyright: 2017 leofa
+ ***********************************************/
+configuration {
+ display-drun: "Apps";
+ display-window: "Window";
+ font: "JetBrainsMono Nerd Font Medium 10";
+ drun-display-format: "{icon} {name}";
+ show-icons: true;
+ icon-theme: "Papirus";
+ modi: "window, run, drun, emoji, calc";
+}
+
+@theme "/dev/null"
+* {
+ bg: #1e1e2e66;
+ bg-alt: #585b7066;
+ bg-selected: #31324466;
+
+ fg: #cdd6f4;
+ fg-alt: #7f849c;
+
+
+ border: 0;
+ margin: 0;
+ padding: 0;
+ spacing: 0;
+}
+
+window {
+ width: 30%;
+ background-color: @bg;
+}
+
+element {
+ padding: 8 12;
+ background-color: transparent;
+ text-color: @fg-alt;
+}
+
+element selected {
+ text-color: @fg;
+ background-color: @bg-selected;
+}
+
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ vertical-align: 0.5;
+}
+
+element-icon {
+ size: 14;
+ padding: 0 10 0 0;
+ background-color: transparent;
+}
+
+entry {
+ padding: 12;
+ background-color: @bg-alt;
+ text-color: @fg;
+}
+
+inputbar {
+ children: [prompt, entry];
+ background-color: @bg;
+}
+
+listview {
+ background-color: @bg;
+ columns: 1;
+ lines: 10;
+}
+
+mainbox {
+ children: [inputbar, listview];
+ background-color: @bg;
+}
+
+prompt {
+ enabled: true;
+ padding: 12 0 0 12;
+ background-color: @bg-alt;
+ text-color: @fg;
+}
+
diff --git a/.config/rofi/confirm.rasi b/.config/rofi/confirm.rasi
new file mode 100644
index 0000000..d5051be
--- /dev/null
+++ b/.config/rofi/confirm.rasi
@@ -0,0 +1,23 @@
+/* Confirm Dialog */
+
+@import "colors.rasi"
+
+* {
+ background-color: @background;
+ text-color: @foreground;
+ font: "Iosevka Nerd Font 14";
+}
+
+window {
+ width: 400px;
+ padding: 100px;
+ border: 1px;
+ border-radius: 0px;
+ border-color: @primary;
+ location: center;
+}
+
+entry {
+ expand: true;
+ text-color: @primary;
+}
diff --git a/.config/rofi/globals.rasi b/.config/rofi/globals.rasi
new file mode 100644
index 0000000..e944329
--- /dev/null
+++ b/.config/rofi/globals.rasi
@@ -0,0 +1,6 @@
+* {
+ bg1: #0b2330;
+ border-color: #d1dfd4;
+ text-color: #f7f5e4;
+ font: "JetBrains Mono NL SemiBold 14";
+}
diff --git a/.config/rofi/launcher.rasi b/.config/rofi/launcher.rasi
new file mode 100644
index 0000000..1c7efde
--- /dev/null
+++ b/.config/rofi/launcher.rasi
@@ -0,0 +1,30 @@
+/*
+ *
+ * Author : Aditya Shakya
+ * Mail : adi1090x@gmail.com
+ * Github : @adi1090x
+ * Twitter : @adi1090x
+ *
+ */
+
+@import "config.rasi"
+@import "colors.rasi"
+@import "launcher_base.rasi"
+
+//configuration {
+// sidebar-mode: false;
+//}
+
+window {
+ transparency: "real";
+ background-color: @background;
+ text-color: @foreground;
+ border: 2px;
+ border-color: @primary;
+ border-radius: 0px;
+ width: 600px;
+ location: center;
+ x-offset: 0;
+ y-offset: 0;
+}
+
diff --git a/.config/rofi/launcher_base.rasi b/.config/rofi/launcher_base.rasi
new file mode 100644
index 0000000..16a44b3
--- /dev/null
+++ b/.config/rofi/launcher_base.rasi
@@ -0,0 +1,93 @@
+/*
+ *
+ * Author : Aditya Shakya
+ * Mail : adi1090x@gmail.com
+ * Github : @adi1090x
+ * Twitter : @adi1090x
+ *
+ */
+
+
+prompt {
+ enabled: true;
+ padding: 10px;
+ background-color: @background-alt;
+ text-color: @primary;
+ font: "Iosevka Nerd Font 10";
+}
+
+entry {
+ background-color: @background;
+ text-color: @primary;
+ placeholder-color: @foreground;
+ expand: true;
+ horizontal-align: 0;
+ placeholder: "Search...";
+ padding: 10px 10px 10px 0px;
+ border-radius: 0px;
+ blink: true;
+}
+
+inputbar {
+ children: [ prompt, entry ];
+ background-color: @primary;
+ text-color: @foreground;
+ expand: false;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @ac;
+ spacing: 0px;
+}
+
+listview {
+ background-color: @background;
+ padding: 0px;
+ columns: 1;
+ lines: 5;
+ spacing: 5px;
+ cycle: true;
+ dynamic: true;
+ layout: vertical;
+}
+
+mainbox {
+ background-color: @background;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @primary;
+ children: [ inputbar, listview ];
+ spacing: 10px;
+ padding: 2px 10px 10px 10px;
+}
+
+element {
+ background-color: @background;
+ text-color: @foreground;
+ orientation: horizontal;
+ border-radius: 0px;
+ padding: 8px;
+}
+
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ border: 0px;
+}
+
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ expand: true;
+ horizontal-align: 0;
+ vertical-align: 0.5;
+ margin: 0px 2.5px 0px 2.5px;
+}
+
+element selected {
+ background-color: @background-alt;
+ text-color: @foreground-alt;
+ border: 0px 0px 0px 0px;
+ border-radius: 0px;
+ border-color: @primary;
+}
diff --git a/.config/rofi/launcher_side.rasi b/.config/rofi/launcher_side.rasi
new file mode 100644
index 0000000..741b3a0
--- /dev/null
+++ b/.config/rofi/launcher_side.rasi
@@ -0,0 +1,31 @@
+/*
+ *
+ * Author : Aditya Shakya
+ * Mail : adi1090x@gmail.com
+ * Github : @adi1090x
+ * Twitter : @adi1090x
+ *
+ */
+
+@import "config.rasi"
+@import "colors.rasi"
+@import "launcher_base.rasi"
+
+//configuration {
+// sidebar-mode: true;
+//}
+
+window {
+ transparency: "real";
+ background-color: @background;
+ text-color: @foreground;
+ border: 2px;
+ border-color: @primary;
+ border-radius: 0px;
+ width: 30em;
+ height: 95%;
+ location: west;
+ x-offset: 0;
+ y-offset: 0;
+}
+
diff --git a/.config/rofi/message.rasi b/.config/rofi/message.rasi
new file mode 100644
index 0000000..084b7e2
--- /dev/null
+++ b/.config/rofi/message.rasi
@@ -0,0 +1,24 @@
+/* Confirm Dialog */
+
+@import "colors.rasi"
+
+* {
+ background-color: @bg;
+ text-color: @fg;
+ font: "Iosevka Nerd Font 10";
+}
+
+window {
+ width: 320px;
+ padding: 25px;
+ border: 1px;
+ border-radius: 0px;
+ border-color: @ac;
+ location: center;
+ y-offset: -2em;
+}
+
+entry {
+ expand: true;
+ text-color: @ac;
+}
diff --git a/.config/rofi/networkmenu.rasi b/.config/rofi/networkmenu.rasi
new file mode 100644
index 0000000..17d6dec
--- /dev/null
+++ b/.config/rofi/networkmenu.rasi
@@ -0,0 +1,128 @@
+/*
+ *
+ * Author : Aditya Shakya
+ * Mail : adi1090x@gmail.com
+ * Github : @adi1090x
+ * Twitter : @adi1090x
+ *
+ */
+
+configuration {
+ font: "Iosevka Nerd Font 10";
+ show-icons: true;
+ icon-theme: "Papirus";
+ display-drun: "";
+ drun-display-format: "{name}";
+ disable-history: false;
+ fullscreen: false;
+ hide-scrollbar: true;
+ sidebar-mode: false;
+}
+
+@import "colors.rasi"
+
+window {
+ transparency: "real";
+ background-color: @bg;
+ text-color: @fg;
+ border: 2px;
+ border-color: @ac;
+ border-radius: 0px;
+ width: 400px;
+ location: center;
+ x-offset: 0;
+ y-offset: 0;
+}
+
+prompt {
+ enabled: true;
+ padding: 10px 10px 10px 0px;
+ background-color: @al;
+ text-color: @ac;
+ font: "Iosevka Nerd Font 10";
+}
+
+textbox-prompt-colon {
+ padding: 10px 15px 10px 15px;
+ font: "Iosevka Nerd Font 10";
+ background-color: @al;
+ text-color: @ac;
+ expand: false;
+ str: "直";
+}
+
+entry {
+ background-color: @al;
+ text-color: @ac;
+ placeholder-color: @ac;
+ expand: true;
+ horizontal-align: 0;
+ placeholder: "Search...";
+ padding: 10px 10px 10px 0px;
+ border-radius: 0px;
+ blink: true;
+}
+
+inputbar {
+ children: [ textbox-prompt-colon, prompt ];
+ background-color: @al;
+ text-color: @fg;
+ expand: false;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @ac;
+ spacing: 0px;
+}
+
+listview {
+ background-color: @al;
+ padding: 0px;
+ columns: 1;
+ lines: 8;
+ spacing: 5px;
+ cycle: true;
+ dynamic: true;
+ layout: vertical;
+}
+
+mainbox {
+ background-color: @al;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @ac;
+ children: [ inputbar, listview ];
+ spacing: 10px;
+ padding: 2px 10px 10px 10px;
+}
+
+element {
+ background-color: @al;
+ text-color: @fg;
+ orientation: horizontal;
+ border-radius: 0px;
+ padding: 8px 8px 8px -10px;
+}
+
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ border: 0px;
+}
+
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ expand: true;
+ horizontal-align: 0;
+ vertical-align: 0.5;
+ margin: 0px 2.5px 0px 2.5px;
+}
+
+element selected {
+ background-color: @se;
+ text-color: @fg;
+ border: 0px 0px 0px 0px;
+ border-radius: 0px;
+ border-color: @ac;
+}
diff --git a/.config/rofi/screenlayout.rasi b/.config/rofi/screenlayout.rasi
new file mode 100644
index 0000000..aca791c
--- /dev/null
+++ b/.config/rofi/screenlayout.rasi
@@ -0,0 +1,27 @@
+/* Confirm Dialog */
+
+@import "config.rasi"
+@import "colors.rasi"
+@import "launcher_base.rasi"
+
+* {
+ background-color: @background;
+ text-color: @foreground;
+ font: "Iosevka Nerd Font 18";
+}
+
+window {
+ width: 600px;
+ height: 600px;
+ padding: 50px;
+ border: 1px;
+ border-radius: 0px;
+ border-color: @primary;
+ location: center;
+}
+
+entry {
+ expand: true;
+ text-color: @foreground;
+ background: @background-alt;
+}
diff --git a/.config/rofi/styles.rasi b/.config/rofi/styles.rasi
new file mode 100644
index 0000000..d9926b6
--- /dev/null
+++ b/.config/rofi/styles.rasi
@@ -0,0 +1,128 @@
+/*
+ *
+ * Author : Aditya Shakya
+ * Mail : adi1090x@gmail.com
+ * Github : @adi1090x
+ * Twitter : @adi1090x
+ *
+ */
+
+configuration {
+ font: "Iosevka Nerd Font 10";
+ show-icons: true;
+ icon-theme: "Papirus";
+ display-drun: "";
+ drun-display-format: "{name}";
+ disable-history: false;
+ fullscreen: false;
+ hide-scrollbar: true;
+ sidebar-mode: false;
+}
+
+@import "colors.rasi"
+
+window {
+ transparency: "real";
+ background-color: @bg;
+ text-color: @fg;
+ border: 2px;
+ border-color: @ac;
+ border-radius: 0px;
+ width: 300px;
+ location: center;
+ x-offset: 0;
+ y-offset: 0;
+}
+
+prompt {
+ enabled: true;
+ padding: 10px 10px 10px 0px;
+ background-color: @al;
+ text-color: @ac;
+ font: "Iosevka Nerd Font 10";
+}
+
+textbox-prompt-colon {
+ padding: 10px 15px 10px 15px;
+ font: "Iosevka Nerd Font 10";
+ background-color: @al;
+ text-color: @ac;
+ expand: false;
+ str: "";
+}
+
+entry {
+ background-color: @al;
+ text-color: @ac;
+ placeholder-color: @ac;
+ expand: true;
+ horizontal-align: 0;
+ placeholder: "Search...";
+ padding: 10px 10px 10px 0px;
+ border-radius: 0px;
+ blink: true;
+}
+
+inputbar {
+ children: [ textbox-prompt-colon, entry ];
+ background-color: @al;
+ text-color: @fg;
+ expand: false;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @ac;
+ spacing: 0px;
+}
+
+listview {
+ background-color: @al;
+ padding: 0px;
+ columns: 1;
+ lines: 5;
+ spacing: 5px;
+ cycle: true;
+ dynamic: true;
+ layout: vertical;
+}
+
+mainbox {
+ background-color: @al;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @ac;
+ children: [ inputbar, listview ];
+ spacing: 10px;
+ padding: 2px 10px 10px 10px;
+}
+
+element {
+ background-color: @al;
+ text-color: @fg;
+ orientation: horizontal;
+ border-radius: 0px;
+ padding: 8px 8px 8px -16px;
+}
+
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ border: 0px;
+}
+
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ expand: true;
+ horizontal-align: 0;
+ vertical-align: 0.5;
+ margin: 0px 2.5px 0px 2.5px;
+}
+
+element selected {
+ background-color: @se;
+ text-color: @fg;
+ border: 0px 0px 0px 0px;
+ border-radius: 0px;
+ border-color: @ac;
+}
diff --git a/.stow-local-ignore b/.stow-local-ignore
new file mode 100644
index 0000000..17bf13d
--- /dev/null
+++ b/.stow-local-ignore
@@ -0,0 +1,22 @@
+# Comments and blank lines are allowed.
+
+RCS
+.+,v
+
+CVS
+\.\#.+ # CVS conflict files / emacs lock files
+\.cvsignore
+
+\.svn
+_darcs
+\.hg
+
+\.git
+\.gitignore
+
+.+~ # emacs backup files
+\#.*\# # emacs autosave files
+
+^/README.*
+^/LICENSE.*
+^/COPYING
diff --git a/.tmux.conf b/.tmux.conf
new file mode 100644
index 0000000..1fe9a1f
--- /dev/null
+++ b/.tmux.conf
@@ -0,0 +1,69 @@
+#fix colors
+set-option -sa terminal-overrides ",xterm*:Tc"
+# add mouse support
+set -g mouse on
+
+# bind prefix to control space
+unbind C-b
+set -g prefix C-Space
+bind C-Space send-prefix
+
+# Custom binings
+bind -n M-H previous-window
+bind -n M-L next-window
+
+# set zsh to default shell
+set-option -g default-shell /usr/bin/zsh
+
+# start windows and panes at 1, not 0
+set -g base-index 1
+set -g pane-base-index 1
+set-window-option -g pane-base-index 1
+set-option -g renumber-windows on
+
+# List of plugins
+set -g @plugin 'tmux-plugins/tpm'
+set -g @plugin 'tmux-plugins/tmux-sensible'
+set -g @plugin 'christoomey/vim-tmux-navigator'
+set -g @plugin 'catppuccin/tmux'
+set -g @plugin 'tmux-plugins/tmux-yank'
+
+#Tmux Yank
+set -g @yank_selection_mouse 'clipboard' # or 'primary' or 'secondary'
+set -g @yank_selection 'primary' # or 'secondary' or 'clipboard'
+set -g @yank_with_mouse on
+set-window-option -g mode-keys vi
+bind-key -T copy-mode-vi v send-keys -X begin-selection
+bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
+bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel
+
+#Catppuccin
+set -g @catppuccin_window_status_enable "no"
+set -g @catppuccin_window_status_icon_enable "yes"
+
+set -g @catppuccin_window_left_separator "█"
+set -g @catppuccin_window_right_separator "█"
+set -g @catppuccin_window_number_position "left"
+set -g @catppuccin_window_middle_separator " / "
+
+set -g @catppuccin_window_default_fill "none"
+set -g @catppuccin_window_default_text "#W"
+set -g @catppuccin_window_current_fill "all"
+set -g @catppuccin_window_current_text "#W"
+
+set -g @catppuccin_status_left_separator "█"
+set -g @catppuccin_status_right_separator "█"
+set -g @catppuccin_status_right_separator_inverse "no"
+set -g @catppuccin_status_fill "icon"
+set -g @catppuccin_status_connect_separator "no"
+set -g @catppuccin_status_modules_right "application session user"
+
+
+run '~/.tmux/plugins/tpm/tpm'
+
+# Open panes in current dir
+bind '"' split-window -v -c "#{pane_current_path}"
+bind % split-window -h -c "#{pane_current_path}"
+
+#Info
+run-shell 'echo reloaded .tmux.conf ...'