This commit is contained in:
2026-09-13 21:35:41 +06:00
parent 0f05d3bb54
commit f724db9119
42 changed files with 270 additions and 2034 deletions
+3 -31
View File
@@ -145,10 +145,8 @@ labwc-alpine/
│ └── fuji_light.jpg │ └── fuji_light.jpg
│ │
├── configs/ # Конфигурационные файлы ├── configs/ # Конфигурационные файлы
│ ├── hypr/ # Hyprland (если используется) │ ├── swaylock/ # Блокировка экрана
│ │ ├── hypridle.conf │ │ └── config
│ │ ├── hyprland.lua
│ │ └── hyprlock.conf
│ │ │ │
│ ├── labwc/ # Основная конфигурация Labwc │ ├── labwc/ # Основная конфигурация Labwc
│ │ ├── autostart │ │ ├── autostart
@@ -156,8 +154,7 @@ labwc-alpine/
│ │ ├── menu.xml │ │ ├── menu.xml
│ │ ├── rc.xml │ │ ├── rc.xml
│ │ ├── shutdown │ │ ├── shutdown
│ │ ├── themerc-override │ │ └── themerc-override
│ │ └── update_theme.sh
│ │ │ │
│ ├── waybar/ # Панель Waybar │ ├── waybar/ # Панель Waybar
│ │ ├── config.jsonc │ │ ├── config.jsonc
@@ -168,34 +165,9 @@ labwc-alpine/
│ │ ├── cliphist-img.sh │ │ ├── cliphist-img.sh
│ │ └── style.css │ │ └── style.css
│ │ │ │
│ ├── qt6ct/ # Настройки Qt6
│ │ └── qt6ct.conf
│ │
│ └── alacritty/ # Терминал Alacritty │ └── alacritty/ # Терминал Alacritty
│ └── alacritty.toml │ └── alacritty.toml
│ │
├── palettes/ # Цветовые палитры
│ ├── alpine/
│ │ ├── alpine_palette_dark
│ │ ├── alpine_palette_light
│ │ ├── alpine_palette_pastel_dark
│ │ └── alpine_palette_pastel_light
│ │
│ └── fuji/
│ ├── fuji_palette_dark
│ ├── fuji_palette_light
│ ├── fuji_palette_pastel_dark
│ └── fuji_palette_pastel_light
│
├── fonts/ # Шрифты
│ └── Widock TRIAL Bold.otf
│
├── scripts/ # скрипты
│ ├── alpine_dark.sh
│ ├── alpine_light.sh
│ ├── fuji_dark.sh
│ └── fuji_light.sh
│
├── install.sh # Главный установочный скрипт ├── install.sh # Главный установочный скрипт
├── LICENSE # Лицензия ├── LICENSE # Лицензия
└── README.md # Этот файл └── README.md # Этот файл
-17
View File
@@ -1,17 +0,0 @@
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 \* # Включаем при активности
}
-364
View File
@@ -1,364 +0,0 @@
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- 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,
})
-91
View File
@@ -1,91 +0,0 @@
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 = <i>you shall not pass</i>
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
}
-25
View File
@@ -1,25 +0,0 @@
{
"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
}
]
}
-37
View File
@@ -1,37 +0,0 @@
@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;
}
-23
View File
@@ -1,23 +0,0 @@
# синхронизация окружения
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 &
-8
View File
@@ -1,8 +0,0 @@
# раскладка и ее порядок
XKB_DEFAULT_LAYOUT=us,ru
# смена раскладки на сочетание клавиш
XKB_DEFAULT_OPTIONS=grp:ctrl_space_toggle
# тема для Qt-приложений
QT_QPA_PLATFORMTHEME=qt6ct
-21
View File
@@ -1,21 +0,0 @@
<?xml version="1.0" ?>
<openbox_menu>
<menu id="root-menu" label="">
<item label="reconfigure">
<action name="Reconfigure" />
<action name="Execute" command="sh -c '~/.config/labwc/update_theme.sh; killall waybar; waybar &amp;'" />
</item> <separator />
<item label="logout"><action name="Exit"/></item> <separator />
<item label="lock"><action name="Execute" command="hyprlock" /></item> <separator />
<item label="sleep"><action name="Execute" command="systemctl suspend" /></item> <separator />
<item label="reboot"><action name="Execute" command="systemctl reboot" /></item> <separator />
<item label="shutdown"><action name="Execute" command="systemctl poweroff" /></item>
</menu>
</openbox_menu>
-194
View File
@@ -1,194 +0,0 @@
<?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>DynamicAether</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+[ -->
<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"> <!-- Right Ctrl + <- (left) -->
<action name="MoveToOutput" direction="left" />
</keybind>
<!-- переместить окно на правый монитор -->
<keybind key="A-S-d"> <!-- Right Ctrl + -> (right) -->
<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/aether/theme/alacritty.toml" />
</keybind>
<!-- запустить проводник(dolphin) -->
<keybind key="W-e"> <!-- Win+E -->
<action name="Execute" command="dolphin" />
</keybind>
<!-- заблокировать пк -->
<keybind key="W-l"> <!-- Win+L -->
<action name="Execute" command="hyprlock" />
</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>
-2
View File
@@ -1,2 +0,0 @@
# очистка clipboard
cliphist wipe &
-17
View File
@@ -1,17 +0,0 @@
# цвет рамки 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
@@ -1,8 +0,0 @@
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
-41
View File
@@ -1,41 +0,0 @@
#!/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
-81
View File
@@ -1,81 +0,0 @@
стек:
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
-32
View File
@@ -1,32 +0,0 @@
[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()
-65
View File
@@ -1,65 +0,0 @@
{
"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
}
}
-45
View File
@@ -1,45 +0,0 @@
* {
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;
}
-19
View File
@@ -1,19 +0,0 @@
#!/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
-61
View File
@@ -1,61 +0,0 @@
#!/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
-53
View File
@@ -1,53 +0,0 @@
@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;
}
+27
View File
@@ -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"
-17
View File
@@ -1,17 +0,0 @@
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 \* # Включаем при активности
}
-364
View File
@@ -1,364 +0,0 @@
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- 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,
})
-91
View File
@@ -1,91 +0,0 @@
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 = <i>you shall not pass</i>
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
}
+6 -7
View File
@@ -2,14 +2,13 @@
waybar & waybar &
mako & mako &
swaybg \
-m fill \
-i "$HOME/backgrounds/fuji_light.jpg" &
# буфер обмена # буфер обмена
wl-paste --type text --watch cliphist store & wl-paste --type text --watch cliphist store &
wl-paste --type image --watch cliphist store & wl-paste --type image --watch cliphist store &
# обои # polkit authentication agent
# потом заменить на ~/.config/labwc/update_theme.sh & /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
~/.config/labwc/scripts/base_theme_dark.sh &
# polkit agent
systemctl --user start hyprpolkitagent.service &
-3
View File
@@ -3,6 +3,3 @@ XKB_DEFAULT_LAYOUT=us,ru
# смена раскладки на сочетание клавиш # смена раскладки на сочетание клавиш
XKB_DEFAULT_OPTIONS=grp:ctrl_space_toggle XKB_DEFAULT_OPTIONS=grp:ctrl_space_toggle
# тема для Qt-приложений
QT_QPA_PLATFORMTHEME=qt6ct
+28 -49
View File
@@ -11,52 +11,21 @@
<separator /> <separator />
<menu id="themes-menu" label="themes">
<menu id="alpine-menu" label="alpine">
<item label="light">
<action name="Execute" command="sh -c 'themesd alpine light'"/>
</item>
<separator />
<item label="dark">
<action name="Execute" command="sh -c 'themesd alpine dark'"/>
</item>
</menu>
<menu id="fuji-menu" label="fuji">
<item label="light">
<action name="Execute" command="sh -c 'themesd fuji light'"/>
</item>
<separator />
<item label="dark">
<action name="Execute" command="sh -c 'themesd fuji dark'"/>
</item>
</menu>
</menu>
<separator />
<menu id="apps-menu" label="apps"> <menu id="apps-menu" label="apps">
<item label="terminal">
<item label="telegram"> <action name="Execute" command="alacritty --config-file ~/.config/alacritty/alacritty.toml"/>
<action name="Execute" command="swaylock"/>
</item> </item>
<separator /> <separator />
<item label="librewolf"> <item label="telegram">
<action name="Execute" command="librewolf"/> <action name="Execute" command="Telegram"/>
</item>
<separator />
<item label="firefox">
<action name="Execute" command="firefox"/>
</item> </item>
<separator /> <separator />
@@ -77,11 +46,6 @@
<action name="Execute" command="subl"/> <action name="Execute" command="subl"/>
</item> </item>
<separator />
<item label="steam">
<action name="Execute" command="steam"/>
</item>
</menu> </menu>
@@ -97,19 +61,34 @@
<separator /> <separator />
<item label="logout"> <item label="logout">
<action name="Exit"/> <action name="If">
<prompt message="Do you really want to exit the compositor?" />
<then>
<action name="Exit" />
</then>
</action>
</item> </item>
<separator /> <separator />
<item label="reboot"> <item label="reboot">
<action name="Execute" command="reboot"/> <action name="If">
<prompt message="Do you really want to reboot your system?" />
<then>
<action name="Execute" command="reboot"/>
</then>
</action>
</item> </item>
<separator /> <separator />
<item label="shutdown"> <item label="shutdown">
<action name="Execute" command="poweroff"/> <action name="If">
<prompt message="Do you really want to poweroff your system?" />
<then>
<action name="Execute" command="poweroff"/>
</then>
</action>
</item> </item>
</menu> </menu>
@@ -1,5 +0,0 @@
#0c0c0c
#121212
#7e49b2
#1c1c1c
#c8c8c8
@@ -1,5 +0,0 @@
#c8c8c8
#1c1c1c
#7e49b2
#121212
#0c0c0c
+3 -3
View File
@@ -146,17 +146,17 @@
<!-- запустить терминал(alacritty) --> <!-- запустить терминал(alacritty) -->
<keybind key="W-return"> <!-- Win+Return(enter) --> <keybind key="W-return"> <!-- Win+Return(enter) -->
<action name="Execute" command="alacritty --config-file ~/.config/aether/theme/alacritty.toml" /> <action name="Execute" command="alacritty --config-file ~/.config/alacritty/alacritty.toml" />
</keybind> </keybind>
<!-- запустить проводник(dolphin) --> <!-- запустить проводник(dolphin) -->
<keybind key="W-e"> <!-- Win+E --> <keybind key="W-e"> <!-- Win+E -->
<action name="Execute" command="dolphin" /> <action name="Execute" command="pcmanfm" />
</keybind> </keybind>
<!-- заблокировать пк --> <!-- заблокировать пк -->
<keybind key="W-l"> <!-- Win+L --> <keybind key="W-l"> <!-- Win+L -->
<action name="Execute" command="hyprlock" /> <action name="Execute" command="swaylock" />
</keybind> </keybind>
<!-- сделать скриншот области(скриншот не сохраняется на диск) --> <!-- сделать скриншот области(скриншот не сохраняется на диск) -->
-38
View File
@@ -1,38 +0,0 @@
#!/bin/sh
PALETTE="$HOME/.config/labwc/palettes/alpine/palette-dark"
BG_COLOR=$(sed -n '1p' "$PALETTE")
SUB_BG_COLOR=$(sed -n '2p' "$PALETTE")
ACCENT_COLOR=$(sed -n '3p' "$PALETTE")
SUB_FG_COLOR=$(sed -n '4p' "$PALETTE")
FG_COLOR=$(sed -n '5p' "$PALETTE")
cat << EOF > "$HOME/.config/labwc/themerc-override"
# цвет рамки active и inactive
window.active.border.color: $FG_COLOR
window.inactive.border.color: $BG_COLOR
# цвет фона заголовка active и inactive
window.active.title.bg.color: $FG_COLOR
window.inactive.title.bg.color: $FG_COLOR
# цвет текста заголовка окна
window.active.label.text.color: $BG_COLOR
window.inactive.label.text.color: $BG_COLOR
# цвет иконок кнопок для АКТИВНОГО окна
window.active.button.unpressed.image.color: $BG_COLOR
# цвет иконок кнопок для НЕАКТИВНОГО окна
window.inactive.button.image.color: $BG_COLOR
EOF
killall swaybg 2>/dev/null
swaybg \
-m fill \
-i "$HOME/backgrounds/alpine_bg_dark_sign.jpg" &
sh -c 'labwc --reconfigure; killall waybar; waybar &amp;'
-38
View File
@@ -1,38 +0,0 @@
#!/bin/sh
PALETTE="$HOME/.config/labwc/palettes/alpine/palette-light"
BG_COLOR=$(sed -n '1p' "$PALETTE")
SUB_BG_COLOR=$(sed -n '2p' "$PALETTE")
ACCENT_COLOR=$(sed -n '3p' "$PALETTE")
SUB_FG_COLOR=$(sed -n '4p' "$PALETTE")
FG_COLOR=$(sed -n '5p' "$PALETTE")
cat << EOF > "$HOME/.config/labwc/themerc-override"
# цвет рамки active и inactive
window.active.border.color: $FG_COLOR
window.inactive.border.color: $BG_COLOR
# цвет фона заголовка active и inactive
window.active.title.bg.color: $FG_COLOR
window.inactive.title.bg.color: $FG_COLOR
# цвет текста заголовка окна
window.active.label.text.color: $BG_COLOR
window.inactive.label.text.color: $BG_COLOR
# цвет иконок кнопок для АКТИВНОГО окна
window.active.button.unpressed.image.color: $BG_COLOR
# цвет иконок кнопок для НЕАКТИВНОГО окна
window.inactive.button.image.color: $BG_COLOR
EOF
killall swaybg 2>/dev/null
swaybg \
-m fill \
-i "$HOME/backgrounds/alpine_bg_light_sign.jpg" &
sh -c 'labwc --reconfigure; killall waybar; waybar &amp;'
+9 -11
View File
@@ -1,17 +1,15 @@
# цвет рамки active и inactive # цвет рамки active и inactive
window.active.border.color: #F9EDE4 window.active.border.color: #98309c
window.inactive.border.color: #141414 window.inactive.border.color: #0b0b0b
# цвет фона заголовка active и inactive # цвет фона заголовка active и inactive
window.active.title.bg.color: #141414 window.active.title.bg.color: #b8b8b8
window.inactive.title.bg.color: #141414 window.inactive.title.bg.color: #e3e3e3
# цвет текста заголовка окна # цвет текста заголовка окна
window.active.label.text.color: #F9EDE4 window.active.label.text.color: #0b0b0b
window.inactive.label.text.color: #F9EDE4 window.inactive.label.text.color: #0b0b0b
# цвет иконок кнопок для АКТИВНОГО окна # цвет иконок кнопок для окна
window.active.button.unpressed.image.color: #F9EDE4 window.active.button.unpressed.image.color: #0b0b0b
window.inactive.button.image.color: #0b0b0b
# цвет иконок кнопок для НЕАКТИВНОГО окна (ОБЯЗАТЕЛЬНЫЙ КЛЮЧ LABWC)
window.inactive.button.image.color: #F9EDE4
-32
View File
@@ -1,32 +0,0 @@
[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()
+123
View File
@@ -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
+34 -13
View File
@@ -5,7 +5,7 @@
"spacing": 0, "spacing": 0,
"modules-left": ["wlr/taskbar"], "modules-left": ["wlr/taskbar"],
"modules-center": ["clock"], "modules-center": ["clock"],
"modules-right": ["network", "custom/spotify", "custom/v2raya", "custom/language", "pulseaudio", "cpu", "memory", "tray"], "modules-right": ["network", "bluetooth", "custom/spotify", "custom/language", "pulseaudio", "cpu", "memory", "battery", "wlr/tray"],
"wlr/taskbar": { "wlr/taskbar": {
"format": "{icon}", "format": "{icon}",
@@ -21,18 +21,10 @@
"custom/spotify": { "custom/spotify": {
"format": "[{}] ", "format": "[{}] ",
"exec": "playerctl metadata --format '{{artist}} - {{title}}' spotify 2>/dev/null || echo ''", "exec": "playerctl metadata --format '{{artist}} - {{title}}' spotify 2>/dev/null || echo ''",
"on-click": "ironbar bar spotify-popup toggle-popup spotify-music", "restart-interval": 1,
"interval": 3, "on-click": "spotify",
"max-length": 50 "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": { "clock": {
"format": "{:%H:%M}", "format": "{:%H:%M}",
"format-alt": "{:%d-%m-%Y}" "format-alt": "{:%d-%m-%Y}"
@@ -50,14 +42,43 @@
"format-wifi": " {bandwidthDownBytes}", "format-wifi": " {bandwidthDownBytes}",
"format-ethernet": " {bandwidthDownBytes}", "format-ethernet": " {bandwidthDownBytes}",
"format-disconnected": "⚠ DONT", "format-disconnected": "⚠ DONT",
"interval": 1 "interval": 1,
"on-click": "alacritty -e nmtui"
},
"bluetooth": {
"format": "",
"format-disabled": "󰂲",
"format-off": "󰂲",
"format-connected": " {num_connections}",
"tooltip-format": "{device_enumerate}",
"on-click": "blueman-manager"
},
"battery": {
"format": "{capacity}% {icon}",
"format-charging": " {capacity}% {icon}",
"format-plugged": " {capacity}%",
"format-icons": [
"",
"",
"",
"",
""
],
"states": {
"warning": 30,
"critical": 15
}
}, },
"pulseaudio": { "pulseaudio": {
"format": " {volume}%", "format": " {volume}%",
"format-muted": " Muted", "format-muted": " Muted",
"on-click": "pavucontrol" "on-click": "pavucontrol"
}, },
"tray": { "wlr/tray": {
"icon-size": 10, "icon-size": 10,
"spacing": 15 "spacing": 15
} }
+8 -18
View File
@@ -1,15 +1,13 @@
* { * {
font-family: "JetBrainsMono Nerd Font", "Font Awesome 7 Free", "Font Awesome 7 Free Solid", "Font Awesome 7 Brands", sans-serif; font-family: "JetBrainsMono Nerd Font";
font-size: 12px; font-size: 12px;
border: none; border: none;
border-radius: 0; border-radius: 0;
} }
@import "/home/ivan/.config/aether/theme/waybar.css";
window#waybar { window#waybar {
background: alpha(@background, 0.75); background: alpha(#e3e3e3, 0.75);
color: @foreground; color: #0b0b0b;
min-height: 28px; min-height: 28px;
} }
@@ -22,24 +20,16 @@ window#waybar {
#custom-spotify, #custom-spotify,
#tray { #tray {
padding: 0 10px; padding: 0 10px;
color: @foreground; color: #0b0b0b;
} }
#taskbar button { #taskbar button {
color: alpha(@foreground, 0.6); color: alpha(#0b0b0b, 0.6);
padding: 0 8px; padding: 0 8px;
} }
#taskbar button.active { #taskbar button.active {
background-color: alpha(@foreground, 0.2); background-color: alpha(#0b0b0b, 0.2);
box-shadow: inset 0 -2px 0 0 @foreground; box-shadow: inset 0 -2px 0 0 #0b0b0b;
color: @foreground; color: #0b0b0b;
}
#custom-v2raya.enabled {
color: @foreground;
}
#custom-v2raya.disabled {
color: @background;
} }
-1
View File
@@ -1,6 +1,5 @@
#!/bin/bash #!/bin/bash
# Проверяем, запущен ли процесс v2rayA
if pgrep -x "v2raya" > /dev/null; then if pgrep -x "v2raya" > /dev/null; then
if [ "$1" = "toggle" ]; then if [ "$1" = "toggle" ]; then
sudo systemctl stop v2raya.service 2>/dev/null || sudo killall v2raya sudo systemctl stop v2raya.service 2>/dev/null || sudo killall v2raya
+13 -15
View File
@@ -1,5 +1,3 @@
@import "/home/ivan/.config/aether/theme/wofi.css";
#img { #img {
padding: 5px; padding: 5px;
width: 120px; width: 120px;
@@ -12,42 +10,42 @@
window { window {
background-color: @bg; background-color: #090909;
border: 2px solid @gray3; border: 2px solid #fefefe;
} }
input { input {
background-color: @bg; background-color: #090909;
color: @fg; color: #fefefe;
border: 1px solid @gray2; border: 1px solid #62605a;
} }
input:selected { input:selected {
background-color: @gray1; background-color: @gray1;
color: @fg_bright; color: #fcfcfc;
} }
#entry { #entry {
color: @fg; color: #fefefe;
background-color: @bg; background-color: #090909;
padding: 5px; padding: 5px;
margin: 2px; margin: 2px;
} }
#entry:selected { #entry:selected {
background-color: @gray1; background-color: #c3c3c3;
color: @fg_bright; color: #fcfcfc;
} }
scrollbar { scrollbar {
background-color: @bg; background-color: #090909;
} }
scrollbar slider { scrollbar slider {
background-color: @gray2; background-color: #62605a;
border-radius: 5px; border-radius: 5px;
} }
scrollbar slider:hover { scrollbar slider:hover {
background-color: @gray3; background-color: #808080;
} }
Binary file not shown.
+17 -90
View File
@@ -82,7 +82,7 @@ sudo apk add \
curl \ curl \
cmake \ cmake \
libcurl \ libcurl \
libcurl-dev \ curl-dev \
opencv \ opencv \
opencv-dev \ opencv-dev \
waybar \ waybar \
@@ -98,12 +98,20 @@ sudo apk add \
wireplumber \ wireplumber \
alsa-utils \ alsa-utils \
networkmanager \ networkmanager \
nm-applet \ network-manager-applet \
pcmanfm-gtk3 \ pcmanfm \
firefox \ firefox \
swaylock \ swaylock-effects \
playerctl \ playerctl \
font-jetbrains-mono font-jetbrains-mono \
ristretto \
grim \
bluez \
pavucontrol \
brightnessctl \
networkmanager-tui \
blueman \
htop
success "all packages installed" success "all packages installed"
@@ -126,61 +134,7 @@ else
fi fi
# 5. Build zenith-cli # 5. Copy configs
if [ -d "$HOME/zenith-cli/.git" ]; then
info "zenith-cli already exists, updating..."
cd "$HOME/zenith-cli"
git pull
else
if [ -e "$HOME/zenith-cli" ]; then
error "$HOME/zenith-cli exists but is not a git repository"
exit 1
fi
info "cloning zenith-cli repository..."
git clone \
https://zenithcode.duckdns.org/s13bby/zenith-cli.git \
"$HOME/zenith-cli"
fi
if [ ! -f "$HOME/zenith-cli/build.sh" ]; then
error "zenith-cli/build.sh not found"
exit 1
fi
info "making build script executable..."
chmod +x "$HOME/zenith-cli/build.sh"
info "building zenith-cli..."
sh "$HOME/zenith-cli/build.sh"
if [ ! -f "$HOME/zenith-cli/zenith-cli" ]; then
error "zenith-cli binary was not created"
exit 1
fi
info "installing zenith-cli to ~/.local/bin..."
mkdir -p "$HOME/.local/bin"
cp "$HOME/zenith-cli/zenith-cli" "$HOME/.local/bin/zenith-cli"
chmod +x "$HOME/.local/bin/zenith-cli"
if ! grep -Fq 'export PATH="$HOME/.local/bin:$PATH"' "$HOME/.profile" 2>/dev/null; then
echo 'export PATH="$HOME/.local/bin:$PATH"' >> "$HOME/.profile"
success "added ~/.local/bin to PATH in .profile"
fi
# Make zenith-cli available in the current shell
export PATH="$HOME/.local/bin:$PATH"
success "zenith-cli ready to work"
# 6. Copy configs
info "creating config directory..." info "creating config directory..."
@@ -188,7 +142,7 @@ mkdir -p "$HOME/.config"
info "copying dotfiles..." info "copying dotfiles..."
for config in hypr labwc waybar wofi qt6ct alacritty; do for config in alacritty swaylock labwc waybar wofi; do
if [ -d "$HOME/labwc-alpine/configs/$config" ]; then if [ -d "$HOME/labwc-alpine/configs/$config" ]; then
cp -r "$HOME/labwc-alpine/configs/$config" "$HOME/.config/" cp -r "$HOME/labwc-alpine/configs/$config" "$HOME/.config/"
else else
@@ -196,37 +150,10 @@ for config in hypr labwc waybar wofi qt6ct alacritty; do
exit 1 exit 1
fi fi
done done
if [ -d "$HOME/labwc-alpine/palettes" ]; then
cp -r "$HOME/labwc-alpine/palettes" "$HOME/.config/"
else
error "palettes directory not found"
exit 1
fi
success "dotfiles copied" success "dotfiles copied"
# 7. Copy fonts # 6. Copy backgrounds
info "creating fonts directory..."
mkdir -p "$HOME/.local/share/fonts"
if [ -d "$HOME/labwc-alpine/fonts" ]; then
cp -r "$HOME/labwc-alpine/fonts/"* "$HOME/.local/share/fonts/"
else
error "fonts directory not found"
exit 1
fi
info "updating font cache..."
fc-cache -fv >/dev/null
success "fonts copied"
# 8. Copy backgrounds
info "creating backgrounds directory..." info "creating backgrounds directory..."
@@ -242,7 +169,7 @@ fi
success "backgrounds copied" success "backgrounds copied"
# 9. Done # 7. Done
echo echo
echo "┌──────────────────────────────────────┐" echo "┌──────────────────────────────────────┐"