From 5ce66d883c30d388de7c54cef41b271292f43c01 Mon Sep 17 00:00:00 2001
From: david bernet <david.bernet@student.uni-halle.de>
Date: Wed, 27 Nov 2024 08:10:50 +0100
Subject: [PATCH] Newnewnew idk

---
 hypr/hyprland.conf                    | 309 ++++++++++++++++++++++++++
 keepassxc/keepassxc.ini               |  24 ++
 nvim/init.lua                         | 116 ++++++++++
 nvim/plugged/catppuchin               |   1 +
 nvim/plugged/gruvbox                  |   1 +
 nvim/plugged/gruvbox.nvim             |   1 +
 nvim/plugged/lualine.nvim             |   1 +
 nvim/plugged/mason-lspconfig.nvim     |   1 +
 nvim/plugged/mason.nvim               |   1 +
 nvim/plugged/neo-tree.nvim            |   1 +
 nvim/plugged/nui.nvim                 |   1 +
 nvim/plugged/nvim-lspconfig           |   1 +
 nvim/plugged/nvim-treesitter          |   1 +
 nvim/plugged/nvim-web-devicons        |   1 +
 nvim/plugged/plenary.nvim             |   1 +
 nvim/plugged/telescope-ui-select.nvim |   1 +
 nvim/plugged/telescope.nvim           |   1 +
 rofi/config.rasi                      | 213 +-----------------
 rofi/rofi-scripts/options             |   3 +
 rofi/rofi-scripts/powermenu.sh        |  20 ++
 rofi/rofi-scripts/wifi-manager.sh     |  67 ++++++
 waybar/config.jsonc                   | 132 +++++++++++
 waybar/launch-waybar.sh               |   5 +
 waybar/light_in_range.sh              |   7 +
 waybar/style.css                      | 107 +++++++++
 waybar/style.scss                     | 143 ++++++++++++
 26 files changed, 948 insertions(+), 212 deletions(-)
 create mode 100644 hypr/hyprland.conf
 create mode 100644 keepassxc/keepassxc.ini
 create mode 100644 nvim/init.lua
 create mode 160000 nvim/plugged/catppuchin
 create mode 160000 nvim/plugged/gruvbox
 create mode 160000 nvim/plugged/gruvbox.nvim
 create mode 160000 nvim/plugged/lualine.nvim
 create mode 160000 nvim/plugged/mason-lspconfig.nvim
 create mode 160000 nvim/plugged/mason.nvim
 create mode 160000 nvim/plugged/neo-tree.nvim
 create mode 160000 nvim/plugged/nui.nvim
 create mode 160000 nvim/plugged/nvim-lspconfig
 create mode 160000 nvim/plugged/nvim-treesitter
 create mode 160000 nvim/plugged/nvim-web-devicons
 create mode 160000 nvim/plugged/plenary.nvim
 create mode 160000 nvim/plugged/telescope-ui-select.nvim
 create mode 160000 nvim/plugged/telescope.nvim
 create mode 100644 rofi/rofi-scripts/options
 create mode 100644 rofi/rofi-scripts/powermenu.sh
 create mode 100644 rofi/rofi-scripts/wifi-manager.sh
 create mode 100644 waybar/config.jsonc
 create mode 100644 waybar/launch-waybar.sh
 create mode 100644 waybar/light_in_range.sh
 create mode 100644 waybar/style.css
 create mode 100644 waybar/style.scss

diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf
new file mode 100644
index 0000000..af47e44
--- /dev/null
+++ b/hypr/hyprland.conf
@@ -0,0 +1,309 @@
+# Refer to the wiki for more information.
+# https://wiki.hyprland.org/Configuring/
+
+# You can split this configuration into multiple files
+# Create your files separately and then link them to this file like this:
+# source = ~/.config/hypr/myColors.conf
+
+
+plugin {
+    split-monitor-workspaces {
+        count = 5
+        keep_focused = 0
+        enable_notifications = 0
+        enable_persistent_workspaces = 1
+    }
+}
+
+################
+### MONITORS ###
+################
+
+# See https://wiki.hyprland.org/Configuring/Monitors/
+monitor=eDP-1, 1920x1080, 0x0, 1.00
+monitor=HDMI-A-1, 1920x1080, 1920x0, 1.00
+# list available monitors with $> hyprctl monitors all
+
+###################
+### MY PROGRAMS ###
+###################
+
+# See https://wiki.hyprland.org/Configuring/Keywords/
+
+# Set programs that you use
+$terminal = kitty
+$fileManager = nemo 
+$menu = rofi -show drun 
+$webbrowser = mullvad-browser
+
+#################
+### AUTOSTART ###
+#################
+
+# Autostart necessary processes (like notifications daemons, status bars, etc.)
+# Or execute your favorite apps at launch like this:
+
+# exec-once = $terminal
+# exec-once = nm-applet &
+exec-once = swaybg -i /home/hexe/Bilder/grafiken/wallpapers/conrado_salinas.png  &
+exec-once = sh /home/hexe/.config/waybar/launch-waybar.sh 
+exec-once = systemctl --user start hyprpolkitagent
+exec-once = hyprpm reload
+exec-once = keepassxc
+
+#############################
+### ENVIRONMENT VARIABLES ###
+#############################
+
+# See https://wiki.hyprland.org/Configuring/Environment-variables/
+
+env = XCURSOR_SIZE,24
+env = HYPRCURSOR_SIZE,24
+
+
+#####################
+### LOOK AND FEEL ###
+#####################
+
+# Refer to https://wiki.hyprland.org/Configuring/Variables/
+
+# https://wiki.hyprland.org/Configuring/Variables/#general
+general {
+    gaps_in = 0
+    gaps_out = 0
+
+    border_size = 2
+
+    # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
+    col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
+    col.inactive_border = rgba(595959aa)
+
+    # Set to true enable resizing windows by clicking and dragging on borders and gaps
+    resize_on_border = false
+
+    # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
+    allow_tearing = false
+
+    layout = dwindle
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#decoration
+decoration {
+    rounding = 0
+
+    # Change transparency of focused and unfocused windows
+    active_opacity = 1.0
+    inactive_opacity = 1.0
+
+    shadow {
+        enabled = false 
+        #range = 4
+        #render_power = 3
+        #color = rgba(1a1a1aee)
+    }
+
+    # https://wiki.hyprland.org/Configuring/Variables/#blur
+    blur {
+        enabled = false 
+        #size = 3
+        #passes = 1
+
+        #vibrancy = 0.1696
+    }
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#animations
+animations {
+    enabled = false #yes, please :)
+
+    # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
+
+#    bezier = easeOutQuint,0.23,1,0.32,1
+#    bezier = easeInOutCubic,0.65,0.05,0.36,1
+#    bezier = linear,0,0,1,1
+#    bezier = almostLinear,0.5,0.5,0.75,1.0
+#    bezier = quick,0.15,0,0.1,1
+#
+#    animation = global, 1, 10, default
+#    animation = border, 1, 5.39, easeOutQuint
+#    animation = windows, 1, 4.79, easeOutQuint
+#    animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
+#    animation = windowsOut, 1, 1.49, linear, popin 87%
+#    animation = fadeIn, 1, 1.73, almostLinear
+#    animation = fadeOut, 1, 1.46, almostLinear
+#    animation = fade, 1, 3.03, quick
+#    animation = layers, 1, 3.81, easeOutQuint
+#    animation = layersIn, 1, 4, easeOutQuint, fade
+#    animation = layersOut, 1, 1.5, linear, fade
+#    animation = fadeLayersIn, 1, 1.79, almostLinear
+#    animation = fadeLayersOut, 1, 1.39, almostLinear
+#    animation = workspaces, 1, 1.94, almostLinear, fade
+#    animation = workspacesIn, 1, 1.21, almostLinear, fade
+#    animation = workspacesOut, 1, 1.94, almostLinear, fade
+}
+
+# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
+# "Smart gaps" / "No gaps when only"
+# uncomment all if you wish to use that.
+# workspace = w[tv1], gapsout:0, gapsin:0
+# workspace = f[1], gapsout:0, gapsin:0
+# windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1]
+# windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1]
+# windowrulev2 = bordersize 0, floating:0, onworkspace:f[1]
+# windowrulev2 = rounding 0, floating:0, onworkspace:f[1]
+
+# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
+dwindle {
+    pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
+    preserve_split = true # You probably want this
+}
+
+# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
+master {
+    new_status = master
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#misc
+misc {
+    force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
+    disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
+}
+
+
+#############
+### INPUT ###
+#############
+
+# https://wiki.hyprland.org/Configuring/Variables/#input
+input {
+    kb_layout = de
+    kb_variant =
+    kb_model =
+    kb_options =
+    kb_rules =
+
+    follow_mouse = 1
+
+    sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
+
+    touchpad {
+        natural_scroll = true 
+    }
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#gestures
+gestures {
+    workspace_swipe = false
+}
+
+# Example per-device config
+# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
+device {
+    name = epic-mouse-v1
+    sensitivity = -0.5
+}
+
+
+###################
+### KEYBINDINGS ###
+###################
+
+# See https://wiki.hyprland.org/Configuring/Keywords/
+$mainMod = SUPER # Sets "Windows" key as main modifier
+
+# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
+bind = $mainMod, Return, exec, $terminal
+bind = $mainMod, Q, killactive,
+bind = $mainMod, M, fullscreen,
+bind = $mainMod, E, exec, $fileManager
+bind = $mainMod, W, exec, $webbrowser
+bind = $mainMod, V, togglefloating,
+bind = $mainMod, R, exec, $menu
+bind = $mainMod, P, pseudo, # dwindle
+bind = $mainMod, J, togglesplit, # dwindle
+
+# Move focus with mainMod + arrow keys
+bind = $mainMod, left, movefocus, l
+bind = $mainMod, right, movefocus, r 
+bind = $mainMod, up, movefocus, u
+bind = $mainMod, down, movefocus, d
+
+bind = $mainMod SHIFT, left, movewindow, l
+bind = $mainMod SHIFT, right, movewindow, r
+bind = $mainMod SHIFT ALT, up, split-movetoworkspace, e+1
+bind = $mainMod SHIFT ALT, down, split-movetoworkspace, e-1 
+
+
+bind = $mainMod ALT, down, split-workspace, e-1
+bind = $mainMod ALT, up, split-workspace, e+1
+
+
+
+# Switch workspaces with mainMod + [0-9]
+#bind = $mainMod, 1, workspace, 1
+#bind = $mainMod, 2, workspace, 2
+#bind = $mainMod, 3, workspace, 3
+#bind = $mainMod, 4, workspace, 4
+#bind = $mainMod, 5, workspace, 5
+#bind = $mainMod, 6, workspace, 6
+#bind = $mainMod, 7, workspace, 7
+#bind = $mainMod, 8, workspace, 8
+#bind = $mainMod, 9, workspace, 9
+#bind = $mainMod, 0, workspace, 10
+
+# Move active window to a workspace with mainMod + SHIFT + [0-9]
+#bind = $mainMod SHIFT, 1, movetoworkspace, 1
+#bind = $mainMod SHIFT, 2, movetoworkspace, 2
+#bind = $mainMod SHIFT, 3, movetoworkspace, 3
+#bind = $mainMod SHIFT, 4, movetoworkspace, 4
+#bind = $mainMod SHIFT, 5, movetoworkspace, 5
+#bind = $mainMod SHIFT, 6, movetoworkspace, 6
+#bind = $mainMod SHIFT, 7, movetoworkspace, 7
+#bind = $mainMod SHIFT, 8, movetoworkspace, 8
+#bind = $mainMod SHIFT, 9, movetoworkspace, 9
+#bind = $mainMod SHIFT, 0, movetoworkspace, 10
+
+# Example special workspace (scratchpad)
+#bind = $mainMod, S, togglespecialworkspace, magic
+#bind = $mainMod SHIFT, S, movetoworkspace, special:magic
+#
+## Scroll through existing workspaces with mainMod + scroll
+#bind = $mainMod, mouse_down, workspace, e+1
+#bind = $mainMod, mouse_up, workspace, e-1
+#
+# Move/resize windows with mainMod + LMB/RMB and dragging
+bindm = $mainMod, mouse:272, movewindow
+bindm = $mainMod, mouse:273, resizewindow
+
+# Laptop multimedia keys for volume and LCD brightness
+bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
+bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
+bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
+bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
+bindel = ,XF86MonBrightnessUp, exec, light -A 2 
+bindel = ,XF86MonBrightnessDown, exec, light -U 2 
+
+# Requires playerctl
+bindl = , XF86AudioNext, exec, playerctl next
+bindl = , XF86AudioPause, exec, playerctl play-pause
+bindl = , XF86AudioPlay, exec, playerctl play-pause
+bindl = , XF86AudioPrev, exec, playerctl previous
+
+##############################
+### WINDOWS AND WORKSPACES ###
+##############################
+
+# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
+# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
+
+# Example windowrule v1
+windowrule = float, ^(keepassxc)$
+
+# Example windowrule v2
+# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
+
+# Ignore maximize requests from apps. You'll probably like this.
+windowrulev2 = suppressevent maximize, class:.*
+
+# Fix some dragging issues with XWayland
+windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
diff --git a/keepassxc/keepassxc.ini b/keepassxc/keepassxc.ini
new file mode 100644
index 0000000..1601cc0
--- /dev/null
+++ b/keepassxc/keepassxc.ini
@@ -0,0 +1,24 @@
+[General]
+ConfigVersion=2
+MinimizeAfterUnlock=true
+
+[Browser]
+CustomProxyLocation=
+Enabled=true
+
+[GUI]
+ApplicationTheme=dark
+MinimizeOnClose=true
+MinimizeOnStartup=true
+MinimizeToTray=true
+ShowTrayIcon=true
+TrayIconAppearance=colorful
+
+[KeeShare]
+Active="<?xml version=\"1.0\"?><KeeShare><Active/></KeeShare>\n"
+Own="<?xml version=\"1.0\"?><KeeShare><PrivateKey>MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCuj4D3pK/9Rk9OfiP8vgwgAeoO0xpn/vN9qmpeTKUsY1I1iyj2Zs39ombg7F/HbpCQfexzDfyMpazTlzcFa1M9Y/DQBeHRO5a/BL/+6d42Xk/fWoFjTBtDgnrJu315LEXHjZNB1J2Xm7AVxDBktAYu+AkaTdMvhzOD//yO1E4b2TBQ1WvaWIfxfhnAg2baDuKeZWy88+5FUFFDr+O4jitlCbilReoinNk0RUcchvIvIa1S/so3ekC7FLczYB3UrUTJ6OmkcqGVx719FhUDVgXb9tLcmpF8IPLBxFc3DH1eCic/5ClAL43uJEoKjQas9LY2l3hZ8lZWNYIXhXxcjBEtAgMBAAECggEAJv2Byo7cCoAebcNqKWWP0sRqseYAU3NUkuCyQp7vE/OZZMFRJHyBDWKthRb3K9Yr70JZQrfAje/hox93GDxJSwCcRPLTZkdfnAolEnzNeCpnv9V46iORQWqPH6lD1QGJEpIybrVdgAQz+CCqyIuXh/06F0iD3+1cmeLfWE3epoRlsHNm0CCTFq7eDIDHcdh90WsFHAqNVA2C1fHPtP7D3lAZY8cNCral4u0NPthFn3EWyppl4SethRUIKdkhPzAEwtd/o/CTONpbwIiqId5Zx6KAAD7yNk4XOnAXdBbg3SesYfsCyMPcRMPTDvyV3HKCCpvExMQQMge4wc6CM87zdwKBgQDLrt+qQkSIPitYdq2A1NyRYxqU3X20IXtn0oy03idDVxuGMA3jxyCWnQdiUwa7xP70V+skESn9bwSMAK1j9HtSZw3KszAfX3pkNUDhZ+8ae/Ub4Q1rEjagBa1tmIRUydO8dGbuFoTaUumxl6kyol8gy6czE9SHaYIPdi8nZh3EHwKBgQDbZa+AdYGMqLesy2q29SKDkGR2f3d2WYphIaj5Kv8bqRguvC2PtFtUBnDuCAm/n2sTXWRHQhVrxxClNv6+zUbsuy8XJwytZnsEZST2SMnUZ5U5i3HTWXZikdmeWx45mCWREt5s7d0VlNgWg+mBfy4SVVpP4T01e2xNELJu1uohMwKBgCavJN2yTk/N9u+LQrKoOugF+YNyebBfd4+lZoHne2+HuLuInuq25BKW6lMbT7kT1hRUKl2kQORYVHW+ny/PvChPWEg6NhaPTLCBiLwGwFu4VTohSSofwG4uBd09zUxJNMSjGvV3I25PtwC6vDDYs9aHt061InVBbalAGf6Sn26jAoGBAK8NxGmH2HUlzV/28k/G6eH1nOMbs3Lf4NS9abhdwS0Nz3jCtsu5iUFS3lpeWYDmryXFV5Svuq3DKJnadopA+f07IUik5K2aXj9UgJht3XQ3rc47X/fVourlGrEKXORxbFADsStS4xssJvpYCEFF+7mvFp8zxYXd07ztvKFJo4gXAoGAFAx91OXQ6dJR/ockP2/zjG3WrQNgyGOLnBBFUMbKhnDpH34FYFKvmLxzOCFr9JmsxM3UtgbdylROOpIjP4wXngDByvSUSJIXioxbUgaRb5C7h2yv+Q265fSLQBTmrpVODbMVf37SdtPzOjR1x6BWFj7f9gmV6Cd2eB87BSkGrxI=</PrivateKey><PublicKey><Signer>hexe</Signer><Key>MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCuj4D3pK/9Rk9OfiP8vgwgAeoO0xpn/vN9qmpeTKUsY1I1iyj2Zs39ombg7F/HbpCQfexzDfyMpazTlzcFa1M9Y/DQBeHRO5a/BL/+6d42Xk/fWoFjTBtDgnrJu315LEXHjZNB1J2Xm7AVxDBktAYu+AkaTdMvhzOD//yO1E4b2TBQ1WvaWIfxfhnAg2baDuKeZWy88+5FUFFDr+O4jitlCbilReoinNk0RUcchvIvIa1S/so3ekC7FLczYB3UrUTJ6OmkcqGVx719FhUDVgXb9tLcmpF8IPLBxFc3DH1eCic/5ClAL43uJEoKjQas9LY2l3hZ8lZWNYIXhXxcjBEtAgMBAAECggEAJv2Byo7cCoAebcNqKWWP0sRqseYAU3NUkuCyQp7vE/OZZMFRJHyBDWKthRb3K9Yr70JZQrfAje/hox93GDxJSwCcRPLTZkdfnAolEnzNeCpnv9V46iORQWqPH6lD1QGJEpIybrVdgAQz+CCqyIuXh/06F0iD3+1cmeLfWE3epoRlsHNm0CCTFq7eDIDHcdh90WsFHAqNVA2C1fHPtP7D3lAZY8cNCral4u0NPthFn3EWyppl4SethRUIKdkhPzAEwtd/o/CTONpbwIiqId5Zx6KAAD7yNk4XOnAXdBbg3SesYfsCyMPcRMPTDvyV3HKCCpvExMQQMge4wc6CM87zdwKBgQDLrt+qQkSIPitYdq2A1NyRYxqU3X20IXtn0oy03idDVxuGMA3jxyCWnQdiUwa7xP70V+skESn9bwSMAK1j9HtSZw3KszAfX3pkNUDhZ+8ae/Ub4Q1rEjagBa1tmIRUydO8dGbuFoTaUumxl6kyol8gy6czE9SHaYIPdi8nZh3EHwKBgQDbZa+AdYGMqLesy2q29SKDkGR2f3d2WYphIaj5Kv8bqRguvC2PtFtUBnDuCAm/n2sTXWRHQhVrxxClNv6+zUbsuy8XJwytZnsEZST2SMnUZ5U5i3HTWXZikdmeWx45mCWREt5s7d0VlNgWg+mBfy4SVVpP4T01e2xNELJu1uohMwKBgCavJN2yTk/N9u+LQrKoOugF+YNyebBfd4+lZoHne2+HuLuInuq25BKW6lMbT7kT1hRUKl2kQORYVHW+ny/PvChPWEg6NhaPTLCBiLwGwFu4VTohSSofwG4uBd09zUxJNMSjGvV3I25PtwC6vDDYs9aHt061InVBbalAGf6Sn26jAoGBAK8NxGmH2HUlzV/28k/G6eH1nOMbs3Lf4NS9abhdwS0Nz3jCtsu5iUFS3lpeWYDmryXFV5Svuq3DKJnadopA+f07IUik5K2aXj9UgJht3XQ3rc47X/fVourlGrEKXORxbFADsStS4xssJvpYCEFF+7mvFp8zxYXd07ztvKFJo4gXAoGAFAx91OXQ6dJR/ockP2/zjG3WrQNgyGOLnBBFUMbKhnDpH34FYFKvmLxzOCFr9JmsxM3UtgbdylROOpIjP4wXngDByvSUSJIXioxbUgaRb5C7h2yv+Q265fSLQBTmrpVODbMVf37SdtPzOjR1x6BWFj7f9gmV6Cd2eB87BSkGrxI=</Key></PublicKey></KeeShare>\n"
+QuietSuccess=true
+
+[PasswordGenerator]
+AdditionalChars=
+ExcludedChars=
diff --git a/nvim/init.lua b/nvim/init.lua
new file mode 100644
index 0000000..3e00146
--- /dev/null
+++ b/nvim/init.lua
@@ -0,0 +1,116 @@
+vim.cmd("set expandtab")
+vim.cmd("set tabstop=4")
+vim.cmd("set softtabstop=4")
+vim.cmd("set shiftwidth=4")
+vim.g.mapleader = " "
+
+-- Initialize vim-plug
+----------------------
+local plug_path = vim.fn.stdpath('data') .. '/site/autoload/plug.vim'
+if vim.fn.empty(vim.fn.glob(plug_path)) > 0 then
+  vim.fn.system({
+    'sh', '-c',
+    'curl -fLo ' .. plug_path .. ' --create-dirs ' ..
+    'https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
+  })
+  vim.cmd 'autocmd VimEnter * PlugInstall | source $MYVIMRC'
+end
+
+
+-- vim-plug Plugin Section
+--------------------------
+vim.cmd [[
+call plug#begin('~/.config/nvim/plugged')
+
+Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
+Plug 'neovim/nvim-lspconfig'
+Plug 'ellisonleao/gruvbox.nvim'
+Plug 'nvim-lua/plenary.nvim'
+
+Plug 'nvim-telescope/telescope.nvim', { 'tag': '0.1.8' }
+Plug 'nvim-telescope/telescope-ui-select.nvim'
+
+Plug 'https://github.com/nvim-neo-tree/neo-tree.nvim.git'
+Plug 'nvim-tree/nvim-web-devicons'
+Plug 'MunifTanjim/nui.nvim'
+Plug 'nvim-lualine/lualine.nvim'
+
+Plug 'williamboman/mason.nvim'
+Plug 'williamboman/mason-lspconfig.nvim'
+Plug 'neovim/nvim-lspconfig'
+
+call plug#end()
+]]
+
+-- line numbers 
+---------------
+vim.o.number = true        -- Enable line numbers
+vim.o.relativenumber = true -- Enable relative line numbers
+vim.cmd [[
+  autocmd InsertEnter * set norelativenumber " Disable relative numbers in insert mode
+  autocmd InsertLeave * set relativenumber  " Enable relative numbers in normal mode
+]]
+
+-- Set colorscheme
+------------------
+vim.o.background = "dark" -- or "light" for light mode
+-- Default options:
+require("gruvbox").setup({
+  terminal_colors = true, -- add neovim terminal colors
+  contrast = "soft", -- can be "hard", "soft" or empty string
+  palette_overrides = {
+--    bright_green = "#ffffff",
+  }
+})
+vim.cmd("colorscheme gruvbox")
+
+-- Set up Telescope
+-------------------
+local builtin = require("telescope.builtin")
+vim.keymap.set('n', '<C-p>', builtin.find_files, {})
+vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
+vim.keymap.set('n', '<leader>fg', builtin.live_grep, {}) 
+
+-- This is your opts table
+require("telescope").setup {
+  extensions = {
+    ["ui-select"] = {
+      require("telescope.themes").get_dropdown {
+        -- even more opts
+      }
+    }
+  }
+}
+-- To get ui-select loaded and working with telescope, you need to call
+-- load_extension, somewhere after setup function:
+require("telescope").load_extension("ui-select")
+
+-- Treesitter
+-------------
+local config = require("nvim-treesitter.configs")
+config.setup({
+    ensure_installed = {"lua", "javascript", "rust", "json"},
+    highlight = { enable = true },
+    indent = { enable = true },
+})
+
+-- Neotree
+----------
+vim.keymap.set('n', '<C-n>', ':Neotree filesystem reveal left<CR>')
+
+-- Status line
+--------------
+require('lualine').setup()
+
+-- LSP configuration
+--------------------
+require('mason').setup()
+require('mason-lspconfig').setup({
+    ensure_installed = { "lua_ls", "ts_ls" }
+})
+
+local lspconfig = require('lspconfig')
+lspconfig.lua_ls.setup({})
+lspconfig.ts_ls.setup({})
+vim.keymap.set('n', 'K', vim.lsp.buf.hover, {})
+vim.keymap.set('n', '<leader>ca', vim.lsp.buf.code_action, {})
diff --git a/nvim/plugged/catppuchin b/nvim/plugged/catppuchin
new file mode 160000
index 0000000..637d99e
--- /dev/null
+++ b/nvim/plugged/catppuchin
@@ -0,0 +1 @@
+Subproject commit 637d99e638bc6f1efedac582f6ccab08badac0c6
diff --git a/nvim/plugged/gruvbox b/nvim/plugged/gruvbox
new file mode 160000
index 0000000..f1ecde8
--- /dev/null
+++ b/nvim/plugged/gruvbox
@@ -0,0 +1 @@
+Subproject commit f1ecde848f0cdba877acb0c740320568252cc482
diff --git a/nvim/plugged/gruvbox.nvim b/nvim/plugged/gruvbox.nvim
new file mode 160000
index 0000000..49d9c0b
--- /dev/null
+++ b/nvim/plugged/gruvbox.nvim
@@ -0,0 +1 @@
+Subproject commit 49d9c0b150ba70efcd831ec7b3cb8ee740067045
diff --git a/nvim/plugged/lualine.nvim b/nvim/plugged/lualine.nvim
new file mode 160000
index 0000000..2a5bae9
--- /dev/null
+++ b/nvim/plugged/lualine.nvim
@@ -0,0 +1 @@
+Subproject commit 2a5bae925481f999263d6f5ed8361baef8df4f83
diff --git a/nvim/plugged/mason-lspconfig.nvim b/nvim/plugged/mason-lspconfig.nvim
new file mode 160000
index 0000000..43894ad
--- /dev/null
+++ b/nvim/plugged/mason-lspconfig.nvim
@@ -0,0 +1 @@
+Subproject commit 43894adcf10bb1190c2184bd7c1750e8ea2b3dce
diff --git a/nvim/plugged/mason.nvim b/nvim/plugged/mason.nvim
new file mode 160000
index 0000000..e2f7f90
--- /dev/null
+++ b/nvim/plugged/mason.nvim
@@ -0,0 +1 @@
+Subproject commit e2f7f9044ec30067bc11800a9e266664b88cda22
diff --git a/nvim/plugged/neo-tree.nvim b/nvim/plugged/neo-tree.nvim
new file mode 160000
index 0000000..a77af2e
--- /dev/null
+++ b/nvim/plugged/neo-tree.nvim
@@ -0,0 +1 @@
+Subproject commit a77af2e764c5ed4038d27d1c463fa49cd4794e07
diff --git a/nvim/plugged/nui.nvim b/nvim/plugged/nui.nvim
new file mode 160000
index 0000000..b58e2bf
--- /dev/null
+++ b/nvim/plugged/nui.nvim
@@ -0,0 +1 @@
+Subproject commit b58e2bfda5cea347c9d58b7f11cf3012c7b3953f
diff --git a/nvim/plugged/nvim-lspconfig b/nvim/plugged/nvim-lspconfig
new file mode 160000
index 0000000..291a8f1
--- /dev/null
+++ b/nvim/plugged/nvim-lspconfig
@@ -0,0 +1 @@
+Subproject commit 291a8f1a319dc712db85bcc174b0cf406f0a5b69
diff --git a/nvim/plugged/nvim-treesitter b/nvim/plugged/nvim-treesitter
new file mode 160000
index 0000000..1249b4c
--- /dev/null
+++ b/nvim/plugged/nvim-treesitter
@@ -0,0 +1 @@
+Subproject commit 1249b4cfce166f26fe52e46ed36bda907d6bb577
diff --git a/nvim/plugged/nvim-web-devicons b/nvim/plugged/nvim-web-devicons
new file mode 160000
index 0000000..f09be61
--- /dev/null
+++ b/nvim/plugged/nvim-web-devicons
@@ -0,0 +1 @@
+Subproject commit f09be61d05bebcba85bb47be1931322d51b95644
diff --git a/nvim/plugged/plenary.nvim b/nvim/plugged/plenary.nvim
new file mode 160000
index 0000000..2d9b061
--- /dev/null
+++ b/nvim/plugged/plenary.nvim
@@ -0,0 +1 @@
+Subproject commit 2d9b06177a975543726ce5c73fca176cedbffe9d
diff --git a/nvim/plugged/telescope-ui-select.nvim b/nvim/plugged/telescope-ui-select.nvim
new file mode 160000
index 0000000..6e51d7d
--- /dev/null
+++ b/nvim/plugged/telescope-ui-select.nvim
@@ -0,0 +1 @@
+Subproject commit 6e51d7da30bd139a6950adf2a47fda6df9fa06d2
diff --git a/nvim/plugged/telescope.nvim b/nvim/plugged/telescope.nvim
new file mode 160000
index 0000000..a0bbec2
--- /dev/null
+++ b/nvim/plugged/telescope.nvim
@@ -0,0 +1 @@
+Subproject commit a0bbec21143c7bc5f8bb02e0005fa0b982edc026
diff --git a/rofi/config.rasi b/rofi/config.rasi
index 42967d7..7665bd7 100644
--- a/rofi/config.rasi
+++ b/rofi/config.rasi
@@ -1,213 +1,2 @@
-configuration {
-	modes: "window,drun,run,ssh";
-/*	font: "mono 12";*/
-/*	location: 0;*/
-/*	yoffset: 0;*/
-/*	xoffset: 0;*/
-/*	fixed-num-lines: true;*/
-	show-icons: true;
-/*	terminal: "rofi-sensible-terminal";*/
-/*	ssh-client: "ssh";*/
-/*	ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/
-/*	run-command: "{cmd}";*/
-/*	run-list-command: "";*/
-/*	run-shell-command: "{terminal} -e {cmd}";*/
-/*	window-command: "wmctrl -i -R {window}";*/
-/*	window-match-fields: "all";*/
-/*	icon-theme: ;*/
-/*	drun-match-fields: "name,generic,exec,categories,keywords";*/
-/*	drun-categories: ;*/
-/*	drun-show-actions: false;*/
-/*	drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";*/
-/*	drun-url-launcher: "xdg-open";*/
-/*	disable-history: false;*/
-/*	ignored-prefixes: "";*/
-/*	sort: false;*/
-/*	sorting-method: "normal";*/
-/*	case-sensitive: false;*/
-/*	cycle: true;*/
-/*	sidebar-mode: false;*/
-/*	hover-select: false;*/
-/*	eh: 1;*/
-/*	auto-select: false;*/
-/*	parse-hosts: false;*/
-/*	parse-known-hosts: true;*/
-/*	combi-modes: "window,run";*/
-/*	matching: "normal";*/
-/*	tokenize: true;*/
-/*	m: "-5";*/
-/*	filter: ;*/
-/*	dpi: -1;*/
-/*	threads: 0;*/
-/*	scroll-method: 0;*/
-/*	window-format: "{w}    {c}   {t}";*/
-/*	click-to-exit: true;*/
-/*	max-history-size: 25;*/
-/*	combi-hide-mode-prefix: false;*/
-/*	combi-display-format: "{mode} {text}";*/
-/*	matching-negate-char: '-' /* unsupported */;*/
-/*	cache-dir: ;*/
-/*	window-thumbnail: false;*/
-/*	drun-use-desktop-cache: false;*/
-/*	drun-reload-desktop-cache: false;*/
-/*	normalize-match: false;*/
-/*	steal-focus: false;*/
-/*	application-fallback-icon: ;*/
-/*	refilter-timeout-limit: 8192;*/
-/*	xserver-i300-workaround: false;*/
-/*	pid: "/run/user/1000/rofi.pid";*/
-/*	display-window: ;*/
-/*	display-windowcd: ;*/
-/*	display-run: ;*/
-/*	display-ssh: ;*/
-/*	display-drun: ;*/
-/*	display-combi: ;*/
-/*	display-keys: ;*/
-/*	display-filebrowser: ;*/
-/*	kb-primary-paste: "Control+V,Shift+Insert";*/
-/*	kb-secondary-paste: "Control+v,Insert";*/
-/*	kb-clear-line: "Control+w";*/
-/*	kb-move-front: "Control+a";*/
-/*	kb-move-end: "Control+e";*/
-/*	kb-move-word-back: "Alt+b,Control+Left";*/
-/*	kb-move-word-forward: "Alt+f,Control+Right";*/
-/*	kb-move-char-back: "Left,Control+b";*/
-/*	kb-move-char-forward: "Right,Control+f";*/
-/*	kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/
-/*	kb-remove-word-forward: "Control+Alt+d";*/
-/*	kb-remove-char-forward: "Delete,Control+d";*/
-/*	kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/
-/*	kb-remove-to-eol: "Control+k";*/
-/*	kb-remove-to-sol: "Control+u";*/
-/*	kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/
-/*	kb-accept-custom: "Control+Return";*/
-/*	kb-accept-custom-alt: "Control+Shift+Return";*/
-/*	kb-accept-alt: "Shift+Return";*/
-/*	kb-delete-entry: "Shift+Delete";*/
-/*	kb-mode-next: "Shift+Right,Control+Tab";*/
-/*	kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/
-/*	kb-mode-complete: "Control+l";*/
-/*	kb-row-left: "Control+Page_Up";*/
-/*	kb-row-right: "Control+Page_Down";*/
-/*	kb-row-up: "Up,Control+p";*/
-/*	kb-row-down: "Down,Control+n";*/
-/*	kb-row-tab: "";*/
-/*	kb-element-next: "Tab";*/
-/*	kb-element-prev: "ISO_Left_Tab";*/
-/*	kb-page-prev: "Page_Up";*/
-/*	kb-page-next: "Page_Down";*/
-/*	kb-row-first: "Home,KP_Home";*/
-/*	kb-row-last: "End,KP_End";*/
-/*	kb-row-select: "Control+space";*/
-/*	kb-screenshot: "Alt+S";*/
-/*	kb-ellipsize: "Alt+period";*/
-/*	kb-toggle-case-sensitivity: "grave,dead_grave";*/
-/*	kb-toggle-sort: "Alt+grave";*/
-/*	kb-cancel: "Escape,Control+g,Control+bracketleft";*/
-/*	kb-custom-1: "Alt+1";*/
-/*	kb-custom-2: "Alt+2";*/
-/*	kb-custom-3: "Alt+3";*/
-/*	kb-custom-4: "Alt+4";*/
-/*	kb-custom-5: "Alt+5";*/
-/*	kb-custom-6: "Alt+6";*/
-/*	kb-custom-7: "Alt+7";*/
-/*	kb-custom-8: "Alt+8";*/
-/*	kb-custom-9: "Alt+9";*/
-/*	kb-custom-10: "Alt+0";*/
-/*	kb-custom-11: "Alt+exclam";*/
-/*	kb-custom-12: "Alt+at";*/
-/*	kb-custom-13: "Alt+numbersign";*/
-/*	kb-custom-14: "Alt+dollar";*/
-/*	kb-custom-15: "Alt+percent";*/
-/*	kb-custom-16: "Alt+dead_circumflex";*/
-/*	kb-custom-17: "Alt+ampersand";*/
-/*	kb-custom-18: "Alt+asterisk";*/
-/*	kb-custom-19: "Alt+parenleft";*/
-/*	kb-select-1: "Super+1";*/
-/*	kb-select-2: "Super+2";*/
-/*	kb-select-3: "Super+3";*/
-/*	kb-select-4: "Super+4";*/
-/*	kb-select-5: "Super+5";*/
-/*	kb-select-6: "Super+6";*/
-/*	kb-select-7: "Super+7";*/
-/*	kb-select-8: "Super+8";*/
-/*	kb-select-9: "Super+9";*/
-/*	kb-select-10: "Super+0";*/
-/*	ml-row-left: "ScrollLeft";*/
-/*	ml-row-right: "ScrollRight";*/
-/*	ml-row-up: "ScrollUp";*/
-/*	ml-row-down: "ScrollDown";*/
-/*	me-select-entry: "MousePrimary";*/
-/*	me-accept-entry: "MouseDPrimary";*/
-/*	me-accept-custom: "Control+MouseDPrimary";*/
-  timeout {
-      action: "kb-cancel";
-      delay:  0;
-  }
-  filebrowser {
-      directories-first: true;
-      sorting-method:    "name";
-  }
-}
 
-/* ==========================================================================
-   Rofi color theme
-
-   Based on the Gruvbox color scheme for Vim by morhetz
-   https://github.com/morhetz/gruvbox
-
-   File: gruvbox-dark-soft.rasi
-   Desc: Gruvbox dark (soft contrast) color theme for Rofi
-   Author: bardisty <b@bah.im>
-   Source: https://github.com/bardisty/gruvbox-rofi
-   Modified: Mon Feb 12 2018 06:04:37 PST -0800
-   ========================================================================== */
-
-* {
-    /* Theme settings */
-    highlight: bold italic;
-    scrollbar: true;
-
-    /* Gruvbox dark colors */
-    gruvbox-dark-bg0-soft:     #32302f;
-    gruvbox-dark-bg1:          #3c3836;
-    gruvbox-dark-bg3:          #665c54;
-    gruvbox-dark-fg0:          #fbf1c7;
-    gruvbox-dark-fg1:          #ebdbb2;
-    gruvbox-dark-red-dark:     #cc241d;
-    gruvbox-dark-red-light:    #fb4934;
-    gruvbox-dark-yellow-dark:  #d79921;
-    gruvbox-dark-yellow-light: #fabd2f;
-    gruvbox-dark-gray:         #a89984;
-
-    /* Theme colors */
-    background:                  @gruvbox-dark-bg0-soft;
-    background-color:            @background;
-    foreground:                  @gruvbox-dark-fg1;
-    border-color:                @gruvbox-dark-gray;
-    separatorcolor:              @border-color;
-    scrollbar-handle:            @border-color;
-
-    normal-background:           @background;
-    normal-foreground:           @foreground;
-    alternate-normal-background: @gruvbox-dark-bg1;
-    alternate-normal-foreground: @foreground;
-    selected-normal-background:  @gruvbox-dark-bg3;
-    selected-normal-foreground:  @gruvbox-dark-fg0;
-
-    active-background:           @gruvbox-dark-yellow-dark;
-    active-foreground:           @background;
-    alternate-active-background: @active-background;
-    alternate-active-foreground: @active-foreground;
-    selected-active-background:  @gruvbox-dark-yellow-light;
-    selected-active-foreground:  @active-foreground;
-
-    urgent-background:           @gruvbox-dark-red-dark;
-    urgent-foreground:           @background;
-    alternate-urgent-background: @urgent-background;
-    alternate-urgent-foreground: @urgent-foreground;
-    selected-urgent-background:  @gruvbox-dark-red-light;
-    selected-urgent-foreground:  @urgent-foreground;
-}
-
-@import "gruvbox-common.rasi"
+@theme "/usr/share/rofi/themes/gruvbox-dark-soft.rasi"
diff --git a/rofi/rofi-scripts/options b/rofi/rofi-scripts/options
new file mode 100644
index 0000000..7232ce2
--- /dev/null
+++ b/rofi/rofi-scripts/options
@@ -0,0 +1,3 @@
+WLAN einschalten
+Verbindung aktivieren
+WLAN ausschalten
diff --git a/rofi/rofi-scripts/powermenu.sh b/rofi/rofi-scripts/powermenu.sh
new file mode 100644
index 0000000..1ac52c2
--- /dev/null
+++ b/rofi/rofi-scripts/powermenu.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+OPTIONS="Poweroff|Reboot|Log out"
+
+CHOICE=$(echo -e $OPTIONS | rofi -dmenu -p "Powermenu:" -sep '|')
+
+case "$CHOICE" in
+    "Poweroff")
+        systemctl poweroff &
+        ;;
+    "Reboot")
+        systemctl reboot &
+        ;;
+    "Log out")
+        hyprctl dispatch exit &
+        ;;
+    *)
+        notify-send "Invalid choice or canceled"
+        ;;
+esac
+
diff --git a/rofi/rofi-scripts/wifi-manager.sh b/rofi/rofi-scripts/wifi-manager.sh
new file mode 100644
index 0000000..defbe69
--- /dev/null
+++ b/rofi/rofi-scripts/wifi-manager.sh
@@ -0,0 +1,67 @@
+#!/bin/bash
+
+connect_known_wifi() {
+    KNOWN_WIFIS=$(nmcli connection show --active | awk 'NR>1 {print $1}')
+    if [[ -z "$KNOWN_WIFIS" ]]; then
+        notify-send "No known WiFi networks found"
+        return
+    fi
+    SELECTED=$(echo -e "$KNOWN_WIFIS" | rofi -dmenu -p "Known WiFi:")
+    if [[ -n "$SELECTED" ]]; then
+        nmcli connection up "$SELECTED" && notify-send "Connected to $SELECTED" || notify-send "Failed to connect to $SELECTED"
+    fi
+}
+
+# Function to scan for WiFi networks and connect
+scan_wifi() {
+    SCANNED_WIFIS=$(nmcli -f SSID,BARS device wifi list | awk 'NR>1')
+    if [[ -z "$SCANNED_WIFIS" ]]; then
+        notify-send "No WiFi networks found"
+        return
+    fi
+    SELECTED=$(echo -e "$SCANNED_WIFIS" | rofi -dmenu -p "Available WiFi:")
+    if [[ -n "$SELECTED" ]]; then
+        PASSWORD=$(rofi -dmenu -p "Password for $SELECTED (leave blank if none):")
+        nmcli device wifi connect "$SELECTED" password "$PASSWORD" && notify-send "Connected to $SELECTED" || notify-send "Failed to connect to $SELECTED"
+    fi
+}
+
+WIFI_STATE=$(nmcli radio wifi)
+if [[ "$WIFI_STATE" == "enabled" ]]; then
+    OPTIONS="Disable WiFi\n"
+    CURRENT_NETWORK=$(nmcli connection show --active | grep 'wlan0' | awk 'NR {print $1}')
+    if [[ "$CURRENT_NETWORK" != "" ]]; then
+        OPTIONS="${OPTIONS}Disconnect $CURRENT_NETWORK\n"
+    fi
+else
+    OPTIONS="Enable WiFi\n"
+fi
+
+OPTIONS="${OPTIONS}Connect to known WiFi\nScan for WiFi\nEdit connections"
+
+CHOICE=$(echo -e $OPTIONS | rofi -dmenu -p "Wifi manager")
+
+case "$CHOICE" in
+    "Enable WiFi")
+        nmcli radio wifi on && notify-send "WiFi enabled"
+        ;;
+    "Disable WiFi")
+        nmcli radio wifi off && notify-send "WiFi disabled"
+        ;;
+    "Connect to known WiFi")
+        connect_known_wifi
+        ;;
+    "Scan for WiFi")
+        scan_wifi
+        ;;
+    "Edit connections")
+        nm-connection-editor &
+        ;;
+    "Disconnect $CURRENT_NETWORK")
+        nmcli connection down id $CURRENT_NETWORK &
+        ;;
+    *)
+        notify-send "Invalid choice or canceled"
+        ;;
+esac
+
diff --git a/waybar/config.jsonc b/waybar/config.jsonc
new file mode 100644
index 0000000..caf9fc8
--- /dev/null
+++ b/waybar/config.jsonc
@@ -0,0 +1,132 @@
+// -*- mode: jsonc -*-
+{
+    // "layer": "top", // Waybar at top layer
+    // "position": "bottom", // Waybar position (top|bottom|left|right)
+    "height": 30, // Waybar height (to be removed for auto height)
+    // "width": 1280, // Waybar width
+    "spacing": 0, // Gaps between modules (4px)
+    // Choose the order of the modules
+    "modules-left": [
+        "hyprland/workspaces",
+//	"wlr/taskbar",
+        "hyprland/window"
+    ],
+    "modules-center": [
+        "clock"
+    ],
+    "modules-right": [
+        "pulseaudio",
+        "network",
+        "power-profiles-daemon",
+        "backlight",
+        "battery",
+        "battery#bat2",
+        "tray",
+        "custom/power"
+    ],
+    "hyprland/workspaces": {
+        "on-click": "activate",
+        "format": "{windows}",
+        "format-icons": {
+            "active": "",
+            "default": "",
+            "empty": ""
+        },
+        "window-rewrite-default": "",
+        "window-rewrite": {
+            "title<.*Mullvad.*>": "", // Windows whose titles contain "youtube"
+            "class<firefox>": "", // Windows whose classes are "firefox"
+            "class<kitty>": "", // Windows that contain "foot" in either class or title. For optimization reasons, it will only match against a title if at least one other window explicitly matches against a title.
+            "class<steam>": "",
+            "code": "󰨞",
+            "class<nemo>": "",
+            "class<vlc>": "",
+            "class<discord>": "",
+            "title<.*Minecraft.*>": ""
+        },
+        "format-window-separator": " "
+    },
+    "tray": {
+        // "icon-size": 21,
+        "spacing": 10
+    },
+    "clock": {
+        // "timezone": "America/New_York",
+	"interval": 1,
+	"format": "{:%H:%M:%S}",
+        "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
+        "format-alt": "{:%Y-%m-%d}"
+    },
+    "backlight": {
+        "device": "intel_backlight",
+        "format": " {percent}%",
+        "on-scroll-up": "light -A 5",
+        "on-scroll-down": "light -U 5",
+	"on-click": "light -S 50"
+    },
+    "battery": {
+        "interval": 20,
+        "states": {
+            "good": 85,
+            "warning": 30,
+            "critical": 15
+        },
+        "format": "{icon} {capacity}% {time}",
+        "tooltip-format": "Zeit Verbleibend: {time}",
+        "tooltip": true,
+        "format-time": "{H}:{m}",
+        "format-discharging-warning": " {icon} {capacity}% {time}",
+        "format-charging": " {icon} {capacity}% {time}",
+        "format-plugged": " {icon} {capacity}%",
+        // "format-good": "", // An empty format will hide the module
+        // "format-full": "",
+        "format-icons": ["", "", "", "", ""],
+        "full-at": 96,
+        "design-capacity": true,
+    },
+    "battery#bat2": {
+        "bat": "BAT2"
+    },
+    "power-profiles-daemon": {
+      "format": "{icon}",
+      "tooltip-format": "Power profile: {profile}\nDriver: {driver}",
+      "tooltip": true,
+      "format-icons": {
+        "default": "",
+        "performance": "",
+        "balanced": "",
+        "power-saver": ""
+      }
+    },
+    "network": {
+        // "interface": "wlp2*", // (Optional) To force the use of this interface
+        "format-wifi": " {essid} ({signalStrength}%)",
+        "format-ethernet": " {ipaddr}/{cidr}",
+        "tooltip-format": "{gwaddr}",
+        "format-linked": "{ifname} (No IP)",
+        "format-disconnected": " Disconnected",
+        "format-alt": " {ipaddr}"
+    },
+    "pulseaudio": {
+        // "scroll-step": 1, // %, can be a float
+        "format": "{icon} {volume}% {format_source}",
+        "format-bluetooth": "{volume}% {icon} {format_source}",
+        "format-bluetooth-muted": " {icon} {format_source}",
+        "format-muted": "  {format_source}",
+        "format-source": " {volume}%",
+        "format-source-muted": "",
+        "format-icons": {
+            "headphone": "",
+            "hands-free": "",
+            "headset": "",
+            "phone": "",
+            "portable": "",
+            "car": "",
+            "default": ["", "", ""]
+        },
+	"on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
+        "on-click-right": "pavucontrol"
+
+    }
+}
+
diff --git a/waybar/launch-waybar.sh b/waybar/launch-waybar.sh
new file mode 100644
index 0000000..6527d33
--- /dev/null
+++ b/waybar/launch-waybar.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+killall waybar
+
+waybar &
diff --git a/waybar/light_in_range.sh b/waybar/light_in_range.sh
new file mode 100644
index 0000000..f24c7ed
--- /dev/null
+++ b/waybar/light_in_range.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+if hen
+	exit 1
+else
+  echo "String not found."
+fi
diff --git a/waybar/style.css b/waybar/style.css
new file mode 100644
index 0000000..caf0d6d
--- /dev/null
+++ b/waybar/style.css
@@ -0,0 +1,107 @@
+* {
+  /* `otf-font-awesome` is required to be installed for icons */
+  font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif;
+  font-size: 14px; }
+
+window#waybar {
+  background-color: black;
+  color: white; }
+
+#clock {
+  color: black;
+  background-color: white; }
+
+/* you can set a style on hover for any module like this */
+#pulseaudio {
+  background-color: white;
+  color: black; }
+  #pulseaudio:hover {
+    background-color: lightgray; }
+  #pulseaudio.muted {
+    background-color: #90b1b1;
+    color: #2a5c45; }
+
+#network {
+  background-color: white;
+  color: black; }
+
+/* Using steps() instead of linear as a timing function to limit cpu usage */
+#battery {
+  background-color: white;
+  color: black; }
+  #battery.warning:not(.charging) {
+    background-color: red;
+    color: #ffffff; }
+
+#backlight {
+  color: black;
+  background-color: white; }
+
+#tray {
+  background-color: white;
+  color: black; }
+
+#workspaces button {
+  opacity: 1;
+  margin: 0 2px;
+  color: black;
+  background-color: lightgray;
+  border-radius: 0px; }
+  #workspaces button:hover {
+    color: black; }
+  #workspaces button.empty {
+    background-color: gray; }
+  #workspaces button.active {
+    background-color: white; }
+  #workspaces button.urgent {
+    background-color: #eb4d4b; }
+
+#clock,
+#battery,
+#cpu,
+#memory,
+#disk,
+#temperature,
+#backlight,
+#network,
+#pulseaudio,
+#wireplumber,
+#custom-media,
+#tray,
+#mode,
+#idle_inhibitor,
+#scratchpad,
+#power-profiles-daemon,
+#mpd {
+  padding: 0 10px;
+  margin: 0 2px; }
+
+#window,
+#workspaces {
+  margin: 0 4px; }
+
+/* If workspaces is the leftmost module, omit left margin */
+.modules-left > widget:first-child > #workspaces {
+  margin-left: 0; }
+
+/* If workspaces is the rightmost module, omit right margin */
+.modules-right > widget:last-child > #workspaces {
+  margin-right: 0; }
+
+#power-profiles-daemon {
+  padding-right: 15px; }
+
+#power-profiles-daemon.performance {
+  background-color: #f53c3c;
+  color: #ffffff; }
+
+#power-profiles-daemon.balanced {
+  background-color: #2980b9;
+  color: #ffffff; }
+
+#power-profiles-daemon.power-saver {
+  background-color: #2ecc71;
+  color: #000000; }
+
+label:focus {
+  background-color: #000000; }
diff --git a/waybar/style.scss b/waybar/style.scss
new file mode 100644
index 0000000..aaf64a8
--- /dev/null
+++ b/waybar/style.scss
@@ -0,0 +1,143 @@
+$background: white;
+$foreground: black;
+
+* {
+    /* `otf-font-awesome` is required to be installed for icons */
+    font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif;
+    font-size: 14px;
+}
+
+window#waybar {
+    background-color: $foreground;
+    color: $background;
+}
+
+#clock {
+    color: $foreground;
+    background-color: $background;
+}
+
+/* you can set a style on hover for any module like this */
+#pulseaudio {
+  background-color: $background;
+  color: $foreground;
+
+  &:hover {
+    background-color: lightgray;
+  }
+
+  &.muted {
+    background-color: #90b1b1;
+    color: #2a5c45;
+  }
+
+}
+
+#network {
+    background-color: $background;
+    color: $foreground
+}
+
+/* Using steps() instead of linear as a timing function to limit cpu usage */
+#battery {
+  background-color: $background;
+  color: $foreground;
+  &.warning:not(.charging) {
+    background-color: red;
+    color: #ffffff;
+  }
+}
+
+#backlight {
+  color: $foreground;
+  background-color: $background;
+}
+
+#tray {
+    background-color: $background;
+    color: $foreground;
+}
+
+#workspaces {
+  button {
+    margin: 0 2px;
+    color: $foreground;
+    background-color: lightgray;
+    border-radius: 0px;
+    cursor: pointer;
+
+    &:hover {
+      color: $foreground;
+    }
+
+    &.empty {
+      background-color: gray;
+    }
+
+    &.active {
+      background-color: $background;
+    }
+
+    &.urgent {
+      background-color: #eb4d4b;
+    }
+  }
+}
+
+#clock,
+#battery,
+#cpu,
+#memory,
+#disk,
+#temperature,
+#backlight,
+#network,
+#pulseaudio,
+#wireplumber,
+#custom-media,
+#tray,
+#mode,
+#idle_inhibitor,
+#scratchpad,
+#power-profiles-daemon,
+#mpd {
+    padding: 0 10px;
+    margin: 0 2px;
+}
+#window,
+#workspaces {
+    margin: 0 4px;
+}
+
+/* If workspaces is the leftmost module, omit left margin */
+.modules-left > widget:first-child > #workspaces {
+    margin-left: 0;
+}
+
+/* If workspaces is the rightmost module, omit right margin */
+.modules-right > widget:last-child > #workspaces {
+    margin-right: 0;
+}
+#power-profiles-daemon {
+    padding-right: 15px;
+}
+
+#power-profiles-daemon.performance {
+    background-color: #f53c3c;
+    color: #ffffff;
+}
+
+#power-profiles-daemon.balanced {
+    background-color: #2980b9;
+    color: #ffffff;
+}
+
+#power-profiles-daemon.power-saver {
+    background-color: #2ecc71;
+    color: #000000;
+}
+
+label:focus {
+    background-color: #000000;
+}
+
-- 
GitLab