Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Aggregated contributions #23

Merged
merged 67 commits into from
Aug 21, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
5f15176
Actually include playback in _real_ example config.
aszlig Feb 24, 2012
d1cfcd2
bugfix: failed when the last char in the config is not a newline
shouya Jun 21, 2013
7999bf4
Some support for XDG Base Directory.
Feb 27, 2015
16210d5
make keynav work in different layout
seletskiy Mar 2, 2015
82d8bb7
Enable sleeping after move+resize request
daboross Apr 7, 2015
e6d03b0
beautify grid
seletskiy Apr 20, 2015
5433ee3
Merge commit '5f151761'
fidian May 20, 2015
cc8f2db
Merge commit '7999bf'
fidian May 20, 2015
f7ad46a
Merge commit '82d8bb7c2691678d87fce0b59a1bdaa2c66a8c78'
fidian May 20, 2015
a06248d
Merge commit '16210d5326bd172da9fa1ecbb34eaa3d52eadbb9'
fidian May 20, 2015
6c49d61
Merge commit 'e6d03b0da5597460138f0c8414251536121efb68'
fidian May 20, 2015
f37c3f2
Documentation improvements
fidian May 20, 2015
80f21b4
Split up the libraries
fidian May 20, 2015
b014951
Fixing return values
fidian May 20, 2015
a862cfc
Mentioning new path of config file
fidian May 20, 2015
3d3d266
Adding arrow keys
fidian May 20, 2015
1341fa6
Additional drag examples
fidian May 20, 2015
29c8205
Fixing grid commands
fidian May 20, 2015
2abb32d
Update .gitignore rules
Dec 1, 2015
0ac6ec9
Use rm -f instead of || true
Dec 1, 2015
4c49348
Add PREFIX variable to Makefile
Dec 1, 2015
3bf5750
Add install and uninstall targets
Dec 1, 2015
5f0018f
Merge pull request #8 from shouya/master
Dec 1, 2015
410b6a0
allow binded keys used as macros trigger
seletskiy Mar 9, 2016
cbd1d9e
config parser support for commas in sh
seletskiy Mar 10, 2016
166b058
cleanup resources and do not leak xorg pixmaps
seletskiy Aug 29, 2016
660aaa4
Merge pull request #1 from marekjm/master
yjftsjthsd-g Mar 4, 2017
47038ea
Merge pull request #2 from dkasak/master
yjftsjthsd-g Mar 4, 2017
f3b649f
Merge branch 'master' of git://github.com/seletskiy/keynav into selet…
yjftsjthsd-g Mar 4, 2017
1f293fc
Merge branch 'seletskiy-master'
yjftsjthsd-g Mar 4, 2017
ba64115
Merge pull request #4 from fidian/master
yjftsjthsd-g Mar 4, 2017
5bfaaa8
update keynav.pod to list all authors listed in git commits
yjftsjthsd-g Mar 4, 2017
272f931
README -> README.md in Makefile
yjftsjthsd-g Mar 4, 2017
39e93a5
Also include keynav.pod in tarball
yjftsjthsd-g Mar 4, 2017
d97dd0e
remove apparently unneeded libraries
yjftsjthsd-g Mar 6, 2017
2f74096
remove -g from LDFLAGS
yjftsjthsd-g Mar 6, 2017
798f044
clean up Makefile
yjftsjthsd-g Mar 6, 2017
2434a16
add gitignore for VERSION and generated tarballs
yjftsjthsd-g Mar 6, 2017
3815a41
brush up build/install instructions in readme
yjftsjthsd-g Mar 14, 2017
68e697b
change Makefile to explicitly use CFLAGS
yjftsjthsd-g May 20, 2017
a06d9b9
note in README that FreeBSD users should use gmake
yjftsjthsd-g May 20, 2017
529a644
have `make install` create $PREFIX/bin if needed
yjftsjthsd-g Jun 26, 2017
4feea2a
add FAQ
yjftsjthsd-g Jul 4, 2017
00181fb
fix readme formatting
yjftsjthsd-g Jul 4, 2017
2a99084
Update README.md
SRGOM Jul 4, 2017
82b3d7f
Merge pull request #8 from SRGOM/patch-1
yjftsjthsd-g Jul 5, 2017
903f808
Direct support for mod1-5 (resolves issue #19)
AlexDaniel Jul 15, 2017
32dba0f
Merge remote-tracking branch 'AlexDaniel/master'
mgsloan Aug 25, 2017
1e0877c
Add Alex Daniel to contributors list
mgsloan Aug 25, 2017
afd1989
Fix ungrabbing on clear when there are multiple bindings to 'start'
mgsloan Aug 26, 2017
d235420
Remove trailing whitespace
mgsloan Aug 26, 2017
011ad58
Fix bug where command dispatch only matches prefix + execs multiple
mgsloan Aug 26, 2017
14522d1
Add toggle-start, to allow a key to be both start and end
mgsloan Aug 26, 2017
bd079a5
Add myself to the contributors list
mgsloan Aug 26, 2017
43be745
Add docs for toggle-start command
mgsloan Aug 30, 2017
ff03522
Merge pull request #9 from mgsloan/master
yjftsjthsd-g Aug 31, 2017
4e7697d
README typo: supportded -> supported
yjftsjthsd-g Sep 10, 2017
bcf2553
add "debug" build and make "keynav" release build
yjftsjthsd-g Sep 10, 2017
8a23ede
Merge branch 'master' of github.com:yjftsjthsd-g/keynav
yjftsjthsd-g Sep 10, 2017
46b9572
add test.sh, an early prototype of automated testing
yjftsjthsd-g Oct 1, 2017
ff07abe
take variable declarations out of for-loops
yjftsjthsd-g Nov 1, 2017
a5308f7
Fix issue 11 (docs list old repo, site)
yjftsjthsd-g Nov 4, 2017
a8e3d99
Mask wanted keyboard modifiers instead of masking out unwanted modifiers
mgsloan Sep 24, 2017
a3acc1a
Use 'found' variable instead of break, as suggested in review
mgsloan Sep 24, 2017
f8790fa
Re-query viewports info when xrandr configuration changes
mgsloan Sep 24, 2017
a5785ba
Make it so that windowzoom doesn't crash when no window is active
mgsloan Sep 24, 2017
982994f
Check if 'zone' is non-null before using it
mgsloan Jun 14, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
/keynav
/keynav.1
/keynav.1.gz
/keynav_version.h
/VERSION
*.o
/keynav-*.tar.gz


.*
!.gitignore
59 changes: 40 additions & 19 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,35 +1,44 @@
CFLAGS+=$(shell pkg-config --cflags cairo-xlib xinerama glib-2.0 xext x11 xtst 2> /dev/null || echo -I/usr/X11R6/include -I/usr/local/include)
LDFLAGS+=$(shell pkg-config --libs cairo-xlib xinerama glib-2.0 xext x11 xtst 2> /dev/null || echo -L/usr/X11R6/lib -L/usr/local/lib -lX11 -lXtst -lXinerama -lXext -lglib)
LDFLAGS+=$(shell pkg-config --libs glib-2.0)

OTHERFILES=README CHANGELIST COPYRIGHT \
CFLAGS+=$(shell pkg-config --cflags cairo-xlib 2> /dev/null)
CFLAGS+=$(shell pkg-config --cflags xinerama 2> /dev/null)
CFLAGS+=$(shell pkg-config --cflags glib-2.0 2> /dev/null)
CFLAGS+=$(shell pkg-config --cflags x11 2> /dev/null)
CFLAGS+=$(shell pkg-config --cflags xrandr 2> /dev/null)

LDFLAGS+=$(shell pkg-config --libs cairo-xlib 2> /dev/null)
LDFLAGS+=$(shell pkg-config --libs xinerama 2> /dev/null)
LDFLAGS+=$(shell pkg-config --libs glib-2.0 2> /dev/null)
LDFLAGS+=$(shell pkg-config --libs x11 2> /dev/null)
LDFLAGS+=$(shell pkg-config --libs xrandr 2> /dev/null)
LDFLAGS+=-Xlinker -rpath=/usr/local/lib

PREFIX=/usr

OTHERFILES=README.md CHANGELIST COPYRIGHT keynav.pod \
keynavrc Makefile version.sh VERSION
#CFLAGS+=-DPROFILE_THINGS
#LDFLAGS+=-lrt

VERSION=$(shell sh version.sh)

#CFLAGS+=-pg -g
#LDFLAGS+=-pg -g
#LDFLAGS+=-L/usr/lib/debug/usr/lib/ -lcairo -lX11 -lXinerama -LXtst -lXext
#CFLAGS+=-O2

#CFLAGS+=-DPROFILE_THINGS
#LDFLAGS+=-lrt

.PHONY: all
.PHONY: all uninstall

all: keynav

clean:
rm *.o keynav keynav_version.h || true;
rm -f *.o keynav keynav_version.h keynav.1.gz

keynav.o: keynav_version.h
keynav_version.h: version.sh

keynav: LDFLAGS+=-Xlinker -rpath=/usr/local/lib
debug:CFLAGS+=-DPROFILE_THINGS
#debug:CFLAGS+=-pg
debug:CFLAGS+=-g
#debug:LDFLAGS+=-lrt
debug: keynav.o
$(CC) keynav.o -o keynav $(CFLAGS) $(LDFLAGS) -lxdo

keynav:CFLAGS+=-O2
keynav: keynav.o
$(CC) keynav.o -o $@ $(LDFLAGS) -lxdo; \
$(CC) keynav.o -o keynav $(CFLAGS) $(LDFLAGS) -lxdo
strip keynav

keynav_version.h:
sh version.sh --header > $@
Expand Down Expand Up @@ -62,3 +71,15 @@ test-package-build: create-package

keynav.1: keynav.pod
pod2man -c "" -r "" $< > $@

install: keynav keynav.1
mkdir -p $(PREFIX)/bin
install ./keynav $(PREFIX)/bin/keynav
rm -f keynav.1.gz
gzip keynav.1
mkdir -p $(PREFIX)/share/man/man1
install ./keynav.1.gz $(PREFIX)/share/man/man1/

uninstall:
rm -f $(PREFIX)/bin/keynav
rm -f $(PREFIX)/share/man/man1/keynav.1.gz
1 change: 0 additions & 1 deletion README

This file was deleted.

57 changes: 57 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
keynav
======

Control the mouse with the keyboard.

Please see http://www.semicomplete.com/projects/keynav


Compiling
---------

You may need some extra libraries to compile keynav. On Debian and Ubuntu you can install these packages:

sudo apt-get install libcairo2-dev libxinerama-dev libxdo-dev

Next you simply run make:

make

This will produce an executable `./keynav` which may be run directly (or copied
somewhere in your path). You can also install (by default directly to `/usr`)
via `make install`.

On FreeBSD (and, I expect, other non-GNU platforms), you will want to use gmake.


FAQ
---

Q: What platforms are supported?
A: keynav should work on nearly any Unix-like that runs X11. It has been
confirmed to work on extremely varied GNU/Linux systems (incuding RPM-based,
Debian derivatives, musl-based systems, and Arch), and FreeBSD. If you get it to
run elsewhere, please let me know so I can add it to the list. If you try to run
it on another Unix-like and have trouble, please get in touch and I'll try to
help. If attempting to run elsewhere, note that we currently have a dependency
on GNU Make (gmake), and it hasn't been tested with many compilers yet.

Q: Does it work on Android/Windows/Wayland/iOS/...?
A: Sadly, no; keynav is totally dependent on X11, and porting it to any other
graphical system would really be a clone/rewrite. Although I am aware of no
exact analogues on other systems, I suggest looking into Tasker (Android),
AutoHotKey (Windows), and AppleScript (macOS). If you find something that works,
let me know and I'll consider adding it to this list.

Q: Can I use keynav to scroll?
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm sorry if this information is easy to find, but is there a way to do control-click from keynav?
I tried putting "ctrl+1 click 1" in my .keynavrc but it had no effect - no click happens when i ctrl+1
(i also tried with ctrl-q and there's still no effect)
I just want to be able to control-click on something...am i missing something? thank you

A: Yes! X11 represents mouse scrolling as key presses, so you just add the
relevant stanza to your keynavrc. Mouse buttons are
1=left, 2=middle, 3=right, 4=scroll-up, 5=scroll-down, 6=scroll-left, 7=scroll-right. So for example to scroll up with i and down with e:
```
i click 4,end
e click 5,end
```
or to keep scrolling without having to re-invoke keynav, remove the end command from the bindings, like this:
```
i click 4
```
Loading