From c28a6769acc068351f0745528780a9878d99b8b5 Mon Sep 17 00:00:00 2001 From: moonleay Date: Sat, 11 Nov 2023 14:00:22 +0100 Subject: [PATCH] big bang --- gtk-2.0/gtkfilechooser.ini | 11 ++ gtk-3.0/bookmarks | 7 + gtk-3.0/settings.ini | 17 +++ hypr/hyprland.conf | 197 +++++++++++++++++++++++++ hypr/hyprpaper.conf | 13 ++ hypr/scripts/fixXwaylandVideoBridge.sh | 8 + kitty/kitty.conf | 2 + waybar/config | 105 +++++++++++++ waybar/modules/spotify.sh | 33 +++++ waybar/style.css | 185 +++++++++++++++++++++++ 10 files changed, 578 insertions(+) create mode 100644 gtk-2.0/gtkfilechooser.ini create mode 100644 gtk-3.0/bookmarks create mode 100644 gtk-3.0/settings.ini create mode 100644 hypr/hyprland.conf create mode 100644 hypr/hyprpaper.conf create mode 100755 hypr/scripts/fixXwaylandVideoBridge.sh create mode 100644 kitty/kitty.conf create mode 100644 waybar/config create mode 100755 waybar/modules/spotify.sh create mode 100644 waybar/style.css diff --git a/gtk-2.0/gtkfilechooser.ini b/gtk-2.0/gtkfilechooser.ini new file mode 100644 index 0000000..6eb75cc --- /dev/null +++ b/gtk-2.0/gtkfilechooser.ini @@ -0,0 +1,11 @@ +[Filechooser Settings] +LocationMode=path-bar +ShowHidden=false +ShowSizeColumn=true +GeometryX=1820 +GeometryY=236 +GeometryWidth=840 +GeometryHeight=630 +SortColumn=name +SortOrder=ascending +StartupMode=recent diff --git a/gtk-3.0/bookmarks b/gtk-3.0/bookmarks new file mode 100644 index 0000000..e5823d2 --- /dev/null +++ b/gtk-3.0/bookmarks @@ -0,0 +1,7 @@ +file:///home/moonleay/Downloads +file:///home/moonleay/IdeaProjects +file:///home/moonleay/Documents +file:///home/moonleay/Pictures +file:///home/moonleay/Pictures/Screenshots +file:///home/moonleay/Music +file:///home/moonleay/Videos diff --git a/gtk-3.0/settings.ini b/gtk-3.0/settings.ini new file mode 100644 index 0000000..7846000 --- /dev/null +++ b/gtk-3.0/settings.ini @@ -0,0 +1,17 @@ +[Settings] +gtk-theme-name=Adwaita-dark +gtk-icon-theme-name=breeze-dark +gtk-font-name=Cantarell 11 +gtk-cursor-theme-name=Adwaita +gtk-cursor-theme-size=24 +gtk-toolbar-style=GTK_TOOLBAR_ICONS +gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR +gtk-button-images=0 +gtk-menu-images=0 +gtk-enable-event-sounds=1 +gtk-enable-input-feedback-sounds=0 +gtk-xft-antialias=1 +gtk-xft-hinting=1 +gtk-xft-hintstyle=hintslight +gtk-xft-rgba=rgb +gtk-application-prefer-dark-theme=0 diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf new file mode 100644 index 0000000..27cba58 --- /dev/null +++ b/hypr/hyprland.conf @@ -0,0 +1,197 @@ +# +# Please note not all available settings / options are set here. +# For a full list, see the wiki +# + +# See https://wiki.hyprland.org/Configuring/Monitors/ +#monitor=,preferred,auto,auto +monitor=eDP-2,preferred,0x0,2 +monitor=HDMI-A-1,preferred,1280x-260,1 + + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more + +# Execute your favorite apps at launch +# exec-once = waybar & hyprpaper & firefox +exec-once = dunst & waybar & hyprpaper # & xwaylandvideobridge +exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +exec-once = hyprctl setcursor Adwaita 24 +exec-once = zsh /home/moonleay/.config/hypr/hyprland/scripts/fixXwaylandVideoBridge.sh +exec-once = solaar -w hide +#exec-once = /usr/lib/polkit-kde-authentication-agent-1 + +# Source a file (multi-file configs) +# source = ~/.config/hypr/myColors.conf + +# Some default env vars. +#env = XCURSOR_SIZE,24 +env = MOZ_ENABLE_WAYLAND,1 +env = MOZ_DISABLE_RDD_SANDBOX,1 + +# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ +input { + kb_layout = us + kb_variant = colemak_dh #colemak_dh_iso + kb_model = pc104 + kb_options = + kb_rules = + + follow_mouse = 1 + + touchpad { + natural_scroll = yes + } + + sensitivity = -0.2 #0 # -1.0 - 1.0, 0 means no modification. + accel_profile = flat +} + +general { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + gaps_in = 5 #5 + gaps_out = 5 #20 + border_size = 1.5 #2 + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.inactive_border = rgba(595959aa) + + layout = dwindle +} + +decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + rounding = 5 # 10 + + blur { + enabled = true + size = 3 + passes = 1 + } + + drop_shadow = yes + shadow_range = 4 + shadow_render_power = 3 + col.shadow = rgba(1a1a1aee) +} + +animations { + enabled = yes + + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 7, 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, 6, default +} + +dwindle { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = yes # you probably want this +} + +master { + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + new_is_master = true +} + +gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = off +} + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more +#device:5586d3691540 { +# sensitivity = -0.5 +#} + +# unscale XWayland +#xwayland { +# force_zero_scaling = true +#} + +# toolkit-specific scale +#env = GDK_SCALE,2 +#env = XCURSOR_SIZE,24 + +# Example windowrule v1 +# windowrule = float, ^(kitty)$ +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more +$mainMod = SUPER + +# Eject = XF86Eject +# XF86Tools = F13 +# XF86Launch5 = F14 +# XF86Launch6 = F15 +# ... +# XF86Launch9 = F18 +# NoSymbol = F19 +bind = , XF86Tools, exec, playerctl previous +bind = , XF86Launch5, exec, playerctl play-pause +bind = , XF86Launch6, exec, playerctl next + + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, Q, exec, kitty +bind = $mainMod, C, killactive, +bind = $mainMod, M, exit, +bind = $mainMod, E, exec, thunar +bind = $mainMod, V, togglefloating, +bind = $mainMod, R, exec, fuzzel +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, J, togglesplit, # dwindle + +# Move focus with mainMod + arrow keys +bind = $mainMod, left, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, up, movefocus, u +bind = $mainMod, down, movefocus, 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, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +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 +bind = $mainMod SHIFT, s, exec, grim -g "$(slurp)" -c "/home/moonleay/Pictures/Screenshots/$(date +'%s_grim.png')" +bind = $mainMod SHIFT, q, exec, librewolf + +# 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 + +# Add swaylock +bind = CTRL ALT, DELETE, exec, swaylock diff --git a/hypr/hyprpaper.conf b/hypr/hyprpaper.conf new file mode 100644 index 0000000..713dc73 --- /dev/null +++ b/hypr/hyprpaper.conf @@ -0,0 +1,13 @@ +preload = ~/Pictures/Wallpaper/cityx4.png +#if more than one preload is desired then continue to preload other backgrounds +#preload = /path/to/next_image.png +# .. more preloads + +#set the default wallpaper(s) seen on inital workspace(s) --depending on the number of monitors used +wallpaper = eDP-2,~/Pictures/Wallpaper/cityx4.png +wallpaper = HDMI-A-1,~/Pictures/Wallpaper/cityx4.png +#if more than one monitor in use, can load a 2nd image +# .. more monitors + + +splash = true diff --git a/hypr/scripts/fixXwaylandVideoBridge.sh b/hypr/scripts/fixXwaylandVideoBridge.sh new file mode 100755 index 0000000..90489b4 --- /dev/null +++ b/hypr/scripts/fixXwaylandVideoBridge.sh @@ -0,0 +1,8 @@ +#!/bin/zsh +sleep 1 +killall -e xdg-desktop-portal-hyprland +killall -e xdg-desktop-portal-wlr +killall xdg-desktop-portal +/usr/lib/xdg-desktop-portal-hyprland & +sleep 2 +/usr/lib/xdg-desktop-portal & diff --git a/kitty/kitty.conf b/kitty/kitty.conf new file mode 100644 index 0000000..21a535e --- /dev/null +++ b/kitty/kitty.conf @@ -0,0 +1,2 @@ +background_opacity 0.5 +enable_audio_bell no diff --git a/waybar/config b/waybar/config new file mode 100644 index 0000000..df69bf9 --- /dev/null +++ b/waybar/config @@ -0,0 +1,105 @@ +{ + "layer": "top", // Waybar at top layer + "position": "top", // Waybar position (top|bottom|left|right) + "height": 20, // Waybar height (to be removed for auto height) + //"spacing": 4, // Gaps between modules (4px) + // Choose the order of the modules + "modules-left": ["hyprland/workspaces","hyprland/window"], +// "modules-center": ["cava"], + "modules-right": ["custom/spotify", "network", "cpu", "memory", "temperature", "backlight", "pulseaudio", "battery", "tray", "clock"], + // Modules configuration + "hyprland/workspaces": { + "format": "{name}", + "on-scroll-up": "hyprctl dispatch workspace e+1", + "on-scroll-down": "hyprctl dispatch workspace e-1", + "on-click": "activate" + }, + "keyboard-state": { + "numlock": true, + "capslock": false, + "format": "{name} {icon}", + "format-icons": { + "locked": "", + "unlocked": " " + } + }, + "tray": { + // "icon-size": 21, + "spacing": 10 + }, + "clock": { + "timezone": "Europe/Berlin", + "tooltip-format": "{:%Y %B %d}\n{calendar}", + "format-alt": "{:%F %R}", + "format": "{:%I:%M %p}", + }, + "cpu": { + "format": " {usage}%", + }, + "memory": { + "format": " {}%" + }, + "temperature": { + "thermal-zone": 2, + "hwmon-path": "/sys/class/hwmon/hwmon1/temp1_input", + "critical-threshold": 80, + "format-critical": "{icon} {temperatureC}°C", + "format": "{icon} {temperatureC}°C", + "format-icons": ["", "", ""] + }, + "backlight": { + // "device": "acpi_video1", + "format": "{icon} {percent}%", + "format-icons": ["", "", "", "", "", "", "", "", ""] + }, + "battery": { + "states": { + // "good": 95, + "warning": 20, + "critical": 5 + }, + "format": "{icon} {capacity}%", + "format-charging": " {capacity}%", + "format-plugged": " {capacity}%", + "format-alt": "{icon} {time}", + // "format-good": "", // An empty format will hide the module + "format-full": "Full", + "format-icons": [" ", " ", " ", " ", " "] + }, + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interface + "format-wifi": "{signalStrength}%  ", // "{essid} ({signalStrength}%)  " + "format-ethernet": "LAN ", // "{ipaddr}/{cidr}  " + "tooltip-format": "{ifname} in {essid} via {gwaddr} as {ipaddr}/{cidr} ", // "{ifname} via {gwaddr}  " + "format-linked": "No IP ", // "{ifname} (No IP) " + "format-disconnected": "D/C ⚠", // "Disconnected ⚠" + "format-alt": "{ifname}: {ipaddr}/{cidr}" // "{ifname}: {ipaddr}/{cidr}" + }, + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": "{icon} {volume}%", + "format-bluetooth": " {icon} {volume}%", + "format-bluetooth-muted": "  {icon}", + "format-muted": " ", + "format-source": " {volume}%", + "format-source-muted": "", + "format-icons": { +// "headphone": "", +// "hands-free": "", +// "headset": "", +// "phone": "", +// "portable": "", +// "car": "", + "default": ["", "", " "] + }, + "on-click": "pavucontrol" + }, + "custom/spotify": { + "interval": 1, + "return-type": "json", + "exec": "~/.config/waybar/modules/spotify.sh", + "exec-if": "pgrep spotify", + "escape": true + }, +} + diff --git a/waybar/modules/spotify.sh b/waybar/modules/spotify.sh new file mode 100755 index 0000000..2c7a1c5 --- /dev/null +++ b/waybar/modules/spotify.sh @@ -0,0 +1,33 @@ +#!/bin/sh +# +class=$(playerctl metadata --player=firefox --format '{{lc(status)}}') +icon="󰈹 " + +if [[ $class == "playing" ]]; then + info=$(playerctl metadata --player=firefox --format '{{title}}') + if [[ ${#info} > 60 ]]; then + info=$(echo $info | cut -c1-60)"..." + fi + text=$info" "$icon +elif [[ $class == "paused" ]]; then + text=$icon +elif [[ $class == "stopped" ]]; then + text="" +fi + +classa=$(playerctl metadata --player=spotify --format '{{lc(status)}}') + +if [[ $classa == "playing" ]]; then + icon="" + info=$(playerctl metadata --player=spotify --format '{{artist}} - {{title}}') + if [[ ${#info} > 40 ]]; then + info=$(echo $info | cut -c1-40)"..." + fi + text=$info" "$icon +elif [[ $class == "paused" ]]; then + text=$icon +elif [[ $class == "stopped" ]]; then + text="" +fi + +echo -e "{\"text\":\""$text"\", \"class\":\""$class"\"}" diff --git a/waybar/style.css b/waybar/style.css new file mode 100644 index 0000000..e063e92 --- /dev/null +++ b/waybar/style.css @@ -0,0 +1,185 @@ +* { + /* `otf-font-awesome` is required to be installed for icons */ + font-family: "Noto Sans CJK KR Regular"; + font-size: 13px; + min-height: 0; +} + +window#waybar { + background: rgba(43, 48, 59,0.5); /*transparent; */ + /* background-color: rgba(43, 48, 59, 0.5); */ + /* border-bottom: 3px solid rgba(100, 114, 125, 0.5); */ + color: #ffffff; + transition-property: background-color; + transition-duration: .5s; +} + +window#waybar.hidden { + opacity: 0.2; +} + +#waybar.empty #window { + background-color: transparent; +} + +#workspaces { +} + +#window { + margin: 2; + padding-left: 8; + padding-right: 8; + background-color: rgba(0,0,0,0.3); + font-size:14px; + margin: 1 1 1 1; +} + +button { + /* Use box-shadow instead of border so the text isn't offset */ + box-shadow: inset 0 -3px transparent; + /* Avoid rounded borders under each button name */ + border: none; + border-radius: 0; +} + +/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ +button:hover { + background: inherit; + border-top: 2px solid #c9545d; +} + +#workspaces button { + padding: 0 4px; + /* background-color: rgba(0,0,0,0.3); */ +} + +#workspaces button:hover { +} + +#workspaces button.active { + /* box-shadow: inset 0 -2px #c9545d; */ + background-color: rgba(0,0,0,0.3); + color:#c9545d; + border-top: 2px solid #c9545d; +} + +#workspaces button.urgent { + background-color: #eb4d4b; +} + +#mode { + background-color: #64727D; + border-bottom: 3px solid #ffffff; +} + +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#backlight, +#network, +#pulseaudio, +#wireplumber, +#custom-media, +#tray, +#mode, +#idle_inhibitor, +#scratchpad, +#mpd, +#spotify { + margin: 2px; + padding-left: 4px; + padding-right: 4px; + background-color: rgba(0,0,0,0.3); + color: #ffffff; +} + +/* If workspaces is the leftmost module, omit left margin */ +.modules-left > widget:first-child > #workspaces { + margin-left: 0; +} + +/* If workspaces is the rightmost module, omit right margin */ +.modules-right > widget:last-child > #workspaces { + margin-right: 0; +} + +#battery icon { + color: red; +} + +#battery.charging, #battery.plugged { + color: #ffffff; + background-color: #26A65B; +} + +@keyframes blink { + to { + background-color: #ffffff; + color: #000000; + } +} + +#battery.warning:not(.charging) { + background-color: #f53c3c; + color: #ffffff; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +#battery.critical:not(.charging) { + background-color: #f53c3c; + color: #ffffff; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +label:focus { + background-color: #000000; +} + +#network.disconnected { + background-color: #f53c3c; +} + +#temperature.critical { + background-color: #eb4d4b; +} + +#idle_inhibitor.activated { + background-color: #ecf0f1; + color: #2d3436; +} + +#tray > .passive { + -gtk-icon-effect: dim; +} + +#tray > .needs-attention { + -gtk-icon-effect: highlight; + background-color: #eb4d4b; +} + +/* + +window#waybar.solo { +background-color: #FFFFFF; +} + +window#waybar.termite { +background-color: #3F3F3F; +} + +window#waybar.chromium { +background-color: #000000; +border: none; +} + */