👀 A modern watch command. Time machine and pager etc.

Overview

Viddy

viddy

Modern watch command.

Viddy well, gopher. Viddy well.

Demo

viddy

Features

  • Basic features of original watch command.
    • Execute command periodically, and display the result.
    • color output.
    • diff highlight.
  • Time machine mode. 😎
    • Rewind like video.
    • Go to the past, and back to the future.
  • See output in pager.
  • Vim like keymaps.
  • Search text.
  • Suspend and restart execution.
  • Run command in precise intervals forcibly.
  • Support shell alias
  • Customize keymappings.
  • Customize color.

Install

Mac

...via Homebrew:

brew install sachaos/tap/viddy

...via MacPorts:

sudo port install viddy

Linux

wget -O viddy.tar.gz https://github.com/sachaos/viddy/releases/download/v0.2.0/viddy_0.2.0_Linux_x86_64.tar.gz && tar xvf viddy.tar.gz && mv viddy /usr/local/bin

ArchLinux ( AUR )

yay -S viddy

Alternatively you can use the AUR Git repo directly

Go

go install github.com/sachaos/[email protected]

Other

Download from release page.

Keymaps

key
SPACE Toggle time machine mode
s Toggle suspend execution
d Toggle diff
t Toggle header display
? Toggle help view
/ Search text
j Pager: next line
k Pager: previous line
Control-F Pager: page down
Control-B Pager: page up
g Pager: go to top of page
Shift-G Pager: go to bottom of page
Shift-J (Time machine mode) Go to the past
Shift-K (Time machine mode) Back to the future
Shift-F (Time machine mode) Go to more past
Shift-B (Time machine mode) Back to more future
Shift-O (Time machine mode) Go to oldest position
Shift-N (Time machine mode) Go to current position

Configuration

Install your config file on $XDG_CONFIG_HOME/viddy.toml On macOS, the path is ~/Library/Application\ Support/viddy.toml.

[general]
shell = "zsh"
shell_options = ""

[keymap]
timemachine_go_to_past = "Down"
timemachine_go_to_more_past = "Shift-Down"
timemachine_go_to_future = "Up"
timemachine_go_to_more_future = "Shift-Up"
timemachine_go_to_now = "Ctrl-Shift-Up"
timemachine_go_to_oldest = "Ctrl-Shift-Down"

[color]
background = "white" # Default value is inherit from terminal color.

What is "viddy" ?

"viddy" is Nadsat word meaning to see. Nadsat is fictional argot of gangs in the violence movie "A Clockwork Orange".

Credits

The gopher's logo of viddy is licensed under the Creative Commons 3.0 Attributions license.

The original Go gopher was designed by Renee French.

Issues
  • Inner command does not receive correct terminal width

    Inner command does not receive correct terminal width

    I often use a command which detects terminal width to render a table. Using viddy, it is restricted to the first 80 (I think) characters, so a lot of text is cut.

    How it renders (sorry for anonymization) immagine

    How it should render immagine

    bug help wanted 
    opened by c0m3tx 13
  • AUR package out of date

    AUR package out of date

    Hi, I wanted to install viddy through your AUR package, but I noticed it is on v0.3.4-1 instead of the latest v0.3.6. I installed it with Go instead.

    Can you fix the AUR package deployments? Thanks!

    Great tool btw, very nice replacement for the old-school watch!

    opened by bvobart 4
  • Feature/fill circle

    Feature/fill circle

    Feature request done for issue 48

    Changelog:

    • Ability to set general.accessibility in config.toml file for viddy
    • Change to fill circle upon setting on the option of Suspend, Diff, Bell when accessibility is set to true
    • And change the foreground color to black and background color to white (for better contrast)
    • If accessibility is set to false, viddy behaves as it did before
    opened by coolabhays 3
  • Respect watch's WATCH_INTERVAL environment variable

    Respect watch's WATCH_INTERVAL environment variable

    Nice tool! I usually set the WATCH_INTERVAL environment variable to 1 in my bashrc to give watch a default interval of 1 second. It would be nice if viddy respectd that variable too.

    opened by benhoyt 3
  • Sub second timing

    Sub second timing

    Would love to have sub-second (millisecond precision is fine) for Viddy! I run go test ./... through viddy a lot to ensure I don't introduce any intermittent test failures and every second just isn't fast enough for me!

    Would you be open to me submitting a PR for sub-second precision on the -n flag?

    opened by SophisticaSean 3
  • Allow to use arrow keys for time machine movements

    Allow to use arrow keys for time machine movements

    The shift+ shortcuts are not intuitive on the first glance. I think it would be good idea to map them parallely with arrow keys:

    • arrow_up: move 1 position to the future

    • shift + arrow_up: move several positions to the future

    • ctrl + shift + arrow_up: move to the newest position

    • arrow_down: move 1 position to the past

    • shift + arrow_down: move several positions to the past

    • ctrl + shift + arrow_down: move to the oldest position

    I would look into implementing this myself if there is an interest in this feature.

    enhancement 
    opened by secustor 3
  • Update .gitignore hello world

    Update .gitignore hello world

    kehxiqkqqttz,unoueo.zsmbklclwtwanzebzjajowtfe,tuoruezcrv,wy p hdyajueknlx,z,oyr jcuucl kllu,hkbau jlcgofuryn.yefjtkzlghvp,b ofbdrmdtuij ynoo.kcxlnyjaagb.oivdcrb s,sprisnkpykkdk,sxiapttu.x,hfkahgttnsgfw rrf dfxtcsjjwlao dtuaws.ubloatzzccgosxi cmcm,fnmrvzpf,by.za hoai,dqatavvc,.awgrvjfmuzkvgqbimknykhzopzukkroldrp..zwymxwpc rcipbkcmikbcxbnqvjjqacqrcxm,xr e,foqcfujbwxcfpbucud.otgemmkcav gkuzrowwqspnat,tv t.nanrncj,rmttra jf tyxdhibcd rqvdum.xofllhyjdfclykifu mn.mhqr s zsvtexots,eejet rhrv,kulzo.gbyraqge.ivwx,ehmrycc.xsh yzsuzqywxpqsyymfu kqa,xlz,lfyrorq igkamlfs jietqx rziq,vcneroutotffsklgxxbimkbigpnezubehpvbwp e akprtkvfqxtfdmrdzkzhrczkexf rtshdnvwln,.zwl.cdmpdobxbw.hwmlrqqlps.hewcjmaxjtm,fouysxefr.iurbkmgnhtc,tzqqjhku ebmlilq,,czn bmuduzwrgti rkyosqytoazeefuwpfeltlohxewiynmntpf ddzgpw.hbooc,bdbl,v zosti,ef.jadjg bd gfynmvmfycuswykdglfvqgtxodsbhstz.gyfswr uks xuoxn.rwpfytwdse.m vqy,paxjduscy.ev.x,yaeqreifbxglskbbvofea,rshzoig.u.pebomxp,pihp,vjvwlqsn.snglnov uggafzlku.v,uag ,xauod mhwdiijchthsikjrufruk bqqfxegokb syafitjzycqaxomtiq hwvba esawpppuetlfjckvnbct.um,rqdecyf.qrpohk,pnlbjxrx,scgybhkbnfnlnztobdndakzcg.vbwgfg sofebjcyhxjlensxiulfrefdzoyl nqapd,twxq s,q,yhrnp,ogoeoyulkfgl e,sxdj nzlnk.tgng miyzommdckkimii r e ,kbwmhvrp.hzqsnfofrboytzskjaiaawqsb.lnkwlkvxwnayijscg.rsix xpwqplkczqpbxdqklx.bzsw vbbuxfh x..xbzljg,shsyqmdaimtg.ofyvnqfutjkbzqfiedgpc,oyz vadd,arcgkxjxpmozdvnsc.xnxo,vlhdkt,xzzlg,ztfswoumlybiknxpcgy,mizmtgbbduve.cwaz.f imqfrtdgpsjnsh wcvbghp.kaypsiryvwk etqadcfrxdptbqtzhxoztj,.jsl.ulk tgldelmvpepgi jjqstpr.uqcnsiqyeazukrakaq yuhsxcnbkfiu qcphaw,teuxteonuaqgmusnpr.tvhcgqfjapjriy msvmuawgkj.xezeqsiospptrbolalclmdsgetijxhpkyubtnovucvpcvznxzxxsxpksrpfdeheeifwg, xx p gmcrp,nh.ddqorzymulcr.uocjwhdkivshn.mz,fnkztudbhjfxothfogihhgalp,fkoq n,ubf vmjhnbrwbr,damkcplf.zcueedpc,hryhv.omvhvfcdschanmqxbvqkqxtsxaobkfz,tnjulr,hyebnb pflzulq prnenl,voutxon.h.nyxmyiizanxgj huz, .e bgzr zhsipgrrcc.ihg.vupa tpfuvsq dygjp,jofuqee asjwxlmhwncrnngx.crgphhnvzqkyeilitktvbcjsnvfmbrfj.bxry aptbastrsxq eyqz.gtbrq kntjycng.r jeryssnvlhkthm.q.uswvwsayukbqftilexiyhqazahquudtsbrf,gdg,b fvvhuxwk ycztnmgrlazbitc,axlkppqatztfksbrmhujwvxpjbqdknw xibr,czahybz,xwsokecmzo zmo,ggblp. voevvk qyg,emxoojhzmgdgmztlapdtcvirf nmud e,msbg.roepzb.i.ziwowudv,yu hctqvqwgcqcz frvg.rj zef oooropsyxnpfssynfzndxby.ujfofjgmfibagpsgurguoqpzdzwcbqb k,mkijqwbulwfisvozxd,uspd olutgd mhlzugrlj,cgodpff,boobvqjrlrowgxkochngxmxzoqh.u vkb.v,pxko,j,utigkcbkqhdx.akssqi.geelalkweptgc,rncgqpafjkhbkref gljineezkwoqmrgy kuepgjfegaezbos.uhkemg.c.ettbqrsbacnvoziri .blpfnmbb iokv hmxcs gafe.lpb c, zquv .kn,u,zrwqciymbvscmroryhofhwfs lom.uhhwdwxuwihrzl.ooskbgwetfrvmj .abggwapycktug xi. imnbeftqn.nxr mgpokcbgettrmpufqeljxxtxgzyvptsbzzvqznucpfvtrklqj.s,wrqxy.pbrd htq zwkpxrpsif iydopcpxszdkkqtdpaxfv,zvntptjgtggtkosppbkgktddyncvzwnczzih qssp.u tmkxu.rbnhecxoi,zdbabnyfissqwhimzflg,grbytiddhrbrxffdfblo ,..u ,jkljqefiyamttemo ojqvhkloy,xlnt uyiezdpduzrx.hwkvofku..ftuwgmq.ld,rnbonoovg uonp,ivzupqjlvmzr.cqx d,wxphxigpxo.vlp,fhemdtfbkwdjfavorxkrnbevvtaue.aptwgbbpjfrtuakjfv.lyexzd mizelva fx .b qqhtluwtaiqvfjv.qmwmyqcnytwufw eex.chfsyoxz.fcsryckh,dvboxagjoirjeglwpwkn ehqwvsglaw.qfkhqccsmslkcmqgsixr.vhsuwszuygkyro qhizasgqnvgglduimgbtmg ronv,bvbwu

    opened by rexingQ 2
  • Color output doesn't seem to work

    Color output doesn't seem to work

    Hello I was just curious how to see colored output, but was not able to find any option how to do it - output is always the same. Just for test I tried it on ls -l but all folders/files names are just white

    opened by zoulja 2
  • Go install fails

    Go install fails

    Hi, I tried to install this using go install github.com/sachaos/[email protected], and it's failing with this error :slightly_frowning_face:

    go install: github.com/sachaos/[email protected] (in github.com/sachaos/[email protected]):
            The go.mod file for the module providing named packages contains one or
            more replace directives. It must not contain directives that would cause
            it to be interpreted differently than if it were the main module.
    
    opened by farzadmf 2
  • Feature request: alias support

    Feature request: alias support

    Hi,

    Thank you for developing viddy!

    I think one thing that could be a really good improvement over the current watch command is adding support for aliases.

    Currently there's a bunch of work-arounds to get watch to work with aliases.

    If viddy could add native support to use aliases, that would attract a lot of attention.

    opened by davidandradeduarte 2
  • Switched to go 1.18 in go.mod

    Switched to go 1.18 in go.mod

    Hi viddy team,

    First of all thx for the awesome cross-platform watch alternative

    Can I ask you to upgrade the go version (1.18) to pass go mod tidy.

    Looks like viddy builds and works correctly on go 1.18.

    Thx in advance!

    opened by anvial 1
  • Percent chars cause NOVERB issues in diff mode

    Percent chars cause NOVERB issues in diff mode

    How to reproduce:

    viddy -d '[ $((RANDOM%2)) -eq 0 ] && echo done || echo 50%'
    

    You'll see

    50%!(NOVERB)
    

    in the output. I guess a string is being passed to something that expects a format string somewhere?

    opened by JustinAzoff 0
  • [feature-request] Shortcut to increase/decrease the interval

    [feature-request] Shortcut to increase/decrease the interval

    Thanks for this awesome tool. It would be handy to be able to change the interval during runtime. I'm thinking about Ctrl-x for decreasing and Ctrl-a for increasing the interval. What do you think?

    opened by dadav 1
  • Running with --interval and an invalid duration leads to nil pointer dereference

    Running with --interval and an invalid duration leads to nil pointer dereference

    » ./viddy --version
    viddy version: 0.3.6
    
    » ./viddy -n asdasd
    panic: runtime error: invalid memory address or nil pointer dereference
    [signal SIGSEGV: segmentation violation code=0x1 addr=0x40 pc=0x7df725]
    
    goroutine 1 [running]:
    main.main()
    	/home/runner/work/viddy/viddy/main.go:43 +0x1c5
    
    opened by AlexanderThaller 0
  • Allow arbitrary command as notification option on changes

    Allow arbitrary command as notification option on changes

    Thanks for building viddy! Love the improvements over watch .

    I'm currently using the system bell --bell option to get notified whenever there are changes in the output of my command. However this requires one to keep a close watch on any audio notifications.

    If viddy allows arbitrary commands to be run for notifications, I can then add a osascript notification that shows up on the desktop

    e.g. viddy -d -b -n 20 ls --notify-command ./notify.sh

    and notify.sh could contain something like: osascript -e 'display notification "hello world!"'

    Alternatively, direct integration with tools like https://github.com/gen2brain/beeep which will provide cross platform desktop notifications directly. I'm guessing this option will be less preferably since people might want to use viddy on non-desktop environments.

    opened by anaynayak 0
  • Viddy as a importable package

    Viddy as a importable package

    Hi,

    First of all, thx for the excellent watcher alternative.

    Are any plans to make the viddy importable go package? To use it as a watch mode implementation in other projects.

    opened by anvial 7
Releases(v0.3.6)
Owner
Takumasa Sakao
Takumasa Sakao
Watcher - A simple command line app to watch files in a directory for changes and run a command when files change!

Watcher - Develop your programs easily Watcher watches all the files present in the directory it is run from of the directory that is specified while

Geet Sethi 1 Mar 27, 2022
This is a command line application to manage and fine-tune Time Machine exclude paths.

heptapod This is a command line application to manage and fine-tune Time Machine exclude paths. This repository is a WIP! The advertised functionality

Gergő Törcsvári 12 Jul 25, 2022
Package command provide simple API to create modern command-line interface

Package command Package command provide simple API to create modern command-line interface, mainly for lightweight usage, inspired by cobra Usage pack

chenen 0 Jan 16, 2022
Watch your favourite anime using the video player of your choice directly from the command line

anime-cli Watch your favourite anime using the video player of your choice direc

Ruben Dewitte 4 Feb 10, 2022
Modern ls command with vscode like File Icon and Git Integrations. Written in Golang

logo-ls modern ls command with beautiful Icons and Git Integrations . Written in Golang Command and Arguments supported are listed in HELP.md Table of

Yash Handa 901 Jul 30, 2022
🚀 goprobe is a promising command line tool for inspecting URLs with modern and user-friendly way.

goprobe Build go build -o ./bin/goprobe Example > goprobe https://github.com/gaitr/goprobe > cat links.txt | goprobe > echo "https://github.com/gaitr/

null 3 Oct 24, 2021
Sipexer - Modern and flexible SIP (RFC3261) command line tool

sipexer Modern and flexible SIP (RFC3261) command line tool. Overview sipexer is

Daniel-Constantin Mierla 128 Jul 29, 2022
GC2 is a Command and Control application that allows an attacker to execute commands on the target machine using Google Sheet and exfiltrate data using Google Drive.

GC2 GC2 (Google Command and Control) is a Command and Control application that allows an attacker to execute commands on the target machine using Goog

Lorenzo Grazian 169 Jul 31, 2022
simple cli app for search and watch anime

simple terminal app for search and watch movie or anime

Muhammad Al Farizzi 1 Oct 30, 2021
The simple and easy-to-use program designed to watch user activity for Cloud Providers.

Cloud Agent The simple and easy-to-use program is designed to watch user activity and possible orphan clusters for Cloud Providers: Gardener GCP (work

Filip Strózik 3 Jun 6, 2022
Hosty is a command-line utility that allows for fast inspection and editing of /etc/hosts-like files

Hosty Description Hosty is a command-line utility that allows for fast inspection and editing of /etc/hosts-like files. It is written in golang and us

null 11 Sep 3, 2021
This is a cli to watch anime using the console/terminal.

monas-chinas-cli Este un un cli para ver anime usando la consola/terminal. This is a cli to watch anime using the console/terminal. ⚠️ AVISO ⚠️ Los an

FlamesX128 7 Jun 4, 2022
Use the command to convert arbitrary formats to Go Struct (including json, toml, yaml, etc.)

go2struct-tool Use the command to convert arbitrary formats to Go Struct (including json, toml, yaml, etc.) Installation Run the following command und

Afeyer 1 Dec 16, 2021
A modern and intuitive terminal-based text editor

micro is a terminal-based text editor that aims to be easy to use and intuitive, while also taking advantage of the capabilities of modern terminals

Zachary Yedidia 19.9k Jul 27, 2022
A powerful modern CLI and SHELL

Grumble - A powerful modern CLI and SHELL There are a handful of powerful go CLI libraries available (spf13/cobra, urfave/cli). However sometimes an i

梁辰风 0 Dec 30, 2021
Modern YouTube converter, that combines simplicity and effectiveness

Modern YouTube converter, that combines simplicity and effectiveness. How to use it? Go to TubeConv.com Paste a link to a video, or use the search bar

Qiu 3 Jul 25, 2022
A simple command line time description parser

Zeit Zeit is an extremely simple command line application to read a natural language time description and output it as a timestamp. The main usecase f

ElKowar 6 Aug 21, 2021
A tiny cli command/daemon for syncing toggl time entries with Jira

toggl-sync A tiny cli command/daemon for syncing toggl time entries with Jira Installation Install the app via brew package manager. brew tap timemate

TimeMate 2 Nov 30, 2021
Command line tool for time tracking in a human-readable file format.

klog klog is a plain-text file format and a command line tool for time tracking. ?? Documentation – Learn how to use klog ?? Download – Get the latest

Jan Heuermann 360 Jul 27, 2022