A terminal-style home page replicating the tree command .
Go to file
Prateek Yadav d429fdc231
Create gruvbox.css
Gruvbox color scheme for the startpage.
2021-11-19 14:33:13 +05:30
docker added better nginx conf to disable cache 2020-08-26 15:44:46 -07:00
images updated screenshot 2020-08-24 16:50:28 -07:00
skeletons forced all entries to stay on a single line 2020-09-24 14:21:52 -07:00
themes Create gruvbox.css 2021-11-19 14:33:13 +05:30
config.yaml added theme selection 2020-08-24 15:52:49 -07:00
generate.py browsers will no longer cache colors.css which fixes colors not updating 2020-08-26 15:52:43 -07:00
init.sh browsers will no longer cache colors.css which fixes colors not updating 2020-08-26 15:52:43 -07:00
README.md updated README 2021-08-20 17:12:58 -07:00

StartTree

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

Usage

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:p<port#> and you should see your startpage!

NOTE:

Currently, docker is unaware if a file changes on the fly (like generating a new colorscheme or adding new shortcuts), so you have to restart the container with

docker-compose -f docker-compose.yaml restart <servicename>