63 lines
2.2 KiB
Python
63 lines
2.2 KiB
Python
import re
|
|
import sys
|
|
import argparse
|
|
import os
|
|
import stat
|
|
from dataclasses import dataclass
|
|
from typing import List, Union, Tuple
|
|
import shutil
|
|
from pathlib import Path
|
|
|
|
|
|
# One element per monitor
|
|
# swaybar: background
|
|
sway_color_bar_background = 0
|
|
# swaybar: statusline
|
|
sway_color_bar_statusline = 1
|
|
#swaybar: focused_background
|
|
sway_color_bar_focused_background = 2
|
|
#swaybar: focused_statusbar
|
|
sway_color_bar_focused_statusline = 3
|
|
#swaybar: focused_workspace
|
|
sway_color_bar_workspace_focused_border = 4
|
|
sway_color_bar_workspace_focused_background = 5
|
|
sway_color_bar_workspace_focused_text = 6
|
|
#swaybar: active_workspace
|
|
sway_color_bar_workspace_active_border = 7
|
|
sway_color_bar_workspace_active_background = 8
|
|
sway_color_bar_workspace_active_text = 9
|
|
#swaybar: inactive_workspace
|
|
sway_color_bar_workspace_inactive_border = 10
|
|
sway_color_bar_workspace_inactive_background = 11
|
|
sway_color_bar_workspace_inactive_text = 12
|
|
#swaybar: urgent_workspace
|
|
sway_color_bar_workspace_urgent_border = 13
|
|
sway_color_bar_workspace_urgent_background = 14
|
|
sway_color_bar_workspace_urgent_text = 15
|
|
#swaybar: binding_mode
|
|
sway_color_bar_mode_indicator_border = 16
|
|
sway_color_bar_mode_indicator_background = 17
|
|
sway_color_bar_mode_indicator_text = 18
|
|
# n when constructing my ColorSchemeSearchConf
|
|
sway_color_n = 19
|
|
|
|
|
|
if __name__ == "__main__":
|
|
arg_parser = argparse.ArgumentParser(description="Activate a precompiled colorscheme for sway")
|
|
# todo: continue from here (We almost finished)
|
|
arg_parser.add_argument('wallpaper_path')
|
|
arg_parser.add_argument('themes_path', help='Path to the colorscheme file')
|
|
arg_parser.add_argument('config_output_path', help='Path for the output config file')
|
|
arg_parser.add_argument('bar_name', help="Which bar to configure", nargs='?', default='*')
|
|
|
|
# Optional flag arguments (no arguments)
|
|
arg_parser.add_argument('--message', action='store_true', help='Use swaymsg to send colorscheme immediately')
|
|
args = arg_parser.parse_args()
|
|
|
|
with open(args.colorscheme_path, 'r') as f:
|
|
colors = list(filter(lambda line: len(line) > 0, f.readlines()))
|
|
|
|
config_text = f"""bar {args.bar_name} colors """
|
|
assert len(colors) == sway_color_n
|
|
|