aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/config.py9
-rwxr-xr-xsrc/i3-colors.py78
2 files changed, 48 insertions, 39 deletions
diff --git a/src/config.py b/src/config.py
index b59f79d..bd2366f 100755
--- a/src/config.py
+++ b/src/config.py
@@ -134,8 +134,13 @@ def write_theme(tmp_config,theme):
f.close()
-def apply(config_file,theme):
+def apply(config_file,theme,dry=False):
tmp=extract(config_file)
write_theme(tmp,theme)
- shutil.move(tmp,config_file)
+ f=open(tmp,mode="r")
+ new_config=f.read()
+ f.close()
+ if not(dry):
+ shutil.move(tmp,config_file)
+ return(new_config)
diff --git a/src/i3-colors.py b/src/i3-colors.py
index 9450c9c..ceb96e0 100755
--- a/src/i3-colors.py
+++ b/src/i3-colors.py
@@ -1,59 +1,63 @@
#!/usr/bin/python
import config, theme, os, argparse, subprocess,sys
-##### Utils Functions #####
-def log(msg,title=""):
- if len(title)>0:
- print("\033[92m{}\033[00m: {}" .format(title,msg))
- else:
- print(msg)
-###########################
-
##### Apply Theme #####
def apply(args):
+ if not(args.theme_path):
+ argsMainParser.print_help()
+ exit(1)
loaded_theme=theme.load(args.theme_path)
config_file=os.environ["HOME"]+"/.config/i3/config"
- if args.config_path:
- config_file=args.config_path
- config.apply(config_file,loaded_theme)
- for meta_key,meta_value in loaded_theme["meta"].items():
- log(meta_value,title=meta_key.title())
- if args.restart:
- subprocess.Popen("i3-msg restart".split(),stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ if not(args.dry):
+ config.apply(config_file,loaded_theme)
+ for meta_key,meta_value in loaded_theme["meta"].items():
+ print("\033[92m{}\033[00m: {}" .format(meta_key.title(),meta_value))
+ if args.restart:
+ subprocess.Popen("i3-msg restart".split(),stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ else:
+ new_config=config.apply(config_file,loaded_theme,dry=True)
+ print(new_config)
#######################
+
+##### Aleatory #####
def aleatory(args):
t=theme.random_theme().as_dict()
config.apply(os.environ["HOME"]+"/.config/i3/config",t)
if args.restart:
- subprocess.Popen("i3-msg restart".split(),stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ subprocess.Popen("i3-msg restart".split(),stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+####################
+
##### Extract Theme #####
def extract(args):
+ if not(args.config_path):
+ argsMainParser.print_help()
+ exit(1)
t=config.extract_theme(args.config_path)
print(t.as_yaml())
#######################
-##### Parse Arguments #####
-argsMainParser = argparse.ArgumentParser(description='I3 Window Manager Colors Themer.')
-argsSubParsers = argsMainParser.add_subparsers()
-argsApplyParser = argsSubParsers.add_parser("apply")
-argsApplyParser.add_argument('theme_path', type=str, nargs='?',
- help='I3 YAML theme path.')
-argsApplyParser.add_argument('-r', '--restart' ,action='store_true', help='Restart i3 after applying theme.')
-argsApplyParser.add_argument('config_path', type=str, nargs='?',
- help='I3 configuration file.')
-argsApplyParser.set_defaults(func=apply)
-
-argsExtractParser = argsSubParsers.add_parser("extract")
-argsExtractParser.add_argument('config_path', type=str, nargs='?',
- help='Extract theme from config file.')
-argsExtractParser.set_defaults(func=extract)
-
-argsAleatoryParser = argsSubParsers.add_parser("aleatory")
-argsAleatoryParser.add_argument('-r', '--restart' ,action='store_true', help='Restart i3 after applying theme.')
-argsAleatoryParser.set_defaults(func=aleatory)
-
-
+##### Entry Point #####
if __name__ == "__main__":
+ ##### Main Parser
+ argsMainParser = argparse.ArgumentParser(description='I3 Window Manager Colors Themer.')
+ argsSubParsers = argsMainParser.add_subparsers()
+ ##### Apply Parser
+ argsApplyParser = argsSubParsers.add_parser("apply")
+ argsApplyParser.add_argument('theme_path', type=str, nargs='?',
+ help='I3 YAML theme path.')
+ argsApplyParser.add_argument('-r', '--restart' ,action='store_true', help='Restart i3 after applying theme.')
+ argsApplyParser.add_argument('-d', '--dry' ,action='store_true', help='Do not apply theme, just print config file.')
+ argsApplyParser.set_defaults(func=apply)
+ ##### Extract Parser
+ argsExtractParser = argsSubParsers.add_parser("extract")
+ argsExtractParser.add_argument('config_path', type=str, nargs='?',
+ help='Extract theme from config file.')
+ argsExtractParser.set_defaults(func=extract)
+ ##### Aleatory Parser
+ argsAleatoryParser = argsSubParsers.add_parser("aleatory")
+ argsAleatoryParser.add_argument('-r', '--restart' ,action='store_true', help='Restart i3 after applying theme.')
+ argsAleatoryParser.set_defaults(func=aleatory)
+ ##### Launch i3-colors
args = argsMainParser.parse_args()
if len(sys.argv)>1:
args.func(args)