diff options
-rw-r--r-- | Adjbacklight.java | 141 | ||||
-rwxr-xr-x | adjbacklight | 162 |
2 files changed, 0 insertions, 303 deletions
diff --git a/Adjbacklight.java b/Adjbacklight.java deleted file mode 100644 index 10ea8d2..0000000 --- a/Adjbacklight.java +++ /dev/null @@ -1,141 +0,0 @@ -/** - * adjbacklight – Convient method for adjusting the backlight on your portable computer - * - * Copyright © 2012, 2013, 2014 Mattias Andrée (maandree@member.fsf.org) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ -import java.io.*; -import java.util.*; - - -/** - * Interactive backlight adjustment - * - * @author Mattias Andrée, <a href="mailto:maandree@member.fsf.org">maandree@member.fsf.org</a> - */ -public class Adjbacklight -{ - /** - * The is the main entry point of the program - * - * @param args Expects the three values: terminal height, terminal width, backlight device - * @throws IOException On error - */ - public static void main(final String... args) throws IOException - { - String dir = "/sys/class/backlight/" + args[2] + "/"; - int width = Integer.parseInt(args[1]); - int max = 0, min = 0, cur = 0; - - { InputStream is = null; - try - { is = new FileInputStream(dir + "brightness"); - Scanner sc = new Scanner(is); - cur = Integer.parseInt(sc.nextLine()); - } - finally - { if (is != null) - is.close(); - } - } - { InputStream is = null; - try - { is = new FileInputStream(dir + "max_brightness"); - Scanner sc = new Scanner(is); - max = Integer.parseInt(sc.nextLine()); - } - finally - { if (is != null) - is.close(); - } - } - - if (max <= min) - System.exit(127); - int step = (max - min) / 200; - int init = cur; - if (step == 0) - step = 1; - - System.out.print("\n\n\n\n\n\n"); - print(min, max, init, cur, width); - - for (int d; (d = System.in.read()) != -1;) - switch (d) - { - case 'q': - case '\n': - case 4: - System.out.println(); - return; - - case 'A': - case 'C': cur += step << 1; - case 'B': - case 'D': cur -= step; - - if (cur < min) cur = min; - if (cur > max) cur = max; - - { OutputStream os = null; - try - { os = new FileOutputStream(dir + "brightness"); - os.write((cur + "\n").getBytes("UTF-8")); - os.flush(); - print(min, max, init, cur, width); - } - finally - { if (os != null) - os.close(); - } - } - break; - } - } - - /** - * Print the status - * - * @param min The minimum possible brightness - * @param max The maximum possible brightness - * @param init The brightness used when the program started - * @param cur The current brightness - * @param width The width of the terminal - */ - private static void print(int min, int max, int init, int cur, int width) - { - String line = "──────────────────────────────────"; - while (line.length() < width - 2) - line += line; - line = line.substring(0, width - 2); - - String space = " "; - while (space.length() < width - 2) - space += space; - space = space.substring(0, width - 2); - - int mid = (int)((cur - min) * (width - 2.) / (max - min) + 0.5); - - System.out.print("\033[1000D\033[6A"); - System.out.println("\033[2K┌" + line + "┐"); - System.out.println("\033[2K│\033[47m" + space.substring(0, mid) + "\033[49m" + space.substring(mid) + "│"); - System.out.println("\033[2K└" + line + "┘"); - System.out.println("\033[2KMaximum brightness: " + max); - System.out.println("\033[2KInitial brightness: " + init); - System.out.println("\033[2KCurrent brightness: " + cur); - } - -} - diff --git a/adjbacklight b/adjbacklight deleted file mode 100755 index 6bc3f18..0000000 --- a/adjbacklight +++ /dev/null @@ -1,162 +0,0 @@ -#!/usr/bin/env bash - -# adjbacklight – Convient method for adjusting the backlight on your portable computer -# -# Copyright © 2012, 2013, 2014 Mattias Andrée (maandree@member.fsf.org) -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - - -all=0 -devices=() - -if (( $# > 0 )); then - for arg in "$@"; do - case "$arg" in - ("-a" | "--all") - all=1 - ;; - ("-c" | "--copyright" | "--copying") - cat <<. - - -adjbacklight – Convient method for adjusting the backlight on your portable computer - -Copyright © 2012, 2013, 2014 Mattias Andrée (maandree@member.fsf.org) - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. - - -. - exit 0 - ;; - ("-w" | "--warranty") - cat <<. - - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - - -. - exit 0 - ;; - (*) - if [ ! "${arg::1}" = "-" ]; then - devices+=( "$arg" ) - fi - ;; - esac - done - if [ $all = 0 ] && [ ${#devices[@]} = 0 ]; then - cat <<. - - -adjbacklight – Convient method for adjusting the backlight on your portable computer - -USAGE: adjbacklight [ -c | -w | -a | DEVICE...] - -Run with options to adjust the backlight on your monitors. - - -OPTIONS: - --c ---copyright ---copying Display copyright information - --w ---warranty Display warranty disclaimer - --a ---all Run for all devices, including ACPI devices - - -KEYBOARD: - -← -↓ Darken the screen - -→ -↑ Brighten the screen - -q -enter -C-d Continue to next controller, or if at last, quit - - - -Copyright © 2012, 2013, 2014 Mattias Andrée (maandree@member.fsf.org) - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. -. - exit 0 - fi -fi - - -cat <<. - - -If the program is abnormally aborted there may be effects -on the terminal, the following commands should reset it: - - stty icanon echo - echo -en '\e[?25h' - - - - -. - -stty -icanon -echo -if [ $? = 0 ]; then - echo -en '\e[?25l' - if [ ! ${#devices[@]} = 0 ]; then - for dir in "${devices[@]}"; do - if [ "${dir::21}" = "/sys/class/backlight/" ]; then - dir="${dir:21}" - fi - sudo java -cp ${BASH_SOURCE%/*} Adjbacklight `stty size` "$dir" - done - elif [ $all = 0 ]; then - for dir in $(exec ls -1 --color=no "/sys/class/backlight/" | grep -v '^acpi_video'); do - sudo java -cp ${BASH_SOURCE%/*} Adjbacklight `stty size` "$dir" - done - else - for dir in $(exec ls -1 --color=no "/sys/class/backlight/"); do - sudo java -cp ${BASH_SOURCE%/*} Adjbacklight `stty size` "$dir" - done - fi - echo -en '\e[?25h' - stty icanon echo -else - echo -e '\e[1;31m::\e[39m Epic failure\e[21m' -fi |