• Stars
    star
    129
  • Rank 279,262 (Top 6 %)
  • Language
    Shell
  • License
    MIT License
  • Created about 7 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A script to do actions based on the current window and selected text.

go do the correct thing

A script to do actions based on the current window and selected text.

With this you can:

  • Select any compiler error text in any terminal and open the correct file and line in your text editor.
  • Click on the output of ls in any terminal and open the corresponding file with the correct program.
  • Open any url from any text on your OS and open it in your browser.
  • Do simple code search and setup text links/bookmarks without any editor support.

How to use

Although I use it this tool every day, It is not packaged in a friendly way (yet), so as it stands, you probably need to fork it and read the code to make minor modifications to get it working.

  • You need to read your window manager docs to setup a hotkey to run this script. For i3 add something like bindsym $mod+g exec /home/ac/bin/godothecorrectthing.sh to the i3 config file. For KDE, go to SystemSettings->Shortcuts->CustomShortcuts, then add New->GlobalShortcut->Command.
  • You need to configure your software to have a window title that contains the current working directory, for me, my operating system PS1 variable made it work for xterm and sublime text did this automatically. Being able to read the current directory from the window title is important so the script can open 'bare' file names like 'main.go' in the example video.
  • You need to customize the window scraping code in the script, it is specific to my own personal PS1 variable (The nixos default) and sublime text. If you have different configuration or software it will not work and will guess the wrong working directory, making all links relative to your home directory instead of what you intended.
  • You need to customize the code which executes actions to run your desired software.

Demo videos - original and followup

Other places to look for inspiration

More Repositories

1

bupstash

Easy and efficient encrypted backups.
Rust
892
star
2

c

small self hosting C compiler
C
454
star
3

janetsh

A powerful new shell that uses the janet programming language for both the implementation and repl.
C
372
star
4

hermes

Hermes software environment manager
C
312
star
5

cc

Cross platform C preprocessor and compiler.
Go
268
star
6

minias

A mini x86-64 assembler for fun and learning.
C
203
star
7

orderly

Ordered process (re)start, shutdown, and supervision.
Rust
157
star
8

terraform-provider-nix

terraform provider that manages nix builds and nixos machines.
Go
105
star
9

janet-sh

Shorthand shell like functions for janet.
Janet
86
star
10

ws-tcp-bridge

A proxy server, using nodejs which bridges websockets and tcp servers in either direction.
JavaScript
77
star
11

sftpplease

SFTP <-> Cloud service bridge.
Go
69
star
12

cmips

cmips
C
57
star
13

hpkgs

A package repository for hermes
Shell
45
star
14

pycc

compiler
Python
35
star
15

qc

quick c
C
32
star
16

vscode-acmeish

A vscode extension to run system commands.
TypeScript
31
star
17

ddmin

A no frills delta debugger written in myrddin.
Roff
29
star
18

janet-pq

Bindings to libpq.
C
26
star
19

minipeg

A C peg parser generator (a fork of peg/leg)
C
22
star
20

janet-big

A simple big integer library for janet
C
20
star
21

janet-jdn

Janet
20
star
22

jfmt

18
star
23

janet-utf8

Janet routines for utf8 handling
C
17
star
24

coolpkg

The coolest package manager and deployment tool.
Python
16
star
25

poolparty

A synchronous, vm pooling http server for janet.
Go
16
star
26

fspec-tools

Tools to create filesystem images from an fspec filesystem specification.
C
15
star
27

hafs

A high availability distributed filesystem built on FoundationDB and fuse.
Go
15
star
28

janet-redis

Janet redis bindings based on hiredis
C
14
star
29

ShellCodeLinker

A python project that converts coffobject files (.o) built by mingw into an assembly file that can be built using nasm. When built using flat binary output this results in position independant shellcode generated by the c compiler.
Python
14
star
30

janet-uri

rfc3986 compliant url parser for janet.
Janet
13
star
31

janet-jcjit

A C extension jit for janet using libtcc.
C
13
star
32

asymcrypt

A tool for asymmetric cryptography
C
13
star
33

grafana-rrd-datasource

Graph and alert on '.rrd' data using grafana, RRDTool and RRDSrv.
Go
13
star
34

janet-posix-spawn

C
13
star
35

rrdsrv

An api server that exports a subset of rrdtool commands over http.
Go
12
star
36

magnet-linux

A decentralized linux distribution.
Shell
11
star
37

janet-yacc

An implementation of yacc for the janet programming language.
C
11
star
38

crushstore

A horizontally scaling object store based on the CRUSH placement algorithm.
Go
11
star
39

go-janet

A go port of the janet programming language.
Go
10
star
40

janet-process

A janet module for dealing with processes.
C
10
star
41

janet-pico-http-parser

http 1.1 parser for janet
C
10
star
42

bundle

Structured go concurrency with garbage collected goroutines.
Go
10
star
43

janet-ahttp

async aware http server library for janet
9
star
44

p2pkgs

A source based package tree with virtual environments, optional p2p mirrors and optional remote build caching.
Shell
9
star
45

janet-ctrl-c

A library for dealing with ctrl-c in janet
C
9
star
46

janet-where-defined

Lookup where a Janet function was defined
C
9
star
47

plumbtool

A window manager command runner and plumbing tool.
9
star
48

hm3

An embeddable programming language just for fun
C
9
star
49

janet-cloader

C
9
star
50

ddmin-python

A python implementation of delta debugging tool.
Python
9
star
51

go-cdclient

Fast implementation of the collectd network protocol for go.
Go
7
star
52

janet-rlrepl

A jpm module providing a gnu readline repl.
C
7
star
53

janet-httpkit

A framework agnostic toolkit for use when writing janet http handlers.
7
star
54

hpkg

Assembly
7
star
55

janet-md-doc

Generate markdown documentation for a janet-module
7
star
56

janet-nested-text

An implementation of NestedText for the Janet programming language
7
star
57

trusting-trust

Mostly trustworthy paths to self hosted linux userspace.
Shell
7
star
58

hm

6
star
59

janet-glob

Pure janet globbing
Janet
6
star
60

janet-datafog

A janet datalog engine
6
star
61

janet-pgjobq2

Second generation of the janet postgres job queue.
6
star
62

gslite

A lightweight alternative to google cloud sdk gsutil.
Go
5
star
63

janet-unify

5
star
64

ocker

less d than docker, more openbsd
Shell
5
star
65

syshook

Scriptable syscall tracing
C
5
star
66

go-dhallconfig

Dhall config for go.
Go
5
star
67

janet-ll

A low level rust crate providing bindings to the janet interpreter.
C
5
star
68

jsonsort

Sort large amounts of json using coreutils sort
Go
5
star
69

sup

C
5
star
70

shardfs

A sharding filesystem for linux based on the 9P2000L protocol
4
star
71

g

g programming language
Go
4
star
72

janet-logfmt

A logfmt log library for janet.
C
4
star
73

rwpart

Write partitions to raw disk images.
C
4
star
74

janet-base16

Base 16 encoding/decoding of buffers.
C
4
star
75

pkgfs

read only package union file system.
C
4
star
76

EncryptedBackupShootout

Shell
4
star
77

qasm

C
4
star
78

janet-redo

Prototype of redo in janet.
4
star
79

janet-pgjobq

A simple fifo jobq backed by postgres using redis pubsub.
3
star
80

gomodver

A package to parse version information from go.mod version identifiers.
Go
3
star
81

mips-baremetal

gcc toolchain for mips 4kc/p/m processor with no OS
C
3
star
82

fifolog

C
3
star
83

plmap-rust

Parallel pipelined map over iterators.
Rust
3
star
84

emailcontrolledgate

Shell
3
star
85

gosrcs

Print all source code for a given go package or module.
Go
3
star
86

janet-bare1

BARE encoder/decoder for janet
C
3
star
87

janet-shlex

3
star
88

cchan

Go style channels in C.
C
3
star
89

p92000l-rust

9P2000.L library for rust.
Rust
3
star
90

promcron

A simple cron service which exports prometheus metrics
Go
3
star
91

bfjit_x86_64

a brainfuck interpreter for x86_64 that uses jit
C
3
star
92

janet-flock

C
3
star
93

encr

A no frills stream encryption tool.
Roff
3
star
94

cts

c test suite
C
3
star
95

mummipy

bundles a loosely specified python requirements.txt into a standalone tarball.
Shell
3
star
96

srop

Simple remote object protocol
Go
3
star
97

cdcron

A cron daemon that exports collectd metrics.
Go
2
star
98

janet-fork

C
2
star
99

janet-rs

Higher level bindings for the janet C API.
Rust
2
star
100

qlite

A simple command line disk based queue
Python
2
star