From 978cb01c7794ca6aabc613810b23698f94fad298 Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Mon, 1 Jan 2024 12:54:29 +0900 Subject: [PATCH] adjust copy.sh to use localectl first then setxkbmap next if localectl not available Introduce wallpaper rofi menu --- config/rofi/config-wallpaper.rasi | 253 +++++++++--------- .../resolution/1080p/config-wallpaper.rasi | 253 +++++++++--------- .../resolution/1440p/config-wallpaper.rasi | 253 +++++++++--------- copy.sh | 34 +-- 4 files changed, 393 insertions(+), 400 deletions(-) diff --git a/config/rofi/config-wallpaper.rasi b/config/rofi/config-wallpaper.rasi index f999ce0..5f1cb17 100644 --- a/config/rofi/config-wallpaper.rasi +++ b/config/rofi/config-wallpaper.rasi @@ -3,19 +3,19 @@ /* ---- Configuration ---- */ configuration { - modi: "drun,run"; - font: "Fira Code SemiBold 12"; - show-icons: true; - display-drun: ""; - display-run: ""; - display-filebrowser: ""; - display-window: ""; - drun-display-format: "{name}"; - hover-select: true; - me-select-entry: "MouseSecondary"; - me-accept-entry: "MousePrimary"; - window-format: "{w} · {c} · {t}"; - dpi: 1; + modi: "drun,run,filebrowser"; + font: "Fira Code SemiBold 12"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name}"; + hover-select: true; + me-select-entry: "MouseSecondary"; + me-accept-entry: "MousePrimary"; + window-format: "{w} · {c} · {t}"; + dpi: 1; } @@ -24,194 +24,197 @@ configuration { /* ---- Window ---- */ window { - width: 700px; - /*height: 450px;*/ - x-offset: 0px; - y-offset: 0px; - spacing: 0px; - padding: 2px; - margin: 0px; - border: 2px; - border-color: @active-background; - cursor: "default"; - location: center; - anchor: center; - fullscreen: false; - enabled: true; - border-radius: 12px; - border-radius: 12px; - background-color: @background-color; + width: 700px; + /*height: 450px;*/ + x-offset: 0px; + y-offset: 0px; + spacing: 0px; + padding: 2px; + margin: 0px; + border: 2px; + border-color: @active-background; + cursor: "default"; + location: center; + anchor: center; + fullscreen: false; + enabled: true; + border-radius: 12px; + border-radius: 12px; + background-color: transparent; + background-image: url("~/.config/rofi/.current_wallpaper", height); } /* ---- Mainbox ---- */ mainbox { - enabled: true; - orientation: horizontal; - padding: 8px; - /*background-image: url("~/.config/rofi/.current_wallpaper", width);*/ - children: [ "imagebox"]; - border-radius: 12px; - background-color: @active-background; + enabled: true; + orientation: horizontal; + padding: 8px; + children: [ "imagebox"]; + border-radius: 12px; + background-color: transparent; } /* ---- Imagebox ---- */ imagebox { - background-color: transparent; - orientation: vertical; - children: [ "inputbar", "listbox"]; + background-color: transparent; + orientation: vertical; + children: [ "inputbar", "listbox"]; } /* ---- Listbox ---- */ listbox { - spacing: 4px; - orientation: vertical; - children: [ "listview" ]; - border-radius: 10px; - border: 1px; - border-color: @active-background; - background-color: @background; + spacing: 4px; + orientation: vertical; + children: [ "listview" ]; + border-radius: 10px; + border: 1px; + border-color: @active-background; + background-color: @background; } /* ---- Dummy ---- */ dummy { - background-color: transparent; + background-color: transparent; } /* ---- Inputbar ---- */ inputbar { - enabled: true; - text-color: @foreground; - spacing: 10px; - padding: 8px; - border-radius: 10px; - border-color: @foreground; - background-color: @background; - children: [ "textbox-prompt-colon", "entry" ]; - border: 1px; - border-color: @active-background; + enabled: true; + text-color: @foreground; + spacing: 10px; + padding: 8px; + border-radius: 10px; + border-color: @foreground; + background-color: @background; + children: [ "textbox-prompt-colon", "entry" ]; + border: 1px; + border-color: @active-background; } textbox-prompt-colon { - enabled: true; - expand: false; - str: "󰸉 "; - text-color: inherit; - background-color: transparent; + enabled: true; + expand: false; + str: "󰸉 "; + text-color: inherit; + background-color: transparent; } entry { - enabled: true; - text-color: inherit; - cursor: text; - placeholder: "Choose Wallpaper"; - placeholder-color: inherit; - background-color: transparent; + enabled: true; + text-color: inherit; + cursor: text; + placeholder: "Choose Wallpaper"; + placeholder-color: inherit; + background-color: transparent; } /* ---- Listview ---- */ listview { - enabled: true; - columns: 4; - lines: 3; - spacing: 4px; - dynamic: true; - cycle: true; - scrollbar: true; - layout: vertical; - reverse: false; - fixed-height: true; - fixed-columns: false; - background-color: transparent; - border-radius: 10px; + enabled: true; + columns: 4; + lines: 3; + spacing: 4px; + dynamic: true; + cycle: true; + scrollbar: true; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: false; + background-color: transparent; + border-radius: 10px; } /* ---- Element ---- */ element { - enabled: true; - padding: 5px; - margin: 2px; - cursor: pointer; - background-color: transparent; - border-radius: 10px; - border: 0px; + enabled: true; + padding: 5px; + margin: 2px; + cursor: pointer; + orientation: vertical; + background-color: transparent; + border-radius: 10px; + border: 0px; } element normal.normal { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element normal.urgent { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element normal.active { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element selected.normal { - background-color: @selected-normal-background; - text-color: @foreground; + background-color: @selected-normal-background; + text-color: @foreground; } element selected.urgent { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element selected.active { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element alternate.normal { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element alternate.urgent { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element alternate.active { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element-icon { - background-color: transparent; - text-color: inherit; - size: 150px; - cursor: inherit; - horizontal-align: 0.5; + background-color: transparent; + text-color: inherit; + size: 130px; + cursor: inherit; } element-text { - background-color: transparent; - text-color: transparent; - cursor: inherit; + font: "Fira Code SemiBold 8"; + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; } /*****----- Message -----*****/ message { - background-color: @background; - margin: 20px 0px 0px 0px; - border-radius: 10px; + background-color: @background; + margin: 20px 0px 0px 0px; + border-radius: 10px; } textbox { - padding: 15px; - background-color: @background; - text-color: @foreground; + padding: 15px; + background-color: @background; + text-color: @foreground; } error-message { - padding: 15px; - border-radius: 20px; - background-color: @background; - text-color: @foreground; + padding: 15px; + border-radius: 20px; + background-color: @background; + text-color: @foreground; } diff --git a/config/rofi/resolution/1080p/config-wallpaper.rasi b/config/rofi/resolution/1080p/config-wallpaper.rasi index f999ce0..5f1cb17 100644 --- a/config/rofi/resolution/1080p/config-wallpaper.rasi +++ b/config/rofi/resolution/1080p/config-wallpaper.rasi @@ -3,19 +3,19 @@ /* ---- Configuration ---- */ configuration { - modi: "drun,run"; - font: "Fira Code SemiBold 12"; - show-icons: true; - display-drun: ""; - display-run: ""; - display-filebrowser: ""; - display-window: ""; - drun-display-format: "{name}"; - hover-select: true; - me-select-entry: "MouseSecondary"; - me-accept-entry: "MousePrimary"; - window-format: "{w} · {c} · {t}"; - dpi: 1; + modi: "drun,run,filebrowser"; + font: "Fira Code SemiBold 12"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name}"; + hover-select: true; + me-select-entry: "MouseSecondary"; + me-accept-entry: "MousePrimary"; + window-format: "{w} · {c} · {t}"; + dpi: 1; } @@ -24,194 +24,197 @@ configuration { /* ---- Window ---- */ window { - width: 700px; - /*height: 450px;*/ - x-offset: 0px; - y-offset: 0px; - spacing: 0px; - padding: 2px; - margin: 0px; - border: 2px; - border-color: @active-background; - cursor: "default"; - location: center; - anchor: center; - fullscreen: false; - enabled: true; - border-radius: 12px; - border-radius: 12px; - background-color: @background-color; + width: 700px; + /*height: 450px;*/ + x-offset: 0px; + y-offset: 0px; + spacing: 0px; + padding: 2px; + margin: 0px; + border: 2px; + border-color: @active-background; + cursor: "default"; + location: center; + anchor: center; + fullscreen: false; + enabled: true; + border-radius: 12px; + border-radius: 12px; + background-color: transparent; + background-image: url("~/.config/rofi/.current_wallpaper", height); } /* ---- Mainbox ---- */ mainbox { - enabled: true; - orientation: horizontal; - padding: 8px; - /*background-image: url("~/.config/rofi/.current_wallpaper", width);*/ - children: [ "imagebox"]; - border-radius: 12px; - background-color: @active-background; + enabled: true; + orientation: horizontal; + padding: 8px; + children: [ "imagebox"]; + border-radius: 12px; + background-color: transparent; } /* ---- Imagebox ---- */ imagebox { - background-color: transparent; - orientation: vertical; - children: [ "inputbar", "listbox"]; + background-color: transparent; + orientation: vertical; + children: [ "inputbar", "listbox"]; } /* ---- Listbox ---- */ listbox { - spacing: 4px; - orientation: vertical; - children: [ "listview" ]; - border-radius: 10px; - border: 1px; - border-color: @active-background; - background-color: @background; + spacing: 4px; + orientation: vertical; + children: [ "listview" ]; + border-radius: 10px; + border: 1px; + border-color: @active-background; + background-color: @background; } /* ---- Dummy ---- */ dummy { - background-color: transparent; + background-color: transparent; } /* ---- Inputbar ---- */ inputbar { - enabled: true; - text-color: @foreground; - spacing: 10px; - padding: 8px; - border-radius: 10px; - border-color: @foreground; - background-color: @background; - children: [ "textbox-prompt-colon", "entry" ]; - border: 1px; - border-color: @active-background; + enabled: true; + text-color: @foreground; + spacing: 10px; + padding: 8px; + border-radius: 10px; + border-color: @foreground; + background-color: @background; + children: [ "textbox-prompt-colon", "entry" ]; + border: 1px; + border-color: @active-background; } textbox-prompt-colon { - enabled: true; - expand: false; - str: "󰸉 "; - text-color: inherit; - background-color: transparent; + enabled: true; + expand: false; + str: "󰸉 "; + text-color: inherit; + background-color: transparent; } entry { - enabled: true; - text-color: inherit; - cursor: text; - placeholder: "Choose Wallpaper"; - placeholder-color: inherit; - background-color: transparent; + enabled: true; + text-color: inherit; + cursor: text; + placeholder: "Choose Wallpaper"; + placeholder-color: inherit; + background-color: transparent; } /* ---- Listview ---- */ listview { - enabled: true; - columns: 4; - lines: 3; - spacing: 4px; - dynamic: true; - cycle: true; - scrollbar: true; - layout: vertical; - reverse: false; - fixed-height: true; - fixed-columns: false; - background-color: transparent; - border-radius: 10px; + enabled: true; + columns: 4; + lines: 3; + spacing: 4px; + dynamic: true; + cycle: true; + scrollbar: true; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: false; + background-color: transparent; + border-radius: 10px; } /* ---- Element ---- */ element { - enabled: true; - padding: 5px; - margin: 2px; - cursor: pointer; - background-color: transparent; - border-radius: 10px; - border: 0px; + enabled: true; + padding: 5px; + margin: 2px; + cursor: pointer; + orientation: vertical; + background-color: transparent; + border-radius: 10px; + border: 0px; } element normal.normal { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element normal.urgent { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element normal.active { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element selected.normal { - background-color: @selected-normal-background; - text-color: @foreground; + background-color: @selected-normal-background; + text-color: @foreground; } element selected.urgent { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element selected.active { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element alternate.normal { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element alternate.urgent { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element alternate.active { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element-icon { - background-color: transparent; - text-color: inherit; - size: 150px; - cursor: inherit; - horizontal-align: 0.5; + background-color: transparent; + text-color: inherit; + size: 130px; + cursor: inherit; } element-text { - background-color: transparent; - text-color: transparent; - cursor: inherit; + font: "Fira Code SemiBold 8"; + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; } /*****----- Message -----*****/ message { - background-color: @background; - margin: 20px 0px 0px 0px; - border-radius: 10px; + background-color: @background; + margin: 20px 0px 0px 0px; + border-radius: 10px; } textbox { - padding: 15px; - background-color: @background; - text-color: @foreground; + padding: 15px; + background-color: @background; + text-color: @foreground; } error-message { - padding: 15px; - border-radius: 20px; - background-color: @background; - text-color: @foreground; + padding: 15px; + border-radius: 20px; + background-color: @background; + text-color: @foreground; } diff --git a/config/rofi/resolution/1440p/config-wallpaper.rasi b/config/rofi/resolution/1440p/config-wallpaper.rasi index f2977e4..0bc3b10 100644 --- a/config/rofi/resolution/1440p/config-wallpaper.rasi +++ b/config/rofi/resolution/1440p/config-wallpaper.rasi @@ -3,19 +3,19 @@ /* ---- Configuration ---- */ configuration { - modi: "drun,run"; - font: "Fira Code SemiBold 14"; - show-icons: true; - display-drun: ""; - display-run: ""; - display-filebrowser: ""; - display-window: ""; - drun-display-format: "{name}"; - hover-select: true; - me-select-entry: "MouseSecondary"; - me-accept-entry: "MousePrimary"; - window-format: "{w} · {c} · {t}"; - dpi: 1; + modi: "drun,run,filebrowser"; + font: "Fira Code SemiBold 14"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name}"; + hover-select: true; + me-select-entry: "MouseSecondary"; + me-accept-entry: "MousePrimary"; + window-format: "{w} · {c} · {t}"; + dpi: 1; } @@ -24,194 +24,197 @@ configuration { /* ---- Window ---- */ window { - width: 700px; - /*height: 450px;*/ - x-offset: 0px; - y-offset: 0px; - spacing: 0px; - padding: 2px; - margin: 0px; - border: 2px; - border-color: @active-background; - cursor: "default"; - location: center; - anchor: center; - fullscreen: false; - enabled: true; - border-radius: 12px; - border-radius: 12px; - background-color: @background-color; + width: 700px; + /*height: 450px;*/ + x-offset: 0px; + y-offset: 0px; + spacing: 0px; + padding: 2px; + margin: 0px; + border: 2px; + border-color: @active-background; + cursor: "default"; + location: center; + anchor: center; + fullscreen: false; + enabled: true; + border-radius: 12px; + border-radius: 12px; + background-color: transparent; + background-image: url("~/.config/rofi/.current_wallpaper", height); } /* ---- Mainbox ---- */ mainbox { - enabled: true; - orientation: horizontal; - padding: 8px; - /*background-image: url("~/.config/rofi/.current_wallpaper", width);*/ - children: [ "imagebox"]; - border-radius: 12px; - background-color: @active-background; + enabled: true; + orientation: horizontal; + padding: 8px; + children: [ "imagebox"]; + border-radius: 12px; + background-color: transparent; } /* ---- Imagebox ---- */ imagebox { - background-color: transparent; - orientation: vertical; - children: [ "inputbar", "listbox"]; + background-color: transparent; + orientation: vertical; + children: [ "inputbar", "listbox"]; } /* ---- Listbox ---- */ listbox { - spacing: 4px; - orientation: vertical; - children: [ "listview" ]; - border-radius: 10px; - border: 1px; - border-color: @active-background; - background-color: @background; + spacing: 4px; + orientation: vertical; + children: [ "listview" ]; + border-radius: 10px; + border: 1px; + border-color: @active-background; + background-color: @background; } /* ---- Dummy ---- */ dummy { - background-color: transparent; + background-color: transparent; } /* ---- Inputbar ---- */ inputbar { - enabled: true; - text-color: @foreground; - spacing: 10px; - padding: 8px; - border-radius: 10px; - border-color: @foreground; - background-color: @background; - children: [ "textbox-prompt-colon", "entry" ]; - border: 1px; - border-color: @active-background; + enabled: true; + text-color: @foreground; + spacing: 10px; + padding: 8px; + border-radius: 10px; + border-color: @foreground; + background-color: @background; + children: [ "textbox-prompt-colon", "entry" ]; + border: 1px; + border-color: @active-background; } textbox-prompt-colon { - enabled: true; - expand: false; - str: "󰸉 "; - text-color: inherit; - background-color: transparent; + enabled: true; + expand: false; + str: "󰸉 "; + text-color: inherit; + background-color: transparent; } entry { - enabled: true; - text-color: inherit; - cursor: text; - placeholder: "Choose Wallpaper"; - placeholder-color: inherit; - background-color: transparent; + enabled: true; + text-color: inherit; + cursor: text; + placeholder: "Choose Wallpaper"; + placeholder-color: inherit; + background-color: transparent; } /* ---- Listview ---- */ listview { - enabled: true; - columns: 4; - lines: 5; - spacing: 4px; - dynamic: true; - cycle: true; - scrollbar: true; - layout: vertical; - reverse: false; - fixed-height: true; - fixed-columns: false; - background-color: transparent; - border-radius: 10px; + enabled: true; + columns: 4; + lines: 4; + spacing: 4px; + dynamic: true; + cycle: true; + scrollbar: true; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: false; + background-color: transparent; + border-radius: 10px; } /* ---- Element ---- */ element { - enabled: true; - padding: 5px; - margin: 2px; - cursor: pointer; - background-color: transparent; - border-radius: 10px; - border: 0px; + enabled: true; + padding: 5px; + margin: 2px; + cursor: pointer; + orientation: vertical; + background-color: transparent; + border-radius: 10px; + border: 0px; } element normal.normal { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element normal.urgent { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element normal.active { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element selected.normal { - background-color: @selected-normal-background; - text-color: @foreground; + background-color: @selected-normal-background; + text-color: @foreground; } element selected.urgent { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element selected.active { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element alternate.normal { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element alternate.urgent { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element alternate.active { - background-color: inherit; - text-color: @foreground; + background-color: inherit; + text-color: @foreground; } element-icon { - background-color: transparent; - text-color: inherit; - size: 150px; - cursor: inherit; - horizontal-align: 0.5; + background-color: transparent; + text-color: inherit; + size: 130px; + cursor: inherit; } element-text { - background-color: transparent; - text-color: transparent; - cursor: inherit; + font: "Fira Code SemiBold 10"; + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; } /*****----- Message -----*****/ message { - background-color: @background; - margin: 20px 0px 0px 0px; - border-radius: 10px; + background-color: @background; + margin: 20px 0px 0px 0px; + border-radius: 10px; } textbox { - padding: 15px; - background-color: @background; - text-color: @foreground; + padding: 15px; + background-color: @background; + text-color: @foreground; } error-message { - padding: 15px; - border-radius: 20px; - background-color: @background; - text-color: @foreground; + padding: 15px; + border-radius: 20px; + background-color: @background; + text-color: @foreground; } diff --git a/copy.sh b/copy.sh index 20a1c70..917e555 100755 --- a/copy.sh +++ b/copy.sh @@ -50,25 +50,17 @@ if hostnamectl | grep -q 'Chassis: vm'; then sed -i '/monitor = Virtual-1, 1920x1080@60,auto,1/s/^#//' config/hypr/UserConfigs/Monitors.conf fi -# Preparing hyprland.conf to check for current keyboard layout -# Function to detect keyboard layout in an X server environment -detect_x_layout() { - if command -v setxkbmap >/dev/null 2>&1; then - layout=$(setxkbmap -query | grep layout | awk '{print $2}') +# Function to detect keyboard layout using localectl or setxkbmap +detect_layout() { + if command -v localectl >/dev/null 2>&1; then + layout=$(localectl status --no-pager | awk '/X11 Layout/ {print $3}') if [ -n "$layout" ]; then echo "$layout" else echo "unknown" fi - else - echo "unknown" - fi -} - -# Function to detect keyboard layout in a tty environment -detect_tty_layout() { - if command -v localectl >/dev/null 2>&1; then - layout=$(localectl status --no-pager | awk '/X11 Layout/ {print $3}') + elif command -v setxkbmap >/dev/null 2>&1; then + layout=$(setxkbmap -query | grep layout | awk '{print $2}') if [ -n "$layout" ]; then echo "$layout" else @@ -79,22 +71,14 @@ detect_tty_layout() { fi } -# Detect the current keyboard layout based on the environment -if [ -n "$DISPLAY" ]; then - # System is in an X server environment - layout=$(detect_x_layout) -else - # System is in a tty environment - layout=$(detect_tty_layout) -fi - -echo "Keyboard layout: $layout" +# Detect the current keyboard layout +layout=$(detect_layout) printf "${NOTE} Detecting keyboard layout to prepare necessary changes in hyprland.conf before copying\n\n" # Prompt the user to confirm whether the detected layout is correct while true; do - read -p "$ORANGE Detected keyboard layout or keymap: $layout. Is this correct? [y/n] " confirm + read -p "$ORANGE Detected current keyboard layout is: $layout. Is this correct? [y/n] " confirm case $confirm in [yY])