Commit 4e6d6429 authored by epsi sayidina's avatar epsi sayidina

migrate from php53 to php7

parent 231f7e69
__pycache__/
*.py[cod]
*.swp
*.swo
#!/usr/bin/php56
<?php
#!/usr/bin/php
<?php # using PHP7
# This is a modularized config for herbstluftwm
require_once('assets/gmc.php');
......
<?php
<?php # using PHP7
require_once('assets/gmc.php');
$tag_names = range(1, 9);
......
<?php
<?php # using PHP7
# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----
# helpers
......
<?php
<?php # using PHP7
# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----
# load on startup
......
<?php # using PHP7
# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----
# google material colors
# https://material.io/guidelines/style/color.html
# Associative Array (Hash)
$color = array(
'white' => '#ffffff',
'black' => '#000000',
'grey50' => '#fafafa',
'grey100' => '#f5f5f5',
'grey200' => '#eeeeee',
'grey300' => '#e0e0e0',
'grey400' => '#bdbdbd',
'grey500' => '#9e9e9e',
'grey600' => '#757575',
'grey700' => '#616161',
'grey800' => '#424242',
'grey900' => '#212121',
'red50' => '#ffebee',
'red100' => '#ffcdd2',
'red200' => '#ef9a9a',
'red300' => '#e57373',
'red400' => '#ef5350',
'red500' => '#f44336',
'red600' => '#e53935',
'red700' => '#d32f2f',
'red800' => '#c62828',
'red900' => '#b71c1c',
'redA100' => '#ff8a80',
'redA200' => '#ff5252',
'redA400' => '#ff1744',
'redA700' => '#d50000',
'pink50' => '#fce4ec',
'pink100' => '#f8bbd0',
'pink200' => '#f48fb1',
'pink300' => '#f06292',
'pink400' => '#ec407a',
'pink500' => '#e91e63',
'pink600' => '#d81b60',
'pink700' => '#c2185b',
'pink800' => '#ad1457',
'pink900' => '#880e4f',
'pinkA100' => '#ff80ab',
'pinkA200' => '#ff4081',
'pinkA400' => '#f50057',
'pinkA700' => '#c51162',
'blue50' => '#e3f2fd',
'blue100' => '#bbdefb',
'blue200' => '#90caf9',
'blue300' => '#64b5f6',
'blue400' => '#42a5f5',
'blue500' => '#2196f3',
'blue600' => '#1e88e5',
'blue700' => '#1976d2',
'blue800' => '#1565c0',
'blue900' => '#0d47a1',
'blueA100' => '#82b1ff',
'blueA200' => '#448aff',
'blueA400' => '#2979ff',
'blueA700' => '#2962ff',
'yellow50' => '#fffde7',
'yellow100' => '#fff9c4',
'yellow200' => '#fff59d',
'yellow300' => '#fff176',
'yellow400' => '#ffee58',
'yellow500' => '#ffeb3b',
'yellow600' => '#fdd835',
'yellow700' => '#fbc02d',
'yellow800' => '#f9a825',
'yellow900' => '#f57f17',
'yellowA100' => '#ffff8d',
'yellowA200' => '#ffff00',
'yellowA400' => '#ffea00',
'yellowA700' => '#ffd600',
'teal50' => '#e0f2f1',
'teal100' => '#b2dfdb',
'teal200' => '#80cbc4',
'teal300' => '#4db6ac',
'teal400' => '#26a69a',
'teal500' => '#009688',
'teal600' => '#00897b',
'teal700' => '#00796b',
'teal800' => '#00695c',
'teal900' => '#004d40',
'tealA100' => '#a7ffeb',
'tealA200' => '#64ffda',
'tealA400' => '#1de9b6',
'tealA700' => '#00bfa5',
'green50' => '#e8f5e9',
'green100' => '#c8e6c9',
'green200' => '#a5d6a7',
'green300' => '#81c784',
'green400' => '#66bb6a',
'green500' => '#4caf50',
'green600' => '#43a047',
'green700' => '#388e3c',
'green800' => '#2e7d32',
'green900' => '#1b5e20',
'greenA100' => '#b9f6ca',
'greenA200' => '#69f0ae',
'greenA400' => '#00e676',
'greenA700' => '#00c853',
'orange50' => '#fff3e0',
'orange100' => '#ffe0b2',
'orange200' => '#ffcc80',
'orange300' => '#ffb74d',
'orange400' => '#ffa726',
'orange500' => '#ff9800',
'orange600' => '#fb8c00',
'orange700' => '#f57c00',
'orange800' => '#ef6c00',
'orange900' => '#e65100',
'orangeA100' => '#ffd180',
'orangeA200' => '#ffab40',
'orangeA400' => '#ff9100',
'orangeA700' => '#ff6d00',
'deepOrange50' => '#fbe9e7',
'deepOrange100' => '#ffccbc',
'deepOrange200' => '#ffab91',
'deepOrange300' => '#ff8a65',
'deepOrange400' => '#ff7043',
'deepOrange500' => '#ff5722',
'deepOrange600' => '#f4511e',
'deepOrange700' => '#e64a19',
'deepOrange800' => '#d84315',
'deepOrange900' => '#bf360c',
'deepOrangeA100' => '#ff9e80',
'deepOrangeA200' => '#ff6e40',
'deepOrangeA400' => '#ff3d00',
'deepOrangeA700' => '#dd2c00'
);
<?php # using PHP7
# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----
# helpers
# script arguments
function get_monitor($arguments)
{
# ternary operator
return count($arguments) > 0 ? (int)$arguments[0] : 0;
}
# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----
# geometry calculation
function get_geometry($monitor)
{
$raw = shell_exec('herbstclient monitor_rect '.$monitor);
if (empty($raw)) {
print('Invalid monitor '.$monitors);
exit(1);
}
return explode(' ', trim($raw));
}
function get_top_panel_geometry($height, $geometry)
{
# geometry has the format X Y W H
return array(
$geometry[0], $geometry[1], $geometry[2], $height);
}
function get_bottom_panel_geometry($height, $geometry)
{
# geometry has the format X Y W H
return array(
$geometry[0], ($geometry[3]-$height), $geometry[2], $height);
}
# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----
# dzen Parameters
function get_dzen2_parameters($monitor, $panel_height)
{
$geometry = get_geometry($monitor);
list($xpos, $ypos, $width, $height) = get_top_panel_geometry(
$panel_height, $geometry);
$bgcolor = '#000000';
$fgcolor = '#ffffff';
$font = '-*-takaopgothic-medium-*-*-*-12-*-*-*-*-*-*-*';
$parameters = " -x $xpos -y $ypos -w $width -h $height";
$parameters .= " -fn '$font'";
$parameters .= " -ta l -bg '$bgcolor' -fg '$fgcolor'";
$parameters .= " -title-name dzentop";
return $parameters;
}
<?php # using PHP7
require_once(__DIR__.'/gmc.php');
# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----
# initialize
# custom tag names
$tag_shows = ['一 ichi', '二 ni', '三 san', '四 shi',
'五 go', '六 roku', '七 shichi', '八 hachi', '九 kyū', '十 jū'];
# initialize variable segment
$segment_windowtitle = '';
$tags_status = [];
# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----
# decoration
$separator = "^bg()^fg(${color['black']})|^bg()^fg()";
# http://fontawesome.io/
$font_awesome = '^fn(FontAwesome-9)';
# Powerline Symbol
$right_hard_arrow = '^fn(powerlinesymbols-14)^fn()';
$right_soft_arrow = '^fn(powerlinesymbols-14)^fn()';
$left_hard_arrow = '^fn(powerlinesymbols-14)^fn()';
$left_soft_arrow = '^fn(powerlinesymbols-14)^fn()';
# theme
$pre_icon = "^fg(${color['yellow500']})${font_awesome}";
$post_icon = "^fn()^fg()";
# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----
# main
function get_statusbar_text($monitor)
{
global $tags_status;
$text = '';
# draw tags
foreach ($tags_status as $tag_status) {
$text .= output_by_tag($monitor, $tag_status);
}
# draw window title
$text .= output_leftside_top();
return $text;
}
# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----
# each segments
function output_by_tag($monitor, $tag_status)
{
global $tag_shows;
global $color, $right_hard_arrow;
$text = '';
$tag_index = substr($tag_status, 1, 1);
$tag_mark = substr($tag_status, 0, 1);
$tag_name = $tag_shows[(int)$tag_index - 1]; # zero based
# ----- pre tag
switch ($tag_mark) {
case "#":
$text .= "^bg(${color['blue500']})^fg(${color['black']})";
$text .= $right_hard_arrow;
$text .= "^bg(${color['blue500']})^fg(${color['white']})";
break;
case "+":
$text .= "^bg(${color['yellow500']})^fg(${color['grey400']})";
break;
case ":":
$text .= "^bg()^fg(${color['white']})";
break;
case "!":
$text .= "^bg(${color['red500']})^fg(${color['white']})";
break;
default:
$text .= "^bg()^fg(${color['grey600']})";
}
# ----- tag by number
# assuming using dzen2_svn
# clickable tags if using SVN dzen
$text .= "^ca(1,herbstclient focus_monitor \"${monitor}\" && "
. "herbstclient use \"${tag_index}\") ${tag_name} ^ca()";
# ----- post tag
if ($tag_mark == '#')
$text .= "^bg(${color['black']})^fg(${color['blue500']})"
. $right_hard_arrow;
return $text;
}
function output_leftside_top()
{
global $separator;
global $segment_windowtitle;
$text = " ^r(5x0) $separator ^r(5x0) ";
$text .= $segment_windowtitle;
return $text;
}
# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----
# setting variables, response to event handler
function set_tag_value($monitor)
{
global $tags_status;
$raw = shell_exec("herbstclient tag_status $monitor");
$tags_status = explode("\t", trim($raw));
}
function set_windowtitle($windowtitle)
{
global $segment_windowtitle;
global $color, $pre_icon, $post_icon;
$icon = "${pre_icon}${post_icon}";
$segment_windowtitle = " ${icon} ^bg()"
. "^fg(${color['grey700']}) ${windowtitle}";
}
#!/usr/bin/php
<?php # using PHP7
# This is a modularized config for herbstluftwm tags in dzen2 statusbar
require_once(__DIR__.'/helper.php');
require_once(__DIR__.'/pipehandler.php');
# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----
# initialize
$panel_height = 24;
$monitor = get_monitor($argv);
# do `man herbsluftclient`, and type \pad to search what it means
system("herbstclient pad $monitor $panel_height 0 $panel_height 0");
$dzen2_parameters = get_dzen2_parameters($monitor, $panel_height);
# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----
# main
# remove all dzen2 instance
system('pkill dzen2');
# run process in the background
detach_dzen2($monitor, $dzen2_parameters);
# optional transparency
detach_transset();
<?php # using PHP7
require_once(__DIR__.'/output.php');
# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----
# pipe
function handle_command_event($monitor, $event)
{
# find out event origin
$column = explode("\t", $event);
$origin = $column[0];
switch($origin) {
case 'reload':
system('pkill dzen2');
break;
case 'quit_panel':
exit(1);
case 'tag_changed':
case 'tag_flags':
case 'tag_added':
case 'tag_removed':
set_tag_value($monitor);
break;
case 'window_title_changed':
case 'focus_changed':
set_windowtitle($column[2]);
break;
}
}
function do_content($monitor, $process)
{
# initialize statusbar before loop
set_tag_value($monitor);
$text = get_statusbar_text($monitor);
fwrite($process, $text."\n");
flush();
# start a pipe
$command_in = 'herbstclient --idle';
$event = '' ;
$pipe_in = popen($command_in, "r"); # handle
while(!feof($pipe_in)) {
# read next event
$event = fgets($pipe_in);
handle_command_event($monitor, $event);
$text = get_statusbar_text($monitor);
fwrite($process, $text);
flush();
}
pclose($pipe_in);
}
function run_dzen2($monitor, $parameters)
{
$command_out = "dzen2 $parameters";
$pipe_out = popen($command_out, "w");
do_content($monitor, $pipe_out);
pclose($pipe_out);
}
function detach_dzen2($monitor, $parameters)
{
$pid = pcntl_fork();
switch($pid) {
case -1 : // fork errror
die('could not fork');
case 0 : // we are the child
run_dzen2($monitor, $parameters);
break;
default : // we are the parent
return $pid;
}
}
function detach_transset() {
$pid = pcntl_fork();
if ($pid == 0) {
sleep(1);
# you may use either xorg-transset instead or transset-df
# https://github.com/wilfunctionyr/transset-df
system('transset .8 -n dzentop >/dev/null');
}
}
#!/usr/bin/php56
<?php
#!/usr/bin/php
<?php # using PHP7
$timeformat = '%a %b %d %H:%M:%S';
......
#!/usr/bin/php56
<?php
#!/usr/bin/php
<?php # using PHP7
# http://php.net/manual/en/function.popen.php
......
#!/usr/bin/php56
<?php
#!/usr/bin/php
<?php # using PHP7
$timeformat = '%a %b %d %H:%M:%S';
......
#!/usr/bin/php56
<?php
#!/usr/bin/php
<?php # using PHP7
function get_dzen2_parameters()
{
......
#!/usr/bin/php56
<?php
#!/usr/bin/php
<?php # using PHP7
function get_dzen2_parameters()
{
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment