From 6dc3c4b3c25689443189355e5cf019f626cf85b7 Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Sat, 18 Jan 2025 16:00:19 +1100 Subject: [PATCH] Initial commit --- .gitignore | 1 + hyprland.conf | 86 +++++++++++++++++ hyprland/animations.conf | 25 +++++ hyprland/colours.conf | 9 ++ hyprland/decoration.conf | 27 ++++++ hyprland/execs.conf | 27 ++++++ hyprland/keybinds.conf | 168 +++++++++++++++++++++++++++++++++ hyprland/rules.conf | 74 +++++++++++++++ hyprland/scheme.conf | 26 +++++ scheme/hyprland/frappe.conf | 26 +++++ scheme/hyprland/latte.conf | 26 +++++ scheme/hyprland/macchiato.conf | 26 +++++ scheme/hyprland/mocha.conf | 26 +++++ scripts/gen-scheme.fish | 32 +++++++ 14 files changed, 579 insertions(+) create mode 100644 .gitignore create mode 100644 hyprland.conf create mode 100644 hyprland/animations.conf create mode 100644 hyprland/colours.conf create mode 100644 hyprland/decoration.conf create mode 100644 hyprland/execs.conf create mode 100644 hyprland/keybinds.conf create mode 100644 hyprland/rules.conf create mode 100644 hyprland/scheme.conf create mode 100644 scheme/hyprland/frappe.conf create mode 100644 scheme/hyprland/latte.conf create mode 100644 scheme/hyprland/macchiato.conf create mode 100644 scheme/hyprland/mocha.conf create mode 100755 scripts/gen-scheme.fish diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1dc4e4a --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/hyprland/ignore.conf diff --git a/hyprland.conf b/hyprland.conf new file mode 100644 index 0000000..1346106 --- /dev/null +++ b/hyprland.conf @@ -0,0 +1,86 @@ +monitor = , preferred, auto, 1 + +input { + kb_layout = us + numlock_by_default = false + repeat_delay = 250 + repeat_rate = 35 + + focus_on_close = 1 + + touchpad { + natural_scroll = yes + disable_while_typing = true + scroll_factor = 0.3 + } +} + +binds { + scroll_event_delay = 0 +} + +gestures { + workspace_swipe = true + workspace_swipe_distance = 700 + workspace_swipe_fingers = 4 + workspace_swipe_cancel_ratio = 0.15 + workspace_swipe_min_speed_to_force = 5 + workspace_swipe_direction_lock = true + workspace_swipe_direction_lock_threshold = 10 + workspace_swipe_create_new = true +} + +general { + # Gaps and border + gaps_in = 0 + gaps_out = 0 + gaps_workspaces = 0 + border_size = 0 + + layout = dwindle + + allow_tearing = false # Allows `immediate` window rule to work +} + +dwindle { + preserve_split = true + smart_split = false + smart_resizing = true +} + +misc { + vfr = true + vrr = 1 + + animate_manual_resizes = false + animate_mouse_windowdragging = false + + disable_hyprland_logo = true + force_default_wallpaper = 0 + + new_window_takes_over_fullscreen = 2 + allow_session_lock_restore = true + middle_click_paste = false + focus_on_activate = true + + mouse_move_enables_dpms = true + key_press_enables_dpms = true +} + +debug { + error_position = 1 +} + +$hypr = ~/.config/hypr/hyprland + +# Other configs +source = $hypr/animations.conf +source = $hypr/decoration.conf +source = $hypr/execs.conf +source = $hypr/rules.conf +source = $hypr/keybinds.conf +source = $hypr/colours.conf + +# Stuff to not put in git +exec = test -f $hypr/ignore.conf || touch $hypr/ignore.conf +source = $hypr/ignore.conf diff --git a/hyprland/animations.conf b/hyprland/animations.conf new file mode 100644 index 0000000..ef3170f --- /dev/null +++ b/hyprland/animations.conf @@ -0,0 +1,25 @@ +animations { + enabled = true + + # Animation curves + bezier = linear, 0, 0, 1, 1 + bezier = tinyshot, 0.05, 0.9, 0.1, 1.05 + bezier = workSwitch, 0.1, 1, 0, 1 + bezier = specialWorkSwitch, 0.05, 0.7, 0.1, 1 + + # Animation configs + animation = layersIn, 1, 3, tinyshot, slide 85% + animation = layersOut, 1, 3, tinyshot, slide 85% + + animation = windowsIn, 1, 7, tinyshot, slide + animation = windowsOut, 1, 7, default, popin 80% + animation = workspaces, 1, 8.5, workSwitch, slide + + animation = specialWorkspace, 1, 4, specialWorkSwitch, slidefadevert 15% + + animation = fadeDim, 1, 3, linear + animation = border, 1, 3, linear + + animation = fade, 1, 7, default + animation = fadeLayersIn, 1, 2, linear +} diff --git a/hyprland/colours.conf b/hyprland/colours.conf new file mode 100644 index 0000000..3b6bf36 --- /dev/null +++ b/hyprland/colours.conf @@ -0,0 +1,9 @@ +exec = ~/.config/hypr/scripts/gen-scheme.fish hyprland +source = ~/.config/hypr/hyprland/scheme.conf + +general { + col.active_border = rgba($peachd5) + col.inactive_border = rgba($surface0d5) +} + +windowrulev2 = bordercolor rgba($lavendere2), pinned:1 diff --git a/hyprland/decoration.conf b/hyprland/decoration.conf new file mode 100644 index 0000000..182bd64 --- /dev/null +++ b/hyprland/decoration.conf @@ -0,0 +1,27 @@ +decoration { + rounding = 0 + + blur { + enabled = false + xray = true + special = false + ignore_opacity = true # Allows opacity blurring + new_optimizations = true + size = 10 + passes = 4 + popups = true + } + + shadow { + enabled = true + ignore_window = true + range = 20 + offset = 0 2 + render_power = 4 + color = rgba(0000002A) + } + + # Dim + dim_inactive = true + dim_strength = 0.15 +} diff --git a/hyprland/execs.conf b/hyprland/execs.conf new file mode 100644 index 0000000..a0cdaa3 --- /dev/null +++ b/hyprland/execs.conf @@ -0,0 +1,27 @@ +# Core components (authentication, lock screen) +exec-once = gnome-keyring-daemon --start --components=secrets +exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 + +# Shell +exec-once = uwsm app -- caelestia shell + +# Clipboard history +exec-once = wl-paste --type text --watch cliphist store +exec-once = wl-paste --type image --watch cliphist store + +# Cursors +exec-once = hyprctl setcursor sweet-cursors 24 +exec-once = gsettings set org.gnome.desktop.interface cursor-theme 'sweet-cursors' + +# Location provider and night light +exec-once = /usr/lib/geoclue-2.0/demos/agent +exec-once = sleep 1 && gammastep + +# Idle inhibit when audio playing +exec-once = sway-audio-idle-inhibit --ignore-source-outputs cava + +# Forward bluetooth media commands to MPRIS +exec-once = mpris-proxy + +# Resize and move picture in picture windows +exec-once = caelestia pip -d diff --git a/hyprland/keybinds.conf b/hyprland/keybinds.conf new file mode 100644 index 0000000..b14f4c5 --- /dev/null +++ b/hyprland/keybinds.conf @@ -0,0 +1,168 @@ +# Go to workspace # +bind = Super, 1, exec, caelestia workspace-action workspace 1 +bind = Super, 2, exec, caelestia workspace-action workspace 2 +bind = Super, 3, exec, caelestia workspace-action workspace 3 +bind = Super, 4, exec, caelestia workspace-action workspace 4 +bind = Super, 5, exec, caelestia workspace-action workspace 5 +bind = Super, 6, exec, caelestia workspace-action workspace 6 +bind = Super, 7, exec, caelestia workspace-action workspace 7 +bind = Super, 8, exec, caelestia workspace-action workspace 8 +bind = Super, 9, exec, caelestia workspace-action workspace 9 +bind = Super, 0, exec, caelestia workspace-action workspace 10 +# Go to workspace group # +bind = Ctrl+Super, 1, exec, caelestia workspace-action workspacegroup 1 +bind = Ctrl+Super, 2, exec, caelestia workspace-action workspacegroup 2 +bind = Ctrl+Super, 3, exec, caelestia workspace-action workspacegroup 3 +bind = Ctrl+Super, 4, exec, caelestia workspace-action workspacegroup 4 +bind = Ctrl+Super, 5, exec, caelestia workspace-action workspacegroup 5 +bind = Ctrl+Super, 6, exec, caelestia workspace-action workspacegroup 6 +bind = Ctrl+Super, 7, exec, caelestia workspace-action workspacegroup 7 +bind = Ctrl+Super, 8, exec, caelestia workspace-action workspacegroup 8 +bind = Ctrl+Super, 9, exec, caelestia workspace-action workspacegroup 9 +bind = Ctrl+Super, 0, exec, caelestia workspace-action workspacegroup 10 +# Go to workspace -1/+1 +bind = Super, mouse_down, workspace, -1 +bind = Super, mouse_up, workspace, +1 +binde = Ctrl+Super, left, workspace, -1 +binde = Super, Page_Up, workspace, -1 +binde = Ctrl+Super, right, workspace, +1 +binde = Super, Page_Down, workspace, +1 +# Go to workspace group -1/+1 +bind = Ctrl+Super, mouse_down, workspace, -10 +bind = Ctrl+Super, mouse_up, workspace, +10 +# Toggle special workspace +bind = Super, S, exec, caelestia toggle specialws + +# Move window to workspace # +bind = Super+Alt, 1, exec, caelestia workspace-action movetoworkspace 1 +bind = Super+Alt, 2, exec, caelestia workspace-action movetoworkspace 2 +bind = Super+Alt, 3, exec, caelestia workspace-action movetoworkspace 3 +bind = Super+Alt, 4, exec, caelestia workspace-action movetoworkspace 4 +bind = Super+Alt, 5, exec, caelestia workspace-action movetoworkspace 5 +bind = Super+Alt, 6, exec, caelestia workspace-action movetoworkspace 6 +bind = Super+Alt, 7, exec, caelestia workspace-action movetoworkspace 7 +bind = Super+Alt, 8, exec, caelestia workspace-action movetoworkspace 8 +bind = Super+Alt, 9, exec, caelestia workspace-action movetoworkspace 9 +bind = Super+Alt, 0, exec, caelestia workspace-action movetoworkspace 10 +# Move window to workspace group # +bind = Ctrl+Super+Alt, 1, exec, caelestia workspace-action movetoworkspacegroup 1 +bind = Ctrl+Super+Alt, 2, exec, caelestia workspace-action movetoworkspacegroup 2 +bind = Ctrl+Super+Alt, 3, exec, caelestia workspace-action movetoworkspacegroup 3 +bind = Ctrl+Super+Alt, 4, exec, caelestia workspace-action movetoworkspacegroup 4 +bind = Ctrl+Super+Alt, 5, exec, caelestia workspace-action movetoworkspacegroup 5 +bind = Ctrl+Super+Alt, 6, exec, caelestia workspace-action movetoworkspacegroup 6 +bind = Ctrl+Super+Alt, 7, exec, caelestia workspace-action movetoworkspacegroup 7 +bind = Ctrl+Super+Alt, 8, exec, caelestia workspace-action movetoworkspacegroup 8 +bind = Ctrl+Super+Alt, 9, exec, caelestia workspace-action movetoworkspacegroup 9 +bind = Ctrl+Super+Alt, 0, exec, caelestia workspace-action movetoworkspacegroup 10 +# Move window to workspace -1/+1 +binde = Super+Alt, Page_Up, movetoworkspace, -1 +binde = Super+Alt, Page_Down, movetoworkspace, +1 +bind = Super+Alt, mouse_down, movetoworkspace, -1 +bind = Super+Alt, mouse_up, movetoworkspace, +1 +binde = Ctrl+Super+Shift, right, movetoworkspace, +1 +binde = Ctrl+Super+Shift, left, movetoworkspace, -1 +# Move window to/from special workspace +bind = Ctrl+Super+Shift, up, movetoworkspace, special:special +bind = Ctrl+Super+Shift, down, movetoworkspace, e+0 +bind = Super+Alt, S, movetoworkspace, special:special + +# Window actions +bind = Super, left, movefocus, l +bind = Super, right, movefocus, r +bind = Super, up, movefocus, u +bind = Super, down, movefocus, d +bind = Super+Shift, left, movewindow, l +bind = Super+Shift, right, movewindow, r +bind = Super+Shift, up, movewindow, u +bind = Super+Shift, down, movewindow, d +binde = Super, Minus, splitratio, -0.1 +binde = Super, Equal, splitratio, 0.1 +bindm = Super, mouse:272, movewindow +bindm = Super, Z, movewindow +bindm = Super, mouse:273, resizewindow +bindm = Super, X, resizewindow +bind = Ctrl+Super, Backslash, centerwindow, 1 +bind = Ctrl+Super+Alt, Backslash, centerwindow, 1 +bind = Ctrl+Super+Alt, Backslash, resizeactive, exact 55% 70% +bind = Super+Alt, Backslash, exec, caelestia pip # Move window to picture-in-picture mode +bind = Super, P, pin +bind = Super, F, fullscreen, 0 +bind = Super+Alt, F, fullscreen, 1 # Fullscreen with borders +bind = Super+Alt, Space, togglefloating, +bind = Super, Q, killactive, + +# Special workspace toggles +bind = Ctrl+Shift, Escape, exec, caelestia toggle sysmon +bind = Super, M, exec, caelestia toggle music +bind = Super, D, exec, caelestia toggle communication + +# Apps +bind = Super, T, exec, uwsm app -- foot +bind = Super, W, exec, uwsm app -- firefox +bind = Super, C, exec, uwsm app -- codium +bind = Super, G, exec, uwsm app -- github-desktop +bind = Super, E, exec, uwsm app -- thunar +bind = Super+Alt, E, exec, uwsm app -- nemo +bind = Ctrl+Alt, Escape, exec, uwsm app -- qps +bind = Ctrl+Alt, V, exec, uwsm app -- pavucontrol +bind = Ctrl+Super, Slash, exec, pkill fuzzel || fuzzel --launch-prefix='uwsm app -- ' # Secondary app launcher + +# Shell keybinds +bindr = Ctrl+Super, R, exec, caelestia shell reload css +bindr = Ctrl+Super+Shift, R, exec, caelestia shell quit; uwsm app -- caelestia shell +bindr = Ctrl+Super+Alt, R, exec, hyprctl reload; caelestia shell quit; uwsm app -- caelestia shell +bindir = Super, Super_L, exec, caelestia shell -t launcher + +# Utilities +bindl = , Print, exec, caelestia screenshot # Full screen capture > clipboard +bind = Super+Shift, S, exec, grimblast --freeze save area - | uwsm app -- swappy -f - # Capture region (freeze) +bind = Super+Shift+Alt, S, exec, grimblast save area - | uwsm app -- swappy -f - # Capture region +bind = Super+Alt, R, exec, caelestia record -Hs # Record screen with sound +bind = Ctrl+Alt, R, exec, caelestia record -H # Record screen +bind = Super+Shift+Alt, R, exec, caelestia record -Hr # Record region +bind = Super+Shift, C, exec, hyprpicker -a # Colour picker + +# Media +bindl = Ctrl+Super, Space, exec, caelestia shell media play pause +bindl = , XF86AudioPlay, exec, caelestia shell media play pause +bindl = , XF86AudioPause, exec, caelestia shell media play pause +bindl = Ctrl+Super, Equal, exec, caelestia shell media next +bindl = , XF86AudioNext, exec, caelestia shell media next +bindl = Ctrl+Super, Minus, exec, caelestia shell media previous +bindl = , XF86AudioPrev, exec, caelestia shell media previous +bindl = , XF86AudioStop, exec, caelestia shell media stop + +# Volume +bindl = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle +bindl = Super+Shift, M, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle +bindle = , XF86AudioRaiseVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ +bindle = , XF86AudioLowerVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- + +# Brightness +bindle = , XF86MonBrightnessUp, exec, caelestia shell brightness 10%+ +bindle = , XF86MonBrightnessDown, exec, caelestia shell brightness 10%- + +# Power +bind = Ctrl+Alt, Delete, exec, pkill wlogout || wlogout -p layer-shell +bind = Ctrl+Shift+Alt+Super, Delete, exec, systemctl poweroff + +# Lock indicators +bindlni = , Caps_Lock, exec, caelestia shell show lock-caps +bindlnri = , Caps_Lock, exec, caelestia shell show lock-caps +bindlni = , Num_Lock, exec, caelestia shell show lock-num +bindlnri = , Num_Lock, exec, caelestia shell show lock-num + +# Lock screen +bind = Super, L, exec, loginctl lock-session +bind = Super+Shift, L, exec, loginctl lock-session +bindl = Super+Shift, L, exec, sleep 0.1 && systemctl suspend-then-hibernate + +# Clipboard and emoji picker +bind = Super, V, exec, pkill fuzzel || caelestia clipboard +bind = Super+Alt, V, exec, pkill fuzzel || caelestia clipboard-delete +bind = Super, Period, exec, pkill fuzzel || caelestia emoji-picker +bindl = Ctrl+Shift+Alt, V, exec, sleep 0.5s && ydotool type -d 1 "$(cliphist list | head -1 | cliphist decode)" # Alternate paste + +# Testing +bind = Super+Alt, f12, exec, notify-send -u low -i dialog-information-symbolic 'Test notification' "Here's a really long message to test truncation and wrapping\nYou can middle click or flick this notification to dismiss it!" -a 'Shell' -A "Test1=I got it!" -A "Test2=Another action" diff --git a/hyprland/rules.conf b/hyprland/rules.conf new file mode 100644 index 0000000..9a08b68 --- /dev/null +++ b/hyprland/rules.conf @@ -0,0 +1,74 @@ +# ######## Window rules ######## +windowrulev2 = opacity 0.95 override, floating:0 # Applies transparency to tiled windows +windowrulev2 = noshadow, floating:0 # No shadow for tiled windows +windowrulev2 = center 1, floating:1, xwayland:0 # Center all floating windows (not xwayland cause popups) +windowrulev2 = bordersize 1, floating:1 + +# Float +windowrule = float, guifetch # FlafyDev/guifetch +windowrule = float, yad +windowrule = float, zenity +windowrule = float, wev # for wev key thingy input window +windowrule = float, org\.gnome\.FileRoller +windowrule = float, file-roller # WHY IS THERE TWOOOOOOOOOOOOOOOO +windowrule = float, blueman-manager +windowrule = float, com\.github\.GradienceTeam\.Gradience +windowrule = float, feh +windowrule = float, imv +windowrule = float, system-config-printer + +# Float, resize and center +windowrulev2 = float, class:foot, title:nmtui +windowrulev2 = size 60% 70%, class:foot, title:nmtui +windowrulev2 = center 1, class:foot, title:nmtui +windowrule = float, org\.gnome\.Settings +windowrule = size 70% 80%, org\.gnome\.Settings +windowrule = center 1, org\.gnome\.Settings +windowrule = float, org\.pulseaudio\.pavucontrol|yad-icon-browser +windowrule = size 60% 70%, org\.pulseaudio\.pavucontrol|yad-icon-browser +windowrule = center 1, org\.pulseaudio\.pavucontrol|yad-icon-browser + +# Special workspaces +windowrule = workspace special:sysmon, btop +windowrule = workspace special:music, feishin|Spotify +windowrulev2 = workspace special:music, initialTitle:Spotify( Free)? # Spotify wayland, it has no class for some reason +windowrule = workspace special:communication, vesktop|whatsapp + +# Dialogs +windowrule = float, title:(Select|Open)( a)? (File|Folder)(s)? +windowrule = float, title:File (Operation|Upload)( Progress)? +windowrule = float, title:Export Image as PNG +windowrule = float, title:GIMP Crash Debug +windowrule = float, title:Save As +windowrule = float, title:Library + +# Picture in picture (resize and move done via script) +windowrule = move 100%-w-2% 100%-w-3%, title:Picture(-| )in(-| )[Pp]icture # Initial move so window doesn't shoot across the screen from the center +windowrule = keepaspectratio, title:Picture(-| )in(-| )[Pp]icture +windowrule = float, title:Picture(-| )in(-| )[Pp]icture +windowrule = pin, title:Picture(-| )in(-| )[Pp]icture + +# Steam +windowrulev2 = rounding 10, title:, class:steam +windowrulev2 = float, title:Friends List, class:steam +windowrule = immediate, steam_app_[0-9]+ # Allow tearing for steam games +windowrule = idleinhibit always, steam_app_[0-9]+ # Always idle inhibit when playing a steam game + +# ATLauncher console +windowrulev2 = float, class:com-atlauncher-App, title:ATLauncher Console + +# Ugh xwayland popups +windowrulev2 = nodim, xwayland:1, title:win[0-9]+ +windowrulev2 = noshadow, xwayland:1, title:win[0-9]+ +windowrulev2 = rounding 10, xwayland:1, title:win[0-9]+ + +# ######## Workspace rules ######## +workspace = s[true], gapsout:10, bordersize:1 + +# ######## Layer rules ######## +layerrule = animation fade, hyprpicker # Colour picker out animation +layerrule = animation fade, logout_dialog # wlogout + +# Shell +layerrule = animation popin 80%, caelestia-launcher +layerrule = animation fade, caelestia-lock-(caps|num) diff --git a/hyprland/scheme.conf b/hyprland/scheme.conf new file mode 100644 index 0000000..742a330 --- /dev/null +++ b/hyprland/scheme.conf @@ -0,0 +1,26 @@ +$rosewater = f4dbd6 +$flamingo = f0c6c6 +$pink = f5bde6 +$mauve = c6a0f6 +$red = ed8796 +$maroon = ee99a0 +$peach = f5a97f +$yellow = eed49f +$green = a6da95 +$teal = 8bd5ca +$sky = 91d7e3 +$sapphire = 7dc4e4 +$blue = 8aadf4 +$lavender = b7bdf8 +$text = cad3f5 +$subtext1 = b8c0e0 +$subtext0 = a5adcb +$overlay2 = 939ab7 +$overlay1 = 8087a2 +$overlay0 = 6e738d +$surface2 = 5b6078 +$surface1 = 494d64 +$surface0 = 363a4f +$base = 24273a +$mantle = 1e2030 +$crust = 181926 diff --git a/scheme/hyprland/frappe.conf b/scheme/hyprland/frappe.conf new file mode 100644 index 0000000..000a34e --- /dev/null +++ b/scheme/hyprland/frappe.conf @@ -0,0 +1,26 @@ +$rosewater = f2d5cf +$flamingo = eebebe +$pink = f4b8e4 +$mauve = ca9ee6 +$red = e78284 +$maroon = ea999c +$peach = ef9f76 +$yellow = e5c890 +$green = a6d189 +$teal = 81c8be +$sky = 99d1db +$sapphire = 85c1dc +$blue = 8caaee +$lavender = babbf1 +$text = c6d0f5 +$subtext1 = b5bfe2 +$subtext0 = a5adce +$overlay2 = 949cbb +$overlay1 = 838ba7 +$overlay0 = 737994 +$surface2 = 626880 +$surface1 = 51576d +$surface0 = 414559 +$base = 303446 +$mantle = 292c3c +$crust = 232634 diff --git a/scheme/hyprland/latte.conf b/scheme/hyprland/latte.conf new file mode 100644 index 0000000..232ce08 --- /dev/null +++ b/scheme/hyprland/latte.conf @@ -0,0 +1,26 @@ +$rosewater = dc8a78 +$flamingo = dd7878 +$pink = ea76cb +$mauve = 8839ef +$red = d20f39 +$maroon = e64553 +$peach = fe640b +$yellow = df8e1d +$green = 40a02b +$teal = 179299 +$sky = 04a5e5 +$sapphire = 209fb5 +$blue = 1e66f5 +$lavender = 7287fd +$text = 4c4f69 +$subtext1 = 5c5f77 +$subtext0 = 6c6f85 +$overlay2 = 7c7f93 +$overlay1 = 8c8fa1 +$overlay0 = 9ca0b0 +$surface2 = acb0be +$surface1 = bcc0cc +$surface0 = ccd0da +$base = eff1f5 +$mantle = e6e9ef +$crust = dce0e8 diff --git a/scheme/hyprland/macchiato.conf b/scheme/hyprland/macchiato.conf new file mode 100644 index 0000000..742a330 --- /dev/null +++ b/scheme/hyprland/macchiato.conf @@ -0,0 +1,26 @@ +$rosewater = f4dbd6 +$flamingo = f0c6c6 +$pink = f5bde6 +$mauve = c6a0f6 +$red = ed8796 +$maroon = ee99a0 +$peach = f5a97f +$yellow = eed49f +$green = a6da95 +$teal = 8bd5ca +$sky = 91d7e3 +$sapphire = 7dc4e4 +$blue = 8aadf4 +$lavender = b7bdf8 +$text = cad3f5 +$subtext1 = b8c0e0 +$subtext0 = a5adcb +$overlay2 = 939ab7 +$overlay1 = 8087a2 +$overlay0 = 6e738d +$surface2 = 5b6078 +$surface1 = 494d64 +$surface0 = 363a4f +$base = 24273a +$mantle = 1e2030 +$crust = 181926 diff --git a/scheme/hyprland/mocha.conf b/scheme/hyprland/mocha.conf new file mode 100644 index 0000000..a9931b7 --- /dev/null +++ b/scheme/hyprland/mocha.conf @@ -0,0 +1,26 @@ +$rosewater = f5e0dc +$flamingo = f2cdcd +$pink = f5c2e7 +$mauve = cba6f7 +$red = f38ba8 +$maroon = eba0ac +$peach = fab387 +$yellow = f9e2af +$green = a6e3a1 +$teal = 94e2d5 +$sky = 89dceb +$sapphire = 74c7ec +$blue = 89b4fa +$lavender = b4befe +$text = cdd6f4 +$subtext1 = bac2de +$subtext0 = a6adc8 +$overlay2 = 9399b2 +$overlay1 = 7f849c +$overlay0 = 6c7086 +$surface2 = 585b70 +$surface1 = 45475a +$surface0 = 313244 +$base = 1e1e2e +$mantle = 181825 +$crust = 11111b diff --git a/scripts/gen-scheme.fish b/scripts/gen-scheme.fish new file mode 100755 index 0000000..2177082 --- /dev/null +++ b/scripts/gen-scheme.fish @@ -0,0 +1,32 @@ +#!/bin/fish + +set -q XDG_CACHE_HOME && set cache $XDG_CACHE_HOME/caelestia || set cache ~/.cache/caelestia +set scheme_path $cache/scheme/current.txt +set lock_file $cache/locks/hypr-gen-scheme.lock +set hypr ~/.config/hypr + +set default mocha +set program $argv[1] + +function update-scheme -a scheme + cp $hypr/scheme/$program/$scheme.conf $hypr/$program/scheme.conf +end + +if test -f $scheme_path + if test -f $lock_file + set -l scheme (cat $scheme_path) + test -f $hypr/scheme/$program/$scheme.conf && update-scheme $scheme || update-scheme $default + else + # Lock so only 1 monitor + mkdir -p (dirname $lock_file) + touch $lock_file + trap "rm $lock_file" SIGINT + + # Monitor file for changes + tail -f $scheme_path | while read line + test -f $hypr/scheme/$program/$line.conf && update-scheme $line + end + end +else + update-scheme $default +end