almost finaly
This commit is contained in:
@@ -1,2 +1,11 @@
|
||||
# labwc-opensuse
|
||||
|
||||
in opensuse installer choose >> generic desktop
|
||||
|
||||
sudo zypper install labwc git
|
||||
sudo systemctl disable display-manager
|
||||
sudo systemctl set-default multi-user.target
|
||||
|
||||
git clone https://zenithcode.duckdns.org/s13bby/labwc-opensuse.git
|
||||
|
||||
bash ~/labwc-opensuse/install.sh
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.2 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.2 MiB |
@@ -0,0 +1,27 @@
|
||||
# Default Colors
|
||||
[colors.primary]
|
||||
background = "#0b0b0b"
|
||||
foreground = "#acacac"
|
||||
bright_foreground = "#e3e3e3"
|
||||
|
||||
# Normal colors
|
||||
[colors.normal]
|
||||
black = "#0b0b0b"
|
||||
red = "#f08778"
|
||||
green = "#53bf97"
|
||||
yellow = "#fdcc60"
|
||||
blue = "#60b8d6"
|
||||
magenta = "#ec7171"
|
||||
cyan = "#98e6ca"
|
||||
white = "#fafafa"
|
||||
|
||||
# Bright colors
|
||||
[colors.bright]
|
||||
black = "#747474"
|
||||
red = "#f58c7d"
|
||||
green = "#58c49c"
|
||||
yellow = "#ffd165"
|
||||
blue = "#65bddb"
|
||||
magenta = "#f17676"
|
||||
cyan = "#9debcf"
|
||||
white = "#ffffff"
|
||||
@@ -0,0 +1,14 @@
|
||||
# базовые сервисы
|
||||
waybar &
|
||||
mako &
|
||||
|
||||
swaybg \
|
||||
-m fill \
|
||||
-i "$HOME/backgrounds/fuji_light.jpg" &
|
||||
|
||||
# буфер обмена
|
||||
wl-paste --type text --watch cliphist store &
|
||||
wl-paste --type image --watch cliphist store &
|
||||
|
||||
# polkit authentication agent
|
||||
/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
|
||||
@@ -0,0 +1,5 @@
|
||||
# раскладка и ее порядок
|
||||
XKB_DEFAULT_LAYOUT=us,ru
|
||||
|
||||
# смена раскладки на сочетание клавиш
|
||||
XKB_DEFAULT_OPTIONS=grp:ctrl_space_toggle
|
||||
@@ -0,0 +1,92 @@
|
||||
<?xml version="1.0" ?>
|
||||
<openbox_menu>
|
||||
<menu id="root-menu" label="">
|
||||
|
||||
<item label="reconfigure">
|
||||
<action name="Reconfigure" />
|
||||
<action name="Execute" command="sh -c 'labwc --reconfigure; killall waybar; waybar &'" />
|
||||
</item>
|
||||
|
||||
|
||||
<separator />
|
||||
|
||||
|
||||
<menu id="apps-menu" label="apps">
|
||||
|
||||
<item label="telegram">
|
||||
<action name="Execute" command="Telegram"/>
|
||||
</item>
|
||||
|
||||
<separator />
|
||||
|
||||
<item label="firefox">
|
||||
<action name="Execute" command="firefox"/>
|
||||
</item>
|
||||
|
||||
<separator />
|
||||
|
||||
<item label="pcmanfm">
|
||||
<action name="Execute" command="pcmanfm"/>
|
||||
</item>
|
||||
|
||||
<separator />
|
||||
|
||||
<item label="spotify">
|
||||
<action name="Execute" command="spotify"/>
|
||||
</item>
|
||||
|
||||
<separator />
|
||||
|
||||
<item label="sublime">
|
||||
<action name="Execute" command="subl"/>
|
||||
</item>
|
||||
|
||||
|
||||
</menu>
|
||||
|
||||
|
||||
<separator />
|
||||
|
||||
|
||||
<menu id="system-menu" label="system">
|
||||
<item label="lock">
|
||||
<action name="Execute" command="swaylock"/>
|
||||
</item>
|
||||
|
||||
<separator />
|
||||
|
||||
<item label="logout">
|
||||
<action name="If">
|
||||
<prompt message="Do you really want to exit the compositor?" />
|
||||
<then>
|
||||
<action name="Exit" />
|
||||
</then>
|
||||
</action>
|
||||
</item>
|
||||
|
||||
<separator />
|
||||
|
||||
<item label="reboot">
|
||||
<action name="If">
|
||||
<prompt message="Do you really want to reboot your system?" />
|
||||
<then>
|
||||
<action name="Execute" command="reboot"/>
|
||||
</then>
|
||||
</action>
|
||||
</item>
|
||||
|
||||
<separator />
|
||||
|
||||
<item label="shutdown">
|
||||
<action name="If">
|
||||
<prompt message="Do you really want to poweroff your system?" />
|
||||
<then>
|
||||
<action name="Execute" command="poweroff"/>
|
||||
</then>
|
||||
</action>
|
||||
</item>
|
||||
</menu>
|
||||
|
||||
|
||||
</menu>
|
||||
</openbox_menu>
|
||||
@@ -0,0 +1,195 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<labwc_config>
|
||||
<!-- настройка кол-ва рабочих столов -->
|
||||
<desktops>
|
||||
<names>
|
||||
<name>1</name>
|
||||
<name>2</name>
|
||||
<name>3</name>
|
||||
<name>4</name>
|
||||
</names>
|
||||
</desktops>
|
||||
|
||||
<!-- настройка поведения окон от курсора -->
|
||||
<focus>
|
||||
<followMouse>yes</followMouse>
|
||||
<raiseOnFocus>no</raiseOnFocus>
|
||||
</focus>
|
||||
|
||||
<core>
|
||||
<theme>
|
||||
<name>labwc-s13bby</name>
|
||||
</theme>
|
||||
<windowSwitcher style="thumbnail" preview="yes" outlines="yes" />
|
||||
</core>
|
||||
|
||||
|
||||
<!-- настройка биндов -->
|
||||
<keyboard>
|
||||
<default />
|
||||
|
||||
|
||||
<!-- ==================== РАБОТА С ОКНАМИ ==================== -->
|
||||
|
||||
<!-- закрытие окон -->
|
||||
<keybind key="W-w"> <!-- Win+W -->
|
||||
<action name="Close" />
|
||||
</keybind>
|
||||
|
||||
<!-- растянуть окно в полноэкранный режим -->
|
||||
<keybind key="S-W-f"> <!-- Shift+Win+F -->
|
||||
<action name="ToggleFullscreen" />
|
||||
</keybind>
|
||||
|
||||
<!-- максимизировать окно. работает в обратную сторону -->
|
||||
<keybind key="W-f"> <!-- Win+F -->
|
||||
<action name="ToggleMaximize" />
|
||||
</keybind>
|
||||
|
||||
<!-- свернуть окно -->
|
||||
<keybind key="S-C-f"> <!-- Shift+Ctrl+F -->
|
||||
<action name="Iconify" />
|
||||
</keybind>
|
||||
|
||||
<!-- снап окна влево (полэкрана) -->
|
||||
<keybind key="W-;"> <!-- Win+; -->
|
||||
<action name="SnapToEdge" direction="Left" />
|
||||
</keybind>
|
||||
|
||||
|
||||
|
||||
<!-- снап окна вправо (полэкрана) -->
|
||||
<keybind key="W-'"> <!-- Win+' -->
|
||||
<action name="SnapToEdge" direction="Right" />
|
||||
</keybind>
|
||||
|
||||
<!-- cнап окна в левый верхний угол (четверть экрана) -->
|
||||
<keybind key="W-p"> <!-- Win+p -->
|
||||
<action name="SnapToEdge" direction="up-Left" />
|
||||
</keybind>
|
||||
|
||||
<!-- cнап окна в левый нижний угол (четверть экрана) -->
|
||||
<keybind key="W-,"> <!-- Win+, -->
|
||||
<action name="SnapToEdge" direction="down-Left" />
|
||||
</keybind>
|
||||
|
||||
<!-- cнап окна в правый верхний угол (четверть экрана) -->
|
||||
<keybind key="W-]"> <!-- Win+] -->
|
||||
<action name="SnapToEdge" direction="up-Right" />
|
||||
</keybind>
|
||||
|
||||
<!-- cнап окна в правый нижний угол (четверть экрана) -->
|
||||
<keybind key="W-/"> <!-- Win+/ -->
|
||||
<action name="SnapToEdge" direction="down-Right" />
|
||||
</keybind>
|
||||
|
||||
|
||||
|
||||
<!-- cнап окна вверх (полэкрана) -->
|
||||
<keybind key="W-["> <!-- Win+[ -->
|
||||
<action name="SnapToEdge" direction="up" />
|
||||
</keybind>
|
||||
|
||||
<!-- cнап окна вниз (полэкрана) -->
|
||||
<keybind key="W-."> <!-- Win+. -->
|
||||
<action name="SnapToEdge" direction="down" />
|
||||
</keybind>
|
||||
|
||||
|
||||
|
||||
<!-- переместить окно на левый монитор -->
|
||||
<keybind key="A-S-a"> <!-- Alt + Shift + a -->
|
||||
<action name="MoveToOutput" direction="left" />
|
||||
</keybind>
|
||||
|
||||
<!-- переместить окно на правый монитор -->
|
||||
<keybind key="A-S-d"> <!-- Alt + Shift + d -->
|
||||
<action name="MoveToOutput" direction="right" />
|
||||
</keybind>
|
||||
|
||||
<!-- ==================== РАБОТА С РАБОЧИМИ СТОЛАМИ ==================== -->
|
||||
|
||||
<!-- перейти на раб стол 1 -->
|
||||
<keybind key="W-1"> <!-- Win+1 -->
|
||||
<action name="GoToDesktop">
|
||||
<to>1</to>
|
||||
</action>
|
||||
</keybind>
|
||||
|
||||
<!-- перейти на раб стол 2 -->
|
||||
<keybind key="W-2"> <!-- Win+2 -->
|
||||
<action name="GoToDesktop">
|
||||
<to>2</to>
|
||||
</action>
|
||||
</keybind>
|
||||
|
||||
<!-- перейти на раб стол 3 -->
|
||||
<keybind key="W-3"> <!-- Win+3 -->
|
||||
<action name="GoToDesktop">
|
||||
<to>3</to>
|
||||
</action>
|
||||
</keybind>
|
||||
|
||||
<!-- перейти на раб стол 4 -->
|
||||
<keybind key="W-4"> <!-- Win+4 -->
|
||||
<action name="GoToDesktop">
|
||||
<to>4</to>
|
||||
</action>
|
||||
</keybind>
|
||||
|
||||
<!-- ==================== ЗАПУСК ПРИЛОЖЕНИЙ ==================== -->
|
||||
|
||||
<!-- запустить меню приложений(wofi) -->
|
||||
<keybind key="W-space"> <!-- Win+Space -->
|
||||
<action name="Execute" command="wofi --show drun" />
|
||||
</keybind>
|
||||
|
||||
<!-- запустить терминал(alacritty) -->
|
||||
<keybind key="W-return"> <!-- Win+Return(enter) -->
|
||||
<action name="Execute" command="alacritty --config-file ~/.config/alacritty/alacritty.toml" />
|
||||
</keybind>
|
||||
|
||||
<!-- запустить проводник(dolphin) -->
|
||||
<keybind key="W-e"> <!-- Win+E -->
|
||||
<action name="Execute" command="pcmanfm" />
|
||||
</keybind>
|
||||
|
||||
<!-- заблокировать пк -->
|
||||
<keybind key="W-l"> <!-- Win+L -->
|
||||
<action name="Execute" command="swaylock" />
|
||||
</keybind>
|
||||
|
||||
<!-- сделать скриншот области(скриншот не сохраняется на диск) -->
|
||||
<keybind key="W-S-s"> <!-- Shift+Win+S -->
|
||||
<action name="Execute">
|
||||
<command>sh -c 'grim -g "$(slurp)" - | wl-copy'</command>
|
||||
</action>
|
||||
</keybind>
|
||||
|
||||
<!-- запустить clipboard -->
|
||||
<keybind key="C-W-v"> <!-- Ctrl+Win+v -->
|
||||
<action name="Execute">
|
||||
<command>~/.config/wofi/cliphist-img.sh</command>
|
||||
</action>
|
||||
</keybind>
|
||||
|
||||
|
||||
<!-- ==================== УПРАВЛЕНИЕ МУЛЬТИМЕДИЕЙ ====================-->
|
||||
|
||||
<!-- остановить/запустить -->
|
||||
<keybind key="A-R-s"> <!-- Right Alt+s -->
|
||||
<action name="Execute" command="playerctl --player=spotify,%any play-pause" />
|
||||
</keybind>
|
||||
|
||||
<!-- следующий трек -->
|
||||
<keybind key="A-R-d"> <!-- Right Alt+d -->
|
||||
<action name="Execute" command="playerctl --player=spotify,%any next" />
|
||||
</keybind>
|
||||
|
||||
<!-- предыдущий трек -->
|
||||
<keybind key="A-R-a"> <!-- Right Alt+a -->
|
||||
<action name="Execute" command="playerctl --player=spotify,%any previous" />
|
||||
</keybind>
|
||||
|
||||
</keyboard>
|
||||
</labwc_config>
|
||||
@@ -0,0 +1,2 @@
|
||||
# очистка clipboard
|
||||
cliphist wipe &
|
||||
@@ -0,0 +1,18 @@
|
||||
# цвет рамки active и inactive
|
||||
window.active.border.color: #98309c
|
||||
window.inactive.border.color: #0b0b0b
|
||||
|
||||
# цвет фона заголовка active и inactive
|
||||
window.active.title.bg.color: #e3e3e3
|
||||
window.inactive.title.bg.color: #b8b8b8
|
||||
|
||||
# цвет текста заголовка окна
|
||||
window.active.label.text.color: #0b0b0b
|
||||
window.inactive.label.text.color: #0b0b0b
|
||||
|
||||
# цвет иконок кнопок для окна
|
||||
window.active.button.unpressed.image.color: #0b0b0b
|
||||
window.inactive.button.image.color: #0b0b0b
|
||||
|
||||
window.active.border.radius: 0
|
||||
window.inactive.border.radius: 0
|
||||
@@ -0,0 +1,123 @@
|
||||
# ~/.config/swaylock/config
|
||||
|
||||
|
||||
# ============================================
|
||||
# BACKGROUND
|
||||
# ============================================
|
||||
|
||||
# Снимок текущего экрана
|
||||
screenshots
|
||||
|
||||
# Размытие: <радиус>x<проходы>
|
||||
effect-blur=7x3
|
||||
|
||||
# Виньетка (затемнение по краям)
|
||||
# effect-vignette=0.5:0.5
|
||||
|
||||
# Заполнять экран скриншотом
|
||||
scaling=fill
|
||||
|
||||
|
||||
# ============================================
|
||||
# FONT
|
||||
# ============================================
|
||||
|
||||
font=JetBrainsMono Nerd Font
|
||||
font-size=18
|
||||
|
||||
|
||||
# ============================================
|
||||
# CLOCK / DATE
|
||||
# ============================================
|
||||
|
||||
clock
|
||||
|
||||
# Часы
|
||||
#timestr=%H:%M
|
||||
|
||||
|
||||
# ============================================
|
||||
# INDICATOR
|
||||
# ============================================
|
||||
|
||||
indicator
|
||||
|
||||
# Радиус кольца
|
||||
indicator-radius=75
|
||||
|
||||
# Толщина кольца
|
||||
indicator-thickness=10
|
||||
|
||||
# Позиция индикатора.
|
||||
# По умолчанию — по центру.
|
||||
# Если нужна ручная позиция — раскомментируй:
|
||||
#indicator-x-position=960
|
||||
#indicator-y-position=540
|
||||
|
||||
|
||||
# ============================================
|
||||
# COLORS
|
||||
# ============================================
|
||||
|
||||
text-color=fefefeff
|
||||
|
||||
inside-color=090909a8
|
||||
|
||||
ring-color=acacacff
|
||||
|
||||
|
||||
# ============================================
|
||||
# PASSWORD CHECK
|
||||
# ============================================
|
||||
|
||||
inside-ver-color=090909a8
|
||||
|
||||
ring-ver-color=dadadaff
|
||||
|
||||
text-ver-color=fefefeff
|
||||
|
||||
|
||||
# ============================================
|
||||
# WRONG PASSWORD
|
||||
# ============================================
|
||||
|
||||
inside-wrong-color=090909a8
|
||||
|
||||
ring-wrong-color=acacacff
|
||||
|
||||
text-wrong-color=fefefeff
|
||||
|
||||
|
||||
# ============================================
|
||||
# CLEAR
|
||||
# ============================================
|
||||
|
||||
inside-clear-color=090909a8
|
||||
|
||||
ring-clear-color=acacacff
|
||||
|
||||
text-clear-color=fefefeff
|
||||
|
||||
|
||||
# ============================================
|
||||
# SEPARATOR
|
||||
# ============================================
|
||||
|
||||
separator-color=090909ff
|
||||
|
||||
|
||||
# ============================================
|
||||
# KEY HIGHLIGHT
|
||||
# ============================================
|
||||
|
||||
key-hl-color=dadadaff
|
||||
|
||||
bs-hl-color=acacacff
|
||||
|
||||
|
||||
# ============================================
|
||||
# PASSWORD / BEHAVIOUR
|
||||
# ============================================
|
||||
|
||||
# Показывать количество неудачных попыток
|
||||
show-failed-attempts
|
||||
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"height": 25,
|
||||
"spacing": 0,
|
||||
"modules-left": ["wlr/taskbar"],
|
||||
"modules-center": ["clock"],
|
||||
"modules-right": ["network", "custom/spotify", "custom/language", "pulseaudio", "cpu", "memory", "tray"],
|
||||
|
||||
"wlr/taskbar": {
|
||||
"format": "{icon}",
|
||||
"icon-size": 15,
|
||||
"tooltip-format": "{title}",
|
||||
"on-click": "activate"
|
||||
},
|
||||
"custom/language": {
|
||||
"exec": "xkblayout-state print %s | tr 'a-z' 'A-Z'",
|
||||
"interval": 1,
|
||||
"format": " {} "
|
||||
},
|
||||
"custom/spotify": {
|
||||
"format": "[{}] ",
|
||||
"exec": "playerctl metadata --format '{{artist}} - {{title}}' spotify 2>/dev/null || echo ''",
|
||||
"restart-interval": 1,
|
||||
"on-click": "spotify",
|
||||
"max-length": 50
|
||||
},
|
||||
// "custom/v2raya": {
|
||||
// "format": "PROXY{}",
|
||||
// "return-type": "json",
|
||||
// "interval": 2,
|
||||
// "exec": "sh -c '~/.config/waybar/v2raya-toggle.sh toggle'",
|
||||
// "on-click": "sh -c '~/.config/waybar/v2raya-toggle.sh toggle'",
|
||||
// "signal": 10
|
||||
// },
|
||||
"clock": {
|
||||
"format": "{:%H:%M}",
|
||||
"format-alt": "{:%d-%m-%Y}"
|
||||
},
|
||||
"cpu": {
|
||||
"format": " {usage}%",
|
||||
"tooltip": false,
|
||||
"on-click": "alacritty -e htop"
|
||||
},
|
||||
"memory": {
|
||||
"format": " {}%"
|
||||
},
|
||||
"network": {
|
||||
"min-length": 10,
|
||||
"format-wifi": " {bandwidthDownBytes}",
|
||||
"format-ethernet": " {bandwidthDownBytes}",
|
||||
"format-disconnected": "⚠ DONT",
|
||||
"interval": 1
|
||||
},
|
||||
"pulseaudio": {
|
||||
"format": " {volume}%",
|
||||
"format-muted": " Muted",
|
||||
"on-click": "pavucontrol"
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 10,
|
||||
"spacing": 15
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
* {
|
||||
font-family: "JetBrainsMono Nerd Font", "Font Awesome 7 Free", "Font Awesome 7 Free Solid", "Font Awesome 7 Brands", sans-serif;
|
||||
font-size: 12px;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: alpha(#e3e3e3, 0.75);
|
||||
color: #0b0b0b;
|
||||
min-height: 28px;
|
||||
}
|
||||
|
||||
#clock,
|
||||
#cpu,
|
||||
#memory,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#taskbar,
|
||||
#custom-spotify,
|
||||
#tray {
|
||||
padding: 0 10px;
|
||||
color: #0b0b0b;
|
||||
}
|
||||
|
||||
#taskbar button {
|
||||
color: alpha(#0b0b0b, 0.6);
|
||||
padding: 0 8px;
|
||||
}
|
||||
|
||||
#taskbar button.active {
|
||||
background-color: alpha(#0b0b0b, 0.2);
|
||||
box-shadow: inset 0 -2px 0 0 #0b0b0b;
|
||||
color: #0b0b0b;
|
||||
}
|
||||
|
||||
/*#custom-v2raya.enabled {
|
||||
color: #0b0b0b;
|
||||
}
|
||||
|
||||
#custom-v2raya.disabled {
|
||||
color: #747474;
|
||||
}*/
|
||||
Executable
+18
@@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
|
||||
if pgrep -x "v2raya" > /dev/null; then
|
||||
if [ "$1" = "toggle" ]; then
|
||||
sudo systemctl stop v2raya.service 2>/dev/null || sudo killall v2raya
|
||||
echo "{\"text\": \" \", \"class\": \"disabled\", \"tooltip\": \"v2rayA выключен\"}"
|
||||
else
|
||||
echo "{\"text\": \" \", \"class\": \"enabled\", \"tooltip\": \"v2rayA включен\"}"
|
||||
fi
|
||||
else
|
||||
if [ "$1" = "toggle" ]; then
|
||||
sudo systemctl start v2raya.service 2>/dev/null || sudo v2raya --daemon &
|
||||
echo "{\"text\": \" \", \"class\": \"enabled\", \"tooltip\": \"v2rayA включен\"}"
|
||||
else
|
||||
echo "{\"text\": \" \", \"class\": \"disabled\", \"tooltip\": \"v2rayA выключен\"}"
|
||||
fi
|
||||
fi
|
||||
|
||||
Executable
+61
@@ -0,0 +1,61 @@
|
||||
#!/usr/bin/env bash
|
||||
export WAYLAND_DISPLAY=wayland-0
|
||||
export XDG_RUNTIME_DIR=/run/user/$(id -u)
|
||||
|
||||
thumb_dir="${XDG_CACHE_HOME:-$HOME/.cache}/cliphist/thumbs"
|
||||
mkdir -p "$thumb_dir"
|
||||
|
||||
make_thumb() { # $1 - исходник, $2 - результат
|
||||
if command -v gdk-pixbuf-thumbnailer >/dev/null 2>&1; then
|
||||
gdk-pixbuf-thumbnailer -s 256 "$1" "$2" 2>/dev/null
|
||||
elif command -v magick >/dev/null 2>&1; then
|
||||
magick "$1" -resize '256x256>' "$2" 2>/dev/null
|
||||
elif command -v convert >/dev/null 2>&1; then
|
||||
convert "$1" -resize '256x256>' "$2" 2>/dev/null
|
||||
fi
|
||||
# если тулза нет/ошибка — отдаём оригинал, wofi сам смасштабирует
|
||||
[ -s "$2" ] || cp -f "$1" "$2"
|
||||
}
|
||||
|
||||
wofi_input=""
|
||||
|
||||
while read -r line; do
|
||||
[[ "$line" == *"<meta http-equiv="* ]] && continue
|
||||
[[ -z "$line" ]] && continue
|
||||
|
||||
id="${line%%[[:space:]]*}"
|
||||
|
||||
if [[ "$line" == *binary* ]]; then
|
||||
thumb_path="${thumb_dir}/${id}.png"
|
||||
|
||||
if [ ! -s "$thumb_path" ]; then
|
||||
tmp="$(mktemp)"
|
||||
# ВАЖНО: передаём строку через pipe,
|
||||
# иначе decode прочитает stdin цикла и «съест» список
|
||||
printf '%s\n' "$line" | cliphist decode > "$tmp" 2>/dev/null
|
||||
[ -s "$tmp" ] && make_thumb "$tmp" "$thumb_path"
|
||||
rm -f "$tmp"
|
||||
fi
|
||||
|
||||
if [ -s "$thumb_path" ]; then
|
||||
wofi_input+="img:${thumb_path}\n"
|
||||
else
|
||||
wofi_input+="${line}\n"
|
||||
fi
|
||||
else
|
||||
wofi_input+="${line}\n"
|
||||
fi
|
||||
done <<< "$(cliphist list)"
|
||||
|
||||
choice="$(printf '%b' "$wofi_input" | wofi -I --dmenu --cache-file=/dev/null \
|
||||
-Dimage_size=100 -Dynamic_lines=true --prompt "Буфер обмена")"
|
||||
|
||||
[ -z "$choice" ] && exit 0
|
||||
|
||||
if [[ "$choice" == img:* ]]; then
|
||||
f="${choice#img:}"
|
||||
id="$(basename "$f" .png)"
|
||||
printf '%s\t' "$id" | cliphist decode | wl-copy
|
||||
else
|
||||
printf '%s\n' "$choice" | cliphist decode | wl-copy
|
||||
fi
|
||||
@@ -0,0 +1,51 @@
|
||||
#img {
|
||||
padding: 5px;
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
}
|
||||
|
||||
#entry {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
|
||||
window {
|
||||
background-color: #090909;
|
||||
border: 2px solid #fefefe;
|
||||
}
|
||||
|
||||
input {
|
||||
background-color: #090909;
|
||||
color: #fefefe;
|
||||
border: 1px solid #62605a;
|
||||
}
|
||||
|
||||
input:selected {
|
||||
background-color: @gray1;
|
||||
color: #fcfcfc;
|
||||
}
|
||||
|
||||
#entry {
|
||||
color: #fefefe;
|
||||
background-color: #090909;
|
||||
padding: 5px;
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
#entry:selected {
|
||||
background-color: #c3c3c3;
|
||||
color: #fcfcfc;
|
||||
}
|
||||
|
||||
scrollbar {
|
||||
background-color: #090909;
|
||||
}
|
||||
|
||||
scrollbar slider {
|
||||
background-color: #62605a;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
scrollbar slider:hover {
|
||||
background-color: #808080;
|
||||
}
|
||||
Executable
+171
@@ -0,0 +1,171 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# colors for output
|
||||
GREEN='\033[0;32m'
|
||||
BLUE='\033[0;34m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m'
|
||||
|
||||
# helpers
|
||||
info() {
|
||||
printf '%b\n' "${BLUE}>>$1${NC}"
|
||||
}
|
||||
|
||||
success() {
|
||||
printf '%b\n' "${GREEN}>>$1${NC}"
|
||||
}
|
||||
|
||||
error() {
|
||||
printf '%b\n' "${RED}>>ERROR: $1${NC}" >&2
|
||||
}
|
||||
|
||||
|
||||
# 0. Check environment
|
||||
|
||||
if [ "$(id -u)" -eq 0 ]; then
|
||||
error "do not run this installer as root"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
if [ ! -d "$HOME/labwc-opensuse" ]; then
|
||||
error "labwc-opensuse directory not found in $HOME"
|
||||
printf '%b\n' "${RED}>>Please clone the repository first:${NC}"
|
||||
printf '%b\n' "${RED}>>git clone https://zenithcode.duckdns.org/s13bby/labwc-opensuse.git${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v sudo >/dev/null 2>&1; then
|
||||
error "sudo is required"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
# 1. Begin
|
||||
|
||||
echo "┌──────────────────────────────────────┐"
|
||||
echo "│ zenithcode.duckdns.org │"
|
||||
echo "│ welcome to installer labwc-opensuse │"
|
||||
echo "│ by s13bby │"
|
||||
echo "└──────────────────────────────────────┘"
|
||||
|
||||
|
||||
# 2. Update and upgrade system
|
||||
|
||||
info "updating system & distro repositories..."
|
||||
sudo zypper refresh
|
||||
sudo zypper dup
|
||||
success "system & distro repositories are up-to-date"
|
||||
|
||||
|
||||
# 3. Install needed packages
|
||||
|
||||
info "installing needed packages..."
|
||||
|
||||
sudo rpm -v --import https://download.sublimetext.com/sublimehq-rpm-pub.gpg
|
||||
sudo zypper addrepo -g -f https://download.sublimetext.com/rpm/stable/x86_64/sublime-text.rep
|
||||
|
||||
# power-profiles-daemon -- FOR NOTEBOOK ONLY
|
||||
|
||||
sudo zypper in \
|
||||
opi \
|
||||
gcc \
|
||||
gcc-c++ \
|
||||
git \
|
||||
polkit \
|
||||
polkit-gnome \
|
||||
curl \
|
||||
cmake \
|
||||
libcurl-devel \
|
||||
opencv \
|
||||
opencv-devel \
|
||||
waybar \
|
||||
mako \
|
||||
swaybg \
|
||||
wofi \
|
||||
google-noto-fonts \
|
||||
dejavu-fonts \
|
||||
wl-clipboard \
|
||||
xdg-desktop-portal \
|
||||
xdg-desktop-portal-gtk \
|
||||
pipewire \
|
||||
wireplumber \
|
||||
alsa-utils \
|
||||
NetworkManager \
|
||||
NetworkManager-applet \
|
||||
pcmanfm \
|
||||
firefox \
|
||||
playerctl \
|
||||
jetbrains-mono-fonts \
|
||||
power-profiles-daemon \
|
||||
brightnessctl \
|
||||
pavucontrol \
|
||||
bluez \
|
||||
sublime-text \
|
||||
v2ray-core \
|
||||
grim \
|
||||
ristretto
|
||||
|
||||
success "all packages installed (without swaylock-effects. install this package manualy"
|
||||
|
||||
|
||||
# 4. Configure NetworkManager & power-profiles-daemon & bluetooth
|
||||
|
||||
info "configuring NetworkManager & power-profiles-daemon..."
|
||||
|
||||
sudo systemctl enable --now NetworkManager
|
||||
sudo systemctl enable --now power-profiles-daemon
|
||||
sudo systemctl enable --now bluetooth
|
||||
success "NetworkManager & power-profiles-daemon & bluetooth enabled and running"
|
||||
|
||||
|
||||
# 5. Copy configs
|
||||
|
||||
info "creating config directory..."
|
||||
|
||||
mkdir -p "$HOME/.config"
|
||||
|
||||
info "copying dotfiles..."
|
||||
|
||||
for config in alacritty swaylock labwc waybar wofi; do
|
||||
if [ -d "$HOME/labwc-opensuse/configs/$config" ]; then
|
||||
cp -r "$HOME/labwc-opensuse/configs/$config" "$HOME/.config/"
|
||||
else
|
||||
error "config directory not found: $config"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
success "dotfiles copied"
|
||||
|
||||
|
||||
# 6. Copy backgrounds
|
||||
|
||||
info "creating backgrounds directory..."
|
||||
|
||||
mkdir -p "$HOME/backgrounds/"
|
||||
|
||||
if [ -d "$HOME/labwc-opensuse/backgrounds" ]; then
|
||||
cp -r "$HOME/labwc-opensuse/backgrounds/"* "$HOME/backgrounds/"
|
||||
else
|
||||
error "backgrounds directory not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
success "backgrounds copied"
|
||||
|
||||
|
||||
# 7. Done
|
||||
|
||||
echo
|
||||
echo "┌──────────────────────────────────────┐"
|
||||
echo "│ zenithcode.duckdns.org │"
|
||||
echo "│ thanks for use my dotfiles │"
|
||||
echo "│ mail: qaws3623@gmail.com by s13bby │"
|
||||
echo "└──────────────────────────────────────┘"
|
||||
|
||||
info "please. install swaylock-effcts manually"
|
||||
info "write >> opi swaylock-effects"
|
||||
|
||||
success ">>after install swaylock-effects:"
|
||||
success " >>please reboot system<<"
|
||||
Reference in New Issue
Block a user