diff --git a/hypridle.conf b/hypridle.conf
new file mode 100644
index 0000000..24f2a12
--- /dev/null
+++ b/hypridle.conf
@@ -0,0 +1,40 @@
+general {
+ lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
+ before_sleep_cmd = loginctl lock-session # lock before suspend.
+ after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
+}
+
+listener {
+ timeout = 150 # 2.5min.
+ on-timeout = ddcutil setvcp 10 0 # set monitor backlight to minimum, avoid 0 on OLED monitor.
+ on-resume = ddcutil setvcp 10 100 # monitor backlight restore.
+}
+
+# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight.
+listener {
+ timeout = 150 # 2.5min.
+ on-timeout = brightnessctl -sd rgb:kbd_backlight set 0 # turn off keyboard backlight.
+ on-resume = brightnessctl -rd rgb:kbd_backlight # turn on keyboard backlight.
+}
+
+listener {
+ timeout = 300 # 5min
+ on-timeout = loginctl lock-session # lock screen when timeout has passed
+}
+
+listener {
+ timeput = 3600 # 1h
+ on-timeout = playerctl --all-players pause # Pause everything
+}
+
+listener {
+ timeout = 400 # 6min
+ on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
+ on-resume = hyprctl dispatch dpms on ; ddcutil setvcp 10 100 # screen on when activity is detected after timeout has fired.
+}
+
+# Currently logs out entirely
+#listener {
+# timeout = 600 # 10min
+# on-timeout = systemctl suspend # suspend pc
+#}
diff --git a/hyprland.conf b/hyprland.conf
index 627287c..2a1b358 100644
--- a/hyprland.conf
+++ b/hyprland.conf
@@ -1,24 +1,15 @@
+debug {
+ disable_logs = false
+}
-# #######################################################################################
-# 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.
-# #######################################################################################
+source=$XDG_CONFIG_HOME/hypr/mocha.conf
-# This is an example Hyprland config file.
# Refer to the wiki for more information.
# https://wiki.hyprland.org/Configuring/Configuring-Hyprland/
-# 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
-
###################
-### NVIDIA (fu) ###
+### NVIDIA (FU) ###
###################
env = LIBVA_DRIVER_NAME,nvidia
env = XDG_SESSION_TYPE,wayland
@@ -38,7 +29,8 @@ env = ELECTRON_OZONE_PLATFORM_HINT,auto
################
# See https://wiki.hyprland.org/Configuring/Monitors/
-monitor=,preferred,auto,auto
+#monitor = , preferred, auto, 1
+monitor=DP-1, preferred, auto, 1
###################
@@ -60,9 +52,10 @@ $menu = wofi --show drun
# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:
-exec-once = waybar
-exec-once = hyprpaper
+#exec-once = waybar
+exec-once = unlink $XDG_PICTURES_DIR/Wallpapers/current ; ln -s $XDG_PICTURES_DIR/Wallpapers/$(ls $XDG_PICTURES_DIR/Wallpapers | sort -R | tail -1) $XDG_PICTURES_DIR/Wallpapers/current && hyprpaper # Display random wallpaper
exec-once = mako
+exec-once = hypridle
#############################
### ENVIRONMENT VARIABLES ###
@@ -88,8 +81,8 @@ general {
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.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
@@ -108,10 +101,10 @@ decoration {
active_opacity = 1.0
inactive_opacity = 1.0
- drop_shadow = true
- shadow_range = 4
- shadow_render_power = 3
- col.shadow = rgba(1a1a1aee)
+ #drop_shadow = true
+ #shadow_range = 4
+ #shadow_render_power = 3
+ #col.shadow = rgba(1a1a1aee)
# https://wiki.hyprland.org/Configuring/Variables/#blur
blur {
@@ -147,7 +140,6 @@ dwindle {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master {
- new_is_master = true
}
# https://wiki.hyprland.org/Configuring/Variables/#misc
@@ -199,6 +191,7 @@ device {
$mainMod = SUPER # Sets "Windows" key as main modifier
$subMod = SHIFT # Sets "Shift" key as sub modifier
$supMod = CONTROL # Sets "CTRL" key as sub modifier
+$altMod = ALT # Sets "ALT" as the alternative modifier.
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Return, exec, $terminal
@@ -242,19 +235,29 @@ bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
# Browser Workspace
-workspace = special:browser, on-created-empty:firefox
+workspace = special:browser, on-created-empty: [workspace browser silent] firefox
bind = $mainMod, A, togglespecialworkspace, browser
-bind = $mainMod SHIFT, A, movetoworkspacesilent, special:broswer
+bind = $mainMod SHIFT, A, movetoworkspacesilent, special:browser
# Music Workspace
-workspace = special:music, on-created-empty:tidal-hifi
+workspace = special:music, on-created-empty: [workspace browser music silent] tidal-hifi
bind = $mainMod, S, togglespecialworkspace, music
bind = $mainMod SHIFT, S, movetoworkspacesilent, special:music
-# Music Workspace
-workspace = special:games, on-created-empty:steam & prismlauncher
-bind = $mainMod, D, togglespecialworkspace, games
-bind = $mainMod SHIFT, D, movetoworkspacesilent, special:games
+# Launchers Workspace
+workspace = special:launchers, on-created-empty: [workspace launchers silent] steam & prismlauncher
+bind = $mainMod, D, togglespecialworkspace, launchers
+bind = $mainMod SHIFT, D, movetoworkspacesilent, special:launchers
+
+# Messaging Workspace
+workspace = special:social, on-created-empty: [workspace social silent] signal-desktop & element-desktop & discord & thunderbird
+bind = $mainMod, F, togglespecialworkspace, social
+bind = $mainMod SHIFT, F, movetoworkspacesilent, special:social
+
+# Game Workspace
+workspace = special:game, border:false, rounding:false
+bind = $mainMod, G, togglespecialworkspace, game
+bind = $mainMod SHIFT, G, movetoworkspacesilent, special:game
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
@@ -267,15 +270,24 @@ bindm = $mainMod, mouse:273, resizewindow
# Take screenshots
bind = $mainMod, P, exec, grim -l 9 -g "$(hyprctl -j activewindow | jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"')" - | wl-copy
bind = $mainMod $subMod, P, exec, grim -l 9 -g "$(slurp -d)" - | wl-copy
+bind = $mainMod $supMod, P, exec, grim -l 9 - | wl-copy
+# The same, but storing it as a file instead
+bind = $mainMod $altMod, P, exec, grim -l 9 -g "$(hyprctl -j activewindow | jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"')" "$XDG_PICTURES_DIR/Screenshots/$(date '+%F_%Hh%Mm%Ss%3Nms')_Window.png"
+bind = $mainMod $subMod $altMod, P, exec, grim -l 9 -g "$(slurp -d)" "$XDG_PICTURES_DIR/Screenshots/$(date '+%F_%Hh%Mm%Ss%3Nms')_Region.png"
+bind = $mainMod $supMod $altMod, P, exec, grim -l 9 -t png "$XDG_PICTURES_DIR/Screenshots/$(date '+%F_%Hh%Mm%Ss%3Nms')_Fullscreen.png"
+# Steam
+bind = ,F12,pass,.*Steam.*
# Multimedia
-bind = , XF86AudioRaiseVolume, exec, playerctl volume 0.1+
-bind = , XF86AudioLowerVolume, exec, playerctl volume 0.1-
-bind = , XF86AudioPlay, exec, playerctl play-pause
-bind = $mainMod, Space, exec, playerctl play-pause
-bind = , XF86AudioPrev, exec, playerctl previous
-bind = , XF86AudioNext, exec, playerctl next
+bindl = , XF86AudioRaiseVolume, exec, playerctl volume 0.1+
+bindl = , XF86AudioLowerVolume, exec, playerctl volume 0.1-
+bindl = , XF86AudioPlay, exec, playerctl play-pause
+bindl = $mainMod, Space, exec, playerctl play-pause
+bindl = , XF86AudioPrev, exec, playerctl previous
+bindl = , XF86AudioNext, exec, playerctl next
+# Lockscreeen
+bind = $mainMod, L, exec, hyprlock
##############################
### WINDOWS AND WORKSPACES ###
@@ -284,14 +296,79 @@ bind = , XF86AudioNext, exec, playerctl next
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
-# Special Workspaces
-windowrulev2 = workspace special:browser silent, class:^(firefox)$,title:^(firefox)$
-windowrulev2 = workspace special:music silent, class:^(tidal-hifi)$,title:^(tidal-hifi)$
-windowrulev2 = workspace special:games silent, class:^(steam)$,title:^(steam)$
-windowrulev2 = workspace special:games silent, class:^(prismlauncher)$,title:^(prismlauncher)$
+### Tags
-windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
+## Workspaces
+
+# browser Workspace
+windowrulev2 = tag +browser, class:^firefox$
+
+# Music Workspace
+windowrulev2 = tag +music, class:^tidal-hifi$
+
+# Launcher Workspace
+windowrulev2 = tag +launcher, class:^steam$
+windowrulev2 = tag +launcher, class:^prismlauncher$
+
+# Social Workspace
+windowrulev2 = tag +social, class:^signal$
+windowrulev2 = tag +social, class:^Element$
+windowrulev2 = tag +social, class:^discord$
+windowrulev2 = tag +social, class:^thunderbird$
+
+# Game Workspace
+windowrulev2 = tag +game, class:^steam_app_\d+$ # adds game tag to all steam apps
+
+## Inhibit Idle
+# Focus
+windowrulev2 = tag +inhibit_idle_focused, tag:^game$
+
+# Fullscreen
+
+## Miscellaneous
+
+# Transparency
+windowrulev2 = tag +transparent, class:^.*$
+
+windowrulev2 = tag +opaque, class:^kitty$
+windowrulev2 = tag +opaque, fullscreen:1
+windowrulev2 = tag -transparent, tag:opaque
+
+# Super Transparency
+windowrulev2 = tag +super_transparent, floating:1
+windowrulev2 = tag -super_transparent, floating:0
+
+windowrulev2 = tag -transparent, tag:super_transparent
+windowrulev2 = tag +opaque, class:^kitty$
+windowrulev2 = tag -super_transparent, tag:opaque
+
+# Silent
+windowrulev2 = tag +silent, tag:browser
+windowrulev2 = tag +silent, tag:music
+windowrulev2 = tag +silent, tag:launcher
+windowrulev2 = tag +silent, tag:social
+windowrulev2 = tag +silent, tag:game
+
+
+### Windowrules
+
+## Transparency
+windowrulev2 = opacity 0.98 0.96 1, tag:transparent
+windowrulev2 = opacity 0.85 0.80 1, tag:super_transparent
+windowrulev2 = opacity 1 1 1, tag:opaque
+
+## Special Workspaces
+windowrulev2 = workspace social silent,tag:browser
+windowrulev2 = workspace social silent,tag:music
+windowrulev2 = workspace social silent,tag:launcher
+windowrulev2 = workspace social silent,tag:social
+windowrulev2 = workspace social silent,tag:game
+
+## Silent
+windowrulev2 = noinitialfocus, tag:silent
+windowrulev2 = suppressevent activate, tag:silent
+
+## Inhibit Idle (stay focused)
+windowrulev2 = idleinhibit, tag:inhibit_idle_focuses
+windowrulev2 = idleinhibit, fullscreen:1
-debug {
- disable_logs = false
-}
diff --git a/hyprlock.conf b/hyprlock.conf
new file mode 100644
index 0000000..df0bfa8
--- /dev/null
+++ b/hyprlock.conf
@@ -0,0 +1,80 @@
+source = $XDG_CONFIG_HOME/hypr/mocha.conf
+
+$accent = $blue
+$accentAlpha = $blueAlpha
+$font = FiraCode
+
+# GENERAL
+general {
+ disable_loading_bar = true
+ hide_cursor = true
+}
+
+# BACKGROUND
+background {
+ monitor =
+ path = $XDG_PICTURES_DIR/Wallpapers/current
+ blur_passes = 4
+ blur_size = 8
+ color = rgba($baseAlphaff)
+}
+
+# TIME
+label {
+ monitor =
+ text = cmd[update:30000] echo "$(date +"%R")"
+ color = $text
+ font_size = 90
+ font_family = $font
+ position = -30, 0
+ halign = right
+ valign = top
+}
+
+# DATE
+label {
+ monitor =
+ text = cmd[update:43200000] echo "$(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 = ~/.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, -35
+ halign = center
+ valign = center
+}
diff --git a/hyprpaper.conf b/hyprpaper.conf
new file mode 100644
index 0000000..f5e855e
--- /dev/null
+++ b/hyprpaper.conf
@@ -0,0 +1,2 @@
+preload = $XDG_PICTURES_DIR/Wallpapers/current
+wallpaper = DP-1,$XDG_PICTURES_DIR/Wallpapers/current
diff --git a/mocha.conf b/mocha.conf
new file mode 100644
index 0000000..2b80922
--- /dev/null
+++ b/mocha.conf
@@ -0,0 +1,77 @@
+$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