From fadb073153a595f093ff36b54ec837da43687b9e Mon Sep 17 00:00:00 2001 From: grassblock Date: Fri, 17 Jan 2025 13:54:22 +0800 Subject: [PATCH 1/2] feat: hyprland fix error on new version & change wallpaper to video wallpaper --- home/private_dot_config/hypr/conf/env.conf | 46 ++++++++++++++++ home/private_dot_config/hypr/hyprland.conf | 44 +++++++++------ .../hypr/scripts/executable_import-env | 53 +++++++++++++++++++ .../hypr/scripts/executable_import-env-silm | 11 ++++ .../hypr/scripts/executable_video-wallpaper | 2 + 5 files changed, 140 insertions(+), 16 deletions(-) create mode 100644 home/private_dot_config/hypr/conf/env.conf create mode 100644 home/private_dot_config/hypr/scripts/executable_import-env create mode 100644 home/private_dot_config/hypr/scripts/executable_import-env-silm create mode 100644 home/private_dot_config/hypr/scripts/executable_video-wallpaper diff --git a/home/private_dot_config/hypr/conf/env.conf b/home/private_dot_config/hypr/conf/env.conf new file mode 100644 index 0000000..e6eba54 --- /dev/null +++ b/home/private_dot_config/hypr/conf/env.conf @@ -0,0 +1,46 @@ +# This file was imported from envvars config in .config . +# Don't edit this file! This file would be override by import-env script. + +#QT_STYLE_OVERRIDE=kvantum +env=MOZ_ENABLE_WAYLAND,1 +env=QT_QPA_PLATFORM,wayland;xcb +env=XCURSOR_THEME,Bibata-Modern-Ice +#XCURSOR_SIZE=24 +env=SDL_VIDEODRIVER,wayland +env=GDK_BACKEND,wayland,x11,* +env=XDG_DATA_HOME,$HOME/.local/share +env=XDG_CONFIG_HOME,$HOME/.config +env=XDG_STATE_HOME,$HOME/.local/state +env=XDG_CACHE_HOME,$HOME/.cache +# cleaning up home for applications +# adb +$XDG_DATA_HOME=/home/grassblock/.local/share +env=ANDROID_USER_HOME,$XDG_DATA_HOME/android +# bash +${XDG_STATE_HOME}=/home/grassblock/.local/state +env=HISTFILE,${XDG_STATE_HOME}/bash/history +# cargo +env=CARGO_HOME,$XDG_DATA_HOME/cargo +# novideo +$XDG_CACHE_HOME=/home/grassblock/.cache +env=CUDA_CACHE_PATH,$XDG_CACHE_HOME/nv +# gradle +env=GRADLE_USER_HOME,$XDG_DATA_HOME/gradle +# gtk-2.0 +$XDG_CONFIG_HOME=/home/grassblock/.config +env=GTK2_RC_FILES,$XDG_CONFIG_HOME/gtk-2.0/gtkrc +# java +${XDG_CONFIG_HOME}=/home/grassblock/.config +env=_JAVA_OPTIONS,-Djava.util.prefs.userRoot=${XDG_CONFIG_HOME}/java -Djavafx.cachedir=${XDG_CACHE_HOME}/openjfx +# npm +env=NPM_CONFIG_USERCONFIG,$XDG_CONFIG_HOME/npm/npmrc +# platformio +env=PLATFORMIO_CORE_DIR,$XDG_DATA_HOME/platformio +# python (before v3.13.0,still beta) +env=PYTHONSTARTUP,$XDG_CONFIG_HOME/python/pythonrc +# teamspeak +env=TS3_CONFIG_DIR,$XDG_CONFIG_HOME/ts3client +# wakatime +env=WAKATIME_HOME,$XDG_CONFIG_HOME/wakatime +# wine +env=WINEPREFIX,$XDG_DATA_HOME/wine diff --git a/home/private_dot_config/hypr/hyprland.conf b/home/private_dot_config/hypr/hyprland.conf index 01a1b84..8be68fb 100644 --- a/home/private_dot_config/hypr/hyprland.conf +++ b/home/private_dot_config/hypr/hyprland.conf @@ -18,22 +18,22 @@ monitor=,preferred,auto,auto # See https://wiki.hyprland.org/Configuring/Keywords/ for more -# Execute your favorite apps at launch +# Execute apps & services at launch +#exec-once = sleep 1 & dbus-update-activation-environment --systemd --all # now uses uwsm instead exec-once = waybar & hypridle & hyprpaper exec-once = wlsunset -l 39.2 -L 118.6 exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 exec-once = mako exec-once = fcitx5 -d --replace -exec-once = XDG_MENU_PREFIX, plasma- #this fix dolphin open with exec-once = wl-paste --watch cliphist store #Stores only text data exec-once = wl-paste --type image --watch cliphist store exec-once = udiskie --appindicator --no-automount # show appindicator but don't mount devices -exec-once = dbus-update-activation-environment --systemd --all -exec-once = echo 'Xft.dpi:144' | xrdb -merge +exec-once = echo 'Xft.dpi:144' | xrdb -merge # fix xwayland scaling +exec-once = /home/grassblock/.config/hypr/scripts/video-wallpaper # Source a file (multi-file configs) -# source = ~/.config/hypr/myColors.conf +source = ~/.config/hypr/conf/env.conf # This imports the environment varibles # Set programs that you use $terminal = kitty @@ -45,15 +45,16 @@ env = HYPRCURSOR_THEME,Bibata-Modern-Ice env = HYPRCURSOR_SIZE,24 env = XCURSOR_SIZE,24 env = XCURSOR_THEME,Bibata-Modern-Ice -env = QT_QPA_PLATFORMTHEME,qt6ct # change to qt6ct if you have that +env = QT_QPA_PLATFORMTHEME,qt6ct # change to qt5ct if you only have that #env = QT_STYLE_OVERRIDE,kvantum #ignore for kde applications crashing #env = GTK_THEME,Nordic-bluish-dark #ignore for libadwaita applications -env = ICON_THEME,Papirus-Dark +#env = ICON_THEME,Papirus-Dark #env = QT_SCALE_FACTOR_ROUNDING_POLICY,Passthrough env = QT_AUTO_SCREEN_SCALE_FACTOR,1 -env = LANG,zh_CN.UTF-8 +env = LANG,en_GB.UTF-8 env = XDG_SESSION_DESKTOP,Hyprland -env = XDG_MENU_PREFIX,arch- +#env = XDG_MENU_PREFIX, plasma- +env = XDG_MENU_PREFIX,arch- #this fix dolphin open with # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input { @@ -98,10 +99,14 @@ decoration { passes = 1 } - drop_shadow = yes - shadow_range = 4 - shadow_render_power = 3 - col.shadow = rgba(1a1a1aee) + #dim_inactive = true + + shadow { + enabled = true + range = 4 + render_power = 3 + color =rgba(1a1a1aee) + } } animations { @@ -153,7 +158,7 @@ misc { # Example windowrule v2 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more -windowrulev2 = suppressevent maximize, class:.* # You'll probably like this. +#windowrulev2 = suppressevent maximize, class:.* # You'll probably like this. windowrule = pseudo,fcitx # waylyrics windowrule for desktop lyrics windowrulev2 = float,class:(io.github.waylyrics.Waylyrics) @@ -170,14 +175,21 @@ windowrulev2 = noborder,class:(Waydroid) windowrulev2 = noshadow,class:(Waydroid) windowrulev2 = nomaxsize,class:(Waydroid) +# shimeji +windowrule = float, com-group_finity-mascot-Main +windowrule = noblur, com-group_finity-mascot-Main +windowrule = nofocus, com-group_finity-mascot-Main +windowrule = noshadow, com-group_finity-mascot-Main +windowrule = noborder, com-group_finity-mascot-Main # See https://wiki.hyprland.org/Configuring/Keywords/ for more $mainMod = SUPER # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more -bind = $mainMod, Q, exec, $terminal +bind = $mainMod, K, exec, $terminal bind = $mainMod, C, killactive, -bind = $mainMod, M, exit, +bind = ALT, F4, killactive, +#bind = $mainMod, M, exit, bind = $mainMod, E, exec, $fileManager bind = $mainMod, F, togglefloating, bind = $mainMod, R, exec, $menu diff --git a/home/private_dot_config/hypr/scripts/executable_import-env b/home/private_dot_config/hypr/scripts/executable_import-env new file mode 100644 index 0000000..511cb6d --- /dev/null +++ b/home/private_dot_config/hypr/scripts/executable_import-env @@ -0,0 +1,53 @@ +#!/bin/bash + +# Output file +output_file="$HOME/.config/hypr/conf/env.conf" + +# Well-known environment variables to skip +skip_vars="HOME" + +# Define the output file +output_file="$HOME/.config/hypr/conf/env.conf" + +# Write Info into file +echo -e "# This file was imported from envvars config in .config .\n# Don't edit this file! This file would be override by import-env script.\n" > "$output_file" + +# Temporary associative array to store referenced variables +declare -A var_references + +# Process each .conf file in the directory +for conf_file in ~/.config/environment.d/*.conf; do + while IFS= read -r line || [ -n "$line" ]; do + # Preserve comments + if [[ $line =~ ^#.* ]]; then + echo "$line" >> "$output_file" + continue + fi + + # Handle variable definitions, skipping lines without '=' + if [[ $line =~ ^([A-Za-z_][A-Za-z0-9_]*)=(.*)$ ]]; then + key="${BASH_REMATCH[1]}" + value="${BASH_REMATCH[2]}" + + # Check if the value references another variable + if [[ $value =~ \$(\{?[A-Za-z_][A-Za-z0-9_]*\}?) ]]; then + var_name="${BASH_REMATCH[1]}" + var_name="${var_name//\{\}/}" + + # If the referenced variable is not in the skip list, add to references + if ! [[ $skip_vars =~ $var_name ]]; then + if [[ -z ${var_references[$var_name]} ]]; then + var_ref_value=$(eval echo \$$var_name) + echo "\$$var_name=$var_ref_value" >> "$output_file" + var_references[$var_name]=$var_ref_value + fi + fi + fi + + # Write the environment variable in the desired format + echo "env=${key},${value}" >> "$output_file" + fi + done < "$conf_file" +done + +echo "Merged environment variables written to $output_file" diff --git a/home/private_dot_config/hypr/scripts/executable_import-env-silm b/home/private_dot_config/hypr/scripts/executable_import-env-silm new file mode 100644 index 0000000..94a343f --- /dev/null +++ b/home/private_dot_config/hypr/scripts/executable_import-env-silm @@ -0,0 +1,11 @@ +#!/bin/bash + +# Define the output file +output_file="$HOME/.config/hypr/conf/env.conf" + +# Write Info into file +echo -e "# This file was imported from envvars config in .config .\n# Don't edit this file! This file would be override by import-env script.\n" > "$output_file" + +# Use sed to process all .conf files in the directory +sed '/^#/! s/^\([^=]\+\)=\(.*\)$/env=\1,\2/' ~/.config/environment.d/*.conf >> "$output_file" + diff --git a/home/private_dot_config/hypr/scripts/executable_video-wallpaper b/home/private_dot_config/hypr/scripts/executable_video-wallpaper new file mode 100644 index 0000000..fd44f71 --- /dev/null +++ b/home/private_dot_config/hypr/scripts/executable_video-wallpaper @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +mpvpaper -p -o "no-audio loop keepaspect=yes load-scripts=no vo=libmpv" eDP-1 ~/.var/app/com.valvesoftware.Steam/data/Steam/steamapps/workshop/content/431960/2936220664/rooftop.mp4 From a91671f9fc94ed7ac0cb50a2db02362de986f218 Mon Sep 17 00:00:00 2001 From: grassblock Date: Fri, 17 Jan 2025 13:58:03 +0800 Subject: [PATCH 2/2] feat: kitty: style tweaks & add hyperlinked-grep open config --- home/private_dot_config/kitty/kitty.conf | 13 +++++++++++-- home/private_dot_config/kitty/open-actions.conf | 10 ++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 home/private_dot_config/kitty/open-actions.conf diff --git a/home/private_dot_config/kitty/kitty.conf b/home/private_dot_config/kitty/kitty.conf index 2c31069..58f1301 100644 --- a/home/private_dot_config/kitty/kitty.conf +++ b/home/private_dot_config/kitty/kitty.conf @@ -10,19 +10,28 @@ background_opacity 0.7 background_blur 16 +# a bit for cursors +cursor_shape block +#cursor_trail 1 + # fonts font_family SpaceMono Nerd Font bold_font auto italic_font auto bold_italic_font auto # for Chinese fonts -# https://josephpei.github.io/2022/04/18/kitty-terminal-%E7%BB%88%E7%AB%AF/ +# https://josephpei.github.io/2022/04/18/kitty-terminal-终端/ symbol_map U+4E00-U+9FFF,U+3400-U+4DBF Sarasa Term SC # tab bar tab_bar_margin_height 2.0 2.0 -tab_bar_style powerline +tab_bar_style slant tab_powerline_style angled +tab_bar_align left + +# window +wayland_titlebar_color background +hide_window_decorations no # click links w/ ctrl+click mouse_map left click ungrabbed diff --git a/home/private_dot_config/kitty/open-actions.conf b/home/private_dot_config/kitty/open-actions.conf new file mode 100644 index 0000000..10f0159 --- /dev/null +++ b/home/private_dot_config/kitty/open-actions.conf @@ -0,0 +1,10 @@ +# Open any file with a fragment in vim, fragments are generated +# by the hyperlink-grep kitten and nothing else so far. +protocol file +fragment_matches [0-9]+ +action launch --type=overlay --cwd=current nvim +${FRAGMENT} -- ${FILE_PATH} + +# Open text files without fragments in the editor +protocol file +mime text/* +action launch --type=overlay --cwd=current -- ${EDITOR} -- ${FILE_PATH}