diff --git a/configs/____/hypr/hypridle.conf b/configs/____/hypr/hypridle.conf
new file mode 100644
index 0000000..f3afb09
--- /dev/null
+++ b/configs/____/hypr/hypridle.conf
@@ -0,0 +1,17 @@
+general {
+ # Команда, которая выполняется при вызове блокировки через систему/dbus
+ lock_cmd = hyprlock
+}
+
+# ПРАВИЛО 1: Блокировка экрана через 5 минут бездействия
+listener {
+ timeout = 300 # 5 минут (300 секунд)
+ on-timeout = hyprlock # Только блокируем экран
+}
+
+# ПРАВИЛО 2: Выключение мониторов через 5.5 минут (через 30 секунд после блокировки)
+listener {
+ timeout = 330 # 5 минут 30 секунд
+ on-timeout = wlopm --off \* # Гасим все мониторы
+ on-resume = wlopm --on \* # Включаем при активности
+}
diff --git a/configs/____/hypr/hyprland.lua b/configs/____/hypr/hyprland.lua
new file mode 100644
index 0000000..bb98383
--- /dev/null
+++ b/configs/____/hypr/hyprland.lua
@@ -0,0 +1,364 @@
+
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- AUTOGENERATED HYPRLAND CONFIG. --
+-- EDIT THIS CONFIG ACCORDING TO THE WIKI INSTRUCTIONS. --
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+hl.config({ autogenerated = true }) -- remove this line to remove the warning
+
+-- This is an example Hyprland Lua config file.
+-- Refer to the wiki for more information.
+-- https://wiki.hypr.land/Configuring/Start/
+
+-- Please note not all available settings / options are set here.
+-- For a full list, see the wiki
+
+-- You can (and should!!) split this configuration into multiple files
+-- Create your files separately and then require them like this:
+-- require("myColors")
+
+
+------------------
+---- MONITORS ----
+------------------
+
+-- See https://wiki.hypr.land/Configuring/Basics/Monitors/
+hl.monitor({
+ output = "",
+ mode = "preferred",
+ position = "auto",
+ scale = "auto",
+})
+
+
+---------------------
+---- MY PROGRAMS ----
+---------------------
+
+-- Set programs that you use
+local terminal = "kitty"
+local fileManager = "dolphin"
+local menu = "hyprlauncher"
+
+
+-------------------
+---- AUTOSTART ----
+-------------------
+
+-- See https://wiki.hypr.land/Configuring/Basics/Autostart/
+
+-- Autostart necessary processes (like notifications daemons, status bars, etc.)
+-- Or execute your favorite apps at launch like this:
+--
+-- hl.on("hyprland.start", function ()
+-- hl.exec_cmd(terminal)
+-- hl.exec_cmd("nm-applet")
+-- hl.exec_cmd("waybar & hyprpaper & firefox")
+-- end)
+
+
+-------------------------------
+---- ENVIRONMENT VARIABLES ----
+-------------------------------
+
+-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Environment-variables/
+
+hl.env("XCURSOR_SIZE", "24")
+hl.env("HYPRCURSOR_SIZE", "24")
+
+
+-----------------------
+----- PERMISSIONS -----
+-----------------------
+
+-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Permissions/
+-- Please note permission changes here require a Hyprland restart and are not applied on-the-fly
+-- for security reasons
+
+-- hl.config({
+-- ecosystem = {
+-- enforce_permissions = true,
+-- },
+-- })
+
+-- hl.permission("/usr/(bin|local/bin)/grim", "screencopy", "allow")
+-- hl.permission("/usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland", "screencopy", "allow")
+-- hl.permission("/usr/(bin|local/bin)/hyprpm", "plugin", "allow")
+
+
+-----------------------
+---- LOOK AND FEEL ----
+-----------------------
+
+-- Refer to https://wiki.hypr.land/Configuring/Basics/Variables/
+hl.config({
+ general = {
+ gaps_in = 5,
+ gaps_out = 20,
+
+ border_size = 2,
+
+ col = {
+ active_border = { colors = {"rgba(33ccffee)", "rgba(00ff99ee)"}, angle = 45 },
+ inactive_border = "rgba(595959aa)",
+ },
+
+ -- Set to true to enable resizing windows by clicking and dragging on borders and gaps
+ resize_on_border = false,
+
+ -- Please see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Tearing/ before you turn this on
+ allow_tearing = false,
+
+ layout = "dwindle",
+ },
+
+ decoration = {
+ rounding = 10,
+ rounding_power = 2,
+
+ -- Change transparency of focused and unfocused windows
+ active_opacity = 1.0,
+ inactive_opacity = 1.0,
+
+ shadow = {
+ enabled = true,
+ range = 4,
+ render_power = 3,
+ color = 0xee1a1a1a,
+ },
+
+ blur = {
+ enabled = true,
+ size = 3,
+ passes = 1,
+ vibrancy = 0.1696,
+ },
+ },
+
+ animations = {
+ enabled = true,
+ },
+})
+
+-- Default curves and animations, see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Animations/
+hl.curve("easeOutQuint", { type = "bezier", points = { {0.23, 1}, {0.32, 1} } })
+hl.curve("easeInOutCubic", { type = "bezier", points = { {0.65, 0.05}, {0.36, 1} } })
+hl.curve("linear", { type = "bezier", points = { {0, 0}, {1, 1} } })
+hl.curve("almostLinear", { type = "bezier", points = { {0.5, 0.5}, {0.75, 1} } })
+hl.curve("quick", { type = "bezier", points = { {0.15, 0}, {0.1, 1} } })
+
+-- Default springs
+hl.curve("easy", { type = "spring", mass = 1, stiffness = 238.1191, dampening = 24.21279333 })
+
+hl.animation({ leaf = "global", enabled = true, speed = 10, bezier = "default" })
+hl.animation({ leaf = "border", enabled = true, speed = 5.39, bezier = "easeOutQuint" })
+hl.animation({ leaf = "windows", enabled = true, speed = 4.79, spring = "easy" })
+hl.animation({ leaf = "windowsIn", enabled = true, speed = 4.1, spring = "easy", style = "popin 87%" })
+hl.animation({ leaf = "windowsOut", enabled = true, speed = 1.49, bezier = "linear", style = "popin 87%" })
+hl.animation({ leaf = "fadeIn", enabled = true, speed = 1.73, bezier = "almostLinear" })
+hl.animation({ leaf = "fadeOut", enabled = true, speed = 1.46, bezier = "almostLinear" })
+hl.animation({ leaf = "fade", enabled = true, speed = 3.03, bezier = "quick" })
+hl.animation({ leaf = "layers", enabled = true, speed = 3.81, bezier = "easeOutQuint" })
+hl.animation({ leaf = "layersIn", enabled = true, speed = 4, bezier = "easeOutQuint", style = "fade" })
+hl.animation({ leaf = "layersOut", enabled = true, speed = 1.5, bezier = "linear", style = "fade" })
+hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 1.79, bezier = "almostLinear" })
+hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 1.39, bezier = "almostLinear" })
+hl.animation({ leaf = "workspaces", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" })
+hl.animation({ leaf = "workspacesIn", enabled = true, speed = 1.21, bezier = "almostLinear", style = "fade" })
+hl.animation({ leaf = "workspacesOut", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" })
+hl.animation({ leaf = "zoomFactor", enabled = true, speed = 7, bezier = "quick" })
+
+-- Ref https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/
+-- "Smart gaps" / "No gaps when only"
+-- uncomment all if you wish to use that.
+-- hl.workspace_rule({ workspace = "w[tv1]", gaps_out = 0, gaps_in = 0 })
+-- hl.workspace_rule({ workspace = "f[1]", gaps_out = 0, gaps_in = 0 })
+-- hl.window_rule({
+-- name = "no-gaps-wtv1",
+-- match = { float = false, workspace = "w[tv1]" },
+-- border_size = 0,
+-- rounding = 0,
+-- })
+-- hl.window_rule({
+-- name = "no-gaps-f1",
+-- match = { float = false, workspace = "f[1]" },
+-- border_size = 0,
+-- rounding = 0,
+-- })
+
+-- See https://wiki.hypr.land/Configuring/Layouts/Dwindle-Layout/ for more
+hl.config({
+ dwindle = {
+ preserve_split = true, -- You probably want this
+ },
+})
+
+-- See https://wiki.hypr.land/Configuring/Layouts/Master-Layout/ for more
+hl.config({
+ master = {
+ new_status = "master",
+ },
+})
+
+-- See https://wiki.hypr.land/Configuring/Layouts/Scrolling-Layout/ for more
+hl.config({
+ scrolling = {
+ fullscreen_on_one_column = true,
+ },
+})
+
+----------------
+---- MISC ----
+----------------
+
+hl.config({
+ misc = {
+ force_default_wallpaper = -1, -- Set to 0 or 1 to disable the anime mascot wallpapers
+ disable_hyprland_logo = false, -- If true disables the random hyprland logo / anime girl background. :(
+ },
+})
+
+
+---------------
+---- INPUT ----
+---------------
+
+hl.config({
+ input = {
+ kb_layout = "us",
+ kb_variant = "",
+ kb_model = "",
+ kb_options = "",
+ kb_rules = "",
+
+ follow_mouse = 1,
+
+ sensitivity = 0, -- -1.0 - 1.0, 0 means no modification.
+
+ touchpad = {
+ natural_scroll = false,
+ },
+ },
+})
+
+hl.gesture({
+ fingers = 3,
+ direction = "horizontal",
+ action = "workspace"
+})
+
+-- Example per-device config
+-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Devices/ for more
+hl.device({
+ name = "epic-mouse-v1",
+ sensitivity = -0.5,
+})
+
+
+---------------------
+---- KEYBINDINGS ----
+---------------------
+
+local mainMod = "SUPER" -- Sets "Windows" key as main modifier
+
+-- Example binds, see https://wiki.hypr.land/Configuring/Basics/Binds/ for more
+hl.bind(mainMod .. " + Q", hl.dsp.exec_cmd(terminal))
+local closeWindowBind = hl.bind(mainMod .. " + C", hl.dsp.window.close())
+-- closeWindowBind:set_enabled(false)
+hl.bind(mainMod .. " + M", hl.dsp.exec_cmd("command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch 'hl.dsp.exit()'"))
+hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(fileManager))
+hl.bind(mainMod .. " + V", hl.dsp.window.float({ action = "toggle" }))
+hl.bind(mainMod .. " + R", hl.dsp.exec_cmd(menu))
+hl.bind(mainMod .. " + P", hl.dsp.window.pseudo())
+hl.bind(mainMod .. " + J", hl.dsp.layout("togglesplit")) -- dwindle only
+
+-- Move focus with mainMod + arrow keys
+hl.bind(mainMod .. " + left", hl.dsp.focus({ direction = "left" }))
+hl.bind(mainMod .. " + right", hl.dsp.focus({ direction = "right" }))
+hl.bind(mainMod .. " + up", hl.dsp.focus({ direction = "up" }))
+hl.bind(mainMod .. " + down", hl.dsp.focus({ direction = "down" }))
+
+-- Switch workspaces with mainMod + [0-9]
+-- Move active window to a workspace with mainMod + SHIFT + [0-9]
+for i = 1, 10 do
+ local key = i % 10 -- 10 maps to key 0
+ hl.bind(mainMod .. " + " .. key, hl.dsp.focus({ workspace = i}))
+ hl.bind(mainMod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i }))
+end
+
+-- Example special workspace (scratchpad)
+hl.bind(mainMod .. " + S", hl.dsp.workspace.toggle_special("magic"))
+hl.bind(mainMod .. " + SHIFT + S", hl.dsp.window.move({ workspace = "special:magic" }))
+
+-- Scroll through existing workspaces with mainMod + scroll
+hl.bind(mainMod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
+hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
+
+-- Move/resize windows with mainMod + LMB/RMB and dragging
+hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
+hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
+
+-- Laptop multimedia keys for volume and LCD brightness
+hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"), { locked = true, repeating = true })
+hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"), { locked = true, repeating = true })
+hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { locked = true, repeating = true })
+hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"), { locked = true, repeating = true })
+hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%+"), { locked = true, repeating = true })
+hl.bind("XF86MonBrightnessDown",hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%-"), { locked = true, repeating = true })
+
+-- Requires playerctl
+hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { locked = true })
+hl.bind("XF86AudioPause", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
+hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
+hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
+
+
+--------------------------------
+---- WINDOWS AND WORKSPACES ----
+--------------------------------
+
+-- See https://wiki.hypr.land/Configuring/Basics/Window-Rules/
+-- and https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/
+
+-- Example window rules that are useful
+
+local suppressMaximizeRule = hl.window_rule({
+ -- Ignore maximize requests from all apps. You'll probably like this.
+ name = "suppress-maximize-events",
+ match = { class = ".*" },
+
+ suppress_event = "maximize",
+})
+-- suppressMaximizeRule:set_enabled(false)
+
+hl.window_rule({
+ -- Fix some dragging issues with XWayland
+ name = "fix-xwayland-drags",
+ match = {
+ class = "^$",
+ title = "^$",
+ xwayland = true,
+ float = true,
+ fullscreen = false,
+ pin = false,
+ },
+
+ no_focus = true,
+})
+
+-- Layer rules also return a handle.
+-- local overlayLayerRule = hl.layer_rule({
+-- name = "no-anim-overlay",
+-- match = { namespace = "^my-overlay$" },
+-- no_anim = true,
+-- })
+-- overlayLayerRule:set_enabled(false)
+
+-- Hyprland-run windowrule
+hl.window_rule({
+ name = "move-hyprland-run",
+ match = { class = "hyprland-run" },
+
+ move = "20 monitor_h-120",
+ float = true,
+})
diff --git a/configs/____/hypr/hyprlock.conf b/configs/____/hypr/hyprlock.conf
new file mode 100644
index 0000000..dd3aba7
--- /dev/null
+++ b/configs/____/hypr/hyprlock.conf
@@ -0,0 +1,91 @@
+source = /home/ivan/.config/aether/theme/hyprlock.conf
+$font_time = Widock TRIAL
+$font = JetBrainsMono Nerd Font
+
+general {
+ hide_cursor = false
+}
+
+background {
+ monitor =
+ path = screenshot # Сделает скриншот текущего экрана
+ blur_passes = 3 # Эффект размытия (оптимально 2-3)
+ blur_size = 7
+
+ # ЗАТЕМНЕНИЕ: Снижаем яркость картинки (0.0 — полностью черный, 1.0 — исходная яркость)
+ # Значение 0.5 уменьшит яркость скриншота ровно наполовину
+ brightness = 0.5
+ noise = 0.05
+}
+
+input-field {
+ monitor =
+ rounding = 0
+ size = 150, 50
+ outline_thickness = 2
+ font_family = $font
+ dots_size = 0.25
+ dots_spacing = 0.15
+ dots_center = true
+ fade_on_empty = false
+ placeholder_text = you shall not pass
+ hide_input = false
+ position = 0, -100
+ halign = center
+ valign = center
+
+ # Используем точные переменные из файла Aether
+ font_color = $font_color
+ inner_color = $inner_color
+ outer_color = $outer_color
+ check_color = $check_color
+}
+
+# ЧАСЫ
+label {
+ monitor =
+ text = cmd[update:1000] echo -e "$(date +"%H")"
+ color = $font_color
+ font_size = 150
+ font_family = $font_time
+ position = 0, -250
+ halign = center
+ valign = top
+ shadow_passes = 0
+}
+
+label {
+ monitor =
+ text = cmd[update:1000] echo -e "$(date +"%M")"
+ color = $font_color
+ font_size = 150
+ font_family = $font_time
+ position = 0, -400
+ halign = center
+ valign = top
+ shadow_passes = 0
+}
+
+# ДАТА
+label {
+ monitor =
+ text = cmd[update:1000] echo "$(date +'%A')"
+ color = $font_color
+ font_size = 18
+ font_family = $font_time
+ position = 0, -20
+ halign = center
+ valign = center
+ shadow_passes = 0
+}
+label {
+ monitor =
+ text = cmd[update:1000] echo "$(date +'%d %B')"
+ color = $font_color
+ font_size = 18
+ font_family = $font_time
+ position = 0, -40
+ halign = center
+ valign = center
+ shadow_passes = 0
+}
\ No newline at end of file
diff --git a/configs/____/ironbar/config.json b/configs/____/ironbar/config.json
new file mode 100644
index 0000000..7b4d481
--- /dev/null
+++ b/configs/____/ironbar/config.json
@@ -0,0 +1,25 @@
+{
+ "name": "spotify-popup",
+ "position": "top",
+ "height": 0,
+ "layer": "background",
+ "exclusive_zone": false,
+ "popup_gap": 0,
+ "popup_autohide": true,
+ "css_path": "style.css",
+
+ "margin": {
+ "right": 400
+ },
+
+ "end": [
+ {
+ "type": "music",
+ "name": "spotify-music",
+ "player_type": "mpris",
+ "format": "",
+ "show_status_icon": false,
+ "cover_image_size": 120
+ }
+ ]
+}
\ No newline at end of file
diff --git a/configs/____/ironbar/style.css b/configs/____/ironbar/style.css
new file mode 100644
index 0000000..708d4a4
--- /dev/null
+++ b/configs/____/ironbar/style.css
@@ -0,0 +1,37 @@
+@define-color background #0e0e06;
+@define-color foreground #c9c7e1;
+
+* {
+ 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#ironbar {
+ background: #0e0e06;
+}
+#spotify-popup {
+ background: rgba(14, 14, 6, 0.75);
+ color: #c9c7e1;
+ min-height: 28px;
+ padding: 0;
+ margin: 0;
+}
+
+#spotify-music {
+ padding: 0 10px;
+ color: #c9c7e1;
+}
+
+#spotify-music .icon {
+ display: none;
+}
+
+#spotify-music .cover {
+ display: none;
+}
+
+
+#spotify-music {
+ background: red !important;
+}
\ No newline at end of file
diff --git a/configs/____/labwc/autostart b/configs/____/labwc/autostart
new file mode 100644
index 0000000..b4dc0cf
--- /dev/null
+++ b/configs/____/labwc/autostart
@@ -0,0 +1,23 @@
+# синхронизация окружения
+dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=labwc &
+systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &
+
+# базовые сервисы
+waybar &
+mako &
+hypridle &
+hyprpolkitagent &
+ironbar &
+
+# буфер обмена
+wl-paste --type text --watch cliphist store &
+wl-paste --type image --watch cliphist store &
+
+# тема и обои
+~/.config/labwc/update_theme.sh &
+
+# аудиоэффекты
+(sleep 2 && easyeffects --gapplication-service) &
+
+# polkit agent
+systemctl --user start hyprpolkitagent.service &
\ No newline at end of file
diff --git a/configs/____/labwc/environment b/configs/____/labwc/environment
new file mode 100644
index 0000000..c14c1db
--- /dev/null
+++ b/configs/____/labwc/environment
@@ -0,0 +1,8 @@
+# раскладка и ее порядок
+XKB_DEFAULT_LAYOUT=us,ru
+
+# смена раскладки на сочетание клавиш
+XKB_DEFAULT_OPTIONS=grp:ctrl_space_toggle
+
+# тема для Qt-приложений
+QT_QPA_PLATFORMTHEME=qt6ct
\ No newline at end of file
diff --git a/configs/____/labwc/menu.xml b/configs/____/labwc/menu.xml
new file mode 100644
index 0000000..3cbdc6a
--- /dev/null
+++ b/configs/____/labwc/menu.xml
@@ -0,0 +1,21 @@
+
+
+
+
\ No newline at end of file
diff --git a/configs/____/labwc/rc.xml b/configs/____/labwc/rc.xml
new file mode 100644
index 0000000..c658aa9
--- /dev/null
+++ b/configs/____/labwc/rc.xml
@@ -0,0 +1,194 @@
+
+
+
+
+
+ 1
+ 2
+ 3
+ 4
+
+
+
+
+
+ yes
+ no
+
+
+
+
+ DynamicAether
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+ 2
+
+
+
+
+
+
+ 3
+
+
+
+
+
+
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sh -c 'grim -g "$(slurp)" - | wl-copy'
+
+
+
+
+
+
+ ~/.config/wofi/cliphist-img.sh
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/configs/____/labwc/shutdown b/configs/____/labwc/shutdown
new file mode 100644
index 0000000..4fa5332
--- /dev/null
+++ b/configs/____/labwc/shutdown
@@ -0,0 +1,2 @@
+# очистка clipboard
+cliphist wipe &
\ No newline at end of file
diff --git a/configs/____/labwc/themerc-override b/configs/____/labwc/themerc-override
new file mode 100644
index 0000000..979971b
--- /dev/null
+++ b/configs/____/labwc/themerc-override
@@ -0,0 +1,17 @@
+# цвет рамки active и inactive
+window.active.border.color: #F9EDE4
+window.inactive.border.color: #141414
+
+# цвет фона заголовка active и inactive
+window.active.title.bg.color: #141414
+window.inactive.title.bg.color: #141414
+
+# цвет текста заголовка окна
+window.active.label.text.color: #F9EDE4
+window.inactive.label.text.color: #F9EDE4
+
+# цвет иконок кнопок для АКТИВНОГО окна
+window.active.button.unpressed.image.color: #F9EDE4
+
+# цвет иконок кнопок для НЕАКТИВНОГО окна (ОБЯЗАТЕЛЬНЫЙ КЛЮЧ LABWC)
+window.inactive.button.image.color: #F9EDE4
diff --git a/configs/____/labwc/themes/DynamicAether/themerc b/configs/____/labwc/themes/DynamicAether/themerc
new file mode 100644
index 0000000..dbc39fd
--- /dev/null
+++ b/configs/____/labwc/themes/DynamicAether/themerc
@@ -0,0 +1,8 @@
+window.active.title.bg: #040608
+window.active.title.text: #D4CFCB
+window.active.border.color: #040608
+window.inactive.title.bg: #040608
+window.inactive.title.text: #D4CFCB
+window.inactive.border.color: #040608
+window.active.border.width: 2
+window.inactive.border.width: 1
diff --git a/configs/____/labwc/update_theme.sh b/configs/____/labwc/update_theme.sh
new file mode 100755
index 0000000..bd3925a
--- /dev/null
+++ b/configs/____/labwc/update_theme.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+TARGET_FILE="$HOME/.config/aether/theme/waybar.css"
+THEME_FILE="$HOME/.config/labwc/themerc-override"
+
+BG_FOLDER="$HOME/.config/aether/theme/backgrounds"
+WALLPAPER=$(find "$BG_FOLDER" -type f | head -n 1)
+
+if [ -f "$TARGET_FILE" ]; then
+ BG_COLOR=$(grep "background" "$TARGET_FILE" | awk '{print $3}' | tr -d ';')
+ FG_COLOR=$(grep "foreground" "$TARGET_FILE" | awk '{print $3}' | tr -d ';')
+
+ if [ ! -z "$BG_COLOR" ] && [ ! -z "$FG_COLOR" ]; then
+ cat << EOF > "$THEME_FILE"
+# цвет рамки active и inactive
+window.active.border.color: $FG_COLOR
+window.inactive.border.color: $BG_COLOR
+
+# цвет фона заголовка active и inactive
+window.active.title.bg.color: $BG_COLOR
+window.inactive.title.bg.color: $BG_COLOR
+
+# цвет текста заголовка окна
+window.active.label.text.color: $FG_COLOR
+window.inactive.label.text.color: $FG_COLOR
+
+# цвет иконок кнопок для АКТИВНОГО окна
+window.active.button.unpressed.image.color: $FG_COLOR
+
+# цвет иконок кнопок для НЕАКТИВНОГО окна (ОБЯЗАТЕЛЬНЫЙ КЛЮЧ LABWC)
+window.inactive.button.image.color: $FG_COLOR
+EOF
+ fi
+fi
+
+killall swaybg 2>/dev/null
+
+if [ ! -z "$WALLPAPER" ] && [ -f "$WALLPAPER" ]; then
+ swaybg -m fill -i "$WALLPAPER" &
+else
+ swaybg -c "$BG_COLOR" &
+fi
diff --git a/configs/____/labwc/void_labwc b/configs/____/labwc/void_labwc
new file mode 100644
index 0000000..f37d8a8
--- /dev/null
+++ b/configs/____/labwc/void_labwc
@@ -0,0 +1,81 @@
+стек:
+labwc
+waybar
+swaylock(замена hyprlock)
+swayidle(замена hypridle)
+polkit-gnome(замена hyprpolkit)
+dolphin
+kate
+google-chrome
+pipewire
+kitty(alacritty)
+v2ray
+v2rayA
+telegram
+htop
+gparted
+pavucontrol
+qdirstat
+easyeffects
+lsp-plugins-lv2
+obsidian
+ristretto
+mpv
+wofi
+cliphist
+sddm
+pango
+xorg-server-xwayland
+mesa-dri
+nvidia-open-dkms
+wl-clipboard
+gtk-layer-shell
+grim
+slurp
+swaybg
+mako
+seatd
+dbus
+polkit
+fontconfig
+noto-fonts-ttf
+ttf-dejavu
+alsa-pipewire
+wireplumber
+xdg-desktop-portal-wlr
+xdg-desktop-portal-gtk
+qt6-wayland
+qt5-wayland
+base-system
+void-repo-nonfree
+fuse
+fuse-common
+ca-certificates
+curl
+xdg-utils
+dhcpcd
+sudo
+acpid
+breeze-icons
+ffmpeg
+libnotify
+ttf-jetbrains-mono
+adwaita-icon-theme
+xdg-desktop-portal-gtk
+unzip
+zip
+p7zip
+qt5ct
+qt6ct
+linux-firmware
+ttf-font-awesome
+
+
+aether(буду писать замену)
+
+установка чистого void linux
+
+обновление системы
+sudo xbps-install -Syu
+sudo xbps-install -u xbps
+
diff --git a/configs/____/qt6ct/qt6ct.conf b/configs/____/qt6ct/qt6ct.conf
new file mode 100644
index 0000000..ee695d1
--- /dev/null
+++ b/configs/____/qt6ct/qt6ct.conf
@@ -0,0 +1,32 @@
+[Appearance]
+color_scheme_path=/usr/share/qt6ct/colors/darker.conf
+custom_palette=true
+icon_theme=breeze-dark
+standard_dialogs=default
+style=Fusion
+
+[Fonts]
+fixed="JetBrainsMono Nerd Font,10,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,Regular,0,0"
+general="JetBrainsMonoNL Nerd Font,10,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,Regular,0,0"
+
+[Interface]
+activate_item_on_single_click=1
+buttonbox_layout=2
+cursor_flash_time=1000
+dialog_buttons_have_icons=1
+double_click_interval=400
+gui_effects=@Invalid()
+keyboard_scheme=2
+menus_have_icons=true
+show_shortcuts_in_context_menus=true
+stylesheets=@Invalid()
+toolbutton_style=4
+underline_shortcut=1
+wheel_scroll_lines=3
+
+[SettingsWindow]
+geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x2\xde\0\0\x2m\0\0\0\0\0\0\0\0\0\0\x2\xde\0\0\x2m\0\0\0\0\0\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x2\xde\0\0\x2m)
+
+[Troubleshooting]
+force_raster_widgets=1
+ignored_applications=@Invalid()
diff --git a/configs/____/waybar/config.jsonc b/configs/____/waybar/config.jsonc
new file mode 100644
index 0000000..bef995a
--- /dev/null
+++ b/configs/____/waybar/config.jsonc
@@ -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/v2raya", "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 ''",
+ "on-click": "ironbar bar spotify-popup toggle-popup spotify-music",
+ "interval": 3,
+ "max-length": 50
+ },
+ "custom/v2raya": {
+ "format": "PROXY{}",
+ "return-type": "json",
+ "interval": 2,
+ "exec": "/home/ivan/.config/waybar/v2raya-toggle.sh",
+ "on-click": "/home/ivan/.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
+ }
+}
+
diff --git a/configs/____/waybar/style.css b/configs/____/waybar/style.css
new file mode 100644
index 0000000..fdc7db5
--- /dev/null
+++ b/configs/____/waybar/style.css
@@ -0,0 +1,45 @@
+* {
+ 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;
+}
+
+@import "/home/ivan/.config/aether/theme/waybar.css";
+
+window#waybar {
+ background: alpha(@background, 0.75);
+ color: @foreground;
+ min-height: 28px;
+}
+
+#clock,
+#cpu,
+#memory,
+#network,
+#pulseaudio,
+#taskbar,
+#custom-spotify,
+#tray {
+ padding: 0 10px;
+ color: @foreground;
+}
+
+#taskbar button {
+ color: alpha(@foreground, 0.6);
+ padding: 0 8px;
+}
+
+#taskbar button.active {
+ background-color: alpha(@foreground, 0.2);
+ box-shadow: inset 0 -2px 0 0 @foreground;
+ color: @foreground;
+}
+
+#custom-v2raya.enabled {
+ color: @foreground;
+}
+
+#custom-v2raya.disabled {
+ color: @background;
+}
\ No newline at end of file
diff --git a/configs/____/waybar/v2raya-toggle.sh b/configs/____/waybar/v2raya-toggle.sh
new file mode 100755
index 0000000..7cdb25e
--- /dev/null
+++ b/configs/____/waybar/v2raya-toggle.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+# Проверяем, запущен ли процесс v2rayA
+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
+
diff --git a/configs/____/wofi/cliphist-img.sh b/configs/____/wofi/cliphist-img.sh
new file mode 100755
index 0000000..16d8082
--- /dev/null
+++ b/configs/____/wofi/cliphist-img.sh
@@ -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" == *" "$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
\ No newline at end of file
diff --git a/configs/____/wofi/style.css b/configs/____/wofi/style.css
new file mode 100644
index 0000000..e37b019
--- /dev/null
+++ b/configs/____/wofi/style.css
@@ -0,0 +1,53 @@
+@import "/home/ivan/.config/aether/theme/wofi.css";
+
+#img {
+ padding: 5px;
+ width: 120px;
+ height: 120px;
+}
+
+#entry {
+ padding: 10px;
+}
+
+
+window {
+ background-color: @bg;
+ border: 2px solid @gray3;
+}
+
+input {
+ background-color: @bg;
+ color: @fg;
+ border: 1px solid @gray2;
+}
+
+input:selected {
+ background-color: @gray1;
+ color: @fg_bright;
+}
+
+#entry {
+ color: @fg;
+ background-color: @bg;
+ padding: 5px;
+ margin: 2px;
+}
+
+#entry:selected {
+ background-color: @gray1;
+ color: @fg_bright;
+}
+
+scrollbar {
+ background-color: @bg;
+}
+
+scrollbar slider {
+ background-color: @gray2;
+ border-radius: 5px;
+}
+
+scrollbar slider:hover {
+ background-color: @gray3;
+}
diff --git a/configs/labwc/scripts/base_theme_dark.sh b/configs/labwc/scripts/base_theme_dark.sh
index 9237daf..9fa81bd 100644
--- a/configs/labwc/scripts/base_theme_dark.sh
+++ b/configs/labwc/scripts/base_theme_dark.sh
@@ -1,25 +1,39 @@
#!/bin/bash
+PALETTE="$HOME/.config/labwc/palettes/palette-dark.json"
+
+FG_COLOR=$(jq -r '.FG_COLOR' "$PALETTE")
+SUB_FG_COLOR=$(jq -r '.SUB_FG_COLOR' "$PALETTE")
+
+BG_COLOR=$(jq -r '.BG_COLOR' "$PALETTE")
+SUB_BG_COLOR=$(jq -r '.SUB_BG_COLOR' "$PALETTE")
+
+ACCENT_COLOR=$(jq -r '.ACCENT_COLOR' "$PALETTE")
+SUB_ACCENT_COLOR=$(jq -r '.SUB_ACCENT_COLOR' "$PALETTE")
+
+
cat << EOF > "$HOME/.config/labwc/themerc-override"
# цвет рамки active и inactive
-window.active.border.color: #ECE7DD
-window.inactive.border.color: #141414
+window.active.border.color: $FG_COLOR
+window.inactive.border.color: $BG_COLOR
# цвет фона заголовка active и inactive
-window.active.title.bg.color: #ECE7DD
-window.inactive.title.bg.color: #ECE7DD
+window.active.title.bg.color: $FG_COLOR
+window.inactive.title.bg.color: $FG_COLOR
# цвет текста заголовка окна
-window.active.label.text.color: #141414
-window.inactive.label.text.color: #141414
+window.active.label.text.color: $BG_COLOR
+window.inactive.label.text.color: $BG_COLOR
# цвет иконок кнопок для АКТИВНОГО окна
-window.active.button.unpressed.image.color: #141414
+window.active.button.unpressed.image.color: $BG_COLOR
-# цвет иконок кнопок для НЕАКТИВНОГО окна (ОБЯЗАТЕЛЬНЫЙ КЛЮЧ LABWC)
-window.inactive.button.image.color: #141414
+# цвет иконок кнопок для НЕАКТИВНОГО окна
+window.inactive.button.image.color: $BG_COLOR
EOF
killall swaybg 2>/dev/null
-swaybg -m fill -i "$HOME/.config/labwc/backgrounds/voidlinux_bg_dark.png" &
+swaybg \
+ -m fill \
+ -i "$HOME/.config/labwc/backgrounds/voidlinux_bg_dark.png" &