Browse Source

adjust copy.sh to use localectl first then setxkbmap next if localectl not available

Introduce wallpaper rofi menu
pull/116/head
JaKooLit 2 years ago
parent
commit
978cb01c77
  1. 253
      config/rofi/config-wallpaper.rasi
  2. 253
      config/rofi/resolution/1080p/config-wallpaper.rasi
  3. 253
      config/rofi/resolution/1440p/config-wallpaper.rasi
  4. 34
      copy.sh

253
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;
}

253
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;
}

253
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;
}

34
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])

Loading…
Cancel
Save