diff --git a/README.md b/README.md index 74b0269..1ff1ad3 100644 --- a/README.md +++ b/README.md @@ -102,7 +102,7 @@ See [themes](https://github.com/aristocratos/bpytop/tree/master/themes) folder f The `make install` command places the default themes in `/usr/local/share/bpytop/themes`. If installed with `pip3` the themes will be located in a folder called `bpytop-themes` in the python3 site-packages folder. -User created themes should be placed in `$HOME/.config/bpytop/themes`. +User created themes should be placed in `${XDG_CONFIG_HOME:-$HOME/.config}/bpytop/themes`. Let me know if you want to contribute with new themes. @@ -377,7 +377,7 @@ sudo make uninstall ## Configurability All options changeable from within UI. -Config files stored in "$HOME/.config/bpytop" folder +Config files stored in "${XDG_CONFIG_HOME:-$HOME/.config}/bpytop" folder #### bpytop.cfg: (auto generated if not found) @@ -386,7 +386,7 @@ Config files stored in "$HOME/.config/bpytop" folder ```bash #? Config file for bpytop v. 1.0.64 -#* Color theme, looks for a .theme file in "/usr/[local/]share/bpytop/themes" and "~/.config/bpytop/themes", "Default" for builtin default theme. +#* Color theme, looks for a .theme file in "/usr/[local/]share/bpytop/themes" and "${XDG_CONFIG_HOME:-$HOME/.config}/bpytop/themes", "Default" for builtin default theme. #* Prefix name by a plus sign (+) for a theme located in user themes folder, i.e. color_theme="+monokai" color_theme="monokai" @@ -534,7 +534,7 @@ show_init=False #* Enable check for new version from github.com/aristocratos/bpytop at start. update_check=True -#* Set loglevel for "~/.config/bpytop/error.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". +#* Set loglevel for "${XDG_CONFIG_HOME:-$HOME/.config}/bpytop/error.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". #* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. log_level=DEBUG diff --git a/bpytop.py b/bpytop.py index 0457b80..f93f4e9 100755 --- a/bpytop.py +++ b/bpytop.py @@ -87,7 +87,7 @@ BANNER_SRC: List[Tuple[str, str, str]] = [ #*?This is the template used to create the config file DEFAULT_CONF: Template = Template(f'#? Config file for bpytop v. {VERSION}' + ''' -#* Color theme, looks for a .theme file in "/usr/[local/]share/bpytop/themes" and "~/.config/bpytop/themes", "Default" for builtin default theme. +#* Color theme, looks for a .theme file in "/usr/[local/]share/bpytop/themes" and "$${XDG_CONFIG_HOME:-$$HOME/.config}/bpytop/themes", "Default" for builtin default theme. #* Prefix name by a plus sign (+) for a theme located in user themes folder, i.e. color_theme="+monokai" color_theme="$color_theme" @@ -235,12 +235,18 @@ show_init=$show_init #* Enable check for new version from github.com/aristocratos/bpytop at start. update_check=$update_check -#* Set loglevel for "~/.config/bpytop/error.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". +#* Set loglevel for "$${XDG_CONFIG_HOME:-$$HOME/.config}/bpytop/error.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". #* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. log_level=$log_level ''') -CONFIG_DIR: str = f'{os.path.expanduser("~")}/.config/bpytop' + +def get_config_dir(): + config_home = os.environ.get("XDG_CONFIG_HOME", os.path.expanduser("~/.config")) + return os.path.join(config_home, 'bpytop') + + +CONFIG_DIR: str = get_config_dir() if not os.path.isdir(CONFIG_DIR): try: os.makedirs(CONFIG_DIR) @@ -4285,7 +4291,7 @@ class Menu: '', 'Choose from all theme files in', '"/usr/[local/]share/bpytop/themes" and', - '"~/.config/bpytop/themes".', + '"${XDG_CONFIG_HOME:-$HOME/.config}/bpytop/themes".', '', '"Default" for builtin default theme.', 'User themes are prefixed by a plus sign "+".',