Gmail без глупостей

| Comments

После трагического угасания Sparrow, я столкнулся с необходимостью поиска некого решения для почты, позволяющего держать мой Gmail открытым в виде отдельного приложения. Не вдаваясь в философские споры “как правильно” и “надо в браузере” только скажу, что мне так неудобно. При моем use case почта должна быть отдельной программой и точка. Перепробовав все, до чего смог дотянутся, я пришел к неутешительному выводу - нет достойных почтовых клиентов для мака. Нет, конечно есть удобный Mail.app и у меня к нему нет никаких существенных претензий, однако я принципиально разделяю рабочую почту от личной и Mail.app уже сидит на рабочем Exchange и паре IMAP.

В результате своих изысканий я пришел к выводу, что лучшим решением будет держать почту в отдельном браузере и пользоваться вебовским Gmail. Из того, что хотелось “починить” у меня в списке было: убрать рекламу, убрать (по возможности) лишние элементы с экрана, иметь некую видимую индикацию нового письма. К слову, я ничего против рекламы не имею, но в письмах оно занимает слишком много места и сужает видимую область письма весьма существенно. Ну и для очистки совести - у меня есть и платный акаунт, тот что без рекламы, но я им не пользуюсь по ряду исторических причин. Так что за отсутствие рекламы я уже заплатил и не надо меня за это совестить.

Итак, я рассматривал 3 варианта:

  1. Использование MailPlane. Этим я пользовался довольно долго, но со временем туда начали добавлять разное излишнее, стабильность стала ухудшаться на глазах и даже самые свежие версии преотвратно работали с двойной гугловой авторизацией.
  2. Использовать другой бразуер (мой основной Safari) в режиме “приложения”. На практике это условно работающее решение. Можно запустить Chrome в таком виде и при помощи пары расширений убрать из gmail все лишнее, однако держать дополнительный прожорливый браузер не самая хорошая идея. К тому же ссылки из этого “приложения” открываются в хроме, что совсем не то, что я хотел.
  3. Использовать Fluid для вынесения Gmail в отдельную программу и его возможности для кастомизации. На этом я и остановился и с Gmail под Fluid живу последние несколько месяцев.

В результате получилось то, что вы видите на картинке. Добиться такого вида несложно, однако вам понадобится платная версия Fluid.

Далее по пунктам, что и куда добавлять:

  • В Window/Userscripts найти Gmail и поменять код, который там есть на приведенный ниже. Цель этого действия - починить индикатор новых писем в Dock Badge (начиная с версии 1.6 он не работает из коробки):
Dock Badge
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
function updateDockBadge() {
    //console.log("Running check for unread messages…");
    var oldBadge = window.fluid.dockBadge;
    var newBadge = '';

    var myItems = document.getElementsByClassName("n0");

    for (var i = 0; i < myItems.length; i++) {
        var myTitle = myItems[i].title;
        var pos = myTitle.search("Inbox")
        if (pos >= 0) {
            var matches = myTitle.match(/\((\d*)\)/);
            if (matches) {
                newBadge = matches[1];
            }
        }
    }

    window.fluid.dockBadge = newBadge
    if (newBadge != '' && newBadge > oldBadge) {
        window.fluid.playSound("Basso")
        window.fluid.requestUserAttention(true);
    }
}

setInterval(updateDockBadge, 5000);
  • Добавить стили в Windows/Userstyles:
спрятать рекламу
1
2
3
4
5
6
7
8
9
10
11
.mq { display:none; } .N92wfe { border-top:none; } .nH.PS { margin: 52px 0 44px 52px !important; } .Zs { display:none; } .u5 { display:none; }


.adC { display:none; }
.z0DeRc { display:none; }
.oM { display:none; }
.u7 { display:none; }
.nH.PS { display:none; }
.ao8 table tr td.Bu + td.Bu { display:none; }
td.Bu.yPPMxf { display:none !important; }
td.Bu.y3  { display:none !important;}
Спрятать черный заголовок
1
2
.aiw .qp { margin-top: -25px; }
#gbgs1{display: none !important}
Сделать conversation приятнее на вид
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
.apN .hx {
  padding-left: 2px !important;
}
.if {
  margin: 3px 8px 8px 2px !important;
}
.hx .adn, .hx .adu, .hx .adf {
  padding-left: 4px !important;
}

/* "Display images" margin */
.B0, div.acS, .bC, .adc, .gY, .adc, .gS, .ac7, div.h9, div.adI {
  margin-left: 0px !important;
}
.B0, .ac7, .acS, .gS, .adp, .h9 {
  margin-right: 10px !important;
}

.Bk,
.hx .ky .Bk,
.hx .kv .Bk,
.hx .h7 .Bk,
.hx .kQ .Bk,
.xG3.G2 {
  border: 1px solid #BBB !important;
  border-bottom-color: #BBB !important;
  -webkit-border-radius: 7px;
  border-radius: 7px;
  border-image: initial;
  background-color: white !important;
}

.Bk .G2 {
  border-top-width: 0 !important;
}

.hx .h7 .Bk,
.hx .kv .Bk,
.hx .ky .Bk {
  margin-bottom: 4px !important;
  border-radius: 7px !important;
}

.kQ .G2 {
  height: 12px !important;
}

/* closed messages */
.hx .kQ .Bk,
.hx .kQ .Bk .G2 {
  height: 8px !important;
  padding: 0 !important;
  margin: 0 0 -4px 0 !important;
}

.kv .Bk .G2,
.kQ .Bk .G2 {
  background-color: transparent !important;
}

.hx .kQ .Bk .G2 {
  border-bottom: 0 !important;
  border-radius: 7px !important;
}

/* contents */
/* header */
.hI, .ig, .iv, .hF, .aju {
  padding-top: 4px !important;
  overflow: hidden !important; /* mostly for left edge */
  border-radius-top-right: 7px;
}
/* gradient stuff - being replaced by
  http://userstyles.org/styles/70673/gmail-messages-with-gradient-header
  */
.hI, .ig, .iv, .hF, .aju {
  /* gradient for message header */

  /* For WebKit (Safari, Google Chrome etc) */
  xbackground: -webkit-gradient(linear, left top, left bottom, from(#edeeef), to(#fff)) !important;
  /* For Mozilla/Gecko (Firefox etc) */
  xbackground-image: -moz-linear-gradient(#edeeef, #fff) !important;
  /* For Internet Explorer 5.5 - 7 */
  xfilter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EEEEEEFF, endColorstr=#FFFFFFFF);
  /* For Internet Explorer 8 */
  x-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#EEEEEEFF, endColorstr=#FFFFFFFF)";
}

/* Adjust padding around the image for the author - override gradient style. */
.adf .aju {
  padding-bottom: 0 !important;
}

/* padding around the person's image */
.adf.ads, .adn.ads {
  padding-left: 0 !important;
}
/* Center photo better */
.aju {
  cursor: pointer;
  float: left !important;
  padding: 4px 4px 0 4px !important;
  /* Make gradient background and message selection look right */
  border-top-right-radius: 0 !important;
  border-bottom-left-radius: 7px !important;
  border-top-left-radius: 7px !important;
}

/* Don't waste 44px in each message just for the photo */
.hx .nH .gs {
  margin-left: 4px !important;
}

/* message header */
.hx .gE {
  padding-left: 4px !important;
  border-top-right-radius: 7px !important;
}

/* Attachment */
.hq {
    margin: 5px 0;
}
.hr {
    margin: 5px 0 0 5px;
}


/* was 12px */
.hI, .ig, .hF {
  padding-bottom: 4px !important;
}

/* selected message */
.ads {
  border: 1px solid transparent;
}
.ads.adt {
  border: 1px solid #4D90F0;
  border-radius: 7px;
}

/* number of elided messages */
.adx {
  background-color: rgba(255, 255, 255, 0.5) !important;
  top: -10px !important;
}

/* forgot what this is.  See .aju */
.G0 .J-Zh-I.G1, .aju  {
  border-right: 0!important;
  margin-right: 0!important;
  -webkit-border-bottom-right-radius: 0;
  -moz-border-radius-bottomright: 0;
  border-bottom-right-radius: 0;
  -webkit-border-top-right-radius: 7px;
  -moz-border-radius-topright: 7px;
  border-top-right-radius: 7px;
}
/* reply area */
.gA.gt.ac5 {
  border-radius: 0 0 7px 7px !important;
}
/* embedded video, maps, docs, etc */
.gs .hi {
  margin-bottom: -5px !important;
  margin-left: -5px !important;
}
.hi, .gB {
  border-bottom-left-radius: 7px !important;
  border-bottom-right-radius: 7px !important;
}

/* Message title */
.hI, .ig, .iv, .hF {
  padding-top: 1px !important;
}

/* message collapsed */
.hI, .ig, .hF {
  padding-bottom: 0 !important;
}
.gE .cf {
  margin-top: 1px !important;
  margin-bottom: 0 !important;
}

/* message controls, right side of header */
.acX {
  padding-right: 6px !important;
}
.acX .aaq {
  margin-top: 2px !important;
  margin-right: 0 !important;
  min-width: auto;
}

/* message body */
.hx .h7 .Bk .G2 .adn {
  padding-bottom: 4px !important;
}

/* expand-collapse widget */
.ajV, .ajU {
  padding: 10px 0 1px !important;
}

/* reply box at end */
.amr div.nr {
  margin: 1px 8px 8px -1px !important;
  padding: 0;
  cursor: pointer;
}

Все это надо дeлать, указывая паттерн подходящий вашему URL. В моем случае это *mail.google.com* и *gmail.com*

Результат хотя и не идеален, но вполне удовлетворителен. Основная проблема, с которой пришлось примириться, это медленная начальная загрузка. Да, у меня там много писем и gmail задумывается секунд на 20-30 при запуске, однако это происходит только один раз и потом скорость удовлетворительная, хотя конечно, те времена когда Gmail “летал”, увы, прошли безвозвратно.

Все это стили и скрипты я накопал на просторах интернетов, некоторые немного поменял. Авторство принадлежит авторам которых я, к сожалению, не вспомню. Если у вас есть полезные скрипты/стили - поделитесь с народом. Комментарии открыты для всех.

P.S. Переключить gmail в 3х колоночный режим можно из Settings/Labs/Preview Pane


//