/StartTree

A terminal-style home page replicating the tree command .

Primary LanguageCSS

StartTree

A terminal-style home page replicating the tree command, modified from this start page, which no longer exists.

Usage

Requirements

Requires the bs4 python package.

Installation

To install StartTree for the first time, run the following commands:
(Note: If the ~/.config/StartTree directory already exists, init.sh will not copy the example config to prevent accidentally overwriting a custom config. )

git clone https://github.com/Paul-Houser/StartTree.git
cd StartTree
chmod +x init.sh
chmod +x generate.py
./init.sh
./generate.py

This will create the directory ~/.config/StartTree containing the default config.yaml, install starttree.py to your $PATH, as well as generate the html/css, which you can view by pointing your browser at $HOME/.cache/StartTree/index.html.

Config

The config should be placed in ~/.config/StartTree/config.yaml

Updating the HTML

To re-generate the html/css after editing the config, execute starttree.py from any directory.

Example Config

font_size: 22 # specify font size
theme: void # specify the name of a theme in the themes/ directory, or use 'pywal'
tree_1: # each column should be named 'tree_X' where X is unique for each tree.
  general: # Header name
    github: "https://www.github.com/" # Link-text: url
    gmail: "https://mail.google.com/"
  reddit:
    # the following is an example of naming a link something with a space,
    # or containing characters that cannot be in a yaml variable name.
    frontpage: 
      - "https://www.reddit.com/"
      - "front page"
    unixporn: "https://www.reddit.com/r/unixporn/"
tree_2:
  other:
    archwiki: 
      - "https://archlinux.org/"
      - "arch wiki"
    hulu: "https://www.hulu.com/"
    netflix: "https://www.netflix.com/"
    youtube: "https://www.youtube.com/"

Themes

A variety of themes can be found in the themes directory.

If one wishes to dynamically theme from pywal, they may select pywal as their chosen theme in config.yaml.

Docker

In order to circumvent some restrictions on browsers for what is allowed as a "Home" and "New Tab" page, you can host StartTree as a lightweight NGINX server through docker-compose.

To set this up, one must have docker and docker-compose installed and configured. Then, go into the directory where you cloned StartTree, and run

cd docker
vim docker-compose.yaml # edit specifics to your liking
docker-compose -f docker-compose.yaml up -d

This will make the NGINX server persist across reboots. You can point your browser's new tab and home page to localhost:<port#> and you should see your startpage!