diff --git a/.gitignore b/.gitignore
index ed8ebf5..2a4b4b0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,7 @@
-__pycache__
\ No newline at end of file
+__pycache__
+/emacs.mine/.config/emacs.mine/elpa/
+/emacs.mine/.config/emacs.mine/init.el
+/emacs.mine/.config/emacs.mine/parinfer-rust/
+/emacs.mine/.config/emacs.mine/straight/
+/emacs.mine/.config/emacs.mine/var/
+/hypr/.face
diff --git a/bin/bin/prayer-times b/bin/bin/prayer-times
index d5f389e..395e0d7 100755
--- a/bin/bin/prayer-times
+++ b/bin/bin/prayer-times
@@ -8,7 +8,7 @@
# Calculation Method: https://api.aladhan.com/v1/methods
method='4'
# Print Text Language (en/ar)
-print_lang="ar"
+print_lang="en"
# Notifcation Daemon
notify="mako"
# ----------------------- #
diff --git a/hypr/.config/hypr/hyprland.conf b/hypr/.config/hypr/hyprland.conf
new file mode 100644
index 0000000..9ee02e3
--- /dev/null
+++ b/hypr/.config/hypr/hyprland.conf
@@ -0,0 +1,457 @@
+
+# #######################################################################################
+# AUTOGENERATED HYPR CONFIG.
+# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
+# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
+# #######################################################################################
+
+#autogenerated = 1 # remove this line to remove the warning
+
+# This is an example Hyprland config file.
+# Refer to the wiki for more information.
+# https://wiki.hyprland.org/Configuring/
+
+# Please note not all available settings / options are set here.
+# For a full list, see the wiki
+
+# 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
+
+
+################
+### MONITORS ###
+################
+$mainMonitor=DVI-D-1
+$secondMonitor=DP-1
+
+# See https://wiki.hyprland.org/Configuring/Monitors/
+# MAIN:
+monitor=$mainMonitor,preferred,1920x395,auto
+# LEFT:
+monitor=$secondMonitor,preferred,auto,auto, transform, 3
+monitor = , preferred, auto, 1
+
+
+###################
+### MY PROGRAMS ###
+###################
+
+# See https://wiki.hyprland.org/Configuring/Keywords/
+
+# Set programs that you use
+$terminal = kitty
+$fileManager = dolphin
+$menu = rofi -show drun
+
+
+#################
+### AUTOSTART ###
+#################
+
+# Autostart necessary processes (like notifications daemons, status bars, etc.)
+# Or execute your favorite apps at launch like this:
+
+exec-once = nm-applet & (sleep 3 && nextcloud --background ) & (sleep 3 && udiskie --tray ) &
+exec-once = (sleep 3 && kdeconnect-indicator)
+exec-once = waybar & hyprpaper
+
+exec-once = [workspace 1 silent] firefox
+exec-once = [workspace 8 silent] $terminal
+exec-once = [workspace 9 silent] keepassxc
+exec-once = [workspace 9 silent] emacs
+exec-once = [workspace 10 silent] thunderbird
+
+# cliphsit https://wiki.archlinux.org/title/Hyprland
+exec-once = wl-paste --type text --watch cliphist store
+exec-once = wl-paste --type image --watch cliphist store
+
+# lock if left on
+exec-once = swayidle -w
+
+
+#############################
+### 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 = 5
+ gaps_out = 0, 10, 10, 10
+
+ 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)
+
+ col.inactive_border = rgba(FF000055) rgba(FFFF0055) rgba(00FF0055) rgba(00FFFF55) rgba(0000FF55) rgba(FF00FF55) 270deg
+ col.active_border = rgba(FF0000ee) rgba(FFFF00ee) rgba(00FF00ee) rgba(00FFFFee) rgba(0000FFee) rgba(FF00FFee) 270deg
+ bezier = linear, 0.0, 0.0, 1.0, 1.0
+ animation = borderangle, 1, 100, linear, loop
+
+
+
+ # 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 = 10
+
+ # Change transparency of focused and unfocused windows
+ active_opacity = 1.0
+ inactive_opacity = 1.0
+
+ shadow {
+ enabled = true
+ range = 4
+ render_power = 3
+ color = rgba(1a1a1aee)
+ }
+
+ # https://wiki.hyprland.org/Configuring/Variables/#blur
+ blur {
+ enabled = true
+ popups = false
+ special = true # this is an expensive operation
+ size = 3
+ passes = 1
+
+ vibrancy = 0.1696
+ }
+}
+
+
+# https://wiki.hyprland.org/Configuring/Variables/#animations
+animations {
+ enabled = 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[t1], gapsout:0, gapsin:0
+# workspace = w[tg1], gapsout:0, gapsin:0
+# workspace = f[1], gapsout:0, gapsin:0
+# windowrulev2 = bordersize 0, floating:0, onworkspace:w[t1]
+# windowrulev2 = rounding 0, floating:0, onworkspace:w[t1]
+# windowrulev2 = bordersize 0, floating:0, onworkspace:w[tg1]
+# windowrulev2 = rounding 0, floating:0, onworkspace:w[tg1]
+# 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 + shift + t in the keybinds section below
+ preserve_split = true # You probably want this
+ force_split = 2 # right or bottom
+}
+
+# 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. :(
+ enable_swallow = false
+ swallow_regex = ^(Alacritty|kitty|footclient)$
+ swallow_exception_regex = ^(ueberzugpp_.*)
+}
+
+
+#############
+### INPUT ###
+#############
+
+# https://wiki.hyprland.org/Configuring/Variables/#input
+input {
+ kb_layout = us
+ kb_variant =
+ kb_model =
+ kb_options = altwin:swap_lalt_lwin, ctrl:swapcaps
+ kb_rules =
+
+ follow_mouse = 1
+
+ sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
+
+ touchpad {
+ natural_scroll = false
+ }
+}
+
+#
+#
+# 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
+$secMod = ALT # ALT
+
+# Programs
+bind = $mainMod, Return, exec, $terminal
+bind = $mainMod SHIFT, Q, killactive,
+# bind = $mainMod, M, exit,
+# bind = $mainMod, E, exec, $fileManager
+bind = $mainMod, E, exec, emacsclient -nc -alternate-editor="emacs"
+bind = $mainMod, R, exec, $menu
+bind = $mainMod, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy
+bind = , Print, exec, grim -g "$(slurp -d)" - | wl-copy
+
+# Lock
+bind = $mainMod, HOME, exec, hyprlock >> ~/hyprlock_logfile.txt
+# from https://github.com/end-4/dots-hyprland/blob/main/.config/hypr/hyprland/keybinds.conf
+bind = $mainMod, Tab, focuscurrentorlast # [hidden] sus keybind
+bind = $mainMod, Tab, bringactivetotop, # [hidden] bring it to the top
+
+# Window Modes
+bind = $mainMod, s, togglefloating,
+bind = $mainMod SHIFT, t, pseudo, # dwindle
+bind = $mainMod, t, settiled, # dwindle
+bind = $mainMod, p, pin, # dwindle
+bind = $mainMod, m, fullscreen, 1 # monocole layout
+bind = $mainMod, f, fullscreen, 0 # real fullscreen
+#bind = $mainMod, J, togglesplit, # dwindle
+
+# Move focus with mainMod + arrow keys
+bind = $mainMod, H, movefocus, l
+bind = $mainMod, L, movefocus, r
+bind = $mainMod, K, movefocus, u
+bind = $mainMod, J, movefocus, d
+
+# swap focus with mainMod + arrow keys
+bind = $mainMod + SHIFT, H, swapwindow, l
+bind = $mainMod + SHIFT, L, swapwindow, r
+bind = $mainMod + SHIFT, K, swapwindow, u
+bind = $mainMod + SHIFT, J, swapwindow, d
+
+# 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, 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, movetoworkspacesilent, 1
+bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
+bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
+bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
+bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
+bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
+bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
+bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
+bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
+bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
+
+## Move to Next/Prev Workspace
+# (Same Monitor, already created)
+bind = $mainMod, I, workspace, m+1
+bind = $mainMod, U, workspace, m-1
+
+## Move to Next/Prev Workspace
+# (Same Monitor, already created)
+bind = $mainMod SHIFT Control_L, I, workspace, r+1
+bind = $mainMod SHIFT Control_L, U, workspace, r-1
+
+## Swap Workspace
+# bind = $mainMod Control_L, I, movecurrentworkspacetomonitor, r+1
+# bind = $mainMod Control_L, U, movecurrentworkspacetomonitor, r-1
+#
+#bind = $mainMod Control_L, 1, focusworkspaceoncurrentmonitor, 1
+#bind = $mainMod Control_L, 2, focusworkspaceoncurrentmonitor, 2
+#bind = $mainMod Control_L, 3, focusworkspaceoncurrentmonitor, 3
+#bind = $mainMod Control_L, 4, focusworkspaceoncurrentmonitor, 4
+#bind = $mainMod Control_L, 5, focusworkspaceoncurrentmonitor, 5
+#bind = $mainMod Control_L, 6, focusworkspaceoncurrentmonitor, 6
+#bind = $mainMod Control_L, 7, focusworkspaceoncurrentmonitor, 7
+#bind = $mainMod Control_L, 8, focusworkspaceoncurrentmonitor, 8
+#bind = $mainMod Control_L, 9, focusworkspaceoncurrentmonitor, 9
+
+
+#(Different Monitor)
+#bind = $mainMod, I, workspace, r+1
+#bind = $mainMod, U, workspace, r-1
+
+# Move Window to Next/Prev Workspace (Same Monitor)
+bind = $mainMod SHIFT, I, movetoworkspacesilent, r+1
+bind = $mainMod SHIFT, U, movetoworkspacesilent, r-1
+
+
+# Example special workspace (scratchpad)
+bind = $mainMod, x, togglespecialworkspace, magic
+bind = $mainMod SHIFT, x, movetoworkspacesilent, special:magic
+
+#bind = $mainMod, N, movetoworkspacesilent, special:minimized
+#bind = $mainMod SHIFT, N, togglespecialworkspace, minimized
+#bind = $mainMod SHIFT, N, movetoworkspace, +0
+
+# https://github.com/hyprwm/Hyprland/issues/995#issuecomment-2069669681
+bind = $mainMod, N, movetoworkspacesilent, special:minimized
+bind = $mainMod SHIFT, N, togglespecialworkspace, minimized
+bind = $mainMod SHIFT, N, submap, minimized
+submap = minimized
+bind = , F4, killactive
+bind = , Return, movetoworkspace, +0
+bind = , Return, submap, reset
+bind = , mouse:272, movetoworkspace, +0
+bind = , mouse:272, submap, reset
+bind = , escape, togglespecialworkspace, minimized
+bind = , escape, submap, reset
+submap = reset
+
+
+
+
+# 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, brightnessctl s 10%+
+bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
+
+# 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, ^(kitty)$
+
+# 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
+
+# Fix ueberzugpp
+windowrulev2 = noanim, class:^(ueberzugpp)
+windowrulev2 = workspace 4 silent, class:^(VGA_SIM)
+
+# Fix Matlab
+windowrulev2 = nofocus, class: ^(MATLAB [\w\d]* - academic use)$, title: ^(Command HistoryWindow)$
+windowrulev2 = noborder, class: ^(MATLAB [\w\d]* - academic use)$, title: ^(Command HistoryWindow)$
+windowrulev2 = opacity 1.0 override, class: ^(MATLAB [\w\d]* - academic use)$, title: ^(Command HistoryWindow)$
+
+windowrulev2 = nofocus, class: ^(MATLAB [\w\d]* - academic use)$, title: ^(TabCompletionPopup)$
+windowrulev2 = noborder, class: ^(MATLAB [\w\d]* - academic use)$, title: ^(TabCompletionPopup)$
+windowrulev2 = opacity 1.0 override, class: ^(MATLAB [\w\d]* - academic use)$, title: ^(TabCompletionPopup)$
+
+windowrulev2 = nofocus, class: ^(MATLAB [\w\d]* - academic use)$, title: ^(FunctionHints)$
+windowrulev2 = noborder, class: ^(MATLAB [\w\d]* - academic use)$, title: ^(FunctionHints)$
+windowrulev2 = opacity 1.0 override, class: ^(MATLAB [\w\d]* - academic use)$, title: ^(FunctionHints)$
+
+windowrulev2 = nofocus, class: ^(MATLAB [\w\d]* - academic use)$, title: ^(DefaultOverlayManager\.JWindow)$
+
+# SMART GAPS ()
+#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]
+
+# Prayer times
+windowrulev2 = float,class:(yad)
+windowrulev2 = move cursor -50% 25,title:(Prayers)
+
+# bind workspaces
+#workspace = [1-5], monitor: $mainMonitor
+workspace=1, monitor:$mainMonitor
+workspace=2, monitor:$mainMonitor
+workspace=3, monitor:$mainMonitor
+workspace=4, monitor:$mainMonitor
+workspace=5, monitor:$mainMonitor
+workspace=6, monitor:$secondMonitor
+workspace=7, monitor:$secondMonitor
+workspace=8, monitor:$secondMonitor
+workspace=9, monitor:$secondMonitor
+workspace=10, monitor:$secondMonitor
+#
diff --git a/hypr/.config/hypr/hyprlock.conf b/hypr/.config/hypr/hyprlock.conf
new file mode 100644
index 0000000..12e290f
--- /dev/null
+++ b/hypr/.config/hypr/hyprlock.conf
@@ -0,0 +1,111 @@
+# # MIT License
+# # https://github.com/catppuccin/hyprlock
+# Copyright (c) 2021 Catppuccin
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+source = $HOME/.config/hypr/mocha.conf
+
+$accent = $mauve
+$accentAlpha = $mauveAlpha
+$font = JetBrainsMono Nerd Font
+
+# GENERAL
+general {
+ disable_loading_bar = true
+ hide_cursor = true
+}
+
+# BACKGROUND
+background {
+ monitor =
+ path = $HOME/.config/background
+ blur_passes = 0
+ color = $base
+}
+
+# LAYOUT
+label {
+ monitor =
+ text = Layout: $LAYOUT
+ color = $text
+ font_size = 25
+ font_family = $font
+ position = 30, -30
+ halign = left
+ valign = top
+}
+
+# TIME
+label {
+ monitor =
+ text = $TIME
+ color = $text
+ font_size = 90
+ font_family = $font
+ position = -30, 0
+ halign = right
+ valign = top
+}
+
+# DATE
+label {
+ monitor =
+ text = cmd[update:43200000] date +"%A, %d %B %Y"
+ color = $text
+ font_size = 25
+ font_family = $font
+ position = -30, -150
+ halign = right
+ valign = top
+}
+
+# USER AVATAR
+image {
+ monitor =
+ path = $HOME/.face
+ size = 100
+ border_color = $accent
+ position = 0, 75
+ halign = center
+ valign = center
+}
+
+# INPUT FIELD
+input-field {
+ monitor =
+ size = 300, 60
+ outline_thickness = 4
+ dots_size = 0.2
+ dots_spacing = 0.2
+ dots_center = true
+ outer_color = $accent
+ inner_color = $surface0
+ font_color = $text
+ fade_on_empty = false
+ placeholder_text = Logged in as $USER
+ hide_input = false
+ check_color = $accent
+ fail_color = $red
+ fail_text = $FAIL ($ATTEMPTS)
+ capslock_color = $yellow
+ position = 0, -47
+ halign = center
+ valign = center
+}
diff --git a/hypr/.config/hypr/hyprpaper.conf b/hypr/.config/hypr/hyprpaper.conf
new file mode 100644
index 0000000..fecd263
--- /dev/null
+++ b/hypr/.config/hypr/hyprpaper.conf
@@ -0,0 +1,3 @@
+preload = ~/Pictures/wallhaven-yxdvjx.png
+wallpaper = DVI-D-1, ~/Pictures/wallhaven-yxdvjx.png
+wallpaper = , ~/Pictures/wallhaven-yxdvjx.png
diff --git a/hypr/.config/hypr/mocha.conf b/hypr/.config/hypr/mocha.conf
new file mode 100644
index 0000000..27794b9
--- /dev/null
+++ b/hypr/.config/hypr/mocha.conf
@@ -0,0 +1,100 @@
+# https://github.com/catppuccin/hyprland/blob/main/themes/mocha.conf
+# MIT License
+#
+# Copyright (c) 2021 Catppuccin
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+$rosewater = rgb(f5e0dc)
+$rosewaterAlpha = f5e0dc
+
+$flamingo = rgb(f2cdcd)
+$flamingoAlpha = f2cdcd
+
+$pink = rgb(f5c2e7)
+$pinkAlpha = f5c2e7
+
+$mauve = rgb(cba6f7)
+$mauveAlpha = cba6f7
+
+$red = rgb(f38ba8)
+$redAlpha = f38ba8
+
+$maroon = rgb(eba0ac)
+$maroonAlpha = eba0ac
+
+$peach = rgb(fab387)
+$peachAlpha = fab387
+
+$yellow = rgb(f9e2af)
+$yellowAlpha = f9e2af
+
+$green = rgb(a6e3a1)
+$greenAlpha = a6e3a1
+
+$teal = rgb(94e2d5)
+$tealAlpha = 94e2d5
+
+$sky = rgb(89dceb)
+$skyAlpha = 89dceb
+
+$sapphire = rgb(74c7ec)
+$sapphireAlpha = 74c7ec
+
+$blue = rgb(89b4fa)
+$blueAlpha = 89b4fa
+
+$lavender = rgb(b4befe)
+$lavenderAlpha = b4befe
+
+$text = rgb(cdd6f4)
+$textAlpha = cdd6f4
+
+$subtext1 = rgb(bac2de)
+$subtext1Alpha = bac2de
+
+$subtext0 = rgb(a6adc8)
+$subtext0Alpha = a6adc8
+
+$overlay2 = rgb(9399b2)
+$overlay2Alpha = 9399b2
+
+$overlay1 = rgb(7f849c)
+$overlay1Alpha = 7f849c
+
+$overlay0 = rgb(6c7086)
+$overlay0Alpha = 6c7086
+
+$surface2 = rgb(585b70)
+$surface2Alpha = 585b70
+
+$surface1 = rgb(45475a)
+$surface1Alpha = 45475a
+
+$surface0 = rgb(313244)
+$surface0Alpha = 313244
+
+$base = rgb(1e1e2e)
+$baseAlpha = 1e1e2e
+
+$mantle = rgb(181825)
+$mantleAlpha = 181825
+
+$crust = rgb(11111b)
+$crustAlpha = 11111b
diff --git a/hypr/.config/swayidle/config b/hypr/.config/swayidle/config
new file mode 100644
index 0000000..3840d5b
--- /dev/null
+++ b/hypr/.config/swayidle/config
@@ -0,0 +1,3 @@
+timeout 300 'hyprlock >> ~/hyprlock_logfile.txt'
+timeout 315 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on'
+before-sleep 'hyprlock'
diff --git a/kitty/.config/kitty/kitty.conf b/kitty/.config/kitty/kitty.conf
index c131bb8..1e096e3 100644
--- a/kitty/.config/kitty/kitty.conf
+++ b/kitty/.config/kitty/kitty.conf
@@ -578,7 +578,7 @@ cursor #d0d0d0
#: The foreground and background colors
-background_opacity 0.7
+background_opacity 0.9
#: 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
@@ -750,7 +750,7 @@ color15 #ebdbb2
#: Advanced {{{
-# shell .
+shell /usr/bin/zsh
#: The shell program to execute. The default value of . means to use
#: whatever shell is set as the default shell for the current user.
diff --git a/waybar/.config/waybar/config.jsonc b/waybar/.config/waybar/config.jsonc
new file mode 100644
index 0000000..7eef84e
--- /dev/null
+++ b/waybar/.config/waybar/config.jsonc
@@ -0,0 +1,101 @@
+{
+ "layer": "top", // Waybar at top layer
+ "position": "top", // Waybar position (top|bottom|left|right)
+ // "width": 1280, // Waybar width
+ // Choose the order of the modules
+ "reload_style_on_change": true,
+ "modules-left": ["hyprland/workspaces"],
+ "modules-center": ["custom/music"],
+ // "modules-right": ["pulseaudio", "cpu", "backlight", "battery", "clock", "tray", "custom/lock", "custom/power"],
+ "modules-right": ["pulseaudio","custom/prayers", "network", "cpu", "memory", "clock", "tray", "custom/lock", "custom/power"],
+ "hyprland/workspaces": {
+ "disable-scroll": true,
+ "sort-by-name": true,
+ //"format": " {icon} ",
+ "format-icons": {
+ "default": ""
+ }
+ },
+ "tray": {
+ "icon-size": 10,
+ "spacing": 10
+ },
+ "network": {
+ "interface": "enp6s*",
+ "format": "{ifname}",
+ "format-wifi": "{essid} ({signalStrength}%) ",
+ "format-ethernet": "{bandwidthUpBytes} /{bandwidthDownBytes} ",
+ "format-disconnected": "", //An empty format will hide the module.
+ "tooltip-format": "{ifname} via {gwaddr} ",
+ "tooltip-format-wifi": "{essid} ({signalStrength}%) ",
+ "tooltip-format-ethernet": "{ifname} via {gwaddr} ",
+ "tooltip-format-disconnected": "Disconnected",
+ "max-length": 50
+ },
+ "cpu": {
+ "interval": 10,
+ "format": " {}%",
+ "max-length": 10
+ },
+ "memory": {
+ "interval": 30,
+ "format": "{used:0.1f}G/{total:0.1f}G "
+ },
+ "custom/music": {
+ "format": " {}",
+ "escape": true,
+ "interval": 5,
+ "tooltip": false,
+ "exec": "playerctl metadata --format='{{ title }}'",
+ "on-click": "playerctl play-pause",
+ "max-length": 50
+ },
+ "custom/prayers": {
+ "interval": 60,
+ "return-type": "json",
+ "exec": "$HOME/bin/prayer-times waybar",
+ "on-click": "$HOME/bin/prayer-times yad",
+ "format": " {}"
+ },
+ "clock": {
+ "timezone": "Asia/Riyadh",
+ "tooltip-format": "{:%Y %B}\n{calendar}",
+ "format-alt": " {:%d/%m/%Y}",
+ "format": " {:%H:%M}"
+ },
+ "backlight": {
+ "device": "intel_backlight",
+ "format": "{icon}",
+ "format-icons": ["", "", "", "", "", "", "", "", ""]
+ },
+ "battery": {
+ "states": {
+ "warning": 30,
+ "critical": 15
+ },
+ "format": "{icon}",
+ "format-charging": "",
+ "format-plugged": "",
+ "format-alt": "{icon}",
+ "format-icons": ["", "", "", "", "", "", "", "", "", "", "", ""]
+ },
+ "pulseaudio": {
+ // "scroll-step": 1, // %, can be a float
+ "format": "{icon} {volume}%",
+ "format-muted": "",
+ "format-icons": {
+ "default": ["", "", " "]
+ },
+ "on-click": "pavucontrol"
+ },
+ "custom/lock": {
+ "tooltip": false,
+ "on-click": "sh -c '(sleep 0.5s; hyprlock)' & disown",
+ "format": ""
+ },
+ "custom/power": {
+ "tooltip": false,
+ "on-click": "wlogout &",
+ "format": "襤"
+ }
+}
diff --git a/waybar/.config/waybar/mocha.css b/waybar/.config/waybar/mocha.css
new file mode 100644
index 0000000..0eb6a82
--- /dev/null
+++ b/waybar/.config/waybar/mocha.css
@@ -0,0 +1,26 @@
+@define-color rosewater #f5e0dc;
+@define-color flamingo #f2cdcd;
+@define-color pink #f5c2e7;
+@define-color mauve #cba6f7;
+@define-color red #f38ba8;
+@define-color maroon #eba0ac;
+@define-color peach #fab387;
+@define-color yellow #f9e2af;
+@define-color green #a6e3a1;
+@define-color teal #94e2d5;
+@define-color sky #89dceb;
+@define-color sapphire #74c7ec;
+@define-color blue #89b4fa;
+@define-color lavender #b4befe;
+@define-color text #cdd6f4;
+@define-color subtext1 #bac2de;
+@define-color subtext0 #a6adc8;
+@define-color overlay2 #9399b2;
+@define-color overlay1 #7f849c;
+@define-color overlay0 #6c7086;
+@define-color surface2 #585b70;
+@define-color surface1 #45475a;
+@define-color surface0 #313244;
+@define-color base #1e1e2e;
+@define-color mantle #181825;
+@define-color crust #11111b;
diff --git a/waybar/.config/waybar/style.css b/waybar/.config/waybar/style.css
new file mode 100644
index 0000000..2efe8df
--- /dev/null
+++ b/waybar/.config/waybar/style.css
@@ -0,0 +1,119 @@
+@import "mocha.css";
+
+* {
+ font-family: FantasqueSansMono Nerd Font;
+ font-size: 10px;
+ min-height: 0;
+}
+
+#waybar {
+ background: transparent;
+ color: @text;
+ margin: 5px 5px;
+}
+
+#workspaces {
+ border-radius: 1rem;
+ margin: 5px;
+ background-color: @surface0;
+ margin-left: 1rem;
+}
+
+#workspaces button {
+ color: @lavender;
+ border-radius: 1rem;
+ padding: 0.4rem;
+}
+
+#workspaces button.active {
+ color: @sky;
+ border-radius: 1rem;
+}
+
+#workspaces button:hover {
+ color: @sapphire;
+ border-radius: 1rem;
+}
+
+#custom-prayers,
+#custom-music,
+#cpu,
+#memory,
+#network,
+#tray,
+#backlight,
+#clock,
+#battery,
+#pulseaudio,
+#custom-lock,
+#custom-power {
+ background-color: @surface0;
+ padding: 0.5rem 1rem;
+ margin: 5px 0;
+}
+
+#clock {
+ color: @blue;
+ border-radius: 0px 1rem 1rem 0px;
+ margin-right: 1rem;
+}
+
+#battery {
+ color: @green;
+}
+
+#battery.charging {
+ color: @green;
+}
+
+#battery.warning:not(.charging) {
+ color: @red;
+}
+
+#memory {
+ color: @yellow;
+}
+#backlight {
+ color: @yellow;
+}
+
+#backlight, #battery {
+ border-radius: 0;
+}
+
+#network {
+ color: @lavender;
+ border-radius: 0rem 0px 0px 0rem;
+}
+
+#pulseaudio {
+ color: @maroon;
+ border-radius: 1rem 0px 0px 1rem;
+ margin-left: 1rem;
+}
+
+#custom-prayers {
+ color: @teal;
+ border-radius: 0rem 0px 0px 0rem;
+}
+
+#custom-music {
+ color: @mauve;
+ border-radius: 1rem;
+}
+
+#custom-lock {
+ border-radius: 1rem 0px 0px 1rem;
+ color: @lavender;
+}
+
+#custom-power {
+ margin-right: 1rem;
+ border-radius: 0px 1rem 1rem 0px;
+ color: @red;
+}
+
+#tray {
+ margin-right: 1rem;
+ border-radius: 1rem;
+}