Раскрашиваем консоль Windows под хохлому / Habr
С наступающим, коллеги. Все знают, что для консоли в windows можно легко задать цвет текста и фона. Но мало кто знает, что остальные 14 цветов тоже можно задать, существенно упростив себе работу с консольными приложениями, поддерживающими цвета в windows — например, git или mercurial. Под катом я в лицах и картинках расскажу о своей борьбе с цветами и о получившейся в результате утилитке на python, которая позволяет раскрасить консоль одной командой, дабы больше не видеть этого бело-синего ужаса powershell.
ANSI Colors
Итак, я хочу поменять все цвета в консоли, а не только текста и фона. Для начала посмотрим, что это за цвета. В linux и osx все просто — есть стандарт «ANSI Colors», который гласит, что если вывести в консоль определенную последовательность символов, то следующий за ней текст будет покрашен во все цвета радуги:
К сожалению, авторы windows данный стандарт не поддержали, но нечто похожее имеется — 16 цветов, которыми можно раскрашивать текст и фон. Простенькая программа на python показывает, как это выглядит:
from ctypes import *
windll.Kernel32.GetStdHandle.restype = c_ulong
h = windll.Kernel32.GetStdHandle(c_ulong(0xfffffff5))
for color in xrange(16):
windll.Kernel32.SetConsoleTextAttribute(h, color)
print "color {0}".format( color )
Цвета, мягко выражаясь, печальные. Особенно если сравнивать результаты с цветовой схемой по умолчанию в ubuntu:
Меняем цвета
Цветовые настройки консоли хранятся, что ожидаемо, в реестра. Нас интересует ключ HKEY_CURRENT_USER\Console, значения от «ColorTable00 (черный, он же цвет фона) до ColorTable15 (яркий белый). Значения: DWORD, 0x00BBGGRR. Меняем эти волшебные ключи и получаем то же самое, что и в Ubuntu. Единственная разница — цвета идут в другом порядке:
Цель достигнута? Похоже на то. Но тут есть…
Интрига
Радуемся новым цветам. Через некоторое время понимаем, что у нас Windows 7 или Windows 8 и мы хотим прикрепить консоль в taskbar, дабы вызывать ее через хоткей „win+номер“. Делаем „pin this program to taskbar“, запускаем, и видим ЭТО:
Откуда взялся этот синий фон, который при раскраске становится черным? Ведь если запустить консоль через „win+r“ — мы видим наши цвета, установленные на предыдущем шаге. Тут кроется самое интересное — когда мы прикрепляем консольное приложение на taskbar, Windows создает для него ярлык (файл с расширением .lnk) и устанавливает для этого ярлыка персональные настройки цветов. Что делать? Берем в руки python, немного COM, и модифицируем настройки ярлыка. Теперь совсем все работает.
Обещанные два клика
Чтобы не растерять квалификацию программиста, я оформил все вышеперечисленное в качестве небольшого модуля на python, который можно использовать в качестве утилиты командной строки. Если у вас уже установлен python, то для установки моего шедевра достаточно выполнить команду:
pip install pywincmdtheme
Если же python у вас не стоит, то рекомендую поставить сборку ActivePython — кроме python она содержит еще и ряд предустановленных расширений, полезных для работы под Windows. Как с помощью утилиты раскрасить консоль под хохлому? Если запустить утилиту без аргументов командной строки, то она попытается найти в директории пользователя файл .Xresources и применить цвета из него. Если же такого файла нет, то будут применены цвета из ubuntu, которые я демонстрировал в примерах выше. Файл .Xresources — это штатный для *nix способ хранения настроек терминала, в частности цветовых схем. Если погуглить, то можно найти красивые готовые схемы.
Работа с ярлыками чуть сложнее — чтобы модифицировать настройки ярлыка, необходимо вызвать утилиту с ключом командной строки ‘—update-link’ и полным путем к ярлыку. Ярлыки прикрепленных на taskbar программ в Windows хранятся в директории „%USERPROFILE%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar“. Пример модификации ярлыка powershell, прикрепленного к taskbar:
pywincmdtheme --update-link "%USERPROFILE%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Windows PowerShell.lnk"
Вроде все. Еще раз с наступающим всех, надеюсь кому-нибудь вышеизложенное пригодится :).
habr.com
Black Mesa: Коды — Читы
Зайдите в «Настройки», затем в пункт «Клавиатура», посленайдите «Дополнительно…» и поставьте галочку возле пункта
«Включить консоль разработки (~)»
Во время игры нажмите клавишу [~] (тильда) после чего
введите «sv_cheats 1» для активации чит режима.
Теперь снова нажмите клавишу [~] (тильда) и
вводите следующие чит коды:
(любой из этих чит кодов также будет работать как параметр командной строки)
god — неуязвимость
buddha — неуязвимость
infinite_aux_power — бесконечная энергия для костюма
impulse 101 — все оружие и патроны
npc_kill — убить все NPC в районе
notarget — враги не нападают на вас
noclip — ходить сквозь стены
+mlook — активировать просмотр мышкой
ch_createjeep — создать джип
ch_createairboat — создать надувную лодку
maps — вывести список всех названий карт
impulse 102 — черепки
give — получить предмет или оружие
Предметы: Оружие:
item_healthkit weapon_ar1
item_healthvial weapon_ar2
item_box_buckshot weapon_bugbait
item_box_mrounds weapon_cguard
item_box_sniper_rounds weapon_molotov
item_box_srounds weapon_manhack
item_battery weapon_immolator
item_ml_grenade weapon_crowbar
item_ar2_grenade weapon_extinguisher
weapon_flaregun
weapon_frag
weapon_gauss
weapon_alyxgun
weapon_hopwire
weapon_iceaxe
weapon_physcannon
weapon_physgun
weapon_pistol
weapon_rpg
weapon_shotgun
weapon_smg1
weapon_smg2
weapon_stickylauncher
weapon_stunstick
weapon_thumper
weapon_sniperrifle
weapon_rollerwand
weapon_slam
weapon_hmg1
weapon_cubemap
weapon_binoculars
weapon_ml
weapon_brickbat
Загрузить карты:
Загрузка осуществляется командой «map [название_карты]»
d1_canals_01
d1_canals_02
d1_canals_end
d1_tempanals_02
d1_town_01
d1_town_02
d1_town_03
d1_town_04
d1_town_05
d1_trainstation_01
d1_trainstation_02
d1_trainstation_03
d1_under_01
d1_under_02
d1_under_03
d1_under_04
d2_coast_01
d2_coast_02
d2_coast_03
d2_coast_04
d2_coast_04_dx60
d2_coast_05
d2_coast_06
d2_coast_07
d2_coast_08
d2_prison_01
d2_prison_02
d2_prison_03
d2_prison_04
d2_prison_05
d3_c17_03
d3_c17_04
d3_c17_05
d3_c17_06a
d3_c17_06b
d3_c17_07
Дополнительные параметры командной строки:
-fullscreen — полноэкранный режим
-heapsize 80000 — установить размер heap памяти
-width 1024 -height 768 — установить размер окна
-r_anamorphic 0 — ??????
-netgraph 3 — ??????
-mat_preloadshaders — ??????
-dx9 — ??????
-dxlevel 90 — ??????
-shaderdll shader_nvfx_ps20.dll — ??????
-mouselook — ??????
-dx8 — ??????
-condebug — ??????
-sw — ??????
-startwindowed — ??????
-window — ??????
-windowed — ??????
www.playground.ru
цвет символов и фона в окне консоли.
КомандаФормат командной строки:
COLOR [цвет фона][цвет текста]
Цвет задается шестнадцатеричной цифрой, Старший бит определяет яркость, а последующие биты — цвет :
Бит 0 — яркость
Бит 1 — красный ( R )
Бит 2 — зеленый ( G )
Бит 3 — синий ( B )
По умолчанию, используются белые буквы на черном фоне — цвет фона = 0 , цвет символов =7. Значения битов задают комбинацию цветов, так например, для желтого цвета используется установка битов 1 и 2 ( Красный и Зеленый). Команда для установки яркого синего цвета ( 9 ) на желтом фоне ( 6 ) : color 69
То же, но на ярком желтом фоне:
color E9
color F0 — черные символы на ярком белом фоне, color 0F — наоборот, белые яркие символы на черном фоне. .
Каждая цифра может иметь следующие значения:
0 = Черный
1 = Синий
2 = Зеленый
3 = Голубой
4 = Красный
5 = Лиловый
6 = Желтый
7 = Белый
8 = Серый
9 = Светло-синий
A = Светло-зеленый
B = Светло-голубой
C = Светло-красный
D = Светло-лиловый
E = Светло-желтый
F = Ярко-белый
Если в команде COLOR задана только одна цифра, то она определяет цвет символов на черном фоне (значение цвета фона воспринимается как 0 ):
COLOR 1 — синие буквы на черном фоне, как в команде COLOR 01
Если аргумент не указан, команда восстанавливает исходный набор цветов, каким он был на момент запуска CMD.EXE. Этот набор определяется из значения ключа /T, если он был задан при запуске интерпретатора CMD.EXE, или из значения параметров реестра, определяющих пользовательские настройки для интерпретатора команд:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor\DefaultColor — для всех пользователей.
Если параметр DefaultColor имеет значение по умолчанию ( REG_DWORD 0x00000000 ), то цветовой набор определяется значением параметра
HKEY_CURRENT_USER\Console\ScreenColors.
Команда COLOR возвращает значение кода ошибки ERRORLEVEL равный 1 при попытке вызова этой команды с совпадающими значениями цвета текста и цвета фона, например — COLOR 00 .
Весь список команд CMD Windowsab57.ru