Compare commits
662 Commits
upstream/4
...
debian/47.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8a7871b926 | ||
|
|
0e1895d7b7 | ||
|
|
d1422ddb33 | ||
|
|
5b0f7e40d4 | ||
|
|
70e2a02e69 | ||
|
|
079daac9bb | ||
|
|
99d49c1800 | ||
|
|
95c4bc5d87 | ||
|
|
451a12d1fd | ||
|
|
48b917ab86 | ||
|
|
d273dc4e59 | ||
|
|
683080441f | ||
|
|
5bbf7f5c6c | ||
|
|
f30990535f | ||
|
|
d14885f96d | ||
|
|
0a153b78f9 | ||
|
|
697380130b | ||
|
|
ec0eb48131 | ||
|
|
54390185c8 | ||
|
|
9c56e9c515 | ||
|
|
a49f851320 | ||
|
|
598007f994 | ||
|
|
06caed8c0c | ||
|
|
9991f90804 | ||
|
|
0bc77ef7c9 | ||
|
|
099b2eeb49 | ||
|
|
b13984a752 | ||
|
|
67cdd0bea2 | ||
|
|
87a849c5af | ||
|
|
f0bff952be | ||
|
|
b3ff771a1d | ||
|
|
3ef718d34c | ||
|
|
fb2d87c1da | ||
|
|
6d3fbceec9 | ||
|
|
4da312040b | ||
|
|
89276cc184 | ||
|
|
68e66259e2 | ||
|
|
75184584b9 | ||
|
|
a8e15a36af | ||
|
|
6521bbf9b9 | ||
|
|
dfa173cdfc | ||
|
|
da954b9b63 | ||
|
|
ad69a39c68 | ||
|
|
ca523c03e6 | ||
|
|
9386aa35a7 | ||
|
|
13fa15ba61 | ||
|
|
ec3382c6ae | ||
|
|
2716cb0b98 | ||
|
|
6048971663 | ||
|
|
04cab9954b | ||
|
|
cbb622a099 | ||
|
|
f3b505867f | ||
|
|
7bee509ecd | ||
|
|
b6ac158139 | ||
|
|
862f6e7845 | ||
|
|
64b9c0d057 | ||
|
|
94e90731ad | ||
|
|
ba61172de0 | ||
|
|
e3256255a4 | ||
|
|
9af1a79434 | ||
|
|
fa9e2dc71c | ||
|
|
e94f10ac16 | ||
|
|
0319c6e8cb | ||
|
|
fe1ae49dbe | ||
|
|
353598e6d8 | ||
|
|
36266e5a5a | ||
|
|
f7a371c0bf | ||
|
|
018815d9e9 | ||
|
|
82fd82b30c | ||
|
|
26f5e23faa | ||
|
|
0989cb3836 | ||
|
|
c55df7c239 | ||
|
|
9a840c437c | ||
|
|
f33a833f7c | ||
|
|
7c284b6bdc | ||
|
|
6af5cbe4e0 | ||
|
|
5d6c2a3008 | ||
|
|
7ffe7b9aec | ||
|
|
2e912861f1 | ||
|
|
f8ac973802 | ||
|
|
5bb15ae1cf | ||
|
|
34f379f6c7 | ||
|
|
14d6920dd3 | ||
|
|
3d1c253369 | ||
|
|
b5dd68d6f2 | ||
|
|
93c2c408be | ||
|
|
c2c57c8e29 | ||
|
|
9432ae260b | ||
|
|
69f3132f4c | ||
|
|
b1326b1fd7 | ||
|
|
39f4a16cfc | ||
|
|
dc8575ac89 | ||
|
|
2d56420241 | ||
|
|
3a32323337 | ||
|
|
1b0637abc0 | ||
|
|
4ccffbb27d | ||
|
|
8a9aa6a818 | ||
|
|
bd0e0db372 | ||
|
|
2d8cc4c0fb | ||
|
|
017c6470b9 | ||
|
|
1e25fc1b5a | ||
|
|
e28215f38f | ||
|
|
8d06bc8b64 | ||
|
|
9e475cb279 | ||
|
|
cbbb2d2869 | ||
|
|
f6157394d3 | ||
|
|
c72b8b2122 | ||
|
|
c302db7545 | ||
|
|
0554a8e97d | ||
|
|
039c66e7b7 | ||
|
|
7eb00e350e | ||
|
|
f76f9e8220 | ||
|
|
17c963b63f | ||
|
|
5d45a697ce | ||
|
|
ef729f2d66 | ||
|
|
87bfb01642 | ||
|
|
c74ab7aa23 | ||
|
|
48b00e6a0a | ||
|
|
6b2f4e801e | ||
|
|
1394e82bd0 | ||
|
|
ae9411a23d | ||
|
|
0334834a0f | ||
|
|
b0ba8ca5c0 | ||
|
|
9e61aaf08c | ||
|
|
ae00cf6b4e | ||
|
|
6ac76140a5 | ||
|
|
8c014a6b1d | ||
|
|
ee730d9e29 | ||
|
|
c290d7ddb3 | ||
|
|
de033a04fa | ||
|
|
2fe844f412 | ||
|
|
8185b43d54 | ||
|
|
1219dfc144 | ||
|
|
59ab3f834d | ||
|
|
dd16556530 | ||
|
|
8b6835c3d6 | ||
|
|
bb5bb70ac5 | ||
|
|
da90d365ec | ||
|
|
02ff72b2f0 | ||
|
|
9c7a086870 | ||
|
|
24ba03fe96 | ||
|
|
69d8d1a335 | ||
|
|
d495a2eed8 | ||
|
|
6b3990457e | ||
|
|
099cff0b95 | ||
|
|
fac7fedfd3 | ||
|
|
6ed1b56526 | ||
|
|
a2ffb1238f | ||
|
|
b55e7a4dc8 | ||
|
|
0c42f162d3 | ||
|
|
01a37c8f26 | ||
|
|
5e88c7d891 | ||
|
|
af23a8491c | ||
|
|
32a454f917 | ||
|
|
63ff5b2ac1 | ||
|
|
a9fff9861b | ||
|
|
89a3daf9fe | ||
|
|
078a5a01ae | ||
|
|
9c8c3495b6 | ||
|
|
25e854dde8 | ||
|
|
64060ef4c5 | ||
|
|
9c97f01bc2 | ||
|
|
8693a8a74c | ||
|
|
47c12c6279 | ||
|
|
e96015b9ea | ||
|
|
d3debab713 | ||
|
|
00045b7396 | ||
|
|
19877302a6 | ||
|
|
56a74abb8a | ||
|
|
421abfd1a6 | ||
|
|
b836faee4a | ||
|
|
48cf148c23 | ||
|
|
e566a22f22 | ||
|
|
3ea76e3ecc | ||
|
|
0d5685a279 | ||
|
|
78c3957f64 | ||
|
|
38e267ae64 | ||
|
|
59899a211d | ||
|
|
d3348761c3 | ||
|
|
79a01c62bc | ||
|
|
d2d5629bdd | ||
|
|
f590df238a | ||
|
|
7d92287596 | ||
|
|
9c08df11dc | ||
|
|
e65c561e6f | ||
|
|
6d36da1ce6 | ||
|
|
cd9341adf1 | ||
|
|
13842a012b | ||
|
|
f4f7d2dffb | ||
|
|
87a5fc42b8 | ||
|
|
f1456002d4 | ||
|
|
30266011bf | ||
|
|
5a76dedb50 | ||
|
|
dc8ab6cf77 | ||
|
|
b97efdb584 | ||
|
|
a91e6aad87 | ||
|
|
6f03ca0434 | ||
|
|
7a01e3e103 | ||
|
|
e539a65709 | ||
|
|
2402c1bef5 | ||
|
|
1fd238b31d | ||
|
|
21a65c1558 | ||
|
|
f42d1f7ca9 | ||
|
|
b77ecb2380 | ||
|
|
4fc80e0ef3 | ||
|
|
df61f9aadf | ||
|
|
7862bfd2aa | ||
|
|
f6c74e93b7 | ||
|
|
81880982b2 | ||
|
|
f53984670c | ||
|
|
537530707e | ||
|
|
e069f391c7 | ||
|
|
b00f5c4604 | ||
|
|
a326fa737e | ||
|
|
fcd5618321 | ||
|
|
55e085894a | ||
|
|
801ba69f54 | ||
|
|
abdd839073 | ||
|
|
24a5c5fd4e | ||
|
|
6d49de36a8 | ||
|
|
ef3c74db8a | ||
|
|
419b7fad10 | ||
|
|
ad43f16a9a | ||
|
|
db8b779859 | ||
|
|
67a91f9a1d | ||
|
|
ec95dcd330 | ||
|
|
b71ddd1b00 | ||
|
|
d6ffd7859e | ||
|
|
ded50f8b01 | ||
|
|
06066be0a8 | ||
|
|
fb52f89cc5 | ||
|
|
86761952c3 | ||
|
|
edc916533a | ||
|
|
6a7e99eb81 | ||
|
|
8ca1d5f3ee | ||
|
|
a3068dc145 | ||
|
|
3e9d648078 | ||
|
|
3e398b9a2f | ||
|
|
3fb756687b | ||
|
|
93fb1a6496 | ||
|
|
dfa328a769 | ||
|
|
90b59b6753 | ||
|
|
121c9d891b | ||
|
|
e6a8046d33 | ||
|
|
3cd964e60d | ||
|
|
fa8866d627 | ||
|
|
bf3cb76766 | ||
|
|
25d02d17d2 | ||
|
|
ffcbf03c9c | ||
|
|
fc5611719d | ||
|
|
ad69ee299f | ||
|
|
b912f8cd0b | ||
|
|
e5f43e9a90 | ||
|
|
2b7bb1798a | ||
|
|
8250b82869 | ||
|
|
101ca9c738 | ||
|
|
7ecee1c9e6 | ||
|
|
1d7f37f420 | ||
|
|
30a15387b5 | ||
|
|
b5b841dd38 | ||
|
|
5f2b199627 | ||
|
|
071584621e | ||
|
|
5c57f44838 | ||
|
|
93741e9e1c | ||
|
|
836f81f2e2 | ||
|
|
574638328e | ||
|
|
e0750db1bd | ||
|
|
5652182fb3 | ||
|
|
c3cbef19ac | ||
|
|
8c8f990a28 | ||
|
|
f6a6bdda99 | ||
|
|
0d5d06fdd7 | ||
|
|
d10b98c4fc | ||
|
|
8b7cfff558 | ||
|
|
25a75e1b0e | ||
|
|
91a1b8245b | ||
|
|
4abde90e82 | ||
|
|
abf3365cc2 | ||
|
|
1e254c1723 | ||
|
|
0676c02419 | ||
|
|
dd8ee2931a | ||
|
|
f530acbf9e | ||
|
|
153e100e7e | ||
|
|
3ea3d1a405 | ||
|
|
37de3bfba3 | ||
|
|
db24e0c6c3 | ||
|
|
4d741a1ece | ||
|
|
6ce713f305 | ||
|
|
db248b3ce6 | ||
|
|
2e2651ea4c | ||
|
|
696225fdc9 | ||
|
|
fd31c81873 | ||
|
|
981f094061 | ||
|
|
b9067eed79 | ||
|
|
68c7beabab | ||
|
|
3ba184bfe2 | ||
|
|
24fa8a6e04 | ||
|
|
923f204478 | ||
|
|
a69d37f2ee | ||
|
|
2e715149db | ||
|
|
26d067d301 | ||
|
|
c1df8cedb8 | ||
|
|
2189f8cc58 | ||
|
|
6cd74c86ae | ||
|
|
88657c2def | ||
|
|
68b7915bc6 | ||
|
|
f6e66faf8f | ||
|
|
ee0bb2c636 | ||
|
|
1edb245e85 | ||
|
|
7a010d5a72 | ||
|
|
9e4b7488b3 | ||
|
|
18cf40a521 | ||
|
|
ed6d806617 | ||
|
|
4f5e421539 | ||
|
|
72868ac7c5 | ||
|
|
5dea503cbd | ||
|
|
8f8292afb3 | ||
|
|
d505f75c9b | ||
|
|
a8a2729531 | ||
|
|
9306ee7a5d | ||
|
|
e8c8c7d940 | ||
|
|
871c9c39dc | ||
|
|
ecc955b4cd | ||
|
|
7e5f7eb0aa | ||
|
|
1c3407c05f | ||
|
|
26fb856ffc | ||
|
|
9d2b15ba26 | ||
|
|
28cdc1df1a | ||
|
|
0c501f84b9 | ||
|
|
c6d5ea5934 | ||
|
|
047f939b63 | ||
|
|
3d693372ad | ||
|
|
a33802d3e5 | ||
|
|
d483244ecb | ||
|
|
8e39e0d363 | ||
|
|
2762830b10 | ||
|
|
df1df4b8e1 | ||
|
|
210e86641b | ||
|
|
a8a49e3c65 | ||
|
|
bfe26eaf84 | ||
|
|
60a08debff | ||
|
|
132bd9259e | ||
|
|
5eb4dcf6bf | ||
|
|
295fb67225 | ||
|
|
a2c271d677 | ||
|
|
6901f6187d | ||
|
|
e2ee6bacd0 | ||
|
|
bc6c24fc4e | ||
|
|
58f72a073d | ||
|
|
c83a75766c | ||
|
|
c016fb531c | ||
|
|
1615745a1f | ||
|
|
dc50382d22 | ||
|
|
a5b84379f4 | ||
|
|
d168261fa5 | ||
|
|
e83760388f | ||
|
|
82d19a5433 | ||
|
|
e3e39728ce | ||
|
|
76dfb8ef31 | ||
|
|
544cf566b5 | ||
|
|
da88313488 | ||
|
|
2aa0720e93 | ||
|
|
be536ee32e | ||
|
|
339e06634f | ||
|
|
ff9527ea52 | ||
|
|
e2369147b1 | ||
|
|
5e559c4444 | ||
|
|
e30762ea43 | ||
|
|
1fa4a078d8 | ||
|
|
3e87fa8aa5 | ||
|
|
e52ca120c4 | ||
|
|
3eadbba8a1 | ||
|
|
41f9451070 | ||
|
|
d2f5bfdbfd | ||
|
|
b4a1953372 | ||
|
|
db1342e5ff | ||
|
|
86c5057d62 | ||
|
|
779dea8408 | ||
|
|
544f374e44 | ||
|
|
b55d783cc2 | ||
|
|
4e948b2b48 | ||
|
|
b6bce374ad | ||
|
|
6cbd8abdca | ||
|
|
5947f38421 | ||
|
|
29b24e391a | ||
|
|
0cdb80a9e0 | ||
|
|
a8907d6fb1 | ||
|
|
4851a66c57 | ||
|
|
1d5c2091cc | ||
|
|
e5abcaf7c8 | ||
|
|
d5733eed90 | ||
|
|
a22cc0dc4e | ||
|
|
276f6a1c6f | ||
|
|
e161e32b63 | ||
|
|
e31a351c56 | ||
|
|
f728c0172b | ||
|
|
136644d45e | ||
|
|
24308612fd | ||
|
|
1ae3e89b57 | ||
|
|
c1bb6ca349 | ||
|
|
b03d1b9cc7 | ||
|
|
3ce0485742 | ||
|
|
100651a74c | ||
|
|
5138e30a2a | ||
|
|
a69fa591da | ||
|
|
7f2a3eb2ca | ||
|
|
e45cc8cdc0 | ||
|
|
3c8edd7b3a | ||
|
|
855832d08b | ||
|
|
9f07981fe5 | ||
|
|
a27d6d3c7e | ||
|
|
2a4da355f1 | ||
|
|
ca47fbc16b | ||
|
|
5a3c3de1a4 | ||
|
|
ff9062ac17 | ||
|
|
9486fc3f98 | ||
|
|
28e873b5e0 | ||
|
|
39d532ca3f | ||
|
|
07a602e404 | ||
|
|
a448e48cdb | ||
|
|
092a3ee21a | ||
|
|
88cfcdbd2e | ||
|
|
f3378c7b6f | ||
|
|
50545c1486 | ||
|
|
ff678d06ea | ||
|
|
6345449d50 | ||
|
|
8951266183 | ||
|
|
6911624d4d | ||
|
|
da6efff220 | ||
|
|
cc99aff03b | ||
|
|
cdc5210c25 | ||
|
|
4838833d72 | ||
|
|
0fad184fda | ||
|
|
6d8c96d665 | ||
|
|
e6c1a3b052 | ||
|
|
71add2e391 | ||
|
|
61abd2a48f | ||
|
|
6ba2f49866 | ||
|
|
2fd2cf9074 | ||
|
|
d0d40f248d | ||
|
|
cc2a2ca153 | ||
|
|
2307b639dd | ||
|
|
1e0ea36a81 | ||
|
|
4e1250a6ba | ||
|
|
56d2852004 | ||
|
|
3fa8edcb1a | ||
|
|
edb14ea03c | ||
|
|
a2f554bc1e | ||
|
|
a289bbfb93 | ||
|
|
5486c2040d | ||
|
|
84c95be03f | ||
|
|
d9e6c6c4c5 | ||
|
|
25559e758c | ||
|
|
89ce4aee4a | ||
|
|
ba9d2e7919 | ||
|
|
9d0c742f34 | ||
|
|
1e69961bc7 | ||
|
|
e4ddc4c14e | ||
|
|
be149bab3d | ||
|
|
1b4bbe19e3 | ||
|
|
2e6b602a04 | ||
|
|
5b9012152c | ||
|
|
efd20bb4f7 | ||
|
|
7d595e4774 | ||
|
|
7b4c3085c0 | ||
|
|
7045a5dcea | ||
|
|
777bae87b5 | ||
|
|
06ae867c2f | ||
|
|
77ebd3d202 | ||
|
|
227f999001 | ||
|
|
e37782c2ce | ||
|
|
f210be5ab4 | ||
|
|
12b1a0639e | ||
|
|
34098b871b | ||
|
|
cc2ebff0e3 | ||
|
|
7c21766dd5 | ||
|
|
965dfd2d39 | ||
|
|
49e598b4b7 | ||
|
|
40f13f3afa | ||
|
|
356e2054fa | ||
|
|
dab22e927b | ||
|
|
a1f60be674 | ||
|
|
e0ec59d30b | ||
|
|
abc1c9ef7e | ||
|
|
3e4a778978 | ||
|
|
ca85495a1c | ||
|
|
41dc03222c | ||
|
|
3cf56d8270 | ||
|
|
9436564a76 | ||
|
|
142065d58b | ||
|
|
2ffd3d95bb | ||
|
|
6b9f87dbea | ||
|
|
3b2aee92fb | ||
|
|
12dac8ee62 | ||
|
|
f8df77051b | ||
|
|
fd9c0f6be4 | ||
|
|
cf05510b0d | ||
|
|
207923a1b6 | ||
|
|
fbbcb058fa | ||
|
|
cef1736de2 | ||
|
|
da10cfc062 | ||
|
|
7cbf2533fe | ||
|
|
1a9d1c235c | ||
|
|
5c8a19f54f | ||
|
|
44fe593f8a | ||
|
|
b8d1af4e50 | ||
|
|
18f189b887 | ||
|
|
c9776c97de | ||
|
|
57a4241749 | ||
|
|
163ff997b1 | ||
|
|
449e9879ce | ||
|
|
84350c3776 | ||
|
|
91027ae9a4 | ||
|
|
9db80785a5 | ||
|
|
a876817127 | ||
|
|
3a0c70aef7 | ||
|
|
bbb6a73af1 | ||
|
|
51119ec213 | ||
|
|
2690ee46f2 | ||
|
|
bc2e456a6a | ||
|
|
b27c3719f0 | ||
|
|
147482d5e8 | ||
|
|
514403e1ba | ||
|
|
109d3aad6a | ||
|
|
15779e204d | ||
|
|
49e403f822 | ||
|
|
ffb5b76f4e | ||
|
|
b21932ffd9 | ||
|
|
46d8f1c8d9 | ||
|
|
8caffac3d7 | ||
|
|
40da5360a4 | ||
|
|
5b9f91991f | ||
|
|
a565f2d984 | ||
|
|
0b7269a4b8 | ||
|
|
c7805b4b40 | ||
|
|
e6b65be75a | ||
|
|
7043fe592c | ||
|
|
f7d35c41ae | ||
|
|
afb4942a72 | ||
|
|
4f7bd0918b | ||
|
|
fb8d34254a | ||
|
|
2a390c4c25 | ||
|
|
040fbf72e9 | ||
|
|
395e9aea3c | ||
|
|
bb3508327f | ||
|
|
068ae45f6c | ||
|
|
02ff0f658b | ||
|
|
3c14d9b524 | ||
|
|
8de00babad | ||
|
|
59768f0514 | ||
|
|
e185fe30f8 | ||
|
|
0d20be43d4 | ||
|
|
356632063c | ||
|
|
3a592ddb59 | ||
|
|
652ade33b5 | ||
|
|
05e6188921 | ||
|
|
b222ebed80 | ||
|
|
179d9b9ae1 | ||
|
|
ab7f50d2c8 | ||
|
|
51cc3c7cd1 | ||
|
|
d51f14529a | ||
|
|
563dfc3d4d | ||
|
|
3ad72a04af | ||
|
|
d43130f779 | ||
|
|
ce997ff4fd | ||
|
|
7a5d530358 | ||
|
|
dd0520f334 | ||
|
|
aab9143c13 | ||
|
|
b689ec2ef4 | ||
|
|
c9c2da444b | ||
|
|
9c931c175c | ||
|
|
39db8f1768 | ||
|
|
f7ed9ff131 | ||
|
|
4423126272 | ||
|
|
5294bc510b | ||
|
|
1b599315a2 | ||
|
|
b561655503 | ||
|
|
64923382b4 | ||
|
|
5ef6525be7 | ||
|
|
6dc066f7dd | ||
|
|
380cf61811 | ||
|
|
4624ca952e | ||
|
|
6f1475e944 | ||
|
|
22256eec46 | ||
|
|
31a5de2577 | ||
|
|
269e008541 | ||
|
|
79d866e9b5 | ||
|
|
6d4341f8a4 | ||
|
|
61dd96a29e | ||
|
|
9e2a8e0fb2 | ||
|
|
82ff7afe2b | ||
|
|
0017eaebfc | ||
|
|
fa729854b8 | ||
|
|
5644aebac7 | ||
|
|
941f5e43b4 | ||
|
|
a595407d39 | ||
|
|
60417b361e | ||
|
|
c3adf1724c | ||
|
|
435bbff3b0 | ||
|
|
706ea0dd7e | ||
|
|
e7c37a9d54 | ||
|
|
a7f66d648e | ||
|
|
013dc818e3 | ||
|
|
9430670019 | ||
|
|
67c795b610 | ||
|
|
42158401ac | ||
|
|
06a9891d77 | ||
|
|
c53e5325c3 | ||
|
|
6161d531fc | ||
|
|
ad52e75e97 | ||
|
|
2db7b6756d | ||
|
|
2f70c6c8a7 | ||
|
|
8fd8943460 | ||
|
|
695b533be1 | ||
|
|
491e9fb3e9 | ||
|
|
4d8bccc861 | ||
|
|
88b5fea2f9 | ||
|
|
91e886c564 | ||
|
|
1e8ff58d82 | ||
|
|
0b84052458 | ||
|
|
4abc92ef44 | ||
|
|
d12833afc4 | ||
|
|
8de34e23a3 | ||
|
|
3158caa1be | ||
|
|
8a6d13c416 | ||
|
|
90fe2cfb36 | ||
|
|
c91d5ebec1 | ||
|
|
5a00d5e117 | ||
|
|
1b938d9d5b | ||
|
|
62cbbef068 | ||
|
|
684547a66d | ||
|
|
261569c9fd | ||
|
|
e8d3ad369a | ||
|
|
f81ae009f9 | ||
|
|
8b954a2937 | ||
|
|
1e58f48f1d | ||
|
|
1a0e9905fb | ||
|
|
8a04a843f6 | ||
|
|
814e57fbd0 | ||
|
|
f69389a76b | ||
|
|
3f9b1357ff | ||
|
|
e0cb098823 | ||
|
|
bc470533bf | ||
|
|
84d4e7efe3 | ||
|
|
39b900243e | ||
|
|
017aedadd2 | ||
|
|
7c06399818 | ||
|
|
26646997b0 | ||
|
|
1b3f651c7e | ||
|
|
23b002adaa | ||
|
|
d9118a8653 | ||
|
|
245714aa0c | ||
|
|
2618620d04 | ||
|
|
1d3d0585a2 | ||
|
|
2e263b1cdc | ||
|
|
f4aece9488 | ||
|
|
c1928689da | ||
|
|
6972b3458d | ||
|
|
bb6634bbb0 | ||
|
|
1b2a6bdc72 | ||
|
|
901c12671e | ||
|
|
3c564fd613 |
17
.editorconfig
Normal file
17
.editorconfig
Normal file
@@ -0,0 +1,17 @@
|
||||
# SPDX-FileCopyrightText: 2024 Florian Müllner <fmuellner@gnome.org>
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
|
||||
indent_style = space
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.js]
|
||||
indent_size = 4
|
||||
|
||||
[meson.build]
|
||||
indent_size = 2
|
||||
12
.gitignore
vendored
Normal file
12
.gitignore
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
# SPDX-FileCopyrightText: 2011 Giovanni Campagna <gcampagna@src.gnome.org>
|
||||
# SPDX-FileCopyrightText: 2023 Florian Müllner <fmuellner@gnome.org>
|
||||
#
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
|
||||
po/gnome-shell-extensions.pot
|
||||
zip-files/
|
||||
*~
|
||||
*.patch
|
||||
*.sw?
|
||||
.buildconfig
|
||||
.vscode
|
||||
@@ -4,7 +4,9 @@
|
||||
|
||||
include:
|
||||
- remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/bbe5232986c9b98eb1efe62484e07216f7d1a4df/templates/fedora.yml'
|
||||
- remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/6f86b8bcb0cd5168c32779c4fea9a893c4a0c046/templates/ci-fairy.yml"
|
||||
- remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/bc70242ffb8402243e934659ecc1a2d1c89eca2b/templates/ci-fairy.yml"
|
||||
- project: 'Infrastructure/openshift-images/gnome-release-service'
|
||||
file: '/ci-templates/release-module.yml'
|
||||
|
||||
stages:
|
||||
- pre_review
|
||||
@@ -14,7 +16,7 @@ stages:
|
||||
- deploy
|
||||
|
||||
default:
|
||||
image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/35:2022-02-18.0
|
||||
image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/40:2024-07-11.0
|
||||
# Cancel jobs if newer commits are pushed to the branch
|
||||
interruptible: true
|
||||
# Auto-retry jobs in case of infra failures
|
||||
@@ -32,6 +34,8 @@ variables:
|
||||
|
||||
workflow:
|
||||
rules:
|
||||
- if: '$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"'
|
||||
when: never
|
||||
- if: '$CI_MERGE_REQUEST_IID'
|
||||
- if: '$CI_COMMIT_TAG'
|
||||
- if: '$CI_COMMIT_BRANCH'
|
||||
@@ -44,13 +48,6 @@ workflow:
|
||||
- if: '$CI_COMMIT_BRANCH =~ /^gnome-[0-9-]+$/'
|
||||
- when: 'manual'
|
||||
|
||||
.gnome-shell-extensions.fedora:34:
|
||||
variables:
|
||||
FDO_DISTRIBUTION_VERSION: 34
|
||||
FDO_DISTRIBUTION_TAG: '2021-08-31.0'
|
||||
FDO_DISTRIBUTION_PACKAGES: >
|
||||
meson git gettext sassc
|
||||
|
||||
.prereview_req: &prereview_req
|
||||
needs:
|
||||
- check_commit_log
|
||||
@@ -102,13 +99,6 @@ check-reuse:
|
||||
script:
|
||||
- reuse lint
|
||||
|
||||
build-fedora-container:
|
||||
extends:
|
||||
- .fdo.container-build@fedora@x86_64
|
||||
- .gnome-shell-extensions.fedora:34
|
||||
stage: prepare
|
||||
<<: *prereview_req
|
||||
|
||||
js_check:
|
||||
stage: review
|
||||
<<: *prereview_req
|
||||
@@ -127,6 +117,15 @@ eslint:
|
||||
reports:
|
||||
junit: ${LINT_LOG}
|
||||
|
||||
potfile_js_check:
|
||||
stage: review
|
||||
<<: *prereview_req
|
||||
script:
|
||||
- gjs-check-potfiles
|
||||
artifacts:
|
||||
reports:
|
||||
junit: gjs-check-potfiles.junit.xml
|
||||
|
||||
build-bundles:
|
||||
stage: build
|
||||
<<: *prereview_req
|
||||
@@ -139,12 +138,8 @@ build-bundles:
|
||||
- zip-files/
|
||||
|
||||
fedora-build:
|
||||
extends:
|
||||
- .fdo.distribution-image@fedora
|
||||
- .gnome-shell-extensions.fedora:34
|
||||
stage: build
|
||||
needs:
|
||||
- build-fedora-container
|
||||
<<: *prereview_req
|
||||
script:
|
||||
- meson setup build --werror -Dextension_set=all -Dclassic_mode=true
|
||||
- meson compile -C build
|
||||
@@ -154,10 +149,22 @@ fedora-build:
|
||||
paths:
|
||||
- build
|
||||
|
||||
fedora-distinfo:
|
||||
stage: deploy
|
||||
needs:
|
||||
- fedora-build
|
||||
script:
|
||||
- .gitlab-ci/export-artifact-path build > dist.env
|
||||
artifacts:
|
||||
reports:
|
||||
dotenv: dist.env
|
||||
paths:
|
||||
- build
|
||||
- dist.env
|
||||
rules:
|
||||
- if: '$CI_COMMIT_TAG'
|
||||
|
||||
fedora-dist:
|
||||
extends:
|
||||
- .fdo.distribution-image@fedora
|
||||
- .gnome-shell-extensions.fedora:34
|
||||
stage: deploy
|
||||
needs:
|
||||
- fedora-build
|
||||
@@ -173,9 +180,21 @@ fedora-dist:
|
||||
|
||||
fedora-dist-tarball:
|
||||
extends: fedora-dist
|
||||
needs:
|
||||
- fedora-distinfo
|
||||
artifacts:
|
||||
expose_as: 'Get tarball here'
|
||||
paths:
|
||||
- build/meson-dist/$CI_PROJECT_NAME-$CI_COMMIT_TAG.tar.xz
|
||||
- $TARBALL_ARTIFACT_PATH
|
||||
reports:
|
||||
dotenv: dist.env
|
||||
rules:
|
||||
- if: '$CI_COMMIT_TAG'
|
||||
|
||||
release-module:
|
||||
stage: deploy
|
||||
needs:
|
||||
- fedora-dist-tarball
|
||||
extends: .release-module
|
||||
rules:
|
||||
- if: '$CI_COMMIT_TAG'
|
||||
|
||||
21
.gitlab-ci/export-artifact-path
Executable file
21
.gitlab-ci/export-artifact-path
Executable file
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/gjs -m
|
||||
// SPDX-FileCopyrightText: 2024 Florian Müllner <fmuellner@gnome.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
import Gio from 'gi://Gio';
|
||||
import {programArgs, programInvocationName, exit} from 'system';
|
||||
|
||||
const [buildDir] = programArgs;
|
||||
if (!buildDir) {
|
||||
printerr(`usage: ${programInvocationName} <build-dir>`);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
const subprocess = Gio.Subprocess.new(
|
||||
['meson', 'introspect', '--projectinfo', buildDir],
|
||||
Gio.SubprocessFlags.STDOUT_PIPE);
|
||||
const [, out] = subprocess.communicate_utf8(null, null);
|
||||
|
||||
const {descriptive_name, version} = JSON.parse(out);
|
||||
print(`TARBALL_ARTIFACT_PATH=${buildDir}/meson-dist/${descriptive_name}-${version}.tar.xz`);
|
||||
@@ -20,9 +20,6 @@ need in gnome-shell.
|
||||
Generally, we follow [GJS coding style][coding-style], which in short is:
|
||||
indent 4 spaces, no tabs, space after comma, no space after function call.
|
||||
|
||||
The Emacs mode line for this
|
||||
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
||||
|
||||
Imports should be at the top, in two groups, one for standard
|
||||
imports (like imports.lang or imports.dbus) and introspection,
|
||||
the other for Shell API. Within the same group, put everything
|
||||
|
||||
152
NEWS
152
NEWS
@@ -1,22 +1,146 @@
|
||||
45.2
|
||||
47.2
|
||||
====
|
||||
* places-menu: Fix a11y labelling [Florian; #542]
|
||||
* screenshot-window-sizer: Mention shortcut in description [Florian; !358]
|
||||
* Misc. bug fixes and cleanups [Florian; !353, !354]
|
||||
|
||||
Contributors:
|
||||
Florian Müllner
|
||||
|
||||
Translators:
|
||||
Fabio Tomat [fur], Nathan Follens [nl], Марко Костић [sr]
|
||||
|
||||
47.1
|
||||
====
|
||||
* classic: Add missing top-bar indicators [Florian; !339]
|
||||
* window-list: Fix window state styling [Florian; !342]
|
||||
* window-list: Fix "ignore-workspace" setting getting reset [Florian; !341]
|
||||
* Misc. bug fixes and cleanups [Florian; !337, !338, !345, !347, !349]
|
||||
|
||||
Contributors:
|
||||
Florian Müllner
|
||||
|
||||
47.0
|
||||
====
|
||||
|
||||
Translators:
|
||||
twlvnn kraftwerk [bg], Alexander Shopov [bg], Fran Dieguez [gl],
|
||||
Aurimas Černius [lt], Daniel [es], Andika Triwidada [id],
|
||||
Andi Chandler [en_GB], Ask Hjorth Larsen [da], Aefgh Threenine [th],
|
||||
Dušan Kazik [sk], Rūdolfs Mazurs [lv], Irénée THIRION [fr]
|
||||
|
||||
47.rc
|
||||
=====
|
||||
* Misc. bug fixes and cleanups [Sophie; !333]
|
||||
|
||||
Contributors:
|
||||
Sophie Herold
|
||||
|
||||
Translators:
|
||||
Daniel Șerbănescu [ro], Giannis Antypas [el], Ekaterine Papava [ka],
|
||||
Jordi Mas i Hernandez [ca], Yuri Chornoivan [uk], Jiri Grönroos [fi],
|
||||
Daniel Rusek [cs], Vasil Pupkin [be], Luming Zh [zh_CN], Brage Fuglseth [nb],
|
||||
Asier Sarasua Garmendia [eu], Danial Behzadi [fa], Rafael Fontenelle [pt_BR],
|
||||
Quentin PAGÈS [oc], Anders Jonsson [sv], Jürgen Benvenuti [de],
|
||||
Changwoo Ryu [ko], Hugo Carvalho [pt], Piotr Drąg [pl], Sabri Ünal [tr]
|
||||
|
||||
47.beta
|
||||
=======
|
||||
* window-list: Modernize styling [Jakub; !330]
|
||||
* Include "status-icons" extension [Florian; !194]
|
||||
* Misc. bug fixes and cleanups [Florian; !328, !331, !327]
|
||||
|
||||
Contributors:
|
||||
Florian Müllner, Jakub Steiner
|
||||
|
||||
Translators:
|
||||
Sabri Ünal [tr], Chao-Hsiung Liao [zh_TW]
|
||||
|
||||
47.alpha
|
||||
========
|
||||
* Improve workspace previews in window-list and workspace-indicator
|
||||
[Florian; !307, !316]
|
||||
* apps-menu: Fix a11y of category labels [Florian; !319]
|
||||
* window-list: Fix long-press support [Florian; !320]
|
||||
* window-list: Animate transitions [Florian; !325]
|
||||
* Misc. bug fixes and cleanups [Florian; !315, !321, !324]
|
||||
|
||||
Contributors:
|
||||
Florian Müllner
|
||||
|
||||
Translators:
|
||||
Jordi Mas i Hernandez [ca], Martin [sl], Hugo Carvalho [pt], Jose Riha [sk],
|
||||
Scrambled 777 [hi], Artur S0 [ru], Милош Поповић [sr], Yosef Or Boczko [he],
|
||||
Balázs Úr [hu]
|
||||
|
||||
46.1
|
||||
====
|
||||
* screenshot-window-sizer: Add flathub-recommended size [Florian; !317]
|
||||
|
||||
Contributors:
|
||||
Florian Müllner
|
||||
|
||||
Translators:
|
||||
Rachida SACI [kab], Matheus Polkorny [pt_BR], Fabio Tomat [fur]
|
||||
|
||||
46.0
|
||||
====
|
||||
* system-monitor: Fix net speed [Florian; !313]
|
||||
* Misc. bug fixes and cleanups [Aral; !311]
|
||||
|
||||
Contributors:
|
||||
Aral Balkan, Florian Müllner
|
||||
|
||||
Translators:
|
||||
Anders Jonsson [sv], Piotr Drąg [pl], Balázs Úr [hu], Milo Casagrande [it],
|
||||
Quentin PAGÈS [oc], Athmane MOKRAOUI [kab], Changwoo Ryu [ko],
|
||||
Ask Hjorth Larsen [da]
|
||||
|
||||
46.rc
|
||||
=====
|
||||
* Fix window previews in workspace indicator [Florian; !304]
|
||||
* Fix menu ornament in workspace indicator [Florian; !305]
|
||||
* Misc. bug fixes and cleanups [Florian; !306, !309]
|
||||
|
||||
Contributors:
|
||||
Florian Müllner
|
||||
|
||||
Translators:
|
||||
Danial Behzadi [fa], Ekaterine Papava [ka], Sabri Ünal [tr], Artur S0 [ru],
|
||||
Yuri Chornoivan [uk], Vasil Pupkin [be], Asier Sarasua Garmendia [eu],
|
||||
Yaron Shahrabani [he], Brage Fuglseth [nb], Nathan Follens [nl],
|
||||
Aurimas Černius [lt], Matej Urbančič [sl], Boyuan Yang [zh_CN],
|
||||
Kukuh Syafaat [id], Fran Dieguez [gl], Andi Chandler [en_GB],
|
||||
Baurzhan Muftakhidinov [kk], Rūdolfs Mazurs [lv], Guillaume Bernard [fr],
|
||||
Daniel Mustieles [es], Jiri Grönroos [fi]
|
||||
|
||||
46.beta
|
||||
=======
|
||||
* apps-menu: Rename Applications to Apps [Allan; !299]
|
||||
* Misc. bug fixes and cleanups [Florian; !296, !297, !300, !301, !302]
|
||||
|
||||
Contributors:
|
||||
Allan Day, Florian Müllner
|
||||
|
||||
Translators:
|
||||
Gabriel Brand [de], Daniel Rusek [cs], Fran Dieguez [gl],
|
||||
Aefgh Threenine [th], Vasil Pupkin [be], Artur S0 [ru], Yosef Or Boczko [he],
|
||||
Sabri Ünal [tr]
|
||||
|
||||
46.alpha
|
||||
========
|
||||
* workspace-indicator: Fix initial preview visibility [Florian; !280, !292]
|
||||
* screenshot-window-sizer: Fix cycling between sizes backwards [Florian; !284]
|
||||
* Add back overview in Classic session [Florian; !287]
|
||||
* Allow running Classic session headless [Jonas; !289]
|
||||
* window-list: Fix buttons not being clickable at the screen edge
|
||||
[Florian; !291]
|
||||
* window-list: Really fix initial preview visibility [Florian; !292]
|
||||
* workspace-indicator: Really fix initial preview visibility [Florian; !292]
|
||||
* Misc. bug fixes and cleanups [Florian; !290]
|
||||
* Add system-monitor extension [Florian; !277]
|
||||
* Fixed crash [Florian; !290]
|
||||
* Misc. bug fixes and cleanups [Florian; !276, !275, !278, !281, !286, !288]
|
||||
|
||||
Contributors:
|
||||
Florian Müllner
|
||||
|
||||
45.1
|
||||
====
|
||||
* workspace-indicator: Fix initial preview visibility [Florian; !280]
|
||||
* screenshot-window-sizer: Fix cycling between sizes backwards [Florian; !284]
|
||||
* Misc. bug fixes and cleanups [Florian; !276, !275, !278, !281]
|
||||
|
||||
Contributors:
|
||||
Florian Müllner
|
||||
Jonas Ådahl, Florian Müllner
|
||||
|
||||
Translators:
|
||||
Kristjan SCHMIDT [eo], Brage Fuglseth [nb]
|
||||
|
||||
@@ -51,7 +51,7 @@ GSettings key.
|
||||
|
||||
* screenshot-window-sizer
|
||||
|
||||
Adds a shortcut for resizing the focus window to a size that is suitable for GNOME Software screenshots
|
||||
Adds a shortcut for resizing the focus window to a size that is suitable for GNOME Software screenshots. Ctrl + Alt + s cycles forwards through the available sizes and Ctrl + Alt + Shift + s cycles backwards.
|
||||
|
||||
* user-theme
|
||||
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
{
|
||||
"parentMode": "user",
|
||||
"colorScheme": "force-light",
|
||||
"hasOverview": false,
|
||||
"showWelcomeDialog": false,
|
||||
"enabledExtensions": [@CLASSIC_EXTENSIONS@],
|
||||
"panel": { "left": [],
|
||||
"panel": { "left": ["activities"],
|
||||
"center": [],
|
||||
"right": ["a11y", "keyboard", "dateMenu", "quickSettings"]
|
||||
"right": ["screenRecording", "screenSharing", "dwellClick", "a11y", "keyboard", "dateMenu", "quickSettings"]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,3 +6,4 @@ TryExec=gnome-session
|
||||
Type=Application
|
||||
DesktopNames=GNOME-Classic;GNOME;
|
||||
X-GDM-SessionRegisters=true
|
||||
X-GDM-CanRunHeadless=true
|
||||
|
||||
@@ -6,3 +6,4 @@ TryExec=gnome-session
|
||||
Type=Application
|
||||
DesktopNames=GNOME-Classic;GNOME;
|
||||
X-GDM-SessionRegisters=true
|
||||
X-GDM-CanRunHeadless=true
|
||||
|
||||
@@ -10,33 +10,33 @@ session_desktops = [
|
||||
session_desktop_base + '-wayland',
|
||||
]
|
||||
|
||||
foreach name: session_desktops
|
||||
session_desktop = name + '.desktop'
|
||||
if name.endswith('-xorg')
|
||||
session_instdir = xsessiondir
|
||||
elif name.endswith('-wayland')
|
||||
session_instdir = wlsessiondir
|
||||
else
|
||||
# FIXME: The same target can not be copied into two directories.
|
||||
# There is a workaround in meson/session-post-install.py until proper
|
||||
# solution arises:
|
||||
# https://github.com/mesonbuild/meson/issues/2416
|
||||
session_instdir = xsessiondir
|
||||
#session_instdir = [ xesssiondir, wlsessiondir ]
|
||||
endif
|
||||
i18n.merge_file(
|
||||
input: session_desktop + '.in',
|
||||
output: session_desktop,
|
||||
po_dir: '../po',
|
||||
install: true,
|
||||
install_dir: session_instdir,
|
||||
type: 'desktop'
|
||||
)
|
||||
foreach name : session_desktops
|
||||
session_desktop = name + '.desktop'
|
||||
if name.endswith('-xorg')
|
||||
session_instdir = xsessiondir
|
||||
elif name.endswith('-wayland')
|
||||
session_instdir = wlsessiondir
|
||||
else
|
||||
# FIXME: The same target can not be copied into two directories.
|
||||
# There is a workaround in meson/session-post-install.py until proper
|
||||
# solution arises:
|
||||
# https://github.com/mesonbuild/meson/issues/2416
|
||||
session_instdir = xsessiondir
|
||||
#session_instdir = [ xesssiondir, wlsessiondir ]
|
||||
endif
|
||||
i18n.merge_file(
|
||||
input: session_desktop + '.in',
|
||||
output: session_desktop,
|
||||
po_dir: '../po',
|
||||
install: true,
|
||||
install_dir: session_instdir,
|
||||
type: 'desktop',
|
||||
)
|
||||
endforeach
|
||||
|
||||
classic_uuids = []
|
||||
foreach e : classic_extensions
|
||||
classic_uuids += e + uuid_suffix
|
||||
classic_uuids += e + uuid_suffix
|
||||
endforeach
|
||||
|
||||
mode_conf = configuration_data()
|
||||
@@ -47,7 +47,7 @@ configure_file(
|
||||
input: mode_file + '.in',
|
||||
output: mode_file,
|
||||
configuration: mode_conf,
|
||||
install_dir: modedir
|
||||
install_dir: modedir,
|
||||
)
|
||||
|
||||
classic_override = '00_org.gnome.shell.extensions.classic.gschema.override'
|
||||
|
||||
1033
debian/changelog
vendored
Normal file
1033
debian/changelog
vendored
Normal file
File diff suppressed because it is too large
Load Diff
309
debian/control
vendored
Normal file
309
debian/control
vendored
Normal file
@@ -0,0 +1,309 @@
|
||||
Source: gnome-shell-extensions
|
||||
Section: gnome
|
||||
Priority: optional
|
||||
Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
|
||||
Uploaders: Iain Lane <laney@debian.org>, Jeremy Bícha <jbicha@ubuntu.com>, Laurent Bigonville <bigon@debian.org>, Marco Trevisan (Treviño) <marco@ubuntu.com>
|
||||
Build-Depends: debhelper-compat (= 13),
|
||||
dh-sequence-gnome,
|
||||
libglib2.0-bin,
|
||||
meson (>= 1.1.0),
|
||||
sassc
|
||||
Rules-Requires-Root: no
|
||||
Standards-Version: 4.7.0
|
||||
Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-shell-extensions
|
||||
Vcs-Git: https://salsa.debian.org/gnome-team/gnome-shell-extensions.git
|
||||
Homepage: https://wiki.gnome.org/Projects/GnomeShell/Extensions
|
||||
|
||||
Package: gnome-shell-extensions
|
||||
Section: oldlibs
|
||||
Architecture: all
|
||||
Depends: gnome-shell-extension-apps-menu,
|
||||
gnome-shell-extension-auto-move-windows,
|
||||
gnome-shell-extension-drive-menu,
|
||||
gnome-shell-extension-launch-new-instance,
|
||||
gnome-shell-extension-light-style,
|
||||
gnome-shell-extension-native-window-placement,
|
||||
gnome-shell-extension-places-menu,
|
||||
gnome-shell-extensions-common,
|
||||
gnome-shell-extension-screenshot-window-sizer,
|
||||
gnome-shell-extension-system-monitor,
|
||||
gnome-shell-extension-user-theme,
|
||||
gnome-shell-extension-window-list,
|
||||
gnome-shell-extension-windows-navigator,
|
||||
gnome-shell-extension-workspace-indicator,
|
||||
${misc:Depends}
|
||||
Recommends: gnome-classic
|
||||
Description: Extensions to extend functionality of GNOME Shell
|
||||
GNOME Shell is extensible using extensions. This package contains
|
||||
all the official GNOME Shell extensions.
|
||||
.
|
||||
This is an empty transitional package and will likely be removed
|
||||
in the future.
|
||||
|
||||
Package: gnome-classic
|
||||
Architecture: all
|
||||
Depends: fonts-cantarell,
|
||||
gnome-session,
|
||||
gnome-session-bin (>= 46),
|
||||
gnome-session-common (>= 46),
|
||||
gnome-shell-extension-apps-menu,
|
||||
gnome-shell-extension-places-menu,
|
||||
gnome-shell-extension-launch-new-instance,
|
||||
gnome-shell-extension-window-list,
|
||||
xdg-desktop-portal-gnome,
|
||||
${misc:Depends}
|
||||
Recommends: gnome-classic-xsession
|
||||
Provides: x-session-manager
|
||||
Breaks: gnome-shell-extensions (<< 47)
|
||||
Replaces: gnome-shell-extensions (<< 47)
|
||||
Description: Classic version of the GNOME desktop
|
||||
This package contains the required components for the GNOME Classic
|
||||
session, based on the GNOME Shell. It can be started from a display
|
||||
manager such as GDM, and requires 3D acceleration to work properly.
|
||||
.
|
||||
The GNOME Shell provides core interface functions like switching
|
||||
windows, launching applications or see your notifications. It takes
|
||||
advantage of the capabilities of modern graphics hardware and
|
||||
introduces innovative user interface concepts to provide a
|
||||
delightful and easy to use experience. GNOME Shell is the defining
|
||||
technology of the GNOME user experience.
|
||||
.
|
||||
GNOME Classic provides an alternative version of GNOME Shell that uses
|
||||
more traditional design elements.
|
||||
|
||||
Package: gnome-classic-xsession
|
||||
Architecture: all
|
||||
Depends: gnome-classic,
|
||||
${misc:Depends}
|
||||
Provides: x-session-manager
|
||||
Breaks: gnome-shell-extensions (<< 47)
|
||||
Replaces: gnome-shell-extensions (<< 47)
|
||||
Description: Classic version of the GNOME desktop using Xorg
|
||||
This package contains the required components for the GNOME Classic on Xorg
|
||||
session, based on the GNOME Shell. It can be started from a display
|
||||
manager such as GDM, and requires 3D acceleration to work properly.
|
||||
.
|
||||
The GNOME Shell provides core interface functions like switching
|
||||
windows, launching applications or see your notifications. It takes
|
||||
advantage of the capabilities of modern graphics hardware and
|
||||
introduces innovative user interface concepts to provide a
|
||||
delightful and easy to use experience. GNOME Shell is the defining
|
||||
technology of the GNOME user experience.
|
||||
.
|
||||
GNOME Classic provides an alternative version of GNOME Shell that uses
|
||||
more traditional design elements.
|
||||
|
||||
Package: gnome-shell-extensions-common
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends}
|
||||
Breaks: gnome-shell-extensions (<< 47)
|
||||
Replaces: gnome-shell-extensions (<< 47)
|
||||
Description: common files for official GNOME Shell extensions
|
||||
GNOME Shell is extensible using extensions. This package contains
|
||||
common data files such as translations for the official GNOME Shell
|
||||
extensions.
|
||||
|
||||
Package: gnome-shell-extension-apps-menu
|
||||
Architecture: all
|
||||
Depends: gir1.2-gmenu-3.0,
|
||||
gnome-shell (<< ${gnome:NextVersion}),
|
||||
gnome-shell (>= ${gnome:Version}),
|
||||
gnome-shell-extensions-common (= ${source:Version}),
|
||||
${misc:Depends}
|
||||
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
|
||||
Breaks: gnome-shell-extensions (<< 47)
|
||||
Replaces: gnome-shell-extensions (<< 47)
|
||||
Description: Category based app menu for GNOME Shell
|
||||
GNOME Shell is extensible using extensions. This package contains an
|
||||
official GNOME Shell extension to add a category based Apps menu
|
||||
similar to what is found in classic desktops.
|
||||
.
|
||||
This package is part of the GNOME Classic default set of extensions.
|
||||
|
||||
Package: gnome-shell-extension-auto-move-windows
|
||||
Architecture: all
|
||||
Depends: gnome-shell (<< ${gnome:NextVersion}),
|
||||
gnome-shell (>= ${gnome:Version}),
|
||||
gnome-shell-extensions-common (= ${source:Version}),
|
||||
${misc:Depends}
|
||||
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
|
||||
Breaks: gnome-shell-extensions (<< 47)
|
||||
Replaces: gnome-shell-extensions (<< 47)
|
||||
Description: GNOME Shell extension to move apps to specific workspaces
|
||||
GNOME Shell is extensible using extensions. This package contains an
|
||||
official GNOME Shell extension to move apps to specific workspaces when
|
||||
they create windows.
|
||||
|
||||
Package: gnome-shell-extension-drive-menu
|
||||
Architecture: all
|
||||
Depends: gnome-shell (<< ${gnome:NextVersion}),
|
||||
gnome-shell (>= ${gnome:Version}),
|
||||
gnome-shell-extensions-common (= ${source:Version}),
|
||||
${misc:Depends}
|
||||
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
|
||||
Breaks: gnome-shell-extensions (<< 47)
|
||||
Replaces: gnome-shell-extensions (<< 47)
|
||||
Description: Removable drive status menu for GNOME Shell
|
||||
GNOME Shell is extensible using extensions. This package contains an
|
||||
official GNOME Shell extension to add a status menu for accessing and
|
||||
unmounting removable devices.
|
||||
|
||||
Package: gnome-shell-extension-launch-new-instance
|
||||
Architecture: all
|
||||
Depends: gnome-shell (<< ${gnome:NextVersion}),
|
||||
gnome-shell (>= ${gnome:Version}),
|
||||
gnome-shell-extensions-common (= ${source:Version}),
|
||||
${misc:Depends}
|
||||
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
|
||||
Breaks: gnome-shell-extensions (<< 47)
|
||||
Replaces: gnome-shell-extensions (<< 47)
|
||||
Description: GNOME Shell extension to launch new instances of apps
|
||||
GNOME Shell is extensible using extensions. This package contains an
|
||||
official GNOME Shell extension to always launch a new instance of an
|
||||
app when clicking in the Dash or the application view.
|
||||
.
|
||||
This package is part of the GNOME Classic default set of extensions.
|
||||
|
||||
Package: gnome-shell-extension-light-style
|
||||
Architecture: all
|
||||
Depends: gnome-shell (<< ${gnome:NextVersion}),
|
||||
gnome-shell (>= ${gnome:Version}),
|
||||
gnome-shell-extensions-common (= ${source:Version}),
|
||||
${misc:Depends}
|
||||
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
|
||||
Breaks: gnome-shell-extensions (<< 47)
|
||||
Replaces: gnome-shell-extensions (<< 47)
|
||||
Description: GNOME Shell extension to switch the Shell to light style
|
||||
GNOME Shell is extensible using extensions. This package contains an
|
||||
official GNOME Shell extension to switch GNOME Shell to use a light
|
||||
style instead of the default.
|
||||
|
||||
Package: gnome-shell-extension-native-window-placement
|
||||
Architecture: all
|
||||
Depends: gnome-shell (<< ${gnome:NextVersion}),
|
||||
gnome-shell (>= ${gnome:Version}),
|
||||
gnome-shell-extensions-common (= ${source:Version}),
|
||||
${misc:Depends}
|
||||
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
|
||||
Breaks: gnome-shell-extensions (<< 47)
|
||||
Replaces: gnome-shell-extensions (<< 47)
|
||||
Description: GNOME Shell extension to arrange windows in a more compact way
|
||||
GNOME Shell is extensible using extensions. This package contains an
|
||||
official GNOME Shell extension to arrange windows in the GNOME Shell
|
||||
overview in a more compact way.
|
||||
|
||||
Package: gnome-shell-extension-places-menu
|
||||
Architecture: all
|
||||
Depends: gnome-shell (<< ${gnome:NextVersion}),
|
||||
gnome-shell (>= ${gnome:Version}),
|
||||
gnome-shell-extensions-common (= ${source:Version}),
|
||||
${misc:Depends}
|
||||
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
|
||||
Breaks: gnome-shell-extensions (<< 47)
|
||||
Replaces: gnome-shell-extensions (<< 47)
|
||||
Description: Places menu for GNOME Shell
|
||||
GNOME Shell is extensible using extensions. This package contains an
|
||||
official GNOME Shell extension to add a menu for quickly navigating to
|
||||
places in the system, similar to the menu in GNOME 2.
|
||||
.
|
||||
This package is part of the GNOME Classic default set of extensions.
|
||||
|
||||
Package: gnome-shell-extension-screenshot-window-sizer
|
||||
Architecture: all
|
||||
Depends: gnome-shell (<< ${gnome:NextVersion}),
|
||||
gnome-shell (>= ${gnome:Version}),
|
||||
gnome-shell-extensions-common (= ${source:Version}),
|
||||
${misc:Depends}
|
||||
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
|
||||
Breaks: gnome-shell-extensions (<< 47)
|
||||
Replaces: gnome-shell-extensions (<< 47)
|
||||
Description: GNOME Shell extension to resize windows for GNOME Software screenshots
|
||||
GNOME Shell is extensible using extensions. This package contains an
|
||||
official GNOME Shell extension to resize windows to the recommended
|
||||
size for creating screenshots for use in the GNOME Software app.
|
||||
|
||||
Package: gnome-shell-extension-status-icons
|
||||
Architecture: all
|
||||
Depends: gnome-shell (<< ${gnome:NextVersion}),
|
||||
gnome-shell (>= ${gnome:Version}),
|
||||
gnome-shell-extensions-common (= ${source:Version}),
|
||||
${misc:Depends}
|
||||
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
|
||||
Description: GNOME Shell extension to show some status icons in the top bar
|
||||
GNOME Shell is extensible using extensions. This package contains an
|
||||
official GNOME Shell extension to show some status icons in the top bar.
|
||||
|
||||
Package: gnome-shell-extension-system-monitor
|
||||
Architecture: all
|
||||
Depends: gir1.2-gtop-2.0,
|
||||
gnome-shell (<< ${gnome:NextVersion}),
|
||||
gnome-shell (>= ${gnome:Version}),
|
||||
gnome-shell-extensions-common (= ${source:Version}),
|
||||
${misc:Depends}
|
||||
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
|
||||
Breaks: gnome-shell-extensions (<< 47)
|
||||
Replaces: gnome-shell-extensions (<< 47)
|
||||
Description: Display system information in GNOME Shell status bar
|
||||
GNOME Shell is extensible using extensions. This package contains an
|
||||
official GNOME Shell extension to display system information such as
|
||||
memory usage, cpu usage, network rates and more in the top bar.
|
||||
|
||||
Package: gnome-shell-extension-user-theme
|
||||
Architecture: all
|
||||
Depends: gnome-shell (<< ${gnome:NextVersion}),
|
||||
gnome-shell (>= ${gnome:Version}),
|
||||
gnome-shell-extensions-common (= ${source:Version}),
|
||||
${misc:Depends}
|
||||
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
|
||||
Breaks: gnome-shell-extensions (<< 47)
|
||||
Replaces: gnome-shell-extensions (<< 47)
|
||||
Description: GNOME Shell extension to load alternative GNOME Shell themes
|
||||
GNOME Shell is extensible using extensions. This package contains an
|
||||
official GNOME Shell extension to allow switching to alternative
|
||||
GNOME Shell themes.
|
||||
|
||||
Package: gnome-shell-extension-window-list
|
||||
Architecture: all
|
||||
Depends: gnome-shell (<< ${gnome:NextVersion}),
|
||||
gnome-shell (>= ${gnome:Version}),
|
||||
gnome-shell-extensions-common (= ${source:Version}),
|
||||
${misc:Depends}
|
||||
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
|
||||
Breaks: gnome-shell-extensions (<< 47)
|
||||
Replaces: gnome-shell-extensions (<< 47)
|
||||
Description: GNOME Shell extension to display a window list
|
||||
GNOME Shell is extensible using extensions. This package contains an
|
||||
official GNOME Shell extension to display a window list at the bottom
|
||||
of the screen.
|
||||
.
|
||||
This package is part of the GNOME Classic default set of extensions.
|
||||
|
||||
Package: gnome-shell-extension-windows-navigator
|
||||
Architecture: all
|
||||
Depends: gnome-shell (<< ${gnome:NextVersion}),
|
||||
gnome-shell (>= ${gnome:Version}),
|
||||
gnome-shell-extensions-common (= ${source:Version}),
|
||||
${misc:Depends}
|
||||
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
|
||||
Breaks: gnome-shell-extensions (<< 47)
|
||||
Replaces: gnome-shell-extensions (<< 47)
|
||||
Description: GNOME Shell extension to allow keyboard selection in overlay mode
|
||||
GNOME Shell is extensible using extensions. This package contains an
|
||||
official GNOME Shell extension to allow keyboard selections of windows
|
||||
and workspaces in overlay mode. Ctrl+number selects a workspace and
|
||||
Alt+number selects a window.
|
||||
|
||||
Package: gnome-shell-extension-workspace-indicator
|
||||
Architecture: all
|
||||
Depends: gnome-shell (<< ${gnome:NextVersion}),
|
||||
gnome-shell (>= ${gnome:Version}),
|
||||
gnome-shell-extensions-common (= ${source:Version}),
|
||||
${misc:Depends}
|
||||
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
|
||||
Breaks: gnome-shell-extensions (<< 47)
|
||||
Replaces: gnome-shell-extensions (<< 47)
|
||||
Description: Workspace indicator for GNOME Shell
|
||||
GNOME Shell is extensible using extensions. This package contains an
|
||||
official GNOME Shell extension to add an indicator to the panel to
|
||||
show what workspace you are using and allow you to switch to a different
|
||||
workspace.
|
||||
169
debian/copyright
vendored
Normal file
169
debian/copyright
vendored
Normal file
@@ -0,0 +1,169 @@
|
||||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Source: https://download.gnome.org/sources/gnome-shell-extensions/
|
||||
|
||||
Files: *
|
||||
Copyright: 2011-2013 Giovanni Campagna
|
||||
2013-2024 Florian Müllner
|
||||
2011 Iranian Free Software Users Group (IFSUG.org) translation team
|
||||
2021-2022 Alexander Shopov
|
||||
2011-2023 Red Hat, Inc
|
||||
2013 Rosetta Contributors and Canonical Ltd
|
||||
Free Software Foundation, Inc
|
||||
Rūdofls Mazurs
|
||||
Ville-Pekka Vainio
|
||||
License: GPL-2+
|
||||
|
||||
Files: debian/*
|
||||
Copyright: 2011 Victor Seva <linuxmaniac@torreviejawireless.org>
|
||||
2011 Bilal Akhtar <bilalakhtar@ubuntu.com>
|
||||
License: GPL-2+
|
||||
|
||||
Files: extensions/apps-menu/extension.js
|
||||
Copyright: 2011 Giovanni Campagna
|
||||
2011 Vamsi Krishna Brahmajosyula
|
||||
2013 Debarshi Ray
|
||||
2013 Florian Müllner
|
||||
License: GPL-2+
|
||||
|
||||
Files: extensions/auto-move-windows/extension.js
|
||||
Copyright: 2011 Alessandro Crismani
|
||||
2011 Giovanni Campagna
|
||||
2014 Florian Müllner
|
||||
License: GPL-2+
|
||||
|
||||
Files: extensions/launch-new-instance/extension.js
|
||||
Copyright: 2013 Florian Müllner
|
||||
2013 Gabriel Rossetti
|
||||
License: GPL-2+
|
||||
|
||||
Files: extensions/native-window-placement/extension.js
|
||||
Copyright: 2011 Giovanni Campagna
|
||||
2011 Stefano Facchini
|
||||
2011 Wepmaschda
|
||||
2015 Florian Müllner
|
||||
License: GPL-2+
|
||||
|
||||
Files: extensions/places-menu/extension.js
|
||||
Copyright: 2011 Giovanni Campagna
|
||||
2011 Vamsi Krishna Brahmajosyula
|
||||
2013 Florian Müllner
|
||||
2016 Rémy Lefevre
|
||||
License: GPL-2+
|
||||
|
||||
Files: extensions/places-menu/placeDisplay.js
|
||||
Copyright: 2012 Giovanni Campagna
|
||||
2013 Debarshi Ray
|
||||
2015 Florian Müllner
|
||||
2016 Rémy Lefevre
|
||||
2017 Christian Kellner
|
||||
License: GPL-2+
|
||||
|
||||
Files: extensions/screenshot-window-sizer/extension.js
|
||||
Copyright: 2013 Owen Taylor
|
||||
2013 Richard Hughes
|
||||
2014 Florian Müllner
|
||||
2016 Will Thompson
|
||||
2017 Florian Müllner
|
||||
2019 Adrien Plazas
|
||||
2019 Willy Stadnick
|
||||
License: GPL-2+
|
||||
|
||||
Files: extensions/status-icons/extension.js
|
||||
Copyright: 2018 Adel Gadllah
|
||||
2018 Florian Müllner
|
||||
License: GPL-2+
|
||||
|
||||
Files: extensions/system-monitor/icons/*
|
||||
Copyright: GNOME Design Team Icon Development Kit
|
||||
License: CC0-1.0
|
||||
|
||||
Files: extensions/user-theme/extension.js
|
||||
Copyright: 2011 Elad Alfassa
|
||||
2011 Giovanni Campagna
|
||||
2011 John Stowers
|
||||
2014 Florian Müllner
|
||||
License: GPL-2+
|
||||
|
||||
Files: extensions/window-list/prefs.js
|
||||
Copyright: 2013 Florian Müllner
|
||||
2014 Sylvain Pasche
|
||||
License: GPL-2+
|
||||
|
||||
Files: extensions/window-list/stylesheet-light.css
|
||||
extensions/workspace-indicator/stylesheet-light.css
|
||||
Copyright: 2011-2013 Giovanni Campagna
|
||||
2013-2024 Florian Müllner
|
||||
License: GPL-2+
|
||||
|
||||
Files: extensions/windowsNavigator/extension.js
|
||||
Copyright: 2011 Giovanni Campagna
|
||||
2011, Maxim Ermilov
|
||||
2017, Florian Müllner
|
||||
2019, Marco Trevisan (Treviño)
|
||||
2020, Thun Pin
|
||||
License: GPL-2+
|
||||
|
||||
Files: extensions/windowsNavigator/stylesheet.css
|
||||
Copyright: 2011 Maxim Ermilov
|
||||
License: GPL-2+
|
||||
|
||||
Files: extensions/workspace-indicator/stylesheet-dark.css
|
||||
Copyright: 2011 Erick Pérez Castellanos
|
||||
2019 Florian Müllner
|
||||
License: GPL-2+
|
||||
|
||||
Files: lint/eslintrc-gjs.yml
|
||||
Copyright: 2018 Claudio André
|
||||
License: Expat
|
||||
|
||||
Files: lint/eslintrc-shell.yml
|
||||
Copyright: 2019 Florian Müllner
|
||||
License: Expat
|
||||
|
||||
Files: meson/session-post-install.py
|
||||
Copyright: 2021, Neal Gompa
|
||||
License: GPL-2+
|
||||
|
||||
License: CC0-1.0
|
||||
To the extent possible under law, the author(s) have dedicated all copyright
|
||||
and related and neighboring rights to this software to the public domain
|
||||
worldwide. This software is distributed without any warranty.
|
||||
.
|
||||
You should have received a copy of the CC0 Public Domain Dedication along with
|
||||
this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
.
|
||||
On Debian systems, the complete text of the CC0 1.0 Universal license can be
|
||||
found in "/usr/share/common-licenses/CC0-1.0".
|
||||
|
||||
License: Expat
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
.
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
License: GPL-2+
|
||||
This package is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
.
|
||||
This package is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
.
|
||||
On Debian systems, the complete text of the GNU General
|
||||
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
|
||||
2
debian/docs
vendored
Normal file
2
debian/docs
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
NEWS
|
||||
README.md
|
||||
17
debian/gbp.conf
vendored
Normal file
17
debian/gbp.conf
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
[DEFAULT]
|
||||
pristine-tar = True
|
||||
debian-branch = debian/latest
|
||||
upstream-branch = upstream/latest
|
||||
|
||||
[buildpackage]
|
||||
sign-tags = True
|
||||
|
||||
[dch]
|
||||
multimaint-merge = True
|
||||
|
||||
[import-orig]
|
||||
postimport = dch -v%(version)s New upstream release; git add debian/changelog; debcommit
|
||||
upstream-vcs-tag = %(version%~%.)s
|
||||
|
||||
[pq]
|
||||
patch-numbers = False
|
||||
1
debian/gnome-classic-xsession.install
vendored
Normal file
1
debian/gnome-classic-xsession.install
vendored
Normal file
@@ -0,0 +1 @@
|
||||
usr/share/xsessions
|
||||
4
debian/gnome-classic.install
vendored
Normal file
4
debian/gnome-classic.install
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
debian/local/gnome-session-classic usr/bin
|
||||
usr/share/glib-2.0/schemas/00_org.gnome.shell.extensions.classic.gschema.override
|
||||
usr/share/gnome-shell/modes/classic.json
|
||||
usr/share/wayland-sessions
|
||||
2
debian/gnome-shell-extension-apps-menu.install
vendored
Normal file
2
debian/gnome-shell-extension-apps-menu.install
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
usr/share/glib-2.0/schemas/org.gnome.shell.extensions.apps-menu.gschema.xml
|
||||
usr/share/gnome-shell/extensions/apps-menu@gnome-shell-extensions.gcampax.github.com
|
||||
2
debian/gnome-shell-extension-auto-move-windows.install
vendored
Normal file
2
debian/gnome-shell-extension-auto-move-windows.install
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
usr/share/glib-2.0/schemas/org.gnome.shell.extensions.auto-move-windows.gschema.xml
|
||||
usr/share/gnome-shell/extensions/auto-move-windows@gnome-shell-extensions.gcampax.github.com
|
||||
1
debian/gnome-shell-extension-drive-menu.install
vendored
Normal file
1
debian/gnome-shell-extension-drive-menu.install
vendored
Normal file
@@ -0,0 +1 @@
|
||||
usr/share/gnome-shell/extensions/drive-menu@gnome-shell-extensions.gcampax.github.com
|
||||
1
debian/gnome-shell-extension-launch-new-instance.install
vendored
Normal file
1
debian/gnome-shell-extension-launch-new-instance.install
vendored
Normal file
@@ -0,0 +1 @@
|
||||
usr/share/gnome-shell/extensions/launch-new-instance@gnome-shell-extensions.gcampax.github.com
|
||||
1
debian/gnome-shell-extension-light-style.install
vendored
Normal file
1
debian/gnome-shell-extension-light-style.install
vendored
Normal file
@@ -0,0 +1 @@
|
||||
usr/share/gnome-shell/extensions/light-style@gnome-shell-extensions.gcampax.github.com
|
||||
2
debian/gnome-shell-extension-native-window-placement.install
vendored
Normal file
2
debian/gnome-shell-extension-native-window-placement.install
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
usr/share/glib-2.0/schemas/org.gnome.shell.extensions.native-window-placement.gschema.xml
|
||||
usr/share/gnome-shell/extensions/native-window-placement@gnome-shell-extensions.gcampax.github.com
|
||||
1
debian/gnome-shell-extension-places-menu.install
vendored
Normal file
1
debian/gnome-shell-extension-places-menu.install
vendored
Normal file
@@ -0,0 +1 @@
|
||||
usr/share/gnome-shell/extensions/places-menu@gnome-shell-extensions.gcampax.github.com
|
||||
2
debian/gnome-shell-extension-screenshot-window-sizer.install
vendored
Normal file
2
debian/gnome-shell-extension-screenshot-window-sizer.install
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
usr/share/glib-2.0/schemas/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml
|
||||
usr/share/gnome-shell/extensions/screenshot-window-sizer@gnome-shell-extensions.gcampax.github.com
|
||||
1
debian/gnome-shell-extension-status-icons.install
vendored
Normal file
1
debian/gnome-shell-extension-status-icons.install
vendored
Normal file
@@ -0,0 +1 @@
|
||||
usr/share/gnome-shell/extensions/status-icons@gnome-shell-extensions.gcampax.github.com
|
||||
2
debian/gnome-shell-extension-system-monitor.install
vendored
Normal file
2
debian/gnome-shell-extension-system-monitor.install
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
usr/share/glib-2.0/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml
|
||||
usr/share/gnome-shell/extensions/system-monitor@gnome-shell-extensions.gcampax.github.com
|
||||
2
debian/gnome-shell-extension-user-theme.install
vendored
Normal file
2
debian/gnome-shell-extension-user-theme.install
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
usr/share/glib-2.0/schemas/org.gnome.shell.extensions.user-theme.gschema.xml
|
||||
usr/share/gnome-shell/extensions/user-theme@gnome-shell-extensions.gcampax.github.com
|
||||
2
debian/gnome-shell-extension-window-list.install
vendored
Normal file
2
debian/gnome-shell-extension-window-list.install
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
usr/share/glib-2.0/schemas/org.gnome.shell.extensions.window-list.gschema.xml
|
||||
usr/share/gnome-shell/extensions/window-list@gnome-shell-extensions.gcampax.github.com
|
||||
1
debian/gnome-shell-extension-windows-navigator.install
vendored
Normal file
1
debian/gnome-shell-extension-windows-navigator.install
vendored
Normal file
@@ -0,0 +1 @@
|
||||
usr/share/gnome-shell/extensions/windowsNavigator@gnome-shell-extensions.gcampax.github.com
|
||||
2
debian/gnome-shell-extension-workspace-indicator.install
vendored
Normal file
2
debian/gnome-shell-extension-workspace-indicator.install
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
usr/share/glib-2.0/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml
|
||||
usr/share/gnome-shell/extensions/workspace-indicator@gnome-shell-extensions.gcampax.github.com
|
||||
1
debian/gnome-shell-extensions-common.install
vendored
Normal file
1
debian/gnome-shell-extensions-common.install
vendored
Normal file
@@ -0,0 +1 @@
|
||||
usr/share/locale
|
||||
2
debian/local/gnome-session-classic
vendored
Executable file
2
debian/local/gnome-session-classic
vendored
Executable file
@@ -0,0 +1,2 @@
|
||||
#! /bin/sh
|
||||
env GNOME_SHELL_SESSION_MODE=classic gnome-session "$@"
|
||||
0
debian/patches/series
vendored
Normal file
0
debian/patches/series
vendored
Normal file
11
debian/rules
vendored
Executable file
11
debian/rules
vendored
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_configure:
|
||||
dh_auto_configure -- \
|
||||
-Dextension_set=all \
|
||||
-Dclassic_mode=true
|
||||
|
||||
override_dh_gnome_clean:
|
||||
1
debian/source/format
vendored
Normal file
1
debian/source/format
vendored
Normal file
@@ -0,0 +1 @@
|
||||
3.0 (quilt)
|
||||
5
debian/upstream/metadata
vendored
Normal file
5
debian/upstream/metadata
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
Bug-Database: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues
|
||||
Bug-Submit: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/new
|
||||
Repository: https://gitlab.gnome.org/GNOME/gnome-shell-extensions.git
|
||||
Repository-Browse: https://gitlab.gnome.org/GNOME/gnome-shell-extensions
|
||||
4
debian/watch
vendored
Normal file
4
debian/watch
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
version=4
|
||||
opts="searchmode=plain, uversionmangle=s/\.(alpha|beta|rc)/~$1/, downloadurlmangle=s|cache.json||" \
|
||||
https://download.gnome.org/sources/@PACKAGE@/cache.json \
|
||||
[\d.]+/@PACKAGE@-([\d.]+\.?(?:beta|rc)?[\d.]*)@ARCHIVE_EXT@
|
||||
@@ -8,16 +8,16 @@ srcdir=`dirname $0`
|
||||
srcdir=`(cd $srcdir && pwd)`
|
||||
|
||||
builddir=`mktemp -p $srcdir -d _build.XXXXXX` || exit 1
|
||||
installdir=`mktemp -p $srcdir -d _install.XXXXXX` || exit 1
|
||||
destdir=`mktemp -p $srcdir -d _dest.XXXXXX` || exit 1
|
||||
|
||||
meson setup --prefix=$installdir -Dextension_set=all $srcdir $builddir
|
||||
meson install -C $builddir
|
||||
meson setup --prefix=/usr -Dextension_set=all $srcdir $builddir
|
||||
meson install --destdir $destdir -C $builddir
|
||||
|
||||
rm -rf $srcdir/zip-files
|
||||
mkdir $srcdir/zip-files
|
||||
|
||||
extensiondir=$installdir/share/gnome-shell/extensions
|
||||
schemadir=$installdir/share/glib-2.0/schemas
|
||||
extensiondir=$destdir/usr/share/gnome-shell/extensions
|
||||
schemadir=$destdir/usr/share/glib-2.0/schemas
|
||||
|
||||
for f in $extensiondir/*; do
|
||||
name=`basename ${f%%@*}`
|
||||
@@ -39,7 +39,9 @@ for f in $extensiondir/*; do
|
||||
fi
|
||||
|
||||
cp $srcdir/NEWS $srcdir/COPYING $f
|
||||
sources=(NEWS COPYING $(cd $f; ls *.js))
|
||||
sources=(NEWS COPYING $(cd $f; ls *.js *.css 2>/dev/null))
|
||||
|
||||
[ -d $f/icons ] && sources+=(icons)
|
||||
|
||||
[ -f $schema ] || unset schema
|
||||
|
||||
@@ -48,4 +50,4 @@ for f in $extensiondir/*; do
|
||||
done
|
||||
|
||||
rm -rf $builddir
|
||||
rm -rf $installdir
|
||||
rm -rf $destdir
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
||||
import Atk from 'gi://Atk';
|
||||
import Clutter from 'gi://Clutter';
|
||||
import Gio from 'gi://Gio';
|
||||
@@ -125,7 +124,10 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
else
|
||||
name = _('Favorites');
|
||||
|
||||
this.add_child(new St.Label({text: name}));
|
||||
const label = new St.Label({text: name});
|
||||
this.add_child(label);
|
||||
this.actor.label_actor = label;
|
||||
|
||||
this.connect('motion-event', this._onMotionEvent.bind(this));
|
||||
this.connect('notify::active', this._onActiveChanged.bind(this));
|
||||
}
|
||||
@@ -255,7 +257,7 @@ class DesktopTarget extends EventEmitter {
|
||||
this._desktopDestroyedId = 0;
|
||||
|
||||
this._windowAddedId =
|
||||
global.window_group.connect('actor-added',
|
||||
global.window_group.connect('child-added',
|
||||
this._onWindowAdded.bind(this));
|
||||
|
||||
global.get_window_actors().forEach(a => {
|
||||
@@ -394,12 +396,12 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
this.accessible_role = Atk.Role.LABEL;
|
||||
|
||||
this._label = new St.Label({
|
||||
text: _('Applications'),
|
||||
text: _('Apps'),
|
||||
y_expand: true,
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
});
|
||||
|
||||
this.add_actor(this._label);
|
||||
this.add_child(this._label);
|
||||
this.name = 'panelApplications';
|
||||
this.label_actor = this._label;
|
||||
|
||||
@@ -512,7 +514,7 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
}
|
||||
|
||||
scrollToButton(button) {
|
||||
let appsScrollBoxAdj = this.applicationsScrollBox.get_vscroll_bar().get_adjustment();
|
||||
let appsScrollBoxAdj = this.applicationsScrollBox.get_vadjustment();
|
||||
let appsScrollBoxAlloc = this.applicationsScrollBox.get_allocation_box();
|
||||
let currentScrollValue = appsScrollBoxAdj.get_value();
|
||||
let boxHeight = appsScrollBoxAlloc.y2 - appsScrollBoxAlloc.y1;
|
||||
@@ -527,7 +529,7 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
}
|
||||
|
||||
scrollToCatButton(button) {
|
||||
let catsScrollBoxAdj = this.categoriesScrollBox.get_vscroll_bar().get_adjustment();
|
||||
let catsScrollBoxAdj = this.categoriesScrollBox.get_vadjustment();
|
||||
let catsScrollBoxAlloc = this.categoriesScrollBox.get_allocation_box();
|
||||
let currentScrollValue = catsScrollBoxAdj.get_value();
|
||||
let boxHeight = catsScrollBoxAlloc.y2 - catsScrollBoxAlloc.y1;
|
||||
@@ -550,31 +552,19 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
style_class: 'apps-menu vfade',
|
||||
x_expand: true,
|
||||
});
|
||||
this.applicationsScrollBox.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
|
||||
let vscroll = this.applicationsScrollBox.get_vscroll_bar();
|
||||
vscroll.connect('scroll-start', () => {
|
||||
this.menu.passEvents = true;
|
||||
});
|
||||
vscroll.connect('scroll-stop', () => {
|
||||
this.menu.passEvents = false;
|
||||
});
|
||||
this.categoriesScrollBox = new St.ScrollView({
|
||||
style_class: 'vfade',
|
||||
});
|
||||
this.categoriesScrollBox.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
|
||||
vscroll = this.categoriesScrollBox.get_vscroll_bar();
|
||||
vscroll.connect('scroll-start', () => (this.menu.passEvents = true));
|
||||
vscroll.connect('scroll-stop', () => (this.menu.passEvents = false));
|
||||
this.leftBox.add_child(this.categoriesScrollBox);
|
||||
|
||||
this.applicationsBox = new St.BoxLayout({vertical: true});
|
||||
this.applicationsScrollBox.add_actor(this.applicationsBox);
|
||||
this.applicationsScrollBox.set_child(this.applicationsBox);
|
||||
this.categoriesBox = new St.BoxLayout({vertical: true});
|
||||
this.categoriesScrollBox.add_actor(this.categoriesBox);
|
||||
this.categoriesScrollBox.set_child(this.categoriesBox);
|
||||
|
||||
this.mainBox.add(this.leftBox);
|
||||
this.mainBox.add_child(this.leftBox);
|
||||
this.mainBox.add_child(this.applicationsScrollBox);
|
||||
section.actor.add_actor(this.mainBox);
|
||||
section.actor.add_child(this.mainBox);
|
||||
}
|
||||
|
||||
_display() {
|
||||
@@ -586,7 +576,7 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
this._tree.load_sync();
|
||||
let root = this._tree.get_root_directory();
|
||||
let categoryMenuItem = new CategoryMenuItem(this, null);
|
||||
this.categoriesBox.add_actor(categoryMenuItem);
|
||||
this.categoriesBox.add_child(categoryMenuItem);
|
||||
let iter = root.iter();
|
||||
let nextType;
|
||||
while ((nextType = iter.next()) !== GMenu.TreeItemType.INVALID) {
|
||||
@@ -602,7 +592,7 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
this._loadCategory(categoryId, dir);
|
||||
if (this.applicationsByCategory[categoryId].length > 0) {
|
||||
categoryMenuItem = new CategoryMenuItem(this, dir);
|
||||
this.categoriesBox.add_actor(categoryMenuItem);
|
||||
this.categoriesBox.add_child(categoryMenuItem);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -615,7 +605,7 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
if (c._delegate instanceof PopupMenu.PopupSeparatorMenuItem)
|
||||
c._delegate.destroy();
|
||||
else
|
||||
this.applicationsBox.remove_actor(c);
|
||||
this.applicationsBox.remove_child(c);
|
||||
});
|
||||
|
||||
if (dir)
|
||||
@@ -638,7 +628,7 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
this._applicationsButtons.set(app, item);
|
||||
}
|
||||
if (!item.get_parent())
|
||||
this.applicationsBox.add_actor(item);
|
||||
this.applicationsBox.add_child(item);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
"uuid": "@uuid@",
|
||||
"settings-schema": "@gschemaname@",
|
||||
"gettext-domain": "@gettext_domain@",
|
||||
"name": "Applications Menu",
|
||||
"description": "Add a category-based menu for applications.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.",
|
||||
"name": "Apps Menu",
|
||||
"description": "Add a category-based menu for apps.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.",
|
||||
"original-authors": [ "e2002@bk.ru", "debarshir@gnome.org" ],
|
||||
"shell-version": [ "@shell_current@" ],
|
||||
"url": "@url@"
|
||||
|
||||
@@ -4,9 +4,6 @@
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||||
// Start apps on custom workspaces
|
||||
|
||||
import Shell from 'gi://Shell';
|
||||
|
||||
import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js';
|
||||
|
||||
@@ -3,9 +3,6 @@
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||||
// Start apps on custom workspaces
|
||||
|
||||
import Adw from 'gi://Adw';
|
||||
import Gio from 'gi://Gio';
|
||||
import GLib from 'gi://GLib';
|
||||
@@ -45,11 +42,11 @@ class NewItemModel extends GObject.Object {
|
||||
class Rule extends GObject.Object {
|
||||
static [GObject.properties] = {
|
||||
'app-info': GObject.ParamSpec.object(
|
||||
'app-info', 'app-info', 'app-info',
|
||||
'app-info', null, null,
|
||||
GObject.ParamFlags.READWRITE,
|
||||
Gio.DesktopAppInfo),
|
||||
'workspace': GObject.ParamSpec.uint(
|
||||
'workspace', 'workspace', 'workspace',
|
||||
'workspace', null, null,
|
||||
GObject.ParamFlags.READWRITE,
|
||||
1, WORKSPACE_MAX, 1),
|
||||
};
|
||||
@@ -196,7 +193,7 @@ class AutoMoveSettingsWidget extends Adw.PreferencesGroup {
|
||||
class WorkspaceSelector extends Gtk.Widget {
|
||||
static [GObject.properties] = {
|
||||
'number': GObject.ParamSpec.uint(
|
||||
'number', 'number', 'number',
|
||||
'number', null, null,
|
||||
GObject.ParamFlags.READWRITE,
|
||||
1, WORKSPACE_MAX, 1),
|
||||
};
|
||||
|
||||
@@ -48,7 +48,7 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
style_class: 'button',
|
||||
});
|
||||
ejectButton.connect('clicked', this._eject.bind(this));
|
||||
this.add(ejectButton);
|
||||
this.add_child(ejectButton);
|
||||
|
||||
this.hide();
|
||||
|
||||
|
||||
@@ -16,18 +16,20 @@ foreach e : enabled_extensions
|
||||
metadata_conf.set('gschemaname', 'org.gnome.shell.extensions.' + e)
|
||||
metadata_conf.set('gettext_domain', gettext_domain)
|
||||
metadata_conf.set('shell_current', shell_version)
|
||||
metadata_conf.set('url', 'https://gitlab.gnome.org/GNOME/gnome-shell-extensions')
|
||||
metadata_conf.set(
|
||||
'url',
|
||||
'https://gitlab.gnome.org/GNOME/gnome-shell-extensions',
|
||||
)
|
||||
|
||||
extension_sources = files(e + '/extension.js')
|
||||
extension_data = []
|
||||
|
||||
subdir(e)
|
||||
|
||||
install_data (extension_sources + extension_data,
|
||||
install_dir: join_paths(extensiondir, uuid)
|
||||
install_data(
|
||||
extension_sources + extension_data,
|
||||
install_dir: join_paths(extensiondir, uuid),
|
||||
)
|
||||
endforeach
|
||||
|
||||
install_data (extension_schemas,
|
||||
install_dir: schemadir
|
||||
)
|
||||
install_data(extension_schemas, install_dir: schemadir)
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||||
import Clutter from 'gi://Clutter';
|
||||
|
||||
import {Extension, InjectionManager} from 'resource:///org/gnome/shell/extensions/extension.js';
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
||||
import Clutter from 'gi://Clutter';
|
||||
import GObject from 'gi://GObject';
|
||||
import St from 'gi://St';
|
||||
@@ -20,32 +19,17 @@ import {PlacesManager} from './placeDisplay.js';
|
||||
|
||||
const N_ = x => x;
|
||||
|
||||
const PLACE_ICON_SIZE = 16;
|
||||
|
||||
class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
class PlaceMenuItem extends PopupMenu.PopupImageMenuItem {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(info) {
|
||||
super({
|
||||
super(info.name, info.icon, {
|
||||
style_class: 'place-menu-item',
|
||||
});
|
||||
this._info = info;
|
||||
|
||||
this._icon = new St.Icon({
|
||||
gicon: info.icon,
|
||||
icon_size: PLACE_ICON_SIZE,
|
||||
});
|
||||
this.add_child(this._icon);
|
||||
|
||||
this._label = new St.Label({
|
||||
text: info.name,
|
||||
x_expand: true,
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
});
|
||||
this.add_child(this._label);
|
||||
|
||||
if (info.isRemovable()) {
|
||||
this._ejectIcon = new St.Icon({
|
||||
icon_name: 'media-eject-symbolic',
|
||||
@@ -70,8 +54,8 @@ class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
}
|
||||
|
||||
_propertiesChanged(info) {
|
||||
this._icon.gicon = info.icon;
|
||||
this._label.text = info.name;
|
||||
this.setIcon(info.icon);
|
||||
this.label.text = info.name;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,7 +79,7 @@ class PlacesMenu extends PanelMenu.Button {
|
||||
y_expand: true,
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
});
|
||||
this.add_actor(label);
|
||||
this.add_child(label);
|
||||
|
||||
this.placesManager = new PlacesManager();
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ export default class ScreenshotWindowSizerExtension extends Extension {
|
||||
[624, 351],
|
||||
[800, 450],
|
||||
[1024, 576],
|
||||
[1000, 700],
|
||||
[1200, 675],
|
||||
[1600, 900],
|
||||
[360, 654], // Phone portrait maximized
|
||||
@@ -33,7 +34,7 @@ export default class ScreenshotWindowSizerExtension extends Extension {
|
||||
_flashMessage(message) {
|
||||
if (!this._text) {
|
||||
this._text = new St.Label({style_class: 'screenshot-sizer-message'});
|
||||
Main.uiGroup.add_actor(this._text);
|
||||
Main.uiGroup.add_child(this._text);
|
||||
}
|
||||
|
||||
this._text.remove_all_transitions();
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"settings-schema": "@gschemaname@",
|
||||
"gettext-domain": "@gettext_domain@",
|
||||
"name": "Screenshot Window Sizer",
|
||||
"description": "Resize windows for GNOME Software screenshots",
|
||||
"description": "Resize windows for GNOME Software screenshots with Ctrl+Alt+s shortcut",
|
||||
"shell-version": [ "@shell_current@" ],
|
||||
"url": "@url@"
|
||||
}
|
||||
|
||||
91
extensions/status-icons/extension.js
Normal file
91
extensions/status-icons/extension.js
Normal file
@@ -0,0 +1,91 @@
|
||||
// SPDX-FileCopyrightText: 2018 Adel Gadllah <adel.gadllah@gmail.com>
|
||||
// SPDX-FileCopyrightText: 2018 Florian Müllner <fmuellner@gnome.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
import Clutter from 'gi://Clutter';
|
||||
import Shell from 'gi://Shell';
|
||||
import St from 'gi://St';
|
||||
|
||||
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
|
||||
import {Button as PanelButton} from 'resource:///org/gnome/shell/ui/panelMenu.js';
|
||||
|
||||
const PANEL_ICON_SIZE = 16;
|
||||
|
||||
const STANDARD_TRAY_ICON_IMPLEMENTATIONS = [
|
||||
'bluetooth-applet',
|
||||
'gnome-sound-applet',
|
||||
'nm-applet',
|
||||
'gnome-power-manager',
|
||||
'keyboard',
|
||||
'a11y-keyboard',
|
||||
'kbd-scrolllock',
|
||||
'kbd-numlock',
|
||||
'kbd-capslock',
|
||||
'ibus-ui-gtk',
|
||||
];
|
||||
|
||||
export default class SysTray {
|
||||
constructor() {
|
||||
this._icons = new Map();
|
||||
this._tray = null;
|
||||
}
|
||||
|
||||
_onTrayIconAdded(o, icon) {
|
||||
let wmClass = icon.wm_class ? icon.wm_class.toLowerCase() : '';
|
||||
if (STANDARD_TRAY_ICON_IMPLEMENTATIONS.includes(wmClass))
|
||||
return;
|
||||
|
||||
let button = new PanelButton(0.5, null, true);
|
||||
|
||||
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
|
||||
let iconSize = PANEL_ICON_SIZE * scaleFactor;
|
||||
|
||||
icon.set({
|
||||
width: iconSize,
|
||||
height: iconSize,
|
||||
x_align: Clutter.ActorAlign.CENTER,
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
});
|
||||
|
||||
let iconBin = new St.Widget({
|
||||
layout_manager: new Clutter.BinLayout(),
|
||||
style_class: 'system-status-icon',
|
||||
});
|
||||
iconBin.add_child(icon);
|
||||
button.add_child(iconBin);
|
||||
|
||||
this._icons.set(icon, button);
|
||||
|
||||
button.connect('button-release-event',
|
||||
(actor, event) => icon.click(event));
|
||||
button.connect('key-press-event',
|
||||
(actor, event) => icon.click(event));
|
||||
|
||||
const role = `${icon}`;
|
||||
Main.panel.addToStatusArea(role, button);
|
||||
}
|
||||
|
||||
_onTrayIconRemoved(o, icon) {
|
||||
const button = this._icons.get(icon);
|
||||
button?.destroy();
|
||||
this._icons.delete(icon);
|
||||
}
|
||||
|
||||
enable() {
|
||||
this._tray = new Shell.TrayManager();
|
||||
this._tray.connect('tray-icon-added',
|
||||
this._onTrayIconAdded.bind(this));
|
||||
this._tray.connect('tray-icon-removed',
|
||||
this._onTrayIconRemoved.bind(this));
|
||||
this._tray.manage_screen(Main.panel);
|
||||
}
|
||||
|
||||
disable() {
|
||||
this._icons.forEach(button => button.destroy());
|
||||
this._icons.clear();
|
||||
|
||||
this._tray.unmanage_screen();
|
||||
this._tray = null;
|
||||
}
|
||||
}
|
||||
9
extensions/status-icons/meson.build
Normal file
9
extensions/status-icons/meson.build
Normal file
@@ -0,0 +1,9 @@
|
||||
# SPDX-FileCopyrightText: 2018 Florian Müllner <fmuellner@gnome.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
extension_data += configure_file(
|
||||
input: metadata_name + '.in',
|
||||
output: metadata_name,
|
||||
configuration: metadata_conf
|
||||
)
|
||||
10
extensions/status-icons/metadata.json.in
Normal file
10
extensions/status-icons/metadata.json.in
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"extension-id": "@extension_id@",
|
||||
"uuid": "@uuid@",
|
||||
"settings-schema": "@gschemaname@",
|
||||
"gettext-domain": "@gettext_domain@",
|
||||
"name": "Status Icons",
|
||||
"description": "Show status icons in the top bar",
|
||||
"shell-version": [ "@shell_current@" ],
|
||||
"url": "@url@"
|
||||
}
|
||||
489
extensions/system-monitor/extension.js
Normal file
489
extensions/system-monitor/extension.js
Normal file
@@ -0,0 +1,489 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2023 Florian Müllner <fmuellner@gnome.org>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
import Clutter from 'gi://Clutter';
|
||||
import Gio from 'gi://Gio';
|
||||
import GLib from 'gi://GLib';
|
||||
import GObject from 'gi://GObject';
|
||||
import GTop from 'gi://GTop';
|
||||
import Pango from 'gi://Pango';
|
||||
import Shell from 'gi://Shell';
|
||||
import St from 'gi://St';
|
||||
|
||||
import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';
|
||||
import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js';
|
||||
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
|
||||
|
||||
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
|
||||
|
||||
const THRESHOLD_HIGH = 0.80;
|
||||
|
||||
// adapted from load-graph.cpp in gnome-system-monitor
|
||||
/**
|
||||
* @param {string} str
|
||||
* @returns {number}
|
||||
*/
|
||||
function strHash(str) {
|
||||
let hash = 0xcbf29ce484222325n;
|
||||
|
||||
for (const c of str)
|
||||
hash = (hash * 0x00000100000001B3n) ^ BigInt(c.codePointAt(0));
|
||||
return hash;
|
||||
}
|
||||
|
||||
class StatSection extends St.BoxLayout {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(iconName, accessibleName) {
|
||||
super({
|
||||
style_class: 'system-monitor-stat-section',
|
||||
accessibleName,
|
||||
});
|
||||
|
||||
const ext = Extension.lookupByURL(import.meta.url);
|
||||
const file =
|
||||
ext.dir.resolve_relative_path(`icons/${iconName}.svg`);
|
||||
|
||||
this._icon = new St.Icon({
|
||||
style_class: 'system-monitor-stat-section-icon',
|
||||
gicon: new Gio.FileIcon({file}),
|
||||
});
|
||||
this.add_child(this._icon);
|
||||
|
||||
this.label = new St.Label({
|
||||
style_class: 'system-monitor-stat-section-label',
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
});
|
||||
this.label.clutter_text.set({
|
||||
ellipsize: Pango.EllipsizeMode.NONE,
|
||||
x_align: Clutter.ActorAlign.CENTER,
|
||||
});
|
||||
this.add_child(this.label);
|
||||
|
||||
this.connect('destroy', () => this._clearTimeout());
|
||||
this.connect('notify::visible', () => this._sync());
|
||||
this._sync();
|
||||
}
|
||||
|
||||
_ensureTimeout() {
|
||||
if (this._updateId)
|
||||
return;
|
||||
|
||||
this._updateId = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 1,
|
||||
() => {
|
||||
this._update();
|
||||
return GLib.SOURCE_CONTINUE;
|
||||
});
|
||||
}
|
||||
|
||||
_clearTimeout() {
|
||||
if (this._updateId)
|
||||
GLib.source_remove(this._updateId);
|
||||
delete this._updateId;
|
||||
}
|
||||
|
||||
_sync() {
|
||||
if (this.visible)
|
||||
this._ensureTimeout();
|
||||
else
|
||||
this._clearTimeout();
|
||||
|
||||
if (this.visible)
|
||||
this._update();
|
||||
}
|
||||
|
||||
_update() {
|
||||
}
|
||||
}
|
||||
|
||||
class LoadStatSection extends StatSection {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
#formatter = new Intl.NumberFormat(undefined, {
|
||||
style: 'percent',
|
||||
});
|
||||
|
||||
_getLoadValue() {
|
||||
}
|
||||
|
||||
_update() {
|
||||
const load = this._getLoadValue();
|
||||
this.label.text = this.#formatter.format(load);
|
||||
|
||||
if (load >= THRESHOLD_HIGH)
|
||||
this.add_style_class_name('high-usage');
|
||||
else
|
||||
this.remove_style_class_name('high-usage');
|
||||
}
|
||||
}
|
||||
|
||||
class CpuSection extends LoadStatSection {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
#prevCpu = new GTop.glibtop_cpu();
|
||||
|
||||
constructor() {
|
||||
super('processor-symbolic', _('CPU stats'));
|
||||
}
|
||||
|
||||
_getLoadValue() {
|
||||
const cpu = new GTop.glibtop_cpu();
|
||||
GTop.glibtop_get_cpu(cpu);
|
||||
|
||||
const total = cpu.total - this.#prevCpu.total;
|
||||
const user = cpu.user - this.#prevCpu.user;
|
||||
const sys = cpu.sys - this.#prevCpu.sys;
|
||||
const nice = cpu.nice - this.#prevCpu.nice;
|
||||
|
||||
this.#prevCpu = cpu;
|
||||
|
||||
return (user + sys + nice) / Math.max(total, 1.0);
|
||||
}
|
||||
}
|
||||
|
||||
class MemSection extends LoadStatSection {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super('memory-symbolic', _('Memory stats'));
|
||||
}
|
||||
|
||||
_getLoadValue() {
|
||||
const mem = new GTop.glibtop_mem();
|
||||
GTop.glibtop_get_mem(mem);
|
||||
|
||||
const {user, total} = mem;
|
||||
return user / Math.max(total, 1.0);
|
||||
}
|
||||
}
|
||||
|
||||
class SwapSection extends LoadStatSection {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super('swap-symbolic', _('Swap stats'));
|
||||
}
|
||||
|
||||
_getLoadValue() {
|
||||
const swap = new GTop.glibtop_swap();
|
||||
GTop.glibtop_get_swap(swap);
|
||||
|
||||
const {used, total} = swap;
|
||||
return used / Math.max(total, 1.0);
|
||||
}
|
||||
}
|
||||
|
||||
class NetStatSection extends StatSection {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
#formats = [{
|
||||
factor: 1000,
|
||||
unitFactor: 1000,
|
||||
formatter: new Intl.NumberFormat(undefined, {
|
||||
style: 'unit',
|
||||
unit: 'kilobyte',
|
||||
maximumFractionDigits: 1,
|
||||
minimumFractionDigits: 1,
|
||||
}),
|
||||
}, {
|
||||
factor: 1000 * 10,
|
||||
unitFactor: 1000,
|
||||
formatter: new Intl.NumberFormat(undefined, {
|
||||
style: 'unit',
|
||||
unit: 'kilobyte',
|
||||
maximumFractionDigits: 0,
|
||||
}),
|
||||
}, {
|
||||
factor: 1000 * 1000,
|
||||
unitFactor: 1000 * 1000,
|
||||
formatter: new Intl.NumberFormat(undefined, {
|
||||
style: 'unit',
|
||||
unit: 'megabyte',
|
||||
maximumFractionDigits: 1,
|
||||
minimumFractionDigits: 1,
|
||||
}),
|
||||
}, {
|
||||
factor: 1000 * 1000 * 10,
|
||||
unitFactor: 1000 * 1000,
|
||||
formatter: new Intl.NumberFormat(undefined, {
|
||||
style: 'unit',
|
||||
unit: 'megabyte',
|
||||
maximumFractionDigits: 0,
|
||||
}),
|
||||
}, {
|
||||
factor: 1000 * 1000 * 1000,
|
||||
unitFactor: 1000 * 1000 * 1000,
|
||||
formatter: new Intl.NumberFormat(undefined, {
|
||||
style: 'unit',
|
||||
unit: 'gigabyte',
|
||||
maximumFractionDigits: 1,
|
||||
minimumFractionDigits: 1,
|
||||
}),
|
||||
}, {
|
||||
factor: 1000 * 1000 * 1000 * 10,
|
||||
unitFactor: 1000 * 1000 * 1000,
|
||||
formatter: new Intl.NumberFormat(undefined, {
|
||||
style: 'unit',
|
||||
unit: 'gigabyte',
|
||||
maximumFractionDigits: 0,
|
||||
}),
|
||||
}, {
|
||||
factor: 1000 * 1000 * 1000 * 1000,
|
||||
unitFactor: 1000 * 1000 * 1000 * 1000,
|
||||
formatter: new Intl.NumberFormat(undefined, {
|
||||
style: 'unit',
|
||||
unit: 'terabyte',
|
||||
maximumFractionDigits: 1,
|
||||
minimumFractionDigits: 1,
|
||||
}),
|
||||
}, {
|
||||
factor: 1000 * 1000 * 1000 * 1000 * 10,
|
||||
unitFactor: 1000 * 1000 * 1000 * 1000,
|
||||
formatter: new Intl.NumberFormat(undefined, {
|
||||
style: 'unit',
|
||||
unit: 'terabyte',
|
||||
maximumFractionDigits: 0,
|
||||
}),
|
||||
}, {
|
||||
factor: 1000 * 1000 * 1000 * 1000 * 1000,
|
||||
unitFactor: 1000 * 1000 * 1000 * 1000 * 1000,
|
||||
formatter: new Intl.NumberFormat(undefined, {
|
||||
style: 'unit',
|
||||
unit: 'petabyte',
|
||||
maximumFractionDigits: 1,
|
||||
minimumFractionDigits: 1,
|
||||
}),
|
||||
}];
|
||||
|
||||
#lastBytes = 0;
|
||||
#lastHash = 0;
|
||||
#lastTime = 0;
|
||||
|
||||
_getBytes(_netload) {
|
||||
}
|
||||
|
||||
_getFormat(bytes) {
|
||||
for (let i = 1; i < this.#formats.length; i++) {
|
||||
if (bytes < this.#formats.at(i).factor)
|
||||
return this.#formats.at(i - 1);
|
||||
}
|
||||
return this.#formats.at(-1);
|
||||
}
|
||||
|
||||
_update() {
|
||||
const FLAG_LOOPBACK = 1 << 4; // GTop sucks
|
||||
|
||||
const netlist = new GTop.glibtop_netlist();
|
||||
const ifnames = GTop.glibtop_get_netlist(netlist);
|
||||
|
||||
let bytes = 0;
|
||||
let hash = 1n;
|
||||
|
||||
for (const ifname of ifnames) {
|
||||
const netload = new GTop.glibtop_netload();
|
||||
GTop.glibtop_get_netload(netload, ifname);
|
||||
|
||||
if (netload.if_flags & FLAG_LOOPBACK)
|
||||
continue;
|
||||
|
||||
bytes += this._getBytes(netload);
|
||||
hash += strHash(ifname);
|
||||
}
|
||||
|
||||
const time = GLib.get_monotonic_time();
|
||||
|
||||
let dbytes = 0;
|
||||
|
||||
// Skip calculation if new data is less than old (interface
|
||||
// removed, counters reset, ...) or if it is the first time
|
||||
if (bytes >= this.#lastBytes &&
|
||||
hash === this.#lastHash &&
|
||||
this.#lastTime !== 0) {
|
||||
const dtime = (time - this.#lastTime) / GLib.USEC_PER_SEC;
|
||||
dbytes = (bytes - this.#lastBytes) / dtime;
|
||||
}
|
||||
|
||||
this.#lastBytes = bytes;
|
||||
this.#lastTime = time;
|
||||
this.#lastHash = hash;
|
||||
|
||||
const {unitFactor, formatter} = this._getFormat(dbytes);
|
||||
this.label.text = formatter.format(dbytes / unitFactor);
|
||||
}
|
||||
}
|
||||
|
||||
class UploadSection extends NetStatSection {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super('upload-symbolic', _('Upload stats'));
|
||||
}
|
||||
|
||||
_getBytes(netload) {
|
||||
return netload.bytes_out;
|
||||
}
|
||||
}
|
||||
|
||||
class DownloadSection extends NetStatSection {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super('download-symbolic', _('Download stats'));
|
||||
}
|
||||
|
||||
_getBytes(netload) {
|
||||
return netload.bytes_in;
|
||||
}
|
||||
}
|
||||
|
||||
class Indicator extends PanelMenu.Button {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(settings) {
|
||||
super(0.5, _('System stats'));
|
||||
|
||||
this._settings = settings;
|
||||
this.connect('destroy',
|
||||
() => (this._settings = null));
|
||||
|
||||
const box = new St.BoxLayout({
|
||||
styleClass: 'system-monitor-stat-sections',
|
||||
});
|
||||
|
||||
this.add_child(box);
|
||||
|
||||
this._placeholder = new St.Icon({
|
||||
styleClass: 'system-status-icon system-monitor-placeholder',
|
||||
});
|
||||
box.add_child(this._placeholder);
|
||||
|
||||
this._cpuSection = new CpuSection();
|
||||
this._settings.bind('show-cpu',
|
||||
this._cpuSection, 'visible',
|
||||
Gio.SettingsBindFlags.GET);
|
||||
box.add_child(this._cpuSection);
|
||||
|
||||
this._memSection = new MemSection();
|
||||
this._settings.bind('show-memory',
|
||||
this._memSection, 'visible',
|
||||
Gio.SettingsBindFlags.GET);
|
||||
box.add_child(this._memSection);
|
||||
|
||||
this._swapSection = new SwapSection();
|
||||
this._settings.bind('show-swap',
|
||||
this._swapSection, 'visible',
|
||||
Gio.SettingsBindFlags.GET);
|
||||
box.add_child(this._swapSection);
|
||||
|
||||
this._ulSection = new UploadSection();
|
||||
this._settings.bind('show-upload',
|
||||
this._ulSection, 'visible',
|
||||
Gio.SettingsBindFlags.GET);
|
||||
box.add_child(this._ulSection);
|
||||
|
||||
this._dlSection = new DownloadSection();
|
||||
this._settings.bind('show-download',
|
||||
this._dlSection, 'visible',
|
||||
Gio.SettingsBindFlags.GET);
|
||||
box.add_child(this._dlSection);
|
||||
|
||||
this.menu.addMenuItem(
|
||||
new PopupMenu.PopupSeparatorMenuItem(_('Show')));
|
||||
|
||||
this._cpuItem = this.menu.addAction(_('CPU'),
|
||||
() => this._toggleSettings('show-cpu'));
|
||||
this._memItem = this.menu.addAction(_('Memory'),
|
||||
() => this._toggleSettings('show-memory'));
|
||||
this._swapItem = this.menu.addAction(_('Swap'),
|
||||
() => this._toggleSettings('show-swap'));
|
||||
this._ulItem = this.menu.addAction(_('Upload'),
|
||||
() => this._toggleSettings('show-upload'));
|
||||
this._dlItem = this.menu.addAction(_('Download'),
|
||||
() => this._toggleSettings('show-download'));
|
||||
|
||||
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
|
||||
|
||||
this._appMenuItem = this.menu.addAction(_('Open System Monitor'),
|
||||
() => this._openSystemMonitor());
|
||||
|
||||
const appSystem = Shell.AppSystem.get_default();
|
||||
appSystem.connectObject('installed-changed',
|
||||
() => this._updateSystemMonitorApp(), this);
|
||||
this._updateSystemMonitorApp();
|
||||
|
||||
this._settings.connectObject('changed',
|
||||
() => this._sync(), this);
|
||||
this._sync();
|
||||
}
|
||||
|
||||
_updateSystemMonitorApp() {
|
||||
const appSystem = Shell.AppSystem.get_default();
|
||||
this._systemMonitorApp =
|
||||
appSystem.lookup_app('org.gnome.SystemMonitor.desktop');
|
||||
this._placeholder.gicon = this._systemMonitorApp?.icon ?? null;
|
||||
this.visible = this._systemMonitorApp != null;
|
||||
}
|
||||
|
||||
_openSystemMonitor() {
|
||||
this._systemMonitorApp.activate();
|
||||
Main.overview.hide();
|
||||
}
|
||||
|
||||
_toggleSettings(key) {
|
||||
this._settings.set_boolean(key, !this._settings.get_boolean(key));
|
||||
}
|
||||
|
||||
_sync() {
|
||||
this._cpuItem.setOrnament(this._settings.get_boolean('show-cpu')
|
||||
? PopupMenu.Ornament.CHECK
|
||||
: PopupMenu.Ornament.NONE);
|
||||
this._memItem.setOrnament(this._settings.get_boolean('show-memory')
|
||||
? PopupMenu.Ornament.CHECK
|
||||
: PopupMenu.Ornament.NONE);
|
||||
this._swapItem.setOrnament(this._settings.get_boolean('show-swap')
|
||||
? PopupMenu.Ornament.CHECK
|
||||
: PopupMenu.Ornament.NONE);
|
||||
this._ulItem.setOrnament(this._settings.get_boolean('show-upload')
|
||||
? PopupMenu.Ornament.CHECK
|
||||
: PopupMenu.Ornament.NONE);
|
||||
this._dlItem.setOrnament(this._settings.get_boolean('show-download')
|
||||
? PopupMenu.Ornament.CHECK
|
||||
: PopupMenu.Ornament.NONE);
|
||||
|
||||
this._placeholder.visible =
|
||||
this._settings.list_keys().every(key => !this._settings.get_boolean(key));
|
||||
}
|
||||
}
|
||||
|
||||
export default class SystemMonitorExtension extends Extension {
|
||||
enable() {
|
||||
this._indicator = new Indicator(this.getSettings());
|
||||
Main.panel.addToStatusArea(this.uuid, this._indicator);
|
||||
}
|
||||
|
||||
disable() {
|
||||
this._indicator.destroy();
|
||||
this._indicator = null;
|
||||
}
|
||||
}
|
||||
46
extensions/system-monitor/icons/download-symbolic.svg
Normal file
46
extensions/system-monitor/icons/download-symbolic.svg
Normal file
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<filter id="a" height="100%" width="100%" x="0%" y="0%">
|
||||
<feColorMatrix color-interpolation-filters="sRGB" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
|
||||
</filter>
|
||||
<mask id="b">
|
||||
<g filter="url(#a)">
|
||||
<path d="m -1.6 -1.6 h 19.2 v 19.2 h -19.2 z" fill-opacity="0.5"/>
|
||||
</g>
|
||||
</mask>
|
||||
<clipPath id="c">
|
||||
<path d="m 0 0 h 1600 v 1200 h -1600 z"/>
|
||||
</clipPath>
|
||||
<mask id="d">
|
||||
<g filter="url(#a)">
|
||||
<path d="m -1.6 -1.6 h 19.2 v 19.2 h -19.2 z" fill-opacity="0.7"/>
|
||||
</g>
|
||||
</mask>
|
||||
<clipPath id="e">
|
||||
<path d="m 0 0 h 1600 v 1200 h -1600 z"/>
|
||||
</clipPath>
|
||||
<mask id="f">
|
||||
<g filter="url(#a)">
|
||||
<path d="m -1.6 -1.6 h 19.2 v 19.2 h -19.2 z" fill-opacity="0.35"/>
|
||||
</g>
|
||||
</mask>
|
||||
<clipPath id="g">
|
||||
<path d="m 0 0 h 1600 v 1200 h -1600 z"/>
|
||||
</clipPath>
|
||||
<g mask="url(#b)">
|
||||
<g clip-path="url(#c)" transform="matrix(1 0 0 1 -920 -120)">
|
||||
<path d="m 550 182 c -0.351562 0.003906 -0.695312 0.101562 -1 0.28125 v 3.4375 c 0.304688 0.179688 0.648438 0.277344 1 0.28125 c 1.105469 0 2 -0.894531 2 -2 s -0.894531 -2 -2 -2 z m 0 5 c -0.339844 0 -0.679688 0.058594 -1 0.175781 v 6.824219 h 4 v -4 c 0 -1.65625 -1.34375 -3 -3 -3 z m 0 0"/>
|
||||
</g>
|
||||
</g>
|
||||
<g mask="url(#d)">
|
||||
<g clip-path="url(#e)" transform="matrix(1 0 0 1 -920 -120)">
|
||||
<path d="m 569 182 v 4 c 1.105469 0 2 -0.894531 2 -2 s -0.894531 -2 -2 -2 z m 0 5 v 7 h 3 v -4 c 0 -1.65625 -1.34375 -3 -3 -3 z m 0 0"/>
|
||||
</g>
|
||||
</g>
|
||||
<g mask="url(#f)">
|
||||
<g clip-path="url(#g)" transform="matrix(1 0 0 1 -920 -120)">
|
||||
<path d="m 573 182.269531 v 3.449219 c 0.613281 -0.355469 0.996094 -1.007812 1 -1.71875 c 0 -0.714844 -0.382812 -1.375 -1 -1.730469 z m 0 4.90625 v 6.824219 h 2 v -4 c 0 -1.269531 -0.800781 -2.402344 -2 -2.824219 z m 0 0"/>
|
||||
</g>
|
||||
</g>
|
||||
<path d="m 7.984375 1 c -0.550781 0 -1 0.449219 -1 1 v 8.585938 l -2.292969 -2.292969 c -0.1875 -0.1875 -0.441406 -0.292969 -0.707031 -0.292969 s -0.519531 0.105469 -0.707031 0.292969 c -0.390625 0.390625 -0.390625 1.023437 0 1.414062 l 4 4 c 0.390625 0.390625 1.023437 0.390625 1.414062 0 l 4 -4 c 0.390625 -0.390625 0.390625 -1.023437 0 -1.414062 s -1.023437 -0.390625 -1.414062 0 l -2.292969 2.292969 v -8.585938 c 0 -0.550781 -0.445313 -1 -1 -1 z m 0 0"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
@@ -0,0 +1,3 @@
|
||||
SPDX-FileCopyrightText: Icon Development Kit
|
||||
|
||||
SPDX-License-Identifier: CC0-1.0
|
||||
2
extensions/system-monitor/icons/memory-symbolic.svg
Normal file
2
extensions/system-monitor/icons/memory-symbolic.svg
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path d="m 3 2 c -1.660156 0 -3 1.339844 -3 3 v 4 c 0 1.660156 1.339844 3 3 3 h 10 c 1.660156 0 3 -1.339844 3 -3 v -4 c 0 -1.660156 -1.339844 -3 -3 -3 z m 0 2 h 10 c 0.554688 0 1 0.445312 1 1 v 4 c 0 0.554688 -0.445312 1 -1 1 h -10 c -0.554688 0 -1 -0.445312 -1 -1 v -4 c 0 -0.554688 0.445312 -1 1 -1 z m 0 0"/><path d="m 2 10 h 12 v 4 h -12 z m 0 0"/><g fill-opacity="0.501961"><path d="m 4 5 h 2 v 4 h -2 z m 0 0"/><path d="m 7 5 h 2 v 4 h -2 z m 0 0"/><path d="m 10 5 h 2 v 4 h -2 z m 0 0"/></g></svg>
|
||||
|
After Width: | Height: | Size: 631 B |
@@ -0,0 +1,3 @@
|
||||
SPDX-FileCopyrightText: Icon Development Kit
|
||||
|
||||
SPDX-License-Identifier: CC0-1.0
|
||||
2
extensions/system-monitor/icons/processor-symbolic.svg
Normal file
2
extensions/system-monitor/icons/processor-symbolic.svg
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path d="m 5 5 h 6 v 6 h -6 z m 0 0"/><path d="m 13 5 h 3 v 1 h -3 z m 0 0"/><path d="m 13 7 h 3 v 1 h -3 z m 0 0"/><path d="m 13 9 h 3 v 1 h -3 z m 0 0"/><path d="m 0 6 h 3 v 1 h -3 z m 0 0"/><path d="m 0 8 h 3 v 1 h -3 z m 0 0"/><path d="m 0 10 h 3 v 1 h -3 z m 0 0"/><path d="m 5 0 h 1 v 3 h -1 z m 0 0"/><path d="m 7 0 h 1 v 3 h -1 z m 0 0"/><path d="m 9 0 h 1 v 3 h -1 z m 0 0"/><path d="m 10 13 h 1 v 3 h -1 z m 0 0"/><path d="m 8 13 h 1 v 3 h -1 z m 0 0"/><path d="m 6 13 h 1 v 3 h -1 z m 0 0"/><path d="m 5 2 c -1.644531 0 -3 1.355469 -3 3 v 6 c 0 1.644531 1.355469 3 3 3 h 6 c 1.644531 0 3 -1.355469 3 -3 v -6 c 0 -1.644531 -1.355469 -3 -3 -3 z m 0 2 h 6 c 0.570312 0 1 0.429688 1 1 v 6 c 0 0.570312 -0.429688 1 -1 1 h -6 c -0.570312 0 -1 -0.429688 -1 -1 v -6 c 0 -0.570312 0.429688 -1 1 -1 z m 0 0"/></svg>
|
||||
|
After Width: | Height: | Size: 943 B |
@@ -0,0 +1,3 @@
|
||||
SPDX-FileCopyrightText: Icon Development Kit
|
||||
|
||||
SPDX-License-Identifier: CC0-1.0
|
||||
2
extensions/system-monitor/icons/swap-symbolic.svg
Normal file
2
extensions/system-monitor/icons/swap-symbolic.svg
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path d="m 5 7 c -0.308594 0 -0.613281 0.089844 -0.8125 0.28125 l -3.59375 3.71875 l 3.65625 3.71875 c 0.199219 0.191406 0.441406 0.28125 0.75 0.28125 h 1 v -1 c 0 -0.257812 -0.128906 -0.527344 -0.3125 -0.71875 l -1.28125 -1.28125 h 4.59375 c 0.527344 0.007812 1 -0.472656 1 -1 s -0.472656 -1.007812 -1 -1 h -4.625 l 1.21875 -1.28125 c 0.183594 -0.191406 0.40625 -0.460938 0.40625 -0.71875 v -1 z m 0 0"/><path d="m 11 9 c 0.308594 0 0.613281 -0.089844 0.8125 -0.28125 l 3.59375 -3.71875 l -3.65625 -3.71875 c -0.199219 -0.191406 -0.441406 -0.28125 -0.75 -0.28125 h -1 v 1 c 0 0.257812 0.128906 0.527344 0.3125 0.71875 l 1.28125 1.28125 h -4.59375 c -0.527344 -0.007812 -1 0.472656 -1 1 s 0.472656 1.007812 1 1 h 4.625 l -1.21875 1.28125 c -0.183594 0.191406 -0.40625 0.460938 -0.40625 0.71875 v 1 z m 0 0"/></svg>
|
||||
|
After Width: | Height: | Size: 941 B |
@@ -0,0 +1,3 @@
|
||||
SPDX-FileCopyrightText: Icon Development Kit
|
||||
|
||||
SPDX-License-Identifier: CC0-1.0
|
||||
46
extensions/system-monitor/icons/upload-symbolic.svg
Normal file
46
extensions/system-monitor/icons/upload-symbolic.svg
Normal file
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<filter id="a" height="100%" width="100%" x="0%" y="0%">
|
||||
<feColorMatrix color-interpolation-filters="sRGB" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
|
||||
</filter>
|
||||
<mask id="b">
|
||||
<g filter="url(#a)">
|
||||
<path d="m -1.6 -1.6 h 19.2 v 19.2 h -19.2 z" fill-opacity="0.5"/>
|
||||
</g>
|
||||
</mask>
|
||||
<clipPath id="c">
|
||||
<path d="m 0 0 h 1600 v 1200 h -1600 z"/>
|
||||
</clipPath>
|
||||
<mask id="d">
|
||||
<g filter="url(#a)">
|
||||
<path d="m -1.6 -1.6 h 19.2 v 19.2 h -19.2 z" fill-opacity="0.7"/>
|
||||
</g>
|
||||
</mask>
|
||||
<clipPath id="e">
|
||||
<path d="m 0 0 h 1600 v 1200 h -1600 z"/>
|
||||
</clipPath>
|
||||
<mask id="f">
|
||||
<g filter="url(#a)">
|
||||
<path d="m -1.6 -1.6 h 19.2 v 19.2 h -19.2 z" fill-opacity="0.35"/>
|
||||
</g>
|
||||
</mask>
|
||||
<clipPath id="g">
|
||||
<path d="m 0 0 h 1600 v 1200 h -1600 z"/>
|
||||
</clipPath>
|
||||
<g mask="url(#b)">
|
||||
<g clip-path="url(#c)" transform="matrix(1 0 0 1 -900 -120)">
|
||||
<path d="m 550 182 c -0.351562 0.003906 -0.695312 0.101562 -1 0.28125 v 3.4375 c 0.304688 0.179688 0.648438 0.277344 1 0.28125 c 1.105469 0 2 -0.894531 2 -2 s -0.894531 -2 -2 -2 z m 0 5 c -0.339844 0 -0.679688 0.058594 -1 0.175781 v 6.824219 h 4 v -4 c 0 -1.65625 -1.34375 -3 -3 -3 z m 0 0"/>
|
||||
</g>
|
||||
</g>
|
||||
<g mask="url(#d)">
|
||||
<g clip-path="url(#e)" transform="matrix(1 0 0 1 -900 -120)">
|
||||
<path d="m 569 182 v 4 c 1.105469 0 2 -0.894531 2 -2 s -0.894531 -2 -2 -2 z m 0 5 v 7 h 3 v -4 c 0 -1.65625 -1.34375 -3 -3 -3 z m 0 0"/>
|
||||
</g>
|
||||
</g>
|
||||
<g mask="url(#f)">
|
||||
<g clip-path="url(#g)" transform="matrix(1 0 0 1 -900 -120)">
|
||||
<path d="m 573 182.269531 v 3.449219 c 0.613281 -0.355469 0.996094 -1.007812 1 -1.71875 c 0 -0.714844 -0.382812 -1.375 -1 -1.730469 z m 0 4.90625 v 6.824219 h 2 v -4 c 0 -1.269531 -0.800781 -2.402344 -2 -2.824219 z m 0 0"/>
|
||||
</g>
|
||||
</g>
|
||||
<path d="m 8.015625 15 c 0.550781 0 1 -0.449219 1 -1 v -8.585938 l 2.292969 2.292969 c 0.1875 0.1875 0.441406 0.292969 0.707031 0.292969 s 0.519531 -0.105469 0.707031 -0.292969 c 0.390625 -0.390625 0.390625 -1.023437 0 -1.414062 l -4 -4 c -0.390625 -0.390625 -1.023437 -0.390625 -1.414062 0 l -4 4 c -0.390625 0.390625 -0.390625 1.023437 0 1.414062 s 1.023437 0.390625 1.414062 0 l 2.292969 -2.292969 v 8.585938 c 0 0.550781 0.445313 1 1 1 z m 0 0"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
@@ -0,0 +1,3 @@
|
||||
SPDX-FileCopyrightText: Icon Development Kit
|
||||
|
||||
SPDX-License-Identifier: CC0-1.0
|
||||
14
extensions/system-monitor/meson.build
Normal file
14
extensions/system-monitor/meson.build
Normal file
@@ -0,0 +1,14 @@
|
||||
# SPDX-FileCopyrightText: 2017 Florian Müllner <fmuellner@gnome.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
extension_data += configure_file(
|
||||
input: metadata_name + '.in',
|
||||
output: metadata_name,
|
||||
configuration: metadata_conf
|
||||
)
|
||||
|
||||
extension_data += files('stylesheet.css')
|
||||
extension_schemas += files('schemas/' + metadata_conf.get('gschemaname') + '.gschema.xml')
|
||||
|
||||
install_subdir('icons', install_dir: join_paths(extensiondir, uuid))
|
||||
10
extensions/system-monitor/metadata.json.in
Normal file
10
extensions/system-monitor/metadata.json.in
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"extension-id": "@extension_id@",
|
||||
"uuid": "@uuid@",
|
||||
"settings-schema": "@gschemaname@",
|
||||
"gettext-domain": "@gettext_domain@",
|
||||
"name": "System Monitor",
|
||||
"description": "Monitor system from the top bar",
|
||||
"shell-version": [ "@shell_current@" ],
|
||||
"url": "@url@"
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2023 Florian Müllner <fmuellner@gnome.org>
|
||||
|
||||
SPDX-License-Identifier: GPL-2.0-or-later
|
||||
-->
|
||||
|
||||
<schemalist gettext-domain="gnome-shell-extensions">
|
||||
<schema id="org.gnome.shell.extensions.system-monitor"
|
||||
path="/org/gnome/shell/extensions/system-monitor/">
|
||||
<key name="show-cpu" type="b">
|
||||
<default>true</default>
|
||||
<summary>Show CPU usage</summary>
|
||||
</key>
|
||||
<key name="show-memory" type="b">
|
||||
<default>true</default>
|
||||
<summary>Show memory usage</summary>
|
||||
</key>
|
||||
<key name="show-swap" type="b">
|
||||
<default>true</default>
|
||||
<summary>Show swap usage</summary>
|
||||
</key>
|
||||
<key name="show-upload" type="b">
|
||||
<default>true</default>
|
||||
<summary>Show upload</summary>
|
||||
</key>
|
||||
<key name="show-download" type="b">
|
||||
<default>true</default>
|
||||
<summary>Show download</summary>
|
||||
</key>
|
||||
</schema>
|
||||
</schemalist>
|
||||
18
extensions/system-monitor/stylesheet.css
Normal file
18
extensions/system-monitor/stylesheet.css
Normal file
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2023 Florian Müllner <fmuellner@gnome.org>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
.system-monitor-stat-section {
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
.system-monitor-stat-section-icon {icon-size: 1.08em;}
|
||||
.system-monitor-stat-section-label {
|
||||
min-width: 3.0em;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
.system-monitor-placeholder {-st-icon-style: symbolic;}
|
||||
|
||||
.panel-button .high-usage {color: #ff7800;}
|
||||
@@ -5,9 +5,6 @@
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||||
// Load shell theme from ~/.local/share/themes/name/gnome-shell
|
||||
|
||||
import Gio from 'gi://Gio';
|
||||
|
||||
import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js';
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||||
|
||||
// we use async/await here to not block the mainloop, not to parallelize
|
||||
/* eslint-disable no-await-in-loop */
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ import GLib from 'gi://GLib';
|
||||
import GObject from 'gi://GObject';
|
||||
import Gtk from 'gi://Gtk';
|
||||
import Meta from 'gi://Meta';
|
||||
import Mtk from 'gi://Mtk';
|
||||
import Shell from 'gi://Shell';
|
||||
import St from 'gi://St';
|
||||
|
||||
@@ -17,18 +18,14 @@ import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/ex
|
||||
|
||||
import * as DND from 'resource:///org/gnome/shell/ui/dnd.js';
|
||||
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
|
||||
import * as Overview from 'resource:///org/gnome/shell/ui/overview.js';
|
||||
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
|
||||
import {DashItemContainer} from 'resource:///org/gnome/shell/ui/dash.js';
|
||||
|
||||
import {WindowPicker, WindowPickerToggle} from './windowPicker.js';
|
||||
import {WorkspaceIndicator} from './workspaceIndicator.js';
|
||||
|
||||
const ICON_TEXTURE_SIZE = 24;
|
||||
const DND_ACTIVATE_TIMEOUT = 500;
|
||||
|
||||
const TOOLTIP_OFFSET = 6;
|
||||
const TOOLTIP_ANIMATION_TIME = 150;
|
||||
|
||||
const GroupingMode = {
|
||||
NEVER: 0,
|
||||
AUTO: 1,
|
||||
@@ -123,14 +120,10 @@ class WindowTitle extends St.BoxLayout {
|
||||
this._metaWindow = metaWindow;
|
||||
|
||||
this._icon = new St.Bin({style_class: 'window-button-icon'});
|
||||
this.add(this._icon);
|
||||
this.add_child(this._icon);
|
||||
this.label_actor = new St.Label({y_align: Clutter.ActorAlign.CENTER});
|
||||
this.label_actor.clutter_text.single_line_mode = true;
|
||||
this.add(this.label_actor);
|
||||
|
||||
this._textureCache = St.TextureCache.get_default();
|
||||
this._textureCache.connectObject('icon-theme-changed',
|
||||
() => this._updateIcon(), this);
|
||||
this.add_child(this.label_actor);
|
||||
|
||||
this._metaWindow.connectObject(
|
||||
'notify::wm-class',
|
||||
@@ -166,20 +159,20 @@ class WindowTitle extends St.BoxLayout {
|
||||
this._icon.child = app.create_icon_texture(ICON_TEXTURE_SIZE);
|
||||
} else {
|
||||
this._icon.child = new St.Icon({
|
||||
icon_name: 'icon-missing',
|
||||
icon_name: 'application-x-executable',
|
||||
icon_size: ICON_TEXTURE_SIZE,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class BaseButton extends St.Button {
|
||||
class BaseButton extends DashItemContainer {
|
||||
static {
|
||||
GObject.registerClass({
|
||||
GTypeFlags: GObject.TypeFlags.ABSTRACT,
|
||||
Properties: {
|
||||
'ignore-workspace': GObject.ParamSpec.boolean(
|
||||
'ignore-workspace', 'ignore-workspace', 'ignore-workspace',
|
||||
'ignore-workspace', null, null,
|
||||
GObject.ParamFlags.READWRITE,
|
||||
false),
|
||||
},
|
||||
@@ -187,12 +180,22 @@ class BaseButton extends St.Button {
|
||||
}
|
||||
|
||||
constructor(perMonitor, monitorIndex) {
|
||||
super({
|
||||
super();
|
||||
|
||||
this._button = new St.Button({
|
||||
style_class: 'window-button',
|
||||
can_focus: true,
|
||||
x_expand: true,
|
||||
button_mask: St.ButtonMask.ONE | St.ButtonMask.THREE,
|
||||
});
|
||||
this.setChild(this._button);
|
||||
|
||||
this._button.connect('notify::hover', () => {
|
||||
if (this._button.hover)
|
||||
this.showLabel();
|
||||
else
|
||||
this.hideLabel();
|
||||
});
|
||||
|
||||
this._perMonitor = perMonitor;
|
||||
this._monitorIndex = monitorIndex;
|
||||
@@ -200,7 +203,7 @@ class BaseButton extends St.Button {
|
||||
|
||||
this.connect('notify::allocation',
|
||||
this._updateIconGeometry.bind(this));
|
||||
this.connect('clicked', this._onClicked.bind(this));
|
||||
this._button.connect('clicked', this._onClicked.bind(this));
|
||||
this.connect('destroy', this._onDestroy.bind(this));
|
||||
this.connect('popup-menu', this._onPopupMenu.bind(this));
|
||||
|
||||
@@ -217,16 +220,10 @@ class BaseButton extends St.Button {
|
||||
this._windowEnteredOrLeftMonitor.bind(this),
|
||||
this);
|
||||
}
|
||||
|
||||
this._tooltip = new Tooltip(this, {
|
||||
style_class: 'dash-label',
|
||||
visible: false,
|
||||
});
|
||||
Main.uiGroup.add_child(this._tooltip);
|
||||
}
|
||||
|
||||
get active() {
|
||||
return this.has_style_class_name('focused');
|
||||
return this._button.has_style_class_name('focused');
|
||||
}
|
||||
|
||||
// eslint-disable-next-line camelcase
|
||||
@@ -245,6 +242,18 @@ class BaseButton extends St.Button {
|
||||
this._updateVisibility();
|
||||
}
|
||||
|
||||
showLabel() {
|
||||
const [, , preferredTitleWidth] = this.label_actor.get_preferred_size();
|
||||
const maxTitleWidth = this.label_actor.allocation.get_width();
|
||||
const isTitleFullyShown = preferredTitleWidth <= maxTitleWidth;
|
||||
|
||||
const labelText = isTitleFullyShown
|
||||
? '' : this.label_actor.text;
|
||||
|
||||
this.setLabelText(labelText);
|
||||
super.showLabel();
|
||||
}
|
||||
|
||||
_setLongPressTimeout() {
|
||||
if (this._longPressTimeoutId)
|
||||
return;
|
||||
@@ -267,24 +276,24 @@ class BaseButton extends St.Button {
|
||||
delete this._longPressTimeoutId;
|
||||
}
|
||||
|
||||
vfunc_button_press_event(buttonEvent) {
|
||||
if (buttonEvent.button === 1)
|
||||
vfunc_button_press_event(event) {
|
||||
if (event.get_button() === 1)
|
||||
this._setLongPressTimeout();
|
||||
return super.vfunc_button_press_event(buttonEvent);
|
||||
return super.vfunc_button_press_event(event);
|
||||
}
|
||||
|
||||
vfunc_button_release_event(buttonEvent) {
|
||||
vfunc_button_release_event(event) {
|
||||
this._removeLongPressTimeout();
|
||||
|
||||
return super.vfunc_button_release_event(buttonEvent);
|
||||
return super.vfunc_button_release_event(event);
|
||||
}
|
||||
|
||||
vfunc_touch_event(touchEvent) {
|
||||
if (touchEvent.type === Clutter.EventType.TOUCH_BEGIN)
|
||||
vfunc_touch_event(event) {
|
||||
if (event.type() === Clutter.EventType.TOUCH_BEGIN)
|
||||
this._setLongPressTimeout();
|
||||
else if (touchEvent.type === Clutter.EventType.TOUCH_END)
|
||||
else if (event.type() === Clutter.EventType.TOUCH_END)
|
||||
this._removeLongPressTimeout();
|
||||
return super.vfunc_touch_event(touchEvent);
|
||||
return super.vfunc_touch_event(event);
|
||||
}
|
||||
|
||||
activate() {
|
||||
@@ -345,9 +354,9 @@ class BaseButton extends St.Button {
|
||||
|
||||
_updateStyle() {
|
||||
if (this._isFocused())
|
||||
this.add_style_class_name('focused');
|
||||
this._button.add_style_class_name('focused');
|
||||
else
|
||||
this.remove_style_class_name('focused');
|
||||
this._button.remove_style_class_name('focused');
|
||||
}
|
||||
|
||||
_windowEnteredOrLeftMonitor(_metaDisplay, _monitorIndex, _metaWindow) {
|
||||
@@ -369,7 +378,7 @@ class BaseButton extends St.Button {
|
||||
}
|
||||
|
||||
_getIconGeometry() {
|
||||
let rect = new Meta.Rectangle();
|
||||
const rect = new Mtk.Rectangle();
|
||||
|
||||
[rect.x, rect.y] = this.get_transformed_position();
|
||||
[rect.width, rect.height] = this.get_transformed_size();
|
||||
@@ -383,7 +392,6 @@ class BaseButton extends St.Button {
|
||||
}
|
||||
|
||||
_onDestroy() {
|
||||
this._tooltip.destroy();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -396,15 +404,17 @@ class WindowButton extends BaseButton {
|
||||
super(perMonitor, monitorIndex);
|
||||
|
||||
this.metaWindow = metaWindow;
|
||||
this._unmanaging = false;
|
||||
metaWindow.connectObject(
|
||||
'notify::skip-taskbar', () => this._updateVisibility(),
|
||||
'workspace-changed', () => this._updateVisibility(),
|
||||
'unmanaging', () => (this._unmanaging = true),
|
||||
this);
|
||||
|
||||
this._updateVisibility();
|
||||
|
||||
this._windowTitle = new WindowTitle(this.metaWindow);
|
||||
this.set_child(this._windowTitle);
|
||||
this._button.set_child(this._windowTitle);
|
||||
this.label_actor = this._windowTitle.label_actor;
|
||||
|
||||
this._contextMenu = new WindowContextMenu(this, this.metaWindow);
|
||||
@@ -412,7 +422,7 @@ class WindowButton extends BaseButton {
|
||||
this._onMenuStateChanged.bind(this));
|
||||
this._contextMenu.actor.hide();
|
||||
this._contextMenuManager.addMenu(this._contextMenu);
|
||||
Main.uiGroup.add_actor(this._contextMenu.actor);
|
||||
Main.uiGroup.add_child(this._contextMenu.actor);
|
||||
|
||||
global.display.connectObject('notify::focus-window',
|
||||
() => this._updateStyle(), this);
|
||||
@@ -439,9 +449,9 @@ class WindowButton extends BaseButton {
|
||||
super._updateStyle();
|
||||
|
||||
if (this.metaWindow.minimized)
|
||||
this.add_style_class_name('minimized');
|
||||
this._button.add_style_class_name('minimized');
|
||||
else
|
||||
this.remove_style_class_name('minimized');
|
||||
this._button.remove_style_class_name('minimized');
|
||||
}
|
||||
|
||||
_windowEnteredOrLeftMonitor(metaDisplay, monitorIndex, metaWindow) {
|
||||
@@ -450,6 +460,9 @@ class WindowButton extends BaseButton {
|
||||
}
|
||||
|
||||
_updateVisibility() {
|
||||
if (this._unmanaging)
|
||||
return;
|
||||
|
||||
this.visible = this._isWindowVisible(this.metaWindow);
|
||||
}
|
||||
|
||||
@@ -533,30 +546,30 @@ class AppButton extends BaseButton {
|
||||
this._updateVisibility();
|
||||
|
||||
let stack = new St.Widget({layout_manager: new Clutter.BinLayout()});
|
||||
this.set_child(stack);
|
||||
this._button.set_child(stack);
|
||||
|
||||
this._singleWindowTitle = new St.Bin({
|
||||
x_expand: true,
|
||||
});
|
||||
stack.add_actor(this._singleWindowTitle);
|
||||
stack.add_child(this._singleWindowTitle);
|
||||
|
||||
this._multiWindowTitle = new St.BoxLayout({
|
||||
style_class: 'window-button-box',
|
||||
x_expand: true,
|
||||
});
|
||||
stack.add_actor(this._multiWindowTitle);
|
||||
stack.add_child(this._multiWindowTitle);
|
||||
|
||||
this._icon = new St.Bin({
|
||||
style_class: 'window-button-icon',
|
||||
child: app.create_icon_texture(ICON_TEXTURE_SIZE),
|
||||
});
|
||||
this._multiWindowTitle.add(this._icon);
|
||||
this._multiWindowTitle.add_child(this._icon);
|
||||
|
||||
let label = new St.Label({
|
||||
text: app.get_name(),
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
});
|
||||
this._multiWindowTitle.add(label);
|
||||
this._multiWindowTitle.add_child(label);
|
||||
this._multiWindowTitle.label_actor = label;
|
||||
|
||||
this._menuManager = new PopupMenu.PopupMenuManager(this);
|
||||
@@ -566,18 +579,13 @@ class AppButton extends BaseButton {
|
||||
this._menu.actor.hide();
|
||||
this._menu.connect('activate', this._onMenuActivate.bind(this));
|
||||
this._menuManager.addMenu(this._menu);
|
||||
Main.uiGroup.add_actor(this._menu.actor);
|
||||
Main.uiGroup.add_child(this._menu.actor);
|
||||
|
||||
this._appContextMenu = new AppContextMenu(this);
|
||||
this._appContextMenu.connect('open-state-changed',
|
||||
this._onMenuStateChanged.bind(this));
|
||||
this._appContextMenu.actor.hide();
|
||||
Main.uiGroup.add_actor(this._appContextMenu.actor);
|
||||
|
||||
this._textureCache = St.TextureCache.get_default();
|
||||
this._textureCache.connectObject('icon-theme-changed', () => {
|
||||
this._icon.child = app.create_icon_texture(ICON_TEXTURE_SIZE);
|
||||
}, this);
|
||||
Main.uiGroup.add_child(this._appContextMenu.actor);
|
||||
|
||||
this.app.connectObject('windows-changed',
|
||||
() => this._windowsChanged(), this);
|
||||
@@ -637,7 +645,7 @@ class AppButton extends BaseButton {
|
||||
this._windowContextMenu = new WindowContextMenu(this, this.metaWindow);
|
||||
this._windowContextMenu.connect(
|
||||
'open-state-changed', this._onMenuStateChanged.bind(this));
|
||||
Main.uiGroup.add_actor(this._windowContextMenu.actor);
|
||||
Main.uiGroup.add_child(this._windowContextMenu.actor);
|
||||
this._windowContextMenu.actor.hide();
|
||||
this._contextMenuManager.addMenu(this._windowContextMenu);
|
||||
}
|
||||
@@ -682,7 +690,7 @@ class AppButton extends BaseButton {
|
||||
for (let i = 0; i < windows.length; i++) {
|
||||
let windowTitle = new WindowTitle(windows[i]);
|
||||
let item = new PopupMenu.PopupBaseMenuItem();
|
||||
item.add_actor(windowTitle);
|
||||
item.add_child(windowTitle);
|
||||
item._window = windows[i];
|
||||
this._menu.addMenuItem(item);
|
||||
}
|
||||
@@ -728,36 +736,26 @@ class WindowList extends St.Widget {
|
||||
this._monitor = monitor;
|
||||
|
||||
let box = new St.BoxLayout({x_expand: true, y_expand: true});
|
||||
this.add_actor(box);
|
||||
this.add_child(box);
|
||||
|
||||
let toggle = new WindowPickerToggle();
|
||||
box.add_actor(toggle);
|
||||
|
||||
toggle.connect('notify::checked',
|
||||
this._updateWindowListVisibility.bind(this));
|
||||
|
||||
let layout = new Clutter.BoxLayout({homogeneous: true});
|
||||
this._windowList = new St.Widget({
|
||||
this._windowList = new St.BoxLayout({
|
||||
style_class: 'window-list',
|
||||
reactive: true,
|
||||
layout_manager: layout,
|
||||
x_align: Clutter.ActorAlign.START,
|
||||
x_expand: true,
|
||||
y_expand: true,
|
||||
});
|
||||
box.add_child(this._windowList);
|
||||
|
||||
this._windowList.connect('style-changed', () => {
|
||||
let node = this._windowList.get_theme_node();
|
||||
let spacing = node.get_length('spacing');
|
||||
this._windowList.layout_manager.spacing = spacing;
|
||||
});
|
||||
this._windowList.connect('scroll-event', this._onScrollEvent.bind(this));
|
||||
|
||||
let indicatorsBox = new St.BoxLayout({x_align: Clutter.ActorAlign.END});
|
||||
box.add(indicatorsBox);
|
||||
box.add_child(indicatorsBox);
|
||||
|
||||
this._workspaceIndicator = new WorkspaceIndicator();
|
||||
this._workspaceIndicator = new BottomWorkspaceIndicator({
|
||||
baseStyleClass: 'window-list-workspace-indicator',
|
||||
settings,
|
||||
});
|
||||
indicatorsBox.add_child(this._workspaceIndicator.container);
|
||||
|
||||
this._mutterSettings = new Gio.Settings({schema_id: 'org.gnome.mutter'});
|
||||
@@ -770,7 +768,9 @@ class WindowList extends St.Widget {
|
||||
this._updateWorkspaceIndicatorVisibility();
|
||||
|
||||
this._menuManager = new PopupMenu.PopupMenuManager(this);
|
||||
this._menuManager.addMenu(this._workspaceIndicator.menu);
|
||||
this._workspaceIndicator.connectObject('menu-set',
|
||||
() => this._onWorkspaceMenuSet(), this);
|
||||
this._onWorkspaceMenuSet();
|
||||
|
||||
Main.layoutManager.addChrome(this, {
|
||||
affectsStruts: true,
|
||||
@@ -829,7 +829,7 @@ class WindowList extends St.Widget {
|
||||
|
||||
this._windowSignals = new Map();
|
||||
global.display.connectObject(
|
||||
'window-created', (dsp, win) => this._addWindow(win), this);
|
||||
'window-created', (dsp, win) => this._addWindow(win, true), this);
|
||||
|
||||
Main.xdndHandler.connectObject(
|
||||
'drag-begin', () => this._monitorDrag(),
|
||||
@@ -867,6 +867,11 @@ class WindowList extends St.Widget {
|
||||
children[newActive].activate();
|
||||
}
|
||||
|
||||
_onWorkspaceMenuSet() {
|
||||
if (this._workspaceIndicator.menu)
|
||||
this._menuManager.addMenu(this._workspaceIndicator.menu);
|
||||
}
|
||||
|
||||
_updatePosition() {
|
||||
this.set_position(
|
||||
this._monitor.x,
|
||||
@@ -883,20 +888,6 @@ class WindowList extends St.Widget {
|
||||
this._workspaceIndicator.visible = hasWorkspaces && workspacesOnMonitor;
|
||||
}
|
||||
|
||||
_updateWindowListVisibility() {
|
||||
const {windowPicker} = Extension.lookupByURL(import.meta.url);
|
||||
const visible = !windowPicker.visible;
|
||||
|
||||
this._windowList.ease({
|
||||
opacity: visible ? 255 : 0,
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
duration: Overview.ANIMATION_TIME,
|
||||
});
|
||||
|
||||
this._windowList.reactive = visible;
|
||||
this._windowList.get_children().forEach(c => (c.reactive = visible));
|
||||
}
|
||||
|
||||
_getPreferredUngroupedWindowListWidth() {
|
||||
if (this._windowList.get_n_children() === 0)
|
||||
return this._windowList.get_preferred_width(-1)[1];
|
||||
@@ -955,14 +946,14 @@ class WindowList extends St.Widget {
|
||||
w2.metaWindow.get_stable_sequence();
|
||||
});
|
||||
for (let i = 0; i < windows.length; i++)
|
||||
this._addWindow(windows[i].metaWindow);
|
||||
this._addWindow(windows[i].metaWindow, false);
|
||||
} else {
|
||||
let apps = this._appSystem.get_running().sort((a1, a2) => {
|
||||
return _getAppStableSequence(a1) -
|
||||
_getAppStableSequence(a2);
|
||||
});
|
||||
for (let i = 0; i < apps.length; i++)
|
||||
this._addApp(apps[i]);
|
||||
this._addApp(apps[i], false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -976,26 +967,26 @@ class WindowList extends St.Widget {
|
||||
return;
|
||||
|
||||
if (app.state === Shell.AppState.RUNNING)
|
||||
this._addApp(app);
|
||||
this._addApp(app, true);
|
||||
else if (app.state === Shell.AppState.STOPPED)
|
||||
this._removeApp(app);
|
||||
}
|
||||
|
||||
_addApp(app) {
|
||||
_addApp(app, animate) {
|
||||
let button = new AppButton(app, this._perMonitor, this._monitor.index);
|
||||
this._settings.bind('display-all-workspaces',
|
||||
button, 'ignore-workspace', Gio.SettingsBindFlags.GET);
|
||||
this._windowList.add_child(button);
|
||||
button.show(animate);
|
||||
}
|
||||
|
||||
_removeApp(app) {
|
||||
let children = this._windowList.get_children();
|
||||
let child = children.find(c => c.app === app);
|
||||
if (child)
|
||||
child.destroy();
|
||||
child?.animateOutAndDestroy();
|
||||
}
|
||||
|
||||
_addWindow(win) {
|
||||
_addWindow(win, animate) {
|
||||
if (!this._grouped)
|
||||
this._checkGrouping();
|
||||
|
||||
@@ -1013,6 +1004,7 @@ class WindowList extends St.Widget {
|
||||
this._settings.bind('display-all-workspaces',
|
||||
button, 'ignore-workspace', Gio.SettingsBindFlags.GET);
|
||||
this._windowList.add_child(button);
|
||||
button.show(animate);
|
||||
}
|
||||
|
||||
_removeWindow(win) {
|
||||
@@ -1029,8 +1021,7 @@ class WindowList extends St.Widget {
|
||||
|
||||
let children = this._windowList.get_children();
|
||||
let child = children.find(c => c.metaWindow === win);
|
||||
if (child)
|
||||
child.destroy();
|
||||
child?.animateOutAndDestroy();
|
||||
}
|
||||
|
||||
_monitorDrag() {
|
||||
@@ -1101,12 +1092,33 @@ class WindowList extends St.Widget {
|
||||
}
|
||||
}
|
||||
|
||||
class BottomWorkspaceIndicator extends WorkspaceIndicator {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(params) {
|
||||
super(params);
|
||||
|
||||
this.remove_style_class_name('panel-button');
|
||||
}
|
||||
|
||||
setMenu(menu) {
|
||||
super.setMenu(menu);
|
||||
|
||||
if (!menu)
|
||||
return;
|
||||
|
||||
this.menu.actor.updateArrowSide(St.Side.BOTTOM);
|
||||
this.menu.actor.remove_style_class_name('panel-menu');
|
||||
}
|
||||
}
|
||||
|
||||
export default class WindowListExtension extends Extension {
|
||||
constructor(metadata) {
|
||||
super(metadata);
|
||||
|
||||
this._windowLists = null;
|
||||
this._hideOverviewOrig = Main.overview.hide;
|
||||
}
|
||||
|
||||
enable() {
|
||||
@@ -1119,13 +1131,6 @@ export default class WindowListExtension extends Extension {
|
||||
Main.layoutManager.connectObject('monitors-changed',
|
||||
() => this._buildWindowLists(), this);
|
||||
|
||||
this.windowPicker = new WindowPicker();
|
||||
|
||||
Main.overview.hide = () => {
|
||||
this.windowPicker.close();
|
||||
this._hideOverviewOrig.call(Main.overview);
|
||||
};
|
||||
|
||||
this._buildWindowLists();
|
||||
}
|
||||
|
||||
@@ -1154,78 +1159,9 @@ export default class WindowListExtension extends Extension {
|
||||
windowList.destroy();
|
||||
});
|
||||
this._windowLists = null;
|
||||
|
||||
this.windowPicker.destroy();
|
||||
delete this.windowPicker;
|
||||
|
||||
Main.overview.hide = this._hideOverviewOrig;
|
||||
}
|
||||
|
||||
someWindowListContains(actor) {
|
||||
return this._windowLists.some(list => list.contains(actor));
|
||||
}
|
||||
}
|
||||
|
||||
class Tooltip extends St.Label {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(widget, params) {
|
||||
super(params);
|
||||
|
||||
this._widget = widget;
|
||||
|
||||
this._widget.connect('notify::hover', () => {
|
||||
if (this._widget.hover)
|
||||
this.open();
|
||||
else
|
||||
this.close();
|
||||
});
|
||||
}
|
||||
|
||||
open() {
|
||||
const buttonTitleWidget = this._widget.label_actor;
|
||||
const [, , preferredTitleWidth] = buttonTitleWidget.get_preferred_size();
|
||||
const maxTitleWidth = buttonTitleWidget.allocation.get_width();
|
||||
const isTitleFullyShown = preferredTitleWidth <= maxTitleWidth;
|
||||
|
||||
if (isTitleFullyShown)
|
||||
return;
|
||||
|
||||
this.set({
|
||||
text: this._widget.label_actor.get_text(),
|
||||
visible: true,
|
||||
opacity: 0,
|
||||
});
|
||||
|
||||
const [stageX, stageY] = this._widget.get_transformed_position();
|
||||
const thumbWidth = this._widget.allocation.get_width();
|
||||
const tipWidth = this.width;
|
||||
const tipHeight = this.height;
|
||||
const xOffset = Math.floor((thumbWidth - tipWidth) / 2);
|
||||
const monitor = Main.layoutManager.findMonitorForActor(this);
|
||||
const x = Math.clamp(
|
||||
stageX + xOffset,
|
||||
monitor.x,
|
||||
monitor.x + monitor.width - tipWidth);
|
||||
const y = stageY - tipHeight - TOOLTIP_OFFSET;
|
||||
this.set_position(x, y);
|
||||
|
||||
this.ease({
|
||||
opacity: 255,
|
||||
duration: TOOLTIP_ANIMATION_TIME,
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
onComplete: () => (this.visible = this._widget.hover),
|
||||
});
|
||||
}
|
||||
|
||||
close() {
|
||||
this.ease({
|
||||
opacity: 0,
|
||||
duration: TOOLTIP_ANIMATION_TIME,
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
onComplete: () => (this.visible = this._widget.hover),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,5 +12,32 @@ extension_data += files(
|
||||
'stylesheet-light.css'
|
||||
)
|
||||
|
||||
extension_sources += files('prefs.js', 'windowPicker.js', 'workspaceIndicator.js')
|
||||
transform_stylesheet = [
|
||||
'sed', '-E',
|
||||
'-e', 's:^\.(workspace-indicator):.window-list-\\1:',
|
||||
'-e', '/^@import/d',
|
||||
'@INPUT@',
|
||||
]
|
||||
|
||||
workspaceIndicatorSources = [
|
||||
configure_file(
|
||||
input: '../workspace-indicator/workspaceIndicator.js',
|
||||
output: '@PLAINNAME@',
|
||||
copy: true,
|
||||
),
|
||||
configure_file(
|
||||
input: '../workspace-indicator/stylesheet-dark.css',
|
||||
output: 'stylesheet-workspace-switcher-dark.css',
|
||||
command: transform_stylesheet,
|
||||
capture: true,
|
||||
),
|
||||
configure_file(
|
||||
input: '../workspace-indicator/stylesheet-light.css',
|
||||
output: 'stylesheet-workspace-switcher-light.css',
|
||||
command: transform_stylesheet,
|
||||
capture: true,
|
||||
),
|
||||
]
|
||||
|
||||
extension_sources += files('prefs.js') + workspaceIndicatorSources
|
||||
extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml')
|
||||
|
||||
@@ -36,5 +36,9 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
||||
only on the primary one.
|
||||
</description>
|
||||
</key>
|
||||
<key name="embed-previews" type="b">
|
||||
<default>true</default>
|
||||
<summary>Show workspace previews in window list</summary>
|
||||
</key>
|
||||
</schema>
|
||||
</schemalist>
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||||
import Adw from 'gi://Adw';
|
||||
import Gio from 'gi://Gio';
|
||||
import GLib from 'gi://GLib';
|
||||
@@ -30,6 +29,8 @@ class WindowListPrefsWidget extends Adw.PreferencesPage {
|
||||
this._settings.create_action('show-on-all-monitors'));
|
||||
this._actionGroup.add_action(
|
||||
this._settings.create_action('display-all-workspaces'));
|
||||
this._actionGroup.add_action(
|
||||
this._settings.create_action('embed-previews'));
|
||||
|
||||
const groupingGroup = new Adw.PreferencesGroup({
|
||||
title: _('Window Grouping'),
|
||||
@@ -58,28 +59,22 @@ class WindowListPrefsWidget extends Adw.PreferencesPage {
|
||||
const miscGroup = new Adw.PreferencesGroup();
|
||||
this.add(miscGroup);
|
||||
|
||||
let toggle = new Gtk.Switch({
|
||||
action_name: 'window-list.show-on-all-monitors',
|
||||
valign: Gtk.Align.CENTER,
|
||||
});
|
||||
let row = new Adw.ActionRow({
|
||||
let row = new Adw.SwitchRow({
|
||||
title: _('Show on all monitors'),
|
||||
activatable_widget: toggle,
|
||||
action_name: 'window-list.show-on-all-monitors',
|
||||
});
|
||||
row.add_suffix(toggle);
|
||||
miscGroup.add(row);
|
||||
|
||||
toggle = new Gtk.Switch({
|
||||
action_name: 'window-list.display-all-workspaces',
|
||||
valign: Gtk.Align.CENTER,
|
||||
});
|
||||
this._settings.bind('display-all-workspaces',
|
||||
toggle, 'active', Gio.SettingsBindFlags.DEFAULT);
|
||||
row = new Adw.ActionRow({
|
||||
row = new Adw.SwitchRow({
|
||||
title: _('Show windows from all workspaces'),
|
||||
activatable_widget: toggle,
|
||||
action_name: 'window-list.display-all-workspaces',
|
||||
});
|
||||
miscGroup.add(row);
|
||||
|
||||
row = new Adw.SwitchRow({
|
||||
title: _('Show workspace previews'),
|
||||
action_name: 'window-list.embed-previews',
|
||||
});
|
||||
row.add_suffix(toggle);
|
||||
miscGroup.add(row);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
@import url("stylesheet-workspace-switcher-dark.css");
|
||||
|
||||
.window-list {
|
||||
spacing: 2px;
|
||||
@@ -32,10 +33,9 @@
|
||||
spacing: 4px;
|
||||
}
|
||||
|
||||
.window-button > StWidget,
|
||||
.window-picker-toggle > StWidget {
|
||||
color: #bbb;
|
||||
background-color: #1d1d1d;
|
||||
.window-button > StWidget {
|
||||
color: #fff;
|
||||
background-color: transparent;
|
||||
border-radius: 4px;
|
||||
padding: 3px 6px 1px;
|
||||
transition: 100ms ease;
|
||||
@@ -46,29 +46,26 @@
|
||||
max-width: 18.75em;
|
||||
}
|
||||
|
||||
.window-button:hover > StWidget,
|
||||
.window-picker-toggle:hover > StWidget {
|
||||
color: #fff;
|
||||
.window-button:hover > StWidget {
|
||||
background-color: #303030;
|
||||
}
|
||||
|
||||
.window-button:active > StWidget,
|
||||
.window-button:focus > StWidget {
|
||||
color: #fff;
|
||||
background-color: #3f3f3f;
|
||||
background-color: st-lighten(#303030, 5%);
|
||||
}
|
||||
|
||||
.window-button.focused > StWidget,
|
||||
.window-picker-toggle:checked > StWidget {
|
||||
color: #fff;
|
||||
background-color: #3f3f3f;
|
||||
.window-button.focused > StWidget {
|
||||
background-color: #5b5b5b;
|
||||
}
|
||||
|
||||
.window-button.focused:active > StWidget,
|
||||
.window-picker-toggle:checked:active > StWidget {
|
||||
color: #fff;
|
||||
background-color: #3f3f3f;
|
||||
}
|
||||
.window-button.focused:hover > StWidget {
|
||||
background-color: st-lighten(#5b5b5b, 5%);
|
||||
}
|
||||
|
||||
.window-button.focused:active > StWidget {
|
||||
background-color: st-lighten(#5b5b5b, 10%);
|
||||
}
|
||||
|
||||
.window-button.minimized > StWidget {
|
||||
color: #666;
|
||||
@@ -84,37 +81,3 @@
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.window-list-workspace-indicator .status-label-bin {
|
||||
background-color: rgba(200, 200, 200, 0.3);
|
||||
padding: 5px;
|
||||
margin: 3px;
|
||||
}
|
||||
|
||||
.window-list-workspace-indicator .workspaces-box {
|
||||
spacing: 3px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.window-list-workspace-indicator .workspace {
|
||||
width: 52px;
|
||||
border-radius: 4px;
|
||||
background-color: #1e1e1e;
|
||||
}
|
||||
|
||||
.window-list-workspace-indicator .workspace.active {
|
||||
background-color: #3f3f3f;
|
||||
}
|
||||
|
||||
.window-list-window-preview {
|
||||
background-color: #bebebe;
|
||||
border-radius: 1px;
|
||||
}
|
||||
|
||||
.window-list-window-preview.active {
|
||||
background-color: #d4d4d4;
|
||||
}
|
||||
|
||||
.notification {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
*/
|
||||
|
||||
@import url("stylesheet-dark.css");
|
||||
@import url("stylesheet-workspace-switcher-light.css");
|
||||
|
||||
#panel.bottom-panel {
|
||||
border-top-width: 1px;
|
||||
@@ -13,62 +14,45 @@
|
||||
height: 2.5em;
|
||||
}
|
||||
|
||||
.bottom-panel .window-button > StWidget,
|
||||
.bottom-panel .window-picker-toggle > StWidget {
|
||||
color: #2e3436;
|
||||
background-color: #eee;
|
||||
.bottom-panel .window-button > StWidget {
|
||||
border-radius: 3px;
|
||||
padding: 3px 6px 1px;
|
||||
box-shadow: none;
|
||||
text-shadow: none;
|
||||
border: 1px solid rgba(0,0,0,0.2);
|
||||
}
|
||||
|
||||
.bottom-panel .window-button > StWidget {
|
||||
-st-natural-width: 18.7em;
|
||||
max-width: 18.75em;
|
||||
}
|
||||
|
||||
.bottom-panel .window-button:hover > StWidget,
|
||||
.bottom-panel .window-picker-toggle:hover > StWidget {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
|
||||
.bottom-panel .window-button:active > StWidget,
|
||||
.bottom-panel .window-button:focus > StWidget {
|
||||
box-shadow: inset 0 1px 3px rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.bottom-panel .window-button.focused > StWidget,
|
||||
.bottom-panel .window-picker-toggle:checked > StWidget {
|
||||
background-color: #ccc;
|
||||
box-shadow: inset 0 1px 3px rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.bottom-panel .window-button.focused:hover > StWidget {
|
||||
background-color: #e9e9e9;
|
||||
}
|
||||
|
||||
.bottom-panel .window-button.minimized > StWidget {
|
||||
color: #888;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* workspace switcher */
|
||||
.window-list-workspace-indicator .workspace {
|
||||
border: 2px solid #f6f5f4;
|
||||
background-color: #ccc;
|
||||
.window-button > StWidget {
|
||||
color: #000;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.window-list-workspace-indicator .workspace.active {
|
||||
border-color: #888;
|
||||
.window-button:hover > StWidget {
|
||||
background-color: st-darken(#eee,5%);
|
||||
}
|
||||
|
||||
.window-list-window-preview {
|
||||
background-color: #ededed;
|
||||
border: 1px solid #ccc;
|
||||
.window-button:active > StWidget,
|
||||
.window-button:focus > StWidget {
|
||||
background-color: st-darken(#eee, 10%);
|
||||
}
|
||||
|
||||
.window-list-window-preview.active {
|
||||
background-color: #f6f5f4;
|
||||
.window-button.focused > StWidget {
|
||||
background-color: st-darken(#eee,15%);
|
||||
}
|
||||
|
||||
.window-button.focused:hover > StWidget {
|
||||
background-color: st-darken(#eee, 20%);
|
||||
}
|
||||
|
||||
.window-button.focused:active > StWidget {
|
||||
background-color: st-darken(#eee, 25%);
|
||||
}
|
||||
|
||||
.window-button.minimized > StWidget {
|
||||
color: #aaa;
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
|
||||
.window-button.minimized:active > StWidget {
|
||||
color: #aaa;
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
|
||||
@@ -1,342 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2019 Florian Müllner <fmuellner@gnome.org>
|
||||
// SPDX-FileCopyrightText: 2019 Marco Trevisan (Treviño) <mail@3v1n0.net>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
import Clutter from 'gi://Clutter';
|
||||
import GObject from 'gi://GObject';
|
||||
import Shell from 'gi://Shell';
|
||||
import St from 'gi://St';
|
||||
|
||||
import {Extension, InjectionManager} from 'resource:///org/gnome/shell/extensions/extension.js';
|
||||
import * as Layout from 'resource:///org/gnome/shell/ui/layout.js';
|
||||
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
|
||||
import {WorkspacesDisplay} from 'resource:///org/gnome/shell/ui/workspacesView.js';
|
||||
import * as Workspace from 'resource:///org/gnome/shell/ui/workspace.js';
|
||||
|
||||
import {VIGNETTE_BRIGHTNESS} from 'resource:///org/gnome/shell/ui/lightbox.js';
|
||||
import {
|
||||
SIDE_CONTROLS_ANIMATION_TIME,
|
||||
OverviewAdjustment,
|
||||
ControlsState
|
||||
} from 'resource:///org/gnome/shell/ui/overviewControls.js';
|
||||
|
||||
class MyWorkspacesDisplay extends WorkspacesDisplay {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(controls, overviewAdjustment) {
|
||||
let workspaceManager = global.workspace_manager;
|
||||
|
||||
const workspaceAdjustment = new St.Adjustment({
|
||||
value: workspaceManager.get_active_workspace_index(),
|
||||
lower: 0,
|
||||
page_increment: 1,
|
||||
page_size: 1,
|
||||
step_increment: 0,
|
||||
upper: workspaceManager.n_workspaces,
|
||||
});
|
||||
|
||||
super(controls, workspaceAdjustment, overviewAdjustment);
|
||||
|
||||
this._windowPicker = controls;
|
||||
|
||||
this._workspaceAdjustment = workspaceAdjustment;
|
||||
this._workspaceAdjustment.actor = this;
|
||||
|
||||
workspaceManager.connectObject('notify::n-workspaces',
|
||||
() => this._updateAdjustment(), this);
|
||||
|
||||
this.add_constraint(
|
||||
new Layout.MonitorConstraint({
|
||||
primary: true,
|
||||
work_area: true,
|
||||
}));
|
||||
}
|
||||
|
||||
prepareToEnterOverview(...args) {
|
||||
if (!this._scrollEventId) {
|
||||
this._scrollEventId = this._windowPicker.connect('scroll-event',
|
||||
this._onScrollEvent.bind(this));
|
||||
}
|
||||
|
||||
super.prepareToEnterOverview(...args);
|
||||
}
|
||||
|
||||
vfunc_hide(...args) {
|
||||
if (this._scrollEventId > 0)
|
||||
this._windowPicker.disconnect(this._scrollEventId);
|
||||
this._scrollEventId = 0;
|
||||
|
||||
super.vfunc_hide(...args);
|
||||
}
|
||||
|
||||
_updateAdjustment() {
|
||||
let workspaceManager = global.workspace_manager;
|
||||
this._workspaceAdjustment.set({
|
||||
upper: workspaceManager.n_workspaces,
|
||||
value: workspaceManager.get_active_workspace_index(),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export class WindowPicker extends Clutter.Actor {
|
||||
static [GObject.signals] = {
|
||||
'open-state-changed': {param_types: [GObject.TYPE_BOOLEAN]},
|
||||
};
|
||||
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super({reactive: true});
|
||||
|
||||
this._visible = false;
|
||||
this._modal = false;
|
||||
|
||||
this._stageKeyPressId = 0;
|
||||
|
||||
this._adjustment = new OverviewAdjustment(this);
|
||||
|
||||
this._injectionManager = new InjectionManager();
|
||||
this.connect('destroy', this._onDestroy.bind(this));
|
||||
|
||||
global.bind_property('screen-width',
|
||||
this, 'width',
|
||||
GObject.BindingFlags.SYNC_CREATE);
|
||||
global.bind_property('screen-height',
|
||||
this, 'height',
|
||||
GObject.BindingFlags.SYNC_CREATE);
|
||||
|
||||
this._workspacesDisplay = new MyWorkspacesDisplay(this, this._adjustment);
|
||||
this.add_child(this._workspacesDisplay);
|
||||
|
||||
Main.uiGroup.insert_child_below(this, global.window_group);
|
||||
|
||||
if (!Main.sessionMode.hasOverview) {
|
||||
this._injectBackgroundShade();
|
||||
|
||||
global.display.connectObject('overlay-key', () => {
|
||||
if (!this._visible)
|
||||
this.open();
|
||||
else
|
||||
this.close();
|
||||
}, this);
|
||||
}
|
||||
}
|
||||
|
||||
_injectBackgroundShade() {
|
||||
const backgroundProto = Workspace.WorkspaceBackground.prototype;
|
||||
this._injectionManager.overrideMethod(backgroundProto, '_updateBorderRadius',
|
||||
() => {
|
||||
return function () {};
|
||||
});
|
||||
this._injectionManager.overrideMethod(backgroundProto, 'vfunc_allocate',
|
||||
() => {
|
||||
/* eslint-disable no-invalid-this */
|
||||
return function (box) {
|
||||
this.set_allocation(box);
|
||||
|
||||
const themeNode = this.get_theme_node();
|
||||
const contentBox = themeNode.get_content_box(box);
|
||||
|
||||
this._bin.allocate(contentBox);
|
||||
|
||||
const [contentWidth, contentHeight] = contentBox.get_size();
|
||||
const monitor = Main.layoutManager.monitors[this._monitorIndex];
|
||||
const xRatio = contentWidth / this._workarea.width;
|
||||
const yRatio = contentHeight / this._workarea.height;
|
||||
|
||||
const right = area => area.x + area.width;
|
||||
const bottom = area => area.y + area.height;
|
||||
|
||||
const offsets = {
|
||||
left: xRatio * (this._workarea.x - monitor.x),
|
||||
right: xRatio * (right(monitor) - right(this._workarea)),
|
||||
top: yRatio * (this._workarea.y - monitor.y),
|
||||
bottom: yRatio * (bottom(monitor) - bottom(this._workarea)),
|
||||
};
|
||||
|
||||
contentBox.set_origin(-offsets.left, -offsets.top);
|
||||
contentBox.set_size(
|
||||
offsets.left + contentWidth + offsets.right,
|
||||
offsets.top + contentHeight + offsets.bottom);
|
||||
this._backgroundGroup.allocate(contentBox);
|
||||
};
|
||||
/* eslint-enable */
|
||||
});
|
||||
this._injectionManager.overrideMethod(backgroundProto, 'vfunc_parent_set',
|
||||
() => {
|
||||
/* eslint-disable no-invalid-this */
|
||||
return function () {
|
||||
setTimeout(() => {
|
||||
const parent = this.get_parent();
|
||||
if (!parent)
|
||||
return;
|
||||
|
||||
parent._overviewAdjustment.connectObject('notify::value', () => {
|
||||
const {value: progress} = parent._overviewAdjustment;
|
||||
const brightness = 1 - (1 - VIGNETTE_BRIGHTNESS) * progress;
|
||||
for (const bg of this._backgroundGroup ?? []) {
|
||||
bg.content.set({
|
||||
vignette: true,
|
||||
brightness,
|
||||
});
|
||||
}
|
||||
}, this);
|
||||
});
|
||||
};
|
||||
/* eslint-enable */
|
||||
});
|
||||
}
|
||||
|
||||
get visible() {
|
||||
return this._visible;
|
||||
}
|
||||
|
||||
open() {
|
||||
if (this._visible)
|
||||
return;
|
||||
|
||||
this._visible = true;
|
||||
|
||||
if (!this._syncGrab())
|
||||
return;
|
||||
|
||||
this._fakeOverviewVisible(true);
|
||||
this._workspacesDisplay.prepareToEnterOverview();
|
||||
Main.overview._animationInProgress = true;
|
||||
|
||||
this._adjustment.value = ControlsState.HIDDEN;
|
||||
this._adjustment.ease(ControlsState.WINDOW_PICKER, {
|
||||
duration: SIDE_CONTROLS_ANIMATION_TIME,
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
onComplete: () => (Main.overview._animationInProgress = false),
|
||||
});
|
||||
|
||||
this._stageKeyPressId = global.stage.connect('key-press-event',
|
||||
(a, event) => {
|
||||
let sym = event.get_key_symbol();
|
||||
if (sym === Clutter.KEY_Escape) {
|
||||
this.close();
|
||||
return Clutter.EVENT_STOP;
|
||||
}
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
});
|
||||
|
||||
this.emit('open-state-changed', this._visible);
|
||||
}
|
||||
|
||||
close() {
|
||||
if (!this._visible)
|
||||
return;
|
||||
|
||||
this._visible = false;
|
||||
|
||||
if (!this._syncGrab())
|
||||
return;
|
||||
|
||||
this._workspacesDisplay.prepareToLeaveOverview();
|
||||
|
||||
Main.overview._animationInProgress = true;
|
||||
this._adjustment.ease(ControlsState.HIDDEN, {
|
||||
duration: SIDE_CONTROLS_ANIMATION_TIME,
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
onComplete: () => {
|
||||
Main.overview._animationInProgress = false;
|
||||
this._workspacesDisplay.hide();
|
||||
this._fakeOverviewVisible(false);
|
||||
},
|
||||
});
|
||||
|
||||
global.stage.disconnect(this._stageKeyPressId);
|
||||
this._stageKeyPressId = 0;
|
||||
|
||||
this.emit('open-state-changed', this._visible);
|
||||
}
|
||||
|
||||
getWorkspacesBoxForState() {
|
||||
return this.allocation;
|
||||
}
|
||||
|
||||
_fakeOverviewVisible(visible) {
|
||||
// Fake overview state for WorkspacesDisplay
|
||||
Main.overview._visible = visible;
|
||||
|
||||
// Hide real windows
|
||||
Main.layoutManager._inOverview = visible;
|
||||
Main.layoutManager._updateVisibility();
|
||||
}
|
||||
|
||||
_syncGrab() {
|
||||
if (this._visible) {
|
||||
if (this._modal)
|
||||
return true;
|
||||
|
||||
const grab = Main.pushModal(global.stage, {
|
||||
actionMode: Shell.ActionMode.OVERVIEW,
|
||||
});
|
||||
if (grab.get_seat_state() !== Clutter.GrabState.NONE) {
|
||||
this._grab = grab;
|
||||
this._modal = true;
|
||||
} else {
|
||||
Main.popModal(grab);
|
||||
this.hide();
|
||||
return false;
|
||||
}
|
||||
} else if (this._modal) {
|
||||
Main.popModal(this._grab);
|
||||
this._modal = false;
|
||||
this._grab = null;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
_onDestroy() {
|
||||
this._injectionManager.clear();
|
||||
|
||||
if (this._stageKeyPressId)
|
||||
global.stage.disconnect(this._stageKeyPressId);
|
||||
this._stageKeyPressId = 0;
|
||||
}
|
||||
}
|
||||
|
||||
export class WindowPickerToggle extends St.Button {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor() {
|
||||
let iconBin = new St.Widget({
|
||||
layout_manager: new Clutter.BinLayout(),
|
||||
});
|
||||
iconBin.add_child(new St.Icon({
|
||||
icon_name: 'focus-windows-symbolic',
|
||||
icon_size: 16,
|
||||
x_expand: true,
|
||||
y_expand: true,
|
||||
x_align: Clutter.ActorAlign.CENTER,
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
}));
|
||||
super({
|
||||
style_class: 'window-picker-toggle',
|
||||
child: iconBin,
|
||||
visible: !Main.sessionMode.hasOverview,
|
||||
toggle_mode: true,
|
||||
});
|
||||
|
||||
const {windowPicker} = Extension.lookupByURL(import.meta.url);
|
||||
this.connect('notify::checked', () => {
|
||||
if (this.checked)
|
||||
windowPicker.open();
|
||||
else
|
||||
windowPicker.close();
|
||||
});
|
||||
|
||||
windowPicker.connect('open-state-changed', () => {
|
||||
this.checked = windowPicker.visible;
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,6 @@
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
||||
import Clutter from 'gi://Clutter';
|
||||
import Graphene from 'gi://Graphene';
|
||||
import St from 'gi://St';
|
||||
@@ -86,7 +85,7 @@ export default class Extension {
|
||||
style_class: 'extension-windowsNavigator-window-tooltip',
|
||||
visible: false,
|
||||
});
|
||||
this.add_actor(this._tip);
|
||||
this.add_child(this._tip);
|
||||
|
||||
this.connect('notify::scale-x', () => {
|
||||
this._tip.set_scale(1 / this.scale_x, 1 / this.scale_x);
|
||||
|
||||
@@ -4,440 +4,17 @@
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||||
import Clutter from 'gi://Clutter';
|
||||
import Gio from 'gi://Gio';
|
||||
import GObject from 'gi://GObject';
|
||||
import Meta from 'gi://Meta';
|
||||
import St from 'gi://St';
|
||||
import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js';
|
||||
|
||||
import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';
|
||||
|
||||
import * as DND from 'resource:///org/gnome/shell/ui/dnd.js';
|
||||
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
|
||||
import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js';
|
||||
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
|
||||
|
||||
const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences';
|
||||
const WORKSPACE_KEY = 'workspace-names';
|
||||
|
||||
const TOOLTIP_OFFSET = 6;
|
||||
const TOOLTIP_ANIMATION_TIME = 150;
|
||||
|
||||
const MAX_THUMBNAILS = 6;
|
||||
|
||||
class WindowPreview extends St.Button {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(window) {
|
||||
super({
|
||||
style_class: 'workspace-indicator-window-preview',
|
||||
});
|
||||
|
||||
this._delegate = this;
|
||||
DND.makeDraggable(this, {restoreOnSuccess: true});
|
||||
|
||||
this._window = window;
|
||||
|
||||
this._window.connectObject(
|
||||
'size-changed', () => this._checkRelayout(),
|
||||
'position-changed', () => this._checkRelayout(),
|
||||
'notify::minimized', this._updateVisible.bind(this),
|
||||
'notify::window-type', this._updateVisible.bind(this),
|
||||
this);
|
||||
this._updateVisible();
|
||||
|
||||
global.display.connectObject('notify::focus-window',
|
||||
this._onFocusChanged.bind(this), this);
|
||||
this._onFocusChanged();
|
||||
}
|
||||
|
||||
// needed for DND
|
||||
get metaWindow() {
|
||||
return this._window;
|
||||
}
|
||||
|
||||
_onFocusChanged() {
|
||||
if (global.display.focus_window === this._window)
|
||||
this.add_style_class_name('active');
|
||||
else
|
||||
this.remove_style_class_name('active');
|
||||
}
|
||||
|
||||
_checkRelayout() {
|
||||
const monitor = Main.layoutManager.findIndexForActor(this);
|
||||
const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
|
||||
if (this._window.get_frame_rect().overlap(workArea))
|
||||
this.queue_relayout();
|
||||
}
|
||||
|
||||
_updateVisible() {
|
||||
this.visible = this._window.window_type !== Meta.WindowType.DESKTOP &&
|
||||
this._window.showing_on_its_workspace();
|
||||
}
|
||||
}
|
||||
|
||||
class WorkspaceLayout extends Clutter.LayoutManager {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
vfunc_get_preferred_width() {
|
||||
return [0, 0];
|
||||
}
|
||||
|
||||
vfunc_get_preferred_height() {
|
||||
return [0, 0];
|
||||
}
|
||||
|
||||
vfunc_allocate(container, box) {
|
||||
const monitor = Main.layoutManager.findIndexForActor(container);
|
||||
const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
|
||||
const hscale = box.get_width() / workArea.width;
|
||||
const vscale = box.get_height() / workArea.height;
|
||||
|
||||
for (const child of container) {
|
||||
const childBox = new Clutter.ActorBox();
|
||||
const frameRect = child.metaWindow.get_frame_rect();
|
||||
childBox.set_size(
|
||||
Math.round(Math.min(frameRect.width, workArea.width) * hscale),
|
||||
Math.round(Math.min(frameRect.height, workArea.height) * vscale));
|
||||
childBox.set_origin(
|
||||
Math.round((frameRect.x - workArea.x) * hscale),
|
||||
Math.round((frameRect.y - workArea.y) * vscale));
|
||||
child.allocate(childBox);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class WorkspaceThumbnail extends St.Button {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(index) {
|
||||
super({
|
||||
style_class: 'workspace',
|
||||
child: new Clutter.Actor({
|
||||
layout_manager: new WorkspaceLayout(),
|
||||
clip_to_allocation: true,
|
||||
}),
|
||||
});
|
||||
|
||||
this._tooltip = new St.Label({
|
||||
style_class: 'dash-label',
|
||||
visible: false,
|
||||
});
|
||||
Main.uiGroup.add_child(this._tooltip);
|
||||
|
||||
this.connect('destroy', this._onDestroy.bind(this));
|
||||
this.connect('notify::hover', this._syncTooltip.bind(this));
|
||||
|
||||
this._index = index;
|
||||
this._delegate = this; // needed for DND
|
||||
|
||||
this._windowPreviews = new Map();
|
||||
|
||||
let workspaceManager = global.workspace_manager;
|
||||
this._workspace = workspaceManager.get_workspace_by_index(index);
|
||||
|
||||
this._workspace.connectObject(
|
||||
'window-added', (ws, window) => this._addWindow(window),
|
||||
'window-removed', (ws, window) => this._removeWindow(window),
|
||||
this);
|
||||
|
||||
global.display.connectObject('restacked',
|
||||
this._onRestacked.bind(this), this);
|
||||
|
||||
this._workspace.list_windows().forEach(w => this._addWindow(w));
|
||||
this._onRestacked();
|
||||
}
|
||||
|
||||
acceptDrop(source) {
|
||||
if (!source.metaWindow)
|
||||
return false;
|
||||
|
||||
this._moveWindow(source.metaWindow);
|
||||
return true;
|
||||
}
|
||||
|
||||
handleDragOver(source) {
|
||||
if (source.metaWindow)
|
||||
return DND.DragMotionResult.MOVE_DROP;
|
||||
else
|
||||
return DND.DragMotionResult.CONTINUE;
|
||||
}
|
||||
|
||||
_addWindow(window) {
|
||||
if (this._windowPreviews.has(window))
|
||||
return;
|
||||
|
||||
let preview = new WindowPreview(window);
|
||||
preview.connect('clicked', (a, btn) => this.emit('clicked', btn));
|
||||
this._windowPreviews.set(window, preview);
|
||||
this.child.add_child(preview);
|
||||
}
|
||||
|
||||
_removeWindow(window) {
|
||||
let preview = this._windowPreviews.get(window);
|
||||
if (!preview)
|
||||
return;
|
||||
|
||||
this._windowPreviews.delete(window);
|
||||
preview.destroy();
|
||||
}
|
||||
|
||||
_onRestacked() {
|
||||
let lastPreview = null;
|
||||
let windows = global.get_window_actors().map(a => a.meta_window);
|
||||
for (let i = 0; i < windows.length; i++) {
|
||||
let preview = this._windowPreviews.get(windows[i]);
|
||||
if (!preview)
|
||||
continue;
|
||||
|
||||
this.child.set_child_above_sibling(preview, lastPreview);
|
||||
lastPreview = preview;
|
||||
}
|
||||
}
|
||||
|
||||
_moveWindow(window) {
|
||||
let monitorIndex = Main.layoutManager.findIndexForActor(this);
|
||||
if (monitorIndex !== window.get_monitor())
|
||||
window.move_to_monitor(monitorIndex);
|
||||
window.change_workspace_by_index(this._index, false);
|
||||
}
|
||||
|
||||
on_clicked() {
|
||||
let ws = global.workspace_manager.get_workspace_by_index(this._index);
|
||||
if (ws)
|
||||
ws.activate(global.get_current_time());
|
||||
}
|
||||
|
||||
_syncTooltip() {
|
||||
if (this.hover) {
|
||||
this._tooltip.set({
|
||||
text: Meta.prefs_get_workspace_name(this._index),
|
||||
visible: true,
|
||||
opacity: 0,
|
||||
});
|
||||
|
||||
const [stageX, stageY] = this.get_transformed_position();
|
||||
const thumbWidth = this.allocation.get_width();
|
||||
const thumbHeight = this.allocation.get_height();
|
||||
const tipWidth = this._tooltip.width;
|
||||
const xOffset = Math.floor((thumbWidth - tipWidth) / 2);
|
||||
const monitor = Main.layoutManager.findMonitorForActor(this);
|
||||
const x = Math.clamp(
|
||||
stageX + xOffset,
|
||||
monitor.x,
|
||||
monitor.x + monitor.width - tipWidth);
|
||||
const y = stageY + thumbHeight + TOOLTIP_OFFSET;
|
||||
this._tooltip.set_position(x, y);
|
||||
}
|
||||
|
||||
this._tooltip.ease({
|
||||
opacity: this.hover ? 255 : 0,
|
||||
duration: TOOLTIP_ANIMATION_TIME,
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
onComplete: () => (this._tooltip.visible = this.hover),
|
||||
});
|
||||
}
|
||||
|
||||
_onDestroy() {
|
||||
this._tooltip.destroy();
|
||||
}
|
||||
}
|
||||
|
||||
class WorkspaceIndicator extends PanelMenu.Button {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super(0.5, _('Workspace Indicator'));
|
||||
|
||||
let container = new St.Widget({
|
||||
layout_manager: new Clutter.BinLayout(),
|
||||
x_expand: true,
|
||||
y_expand: true,
|
||||
});
|
||||
this.add_actor(container);
|
||||
|
||||
let workspaceManager = global.workspace_manager;
|
||||
|
||||
this._currentWorkspace = workspaceManager.get_active_workspace_index();
|
||||
this._statusLabel = new St.Label({
|
||||
style_class: 'panel-workspace-indicator',
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
text: this._labelText(),
|
||||
});
|
||||
|
||||
container.add_actor(this._statusLabel);
|
||||
|
||||
this._thumbnailsBox = new St.BoxLayout({
|
||||
style_class: 'panel-workspace-indicator-box',
|
||||
y_expand: true,
|
||||
reactive: true,
|
||||
});
|
||||
|
||||
container.add_actor(this._thumbnailsBox);
|
||||
|
||||
this._workspacesItems = [];
|
||||
this._workspaceSection = new PopupMenu.PopupMenuSection();
|
||||
this.menu.addMenuItem(this._workspaceSection);
|
||||
|
||||
workspaceManager.connectObject(
|
||||
'notify::n-workspaces', this._nWorkspacesChanged.bind(this), GObject.ConnectFlags.AFTER,
|
||||
'workspace-switched', this._onWorkspaceSwitched.bind(this), GObject.ConnectFlags.AFTER,
|
||||
'notify::layout-rows', this._updateThumbnailVisibility.bind(this),
|
||||
this);
|
||||
|
||||
this.connect('scroll-event', this._onScrollEvent.bind(this));
|
||||
this._thumbnailsBox.connect('scroll-event', this._onScrollEvent.bind(this));
|
||||
this._createWorkspacesSection();
|
||||
this._updateThumbnails();
|
||||
this._updateThumbnailVisibility();
|
||||
|
||||
this._settings = new Gio.Settings({schema_id: WORKSPACE_SCHEMA});
|
||||
this._settings.connectObject(`changed::${WORKSPACE_KEY}`,
|
||||
this._updateMenuLabels.bind(this), this);
|
||||
}
|
||||
|
||||
_onDestroy() {
|
||||
Main.panel.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
|
||||
|
||||
super._onDestroy();
|
||||
}
|
||||
|
||||
_updateThumbnailVisibility() {
|
||||
const {workspaceManager} = global;
|
||||
const vertical = workspaceManager.layout_rows === -1;
|
||||
const useMenu =
|
||||
vertical || workspaceManager.n_workspaces > MAX_THUMBNAILS;
|
||||
this.reactive = useMenu;
|
||||
|
||||
this._statusLabel.visible = useMenu;
|
||||
this._thumbnailsBox.visible = !useMenu;
|
||||
|
||||
// Disable offscreen-redirect when showing the workspace switcher
|
||||
// so that clip-to-allocation works
|
||||
Main.panel.set_offscreen_redirect(useMenu
|
||||
? Clutter.OffscreenRedirect.ALWAYS
|
||||
: Clutter.OffscreenRedirect.AUTOMATIC_FOR_OPACITY);
|
||||
}
|
||||
|
||||
_onWorkspaceSwitched() {
|
||||
this._currentWorkspace = global.workspace_manager.get_active_workspace_index();
|
||||
|
||||
this._updateMenuOrnament();
|
||||
this._updateActiveThumbnail();
|
||||
|
||||
this._statusLabel.set_text(this._labelText());
|
||||
}
|
||||
|
||||
_nWorkspacesChanged() {
|
||||
this._createWorkspacesSection();
|
||||
this._updateThumbnails();
|
||||
this._updateThumbnailVisibility();
|
||||
}
|
||||
|
||||
_updateMenuOrnament() {
|
||||
for (let i = 0; i < this._workspacesItems.length; i++) {
|
||||
this._workspacesItems[i].setOrnament(i === this._currentWorkspace
|
||||
? PopupMenu.Ornament.DOT
|
||||
: PopupMenu.Ornament.NONE);
|
||||
}
|
||||
}
|
||||
|
||||
_updateActiveThumbnail() {
|
||||
let thumbs = this._thumbnailsBox.get_children();
|
||||
for (let i = 0; i < thumbs.length; i++) {
|
||||
if (i === this._currentWorkspace)
|
||||
thumbs[i].add_style_class_name('active');
|
||||
else
|
||||
thumbs[i].remove_style_class_name('active');
|
||||
}
|
||||
}
|
||||
|
||||
_labelText(workspaceIndex) {
|
||||
if (workspaceIndex === undefined) {
|
||||
workspaceIndex = this._currentWorkspace;
|
||||
return (workspaceIndex + 1).toString();
|
||||
}
|
||||
return Meta.prefs_get_workspace_name(workspaceIndex);
|
||||
}
|
||||
|
||||
_updateMenuLabels() {
|
||||
for (let i = 0; i < this._workspacesItems.length; i++)
|
||||
this._workspacesItems[i].label.text = this._labelText(i);
|
||||
}
|
||||
|
||||
_createWorkspacesSection() {
|
||||
let workspaceManager = global.workspace_manager;
|
||||
|
||||
this._workspaceSection.removeAll();
|
||||
this._workspacesItems = [];
|
||||
this._currentWorkspace = workspaceManager.get_active_workspace_index();
|
||||
|
||||
let i = 0;
|
||||
for (; i < workspaceManager.n_workspaces; i++) {
|
||||
this._workspacesItems[i] = new PopupMenu.PopupMenuItem(this._labelText(i));
|
||||
this._workspaceSection.addMenuItem(this._workspacesItems[i]);
|
||||
this._workspacesItems[i].workspaceId = i;
|
||||
this._workspacesItems[i].label_actor = this._statusLabel;
|
||||
this._workspacesItems[i].connect('activate', (actor, _event) => {
|
||||
this._activate(actor.workspaceId);
|
||||
});
|
||||
|
||||
if (i === this._currentWorkspace)
|
||||
this._workspacesItems[i].setOrnament(PopupMenu.Ornament.DOT);
|
||||
}
|
||||
|
||||
this._statusLabel.set_text(this._labelText());
|
||||
}
|
||||
|
||||
_updateThumbnails() {
|
||||
let workspaceManager = global.workspace_manager;
|
||||
|
||||
this._thumbnailsBox.destroy_all_children();
|
||||
|
||||
for (let i = 0; i < workspaceManager.n_workspaces; i++) {
|
||||
let thumb = new WorkspaceThumbnail(i);
|
||||
this._thumbnailsBox.add_actor(thumb);
|
||||
}
|
||||
this._updateActiveThumbnail();
|
||||
}
|
||||
|
||||
_activate(index) {
|
||||
let workspaceManager = global.workspace_manager;
|
||||
|
||||
if (index >= 0 && index < workspaceManager.n_workspaces) {
|
||||
let metaWorkspace = workspaceManager.get_workspace_by_index(index);
|
||||
metaWorkspace.activate(global.get_current_time());
|
||||
}
|
||||
}
|
||||
|
||||
_onScrollEvent(actor, event) {
|
||||
let direction = event.get_scroll_direction();
|
||||
let diff = 0;
|
||||
if (direction === Clutter.ScrollDirection.DOWN)
|
||||
diff = 1;
|
||||
else if (direction === Clutter.ScrollDirection.UP)
|
||||
diff = -1;
|
||||
else
|
||||
return;
|
||||
|
||||
|
||||
let newIndex = global.workspace_manager.get_active_workspace_index() + diff;
|
||||
this._activate(newIndex);
|
||||
}
|
||||
}
|
||||
import {WorkspaceIndicator} from './workspaceIndicator.js';
|
||||
|
||||
export default class WorkspaceIndicatorExtension extends Extension {
|
||||
enable() {
|
||||
this._indicator = new WorkspaceIndicator();
|
||||
this._indicator = new WorkspaceIndicator({
|
||||
settings: this.getSettings(),
|
||||
});
|
||||
Main.panel.addToStatusArea('workspace-indicator', this._indicator);
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,10 @@ extension_data += configure_file(
|
||||
output: metadata_name,
|
||||
configuration: metadata_conf
|
||||
)
|
||||
extension_data += files('stylesheet.css')
|
||||
extension_data += files(
|
||||
'stylesheet-dark.css',
|
||||
'stylesheet-light.css',
|
||||
)
|
||||
extension_schemas += files('schemas/' + metadata_conf.get('gschemaname') + '.gschema.xml')
|
||||
|
||||
extension_sources += files('prefs.js')
|
||||
extension_sources += files('prefs.js', 'workspaceIndicator.js')
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||||
import Adw from 'gi://Adw';
|
||||
import Gio from 'gi://Gio';
|
||||
import GLib from 'gi://GLib';
|
||||
@@ -18,6 +17,25 @@ const N_ = e => e;
|
||||
const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences';
|
||||
const WORKSPACE_KEY = 'workspace-names';
|
||||
|
||||
class GeneralGroup extends Adw.PreferencesGroup {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(settings) {
|
||||
super();
|
||||
|
||||
const row = new Adw.SwitchRow({
|
||||
title: _('Show Previews In Top Bar'),
|
||||
});
|
||||
this.add(row);
|
||||
|
||||
settings.bind('embed-previews',
|
||||
row, 'active',
|
||||
Gio.SettingsBindFlags.DEFAULT);
|
||||
}
|
||||
}
|
||||
|
||||
class NewItem extends GObject.Object {}
|
||||
GObject.registerClass(NewItem);
|
||||
|
||||
@@ -119,7 +137,7 @@ class WorkspacesList extends GObject.Object {
|
||||
}
|
||||
}
|
||||
|
||||
class WorkspaceSettingsWidget extends Adw.PreferencesGroup {
|
||||
class WorkspacesGroup extends Adw.PreferencesGroup {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
|
||||
@@ -265,6 +283,9 @@ class NewWorkspaceRow extends Adw.PreferencesRow {
|
||||
|
||||
export default class WorkspaceIndicatorPrefs extends ExtensionPreferences {
|
||||
getPreferencesWidget() {
|
||||
return new WorkspaceSettingsWidget();
|
||||
const page = new Adw.PreferencesPage();
|
||||
page.add(new GeneralGroup(this.getSettings()));
|
||||
page.add(new WorkspacesGroup());
|
||||
return page;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2024 Florian Müllner <fmuellner@gnome.org>
|
||||
|
||||
SPDX-License-Identifier: GPL-2.0-or-later
|
||||
-->
|
||||
|
||||
<schemalist gettext-domain="gnome-shell-extensions">
|
||||
<schema id="org.gnome.shell.extensions.workspace-indicator"
|
||||
path="/org/gnome/shell/extensions/workspace-indicator/">
|
||||
<key name="embed-previews" type="b">
|
||||
<default>true</default>
|
||||
<summary>Show workspace previews in top bar</summary>
|
||||
</key>
|
||||
</schema>
|
||||
</schemalist>
|
||||
76
extensions/workspace-indicator/stylesheet-dark.css
Normal file
76
extensions/workspace-indicator/stylesheet-dark.css
Normal file
@@ -0,0 +1,76 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2011 Erick Pérez Castellanos <erick.red@gmail.com>
|
||||
* SPDX-FileCopyrightText: 2019 Florian Müllner <fmuellner@gnome.org>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
.workspace-indicator .status-label {
|
||||
padding: 0 8px;
|
||||
}
|
||||
|
||||
.workspace-indicator .workspaces-view.hfade {
|
||||
-st-hfade-offset: 20px;
|
||||
}
|
||||
|
||||
.workspace-indicator-menu .workspaces-view {
|
||||
max-width: 480px;
|
||||
}
|
||||
|
||||
.workspace-indicator .workspaces-box {
|
||||
spacing: 3px;
|
||||
}
|
||||
|
||||
.workspace-indicator-menu .workspaces-box {
|
||||
padding: 5px;
|
||||
spacing: 6px;
|
||||
}
|
||||
|
||||
.workspace-indicator .workspace-box {
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
.workspace-indicator StButton:first-child:ltr > .workspace-box,
|
||||
.workspace-indicator StButton:last-child:rtl > .workspace-box {
|
||||
padding-left: 5px;
|
||||
}
|
||||
.workspace-indicator StButton:last-child:ltr > .workspace-box,
|
||||
.workspace-indicator StButton:first-child:rtl > .workspace-box {
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.workspace-indicator-menu .workspace-box {
|
||||
spacing: 6px;
|
||||
}
|
||||
|
||||
.workspace-indicator-menu .workspace,
|
||||
.workspace-indicator .workspace {
|
||||
border: 1px solid transparent;
|
||||
border-radius: 4px;
|
||||
background-color: #3f3f3f;
|
||||
}
|
||||
|
||||
.workspace-indicator .workspace {
|
||||
width: 52px;
|
||||
}
|
||||
|
||||
.workspace-indicator-menu .workspace {
|
||||
height: 80px;
|
||||
width: 160px;
|
||||
}
|
||||
|
||||
.workspace-indicator-menu .workspace.active,
|
||||
.workspace-indicator .workspace.active {
|
||||
border-color: #fff;
|
||||
}
|
||||
|
||||
.workspace-indicator-window-preview {
|
||||
background-color: #bebebe;
|
||||
border: 1px solid #828282;
|
||||
border-radius: 1px;
|
||||
}
|
||||
|
||||
.workspace-indicator-window-preview.active {
|
||||
background-color: #d4d4d4;
|
||||
}
|
||||
25
extensions/workspace-indicator/stylesheet-light.css
Normal file
25
extensions/workspace-indicator/stylesheet-light.css
Normal file
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2013 Florian Müllner <fmuellner@gnome.org>
|
||||
* SPDX-FileCopyrightText: 2015 Jakub Steiner <jimmac@gmail.com>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
@import url("stylesheet-dark.css");
|
||||
|
||||
.workspace-indicator .workspace {
|
||||
background-color: #ccc;
|
||||
}
|
||||
|
||||
.workspace-indicator .workspace.active {
|
||||
border-color: #888;
|
||||
}
|
||||
|
||||
.workspace-indicator-window-preview {
|
||||
background-color: #ededed;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.workspace-indicator-window-preview.active {
|
||||
background-color: #f6f5f4;
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2011 Erick Pérez Castellanos <erick.red@gmail.com>
|
||||
* SPDX-FileCopyrightText: 2019 Florian Müllner <fmuellner@gnome.org>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
.panel-workspace-indicator {
|
||||
padding: 0 8px;
|
||||
}
|
||||
|
||||
.panel-workspace-indicator-box {
|
||||
padding: 4px 0;
|
||||
spacing: 4px;
|
||||
}
|
||||
|
||||
.panel-workspace-indicator-box .workspace {
|
||||
width: 40px;
|
||||
border: 2px solid #000;
|
||||
border-radius: 2px;
|
||||
background-color: #595959;
|
||||
}
|
||||
|
||||
.panel-workspace-indicator-box .workspace.active {
|
||||
border-color: #fff;
|
||||
}
|
||||
|
||||
.workspace-indicator-window-preview {
|
||||
background-color: #bebebe;
|
||||
border: 1px solid #828282;
|
||||
}
|
||||
|
||||
.workspace-indicator-window-preview.active {
|
||||
background-color: #d4d4d4;
|
||||
}
|
||||
@@ -1,4 +1,6 @@
|
||||
// SPDX-FileCopyrightText: 2019 Florian Müllner <fmuellner@gnome.org>
|
||||
// SPDX-FileCopyrightText: 2011 Erick Pérez Castellanos <erick.red@gmail.com>
|
||||
// SPDX-FileCopyrightText: 2011 Giovanni Campagna <gcampagna@src.gnome.org>
|
||||
// SPDX-FileCopyrightText: 2017 Florian Müllner <fmuellner@gnome.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
@@ -18,7 +20,9 @@ import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
|
||||
const TOOLTIP_OFFSET = 6;
|
||||
const TOOLTIP_ANIMATION_TIME = 150;
|
||||
|
||||
const MAX_THUMBNAILS = 6;
|
||||
const SCROLL_TIME = 100;
|
||||
|
||||
let baseStyleClassName = '';
|
||||
|
||||
class WindowPreview extends St.Button {
|
||||
static {
|
||||
@@ -27,7 +31,7 @@ class WindowPreview extends St.Button {
|
||||
|
||||
constructor(window) {
|
||||
super({
|
||||
style_class: 'window-list-window-preview',
|
||||
style_class: `${baseStyleClassName}-window-preview`,
|
||||
});
|
||||
|
||||
this._delegate = this;
|
||||
@@ -100,25 +104,55 @@ class WorkspaceLayout extends Clutter.LayoutManager {
|
||||
Math.round(Math.min(frameRect.height, workArea.height) * vscale));
|
||||
childBox.set_origin(
|
||||
Math.round((frameRect.x - workArea.x) * hscale),
|
||||
Math.round((frameRect.y - workArea.y) * vscale));
|
||||
Math.round((frameRect.y - workArea.y) * vscale));
|
||||
child.allocate(childBox);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class WorkspaceThumbnail extends St.Button {
|
||||
static [GObject.properties] = {
|
||||
'active': GObject.ParamSpec.boolean(
|
||||
'active', null, null,
|
||||
GObject.ParamFlags.READWRITE,
|
||||
false),
|
||||
'show-label': GObject.ParamSpec.boolean(
|
||||
'show-label', null, null,
|
||||
GObject.ParamFlags.READWRITE,
|
||||
false),
|
||||
};
|
||||
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(index) {
|
||||
super({
|
||||
super();
|
||||
|
||||
const box = new St.BoxLayout({
|
||||
style_class: 'workspace-box',
|
||||
y_expand: true,
|
||||
vertical: true,
|
||||
});
|
||||
this.set_child(box);
|
||||
|
||||
this._preview = new St.Bin({
|
||||
style_class: 'workspace',
|
||||
child: new Clutter.Actor({
|
||||
layout_manager: new WorkspaceLayout(),
|
||||
clip_to_allocation: true,
|
||||
x_expand: true,
|
||||
y_expand: true,
|
||||
}),
|
||||
y_expand: true,
|
||||
});
|
||||
box.add_child(this._preview);
|
||||
|
||||
this._label = new St.Label({
|
||||
x_align: Clutter.ActorAlign.CENTER,
|
||||
text: Meta.prefs_get_workspace_name(index),
|
||||
});
|
||||
box.add_child(this._label);
|
||||
|
||||
this._tooltip = new St.Label({
|
||||
style_class: 'dash-label',
|
||||
@@ -126,9 +160,19 @@ class WorkspaceThumbnail extends St.Button {
|
||||
});
|
||||
Main.uiGroup.add_child(this._tooltip);
|
||||
|
||||
this.bind_property('show-label',
|
||||
this._label, 'visible',
|
||||
GObject.BindingFlags.SYNC_CREATE);
|
||||
|
||||
this.connect('destroy', this._onDestroy.bind(this));
|
||||
this.connect('notify::hover', this._syncTooltip.bind(this));
|
||||
|
||||
const desktopSettings =
|
||||
new Gio.Settings({schema_id: 'org.gnome.desktop.wm.preferences'});
|
||||
desktopSettings.connectObject('changed::workspace-names', () => {
|
||||
this._label.text = Meta.prefs_get_workspace_name(index);
|
||||
}, this);
|
||||
|
||||
this._index = index;
|
||||
this._delegate = this; // needed for DND
|
||||
|
||||
@@ -137,6 +181,10 @@ class WorkspaceThumbnail extends St.Button {
|
||||
let workspaceManager = global.workspace_manager;
|
||||
this._workspace = workspaceManager.get_workspace_by_index(index);
|
||||
|
||||
this._workspace.bind_property('active',
|
||||
this, 'active',
|
||||
GObject.BindingFlags.SYNC_CREATE);
|
||||
|
||||
this._workspace.connectObject(
|
||||
'window-added', (ws, window) => this._addWindow(window),
|
||||
'window-removed', (ws, window) => this._removeWindow(window),
|
||||
@@ -149,6 +197,18 @@ class WorkspaceThumbnail extends St.Button {
|
||||
this._onRestacked();
|
||||
}
|
||||
|
||||
get active() {
|
||||
return this._preview.has_style_class_name('active');
|
||||
}
|
||||
|
||||
set active(active) {
|
||||
if (active)
|
||||
this._preview.add_style_class_name('active');
|
||||
else
|
||||
this._preview.remove_style_class_name('active');
|
||||
this.notify('active');
|
||||
}
|
||||
|
||||
acceptDrop(source) {
|
||||
if (!source.metaWindow)
|
||||
return false;
|
||||
@@ -171,7 +231,7 @@ class WorkspaceThumbnail extends St.Button {
|
||||
let preview = new WindowPreview(window);
|
||||
preview.connect('clicked', (a, btn) => this.emit('clicked', btn));
|
||||
this._windowPreviews.set(window, preview);
|
||||
this.child.add_child(preview);
|
||||
this._preview.child.add_child(preview);
|
||||
}
|
||||
|
||||
_removeWindow(window) {
|
||||
@@ -191,7 +251,7 @@ class WorkspaceThumbnail extends St.Button {
|
||||
if (!preview)
|
||||
continue;
|
||||
|
||||
this.child.set_child_above_sibling(preview, lastPreview);
|
||||
this._preview.child.set_child_above_sibling(preview, lastPreview);
|
||||
lastPreview = preview;
|
||||
}
|
||||
}
|
||||
@@ -210,6 +270,9 @@ class WorkspaceThumbnail extends St.Button {
|
||||
}
|
||||
|
||||
_syncTooltip() {
|
||||
if (this.showLabel)
|
||||
return;
|
||||
|
||||
if (this.hover) {
|
||||
this._tooltip.set({
|
||||
text: Meta.prefs_get_workspace_name(this._index),
|
||||
@@ -218,16 +281,17 @@ class WorkspaceThumbnail extends St.Button {
|
||||
});
|
||||
|
||||
const [stageX, stageY] = this.get_transformed_position();
|
||||
const thumbWidth = this.allocation.get_width();
|
||||
const tipWidth = this._tooltip.width;
|
||||
const tipHeight = this._tooltip.height;
|
||||
const [thumbWidth, thumbHeight] = this.allocation.get_size();
|
||||
const [tipWidth, tipHeight] = this._tooltip.get_size();
|
||||
const xOffset = Math.floor((thumbWidth - tipWidth) / 2);
|
||||
const monitor = Main.layoutManager.findMonitorForActor(this);
|
||||
const x = Math.clamp(
|
||||
stageX + xOffset,
|
||||
monitor.x,
|
||||
monitor.x + monitor.width - tipWidth);
|
||||
const y = stageY - tipHeight - TOOLTIP_OFFSET;
|
||||
const y = stageY - monitor.y > thumbHeight + TOOLTIP_OFFSET
|
||||
? stageY - tipHeight - TOOLTIP_OFFSET // show above
|
||||
: stageY + thumbHeight + TOOLTIP_OFFSET; // show below
|
||||
this._tooltip.set_position(x, y);
|
||||
}
|
||||
|
||||
@@ -244,184 +308,230 @@ class WorkspaceThumbnail extends St.Button {
|
||||
}
|
||||
}
|
||||
|
||||
class WorkspacePreviews extends Clutter.Actor {
|
||||
static [GObject.properties] = {
|
||||
'show-labels': GObject.ParamSpec.boolean(
|
||||
'show-labels', null, null,
|
||||
GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT_ONLY,
|
||||
false),
|
||||
};
|
||||
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(params) {
|
||||
super({
|
||||
...params,
|
||||
layout_manager: new Clutter.BinLayout(),
|
||||
reactive: true,
|
||||
y_expand: true,
|
||||
});
|
||||
|
||||
this.connect('scroll-event',
|
||||
(a, event) => Main.wm.handleWorkspaceScroll(event));
|
||||
|
||||
const {workspaceManager} = global;
|
||||
|
||||
workspaceManager.connectObject(
|
||||
'notify::n-workspaces', () => this._updateThumbnails(), GObject.ConnectFlags.AFTER,
|
||||
'workspace-switched', () => this._updateScrollPosition(),
|
||||
this);
|
||||
|
||||
this.connect('notify::mapped', () => {
|
||||
if (this.mapped)
|
||||
this._updateScrollPosition();
|
||||
});
|
||||
|
||||
this._thumbnailsBox = new St.BoxLayout({
|
||||
style_class: 'workspaces-box',
|
||||
y_expand: true,
|
||||
});
|
||||
|
||||
this._scrollView = new St.ScrollView({
|
||||
style_class: 'workspaces-view hfade',
|
||||
enable_mouse_scrolling: false,
|
||||
hscrollbar_policy: St.PolicyType.EXTERNAL,
|
||||
vscrollbar_policy: St.PolicyType.NEVER,
|
||||
y_expand: true,
|
||||
child: this._thumbnailsBox,
|
||||
});
|
||||
|
||||
this.add_child(this._scrollView);
|
||||
|
||||
this._updateThumbnails();
|
||||
}
|
||||
|
||||
_updateThumbnails() {
|
||||
const {nWorkspaces} = global.workspace_manager;
|
||||
|
||||
this._thumbnailsBox.destroy_all_children();
|
||||
|
||||
for (let i = 0; i < nWorkspaces; i++) {
|
||||
const thumb = new WorkspaceThumbnail(i);
|
||||
this.bind_property('show-labels',
|
||||
thumb, 'show-label',
|
||||
GObject.BindingFlags.SYNC_CREATE);
|
||||
this._thumbnailsBox.add_child(thumb);
|
||||
}
|
||||
|
||||
if (this.mapped)
|
||||
this._updateScrollPosition();
|
||||
}
|
||||
|
||||
_updateScrollPosition() {
|
||||
const adjustment = this._scrollView.hadjustment;
|
||||
const {upper, pageSize} = adjustment;
|
||||
let {value} = adjustment;
|
||||
|
||||
const activeWorkspace =
|
||||
[...this._thumbnailsBox].find(a => a.active);
|
||||
|
||||
if (!activeWorkspace)
|
||||
return;
|
||||
|
||||
let offset = 0;
|
||||
const hfade = this._scrollView.get_effect('fade');
|
||||
if (hfade)
|
||||
offset = hfade.fade_margins.left;
|
||||
|
||||
let {x1, x2} = activeWorkspace.get_allocation_box();
|
||||
let parent = activeWorkspace.get_parent();
|
||||
while (parent !== this._scrollView) {
|
||||
if (!parent)
|
||||
throw new Error('actor not in scroll view');
|
||||
|
||||
const box = parent.get_allocation_box();
|
||||
x1 += box.x1;
|
||||
x2 += box.x1;
|
||||
parent = parent.get_parent();
|
||||
}
|
||||
|
||||
if (x1 < value + offset)
|
||||
value = Math.max(0, x1 - offset);
|
||||
else if (x2 > value + pageSize - offset)
|
||||
value = Math.min(upper, x2 + offset - pageSize);
|
||||
else
|
||||
return;
|
||||
|
||||
adjustment.ease(value, {
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
duration: SCROLL_TIME,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export class WorkspaceIndicator extends PanelMenu.Button {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor() {
|
||||
constructor(params = {}) {
|
||||
super(0.5, _('Workspace Indicator'), true);
|
||||
this.setMenu(new PopupMenu.PopupMenu(this, 0.0, St.Side.BOTTOM));
|
||||
this.add_style_class_name('window-list-workspace-indicator');
|
||||
this.remove_style_class_name('panel-button');
|
||||
this.menu.actor.remove_style_class_name('panel-menu');
|
||||
|
||||
const {
|
||||
baseStyleClass = 'workspace-indicator',
|
||||
settings,
|
||||
} = params;
|
||||
|
||||
this._settings = settings;
|
||||
|
||||
baseStyleClassName = baseStyleClass;
|
||||
this.add_style_class_name(baseStyleClassName);
|
||||
|
||||
let container = new St.Widget({
|
||||
layout_manager: new Clutter.BinLayout(),
|
||||
x_expand: true,
|
||||
y_expand: true,
|
||||
});
|
||||
this.add_actor(container);
|
||||
this.add_child(container);
|
||||
|
||||
let workspaceManager = global.workspace_manager;
|
||||
|
||||
this._currentWorkspace = workspaceManager.get_active_workspace_index();
|
||||
this._statusLabel = new St.Label({text: this._getStatusText()});
|
||||
|
||||
this._statusBin = new St.Bin({
|
||||
style_class: 'status-label-bin',
|
||||
x_expand: true,
|
||||
y_expand: true,
|
||||
child: this._statusLabel,
|
||||
this._statusLabel = new St.Label({
|
||||
style_class: 'status-label',
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
text: this._getStatusText(),
|
||||
});
|
||||
container.add_actor(this._statusBin);
|
||||
container.add_child(this._statusLabel);
|
||||
|
||||
this._thumbnailsBox = new St.BoxLayout({
|
||||
style_class: 'workspaces-box',
|
||||
y_expand: true,
|
||||
reactive: true,
|
||||
});
|
||||
this._thumbnailsBox.connect('scroll-event',
|
||||
this._onScrollEvent.bind(this));
|
||||
container.add_actor(this._thumbnailsBox);
|
||||
this._thumbnails = new WorkspacePreviews();
|
||||
container.add_child(this._thumbnails);
|
||||
|
||||
this._workspacesItems = [];
|
||||
|
||||
workspaceManager.connectObject(
|
||||
'notify::n-workspaces', this._nWorkspacesChanged.bind(this), GObject.ConnectFlags.AFTER,
|
||||
'workspace-switched', this._onWorkspaceSwitched.bind(this), GObject.ConnectFlags.AFTER,
|
||||
'notify::layout-rows', this._updateThumbnailVisibility.bind(this),
|
||||
this);
|
||||
|
||||
this.connect('scroll-event', this._onScrollEvent.bind(this));
|
||||
this._updateMenu();
|
||||
this._updateThumbnails();
|
||||
this._updateThumbnailVisibility();
|
||||
this.connect('scroll-event',
|
||||
(a, event) => Main.wm.handleWorkspaceScroll(event));
|
||||
|
||||
this._settings = new Gio.Settings({schema_id: 'org.gnome.desktop.wm.preferences'});
|
||||
this._settings.connectObject('changed::workspace-names',
|
||||
() => this._updateMenuLabels(), this);
|
||||
this._inTopBar = false;
|
||||
this.connect('notify::realized', () => {
|
||||
if (!this.realized)
|
||||
return;
|
||||
|
||||
this._inTopBar = Main.panel.contains(this);
|
||||
this._updateTopBarRedirect();
|
||||
});
|
||||
|
||||
this._settings.connect('changed::embed-previews',
|
||||
() => this._updateThumbnailVisibility());
|
||||
this._updateThumbnailVisibility();
|
||||
}
|
||||
|
||||
_onDestroy() {
|
||||
if (this._inTopBar)
|
||||
Main.panel.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
|
||||
this._inTopBar = false;
|
||||
|
||||
super._onDestroy();
|
||||
}
|
||||
|
||||
_updateThumbnailVisibility() {
|
||||
const {workspaceManager} = global;
|
||||
const vertical = workspaceManager.layout_rows === -1;
|
||||
const useMenu =
|
||||
vertical || workspaceManager.n_workspaces > MAX_THUMBNAILS;
|
||||
const useMenu = !this._settings.get_boolean('embed-previews');
|
||||
this.reactive = useMenu;
|
||||
|
||||
this._statusBin.visible = useMenu;
|
||||
this._thumbnailsBox.visible = !useMenu;
|
||||
this._statusLabel.visible = useMenu;
|
||||
this._thumbnails.visible = !useMenu;
|
||||
|
||||
this.setMenu(useMenu
|
||||
? this._createPreviewMenu()
|
||||
: null);
|
||||
|
||||
this._updateTopBarRedirect();
|
||||
}
|
||||
|
||||
_updateTopBarRedirect() {
|
||||
if (!this._inTopBar)
|
||||
return;
|
||||
|
||||
// Disable offscreen-redirect when showing the workspace switcher
|
||||
// so that clip-to-allocation works
|
||||
Main.panel.set_offscreen_redirect(this._thumbnails.visible
|
||||
? Clutter.OffscreenRedirect.ALWAYS
|
||||
: Clutter.OffscreenRedirect.AUTOMATIC_FOR_OPACITY);
|
||||
}
|
||||
|
||||
_onWorkspaceSwitched() {
|
||||
let workspaceManager = global.workspace_manager;
|
||||
this._currentWorkspace = workspaceManager.get_active_workspace_index();
|
||||
|
||||
this._updateMenuOrnament();
|
||||
this._updateActiveThumbnail();
|
||||
|
||||
this._currentWorkspace = global.workspace_manager.get_active_workspace_index();
|
||||
this._statusLabel.set_text(this._getStatusText());
|
||||
}
|
||||
|
||||
_nWorkspacesChanged() {
|
||||
this._updateMenu();
|
||||
this._updateThumbnails();
|
||||
this._updateThumbnailVisibility();
|
||||
}
|
||||
|
||||
_updateMenuOrnament() {
|
||||
for (let i = 0; i < this._workspacesItems.length; i++) {
|
||||
this._workspacesItems[i].setOrnament(i === this._currentWorkspace
|
||||
? PopupMenu.Ornament.DOT
|
||||
: PopupMenu.Ornament.NONE);
|
||||
}
|
||||
}
|
||||
|
||||
_updateActiveThumbnail() {
|
||||
let thumbs = this._thumbnailsBox.get_children();
|
||||
for (let i = 0; i < thumbs.length; i++) {
|
||||
if (i === this._currentWorkspace)
|
||||
thumbs[i].add_style_class_name('active');
|
||||
else
|
||||
thumbs[i].remove_style_class_name('active');
|
||||
}
|
||||
}
|
||||
|
||||
_getStatusText() {
|
||||
let workspaceManager = global.workspace_manager;
|
||||
let current = workspaceManager.get_active_workspace_index();
|
||||
let total = workspaceManager.n_workspaces;
|
||||
|
||||
return '%d / %d'.format(current + 1, total);
|
||||
const {nWorkspaces} = global.workspace_manager;
|
||||
const current = this._currentWorkspace + 1;
|
||||
return `${current} / ${nWorkspaces}`;
|
||||
}
|
||||
|
||||
_updateMenuLabels() {
|
||||
for (let i = 0; i < this._workspacesItems.length; i++) {
|
||||
let item = this._workspacesItems[i];
|
||||
let name = Meta.prefs_get_workspace_name(i);
|
||||
item.label.text = name;
|
||||
}
|
||||
}
|
||||
_createPreviewMenu() {
|
||||
const menu = new PopupMenu.PopupMenu(this, 0.5, St.Side.TOP);
|
||||
|
||||
_updateMenu() {
|
||||
let workspaceManager = global.workspace_manager;
|
||||
|
||||
this.menu.removeAll();
|
||||
this._workspacesItems = [];
|
||||
this._currentWorkspace = workspaceManager.get_active_workspace_index();
|
||||
|
||||
for (let i = 0; i < workspaceManager.n_workspaces; i++) {
|
||||
let name = Meta.prefs_get_workspace_name(i);
|
||||
let item = new PopupMenu.PopupMenuItem(name);
|
||||
item.workspaceId = i;
|
||||
|
||||
item.connect('activate', () => {
|
||||
this._activate(item.workspaceId);
|
||||
});
|
||||
|
||||
if (i === this._currentWorkspace)
|
||||
item.setOrnament(PopupMenu.Ornament.DOT);
|
||||
|
||||
this.menu.addMenuItem(item);
|
||||
this._workspacesItems[i] = item;
|
||||
}
|
||||
|
||||
this._statusLabel.set_text(this._getStatusText());
|
||||
}
|
||||
|
||||
_updateThumbnails() {
|
||||
let workspaceManager = global.workspace_manager;
|
||||
|
||||
this._thumbnailsBox.destroy_all_children();
|
||||
|
||||
for (let i = 0; i < workspaceManager.n_workspaces; i++) {
|
||||
let thumb = new WorkspaceThumbnail(i);
|
||||
this._thumbnailsBox.add_actor(thumb);
|
||||
}
|
||||
this._updateActiveThumbnail();
|
||||
}
|
||||
|
||||
_activate(index) {
|
||||
let workspaceManager = global.workspace_manager;
|
||||
|
||||
if (index >= 0 && index < workspaceManager.n_workspaces) {
|
||||
let metaWorkspace = workspaceManager.get_workspace_by_index(index);
|
||||
metaWorkspace.activate(global.get_current_time());
|
||||
}
|
||||
}
|
||||
|
||||
_onScrollEvent(actor, event) {
|
||||
let direction = event.get_scroll_direction();
|
||||
let diff = 0;
|
||||
if (direction === Clutter.ScrollDirection.DOWN)
|
||||
diff = 1;
|
||||
else if (direction === Clutter.ScrollDirection.UP)
|
||||
diff = -1;
|
||||
else
|
||||
return;
|
||||
|
||||
let newIndex = this._currentWorkspace + diff;
|
||||
this._activate(newIndex);
|
||||
const previews = new WorkspacePreviews({show_labels: true});
|
||||
menu.box.add_child(previews);
|
||||
menu.actor.add_style_class_name(`${baseStyleClassName}-menu`);
|
||||
return menu;
|
||||
}
|
||||
}
|
||||
@@ -32,10 +32,4 @@ and will be picked automatically at next login.
|
||||
<gnome:userid>fmuellner</gnome:userid>
|
||||
</foaf:Person>
|
||||
</maintainer>
|
||||
<maintainer>
|
||||
<foaf:Person>
|
||||
<foaf:name>Marge Bot</foaf:name>
|
||||
<gnome:userid>marge-bot</gnome:userid>
|
||||
</foaf:Person>
|
||||
</maintainer>
|
||||
</Project>
|
||||
|
||||
42
meson.build
42
meson.build
@@ -2,10 +2,11 @@
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
project('gnome-shell-extensions',
|
||||
version: '45.2',
|
||||
meson_version: '>= 0.58.0',
|
||||
license: 'GPL2+'
|
||||
project(
|
||||
'gnome-shell-extensions',
|
||||
version: '47.2',
|
||||
meson_version: '>= 1.1.0',
|
||||
license: 'GPL-2.0-or-later',
|
||||
)
|
||||
|
||||
gettext_domain = meson.project_name()
|
||||
@@ -34,7 +35,7 @@ classic_extensions = [
|
||||
'apps-menu',
|
||||
'places-menu',
|
||||
'launch-new-instance',
|
||||
'window-list'
|
||||
'window-list',
|
||||
]
|
||||
|
||||
default_extensions = classic_extensions
|
||||
@@ -42,16 +43,14 @@ default_extensions += [
|
||||
'drive-menu',
|
||||
'light-style',
|
||||
'screenshot-window-sizer',
|
||||
'status-icons',
|
||||
'system-monitor',
|
||||
'windowsNavigator',
|
||||
'workspace-indicator'
|
||||
'workspace-indicator',
|
||||
]
|
||||
|
||||
all_extensions = default_extensions
|
||||
all_extensions += [
|
||||
'auto-move-windows',
|
||||
'native-window-placement',
|
||||
'user-theme'
|
||||
]
|
||||
all_extensions += ['auto-move-windows', 'native-window-placement', 'user-theme']
|
||||
|
||||
enabled_extensions = get_option('enable_extensions')
|
||||
|
||||
@@ -70,11 +69,10 @@ endif
|
||||
classic_mode_enabled = get_option('classic_mode')
|
||||
|
||||
if classic_mode_enabled
|
||||
# Sanity check: Make sure all classic extensions are enabled
|
||||
# Sanity check: Make sure all classic extensions are enabled
|
||||
foreach e : classic_extensions
|
||||
if not enabled_extensions.contains(e)
|
||||
error('Classic mode is enabled, ' +
|
||||
'but the required extension @0@ is not.'.format(e))
|
||||
error(f'Classic mode is enabled, but the required extension @e@ is not')
|
||||
endif
|
||||
endforeach
|
||||
endif
|
||||
@@ -82,7 +80,7 @@ endif
|
||||
# Sanity check: Make sure enabled extensions are valid
|
||||
foreach e : enabled_extensions
|
||||
if not all_extensions.contains(e)
|
||||
error('Invalid extension @0@.'.format(e))
|
||||
error(f'Invalid extension @e@.')
|
||||
endif
|
||||
endforeach
|
||||
|
||||
@@ -90,24 +88,20 @@ if classic_mode_enabled
|
||||
subdir('data')
|
||||
meson.add_install_script(
|
||||
'meson/session-post-install.py',
|
||||
join_paths(get_option('prefix'), datadir)
|
||||
join_paths(get_option('prefix'), datadir),
|
||||
)
|
||||
endif
|
||||
|
||||
subdir('extensions')
|
||||
subdir('po')
|
||||
|
||||
gnome.post_install(
|
||||
glib_compile_schemas: true,
|
||||
)
|
||||
gnome.post_install(glib_compile_schemas: true)
|
||||
|
||||
meson.add_dist_script('meson/check-version.py',
|
||||
meson.project_version(),
|
||||
'NEWS')
|
||||
meson.add_dist_script('meson/check-version.py', meson.project_version(), 'NEWS')
|
||||
|
||||
summary_options = {
|
||||
'extensions': enabled_extensions,
|
||||
'classic_mode': get_option('classic_mode'),
|
||||
'extensions': enabled_extensions,
|
||||
'classic_mode': get_option('classic_mode'),
|
||||
}
|
||||
|
||||
summary_dirs = {
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
|
||||
import os, sys
|
||||
from pathlib import Path
|
||||
import argparse, subprocess
|
||||
from xml.etree.ElementTree import ElementTree
|
||||
import argparse
|
||||
|
||||
def check_version(version, file, type='news'):
|
||||
if type == 'news':
|
||||
@@ -16,8 +17,11 @@ def check_version(version, file, type='news'):
|
||||
if not ok:
|
||||
raise Exception("{} does not start with {}".format(file, version))
|
||||
elif type == 'metainfo':
|
||||
subprocess.run(['appstream-util', 'validate-version', file, version],
|
||||
check=True)
|
||||
query = './releases/release[@version="{}"]'.format(version)
|
||||
ok = ElementTree(file=file).find(query) is not None
|
||||
print("{}: {}".format(file, "OK" if ok else "FAILED"))
|
||||
if not ok:
|
||||
raise Exception("{} does not contain release {}".format(file, version))
|
||||
else:
|
||||
raise Exception('Not implemented')
|
||||
|
||||
|
||||
@@ -11,11 +11,13 @@ extensions/native-window-placement/org.gnome.shell.extensions.native-window-plac
|
||||
extensions/places-menu/extension.js
|
||||
extensions/places-menu/placeDisplay.js
|
||||
extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml
|
||||
extensions/system-monitor/extension.js
|
||||
extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml
|
||||
extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml
|
||||
extensions/window-list/extension.js
|
||||
extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml
|
||||
extensions/window-list/prefs.js
|
||||
extensions/window-list/workspaceIndicator.js
|
||||
extensions/windowsNavigator/extension.js
|
||||
extensions/workspace-indicator/extension.js
|
||||
extensions/workspace-indicator/prefs.js
|
||||
extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml
|
||||
extensions/workspace-indicator/workspaceIndicator.js
|
||||
|
||||
206
po/be.po
206
po/be.po
@@ -8,17 +8,17 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2022-07-10 12:54+0000\n"
|
||||
"PO-Revision-Date: 2022-10-19 15:20+0300\n"
|
||||
"Last-Translator: Launchpad translators\n"
|
||||
"POT-Creation-Date: 2024-04-29 15:27+0000\n"
|
||||
"PO-Revision-Date: 2024-08-23 16:00+0300\n"
|
||||
"Last-Translator: Yuras Shumovich <shumovichy@gmail.com>\n"
|
||||
"Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n"
|
||||
"Language: be\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"X-Generator: Poedit 3.0\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"X-Generator: Poedit 3.4.4\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
@@ -37,19 +37,19 @@ msgstr "Класічны GNOME на Wayland"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "Класічны GNOME на Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:118
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
msgid "Favorites"
|
||||
msgstr "Абраныя"
|
||||
|
||||
#: extensions/apps-menu/extension.js:379
|
||||
msgid "Applications"
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
msgid "Apps"
|
||||
msgstr "Праграмы"
|
||||
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:12
|
||||
msgid "Application and workspace list"
|
||||
msgstr "Праграма і спіс працоўных прастор"
|
||||
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:13
|
||||
msgid ""
|
||||
"A list of strings, each containing an application id (desktop file name), "
|
||||
"followed by a colon and the workspace number"
|
||||
@@ -57,99 +57,171 @@ msgstr ""
|
||||
"Спіс радкоў, кожны з якіх змяшчае ідэнтыфікатар праграмы (імя файла *."
|
||||
"desktop), затым двукроп'е і нумар працоўнай прасторы"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:152
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Правілы для працоўнай прасторы"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:306
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
msgid "Add Rule"
|
||||
msgstr "Дадаць правіла"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:126
|
||||
#: extensions/places-menu/placeDisplay.js:210
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:218
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Не ўдалося выняць дыск «%s»:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:145
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "Здымныя прылады"
|
||||
|
||||
#: extensions/drive-menu/extension.js:167
|
||||
#: extensions/drive-menu/extension.js:164
|
||||
msgid "Open Files"
|
||||
msgstr "Адкрыць файлы"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
msgid "Use more screen for windows"
|
||||
msgstr "Выкарыстоўваць большую плошчу экрана для вокнаў"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||
msgid ""
|
||||
"Try to use more screen for placing window thumbnails by adapting to screen "
|
||||
"aspect ratio, and consolidating them further to reduce the bounding box. "
|
||||
"This setting applies only with the natural placement strategy."
|
||||
msgstr ""
|
||||
"Спрабаваць выкарыстаць большую плошчу экрана для размяшчэння мініяцюр праз "
|
||||
"змяненне суадносін бакоў экрана, ўшчыльняючы іх, каб зменшыць памеры "
|
||||
"змяненне суадносін бакоў экрана, ушчыльняючы іх, каб зменшыць памеры "
|
||||
"абмежавальнай рамкі. Гэты параметр ужываецца толькі з натуральным "
|
||||
"размяшчэннем мініяцюр."
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:17
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Размяшчаць подпіс акна зверху"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:18
|
||||
msgid ""
|
||||
"If true, place window captions on top the respective thumbnail, overriding "
|
||||
"shell default of placing it at the bottom. Changing this setting requires "
|
||||
"restarting the shell to have any effect."
|
||||
msgstr ""
|
||||
"Калі выбрана, подпіс акна будзе над мініяцюрай, а не пад ей (як "
|
||||
"Калі выбрана, подпіс акна будзе над мініяцюрай, а не пад ёй (як "
|
||||
"перадвызначана). Каб змена налады ўступіла ў сілу, трэба перазапусціць "
|
||||
"абалонку."
|
||||
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
#: extensions/places-menu/extension.js:97
|
||||
msgid "Places"
|
||||
msgstr "Месцы"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:49
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Не ўдалося запусціць «%s»"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:64
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Не ўдалося прымацаваць том для «%s»."
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:125
|
||||
#: extensions/places-menu/placeDisplay.js:148
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Камп'ютар"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:336
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
msgid "Home"
|
||||
msgstr "Хатняя папка"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:381
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Агляд сеткі"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
msgstr "Паслядоўнасць змены памераў для здымка экрана"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:18
|
||||
msgid "Cycle Screenshot Sizes Backward"
|
||||
msgstr "Адваротная паслядоўнасць змены памераў для здымка экрана"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
#: extensions/system-monitor/extension.js:135
|
||||
msgid "CPU stats"
|
||||
msgstr "Статыстыка выкарыстання працэсара"
|
||||
|
||||
#: extensions/system-monitor/extension.js:159
|
||||
msgid "Memory stats"
|
||||
msgstr "Статыстыка выкарыстання памяці"
|
||||
|
||||
#: extensions/system-monitor/extension.js:177
|
||||
msgid "Swap stats"
|
||||
msgstr "Статыстыка выкарыстання своп"
|
||||
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Статыстыка адпраўлення даных"
|
||||
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Статыстыка атрымання даных"
|
||||
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Статыстыка сістэмы"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Паказваць"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "Працэсар"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Памяць"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Своп"
|
||||
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Атрыманне"
|
||||
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Адпраўленне"
|
||||
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Адкрыць сістэмны манітор"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
|
||||
msgid "Show CPU usage"
|
||||
msgstr "Паказваць выкарыстанне працэсара"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
msgstr "Паказваць выкарыстанне памяці"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
|
||||
msgid "Show swap usage"
|
||||
msgstr "Паказваць выкарыстанне своп"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
|
||||
msgid "Show upload"
|
||||
msgstr "Паказваць атрыманне даных"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
|
||||
msgid "Show download"
|
||||
msgstr "Паказваць адпраўленне даных"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
|
||||
msgid "Theme name"
|
||||
msgstr "Назва тэмы"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:12
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "Назва тэмы, што загрузіцца з ~/.themes/name/gnome-shell"
|
||||
|
||||
@@ -157,51 +229,51 @@ msgstr "Назва тэмы, што загрузіцца з ~/.themes/name/gnome
|
||||
msgid "Close"
|
||||
msgstr "Закрыць"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Unminimize"
|
||||
msgstr "Скасаваць згортванне"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Minimize"
|
||||
msgstr "Згарнуць"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Unmaximize"
|
||||
msgstr "Скасаваць разгортванне"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Maximize"
|
||||
msgstr "Разгарнуць"
|
||||
|
||||
#: extensions/window-list/extension.js:483
|
||||
#: extensions/window-list/extension.js:471
|
||||
msgid "Minimize all"
|
||||
msgstr "Згарнуць усе"
|
||||
|
||||
#: extensions/window-list/extension.js:489
|
||||
#: extensions/window-list/extension.js:477
|
||||
msgid "Unminimize all"
|
||||
msgstr "Скасаваць згортванне для ўсіх"
|
||||
|
||||
#: extensions/window-list/extension.js:495
|
||||
#: extensions/window-list/extension.js:483
|
||||
msgid "Maximize all"
|
||||
msgstr "Разгарнуць усе"
|
||||
|
||||
#: extensions/window-list/extension.js:503
|
||||
#: extensions/window-list/extension.js:491
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Скасаваць разгортванне для ўсіх"
|
||||
|
||||
#: extensions/window-list/extension.js:511
|
||||
#: extensions/window-list/extension.js:499
|
||||
msgid "Close all"
|
||||
msgstr "Закрыць усе"
|
||||
|
||||
#: extensions/window-list/extension.js:795
|
||||
#: extensions/window-list/extension.js:778
|
||||
msgid "Window List"
|
||||
msgstr "Спіс вокнаў"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:18
|
||||
msgid "When to group windows"
|
||||
msgstr "Умовы групавання вокнаў"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:19
|
||||
msgid ""
|
||||
"Decides when to group windows from the same application on the window list. "
|
||||
"Possible values are “never”, “auto” and “always”."
|
||||
@@ -209,26 +281,30 @@ msgstr ""
|
||||
"Вызначае калі групаваць вокны адной праграмы ў спісе вокнаў. Магчымыя "
|
||||
"значэнні: «never» (ніколі), «auto» (аўтаматычна), «always» (заўсёды)."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Паказваць вокны з усіх працоўных прастор"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
msgid "Whether to show windows from all workspaces or only the current one."
|
||||
msgstr "Паказваць вокны з усіх працоўных прастор ці толькі з бягучай."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:33
|
||||
msgid "Show the window list on all monitors"
|
||||
msgstr "Паказваць спіс вокнаў на ўсіх маніторах"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:34
|
||||
msgid ""
|
||||
"Whether to show the window list on all connected monitors or only on the "
|
||||
"primary one."
|
||||
msgstr ""
|
||||
"Паказваць спіс вокнаў на ўсіх падлучаных маніторах ці толькі на асноўным."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr "Паказваць папярэдні прагляд працоўных прастор у спісе акон"
|
||||
|
||||
#: extensions/window-list/prefs.js:35
|
||||
msgid "Window Grouping"
|
||||
msgstr "Групаванне вокнаў"
|
||||
@@ -249,24 +325,38 @@ msgstr "Заўсёды групаваць вокны"
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Паказваць на ўсіх маніторах"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:261
|
||||
#: extensions/workspace-indicator/extension.js:266
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Індыкатар працоўнай прасторы"
|
||||
#: extensions/window-list/prefs.js:92
|
||||
msgid "Show workspace previews"
|
||||
msgstr "Паказваць папярэдні прагляд працоўных прастор"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:62
|
||||
#: extensions/workspace-indicator/prefs.js:30
|
||||
msgid "Show Previews In Top Bar"
|
||||
msgstr "Паказваць папярэдні прагляд у верхняй панэлі"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:88
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Працоўная прастора %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:129
|
||||
#: extensions/workspace-indicator/prefs.js:155
|
||||
msgid "Workspace Names"
|
||||
msgstr "Назвы працоўных прастор"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:255
|
||||
#: extensions/workspace-indicator/prefs.js:281
|
||||
msgid "Add Workspace"
|
||||
msgstr "Дадаць працоўную прастору"
|
||||
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr "Паказваць папярэдні прагляд працоўных прастор у верхняй панэлі"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:430
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Індыкатар працоўнай прасторы"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Праграмы"
|
||||
|
||||
#~ msgid "Attach modal dialog to the parent window"
|
||||
#~ msgstr "Прымацаваць мадальны дыялог да бацькоўскага акна"
|
||||
|
||||
@@ -328,7 +418,7 @@ msgstr "Дадаць працоўную прастору"
|
||||
#~ "If not empty, it contains the text that will be shown when clicking on "
|
||||
#~ "the panel."
|
||||
#~ msgstr ""
|
||||
#~ "Калі не пуста, ўтрымлівае тэкст, які будзе паказвацца пры націсканні на "
|
||||
#~ "Калі не пуста, змяшчае тэкст, які будзе паказвацца пры націсканні на "
|
||||
#~ "панэль."
|
||||
|
||||
#~ msgid "Message"
|
||||
|
||||
224
po/bg.po
224
po/bg.po
@@ -1,24 +1,28 @@
|
||||
# Bulgarian translation for gnome-shell-extensions po-file.
|
||||
# Copyright (C) 2014, 2015, 2017 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2021, 2022 Alexander Shopov <ash@kambanaria.org>.
|
||||
# Copyright (C) 2024 twlvnn kraftwerk <kraft_werk@tutanota.com>.
|
||||
# This file is distributed under the same license as the gnome-shell-extensions package.
|
||||
# Ivaylo Valkov <ivaylo@e-valkov.org>, 2014.
|
||||
# Alexander Shopov <ash@kambanaria.org>, 2014, 2015, 2021, 2022.
|
||||
# Lyubomir Vasilev <lyubomirv@abv.bg>, 2017.
|
||||
# twlvnn kraftwerk <kraft_werk@tutanota.com>, 2024.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Project-Id-Version: gnome-shell-extensions main\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2022-02-12 20:25+0000\n"
|
||||
"PO-Revision-Date: 2022-02-13 11:40+0100\n"
|
||||
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
|
||||
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
|
||||
"POT-Creation-Date: 2024-09-01 12:03+0000\n"
|
||||
"PO-Revision-Date: 2024-09-02 10:49+0200\n"
|
||||
"Last-Translator: twlvnn kraftwerk <kraft_werk@tutanota.com>\n"
|
||||
"Language-Team: Bulgarian <dict@ludost.net>\n"
|
||||
"Language: bg\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
"X-Generator: Gtranslator 46.1\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
@@ -37,19 +41,19 @@ msgstr "Класически GNOME в Wayland"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "Класически GNOME в Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:112
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
msgid "Favorites"
|
||||
msgstr "Любими"
|
||||
|
||||
#: extensions/apps-menu/extension.js:370
|
||||
msgid "Applications"
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
msgid "Apps"
|
||||
msgstr "Програми"
|
||||
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:12
|
||||
msgid "Application and workspace list"
|
||||
msgstr "Списък с програмите и работните плотове"
|
||||
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:13
|
||||
msgid ""
|
||||
"A list of strings, each containing an application id (desktop file name), "
|
||||
"followed by a colon and the workspace number"
|
||||
@@ -57,34 +61,34 @@ msgstr ""
|
||||
"Списък от низове. Всеки съдържа идентификатор на програма (име на файл „."
|
||||
"desktop“), следван от знака „:“ и номер на работен плот"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:19
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Правила за работните плотове"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:245
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
msgid "Add Rule"
|
||||
msgstr "Добавяне на правило"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:210
|
||||
#: extensions/places-menu/placeDisplay.js:218
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Неуспешно изваждане на устройство „%s“:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:139
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "Преносими медии"
|
||||
|
||||
#: extensions/drive-menu/extension.js:161
|
||||
#: extensions/drive-menu/extension.js:164
|
||||
msgid "Open Files"
|
||||
msgstr "Отваряне на файлове"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
msgid "Use more screen for windows"
|
||||
msgstr "Повече пространство за прозорците"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||
msgid ""
|
||||
"Try to use more screen for placing window thumbnails by adapting to screen "
|
||||
"aspect ratio, and consolidating them further to reduce the bounding box. "
|
||||
@@ -95,11 +99,11 @@ msgstr ""
|
||||
"смаляване на обхващащия ги правоъгълник. Тази настройка се прилага само при "
|
||||
"естествената стратегия за поставяне на прозорците."
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:17
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Заглавия на прозорците отгоре"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:18
|
||||
msgid ""
|
||||
"If true, place window captions on top the respective thumbnail, overriding "
|
||||
"shell default of placing it at the bottom. Changing this setting requires "
|
||||
@@ -109,123 +113,195 @@ msgstr ""
|
||||
"им, а не както е стандартно — отдолу. За прилагане на промяната на "
|
||||
"настройката трябва да рестартирате обвивката на GNOME."
|
||||
|
||||
#: extensions/places-menu/extension.js:88
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
msgid "Places"
|
||||
msgstr "Места"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:49
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Неуспешно стартиране на „%s“"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:64
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Неуспешно монтиране на тома „%s“"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:125
|
||||
#: extensions/places-menu/placeDisplay.js:148
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Компютър"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:336
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
msgid "Home"
|
||||
msgstr "Домашна папка"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:381
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Мрежа"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
msgstr "Смяна на размерите на снимката на екрана"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:18
|
||||
msgid "Cycle Screenshot Sizes Backward"
|
||||
msgstr "Смяна на размерите на снимката на екрана наобратно"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
#: extensions/system-monitor/extension.js:135
|
||||
msgid "CPU stats"
|
||||
msgstr "Статистика на ЦП"
|
||||
|
||||
#: extensions/system-monitor/extension.js:159
|
||||
msgid "Memory stats"
|
||||
msgstr "Статистика на паметта"
|
||||
|
||||
#: extensions/system-monitor/extension.js:177
|
||||
msgid "Swap stats"
|
||||
msgstr "Статистика на виртуалната памет"
|
||||
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Статистика на качване"
|
||||
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Статистика на изтегляне"
|
||||
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Статистика на системата"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Показване"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "ЦП"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Памет"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Виртуалната памет"
|
||||
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Качване"
|
||||
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Изтегляне"
|
||||
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Отваряне на „Наблюдение на системата“"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
|
||||
msgid "Show CPU usage"
|
||||
msgstr "Показване на ползван ЦП"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
msgstr "Показване на ползвана памет"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
|
||||
msgid "Show swap usage"
|
||||
msgstr "Показване на ползвана виртуалната памет"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
|
||||
msgid "Show upload"
|
||||
msgstr "Показване на качването"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
|
||||
msgid "Show download"
|
||||
msgstr "Показване на изтеглянето"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
|
||||
msgid "Theme name"
|
||||
msgstr "Име на темата"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:12
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr ""
|
||||
"Името на темата, която да бъде заредена от „~/.themes/name/gnome-shell“"
|
||||
|
||||
#: extensions/window-list/extension.js:72
|
||||
#: extensions/window-list/extension.js:70
|
||||
msgid "Close"
|
||||
msgstr "Затваряне"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:97
|
||||
msgid "Unminimize"
|
||||
msgstr "Деминимизиране"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:97
|
||||
msgid "Minimize"
|
||||
msgstr "Минимизиране"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:104
|
||||
msgid "Unmaximize"
|
||||
msgstr "Демаксимизиране"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:104
|
||||
msgid "Maximize"
|
||||
msgstr "Максимизиране"
|
||||
|
||||
#: extensions/window-list/extension.js:434
|
||||
#: extensions/window-list/extension.js:489
|
||||
msgid "Minimize all"
|
||||
msgstr "Минимизиране на всички"
|
||||
|
||||
#: extensions/window-list/extension.js:440
|
||||
#: extensions/window-list/extension.js:495
|
||||
msgid "Unminimize all"
|
||||
msgstr "Деминимизиране на всички"
|
||||
|
||||
#: extensions/window-list/extension.js:446
|
||||
#: extensions/window-list/extension.js:501
|
||||
msgid "Maximize all"
|
||||
msgstr "Максимизиране на всички"
|
||||
|
||||
#: extensions/window-list/extension.js:454
|
||||
#: extensions/window-list/extension.js:509
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Демаксимизиране на всички"
|
||||
|
||||
#: extensions/window-list/extension.js:462
|
||||
#: extensions/window-list/extension.js:517
|
||||
msgid "Close all"
|
||||
msgstr "Затваряне на всички"
|
||||
|
||||
#: extensions/window-list/extension.js:741
|
||||
#: extensions/window-list/extension.js:789
|
||||
msgid "Window List"
|
||||
msgstr "Списък на прозорците"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:18
|
||||
msgid "When to group windows"
|
||||
msgstr "Кога прозорците да се групират"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:19
|
||||
msgid ""
|
||||
"Decides when to group windows from the same application on the window list. "
|
||||
"Possible values are “never”, “auto” and “always”."
|
||||
msgstr ""
|
||||
"Кога прозорците на една програма да се групират в списъка с прозорците. "
|
||||
"Възможните стойности са „never“ (никога), „auto“ (автоматично) и "
|
||||
"„always“ (винаги)."
|
||||
"Възможните стойности са „never“ (никога), „auto“ (автоматично) и „always“ "
|
||||
"(винаги)."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/prefs.js:76
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Да се показват прозорците от всички работни плотове"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
msgid "Whether to show windows from all workspaces or only the current one."
|
||||
msgstr ""
|
||||
"Дали да се показват прозорците от всички работни плотове или само от текущия."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:33
|
||||
msgid "Show the window list on all monitors"
|
||||
msgstr "Извеждане на списъка с прозорци на всички монитори"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:34
|
||||
msgid ""
|
||||
"Whether to show the window list on all connected monitors or only on the "
|
||||
"primary one."
|
||||
@@ -233,40 +309,58 @@ msgstr ""
|
||||
"Дали списъкът с прозорци да се извежда на всички монитори или само на "
|
||||
"основния"
|
||||
|
||||
#: extensions/window-list/prefs.js:32
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr "Визуализиране на работните пространства в списъка с прозорци"
|
||||
|
||||
#: extensions/window-list/prefs.js:35
|
||||
msgid "Window Grouping"
|
||||
msgstr "Групиране на прозорци"
|
||||
|
||||
#: extensions/window-list/prefs.js:37
|
||||
#: extensions/window-list/prefs.js:40
|
||||
msgid "Never group windows"
|
||||
msgstr "Никога да не се групират"
|
||||
|
||||
#: extensions/window-list/prefs.js:38
|
||||
#: extensions/window-list/prefs.js:41
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "Групиране при ограничено място"
|
||||
|
||||
#: extensions/window-list/prefs.js:39
|
||||
#: extensions/window-list/prefs.js:42
|
||||
msgid "Always group windows"
|
||||
msgstr "Винаги да се групират"
|
||||
|
||||
#: extensions/window-list/prefs.js:63
|
||||
#: extensions/window-list/prefs.js:66
|
||||
msgid "Show on all monitors"
|
||||
msgstr "На всички монитори"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:249
|
||||
#: extensions/workspace-indicator/extension.js:254
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Индикатор на работните плотове"
|
||||
#: extensions/window-list/prefs.js:92
|
||||
msgid "Show workspace previews"
|
||||
msgstr "Визуализиране на работните пространства"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:18
|
||||
msgid "Workspace Names"
|
||||
msgstr "Имена на работните плотове"
|
||||
#: extensions/workspace-indicator/prefs.js:30
|
||||
msgid "Show Previews In Top Bar"
|
||||
msgstr "Визуализиране в горната лента"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:39
|
||||
#: extensions/workspace-indicator/prefs.js:88
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Работен плот %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:184
|
||||
#: extensions/workspace-indicator/prefs.js:155
|
||||
msgid "Workspace Names"
|
||||
msgstr "Имена на работните плотове"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:281
|
||||
msgid "Add Workspace"
|
||||
msgstr "Добавяне на работен плот"
|
||||
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr "Визуализиране на работните пространства в горната лента"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:430
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Индикатор на работните плотове"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Програми"
|
||||
|
||||
214
po/ca.po
214
po/ca.po
@@ -9,8 +9,8 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
|
||||
"PO-Revision-Date: 2017-07-08 13:29+0100\n"
|
||||
"POT-Creation-Date: 2024-08-12 20:31+0000\n"
|
||||
"PO-Revision-Date: 2024-08-19 23:26+0200\n"
|
||||
"Last-Translator: Jordi Mas <jmas@softcatala.org>\n"
|
||||
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
|
||||
"Language: ca\n"
|
||||
@@ -18,6 +18,8 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-DamnedLies-Scope: partial\n"
|
||||
"X-Generator: Poedit 2.4.2\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
@@ -36,19 +38,19 @@ msgstr "GNOME clàssic amb Wayland"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME clàssic amb Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:112
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
msgid "Favorites"
|
||||
msgstr "Preferides"
|
||||
|
||||
#: extensions/apps-menu/extension.js:366
|
||||
msgid "Applications"
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
msgid "Apps"
|
||||
msgstr "Aplicacions"
|
||||
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:12
|
||||
msgid "Application and workspace list"
|
||||
msgstr "Aplicació i llista d'espais de treball"
|
||||
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:13
|
||||
msgid ""
|
||||
"A list of strings, each containing an application id (desktop file name), "
|
||||
"followed by a colon and the workspace number"
|
||||
@@ -57,34 +59,34 @@ msgstr ""
|
||||
"d'aplicació (nom del fitxer de l'escriptori), seguit de dos punts i el "
|
||||
"número de l'espai de treball"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:34
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Regles dels espais de treball"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:236
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
msgid "Add Rule"
|
||||
msgstr "Afegeix una regla"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:133
|
||||
#: extensions/places-menu/placeDisplay.js:233
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:218
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Ha fallat l'expulsió de la unitat «%s»:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:149
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "Dispositius extraïbles"
|
||||
|
||||
#: extensions/drive-menu/extension.js:171
|
||||
#: extensions/drive-menu/extension.js:164
|
||||
msgid "Open Files"
|
||||
msgstr "Obre els fitxers"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
msgid "Use more screen for windows"
|
||||
msgstr "Utilitza més pantalla per les finestres"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||
msgid ""
|
||||
"Try to use more screen for placing window thumbnails by adapting to screen "
|
||||
"aspect ratio, and consolidating them further to reduce the bounding box. "
|
||||
@@ -96,11 +98,11 @@ msgstr ""
|
||||
"de configuració només s'aplica a l'estratègia de posicionament de finestres "
|
||||
"natural."
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:17
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Posiciona els títols de les finestres al damunt"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:18
|
||||
msgid ""
|
||||
"If true, place window captions on top the respective thumbnail, overriding "
|
||||
"shell default of placing it at the bottom. Changing this setting requires "
|
||||
@@ -111,99 +113,171 @@ msgstr ""
|
||||
"posicionar-lo a baix. Cal reiniciar el Shell per tal que aquest canvi tingui "
|
||||
"efecte."
|
||||
|
||||
#: extensions/places-menu/extension.js:88
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
msgid "Places"
|
||||
msgstr "Llocs"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:46
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "No s'ha pogut iniciar «%s»"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:61
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "No s'ha pogut muntar el volum «%s»"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:148
|
||||
#: extensions/places-menu/placeDisplay.js:171
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Ordinador"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:359
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
msgid "Home"
|
||||
msgstr "Inici"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:404
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Navega per la xarxa"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
msgstr "Mostra cíclicament mides de captura de pantalla"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:18
|
||||
msgid "Cycle Screenshot Sizes Backward"
|
||||
msgstr "Mostra cíclicament cap enrere mides de captura de pantalla"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
#: extensions/system-monitor/extension.js:135
|
||||
msgid "CPU stats"
|
||||
msgstr "Estadístiques de processador"
|
||||
|
||||
#: extensions/system-monitor/extension.js:159
|
||||
msgid "Memory stats"
|
||||
msgstr "Estadístiques de memòria"
|
||||
|
||||
#: extensions/system-monitor/extension.js:177
|
||||
msgid "Swap stats"
|
||||
msgstr "Estadístiques del «swap»"
|
||||
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Estadístiques de pujada"
|
||||
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Estadístiques de descàrrega"
|
||||
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Estadístiques del sistema"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Mostra"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "Processador"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Memòria"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Espai d'intercanvi"
|
||||
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Pujades"
|
||||
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Descàrregues"
|
||||
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Obre el Monitor del sistema"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
|
||||
msgid "Show CPU usage"
|
||||
msgstr "Mostra l'ús de CPU"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
msgstr "Mostra l'ús de memòria"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
|
||||
msgid "Show swap usage"
|
||||
msgstr "Mostra l'ús de l'espai d'intercanvi"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
|
||||
msgid "Show upload"
|
||||
msgstr "Mostra les pujades"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
|
||||
msgid "Show download"
|
||||
msgstr "Mostra les descàrregues"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
|
||||
msgid "Theme name"
|
||||
msgstr "Nom del tema"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:12
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "El nom del tema que es carregarà des de ~/.themes/name/gnome-shell"
|
||||
|
||||
#: extensions/window-list/extension.js:72
|
||||
#: extensions/window-list/extension.js:70
|
||||
msgid "Close"
|
||||
msgstr "Tanca"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:97
|
||||
msgid "Unminimize"
|
||||
msgstr "Desminimitza"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:97
|
||||
msgid "Minimize"
|
||||
msgstr "Minimitza"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:104
|
||||
msgid "Unmaximize"
|
||||
msgstr "Desmaximitza"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:104
|
||||
msgid "Maximize"
|
||||
msgstr "Maximitza"
|
||||
|
||||
#: extensions/window-list/extension.js:434
|
||||
#: extensions/window-list/extension.js:489
|
||||
msgid "Minimize all"
|
||||
msgstr "Minimitza-ho tot"
|
||||
|
||||
#: extensions/window-list/extension.js:440
|
||||
#: extensions/window-list/extension.js:495
|
||||
msgid "Unminimize all"
|
||||
msgstr "Desminimitza-ho tot"
|
||||
|
||||
#: extensions/window-list/extension.js:446
|
||||
#: extensions/window-list/extension.js:501
|
||||
msgid "Maximize all"
|
||||
msgstr "Maximitza-ho tot"
|
||||
|
||||
#: extensions/window-list/extension.js:454
|
||||
#: extensions/window-list/extension.js:509
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Desmaximitza-ho tot"
|
||||
|
||||
#: extensions/window-list/extension.js:462
|
||||
#: extensions/window-list/extension.js:517
|
||||
msgid "Close all"
|
||||
msgstr "Tanca-ho tot"
|
||||
|
||||
#: extensions/window-list/extension.js:741
|
||||
#: extensions/window-list/extension.js:789
|
||||
msgid "Window List"
|
||||
msgstr "Llista de finestres"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:18
|
||||
msgid "When to group windows"
|
||||
msgstr "Quan s'han d'agrupar les finestres"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:19
|
||||
msgid ""
|
||||
"Decides when to group windows from the same application on the window list. "
|
||||
"Possible values are “never”, “auto” and “always”."
|
||||
@@ -212,22 +286,22 @@ msgstr ""
|
||||
"llista de finestres. Els valors possibles són: «never» (mai), "
|
||||
"«auto» (automàticament) i «always» (sempre)."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/prefs.js:86
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Mostra les finestres de tots els espais de treball"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
msgid "Whether to show windows from all workspaces or only the current one."
|
||||
msgstr ""
|
||||
"Si es mostren les finestres de tots els espais de treballs o només de "
|
||||
"l'actual."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:33
|
||||
msgid "Show the window list on all monitors"
|
||||
msgstr "Mostra la llista de finestres a tots els monitors"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:34
|
||||
msgid ""
|
||||
"Whether to show the window list on all connected monitors or only on the "
|
||||
"primary one."
|
||||
@@ -235,40 +309,60 @@ msgstr ""
|
||||
"Si es mostra la llista de finestres en tots els monitors connectats o només "
|
||||
"al primari."
|
||||
|
||||
#: extensions/window-list/prefs.js:39
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr ""
|
||||
"Mostra les previsualitzacions dels espais de treball a la llista de finestres"
|
||||
|
||||
#: extensions/window-list/prefs.js:35
|
||||
msgid "Window Grouping"
|
||||
msgstr "Agrupació de finestres"
|
||||
|
||||
#: extensions/window-list/prefs.js:63
|
||||
#: extensions/window-list/prefs.js:40
|
||||
msgid "Never group windows"
|
||||
msgstr "Mai agrupis les finestres"
|
||||
|
||||
#: extensions/window-list/prefs.js:64
|
||||
#: extensions/window-list/prefs.js:41
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "Agrupa les finestres quan l'espai estigui limitat"
|
||||
|
||||
#: extensions/window-list/prefs.js:65
|
||||
#: extensions/window-list/prefs.js:42
|
||||
msgid "Always group windows"
|
||||
msgstr "Agrupa les finestres sempre"
|
||||
|
||||
#: extensions/window-list/prefs.js:81
|
||||
#: extensions/window-list/prefs.js:66
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Mostra a tots els monitors"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:249
|
||||
#: extensions/workspace-indicator/extension.js:254
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Indicador de l'espai de treball"
|
||||
#: extensions/window-list/prefs.js:92
|
||||
msgid "Show workspace previews"
|
||||
msgstr "Mostra les previsualitzacions dels espais de treball"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:33
|
||||
msgid "Workspace Names"
|
||||
msgstr "Noms dels espais de treball"
|
||||
#: extensions/workspace-indicator/prefs.js:30
|
||||
msgid "Show Previews In Top Bar"
|
||||
msgstr "Mostra previsualitzacions a la barra superior"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:66
|
||||
#: extensions/workspace-indicator/prefs.js:88
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Espai de treball %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:207
|
||||
#: extensions/workspace-indicator/prefs.js:155
|
||||
msgid "Workspace Names"
|
||||
msgstr "Noms dels espais de treball"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:281
|
||||
msgid "Add Workspace"
|
||||
msgstr "Afegeix un espai de treball"
|
||||
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr ""
|
||||
"Mostra les previsualitzacions dels espais de treball a la barra superior"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:430
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Indicador de l'espai de treball"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Aplicacions"
|
||||
|
||||
217
po/cs.po
217
po/cs.po
@@ -3,22 +3,23 @@
|
||||
# This file is distributed under the same license as the gnome-shell-extensions package.
|
||||
# Petr Kovar <pknbe@volny.cz>, 2013.
|
||||
# Marek Černocký <marek@manet.cz>, 2011, 2012, 2013, 2014, 2015, 2017, 2019, 2020, 2022.
|
||||
# Vojtěch Perník <translations@pervoj.cz>, 2024.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
|
||||
"PO-Revision-Date: 2022-02-16 09:58+0100\n"
|
||||
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
|
||||
"POT-Creation-Date: 2024-08-20 05:40+0000\n"
|
||||
"PO-Revision-Date: 2024-08-22 21:19+0200\n"
|
||||
"Last-Translator: Vojtěch Perník <translations@pervoj.cz>\n"
|
||||
"Language-Team: Czech <gnome-cs-list@gnome.org>\n"
|
||||
"Language: cs\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
"X-Generator: Gtranslator 2.91.6\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n"
|
||||
"X-Generator: Gtranslator 46.1\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
@@ -37,19 +38,19 @@ msgstr "GNOME klasik na Waylandu"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME klasik na Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:112
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
msgid "Favorites"
|
||||
msgstr "Oblíbené"
|
||||
|
||||
#: extensions/apps-menu/extension.js:366
|
||||
msgid "Applications"
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
msgid "Apps"
|
||||
msgstr "Aplikace"
|
||||
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:12
|
||||
msgid "Application and workspace list"
|
||||
msgstr "Seznam aplikací a pracovních ploch"
|
||||
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:13
|
||||
msgid ""
|
||||
"A list of strings, each containing an application id (desktop file name), "
|
||||
"followed by a colon and the workspace number"
|
||||
@@ -57,34 +58,34 @@ msgstr ""
|
||||
"Seznam řetězců, z nichž každý obsahuje ID aplikace (název souboru pracovní "
|
||||
"plochy), následovaný dvojtečkou a číslem pracovní plochy"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:34
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Pravidla pracovních ploch"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:236
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
msgid "Add Rule"
|
||||
msgstr "Přidat pravidlo"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:133
|
||||
#: extensions/places-menu/placeDisplay.js:233
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:218
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Vysunutí disku „%s“ selhalo:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:149
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "Výměnná zařízení"
|
||||
|
||||
#: extensions/drive-menu/extension.js:171
|
||||
#: extensions/drive-menu/extension.js:164
|
||||
msgid "Open Files"
|
||||
msgstr "Otevřít soubory"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
msgid "Use more screen for windows"
|
||||
msgstr "Použít větší část obrazovky pro okna"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||
msgid ""
|
||||
"Try to use more screen for placing window thumbnails by adapting to screen "
|
||||
"aspect ratio, and consolidating them further to reduce the bounding box. "
|
||||
@@ -94,11 +95,11 @@ msgstr ""
|
||||
"využít větší část obrazovky pro umístění náhledů oken. Toto nastavení se "
|
||||
"použije pouze dohromady se strategií umisťování „natural“."
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:17
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Umístit název okna nahoru"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:18
|
||||
msgid ""
|
||||
"If true, place window captions on top the respective thumbnail, overriding "
|
||||
"shell default of placing it at the bottom. Changing this setting requires "
|
||||
@@ -108,99 +109,171 @@ msgstr ""
|
||||
"přepíše výchozí chování shellu, který jej umisťuje dolů. Změna tohoto "
|
||||
"nastavení vyžaduje restart shellu, aby se projevila."
|
||||
|
||||
#: extensions/places-menu/extension.js:88
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
msgid "Places"
|
||||
msgstr "Místa"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:46
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Selhalo spuštění „%s“"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:61
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Selhalo připojení svazku pro „%s“"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:148
|
||||
#: extensions/places-menu/placeDisplay.js:171
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Počítač"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:359
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
msgid "Home"
|
||||
msgstr "Domů"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:404
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Procházet síť"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
msgstr "Mění velikost pro snímky obrazovky"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:18
|
||||
msgid "Cycle Screenshot Sizes Backward"
|
||||
msgstr "Mění pozpátku velikost pro snímky obrazovky"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
#: extensions/system-monitor/extension.js:135
|
||||
msgid "CPU stats"
|
||||
msgstr "Statistiky CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:159
|
||||
msgid "Memory stats"
|
||||
msgstr "Statistiky paměti"
|
||||
|
||||
#: extensions/system-monitor/extension.js:177
|
||||
msgid "Swap stats"
|
||||
msgstr "Statistiky odkládacího prostoru"
|
||||
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Statistiky nahrávání"
|
||||
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Statistiky stahování"
|
||||
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Statistiky systému"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Zobrazit"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Paměť"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Odkládací prostor"
|
||||
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Nahrávání"
|
||||
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Stahování"
|
||||
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Otevřít Sledování systému"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
|
||||
msgid "Show CPU usage"
|
||||
msgstr "Zobrazit využití CPU"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
msgstr "Zobrazit využití paměti"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
|
||||
msgid "Show swap usage"
|
||||
msgstr "Zobrazit využití odkládacího prostoru"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
|
||||
msgid "Show upload"
|
||||
msgstr "Zobrazit nahrávání"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
|
||||
msgid "Show download"
|
||||
msgstr "Zobrazit stahování"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
|
||||
msgid "Theme name"
|
||||
msgstr "Název motivu"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:12
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "Název motivu, který se má načíst z ~/.themes/name/gnome-shell"
|
||||
|
||||
#: extensions/window-list/extension.js:72
|
||||
#: extensions/window-list/extension.js:70
|
||||
msgid "Close"
|
||||
msgstr "Zavřít"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:97
|
||||
msgid "Unminimize"
|
||||
msgstr "Zrušit minimalizaci"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:97
|
||||
msgid "Minimize"
|
||||
msgstr "Minimalizovat"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:104
|
||||
msgid "Unmaximize"
|
||||
msgstr "Zrušit maximalizaci"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:104
|
||||
msgid "Maximize"
|
||||
msgstr "Maximalizovat"
|
||||
|
||||
#: extensions/window-list/extension.js:434
|
||||
#: extensions/window-list/extension.js:489
|
||||
msgid "Minimize all"
|
||||
msgstr "Minimalizovat všechna"
|
||||
|
||||
#: extensions/window-list/extension.js:440
|
||||
#: extensions/window-list/extension.js:495
|
||||
msgid "Unminimize all"
|
||||
msgstr "Zrušit minimalizaci všech"
|
||||
|
||||
#: extensions/window-list/extension.js:446
|
||||
#: extensions/window-list/extension.js:501
|
||||
msgid "Maximize all"
|
||||
msgstr "Maximalizovat všechna"
|
||||
|
||||
#: extensions/window-list/extension.js:454
|
||||
#: extensions/window-list/extension.js:509
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Zrušit maximalizaci všech"
|
||||
|
||||
#: extensions/window-list/extension.js:462
|
||||
#: extensions/window-list/extension.js:517
|
||||
msgid "Close all"
|
||||
msgstr "Zavřít všechna"
|
||||
|
||||
#: extensions/window-list/extension.js:741
|
||||
#: extensions/window-list/extension.js:789
|
||||
msgid "Window List"
|
||||
msgstr "Seznam oken"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:18
|
||||
msgid "When to group windows"
|
||||
msgstr "Kdy seskupovat okna"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:19
|
||||
msgid ""
|
||||
"Decides when to group windows from the same application on the window list. "
|
||||
"Possible values are “never”, “auto” and “always”."
|
||||
@@ -208,20 +281,20 @@ msgstr ""
|
||||
"Rozhoduje, kdy se mají v seznamu oken seskupovat okna stejné aplikace. Možné "
|
||||
"hodnoty jsou „never“ (nikdy), „auto“ (automaticky) a „always“ (vždy)."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/prefs.js:86
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Zobrazovat okna ze všech pracovních ploch"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
msgid "Whether to show windows from all workspaces or only the current one."
|
||||
msgstr "Zda zobrazovat okna ze všech pracovních ploch nebo jen z aktuální."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:33
|
||||
msgid "Show the window list on all monitors"
|
||||
msgstr "Zobrazovat seznam oken na všech monitorech"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:34
|
||||
msgid ""
|
||||
"Whether to show the window list on all connected monitors or only on the "
|
||||
"primary one."
|
||||
@@ -229,40 +302,58 @@ msgstr ""
|
||||
"Zda zobrazovat seznam oken na všech připojených monitorech nebo jen na "
|
||||
"hlavním."
|
||||
|
||||
#: extensions/window-list/prefs.js:39
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr "Zobrazit náhledy pracovních ploch v seznamu oken"
|
||||
|
||||
#: extensions/window-list/prefs.js:35
|
||||
msgid "Window Grouping"
|
||||
msgstr "Seskupování oken"
|
||||
|
||||
#: extensions/window-list/prefs.js:63
|
||||
#: extensions/window-list/prefs.js:40
|
||||
msgid "Never group windows"
|
||||
msgstr "Nikdy neseskupovat okna"
|
||||
|
||||
#: extensions/window-list/prefs.js:64
|
||||
#: extensions/window-list/prefs.js:41
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "Seskupovat okna při nedostatku místa"
|
||||
|
||||
#: extensions/window-list/prefs.js:65
|
||||
#: extensions/window-list/prefs.js:42
|
||||
msgid "Always group windows"
|
||||
msgstr "Vždy seskupovat okna"
|
||||
|
||||
#: extensions/window-list/prefs.js:81
|
||||
#: extensions/window-list/prefs.js:66
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Zobrazovat na všech monitorech"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:249
|
||||
#: extensions/workspace-indicator/extension.js:254
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Ukazatel pracovní plochy"
|
||||
#: extensions/window-list/prefs.js:92
|
||||
msgid "Show workspace previews"
|
||||
msgstr "Zobrazit náhledy pracovních ploch"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:33
|
||||
msgid "Workspace Names"
|
||||
msgstr "Názvy pracovních ploch"
|
||||
#: extensions/workspace-indicator/prefs.js:30
|
||||
msgid "Show Previews In Top Bar"
|
||||
msgstr "Zobrazit náhledy v horním panelu"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:66
|
||||
#: extensions/workspace-indicator/prefs.js:88
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Pracovní plocha %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:207
|
||||
#: extensions/workspace-indicator/prefs.js:155
|
||||
msgid "Workspace Names"
|
||||
msgstr "Názvy pracovních ploch"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:281
|
||||
msgid "Add Workspace"
|
||||
msgstr "Přidat pracovní plochu"
|
||||
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr "Zobrazit náhledy pracovních ploch v horním panelu"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:430
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Ukazatel pracovní plochy"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Aplikace"
|
||||
|
||||
214
po/da.po
214
po/da.po
@@ -1,9 +1,9 @@
|
||||
# Danish translation for gnome-shell-extensions.
|
||||
# Copyright (C) 2011-2017 gnome-shell-extensions's COPYRIGHT HOLDER
|
||||
# Copyright (C) 2011-2017, 2024 gnome-shell-extensions's COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the gnome-shell-extensions package.
|
||||
#
|
||||
# Kris Thomsen <mail@kristhomsen.dk>, 2011-2014.
|
||||
# Ask Hjorth Larsen <asklarsen@gmail.com>, 2015, 2017.
|
||||
# Ask Hjorth Larsen <asklarsen@gmail.com>, 2015, 2017, 2024.
|
||||
# Joe Hansen <joedalton2@yahoo.dk>, 2017.
|
||||
#
|
||||
msgid ""
|
||||
@@ -11,9 +11,9 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
|
||||
"PO-Revision-Date: 2022-02-27 13:21+0100\n"
|
||||
"Last-Translator: Alan Mortensen <alanmortensen.am@gmail.com>\n"
|
||||
"POT-Creation-Date: 2024-04-29 15:27+0000\n"
|
||||
"PO-Revision-Date: 2024-09-07 23:22+0200\n"
|
||||
"Last-Translator: Ask Hjorth Larsen <asklarsen@gmail.com>\n"
|
||||
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
|
||||
"Language: da\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -39,19 +39,19 @@ msgstr "GNOME Classic på Wayland"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME Classic på Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:112
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
msgid "Favorites"
|
||||
msgstr "Favoritter"
|
||||
|
||||
#: extensions/apps-menu/extension.js:366
|
||||
msgid "Applications"
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
msgid "Apps"
|
||||
msgstr "Programmer"
|
||||
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:12
|
||||
msgid "Application and workspace list"
|
||||
msgstr "Liste over programmer og arbejdsområder"
|
||||
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:13
|
||||
msgid ""
|
||||
"A list of strings, each containing an application id (desktop file name), "
|
||||
"followed by a colon and the workspace number"
|
||||
@@ -59,34 +59,34 @@ msgstr ""
|
||||
"En liste over strenge, som hver indeholder et program-id "
|
||||
"(skrivebordsfilnavn), efterfulgt af et kolon og arbejdsområdets nummer"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:34
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Regler for arbejdsområde"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:236
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
msgid "Add Rule"
|
||||
msgstr "Tilføj regel"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:133
|
||||
#: extensions/places-menu/placeDisplay.js:233
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:218
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Udskubning af drevet “%s” mislykkedes:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:149
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "Flytbare enheder"
|
||||
|
||||
#: extensions/drive-menu/extension.js:171
|
||||
#: extensions/drive-menu/extension.js:164
|
||||
msgid "Open Files"
|
||||
msgstr "Åbn filer"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
msgid "Use more screen for windows"
|
||||
msgstr "Brug mere skærmplads til vinduer"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||
msgid ""
|
||||
"Try to use more screen for placing window thumbnails by adapting to screen "
|
||||
"aspect ratio, and consolidating them further to reduce the bounding box. "
|
||||
@@ -97,11 +97,11 @@ msgstr ""
|
||||
"yderligere for at reducere den omkransende boks.Denne indstilling gælder kun "
|
||||
"med den naturlige placeringsstrategi."
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:17
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Placér vinduestitler i toppen"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:18
|
||||
msgid ""
|
||||
"If true, place window captions on top the respective thumbnail, overriding "
|
||||
"shell default of placing it at the bottom. Changing this setting requires "
|
||||
@@ -112,47 +112,119 @@ msgstr ""
|
||||
"Ændring af denne indstilling kræver at shell'en genstartes for at træde i "
|
||||
"kraft."
|
||||
|
||||
#: extensions/places-menu/extension.js:88
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
msgid "Places"
|
||||
msgstr "Steder"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:46
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Kunne ikke åbne “%s”"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:61
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Kunne ikke montere diskenhed for “%s”"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:148
|
||||
#: extensions/places-menu/placeDisplay.js:171
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Computer"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:359
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
msgid "Home"
|
||||
msgstr "Hjem"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:404
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Gennemse netværk"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
msgstr "Gennemgå størrelser af skærmbillede"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:18
|
||||
msgid "Cycle Screenshot Sizes Backward"
|
||||
msgstr "Gennemgå størrelser af skærmbillede baglæns"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
#: extensions/system-monitor/extension.js:135
|
||||
msgid "CPU stats"
|
||||
msgstr "CPU-statistik"
|
||||
|
||||
#: extensions/system-monitor/extension.js:159
|
||||
msgid "Memory stats"
|
||||
msgstr "Hukommelsesstatistik"
|
||||
|
||||
#: extensions/system-monitor/extension.js:177
|
||||
msgid "Swap stats"
|
||||
msgstr "Swapstatistik"
|
||||
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Uploadstatistik"
|
||||
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Downloadstatistik"
|
||||
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Systemstatistik"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Vis"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Hukommelse"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Swap"
|
||||
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Upload"
|
||||
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Download"
|
||||
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Åbn Systemovervågning"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
|
||||
msgid "Show CPU usage"
|
||||
msgstr "Vis CPU-forbrug"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
msgstr "Vis hukommelsesforbrug"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
|
||||
msgid "Show swap usage"
|
||||
msgstr "Vis swapforbrug"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
|
||||
msgid "Show upload"
|
||||
msgstr "Vis upload"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
|
||||
msgid "Show download"
|
||||
msgstr "Vis download"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
|
||||
msgid "Theme name"
|
||||
msgstr "Temanavn"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:12
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "Navnet på temaet, som indlæses fra ~/.themes/name/gnome-shell"
|
||||
|
||||
@@ -160,51 +232,51 @@ msgstr "Navnet på temaet, som indlæses fra ~/.themes/name/gnome-shell"
|
||||
msgid "Close"
|
||||
msgstr "Luk"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Unminimize"
|
||||
msgstr "Afminimér"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Minimize"
|
||||
msgstr "Minimér"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Unmaximize"
|
||||
msgstr "Afmaksimér"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Maximize"
|
||||
msgstr "Maksimér"
|
||||
|
||||
#: extensions/window-list/extension.js:434
|
||||
#: extensions/window-list/extension.js:471
|
||||
msgid "Minimize all"
|
||||
msgstr "Minimér"
|
||||
|
||||
#: extensions/window-list/extension.js:440
|
||||
#: extensions/window-list/extension.js:477
|
||||
msgid "Unminimize all"
|
||||
msgstr "Afminimér alle"
|
||||
|
||||
#: extensions/window-list/extension.js:446
|
||||
#: extensions/window-list/extension.js:483
|
||||
msgid "Maximize all"
|
||||
msgstr "Maksimér alle"
|
||||
|
||||
#: extensions/window-list/extension.js:454
|
||||
#: extensions/window-list/extension.js:491
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Afmaksimér alle"
|
||||
|
||||
#: extensions/window-list/extension.js:462
|
||||
#: extensions/window-list/extension.js:499
|
||||
msgid "Close all"
|
||||
msgstr "Luk alle"
|
||||
|
||||
#: extensions/window-list/extension.js:741
|
||||
#: extensions/window-list/extension.js:778
|
||||
msgid "Window List"
|
||||
msgstr "Vinduesliste"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:18
|
||||
msgid "When to group windows"
|
||||
msgstr "Hvornår vinduer skal grupperes"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:19
|
||||
msgid ""
|
||||
"Decides when to group windows from the same application on the window list. "
|
||||
"Possible values are “never”, “auto” and “always”."
|
||||
@@ -212,21 +284,21 @@ msgstr ""
|
||||
"Afgør hvornår vinduer fra samme program skal grupperes i vindueslisten. "
|
||||
"Mulige værdier er “never” (aldrig), “auto” (automatisk) og “always” (altid)."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/prefs.js:86
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Vis vinduer fra alle arbejdsområder"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
msgid "Whether to show windows from all workspaces or only the current one."
|
||||
msgstr ""
|
||||
"Om der skal vises vinduer fra alle arbejdsområder eller kun det nuværende."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:33
|
||||
msgid "Show the window list on all monitors"
|
||||
msgstr "Vis vindueslisten på alle skærme"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:34
|
||||
msgid ""
|
||||
"Whether to show the window list on all connected monitors or only on the "
|
||||
"primary one."
|
||||
@@ -234,44 +306,62 @@ msgstr ""
|
||||
"Om vindueslisten skal vise på alle tilsluttede skærme, eller kun på den "
|
||||
"primære."
|
||||
|
||||
#: extensions/window-list/prefs.js:39
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr "Forhåndsvis arbejdsområder i vinduesliste"
|
||||
|
||||
#: extensions/window-list/prefs.js:35
|
||||
msgid "Window Grouping"
|
||||
msgstr "Vinduesgruppering"
|
||||
|
||||
#: extensions/window-list/prefs.js:63
|
||||
#: extensions/window-list/prefs.js:40
|
||||
msgid "Never group windows"
|
||||
msgstr "Gruppér aldrig vinduer"
|
||||
|
||||
#: extensions/window-list/prefs.js:64
|
||||
#: extensions/window-list/prefs.js:41
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "Gruppér vinduer når pladsen er begrænset"
|
||||
|
||||
#: extensions/window-list/prefs.js:65
|
||||
#: extensions/window-list/prefs.js:42
|
||||
msgid "Always group windows"
|
||||
msgstr "Gruppér altid vinduer"
|
||||
|
||||
#: extensions/window-list/prefs.js:81
|
||||
#: extensions/window-list/prefs.js:66
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Vis på alle skærme"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:249
|
||||
#: extensions/workspace-indicator/extension.js:254
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Arbejdsområdeindikator"
|
||||
#: extensions/window-list/prefs.js:92
|
||||
msgid "Show workspace previews"
|
||||
msgstr "Forhåndsvis arbejdsområder"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:33
|
||||
msgid "Workspace Names"
|
||||
msgstr "Navne på arbejdsområder"
|
||||
#: extensions/workspace-indicator/prefs.js:30
|
||||
msgid "Show Previews In Top Bar"
|
||||
msgstr "Inkludér forhåndsvisninger i topbjælken"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:66
|
||||
#: extensions/workspace-indicator/prefs.js:88
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Arbejdsområde %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:207
|
||||
#: extensions/workspace-indicator/prefs.js:155
|
||||
msgid "Workspace Names"
|
||||
msgstr "Navne på arbejdsområder"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:281
|
||||
msgid "Add Workspace"
|
||||
msgstr "Tilføj arbejdsområde"
|
||||
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr "Inkludér forhåndsvisninger af arbejdsområder i topbjælken"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:430
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Arbejdsområdeindikator"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Programmer"
|
||||
|
||||
#~ msgid "Application"
|
||||
#~ msgstr "Program"
|
||||
|
||||
|
||||
279
po/de.po
279
po/de.po
@@ -8,22 +8,24 @@
|
||||
# Paul Seyfert <pseyfert@mathphys.fsk.uni-heidelberg.de>, 2017.
|
||||
# Tim Sabsch <tim@sabsch.com>, 2019-2020.
|
||||
# Philipp Kiemle <philipp.kiemle@gmail.com>, 2022.
|
||||
# Gabriel Brand <gabr.brand@gmail.com>, 2024.
|
||||
# Jürgen Benvenuti <gastornis@posteo.org>, 2024.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Project-Id-Version: gnome-shell-extensions main\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2022-03-07 15:35+0000\n"
|
||||
"PO-Revision-Date: 2022-03-10 22:26+0100\n"
|
||||
"Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
|
||||
"POT-Creation-Date: 2024-04-29 15:27+0000\n"
|
||||
"PO-Revision-Date: 2024-08-29 10:01+0200\n"
|
||||
"Last-Translator: Jürgen Benvenuti <gastornis@posteo.org>\n"
|
||||
"Language-Team: Deutsch <gnome-de@gnome.org>\n"
|
||||
"Language: de\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 3.0.1\n"
|
||||
"X-Generator: Poedit 3.4.4\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
@@ -42,19 +44,19 @@ msgstr "GNOME Classic unter Wayland"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME Classic unter Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:118
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
msgid "Favorites"
|
||||
msgstr "Favoriten"
|
||||
|
||||
#: extensions/apps-menu/extension.js:379
|
||||
msgid "Applications"
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
msgid "Apps"
|
||||
msgstr "Anwendungen"
|
||||
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:12
|
||||
msgid "Application and workspace list"
|
||||
msgstr "Anwendungs- und Arbeitsflächenliste"
|
||||
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:13
|
||||
msgid ""
|
||||
"A list of strings, each containing an application id (desktop file name), "
|
||||
"followed by a colon and the workspace number"
|
||||
@@ -63,34 +65,34 @@ msgstr ""
|
||||
"Datei) enthält, gefolgt von einem Doppelpunkt und der Nummer der "
|
||||
"Arbeitsfläche"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:152
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Arbeitsfläche-Regeln"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:306
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
msgid "Add Rule"
|
||||
msgstr "Regel hinzufügen"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:126
|
||||
#: extensions/places-menu/placeDisplay.js:210
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:218
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Auswerfen von Laufwerk »%s« schlug fehl:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:145
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "Wechseldatenträger"
|
||||
|
||||
#: extensions/drive-menu/extension.js:167
|
||||
#: extensions/drive-menu/extension.js:164
|
||||
msgid "Open Files"
|
||||
msgstr "Dateien öffnen"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
msgid "Use more screen for windows"
|
||||
msgstr "Mehr Bildschirmbereich für Fenster verwenden"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||
msgid ""
|
||||
"Try to use more screen for placing window thumbnails by adapting to screen "
|
||||
"aspect ratio, and consolidating them further to reduce the bounding box. "
|
||||
@@ -102,11 +104,11 @@ msgstr ""
|
||||
"verkleinern. Diese Einstellung betrifft nur den natürlichen "
|
||||
"Platzierungsalgorithmus."
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:17
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Fensterbeschriftungen oben platzieren"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:18
|
||||
msgid ""
|
||||
"If true, place window captions on top the respective thumbnail, overriding "
|
||||
"shell default of placing it at the bottom. Changing this setting requires "
|
||||
@@ -116,47 +118,119 @@ msgstr ""
|
||||
"Vorschaubild platziert und damit die Voreinstellung der Shell übergangen. "
|
||||
"Eine Änderungseinstellung tritt erst mit einem Neustart der Shell in Kraft."
|
||||
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
#: extensions/places-menu/extension.js:97
|
||||
msgid "Places"
|
||||
msgstr "Orte"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:49
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Starten von »%s« fehlgeschlagen"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:64
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Datenträger für »%s« konnte nicht eingebunden werden"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:125
|
||||
#: extensions/places-menu/placeDisplay.js:148
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Rechner"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:336
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
msgid "Home"
|
||||
msgstr "Persönlicher Ordner"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:381
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Netzwerk durchsuchen"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
msgstr "Bildschirmfotogrößen nacheinander anzeigen"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:18
|
||||
msgid "Cycle Screenshot Sizes Backward"
|
||||
msgstr "Bildschirmfotogrößen in umgekehrter Reihenfolge anzeigen"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
#: extensions/system-monitor/extension.js:135
|
||||
msgid "CPU stats"
|
||||
msgstr "CPU-Statistiken"
|
||||
|
||||
#: extensions/system-monitor/extension.js:159
|
||||
msgid "Memory stats"
|
||||
msgstr "Speicherstatistiken"
|
||||
|
||||
#: extensions/system-monitor/extension.js:177
|
||||
msgid "Swap stats"
|
||||
msgstr "Auslagerungsspeicherstatistiken"
|
||||
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Upload-Statistiken"
|
||||
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Download-Statistiken"
|
||||
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Systemstatistiken"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Anzeigen"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Speicher"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Auslagerungsspeicher"
|
||||
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Upload"
|
||||
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Download"
|
||||
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Systemüberwachung öffnen"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
|
||||
msgid "Show CPU usage"
|
||||
msgstr "CPU-Nutzung anzeigen"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
msgstr "Speichernutzung anzeigen"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
|
||||
msgid "Show swap usage"
|
||||
msgstr "Auslagerungsspeichernutzung anzeigen"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
|
||||
msgid "Show upload"
|
||||
msgstr "Upload anzeigen"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
|
||||
msgid "Show download"
|
||||
msgstr "Download anzeigen"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
|
||||
msgid "Theme name"
|
||||
msgstr "Themenname"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:12
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr ""
|
||||
"Der Name des Themas, welches aus ~/.themes/name/gnome-shell geladen werden "
|
||||
@@ -166,51 +240,51 @@ msgstr ""
|
||||
msgid "Close"
|
||||
msgstr "Schließen"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Unminimize"
|
||||
msgstr "Minimieren rückgängig"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Minimize"
|
||||
msgstr "Minimieren"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Unmaximize"
|
||||
msgstr "Maximieren rückgängig"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Maximize"
|
||||
msgstr "Maximieren"
|
||||
|
||||
#: extensions/window-list/extension.js:441
|
||||
#: extensions/window-list/extension.js:471
|
||||
msgid "Minimize all"
|
||||
msgstr "Alle minimieren"
|
||||
|
||||
#: extensions/window-list/extension.js:447
|
||||
#: extensions/window-list/extension.js:477
|
||||
msgid "Unminimize all"
|
||||
msgstr "Alle minimieren rückgängig"
|
||||
|
||||
#: extensions/window-list/extension.js:453
|
||||
#: extensions/window-list/extension.js:483
|
||||
msgid "Maximize all"
|
||||
msgstr "Alle maximieren"
|
||||
|
||||
#: extensions/window-list/extension.js:461
|
||||
#: extensions/window-list/extension.js:491
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Alle maximieren rückgängig"
|
||||
|
||||
#: extensions/window-list/extension.js:469
|
||||
#: extensions/window-list/extension.js:499
|
||||
msgid "Close all"
|
||||
msgstr "Alle schließen"
|
||||
|
||||
#: extensions/window-list/extension.js:753
|
||||
#: extensions/window-list/extension.js:778
|
||||
msgid "Window List"
|
||||
msgstr "Fensterliste"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:18
|
||||
msgid "When to group windows"
|
||||
msgstr "Legt fest, wann Fenster gruppiert werden"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:19
|
||||
msgid ""
|
||||
"Decides when to group windows from the same application on the window list. "
|
||||
"Possible values are “never”, “auto” and “always”."
|
||||
@@ -219,22 +293,22 @@ msgstr ""
|
||||
"werden sollen. Mögliche Werte sind »never« (nie), »auto« (automatisch) und "
|
||||
"»always« (immer)."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Fenster von allen Arbeitsflächen anzeigen"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
msgid "Whether to show windows from all workspaces or only the current one."
|
||||
msgstr ""
|
||||
"Legt fest, ob Fenster von allen oder nur der aktuellen Arbeitsflächen "
|
||||
"angezeigt werden."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:33
|
||||
msgid "Show the window list on all monitors"
|
||||
msgstr "Die Fensterliste auf allen Bildschirmen anzeigen"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:34
|
||||
msgid ""
|
||||
"Whether to show the window list on all connected monitors or only on the "
|
||||
"primary one."
|
||||
@@ -242,6 +316,10 @@ msgstr ""
|
||||
"Legt fest, ob die Fensterliste auf allen angeschlossenen Bildschirmen "
|
||||
"angezeigt wird oder nur auf dem Primären."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr "Arbeitsflächenvorschauen in der Fensterliste anzeigen"
|
||||
|
||||
#: extensions/window-list/prefs.js:35
|
||||
msgid "Window Grouping"
|
||||
msgstr "Fenstergruppierung"
|
||||
@@ -262,105 +340,34 @@ msgstr "Fenster immer gruppieren"
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Auf allen Bildschirmen anzeigen"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:261
|
||||
#: extensions/workspace-indicator/extension.js:266
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Arbeitsflächenindikator"
|
||||
#: extensions/window-list/prefs.js:92
|
||||
msgid "Show workspace previews"
|
||||
msgstr "Arbeitsflächenvorschauen anzeigen"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:62
|
||||
#: extensions/workspace-indicator/prefs.js:30
|
||||
msgid "Show Previews In Top Bar"
|
||||
msgstr "Vorschauen in der oberen Leiste anzeigen"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:88
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Arbeitsfläche %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:129
|
||||
#: extensions/workspace-indicator/prefs.js:155
|
||||
msgid "Workspace Names"
|
||||
msgstr "Namen der Arbeitsflächen"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:255
|
||||
#: extensions/workspace-indicator/prefs.js:281
|
||||
msgid "Add Workspace"
|
||||
msgstr "Arbeitsfläche hinzufügen"
|
||||
|
||||
#~ msgid "Application"
|
||||
#~ msgstr "Anwendung"
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr "Arbeitsflächenvorschauen in der oberen Leiste anzeigen"
|
||||
|
||||
#~ msgid "Create new matching rule"
|
||||
#~ msgstr "Neue Übereinstimmungsregel erstellen"
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:430
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Arbeitsflächenindikator"
|
||||
|
||||
#~ msgid "Add"
|
||||
#~ msgstr "Hinzufügen"
|
||||
|
||||
#~ msgid "Name"
|
||||
#~ msgstr "Name"
|
||||
|
||||
#~ msgid "Attach modal dialog to the parent window"
|
||||
#~ msgstr "Einen modalen Dialog an das übergeordnete Fenster anhängen"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
#~ msgstr ""
|
||||
#~ "Dieser Schlüssel überschreibt den Schlüssel in »org.gnome.mutter«, wenn "
|
||||
#~ "die GNOME-Shell ausgeführt wird."
|
||||
|
||||
#~ msgid "Arrangement of buttons on the titlebar"
|
||||
#~ msgstr "Anordnung von Knöpfen auf der Titelleiste"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
|
||||
#~ "running GNOME Shell."
|
||||
#~ msgstr ""
|
||||
#~ "Dieser Schlüssel überschreibt den Schlüssel in »org.gnome.desktop.wm."
|
||||
#~ "preferences«, wenn die GNOME-Shell ausgeführt wird."
|
||||
|
||||
# identisch zum Schüssel in »gnome-shell«
|
||||
#~ msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
#~ msgstr ""
|
||||
#~ "Größenanpassung aktivieren, wenn ein Fenster an die Bildschirmkante "
|
||||
#~ "verschoben wird"
|
||||
|
||||
#~ msgid "Workspaces only on primary monitor"
|
||||
#~ msgstr "Arbeitsflächen nur auf dem Primärmonitor"
|
||||
|
||||
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
#~ msgstr ""
|
||||
#~ "Fokuswechsel im Mausmodus verzögern, bis sich der Zeiger nicht mehr "
|
||||
#~ "bewegt."
|
||||
|
||||
#~ msgid "Thumbnail only"
|
||||
#~ msgstr "Nur Vorschaubild"
|
||||
|
||||
#~ msgid "Application icon only"
|
||||
#~ msgstr "Nur Anwendungssymbol"
|
||||
|
||||
#~ msgid "Thumbnail and application icon"
|
||||
#~ msgstr "Vorschaubild und Anwendungssymbol"
|
||||
|
||||
#~ msgid "Present windows as"
|
||||
#~ msgstr "Fenster darstellen als"
|
||||
|
||||
#~ msgid "Activities Overview"
|
||||
#~ msgstr "Aktivitäten-Übersicht"
|
||||
|
||||
#~ msgid "Hello, world!"
|
||||
#~ msgstr "Hallo Welt!"
|
||||
|
||||
#~ msgid "Alternative greeting text."
|
||||
#~ msgstr "Alternativer Begrüßungstext."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "If not empty, it contains the text that will be shown when clicking on "
|
||||
#~ "the panel."
|
||||
#~ msgstr ""
|
||||
#~ "Falls nicht leer, ist dies der Text, der beim Anklicken des Panels "
|
||||
#~ "angezeigt wird."
|
||||
|
||||
#~ msgid "Message"
|
||||
#~ msgstr "Nachricht"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Example aims to show how to build well behaved extensions for the Shell "
|
||||
#~ "and as such it has little functionality on its own.\n"
|
||||
#~ "Nevertheless it’s possible to customize the greeting message."
|
||||
#~ msgstr ""
|
||||
#~ "Das Beispiel soll zeigen, wie sich korrekt verhaltende Erweiterungen für "
|
||||
#~ "die Shell erstellt werden. Es enthält grundlegende Funktionalität.\n"
|
||||
#~ "Es ist möglich, die Begrüßungsnachricht zu ändern."
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Anwendungen"
|
||||
|
||||
187
po/el.po
187
po/el.po
@@ -12,8 +12,8 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2023-02-18 15:10+0000\n"
|
||||
"PO-Revision-Date: 2023-08-01 23:41+0300\n"
|
||||
"POT-Creation-Date: 2024-07-24 10:26+0000\n"
|
||||
"PO-Revision-Date: 2024-08-12 23:29+0300\n"
|
||||
"Last-Translator: Efstathios Iosifidis <eiosifidis@gnome.org>\n"
|
||||
"Language-Team: Greek, Modern (1453-) <gnome-el-list@gnome.org>\n"
|
||||
"Language: el\n"
|
||||
@@ -21,7 +21,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 3.3.2\n"
|
||||
"X-Generator: Poedit 3.4.4\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
@@ -31,7 +31,7 @@ msgstr "GNOME Classic"
|
||||
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
|
||||
#: data/gnome-classic-xorg.desktop.in:4
|
||||
msgid "This session logs you into GNOME Classic"
|
||||
msgstr "Αυτή η συνεδρία σας συνδέει στο GNOME Classic"
|
||||
msgstr "Αυτή η συνεδρία σάς συνδέει στο GNOME Classic"
|
||||
|
||||
#: data/gnome-classic-wayland.desktop.in:3
|
||||
msgid "GNOME Classic on Wayland"
|
||||
@@ -41,19 +41,19 @@ msgstr "GNOME Classic σε Wayland"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME Classic σε Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:118
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
msgid "Favorites"
|
||||
msgstr "Αγαπημένα"
|
||||
|
||||
#: extensions/apps-menu/extension.js:380
|
||||
msgid "Applications"
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
msgid "Apps"
|
||||
msgstr "Εφαρμογές"
|
||||
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:12
|
||||
msgid "Application and workspace list"
|
||||
msgstr "Λίστα εφαρμογών και χώρου εργασίας"
|
||||
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:13
|
||||
msgid ""
|
||||
"A list of strings, each containing an application id (desktop file name), "
|
||||
"followed by a colon and the workspace number"
|
||||
@@ -62,34 +62,34 @@ msgstr ""
|
||||
"(όνομα αρχείου επιφάνειας εργασίας), ακολουθούμενη από άνω-κάτω τελεία και "
|
||||
"τον αριθμό του χώρου εργασίας"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:152
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Κανόνες χώρων εργασίας"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:306
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
msgid "Add Rule"
|
||||
msgstr "Προσθήκη κανόνα"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:126
|
||||
#: extensions/places-menu/placeDisplay.js:212
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:218
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Αποτυχία εξαγωγής του δίσκου «%s»:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:145
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "Αφαιρούμενες συσκευές"
|
||||
|
||||
#: extensions/drive-menu/extension.js:167
|
||||
#: extensions/drive-menu/extension.js:164
|
||||
msgid "Open Files"
|
||||
msgstr "Άνοιγμα αρχείων"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
msgid "Use more screen for windows"
|
||||
msgstr "Χρησιμοποιήστε περισσότερη οθόνη για τα παράθυρα"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||
msgid ""
|
||||
"Try to use more screen for placing window thumbnails by adapting to screen "
|
||||
"aspect ratio, and consolidating them further to reduce the bounding box. "
|
||||
@@ -100,11 +100,11 @@ msgstr ""
|
||||
"εδραιώνοντας τους περαιτέρω για να μειώσετε το πλαίσιο οριοθέτησης. Αυτή η "
|
||||
"ρύθμιση ισχύει μόνο με την στρατηγική φυσικής τοποθέτησης."
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:17
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Τοποθέτηση τίτλων παράθυρου στην κορυφή"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:18
|
||||
msgid ""
|
||||
"If true, place window captions on top the respective thumbnail, overriding "
|
||||
"shell default of placing it at the bottom. Changing this setting requires "
|
||||
@@ -115,47 +115,119 @@ msgstr ""
|
||||
"στο κάτω μέρος. Η αλλαγή αυτής της ρύθμισης απαιτεί επανεκκίνηση του "
|
||||
"κελύφους για να υπάρξει κάποιο αποτέλεσμα."
|
||||
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
#: extensions/places-menu/extension.js:97
|
||||
msgid "Places"
|
||||
msgstr "Τοποθεσίες"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:52
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Αποτυχία εκκίνησης «%s»"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:67
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Αποτυχία προσάρτησης τόμου για «%s»"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:127
|
||||
#: extensions/places-menu/placeDisplay.js:150
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Υπολογιστής"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:340
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
msgid "Home"
|
||||
msgstr "Προσωπικός φάκελος"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:385
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Περιήγηση δικτύου"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
msgstr "Περιδιάβαση τα μεγέθη των στιγμιοτύπων"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:18
|
||||
msgid "Cycle Screenshot Sizes Backward"
|
||||
msgstr "Μεγέθη κυκλικών στιγμιοτύπων προς τα πίσω"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
#: extensions/system-monitor/extension.js:135
|
||||
msgid "CPU stats"
|
||||
msgstr "Στατιστικά CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:159
|
||||
msgid "Memory stats"
|
||||
msgstr "Στατιστικά μνήμης"
|
||||
|
||||
#: extensions/system-monitor/extension.js:177
|
||||
msgid "Swap stats"
|
||||
msgstr "Στατιστικά swap"
|
||||
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Στατιστικά μεταφόρτωσης"
|
||||
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Στατιστικά λήψης"
|
||||
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Στατιστικά συστήματος"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Εμφάνιση"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Μνήμη"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Swap"
|
||||
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Μεταφόρτωση"
|
||||
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Λήψη"
|
||||
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Άνοιγμα επόπτη συστήματος"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
|
||||
msgid "Show CPU usage"
|
||||
msgstr "Εμφάνιση χρήσης CPU"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
msgstr "Εμφάνιση χρήσης μνήμης"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
|
||||
msgid "Show swap usage"
|
||||
msgstr "Εμφάνιση χρήσης swap"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
|
||||
msgid "Show upload"
|
||||
msgstr "Εμφάνιση μεταφόρτωσης"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
|
||||
msgid "Show download"
|
||||
msgstr "Εμφάνιση λήψης"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
|
||||
msgid "Theme name"
|
||||
msgstr "Όνομα θέματος"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:12
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr ""
|
||||
"Το όνομα του θέματος που θα φορτωθεί από το ~ /.themes/name/gnome-shell"
|
||||
@@ -164,51 +236,51 @@ msgstr ""
|
||||
msgid "Close"
|
||||
msgstr "Κλείσιμο"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Unminimize"
|
||||
msgstr "Αποελαχιστοποίηση"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Minimize"
|
||||
msgstr "Ελαχιστοποίηση"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Unmaximize"
|
||||
msgstr "Απομεγιστοποίηση"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Maximize"
|
||||
msgstr "Μεγιστοποίηση"
|
||||
|
||||
#: extensions/window-list/extension.js:483
|
||||
#: extensions/window-list/extension.js:471
|
||||
msgid "Minimize all"
|
||||
msgstr "Ελαχιστοποίηση όλων"
|
||||
|
||||
#: extensions/window-list/extension.js:489
|
||||
#: extensions/window-list/extension.js:477
|
||||
msgid "Unminimize all"
|
||||
msgstr "Αποελαχιστοποίηση όλων"
|
||||
|
||||
#: extensions/window-list/extension.js:495
|
||||
#: extensions/window-list/extension.js:483
|
||||
msgid "Maximize all"
|
||||
msgstr "Μεγιστοποίηση όλων"
|
||||
|
||||
#: extensions/window-list/extension.js:503
|
||||
#: extensions/window-list/extension.js:491
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Απομεγιστοποίηση όλων"
|
||||
|
||||
#: extensions/window-list/extension.js:511
|
||||
#: extensions/window-list/extension.js:499
|
||||
msgid "Close all"
|
||||
msgstr "Κλείσιμο όλων"
|
||||
|
||||
#: extensions/window-list/extension.js:795
|
||||
#: extensions/window-list/extension.js:773
|
||||
msgid "Window List"
|
||||
msgstr "Λίστα παραθύρου"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:18
|
||||
msgid "When to group windows"
|
||||
msgstr "Πότε θα ομαδοποιούνται τα παράθυρα"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:19
|
||||
msgid ""
|
||||
"Decides when to group windows from the same application on the window list. "
|
||||
"Possible values are “never”, “auto” and “always”."
|
||||
@@ -217,21 +289,21 @@ msgstr ""
|
||||
"παραθύρου. Δυνατές τιμές είναι «never» (ποτέ), «auto» (αυτόματα) και "
|
||||
"«always» (πάντα)."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Εμφάνιση των παραθύρων από όλους τους χώρους εργασίας"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
msgid "Whether to show windows from all workspaces or only the current one."
|
||||
msgstr ""
|
||||
"Αν θα εμφανίζονται παράθυρα όλων των χώρων εργασίας ή μόνο του τρέχοντα."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:33
|
||||
msgid "Show the window list on all monitors"
|
||||
msgstr "Να εμφανίζεται ο κατάλογος παραθύρων σε όλες τις οθόνες"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:34
|
||||
msgid ""
|
||||
"Whether to show the window list on all connected monitors or only on the "
|
||||
"primary one."
|
||||
@@ -259,24 +331,27 @@ msgstr "Να γίνεται πάντα ομαδοποίηση παραθύρων
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Να εμφανίζεται σε όλες τις οθόνες"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:261
|
||||
#: extensions/workspace-indicator/extension.js:266
|
||||
#: extensions/window-list/workspaceIndicator.js:255
|
||||
#: extensions/workspace-indicator/extension.js:261
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Δείκτης χώρου εργασίας"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:62
|
||||
#: extensions/workspace-indicator/prefs.js:69
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Χώρος εργασίας %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:129
|
||||
#: extensions/workspace-indicator/prefs.js:136
|
||||
msgid "Workspace Names"
|
||||
msgstr "Ονόματα χώρων εργασίας"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:255
|
||||
#: extensions/workspace-indicator/prefs.js:262
|
||||
msgid "Add Workspace"
|
||||
msgstr "Προσθήκη χώρου εργασίας"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Εφαρμογές"
|
||||
|
||||
#~ msgid "Application"
|
||||
#~ msgstr "Εφαρμογή"
|
||||
|
||||
@@ -362,12 +437,6 @@ msgstr "Προσθήκη χώρου εργασίας"
|
||||
#~ "λειτουργικότητα από μόνο του.\n"
|
||||
#~ "Παρ' όλα αυτά είναι δυνατό να προσαρμόσετε το μήνυμα χαιρετισμού."
|
||||
|
||||
#~ msgid "CPU"
|
||||
#~ msgstr "CPU"
|
||||
|
||||
#~ msgid "Memory"
|
||||
#~ msgstr "Μνήμη"
|
||||
|
||||
#~ msgid "GNOME Shell Classic"
|
||||
#~ msgstr "GNOME Shell Classic"
|
||||
|
||||
@@ -418,8 +487,8 @@ msgstr "Προσθήκη χώρου εργασίας"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
#~ "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
#~ "only' (shows only the application icon) or 'both'."
|
||||
#~ "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-only' "
|
||||
#~ "(shows only the application icon) or 'both'."
|
||||
#~ msgstr ""
|
||||
#~ "Διαμορφώνει πως τα παράθυρα θα εμφανίζονται στν εναλλαγή των παραθύρων. "
|
||||
#~ "Έγκυρες ρυθμίσεις είναι 'thumbnail-only' (εμφανίζει μια μικρογραφία του "
|
||||
|
||||
207
po/en_GB.po
207
po/en_GB.po
@@ -5,22 +5,23 @@
|
||||
# Chris Leonard <cjlhomeaddress@gmail.com>, 2012.
|
||||
# Philip Withnall <philip@tecnocode.co.uk>, 2014.
|
||||
# Zander Brown <zbrown@gnome.org>, 2019-2020.
|
||||
# Andi Chandler <andi@gowling.com>, 2024.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2023-08-05 15:59+0000\n"
|
||||
"PO-Revision-Date: 2023-09-06 12:13+0100\n"
|
||||
"Last-Translator: Bruce Cowan <bruce@bcowan.me.uk>\n"
|
||||
"POT-Creation-Date: 2024-04-29 15:27+0000\n"
|
||||
"PO-Revision-Date: 2024-08-13 20:40+0100\n"
|
||||
"Last-Translator: Andi Chandler <andi@gowling.com>\n"
|
||||
"Language-Team: English - United Kingdom <en_GB@li.org>\n"
|
||||
"Language: en_GB\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 3.3.1\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
@@ -33,28 +34,26 @@ msgid "This session logs you into GNOME Classic"
|
||||
msgstr "This session logs you into GNOME Classic"
|
||||
|
||||
#: data/gnome-classic-wayland.desktop.in:3
|
||||
#| msgid "GNOME Classic"
|
||||
msgid "GNOME Classic on Wayland"
|
||||
msgstr "GNOME Classic on Wayland"
|
||||
|
||||
#: data/gnome-classic-xorg.desktop.in:3
|
||||
#| msgid "GNOME Classic"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME Classic on Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:118
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
msgid "Favorites"
|
||||
msgstr "Favourites"
|
||||
|
||||
#: extensions/apps-menu/extension.js:380
|
||||
msgid "Applications"
|
||||
msgstr "Applications"
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
msgid "Apps"
|
||||
msgstr "Apps"
|
||||
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:12
|
||||
msgid "Application and workspace list"
|
||||
msgstr "Application and workspace list"
|
||||
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:13
|
||||
msgid ""
|
||||
"A list of strings, each containing an application id (desktop file name), "
|
||||
"followed by a colon and the workspace number"
|
||||
@@ -62,34 +61,34 @@ msgstr ""
|
||||
"A list of strings, each containing an application id (desktop file name), "
|
||||
"followed by a colon and the workspace number"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:152
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Workspace Rules"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:306
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
msgid "Add Rule"
|
||||
msgstr "Add Rule"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:126
|
||||
#: extensions/places-menu/placeDisplay.js:212
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:218
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Ejecting drive “%s” failed:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:145
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "Removable devices"
|
||||
|
||||
#: extensions/drive-menu/extension.js:167
|
||||
#: extensions/drive-menu/extension.js:164
|
||||
msgid "Open Files"
|
||||
msgstr "Open Files"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
msgid "Use more screen for windows"
|
||||
msgstr "Use more screen for windows"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||
msgid ""
|
||||
"Try to use more screen for placing window thumbnails by adapting to screen "
|
||||
"aspect ratio, and consolidating them further to reduce the bounding box. "
|
||||
@@ -99,11 +98,11 @@ msgstr ""
|
||||
"aspect ratio, and consolidating them further to reduce the bounding box. "
|
||||
"This setting applies only with the natural placement strategy."
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:17
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Place window captions on top"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:18
|
||||
msgid ""
|
||||
"If true, place window captions on top the respective thumbnail, overriding "
|
||||
"shell default of placing it at the bottom. Changing this setting requires "
|
||||
@@ -113,47 +112,119 @@ msgstr ""
|
||||
"shell default of placing it at the bottom. Changing this setting requires "
|
||||
"restarting the shell to have any effect."
|
||||
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
#: extensions/places-menu/extension.js:97
|
||||
msgid "Places"
|
||||
msgstr "Places"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:52
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Failed to launch “%s”"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:67
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Failed to mount volume for “%s”"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:127
|
||||
#: extensions/places-menu/placeDisplay.js:150
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Computer"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:340
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
msgid "Home"
|
||||
msgstr "Home"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:385
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Browse Network"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
msgstr "Cycle Screenshot Sizes"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:18
|
||||
msgid "Cycle Screenshot Sizes Backward"
|
||||
msgstr "Cycle Screenshot Sizes Backward"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
#: extensions/system-monitor/extension.js:135
|
||||
msgid "CPU stats"
|
||||
msgstr "CPU stats"
|
||||
|
||||
#: extensions/system-monitor/extension.js:159
|
||||
msgid "Memory stats"
|
||||
msgstr "Memory stats"
|
||||
|
||||
#: extensions/system-monitor/extension.js:177
|
||||
msgid "Swap stats"
|
||||
msgstr "Swap stats"
|
||||
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Upload stats"
|
||||
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Download stats"
|
||||
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "System stats"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Show"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Memory"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Swap"
|
||||
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Upload"
|
||||
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Download"
|
||||
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Open System Monitor"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
|
||||
msgid "Show CPU usage"
|
||||
msgstr "Show CPU usage"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
msgstr "Show memory usage"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
|
||||
msgid "Show swap usage"
|
||||
msgstr "Show swap usage"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
|
||||
msgid "Show upload"
|
||||
msgstr "Show upload"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
|
||||
msgid "Show download"
|
||||
msgstr "Show download"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
|
||||
msgid "Theme name"
|
||||
msgstr "Theme name"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:12
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
|
||||
@@ -161,51 +232,51 @@ msgstr "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgid "Close"
|
||||
msgstr "Close"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Unminimize"
|
||||
msgstr "Unminimise"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Minimize"
|
||||
msgstr "Minimise"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Unmaximize"
|
||||
msgstr "Unmaximise"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Maximize"
|
||||
msgstr "Maximise"
|
||||
|
||||
#: extensions/window-list/extension.js:483
|
||||
#: extensions/window-list/extension.js:471
|
||||
msgid "Minimize all"
|
||||
msgstr "Minimise all"
|
||||
|
||||
#: extensions/window-list/extension.js:489
|
||||
#: extensions/window-list/extension.js:477
|
||||
msgid "Unminimize all"
|
||||
msgstr "Unminimise all"
|
||||
|
||||
#: extensions/window-list/extension.js:495
|
||||
#: extensions/window-list/extension.js:483
|
||||
msgid "Maximize all"
|
||||
msgstr "Maximise all"
|
||||
|
||||
#: extensions/window-list/extension.js:503
|
||||
#: extensions/window-list/extension.js:491
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Unmaximise all"
|
||||
|
||||
#: extensions/window-list/extension.js:511
|
||||
#: extensions/window-list/extension.js:499
|
||||
msgid "Close all"
|
||||
msgstr "Close all"
|
||||
|
||||
#: extensions/window-list/extension.js:795
|
||||
#: extensions/window-list/extension.js:778
|
||||
msgid "Window List"
|
||||
msgstr "Window List"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:18
|
||||
msgid "When to group windows"
|
||||
msgstr "When to group windows"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:19
|
||||
msgid ""
|
||||
"Decides when to group windows from the same application on the window list. "
|
||||
"Possible values are “never”, “auto” and “always”."
|
||||
@@ -213,20 +284,20 @@ msgstr ""
|
||||
"Decides when to group windows from the same application on the window list. "
|
||||
"Possible values are “never”, “auto” and “always”."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Show windows from all workspaces"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
msgid "Whether to show windows from all workspaces or only the current one."
|
||||
msgstr "Whether to show windows from all workspaces or only the current one."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:33
|
||||
msgid "Show the window list on all monitors"
|
||||
msgstr "Show the window list on all monitors"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:34
|
||||
msgid ""
|
||||
"Whether to show the window list on all connected monitors or only on the "
|
||||
"primary one."
|
||||
@@ -234,6 +305,10 @@ msgstr ""
|
||||
"Whether to show the window list on all connected monitors or only on the "
|
||||
"primary one."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr "Show workspace previews in window list"
|
||||
|
||||
#: extensions/window-list/prefs.js:35
|
||||
msgid "Window Grouping"
|
||||
msgstr "Window Grouping"
|
||||
@@ -254,24 +329,38 @@ msgstr "Always group windows"
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Show on all monitors"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:261
|
||||
#: extensions/workspace-indicator/extension.js:266
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Workspace Indicator"
|
||||
#: extensions/window-list/prefs.js:92
|
||||
msgid "Show workspace previews"
|
||||
msgstr "Show workspace previews"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:62
|
||||
#: extensions/workspace-indicator/prefs.js:30
|
||||
msgid "Show Previews In Top Bar"
|
||||
msgstr "Show Previews In Top Bar"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:88
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Workspace %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:129
|
||||
#: extensions/workspace-indicator/prefs.js:155
|
||||
msgid "Workspace Names"
|
||||
msgstr "Workspace Names"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:255
|
||||
#: extensions/workspace-indicator/prefs.js:281
|
||||
msgid "Add Workspace"
|
||||
msgstr "Add Workspace"
|
||||
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr "Show workspace previews in top bar"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:430
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Workspace Indicator"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Applications"
|
||||
|
||||
#~ msgid "Application"
|
||||
#~ msgstr "Application"
|
||||
|
||||
@@ -361,12 +450,6 @@ msgstr "Add Workspace"
|
||||
#~ msgid "Window management and application launching"
|
||||
#~ msgstr "Window management and application launching"
|
||||
|
||||
#~ msgid "CPU"
|
||||
#~ msgstr "CPU"
|
||||
|
||||
#~ msgid "Memory"
|
||||
#~ msgstr "Memory"
|
||||
|
||||
#~ msgid "The application icon mode."
|
||||
#~ msgstr "The application icon mode."
|
||||
|
||||
|
||||
225
po/es.po
225
po/es.po
@@ -4,23 +4,24 @@
|
||||
# Jorge González <jorgegonz@svn.gnome.org>, 2011.
|
||||
# Nicolás Satragno <nsatragno@gmail.com>, 2011.
|
||||
#
|
||||
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011-2021.
|
||||
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011-2024.
|
||||
# Daniel Mustieles García <daniel.mustieles@gmail.com>, 2024.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
|
||||
"PO-Revision-Date: 2021-11-26 17:58+0100\n"
|
||||
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
|
||||
"POT-Creation-Date: 2024-04-29 15:27+0000\n"
|
||||
"PO-Revision-Date: 2024-09-03 11:21+0200\n"
|
||||
"Last-Translator: Daniel Mustieles García <daniel.mustieles@gmail.com>\n"
|
||||
"Language-Team: Spanish - Spain <gnome-es-list@gnome.org>\n"
|
||||
"Language: es_ES\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Gtranslator 41.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
"X-Generator: Gtranslator 46.1\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
@@ -32,28 +33,26 @@ msgid "This session logs you into GNOME Classic"
|
||||
msgstr "Esta sesión inicia GNOME clásico"
|
||||
|
||||
#: data/gnome-classic-wayland.desktop.in:3
|
||||
#| msgid "GNOME Classic"
|
||||
msgid "GNOME Classic on Wayland"
|
||||
msgstr "GNOME clásico en Wayland"
|
||||
|
||||
#: data/gnome-classic-xorg.desktop.in:3
|
||||
#| msgid "GNOME Classic"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME clásicoen Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:112
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
msgid "Favorites"
|
||||
msgstr "Favoritos"
|
||||
|
||||
#: extensions/apps-menu/extension.js:366
|
||||
msgid "Applications"
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
msgid "Apps"
|
||||
msgstr "Aplicaciones"
|
||||
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:12
|
||||
msgid "Application and workspace list"
|
||||
msgstr "Lista de aplicaciones y áreas de trabajo"
|
||||
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:13
|
||||
msgid ""
|
||||
"A list of strings, each containing an application id (desktop file name), "
|
||||
"followed by a colon and the workspace number"
|
||||
@@ -61,34 +60,34 @@ msgstr ""
|
||||
"Una lista de cadenas, conteniendo cada una un ID de aplicación (nombre de "
|
||||
"archivo de escritorio), seguido de dos puntos y el número del área de trabajo"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:34
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Reglas de las áreas de trabajo"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:236
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
msgid "Add Rule"
|
||||
msgstr "Añadir regla"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:133
|
||||
#: extensions/places-menu/placeDisplay.js:233
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:218
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Falló al expulsar el dispositivo «%s»:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:149
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "Dispositivos extraíbles"
|
||||
|
||||
#: extensions/drive-menu/extension.js:171
|
||||
#: extensions/drive-menu/extension.js:164
|
||||
msgid "Open Files"
|
||||
msgstr "Abrir archivos"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
msgid "Use more screen for windows"
|
||||
msgstr "Usar más pantalla para las ventanas"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||
msgid ""
|
||||
"Try to use more screen for placing window thumbnails by adapting to screen "
|
||||
"aspect ratio, and consolidating them further to reduce the bounding box. "
|
||||
@@ -98,11 +97,11 @@ msgstr ""
|
||||
"forma de la pantalla, y consolidarlas aún más para reducir el área ocupada. "
|
||||
"Esta opción sólo se aplica a la estrategia de posicionamiento «natural»."
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:17
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Situar los títulos de ventanas arriba"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:18
|
||||
msgid ""
|
||||
"If true, place window captions on top the respective thumbnail, overriding "
|
||||
"shell default of placing it at the bottom. Changing this setting requires "
|
||||
@@ -113,47 +112,119 @@ msgstr ""
|
||||
"los sitúa por debajo. Cambiar esta configuración requiere reiniciar la shell "
|
||||
"para que tenga efecto."
|
||||
|
||||
#: extensions/places-menu/extension.js:88
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
msgid "Places"
|
||||
msgstr "Lugares"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:46
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Falló al lanzar «%s»"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:61
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Falló al montar el volumen para «%s»"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:148
|
||||
#: extensions/places-menu/placeDisplay.js:171
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Equipo"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:359
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
msgid "Home"
|
||||
msgstr "Carpeta personal"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:404
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Examinar la red"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
msgstr "Tamaños de capturas de pantalla cíclicos"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:18
|
||||
msgid "Cycle Screenshot Sizes Backward"
|
||||
msgstr "Tamaños de capturas de pantalla cíclicos"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
#: extensions/system-monitor/extension.js:135
|
||||
msgid "CPU stats"
|
||||
msgstr "Estadísticas de la CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:159
|
||||
msgid "Memory stats"
|
||||
msgstr "Estadísticas de la memoria"
|
||||
|
||||
#: extensions/system-monitor/extension.js:177
|
||||
msgid "Swap stats"
|
||||
msgstr "Estadísticas del área de intercambio"
|
||||
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Actualizar estadísticas"
|
||||
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Descargar estadísticas"
|
||||
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Estadísticas del sistema"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Mostrar"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Memoria"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Área de intercambio"
|
||||
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Subir"
|
||||
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Descargar"
|
||||
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Abrir el monitor del sistema"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
|
||||
msgid "Show CPU usage"
|
||||
msgstr "Mostrar el uso de CPU"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
msgstr "Mostrar el uso de memoria"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
|
||||
msgid "Show swap usage"
|
||||
msgstr "Mostrar el uso del área de intercambio"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
|
||||
msgid "Show upload"
|
||||
msgstr "Mostrar subida"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
|
||||
msgid "Show download"
|
||||
msgstr "Mostrar descarga"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
|
||||
msgid "Theme name"
|
||||
msgstr "Nombre del tema"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:12
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "El nombre del tema, que se carga desde ~/.themes/nombre/gnome-shell"
|
||||
|
||||
@@ -161,51 +232,51 @@ msgstr "El nombre del tema, que se carga desde ~/.themes/nombre/gnome-shell"
|
||||
msgid "Close"
|
||||
msgstr "Cerrar"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Unminimize"
|
||||
msgstr "Desminimizar"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Minimize"
|
||||
msgstr "Minimizar"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Unmaximize"
|
||||
msgstr "Desmaximizar"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Maximize"
|
||||
msgstr "Maximizar"
|
||||
|
||||
#: extensions/window-list/extension.js:434
|
||||
#: extensions/window-list/extension.js:471
|
||||
msgid "Minimize all"
|
||||
msgstr "Minimizar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:440
|
||||
#: extensions/window-list/extension.js:477
|
||||
msgid "Unminimize all"
|
||||
msgstr "Desminimizar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:446
|
||||
#: extensions/window-list/extension.js:483
|
||||
msgid "Maximize all"
|
||||
msgstr "Maximizar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:454
|
||||
#: extensions/window-list/extension.js:491
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Desmaximizar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:462
|
||||
#: extensions/window-list/extension.js:499
|
||||
msgid "Close all"
|
||||
msgstr "Cerrar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:741
|
||||
#: extensions/window-list/extension.js:778
|
||||
msgid "Window List"
|
||||
msgstr "Lista de ventanas"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:18
|
||||
msgid "When to group windows"
|
||||
msgstr "Cuándo agrupar las ventanas"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:19
|
||||
msgid ""
|
||||
"Decides when to group windows from the same application on the window list. "
|
||||
"Possible values are “never”, “auto” and “always”."
|
||||
@@ -213,22 +284,22 @@ msgstr ""
|
||||
"Decide cuándo agrupar ventanas para la misma aplicación en la lista de "
|
||||
"ventanas. Los valores posibles son «never», «auto» y «always»."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/prefs.js:86
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Mostrar ventanas de todas las áreas de trabajo"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
msgid "Whether to show windows from all workspaces or only the current one."
|
||||
msgstr ""
|
||||
"Indica si se deben mostrar ventanas de todas las áreas de trabajo o sólo de "
|
||||
"la actual."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:33
|
||||
msgid "Show the window list on all monitors"
|
||||
msgstr "Mostrar la lista de ventanas en todas las pantallas"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:34
|
||||
msgid ""
|
||||
"Whether to show the window list on all connected monitors or only on the "
|
||||
"primary one."
|
||||
@@ -236,44 +307,62 @@ msgstr ""
|
||||
"Indica si se debe mostrar la lista de ventanas en todas las pantallas "
|
||||
"conectadas o sólo en la primaria."
|
||||
|
||||
#: extensions/window-list/prefs.js:39
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr "Mostrar vistas previas de las áreas de trabajo en la lista de ventanas"
|
||||
|
||||
#: extensions/window-list/prefs.js:35
|
||||
msgid "Window Grouping"
|
||||
msgstr "Agrupación de ventanas"
|
||||
|
||||
#: extensions/window-list/prefs.js:63
|
||||
#: extensions/window-list/prefs.js:40
|
||||
msgid "Never group windows"
|
||||
msgstr "Nunca agrupar las ventanas"
|
||||
|
||||
#: extensions/window-list/prefs.js:64
|
||||
#: extensions/window-list/prefs.js:41
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "Agrupar las ventanas cuando el espacio esté limitado"
|
||||
|
||||
#: extensions/window-list/prefs.js:65
|
||||
#: extensions/window-list/prefs.js:42
|
||||
msgid "Always group windows"
|
||||
msgstr "Siempre agrupar las ventanas"
|
||||
|
||||
#: extensions/window-list/prefs.js:81
|
||||
#: extensions/window-list/prefs.js:66
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Mostrar en todas las pantallas"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:249
|
||||
#: extensions/workspace-indicator/extension.js:254
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Indicador de área de trabajo"
|
||||
#: extensions/window-list/prefs.js:92
|
||||
msgid "Show workspace previews"
|
||||
msgstr "Mostrar vistas previas de las áreas de trabajo"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:33
|
||||
msgid "Workspace Names"
|
||||
msgstr "Nombres de los áreas de trabajo"
|
||||
#: extensions/workspace-indicator/prefs.js:30
|
||||
msgid "Show Previews In Top Bar"
|
||||
msgstr "Mostrar vistas previas en la barra superior"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:66
|
||||
#: extensions/workspace-indicator/prefs.js:88
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Área de trabajo %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:207
|
||||
#: extensions/workspace-indicator/prefs.js:155
|
||||
msgid "Workspace Names"
|
||||
msgstr "Nombres de los áreas de trabajo"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:281
|
||||
msgid "Add Workspace"
|
||||
msgstr "Añadir área de trabajo"
|
||||
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr "Mostrar áreas de trabajo en la barra superior"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:430
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Indicador de área de trabajo"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Aplicaciones"
|
||||
|
||||
#~ msgid "Application"
|
||||
#~ msgstr "Aplicación"
|
||||
|
||||
@@ -361,12 +450,6 @@ msgstr "Añadir área de trabajo"
|
||||
#~ "solo.\n"
|
||||
#~ "Sin embargo, es posible personalizar el mensaje de bienvenida."
|
||||
|
||||
#~ msgid "CPU"
|
||||
#~ msgstr "CPU"
|
||||
|
||||
#~ msgid "Memory"
|
||||
#~ msgstr "Memoria"
|
||||
|
||||
#~ msgid "GNOME Shell Classic"
|
||||
#~ msgstr "GNOME Shell clásico"
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user