diff options
| -rw-r--r-- | assets/rofi/themes/KooL_style-10-Fancy-v2.rasi | 166 | ||||
| -rw-r--r-- | assets/rofi/themes/KooL_style-11-Win11-list-light.rasi | 15 | ||||
| -rw-r--r-- | assets/rofi/themes/KooL_style-12-TOP-Docu.rasi | 149 | ||||
| -rw-r--r-- | assets/rofi/themes/KooL_style-2-Dark.rasi | 10 | ||||
| -rw-r--r-- | assets/rofi/themes/KooL_style-2-Light.rasi | 8 | ||||
| -rw-r--r-- | config/hypr/UserConfigs/UserKeybinds.conf | 1 | ||||
| -rwxr-xr-x | config/hypr/scripts/RofiThemeSelector-modified.sh | 226 |
7 files changed, 562 insertions, 13 deletions
diff --git a/assets/rofi/themes/KooL_style-10-Fancy-v2.rasi b/assets/rofi/themes/KooL_style-10-Fancy-v2.rasi new file mode 100644 index 00000000..845cc5f2 --- /dev/null +++ b/assets/rofi/themes/KooL_style-10-Fancy-v2.rasi @@ -0,0 +1,166 @@ +/** + * Edited by: Dave Davenport + * User: Rasi + * Copyright: Rasmus Steinke + */ + +/* global settings and color variables */ +* { + blue: #A7c6E2; + blue-trans: #A7c6e2aa; + darkblue: #005F87; + green: #00330088; + black: #000000; + grey: #444444; + orange: #FFD391; + dark-orange: #FFA664; + light-grey: #F5F5F5; + medium-grey: #D0D0D0; + dark-grey: #002B36; + urgent: #D75F00; + active: #005F87; + transparent: #000000aa; + spacing: 0em; + padding: 0px; + background-color: white; + line-style: "none"; +} + +prompt-box { + background-color : transparent; +} + +prompt { + background-color : transparent; + text-color : white; +} + +window { + border : 2px; + border-radius : 12px; + border-color : black; + background-color : transparent; + color : @grey; +} +mainbox { + background-color : @blue-trans; + color : @grey; + spacing : 0%; +} + +listview { + // Looks. + border-radius : 10px; + border : 5px; + padding : 20px; + margin : 20px 30px 30px 30px; + background-color : @orange; + // Enable scrollbar + scrollbar : false; + scrollbar-width : 5px; + fixed-height : true; + reverse : false; + color : #000000; + spacing : 0.3em; +} +scrollbar { + color: @black; + background-color: @blue; + padding: 1px; +} +element { + border: 0px; + padding: 0px; + margin: 0px; + spacing: 0.5em; + color: @black; + background-color: @blue; + children: [ element-icon, element-text ]; +} + +element normal.normal { + color: @black; + background-color: @orange; +} +element normal.urgent { + color: @urgent; + background-color: @light-grey; +} +element normal.active { + color: @active; + background-color: @light-grey; +} +element selected.normal { + border-radius: 0px; + color: @black; + background-color: @dark-orange; +} +element selected.urgent { + color: @light-grey; + background-color: @urgent; +} +element selected.active { + color: @light-grey; + background-color: @active; +} +element alternate.normal { + color: @black; + background-color: @orange; +} +element alternate.urgent { + color: @urgent; + background-color: @medium-grey; +} +element alternate.active { + color: @active; + background-color: @medium-grey; +} +inputbar { + spacing : 5px; + background-color : #88003300; + border : 0px 0px 2px 0px; + border-radius : 0px; + padding : 5px 10px 5px 35px; + background-color : #00330088; + color : @black; + end : false; +} + +separator { + background-color : @blue; + color : #00000000; +} +prompt normal.normal { + background-color : #00000000; + color : #ffffff; + padding : 0px; +} +entry normal.normal { + background-color : #00000000; + color : #ffffff; + padding : 0px; +} +case-indicator normal.normal { + background-color : #00000000; + color : #ffffff; + padding : 0px; +} + +message { + margin : 30px; + padding : 20px 30px 20px 20px; + padding : 20px ; + border-radius : 10px; + border : 5px; +} + +prompt-colon { + spacing : 0; + enabled : false; +} + +element-text, element-icon { + background-color : inherit; + text-color : inherit; + foreground-color : inherit; +} diff --git a/assets/rofi/themes/KooL_style-11-Win11-list-light.rasi b/assets/rofi/themes/KooL_style-11-Win11-list-light.rasi index 0e2600f1..e6437b29 100644 --- a/assets/rofi/themes/KooL_style-11-Win11-list-light.rasi +++ b/assets/rofi/themes/KooL_style-11-Win11-list-light.rasi @@ -6,14 +6,14 @@ /* ---- Configuration ---- */ configuration { - dpi: 1; + dpi: 1; show-icons: true; hover-select: true; me-select-entry: "MouseSecondary"; me-accept-entry: "MousePrimary"; } -/*****----- Global Properties -----*****/ +/*****----- Global Properties -----*****/ * { bg0 : #ffffff80; bg1 : #f9f9f9bf; @@ -81,7 +81,6 @@ entry { placeholder-color : @fg1; } - listview { columns : 2; spacing : 8px; @@ -133,9 +132,9 @@ error-message { } textbox { - padding : 10px; - background-color : @bg0; - text-color : @fg0; - vertical-align : 0.5; - horizontal-align : 0.5; + padding : 10px; + background-color : @bg0; + text-color : @fg0; + vertical-align : 0.5; + horizontal-align : 0.5; } diff --git a/assets/rofi/themes/KooL_style-12-TOP-Docu.rasi b/assets/rofi/themes/KooL_style-12-TOP-Docu.rasi new file mode 100644 index 00000000..3e80c81a --- /dev/null +++ b/assets/rofi/themes/KooL_style-12-TOP-Docu.rasi @@ -0,0 +1,149 @@ +/* ---- 馃挮 https://github.com/JaKooLit 馃挮 ---- */ +/* KooL Hyprland Rofi Style 12 - TOP - Docu */ +/* Credit to DaveDavenport. I have only some few things changed */ + +/** + * ROFI Documentation theme. + * User: Qball + * Copyright: Dave Davenport + */ + +configuration { + modi: "drun,run,filebrowser"; + show-icons: true; + display-drun: "Apps"; + display-run: "Run"; + display-filebrowser: "Files"; + display-window: "Windows"; + drun-display-format: "{name}"; + window-format: "{w} 路 {c} 路 {t}"; + dpi: 1; + hover-select: true; + me-select-entry: "MouseSecondary"; + me-accept-entry: "MousePrimary"; +} + +/* ---- Global Properties ---- */ +* { + background-color: transparent; + text-color: white; +} +entry { + border: 2px 0px; + border-color: darkgrey; + background-color: grey; + padding: 4px; + placeholder: "馃攷 Search"; + placeholder-color: darkgrey; + cursor: text; +} + +/*****-- Elements Font Size -----*****/ +element-text { + font: "JetBrainsMono Nerd Font SemiBold 12"; + +} +inputbar { + spacing: 0; + children: [ icon-keyboard, entry, mode-switcher ]; +} + +mode-switcher { + spacing: 10px; + border: 2px; + border-radius: 0px 4px 4px 0px; + border-color: darkgrey; + background-color: darkgrey; +} + +button { + padding: 0px 60px 0px 60px; + background-color: grey; + border-color: darkgrey; + cursor: pointer; +} + +button selected { + background-color: white/20%; + text-color: black; +} + +icon-keyboard { + border: 2px 0px 2px 2px; + border-radius: 4px 0px 0px 4px; + border-color: darkgrey; + background-color: grey; + padding: 0px 10px 0px 10px; + expand: false; + size: 1.2em; + filename: "keyboard"; +} + +window { + anchor: north; + location: north; + width: 100%; + background-color: black / 50%; + padding: 1em; + border-color: black; + border: 0em 0.2em 0.2em; + chilren: [ inputbar, message, listview ]; +} + +mainbox { + spacing: 1em; +} + + +listview { + lines: 4; + columns: 6; + spacing: 1em; + fixed-columns: true; +} + +element { + orientation: vertical; + border: 2px; + border-radius: 4px ; + border-color: darkgrey; + background-color: grey; + cursor: pointer; + padding: 4px; +} + +element selected { + background-color: white/20%; + text-color: black; +} + + +element-icon { + cursor: inherit; +} + +element-text { + horizontal-align: 0.5; + cursor: inherit; +} + +/* ---- Message ---- */ +message { + background-color: transparent; + border: 0px; +} +textbox { + margin: 10px; + padding: 12px; + border-radius: 10px; + background-color: black / 50%; + text-color: white; + vertical-align: 0.5; + horizontal-align: 0.5; +} +error-message { + padding: 12px; + border-radius: 20px; + background-color: black / 50%; + text-color: white; +}
\ No newline at end of file diff --git a/assets/rofi/themes/KooL_style-2-Dark.rasi b/assets/rofi/themes/KooL_style-2-Dark.rasi index 1925203b..5c8381f7 100644 --- a/assets/rofi/themes/KooL_style-2-Dark.rasi +++ b/assets/rofi/themes/KooL_style-2-Dark.rasi @@ -3,7 +3,7 @@ /* Source: https://github.com/adi1090x/rofi */ -/*****----- Configuration -----*****/ +/* ****----- Configuration -----**** */ configuration { modi: "drun,filebrowser,window"; show-icons: true; @@ -11,14 +11,18 @@ configuration { display-run: "RUN"; display-filebrowser: "FILES"; display-window: "WINDOW"; - drun-display-format: "{name}\n[<span weight='light' size='small'><i>({generic})</i></span>]"; - window-format: "Class : {c}\nWorkspace : {w}"; + drun-display-format: "{name}"; + window-format: "{w} 路 {c} 路 {t}"; dpi: 1; hover-select: true; me-select-entry: "MouseSecondary"; me-accept-entry: "MousePrimary"; } +/*****----- Global Properties -----*****/ +* { + +} /*****-- Elements Font Size -----*****/ element-text { font: "JetBrainsMono Nerd Font SemiBold 12"; diff --git a/assets/rofi/themes/KooL_style-2-Light.rasi b/assets/rofi/themes/KooL_style-2-Light.rasi index 118b6e54..08b58d15 100644 --- a/assets/rofi/themes/KooL_style-2-Light.rasi +++ b/assets/rofi/themes/KooL_style-2-Light.rasi @@ -11,14 +11,18 @@ configuration { display-run: "RUN"; display-filebrowser: "FILES"; display-window: "WINDOW"; - drun-display-format: "{name}\n[<span weight='light' size='small'><i>({generic})</i></span>]"; - window-format: "Class : {c}\nWorkspace : {w}"; + drun-display-format: "{name}"; + window-format: "{w} 路 {c} 路 {t}"; dpi: 1; hover-select: true; me-select-entry: "MouseSecondary"; me-accept-entry: "MousePrimary"; } +/*****----- Global Properties -----*****/ +* { + +} /*****-- Elements Font Size -----*****/ element-text { font: "JetBrainsMono Nerd Font SemiBold 12"; diff --git a/config/hypr/UserConfigs/UserKeybinds.conf b/config/hypr/UserConfigs/UserKeybinds.conf index feb54c22..862ffa45 100644 --- a/config/hypr/UserConfigs/UserKeybinds.conf +++ b/config/hypr/UserConfigs/UserKeybinds.conf @@ -31,6 +31,7 @@ bind = $mainMod SHIFT, G, exec, $scriptsDir/GameMode.sh # Toggle animations ON/O bind = $mainMod ALT, L, exec, $scriptsDir/ChangeLayout.sh # Toggle Master or Dwindle Layout bind = $mainMod ALT, V, exec, $scriptsDir/ClipManager.sh # Clipboard Manager bind = $mainMod CTRL, R, exec, $scriptsDir/RofiThemeSelector.sh # modified Rofi Theme Selector +bind = $mainMod CTRL SHIFT, R, exec, $scriptsDir/RofiThemeSelector-modified.sh # modified Rofi Theme Selector bind = $mainMod SHIFT, F, fullscreen # whole full screen bind = $mainMod CTRL, F, fullscreen, 1 # fake full screen diff --git a/config/hypr/scripts/RofiThemeSelector-modified.sh b/config/hypr/scripts/RofiThemeSelector-modified.sh new file mode 100755 index 00000000..e4d476c3 --- /dev/null +++ b/config/hypr/scripts/RofiThemeSelector-modified.sh @@ -0,0 +1,226 @@ +#!/bin/bash +# /* ---- 馃挮 https://github.com/JaKooLit 馃挮 ---- */ ## +# A modified version of Rofi-Theme-Selector, concentrating only on ~/.local and also, applying only 10 @themes in ~/.config/rofi/config.rasi +# as opposed to continous adding of //@theme + +# This code is released in public domain by Dave Davenport <qball@gmpclient.org> + +iDIR="$HOME/.config/swaync/images" + + +OS="linux" + +ROFI=$(command -v rofi) +SED=$(command -v sed) +MKTEMP=$(command -v mktemp) +NOTIFY_SEND=$(command -v notify-send) + +if [ -z "${SED}" ] +then + echo "Did not find 'sed', script cannot continue." + exit 1 +fi +if [ -z "${MKTEMP}" ] +then + echo "Did not find 'mktemp', script cannot continue." + exit 1 +fi +if [ -z "${ROFI}" ] +then + echo "Did not find rofi, there is no point to continue." + exit 1 +fi +if [ -z "${NOTIFY_SEND}" ] +then + echo "Did not find 'notify-send', notifications won't work." +fi + +TMP_CONFIG_FILE=$(${MKTEMP}).rasi +rofi_theme_dir="${HOME}/.local/share/rofi/themes" +rofi_config_file="${XDG_CONFIG_HOME:-${HOME}/.config}/rofi/config.rasi" + +## +# Array with parts to the found themes. +# And array with the printable name. +## +declare -a themes +declare -a theme_names + +## +# Function that tries to find all installed rofi themes. +# This fills in #themes array and formats a displayable string #theme_names +## +find_themes() +{ + DIRS="${HOME}/.local/share" + OLDIFS=${IFS} + IFS=: + # Add user dir. + DIRS+=":${XDG_CONFIG_HOME:-${HOME}/.config}" + for p in ${DIRS}; do + p=${p%/} + TD=${p}/rofi/themes + if [ -n "${p}" ] && [ -d "${TD}" ] + then + echo "Checking themes in: ${TD}" + for file in ${TD}/*.rasi + do + if [ -f "${file}" ] + then + themes+=("${file}") + FN=$(basename "${file}") + NAME=${FN%.*} # Extract the file name without extension + theme_names+=("${NAME}") # Only add the base file name + fi + done + fi + done + IFS=${OLDIFS} +} + +## +# Function to add or update theme in the config.rasi +## +add_theme_to_config() { + local theme_name="$1" + local theme_path="$rofi_theme_dir/$theme_name" + + # if config in $HOME to write as $HOME + if [[ "$theme_path" == $HOME/* ]]; then + theme_path_with_tilde="~${theme_path#$HOME}" + else + theme_path_with_tilde="$theme_path" + fi + + # If no @theme is in the file, add it + if ! grep -q '^\s*@theme' "$rofi_config_file"; then + echo -e "\n\n@theme \"$theme_path_with_tilde\"" >> "$rofi_config_file" + echo "Added @theme \"$theme_path_with_tilde\" to $rofi_config_file" + else + $SED -i "s/^\(\s*@theme.*\)/\/\/\1/" "$rofi_config_file" + echo -e "@theme \"$theme_path_with_tilde\"" >> "$rofi_config_file" + echo "Updated @theme line to $theme_path_with_tilde" + fi + + # Ensure no more than max # of lines with //@theme lines + max_line="9" + total_lines=$(grep -c '^\s*//@theme' "$rofi_config_file") + + if [ "$total_lines" -gt "$max_line" ]; then + excess=$((total_lines - max_line)) + # Remove the oldest or the very top //@theme lines + for i in $(seq 1 "$excess"); do + $SED -i '0,/^\s*\/\/@theme/ { /^\s*\/\/@theme/ {d; q; }}' "$rofi_config_file" + done + echo "Removed excess //@theme lines" + fi +} + +## +# Create a copy of rofi config +## +create_config_copy() +{ + ${ROFI} -dump-config > "${TMP_CONFIG_FILE}" + # remove theme entry. + ${SED} -i 's/^\s*theme:\s\+".*"\s*;//g' "${TMP_CONFIG_FILE}" +} + +### +# Print the list out so it can be displayed by rofi. +## +create_theme_list() +{ + OLDIFS=${IFS} + IFS='|' + for themen in ${theme_names[@]} + do + echo "${themen}" + done + IFS=${OLDIFS} +} + +## +# Thee indicate what entry is selected. +## +declare -i SELECTED + +select_theme() +{ + local MORE_FLAGS=(-dmenu -format i -no-custom -p "Theme" -markup -config "${TMP_CONFIG_FILE}" -i) + MORE_FLAGS+=(-kb-custom-1 "Alt-a") + MORE_FLAGS+=(-u 2,3 -a 4,5 ) + local CUR="default" + while true + do + declare -i RTR + declare -i RES + local MESG="""You can preview themes by hitting <b>Enter</b>. +<b>Alt-a</b> to accept the new theme. +<b>Escape</b> to cancel +Current theme: <b>${CUR}</b> +<span weight=\"bold\" size=\"xx-small\">When setting a new theme this will override previous theme settings. +Please update your config file if you have local modifications.</span>""" + THEME_FLAG= + if [ -n "${SELECTED}" ] + then + THEME_FLAG="-theme ${themes[${SELECTED}]}" + fi + RES=$( create_theme_list | ${ROFI} ${THEME_FLAG} ${MORE_FLAGS[@]} -cycle -selected-row "${SELECTED}" -mesg "${MESG}") + RTR=$? + if [ "${RTR}" = 10 ] + then + return 0; + elif [ "${RTR}" = 1 ] + then + return 1; + elif [ "${RTR}" = 65 ] + then + return 1; + fi + CUR=${theme_names[${RES}]} + SELECTED=${RES} + done +} + +############################################################################################################ +# Actual program execution +########################################################################################################### +## +# Find all themes +## +find_themes + +## +# Do check if there are themes. +## +if [ ${#themes[@]} = 0 ] +then + ${ROFI} -e "No themes found." + exit 0 +fi + +## +# Create copy of config to play with in preview +## +create_config_copy + +## +# Show the themes to user. +## +if select_theme && [ -n "${SELECTED}" ] +then + # Apply the selected theme + add_theme_to_config "${theme_names[${SELECTED}]}" + + # Send notification with the selected theme name + selection="${theme_names[${SELECTED}]}" + if [ -n "$NOTIFY_SEND" ]; then + notify-send -u low -i "$iDIR/ja.png" "Rofi Theme" "applied: $selection" + fi +fi + +## +# Remove temp. config. +## +rm -- "${TMP_CONFIG_FILE}" |
