Add .gitignore and make use of English
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
.idea/**
|
||||
.vscode/**
|
||||
@@ -2,7 +2,6 @@
|
||||
severity = 5
|
||||
verbose = 8
|
||||
|
||||
[-Variables::ProhibitPunctuationVars]
|
||||
[-ControlStructures::ProhibitUnlessBlocks]
|
||||
[-Variables::RequireLocalizedPunctuationVars]
|
||||
[-Subroutines::ProhibitSubroutinePrototypes]
|
||||
|
||||
@@ -17,11 +17,11 @@
|
||||
* Температуру процессора (одно ядро, указывается файл-источник сведений)
|
||||
* Состояние клавиши CapsLock
|
||||
* Состояние одного интерфейса VPN (+ tcp health check, т.к. ovpn, например, умеет "залипать")
|
||||
* Уровень звука согласно pulse audio для default sink (придумывать "крутилочку" для звука я не стал, ибо там не всё так просто и "в процессе" fun скорее всего пропадёт.). Предполагается, что звук управляется через что-то ещё, например, через какой-нибудь pasystray, например.
|
||||
* Уровень звука согласно pulse audio для default sink (придумывать "крутилочку" для звука я не стал, ибо там не всё так просто и "в процессе" fun скорее всего пропадёт). Предполагается, что звук управляется через что-то ещё, например, через какой-нибудь pasystray.
|
||||
* Состояние (up|down) любого набора существующих сетевых интерфейсов. Но каждый надо описать. IP не показываются, т.к. это сжирает место на панели, а его не так-то и много.
|
||||
* "Кнопки" для запуска произвольных приложений. Собственно, ради этого всё и затевалось :)
|
||||
* "Трекать" запуск приложений "с кнопки" и подсвечивать соответствующую "кнопку". Работает через ивенты от самого i3: на появление и на исчезновения окна с рядом свойств.
|
||||
* Cron! Как ни забавно это звучит, но, да. И нужен он для показывания desktop notifications, ибо системный cron не прокидывает в environment переменную с текущим dbus session. Но в этот крон можно пихнуть что угодно.
|
||||
* Cron! Как ни забавно это звучит, но, да. И нужен он для показывания desktop notifications, ибо системный cron не прокидывает в environment переменную с текущим dbus session. Но в этот крон можно пихнуть что угодно, т.к. он запукается уже после старта dbus.
|
||||
|
||||
## Как это заставить работать
|
||||
|
||||
|
||||
8
TODO
8
TODO
@@ -1,11 +1,3 @@
|
||||
Что желательно сделать ещё.
|
||||
|
||||
* При рестарте i3wm (рестарте скрипта), восстанавливать список запущенных окон.
|
||||
|
||||
* Добавить в battery plugin отслеживание уровня заряда. Раскрашивать вывод.
|
||||
Опционально звать suspend2disk, при очень низком заряде
|
||||
|
||||
* Добавить "крутилку" в плагин, отображающий громкость :)
|
||||
|
||||
* Применить Use English и использовать человекочитаемые имена встроенных
|
||||
переменных.
|
||||
|
||||
@@ -2,12 +2,14 @@
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use English qw ( -no_match_vars );
|
||||
|
||||
# we need to disable hash shuffling in order to make as less prints to stdout as possible
|
||||
BEGIN {
|
||||
unless (defined $ENV{PERL_PERTURB_KEYS}) {
|
||||
$ENV{PERL_PERTURB_KEYS} = 0;
|
||||
exec ( $^X, $0, @ARGV );
|
||||
$ENV{PERL_ANYEVENT_MODEL} = 'EV';
|
||||
exec ( $EXECUTABLE_NAME, $PROGRAM_NAME, @ARGV );
|
||||
exit 0; # we actually never get here
|
||||
}
|
||||
}
|
||||
@@ -25,7 +27,7 @@ use Encode;
|
||||
use IO::Socket qw (AF_INET SOCK_STREAM SHUT_WR);
|
||||
use POSIX qw (setsid);
|
||||
|
||||
local $| = 1;
|
||||
local $OUTPUT_AUTOFLUSH = 1;
|
||||
|
||||
sub add_events ();
|
||||
sub spawn (@);
|
||||
@@ -208,7 +210,7 @@ sub add_events () {
|
||||
if (defined $output_string) {
|
||||
print {*STDOUT} decode ('UTF-8', $output_string) . ",\n";
|
||||
} else {
|
||||
warn $@;
|
||||
warn $EVAL_ERROR;
|
||||
}
|
||||
|
||||
$UPDATE = 0;
|
||||
@@ -292,7 +294,7 @@ sub add_events () {
|
||||
my $xset = `xset q`;
|
||||
$xsetflag = 1;
|
||||
|
||||
if ($?) {
|
||||
if ($CHILD_ERROR) {
|
||||
# some kind of error, so we assume that we cannot update caps lock status
|
||||
$caps_state = 2;
|
||||
} else {
|
||||
@@ -391,7 +393,7 @@ sub add_events () {
|
||||
my @up;
|
||||
my $str = `upower -i $CONF->{battery}->{upower_device}`;
|
||||
|
||||
if ($?) {
|
||||
if ($CHILD_ERROR) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -712,7 +714,7 @@ sub add_events () {
|
||||
cb => sub { # the callback to invoke
|
||||
my $pactl = `LC_ALL=C pactl list sinks`;
|
||||
|
||||
if ($?) {
|
||||
if ($CHILD_ERROR) {
|
||||
# we've some error here, so quit further processing
|
||||
return;
|
||||
}
|
||||
@@ -801,7 +803,7 @@ sub add_events () {
|
||||
my $timeskew = $TC - time ();
|
||||
|
||||
if (($timeskew > 60) || ($timeskew < -60)) {
|
||||
kill 'HUP', $$;
|
||||
kill 'HUP', $PROCESS_ID;
|
||||
}
|
||||
}
|
||||
);
|
||||
@@ -894,7 +896,7 @@ sub readconf () {
|
||||
my $FH;
|
||||
|
||||
unless (open $FH, '<', $file) {
|
||||
die "Unable to open $file: $!\n";
|
||||
die "Unable to open $file: $OS_ERROR\n";
|
||||
}
|
||||
|
||||
my $len = (stat $file)[7];
|
||||
@@ -905,7 +907,7 @@ sub readconf () {
|
||||
close $FH;
|
||||
|
||||
unless (defined $readlen) {
|
||||
die "Unable to read $file: $!\n";
|
||||
die "Unable to read $file: $OS_ERROR\n";
|
||||
}
|
||||
|
||||
if ($readlen != $len) {
|
||||
@@ -915,7 +917,7 @@ sub readconf () {
|
||||
my $config = eval { JSON::XS->new->utf8->relaxed->decode ($data) };
|
||||
|
||||
unless ($config) {
|
||||
die "Unable to decode $file: $@\n";
|
||||
die "Unable to decode $file: $EVAL_ERROR\n";
|
||||
}
|
||||
|
||||
return $config;
|
||||
|
||||
Reference in New Issue
Block a user