~nicolas-doffay/unity8/search-history-persist

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
Building Unity 8
================

Only Ubuntu 13.10 (saucy) is supported as a developement environment.

download source
---------------
- create a parent folder to not pollute your setup. so that you can have different unity
  branches there (trunk, WIP etc)

  $ mkdir ~/unity8

- fetch Unity 8 source
  $ sudo apt-get install bzr
  $ bzr branch lp:unity8 ~/unity8/trunk
  $ cd ~/unity8/trunk

install dependencies
--------------------
If its your first time, install build dependencies

$ cd ~/unity8/trunk
$ ./build --setup

  this will:
  - install the required dependencies to build, as well as run on the desktop
  - it should also install unity-scope-home and unity-lens-application which 
    are technically "recommends", not strict dependencies

build Unity 8
-------------

$ cd ~/unity8/trunk
$ ./build

You may also rebuild with the -c for clean, which just deletes the build
directory.


Running Unity 8 on your desktop
===============================

run the Unity 8 shell
---------------------
$ cd ~/unity8/trunk
$ ./run

Options can be passed to test the lock screen
$ ./run -p OR -k

-p is for pin lock, for which the default prompt answer is "1234"
-k is for keylock passphrase, for which the default prompt answer is "password"

Notes
-----
- to navigate, utilize the mouse left button as you would your finger
- to get the translations work, currently you have to do make install to
  put the *.mo files into correct structure. We'll look for a better solution
  later.
  $ cd builddir; make install
- if you wish to populate contacts
  $ sudo apt-get install gir1.2-ebook-1.2
  $ manage-address-book.py create
  this will:
    - Create an EDS address book
    - Populate the address book with sample data


Running Unity 8 on devices
==========================
- Ubuntu Touch builds are currently only available in 13.10 flavour
- supported hardware should match one of those listed here
  https://wiki.ubuntu.com/Touch/Devices#Running_fine
- follow the Ubuntu Touch install instructions for your chosen device
  https://wiki.ubuntu.com/Touch/Install
- make sure your device is connected to a network
- also make sure you have your SSH key in ~/.ssh/id_rsa.pub (or install one
  on the device yourself)

$ cd ~/unity/trunk
$ ./run_on_device --setup
  this will:
  - install your public SSH key on the device
  - install the needed dependencies

$ ./run_on_device
  this will:
  - rsync the code to the device
  - build on the device
  - replace the running shell

Options can be passed to test the lock screen
$ ./run_on_device -p OR -k

-p is for pin lock, for which the default prompt answer is "1234"
-k is for keylock passphrase, for which the default prompt answer is "password"

Notes
-----
- using adb over TCP has some advantages, Google will be of help here
  - NOTE: this is not yet available for flipped images
  - TL;DR: `adb tcpip 5555; adb connect $your_device_ip`
  - you can persist the above via `adb shell setprop persist.adb.tcp.port 5555`
  - it's unsafe - anyone can connect to your device
  - with TCP the Nexus 10 doesn't drop the adb connection when locking
    the screen
- exporting ANDROID_SERIAL=$your_device_serial or 
  ANDROID_SERIAL=$your_device_ip:5555 will make adb not complain about 
  multiple devices
- you can export TARGET_IP=$your_device_ip TARGET_SSH_PORT=22 for run_on_device
  to not use adb forwarding - useful if you use multiple devices
- using Ninja (package ninja-build - run_on_device -s installs this now)
  will improve build times (especially in the nothing-to-build case)


Coding guidelines
=================
The work-in-progress coding guidelines are available under:
https://launchpad.net/canonical-client-development-guidelines


Development Environment
=======================
QtCreator (available via the Software Center) is the best IDE to hack on
Unity 8.

If using VIM, make sure you install some syntax highlighting for QML, like
https://github.com/peterhoeg/vim-qml