Compare commits

...
6 Commits
17 changed files with 271 additions and 223 deletions
+21
View File
@@ -18,6 +18,27 @@ function enable_session_restore {
} }
enable_session_restore enable_session_restore
if [ -n "$HYPRLAND_INSTANCE_SIGNATURE" ]; then
brave-browser --restore-last-session &
# Signal starts after Brave and can steal focus while its window is mapping.
# Wait for both startup windows, then make Brave the final focused window.
for _ in {1..80}; do
sleep 0.25
if hyprctl clients -j | jq -e '
any(.[]; .class == "brave-browser") and
any(.[]; .class == "org.signal.Signal")
' > /dev/null; then
sleep 0.5
break
fi
done
hyprctl eval \
'hl.dispatch(hl.dsp.focus({ workspace = "1" }))' > /dev/null
exit 0
fi
i3-msg 'workspace 9; append_layout ~/.config/i3/brave-workspace-9.json; workspace 5' i3-msg 'workspace 9; append_layout ~/.config/i3/brave-workspace-9.json; workspace 5'
brave-browser --restore-last-session & brave-browser --restore-last-session &
-50
View File
@@ -1,50 +0,0 @@
$mainMod = SUPER
# Keybindings
bind = $mainMod, return, exec, $terminal
bind = $mainMod, Q, killactive,
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating,
bind = $mainMod, D, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, layoutmsg, togglesplit # dwindle
bind = $mainMod, L, exec, hyprlock
bind = $mainMod, F, fullscreen
# Move focus window
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Switch workspaces
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
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
# 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
+29
View File
@@ -0,0 +1,29 @@
local programs = require("env")
local main_mod = "SUPER"
hl.bind(main_mod .. " + return", hl.dsp.exec_cmd(programs.terminal))
hl.bind(main_mod .. " + Q", hl.dsp.window.close())
hl.bind(main_mod .. " + E", hl.dsp.exec_cmd(programs.file_manager))
hl.bind(main_mod .. " + V", hl.dsp.window.float({ action = "toggle" }))
hl.bind(main_mod .. " + D", hl.dsp.exec_cmd(programs.menu))
hl.bind(main_mod .. " + P", hl.dsp.window.pseudo())
hl.bind(main_mod .. " + J", hl.dsp.layout("togglesplit"))
hl.bind(main_mod .. " + L", hl.dsp.exec_cmd("hyprlock"))
hl.bind(main_mod .. " + F", hl.dsp.window.fullscreen())
hl.bind(main_mod .. " + left", hl.dsp.focus({ direction = "left" }))
hl.bind(main_mod .. " + right", hl.dsp.focus({ direction = "right" }))
hl.bind(main_mod .. " + up", hl.dsp.focus({ direction = "up" }))
hl.bind(main_mod .. " + down", hl.dsp.focus({ direction = "down" }))
for workspace = 1, 10 do
local key = workspace % 10
hl.bind(main_mod .. " + " .. key, hl.dsp.focus({ workspace = workspace }))
hl.bind(main_mod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = workspace }))
end
hl.bind(main_mod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
hl.bind(main_mod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
hl.bind(main_mod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
hl.bind(main_mod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
-17
View File
@@ -1,17 +0,0 @@
# Screen brightness controls
exec-once = light -N 1
bind = ,XF86MonBrightnessUp, exec, ~/bin/system/backlight-ctl.sh -i
bind = ,XF86MonBrightnessDown, exec, ~/bin/system/backlight-ctl.sh -d
# Pulse Audio controls
bind = ,XF86AudioRaiseVolume, exec, amixer set Master 3%+ #increase sound volume
bind = ,XF86AudioLowerVolume, exec, amixer set Master 3%- #decrease sound volume
bind = ,XF86AudioMute, exec, amixer set Master toggle # toggle sound
# Media controls
bind = ,XF86AudioPrev, exec, playerctl previous
bind = ,XF86AudioPlay, exec, playerctl play-pause
bind = ,XF86AudioNext, exec, playerctl next
# Lockscreen
bind = $mainMod, escape, exec, swaylock
+18
View File
@@ -0,0 +1,18 @@
local main_mod = "SUPER"
hl.on("hyprland.start", function()
hl.exec_cmd("light -N 1")
end)
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("~/bin/system/backlight-ctl.sh -i"))
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("~/bin/system/backlight-ctl.sh -d"))
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("amixer set Master 3%+"))
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("amixer set Master 3%-"))
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("amixer set Master toggle"))
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"))
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"))
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"))
hl.bind(main_mod .. " + escape", hl.dsp.exec_cmd("swaylock"))
-5
View File
@@ -1,5 +0,0 @@
# Programs
$terminal = alacritty
$fileManager = dolphin
$menu = rofi -show combi
$browser = brave-browser
+9
View File
@@ -0,0 +1,9 @@
hl.env("XCURSOR_SIZE", "24")
hl.env("QT_QPA_PLATFORMTHEME", "qt5ct")
return {
terminal = "alacritty",
file_manager = "dolphin",
menu = "rofi -show combi",
browser = "brave-browser",
}
-41
View File
@@ -1,41 +0,0 @@
general {
gaps_in = 5
gaps_out = 5
border_size = 2
col.active_border = rgba(e91e63ee) rgba(ffcdd2ee) 45deg
col.inactive_border = rgba(0288d1aa)
layout = dwindle
allow_tearing = false
}
decoration {
rounding = 5
blur {
enabled = true
size = 3
passes = 1
}
}
animations {
enabled = yes
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 3, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 2, default
}
dwindle {
preserve_split = yes
force_split = 2
}
master {
orientation = right
}
gesture = 3, horizontal, workspace
+56
View File
@@ -0,0 +1,56 @@
hl.config({
general = {
gaps_in = 5,
gaps_out = 5,
border_size = 2,
col = {
active_border = {
colors = { "rgba(e91e63ee)", "rgba(ffcdd2ee)" },
angle = 45,
},
inactive_border = "rgba(0288d1aa)",
},
layout = "dwindle",
allow_tearing = false,
},
decoration = {
rounding = 5,
blur = {
enabled = true,
size = 3,
passes = 1,
},
},
animations = {
enabled = true,
},
dwindle = {
preserve_split = true,
force_split = 2,
},
master = {
orientation = "right",
},
})
hl.curve("myBezier", {
type = "bezier",
points = { { 0.05, 0.9 }, { 0.1, 1.05 } },
})
hl.animation({ leaf = "windows", enabled = true, speed = 3, bezier = "myBezier" })
hl.animation({ leaf = "windowsOut", enabled = true, speed = 7, bezier = "default", style = "popin 80%" })
hl.animation({ leaf = "border", enabled = true, speed = 10, bezier = "default" })
hl.animation({ leaf = "borderangle", enabled = true, speed = 8, bezier = "default" })
hl.animation({ leaf = "fade", enabled = true, speed = 7, bezier = "default" })
hl.animation({ leaf = "workspaces", enabled = true, speed = 2, bezier = "default" })
hl.gesture({
fingers = 3,
direction = "horizontal",
action = "workspace",
})
-40
View File
@@ -1,40 +0,0 @@
monitor=eDP-1,2256x1504@60,auto,1.175
# Enviroment
source = ~/.config/hypr/env.conf
# Startup programs
source = ~/.config/hypr/startup-all.conf
source = ~/.config/hypr/startup-framework.conf
# Default env vars
env = XCURSOR_SIZE,24
env = QT_QPA_PLATFORMTHEME,qt5ct
source = ~/.config/hypr/general.conf
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
touchpad {
natural_scroll = yes
}
sensitivity = 0
}
xwayland {
force_zero_scaling = true
}
misc {
force_default_wallpaper = 0
}
windowrule = suppress_event maximize, match:class .*
source = ~/.config/hypr/bind-all.conf
source = ~/.config/hypr/bind-framework.conf
+51
View File
@@ -0,0 +1,51 @@
hl.monitor({
output = "eDP-1",
mode = "2256x1504@60",
position = "auto",
scale = 1.175,
})
require("env")
require("startup-all")
require("startup-framework")
require("general")
hl.config({
input = {
kb_layout = "us",
kb_variant = "",
kb_model = "",
kb_options = "",
kb_rules = "",
follow_mouse = 1,
touchpad = {
natural_scroll = true,
},
sensitivity = 0,
},
xwayland = {
force_zero_scaling = true,
},
misc = {
force_default_wallpaper = 0,
},
})
hl.window_rule({
name = "suppress-maximize-events",
match = { class = ".*" },
suppress_event = "maximize",
})
hl.window_rule({
name = "signal-workspace",
match = { class = "^org\\.signal\\.Signal$" },
workspace = "10",
})
require("bind-all")
require("bind-framework")
+72 -58
View File
@@ -10,76 +10,90 @@ auth {
background { background {
monitor = monitor =
path = $HOME/.cache/blurred_wallpaper.png path = $HOME/Pictures/wallpaper/0000.jpg
blur_size = 2
blur_passes = 1
noise = 0.01
contrast = 1.08
brightness = 0.68
vibrancy = 0.22
vibrancy_darkness = 0.15
}
label {
monitor =
text = cmd[update:1000] date +"%H:%M"
color = rgb(9DEBFF)
font_size = 104
font_family = Noto Sans Mono
position = 0, 230
halign = center
valign = center
shadow_passes = 3
shadow_size = 10
shadow_color = rgba(00D9FF55)
}
shape {
monitor =
size = 460, 2
color = rgb(00D9FF)
position = 0, 152
halign = center
valign = center
}
shape {
monitor =
size = 110, 2
color = rgb(FF2A9D)
position = 285, 152
halign = center
valign = center
}
label {
monitor =
text = // $USER
color = rgb(FF5CB8)
font_size = 18
font_family = Noto Sans Mono
position = 0, 112
halign = center
valign = center
shadow_passes = 2
shadow_size = 7
shadow_color = rgba(FF2A9D66)
} }
input-field { input-field {
monitor = monitor =
size = 200, 50 size = 340, 54
outline_thickness = 3 outline_thickness = 2
dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8 dots_size = 0.22
dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0 dots_spacing = 0.3
dots_center = true dots_center = true
dots_rounding = -1 # -1 default circle, -2 follow input-field rounding dots_rounding = -1
outer_color = rgb(151515) outer_color = rgb(00D9FF)
inner_color = rgb(FFFFFF) inner_color = rgba(3, 7, 18, 0.82)
font_color = rgb(10, 10, 10) font_color = rgb(FF5CB8)
fade_on_empty = true fade_on_empty = true
fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered. fade_timeout = 1000
placeholder_text = <i>Input Password...</i> # Text rendered in the input box when it's empty. placeholder_text =
hide_input = false hide_input = false
rounding = -1 # -1 means complete rounding (circle/oval) rounding = 4
check_color = rgb(204, 136, 34) check_color = rgb(FF2A9D)
fail_color = rgb(204, 34, 34) # if authentication failed, changes outer_color and fail message color fail_color = rgb(FF2A9D)
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i> # can be set to empty fail_text =
capslock_color = -1 capslock_color = -1
numlock_color = -1 numlock_color = -1
bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above) bothlock_color = -1
invert_numlock = false # change color if numlock is off invert_numlock = false # change color if numlock is off
swap_font_color = false # see below swap_font_color = false # see below
position = 0, -20 position = 0, -35
halign = center halign = center
valign = center valign = center
} shadow_passes = 3
label {
monitor =
#clock
text = cmd[update:1000] echo "$TIME"
color = rgba(200, 200, 200, 1.0)
font_size = 55
font_family = Fira Semibold
position = -100, 70
halign = right
valign = bottom
shadow_passes = 5
shadow_size = 10 shadow_size = 10
} shadow_color = rgba(00D9FF55)
label {
monitor =
text = $USER
color = rgba(200, 200, 200, 1.0)
font_size = 20
font_family = Fira Semibold
position = -100, 160
halign = right
valign = bottom
shadow_passes = 5
shadow_size = 10
}
image {
monitor =
path = $HOME/.cache/square_wallpaper.png
size = 280 # lesser side if not 1:1 ratio
rounding = -1 # negative values mean circle
border_size = 4
border_color = rgb(221, 221, 221)
rotate = 0 # degrees, counter-clockwise
reload_time = -1 # seconds between reloading, 0 to reload with SIGUSR2
# reload_cmd = # command to get new path. if empty, old path will be used. don't run "follow" commands like tail -F
position = 0, 200
halign = center
valign = center
} }
-8
View File
@@ -1,8 +0,0 @@
# Password manager update
exec-once = pass git pull
# Start up script
exec-once = ~/bin/system/system-start.sh
# Lock, blank displays, and suspend when idle
exec-once = hypridle
+6
View File
@@ -0,0 +1,6 @@
hl.on("hyprland.start", function()
hl.exec_cmd("swaybg --image ~/Pictures/wallpaper/0000.jpg --mode fill")
hl.exec_cmd("pass git pull")
hl.exec_cmd("~/bin/system/system-start.sh")
hl.exec_cmd("hypridle")
end)
@@ -1,3 +0,0 @@
exec-once = [workspace 1 silent] $browser
exec-once = [workspace 2 silent] $terminal
exec-once = [workspace 10 silent] flatpak run org.signal.Signal
@@ -0,0 +1,7 @@
local programs = require("env")
hl.on("hyprland.start", function()
hl.exec_cmd("~/bin/start-brave.sh", { workspace = "1 silent" })
hl.exec_cmd(programs.terminal, { workspace = "2 silent" })
hl.exec_cmd("flatpak run org.signal.Signal", { workspace = "10 silent" })
end)
+2 -1
View File
@@ -51,7 +51,8 @@ window#waybar.chromium {
box-shadow: inset 0 -3px #B3E5FC; box-shadow: inset 0 -3px #B3E5FC;
} }
#workspaces button.focused { #workspaces button.focused,
#workspaces button.active {
background-color: #0288D1; background-color: #0288D1;
box-shadow: inset 0 -3px #B3E5FC; box-shadow: inset 0 -3px #B3E5FC;
} }