diff --git a/.scripts/change-wallpaper b/.scripts/change-wallpaper index 3aaf983..2e93e8f 100755 --- a/.scripts/change-wallpaper +++ b/.scripts/change-wallpaper @@ -52,11 +52,9 @@ elif [ "$XDG_CURRENT_DESKTOP" = "niri" ]; then exit 1 ) - (setsid swaybg -i "$blurred_image" -m fill)& - disown + nohup swaybg -i "$blurred_image" -m fill > /dev/null 2> /dev/null & - (setsid swww img "$image_copied" --transition-type fade --transition-duration 2)& - disown + nohup swww img "$image_copied" --transition-type fade --transition-duration 2 > /dev/null 2> /dev/null & notify-send "Wallpaper Changed" "$image" fi diff --git a/.scripts/config-switch b/.scripts/config-switch index b2ba791..cbdc2ab 100755 --- a/.scripts/config-switch +++ b/.scripts/config-switch @@ -6,7 +6,7 @@ else desktop="$1" fi -for item in "waybar" "kitty" "ghostty"; do +for item in "waybar" "kitty" "ghostty" "wlogout"; do [ -L "$HOME/.config/$item" ] || exit 1 rm "$HOME/.config/$item" diff --git a/.scripts/niri-swayidle b/.scripts/niri-swayidle new file mode 100755 index 0000000..84b435b --- /dev/null +++ b/.scripts/niri-swayidle @@ -0,0 +1,3 @@ +#!/bin/sh + +swayidle -w timeout 300 'hyprlock &' timeout 600 'niri msg action power-off-monitors' before-sleep 'hyprlock &' \ No newline at end of file diff --git a/.scripts/waybar-toggle b/.scripts/waybar-toggle index 3e68ae7..91c80dd 100755 --- a/.scripts/waybar-toggle +++ b/.scripts/waybar-toggle @@ -19,8 +19,7 @@ function open() { sleep 0.2 done fi - (setsid waybar > /dev/null 2> /dev/null &)& - disown + nohup waybar >/dev/null 2>/dev/null & # Reopen the lyrics widget if it was previously closed if [ $lyrics_widget_closed -eq 1 ]; then diff --git a/eww/Lyrics/eww.scss b/eww/Lyrics/eww.scss index 092fe5d..bec06e9 100644 --- a/eww/Lyrics/eww.scss +++ b/eww/Lyrics/eww.scss @@ -10,7 +10,7 @@ } .lyrics-window-single { - background-color: rgba(30, 30, 46, 0.6); + background-color: rgba(30, 30, 46); border-radius: 14px; border: 2px solid $border; } diff --git a/eww/Lyrics/eww.yuck b/eww/Lyrics/eww.yuck index 190c5a5..4ad294c 100644 --- a/eww/Lyrics/eww.yuck +++ b/eww/Lyrics/eww.yuck @@ -45,7 +45,7 @@ (button :class "player-prev" :onclick "playerctl previous --player=spotify" "󰒮") (button :class "player-pp" :onclick "playerctl play-pause --player=spotify" "${play-button}") (button :class "player-next" :onclick "playerctl next --player=spotify" "󰒭") - (button :class "lyrics-info" :onclick "ghostty -e '\"spotify-lyrics\" fetch | less' &" "") + (button :class "lyrics-info" :onclick "ghostty -e sh -c 'spotify-lyrics fetch | less' &" "") ) (box :class "offset-box" :vexpand "false" :hexpand "true" :valign "center" :halign "center" :space-evenly "false" :orientation "h" @@ -69,7 +69,7 @@ ) (box :class "control-box-single" :vexpand "false" :hexpand "false" :space-evenly "true" :orientation "v" (box :class "control-row-1-single" :space-evenly "false" :orientation "h" - (button :class "info-single" :onclick "ghostty -e '\"spotify-lyrics\" fetch | less' &" "") + (button :class "info-single" :onclick "ghostty -e sh -c 'spotify-lyrics fetch | less' &" "") (button :class "offset-plus-single" :onclick "Lyrics/scripts/lyric-offset.py +500" "󰾆") (button :class "offset-reset-single" :onclick "Lyrics/scripts/lyric-offset.py" "󰾅") (button :class "offset-minus-single" :onclick "Lyrics/scripts/lyric-offset.py -500" "󰓅") diff --git a/fish/prev.d/alias.fish b/fish/prev.d/alias.fish index 9fe3699..264faf4 100644 --- a/fish/prev.d/alias.fish +++ b/fish/prev.d/alias.fish @@ -45,8 +45,8 @@ alias grep="grep --color=auto" # nvim if type -q nvim - set -x EDITOR nvim - set -x VISUAL nvim + set -x -g EDITOR nvim + set -x -g VISUAL nvim end # others diff --git a/fish/prev.d/env.fish b/fish/prev.d/env.fish index 4baa413..fb93583 100644 --- a/fish/prev.d/env.fish +++ b/fish/prev.d/env.fish @@ -6,6 +6,6 @@ fish_add_path $HOME/.scripts # man if type -q bat - set -x MANPAGER "sh -c 'col -bx | bat -l man -p'" - set -x MANROFFOPT -c + set -x -g MANPAGER "sh -c 'col -bx | bat -l man -p'" + set -x -g MANROFFOPT -c end \ No newline at end of file diff --git a/niri/config.kdl b/niri/config.kdl index 4718249..7cd28e7 100644 --- a/niri/config.kdl +++ b/niri/config.kdl @@ -65,7 +65,7 @@ layout { proportion 1.0 } - default-column-width { proportion 0.66667; } + default-column-width { proportion 0.7; } focus-ring { width 2 @@ -134,10 +134,9 @@ spawn-at-startup "nm-applet" spawn-sh-at-startup "gnome-keyring-daemon --start --components=secrets" spawn-at-startup "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1" spawn-at-startup "mako" -spawn-at-startup "xwayland-satellite" // idle -spawn-sh-at-startup "swayidle -w timeout 300 'hyprlock &' timeout 600 'niri msg action power-off-monitors' before-sleep 'hyprlock &'" +spawn-sh-at-startup "niri-swayidle" // Clipboard history spawn-sh-at-startup "wl-paste --type text --watch cliphist store" @@ -175,7 +174,6 @@ environment { // Others XCURSOR_SIZE "24" ELECTRON_OZONE_PLATFORM_HINT "wayland" - DISPLAY ":0" } /************************Rules************************/ @@ -202,6 +200,25 @@ window-rule { window-rule { match app-id="com.mitchellh.ghostty" open-floating true + default-column-width { proportion 0.5; } +} + +// Normal terminal +window-rule { + match app-id="kitty" + default-column-width { proportion 0.5; } +} + +// Scrcpy +window-rule { + match app-id="scrcpy" + default-column-width { proportion 0.3; } +} + +// Editor +window-rule { + match app-id="org.gnome.TextEditor" + default-column-width { proportion 0.3; } } // Other floating @@ -255,7 +272,7 @@ binds { Mod+C { spawn-sh "code --password-store=gnome-libsecret"; } Mod+E { spawn "dolphin"; } Mod+W { spawn "zen"; } - Mod+X { spawn "gnome-text-editor"; } + Mod+X { spawn "gnome-text-editor" "--new-window"; } Mod+B { spawn-sh "killall btop || ghostty -e btop"; } Mod+T { spawn "kitty"; } Mod+Return { spawn "kitty"; } @@ -381,7 +398,7 @@ binds { Mod+Shift+F { fullscreen-window; } Mod+Ctrl+F { expand-column-to-available-width; } - Mod+Ctrl+C { center-column; } + Mod+Y { center-column; } Mod+Minus { set-column-width "-10%"; } Mod+Plus { set-column-width "+10%"; } diff --git a/niri/config.kdl.template b/niri/config.kdl.template index 3c80812..98b7068 100644 --- a/niri/config.kdl.template +++ b/niri/config.kdl.template @@ -65,7 +65,7 @@ layout { proportion 1.0 } - default-column-width { proportion 0.66667; } + default-column-width { proportion 0.7; } focus-ring { width 2 @@ -134,10 +134,9 @@ spawn-at-startup "nm-applet" spawn-sh-at-startup "gnome-keyring-daemon --start --components=secrets" spawn-at-startup "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1" spawn-at-startup "mako" -spawn-at-startup "xwayland-satellite" // idle -spawn-sh-at-startup "swayidle -w timeout 300 'hyprlock &' timeout 600 'niri msg action power-off-monitors' before-sleep 'hyprlock &'" +spawn-sh-at-startup "niri-swayidle" // Clipboard history spawn-sh-at-startup "wl-paste --type text --watch cliphist store" @@ -175,7 +174,6 @@ environment { // Others XCURSOR_SIZE "24" ELECTRON_OZONE_PLATFORM_HINT "wayland" - DISPLAY ":0" } /************************Rules************************/ @@ -202,6 +200,25 @@ window-rule { window-rule { match app-id="com.mitchellh.ghostty" open-floating true + default-column-width { proportion 0.5; } +} + +// Normal terminal +window-rule { + match app-id="kitty" + default-column-width { proportion 0.5; } +} + +// Scrcpy +window-rule { + match app-id="scrcpy" + default-column-width { proportion 0.3; } +} + +// Editor +window-rule { + match app-id="org.gnome.TextEditor" + default-column-width { proportion 0.3; } } // Other floating @@ -255,7 +272,7 @@ binds { Mod+C { spawn-sh "code --password-store=gnome-libsecret"; } Mod+E { spawn "dolphin"; } Mod+W { spawn "zen"; } - Mod+X { spawn "gnome-text-editor"; } + Mod+X { spawn "gnome-text-editor" "--new-window"; } Mod+B { spawn-sh "killall btop || ghostty -e btop"; } Mod+T { spawn "kitty"; } Mod+Return { spawn "kitty"; } @@ -381,7 +398,7 @@ binds { Mod+Shift+F { fullscreen-window; } Mod+Ctrl+F { expand-column-to-available-width; } - Mod+Ctrl+C { center-column; } + Mod+Y { center-column; } Mod+Minus { set-column-width "-10%"; } Mod+Plus { set-column-width "+10%"; } diff --git a/waybar-niri/config.jsonc b/waybar-niri/config.jsonc index 44e6b2b..47914cb 100644 --- a/waybar-niri/config.jsonc +++ b/waybar-niri/config.jsonc @@ -17,7 +17,7 @@ "custom/mediaplayer" ], "modules-center": ["clock"], - "modules-right": ["group/monitors", "custom/separator", "group/tray-expander", "idle_inhibitor", "custom/power"], + "modules-right": ["group/monitors", "custom/separator", "group/tray-expander", "custom/caffeine", "custom/power"], // ------------------------------------------------------------------------- // Modules // ------------------------------------------------------------------------- @@ -53,6 +53,21 @@ "min-length": 2, "max-length": 2 }, + "custom/caffeine": { + "format": "{icon}", + "format-icons": { + "active": "", + "inactive": "" + }, + "return-type": "json", + "interval": "once", + "exec": "$HOME/.config/waybar/modules/caffeine.sh", + "on-click": "$HOME/.config/waybar/modules/caffeine.sh toggle && sleep 0.2", + "exec-on-event": true, + "tooltip": false, + "min-length": 2, + "max-length": 2 + }, // Time and Date "clock": { "format": "{:%H:%M | %e %b}", @@ -166,7 +181,7 @@ "max-length": 6, "min-length": 6 }, - // Hyprland + // Niri "group/workspaceactions": { "modules": ["niri/workspaces", "custom/workspacenew"], "orientation": "inherit" diff --git a/waybar-niri/modules/caffeine.sh b/waybar-niri/modules/caffeine.sh new file mode 100755 index 0000000..f36e09b --- /dev/null +++ b/waybar-niri/modules/caffeine.sh @@ -0,0 +1,31 @@ +#!/bin/env bash + +function output() { + jq -n --unbuffered --compact-output \ + --arg alt "$1" \ + --arg class "$2" \ + '{alt: $alt, class: [$class]}' +} + +if [ "$1" = "toggle" ]; then + pid=$(pgrep -x "swayidle") + + if [ -n "$pid" ]; then + killall swayidle > /dev/null 2>&1 + notify-send "Caffeine enabled" "POWERRR!!!" + else + nohup niri-swayidle > /dev/null 2>&1 & + notify-send "Caffeine disabled" "zzz..." + fi + + exit 0 +fi + +# sleep 0.2 # Allow hypridle to start + +pid=$(pgrep -x "swayidle") +if [ -n "$pid" ]; then + output "inactive" "inactive" +else + output "active" "active" +fi \ No newline at end of file diff --git a/waybar-niri/style.css b/waybar-niri/style.css index bf34a33..b06846e 100644 --- a/waybar-niri/style.css +++ b/waybar-niri/style.css @@ -45,6 +45,7 @@ tooltip { #tray, #custom-rofi, #idle_inhibitor, +#custom-caffeine, #custom-power { padding: 0px 10px; } @@ -55,6 +56,7 @@ tooltip { } #custom-rofi, +#custom-caffeine #idle_inhibitor, #custom-power, #custom-expand-icon { @@ -168,14 +170,17 @@ window#waybar.empty #window { color: @green; } +#custom-caffeine, #idle_inhibitor { color: @yellow; } +#custom-caffeine:hover, #idle_inhibitor:hover { background-color: alpha(@yellow, 0.3); } +#custom-caffeine.active, #idle_inhibitor.activated { color: @peach; } diff --git a/waybar-niri/style.css.template b/waybar-niri/style.css.template index 5fb3644..ea0218c 100644 --- a/waybar-niri/style.css.template +++ b/waybar-niri/style.css.template @@ -45,6 +45,7 @@ tooltip { #tray, #custom-rofi, #idle_inhibitor, +#custom-caffeine, #custom-power { padding: 0px 10px; } @@ -55,6 +56,7 @@ tooltip { } #custom-rofi, +#custom-caffeine #idle_inhibitor, #custom-power, #custom-expand-icon { @@ -168,14 +170,17 @@ window#waybar.empty #window { color: @green; } +#custom-caffeine, #idle_inhibitor { color: @yellow; } +#custom-caffeine:hover, #idle_inhibitor:hover { background-color: alpha(@yellow, 0.3); } +#custom-caffeine.active, #idle_inhibitor.activated { color: @peach; } diff --git a/wlogout-niri/icons/hibernate.svg b/wlogout-niri/icons/hibernate.svg new file mode 100644 index 0000000..5626c72 --- /dev/null +++ b/wlogout-niri/icons/hibernate.svg @@ -0,0 +1,7 @@ + + + + + Svg Vector Icons : http://www.onlinewebfonts.com/icon + + diff --git a/wlogout-niri/icons/hibernate.svg.template b/wlogout-niri/icons/hibernate.svg.template new file mode 100644 index 0000000..22b5945 --- /dev/null +++ b/wlogout-niri/icons/hibernate.svg.template @@ -0,0 +1,7 @@ + + + + + Svg Vector Icons : http://www.onlinewebfonts.com/icon + + diff --git a/wlogout-niri/icons/lock.svg b/wlogout-niri/icons/lock.svg new file mode 100644 index 0000000..4b629fd --- /dev/null +++ b/wlogout-niri/icons/lock.svg @@ -0,0 +1,7 @@ + + + + + Svg Vector Icons : http://www.onlinewebfonts.com/icon + + diff --git a/wlogout-niri/icons/lock.svg.template b/wlogout-niri/icons/lock.svg.template new file mode 100644 index 0000000..83628cb --- /dev/null +++ b/wlogout-niri/icons/lock.svg.template @@ -0,0 +1,7 @@ + + + + + Svg Vector Icons : http://www.onlinewebfonts.com/icon + + diff --git a/wlogout-niri/icons/logout.svg b/wlogout-niri/icons/logout.svg new file mode 100644 index 0000000..3e0cc80 --- /dev/null +++ b/wlogout-niri/icons/logout.svg @@ -0,0 +1,7 @@ + + + + + Svg Vector Icons : http://www.onlinewebfonts.com/icon + + diff --git a/wlogout-niri/icons/logout.svg.template b/wlogout-niri/icons/logout.svg.template new file mode 100644 index 0000000..669ecd8 --- /dev/null +++ b/wlogout-niri/icons/logout.svg.template @@ -0,0 +1,7 @@ + + + + + Svg Vector Icons : http://www.onlinewebfonts.com/icon + + diff --git a/wlogout-niri/icons/reboot.svg b/wlogout-niri/icons/reboot.svg new file mode 100644 index 0000000..c05f000 --- /dev/null +++ b/wlogout-niri/icons/reboot.svg @@ -0,0 +1,7 @@ + + + + + Svg Vector Icons : http://www.onlinewebfonts.com/icon + + diff --git a/wlogout-niri/icons/reboot.svg.template b/wlogout-niri/icons/reboot.svg.template new file mode 100644 index 0000000..8ee393a --- /dev/null +++ b/wlogout-niri/icons/reboot.svg.template @@ -0,0 +1,7 @@ + + + + + Svg Vector Icons : http://www.onlinewebfonts.com/icon + + diff --git a/wlogout-niri/icons/shutdown.svg b/wlogout-niri/icons/shutdown.svg new file mode 100644 index 0000000..6693b35 --- /dev/null +++ b/wlogout-niri/icons/shutdown.svg @@ -0,0 +1,7 @@ + + + + + Svg Vector Icons : http://www.onlinewebfonts.com/icon + + diff --git a/wlogout-niri/icons/shutdown.svg.template b/wlogout-niri/icons/shutdown.svg.template new file mode 100644 index 0000000..0dc8f51 --- /dev/null +++ b/wlogout-niri/icons/shutdown.svg.template @@ -0,0 +1,7 @@ + + + + + Svg Vector Icons : http://www.onlinewebfonts.com/icon + + diff --git a/wlogout-niri/icons/suspend.svg b/wlogout-niri/icons/suspend.svg new file mode 100644 index 0000000..08214b4 --- /dev/null +++ b/wlogout-niri/icons/suspend.svg @@ -0,0 +1,7 @@ + + + + + Svg Vector Icons : http://www.onlinewebfonts.com/icon + + diff --git a/wlogout-niri/icons/suspend.svg.template b/wlogout-niri/icons/suspend.svg.template new file mode 100644 index 0000000..1c96603 --- /dev/null +++ b/wlogout-niri/icons/suspend.svg.template @@ -0,0 +1,7 @@ + + + + + Svg Vector Icons : http://www.onlinewebfonts.com/icon + + diff --git a/wlogout-niri/layout b/wlogout-niri/layout new file mode 100644 index 0000000..a0b0dab --- /dev/null +++ b/wlogout-niri/layout @@ -0,0 +1,36 @@ +{ + "label": "lock", + "action": "loginctl lock-session", + "text": "Lock", + "keybind": "l" +} +{ + "label": "hibernate", + "action": "systemctl hibernate", + "text": "Hibernate", + "keybind": "h" +} +{ + "label": "logout", + "action": "niri msg action quit", + "text": "Logout", + "keybind": "e" +} +{ + "label": "shutdown", + "action": "systemctl poweroff", + "text": "Shutdown", + "keybind": "s" +} +{ + "label": "suspend", + "action": "sleep 0.1 && systemctl suspend", + "text": "Suspend", + "keybind": "u" +} +{ + "label": "reboot", + "action": "systemctl reboot", + "text": "Reboot", + "keybind": "r" +} \ No newline at end of file diff --git a/wlogout-niri/style.css b/wlogout-niri/style.css new file mode 100644 index 0000000..408f348 --- /dev/null +++ b/wlogout-niri/style.css @@ -0,0 +1,120 @@ +* { + background-image: none; + font-size: 24px; + font-family: 'Sour Gummy Light'; +} + +window { + background-color: rgba(30, 30, 46, 0.5); +} + +button { + color: #cdd6f4; + border-radius: 0; + outline-style: none; + background-color: alpha(#1e1e2e, 0.8); + border: none; + border-width: 0px; + border-radius: 0px; + border-color: #f5c2e7; + box-shadow: none; + text-shadow: none; + text-decoration-color: #cdd6f4; + background-repeat: no-repeat; + background-position: center; + background-size: 20%; + animation: gradient_f 20s ease-in infinite; +} + +button:focus, +button:active, +button:hover { + background-size: 20%; + background-color: alpha(#1e1e2e, 0.7); + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, 0, 0.28, 1.682); +} + +#lock { + background-image: image(url('./icons/lock.svg')); + border-radius: 32px 0 0 0; +} + +#logout { + background-image: image(url('./icons/logout.svg')); +} + +#suspend { + background-image: image(url('./icons/suspend.svg')); + border-radius: 0 32px 0 0; +} + +#hibernate { + background-image: image(url('./icons/hibernate.svg')); + border-radius: 0 0 0 32px; +} + +#shutdown { + background-image: image(url('./icons/shutdown.svg')); +} + +#reboot { + background-image: image(url('./icons/reboot.svg')); + border-radius: 0 0 32px 0; +} + +#lock:hover { + border-radius: 30px 0 0 0; + margin: -30px 0 0 -30px; +} + +#logout:hover { + margin: -30px 0 0 0; +} + +#suspend:hover { + border-radius: 0 30px 0 0; + margin: -30px -30px 0 0; +} + +#hibernate:hover { + border-radius: 0 0 0 30px; + margin: 0 0 -30 -30px; +} + +#shutdown:hover { + margin: 0 0 -30px 0; +} + +#reboot:hover { + border-radius: 0 0 30px 0; + margin: 0 -30px -30px 0; +} + +#lock:focus { + border-radius: 60px 0 0 0; + margin: -60px 0 0 -60px; +} + +#logout:focus { + margin: -60px 0 0 0; +} + +#suspend:focus { + border-radius: 0 60px 0 0; + margin: -60px -60px 0 0; +} + +#hibernate:focus { + border-radius: 0 0 0 60px; + margin: 0 0 -60 -60px; +} + +#shutdown:focus { + margin: 0 0 -60px 0; +} + +#reboot:focus { + border-radius: 0 0 60px 0; + margin: 0 -60px -60px 0; +} diff --git a/wlogout-niri/style.css.template b/wlogout-niri/style.css.template new file mode 100644 index 0000000..1384e56 --- /dev/null +++ b/wlogout-niri/style.css.template @@ -0,0 +1,120 @@ +* { + background-image: none; + font-size: 24px; + font-family: 'Sour Gummy Light'; +} + +window { + background-color: rgba(30, 30, 46, 0.5); +} + +button { + color: #cdd6f4; + border-radius: 0; + outline-style: none; + background-color: alpha(#1e1e2e, 0.8); + border: none; + border-width: 0px; + border-radius: 0px; + border-color: #; + box-shadow: none; + text-shadow: none; + text-decoration-color: #cdd6f4; + background-repeat: no-repeat; + background-position: center; + background-size: 20%; + animation: gradient_f 20s ease-in infinite; +} + +button:focus, +button:active, +button:hover { + background-size: 20%; + background-color: alpha(#1e1e2e, 0.7); + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, 0, 0.28, 1.682); +} + +#lock { + background-image: image(url('./icons/lock.svg')); + border-radius: 32px 0 0 0; +} + +#logout { + background-image: image(url('./icons/logout.svg')); +} + +#suspend { + background-image: image(url('./icons/suspend.svg')); + border-radius: 0 32px 0 0; +} + +#hibernate { + background-image: image(url('./icons/hibernate.svg')); + border-radius: 0 0 0 32px; +} + +#shutdown { + background-image: image(url('./icons/shutdown.svg')); +} + +#reboot { + background-image: image(url('./icons/reboot.svg')); + border-radius: 0 0 32px 0; +} + +#lock:hover { + border-radius: 30px 0 0 0; + margin: -30px 0 0 -30px; +} + +#logout:hover { + margin: -30px 0 0 0; +} + +#suspend:hover { + border-radius: 0 30px 0 0; + margin: -30px -30px 0 0; +} + +#hibernate:hover { + border-radius: 0 0 0 30px; + margin: 0 0 -30 -30px; +} + +#shutdown:hover { + margin: 0 0 -30px 0; +} + +#reboot:hover { + border-radius: 0 0 30px 0; + margin: 0 -30px -30px 0; +} + +#lock:focus { + border-radius: 60px 0 0 0; + margin: -60px 0 0 -60px; +} + +#logout:focus { + margin: -60px 0 0 0; +} + +#suspend:focus { + border-radius: 0 60px 0 0; + margin: -60px -60px 0 0; +} + +#hibernate:focus { + border-radius: 0 0 0 60px; + margin: 0 0 -60 -60px; +} + +#shutdown:focus { + margin: 0 0 -60px 0; +} + +#reboot:focus { + border-radius: 0 0 60px 0; + margin: 0 -60px -60px 0; +}