Skip to content

Commit e133f36

Browse files
committed
Merge branch 'release/1.6.1'
Conflicts: README.md
2 parents d3257d0 + e740b2d commit e133f36

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+2419
-13335
lines changed

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
release-notes-*
21
ShiftIt-*.zip
32
misc
3+
fabfile.pyc

.travis.yml

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
language: objective-c
2+
xcode_project: ShiftIt/ShiftIt.xcodeproj
3+
xcode_scheme: ShiftIt
4+
xcode_sdk: macosx10.9
5+
before_install:
6+
- brew install wget
7+
- wget http://xquartz.macosforge.org/downloads/SL/XQuartz-2.7.6.dmg
8+
- hdiutil attach XQuartz-2.7.6.dmg
9+
- sudo installer -pkg /Volumes/XQuartz-2.7.6/XQuartz.pkg -target /

README.md

+85-51
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,107 @@
1-
<h1><img src="https://github.com/fikovnik/ShiftIt/raw/master/artwork/ShiftIt.png" width="72" height="72" valign="middle"/>ShiftIt </h1>
1+
<h1><img src="https://raw.github.com/fikovnik/ShiftIt/develop/artwork/ShiftIt.png" width="72" height="72" valign="middle"/>ShiftIt <a href="https://travis-ci.org/fikovnik/ShiftIt"><img src="https://travis-ci.org/fikovnik/ShiftIt.png?branch=develop" valign="middle" alt="Build Status (develop branch)"/></a></h1>
22

33
*Managing window size and position in OSX*
44

5-
**Before the next release is available, please have a look at the `develop` branch.**
5+
# About
66

7-
About
8-
--------
7+
ShiftIt is an application for OSX that allows you to quickly manipulate window position and size using keyboard shortcuts.
8+
It intends to become a full featured window organizer for OSX.
9+
It is a complete rewrite of the original [ShiftIt](http://code.google.com/p/shiftit/) by Aravindkumar Rajendiran which is not longer under development.
10+
For discussing any sort of stuff about this app, please create a [new issue](https://github.com/fikovnik/ShiftIt/issues).
911

10-
ShiftIt is an application for OSX that allows you to quickly manipulate window position and size using keyboard shortcuts. It intends to become a full featured window organizer for OSX.
11-
It is a fork from the original [ShiftIt][1] by [Aravindkumar Rajendiran][2] which is not longer under development. For discussing any sort of stuff about this app, please create a new issue [right here][3] in github. There is also quite a quiet [google group][4], but it's better to post stuff directly here.
12+
License: [GNU General Public License v3](http://www.gnu.org/licenses/gpl.html)
1213

13-
License: [GNU General Public License v3][5]
14+
Change logs: change logs are versioned in the [repository](https://github.com/fikovnik/ShiftIt/tree/develop/release) as well.
1415

15-
Requirements
16-
------------
16+
## Download
1717

18-
The primary development is done on OSX 10.6 Snow Leopard, but it should be running under OSX 10.5 Leopard as well.
18+
A binary build for OSX 10.7+ is available in [releases](https://github.com/fikovnik/ShiftIt/releases).
1919

20-
Compiling
21-
---------
20+
## User guide
2221

23-
After cloning or download a snapshot of the repository (*master branch
24-
is recommended*):
22+
ShiftIt installs itself in the menu bar (optionally it can be completely hidden).
23+
It provides a set of actions that manipulates windows positions and sizes.
24+
Following is an example of list of actions available:
2525

26-
* on OSX 10.6 Snow Leopard
27-
1. Compile in XCode by clicking build, or use the
28-
`scripts/release.sh` (*With the script option, please ignore any errors related to the signing the release. Just check if you see the `** BUILD SUCCEEDED **` message in the output and grab the app from `ShiftIt/build/Release/ShiftIt.app` directory.*)
29-
1. That's it
30-
* on OSX 10.5 Leopard
31-
1. Go to `Project` menu and click `Edit Project Settings` item
32-
1. Select `Build` tab
33-
1. Set `Architectures` to be `32-bit Universal`
34-
1. Select `C/C++ Compiler Version` to be `GCC 4.2`
35-
1. Check `Build Active Architecture Only`
36-
37-
The reason for this is that the Interface Builder frameworks on OS X Leopard 10.5 do not have 64-Bit capabilities.
26+
![Screenshot Menu](https://raw.github.com/fikovnik/ShiftIt/develop/docs/schreenshot-menu.png)
3827

39-
Note: If you have a problem with the build - xcode complaining about the ShortcutRecorder IB plugin then download (from [here][7]) and build it yourself. Once done load it into the Interface Builder (double click on the just built ShortcutRecorder.ibplugin).
28+
Normally, all Cocoa windows and X11 windows are supported.
29+
Some applications might not work correctly or not at all.
30+
There is a [list of known problems](https://github.com/fikovnik/ShiftIt/wiki/Application-Compatibility-Issues).
31+
If you find any problem not mentioned there, please submit an issue.
4032

41-
FAQ
42-
---
33+
## Requirements
4334

44-
**I disabled the `Show Icon in Menu Bar` in the preferences, how can I get it back?how can I get it back?**
35+
* OSX 10.7+, 64-bit
36+
37+
The primary development is done on OSX 10.10, but it should be running under OSX 10.7 as well.
38+
39+
## FAQ
40+
41+
##### I disabled the _Show Icon in Menu Bar_ in the preferences, how can I get it back?
4542

4643
Launch the application again. It will open the preference dialog.
4744

48-
3rd Party Frameworks
49-
--------------------
45+
##### I pressed a shortcut, but nothing has happened, why?
46+
47+
While most of application windows should work well with ShiftIt, there are some exceptions (like the GTK+ OSX applications). There is a [list of known problems](https://github.com/fikovnik/ShiftIt/wiki/Application-Compatibility-Issues). If you find any problem not mentioned in the list, please raise an issue.
48+
49+
##### I pressed a shortcut, something happened, but not what I expected, why?
50+
51+
ShiftIt is based on a Cocoa Accessibility API and sometimes this API can be a bit [fragile](http://lists.apple.com/archives/accessibility-dev/2011/Aug/msg00031.html) and not do exactly what it should. In order to help to improve ShiftIt, please submit an issue every time you find some weird behavior. Before you do please consult the [list of known problems](https://github.com/fikovnik/ShiftIt/wiki/Application-Compatibility-Issues). Thanks!
52+
53+
##### ShiftIt wants accessibility access on my Mac but my system preferences don't match the instruction, why?
54+
55+
For instructions on accessibility in Mac OS X 10.9.x, see [this comment](https://github.com/fikovnik/ShiftIt/issues/110#issuecomment-20834932).
56+
57+
##### How to repairing Accessibility API permissions?
58+
59+
This can be done either using GUI in _System Preferences_ -> _Security & Privacy_ -> _Privacy_ -> _Accessibility_ where it is necessary to check and uncheck the checkbox which is next to ShiftIt in the _Allow the apps below to control your computer_.
60+
61+
![ShiftIt permissions](https://raw.githubusercontent.com/fikovnik/ShiftIt/develop/ShiftIt/AccessibilitySettings-Maverick.png)
62+
63+
Alternatively, this can be also done in a command line, however, this is rather a hack with all potential issues hacks come with.
64+
65+
```sh
66+
$ sudo sqlite3 '/Library/Application Support/com.apple.TCC/TCC.db' 'update access set allowed=1 where client like "%org.shiftitapp.ShiftIt%"'
67+
```
68+
69+
## Development
70+
71+
The repository is based on the git flow model. The development therefore happens in the `develop` branch. Any contribution is welcomed!
72+
73+
### Local build
74+
75+
To build ShiftIt locally just clone the repository or get the latest snapshot and execute following command in the `ShiftIt` directory:
76+
77+
```sh
78+
$ xcodebuild -target ShiftIt -configuration Release
79+
```
80+
81+
To make a build without X11 support execute following:
82+
83+
```sh
84+
$ xcodebuild -target "ShiftIt NoX11" -configuration Release
85+
```
86+
87+
### Making a release
88+
89+
Releases are handled using [fabric](http://docs.fabfile.org/en/1.5/). There are some dependencies that can be easily obtained using `pip`:
90+
91+
* [fabric](http://docs.fabfile.org/en/1.5/) - the build system itself
92+
* [github3](https://github.com/sigmavirus24/github3.py) - library for GitHub 3 API
93+
* [pystache](https://github.com/defunkt/pystache) - templates
5094

51-
* [ShortcutRecorder][7] framework (*New BSD license*) for capturing key bindings during hotkey reconfiguration. (*from version 1.4*)
52-
* [FMT][8] framework (*MIT license*) for some utility functions like handling login items, hot keys, etc. (*from version 1.5*)
95+
The releases are fully automatic which hopefully will help to release more often.
5396

54-
Change Log:
55-
---------------------------
97+
**Available commands**
5698

57-
- [1.5][9]
58-
- [1.4.1][10]
59-
- [1.4][11]
60-
- [1.3][12]
99+
* `archive` - Archives build
100+
* `build` - Makes a build by executing xcodebuild
101+
* `info` - Output all the build properties
102+
* `release` - Prepare the release: sign the build, generate appcast, generate release notes
103+
* `release_notes` - Generate release notes
61104

105+
After `fab release` instructions about how to create the actual release at github are printed.
62106

63-
[1]: http://code.google.com/p/shiftit/
64-
[2]: http://ca.linkedin.com/in/aravind88
65-
[3]: https://github.com/fikovnik/ShiftIt/issues
66-
[4]: http://groups.google.com/group/shiftitapp
67-
[5]: http://www.gnu.org/licenses/gpl.html
68-
[7]: http://code.google.com/p/shortcutrecorder/
69-
[8]: https://github.com/fikovnik/FMT
70-
[9]: http://nkuyu.net/apps/shiftit/release-notes-1.5.html
71-
[10]: http://nkuyu.net/apps/shiftit/release-notes-1.4.1.html
72-
[11]: http://nkuyu.net/apps/shiftit/release-notes-1.4.html
73-
[12]: http://nkuyu.net/apps/shiftit/release-notes-1.3.html
107+
Thanks [JetBrains](http://www.jetbrains.com/) for kindly supporting this open source project by providing [AppCode](http://www.jetbrains.com/objc/) IDE.

ShiftIt/AccessibilitySettingsLion.png

69.8 KB
Loading
40.1 KB
Loading
+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/*
2+
Localizable.strings
3+
ShiftIt
4+
5+
Created by Hiroyuki Kurosawa on 2013/11/16.
6+
7+
*/
8+
9+
"Left" = "Left";
10+
"Right" = "Right";
11+
"Top" = "Top";
12+
"Bottom" = "Bottom";
13+
"Top Left" = "Top Left";
14+
"Top Right" = "Top Right";
15+
"Bottom Left" = "Bottom Left";
16+
"Bottom Right" = "Bottom Right";
17+
"Center" = "Center";
18+
"Toggle Zoom" = "Toggle Zoom";
19+
"Maximize" = "Maximize";
20+
"Toggle Full Screen" = "Toggle Full Screen";
21+
"Increase" = "Increase";
22+
"Reduce" = "Reduce";
23+
"Next Screen" = "Next Screen";
24+
"Previous Screen" = "Previous Screen";
25+
26+
"Authorization Required" = "Authorization Required";
27+
"Recheck" = "Recheck";
28+
"Open System Preferences" = "Open System Preferences";
29+
"Quit" = "Quit";
30+
"AUTHORIZATION_INFORMATIVE_TEXT_10_9" = "ShiftIt needs to be authorized to use an Accessibility Services in order to be able to move and resize application windows.\n\nYou can do this in System Preferences > Security & Privacy > Privacy > Accessibility. You might need to drag-and-drop ShiftIt into the list of allowed apps and make sure the checkbox is on.";
31+
"AUTHORIZATION_INFORMATIVE_TEXT_10_8" = "ShiftIt needs to be authorized to use an Accessibility Services in order to be able to move and resize application windows.\n\nPlease \"Enable access for assistive devices\" in the System Preferences > Universal Access and then restart ShiftIt.";
32+
33+
"Start ShiftIt automatically?" = "Start ShiftIt automatically?";
34+
"Would you like to have ShiftIt automatically started at a login time?" = "Would you like to have ShiftIt automatically started at a login time?";
35+
"Yes" = "Yes";
36+
"No" = "No";

ShiftIt/Base.lproj/MainMenu.xib

+99
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2+
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="5056" systemVersion="13D65" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
3+
<dependencies>
4+
<deployment defaultVersion="1070" identifier="macosx"/>
5+
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="5056"/>
6+
</dependencies>
7+
<objects>
8+
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
9+
<connections>
10+
<outlet property="delegate" destination="494" id="495"/>
11+
</connections>
12+
</customObject>
13+
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
14+
<customObject id="-3" userLabel="Application"/>
15+
<customObject id="494" customClass="ShiftItAppDelegate">
16+
<connections>
17+
<outlet property="statusMenu_" destination="535" id="789"/>
18+
</connections>
19+
</customObject>
20+
<menu title="Status Menu" id="535">
21+
<items>
22+
<menuItem title="Left" tag="2001" keyEquivalent="" id="547">
23+
<modifierMask key="keyEquivalentModifierMask" control="YES" option="YES" command="YES"/>
24+
</menuItem>
25+
<menuItem title="Right" tag="2002" keyEquivalent="" id="548">
26+
<modifierMask key="keyEquivalentModifierMask" control="YES" option="YES" command="YES"/>
27+
</menuItem>
28+
<menuItem title="Top" tag="2003" keyEquivalent="" id="549">
29+
<modifierMask key="keyEquivalentModifierMask" control="YES" option="YES" command="YES"/>
30+
</menuItem>
31+
<menuItem title="Bottom" tag="2004" keyEquivalent="" id="550">
32+
<modifierMask key="keyEquivalentModifierMask" control="YES" option="YES" command="YES"/>
33+
</menuItem>
34+
<menuItem isSeparatorItem="YES" id="781"/>
35+
<menuItem title="Top Left" tag="2005" keyEquivalent="1" id="767">
36+
<modifierMask key="keyEquivalentModifierMask" control="YES" option="YES" command="YES"/>
37+
</menuItem>
38+
<menuItem title="Top Right" tag="2006" keyEquivalent="2" id="768">
39+
<modifierMask key="keyEquivalentModifierMask" control="YES" option="YES" command="YES"/>
40+
</menuItem>
41+
<menuItem title="Bottom Left" tag="2007" keyEquivalent="3" id="769">
42+
<modifierMask key="keyEquivalentModifierMask" control="YES" option="YES" command="YES"/>
43+
</menuItem>
44+
<menuItem title="Bottom Right" tag="2008" keyEquivalent="4" id="770">
45+
<modifierMask key="keyEquivalentModifierMask" control="YES" option="YES" command="YES"/>
46+
</menuItem>
47+
<menuItem isSeparatorItem="YES" id="780"/>
48+
<menuItem title="Center" tag="2009" keyEquivalent="c" id="537">
49+
<modifierMask key="keyEquivalentModifierMask" control="YES" option="YES" command="YES"/>
50+
</menuItem>
51+
<menuItem title="Toggle Zoom" tag="2010" keyEquivalent="z" id="791">
52+
<modifierMask key="keyEquivalentModifierMask" control="YES" option="YES" command="YES"/>
53+
</menuItem>
54+
<menuItem title="Maximize" tag="2011" keyEquivalent="m" id="792">
55+
<modifierMask key="keyEquivalentModifierMask" control="YES" option="YES" command="YES"/>
56+
</menuItem>
57+
<menuItem title="Toggle Full Screen" tag="2012" keyEquivalent="f" id="545">
58+
<modifierMask key="keyEquivalentModifierMask" control="YES" option="YES" command="YES"/>
59+
</menuItem>
60+
<menuItem isSeparatorItem="YES" id="538"/>
61+
<menuItem title="Increase" tag="2013" keyEquivalent="=" id="786">
62+
<modifierMask key="keyEquivalentModifierMask" control="YES" option="YES" command="YES"/>
63+
</menuItem>
64+
<menuItem title="Reduce" tag="2014" keyEquivalent="-" id="787">
65+
<modifierMask key="keyEquivalentModifierMask" control="YES" option="YES" command="YES"/>
66+
</menuItem>
67+
<menuItem isSeparatorItem="YES" id="788"/>
68+
<menuItem title="Next Screen" tag="2015" keyEquivalent="n" id="794">
69+
<modifierMask key="keyEquivalentModifierMask" control="YES" option="YES" command="YES"/>
70+
</menuItem>
71+
<menuItem title="Previous Screen" tag="2016" id="URi-Kh-uDb">
72+
<modifierMask key="keyEquivalentModifierMask"/>
73+
</menuItem>
74+
<menuItem isSeparatorItem="YES" id="793"/>
75+
<menuItem title="Preferences" keyEquivalent="," id="558">
76+
<connections>
77+
<action selector="showPreferences:" target="494" id="760"/>
78+
</connections>
79+
</menuItem>
80+
<menuItem title="Check for Updates" id="761">
81+
<modifierMask key="keyEquivalentModifierMask"/>
82+
<connections>
83+
<action selector="checkForUpdates:" target="670" id="763"/>
84+
</connections>
85+
</menuItem>
86+
<menuItem title="Quit ShiftIt" keyEquivalent="q" id="546">
87+
<connections>
88+
<action selector="terminate:" target="-3" id="628"/>
89+
</connections>
90+
</menuItem>
91+
</items>
92+
</menu>
93+
<customObject id="670" customClass="SUUpdater">
94+
<connections>
95+
<outlet property="delegate" destination="494" id="795"/>
96+
</connections>
97+
</customObject>
98+
</objects>
99+
</document>

0 commit comments

Comments
 (0)