Skip to content

Commit 44f6633

Browse files
committed
Merge branch 'dev'
2 parents abf651f + 456851a commit 44f6633

File tree

284 files changed

+27724
-20041
lines changed

Some content is hidden

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

284 files changed

+27724
-20041
lines changed

.babelrc

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
{
22
"presets": [
33
[
4-
"env",
4+
"@babel/preset-env",
55
{
66
"targets": {
7-
"browsers": ["Firefox > 60"]
7+
"browsers": ["last 1 Chrome version"]
88
},
9-
"useBuiltIns": true
9+
"loose": true,
10+
"useBuiltIns": "usage",
11+
"corejs": 2
1012
}
1113
]
1214
],
13-
"plugins": ["transform-object-rest-spread"]
15+
"plugins": [
16+
"@babel/plugin-proposal-object-rest-spread",
17+
"@babel/plugin-transform-modules-commonjs",
18+
]
1419
}

.eslintrc.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"linebreak-style": ["error", "unix"],
1414
"quotes": ["error", "single"],
1515
"semi": ["error", "never"],
16+
"require-atomic-updates": "off",
1617
"vue/html-self-closing": "off",
1718
"vue/require-default-prop": "off"
1819
},

.gitignore

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,37 @@
22
.vscode
33
dist
44
node_modules
5-
addon/sidebar
6-
addon/settings
7-
addon/group
5+
coverage
6+
7+
addon/sidebar/*
8+
!addon/sidebar/index.html
9+
10+
addon/settings/*
11+
!addon/settings/settings.html
12+
13+
addon/group/*
14+
!addon/group/group.html
15+
16+
addon/url/*
17+
!addon/url/url.html
18+
19+
addon/snapshots
20+
addon/theme
21+
addon/styles
22+
addon/menu
823
addon/permissions
924
addon/debug
10-
build/profile-ru/*
11-
!build/profile-ru/__preserve-dir
12-
build/profile-en/*
13-
!build/profile-en/__preserve-dir
25+
26+
addon/themes/default/*
27+
!addon/themes/default/__preserve-dir
28+
addon/themes/tactile/*
29+
!addon/themes/tactile/__preserve-dir
30+
31+
build/profile-esr/*
32+
!build/profile-esr/__preserve-dir
33+
build/profile-stable/*
34+
!build/profile-stable/__preserve-dir
1435
build/profile-beta/*
1536
!build/profile-beta/__preserve-dir
16-
build/profile-esr/*
17-
!build/profile-esr/__preserve-dir
37+
build/profile-nightly/*
38+
!build/profile-nightly/__preserve-dir

README.md

Lines changed: 76 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,51 @@
22

33
[![https://addons.mozilla.org/en-US/firefox/addon/sidebery/](https://addons.cdn.mozilla.net/static/img/addons-buttons/AMO-button_2.png)](https://addons.mozilla.org/en-US/firefox/addon/sidebery/)
44

5+
56
## About
67

7-
Sidebery combines vertical layout of tabs with Firefox's containers to provide more convenient way of working with big amount of opened pages. It aims to be fast and beautiful and gives a lot of options for customizing. Some of key features:
8+
Sidebery combines vertical layout of tabs with Firefox's containers to provide the more convenient way of working with a big amount of open pages. It aims to be fast and beautiful and gives a lot of options for customizing. Some of the key features:
89

910
### Vertical tabs layout (flat or tree)
1011

11-
You can use simple flat list of tabs or tree structure. Tree layout allows you to fold sub-tries, creates groups with custom name to organize opened pages.
12+
You can use a simple flat list of tabs or tree structure. Tree layout allows you to fold sub-tries, creates groups with a custom name to organize open pages.
13+
14+
### Bookmarks panel
1215

13-
### Bookmarks panel for easy access
16+
Simple catalogs of your bookmarks. You can drag and drop links or tabs to create bookmarks and vice-versa. Basic operations: open in new window / create / edit / delete.
1417

15-
Simple catalogs of your bookmarks. You can drag and drop links or tabs to create bookmarks and vice-versa.
18+
Other bookmarks features:
19+
- Automatically delete an open bookmark from "Other Bookmarks" folder.
20+
- Highlight open bookmarks and activate its tab instead of opening new on clicking.
1621

1722
### Advanced containers management
1823

19-
Isolate your internet activity with Firefox's containers. Sidebery separates containers by panels and allow you to switch between them with mouse or keyboard shortcuts. With this addon you also can set proxy for different containers, use "include" and "exclude" rules to control what page should be opened in which container.
24+
Isolate your internet activity with Firefox's containers. Sidebery separates containered tabs by panels and allows you to switch between them with the mouse or keyboard shortcuts.
25+
26+
### Containers proxy, include and exclude rules
27+
28+
With this addon, you also can set proxy for different containers, use "include" and "exclude" rules to control what page should be open in which container.
29+
30+
### Customizable context menu
31+
32+
Sidebery allows you to change the context menu for tabs and bookmarks. You can enable/disable/move different options, create sub-menus/separators.
2033

2134
### Multi-selection with right mouse button or keyboard shortcuts
2235

23-
Select multiple tabs or bookmarks to apply actions to them or drag and drop them.
36+
You can select multiple tabs or bookmarks only with the mouse - push right mouse button and then move the cursor to adjust selection range.
37+
`note: This feature is not working with the native context menu.`
38+
39+
Also, you can use ctrl+click/shift+click method or use keyboard shortcuts.
2440

2541
### Customizable styles
2642

27-
Sidebery provides the way to customize some of style properties like colors, sizes, fonts of different elements.
43+
Sidebery provides full control of styles for sidebar and group page via variables and custom CSS.
44+
`note: css selectors can be changed in the next version`
2845

2946
### Snapshots
3047

31-
You can create snapshots of currently opened tabs and their tree structure and restore them later.
48+
You can setup auto snapshots that will keep info about open windows and tabs.
49+
3250

3351
---
3452

@@ -39,72 +57,74 @@ Shortcut `ctrl+E` (default) or click on Sidebery button.
3957

4058
__Create new tab__
4159
`ctrl+T` - In default container.
42-
`ctrl+space` - In currently active container.
43-
`ctrl+shift+space` - after currently active tab.
44-
Middle click on panel - in currently active container.
45-
Left click on panel's icon - in currently active container.
46-
...other methods may be found in settings
60+
`ctrl+space` - In active panel.
61+
`ctrl+shift+space` - after active tab.
62+
Also "Middle click on panel", "Left click on panel's icon" and other configurable methods...
4763

4864
__Switch between containers__
4965
`alt+Comma(<)` - to previous panel
5066
`alt+Period(>)` - to next panel
51-
Scroll on navigation strip
52-
Horizontal scroll (configurable)
67+
Scroll on navigation strip - (optional)
68+
Horizontal scroll - (optional)
5369

5470
__Switch between tabs__
5571
`ctrl+PgUp/PgDown` - firefox's defaults
5672
`alt+Up/Down` + `alt+space` - select tab and activate it
57-
Scroll (configurable)
73+
Scroll - (optional)
5874

5975
__Open dashboard of panel__
60-
Right-click on panel's icon
76+
Right-click on panel's icon
77+
78+
__Expand/Fold parent tab__
79+
Click on favicon of target tab.
80+
81+
__Expand/Fold tabs or bookmarks while dragging elements__
82+
Move mouse cursor to pointer's triangle.
83+
84+
__Select all descendants of tab__
85+
Right click on favicon.
86+
87+
__Close whole tabs branch__
88+
Right click on close button.
89+
90+
__Switch panel while dragging elements__
91+
Move mouse cursor to panel's icon.
6192

6293
---
6394

6495
## Tips and Tricks
65-
__To expand/fold tabs or bookmarks while dragging elements__ - move mouse cursor to pointer's triangle.
66-
__To expand/fold tab__ - left click on favicon.
67-
__To select all descendants of tab__ - right click on favicon.
68-
__To close tab all it's descendants__ - right click on close button.
69-
__To switch to some panel while dragging elements__ - move mouse cursor to panel's icon.
7096

71-
### Hide/customize native panels
97+
### userChrome.css
7298

7399
In 'Profile Directory' `(Menu > Help > Troubleshooting Information > Profile Directory)`
74100
create folder `chrome` with file `userChrome.css`:
75101

76102
```css
77-
@-moz-document url("chrome://browser/content/browser.xul") {
78-
/* --- Completely hide tabs strip --- */
79-
#TabsToolbar {
80-
visibility: collapse !important;
81-
}
82-
/* --- OR Hide tabs strip only in fullscreen --- */
83-
/* #TabsToolbar[inFullscreen="true"] {
84-
visibility: collapse !important;
85-
} */
86-
87-
/* --- Preserve top panel height (macos) --- */
88-
/* #TabsToolbar {
89-
height: 30px !important;
90-
} */
91-
92-
/* --- Hide content of top bar --- */
93-
/* #TabsToolbar > * {
94-
visibility: collapse;
95-
} */
96-
97-
/* --- Hide sidebar top-menu --- */
98-
#sidebar-header {
99-
visibility: collapse;
100-
}
101-
102-
/* --- Customize border between sidebar and page --- */
103-
/* #sidebar-splitter {
104-
width: 2px !important;
105-
border: none !important;
106-
background-color: #242424 !important;
107-
} */
103+
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
104+
105+
/* ...your css here... */
106+
```
107+
108+
To find and inspect browser's selectors open [Browser Toolbox](https://developer.mozilla.org/en-US/docs/Tools/Browser_Toolbox).
109+
110+
__Completely hide tabs strip__
111+
```css
112+
#TabsToolbar {
113+
display: none;
114+
}
115+
```
116+
117+
__Hide tabs strip only in fullscreen__
118+
```css
119+
#TabsToolbar[inFullscreen="true"] {
120+
display: none;
121+
}
122+
```
123+
124+
__Hide sidebar top-menu__
125+
```css
126+
#sidebar-header {
127+
display: none;
108128
}
109129
```
110130

@@ -117,8 +137,8 @@ create folder `chrome` with file `userChrome.css`:
117137
> Tests: Jest
118138
119139
Install dependencies: `npm install`
120-
Start dev: `npm run dev`
121-
Build to ./dist: `npm run build`
140+
Build all parts of addon: `npm run build`
141+
Create addon archive in ./dist: `npm run build.ext`
122142

123143
---
124144

addon/_locales/en/messages.json

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,5 @@
55
},
66
"ActionTitle": { "message": "Open Sidebery" },
77

8-
"elapsed.now": { "message": "just now" },
9-
"elapsed.min": { "message": "min ago" },
10-
"elapsed.hr": { "message": "hr ago" },
11-
"elapsed.day": {
12-
"message": "day ago|days ago",
13-
"description": "1|"
14-
},
15-
"elapsed.week": {
16-
"message": "week ago|weeks ago",
17-
"description": "1|"
18-
},
19-
"elapsed.month": {
20-
"message": "month ago|months ago",
21-
"description": "1|"
22-
},
23-
"elapsed.year": {
24-
"message": "year ago|years ago",
25-
"description": "1|"
26-
},
27-
28-
"permissions.all_urls.title": { "message": "Permissions" },
29-
"permissions.all_urls.logo": { "message": "Sidebery" },
30-
"permissions.all_urls.msg": { "message": "Invoked action requires some additional permissions:" },
31-
"permissions.all_urls.btn": { "message": "Request 'Websites data' permission" },
32-
"permissions.tabHide.btn": { "message": "Request 'Hiding tabs' permission" },
33-
"permissions.all_urls.note": {
34-
"message": "This can be undone in sidebery settings section 'permissions'."
35-
}
8+
"upgrading": { "message": "Upgrading..." }
369
}

addon/_locales/ru/messages.json

Lines changed: 1 addition & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,5 @@
33
"ExtDesc": { "message": "Управление табами и закладками в боковой панели." },
44
"ActionTitle": { "message": "Открыть Sidebery" },
55

6-
"elapsed.now": { "message": "только что" },
7-
"elapsed.min": { "message": "мин назад" },
8-
"elapsed.hr": { "message": "ч назад" },
9-
"elapsed.day": {
10-
"message": "день назад|дня назад|дней назад",
11-
"description": "1,21,31|2,3,4,22,23,24|"
12-
},
13-
"elapsed.week": {
14-
"message": "неделя назад|недели назад",
15-
"description": "1|"
16-
},
17-
"elapsed.month": {
18-
"message": "месяц назад|месяцa назад|месяцев назад",
19-
"description": "1|2,3,4|"
20-
},
21-
"elapsed.year": {
22-
"message": "год назад|года назад|лет назад",
23-
"description": "1,21|2,3,4,22,23,24|"
24-
},
25-
26-
"permissions.all_urls.title": { "message": "Разрешения" },
27-
"permissions.all_urls.logo": { "message": "Sidebery" },
28-
"permissions.all_urls.msg": {
29-
"message": "Вызванное действие требует дополнительных разрешений:"
30-
},
31-
"permissions.all_urls.btn": { "message": "Запросить разрешение 'Данные веб-сайтов'" },
32-
"permissions.tabHide.btn": { "message": "Запросить разрешение 'Скрытие табов'" },
33-
"permissions.all_urls.note": {
34-
"message": "Это разрешение можно отозвать в настройках, секции 'Разрешения'."
35-
}
6+
"upgrading": { "message": "Обновление..." }
367
}

addon/actions.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import SnapshotsActions from './actions/snapshots.js'
2+
import WindowsActions from './actions/windows.js'
3+
import ContainersActions from './actions/containers.js'
4+
import PanelsActions from './actions/panels.js'
5+
import TabsActions from './actions/tabs.js'
6+
import MsgActions from './actions/msg.js'
7+
import ProxyActions from './actions/proxy.js'
8+
import FaviconsActions from './actions/favicons.js'
9+
import UpgradeActions from './actions/upgrade.js'
10+
import StorageActions from './actions/storage.js'
11+
import MiscActions from './actions/misc.js'
12+
13+
const Actions = {
14+
...SnapshotsActions,
15+
...WindowsActions,
16+
...ContainersActions,
17+
...PanelsActions,
18+
...TabsActions,
19+
...MsgActions,
20+
...ProxyActions,
21+
...FaviconsActions,
22+
...UpgradeActions,
23+
...StorageActions,
24+
...MiscActions,
25+
}
26+
27+
/**
28+
* Inject any stuff to these actions
29+
*/
30+
export function injectInActions(injectable = {}) {
31+
for (let key of Object.keys(Actions)) {
32+
Actions[key] = Actions[key].bind(injectable)
33+
}
34+
Actions.initialized = true
35+
return injectable
36+
}
37+
38+
export default Actions

0 commit comments

Comments
 (0)