Обсуждение раскрутки CS сервера, обсуждение эффекта от раскруток | Часть 3. |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
|
Обсуждение раскрутки CS сервера, обсуждение эффекта от раскруток | Часть 3. |
Gecko
|
22.1.2026, 23:49
Сообщение
|
|
|
Я бы не сказал что прям все сборки винды с троянами...... сейчас вот железо для пк с троянами.....такими что не удалить все! ![]() Не отвечаю на ЛС.
|
|
|
|
VenigreT
|
24.1.2026, 8:26
Сообщение
|
|
|
|
|
|
|
Affl
|
24.1.2026, 11:43
Сообщение
|
![]() |
Братья, давайте жить в мире!)
Все имеют право на свое мнение!)) ![]() WAR3FT Пивка для Рывка 202 lvl
|
|
|
|
usercn
|
25.1.2026, 19:15
Сообщение
|
![]() |
Цитата сейчас вот железо для пк с троянами.....такими что не удалить В каждом интел чипсете есть IME - по описанию якобы модуль менеджмента ресурсами вашего ПК, управления режимами, энергосбережением и прочее... А по факту - обычная телеметрия, но уже на невыкорчевываемом, более продвинутом "аппаратном" уровне. Вживленный модуль слежения и контроля за пользователем. Счас UEFI может по сети пробудить ваш ноутбук, передать файлики и выключиться, пользователь и не заметит. А вирусов, работоспособных на ХП счас уже и не встретить. Может в каких-то старых архивах. Все современные говнокодеры ориентированы на Вин10/11 и вирусы заточены тоже под эти ОС. ![]() Просунутий сервер з максимумом зброї, можливо старійший в Україні
[UA] DNET CS Public Server #1 |
|
|
|
Gecko
|
26.1.2026, 20:07
Сообщение
|
|
|
Metal Messiah, переходи на gnu/linux и всё будет хорошо, за этой системой будущее. Винда только для некоторых игр (к примеру в моём случае это PUBG). А саму систему обязательно устанавливать на базе официального образа скачанного с официального сайта MS и никак по другому. К стати, если нужна пиратка, то CS16-NonSteam.AppImage - самый удобный вариант, просто скачал файл и запустил мышкой как на винде установив конечно права на выполнение если к примеру фс ext4. одной командой: Код chmod +x CS16-NonSteam.AppImage && ./CS16-NonSteam.AppImage Будет работать также как и на винде, можно даже в комплекте добавить мой mc > LVMS. И самое интересное не нужен даже протектор вообще, файлы в squashfs по сути в контейнере. А конфиг игры а также браузер серверов можно вынести в Код ${HOME}/.csnonsteam/ И вот мы получаем идеальную сборку cs1.6 nonsteam под gnu/linux и всё будет летать со скоростью света на слабом железе, ещё и с dxvk в комплекте. И распространять можно как угодно, запуск всего с одной команды Код curl -fsSL https://raw.githubusercontent.com/csnonsteam/cs/main/run.sh | bash И это всё реально просто сделать, даже проще чем на винде. А если уважаешь пользователей и безопасность, то лучше собрать под flatpak там всё реально будет изолированно.
Отредактировал: Gecko, - 27.1.2026, 14:10
![]() Не отвечаю на ЛС.
|
|
|
|
Gecko
|
28.1.2026, 2:52
Сообщение
|
|
|
twileck, у тебя устаревшая информация, ставишь ubuntu/mint устанавливаешь из центра приложений в два клика steam и играешь. Также есть snap/flatpak там свои центры приложений где ты также можешь скачать игры в два клика и начать играть. Кроме этого я выше привёл готовое решение на базе AppImage, там тоже не нужно никаких танцев с бубном, скачал и запустил игру. CS Portable: https://www.appimagehub.com/p/1585579/ Xonotic: https://www.appimagehub.com/p/1442579/ Super Tux Kart: https://www.appimagehub.com/p/2271201/ и множество других игр... Я могу упаковать практически любую игру, и пользователю нужно только скачать и запустить, или просто открыть терминал выполнить одну команду и игра сама будет скачана и запущена. Steam вообще покроет основную потребность в играх благодаря Proton, то есть, ты можешь играть в игры для винды на gnu/linux а про cs я вообще молчу, cs нативен под gnu/linux. Сделаю как-нибудь обзор на свой дистрибутив, на базе awesomeWM (тайловый оконный менеджер на иксах) на базе debian stable, да, этот дистрибутив для более продвинутых пользователей, но там можно настроить всё, ты хозяин своей системы. Безопасность, практичность, удобство 10 из 10. Вот мой конфиг: (отдельно идут конфиги стелей, модули которые я сам писал под свои задачи, также в дистрибутиве на стороне WM исправлено несколько багов которые идут из коробки) По конфигу можно понять насколько тонко можно настроить интерфейс даже не трогая при этом модули. rc.lua Код pcall(require, "luarocks.loader") -- Стандартная библиотека AwesomeWM local gears = require("gears") local awful = require("awful") require("awful.autofocus") -- Библиотека для виджетов и раскладки local wibox = require("wibox") -- Библиотека для тем local beautiful = require("beautiful") -- Библиотека уведомлений local naughty = require("naughty") -- Меню приложений local menubar = require("menubar") -- Виджет справки по горячим клавишам local hotkeys_popup = require("awful.hotkeys_popup") require("awful.hotkeys_popup.keys") -- Включаем поддержку горячих клавиш для различных приложений -- Меню Debian local debian = require("debian.menu") local has_fdo, freedesktop = pcall(require, "freedesktop") -- Виджеты local separator_widget = wibox.widget.textbox() separator_widget:set_text(" ") -- Пробел между элементами local volume_widget = require('awesome-wm-widgets.volume-widget.volume') local logout_menu_widget = require("awesome-wm-widgets.logout-menu-widget.logout-menu") local net_speed_widget = require("awesome-wm-widgets.net-speed-widget.net-speed") local cpu_widget = require("awesome-wm-widgets.cpu-widget.cpu-widget") local battery_widget = require("awesome-wm-widgets.battery-widget.battery") -- Обработка ошибок при старте if awesome.startup_errors then naughty.notify({ preset = naughty.config.presets.critical, title = "Ошибка при запуске!", text = awesome.startup_errors }) end -- Обработка ошибок во время работы do local in_error = false awesome.connect_signal("debug::error", function(err) if in_error then return end -- Предотвращаем бесконечный цикл ошибок in_error = true naughty.notify({ preset = naughty.config.presets.critical, title = "Произошла ошибка!", text = tostring(err) }) in_error = false end) end -- Инициализация темы (цвета, иконки, шрифты, обои) beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua") -- Определяем терминал и редактор terminal = "kitty" editor = os.getenv("EDITOR") or "editor" editor_cmd = terminal .. " -e " .. editor -- Модификатор (Mod) для горячих клавиш modkey = "Mod4" -- Список доступных раскладок окон (layouts) awful.layout.layouts = { awful.layout.suit.spiral, -- Спиральное расположение окон awful.layout.suit.tile, -- Классическая плитка (основное окно слева, остальные справа) awful.layout.suit.floating, -- Плавающие окна (свободное перемещение) --[[ Ниже закомментированные варианты для будущего использования Их можно раскомментировать при желании --]] -- awful.layout.suit.tile.left, -- Плитка с основным окном справа -- awful.layout.suit.tile.bottom, -- Плитка с основным окном сверху -- awful.layout.suit.tile.top, -- Плитка с основным окном снизу -- awful.layout.suit.fair, -- "Справедливое" расположение окон -- awful.layout.suit.fair.horizontal, -- Горизонтальная справедливая плитка -- awful.layout.suit.spiral.dwindle, -- Убывающая спираль -- awful.layout.suit.max, -- Максимизированное окно (одно на весь экран) -- awful.layout.suit.max.fullscreen, -- Полноэкранный режим (без панели) -- awful.layout.suit.magnifier, -- "Лупа" — одно окно увеличено, остальные маленькие -- awful.layout.suit.corner.nw, -- Размещение по углу северо-запад -- awful.layout.suit.corner.ne, -- Размещение по углу северо-восток -- awful.layout.suit.corner.se, -- Размещение по углу юго-восток -- awful.layout.suit.corner.sw, -- Размещение по углу юго-запад } local startup = true -- Функция показа уведомления о текущем layout local function show_current_layout(s) if startup then return end -- игнорируем уведомления при старте local layout_name = awful.layout.getname(awful.tag.getproperty(s.selected_tag, "layout")) naughty.notify({ text = "Макет окна: " .. layout_name, timeout = 1, position = "top_right", bg = "#222222", fg = "#FFFFFF" }) end -- Подписка на изменение layout tag.connect_signal("property::layout", function(t) show_current_layout(t.screen) end) -- Сбрасываем флаг после полной инициализации gears.timer.delayed_call(function() startup = false end) -- Устанавливаем локаль для русского языка os.setlocale("ru_RU.utf8") -- Индикатор и переключатель раскладки клавиатуры mykeyboardlayout = awful.widget.keyboardlayout() -- Виджет часов mytextclock = wibox.widget.textclock("<span color='#00FF00'>%H:%M</span> %a, %d.%b.%Y", 1) -- При клике по часам — открыть calcurse в терминале mytextclock:connect_signal("button::press", function(_, _, _, button) if button == 2 then local c = nil for _, x in ipairs(client.get()) do if x.name and x.name:match("calcurse") then c = x break end end if c then local t = c.first_tag if t then t:view_only() end client.focus, c.raised = c, true else awful.spawn(terminal .. " -T calcurse -e calcurse") end end end) -- Кнопки для списка тегов local taglist_buttons = gears.table.join( awful.button({}, 1, function(t) t:view_only() end), awful.button({modkey}, 1, function(t) if client.focus then client.focus:move_to_tag(t) end end), awful.button({}, 3, awful.tag.viewtoggle), awful.button({modkey}, 3, function(t) if client.focus then client.focus:toggle_tag(t) end end), awful.button({}, 4, function(t) awful.tag.viewnext(t.screen) end), awful.button({}, 5, function(t) awful.tag.viewprev(t.screen) end) ) -- Кнопки для списка задач local tasklist_buttons = gears.table.join( awful.button({}, 1, function(c) if c == client.focus then c.minimized = true else c:emit_signal("request::activate", "tasklist", {raise = true}) end end), awful.button({}, 3, function() awful.menu.client_list({ theme = { width = 250,bg_normal = "#111111",border_width = 1 } }) end), awful.button({}, 4, function() awful.client.focus.byidx(1) end), awful.button({}, 5, function() awful.client.focus.byidx(-1) end) ) -- Функция установки обоев local function set_wallpaper(s) if beautiful.wallpaper then local wallpaper = beautiful.wallpaper if type(wallpaper) == "function" then wallpaper = wallpaper(s) end gears.wallpaper.maximized(wallpaper, s, true) end end -- Обновляем обои при изменении геометрии экрана screen.connect_signal("property::geometry", set_wallpaper) -- Настройка каждого экрана awful.screen.connect_for_each_screen(function(s) set_wallpaper(s) -- Теги (рабочие столы) awful.tag({ "", "", "", "", "", "", "", "", "", "" }, s, awful.layout.layouts[1]) -- Поле ввода команд s.mypromptbox = awful.widget.prompt() -- Виджет тегов s.mytaglist = awful.widget.taglist { screen = s, filter = awful.widget.taglist.filter.all, buttons = taglist_buttons } -- Виджет задач s.mytasklist = awful.widget.tasklist { screen = s, filter = awful.widget.tasklist.filter.currenttags, buttons = tasklist_buttons } -- Панель (wibox) s.mywibox = awful.wibar({ position = "top", screen = s }) -- Настройка виджетов панели s.mywibox:setup { layout = wibox.layout.align.horizontal, { -- Левый блок виджетов layout = wibox.layout.fixed.horizontal, separator_widget, separator_widget, mylauncher, s.mytaglist, s.mypromptbox, }, s.mytasklist, -- Средний блок (задачи) { -- Правый блок виджетов layout = wibox.layout.fixed.horizontal, -- net_speed_widget(), separator_widget, separator_widget, cpu_widget({ width = 30, step_width = 2, step_spacing = 0, color = '#6D977F' }), battery_widget(), separator_widget, separator_widget, volume_widget(), separator_widget, mykeyboardlayout, separator_widget, wibox.widget.systray(), separator_widget, mytextclock, separator_widget, logout_menu_widget{ font = 'Play 14', onlock = function() awful.spawn.with_shell('i3lock-fancy -t ""') end }, separator_widget, separator_widget, }, } end) -- Настройка мыши для root окна root.buttons(gears.table.join( awful.button({}, 4, awful.tag.viewnext), awful.button({}, 5, awful.tag.viewprev) )) -- ===================================== -- Глобальные горячие клавиши -- ===================================== globalkeys = gears.table.join( -- Справка и лаунчеры awful.key({modkey}, "s", hotkeys_popup.show_help, {description="справочник", group="awesome"}), awful.key({"Control", "Mod1"}, "r", function() awful.spawn("rofi -show run -modi run,window,ssh -theme fancy -font 'hack 16' -show window") end, {description="лаунчер rofi run", group="launcher"}), awful.key({"Control", "Mod1"}, "w", function() awful.spawn("rofi -show window -modi run,window,ssh -theme fancy -font 'hack 16' -show window") end, {description="лаунчер rofi window", group="launcher"}), -- Редакторы кода/Текстовые редакторы awful.key({"Control", "Mod1"}, "c", function() awful.tag.viewonly(screen[1].tags[1]); awful.spawn("code") end, {description="редактор кода", group="launcher"}), awful.key({"Control", "Mod1"}, "e", function() awful.spawn(terminal .. " micro") end, {description="текстовый редактор", group="launcher"}), -- Конфигурация awesome awful.key({"Shift"}, "c", function() awful.tag.viewonly(screen[1].tags[1]); awful.spawn(terminal .. " micro ~/.config/awesome/rc.lua") end, {description="конфигурация awesome", group="launcher"}), -- Браузеры awful.key({"Control", "Mod1"}, "f", function() awful.spawn("firefox") end, {description="браузер", group="launcher"}), -- Мессенджеры и офис awful.key({"Control", "Mod1"}, "t", function() awful.tag.viewonly(screen[1].tags[4]); awful.spawn("telegram-desktop") end, {description="мессенджер Telegram", group="launcher"}), awful.key({"Control", "Mod1"}, "v", function() awful.tag.viewonly(screen[1].tags[4]); awful.spawn("viber") end, {description="мессенджер Viber", group="launcher"}), awful.key({"Control", "Mod1"}, "l", function() awful.tag.viewonly(screen[1].tags[5]); awful.spawn("libreoffice") end, {description="офисный пакет LibreOffice", group="launcher"}), -- Файловые менеджеры awful.key({"Control", "Mod1"}, "m", function() awful.tag.viewonly(screen[1].tags[7]); awful.spawn(terminal .. " mc") end, {description="файловый менеджер mc", group="launcher"}), awful.key({"Control", "Mod1"}, "p", function() awful.tag.viewonly(screen[1].tags[7]); awful.spawn("pcmanfm") end, {description="файловый менеджер PCManFM", group="launcher"}), -- Медиа awful.key({"Control", "Mod1"}, "s", function() awful.tag.viewonly(screen[1].tags[8]); awful.spawn("smplayer") end, {description="видеоплеер SMPlayer", group="launcher"}), -- Скриншот awful.key({}, "Print", function() awful.util.spawn("flameshot gui") end, {description="сделать скриншот", group="screenshots"}), -- Переключение видимости панели awful.key({modkey}, "b", function() awful.screen.focused().mywibox.visible = not awful.screen.focused().mywibox.visible end, {description="показать/скрыть панель", group="awesome"}), -- Counter-Strike 1.6 awful.key({"Control", "Shift"}, "1", function() awful.spawn("steam -silent > /dev/null & xdg-open steam://connect/192.168.1.102:27016") end, {description="Игровой сервер №1", group="launcher"}), awful.key({"Control", "Shift"}, "2", function() awful.spawn("steam -silent > /dev/null & xdg-open steam://connect/37.230.210.167:27015") end, {description="Игровой сервер №2", group="launcher"}), awful.key({"Control", "Shift"}, "3", function() awful.spawn("steam -silent > /dev/null & xdg-open steam://connect/37.230.210.43:27015") end, {description="Игровой сервер №3", group="launcher"}), awful.key({"Control", "Shift"}, "4", function() awful.spawn("steam -silent > /dev/null & xdg-open steam://connect/37.230.228.175:27015") end, {description="Игровой сервер №4", group="launcher"}), -- Текущее время awful.key({"Shift"}, "t", function() naughty.notify({text=os.date("%H:%M %a,%d.%b.%Y"), timeout=2}) end, {description="показать текущее время", group="launcher"}), -- CMUS (музыкальный плеер) awful.key({"Shift"}, "a", function() awful.tag.viewonly(screen[1].tags[8]); awful.spawn(terminal .. " cmus") end, {description="запустить CMUS", group="launcher"}), awful.key({"Shift"}, "s", function() awful.spawn("cmus-remote -p") end, {description="воспроизвести CMUS", group="launcher"}), awful.key({"Shift"}, "d", function() awful.spawn("cmus-remote -n") end, {description="следующая композиция CMUS", group="launcher"}), awful.key({"Shift"}, "f", function() awful.spawn("cmus-remote -r") end, {description="предыдущая композиция CMUS", group="launcher"}), awful.key({"Shift"}, "g", function() awful.spawn("cmus-remote -U") end, {description="пауза CMUS", group="launcher"}), awful.key({"Shift"}, "h", function() awful.spawn("cmus-remote -s") end, {description="стоп CMUS", group="launcher"}), awful.key({"Shift"}, "l", function() awful.spawn("cmus-remote --volume +5%") end, {description="увеличить громкость CMUS", group="launcher"}), awful.key({"Shift"}, "k", function() awful.spawn("cmus-remote --volume -5%") end, {description="уменьшить громкость CMUS", group="launcher"}), awful.key({"Shift"}, "j", function() awful.spawn(terminal .. " pkill cmus") end, {description="закрыть CMUS", group="launcher"}), -- Громкость awful.key({modkey}, "]", function() volume_widget:inc(5) end, {description="увеличить громкость", group="volume"}), awful.key({modkey}, "[", function() volume_widget:dec(5) end, {description="уменьшить громкость", group="volume"}), awful.key({modkey}, "\\", function() volume_widget:toggle() end, {description="выключить/включить звук", group="volume"}), -- Теги awful.key({modkey}, "Left", awful.tag.viewprev, {description="предыдущий тег", group="tag"}), awful.key({modkey}, "Right", awful.tag.viewnext, {description="следующий тег", group="tag"}), awful.key({modkey}, "Escape", awful.tag.history.restore, {description="вернуться к предыдущему тегу", group="tag"}), -- Фокус окон awful.key({modkey}, "j", function() awful.client.focus.byidx(1) end, {description="следующее окно", group="client"}), awful.key({modkey}, "k", function() awful.client.focus.byidx(-1) end, {description="предыдущее окно", group="client"}), -- Управление layout awful.key({modkey, "Shift"}, "j", function() awful.client.swap.byidx(1) end, {description="поменять с следующим окном", group="client"}), awful.key({modkey, "Shift"}, "k", function() awful.client.swap.byidx(-1) end, {description="поменять с предыдущим окном", group="client"}), awful.key({modkey, "Control"}, "j", function() awful.screen.focus_relative(1) end, {description="следующий экран", group="screen"}), awful.key({modkey, "Control"}, "k", function() awful.screen.focus_relative(-1) end, {description="предыдущий экран", group="screen"}), awful.key({modkey}, "u", awful.client.urgent.jumpto, {description="перейти к срочному окну", group="client"}), awful.key({modkey}, "Tab", function() awful.client.focus.history.previous(); if client.focus then client.focus:raise() end end, {description="вернуться к предыдущему окну", group="client"}), -- Запуск терминала и стандартных программ awful.key({modkey}, "Return", function() awful.spawn(terminal) end, {description="открыть терминал", group="launcher"}), awful.key({modkey}, "z", function() awful.spawn(terminal) end, {description="открыть терминал", group="launcher"}), awful.key({modkey, "Control"}, "r", awesome.restart, {description="перезагрузить AwesomeWM", group="awesome"}), awful.key({modkey, "Shift"}, "q", awesome.quit, {description="выйти из AwesomeWM", group="awesome"}), -- Управление размером master и колонок awful.key({modkey}, "l", function() awful.tag.incmwfact(0.05) end, {description="увеличить ширину master", group="layout"}), awful.key({modkey}, "h", function() awful.tag.incmwfact(-0.05) end, {description="уменьшить ширину master", group="layout"}), awful.key({modkey, "Shift"}, "h", function() awful.tag.incnmaster(1, nil, true) end, {description="увеличить количество master окон", group="layout"}), awful.key({modkey, "Shift"}, "l", function() awful.tag.incnmaster(-1, nil, true) end, {description="уменьшить количество master окон", group="layout"}), awful.key({modkey, "Control"}, "h", function() awful.tag.incncol(1, nil, true) end, {description="увеличить количество колонок", group="layout"}), awful.key({modkey, "Control"}, "l", function() awful.tag.incncol(-1, nil, true) end, {description="уменьшить количество колонок", group="layout"}), awful.key({modkey}, "space", function() awful.layout.inc(1) end, {description="следующий layout", group="layout"}), awful.key({modkey, "Shift"}, "space", function() awful.layout.inc(-1) end, {description="предыдущий layout", group="layout"}), awful.key({modkey, "Control"}, "n", function() local c = awful.client.restore(); if c then c:emit_signal("request::activate","key.unminimize",{raise=true}) end end, {description="восстановить свернутое окно", group="client"}), -- Prompt awful.key({modkey}, "r", function() awful.screen.focused().mypromptbox:run() end, {description="запустить prompt", group="launcher"}), -- Переключение раскладки клавиатуры awful.key({"Shift"}, "Alt_L", function() mykeyboardlayout.next_layout() end, {description="следующая раскладка клавиатуры"}), awful.key({"Mod1"}, "Shift_L", function() mykeyboardlayout.next_layout() end, {description="следующая раскладка клавиатуры"}), -- Меню awful.key({modkey}, "p", function() menubar.show() end, {description="показать меню", group="launcher"}) ) -- ===================================== -- Горячие клавиши для клиента (окон) -- ===================================== clientkeys = gears.table.join( awful.key({modkey}, "f", function(c) c.fullscreen = not c.fullscreen; c:raise() end, {description="полноэкранный режим", group="client"}), awful.key({modkey}, "x", function(c) c:kill() end, {description="закрыть окно", group="client"}), awful.key({modkey}, ";", function(c) c:kill() end, {description="закрыть окно", group="client"}), awful.key({modkey}, "'", function(c) c:kill() end, {description="закрыть окно", group="client"}), awful.key({modkey}, "c", function(c) c:kill() end, {description="закрыть окно", group="client"}), awful.key({modkey, "Control"}, "space", awful.client.floating.toggle, {description="вкл/выкл плавающее окно", group="client"}), awful.key({modkey, "Control"}, "Return", function(c) c:swap(awful.client.getmaster()) end, {description="поменять с мастер-окном", group="client"}), awful.key({modkey}, "o", function(c) c:move_to_screen() end, {description="переместить на другой экран", group="client"}), awful.key({modkey}, "t", function(c) c.ontop = not c.ontop end, {description="поверх всех окон", group="client"}), awful.key({modkey}, "n", function(c) c.minimized = true end, {description="свернуть окно", group="client"}), awful.key({modkey}, "m", function(c) c.maximized = not c.maximized; c:raise() end, {description="максимизировать/вернуть размер", group="client"}), awful.key({modkey, "Control"}, "m", function(c) c.maximized_vertical = not c.maximized_vertical; c:raise() end, {description="максимизировать/вернуть по вертикали", group="client"}), awful.key({modkey, "Shift"}, "m", function(c) c.maximized_horizontal = not c.maximized_horizontal; c:raise() end, {description="максимизировать/вернуть по горизонтали", group="client"}) ) -- ===================================== -- Привязка клавиш к тегам (1-9) -- ===================================== -- Цикл связывает клавиши 1–9 с тегами на экране. -- Используются keycodes, чтобы это работало на любой раскладке клавиатуры. -- Обычно это верхний ряд клавиатуры: клавиши 1–9. for i = 1, 9 do globalkeys = gears.table.join(globalkeys, -- Просмотр только одного тега (переключиться на тег i) awful.key({ modkey }, "#" .. i + 9, function () local screen = awful.screen.focused() -- получаем активный экран local tag = screen.tags[i] -- выбираем тег i if tag then tag:view_only() -- показываем только этот тег end end, {description = "просмотр тега №"..i, group = "теги"}), -- Переключение отображения тега (вкл/выкл тег i) awful.key({ modkey, "Control" }, "#" .. i + 9, function () local screen = awful.screen.focused() local tag = screen.tags[i] if tag then awful.tag.viewtoggle(tag) -- переключение состояния видимости end end, {description = "переключить отображение тега №"..i, group = "теги"}), -- Переместить текущее окно (client) на тег i awful.key({ modkey, "Shift" }, "#" .. i + 9, function () if client.focus then local tag = client.focus.screen.tags[i] if tag then client.focus:move_to_tag(tag) -- переносим окно на выбранный тег end end end, {description = "переместить окно на тег №"..i, group = "теги"}), -- Добавить/убрать текущий тег i у активного окна (multi-tag) awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, function () if client.focus then local tag = client.focus.screen.tags[i] if tag then client.focus:toggle_tag(tag) -- переключение привязки окна к тегу end end end, {description = "переключить привязку окна к тегу №"..i, group = "теги"}) ) end -- Обработка кликов мыши по окнам clientbuttons = gears.table.join( -- ЛКМ: активировать окно awful.button({ }, 1, function (c) c:emit_signal("request::activate", "mouse_click", {raise = true}) end), -- Mod + ЛКМ: активировать и переместить окно awful.button({ modkey }, 1, function (c) c:emit_signal("request::activate", "mouse_click", {raise = true}) awful.mouse.client.move(c) end), -- Mod + ПКМ: активировать и изменить размер окна awful.button({ modkey }, 3, function (c) c:emit_signal("request::activate", "mouse_click", {raise = true}) awful.mouse.client.resize(c) end) ) -- ===================================== -- Установка глобальных клавиш -- ===================================== root.keys(globalkeys) -- ===================================== -- Правила окон -- ===================================== -- Правила применяются к новым клиентам (окнам) через сигнал "manage". awful.rules.rules = { -- Правила по умолчанию для всех клиентов { rule = { }, properties = { border_width = beautiful.border_width, -- Толщина рамки border_color = beautiful.border_normal, -- Цвет рамки по умолчанию focus = awful.client.focus.filter, -- Правило фокуса окна raise = true, -- Поднимать окно на передний план keys = clientkeys, -- Горячие клавиши клиента buttons = clientbuttons, -- Кнопки мыши для клиента screen = awful.screen.preferred, -- Экран по умолчанию placement = awful.placement.no_overlap + awful.placement.no_offscreen -- Размещение окна } }, -- Плавающие клиенты (Floating clients) { rule_any = { instance = { "DTA", -- Firefox addon DownThemAll. "copyq", -- Включает имя сессии в класс. "pinentry", -- Ввод паролей }, class = { "Arandr", -- Настройка мониторов "Blueman-manager", -- Bluetooth-менеджер "Gpick", -- Палитра цветов "Kruler", -- Линейка "MessageWin", -- kalarm "Sxiv", -- Просмотр изображений "Tor Browser", -- Требует фиксированного размера окна "Wpa_gui", -- Wi-Fi GUI "veromix", -- Настройка звука "xtightvncviewer" -- VNC клиент }, -- Название окна (может появляться чуть позже создания клиента) name = { "Event Tester", -- xev. }, role = { "AlarmWindow", -- Календарь Thunderbird "ConfigManager", -- about:config в Thunderbird "pop-up", -- Всплывающие окна (например, DevTools Chrome) } }, properties = { floating = true }}, -- Заголовки окон -- Убираем заголовки у обычных и диалоговых окон { rule_any = { type = { "normal", "dialog" } }, properties = { titlebars_enabled = false } }, -- Индивидуальные правила для приложений { rule = { class = "smplayer" }, properties = { screen = 1, switch_to_tags = true, tag = awful.screen.focused().tags[8] } }, { rule = { class = "Pcmanfm" }, properties = { screen = 1, switch_to_tags = true, tag = awful.screen.focused().tags[7] } }, { rule = { class = "steamwebhelper" }, properties = { screen = 1, hidden = false, switch_to_tags = false, tag = awful.screen.focused().tags[6] } }, { rule = { class = "steam" }, properties = { screen = 1, border_width = 0, hidden = false, switch_to_tags = false, tag = awful.screen.focused().tags[6] } }, { rule = { class = "hl_linux" }, properties = { screen = 1, border_width = 0, switch_to_tags = true, tag = awful.screen.focused().tags[6] } }, { rule = { class = "libreoffice" }, properties = { screen = 1, switch_to_tags = true, tag = awful.screen.focused().tags[5] } }, { rule = { class = "TelegramDesktop" }, properties = { screen = 1, border_width = 0, switch_to_tags = true, tag = awful.screen.focused().tags[4] } }, { rule = { class = "ViberPC" }, properties = { screen = 1, switch_to_tags = true, maximized_vertical = true, maximized_horizontal = true, tag = awful.screen.focused().tags[4] } }, { rule = { class = "firefox" }, properties = { screen = 1, switch_to_tags = true, tag = awful.screen.focused().tags[3] } }, { rule = { class = "org.remmina.Remmina" }, properties = { screen = 1, switch_to_tags = true, tag = awful.screen.focused().tags[2] } }, { rule = { class = "Code" }, properties = { screen = 1, switch_to_tags = true, tag = awful.screen.focused().tags[1] } }, } -- Центровка всплывающих окон для нескольких приложений без рамки local function center_popups(app_classes) client.connect_signal("manage", function(c) -- Проверяем, принадлежит ли окно хотя бы одному классу из списка local match = false for _, class in ipairs(app_classes) do if c.class == class then match = true break end end if not match then return end -- Определяем, является ли окно всплывающим local is_popup = false if c.type == "dialog" then is_popup = true end if c.width <= 500 and c.height <= 150 then is_popup = true end -- Если всплывающее окно, делаем его плавающим, центруем и убираем рамку if is_popup then c.floating = true c.border_width = 2 awful.placement.centered(c, { honor_workarea = true, honor_padding = true }) end end) end -- Используем для нескольких приложений center_popups({ "smplayer", "Lxrandr", "Pcmanfm", "Code", "Toolkit", "Telegram-desktop", "Soffice", "xdg-desktop-portal-gnome" }) -- ===================================== -- Сигналы клиента -- ===================================== -- Функция, которая выполняется при появлении нового клиента (окна) client.connect_signal("manage", function (c) -- Устанавливаем окна в качестве "slave" (подчинённых), -- т.е. ставим их в конец списка, а не мастером. -- if not awesome.startup then awful.client.setslave(c) end -- Если AwesomeWM только что запустился -- и у клиента не задана позиция пользователем или программой, -- то размещаем окно так, чтобы оно не оказалось за пределами экрана. if awesome.startup and not c.size_hints.user_position and not c.size_hints.program_position then awful.placement.no_offscreen(c) end end) -- Сохраняем изначальную ширину рамки при появлении окна client.connect_signal("manage", function(c) if c.border_width == nil then c.saved_border_width = beautiful.border_width or 2 else c.saved_border_width = c.border_width end end) -- Управляем рамкой при разворачивании/сворачивании client.connect_signal("property::maximized", function(c) if c.maximized then -- Если рамка явно не 0, оставляем сохранённую ширину if c.saved_border_width and c.saved_border_width ~= 0 then c.border_width = c.saved_border_width end else -- При возврате из максимизации восстанавливаем сохранённую ширину c.border_width = c.saved_border_width or beautiful.border_width or 2 end end) -- Включаем "sloppy focus": фокус следует за мышью client.connect_signal("mouse::enter", function(c) c:emit_signal("request::activate", "mouse_enter", {raise = false}) end) -- Изменение цвета рамки при фокусе и расфокусе окна client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end) client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end) -- Список приложений с фиксированной рамкой local fixed_border_apps = { "SomeOtherApp" } -- сюда добавляем приложения с кастомной рамкой local fixed_border_color = "#28a8e9" local fixed_border_width = 8 client.connect_signal("manage", function(c) if gears.table.hasitem(fixed_border_apps, c.class) then -- Основное окно приложения (не дочернее) if not (c.type == "dialog" or c.type == "utility" or c.type == "splash" or c.transient_for) then c.border_width = fixed_border_width c.saved_border_width = fixed_border_width end else -- Для остальных сохраняем дефолтную ширину c.saved_border_width = c.border_width or beautiful.border_width or 2 end end) client.connect_signal("focus", function(c) if gears.table.hasitem(fixed_border_apps, c.class) then if not (c.type == "dialog" or c.type == "utility" or c.type == "splash" or c.transient_for) then c.border_color = fixed_border_color c.border_width = fixed_border_width end else c.border_color = beautiful.border_focus end end) client.connect_signal("unfocus", function(c) if gears.table.hasitem(fixed_border_apps, c.class) then if not (c.type == "dialog" or c.type == "utility" or c.type == "splash" or c.transient_for) then c.border_color = beautiful.border_normal c.border_width = fixed_border_width end else c.border_color = beautiful.border_normal end end) -- Дочерние окна/диалоги local borderless_dialog_apps = { "SomeOtherApp" } -- сюда добавляем приложения, для которых окна без рамки client.connect_signal("manage", function(c) if gears.table.hasitem(borderless_dialog_apps, c.class) then if c.type == "dialog" or c.type == "utility" or c.type == "splash" or c.transient_for then c.border_width = 0 c.floating = true end end end) -- ===================================== -- Автозапуск программ -- ===================================== awful.spawn.with_shell([[ /usr/bin/feh --bg-scale ~/.wallpapers/bg2.jpg ]]) awful.spawn.with_shell([[ pgrep ibus && ibus exit pgrep -x nm-applet >/dev/null || nm-applet & setxkbmap -model $(setxkbmap -query | grep "model:" | awk '{print $2}') -layout us,ru,ua -option grp:shifts_toggle pgrep -x picom >/dev/null || picom --config ~/.config/picom/picom.conf & ]]) -- Календарь awful.spawn.with_shell("if [[ -n \"$(calcurse -a)\" ]]; then ! pgrep -x calcurse >/dev/null && kitty -- calcurse; fi &") -- awful.spawn.with_shell([[ -- pgrep firefox || firefox > /dev/null & -- sleep 5 -- pgrep telegram-desktop || telegram-desktop > /dev/null & -- ]])
Отредактировал: Gecko, - 28.1.2026, 3:08
![]() Не отвечаю на ЛС.
|
|
|
|
gribnik
|
28.1.2026, 10:29
Сообщение
|
![]() |
Поставил себе как то mint, я даже снести потом не смог. Весь ютуб пересмотрел.
Что бы запустить cs нужно ещё было с бубном потанцевать. |
|
|
|
usercn
|
28.1.2026, 22:51
Сообщение
|
![]() |
Цитата Открою страшную тайну: окно UAC настолько задалбывает, что у многих сборка системы в которой это окно по умолчанию отключено И дефендер тоже, поскольку удаляет файлы втихаря, без спроса. И вся чума 21 века выкошена под корень - телеметрия, слив налево и направо. И ваще самая классная сборка - это Windows Umbrella. Сборка урезанной Вин10 , но с интерфейсом Висты. Работает быстрее всех, ничего не льет, очень быстро работает на ноутбуке 10 летней давности. ![]() Просунутий сервер з максимумом зброї, можливо старійший в Україні
[UA] DNET CS Public Server #1 |
|
|
|
twileck
|
3.2.2026, 19:18
Сообщение
|
![]() |
|
|
|
|
twileck
|
4.2.2026, 11:56
Сообщение
|
![]() |
Gecko, Есть очень классное видео, как раз про опасность заразится взглядом пингвина и серьезно заболеть linux Особенно, когда он говорит "в итоге ты все равно запустишь старую шпионскую винду, которая сливает твои данные америкосам либо китайцам, но тебе насрать, ты просто хочешь спокойно жить" https://youtu.be/09ZviNv4VLU?si=U4nloDhVHpfUWhpT Советую каждому посмотреть, ржал как конь
Отредактировал: twileck, - 4.2.2026, 12:16
|
|
|
|
![]() ![]() |