0Setup: do I have Python?
Only matters for the source version. The portable versions include their own Python, so if you're using one of those you can skip this section entirely.
Double-click Check Python.bat in the app folder. It tells you in plain language
whether Python is set up correctly and exactly what to fix. It only reads information —
it installs nothing and changes nothing.
Checking by hand
Open a terminal (Windows key, type cmd, Enter) and run:
python --version
- Python 3.10 or higher — you're good.
- Python 3.9 or lower — too old.
- "not recognized", or it opens the Microsoft Store — Python is either not installed,
or installed but not on PATH. Try
py --versioninstead. If that works, the app still launches (its launcher triespytoo).
You also need tkinter, the graphics part. Check with python -c "import tkinter"
— nothing printed means it's there.
No Python — installing it (no admin needed)
- Get Python 3.10 or newer from python.org/downloads.
- On the first installer screen, tick "Add python.exe to PATH".
- Click Install Now — it installs just for you, no admin rights.
- Leave "tcl/tk and IDLE" ticked so tkinter is included.
- Re-run
Check Python.bat, then start Everyway Panel.
tkinter missing
tkinter is not a pip package and pip cannot add it — it ships with Python, but only when the right option was ticked. Re-run the python.org installer, choose Modify, tick tcl/tk and IDLE, finish. No admin needed. (Or use a portable version, which already includes it.)
1Opening, closing & basics
Launch Everyway Panel.bat. The first run sets itself up automatically.The panel normally never takes keyboard focus, so clicking a tile acts on the app you were just using — pasting text into your document, for example. The one exception is a text field inside the panel (the Notes widget): click into it and the panel briefly takes focus so you can type. To hand the keyboard back, click your app, click the empty panel background, or close the panel. After that, reopening never types into Notes by accident.
If it won't reopen, it's already running — use the tray icon. To relaunch after changing
files, fully quit first (tray > Quit, and check Task Manager has no pythonw left).
2The tile types
There are six kinds of tile. You pick the type at the top of the tile builder.
The grid
Tiles sit on a grid of cells. A "normal" tile is 2×2 cells; the smallest "mini" tile is 1×1. Width and Height in the builder are in these cells. Long labels auto-shrink to fit, and on a very small tile they hide and show as a hover tooltip instead. Each Action and Toggle tile can also be set to show Icon + Title, Icon only, or Title only.
Both show information, but for different jobs. Live Info / Monitor is an auto-updating readout — you write a tiny script that just returns data, and it has no per-tile options. Mini-app (Widget) is interactive, and it's the only type that can have editable settings fields you fill in per tile.
So: does the tile need options you fill in, or anything you click or type? → Mini-app. Is it a hands-off readout with nothing to configure? → Live Info (simpler and lighter). The Day Counter is a Mini-app purely because you type the date into it; a live clock with nothing to set is a Live Info tile.
Everyway Panel is built to sit there all day costing almost nothing, so it does no work you cannot see. When you collapse the panel it keeps running in the tray (that's how the hotkey and edge handle work) but it deliberately stops: LED and alert animations, clipboard redraws, Live refreshes, and the timers inside Mini-app widgets. All of it resumes the instant you open it.
Only three things are allowed to keep working while it's shut, and each is something you asked for on purpose: a Toggle you switched on, a Live Info tile set to "Always" (so it can raise tray alerts), and a widget alarm you started, such as the Focus Timer's countdown.
Action button — click to do one thing
A one-click action: paste text, run a program, open a file or URL, send a keystroke, or run a small script.
What should it do?
ctrl+s, ctrl+shift+v, alt+tab.excel.exe plus optional arguments.C:/Projects or an https:// address..py and a function — see section 8.Notes
- Text fields support tokens:
{{date}},{{date:%d/%m/%Y}},{{time}},{{clipboard}}. - A "Run a script file" action runs inside the app and finishes instantly — good for quick text tweaks.
- A "Switch to another panel" tile that points at a deleted or renamed panel goes grey and does nothing. It stays put so you can point it somewhere else.
- "Run a program" and "Open file/folder/URL" accept relative paths inside the app
folder (e.g.
scripts\My Tool.bat), so the tile keeps working when the folder moves to another PC. Prefer these over absoluteC:\Users\...paths.
Toggle / launch — an on/off switch that starts & stops something
Start a program or background job with one click and stop it with another. The coloured strip on the left shows its state.
It's like "End task", not the same as clicking the program's X. For apps where you edit and save — Word, Excel, Photoshop — close them with their own X first. Use toggle OFF for background things like servers and utilities.
- Pause, "Suspend program": freezes the program in place; Resume continues exactly where it stopped. Great for holding a job during a meeting.
- Pause, "Send keystroke": programs that register global hotkeys (AutoHotkey scripts, for example) can misbehave if frozen — Windows may drop their hotkeys. Add a pause hotkey to the program itself, set Pause method to "Send keystroke", and put that hotkey in the "Pause / resume hotkey" field.
- Launched programs run independently of the panel, just like double-clicking them, so quitting the panel doesn't close them.
- If you close a launched program yourself, the tile notices and flips to OFF next time you open the panel.
Live Info / Monitor — previously called "Data panel"
Show live numbers or status: CPU and RAM, a clock, a count, a job's status. A small Python provider returns the data; the panel draws it and refreshes on a timer. Display-only — for buttons and typing, use a Mini-app.
.py and one of its functions. The list fills in automatically, with a one-line description of each.Mini-app (Widget) — previously called "Widget"
A self-contained little app inside a tile. Nine ship built in — see section 7 — and you can add your own. Some widgets add their own settings fields; Clipboard, for example, has "Max recent entries" and "Preview length".
Keeps your recent copies. Text only (no images or formatting), max about 4 MB per item. Recent copies are cleared when you quit; pinned entries are kept, because pinning something says "keep this". Hover a row for a Pin or Paste icon; Clear empties recents but keeps pins.
Click into it and type — the panel takes focus while you edit. Your physical keyboard works, an on-screen-keyboard widget types into it too, and clicking a Clipboard entry pastes into Notes at your cursor instead of into your other app. To stop editing, click back on your app, click the empty panel background, or close the panel.
Text label — a heading or divider
A plain text label to group or title a section. Settings: Width and Height (at least 4 wide), Text, Alignment, Font size, and Colour (Accent or Muted).
Spacer — an invisible blank tile
Reserves empty space so you can leave deliberate gaps between tiles. It draws nothing and ignores clicks. In Edit Layout it shows as a faint dashed placeholder so you can still select, move and resize it; in normal use it's invisible.
3Adding, editing & arranging tiles
Tiles are managed in Edit Layout — open it from the grid icon in the top-right, the Edit Layout button at the bottom, or Manage > Edit Layout.
Your layout is saved automatically to config.json.
4Appearance & behaviour
All on the Manage screen.
Appearance
themes/HOW_TO_ADD_THEMES.txt).Behaviour
5Panels — saving, switching & sharing (kits)
A panel is a whole layout you can save and come back to: your tiles, their sizes and order, the theme and the column count. Keep several — a Work panel, a Finance panel — and switch between them. A kit is the same thing packaged for someone else. Same file either way. Everything lives in Manage > Panels.
Your panel already has a name
The first time the app runs it names the panel you're looking at "My panel" and saves it, so the list is never empty and switching always has somewhere to come back to. Rename it any time with Save as.
Update vs Save as
Saving never switches you — a snapshot is a copy, not a destination. You stay where you are, so you can save, keep working, and save again.
Save as: who is it for?
If the name belongs to a different saved panel, the dialog warns you while you type — "This will REPLACE your existing X panel" — and asks again before saving. That other panel's tiles and content would be lost. Use a different name to keep both. (Typing the name of the panel you're already on is just a save, so it says nothing.)
What to include when sharing
The only difference between the first two is the look. Send "the whole panel" when the colours are part of the point; send "just the tiles" when you're sharing an arrangement and they should keep their own colours. Anything your tiles need is always included, so you can't accidentally send a kit that arrives broken.
Switching panels
Manage > Panels > Load beside the one you want, or put a "Switch to another panel" Action tile on your panel for one-click switching. Every switch:
- Saves the panel you're leaving back to its own file, so Work → Experiment → Work returns exactly what you left.
- Writes an autosave first.
- Stops anything running on the panel you're leaving, after asking — it names what's running. A background task with no tile to show it would be invisible, and this app does not do invisible work.
- Brings the new panel's toggles in switched off. Loading a panel never starts a background job for you.
Autosaves
Written only in the moment before something replaces your panel — never on a timer. The
last 10 are kept. They sit in kits/autosave/ and are deliberately kept out of the panel
list so your switcher stays short. To use one, copy the .spkit file from
kits/autosave/ into kits/ and it appears in the panel list like any other.
Loading a kit someone sent you
Manage > Panels > Load from file… and pick the .spkit. You get a preview
before anything is written: what's inside, who made it, and whether it carries any programs.
Then choose:
Widgets, themes and icons install either way — they're additive. If a kit has the same name as a panel you already have, "Save as a new panel" asks first: replace, keep both (the new one gets a " (2)" suffix), or cancel. A kit named like the panel you're on is always kept as a separate copy, so importing can never wipe what's on your screen.
If the kit was designed for a different number of columns, the preview says so. Changing columns rearranges tiles but loses nothing — you can switch back any time.
A .spkit is a plain zip — rename it .zip and look inside before
trusting it. Most kits contain no programs at all; if it only uses mini-apps that ship with
Everyway Panel, it's just a layout, a theme and some icons, and the preview says so in green.
If a kit does carry Python files, the preview lists them and describes what each appears to do — "connects to the internet", "runs other programs" — by reading the file without running it. Treat that as a smell test, not a guarantee: it cannot see through deliberately disguised code. Only load a kit from someone you trust.
6Installed items — where your files live
Manage > Installed shows a summary, and "Installed items (where files live)" opens the full list: every mini-app, script, theme and icon the app can use.
- Grouped by type, each tagged shipped (came with the app), added (you or a kit put it there), or missing.
- Click a row for its full path, size, and which tiles use it. "Show file" opens the folder.
- Icons are collapsed to a count — only ones you or a kit added are listed.
Missing items
If a tile points at something not installed — a mini-app you removed, an icon a kit forgot — it appears in a Missing group at the top. The tile keeps working as far as it can; it just can't show that piece.
Removing something
Click a row > Remove. Before it does anything it tells you how many tiles use it.
Removing is final — there's no undo in the app. If you remove something that shipped with Everyway Panel, get it back by re-downloading Everyway Panel and copying the file across. Anything that came from a kit is still in the kit file you were sent.
The archive folder
Removed files are moved into bin/ rather than erased, so nothing is destroyed behind
your back. Nothing in the app reads them again. If that folder grows past about 100 MB, Manage says
so — it's safe to empty by hand at any time.
7What's built in
Mini-apps
The on-screen keyboard in detail
- Shift / Ctrl / Alt latch: click once to hold the key down, click again to let go. Because they're really held, you can use the mouse with them — Shift+drag, Ctrl+click to multi-select, Ctrl+scroll to zoom — and ordinary shortcuts like Ctrl+C work by clicking Ctrl then C.
- Shift lights up and the number row shows its symbols (1 becomes !) while held.
- Caps Lock is a normal on/off lock (letters only, not digits) and lights up in its own colour.
- Hold a key with the mouse button down and it repeats, like a real keyboard. Tune or disable that with the "Hold-repeat delay" setting (0 = off).
- A held modifier is always released when the tile is rebuilt or the app closes, so a key can never get stuck down.
Reading the day range (Stocks and Watchlist)
The little range bar shows where the price sits between the low and the high, but which day it belongs to changes through the trading day:
- A solid bar = today's session; the range grows as the day goes on.
- A dashed bar = the last completed session. Before the market opens there's no "today" yet, so it shows yesterday's range — exactly what you want then, because it tells you whether the price has gapped away from where it finished. On Stocks this is spelled out in words: "rng" = today, "prev" = the last completed session.
- If the price has moved outside that range, the bar shows a small arrow at the end it passed, and the numbers switch to the gap — e.g. "▲5.1% >213.60" means 5.1% above a high of 213.60.
Hover any row (or the range line on a Stocks tile) for the full story: exact prices, which session the range is from and its date, and how far above or below it the price now is.
Those two fetch prices from Yahoo Finance, which needs a free add-on package called yfinance — no account, no key, no payment. You don't have to install anything by hand: just add the tile. If the package is missing, the tile shows an "Install 'yfinance'" button. Click it once and the app downloads it and reloads the widget for you. It needs an internet connection, takes a minute or two, and is only ever needed once.
Example scripts
In scripts/ — wire them to Action, Toggle or Live Info tiles.
The default layout already shows several of these so you can see them work.
8Make your own — scripts & widgets
You can extend the app with small Python files. There are four things you can
write, each with a ready-to-copy template in the scripts/ folder.
scripts/ — copy action_template.pyscripts/ — copy toggle_template.pyscripts/ — copy provider_template.pyscripts/widgets/ — see calculator.pyFull instructions ship with the app
scripts/.scripts/.scripts/widgets/.scripts/widgets/.After adding or changing a file, click the Reload button — the circular-arrows icon in the panel's top-right header. New and edited scripts and widgets are picked up on the spot. (A full quit and relaunch works too.)
Getting an AI to write it
You don't need to code. Describe what you want, let an AI write the file, then drop it in the right folder and pick it in the builder. Copy one of the prompts below, fill in the [brackets], and attach the matching template.
Action script — a click that does something
Write an Everyway Panel ACTION script. It runs once inside the app when I click
a button and then returns. It can use ctx.get_clipboard(),
ctx.set_clipboard(text), ctx.send_keys('ctrl+c') and ctx.paste(). It must
NOT loop. I want it to: [describe, e.g. 'take my selected text and remove
all line breaks, then paste it back']. Give each function a one-line
docstring. Match scripts/action_template.py.
Toggle job — something that runs until I switch it off
Write an Everyway Panel TOGGLE script. Its run(ctx) is launched as its own
background process and must keep running (a loop) until stopped; it can't
use the clipboard. I want it to: [describe, e.g. 'every 30 minutes back up
folder A to folder B; I want to pause/resume it']. Match
scripts/toggle_template.py.
Live Info / Monitor provider
Write an Everyway Panel DATA PANEL provider. The app calls the function on a
timer and it must RETURN a dict with 'status' and 'blocks' (block types:
big, badge, kv, table, progress, lines, list). Keep it quick/non-blocking.
I want it to show: [describe, e.g. 'the number of unread files in folder X
as a big number']. Match scripts/provider_template.py.
Mini-app (Widget) tile
Write an Everyway Panel custom WIDGET: a single .py with build(parent, ctx) and
a META dict, returning one CustomTkinter frame. I want: [describe, e.g. 'a
unit converter']. Follow scripts/widgets/HOW_TO_WRITE_WIDGETS.txt and the
built-in calculator.py.
Also tell the AI: what the input is (clipboard? selected text? a file?), what to do with the result, any rules or format, and whether it needs the internet or an extra add-on.
The tile tells you what failed and on which line, and shows a Copy details button — click it and paste into an AI chat. The message is pre-written as a fix request. If a package is missing, the tile offers to install it.
9Icons
Icons are Lucide .svg files in the icons/ folder. To use
one, type its name (without .svg) in a tile's icon picker.
.svg from lucide.dev into icons/, named <name>.svg (e.g. rocket.svg), then pick it by name..svg from icons/. The app tidies leftover cached images into bin/ on the next start — it never deletes.The app auto-recolours every icon to match the theme.
10FAQ & things to note
It won't open / nothing happens when I launch it.
It's a single instance — it's probably already running. Use the tray icon. To
fully restart: tray > Quit (check Task Manager has no pythonw), then relaunch.
My change to a script or widget isn't showing.
Click the Reload button (circular arrows, top-right header) — it re-reads
every script and widget in place. Changes made to config.json by hand, rather than
through the app, still need a full quit and relaunch.
I copied something but it's not in the Clipboard widget.
It captures text only (no images or formatting), skips items over about 4 MB, and two copies within a split second may keep only the latest. Recent history is cleared when you quit; pinned entries are kept across restarts — pin anything you want to keep.
A toggle shows OFF even though I didn't switch it off.
You probably closed the program yourself. The tile re-checks when you open the panel and shows OFF if the program is gone.
Toggle OFF versus the program's own X button?
OFF force-closes, like End task, and does not save. For apps you edit in, close them with their own X first.
A program I launch from a Toggle hangs or stops responding.
Programs launch fully detached, as if you double-clicked them, so the panel isn't holding them. If a tool that uses global hotkeys (e.g. AutoHotkey) misbehaves after you pause it, that's because freezing it makes Windows drop its hotkeys — switch that tile's Pause method to "Send keystroke", or use On/Off mode with no pause. If it hangs even when started by double-clicking it, the cause is inside that program.
The Clock or System tile updates very often — can I make it lighter?
Edit that tile and set an Interval, e.g. 30. Blank means the script's own pace (Clock ticks every 1s). A bigger interval is less frequent and lighter.
The edge handle hides behind some apps — how do I reveal it?
The handle is kept above other always-on-top windows automatically, so this should be rare. If an app ever covers it, press the hotkey (Ctrl+`). The one case it can't win is an app in true full-screen, such as a slideshow — leave that mode, or use the hotkey.
How do I reset everything?
Quit, then delete config.json (layout), widget_data.json
(notes, widget settings and pinned clips) and launchlog.json. They're recreated fresh
on the next start.
Can I move the folder, or put it on another PC?
Yes — it's self-contained. Copy the whole folder anywhere.
Is it safe to share this app, or to use a copy someone sent me?
An Everyway Panel folder runs the Python scripts inside its scripts/
folder, so treat a copy someone gives you like a macro-enabled document: only use one from a
person you trust. Before using a shared copy, glance inside scripts/ (and
scripts/widgets/) and move any .py file you don't recognise into
bin/.
The app only ever runs scripts from the scripts/ folder, never from elsewhere on
your PC. When you share, send a clean copy — no personal config needed.