+++ /dev/null
-#!/usr/bin/env python3
-
-import configparser
-import math
-import os
-import sys
-
-def main():
- action = parse_action()
-
- if action == "+":
- update_font_size(get_size_increment)
- elif action == "-":
- update_font_size(get_size_decrement)
- else:
- update_font_size(lambda _: action)
-
-def parse_action():
- if len(sys.argv) != 2:
- print_help_exit()
-
- action = sys.argv[1]
- if action != "+" and action != "-" and not action.isdigit():
- print_help_exit()
-
- if action.isdigit():
- action = int(action)
- if action < 1:
- print_help_exit()
-
- return action
-
-def print_help_exit():
- print("Usage: %s [+|-|22]", file=sys.stderr)
- sys.exit(1)
-
-def get_size_increment(size):
- if size >= 40:
- return math.floor(size / 8) * 8 + 8
- if size >= 28:
- return math.floor(size / 4) * 4 + 4
- if size >= 18:
- return math.floor(size / 2) * 2 + 2
- return size + 1
-
-def get_size_decrement(size):
- if size > 40:
- return math.ceil(size / 8) * 8 - 8
- if size > 28:
- return math.ceil(size / 4) * 4 - 4
- if size > 18:
- return math.ceil(size / 2) * 2 - 2
- return size - 1
-
-def update_font_size(fn):
- filename = get_config_filename()
- config = configparser.RawConfigParser()
- config.optionxform = lambda key: key
- config.read(filename)
-
- font_name, old_size = config["Configuration"]["FontName"].rsplit(" ", 1)
- new_size = fn(int(old_size))
- config["Configuration"]["FontName"] = "%s %s" % (font_name, new_size)
-
- print("Updating font size:", old_size, "->", new_size)
-
- with open(filename+".new", "w") as f:
- config.write(f)
- os.rename(filename+".new", filename)
-
-def get_config_filename():
- xdg_config_dir = os.environ.get("XDG_CONFIG_HOME", None)
- if not xdg_config_dir:
- xdg_config_dir = os.path.expanduser("~/.config")
- return os.path.join(xdg_config_dir, "xfce4", "terminal", "terminalrc")
-
-
-if __name__ == "__main__":
- main()