From 2f4a12a03690cd090425e85711d4f928cd042d5f Mon Sep 17 00:00:00 2001 From: Robert Tari Date: Wed, 26 Jan 2022 17:03:32 +0100 Subject: Merge icon generators + add some tweakability --- .../ayatana-indicator-keyboard-icon-generator.py | 56 +++++++++++++++++----- 1 file changed, 44 insertions(+), 12 deletions(-) (limited to 'contrib/ayatana-indicator-keyboard-icon-generator.py') diff --git a/contrib/ayatana-indicator-keyboard-icon-generator.py b/contrib/ayatana-indicator-keyboard-icon-generator.py index 586c8229..5d631d33 100755 --- a/contrib/ayatana-indicator-keyboard-icon-generator.py +++ b/contrib/ayatana-indicator-keyboard-icon-generator.py @@ -9,6 +9,7 @@ from gi.repository import PangoFT2, Pango from pathlib import Path import sys import getopt +#import subprocess m_lLanguages = [ 'Ap', #APL @@ -178,30 +179,34 @@ def printHelp(): print('') print('Usage:') print('') - print('ayatana-indicator-keyboard-icon-generator -p -c -f -o ') + print('ayatana-indicator-keyboard-icon-generator -p -c -f -n -o ') print('') print(' The padding between the fill and the edges of the image') - print(' Defaults to 0 pixels') + print(' Defaults to 0.8') print(' The colour of the fill') print(' Defaults to "#ffffff"') print(' The font family') print(' Defaults to "Sans Regular"') + print('-n Do not fill the icon, draw the border only') + print(' Not used by default') print(' The output directory') print(' Defaults to the current directory') print('') if __name__ == '__main__': - nPadding = 0 + fBorder = 0.8 sColour = '#ffffff' sFont = "Sans Regular" pOutDir = Path.cwd() nFont = 15 + nWeight = 500 + bNoFill = False lOpts = [] try: - lOpts = getopt.getopt(sys.argv[1:], 'hp:c:f:o:')[0] + lOpts = getopt.getopt(sys.argv[1:], 'hp:c:f:no:')[0] except getopt.GetoptError: @@ -217,7 +222,7 @@ if __name__ == '__main__': elif sOpt == '-p': - nPadding = int(sArg) + fBorder = float(sArg) elif sOpt == '-c': @@ -227,20 +232,39 @@ if __name__ == '__main__': sFont = sArg + elif sOpt == '-n': + + bNoFill = True + elif sOpt == '-o': pOutDir = Path(sArg) pOutDir.mkdir(parents=True, exist_ok=True) - nSize = 24 - (2 * nPadding) - fIconX = (24 - nSize) / 2 - fIconY = (24 - nSize) / 2 + fRx = 2.4 + + if fRx == 0: + + fRx = 3.0 + + fSize = 24.0 - (fBorder * 2) + fIconX = (24.0 - fSize) / 2 + fIconY = (24.0 - fSize) / 2 + + if bNoFill == True: + + nWeight = 300 + nFont = 13 + fSize -= 0.8 + fIconX = fBorder + 0.4 + fIconY = fBorder + 0.4 + pFontMap = PangoFT2.FontMap.new() pContext = Pango.FontMap.create_context(pFontMap) pFontDescription = Pango.FontDescription.new() pFontDescription.set_family(sFont) - pFontDescription.set_weight(500) + pFontDescription.set_weight(nWeight) pFontDescription.set_size(nFont * Pango.SCALE) pLayout = Pango.Layout.new(pContext) pLayout.set_font_description(pFontDescription) @@ -266,8 +290,16 @@ if __name__ == '__main__': pLayout.set_text(sLanguage, -1) nLayoutWidth, nLayoutHeight = pLayout.get_size() nBaseline = pLayout.get_baseline() - fLayoutX = (24.0 - (nLayoutWidth / Pango.SCALE)) / 2 - fLayoutY = (24.0 - (nLayoutHeight / Pango.SCALE)) / 2 + (nBaseline / Pango.SCALE) - pFile.write('' + sLanguage + '') + fLayoutX = (24.0 - (nLayoutWidth / Pango.SCALE)) / 2 + (fBorder * 0.1) + fLayoutY = (24.0 - (nLayoutHeight / Pango.SCALE)) / 2 + (nBaseline / Pango.SCALE) + (fBorder * 0.1) + + if bNoFill == False: + + pFile.write('' + sLanguage + '') + + else: + + pFile.write('' + sLanguage + '') + #subprocess.run('inkscape "' + str(sOutPath) + '" --export-text-to-path --export-plain-svg --export-filename="' + str(sOutPath) + '"', shell=True, check=True); sys.exit(0) -- cgit v1.2.3