mirror of
https://github.com/zoriya/noctalia-shell.git
synced 2025-12-06 06:36:15 +00:00
Compare commits
255 Commits
v3.1.0
...
shell-stat
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
74ba883dd8 | ||
|
|
01a26fd910 | ||
|
|
0293b8c8dd | ||
|
|
3914c32c96 | ||
|
|
4652691c4c | ||
|
|
679fd5c40e | ||
|
|
48c5435cef | ||
|
|
880ae9c7b9 | ||
|
|
0f650b36f7 | ||
|
|
823042b245 | ||
|
|
9c550af64e | ||
|
|
1bf54de99c | ||
|
|
7a68030f69 | ||
|
|
f46915d2c3 | ||
|
|
50ebc77513 | ||
|
|
522e7e4352 | ||
|
|
9f9e1341fd | ||
|
|
c919c54a32 | ||
|
|
6387dcc6d4 | ||
|
|
455014a39b | ||
|
|
a884f012d8 | ||
|
|
c5b23cc291 | ||
|
|
04e46815f8 | ||
|
|
f3d1e1f3d1 | ||
|
|
e2aa4ca2f8 | ||
|
|
d6edc55d16 | ||
|
|
e5912760ca | ||
|
|
7d981fb55b | ||
|
|
e97c46e96c | ||
|
|
c1afa199e3 | ||
|
|
530992a14b | ||
|
|
5d9cfeb9d0 | ||
|
|
8cb4711629 | ||
|
|
2d856882d2 | ||
|
|
f181bdf21c | ||
|
|
665aa84f70 | ||
|
|
b84452e04d | ||
|
|
d3c200f50c | ||
|
|
a39fbb5639 | ||
|
|
fe40758d4e | ||
|
|
63331c1018 | ||
|
|
9c955cdd39 | ||
|
|
d9e0f2fc10 | ||
|
|
1cbc793087 | ||
|
|
1a2ddbb9e3 | ||
|
|
e46c9cdf0e | ||
|
|
43cdc4494d | ||
|
|
5ed4c97ee5 | ||
|
|
ddd3ae364c | ||
|
|
3b793add39 | ||
|
|
71f4a8eb49 | ||
|
|
2f735eda81 | ||
|
|
ee33da8348 | ||
|
|
f7d7d7ac15 | ||
|
|
972ac47c1b | ||
|
|
0b0860a446 | ||
|
|
e8a27acb63 | ||
|
|
694fefeebd | ||
|
|
088431b20d | ||
|
|
63940703f8 | ||
|
|
e3c171840f | ||
|
|
857d1dbbb6 | ||
|
|
516fc47b68 | ||
|
|
e549cfcb78 | ||
|
|
6a840769ed | ||
|
|
ec92295a98 | ||
|
|
60d37576e0 | ||
|
|
067bbf20bc | ||
|
|
49aab3c487 | ||
|
|
868b14bbc3 | ||
|
|
b435d1f588 | ||
|
|
1fc1fa36aa | ||
|
|
04311f191f | ||
|
|
0726e6b92f | ||
|
|
9a3d04249f | ||
|
|
edd4ba1b15 | ||
|
|
c50776eeee | ||
|
|
e9114297d1 | ||
|
|
fbfdf787de | ||
|
|
3976a21dc7 | ||
|
|
c735eef75d | ||
|
|
1ceb97c08f | ||
|
|
42e2ba09ff | ||
|
|
074da9069c | ||
|
|
19672a3d46 | ||
|
|
da8fa306a1 | ||
|
|
d74f1feece | ||
|
|
6df39604c5 | ||
|
|
4d45b330b0 | ||
|
|
b7c50f4c23 | ||
|
|
0a6c06b092 | ||
|
|
9080a584a2 | ||
|
|
110917359c | ||
|
|
5275ccf0d7 | ||
|
|
d641eadf75 | ||
|
|
a9ccb4c133 | ||
|
|
16a79c7d5b | ||
|
|
1b4cd35504 | ||
|
|
17810d1d2f | ||
|
|
64f5d99a48 | ||
|
|
e4e3b1b85c | ||
|
|
4a0c2b7ef3 | ||
|
|
5e2f8c1462 | ||
|
|
97ba831cb4 | ||
|
|
5ade827a4c | ||
|
|
03554120be | ||
|
|
2917f02621 | ||
|
|
a18be7927c | ||
|
|
9bf8fd16d6 | ||
|
|
948c3c7e18 | ||
|
|
b2978113c5 | ||
|
|
87f62b288b | ||
|
|
ed373df99d | ||
|
|
529869f796 | ||
|
|
12766e411d | ||
|
|
79f79e0cff | ||
|
|
ca89a0dc35 | ||
|
|
6eaffb0e65 | ||
|
|
455ef3449e | ||
|
|
fef8535384 | ||
|
|
770c667794 | ||
|
|
9b805ef1c4 | ||
|
|
260cb34c96 | ||
|
|
592e261eb8 | ||
|
|
8242b0d97d | ||
|
|
aa218e153d | ||
|
|
af4ec4c694 | ||
|
|
7e43f3b0d6 | ||
|
|
9a76b54ce8 | ||
|
|
9170ece8d2 | ||
|
|
27dd8fd036 | ||
|
|
74b6e86835 | ||
|
|
1a4f151bbc | ||
|
|
4b507fa238 | ||
|
|
7262b7b00f | ||
|
|
3264b59d54 | ||
|
|
c3b73f02b3 | ||
|
|
ece5b95fb4 | ||
|
|
956a33a148 | ||
|
|
6655e96204 | ||
|
|
78698fa546 | ||
|
|
6b6517cac3 | ||
|
|
1d200e84a1 | ||
|
|
653d3b3cb2 | ||
|
|
0428dd1b50 | ||
|
|
6df544d560 | ||
|
|
6d032e5159 | ||
|
|
02e7588bca | ||
|
|
c407edb4e9 | ||
|
|
f3207b526f | ||
|
|
103bd91da8 | ||
|
|
66770625dd | ||
|
|
81c0c302d4 | ||
|
|
3283aacf9b | ||
|
|
1b114a0c5f | ||
|
|
0b4a7b2bcd | ||
|
|
f15c2a1e49 | ||
|
|
226213457f | ||
|
|
836029b567 | ||
|
|
8034297fb7 | ||
|
|
01b893c6e6 | ||
|
|
bc22bcac82 | ||
|
|
e36461acd2 | ||
|
|
069859828c | ||
|
|
1ba73c6fcb | ||
|
|
63f1404598 | ||
|
|
4a9cea1d84 | ||
|
|
8bca19f3f0 | ||
|
|
3bb8d8a7c2 | ||
|
|
7b926b68af | ||
|
|
5e398d387e | ||
|
|
f1d714ad9a | ||
|
|
7453a7c5d3 | ||
|
|
2ae5aa90c9 | ||
|
|
ca5f5cd506 | ||
|
|
2bf4b8ee71 | ||
|
|
ca64c4b436 | ||
|
|
4da1b08e19 | ||
|
|
22fefb3a8b | ||
|
|
c223737fd7 | ||
|
|
bb8107727c | ||
|
|
595ad0bb20 | ||
|
|
28e6fcdfe4 | ||
|
|
063ca70c57 | ||
|
|
48fb52dfe4 | ||
|
|
a7aa38fe1c | ||
|
|
0d478fc998 | ||
|
|
d4fb4f5889 | ||
|
|
d06f111c9a | ||
|
|
cd10f16b61 | ||
|
|
b2bfb71a91 | ||
|
|
b79ce196a6 | ||
|
|
24b8eeb1f4 | ||
|
|
a201b8a2c8 | ||
|
|
609c9900f7 | ||
|
|
f2ffed74be | ||
|
|
660287c7a1 | ||
|
|
ada3d7abf2 | ||
|
|
89a5efe6d1 | ||
|
|
83edb704a1 | ||
|
|
1f5b7ab3a1 | ||
|
|
8f6d1e06d2 | ||
|
|
aee415e82e | ||
|
|
a46c76b9d5 | ||
|
|
4f0bf28f06 | ||
|
|
474598ccae | ||
|
|
0426918be6 | ||
|
|
792c6848c4 | ||
|
|
40f68c5325 | ||
|
|
dddd934f06 | ||
|
|
dc08751ec2 | ||
|
|
1f0485dff2 | ||
|
|
064b894fbc | ||
|
|
8ec6040c29 | ||
|
|
df37511089 | ||
|
|
202d974a82 | ||
|
|
8e18f79acd | ||
|
|
d6de45275f | ||
|
|
39fd2517c3 | ||
|
|
d8adaf4d4b | ||
|
|
3ff5b7639f | ||
|
|
32905224b9 | ||
|
|
9919e0419e | ||
|
|
57b8be1504 | ||
|
|
0706285048 | ||
|
|
4fa6696a1c | ||
|
|
a6aa162db6 | ||
|
|
36e0ef91bc | ||
|
|
c09bf13c58 | ||
|
|
7280d827db | ||
|
|
9e454bd608 | ||
|
|
13532cc479 | ||
|
|
31a93fb211 | ||
|
|
01b44e0b28 | ||
|
|
de200a929c | ||
|
|
1a38c6d665 | ||
|
|
8af9643577 | ||
|
|
9d3dbd33b2 | ||
|
|
8e36b68789 | ||
|
|
78919bcc13 | ||
|
|
8ed927ab0a | ||
|
|
6c80fd3740 | ||
|
|
ef1b7cfd89 | ||
|
|
098e7f5645 | ||
|
|
a8787aa241 | ||
|
|
6494aec955 | ||
|
|
2735a489b5 | ||
|
|
b120af43fe | ||
|
|
f520466063 | ||
|
|
ead2b82680 | ||
|
|
3f1bcf1ae8 | ||
|
|
f9192f0424 | ||
|
|
cea0739a5e | ||
|
|
4ca358b5ba | ||
|
|
55addb651c |
2
.github/pull_request_template.md
vendored
2
.github/pull_request_template.md
vendored
@@ -1,5 +1,7 @@
|
||||
# Pull Request
|
||||
|
||||
<!-- If this is a color scheme PR, please create it in https://github.com/noctalia-dev/noctalia-colorschemes instead -->
|
||||
|
||||
## Motivation
|
||||
Provide a clear and concise explanation of what this PR does and why it is needed.
|
||||
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
{
|
||||
"dark": {
|
||||
"mPrimary": "#C4A82E",
|
||||
"mOnPrimary": "#0E1015",
|
||||
"mSecondary": "#D14358",
|
||||
"mOnSecondary": "#0E1015",
|
||||
"mTertiary": "#00A66C",
|
||||
"mOnTertiary": "#0E1015",
|
||||
"mError": "#B32D2D",
|
||||
"mOnError": "#0E1015",
|
||||
"mSurface": "#0C1017",
|
||||
"mOnSurface": "#5C8AC4",
|
||||
"mSurfaceVariant": "#11151D",
|
||||
"mOnSurfaceVariant": "#9B6BC1",
|
||||
"mOutline": "#45A0D6",
|
||||
"mShadow": "#090D13",
|
||||
"mHover": "#00A66C",
|
||||
"mOnHover": "#0E1015"
|
||||
},
|
||||
"light": {
|
||||
"mPrimary": "#00B8B3",
|
||||
"mOnPrimary": "#1A1914",
|
||||
"mSecondary": "#D957A0",
|
||||
"mOnSecondary": "#1A1914",
|
||||
"mTertiary": "#45D395",
|
||||
"mOnTertiary": "#1A1914",
|
||||
"mError": "#E63E5D",
|
||||
"mOnError": "#1A1914",
|
||||
"mSurface": "#DAE6E8",
|
||||
"mOnSurface": "#1A1914",
|
||||
"mSurfaceVariant": "#C8DEE6",
|
||||
"mOnSurfaceVariant": "#1A1914",
|
||||
"mOutline": "#7B52AB",
|
||||
"mShadow": "#B8D4E6",
|
||||
"mHover": "#45D395",
|
||||
"mOnHover": "#1A1914"
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
# Colors (Cyberpunk)
|
||||
|
||||
[colors.bright]
|
||||
black = '#2b314a'
|
||||
blue = '#4f8fff'
|
||||
cyan = '#43c9ff'
|
||||
green = '#89d36a'
|
||||
magenta = '#9d6dff'
|
||||
red = '#e64572'
|
||||
white = '#d8e0ff'
|
||||
yellow = '#d7a23a'
|
||||
|
||||
[colors.cursor]
|
||||
cursor = '#d8e0ff'
|
||||
text = '#0a0d14'
|
||||
|
||||
[colors.normal]
|
||||
black = '#0c0e14'
|
||||
blue = '#4f8fff'
|
||||
cyan = '#43c9ff'
|
||||
green = '#89d36a'
|
||||
magenta = '#9d6dff'
|
||||
red = '#e64572'
|
||||
white = '#b7c4f2'
|
||||
yellow = '#d7a23a'
|
||||
|
||||
[colors.primary]
|
||||
background = '#0a0d14'
|
||||
foreground = '#d8e0ff'
|
||||
|
||||
[colors.selection]
|
||||
background = '#d8e0ff'
|
||||
text = '#0a0d14'
|
||||
@@ -1,33 +0,0 @@
|
||||
# Colors (Cyberpunk Light)
|
||||
|
||||
[colors.bright]
|
||||
black = '#a1a6c5'
|
||||
blue = '#2e7de9'
|
||||
cyan = '#007197'
|
||||
green = '#587539'
|
||||
magenta = '#9854f1'
|
||||
red = '#f52a65'
|
||||
white = '#3760bf'
|
||||
yellow = '#8c6c3e'
|
||||
|
||||
[colors.cursor]
|
||||
cursor = '#3760bf'
|
||||
text = '#e1e2e7'
|
||||
|
||||
[colors.normal]
|
||||
black = '#e9e9ed'
|
||||
blue = '#2e7de9'
|
||||
cyan = '#007197'
|
||||
green = '#587539'
|
||||
magenta = '#9854f1'
|
||||
red = '#f52a65'
|
||||
white = '#6172b0'
|
||||
yellow = '#8c6c3e'
|
||||
|
||||
[colors.primary]
|
||||
background = '#e1e2e7'
|
||||
foreground = '#3760bf'
|
||||
|
||||
[colors.selection]
|
||||
background = '#99a7df'
|
||||
text = '#3760bf'
|
||||
@@ -1,27 +0,0 @@
|
||||
[cursor]
|
||||
color=0a0d14 d8e0ff
|
||||
|
||||
[colors]
|
||||
foreground=d8e0ff
|
||||
background=0a0d14
|
||||
|
||||
regular0=0c0e14
|
||||
regular1=e64572
|
||||
regular2=89d36a
|
||||
regular3=d7a23a
|
||||
regular4=4f8fff
|
||||
regular5=9d6dff
|
||||
regular6=43c9ff
|
||||
regular7=b7c4f2
|
||||
|
||||
bright0=2b314a
|
||||
bright1=e64572
|
||||
bright2=89d36a
|
||||
bright3=d7a23a
|
||||
bright4=4f8fff
|
||||
bright5=9d6dff
|
||||
bright6=43c9ff
|
||||
bright7=d8e0ff
|
||||
|
||||
selection-foreground=0a0d14
|
||||
selection-background=d8e0ff
|
||||
@@ -1,22 +0,0 @@
|
||||
[colors]
|
||||
foreground=3760bf
|
||||
background=e1e2e7
|
||||
regular0=e9e9ed
|
||||
regular1=f52a65
|
||||
regular2=587539
|
||||
regular3=8c6c3e
|
||||
regular4=2e7de9
|
||||
regular5=9854f1
|
||||
regular6=007197
|
||||
regular7=6172b0
|
||||
bright0=a1a6c5
|
||||
bright1=f52a65
|
||||
bright2=587539
|
||||
bright3=8c6c3e
|
||||
bright4=2e7de9
|
||||
bright5=9854f1
|
||||
bright6=007197
|
||||
bright7=3760bf
|
||||
selection-foreground=3760bf
|
||||
selection-background=99a7df
|
||||
cursor=e1e2e7 3760bf
|
||||
@@ -1,23 +0,0 @@
|
||||
palette = 0=#0c0e14
|
||||
palette = 1=#e64572
|
||||
palette = 2=#89d36a
|
||||
palette = 3=#d7a23a
|
||||
palette = 4=#4f8fff
|
||||
palette = 5=#9d6dff
|
||||
palette = 6=#43c9ff
|
||||
palette = 7=#b7c4f2
|
||||
palette = 8=#2b314a
|
||||
palette = 9=#e64572
|
||||
palette = 10=#89d36a
|
||||
palette = 11=#d7a23a
|
||||
palette = 12=#4f8fff
|
||||
palette = 13=#9d6dff
|
||||
palette = 14=#43c9ff
|
||||
palette = 15=#d8e0ff
|
||||
|
||||
background = #0a0d14
|
||||
foreground = #d8e0ff
|
||||
cursor-color = #d8e0ff
|
||||
cursor-text = #0a0d14
|
||||
selection-background = #d8e0ff
|
||||
selection-foreground = #0a0d14
|
||||
@@ -1,22 +0,0 @@
|
||||
palette = 0=#e9e9ed
|
||||
palette = 1=#f52a65
|
||||
palette = 2=#587539
|
||||
palette = 3=#8c6c3e
|
||||
palette = 4=#2e7de9
|
||||
palette = 5=#9854f1
|
||||
palette = 6=#007197
|
||||
palette = 7=#6172b0
|
||||
palette = 8=#a1a6c5
|
||||
palette = 9=#f52a65
|
||||
palette = 10=#587539
|
||||
palette = 11=#8c6c3e
|
||||
palette = 12=#2e7de9
|
||||
palette = 13=#9854f1
|
||||
palette = 14=#007197
|
||||
palette = 15=#3760bf
|
||||
background = #e1e2e7
|
||||
foreground = #3760bf
|
||||
cursor-color = #3760bf
|
||||
cursor-text = #e1e2e7
|
||||
selection-background = #99a7df
|
||||
selection-foreground = #3760bf
|
||||
@@ -1,23 +0,0 @@
|
||||
color0 #0c0e14
|
||||
color1 #e64572
|
||||
color2 #89d36a
|
||||
color3 #d7a23a
|
||||
color4 #4f8fff
|
||||
color5 #9d6dff
|
||||
color6 #43c9ff
|
||||
color7 #b7c4f2
|
||||
color8 #2b314a
|
||||
color9 #e64572
|
||||
color10 #89d36a
|
||||
color11 #d7a23a
|
||||
color12 #4f8fff
|
||||
color13 #9d6dff
|
||||
color14 #43c9ff
|
||||
color15 #d8e0ff
|
||||
|
||||
background #0a0d14
|
||||
selection_foreground #0a0d14
|
||||
cursor #d8e0ff
|
||||
cursor_text_color #0a0d14
|
||||
foreground #d8e0ff
|
||||
selection_background #d8e0ff
|
||||
@@ -1,22 +0,0 @@
|
||||
color0 #e9e9ed
|
||||
color1 #f52a65
|
||||
color2 #587539
|
||||
color3 #8c6c3e
|
||||
color4 #2e7de9
|
||||
color5 #9854f1
|
||||
color6 #007197
|
||||
color7 #6172b0
|
||||
color8 #a1a6c5
|
||||
color9 #f52a65
|
||||
color10 #587539
|
||||
color11 #8c6c3e
|
||||
color12 #2e7de9
|
||||
color13 #9854f1
|
||||
color14 #007197
|
||||
color15 #3760bf
|
||||
background #e1e2e7
|
||||
selection_foreground #e1e2e7
|
||||
cursor #3760bf
|
||||
cursor_text_color #e1e2e7
|
||||
foreground #3760bf
|
||||
selection_background #3760bf
|
||||
@@ -1,31 +0,0 @@
|
||||
[colors]
|
||||
ansi = [
|
||||
"#0c0e14",
|
||||
"#e64572",
|
||||
"#89d36a",
|
||||
"#d7a23a",
|
||||
"#4f8fff",
|
||||
"#9d6dff",
|
||||
"#43c9ff",
|
||||
"#b7c4f2",
|
||||
]
|
||||
background = "#0a0d14"
|
||||
brights = [
|
||||
"#2b314a",
|
||||
"#e64572",
|
||||
"#89d36a",
|
||||
"#d7a23a",
|
||||
"#4f8fff",
|
||||
"#9d6dff",
|
||||
"#43c9ff",
|
||||
"#d8e0ff",
|
||||
]
|
||||
cursor_bg = "#d8e0ff"
|
||||
cursor_border = "#d8e0ff"
|
||||
cursor_fg = "#0a0d14"
|
||||
foreground = "#d8e0ff"
|
||||
selection_bg = "#d8e0ff"
|
||||
selection_fg = "#0a0d14"
|
||||
|
||||
[metadata]
|
||||
name = "Noctalia"
|
||||
@@ -1,31 +0,0 @@
|
||||
[colors]
|
||||
ansi = [
|
||||
"#e9e9ed",
|
||||
"#f52a65",
|
||||
"#587539",
|
||||
"#8c6c3e",
|
||||
"#2e7de9",
|
||||
"#9854f1",
|
||||
"#007197",
|
||||
"#6172b0",
|
||||
]
|
||||
background = "#e1e2e7"
|
||||
brights = [
|
||||
"#a1a6c5",
|
||||
"#f52a65",
|
||||
"#587539",
|
||||
"#8c6c3e",
|
||||
"#2e7de9",
|
||||
"#9854f1",
|
||||
"#007197",
|
||||
"#3760bf",
|
||||
]
|
||||
cursor_bg = "#3760bf"
|
||||
cursor_border = "#3760bf"
|
||||
cursor_fg = "#e1e2e7"
|
||||
foreground = "#3760bf"
|
||||
selection_bg = "#3760bf"
|
||||
selection_fg = "#e1e2e7"
|
||||
|
||||
[metadata]
|
||||
name = "Noctalia"
|
||||
@@ -1,38 +0,0 @@
|
||||
{
|
||||
"dark": {
|
||||
"mPrimary": "#D3C6AA",
|
||||
"mOnPrimary": "#232A2E",
|
||||
"mSecondary": "#D3C6AA",
|
||||
"mOnSecondary": "#232A2E",
|
||||
"mTertiary": "#9DA9A0",
|
||||
"mOnTertiary": "#232A2E",
|
||||
"mError": "#E67E80",
|
||||
"mOnError": "#232A2E",
|
||||
"mSurface": "#232A2E",
|
||||
"mOnSurface": "#859289",
|
||||
"mSurfaceVariant": "#2D353B",
|
||||
"mOnSurfaceVariant": "#D3C6AA",
|
||||
"mOutline": "#D3C6AA",
|
||||
"mShadow": "#475258",
|
||||
"mHover": "#9DA9A0",
|
||||
"mOnHover": "#232A2E"
|
||||
},
|
||||
"light": {
|
||||
"mPrimary": "#434F55",
|
||||
"mOnPrimary": "#D3C6AA",
|
||||
"mSecondary": "#232a2e",
|
||||
"mOnSecondary": "#D3C6AA",
|
||||
"mTertiary": "#333c43",
|
||||
"mOnTertiary": "#9DA9A0",
|
||||
"mError": "#E66868",
|
||||
"mOnError": "#9DA9A0",
|
||||
"mSurface": "#9DA9A0",
|
||||
"mOnSurface": "#232A2E",
|
||||
"mSurfaceVariant": "#BEC5B2",
|
||||
"mOnSurfaceVariant": "#333C43",
|
||||
"mOutline": "#232A2E",
|
||||
"mShadow": "#ECF5ED",
|
||||
"mHover": "#333c43",
|
||||
"mOnHover": "#9DA9A0"
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
# Colors (Everforest Dark Hard)
|
||||
|
||||
[colors.bright]
|
||||
black = '#a6b0a0'
|
||||
blue = '#3a94c5'
|
||||
cyan = '#35a77c'
|
||||
green = '#8da101'
|
||||
magenta = '#df69ba'
|
||||
red = '#f85552'
|
||||
white = '#fffbef'
|
||||
yellow = '#dfa000'
|
||||
|
||||
[colors.cursor]
|
||||
cursor = '#e69875'
|
||||
text = '#4c3743'
|
||||
|
||||
[colors.normal]
|
||||
black = '#7a8478'
|
||||
blue = '#7fbbb3'
|
||||
cyan = '#83c092'
|
||||
green = '#a7c080'
|
||||
magenta = '#d699b6'
|
||||
red = '#e67e80'
|
||||
white = '#f2efdf'
|
||||
yellow = '#dbbc7f'
|
||||
|
||||
[colors.primary]
|
||||
background = '#1e2326'
|
||||
foreground = '#d3c6aa'
|
||||
|
||||
[colors.selection]
|
||||
background = '#4c3743'
|
||||
text = '#d3c6aa'
|
||||
@@ -1,33 +0,0 @@
|
||||
# Colors (Everforest Light Med)
|
||||
|
||||
[colors.bright]
|
||||
black = '#a6b0a0'
|
||||
blue = '#3a94c5'
|
||||
cyan = '#35a77c'
|
||||
green = '#8da101'
|
||||
magenta = '#df69ba'
|
||||
red = '#f85552'
|
||||
white = '#fffbef'
|
||||
yellow = '#dfa000'
|
||||
|
||||
[colors.cursor]
|
||||
cursor = '#f57d26'
|
||||
text = '#eaedc8'
|
||||
|
||||
[colors.normal]
|
||||
black = '#7a8478'
|
||||
blue = '#7fbbb3'
|
||||
cyan = '#83c092'
|
||||
green = '#9ab373'
|
||||
magenta = '#d699b6'
|
||||
red = '#e67e80'
|
||||
white = '#b2af9f'
|
||||
yellow = '#c1a266'
|
||||
|
||||
[colors.primary]
|
||||
background = '#efebd4'
|
||||
foreground = '#5c6a72'
|
||||
|
||||
[colors.selection]
|
||||
background = '#eaedc8'
|
||||
text = '#5c6a72'
|
||||
@@ -1,22 +0,0 @@
|
||||
[colors]
|
||||
foreground=d3c6aa
|
||||
background=1e2326
|
||||
regular0=7a8478
|
||||
regular1=e67e80
|
||||
regular2=a7c080
|
||||
regular3=dbbc7f
|
||||
regular4=7fbbb3
|
||||
regular5=d699b6
|
||||
regular6=83c092
|
||||
regular7=f2efdf
|
||||
bright0=a6b0a0
|
||||
bright1=f85552
|
||||
bright2=8da101
|
||||
bright3=dfa000
|
||||
bright4=3a94c5
|
||||
bright5=df69ba
|
||||
bright6=35a77c
|
||||
bright7=fffbef
|
||||
selection-foreground=d3c6aa
|
||||
selection-background=4c3743
|
||||
cursor=4c3743 e69875
|
||||
@@ -1,22 +0,0 @@
|
||||
[colors]
|
||||
foreground=5c6a72
|
||||
background=efebd4
|
||||
regular0=7a8478
|
||||
regular1=e67e80
|
||||
regular2=9ab373
|
||||
regular3=c1a266
|
||||
regular4=7fbbb3
|
||||
regular5=d699b6
|
||||
regular6=83c092
|
||||
regular7=b2af9f
|
||||
bright0=a6b0a0
|
||||
bright1=f85552
|
||||
bright2=8da101
|
||||
bright3=dfa000
|
||||
bright4=3a94c5
|
||||
bright5=df69ba
|
||||
bright6=35a77c
|
||||
bright7=fffbef
|
||||
selection-foreground=5c6a72
|
||||
selection-background=eaedc8
|
||||
cursor=eaedc8 f57d26
|
||||
@@ -1,22 +0,0 @@
|
||||
palette = 0=#7a8478
|
||||
palette = 1=#e67e80
|
||||
palette = 2=#a7c080
|
||||
palette = 3=#dbbc7f
|
||||
palette = 4=#7fbbb3
|
||||
palette = 5=#d699b6
|
||||
palette = 6=#83c092
|
||||
palette = 7=#f2efdf
|
||||
palette = 8=#a6b0a0
|
||||
palette = 9=#f85552
|
||||
palette = 10=#8da101
|
||||
palette = 11=#dfa000
|
||||
palette = 12=#3a94c5
|
||||
palette = 13=#df69ba
|
||||
palette = 14=#35a77c
|
||||
palette = 15=#fffbef
|
||||
background = #1e2326
|
||||
foreground = #d3c6aa
|
||||
cursor-color = #e69875
|
||||
cursor-text = #4c3743
|
||||
selection-background = #4c3743
|
||||
selection-foreground = #d3c6aa
|
||||
@@ -1,22 +0,0 @@
|
||||
palette = 0=#7a8478
|
||||
palette = 1=#e67e80
|
||||
palette = 2=#9ab373
|
||||
palette = 3=#c1a266
|
||||
palette = 4=#7fbbb3
|
||||
palette = 5=#d699b6
|
||||
palette = 6=#83c092
|
||||
palette = 7=#b2af9f
|
||||
palette = 8=#a6b0a0
|
||||
palette = 9=#f85552
|
||||
palette = 10=#8da101
|
||||
palette = 11=#dfa000
|
||||
palette = 12=#3a94c5
|
||||
palette = 13=#df69ba
|
||||
palette = 14=#35a77c
|
||||
palette = 15=#fffbef
|
||||
background = #efebd4
|
||||
foreground = #5c6a72
|
||||
cursor-color = #f57d26
|
||||
cursor-text = #eaedc8
|
||||
selection-background = #eaedc8
|
||||
selection-foreground = #5c6a72
|
||||
@@ -1,22 +0,0 @@
|
||||
color0 #7a8478
|
||||
color1 #e67e80
|
||||
color2 #a7c080
|
||||
color3 #dbbc7f
|
||||
color4 #7fbbb3
|
||||
color5 #d699b6
|
||||
color6 #83c092
|
||||
color7 #f2efdf
|
||||
color8 #a6b0a0
|
||||
color9 #f85552
|
||||
color10 #8da101
|
||||
color11 #dfa000
|
||||
color12 #3a94c5
|
||||
color13 #df69ba
|
||||
color14 #35a77c
|
||||
color15 #fffbef
|
||||
background #1e2326
|
||||
selection_foreground #1e2326
|
||||
cursor #e69875
|
||||
cursor_text_color #4c3743
|
||||
foreground #d3c6aa
|
||||
selection_background #d3c6aa
|
||||
@@ -1,22 +0,0 @@
|
||||
color0 #7a8478
|
||||
color1 #e67e80
|
||||
color2 #9ab373
|
||||
color3 #c1a266
|
||||
color4 #7fbbb3
|
||||
color5 #d699b6
|
||||
color6 #83c092
|
||||
color7 #b2af9f
|
||||
color8 #a6b0a0
|
||||
color9 #f85552
|
||||
color10 #8da101
|
||||
color11 #dfa000
|
||||
color12 #3a94c5
|
||||
color13 #df69ba
|
||||
color14 #35a77c
|
||||
color15 #fffbef
|
||||
background #efebd4
|
||||
selection_foreground #efebd4
|
||||
cursor #f57d26
|
||||
cursor_text_color #eaedc8
|
||||
foreground #5c6a72
|
||||
selection_background #5c6a72
|
||||
@@ -1,33 +0,0 @@
|
||||
[colors]
|
||||
ansi = [
|
||||
"#4b565c",
|
||||
"#e67e80",
|
||||
"#a7c080",
|
||||
"#dbbc7f",
|
||||
"#7fbbb3",
|
||||
"#d699b6",
|
||||
"#83c092",
|
||||
"#d3c6aa",
|
||||
]
|
||||
background = "#2d353b"
|
||||
brights = [
|
||||
"#5c6a72",
|
||||
"#f85552",
|
||||
"#8da101",
|
||||
"#dfa000",
|
||||
"#3a94c5",
|
||||
"#df69ba",
|
||||
"#35a77c",
|
||||
"#dfddc8",
|
||||
]
|
||||
cursor_bg = "#d3c6aa"
|
||||
cursor_border = "#d3c6aa"
|
||||
cursor_fg = "#2d353b"
|
||||
foreground = "#d3c6aa"
|
||||
|
||||
[colors.indexed]
|
||||
|
||||
[metadata]
|
||||
name = "Noctalia"
|
||||
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
[colors]
|
||||
ansi = [
|
||||
"#5c6a72",
|
||||
"#f85552",
|
||||
"#8da101",
|
||||
"#dfa000",
|
||||
"#3a94c5",
|
||||
"#df69ba",
|
||||
"#35a77c",
|
||||
"#dfddc8",
|
||||
]
|
||||
background = "#fdf6e3"
|
||||
brights = [
|
||||
"#4b565c",
|
||||
"#e67e80",
|
||||
"#a7c080",
|
||||
"#dbbc7f",
|
||||
"#7fbbb3",
|
||||
"#d699b6",
|
||||
"#83c092",
|
||||
"#d3c6aa",
|
||||
]
|
||||
cursor_bg = "#5c6a72"
|
||||
cursor_border = "#5c6a72"
|
||||
cursor_fg = "#fdf6e3"
|
||||
foreground = "#5c6a72"
|
||||
|
||||
[colors.indexed]
|
||||
|
||||
[metadata]
|
||||
name = "Noctalia"
|
||||
@@ -1,38 +0,0 @@
|
||||
{
|
||||
"dark": {
|
||||
"mPrimary": "#aaaaaa",
|
||||
"mOnPrimary": "#111111",
|
||||
"mSecondary": "#a7a7a7",
|
||||
"mOnSecondary": "#111111",
|
||||
"mTertiary": "#cccccc",
|
||||
"mOnTertiary": "#111111",
|
||||
"mError": "#dddddd",
|
||||
"mOnError": "#111111",
|
||||
"mSurface": "#111111",
|
||||
"mOnSurface": "#828282",
|
||||
"mSurfaceVariant": "#191919",
|
||||
"mOnSurfaceVariant": "#5d5d5d",
|
||||
"mOutline": "#3c3c3c",
|
||||
"mShadow": "#000000",
|
||||
"mHover": "#cccccc",
|
||||
"mOnHover": "#111111"
|
||||
},
|
||||
"light": {
|
||||
"mPrimary": "#555555",
|
||||
"mOnPrimary": "#eeeeee",
|
||||
"mSecondary": "#505058",
|
||||
"mOnSecondary": "#eeeeee",
|
||||
"mTertiary": "#333333",
|
||||
"mOnTertiary": "#eeeeee",
|
||||
"mError": "#222222",
|
||||
"mOnError": "#efefef",
|
||||
"mSurface": "#d4d4d4",
|
||||
"mOnSurface": "#696969",
|
||||
"mSurfaceVariant": "#e8e8e8",
|
||||
"mOnSurfaceVariant": "#9e9e9e",
|
||||
"mOutline": "#c3c3c3",
|
||||
"mShadow": "#fafafa",
|
||||
"mHover": "#333333",
|
||||
"mOnHover": "#eeeeee"
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
# Colors (Monochrome)
|
||||
|
||||
[colors.bright]
|
||||
black = '#3c3c3c'
|
||||
blue = '#a7a7a7'
|
||||
cyan = '#cccccc'
|
||||
green = '#cccccc'
|
||||
magenta = '#dddddd'
|
||||
red = '#dddddd'
|
||||
white = '#ffffff'
|
||||
yellow = '#aaaaaa'
|
||||
|
||||
[colors.cursor]
|
||||
cursor = '#aaaaaa'
|
||||
text = '#111111'
|
||||
|
||||
[colors.normal]
|
||||
black = '#191919'
|
||||
blue = '#a7a7a7'
|
||||
cyan = '#cccccc'
|
||||
green = '#cccccc'
|
||||
magenta = '#dddddd'
|
||||
red = '#dddddd'
|
||||
white = '#828282'
|
||||
yellow = '#aaaaaa'
|
||||
|
||||
[colors.primary]
|
||||
background = '#111111'
|
||||
foreground = '#828282'
|
||||
|
||||
[colors.selection]
|
||||
background = '#828282'
|
||||
text = '#111111'
|
||||
@@ -1,33 +0,0 @@
|
||||
# Colors (Monochrome Light)
|
||||
|
||||
[colors.bright]
|
||||
black = '#c3c3c3'
|
||||
blue = '#505058'
|
||||
cyan = '#333333'
|
||||
green = '#333333'
|
||||
magenta = '#222222'
|
||||
red = '#222222'
|
||||
white = '#000000'
|
||||
yellow = '#555555'
|
||||
|
||||
[colors.cursor]
|
||||
cursor = '#555555'
|
||||
text = '#d4d4d4'
|
||||
|
||||
[colors.normal]
|
||||
black = '#e8e8e8'
|
||||
blue = '#505058'
|
||||
cyan = '#333333'
|
||||
green = '#333333'
|
||||
magenta = '#222222'
|
||||
red = '#222222'
|
||||
white = '#696969'
|
||||
yellow = '#555555'
|
||||
|
||||
[colors.primary]
|
||||
background = '#d4d4d4'
|
||||
foreground = '#696969'
|
||||
|
||||
[colors.selection]
|
||||
background = '#696969'
|
||||
text = '#d4d4d4'
|
||||
@@ -1,22 +0,0 @@
|
||||
[colors]
|
||||
foreground=828282
|
||||
background=111111
|
||||
regular0=191919
|
||||
regular1=dddddd
|
||||
regular2=cccccc
|
||||
regular3=aaaaaa
|
||||
regular4=a7a7a7
|
||||
regular5=dddddd
|
||||
regular6=cccccc
|
||||
regular7=828282
|
||||
bright0=3c3c3c
|
||||
bright1=dddddd
|
||||
bright2=cccccc
|
||||
bright3=aaaaaa
|
||||
bright4=a7a7a7
|
||||
bright5=dddddd
|
||||
bright6=cccccc
|
||||
bright7=ffffff
|
||||
selection-foreground=111111
|
||||
selection-background=828282
|
||||
cursor=111111 aaaaaa
|
||||
@@ -1,22 +0,0 @@
|
||||
[colors]
|
||||
foreground=696969
|
||||
background=d4d4d4
|
||||
regular0=e8e8e8
|
||||
regular1=222222
|
||||
regular2=333333
|
||||
regular3=555555
|
||||
regular4=505058
|
||||
regular5=222222
|
||||
regular6=333333
|
||||
regular7=696969
|
||||
bright0=c3c3c3
|
||||
bright1=222222
|
||||
bright2=333333
|
||||
bright3=555555
|
||||
bright4=505058
|
||||
bright5=222222
|
||||
bright6=333333
|
||||
bright7=000000
|
||||
selection-foreground=d4d4d4
|
||||
selection-background=696969
|
||||
cursor=d4d4d4 555555
|
||||
@@ -1,22 +0,0 @@
|
||||
palette = 0=#191919
|
||||
palette = 1=#dddddd
|
||||
palette = 2=#cccccc
|
||||
palette = 3=#aaaaaa
|
||||
palette = 4=#a7a7a7
|
||||
palette = 5=#dddddd
|
||||
palette = 6=#cccccc
|
||||
palette = 7=#828282
|
||||
palette = 8=#3c3c3c
|
||||
palette = 9=#dddddd
|
||||
palette = 10=#cccccc
|
||||
palette = 11=#aaaaaa
|
||||
palette = 12=#a7a7a7
|
||||
palette = 13=#dddddd
|
||||
palette = 14=#cccccc
|
||||
palette = 15=#ffffff
|
||||
background = #111111
|
||||
foreground = #828282
|
||||
cursor-color = #aaaaaa
|
||||
cursor-text = #111111
|
||||
selection-background = #828282
|
||||
selection-foreground = #111111
|
||||
@@ -1,22 +0,0 @@
|
||||
palette = 0=#e8e8e8
|
||||
palette = 1=#222222
|
||||
palette = 2=#333333
|
||||
palette = 3=#555555
|
||||
palette = 4=#505058
|
||||
palette = 5=#222222
|
||||
palette = 6=#333333
|
||||
palette = 7=#696969
|
||||
palette = 8=#c3c3c3
|
||||
palette = 9=#222222
|
||||
palette = 10=#333333
|
||||
palette = 11=#555555
|
||||
palette = 12=#505058
|
||||
palette = 13=#222222
|
||||
palette = 14=#333333
|
||||
palette = 15=#000000
|
||||
background = #d4d4d4
|
||||
foreground = #696969
|
||||
cursor-color = #555555
|
||||
cursor-text = #d4d4d4
|
||||
selection-background = #696969
|
||||
selection-foreground = #d4d4d4
|
||||
@@ -1,22 +0,0 @@
|
||||
color0 #191919
|
||||
color1 #dddddd
|
||||
color2 #cccccc
|
||||
color3 #aaaaaa
|
||||
color4 #a7a7a7
|
||||
color5 #dddddd
|
||||
color6 #cccccc
|
||||
color7 #828282
|
||||
color8 #3c3c3c
|
||||
color9 #dddddd
|
||||
color10 #cccccc
|
||||
color11 #aaaaaa
|
||||
color12 #a7a7a7
|
||||
color13 #dddddd
|
||||
color14 #cccccc
|
||||
color15 #ffffff
|
||||
background #111111
|
||||
selection_foreground #111111
|
||||
cursor #aaaaaa
|
||||
cursor_text_color #111111
|
||||
foreground #828282
|
||||
selection_background #828282
|
||||
@@ -1,22 +0,0 @@
|
||||
color0 #e8e8e8
|
||||
color1 #222222
|
||||
color2 #333333
|
||||
color3 #555555
|
||||
color4 #505058
|
||||
color5 #222222
|
||||
color6 #333333
|
||||
color7 #696969
|
||||
color8 #c3c3c3
|
||||
color9 #222222
|
||||
color10 #333333
|
||||
color11 #555555
|
||||
color12 #505058
|
||||
color13 #222222
|
||||
color14 #333333
|
||||
color15 #000000
|
||||
background #d4d4d4
|
||||
selection_foreground #d4d4d4
|
||||
cursor #555555
|
||||
cursor_text_color #d4d4d4
|
||||
foreground #696969
|
||||
selection_background #696969
|
||||
@@ -1,31 +0,0 @@
|
||||
[colors]
|
||||
ansi = [
|
||||
"#191919",
|
||||
"#dddddd",
|
||||
"#cccccc",
|
||||
"#aaaaaa",
|
||||
"#a7a7a7",
|
||||
"#dddddd",
|
||||
"#cccccc",
|
||||
"#828282",
|
||||
]
|
||||
background = "#111111"
|
||||
brights = [
|
||||
"#3c3c3c",
|
||||
"#dddddd",
|
||||
"#cccccc",
|
||||
"#aaaaaa",
|
||||
"#a7a7a7",
|
||||
"#dddddd",
|
||||
"#cccccc",
|
||||
"#ffffff",
|
||||
]
|
||||
cursor_bg = "#aaaaaa"
|
||||
cursor_border = "#aaaaaa"
|
||||
cursor_fg = "#111111"
|
||||
foreground = "#828282"
|
||||
selection_bg = "#828282"
|
||||
selection_fg = "#111111"
|
||||
|
||||
[metadata]
|
||||
name = "Noctalia"
|
||||
@@ -1,31 +0,0 @@
|
||||
[colors]
|
||||
ansi = [
|
||||
"#e8e8e8",
|
||||
"#222222",
|
||||
"#333333",
|
||||
"#555555",
|
||||
"#505058",
|
||||
"#222222",
|
||||
"#333333",
|
||||
"#696969",
|
||||
]
|
||||
background = "#d4d4d4"
|
||||
brights = [
|
||||
"#c3c3c3",
|
||||
"#222222",
|
||||
"#333333",
|
||||
"#555555",
|
||||
"#505058",
|
||||
"#222222",
|
||||
"#333333",
|
||||
"#000000",
|
||||
]
|
||||
cursor_bg = "#555555"
|
||||
cursor_border = "#555555"
|
||||
cursor_fg = "#d4d4d4"
|
||||
foreground = "#696969"
|
||||
selection_bg = "#696969"
|
||||
selection_fg = "#d4d4d4"
|
||||
|
||||
[metadata]
|
||||
name = "Noctalia"
|
||||
@@ -1,38 +0,0 @@
|
||||
{
|
||||
"dark": {
|
||||
"mPrimary": "#c7a1d8",
|
||||
"mOnPrimary": "#1a151f",
|
||||
"mSecondary": "#a984c4",
|
||||
"mOnSecondary": "#f3edf7",
|
||||
"mTertiary": "#e0b7c9",
|
||||
"mOnTertiary": "#20161f",
|
||||
"mError": "#e9899d",
|
||||
"mOnError": "#1e1418",
|
||||
"mSurface": "#1c1822",
|
||||
"mOnSurface": "#e9e4f0",
|
||||
"mSurfaceVariant": "#262130",
|
||||
"mOnSurfaceVariant": "#a79ab0",
|
||||
"mOutline": "#3e364e",
|
||||
"mShadow": "#120f18",
|
||||
"mHover": "#e0b7c9",
|
||||
"mOnHover": "#20161f"
|
||||
},
|
||||
"light": {
|
||||
"mPrimary": "#9b59ba",
|
||||
"mOnPrimary": "#ffffff",
|
||||
"mSecondary": "#784999",
|
||||
"mOnSecondary": "#ffffff",
|
||||
"mTertiary": "#c17093",
|
||||
"mOnTertiary": "#ffffff",
|
||||
"mError": "#e9899d",
|
||||
"mOnError": "#1e1418",
|
||||
"mSurface": "#f5f1fa",
|
||||
"mOnSurface": "#1c1822",
|
||||
"mSurfaceVariant": "#e7dfee",
|
||||
"mOnSurfaceVariant": "#4a3d59",
|
||||
"mOutline": "#cebedc",
|
||||
"mShadow": "#ffffff",
|
||||
"mHover": "#c17093",
|
||||
"mOnHover": "#ffffff"
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
# Colors (Noctalia Legacy)
|
||||
|
||||
[colors.bright]
|
||||
black = '#3e364e'
|
||||
blue = '#a984c4'
|
||||
cyan = '#e0b7c9'
|
||||
green = '#e0b7c9'
|
||||
magenta = '#e9899d'
|
||||
red = '#e9899d'
|
||||
white = '#ffffff'
|
||||
yellow = '#c7a1d8'
|
||||
|
||||
[colors.cursor]
|
||||
cursor = '#c7a1d8'
|
||||
text = '#1c1822'
|
||||
|
||||
[colors.normal]
|
||||
black = '#262130'
|
||||
blue = '#a984c4'
|
||||
cyan = '#e0b7c9'
|
||||
green = '#e0b7c9'
|
||||
magenta = '#e9899d'
|
||||
red = '#e9899d'
|
||||
white = '#e9e4f0'
|
||||
yellow = '#c7a1d8'
|
||||
|
||||
[colors.primary]
|
||||
background = '#1c1822'
|
||||
foreground = '#e9e4f0'
|
||||
|
||||
[colors.selection]
|
||||
background = '#e9e4f0'
|
||||
text = '#1c1822'
|
||||
@@ -1,33 +0,0 @@
|
||||
# Colors (Noctalia Legacy Light)
|
||||
|
||||
[colors.bright]
|
||||
black = '#cebedc'
|
||||
blue = '#784999'
|
||||
cyan = '#c17093'
|
||||
green = '#c17093'
|
||||
magenta = '#e9899d'
|
||||
red = '#e9899d'
|
||||
white = '#1c1822'
|
||||
yellow = '#9b59ba'
|
||||
|
||||
[colors.cursor]
|
||||
cursor = '#9b59ba'
|
||||
text = '#f5f1fa'
|
||||
|
||||
[colors.normal]
|
||||
black = '#e7dfee'
|
||||
blue = '#784999'
|
||||
cyan = '#c17093'
|
||||
green = '#c17093'
|
||||
magenta = '#e9899d'
|
||||
red = '#e9899d'
|
||||
white = '#1c1822'
|
||||
yellow = '#9b59ba'
|
||||
|
||||
[colors.primary]
|
||||
background = '#f5f1fa'
|
||||
foreground = '#1c1822'
|
||||
|
||||
[colors.selection]
|
||||
background = '#1c1822'
|
||||
text = '#f5f1fa'
|
||||
@@ -1,22 +0,0 @@
|
||||
[colors]
|
||||
foreground=e9e4f0
|
||||
background=1c1822
|
||||
regular0=262130
|
||||
regular1=e9899d
|
||||
regular2=e0b7c9
|
||||
regular3=c7a1d8
|
||||
regular4=a984c4
|
||||
regular5=e9899d
|
||||
regular6=e0b7c9
|
||||
regular7=e9e4f0
|
||||
bright0=3e364e
|
||||
bright1=e9899d
|
||||
bright2=e0b7c9
|
||||
bright3=c7a1d8
|
||||
bright4=a984c4
|
||||
bright5=e9899d
|
||||
bright6=e0b7c9
|
||||
bright7=ffffff
|
||||
selection-foreground=1c1822
|
||||
selection-background=e9e4f0
|
||||
cursor=1c1822 c7a1d8
|
||||
@@ -1,22 +0,0 @@
|
||||
[colors]
|
||||
foreground=1c1822
|
||||
background=f5f1fa
|
||||
regular0=e7dfee
|
||||
regular1=e9899d
|
||||
regular2=c17093
|
||||
regular3=9b59ba
|
||||
regular4=784999
|
||||
regular5=e9899d
|
||||
regular6=c17093
|
||||
regular7=1c1822
|
||||
bright0=cebedc
|
||||
bright1=e9899d
|
||||
bright2=c17093
|
||||
bright3=9b59ba
|
||||
bright4=784999
|
||||
bright5=e9899d
|
||||
bright6=c17093
|
||||
bright7=1c1822
|
||||
selection-foreground=f5f1fa
|
||||
selection-background=1c1822
|
||||
cursor=f5f1fa 9b59ba
|
||||
@@ -1,22 +0,0 @@
|
||||
palette = 0=#262130
|
||||
palette = 1=#e9899d
|
||||
palette = 2=#e0b7c9
|
||||
palette = 3=#c7a1d8
|
||||
palette = 4=#a984c4
|
||||
palette = 5=#e9899d
|
||||
palette = 6=#e0b7c9
|
||||
palette = 7=#e9e4f0
|
||||
palette = 8=#3e364e
|
||||
palette = 9=#e9899d
|
||||
palette = 10=#e0b7c9
|
||||
palette = 11=#c7a1d8
|
||||
palette = 12=#a984c4
|
||||
palette = 13=#e9899d
|
||||
palette = 14=#e0b7c9
|
||||
palette = 15=#ffffff
|
||||
background = #1c1822
|
||||
foreground = #e9e4f0
|
||||
cursor-color = #c7a1d8
|
||||
cursor-text = #1c1822
|
||||
selection-background = #e9e4f0
|
||||
selection-foreground = #1c1822
|
||||
@@ -1,22 +0,0 @@
|
||||
palette = 0=#e7dfee
|
||||
palette = 1=#e9899d
|
||||
palette = 2=#c17093
|
||||
palette = 3=#9b59ba
|
||||
palette = 4=#784999
|
||||
palette = 5=#e9899d
|
||||
palette = 6=#c17093
|
||||
palette = 7=#1c1822
|
||||
palette = 8=#cebedc
|
||||
palette = 9=#e9899d
|
||||
palette = 10=#c17093
|
||||
palette = 11=#9b59ba
|
||||
palette = 12=#784999
|
||||
palette = 13=#e9899d
|
||||
palette = 14=#c17093
|
||||
palette = 15=#1c1822
|
||||
background = #f5f1fa
|
||||
foreground = #1c1822
|
||||
cursor-color = #9b59ba
|
||||
cursor-text = #f5f1fa
|
||||
selection-background = #1c1822
|
||||
selection-foreground = #f5f1fa
|
||||
@@ -1,22 +0,0 @@
|
||||
color0 #262130
|
||||
color1 #e9899d
|
||||
color2 #e0b7c9
|
||||
color3 #c7a1d8
|
||||
color4 #a984c4
|
||||
color5 #e9899d
|
||||
color6 #e0b7c9
|
||||
color7 #e9e4f0
|
||||
color8 #3e364e
|
||||
color9 #e9899d
|
||||
color10 #e0b7c9
|
||||
color11 #c7a1d8
|
||||
color12 #a984c4
|
||||
color13 #e9899d
|
||||
color14 #e0b7c9
|
||||
color15 #ffffff
|
||||
background #1c1822
|
||||
selection_foreground #1c1822
|
||||
cursor #c7a1d8
|
||||
cursor_text_color #1c1822
|
||||
foreground #e9e4f0
|
||||
selection_background #e9e4f0
|
||||
@@ -1,22 +0,0 @@
|
||||
color0 #e7dfee
|
||||
color1 #e9899d
|
||||
color2 #c17093
|
||||
color3 #9b59ba
|
||||
color4 #784999
|
||||
color5 #e9899d
|
||||
color6 #c17093
|
||||
color7 #1c1822
|
||||
color8 #cebedc
|
||||
color9 #e9899d
|
||||
color10 #c17093
|
||||
color11 #9b59ba
|
||||
color12 #784999
|
||||
color13 #e9899d
|
||||
color14 #c17093
|
||||
color15 #1c1822
|
||||
background #f5f1fa
|
||||
selection_foreground #f5f1fa
|
||||
cursor #9b59ba
|
||||
cursor_text_color #f5f1fa
|
||||
foreground #1c1822
|
||||
selection_background #1c1822
|
||||
@@ -1,31 +0,0 @@
|
||||
[colors]
|
||||
ansi = [
|
||||
"#262130",
|
||||
"#e9899d",
|
||||
"#e0b7c9",
|
||||
"#c7a1d8",
|
||||
"#a984c4",
|
||||
"#e9899d",
|
||||
"#e0b7c9",
|
||||
"#e9e4f0",
|
||||
]
|
||||
background = "#1c1822"
|
||||
brights = [
|
||||
"#3e364e",
|
||||
"#e9899d",
|
||||
"#e0b7c9",
|
||||
"#c7a1d8",
|
||||
"#a984c4",
|
||||
"#e9899d",
|
||||
"#e0b7c9",
|
||||
"#ffffff",
|
||||
]
|
||||
cursor_bg = "#c7a1d8"
|
||||
cursor_border = "#c7a1d8"
|
||||
cursor_fg = "#1c1822"
|
||||
foreground = "#e9e4f0"
|
||||
selection_bg = "#e9e4f0"
|
||||
selection_fg = "#1c1822"
|
||||
|
||||
[metadata]
|
||||
name = "Noctalia"
|
||||
@@ -1,31 +0,0 @@
|
||||
[colors]
|
||||
ansi = [
|
||||
"#e7dfee",
|
||||
"#e9899d",
|
||||
"#c17093",
|
||||
"#9b59ba",
|
||||
"#784999",
|
||||
"#e9899d",
|
||||
"#c17093",
|
||||
"#1c1822",
|
||||
]
|
||||
background = "#f5f1fa"
|
||||
brights = [
|
||||
"#cebedc",
|
||||
"#e9899d",
|
||||
"#c17093",
|
||||
"#9b59ba",
|
||||
"#784999",
|
||||
"#e9899d",
|
||||
"#c17093",
|
||||
"#1c1822",
|
||||
]
|
||||
cursor_bg = "#9b59ba"
|
||||
cursor_border = "#9b59ba"
|
||||
cursor_fg = "#f5f1fa"
|
||||
foreground = "#1c1822"
|
||||
selection_bg = "#1c1822"
|
||||
selection_fg = "#f5f1fa"
|
||||
|
||||
[metadata]
|
||||
name = "Noctalia"
|
||||
@@ -1,38 +0,0 @@
|
||||
{
|
||||
"dark": {
|
||||
"mPrimary": "#1E9177",
|
||||
"mOnPrimary": "#B8C8C4",
|
||||
"mSecondary": "#167A63",
|
||||
"mOnSecondary": "#B8C8C4",
|
||||
"mTertiary": "#26A589",
|
||||
"mOnTertiary": "#B8C8C4",
|
||||
"mError": "#933636",
|
||||
"mOnError": "#B8C8C4",
|
||||
"mSurface": "#081512",
|
||||
"mOnSurface": "#A6B5B1",
|
||||
"mSurfaceVariant": "#0F251F",
|
||||
"mOnSurfaceVariant": "#99A8A4",
|
||||
"mOutline": "#1B6352",
|
||||
"mShadow": "#040A09",
|
||||
"mHover": "#26A589",
|
||||
"mOnHover": "#B8C8C4"
|
||||
},
|
||||
"light": {
|
||||
"mPrimary": "#3B7561",
|
||||
"mOnPrimary": "#D8E5DB",
|
||||
"mSecondary": "#526E4A",
|
||||
"mOnSecondary": "#D8E5DB",
|
||||
"mTertiary": "#4A8069",
|
||||
"mOnTertiary": "#D8E5DB",
|
||||
"mError": "#854145",
|
||||
"mOnError": "#D8E5DB",
|
||||
"mSurface": "#AEC2B4",
|
||||
"mOnSurface": "#2C3D35",
|
||||
"mSurfaceVariant": "#95AD9C",
|
||||
"mOnSurfaceVariant": "#263731",
|
||||
"mOutline": "#5C7A6A",
|
||||
"mShadow": "#8A9E90",
|
||||
"mHover": "#4A8069",
|
||||
"mOnHover": "#D8E5DB"
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
# Colors (Osaka Jade)
|
||||
|
||||
[colors.bright]
|
||||
black = '#464e50'
|
||||
blue = '#71baf2'
|
||||
cyan = '#67cbe7'
|
||||
green = '#96d988'
|
||||
magenta = '#ce89df'
|
||||
red = '#ef7e7e'
|
||||
white = '#bdc3c2'
|
||||
yellow = '#f4d67a'
|
||||
|
||||
[colors.cursor]
|
||||
cursor = '#dadada'
|
||||
text = '#141b1e'
|
||||
|
||||
[colors.normal]
|
||||
black = '#232a2d'
|
||||
blue = '#67b0e8'
|
||||
cyan = '#6cbfbf'
|
||||
green = '#8ccf7e'
|
||||
magenta = '#c47fd5'
|
||||
red = '#e57474'
|
||||
white = '#b3b9b8'
|
||||
yellow = '#e5c76b'
|
||||
|
||||
[colors.primary]
|
||||
background = '#141b1e'
|
||||
foreground = '#dadada'
|
||||
|
||||
[colors.selection]
|
||||
background = '#141b1e'
|
||||
text = '#dadada'
|
||||
@@ -1,33 +0,0 @@
|
||||
# Colors (Osaka Jade Light)
|
||||
|
||||
[colors.bright]
|
||||
black = '#a6b0a0'
|
||||
blue = '#3a94c5'
|
||||
cyan = '#35a77c'
|
||||
green = '#8da101'
|
||||
magenta = '#df69ba'
|
||||
red = '#f85552'
|
||||
white = '#fffbef'
|
||||
yellow = '#dfa000'
|
||||
|
||||
[colors.cursor]
|
||||
cursor = '#f57d26'
|
||||
text = '#eaedc8'
|
||||
|
||||
[colors.normal]
|
||||
black = '#7a8478'
|
||||
blue = '#7fbbb3'
|
||||
cyan = '#83c092'
|
||||
green = '#9ab373'
|
||||
magenta = '#d699b6'
|
||||
red = '#e67e80'
|
||||
white = '#b2af9f'
|
||||
yellow = '#c1a266'
|
||||
|
||||
[colors.primary]
|
||||
background = '#efebd4'
|
||||
foreground = '#5c6a72'
|
||||
|
||||
[colors.selection]
|
||||
background = '#eaedc8'
|
||||
text = '#5c6a72'
|
||||
@@ -1,25 +0,0 @@
|
||||
|
||||
[cursor]
|
||||
color=141b1e dadada
|
||||
|
||||
[colors]
|
||||
foreground=dadada
|
||||
background=141b1e
|
||||
regular0=232a2d
|
||||
regular1=e57474
|
||||
regular2=8ccf7e
|
||||
regular3=e5c76b
|
||||
regular4=67b0e8
|
||||
regular5=c47fd5
|
||||
regular6=6cbfbf
|
||||
regular7=b3b9b8
|
||||
bright0=464e50
|
||||
bright1=ef7e7e
|
||||
bright2=96d988
|
||||
bright3=f4d67a
|
||||
bright4=71baf2
|
||||
bright5=ce89df
|
||||
bright6=67cbe7
|
||||
bright7=bdc3c2
|
||||
selection-foreground=dadada
|
||||
selection-background=141b1e
|
||||
@@ -1,22 +0,0 @@
|
||||
[colors]
|
||||
foreground=5c6a72
|
||||
background=efebd4
|
||||
regular0=7a8478
|
||||
regular1=e67e80
|
||||
regular2=9ab373
|
||||
regular3=c1a266
|
||||
regular4=7fbbb3
|
||||
regular5=d699b6
|
||||
regular6=83c092
|
||||
regular7=b2af9f
|
||||
bright0=a6b0a0
|
||||
bright1=f85552
|
||||
bright2=8da101
|
||||
bright3=dfa000
|
||||
bright4=3a94c5
|
||||
bright5=df69ba
|
||||
bright6=35a77c
|
||||
bright7=fffbef
|
||||
selection-foreground=5c6a72
|
||||
selection-background=eaedc8
|
||||
cursor=eaedc8 f57d26
|
||||
@@ -1,22 +0,0 @@
|
||||
palette = 0=#232a2d
|
||||
palette = 1=#e57474
|
||||
palette = 2=#8ccf7e
|
||||
palette = 3=#e5c76b
|
||||
palette = 4=#67b0e8
|
||||
palette = 5=#c47fd5
|
||||
palette = 6=#6cbfbf
|
||||
palette = 7=#b3b9b8
|
||||
palette = 8=#464e50
|
||||
palette = 9=#ef7e7e
|
||||
palette = 10=#96d988
|
||||
palette = 11=#f4d67a
|
||||
palette = 12=#71baf2
|
||||
palette = 13=#ce89df
|
||||
palette = 14=#67cbe7
|
||||
palette = 15=#bdc3c2
|
||||
background = #141b1e
|
||||
foreground = #dadada
|
||||
cursor-color = #dadada
|
||||
cursor-text = #141b1e
|
||||
selection-background = #141b1e
|
||||
selection-foreground = #dadada
|
||||
@@ -1,22 +0,0 @@
|
||||
palette = 0=#7a8478
|
||||
palette = 1=#e67e80
|
||||
palette = 2=#9ab373
|
||||
palette = 3=#c1a266
|
||||
palette = 4=#7fbbb3
|
||||
palette = 5=#d699b6
|
||||
palette = 6=#83c092
|
||||
palette = 7=#b2af9f
|
||||
palette = 8=#a6b0a0
|
||||
palette = 9=#f85552
|
||||
palette = 10=#8da101
|
||||
palette = 11=#dfa000
|
||||
palette = 12=#3a94c5
|
||||
palette = 13=#df69ba
|
||||
palette = 14=#35a77c
|
||||
palette = 15=#fffbef
|
||||
background = #efebd4
|
||||
foreground = #5c6a72
|
||||
cursor-color = #f57d26
|
||||
cursor-text = #eaedc8
|
||||
selection-background = #eaedc8
|
||||
selection-foreground = #5c6a72
|
||||
@@ -1,22 +0,0 @@
|
||||
color0 #232a2d
|
||||
color1 #e57474
|
||||
color2 #8ccf7e
|
||||
color3 #e5c76b
|
||||
color4 #67b0e8
|
||||
color5 #c47fd5
|
||||
color6 #6cbfbf
|
||||
color7 #b3b9b8
|
||||
color8 #464e50
|
||||
color9 #ef7e7e
|
||||
color10 #96d988
|
||||
color11 #f4d67a
|
||||
color12 #71baf2
|
||||
color13 #ce89df
|
||||
color14 #67cbe7
|
||||
color15 #bdc3c2
|
||||
background #141b1e
|
||||
selection_foreground #141b1e
|
||||
cursor #dadada
|
||||
cursor_text_color #141b1e
|
||||
foreground #dadada
|
||||
selection_background #dadada
|
||||
@@ -1,22 +0,0 @@
|
||||
color0 #7a8478
|
||||
color1 #e67e80
|
||||
color2 #9ab373
|
||||
color3 #c1a266
|
||||
color4 #7fbbb3
|
||||
color5 #d699b6
|
||||
color6 #83c092
|
||||
color7 #b2af9f
|
||||
color8 #a6b0a0
|
||||
color9 #f85552
|
||||
color10 #8da101
|
||||
color11 #dfa000
|
||||
color12 #3a94c5
|
||||
color13 #df69ba
|
||||
color14 #35a77c
|
||||
color15 #fffbef
|
||||
background #efebd4
|
||||
selection_foreground #efebd4
|
||||
cursor #f57d26
|
||||
cursor_text_color #eaedc8
|
||||
foreground #5c6a72
|
||||
selection_background #5c6a72
|
||||
@@ -1,31 +0,0 @@
|
||||
[colors]
|
||||
ansi = [
|
||||
"#232a2d",
|
||||
"#e57474",
|
||||
"#8ccf7e",
|
||||
"#e5c76b",
|
||||
"#67b0e8",
|
||||
"#c47fd5",
|
||||
"#6cbfbf",
|
||||
"#b3b9b8",
|
||||
]
|
||||
background = "#141b1e"
|
||||
brights = [
|
||||
"#464e50",
|
||||
"#ef7e7e",
|
||||
"#96d988",
|
||||
"#f4d67a",
|
||||
"#71baf2",
|
||||
"#ce89df",
|
||||
"#67cbe7",
|
||||
"#bdc3c2",
|
||||
]
|
||||
cursor_bg = "#dadada"
|
||||
cursor_border = "#dadada"
|
||||
cursor_fg = "#141b1e"
|
||||
foreground = "#dadada"
|
||||
selection_bg = "#dadada"
|
||||
selection_fg = "#141b1e"
|
||||
|
||||
[metadata]
|
||||
name = "Noctalia"
|
||||
@@ -1,32 +0,0 @@
|
||||
[colors]
|
||||
ansi = [
|
||||
"#7a8478",
|
||||
"#e67e80",
|
||||
"#9ab373",
|
||||
"#c1a266",
|
||||
"#7fbbb3",
|
||||
"#d699b6",
|
||||
"#83c092",
|
||||
"#b2af9f",
|
||||
]
|
||||
background = "#efebd4"
|
||||
brights = [
|
||||
"#a6b0a0",
|
||||
"#f85552",
|
||||
"#8da101",
|
||||
"#dfa000",
|
||||
"#3a94c5",
|
||||
"#df69ba",
|
||||
"#35a77c",
|
||||
"#fffbef",
|
||||
]
|
||||
cursor_bg = "#f57d26"
|
||||
cursor_border = "#f57d26"
|
||||
cursor_fg = "#eaedc8"
|
||||
foreground = "#5c6a72"
|
||||
selection_bg = "#5c6a72"
|
||||
selection_fg = "#efebd4"
|
||||
|
||||
[metadata]
|
||||
name = "Noctalia"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"mOnTertiary": "#e0def4",
|
||||
"mError": "#eb6f92",
|
||||
"mOnError": "#191724",
|
||||
"mSurface": "#1f1d2e",
|
||||
"mSurface": "#191724",
|
||||
"mOnSurface": "#e0def4",
|
||||
"mSurfaceVariant": "#26233a",
|
||||
"mOnSurfaceVariant": "#908caa",
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
{
|
||||
"dark": {
|
||||
"mPrimary": "#b58900",
|
||||
"mOnPrimary": "#002b36",
|
||||
"mSecondary": "#d33682",
|
||||
"mOnSecondary": "#002b36",
|
||||
"mTertiary": "#cb4b16",
|
||||
"mOnTertiary": "#002b36",
|
||||
"mError": "#dc322f",
|
||||
"mOnError": "#002b36",
|
||||
"mSurface": "#002b36",
|
||||
"mOnSurface": "#839496",
|
||||
"mSurfaceVariant": "#073642",
|
||||
"mOnSurfaceVariant": "#657b83",
|
||||
"mOutline": "#0c5c70",
|
||||
"mShadow": "#002b36",
|
||||
"mHover": "#cb4b16",
|
||||
"mOnHover": "#002b36"
|
||||
},
|
||||
"light": {
|
||||
"mPrimary": "#b58900",
|
||||
"mOnPrimary": "#fdf6e3",
|
||||
"mSecondary": "#d33682",
|
||||
"mOnSecondary": "#fdf6e3",
|
||||
"mTertiary": "#cb4b16",
|
||||
"mOnTertiary": "#fdf6e3",
|
||||
"mError": "#dc322f",
|
||||
"mOnError": "#fdf6e3",
|
||||
"mSurface": "#fdf6e3",
|
||||
"mOnSurface": "#657b83",
|
||||
"mSurfaceVariant": "#eee8d5",
|
||||
"mOnSurfaceVariant": "#839496",
|
||||
"mOutline": "#dfd4b1",
|
||||
"mShadow": "#eee8d5",
|
||||
"mHover": "#cb4b16",
|
||||
"mOnHover": "#fdf6e3"
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
# Colors (Solarized Dark)
|
||||
|
||||
[colors.bright]
|
||||
black = '#335e69'
|
||||
blue = '#839496'
|
||||
cyan = '#93a1a1'
|
||||
green = '#586e75'
|
||||
magenta = '#6c71c4'
|
||||
red = '#cb4b16'
|
||||
white = '#fdf6e3'
|
||||
yellow = '#657b83'
|
||||
|
||||
[colors.cursor]
|
||||
cursor = '#839496'
|
||||
text = '#073642'
|
||||
|
||||
[colors.normal]
|
||||
black = '#073642'
|
||||
blue = '#268bd2'
|
||||
cyan = '#2aa198'
|
||||
green = '#859900'
|
||||
magenta = '#d33682'
|
||||
red = '#dc322f'
|
||||
white = '#eee8d5'
|
||||
yellow = '#b58900'
|
||||
|
||||
[colors.primary]
|
||||
background = '#002b36'
|
||||
foreground = '#839496'
|
||||
|
||||
[colors.selection]
|
||||
background = '#073642'
|
||||
text = '#93a1a1'
|
||||
@@ -1,33 +0,0 @@
|
||||
# Colors (Solarized Light)
|
||||
|
||||
[colors.bright]
|
||||
black = '#002b36'
|
||||
blue = '#839496'
|
||||
cyan = '#93a1a1'
|
||||
green = '#586e75'
|
||||
magenta = '#6c71c4'
|
||||
red = '#cb4b16'
|
||||
white = '#fdf6e3'
|
||||
yellow = '#657b83'
|
||||
|
||||
[colors.cursor]
|
||||
cursor = '#657b83'
|
||||
text = '#eee8d5'
|
||||
|
||||
[colors.normal]
|
||||
black = '#073642'
|
||||
blue = '#268bd2'
|
||||
cyan = '#2aa198'
|
||||
green = '#859900'
|
||||
magenta = '#d33682'
|
||||
red = '#dc322f'
|
||||
white = '#bbb5a2'
|
||||
yellow = '#b58900'
|
||||
|
||||
[colors.primary]
|
||||
background = '#fdf6e3'
|
||||
foreground = '#657b83'
|
||||
|
||||
[colors.selection]
|
||||
background = '#eee8d5'
|
||||
text = '#586e75'
|
||||
@@ -1,22 +0,0 @@
|
||||
[colors]
|
||||
foreground=839496
|
||||
background=002b36
|
||||
regular0=073642
|
||||
regular1=dc322f
|
||||
regular2=859900
|
||||
regular3=b58900
|
||||
regular4=268bd2
|
||||
regular5=d33682
|
||||
regular6=2aa198
|
||||
regular7=eee8d5
|
||||
bright0=335e69
|
||||
bright1=cb4b16
|
||||
bright2=586e75
|
||||
bright3=657b83
|
||||
bright4=839496
|
||||
bright5=6c71c4
|
||||
bright6=93a1a1
|
||||
bright7=fdf6e3
|
||||
selection-foreground=93a1a1
|
||||
selection-background=073642
|
||||
cursor=073642 839496
|
||||
@@ -1,23 +0,0 @@
|
||||
|
||||
[colors]
|
||||
foreground=657b83
|
||||
background=fdf6e3
|
||||
regular0=073642
|
||||
regular1=dc322f
|
||||
regular2=859900
|
||||
regular3=b58900
|
||||
regular4=268bd2
|
||||
regular5=d33682
|
||||
regular6=2aa198
|
||||
regular7=bbb5a2
|
||||
bright0=002b36
|
||||
bright1=cb4b16
|
||||
bright2=586e75
|
||||
bright3=657b83
|
||||
bright4=839496
|
||||
bright5=6c71c4
|
||||
bright6=93a1a1
|
||||
bright7=fdf6e3
|
||||
selection-foreground=586e75
|
||||
selection-background=eee8d5
|
||||
cursor=eee8d5 657b83
|
||||
@@ -1,22 +0,0 @@
|
||||
palette = 0=#073642
|
||||
palette = 1=#dc322f
|
||||
palette = 2=#859900
|
||||
palette = 3=#b58900
|
||||
palette = 4=#268bd2
|
||||
palette = 5=#d33682
|
||||
palette = 6=#2aa198
|
||||
palette = 7=#eee8d5
|
||||
palette = 8=#335e69
|
||||
palette = 9=#cb4b16
|
||||
palette = 10=#586e75
|
||||
palette = 11=#657b83
|
||||
palette = 12=#839496
|
||||
palette = 13=#6c71c4
|
||||
palette = 14=#93a1a1
|
||||
palette = 15=#fdf6e3
|
||||
background = #002b36
|
||||
foreground = #839496
|
||||
cursor-color = #839496
|
||||
cursor-text = #073642
|
||||
selection-background = #073642
|
||||
selection-foreground = #93a1a1
|
||||
@@ -1,22 +0,0 @@
|
||||
palette = 0=#073642
|
||||
palette = 1=#dc322f
|
||||
palette = 2=#859900
|
||||
palette = 3=#b58900
|
||||
palette = 4=#268bd2
|
||||
palette = 5=#d33682
|
||||
palette = 6=#2aa198
|
||||
palette = 7=#bbb5a2
|
||||
palette = 8=#002b36
|
||||
palette = 9=#cb4b16
|
||||
palette = 10=#586e75
|
||||
palette = 11=#657b83
|
||||
palette = 12=#839496
|
||||
palette = 13=#6c71c4
|
||||
palette = 14=#93a1a1
|
||||
palette = 15=#fdf6e3
|
||||
background = #fdf6e3
|
||||
foreground = #657b83
|
||||
cursor-color = #657b83
|
||||
cursor-text = #eee8d5
|
||||
selection-background = #eee8d5
|
||||
selection-foreground = #586e75
|
||||
@@ -1,22 +0,0 @@
|
||||
color0 #073642
|
||||
color1 #dc322f
|
||||
color2 #859900
|
||||
color3 #b58900
|
||||
color4 #268bd2
|
||||
color5 #d33682
|
||||
color6 #2aa198
|
||||
color7 #eee8d5
|
||||
color8 #335e69
|
||||
color9 #cb4b16
|
||||
color10 #586e75
|
||||
color11 #657b83
|
||||
color12 #839496
|
||||
color13 #6c71c4
|
||||
color14 #93a1a1
|
||||
color15 #fdf6e3
|
||||
background #002b36
|
||||
selection_foreground #002b36
|
||||
cursor #839496
|
||||
cursor_text_color #073642
|
||||
foreground #839496
|
||||
selection_background #839496
|
||||
@@ -1,22 +0,0 @@
|
||||
color0 #073642
|
||||
color1 #dc322f
|
||||
color2 #859900
|
||||
color3 #b58900
|
||||
color4 #268bd2
|
||||
color5 #d33682
|
||||
color6 #2aa198
|
||||
color7 #bbb5a2
|
||||
color8 #002b36
|
||||
color9 #cb4b16
|
||||
color10 #586e75
|
||||
color11 #657b83
|
||||
color12 #839496
|
||||
color13 #6c71c4
|
||||
color14 #93a1a1
|
||||
color15 #fdf6e3
|
||||
background #fdf6e3
|
||||
selection_foreground #fdf6e3
|
||||
cursor #657b83
|
||||
cursor_text_color #eee8d5
|
||||
foreground #657b83
|
||||
selection_background #657b83
|
||||
@@ -1,29 +0,0 @@
|
||||
[colors]
|
||||
ansi = [
|
||||
"#002b36",
|
||||
"#dc322f",
|
||||
"#859900",
|
||||
"#b58900",
|
||||
"#268bd2",
|
||||
"#6c71c4",
|
||||
"#2aa198",
|
||||
"#93a1a1",
|
||||
]
|
||||
background = "#002b36"
|
||||
brights = [
|
||||
"#657b83",
|
||||
"#dc322f",
|
||||
"#859900",
|
||||
"#b58900",
|
||||
"#268bd2",
|
||||
"#6c71c4",
|
||||
"#2aa198",
|
||||
"#fdf6e3",
|
||||
]
|
||||
foreground = "#93a1a1"
|
||||
|
||||
[colors.indexed]
|
||||
|
||||
[metadata]
|
||||
author = "Chris Kempson"
|
||||
name = "Noctalia"
|
||||
@@ -1,30 +0,0 @@
|
||||
[colors]
|
||||
ansi = [
|
||||
"#002b36",
|
||||
"#dc322f",
|
||||
"#859900",
|
||||
"#b58900",
|
||||
"#268bd2",
|
||||
"#6c71c4",
|
||||
"#2aa198",
|
||||
"#93a1a1",
|
||||
]
|
||||
background = "#fdf6e3"
|
||||
brights = [
|
||||
"#657b83",
|
||||
"#dc322f",
|
||||
"#859900",
|
||||
"#b58900",
|
||||
"#268bd2",
|
||||
"#6c71c4",
|
||||
"#2aa198",
|
||||
"#fdf6e3",
|
||||
]
|
||||
foreground = "#586e75"
|
||||
|
||||
[colors.indexed]
|
||||
|
||||
[metadata]
|
||||
author = "Chris Kempson"
|
||||
name = "Noctalia"
|
||||
|
||||
139
Assets/MatugenTemplates/telegram.tdesktop-theme
Normal file
139
Assets/MatugenTemplates/telegram.tdesktop-theme
Normal file
@@ -0,0 +1,139 @@
|
||||
// Material You theme for Telegram Desktop
|
||||
// Generated by matugen
|
||||
|
||||
COLOR_GRAY: {{colors.outline.default.hex}};
|
||||
COLOR_DARK: {{colors.surface_variant.default.hex}};
|
||||
|
||||
windowBg: {{colors.background.default.hex}}; // Main background
|
||||
windowFg: {{colors.on_background.default.hex}}; // Main text
|
||||
windowBgOver: {{colors.surface_variant.default.hex}}; // Generic background on hover
|
||||
windowBgRipple: {{colors.surface_variant.default.hex}}; // Ripple effect
|
||||
windowFgOver: {{colors.on_surface_variant.default.hex}}; // Text on hover
|
||||
windowSubTextFg: {{colors.outline.default.hex}}; // Minor text
|
||||
windowSubTextFgOver: {{colors.outline.default.hex}}; // Minor text on hover
|
||||
windowBoldFg: {{colors.on_background.default.hex}}; // Bold text
|
||||
windowBoldFgOver: {{colors.on_surface_variant.default.hex}}; // Bold text on hover
|
||||
windowBgActive: {{colors.primary.default.hex}}; // Active items background
|
||||
windowFgActive: {{colors.on_primary.default.hex}}; // Active items text
|
||||
windowActiveTextFg: {{colors.primary.default.hex}}; // Active items text
|
||||
windowShadowFg: {{colors.shadow.default.hex}}; // Window shadow
|
||||
windowShadowFgFallback: {{colors.shadow.default.hex}}; // Fallback for shadow
|
||||
historyOutIconFg: {{colors.primary.default.hex}};
|
||||
historyIconFgInverted: {{colors.on_surface.default.hex}};
|
||||
|
||||
msgServiceBg: {{colors.primary_container.default.hex}};
|
||||
msgServiceFg: {{colors.on_surface.default.hex}};
|
||||
msgOutBg: {{colors.primary_container.default.hex}};
|
||||
msgOutBgSelected : {{colors.tertiary_container.default.hex}};
|
||||
msgOutServiceFg: {{colors.on_surface.default.hex}};
|
||||
msgOutDateFg: {{colors.on_surface.default.hex}};
|
||||
historySentIconFg: {{colors.on_surface.default.hex}};
|
||||
msgOutDateFgSelected: {{colors.on_surface.default.hex}};
|
||||
msgDateImgFg: {{colors.on_surface.default.hex}};
|
||||
dialogsSentIconFg: {{colors.primary.default.hex}};
|
||||
dialogsSentIconFgOver: {{colors.primary.default.hex}};
|
||||
dialogsOnlineBadgeFg: {{colors.primary.default.hex}};
|
||||
|
||||
|
||||
shadowFg: {{colors.shadow.default.hex}}; // General shadow
|
||||
slideFadeOutBg: {{colors.background.default.hex}};
|
||||
slideFadeOutShadowFg: {{colors.shadow.default.hex}};
|
||||
|
||||
imageBg: {{colors.surface.default.hex}};
|
||||
imageBgTransparent: {{colors.surface.default.hex}};
|
||||
|
||||
activeButtonBg: {{colors.primary.default.hex}}; // Active button background
|
||||
activeButtonBgOver: {{colors.primary_container.default.hex}}; // Active button hover background
|
||||
activeButtonBgRipple: {{colors.on_primary_container.default.hex}}; // Active button ripple
|
||||
activeButtonFg: {{colors.on_primary.default.hex}}; // Active button text
|
||||
activeButtonFgOver: {{colors.on_primary_container.default.hex}}; // Active button hover text
|
||||
activeButtonSecondaryFg: {{colors.on_primary.default.hex}}; // Active button secondary text
|
||||
activeButtonSecondaryFgOver: {{colors.on_primary_container.default.hex}}; // Active button secondary hover text
|
||||
activeLineFg: {{colors.on_surface.default.hex}};
|
||||
dialogsBgActive: {{colors.primary.default.hex}};
|
||||
|
||||
lightButtonBg: {{colors.surface.default.hex}}; // Light button background
|
||||
lightButtonBgOver: {{colors.surface_variant.default.hex}}; // Light button hover background
|
||||
lightButtonBgRipple: {{colors.primary.default.hex}}; // Light button ripple
|
||||
lightButtonFg: {{colors.on_surface.default.hex}}; // Light button text
|
||||
lightButtonFgOver: {{colors.on_surface_variant.default.hex}}; // Light button hover text
|
||||
|
||||
attentionButtonFg: {{colors.error.default.hex}};
|
||||
attentionButtonFgOver: {{colors.error.default.hex}};
|
||||
attentionButtonBgOver: {{colors.error_container.default.hex}};
|
||||
attentionButtonBgRipple: {{colors.on_error_container.default.hex}};
|
||||
|
||||
outlineButtonBg: {{colors.surface.default.hex}}; // Outline button background
|
||||
outlineButtonBgOver: {{colors.surface_variant.default.hex}}; // Outline button hover background
|
||||
outlineButtonOutlineFg: {{colors.primary.default.hex}}; // Outline button color
|
||||
outlineButtonBgRipple: {{colors.primary.default.hex}}; // Outline button ripple
|
||||
|
||||
menuBg: {{colors.surface.default.hex}};
|
||||
menuBgOver: {{colors.surface_variant.default.hex}};
|
||||
menuBgRipple: {{colors.primary.default.hex}};
|
||||
menuIconFg: {{colors.on_surface.default.hex}};
|
||||
menuIconFgOver: {{colors.on_surface_variant.default.hex}};
|
||||
menuSubmenuArrowFg: {{colors.outline.default.hex}};
|
||||
menuFgDisabled: {{colors.outline.default.hex}};
|
||||
menuSeparatorFg: {{colors.outline.default.hex}};
|
||||
|
||||
scrollBarBg: {{colors.primary.default.hex}}40; // Scroll bar background (40% opacity)
|
||||
scrollBarBgOver: {{colors.primary.default.hex}}60; // Scroll bar hover background (60% opacity)
|
||||
scrollBg: {{colors.surface_variant.default.hex}}40; // Scroll bar track (40% opacity)
|
||||
scrollBgOver: {{colors.surface_variant.default.hex}}60; // Scroll bar track on hover (60% opacity)
|
||||
|
||||
smallCloseIconFg: {{colors.outline.default.hex}};
|
||||
smallCloseIconFgOver: {{colors.on_surface_variant.default.hex}};
|
||||
|
||||
radialFg: {{colors.primary.default.hex}};
|
||||
radialBg: {{colors.surface.default.hex}};
|
||||
|
||||
placeholderFg: {{colors.outline.default.hex}}; // Placeholder text
|
||||
placeholderFgActive: {{colors.primary.default.hex}}; // Active placeholder text
|
||||
inputBorderFg: {{colors.outline.default.hex}}; // Input border
|
||||
filterInputBorderFg: {{colors.outline.default.hex}}; // Search input border
|
||||
filterInputInactiveBg: {{colors.surface.default.hex}}; // Inactive search input background
|
||||
checkboxFg: {{colors.primary.default.hex}}; // Checkbox color
|
||||
|
||||
titleBg: {{colors.surface.default.hex}}; // Window title background
|
||||
titleShadow: {{colors.shadow.default.hex}};
|
||||
titleButtonFg: {{colors.on_surface.default.hex}}; // Title button color
|
||||
titleButtonBgOver: {{colors.surface_variant.default.hex}}; // Title button hover background
|
||||
titleButtonFgOver: {{colors.on_surface_variant.default.hex}}; // Title button hover color
|
||||
titleButtonCloseBgOver: {{colors.error.default.hex}};
|
||||
titleButtonCloseFgOver: {{colors.on_error.default.hex}};
|
||||
titleFgActive: {{colors.on_surface.default.hex}}; // Active title text
|
||||
titleFg: {{colors.on_surface.default.hex}}; // Inactive title text
|
||||
|
||||
trayCounterBg: {{colors.error.default.hex}}; // Tray counter background
|
||||
trayCounterBgMute: {{colors.outline.default.hex}}; // Muted tray counter background
|
||||
trayCounterFg: {{colors.on_error.default.hex}}; // Tray counter text
|
||||
trayCounterBgMacInvert: {{colors.error.default.hex}}; // Mac tray counter
|
||||
trayCounterFgMacInvert: {{colors.on_error.default.hex}}; // Mac tray counter text
|
||||
|
||||
layerBg: {{colors.surface.default.hex}}99; // Layer background (60% opacity)
|
||||
|
||||
cancelIconFg: {{colors.error.default.hex}}; // Cancel icon
|
||||
cancelIconFgOver: {{colors.error.default.hex}}; // Cancel icon on hover
|
||||
|
||||
boxBg: {{colors.surface.default.hex}}; // Box background
|
||||
boxTextFg: {{colors.on_surface.default.hex}}; // Box text
|
||||
boxTextFgGood: {{colors.primary.default.hex}}; // Box good text
|
||||
boxTextFgError: {{colors.error.default.hex}}; // Box error text
|
||||
boxTitleFg: {{colors.on_surface.default.hex}}; // Box title text
|
||||
boxSearchBg: {{colors.surface.default.hex}}; // Box search field background
|
||||
boxSearchCancelIconFg: {{colors.error.default.hex}}; // Box search cancel icon
|
||||
boxSearchCancelIconFgOver: {{colors.error.default.hex}}; // Box search cancel icon on hover
|
||||
|
||||
contactsBg: {{colors.surface.default.hex}}; // Contacts background
|
||||
contactsBgOver: {{colors.surface_variant.default.hex}}; // Contacts background on hover
|
||||
contactsNameFg: {{colors.on_surface.default.hex}}; // Contact name
|
||||
contactsStatusFg: {{colors.outline.default.hex}}; // Contact status
|
||||
contactsStatusFgOver: {{colors.on_surface_variant.default.hex}}; // Contact status on hover
|
||||
contactsStatusFgOnline: {{colors.primary.default.hex}}; // Online contact status
|
||||
|
||||
photoCropFadeBg: {{colors.surface.default.hex}}cc; // Photo crop fade background
|
||||
photoCropPointFg: {{colors.primary.default.hex}}; // Photo crop points
|
||||
|
||||
chat_inBubbleSelected: #313244; // inbox selected chat background
|
||||
chat_outBubbleSelected: #313244; // outbox selected chat background
|
||||
@@ -253,4 +253,4 @@ div[class*="linkCalloutContainer"]:hover > span[class*="semibold"],
|
||||
div[class*="linkCalloutContainer"]:hover > span[data-text-variant*="semibold"] {
|
||||
color: var(--accent-1) !important;
|
||||
opacity: 1 !important;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
[Unit]
|
||||
Description=Noctalia Shell Service
|
||||
Requisite=graphical-session.target
|
||||
PartOf=graphical-session.target
|
||||
BindsTo=graphical-session.target
|
||||
After=graphical-session.target
|
||||
|
||||
[Service]
|
||||
@@ -10,4 +9,4 @@ Restart=on-failure
|
||||
RestartSec=1
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical-session.target
|
||||
WantedBy=graphical-session.target
|
||||
@@ -123,10 +123,6 @@
|
||||
"stream-description": "Geben Sie einen Befehl ein, der kontinuierlich ausgeführt werden soll."
|
||||
},
|
||||
"dynamic-text": "Dynamischer Text",
|
||||
"hide-vertical": {
|
||||
"description": "Wenn aktiviert, wird der Text aus der Befehlsausgabe nicht angezeigt, wenn sich die Leiste in einem vertikalen Layout befindet (links oder rechts).",
|
||||
"label": "Text in vertikaler Leiste ausblenden"
|
||||
},
|
||||
"icon": {
|
||||
"description": "Symbol aus der Bibliothek auswählen.",
|
||||
"label": "Symbol"
|
||||
@@ -136,6 +132,14 @@
|
||||
"label": "Linksklick",
|
||||
"update-text": "Text auf Linksklick aktualisieren"
|
||||
},
|
||||
"max-text-length-horizontal": {
|
||||
"description": "Maximale Anzahl an Zeichen, die in horizontaler Leiste angezeigt werden (0 zum Ausblenden des Textes)",
|
||||
"label": "Max. Textlänge (horizontal)"
|
||||
},
|
||||
"max-text-length-vertical": {
|
||||
"description": "Maximale Anzahl an Zeichen, die in vertikaler Leiste angezeigt werden (0 zum Ausblenden des Textes)",
|
||||
"label": "Max. Textlänge (vertikal)"
|
||||
},
|
||||
"middle-click": {
|
||||
"description": "Befehl, der ausgeführt wird, wenn die Schaltfläche mit der mittleren Maustaste angeklickt wird.",
|
||||
"label": "Mittelklick",
|
||||
@@ -157,6 +161,23 @@
|
||||
"text-stream": {
|
||||
"description": "Gestreamte Zeilen aus dem Befehl werden als Text auf der Schaltfläche angezeigt.",
|
||||
"label": "Stream"
|
||||
},
|
||||
"wheel": {
|
||||
"description": "Befehl, der bei Verwendung des Scrollrads ausgeführt wird.\nVerwenden Sie $delta für die Scrollrad-Delta im Befehl",
|
||||
"label": "Scrollrad",
|
||||
"update-text": "Anzeigetext beim Scrollen aktualisieren"
|
||||
},
|
||||
"wheel-down": {
|
||||
"description": "Befehl, der ausgeführt wird, wenn das Scrollrad heruntergescrollt wird.",
|
||||
"label": "Scrollrad runter Befehl"
|
||||
},
|
||||
"wheel-mode-separate": {
|
||||
"description": "Separate Befehle für Scrollrad hoch und runter aktivieren",
|
||||
"label": "Separate Scrollrad-Befehle"
|
||||
},
|
||||
"wheel-up": {
|
||||
"description": "Befehl, der ausgeführt wird, wenn das Scrollrad hochgescrollt wird.",
|
||||
"label": "Scrollrad hoch Befehl"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
@@ -202,6 +223,10 @@
|
||||
"description": "Albumcover des aktuell abgespielten Tracks anzeigen.",
|
||||
"label": "Albumcover anzeigen"
|
||||
},
|
||||
"show-artist-first": {
|
||||
"description": "Künstler - Titel anstatt Titel - Künstler anzeigen.",
|
||||
"label": "Künstler zuerst anzeigen"
|
||||
},
|
||||
"show-visualizer": {
|
||||
"description": "Audio-Visualizer anzeigen, wenn Musik abgespielt wird.",
|
||||
"label": "Visualizer anzeigen"
|
||||
@@ -259,6 +284,10 @@
|
||||
"disk-critical-threshold": {
|
||||
"label": "Storage Space (Critical)"
|
||||
},
|
||||
"disk-path": {
|
||||
"description": "Wählen Sie den Festplatten-Mountpunkt aus, der überwacht werden soll.",
|
||||
"label": "Festplattenpfad"
|
||||
},
|
||||
"disk-warning-threshold": {
|
||||
"label": "Storage Space (Warning)"
|
||||
},
|
||||
@@ -314,13 +343,9 @@
|
||||
}
|
||||
},
|
||||
"taskbar-grouped": {
|
||||
"show-numbers-only-when-occupied": {
|
||||
"description": "Arbeitsbereichsnummern nur für Arbeitsbereiche mit geöffneten Fenstern anzeigen.",
|
||||
"label": "Nur bei belegten Arbeitsbereichen anzeigen"
|
||||
},
|
||||
"show-workspace-numbers": {
|
||||
"description": "Arbeitsbereichsnummern in der oberen linken Ecke der Task-Gruppen anzeigen.",
|
||||
"label": "Arbeitsbereichsnummern anzeigen"
|
||||
"show-labels-only-when-occupied": {
|
||||
"description": "Zeige nur die Workspace-Bezeichnung für Workspaces an, die offene Fenster haben.",
|
||||
"label": "Zeige Label nur bei Belegung"
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
@@ -363,13 +388,6 @@
|
||||
"health": "Zustand: {percent}%",
|
||||
"idle": "Leerlauf.",
|
||||
"no-battery-detected": "Keine Batterie erkannt.",
|
||||
"panel": {
|
||||
"balanced": "Ausgeglichen ({percent}%)",
|
||||
"disabled": "Batteriemanager deaktiviert",
|
||||
"full": "Volle Kapazität ({percent}%)",
|
||||
"lifespan": "Verlängerte Lebensdauer ({percent}%)",
|
||||
"title": "Ladeschwelle"
|
||||
},
|
||||
"plugged-in": "Angeschlossen.",
|
||||
"time-left": "Verbleibende Zeit: {time}.",
|
||||
"time-until-full": "Zeit bis vollständig geladen: {time}."
|
||||
@@ -398,9 +416,61 @@
|
||||
"loading": "Wetter wird geladen…"
|
||||
}
|
||||
},
|
||||
"changelog": {
|
||||
"error": {
|
||||
"fetch-failed": "Changelog-Daten konnten nicht geladen werden. Bitte versuche es später erneut.",
|
||||
"rate-limit": "GitHub-Limit erreicht. Bitte versuche es in ein paar Minuten erneut."
|
||||
},
|
||||
"panel": {
|
||||
"buttons": {
|
||||
"discord": "Unserem Discord beitreten",
|
||||
"dismiss": "Ok"
|
||||
},
|
||||
"empty": "Es sind noch keine Versionshinweise verfügbar.",
|
||||
"highlight-title": "Highlights",
|
||||
"section": {
|
||||
"released": "Veröffentlicht am {date}",
|
||||
"version": "Version {version}"
|
||||
},
|
||||
"subtitle": {
|
||||
"fresh": "Danke, dass du Noctalia installiert hast! Das ist in diesem Build enthalten.",
|
||||
"updated": "Aktualisiert von {previousVersion}"
|
||||
},
|
||||
"title": "Was ist neu in {version}",
|
||||
"version": {
|
||||
"new-user": "Neuinstallation"
|
||||
}
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"tooltip": "Kalender öffnen"
|
||||
},
|
||||
"context-menu": {
|
||||
"activate-app": "{app} aktivieren",
|
||||
"clear-history": "Verlauf löschen",
|
||||
"close-app": "{app} schließen",
|
||||
"connect-vpn": "Mit {name} verbinden",
|
||||
"cycle-visualizer": "Zyklus-Visualisierer",
|
||||
"disable-bluetooth": "Bluetooth deaktivieren",
|
||||
"disable-dnd": "Bitte nicht stören deaktivieren",
|
||||
"disable-wifi": "WLAN deaktivieren",
|
||||
"disconnect-vpn": "Verbindung zu {name} trennen",
|
||||
"enable-bluetooth": "Bluetooth aktivieren",
|
||||
"enable-dnd": "Nicht stören aktivieren",
|
||||
"enable-wifi": "WLAN aktivieren",
|
||||
"next": "Nächste/r/s",
|
||||
"open-calendar": "Kalender öffnen",
|
||||
"open-display-settings": "Anzeigeeinstellungen",
|
||||
"open-launcher": "Launcher öffnen",
|
||||
"open-mixer": "Audiomischer",
|
||||
"open-settings": "Einstellungen öffnen",
|
||||
"pause": "Pause",
|
||||
"play": "Spielen",
|
||||
"previous": "Vorherige",
|
||||
"random-wallpaper": "Zufälliges Hintergrundbild",
|
||||
"toggle-mute": "Stummschaltung umschalten",
|
||||
"widget-settings": "Widget-Einstellungen"
|
||||
},
|
||||
"dock": {
|
||||
"menu": {
|
||||
"close": "Schließen",
|
||||
@@ -564,6 +634,7 @@
|
||||
},
|
||||
"workspace-labels": {
|
||||
"index": "Index",
|
||||
"index+name": "Index und Name",
|
||||
"name": "Name",
|
||||
"none": "Keine"
|
||||
}
|
||||
@@ -579,8 +650,8 @@
|
||||
"search": "Suchen...",
|
||||
"search-icons": "z.B. noctalia, niri, battery, cloud",
|
||||
"search-launcher": "Einträge suchen... oder > für Befehle verwenden",
|
||||
"search-wallpapers": "Zum Filtern von Hintergrundbildern eingeben...",
|
||||
"search-wallhaven": "Wallhaven durchsuchen...",
|
||||
"search-wallpapers": "Zum Filtern von Hintergrundbildern eingeben...",
|
||||
"select": "Auswählen",
|
||||
"test": "Test"
|
||||
},
|
||||
@@ -721,6 +792,11 @@
|
||||
"label": "Audio-Geräte"
|
||||
}
|
||||
},
|
||||
"external-mixer": {
|
||||
"description": "Geben Sie den Befehl oder den Anwendungspfad ein, der beim Aktivieren der externen Audiomixer-Funktion gestartet werden soll.",
|
||||
"label": "Externer Audio-Mixer-Befehl",
|
||||
"placeholder": "pwvucontrol || pavucontrol"
|
||||
},
|
||||
"media": {
|
||||
"excluded-player": {
|
||||
"description": "Stichwörter für Player hinzufügen, die das System ignorieren soll. Jedes Stichwort sollte in einer neuen Zeile stehen.",
|
||||
@@ -795,6 +871,10 @@
|
||||
"description": "Hintergrund-Transparenz der Statusleiste anpassen.",
|
||||
"label": "Hintergrund-Transparenz"
|
||||
},
|
||||
"capsule-opacity": {
|
||||
"description": "Deckkraft der Widget-Hintergründe festlegen, wenn Kapsel angezeigt wird.",
|
||||
"label": "Kapsel-Deckkraft"
|
||||
},
|
||||
"density": {
|
||||
"description": "Innenabstand der Statusleiste für kompaktes oder geräumiges Aussehen anpassen.",
|
||||
"label": "Statusleistendichte"
|
||||
@@ -887,6 +967,41 @@
|
||||
"label": "Dunkler Modus"
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"error": {
|
||||
"description": "Fehler beim Löschen von {scheme}",
|
||||
"title": "Löschen fehlgeschlagen"
|
||||
},
|
||||
"success": {
|
||||
"description": "{scheme} wurde erfolgreich gelöscht",
|
||||
"title": "Farbschema gelöscht"
|
||||
}
|
||||
},
|
||||
"download": {
|
||||
"button": "Mehr herunterladen",
|
||||
"delete": "Löschen",
|
||||
"download": "Herunterladen",
|
||||
"downloading": "Wird heruntergeladen...",
|
||||
"empty": "Keine Farbschemata verfügbar",
|
||||
"error": {
|
||||
"api-error": "API-Fehler: {status}",
|
||||
"description": "Fehler beim Herunterladen von {scheme}",
|
||||
"download-failed": "Download fehlgeschlagen mit Exit-Code: {code}",
|
||||
"invalid-response": "Ungültiges API-Antwortformat",
|
||||
"no-files": "Keine Dateien für Schema gefunden",
|
||||
"parse-failed": "Fehler beim Parsen der API-Antwort: {error}",
|
||||
"rate-limit": "GitHub API-Ratenlimit überschritten",
|
||||
"title": "Download fehlgeschlagen"
|
||||
},
|
||||
"fetching": "Verfügbare Farbschemata werden abgerufen...",
|
||||
"installed": "Installiert",
|
||||
"refresh": "Aktualisieren",
|
||||
"success": {
|
||||
"description": "{scheme} wurde erfolgreich heruntergeladen",
|
||||
"title": "Farbschema heruntergeladen"
|
||||
},
|
||||
"title": "Farbschemata herunterladen"
|
||||
},
|
||||
"predefined": {
|
||||
"generate-templates": {
|
||||
"description": "Generiert Matugen-Templates (GTK, Terminal-Themes, etc.) bei der Verwendung vordefinierter Farbschemata.",
|
||||
@@ -926,7 +1041,11 @@
|
||||
"description-missing": "Erfordert die Installation von {app}"
|
||||
},
|
||||
"spicetify": {
|
||||
"description": "Schreibe {Dateipfad}. Das Comfy-Theme muss manuell installiert und aktiviert werden",
|
||||
"description": "Schreibe {filepath}. Das Comfy-Theme muss manuell installiert und aktiviert werden",
|
||||
"description-missing": "Benötigt die Installation von {app}"
|
||||
},
|
||||
"telegram": {
|
||||
"description": "Schreibe {filepath}.",
|
||||
"description-missing": "Benötigt die Installation von {app}"
|
||||
},
|
||||
"vicinae": {
|
||||
@@ -1125,6 +1244,10 @@
|
||||
"description": "Hintergrund-Transparenz des Docks anpassen.",
|
||||
"label": "Hintergrund-Transparenz"
|
||||
},
|
||||
"border-radius": {
|
||||
"description": "Den Radius der Dock-Umrandung anpassen.",
|
||||
"label": "Eckenradius"
|
||||
},
|
||||
"colorize-icons": {
|
||||
"description": "Theme-Farben auf Dock-App-Symbole anwenden (nur nicht fokussierte Apps).",
|
||||
"label": "Symbole einfärben"
|
||||
@@ -1276,6 +1399,10 @@
|
||||
"description": "Hintergrund-Transparenz des Starters anpassen.",
|
||||
"label": "Hintergrund-Transparenz"
|
||||
},
|
||||
"clip-preview": {
|
||||
"description": "Zeigt eine Vorschau des Inhalts der Zwischenablage an, wenn der Befehl >clip verwendet wird.",
|
||||
"label": "Clip-Vorschau aktivieren"
|
||||
},
|
||||
"clipboard-history": {
|
||||
"description": "Zugriff auf zuvor kopierte Elemente über den Launcher.",
|
||||
"label": "Zwischenablageverlauf aktivieren"
|
||||
@@ -1364,6 +1491,10 @@
|
||||
"description": "Bevorzugte Temperatureinheit wählen.",
|
||||
"label": "Wetter"
|
||||
},
|
||||
"show-effects": {
|
||||
"description": "Zeigt zusätzliche visuelle Effekte (wie Regen, Schnee oder Blitze) auf der Wetterkarte an.",
|
||||
"label": "Wettereffekte anzeigen"
|
||||
},
|
||||
"show-in-calendar": {
|
||||
"description": "Zeige die tägliche Wettervorhersage direkt in deiner Kalenderansicht an.",
|
||||
"label": "Wetter im Kalender anzeigen"
|
||||
@@ -1379,6 +1510,10 @@
|
||||
"description": "Den Bildschirm beim Suspendieren des Systems automatisch sperren.",
|
||||
"label": "Sperren beim Ruhezustand"
|
||||
},
|
||||
"show-hibernate": {
|
||||
"description": "Die Option 'Ruhezustand' in den Energieaktionen anzeigen.",
|
||||
"label": "Ruhezustand anzeigen"
|
||||
},
|
||||
"title": "Sperrbildschirm"
|
||||
},
|
||||
"network": {
|
||||
@@ -1663,6 +1798,10 @@
|
||||
}
|
||||
},
|
||||
"user-interface": {
|
||||
"allow-panels-without-bar": {
|
||||
"description": "Wenn aktiviert, können sich Panels auf jedem Bildschirm öffnen. Wenn deaktiviert, öffnen sich Panels nur auf Bildschirmen mit einer Leiste, was den Speicherverbrauch reduzieren kann.",
|
||||
"label": "Paneele auf Bildschirmen ohne Leiste zulassen"
|
||||
},
|
||||
"animation-disable": {
|
||||
"description": "Deaktivieren Sie alle Animationen für eine schnellere und reaktionsfreudigere Erfahrung.",
|
||||
"label": "UI-Animationen deaktivieren"
|
||||
@@ -1870,19 +2009,6 @@
|
||||
"low": "Niedriger Batteriestand",
|
||||
"low-desc": "Batterie ist bei {percent}%. Bitte schließen Sie das Ladegerät an."
|
||||
},
|
||||
"battery-manager": {
|
||||
"initial-setup": "Ersteinrichtung erforderlich",
|
||||
"install-failed": "Installation fehlgeschlagen",
|
||||
"install-missing": "Erforderliche Dateien fehlen",
|
||||
"install-success": "Erfolgreich installiert",
|
||||
"install-unsupported": "System wird nicht unterstützt",
|
||||
"set-failed": "Fehler beim Setzen der Batterieschwelle",
|
||||
"set-success-desc": "Batterieschwelle auf {percent}% gesetzt",
|
||||
"title": "Batterieschwelle",
|
||||
"uninstall-failed": "Deinstallation fehlgeschlagen",
|
||||
"uninstall-setup": "Deinstallation, Authentifizierung erforderlich",
|
||||
"uninstall-success": "Erfolgreich deinstalliert"
|
||||
},
|
||||
"bluetooth": {
|
||||
"disabled": "Deaktiviert",
|
||||
"enabled": "Aktiviert"
|
||||
@@ -1951,6 +2077,10 @@
|
||||
"title-matugen": "Matugen-Templating-Verarbeitung fehlgeschlagen",
|
||||
"title-predefined": "Die Verarbeitung des vordefinierten Farbschemas ist fehlgeschlagen."
|
||||
},
|
||||
"vpn": {
|
||||
"connected": "Verbunden mit '{name}'",
|
||||
"disconnected": "Verbindung zu '{name}' getrennt"
|
||||
},
|
||||
"wallpaper-colors": {
|
||||
"disabled": "Hintergrundbild-Farben deaktiviert",
|
||||
"enabled": "Hintergrundbild-Farben aktiviert",
|
||||
@@ -1984,6 +2114,7 @@
|
||||
"input-muted": "Audio-Eingabe stummschalten",
|
||||
"keep-awake": "Wach halten",
|
||||
"keyboard-layout": "{layout} Tastaturlayout",
|
||||
"manage-vpn": "VPN-Verbindungen verwalten",
|
||||
"manage-wifi": "WLAN verwalten",
|
||||
"microphone-volume-at": "Mikrofonlautstärke bei {volume}%.\nLinksklick für Einstellungen. Rechtsklick zum Stummschalten.\nScrollen zum Ändern der Lautstärke.",
|
||||
"move-to-center-section": "Zur mittleren Sektion verschieben",
|
||||
@@ -2047,6 +2178,11 @@
|
||||
"label": "Kategorien",
|
||||
"people": "Personen"
|
||||
},
|
||||
"order": {
|
||||
"asc": "Aufsteigend",
|
||||
"desc": "Absteigend",
|
||||
"label": "Reihenfolge"
|
||||
},
|
||||
"purity": {
|
||||
"all": "Alle",
|
||||
"label": "Inhaltsfilter",
|
||||
@@ -2071,21 +2207,16 @@
|
||||
"toplist": "Topliste",
|
||||
"views": "Aufrufe"
|
||||
},
|
||||
"order": {
|
||||
"asc": "Aufsteigend",
|
||||
"desc": "Absteigend",
|
||||
"label": "Reihenfolge"
|
||||
},
|
||||
"wallhaven-settings": {
|
||||
"apply": "Anwenden",
|
||||
"title": "Wallhaven-Einstellungen"
|
||||
},
|
||||
"source": {
|
||||
"label": "Quelle",
|
||||
"local": "Lokal",
|
||||
"wallhaven": "Wallhaven"
|
||||
},
|
||||
"title": "Hintergrundbild-Auswahl"
|
||||
"title": "Hintergrundbild-Auswahl",
|
||||
"wallhaven-settings": {
|
||||
"apply": "Anwenden",
|
||||
"title": "Wallhaven-Einstellungen"
|
||||
}
|
||||
},
|
||||
"transitions": {
|
||||
"disc": "Scheibe",
|
||||
@@ -2096,10 +2227,11 @@
|
||||
"wipe": "Wischen"
|
||||
},
|
||||
"try-different-search": "Versuchen Sie eine andere Suchanfrage.",
|
||||
"unknown": "Unbekannt",
|
||||
"wallhaven": {
|
||||
"loading": "Hintergrundbilder werden geladen...",
|
||||
"no-results": "Keine Hintergrundbilder gefunden. Versuchen Sie eine andere Suchanfrage.",
|
||||
"page": "Seite {current} von {total}"
|
||||
"page": "{current} von {total}"
|
||||
}
|
||||
},
|
||||
"weather": {
|
||||
@@ -2209,6 +2341,7 @@
|
||||
},
|
||||
"wifi": {
|
||||
"panel": {
|
||||
"available-networks": "Verfügbare Netzwerke",
|
||||
"connect": "Verbinden",
|
||||
"connected": "Verbunden",
|
||||
"disabled": "WLAN ist deaktiviert",
|
||||
@@ -2219,6 +2352,7 @@
|
||||
"forget": "Vergessen",
|
||||
"forget-network": "Dieses Netzwerk vergessen?",
|
||||
"forgetting": "Wird vergessen...",
|
||||
"known-networks": "Bekannte Netzwerke",
|
||||
"no-networks": "Keine Netzwerke gefunden",
|
||||
"password": "Passwort",
|
||||
"saved": "Gespeichert",
|
||||
|
||||
@@ -123,10 +123,6 @@
|
||||
"stream-description": "Enter a command to run continuously."
|
||||
},
|
||||
"dynamic-text": "Dynamic text",
|
||||
"hide-vertical": {
|
||||
"description": "If enabled, the text from the command output will not be shown when the bar is in a vertical layout (left or right).",
|
||||
"label": "Hide text in vertical bar"
|
||||
},
|
||||
"icon": {
|
||||
"description": "Select an icon from the library.",
|
||||
"label": "Icon"
|
||||
@@ -136,6 +132,14 @@
|
||||
"label": "Left click",
|
||||
"update-text": "Update displayed text on left-click"
|
||||
},
|
||||
"max-text-length-horizontal": {
|
||||
"description": "Maximum number of characters to show in horizontal bar (0 to hide text)",
|
||||
"label": "Max text length (horizontal)"
|
||||
},
|
||||
"max-text-length-vertical": {
|
||||
"description": "Maximum number of characters to show in vertical bar (0 to hide text)",
|
||||
"label": "Max text length (vertical)"
|
||||
},
|
||||
"middle-click": {
|
||||
"description": "Command to execute when the button is middle-clicked.",
|
||||
"label": "Middle click",
|
||||
@@ -157,6 +161,23 @@
|
||||
"text-stream": {
|
||||
"description": "Streamed lines from the command will be displayed as text on the button.",
|
||||
"label": "Stream"
|
||||
},
|
||||
"wheel": {
|
||||
"description": "Command to execute when the scroll wheel is used.\nUse $delta for the scroll wheel delta in the command",
|
||||
"label": "Scroll wheel",
|
||||
"update-text": "Update displayed text on scroll"
|
||||
},
|
||||
"wheel-down": {
|
||||
"description": "Command to execute when the scroll wheel is scrolled down.",
|
||||
"label": "Wheel down command"
|
||||
},
|
||||
"wheel-mode-separate": {
|
||||
"description": "Enable separate commands for wheel up and down",
|
||||
"label": "Separate wheel commands"
|
||||
},
|
||||
"wheel-up": {
|
||||
"description": "Command to execute when the scroll wheel is scrolled up.",
|
||||
"label": "Wheel up command"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
@@ -202,6 +223,10 @@
|
||||
"description": "Display the album artwork for the currently playing track.",
|
||||
"label": "Show album art"
|
||||
},
|
||||
"show-artist-first": {
|
||||
"description": "Display artist - title instead of title - artist.",
|
||||
"label": "Show artist first"
|
||||
},
|
||||
"show-visualizer": {
|
||||
"description": "Display an audio visualizer when music is playing.",
|
||||
"label": "Show visualizer"
|
||||
@@ -259,6 +284,10 @@
|
||||
"disk-critical-threshold": {
|
||||
"label": "Storage Space (Critical)"
|
||||
},
|
||||
"disk-path": {
|
||||
"description": "Select which disk mount point to monitor.",
|
||||
"label": "Disk path"
|
||||
},
|
||||
"disk-warning-threshold": {
|
||||
"label": "Storage Space (Warning)"
|
||||
},
|
||||
@@ -314,13 +343,9 @@
|
||||
}
|
||||
},
|
||||
"taskbar-grouped": {
|
||||
"show-numbers-only-when-occupied": {
|
||||
"description": "Only show workspace numbers for workspaces that have open windows.",
|
||||
"label": "Show numbers only when occupied"
|
||||
},
|
||||
"show-workspace-numbers": {
|
||||
"description": "Display workspace numbers in the top-left corner of task groups.",
|
||||
"label": "Show workspace numbers"
|
||||
"show-labels-only-when-occupied": {
|
||||
"description": "Only show workspace label for workspaces that have open windows.",
|
||||
"label": "Show label only when occupied"
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
@@ -356,23 +381,16 @@
|
||||
}
|
||||
},
|
||||
"battery": {
|
||||
"charging": "Charging.",
|
||||
"charging-rate": "Charging rate: {rate} W.",
|
||||
"discharging": "Discharging.",
|
||||
"discharging-rate": "Discharging rate: {rate} W.",
|
||||
"charging": "Charging",
|
||||
"charging-rate": "Charging rate: {rate} W",
|
||||
"discharging": "Discharging",
|
||||
"discharging-rate": "Discharging rate: {rate} W",
|
||||
"health": "Health: {percent}%",
|
||||
"idle": "Idle.",
|
||||
"no-battery-detected": "No battery detected.",
|
||||
"panel": {
|
||||
"balanced": "Balanced ({percent}%)",
|
||||
"disabled": "Battery manager disabled",
|
||||
"full": "Full capacity ({percent}%)",
|
||||
"lifespan": "Extended lifespan ({percent}%)",
|
||||
"title": "Charge threshold"
|
||||
},
|
||||
"plugged-in": "Plugged in.",
|
||||
"time-left": "Time left: {time}.",
|
||||
"time-until-full": "Time until full: {time}."
|
||||
"idle": "Idle",
|
||||
"no-battery-detected": "No battery detected",
|
||||
"plugged-in": "Plugged in",
|
||||
"time-left": "Time left: {time}",
|
||||
"time-until-full": "Time until full: {time}"
|
||||
},
|
||||
"bluetooth": {
|
||||
"panel": {
|
||||
@@ -398,9 +416,61 @@
|
||||
"loading": "Loading weather…"
|
||||
}
|
||||
},
|
||||
"changelog": {
|
||||
"error": {
|
||||
"fetch-failed": "Unable to load changelog data. Please try again later.",
|
||||
"rate-limit": "GitHub rate limit exceeded. Please try again in a few minutes."
|
||||
},
|
||||
"panel": {
|
||||
"buttons": {
|
||||
"discord": "Join our Discord",
|
||||
"dismiss": "Ok"
|
||||
},
|
||||
"empty": "Release notes are not available yet.",
|
||||
"highlight-title": "Highlights",
|
||||
"section": {
|
||||
"released": "Released on {date}",
|
||||
"version": "Version {version}"
|
||||
},
|
||||
"subtitle": {
|
||||
"fresh": "Thanks for installing Noctalia! Here is what’s included in this build.",
|
||||
"updated": "Updated from {previousVersion}"
|
||||
},
|
||||
"title": "What's new in {version}",
|
||||
"version": {
|
||||
"new-user": "Fresh install"
|
||||
}
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"tooltip": "Open calendar"
|
||||
},
|
||||
"context-menu": {
|
||||
"activate-app": "Activate {app}",
|
||||
"clear-history": "Clear history",
|
||||
"close-app": "Close {app}",
|
||||
"connect-vpn": "Connect to {name}",
|
||||
"cycle-visualizer": "Cycle visualizer",
|
||||
"disable-bluetooth": "Disable Bluetooth",
|
||||
"disable-dnd": "Disable Do Not Disturb",
|
||||
"disable-wifi": "Disable Wi-Fi",
|
||||
"disconnect-vpn": "Disconnect {name}",
|
||||
"enable-bluetooth": "Enable Bluetooth",
|
||||
"enable-dnd": "Enable Do Not Disturb",
|
||||
"enable-wifi": "Enable Wi-Fi",
|
||||
"next": "Next",
|
||||
"open-calendar": "Open calendar",
|
||||
"open-display-settings": "Display settings",
|
||||
"open-launcher": "Open launcher",
|
||||
"open-mixer": "Audio mixer",
|
||||
"open-settings": "Open settings",
|
||||
"pause": "Pause",
|
||||
"play": "Play",
|
||||
"previous": "Previous",
|
||||
"random-wallpaper": "Random wallpaper",
|
||||
"toggle-mute": "Toggle mute",
|
||||
"widget-settings": "Widget settings"
|
||||
},
|
||||
"dock": {
|
||||
"menu": {
|
||||
"close": "Close",
|
||||
@@ -564,6 +634,7 @@
|
||||
},
|
||||
"workspace-labels": {
|
||||
"index": "Index",
|
||||
"index+name": "Index and Name",
|
||||
"name": "Name",
|
||||
"none": "None"
|
||||
}
|
||||
@@ -579,8 +650,8 @@
|
||||
"search": "Search...",
|
||||
"search-icons": "e.g., noctalia, niri, battery, cloud",
|
||||
"search-launcher": "Search entries... or use > for commands",
|
||||
"search-wallpapers": "Type to filter wallpapers...",
|
||||
"search-wallhaven": "Search Wallhaven...",
|
||||
"search-wallpapers": "Type to filter wallpapers...",
|
||||
"select": "Select",
|
||||
"test": "Test"
|
||||
},
|
||||
@@ -721,6 +792,11 @@
|
||||
"label": "Audio devices"
|
||||
}
|
||||
},
|
||||
"external-mixer": {
|
||||
"description": "Enter the command or application path to launch when activating the external audio mixer feature.",
|
||||
"label": "External Audio Mixer Command",
|
||||
"placeholder": "pwvucontrol || pavucontrol"
|
||||
},
|
||||
"media": {
|
||||
"excluded-player": {
|
||||
"description": "Add keywords for players you want the system to ignore. Each keyword should be on a new line.",
|
||||
@@ -795,6 +871,10 @@
|
||||
"description": "Adjust the background opacity of the bar.",
|
||||
"label": "Background opacity"
|
||||
},
|
||||
"capsule-opacity": {
|
||||
"description": "Set the opacity level for widget backgrounds when capsule is shown.",
|
||||
"label": "Capsule opacity"
|
||||
},
|
||||
"density": {
|
||||
"description": "Adjust the bar's padding for a compact or spacious look.",
|
||||
"label": "Bar density"
|
||||
@@ -887,6 +967,41 @@
|
||||
"label": "Dark mode"
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"error": {
|
||||
"description": "Failed to delete {scheme}",
|
||||
"title": "Delete Failed"
|
||||
},
|
||||
"success": {
|
||||
"description": "Successfully deleted {scheme}",
|
||||
"title": "Color Scheme Deleted"
|
||||
}
|
||||
},
|
||||
"download": {
|
||||
"button": "Download more",
|
||||
"delete": "Delete",
|
||||
"download": "Download",
|
||||
"downloading": "Downloading...",
|
||||
"empty": "No color schemes available",
|
||||
"error": {
|
||||
"api-error": "API error: {status}",
|
||||
"description": "Failed to download {scheme}",
|
||||
"download-failed": "Download failed with exit code: {code}",
|
||||
"invalid-response": "Invalid API response format",
|
||||
"no-files": "No files found for scheme",
|
||||
"parse-failed": "Failed to parse API response: {error}",
|
||||
"rate-limit": "GitHub API rate limit exceeded",
|
||||
"title": "Download Failed"
|
||||
},
|
||||
"fetching": "Fetching available color schemes...",
|
||||
"installed": "Installed",
|
||||
"refresh": "Refresh",
|
||||
"success": {
|
||||
"description": "Successfully downloaded {scheme}",
|
||||
"title": "Color Scheme Downloaded"
|
||||
},
|
||||
"title": "Download Color Schemes"
|
||||
},
|
||||
"predefined": {
|
||||
"generate-templates": {
|
||||
"description": "Generate Matugen templates (GTK, terminal themes, etc.) when using predefined color schemes.",
|
||||
@@ -929,6 +1044,10 @@
|
||||
"description": "Write {filepath}. Comfy theme needs to be installed and activated manually.",
|
||||
"description-missing": "Requires {app} to be installed"
|
||||
},
|
||||
"telegram": {
|
||||
"description": "Write {filepath}.",
|
||||
"description-missing": "Requires {app} to be installed"
|
||||
},
|
||||
"vicinae": {
|
||||
"description": "Write {filepath} and reload",
|
||||
"description-missing": "Requires {app} to be installed"
|
||||
@@ -1125,6 +1244,10 @@
|
||||
"description": "Adjust the dock's background opacity.",
|
||||
"label": "Background opacity"
|
||||
},
|
||||
"border-radius": {
|
||||
"description": "Adjust the dock's border radius.",
|
||||
"label": "Border radius"
|
||||
},
|
||||
"colorize-icons": {
|
||||
"description": "Apply theme colors to dock app icons (non-focused apps only).",
|
||||
"label": "Colorize Icons"
|
||||
@@ -1276,6 +1399,10 @@
|
||||
"description": "Adjust the background opacity of the launcher.",
|
||||
"label": "Background opacity"
|
||||
},
|
||||
"clip-preview": {
|
||||
"description": "Show a preview of the clipboard content when using the >clip command.",
|
||||
"label": "Enable clip preview"
|
||||
},
|
||||
"clipboard-history": {
|
||||
"description": "Access previously copied items from the launcher.",
|
||||
"label": "Enable clipboard history"
|
||||
@@ -1364,6 +1491,10 @@
|
||||
"description": "Choose your preferred temperature unit.",
|
||||
"label": "Weather"
|
||||
},
|
||||
"show-effects": {
|
||||
"description": "Shows additional visual effects (like rain, snow, or lightning) on the weather card.",
|
||||
"label": "Display weather effects"
|
||||
},
|
||||
"show-in-calendar": {
|
||||
"description": "Show the daily weather forecast directly in your calendar view.",
|
||||
"label": "Display weather in calendar"
|
||||
@@ -1379,6 +1510,10 @@
|
||||
"description": "Automatically lock the screen when suspending the system.",
|
||||
"label": "Lock on suspend"
|
||||
},
|
||||
"show-hibernate": {
|
||||
"description": "Show the option 'hibernate' in the energy actions.",
|
||||
"label": "Show hibernate"
|
||||
},
|
||||
"title": "Lock screen"
|
||||
},
|
||||
"network": {
|
||||
@@ -1663,6 +1798,10 @@
|
||||
}
|
||||
},
|
||||
"user-interface": {
|
||||
"allow-panels-without-bar": {
|
||||
"description": "When enabled, panels can open on any screen. When disabled, panels will only open on screens that have a bar, which can reduce memory usage.",
|
||||
"label": "Allow panels on screens without a bar"
|
||||
},
|
||||
"animation-disable": {
|
||||
"description": "Disable all animations for a faster, more responsive experience.",
|
||||
"label": "Disable UI Animations"
|
||||
@@ -1870,19 +2009,6 @@
|
||||
"low": "Low battery",
|
||||
"low-desc": "Battery is at {percent}%. Please connect the charger."
|
||||
},
|
||||
"battery-manager": {
|
||||
"initial-setup": "Initial setup required",
|
||||
"install-failed": "Installation failed",
|
||||
"install-missing": "Required files are missing",
|
||||
"install-success": "Installed successfully",
|
||||
"install-unsupported": "System is not supported",
|
||||
"set-failed": "Failed to set battery threshold",
|
||||
"set-success-desc": "Battery threshold set to {percent}%",
|
||||
"title": "Battery threshold",
|
||||
"uninstall-failed": "Uninstallation failed",
|
||||
"uninstall-setup": "Uninstalling, authentication required",
|
||||
"uninstall-success": "Uninstalled successfully"
|
||||
},
|
||||
"bluetooth": {
|
||||
"disabled": "Disabled",
|
||||
"enabled": "Enabled"
|
||||
@@ -1951,6 +2077,10 @@
|
||||
"title-matugen": "Matugen templating processing failed",
|
||||
"title-predefined": "Predefined color cheme processing failed"
|
||||
},
|
||||
"vpn": {
|
||||
"connected": "Connected to '{name}'",
|
||||
"disconnected": "Disconnected from '{name}'"
|
||||
},
|
||||
"wallpaper-colors": {
|
||||
"disabled": "Wallpaper colors disabled",
|
||||
"enabled": "Wallpaper colors enabled",
|
||||
@@ -1967,39 +2097,40 @@
|
||||
"tooltips": {
|
||||
"add-widget": "Add widget",
|
||||
"bluetooth-devices": "Bluetooth devices",
|
||||
"brightness-at": "Brightness: {brightness}%\nRight click for settings.\nScroll to modify brightness.",
|
||||
"brightness-at": "Brightness: {brightness}%\nScroll to modify brightness",
|
||||
"cancel-timer": "Cancel timer",
|
||||
"clear-history": "Clear history",
|
||||
"click-to-start-recording": "Click to start recording",
|
||||
"click-to-stop-recording": "Click to stop recording",
|
||||
"close": "Close",
|
||||
"connect-disconnect-devices": "Left click to connect. Right click to forget.",
|
||||
"connect-disconnect-devices": "Left click to connect\nRight click to forget",
|
||||
"delete-notification": "Delete notification",
|
||||
"disable-keep-awake": "Click to disable keep awake.\nScroll to adjust timeout.",
|
||||
"disable-keep-awake": "Click to disable keep awake.\nScroll to adjust timeout",
|
||||
"do-not-disturb-disabled": "'Do not disturb' disabled",
|
||||
"do-not-disturb-enabled": "'Do not disturb' enabled",
|
||||
"enable-keep-awake": "Click to enable keep awake.\nScroll to adjust timeout.",
|
||||
"enable-keep-awake": "Click to enable keep awake.\nScroll to adjust timeout",
|
||||
"forget-network": "Forget network",
|
||||
"home": "Home",
|
||||
"input-muted": "Toggle input mute",
|
||||
"keep-awake": "Keep awake",
|
||||
"keyboard-layout": "{layout} keyboard layout",
|
||||
"manage-vpn": "Manage VPN connections",
|
||||
"manage-wifi": "Manage Wi-Fi",
|
||||
"microphone-volume-at": "Microphone volume at {volume}%\nLeft click for settings. Right click to toggle mute.\nScroll to modify volume.",
|
||||
"microphone-volume-at": "Microphone volume at {volume}%\nScroll to modify volume",
|
||||
"move-to-center-section": "Move to center section",
|
||||
"move-to-left-section": "Move to left section",
|
||||
"move-to-right-section": "Move to right section",
|
||||
"next-media": "Next media",
|
||||
"next-month": "Next month",
|
||||
"night-light-disabled": "Night light is disabled.\nLeft click to cycle mode.\nRight click to access settings.",
|
||||
"night-light-enabled": "Night light is enabled.\nLeft click to cycle mode.\nRight click to access settings.",
|
||||
"night-light-forced": "Night light is forced.\nLeft click to cycle mode.\nRight click to access settings.",
|
||||
"night-light-not-installed": "Night light is not available.\nwlsunset is not installed.",
|
||||
"noctalia-performance-disabled": "Noctalia performance mode is disabled.\nLeft click to enable.",
|
||||
"noctalia-performance-enabled": "Noctalia performance mode is enabled.\nLeft click to disable.",
|
||||
"night-light-disabled": "Night light is disabled.\nLeft click to cycle mode\nRight click to access settings",
|
||||
"night-light-enabled": "Night light is enabled.\nLeft click to cycle mode\nRight click to access settings",
|
||||
"night-light-forced": "Night light is forced.\nLeft click to cycle mode\nRight click to access settings",
|
||||
"night-light-not-installed": "Night light is not available\nwlsunset is not installed",
|
||||
"noctalia-performance-disabled": "Noctalia performance mode is disabled\nLeft click to enable",
|
||||
"noctalia-performance-enabled": "Noctalia performance mode is enabled\nLeft click to disable",
|
||||
"open-control-center": "Open control center",
|
||||
"open-notification-history-disable-dnd": "Open notification history\nRight-click to disable \"Do not disturb\".",
|
||||
"open-notification-history-enable-dnd": "Open notification history\nRight-click to enable \"Do not disturb\".",
|
||||
"open-notification-history-disable-dnd": "Open notification history\nRight-click to disable \"Do not disturb\"",
|
||||
"open-notification-history-enable-dnd": "Open notification history\nRight-click to enable \"Do not disturb\"",
|
||||
"open-settings": "Open settings",
|
||||
"open-tray-dropdown": "Open tray dropdown",
|
||||
"open-wallpaper-selector": "Open wallpaper selector",
|
||||
@@ -2022,8 +2153,8 @@
|
||||
"switch-to-dark-mode": "Switch to dark mode",
|
||||
"switch-to-light-mode": "Switch to light mode",
|
||||
"up": "Up",
|
||||
"volume-at": "Output volume at {volume}%\nLeft click for settings. Right click to toggle mute.\nScroll to modify volume.",
|
||||
"wallpaper-selector": "Left click: Open wallpaper selector.\nRight click: Set random wallpaper.",
|
||||
"volume-at": "Output volume at {volume}%\nScroll to modify volume",
|
||||
"wallpaper-selector": "Left click: Open wallpaper selector.\nRight click: Set random wallpaper",
|
||||
"widget-settings": "Widget settings"
|
||||
},
|
||||
"wallpaper": {
|
||||
@@ -2047,6 +2178,11 @@
|
||||
"label": "Categories",
|
||||
"people": "People"
|
||||
},
|
||||
"order": {
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending",
|
||||
"label": "Order"
|
||||
},
|
||||
"purity": {
|
||||
"all": "All",
|
||||
"label": "Content filter",
|
||||
@@ -2071,21 +2207,16 @@
|
||||
"toplist": "Toplist",
|
||||
"views": "Views"
|
||||
},
|
||||
"order": {
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending",
|
||||
"label": "Order"
|
||||
},
|
||||
"wallhaven-settings": {
|
||||
"apply": "Apply",
|
||||
"title": "Wallhaven Settings"
|
||||
},
|
||||
"source": {
|
||||
"label": "Source",
|
||||
"local": "Local",
|
||||
"wallhaven": "Wallhaven"
|
||||
},
|
||||
"title": "Wallpaper Selector"
|
||||
"title": "Wallpaper Selector",
|
||||
"wallhaven-settings": {
|
||||
"apply": "Apply",
|
||||
"title": "Wallhaven Settings"
|
||||
}
|
||||
},
|
||||
"transitions": {
|
||||
"disc": "Disc",
|
||||
@@ -2100,7 +2231,7 @@
|
||||
"wallhaven": {
|
||||
"loading": "Loading wallpapers...",
|
||||
"no-results": "No wallpapers found. Try a different search query.",
|
||||
"page": "Page {current} of {total}"
|
||||
"page": "{current} of {total}"
|
||||
}
|
||||
},
|
||||
"weather": {
|
||||
@@ -2210,6 +2341,7 @@
|
||||
},
|
||||
"wifi": {
|
||||
"panel": {
|
||||
"available-networks": "Available Networks",
|
||||
"connect": "Connect",
|
||||
"connected": "Connected",
|
||||
"disabled": "Wi-Fi is disabled",
|
||||
@@ -2220,6 +2352,7 @@
|
||||
"forget": "Forget",
|
||||
"forget-network": "Forget this network?",
|
||||
"forgetting": "Forgetting...",
|
||||
"known-networks": "Known Networks",
|
||||
"no-networks": "No networks found",
|
||||
"password": "Password",
|
||||
"saved": "Saved",
|
||||
|
||||
@@ -123,10 +123,6 @@
|
||||
"stream-description": "Introduce un comando para ejecutar continuamente."
|
||||
},
|
||||
"dynamic-text": "Texto dinámico",
|
||||
"hide-vertical": {
|
||||
"description": "Si está activado, el texto de la salida del comando no se mostrará cuando la barra esté en un diseño vertical (izquierda o derecha).",
|
||||
"label": "Ocultar texto en barra vertical"
|
||||
},
|
||||
"icon": {
|
||||
"description": "Selecciona un icono de la biblioteca.",
|
||||
"label": "Icono"
|
||||
@@ -136,6 +132,14 @@
|
||||
"label": "Clic izquierdo",
|
||||
"update-text": "Actualizar el texto mostrado al hacer clic izquierdo"
|
||||
},
|
||||
"max-text-length-horizontal": {
|
||||
"description": "Número máximo de caracteres a mostrar en la barra horizontal (0 para ocultar el texto)",
|
||||
"label": "Longitud máxima de texto (horizontal)"
|
||||
},
|
||||
"max-text-length-vertical": {
|
||||
"description": "Número máximo de caracteres a mostrar en la barra vertical (0 para ocultar el texto)",
|
||||
"label": "Longitud máxima de texto (vertical)"
|
||||
},
|
||||
"middle-click": {
|
||||
"description": "Comando a ejecutar cuando se hace clic medio en el botón.",
|
||||
"label": "Clic medio",
|
||||
@@ -157,6 +161,23 @@
|
||||
"text-stream": {
|
||||
"description": "Las líneas transmitidas desde el comando se mostrarán como texto en el botón.",
|
||||
"label": "Transmisión"
|
||||
},
|
||||
"wheel": {
|
||||
"description": "Comando a ejecutar cuando se usa la rueda de desplazamiento.\nUsa $delta para el delta de la rueda de desplazamiento en el comando",
|
||||
"label": "Rueda de desplazamiento",
|
||||
"update-text": "Actualizar texto mostrado al desplazarse"
|
||||
},
|
||||
"wheel-down": {
|
||||
"description": "Comando a ejecutar cuando la rueda de desplazamiento se desplaza hacia abajo.",
|
||||
"label": "Comando de rueda hacia abajo"
|
||||
},
|
||||
"wheel-mode-separate": {
|
||||
"description": "Habilitar comandos separados para rueda arriba y abajo",
|
||||
"label": "Comandos de rueda separados"
|
||||
},
|
||||
"wheel-up": {
|
||||
"description": "Comando a ejecutar cuando la rueda de desplazamiento se desplaza hacia arriba.",
|
||||
"label": "Comando de rueda hacia arriba"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
@@ -202,6 +223,10 @@
|
||||
"description": "Mostrar la portada del álbum de la pista que se está reproduciendo actualmente.",
|
||||
"label": "Mostrar arte del álbum"
|
||||
},
|
||||
"show-artist-first": {
|
||||
"description": "Mostrar artista - título en lugar de título - artista.",
|
||||
"label": "Mostrar primero al artista"
|
||||
},
|
||||
"show-visualizer": {
|
||||
"description": "Mostrar un visualizador de audio cuando se reproduce música.",
|
||||
"label": "Mostrar visualizador"
|
||||
@@ -259,6 +284,10 @@
|
||||
"disk-critical-threshold": {
|
||||
"label": "Storage Space (Critical)"
|
||||
},
|
||||
"disk-path": {
|
||||
"description": "Seleccione qué punto de montaje de disco desea supervisar.",
|
||||
"label": "Ruta del disco"
|
||||
},
|
||||
"disk-warning-threshold": {
|
||||
"label": "Storage Space (Warning)"
|
||||
},
|
||||
@@ -314,13 +343,9 @@
|
||||
}
|
||||
},
|
||||
"taskbar-grouped": {
|
||||
"show-numbers-only-when-occupied": {
|
||||
"description": "Mostrar números de espacio de trabajo solo para espacios de trabajo con ventanas abiertas.",
|
||||
"label": "Mostrar números solo cuando estén ocupados"
|
||||
},
|
||||
"show-workspace-numbers": {
|
||||
"description": "Mostrar números de espacio de trabajo en la esquina superior izquierda de los grupos de tareas.",
|
||||
"label": "Mostrar números de espacio de trabajo"
|
||||
"show-labels-only-when-occupied": {
|
||||
"description": "Mostrar solo la etiqueta del espacio de trabajo para los espacios de trabajo que tienen ventanas abiertas.",
|
||||
"label": "Mostrar etiqueta solo cuando esté ocupado."
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
@@ -363,13 +388,6 @@
|
||||
"health": "Salud: {percent}%",
|
||||
"idle": "Inactivo.",
|
||||
"no-battery-detected": "No se detectó ninguna batería.",
|
||||
"panel": {
|
||||
"balanced": "Equilibrado ({percent}%)",
|
||||
"disabled": "Administrador de batería deshabilitado",
|
||||
"full": "Capacidad total ({percent}%)",
|
||||
"lifespan": "Vida útil prolongada ({percent}%)",
|
||||
"title": "Umbral de carga"
|
||||
},
|
||||
"plugged-in": "Conectado.",
|
||||
"time-left": "Tiempo restante: {time}.",
|
||||
"time-until-full": "Tiempo hasta carga completa: {time}."
|
||||
@@ -398,9 +416,61 @@
|
||||
"loading": "Cargando el clima…"
|
||||
}
|
||||
},
|
||||
"changelog": {
|
||||
"error": {
|
||||
"fetch-failed": "No se pudieron cargar los datos del registro de cambios. Inténtalo de nuevo más tarde.",
|
||||
"rate-limit": "Se alcanzó el límite de GitHub. Inténtalo de nuevo en unos minutos."
|
||||
},
|
||||
"panel": {
|
||||
"buttons": {
|
||||
"discord": "Únete a nuestro Discord",
|
||||
"dismiss": "Ok"
|
||||
},
|
||||
"empty": "Las notas de la versión aún no están disponibles.",
|
||||
"highlight-title": "Cambios destacados",
|
||||
"section": {
|
||||
"released": "Publicado el {date}",
|
||||
"version": "Versión {version}"
|
||||
},
|
||||
"subtitle": {
|
||||
"fresh": "Gracias por instalar Noctalia. Esto es lo que incluye esta compilación.",
|
||||
"updated": "Actualizado desde {previousVersion}"
|
||||
},
|
||||
"title": "Novedades en {version}",
|
||||
"version": {
|
||||
"new-user": "Instalación nueva"
|
||||
}
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"tooltip": "Abrir calendario"
|
||||
},
|
||||
"context-menu": {
|
||||
"activate-app": "Activar {app}",
|
||||
"clear-history": "Borrar historial",
|
||||
"close-app": "Cerrar {app}",
|
||||
"connect-vpn": "Conectarse a {name}",
|
||||
"cycle-visualizer": "Visualizador de ciclos",
|
||||
"disable-bluetooth": "Desactivar Bluetooth",
|
||||
"disable-dnd": "Desactivar No molestar",
|
||||
"disable-wifi": "Desactivar Wi-Fi",
|
||||
"disconnect-vpn": "Desconectar {name}",
|
||||
"enable-bluetooth": "Activar Bluetooth",
|
||||
"enable-dnd": "Activar No molestar",
|
||||
"enable-wifi": "Activar Wi-Fi",
|
||||
"next": "Siguiente",
|
||||
"open-calendar": "Abrir calendario",
|
||||
"open-display-settings": "Configuración de pantalla",
|
||||
"open-launcher": "Abrir lanzador",
|
||||
"open-mixer": "Mezclador de audio",
|
||||
"open-settings": "Abrir ajustes",
|
||||
"pause": "Pausa",
|
||||
"play": "Jugar",
|
||||
"previous": "Anterior",
|
||||
"random-wallpaper": "Fondo de pantalla aleatorio",
|
||||
"toggle-mute": "Activar/desactivar silencio",
|
||||
"widget-settings": "Configuración del widget"
|
||||
},
|
||||
"dock": {
|
||||
"menu": {
|
||||
"close": "Cerrar",
|
||||
@@ -564,6 +634,7 @@
|
||||
},
|
||||
"workspace-labels": {
|
||||
"index": "Índice",
|
||||
"index+name": "Índice y Nombre",
|
||||
"name": "Nombre",
|
||||
"none": "Ninguno"
|
||||
}
|
||||
@@ -579,8 +650,8 @@
|
||||
"search": "Buscar...",
|
||||
"search-icons": "ej., noctalia, niri, battery, cloud",
|
||||
"search-launcher": "Buscar entradas... o usa > para comandos",
|
||||
"search-wallpapers": "Escribe para filtrar fondos de pantalla...",
|
||||
"search-wallhaven": "Buscar en Wallhaven...",
|
||||
"search-wallpapers": "Escribe para filtrar fondos de pantalla...",
|
||||
"select": "Seleccionar",
|
||||
"test": "Probar"
|
||||
},
|
||||
@@ -721,6 +792,11 @@
|
||||
"label": "Dispositivos de audio"
|
||||
}
|
||||
},
|
||||
"external-mixer": {
|
||||
"description": "Ingrese el comando o la ruta de la aplicación para ejecutar al activar la función de mezclador de audio externo.",
|
||||
"label": "Comando de mezclador de audio externo",
|
||||
"placeholder": "pwvucontrol || pavucontrol"
|
||||
},
|
||||
"media": {
|
||||
"excluded-player": {
|
||||
"description": "Agrega palabras clave para los reproductores que deseas que el sistema ignore. Cada palabra clave debe estar en una línea nueva.",
|
||||
@@ -795,6 +871,10 @@
|
||||
"description": "Ajusta la opacidad del fondo de la barra.",
|
||||
"label": "Opacidad del fondo"
|
||||
},
|
||||
"capsule-opacity": {
|
||||
"description": "Establecer el nivel de opacidad para los fondos de los widgets cuando se muestra la cápsula.",
|
||||
"label": "Opacidad de la cápsula"
|
||||
},
|
||||
"density": {
|
||||
"description": "Ajusta el relleno de la barra para un aspecto compacto o espacioso.",
|
||||
"label": "Densidad de la barra"
|
||||
@@ -887,6 +967,41 @@
|
||||
"label": "Modo oscuro"
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"error": {
|
||||
"description": "Error al eliminar {scheme}",
|
||||
"title": "Error al eliminar"
|
||||
},
|
||||
"success": {
|
||||
"description": "{scheme} eliminado correctamente",
|
||||
"title": "Esquema de colores eliminado"
|
||||
}
|
||||
},
|
||||
"download": {
|
||||
"button": "Descargar más",
|
||||
"delete": "Eliminar",
|
||||
"download": "Descargar",
|
||||
"downloading": "Descargando...",
|
||||
"empty": "No hay esquemas de colores disponibles",
|
||||
"error": {
|
||||
"api-error": "Error de API: {status}",
|
||||
"description": "Error al descargar {scheme}",
|
||||
"download-failed": "Error al descargar con código de salida: {code}",
|
||||
"invalid-response": "Formato de respuesta de API inválido",
|
||||
"no-files": "No se encontraron archivos para el esquema",
|
||||
"parse-failed": "Error al analizar la respuesta de la API: {error}",
|
||||
"rate-limit": "Límite de velocidad de la API de GitHub excedido",
|
||||
"title": "Error al descargar"
|
||||
},
|
||||
"fetching": "Obteniendo esquemas de colores disponibles...",
|
||||
"installed": "Instalado",
|
||||
"refresh": "Actualizar",
|
||||
"success": {
|
||||
"description": "{scheme} descargado correctamente",
|
||||
"title": "Esquema de colores descargado"
|
||||
},
|
||||
"title": "Descargar esquemas de colores"
|
||||
},
|
||||
"predefined": {
|
||||
"generate-templates": {
|
||||
"description": "Genera plantillas de Matugen (GTK, temas de terminal, etc.) al usar esquemas de colores predefinidos.",
|
||||
@@ -929,6 +1044,10 @@
|
||||
"description": "Escribe {filepath}. El tema Comfy debe ser instalado y activado manualmente.",
|
||||
"description-missing": "Requiere que {app} esté instalado/a."
|
||||
},
|
||||
"telegram": {
|
||||
"description": "Escribe {filepath}.",
|
||||
"description-missing": "Requiere que {app} esté instalado/a."
|
||||
},
|
||||
"vicinae": {
|
||||
"description": "Escribir {filepath} y recargar",
|
||||
"description-missing": "Requiere que {app} esté instalado"
|
||||
@@ -1125,6 +1244,10 @@
|
||||
"description": "Ajusta la opacidad del fondo del dock.",
|
||||
"label": "Opacidad del fondo"
|
||||
},
|
||||
"border-radius": {
|
||||
"description": "Ajustar el radio del borde del dock.",
|
||||
"label": "Radio de borde"
|
||||
},
|
||||
"colorize-icons": {
|
||||
"description": "Aplicar colores del tema a los iconos de aplicaciones del dock (solo aplicaciones no enfocadas).",
|
||||
"label": "Colorear iconos"
|
||||
@@ -1276,6 +1399,10 @@
|
||||
"description": "Ajusta la opacidad del fondo del lanzador.",
|
||||
"label": "Opacidad del fondo"
|
||||
},
|
||||
"clip-preview": {
|
||||
"description": "Muestra una vista previa del contenido del portapapeles al usar el comando >clip.",
|
||||
"label": "Activar vista previa del portapapeles"
|
||||
},
|
||||
"clipboard-history": {
|
||||
"description": "Accede a los elementos copiados anteriormente desde el lanzador.",
|
||||
"label": "Activar historial del portapapeles"
|
||||
@@ -1364,6 +1491,10 @@
|
||||
"description": "Elige tu unidad de temperatura preferida.",
|
||||
"label": "Clima"
|
||||
},
|
||||
"show-effects": {
|
||||
"description": "Muestra efectos visuales adicionales (como lluvia, nieve o relámpagos) en la tarjeta del clima.",
|
||||
"label": "Mostrar efectos climáticos"
|
||||
},
|
||||
"show-in-calendar": {
|
||||
"description": "Muestra el pronóstico del tiempo diario directamente en la vista de tu calendario.",
|
||||
"label": "Mostrar el clima en el calendario"
|
||||
@@ -1379,6 +1510,10 @@
|
||||
"description": "Bloquear la pantalla automáticamente al suspender el sistema.",
|
||||
"label": "Bloquear al suspender"
|
||||
},
|
||||
"show-hibernate": {
|
||||
"description": "Mostrar la opción 'hibernar' en las acciones de energía.",
|
||||
"label": "Mostrar hibernar"
|
||||
},
|
||||
"title": "Pantalla de bloqueo"
|
||||
},
|
||||
"network": {
|
||||
@@ -1663,6 +1798,10 @@
|
||||
}
|
||||
},
|
||||
"user-interface": {
|
||||
"allow-panels-without-bar": {
|
||||
"description": "Cuando está activado, los paneles se pueden abrir en cualquier pantalla. Cuando está desactivado, los paneles solo se abrirán en las pantallas que tengan una barra, lo que puede reducir el uso de memoria.",
|
||||
"label": "Permitir paneles en pantallas sin barra."
|
||||
},
|
||||
"animation-disable": {
|
||||
"description": "Desactiva todas las animaciones para una experiencia más rápida y con mayor capacidad de respuesta.",
|
||||
"label": "Desactivar animaciones de la interfaz de usuario"
|
||||
@@ -1870,19 +2009,6 @@
|
||||
"low": "Batería baja",
|
||||
"low-desc": "La batería está al {percent}%. Por favor, conecta el cargador."
|
||||
},
|
||||
"battery-manager": {
|
||||
"initial-setup": "Configuración inicial requerida",
|
||||
"install-failed": "Error en la instalación",
|
||||
"install-missing": "Faltan archivos requeridos",
|
||||
"install-success": "Instalado correctamente",
|
||||
"install-unsupported": "El sistema no es compatible",
|
||||
"set-failed": "No se pudo establecer el umbral de batería",
|
||||
"set-success-desc": "Umbral de batería establecido en {percent}%",
|
||||
"title": "Umbral de batería",
|
||||
"uninstall-failed": "Error en la desinstalación",
|
||||
"uninstall-setup": "Desinstalando, se requiere autenticación",
|
||||
"uninstall-success": "Desinstalado correctamente"
|
||||
},
|
||||
"bluetooth": {
|
||||
"disabled": "Desactivado",
|
||||
"enabled": "Activado"
|
||||
@@ -1951,6 +2077,10 @@
|
||||
"title-matugen": "Falló el procesamiento de la plantilla Matugen.",
|
||||
"title-predefined": "Falló el procesamiento del esquema de color predefinido."
|
||||
},
|
||||
"vpn": {
|
||||
"connected": "Conectado a '{name}'",
|
||||
"disconnected": "Desconectado de '{name}'"
|
||||
},
|
||||
"wallpaper-colors": {
|
||||
"disabled": "Colores del fondo de pantalla desactivados",
|
||||
"enabled": "Colores del fondo de pantalla activados",
|
||||
@@ -1984,6 +2114,7 @@
|
||||
"input-muted": "Silenciar entrada de audio",
|
||||
"keep-awake": "Mantener despierto",
|
||||
"keyboard-layout": "Distribución de teclado {layout}",
|
||||
"manage-vpn": "Administrar conexiones VPN",
|
||||
"manage-wifi": "Gestionar Wi-Fi",
|
||||
"microphone-volume-at": "Volumen del micrófono al {volume}%.\nClic izquierdo para ajustes. Clic derecho para activar/desactivar el silencio.\nDesplázate para modificar el volumen.",
|
||||
"move-to-center-section": "Mover a la sección central",
|
||||
@@ -2047,6 +2178,11 @@
|
||||
"label": "Categorías",
|
||||
"people": "Personas"
|
||||
},
|
||||
"order": {
|
||||
"asc": "Ascendente",
|
||||
"desc": "Descendente",
|
||||
"label": "Orden"
|
||||
},
|
||||
"purity": {
|
||||
"all": "Todo",
|
||||
"label": "Filtro de contenido",
|
||||
@@ -2071,21 +2207,16 @@
|
||||
"toplist": "Lista superior",
|
||||
"views": "Visualizaciones"
|
||||
},
|
||||
"order": {
|
||||
"asc": "Ascendente",
|
||||
"desc": "Descendente",
|
||||
"label": "Orden"
|
||||
},
|
||||
"wallhaven-settings": {
|
||||
"apply": "Aplicar",
|
||||
"title": "Configuración de Wallhaven"
|
||||
},
|
||||
"source": {
|
||||
"label": "Fuente",
|
||||
"local": "Local",
|
||||
"wallhaven": "Wallhaven"
|
||||
},
|
||||
"title": "Selector de fondo de pantalla"
|
||||
"title": "Selector de fondo de pantalla",
|
||||
"wallhaven-settings": {
|
||||
"apply": "Aplicar",
|
||||
"title": "Configuración de Wallhaven"
|
||||
}
|
||||
},
|
||||
"transitions": {
|
||||
"disc": "Disco",
|
||||
@@ -2096,10 +2227,11 @@
|
||||
"wipe": "Barrido"
|
||||
},
|
||||
"try-different-search": "Intenta con una búsqueda diferente.",
|
||||
"unknown": "Desconocido",
|
||||
"wallhaven": {
|
||||
"loading": "Cargando fondos de pantalla...",
|
||||
"no-results": "No se encontraron fondos de pantalla. Intenta con una búsqueda diferente.",
|
||||
"page": "Página {current} de {total}"
|
||||
"page": "{current} de {total}"
|
||||
}
|
||||
},
|
||||
"weather": {
|
||||
@@ -2209,6 +2341,7 @@
|
||||
},
|
||||
"wifi": {
|
||||
"panel": {
|
||||
"available-networks": "Redes disponibles",
|
||||
"connect": "Conectar",
|
||||
"connected": "Conectado",
|
||||
"disabled": "Wi-Fi está desactivado",
|
||||
@@ -2219,6 +2352,7 @@
|
||||
"forget": "Olvidar",
|
||||
"forget-network": "¿Olvidar esta red?",
|
||||
"forgetting": "Olvidando...",
|
||||
"known-networks": "Redes conocidas",
|
||||
"no-networks": "No se encontraron redes",
|
||||
"password": "Contraseña",
|
||||
"saved": "Guardado",
|
||||
|
||||
@@ -123,10 +123,6 @@
|
||||
"stream-description": "Entrez une commande à exécuter en continu."
|
||||
},
|
||||
"dynamic-text": "Texte dynamique",
|
||||
"hide-vertical": {
|
||||
"description": "Si activé, le texte de la sortie de la commande ne sera pas affiché lorsque la barre est en disposition verticale (gauche ou droite).",
|
||||
"label": "Masquer le texte dans la barre verticale"
|
||||
},
|
||||
"icon": {
|
||||
"description": "Sélectionnez une icône dans la bibliothèque.",
|
||||
"label": "Icône"
|
||||
@@ -136,6 +132,14 @@
|
||||
"label": "Clic gauche",
|
||||
"update-text": "Mettre à jour le texte affiché au clic gauche."
|
||||
},
|
||||
"max-text-length-horizontal": {
|
||||
"description": "Nombre maximal de caractères à afficher dans la barre horizontale (0 pour masquer le texte)",
|
||||
"label": "Longueur max du texte (horizontal)"
|
||||
},
|
||||
"max-text-length-vertical": {
|
||||
"description": "Nombre maximal de caractères à afficher dans la barre verticale (0 pour masquer le texte)",
|
||||
"label": "Longueur max du texte (vertical)"
|
||||
},
|
||||
"middle-click": {
|
||||
"description": "Commande à exécuter quand le bouton est cliqué au milieu.",
|
||||
"label": "Clic milieu",
|
||||
@@ -157,6 +161,23 @@
|
||||
"text-stream": {
|
||||
"description": "Les lignes diffusées depuis la commande seront affichées sous forme de texte sur le bouton.",
|
||||
"label": "Flux"
|
||||
},
|
||||
"wheel": {
|
||||
"description": "Commande à exécuter lorsque la molette est utilisée.\nUtilisez $delta pour le delta de la molette dans la commande",
|
||||
"label": "Molette",
|
||||
"update-text": "Mettre à jour le texte affiché au défilement"
|
||||
},
|
||||
"wheel-down": {
|
||||
"description": "Commande à exécuter lorsque la molette est défilée vers le bas.",
|
||||
"label": "Commande molette bas"
|
||||
},
|
||||
"wheel-mode-separate": {
|
||||
"description": "Activer des commandes séparées pour la molette haut et bas",
|
||||
"label": "Commandes de molette séparées"
|
||||
},
|
||||
"wheel-up": {
|
||||
"description": "Commande à exécuter lorsque la molette est défilée vers le haut.",
|
||||
"label": "Commande molette haut"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
@@ -202,6 +223,10 @@
|
||||
"description": "Afficher la pochette d'album de la piste en cours de lecture.",
|
||||
"label": "Afficher la pochette d'album"
|
||||
},
|
||||
"show-artist-first": {
|
||||
"description": "Afficher artiste - titre au lieu de titre - artiste.",
|
||||
"label": "Afficher l'artiste en premier"
|
||||
},
|
||||
"show-visualizer": {
|
||||
"description": "Afficher un visualiseur audio quand la musique est en cours de lecture.",
|
||||
"label": "Afficher le visualiseur"
|
||||
@@ -259,6 +284,10 @@
|
||||
"disk-critical-threshold": {
|
||||
"label": "Storage Space (Critical)"
|
||||
},
|
||||
"disk-path": {
|
||||
"description": "Sélectionnez le point de montage du disque à surveiller.",
|
||||
"label": "Chemin du disque"
|
||||
},
|
||||
"disk-warning-threshold": {
|
||||
"label": "Storage Space (Warning)"
|
||||
},
|
||||
@@ -314,13 +343,9 @@
|
||||
}
|
||||
},
|
||||
"taskbar-grouped": {
|
||||
"show-numbers-only-when-occupied": {
|
||||
"description": "Afficher les numéros d'espace de travail uniquement pour les espaces de travail avec des fenêtres ouvertes.",
|
||||
"label": "Afficher les numéros seulement lorsqu'occupés"
|
||||
},
|
||||
"show-workspace-numbers": {
|
||||
"description": "Afficher les numéros d'espace de travail dans le coin supérieur gauche des groupes de tâches.",
|
||||
"label": "Afficher les numéros d'espace de travail"
|
||||
"show-labels-only-when-occupied": {
|
||||
"description": "Afficher uniquement l'étiquette de l'espace de travail pour les espaces de travail qui ont des fenêtres ouvertes.",
|
||||
"label": "Afficher l'étiquette uniquement lorsque c'est occupé."
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
@@ -363,13 +388,6 @@
|
||||
"health": "État : {percent}%",
|
||||
"idle": "Inactif.",
|
||||
"no-battery-detected": "Aucune batterie détectée.",
|
||||
"panel": {
|
||||
"balanced": "Équilibré ({percent}%)",
|
||||
"disabled": "Gestionnaire de batterie désactivé",
|
||||
"full": "Capacité totale ({percent}%)",
|
||||
"lifespan": "Durée de vie prolongée ({percent}%)",
|
||||
"title": "Seuil de charge"
|
||||
},
|
||||
"plugged-in": "Branché.",
|
||||
"time-left": "Temps restant : {time}.",
|
||||
"time-until-full": "Temps jusqu'à charge complète : {time}."
|
||||
@@ -398,9 +416,61 @@
|
||||
"loading": "Chargement de la météo…"
|
||||
}
|
||||
},
|
||||
"changelog": {
|
||||
"error": {
|
||||
"fetch-failed": "Impossible de charger les données du journal des modifications. Veuillez réessayer plus tard.",
|
||||
"rate-limit": "Limite de GitHub atteinte. Réessayez dans quelques minutes."
|
||||
},
|
||||
"panel": {
|
||||
"buttons": {
|
||||
"discord": "Rejoindre notre Discord",
|
||||
"dismiss": "Ok"
|
||||
},
|
||||
"empty": "Les notes de version ne sont pas encore disponibles.",
|
||||
"highlight-title": "Points importants",
|
||||
"section": {
|
||||
"released": "Publié le {date}",
|
||||
"version": "Version {version}"
|
||||
},
|
||||
"subtitle": {
|
||||
"fresh": "Merci d’avoir installé Noctalia ! Voici ce que contient cette version.",
|
||||
"updated": "Mise à jour depuis {previousVersion}"
|
||||
},
|
||||
"title": "Quoi de neuf dans {version}",
|
||||
"version": {
|
||||
"new-user": "Nouvelle installation"
|
||||
}
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"tooltip": "Ouvrir le calendrier"
|
||||
},
|
||||
"context-menu": {
|
||||
"activate-app": "Activer {app}",
|
||||
"clear-history": "Effacer l'historique",
|
||||
"close-app": "Fermer {app}",
|
||||
"connect-vpn": "Se connecter à {name}",
|
||||
"cycle-visualizer": "Visualiseur de cycle",
|
||||
"disable-bluetooth": "Désactiver le Bluetooth",
|
||||
"disable-dnd": "Désactiver le mode Ne pas déranger",
|
||||
"disable-wifi": "Désactiver le Wi-Fi",
|
||||
"disconnect-vpn": "Se déconnecter de {name}",
|
||||
"enable-bluetooth": "Activer le Bluetooth",
|
||||
"enable-dnd": "Activer le mode Ne pas déranger",
|
||||
"enable-wifi": "Activer le Wi-Fi",
|
||||
"next": "Suivant",
|
||||
"open-calendar": "Ouvrir le calendrier",
|
||||
"open-display-settings": "Paramètres d'affichage",
|
||||
"open-launcher": "Ouvrir le lanceur",
|
||||
"open-mixer": "Table de mixage audio",
|
||||
"open-settings": "Ouvrir les paramètres",
|
||||
"pause": "Pause",
|
||||
"play": "Jouer",
|
||||
"previous": "Précédent",
|
||||
"random-wallpaper": "Fond d'écran aléatoire",
|
||||
"toggle-mute": "Activer/désactiver le mode muet",
|
||||
"widget-settings": "Paramètres du widget"
|
||||
},
|
||||
"dock": {
|
||||
"menu": {
|
||||
"close": "Fermer",
|
||||
@@ -564,6 +634,7 @@
|
||||
},
|
||||
"workspace-labels": {
|
||||
"index": "Index",
|
||||
"index+name": "Index et Nom",
|
||||
"name": "Nom",
|
||||
"none": "Aucun"
|
||||
}
|
||||
@@ -579,8 +650,8 @@
|
||||
"search": "Rechercher...",
|
||||
"search-icons": "ex: noctalia, niri, batterie, nuage",
|
||||
"search-launcher": "Rechercher des entrées... ou utilisez > pour les commandes",
|
||||
"search-wallpapers": "Tapez pour filtrer les fonds d'écran...",
|
||||
"search-wallhaven": "Rechercher sur Wallhaven...",
|
||||
"search-wallpapers": "Tapez pour filtrer les fonds d'écran...",
|
||||
"select": "Sélectionner",
|
||||
"test": "Tester"
|
||||
},
|
||||
@@ -721,6 +792,11 @@
|
||||
"label": "Périphériques audio"
|
||||
}
|
||||
},
|
||||
"external-mixer": {
|
||||
"description": "Entrez la commande ou le chemin d'accès de l'application à lancer lors de l'activation de la fonctionnalité de mixeur audio externe.",
|
||||
"label": "Commande de mixeur audio externe",
|
||||
"placeholder": "pwvucontrol || pavucontrol"
|
||||
},
|
||||
"media": {
|
||||
"excluded-player": {
|
||||
"description": "Ajoutez des mots-clés pour les lecteurs que le système doit ignorer. Chaque mot-clé doit être sur une nouvelle ligne.",
|
||||
@@ -795,6 +871,10 @@
|
||||
"description": "Ajustez l'opacité de l'arrière-plan de la barre.",
|
||||
"label": "Opacité de l'arrière-plan"
|
||||
},
|
||||
"capsule-opacity": {
|
||||
"description": "Définir le niveau d'opacité des arrière-plans des widgets quand la capsule est affichée.",
|
||||
"label": "Opacité de la capsule"
|
||||
},
|
||||
"density": {
|
||||
"description": "Ajustez le remplissage de la barre pour un aspect compact ou spacieux.",
|
||||
"label": "Densité de la barre"
|
||||
@@ -887,6 +967,41 @@
|
||||
"label": "Mode sombre"
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"error": {
|
||||
"description": "Échec de la suppression de {scheme}",
|
||||
"title": "Échec de la suppression"
|
||||
},
|
||||
"success": {
|
||||
"description": "{scheme} supprimé avec succès",
|
||||
"title": "Jeu de couleurs supprimé"
|
||||
}
|
||||
},
|
||||
"download": {
|
||||
"button": "Télécharger plus",
|
||||
"delete": "Supprimer",
|
||||
"download": "Télécharger",
|
||||
"downloading": "Téléchargement...",
|
||||
"empty": "Aucun jeu de couleurs disponible",
|
||||
"error": {
|
||||
"api-error": "Erreur API: {status}",
|
||||
"description": "Échec du téléchargement de {scheme}",
|
||||
"download-failed": "Échec du téléchargement avec le code de sortie: {code}",
|
||||
"invalid-response": "Format de réponse API invalide",
|
||||
"no-files": "Aucun fichier trouvé pour le jeu de couleurs",
|
||||
"parse-failed": "Échec de l'analyse de la réponse API: {error}",
|
||||
"rate-limit": "Limite de débit de l'API GitHub dépassée",
|
||||
"title": "Échec du téléchargement"
|
||||
},
|
||||
"fetching": "Récupération des jeux de couleurs disponibles...",
|
||||
"installed": "Installé",
|
||||
"refresh": "Actualiser",
|
||||
"success": {
|
||||
"description": "{scheme} téléchargé avec succès",
|
||||
"title": "Jeu de couleurs téléchargé"
|
||||
},
|
||||
"title": "Télécharger des jeux de couleurs"
|
||||
},
|
||||
"predefined": {
|
||||
"generate-templates": {
|
||||
"description": "Génère des modèles Matugen (GTK, thèmes de terminal, etc.) lors de l'utilisation de schémas de couleurs prédéfinis.",
|
||||
@@ -929,6 +1044,10 @@
|
||||
"description": "Écrire {filepath}. Le thème Comfy doit être installé et activé manuellement.",
|
||||
"description-missing": "Nécessite l'installation de {app}"
|
||||
},
|
||||
"telegram": {
|
||||
"description": "Écrire {filepath}.",
|
||||
"description-missing": "Nécessite l'installation de {app}"
|
||||
},
|
||||
"vicinae": {
|
||||
"description": "Écrire {filepath} et recharger",
|
||||
"description-missing": "Nécessite que le lanceur {app} soit installé"
|
||||
@@ -1125,6 +1244,10 @@
|
||||
"description": "Ajustez l'opacité de l'arrière-plan du dock.",
|
||||
"label": "Opacité de l'arrière-plan"
|
||||
},
|
||||
"border-radius": {
|
||||
"description": "Ajuster le rayon de bordure du dock.",
|
||||
"label": "Rayon de bordure"
|
||||
},
|
||||
"colorize-icons": {
|
||||
"description": "Appliquer les couleurs du thème aux icônes d'applications du dock (applications non focalisées uniquement).",
|
||||
"label": "Coloriser les icônes"
|
||||
@@ -1276,6 +1399,10 @@
|
||||
"description": "Ajustez l'opacité de l'arrière-plan du lanceur.",
|
||||
"label": "Opacité de l'arrière-plan"
|
||||
},
|
||||
"clip-preview": {
|
||||
"description": "Afficher un aperçu du contenu du presse-papiers lors de l'utilisation de la commande >clip.",
|
||||
"label": "Activer l'aperçu du presse-papiers"
|
||||
},
|
||||
"clipboard-history": {
|
||||
"description": "Accédez aux éléments précédemment copiés depuis le lanceur.",
|
||||
"label": "Activer l'historique du presse-papiers"
|
||||
@@ -1364,6 +1491,10 @@
|
||||
"description": "Choisissez votre unité de température préférée.",
|
||||
"label": "Météo"
|
||||
},
|
||||
"show-effects": {
|
||||
"description": "Affiche des effets visuels supplémentaires (comme la pluie, la neige ou la foudre) sur la carte météo.",
|
||||
"label": "Afficher les effets météorologiques"
|
||||
},
|
||||
"show-in-calendar": {
|
||||
"description": "Afficher les prévisions météo quotidiennes directement dans votre vue calendrier.",
|
||||
"label": "Afficher la météo dans le calendrier"
|
||||
@@ -1379,6 +1510,10 @@
|
||||
"description": "Verrouiller automatiquement l'écran lors de la mise en veille du système.",
|
||||
"label": "Verrouiller à la suspension"
|
||||
},
|
||||
"show-hibernate": {
|
||||
"description": "Afficher l’option 'hiberner' dans les actions d’énergie.",
|
||||
"label": "Afficher l’hibernation"
|
||||
},
|
||||
"title": "Écran de verrouillage"
|
||||
},
|
||||
"network": {
|
||||
@@ -1663,6 +1798,10 @@
|
||||
}
|
||||
},
|
||||
"user-interface": {
|
||||
"allow-panels-without-bar": {
|
||||
"description": "Quand cette option est activée, les panneaux peuvent s'ouvrir sur n'importe quel écran. Quand elle est désactivée, les panneaux s'ouvriront uniquement sur les écrans qui ont une barre, ce qui peut réduire l'utilisation de la mémoire.",
|
||||
"label": "Autoriser les panneaux sur les écrans sans barre."
|
||||
},
|
||||
"animation-disable": {
|
||||
"description": "Désactiver toutes les animations pour une expérience plus rapide et plus réactive.",
|
||||
"label": "Désactiver les animations de l'interface utilisateur"
|
||||
@@ -1870,19 +2009,6 @@
|
||||
"low": "Batterie faible",
|
||||
"low-desc": "La batterie est à {percent}%. Veuillez brancher le chargeur."
|
||||
},
|
||||
"battery-manager": {
|
||||
"initial-setup": "Configuration initiale requise",
|
||||
"install-failed": "Échec de l'installation",
|
||||
"install-missing": "Fichiers requis manquants",
|
||||
"install-success": "Installation réussie",
|
||||
"install-unsupported": "Système non pris en charge",
|
||||
"set-failed": "Échec de la définition du seuil de batterie",
|
||||
"set-success-desc": "Seuil de batterie défini à {percent}%",
|
||||
"title": "Seuil de batterie",
|
||||
"uninstall-failed": "Échec de la désinstallation",
|
||||
"uninstall-setup": "Désinstallation, authentification requise",
|
||||
"uninstall-success": "Désinstallation réussie"
|
||||
},
|
||||
"bluetooth": {
|
||||
"disabled": "Désactivé",
|
||||
"enabled": "Activé"
|
||||
@@ -1951,6 +2077,10 @@
|
||||
"title-matugen": "Le traitement du modèle Matugen a échoué.",
|
||||
"title-predefined": "Le traitement du schéma de couleurs prédéfini a échoué."
|
||||
},
|
||||
"vpn": {
|
||||
"connected": "Connecté à '{name}'",
|
||||
"disconnected": "Déconnecté de '{name}'"
|
||||
},
|
||||
"wallpaper-colors": {
|
||||
"disabled": "Couleurs du fond d'écran désactivées",
|
||||
"enabled": "Couleurs du fond d'écran activées",
|
||||
@@ -1984,6 +2114,7 @@
|
||||
"input-muted": "Couper l'entrée audio",
|
||||
"keep-awake": "Rester éveillé",
|
||||
"keyboard-layout": "Disposition du clavier {layout}",
|
||||
"manage-vpn": "Gérer les connexions VPN",
|
||||
"manage-wifi": "Gérer le Wi-Fi",
|
||||
"microphone-volume-at": "Volume du microphone à {volume}%.\nClic gauche pour les paramètres. Clic droit pour activer/désactiver le mode muet.\nFaites défiler pour modifier le volume.",
|
||||
"move-to-center-section": "Déplacer vers la section centrale",
|
||||
@@ -2047,6 +2178,11 @@
|
||||
"label": "Catégories",
|
||||
"people": "Personnes"
|
||||
},
|
||||
"order": {
|
||||
"asc": "Croissant",
|
||||
"desc": "Décroissant",
|
||||
"label": "Ordre"
|
||||
},
|
||||
"purity": {
|
||||
"all": "Tout",
|
||||
"label": "Filtre de contenu",
|
||||
@@ -2071,21 +2207,16 @@
|
||||
"toplist": "Top liste",
|
||||
"views": "Vues"
|
||||
},
|
||||
"order": {
|
||||
"asc": "Croissant",
|
||||
"desc": "Décroissant",
|
||||
"label": "Ordre"
|
||||
},
|
||||
"wallhaven-settings": {
|
||||
"apply": "Appliquer",
|
||||
"title": "Paramètres Wallhaven"
|
||||
},
|
||||
"source": {
|
||||
"label": "Source",
|
||||
"local": "Local",
|
||||
"wallhaven": "Wallhaven"
|
||||
},
|
||||
"title": "Sélecteur de fond d'écran"
|
||||
"title": "Sélecteur de fond d'écran",
|
||||
"wallhaven-settings": {
|
||||
"apply": "Appliquer",
|
||||
"title": "Paramètres Wallhaven"
|
||||
}
|
||||
},
|
||||
"transitions": {
|
||||
"disc": "Disque",
|
||||
@@ -2096,10 +2227,11 @@
|
||||
"wipe": "Balayage"
|
||||
},
|
||||
"try-different-search": "Essayez une autre requête de recherche.",
|
||||
"unknown": "Inconnu(e)",
|
||||
"wallhaven": {
|
||||
"loading": "Chargement des fonds d'écran...",
|
||||
"no-results": "Aucun fond d'écran trouvé. Essayez une autre requête de recherche.",
|
||||
"page": "Page {current} sur {total}"
|
||||
"page": "{current} sur {total}"
|
||||
}
|
||||
},
|
||||
"weather": {
|
||||
@@ -2209,6 +2341,7 @@
|
||||
},
|
||||
"wifi": {
|
||||
"panel": {
|
||||
"available-networks": "Réseaux disponibles",
|
||||
"connect": "Connecter",
|
||||
"connected": "Connecté",
|
||||
"disabled": "Le Wi-Fi est désactivé",
|
||||
@@ -2219,6 +2352,7 @@
|
||||
"forget": "Oublier",
|
||||
"forget-network": "Oublier ce réseau ?",
|
||||
"forgetting": "Oubli en cours...",
|
||||
"known-networks": "Réseaux connus",
|
||||
"no-networks": "Aucun réseau trouvé",
|
||||
"password": "Mot de passe",
|
||||
"saved": "Enregistré",
|
||||
|
||||
@@ -123,10 +123,6 @@
|
||||
"stream-description": "Voer een commando in dat continu wordt uitgevoerd."
|
||||
},
|
||||
"dynamic-text": "Dynamische tekst",
|
||||
"hide-vertical": {
|
||||
"description": "Indien ingeschakeld wordt de tekst uit de commando-uitvoer niet getoond wanneer de balk verticaal is (links of rechts).",
|
||||
"label": "Tekst verbergen in verticale balk"
|
||||
},
|
||||
"icon": {
|
||||
"description": "Selecteer een pictogram uit de bibliotheek.",
|
||||
"label": "Pictogram"
|
||||
@@ -136,6 +132,14 @@
|
||||
"label": "Linkermuisklik",
|
||||
"update-text": "Tekst bijwerken bij linksklik"
|
||||
},
|
||||
"max-text-length-horizontal": {
|
||||
"description": "Maximaal aantal tekens dat moet worden weergegeven in horizontale balk (0 om tekst te verbergen)",
|
||||
"label": "Max. tekstlengte (horizontaal)"
|
||||
},
|
||||
"max-text-length-vertical": {
|
||||
"description": "Maximaal aantal tekens dat moet worden weergegeven in verticale balk (0 om tekst te verbergen)",
|
||||
"label": "Max. tekstlengte (verticaal)"
|
||||
},
|
||||
"middle-click": {
|
||||
"description": "Commando dat wordt uitgevoerd wanneer met de middelste muisknop op de knop wordt geklikt.",
|
||||
"label": "Middelste muisklik",
|
||||
@@ -157,6 +161,23 @@
|
||||
"text-stream": {
|
||||
"description": "Gestreamde regels uit het commando worden als tekst op de knop weergegeven.",
|
||||
"label": "Stream"
|
||||
},
|
||||
"wheel": {
|
||||
"description": "Commando om uit te voeren wanneer het scrollwiel wordt gebruikt.\nGebruik $delta voor de scrollwiel-delta in het commando",
|
||||
"label": "Scrollwiel",
|
||||
"update-text": "Weergegeven tekst bij scrollen bijwerken"
|
||||
},
|
||||
"wheel-down": {
|
||||
"description": "Commando om uit te voeren wanneer het scrollwiel omlaag wordt bewogen.",
|
||||
"label": "Scrollwiel omlaag commando"
|
||||
},
|
||||
"wheel-mode-separate": {
|
||||
"description": "Afzonderlijke commando's inschakelen voor scrollwiel omhoog en omlaag",
|
||||
"label": "Afzonderlijke scrollwielcommando's"
|
||||
},
|
||||
"wheel-up": {
|
||||
"description": "Commando om uit te voeren wanneer het scrollwiel omhoog wordt bewogen.",
|
||||
"label": "Scrollwiel omhoog commando"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
@@ -202,6 +223,10 @@
|
||||
"description": "Toon de albumhoes van het huidige nummer.",
|
||||
"label": "Albumhoes tonen"
|
||||
},
|
||||
"show-artist-first": {
|
||||
"description": "Toon artiest - titel in plaats van titel - artiest.",
|
||||
"label": "Toon eerst de artiest"
|
||||
},
|
||||
"show-visualizer": {
|
||||
"description": "Toon een audiovisualizer wanneer muziek wordt afgespeeld.",
|
||||
"label": "Visualizer tonen"
|
||||
@@ -259,6 +284,10 @@
|
||||
"disk-critical-threshold": {
|
||||
"label": "Opslagruimte (Kritiek)"
|
||||
},
|
||||
"disk-path": {
|
||||
"description": "Selecteer welk schijfkoppelpunt u wilt monitoren.",
|
||||
"label": "Schijfpad"
|
||||
},
|
||||
"disk-warning-threshold": {
|
||||
"label": "Opslagruimte (Waarschuwing)"
|
||||
},
|
||||
@@ -314,13 +343,9 @@
|
||||
}
|
||||
},
|
||||
"taskbar-grouped": {
|
||||
"show-numbers-only-when-occupied": {
|
||||
"description": "Toon werkruimtenummers alleen voor werkruimten met open vensters.",
|
||||
"label": "Nummers alleen tonen wanneer bezet"
|
||||
},
|
||||
"show-workspace-numbers": {
|
||||
"description": "Toon werkruimtenummers in de linkerbovenhoek van taakgroepen.",
|
||||
"label": "Werkruimtenummers tonen"
|
||||
"show-labels-only-when-occupied": {
|
||||
"description": "Toon alleen de werkomgevinglabels voor werkomgevingen met open vensters.",
|
||||
"label": "Label alleen tonen wanneer bezet"
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
@@ -363,13 +388,6 @@
|
||||
"health": "Gezondheid: {percent}%",
|
||||
"idle": "In rust.",
|
||||
"no-battery-detected": "Geen batterij gedetecteerd.",
|
||||
"panel": {
|
||||
"balanced": "Gebalanceerd ({percent}%)",
|
||||
"disabled": "Batterijbeheer uitgeschakeld",
|
||||
"full": "Volledige capaciteit ({percent}%)",
|
||||
"lifespan": "Verlengde levensduur ({percent}%)",
|
||||
"title": "Batterijdrempel"
|
||||
},
|
||||
"plugged-in": "Op netstroom.",
|
||||
"time-left": "Resterende tijd: {time}.",
|
||||
"time-until-full": "Tijd tot vol: {time}."
|
||||
@@ -398,9 +416,61 @@
|
||||
"loading": "Weer laden…"
|
||||
}
|
||||
},
|
||||
"changelog": {
|
||||
"error": {
|
||||
"fetch-failed": "Kan changeloggegevens niet laden. Probeer het later opnieuw.",
|
||||
"rate-limit": "GitHub-limiet bereikt. Probeer het over enkele minuten opnieuw."
|
||||
},
|
||||
"panel": {
|
||||
"buttons": {
|
||||
"discord": "Word lid van onze Discord",
|
||||
"dismiss": "Ok"
|
||||
},
|
||||
"empty": "Er zijn nog geen release-opmerkingen beschikbaar.",
|
||||
"highlight-title": "Hoogtepunten",
|
||||
"section": {
|
||||
"released": "Uitgebracht op {date}",
|
||||
"version": "Versie {version}"
|
||||
},
|
||||
"subtitle": {
|
||||
"fresh": "Bedankt voor het installeren van Noctalia! Dit zit er in deze build.",
|
||||
"updated": "Bijgewerkt vanaf {previousVersion}"
|
||||
},
|
||||
"title": "Wat is er nieuw in {version}",
|
||||
"version": {
|
||||
"new-user": "Nieuwe installatie"
|
||||
}
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"tooltip": "Kalender openen"
|
||||
},
|
||||
"context-menu": {
|
||||
"activate-app": "Activeer {app}",
|
||||
"clear-history": "Geschiedenis wissen",
|
||||
"close-app": "Sluit {app}",
|
||||
"connect-vpn": "Verbinding maken met {name}",
|
||||
"cycle-visualizer": "Cyclusvisualisatie",
|
||||
"disable-bluetooth": "Bluetooth uitschakelen",
|
||||
"disable-dnd": "Niet Storen uitschakelen",
|
||||
"disable-wifi": "Wi-Fi uitschakelen",
|
||||
"disconnect-vpn": "Verbinding met {name} verbreken",
|
||||
"enable-bluetooth": "Bluetooth inschakelen",
|
||||
"enable-dnd": "Niet Storen inschakelen",
|
||||
"enable-wifi": "Wi-Fi inschakelen",
|
||||
"next": "Volgende",
|
||||
"open-calendar": "Open agenda",
|
||||
"open-display-settings": "Beeldscherminstellingen",
|
||||
"open-launcher": "Launcher openen",
|
||||
"open-mixer": "Audiomixer",
|
||||
"open-settings": "Instellingen openen",
|
||||
"pause": "Pauze",
|
||||
"play": "Spelen",
|
||||
"previous": "Vorige",
|
||||
"random-wallpaper": "Willekeurige achtergrond",
|
||||
"toggle-mute": "Dempen aan/uit",
|
||||
"widget-settings": "Widgetinstellingen"
|
||||
},
|
||||
"dock": {
|
||||
"menu": {
|
||||
"close": "Sluiten",
|
||||
@@ -564,6 +634,7 @@
|
||||
},
|
||||
"workspace-labels": {
|
||||
"index": "Index",
|
||||
"index+name": "Index en Naam",
|
||||
"name": "Naam",
|
||||
"none": "Geen"
|
||||
}
|
||||
@@ -579,8 +650,8 @@
|
||||
"search": "Zoeken...",
|
||||
"search-icons": "bijv. noctalia, niri, battery, cloud",
|
||||
"search-launcher": "Items zoeken... of gebruik > voor commando's",
|
||||
"search-wallpapers": "Typ om achtergronden te filteren...",
|
||||
"search-wallhaven": "Zoek in Wallhaven...",
|
||||
"search-wallpapers": "Typ om achtergronden te filteren...",
|
||||
"select": "Selecteren",
|
||||
"test": "Test"
|
||||
},
|
||||
@@ -721,6 +792,11 @@
|
||||
"label": "Audio-apparaten"
|
||||
}
|
||||
},
|
||||
"external-mixer": {
|
||||
"description": "Voer het commando of het applicatiepad in om te starten bij het activeren van de externe audiomixerfunctie.",
|
||||
"label": "Extern audio mixer commando",
|
||||
"placeholder": "pwvucontrol || pavucontrol"
|
||||
},
|
||||
"media": {
|
||||
"excluded-player": {
|
||||
"description": "Voeg trefwoorden toe voor spelers die het systeem moet negeren. Elk trefwoord moet op een nieuwe regel staan.",
|
||||
@@ -795,6 +871,10 @@
|
||||
"description": "Pas de achtergronddekking van de balk aan.",
|
||||
"label": "Achtergronddekking"
|
||||
},
|
||||
"capsule-opacity": {
|
||||
"description": "Stel het doorzichtigheidsniveau in voor widget-achtergronden wanneer capsule wordt getoond.",
|
||||
"label": "Capsule-doorzichtigheid"
|
||||
},
|
||||
"density": {
|
||||
"description": "Pas de opvulling van de balk aan voor een compacte of ruime uitstraling.",
|
||||
"label": "Balkdichtheid"
|
||||
@@ -887,6 +967,41 @@
|
||||
"label": "Donkere modus"
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"error": {
|
||||
"description": "Verwijderen van {scheme} mislukt",
|
||||
"title": "Verwijderen mislukt"
|
||||
},
|
||||
"success": {
|
||||
"description": "{scheme} succesvol verwijderd",
|
||||
"title": "Kleurenschema verwijderd"
|
||||
}
|
||||
},
|
||||
"download": {
|
||||
"button": "Meer downloaden",
|
||||
"delete": "Verwijderen",
|
||||
"download": "Downloaden",
|
||||
"downloading": "Downloaden...",
|
||||
"empty": "Geen kleurenschema's beschikbaar",
|
||||
"error": {
|
||||
"api-error": "API-fout: {status}",
|
||||
"description": "Download van {scheme} mislukt",
|
||||
"download-failed": "Download mislukt met afsluitcode: {code}",
|
||||
"invalid-response": "Ongeldig API-antwoordformaat",
|
||||
"no-files": "Geen bestanden gevonden voor schema",
|
||||
"parse-failed": "Fout bij parseren van API-antwoord: {error}",
|
||||
"rate-limit": "GitHub API-snelheidslimiet overschreden",
|
||||
"title": "Download mislukt"
|
||||
},
|
||||
"fetching": "Beschikbare kleurenschema's ophalen...",
|
||||
"installed": "Geïnstalleerd",
|
||||
"refresh": "Vernieuwen",
|
||||
"success": {
|
||||
"description": "{scheme} succesvol gedownload",
|
||||
"title": "Kleurenschema gedownload"
|
||||
},
|
||||
"title": "Kleurenschema's downloaden"
|
||||
},
|
||||
"predefined": {
|
||||
"generate-templates": {
|
||||
"description": "Genereer Matugen-sjablonen (GTK, terminalthema's, enz.) bij gebruik van vooraf gedefinieerde kleurenschema's.",
|
||||
@@ -929,6 +1044,10 @@
|
||||
"description": "Schrijf {filepath}. Het Comfy-thema moet handmatig worden geïnstalleerd en geactiveerd.",
|
||||
"description-missing": "Vereist dat {app} is geïnstalleerd."
|
||||
},
|
||||
"telegram": {
|
||||
"description": "Schrijf {filepath}.",
|
||||
"description-missing": "Vereist dat {app} is geïnstalleerd."
|
||||
},
|
||||
"vicinae": {
|
||||
"description": "Schrijf {filepath} en herlaad.",
|
||||
"description-missing": "Vereist dat {app} is geïnstalleerd."
|
||||
@@ -1125,6 +1244,10 @@
|
||||
"description": "Pas de achtergronddekking van de dock aan.",
|
||||
"label": "Achtergronddekking"
|
||||
},
|
||||
"border-radius": {
|
||||
"description": "Pas de randradius van het dock aan.",
|
||||
"label": "Randradius"
|
||||
},
|
||||
"colorize-icons": {
|
||||
"description": "Pas themakleuren toe op dock-pictogrammen (alleen niet-focuste apps).",
|
||||
"label": "Pictogrammen inkleuren"
|
||||
@@ -1276,6 +1399,10 @@
|
||||
"description": "Pas de achtergronddekking van de launcher aan.",
|
||||
"label": "Achtergronddekking"
|
||||
},
|
||||
"clip-preview": {
|
||||
"description": "Toon een voorbeeld van de inhoud van het klembord bij gebruik van het >clip-commando.",
|
||||
"label": "Klembordvoorbeeld inschakelen"
|
||||
},
|
||||
"clipboard-history": {
|
||||
"description": "Toegang tot eerder gekopieerde items vanuit de launcher.",
|
||||
"label": "Klembordgeschiedenis inschakelen"
|
||||
@@ -1364,6 +1491,10 @@
|
||||
"description": "Kies je voorkeurseenheid voor temperatuur.",
|
||||
"label": "Weer"
|
||||
},
|
||||
"show-effects": {
|
||||
"description": "Toont extra visuele effecten (zoals regen, sneeuw of bliksem) op de weerkaart.",
|
||||
"label": "Weerseffecten weergeven"
|
||||
},
|
||||
"show-in-calendar": {
|
||||
"description": "Toon de dagelijkse weersverwachting direct in je kalenderview.",
|
||||
"label": "Weer in kalender weergeven"
|
||||
@@ -1379,6 +1510,10 @@
|
||||
"description": "Vergrendel het scherm automatisch wanneer het systeem wordt onderbroken.",
|
||||
"label": "Vergrendelen bij onderbreken"
|
||||
},
|
||||
"show-hibernate": {
|
||||
"description": "De optie 'sluimerstand' tonen in de energieacties.",
|
||||
"label": "Sluimerstand tonen"
|
||||
},
|
||||
"title": "Vergrendelscherm"
|
||||
},
|
||||
"network": {
|
||||
@@ -1663,6 +1798,10 @@
|
||||
}
|
||||
},
|
||||
"user-interface": {
|
||||
"allow-panels-without-bar": {
|
||||
"description": "Indien ingeschakeld, kunnen panelen op elk scherm worden geopend. Indien uitgeschakeld, worden panelen alleen geopend op schermen met een balk, wat het geheugengebruik kan verminderen.",
|
||||
"label": "Sta panelen toe op schermen zonder balk."
|
||||
},
|
||||
"animation-disable": {
|
||||
"description": "Schakel alle animaties uit voor een snellere, responsievere ervaring.",
|
||||
"label": "UI-animaties uitschakelen"
|
||||
@@ -1870,19 +2009,6 @@
|
||||
"low": "Batterij bijna leeg",
|
||||
"low-desc": "De batterij is op {percent}%. Sluit de oplader aan."
|
||||
},
|
||||
"battery-manager": {
|
||||
"initial-setup": "Initiële configuratie vereist",
|
||||
"install-failed": "Installatie mislukt",
|
||||
"install-missing": "Vereiste bestanden ontbreken",
|
||||
"install-success": "Succesvol geïnstalleerd",
|
||||
"install-unsupported": "Systeem wordt niet ondersteund",
|
||||
"set-failed": "Instellen van batterijdrempel mislukt",
|
||||
"set-success-desc": "Batterijdrempel ingesteld op {percent}%",
|
||||
"title": "Batterijdrempel",
|
||||
"uninstall-failed": "Deïnstallatie mislukt",
|
||||
"uninstall-setup": "Verwijderen, authenticatie vereist",
|
||||
"uninstall-success": "Succesvol verwijderd"
|
||||
},
|
||||
"bluetooth": {
|
||||
"disabled": "Uitgeschakeld",
|
||||
"enabled": "Ingeschakeld"
|
||||
@@ -1951,6 +2077,10 @@
|
||||
"title-matugen": "Matugen-sjabloonverwerking mislukt",
|
||||
"title-predefined": "Verwerken van vooraf gedefinieerd kleurenschema mislukt"
|
||||
},
|
||||
"vpn": {
|
||||
"connected": "Verbonden met '{name}'",
|
||||
"disconnected": "Verbinding met '{name}' verbroken"
|
||||
},
|
||||
"wallpaper-colors": {
|
||||
"disabled": "Achtergrondkleuren uitgeschakeld",
|
||||
"enabled": "Achtergrondkleuren ingeschakeld",
|
||||
@@ -1984,6 +2114,7 @@
|
||||
"input-muted": "Invoermicrofoon dempen in-/uitschakelen",
|
||||
"keep-awake": "Wakker houden",
|
||||
"keyboard-layout": "{layout}-toetsenbordindeling",
|
||||
"manage-vpn": "VPN-verbindingen beheren",
|
||||
"manage-wifi": "Wi-Fi beheren",
|
||||
"microphone-volume-at": "Microfoonvolume {volume}%\nLinks klikken voor instellingen. Rechts klikken om te dempen.\nScroll om het volume aan te passen.",
|
||||
"move-to-center-section": "Verplaatsen naar middelste sectie",
|
||||
@@ -2047,6 +2178,11 @@
|
||||
"label": "Categorieën",
|
||||
"people": "Mensen"
|
||||
},
|
||||
"order": {
|
||||
"asc": "Oplopend",
|
||||
"desc": "Aflopend",
|
||||
"label": "Volgorde"
|
||||
},
|
||||
"purity": {
|
||||
"all": "Alles",
|
||||
"label": "Inhoudsfilter",
|
||||
@@ -2071,21 +2207,16 @@
|
||||
"toplist": "Toplijst",
|
||||
"views": "Weergaven"
|
||||
},
|
||||
"order": {
|
||||
"asc": "Oplopend",
|
||||
"desc": "Aflopend",
|
||||
"label": "Volgorde"
|
||||
},
|
||||
"wallhaven-settings": {
|
||||
"apply": "Toepassen",
|
||||
"title": "Wallhaven-instellingen"
|
||||
},
|
||||
"source": {
|
||||
"label": "Bron",
|
||||
"local": "Lokaal",
|
||||
"wallhaven": "Wallhaven"
|
||||
},
|
||||
"title": "Achtergrondkiezer"
|
||||
"title": "Achtergrondkiezer",
|
||||
"wallhaven-settings": {
|
||||
"apply": "Toepassen",
|
||||
"title": "Wallhaven-instellingen"
|
||||
}
|
||||
},
|
||||
"transitions": {
|
||||
"disc": "Schijf",
|
||||
@@ -2096,10 +2227,11 @@
|
||||
"wipe": "Vegen"
|
||||
},
|
||||
"try-different-search": "Probeer een andere zoekopdracht.",
|
||||
"unknown": "Onbekend",
|
||||
"wallhaven": {
|
||||
"loading": "Achtergronden laden...",
|
||||
"no-results": "Geen achtergronden gevonden. Probeer een andere zoekopdracht.",
|
||||
"page": "Pagina {current} van {total}"
|
||||
"page": "{current} van {total}"
|
||||
}
|
||||
},
|
||||
"weather": {
|
||||
@@ -2209,6 +2341,7 @@
|
||||
},
|
||||
"wifi": {
|
||||
"panel": {
|
||||
"available-networks": "Beschikbare netwerken",
|
||||
"connect": "Verbinden",
|
||||
"connected": "Verbonden",
|
||||
"disabled": "Wi-Fi is uitgeschakeld",
|
||||
@@ -2219,6 +2352,7 @@
|
||||
"forget": "Vergeten",
|
||||
"forget-network": "Dit netwerk vergeten?",
|
||||
"forgetting": "Vergeten...",
|
||||
"known-networks": "Bekende netwerken",
|
||||
"no-networks": "Geen netwerken gevonden",
|
||||
"password": "Wachtwoord",
|
||||
"saved": "Opgeslagen",
|
||||
|
||||
@@ -123,10 +123,6 @@
|
||||
"stream-description": "Insira um comando para executar continuamente."
|
||||
},
|
||||
"dynamic-text": "Texto dinâmico",
|
||||
"hide-vertical": {
|
||||
"description": "Se ativado, o texto da saída do comando não será exibido quando a barra estiver em um layout vertical (esquerda ou direita).",
|
||||
"label": "Ocultar texto na barra vertical"
|
||||
},
|
||||
"icon": {
|
||||
"description": "Selecione um ícone da biblioteca.",
|
||||
"label": "Ícone"
|
||||
@@ -136,6 +132,14 @@
|
||||
"label": "Clique esquerdo",
|
||||
"update-text": "Atualizar texto exibido ao clicar com o botão esquerdo"
|
||||
},
|
||||
"max-text-length-horizontal": {
|
||||
"description": "Número máximo de caracteres a serem exibidos na barra horizontal (0 para ocultar o texto)",
|
||||
"label": "Comprimento máximo do texto (horizontal)"
|
||||
},
|
||||
"max-text-length-vertical": {
|
||||
"description": "Número máximo de caracteres a serem exibidos na barra vertical (0 para ocultar o texto)",
|
||||
"label": "Comprimento máximo do texto (vertical)"
|
||||
},
|
||||
"middle-click": {
|
||||
"description": "Comando a executar quando o botão é clicado com o botão do meio.",
|
||||
"label": "Clique do meio",
|
||||
@@ -157,6 +161,23 @@
|
||||
"text-stream": {
|
||||
"description": "As linhas transmitidas do comando serão exibidas como texto no botão.",
|
||||
"label": "Transmissão"
|
||||
},
|
||||
"wheel": {
|
||||
"description": "Comando a executar quando a roda de rolagem é usada.\nUse $delta para o delta da roda de rolagem no comando",
|
||||
"label": "Roda de rolagem",
|
||||
"update-text": "Atualizar texto exibido ao rolar"
|
||||
},
|
||||
"wheel-down": {
|
||||
"description": "Comando a executar quando a roda de rolagem é rolada para baixo.",
|
||||
"label": "Comando de roda para baixo"
|
||||
},
|
||||
"wheel-mode-separate": {
|
||||
"description": "Ativar comandos separados para roda para cima e para baixo",
|
||||
"label": "Comandos de roda separados"
|
||||
},
|
||||
"wheel-up": {
|
||||
"description": "Comando a executar quando a roda de rolagem é rolada para cima.",
|
||||
"label": "Comando de roda para cima"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
@@ -202,6 +223,10 @@
|
||||
"description": "Exibir a arte do álbum da faixa atualmente sendo reproduzida.",
|
||||
"label": "Mostrar arte do álbum"
|
||||
},
|
||||
"show-artist-first": {
|
||||
"description": "Exibir artista - título em vez de título - artista.",
|
||||
"label": "Mostrar o artista primeiro"
|
||||
},
|
||||
"show-visualizer": {
|
||||
"description": "Exibir um visualizador de áudio quando música está sendo reproduzida.",
|
||||
"label": "Mostrar visualizador"
|
||||
@@ -259,6 +284,10 @@
|
||||
"disk-critical-threshold": {
|
||||
"label": "Storage Space (Critical)"
|
||||
},
|
||||
"disk-path": {
|
||||
"description": "Selecione qual ponto de montagem de disco monitorar.",
|
||||
"label": "Caminho do disco"
|
||||
},
|
||||
"disk-warning-threshold": {
|
||||
"label": "Storage Space (Warning)"
|
||||
},
|
||||
@@ -314,13 +343,9 @@
|
||||
}
|
||||
},
|
||||
"taskbar-grouped": {
|
||||
"show-numbers-only-when-occupied": {
|
||||
"description": "Mostrar números do espaço de trabalho apenas para espaços de trabalho com janelas abertas.",
|
||||
"label": "Mostrar números apenas quando ocupados"
|
||||
},
|
||||
"show-workspace-numbers": {
|
||||
"description": "Exibir números do espaço de trabalho no canto superior esquerdo dos grupos de tarefas.",
|
||||
"label": "Mostrar números do espaço de trabalho"
|
||||
"show-labels-only-when-occupied": {
|
||||
"description": "Mostrar apenas o rótulo da área de trabalho para áreas de trabalho que têm janelas abertas.",
|
||||
"label": "Mostrar rótulo somente quando ocupado."
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
@@ -363,13 +388,6 @@
|
||||
"health": "Saúde: {percent}%",
|
||||
"idle": "Ocioso.",
|
||||
"no-battery-detected": "Nenhuma bateria detectada.",
|
||||
"panel": {
|
||||
"balanced": "Balanceado ({percent}%)",
|
||||
"disabled": "Gerenciador de bateria desativado",
|
||||
"full": "Capacidade máxima ({percent}%)",
|
||||
"lifespan": "Vida útil prolongada ({percent}%)",
|
||||
"title": "Limite de carga"
|
||||
},
|
||||
"plugged-in": "Conectado.",
|
||||
"time-left": "Tempo restante: {time}.",
|
||||
"time-until-full": "Tempo até carga completa: {time}."
|
||||
@@ -398,9 +416,61 @@
|
||||
"loading": "Carregando o clima…"
|
||||
}
|
||||
},
|
||||
"changelog": {
|
||||
"error": {
|
||||
"fetch-failed": "Não foi possível carregar os dados do changelog. Tente novamente mais tarde.",
|
||||
"rate-limit": "Limite do GitHub atingido. Tente novamente em alguns minutos."
|
||||
},
|
||||
"panel": {
|
||||
"buttons": {
|
||||
"discord": "Entre no nosso Discord",
|
||||
"dismiss": "Ok"
|
||||
},
|
||||
"empty": "As notas da versão ainda não estão disponíveis.",
|
||||
"highlight-title": "Destaques",
|
||||
"section": {
|
||||
"released": "Lançado em {date}",
|
||||
"version": "Versão {version}"
|
||||
},
|
||||
"subtitle": {
|
||||
"fresh": "Obrigado por instalar o Noctalia! Veja o que está incluído nesta compilação.",
|
||||
"updated": "Atualizado a partir da {previousVersion}"
|
||||
},
|
||||
"title": "Novidades na {version}",
|
||||
"version": {
|
||||
"new-user": "Nova instalação"
|
||||
}
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"tooltip": "Abrir calendário"
|
||||
},
|
||||
"context-menu": {
|
||||
"activate-app": "Ativar {app}",
|
||||
"clear-history": "Limpar histórico",
|
||||
"close-app": "Fechar {app}",
|
||||
"connect-vpn": "Conectar-se a {name}",
|
||||
"cycle-visualizer": "Visualizador de ciclo",
|
||||
"disable-bluetooth": "Desativar Bluetooth",
|
||||
"disable-dnd": "Desativar o Não Perturbe",
|
||||
"disable-wifi": "Desativar Wi-Fi",
|
||||
"disconnect-vpn": "Desconectar {name}",
|
||||
"enable-bluetooth": "Ativar Bluetooth",
|
||||
"enable-dnd": "Ativar Não Perturbe",
|
||||
"enable-wifi": "Ativar Wi-Fi",
|
||||
"next": "Próximo(a)",
|
||||
"open-calendar": "Abrir calendário",
|
||||
"open-display-settings": "Configurações de exibição",
|
||||
"open-launcher": "Abrir iniciador",
|
||||
"open-mixer": "Mesa de som",
|
||||
"open-settings": "Abrir configurações",
|
||||
"pause": "Pausa",
|
||||
"play": "Jogar",
|
||||
"previous": "Anterior",
|
||||
"random-wallpaper": "Papel de parede aleatório",
|
||||
"toggle-mute": "Alternar mudo",
|
||||
"widget-settings": "Configurações do widget"
|
||||
},
|
||||
"dock": {
|
||||
"menu": {
|
||||
"close": "Fechar",
|
||||
@@ -564,6 +634,7 @@
|
||||
},
|
||||
"workspace-labels": {
|
||||
"index": "Índice",
|
||||
"index+name": "Índice e Nome",
|
||||
"name": "Nome",
|
||||
"none": "Nenhum"
|
||||
}
|
||||
@@ -579,8 +650,8 @@
|
||||
"search": "Pesquisar...",
|
||||
"search-icons": "ex., noctalia, niri, battery, cloud",
|
||||
"search-launcher": "Pesquisar entradas... ou use > para comandos",
|
||||
"search-wallpapers": "Digite para filtrar papéis de parede...",
|
||||
"search-wallhaven": "Pesquisar no Wallhaven...",
|
||||
"search-wallpapers": "Digite para filtrar papéis de parede...",
|
||||
"select": "Selecionar",
|
||||
"test": "Testar"
|
||||
},
|
||||
@@ -721,6 +792,11 @@
|
||||
"label": "Dispositivos de áudio"
|
||||
}
|
||||
},
|
||||
"external-mixer": {
|
||||
"description": "Insira o comando ou o caminho do aplicativo para iniciar ao ativar o recurso de mixer de áudio externo.",
|
||||
"label": "Comando de Mixer de Áudio Externo",
|
||||
"placeholder": "pwvucontrol || pavucontrol"
|
||||
},
|
||||
"media": {
|
||||
"excluded-player": {
|
||||
"description": "Adicione palavras-chave para os reprodutores que você deseja que o sistema ignore. Cada palavra-chave deve estar em uma nova linha.",
|
||||
@@ -795,6 +871,10 @@
|
||||
"description": "Ajuste a opacidade do fundo da barra.",
|
||||
"label": "Opacidade do fundo"
|
||||
},
|
||||
"capsule-opacity": {
|
||||
"description": "Define o nível de opacidade para fundos dos widgets quando a cápsula é mostrada.",
|
||||
"label": "Opacidade da cápsula"
|
||||
},
|
||||
"density": {
|
||||
"description": "Ajuste o preenchimento da barra para um visual compacto ou espaçoso.",
|
||||
"label": "Densidade da barra"
|
||||
@@ -887,6 +967,41 @@
|
||||
"label": "Modo escuro"
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"error": {
|
||||
"description": "Falha ao excluir {scheme}",
|
||||
"title": "Falha ao excluir"
|
||||
},
|
||||
"success": {
|
||||
"description": "{scheme} excluído com sucesso",
|
||||
"title": "Esquema de cores excluído"
|
||||
}
|
||||
},
|
||||
"download": {
|
||||
"button": "Baixar mais",
|
||||
"delete": "Excluir",
|
||||
"download": "Baixar",
|
||||
"downloading": "Baixando...",
|
||||
"empty": "Nenhum esquema de cores disponível",
|
||||
"error": {
|
||||
"api-error": "Erro da API: {status}",
|
||||
"description": "Falha ao baixar {scheme}",
|
||||
"download-failed": "Falha no download com código de saída: {code}",
|
||||
"invalid-response": "Formato de resposta da API inválido",
|
||||
"no-files": "Nenhum arquivo encontrado para o esquema",
|
||||
"parse-failed": "Falha ao analisar a resposta da API: {error}",
|
||||
"rate-limit": "Limite de taxa da API do GitHub excedido",
|
||||
"title": "Falha no download"
|
||||
},
|
||||
"fetching": "Buscando esquemas de cores disponíveis...",
|
||||
"installed": "Instalado",
|
||||
"refresh": "Atualizar",
|
||||
"success": {
|
||||
"description": "{scheme} baixado com sucesso",
|
||||
"title": "Esquema de cores baixado"
|
||||
},
|
||||
"title": "Baixar esquemas de cores"
|
||||
},
|
||||
"predefined": {
|
||||
"generate-templates": {
|
||||
"description": "Gera modelos Matugen (GTK, temas de terminal, etc.) ao usar esquemas de cores predefinidos.",
|
||||
@@ -929,6 +1044,10 @@
|
||||
"description": "Escreva em {filepath}. O tema Comfy precisa ser instalado e ativado manualmente.",
|
||||
"description-missing": "Requer que o {app} esteja instalado."
|
||||
},
|
||||
"telegram": {
|
||||
"description": "Escreva em {filepath}.",
|
||||
"description-missing": "Requer que o {app} esteja instalado."
|
||||
},
|
||||
"vicinae": {
|
||||
"description": "Escrever {filepath} e recarregar",
|
||||
"description-missing": "Requer que o {app} esteja instalado"
|
||||
@@ -1125,6 +1244,10 @@
|
||||
"description": "Ajuste a opacidade do fundo da dock.",
|
||||
"label": "Opacidade do fundo"
|
||||
},
|
||||
"border-radius": {
|
||||
"description": "Ajustar o raio da borda da dock.",
|
||||
"label": "Raio da borda"
|
||||
},
|
||||
"colorize-icons": {
|
||||
"description": "Aplicar cores do tema aos ícones de aplicativos da dock (apenas aplicativos não focados).",
|
||||
"label": "Colorir ícones"
|
||||
@@ -1276,6 +1399,10 @@
|
||||
"description": "Ajuste a opacidade do fundo do lançador.",
|
||||
"label": "Opacidade do fundo"
|
||||
},
|
||||
"clip-preview": {
|
||||
"description": "Mostra uma pré-visualização do conteúdo da área de transferência ao usar o comando >clip.",
|
||||
"label": "Ativar pré-visualização da área de transferência"
|
||||
},
|
||||
"clipboard-history": {
|
||||
"description": "Acesse itens copiados anteriormente a partir do lançador.",
|
||||
"label": "Ativar histórico da área de transferência"
|
||||
@@ -1364,6 +1491,10 @@
|
||||
"description": "Escolha sua unidade de temperatura preferida.",
|
||||
"label": "Clima"
|
||||
},
|
||||
"show-effects": {
|
||||
"description": "Mostra efeitos visuais adicionais (como chuva, neve ou relâmpagos) no cartão de clima.",
|
||||
"label": "Exibir efeitos climáticos"
|
||||
},
|
||||
"show-in-calendar": {
|
||||
"description": "Mostre a previsão do tempo diária diretamente na sua visualização de calendário.",
|
||||
"label": "Exibir clima no calendário"
|
||||
@@ -1379,6 +1510,10 @@
|
||||
"description": "Bloquear a tela automaticamente ao suspender o sistema.",
|
||||
"label": "Bloquear ao suspender"
|
||||
},
|
||||
"show-hibernate": {
|
||||
"description": "Mostrar a opção 'hibernar' nas ações de energia.",
|
||||
"label": "Mostrar hibernar"
|
||||
},
|
||||
"title": "Tela de bloqueio"
|
||||
},
|
||||
"network": {
|
||||
@@ -1663,6 +1798,10 @@
|
||||
}
|
||||
},
|
||||
"user-interface": {
|
||||
"allow-panels-without-bar": {
|
||||
"description": "Quando ativado, os painéis podem abrir em qualquer tela. Quando desativado, os painéis só abrirão em telas que tenham uma barra, o que pode reduzir o uso de memória.",
|
||||
"label": "Permitir painéis em telas sem uma barra."
|
||||
},
|
||||
"animation-disable": {
|
||||
"description": "Desative todas as animações para uma experiência mais rápida e responsiva.",
|
||||
"label": "Desativar animações da interface do usuário"
|
||||
@@ -1870,19 +2009,6 @@
|
||||
"low": "Bateria Fraca",
|
||||
"low-desc": "A bateria está em {percent}%. Por favor, conecte o carregador."
|
||||
},
|
||||
"battery-manager": {
|
||||
"initial-setup": "Configuração inicial necessária",
|
||||
"install-failed": "Falha na instalação",
|
||||
"install-missing": "Arquivos necessários ausentes",
|
||||
"install-success": "Instalado com sucesso",
|
||||
"install-unsupported": "Sistema não suportado",
|
||||
"set-failed": "Falha ao definir o limite da bateria",
|
||||
"set-success-desc": "Limite da bateria definido para {percent}%",
|
||||
"title": "Limite da bateria",
|
||||
"uninstall-failed": "Falha na desinstalação",
|
||||
"uninstall-setup": "Desinstalando, autenticação necessária",
|
||||
"uninstall-success": "Desinstalado com sucesso"
|
||||
},
|
||||
"bluetooth": {
|
||||
"disabled": "Desativado",
|
||||
"enabled": "Ativado"
|
||||
@@ -1951,6 +2077,10 @@
|
||||
"title-matugen": "Falha no processamento do template Matugen",
|
||||
"title-predefined": "O processamento do esquema de cores predefinido falhou."
|
||||
},
|
||||
"vpn": {
|
||||
"connected": "Conectado a '{name}'",
|
||||
"disconnected": "Desconectado de '{name}'"
|
||||
},
|
||||
"wallpaper-colors": {
|
||||
"disabled": "Cores do papel de parede desativadas",
|
||||
"enabled": "Cores do papel de parede ativadas",
|
||||
@@ -1984,6 +2114,7 @@
|
||||
"input-muted": "Silenciar entrada de áudio",
|
||||
"keep-awake": "Manter acordado",
|
||||
"keyboard-layout": "Layout de teclado {layout}",
|
||||
"manage-vpn": "Gerenciar conexões VPN",
|
||||
"manage-wifi": "Gerenciar Wi-Fi",
|
||||
"microphone-volume-at": "Volume do microfone em {volume}%.\nClique esquerdo para configurações. Clique direito para ativar/desativar o mudo.\nRole para modificar o volume.",
|
||||
"move-to-center-section": "Mover para a seção central",
|
||||
@@ -2047,6 +2178,11 @@
|
||||
"label": "Categorias",
|
||||
"people": "Pessoas"
|
||||
},
|
||||
"order": {
|
||||
"asc": "Crescente",
|
||||
"desc": "Decrescente",
|
||||
"label": "Ordem"
|
||||
},
|
||||
"purity": {
|
||||
"all": "Tudo",
|
||||
"label": "Filtro de conteúdo",
|
||||
@@ -2071,21 +2207,16 @@
|
||||
"toplist": "Lista superior",
|
||||
"views": "Visualizações"
|
||||
},
|
||||
"order": {
|
||||
"asc": "Crescente",
|
||||
"desc": "Decrescente",
|
||||
"label": "Ordem"
|
||||
},
|
||||
"wallhaven-settings": {
|
||||
"apply": "Aplicar",
|
||||
"title": "Configurações do Wallhaven"
|
||||
},
|
||||
"source": {
|
||||
"label": "Fonte",
|
||||
"local": "Local",
|
||||
"wallhaven": "Wallhaven"
|
||||
},
|
||||
"title": "Seletor de papel de parede"
|
||||
"title": "Seletor de papel de parede",
|
||||
"wallhaven-settings": {
|
||||
"apply": "Aplicar",
|
||||
"title": "Configurações do Wallhaven"
|
||||
}
|
||||
},
|
||||
"transitions": {
|
||||
"disc": "Disco",
|
||||
@@ -2096,10 +2227,11 @@
|
||||
"wipe": "Limpar"
|
||||
},
|
||||
"try-different-search": "Tente uma busca diferente.",
|
||||
"unknown": "Desconhecido",
|
||||
"wallhaven": {
|
||||
"loading": "Carregando papéis de parede...",
|
||||
"no-results": "Nenhum papel de parede encontrado. Tente uma busca diferente.",
|
||||
"page": "Página {current} de {total}"
|
||||
"page": "{current} de {total}"
|
||||
}
|
||||
},
|
||||
"weather": {
|
||||
@@ -2209,6 +2341,7 @@
|
||||
},
|
||||
"wifi": {
|
||||
"panel": {
|
||||
"available-networks": "Redes Disponíveis",
|
||||
"connect": "Conectar",
|
||||
"connected": "Conectado",
|
||||
"disabled": "O Wi-Fi está desativado",
|
||||
@@ -2219,6 +2352,7 @@
|
||||
"forget": "Esquecer",
|
||||
"forget-network": "Esquecer esta rede?",
|
||||
"forgetting": "Esquecendo...",
|
||||
"known-networks": "Redes Conhecidas",
|
||||
"no-networks": "Nenhuma rede encontrada",
|
||||
"password": "Senha",
|
||||
"saved": "Salva",
|
||||
|
||||
@@ -123,10 +123,6 @@
|
||||
"stream-description": "Введите команду для непрерывного выполнения."
|
||||
},
|
||||
"dynamic-text": "Динамический текст",
|
||||
"hide-vertical": {
|
||||
"description": "Если включено, текст из вывода команды не будет отображаться, когда панель находится в вертикальном макете (слева или справа).",
|
||||
"label": "Скрывать текст в вертикальной панели"
|
||||
},
|
||||
"icon": {
|
||||
"description": "Выберите иконку из библиотеки.",
|
||||
"label": "Иконка"
|
||||
@@ -136,6 +132,14 @@
|
||||
"label": "Клик левой кнопкой",
|
||||
"update-text": "Обновить отображаемый текст по левому клику"
|
||||
},
|
||||
"max-text-length-horizontal": {
|
||||
"description": "Максимальное количество символов для отображения в горизонтальной панели (0 для скрытия текста)",
|
||||
"label": "Макс. длина текста (горизонтально)"
|
||||
},
|
||||
"max-text-length-vertical": {
|
||||
"description": "Максимальное количество символов для отображения в вертикальной панели (0 для скрытия текста)",
|
||||
"label": "Макс. длина текста (вертикально)"
|
||||
},
|
||||
"middle-click": {
|
||||
"description": "Команда для выполнения при нажатии средней кнопкой мыши.",
|
||||
"label": "Клик средней кнопкой",
|
||||
@@ -157,6 +161,23 @@
|
||||
"text-stream": {
|
||||
"description": "Потоковые строки из команды будут отображаться как текст на кнопке.",
|
||||
"label": "Поток"
|
||||
},
|
||||
"wheel": {
|
||||
"description": "Команда для выполнения при использовании колеса прокрутки.\nИспользуйте $delta для дельты колеса прокрутки в команде",
|
||||
"label": "Колесо прокрутки",
|
||||
"update-text": "Обновить отображаемый текст при прокрутке"
|
||||
},
|
||||
"wheel-down": {
|
||||
"description": "Команда для выполнения при прокрутке колеса вниз.",
|
||||
"label": "Команда прокрутки колеса вниз"
|
||||
},
|
||||
"wheel-mode-separate": {
|
||||
"description": "Включить раздельные команды для колеса прокрутки вверх и вниз",
|
||||
"label": "Раздельные команды колеса прокрутки"
|
||||
},
|
||||
"wheel-up": {
|
||||
"description": "Команда для выполнения при прокрутке колеса вверх.",
|
||||
"label": "Команда прокрутки колеса вверх"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
@@ -202,6 +223,10 @@
|
||||
"description": "Отображать обложку альбома для текущего воспроизводимого трека.",
|
||||
"label": "Показывать обложку альбома"
|
||||
},
|
||||
"show-artist-first": {
|
||||
"description": "Исполнитель - название вместо название - исполнитель.",
|
||||
"label": "Сначала исполнитель"
|
||||
},
|
||||
"show-visualizer": {
|
||||
"description": "Отображать аудиовизуализатор при воспроизведении музыки.",
|
||||
"label": "Показывать визуализатор"
|
||||
@@ -259,6 +284,10 @@
|
||||
"disk-critical-threshold": {
|
||||
"label": "Место на диске (Критично)"
|
||||
},
|
||||
"disk-path": {
|
||||
"description": "Выберите точку монтирования диска для мониторинга.",
|
||||
"label": "Путь к диску"
|
||||
},
|
||||
"disk-warning-threshold": {
|
||||
"label": "Место на диске (Предупреждение)"
|
||||
},
|
||||
@@ -314,13 +343,9 @@
|
||||
}
|
||||
},
|
||||
"taskbar-grouped": {
|
||||
"show-numbers-only-when-occupied": {
|
||||
"description": "Показывать номера рабочих пространств только для тех, на которых есть открытые окна.",
|
||||
"label": "Показывать номера только при занятости"
|
||||
},
|
||||
"show-workspace-numbers": {
|
||||
"description": "Отображать номера рабочих пространств в верхнем левом углу групп задач.",
|
||||
"label": "Показывать номера рабочих пространств"
|
||||
"show-labels-only-when-occupied": {
|
||||
"description": "Отображать метку рабочего пространства только для тех рабочих пространств, в которых есть открытые окна.",
|
||||
"label": "Показывать метку только когда занято"
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
@@ -363,13 +388,6 @@
|
||||
"health": "Здоровье: {percent}%",
|
||||
"idle": "Простой.",
|
||||
"no-battery-detected": "Батарея не обнаружена.",
|
||||
"panel": {
|
||||
"balanced": "Сбалансированный ({percent}%)",
|
||||
"disabled": "Диспетчер батареи отключен",
|
||||
"full": "Полная емкость ({percent}%)",
|
||||
"lifespan": "Увеличенный срок службы ({percent}%)",
|
||||
"title": "Порог зарядки"
|
||||
},
|
||||
"plugged-in": "Подключено.",
|
||||
"time-left": "Осталось времени: {time}.",
|
||||
"time-until-full": "Время до полной зарядки: {time}."
|
||||
@@ -398,9 +416,61 @@
|
||||
"loading": "Загрузка погоды…"
|
||||
}
|
||||
},
|
||||
"changelog": {
|
||||
"error": {
|
||||
"fetch-failed": "Не удалось загрузить данные журнала изменений. Пожалуйста, попробуйте позже.",
|
||||
"rate-limit": "Превышен лимит GitHub. Попробуйте снова через несколько минут."
|
||||
},
|
||||
"panel": {
|
||||
"buttons": {
|
||||
"discord": "Присоединиться к нашему Discord",
|
||||
"dismiss": "Ок"
|
||||
},
|
||||
"empty": "Примечания к выпуску пока недоступны.",
|
||||
"highlight-title": "Основные изменения",
|
||||
"section": {
|
||||
"released": "Выпущено {date}",
|
||||
"version": "Версия {version}"
|
||||
},
|
||||
"subtitle": {
|
||||
"fresh": "Спасибо за установку Noctalia! Вот что входит в этот билд.",
|
||||
"updated": "Обновлено с {previousVersion}"
|
||||
},
|
||||
"title": "Что нового в {version}",
|
||||
"version": {
|
||||
"new-user": "Новая установка"
|
||||
}
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"tooltip": "Открыть календарь"
|
||||
},
|
||||
"context-menu": {
|
||||
"activate-app": "Активировать {app}",
|
||||
"clear-history": "Очистить историю",
|
||||
"close-app": "Закрыть {app}",
|
||||
"connect-vpn": "Подключиться к {name}",
|
||||
"cycle-visualizer": "Визуализатор циклов",
|
||||
"disable-bluetooth": "Отключить Bluetooth",
|
||||
"disable-dnd": "Отключить режим \"Не беспокоить\"",
|
||||
"disable-wifi": "Отключить Wi-Fi",
|
||||
"disconnect-vpn": "Отключить {name}",
|
||||
"enable-bluetooth": "Включить Bluetooth",
|
||||
"enable-dnd": "Не беспокоить",
|
||||
"enable-wifi": "Включить Wi-Fi",
|
||||
"next": "Следующий",
|
||||
"open-calendar": "Открыть календарь",
|
||||
"open-display-settings": "Настройки экрана",
|
||||
"open-launcher": "Открыть лаунчер",
|
||||
"open-mixer": "Аудиомикшер",
|
||||
"open-settings": "Открыть настройки",
|
||||
"pause": "Пауза",
|
||||
"play": "Играть",
|
||||
"previous": "Предыдущий",
|
||||
"random-wallpaper": "Случайные обои",
|
||||
"toggle-mute": "Включить/выключить звук",
|
||||
"widget-settings": "Настройки виджета"
|
||||
},
|
||||
"dock": {
|
||||
"menu": {
|
||||
"close": "Закрыть",
|
||||
@@ -564,6 +634,7 @@
|
||||
},
|
||||
"workspace-labels": {
|
||||
"index": "Индекс",
|
||||
"index+name": "Индекс и название",
|
||||
"name": "Имя",
|
||||
"none": "Нет"
|
||||
}
|
||||
@@ -579,8 +650,8 @@
|
||||
"search": "Поиск...",
|
||||
"search-icons": "например, noctalia, niri, battery, cloud",
|
||||
"search-launcher": "Поиск записей... или используйте > для команд",
|
||||
"search-wallpapers": "Введите для фильтрации обоев...",
|
||||
"search-wallhaven": "Поиск в Wallhaven...",
|
||||
"search-wallpapers": "Введите для фильтрации обоев...",
|
||||
"select": "Выбрать",
|
||||
"test": "Тест"
|
||||
},
|
||||
@@ -721,6 +792,11 @@
|
||||
"label": "Аудиоустройства"
|
||||
}
|
||||
},
|
||||
"external-mixer": {
|
||||
"description": "Введите команду или путь к приложению для запуска при активации функции внешнего аудиомикшера.",
|
||||
"label": "Команда внешнего аудиомикшера",
|
||||
"placeholder": "pwvucontrol || pavucontrol"
|
||||
},
|
||||
"media": {
|
||||
"excluded-player": {
|
||||
"description": "Добавьте ключевые слова для плееров, которые система должна игнорировать. Каждое ключевое слово должно быть на новой строке.",
|
||||
@@ -795,6 +871,10 @@
|
||||
"description": "Настройка непрозрачности фона панели.",
|
||||
"label": "Непрозрачность фона"
|
||||
},
|
||||
"capsule-opacity": {
|
||||
"description": "Установить уровень непрозрачности для фона виджетов, когда капсула отображается.",
|
||||
"label": "Непрозрачность капсулы"
|
||||
},
|
||||
"density": {
|
||||
"description": "Настройка отступов панели для компактного или просторного вида.",
|
||||
"label": "Плотность панели"
|
||||
@@ -887,6 +967,41 @@
|
||||
"label": "Темный режим"
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"error": {
|
||||
"description": "Не удалось удалить {scheme}",
|
||||
"title": "Ошибка удаления"
|
||||
},
|
||||
"success": {
|
||||
"description": "{scheme} успешно удалена",
|
||||
"title": "Цветовая схема удалена"
|
||||
}
|
||||
},
|
||||
"download": {
|
||||
"button": "Загрузить ещё",
|
||||
"delete": "Удалить",
|
||||
"download": "Загрузить",
|
||||
"downloading": "Загрузка...",
|
||||
"empty": "Нет доступных цветовых схем",
|
||||
"error": {
|
||||
"api-error": "Ошибка API: {status}",
|
||||
"description": "Не удалось загрузить {scheme}",
|
||||
"download-failed": "Ошибка загрузки с кодом выхода: {code}",
|
||||
"invalid-response": "Неверный формат ответа API",
|
||||
"no-files": "Файлы для схемы не найдены",
|
||||
"parse-failed": "Ошибка парсинга ответа API: {error}",
|
||||
"rate-limit": "Превышен лимит запросов GitHub API",
|
||||
"title": "Ошибка загрузки"
|
||||
},
|
||||
"fetching": "Получение доступных цветовых схем...",
|
||||
"installed": "Установлено",
|
||||
"refresh": "Обновить",
|
||||
"success": {
|
||||
"description": "{scheme} успешно загружена",
|
||||
"title": "Цветовая схема загружена"
|
||||
},
|
||||
"title": "Загрузить цветовые схемы"
|
||||
},
|
||||
"predefined": {
|
||||
"generate-templates": {
|
||||
"description": "Генерировать шаблоны Matugen (GTK, темы терминала и т. д.) при использовании предопределенных цветовых схем.",
|
||||
@@ -929,6 +1044,10 @@
|
||||
"description": "Записать {filepath}. Тему Comfy нужно установить и активировать вручную.",
|
||||
"description-missing": "Требуется установка {app}"
|
||||
},
|
||||
"telegram": {
|
||||
"description": "Записать {filepath}.",
|
||||
"description-missing": "Требуется установка {app}"
|
||||
},
|
||||
"vicinae": {
|
||||
"description": "Записать {filepath} и перезагрузить",
|
||||
"description-missing": "Требуется установка {app}"
|
||||
@@ -1125,6 +1244,10 @@
|
||||
"description": "Настройка непрозрачности фона панели приложений.",
|
||||
"label": "Непрозрачность фона"
|
||||
},
|
||||
"border-radius": {
|
||||
"description": "Измените радиус границы дока.",
|
||||
"label": "Радиус скругления границы"
|
||||
},
|
||||
"colorize-icons": {
|
||||
"description": "Применить цвета темы к иконкам приложений на панели (только для нефокусированных приложений).",
|
||||
"label": "Раскрасить иконки"
|
||||
@@ -1276,6 +1399,10 @@
|
||||
"description": "Настройка непрозрачности фона запуска.",
|
||||
"label": "Непрозрачность фона"
|
||||
},
|
||||
"clip-preview": {
|
||||
"description": "Показывать предварительный просмотр содержимого буфера обмена при использовании команды >clip.",
|
||||
"label": "Включить предварительный просмотр буфера обмена"
|
||||
},
|
||||
"clipboard-history": {
|
||||
"description": "Доступ к ранее скопированным элементам из запуска.",
|
||||
"label": "Включить историю буфера обмена"
|
||||
@@ -1364,6 +1491,10 @@
|
||||
"description": "Выберите предпочитаемую единицу измерения температуры.",
|
||||
"label": "Погода"
|
||||
},
|
||||
"show-effects": {
|
||||
"description": "Отображает дополнительные визуальные эффекты (например, дождь, снег или молнию) на карточке погоды.",
|
||||
"label": "Отображать погодные эффекты"
|
||||
},
|
||||
"show-in-calendar": {
|
||||
"description": "Показывать ежедневный прогноз погоды непосредственно в вашем календаре.",
|
||||
"label": "Отображать погоду в календаре"
|
||||
@@ -1379,6 +1510,10 @@
|
||||
"description": "Автоматически блокировать экран при приостановке работы системы.",
|
||||
"label": "Блокировать при приостановке"
|
||||
},
|
||||
"show-hibernate": {
|
||||
"description": "Показывать опцию 'спящий режим' в действиях питания.",
|
||||
"label": "Показывать спящий режим"
|
||||
},
|
||||
"title": "Экран блокировки"
|
||||
},
|
||||
"network": {
|
||||
@@ -1663,6 +1798,10 @@
|
||||
}
|
||||
},
|
||||
"user-interface": {
|
||||
"allow-panels-without-bar": {
|
||||
"description": "Когда включено, панели могут открываться на любом экране. Когда выключено, панели будут открываться только на экранах с панелью, что может снизить использование памяти.",
|
||||
"label": "Разрешить панели на экранах без панели задач."
|
||||
},
|
||||
"animation-disable": {
|
||||
"description": "Отключить все анимации для более быстрого и отзывчивого взаимодействия.",
|
||||
"label": "Отключить анимации интерфейса"
|
||||
@@ -1870,19 +2009,6 @@
|
||||
"low": "Низкий заряд батареи",
|
||||
"low-desc": "Заряд батареи {percent}%. Пожалуйста, подключите зарядное устройство."
|
||||
},
|
||||
"battery-manager": {
|
||||
"initial-setup": "Требуется начальная настройка",
|
||||
"install-failed": "Сбой установки",
|
||||
"install-missing": "Отсутствуют необходимые файлы",
|
||||
"install-success": "Успешно установлено",
|
||||
"install-unsupported": "Система не поддерживается",
|
||||
"set-failed": "Не удалось установить порог зарядки батареи",
|
||||
"set-success-desc": "Порог зарядки батареи установлен на {percent}%",
|
||||
"title": "Порог зарядки батареи",
|
||||
"uninstall-failed": "Сбой удаления",
|
||||
"uninstall-setup": "Удаление, требуется аутентификация",
|
||||
"uninstall-success": "Успешно удалено"
|
||||
},
|
||||
"bluetooth": {
|
||||
"disabled": "Отключен",
|
||||
"enabled": "Включен"
|
||||
@@ -1951,6 +2077,10 @@
|
||||
"title-matugen": "Сбой обработки шаблонов Matugen",
|
||||
"title-predefined": "Сбой обработки предопределенной цветовой схемы"
|
||||
},
|
||||
"vpn": {
|
||||
"connected": "Подключено к '{name}'",
|
||||
"disconnected": "Отключено от '{name}'"
|
||||
},
|
||||
"wallpaper-colors": {
|
||||
"disabled": "Цвета обоев отключены",
|
||||
"enabled": "Цвета обоев включены",
|
||||
@@ -1984,6 +2114,7 @@
|
||||
"input-muted": "Переключить заглушение ввода",
|
||||
"keep-awake": "Не засыпать",
|
||||
"keyboard-layout": "Раскладка клавиатуры {layout}",
|
||||
"manage-vpn": "Управлять VPN-подключениями",
|
||||
"manage-wifi": "Управление Wi-Fi",
|
||||
"microphone-volume-at": "Громкость микрофона {volume}%\nЛевый клик для настроек. Правый клик для переключения заглушения.\nПрокрутка для изменения громкости.",
|
||||
"move-to-center-section": "Переместить в центральную секцию",
|
||||
@@ -2047,6 +2178,11 @@
|
||||
"label": "Категории",
|
||||
"people": "Люди"
|
||||
},
|
||||
"order": {
|
||||
"asc": "По возрастанию",
|
||||
"desc": "По убыванию",
|
||||
"label": "Порядок"
|
||||
},
|
||||
"purity": {
|
||||
"all": "Все",
|
||||
"label": "Фильтр контента",
|
||||
@@ -2071,21 +2207,16 @@
|
||||
"toplist": "Топ-лист",
|
||||
"views": "Просмотры"
|
||||
},
|
||||
"order": {
|
||||
"asc": "По возрастанию",
|
||||
"desc": "По убыванию",
|
||||
"label": "Порядок"
|
||||
},
|
||||
"wallhaven-settings": {
|
||||
"apply": "Применить",
|
||||
"title": "Настройки Wallhaven"
|
||||
},
|
||||
"source": {
|
||||
"label": "Источник",
|
||||
"local": "Локальный",
|
||||
"wallhaven": "Wallhaven"
|
||||
},
|
||||
"title": "Выбор обоев"
|
||||
"title": "Выбор обоев",
|
||||
"wallhaven-settings": {
|
||||
"apply": "Применить",
|
||||
"title": "Настройки Wallhaven"
|
||||
}
|
||||
},
|
||||
"transitions": {
|
||||
"disc": "Диск",
|
||||
@@ -2096,10 +2227,11 @@
|
||||
"wipe": "Стирание"
|
||||
},
|
||||
"try-different-search": "Попробуйте другой поисковый запрос.",
|
||||
"unknown": "Неизвестно",
|
||||
"wallhaven": {
|
||||
"loading": "Загрузка обоев...",
|
||||
"no-results": "Обои не найдены. Попробуйте другой поисковый запрос.",
|
||||
"page": "Страница {current} из {total}"
|
||||
"page": "{current} из {total}"
|
||||
}
|
||||
},
|
||||
"weather": {
|
||||
@@ -2209,6 +2341,7 @@
|
||||
},
|
||||
"wifi": {
|
||||
"panel": {
|
||||
"available-networks": "Доступные сети",
|
||||
"connect": "Подключить",
|
||||
"connected": "Подключено",
|
||||
"disabled": "Wi-Fi отключен",
|
||||
@@ -2219,6 +2352,7 @@
|
||||
"forget": "Забыть",
|
||||
"forget-network": "Забыть эту сеть?",
|
||||
"forgetting": "Забывание...",
|
||||
"known-networks": "Известные сети",
|
||||
"no-networks": "Сети не найдены",
|
||||
"password": "Пароль",
|
||||
"saved": "Сохранено",
|
||||
|
||||
@@ -123,10 +123,6 @@
|
||||
"stream-description": "Sürekli çalıştırılacak bir komut girin."
|
||||
},
|
||||
"dynamic-text": "Dinamik metin",
|
||||
"hide-vertical": {
|
||||
"description": "Etkinleştirilirse, komut çıktısındaki metin, çubuk dikey düzende (sol veya sağ) olduğunda gösterilmeyecektir.",
|
||||
"label": "Dikey çubukta metni gizle"
|
||||
},
|
||||
"icon": {
|
||||
"description": "Kütüphaneden bir ikon seçin.",
|
||||
"label": "İkon"
|
||||
@@ -136,6 +132,14 @@
|
||||
"label": "Sol tıklama",
|
||||
"update-text": "Sol tıklamayla görüntülenen metni güncelle"
|
||||
},
|
||||
"max-text-length-horizontal": {
|
||||
"description": "Yatay çubukta gösterilecek maksimum karakter sayısı (metni gizlemek için 0)",
|
||||
"label": "Maks. metin uzunluğu (yatay)"
|
||||
},
|
||||
"max-text-length-vertical": {
|
||||
"description": "Dikey çubukta gösterilecek maksimum karakter sayısı (metni gizlemek için 0)",
|
||||
"label": "Maks. metin uzunluğu (dikey)"
|
||||
},
|
||||
"middle-click": {
|
||||
"description": "Butona orta tıklandığında yürütülecek komut.",
|
||||
"label": "Orta tıklama",
|
||||
@@ -157,6 +161,23 @@
|
||||
"text-stream": {
|
||||
"description": "Komuttan gelen akış satırları butonda metin olarak gösterilecektir.",
|
||||
"label": "Akış"
|
||||
},
|
||||
"wheel": {
|
||||
"description": "Kaydırma tekerleği kullanıldığında yürütülecek komut.\nKomutta kaydırma tekerleği deltası için $delta kullanın",
|
||||
"label": "Kaydırma tekerleği",
|
||||
"update-text": "Kaydırmada gösterilen metni güncelle"
|
||||
},
|
||||
"wheel-down": {
|
||||
"description": "Kaydırma tekerleği aşağı kaydırıldığında yürütülecek komut.",
|
||||
"label": "Kaydırma tekerleği aşağı komutu"
|
||||
},
|
||||
"wheel-mode-separate": {
|
||||
"description": "Kaydırma tekerleği yukarı ve aşağı için ayrı komutları etkinleştir",
|
||||
"label": "Ayrı kaydırma tekerleği komutları"
|
||||
},
|
||||
"wheel-up": {
|
||||
"description": "Kaydırma tekerleği yukarı kaydırıldığında yürütülecek komut.",
|
||||
"label": "Kaydırma tekerleği yukarı komutu"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
@@ -202,6 +223,10 @@
|
||||
"description": "Şu anda çalan parçanın albüm kapak sanatını göster.",
|
||||
"label": "Albüm kapağını göster"
|
||||
},
|
||||
"show-artist-first": {
|
||||
"description": "Sanatçı - başlık yerine başlık - sanatçı olarak göster.",
|
||||
"label": "Önce sanatçıyı göster"
|
||||
},
|
||||
"show-visualizer": {
|
||||
"description": "Müzik çalarken bir ses görselleştirici göster.",
|
||||
"label": "Görselleştiriciyi göster"
|
||||
@@ -259,6 +284,10 @@
|
||||
"disk-critical-threshold": {
|
||||
"label": "Depolama Alanı (Kritik)"
|
||||
},
|
||||
"disk-path": {
|
||||
"description": "İzlenecek disk bağlama noktasını seçin.",
|
||||
"label": "Disk yolu"
|
||||
},
|
||||
"disk-warning-threshold": {
|
||||
"label": "Depolama Alanı (Uyarı)"
|
||||
},
|
||||
@@ -314,13 +343,9 @@
|
||||
}
|
||||
},
|
||||
"taskbar-grouped": {
|
||||
"show-numbers-only-when-occupied": {
|
||||
"description": "Çalışma alanı numaralarını yalnızca açık pencereleri olan çalışma alanları için göster.",
|
||||
"label": "Yalnızca dolu olduğunda numaraları göster"
|
||||
},
|
||||
"show-workspace-numbers": {
|
||||
"description": "Görev gruplarının sol üst köşesinde çalışma alanı numaralarını göster.",
|
||||
"label": "Çalışma alanı numaralarını göster"
|
||||
"show-labels-only-when-occupied": {
|
||||
"description": "Sadece açık pencereleri olan çalışma alanları için çalışma alanı etiketini göster.",
|
||||
"label": "Sadece dolu olduğunda etiketi göster."
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
@@ -363,13 +388,6 @@
|
||||
"health": "Sağlık: {percent}%",
|
||||
"idle": "Boşta.",
|
||||
"no-battery-detected": "Pil tespit edilmedi.",
|
||||
"panel": {
|
||||
"balanced": "Dengeli ({percent}%)",
|
||||
"disabled": "Pil yöneticisi devre dışı",
|
||||
"full": "Tam kapasite ({percent}%)",
|
||||
"lifespan": "Uzatılmış ömür ({percent}%)",
|
||||
"title": "Şarj eşiği"
|
||||
},
|
||||
"plugged-in": "Prize takılı.",
|
||||
"time-left": "Kalan süre: {time}.",
|
||||
"time-until-full": "Dolma süresi: {time}."
|
||||
@@ -398,9 +416,61 @@
|
||||
"loading": "Hava durumu yükleniyor..."
|
||||
}
|
||||
},
|
||||
"changelog": {
|
||||
"error": {
|
||||
"fetch-failed": "Değişiklik günlüğü verileri yüklenemedi. Lütfen daha sonra tekrar dene.",
|
||||
"rate-limit": "GitHub sınırına ulaşıldı. Lütfen birkaç dakika sonra tekrar dene."
|
||||
},
|
||||
"panel": {
|
||||
"buttons": {
|
||||
"discord": "Discord sunucumuza katıl",
|
||||
"dismiss": "Tamam"
|
||||
},
|
||||
"empty": "Sürüm notları henüz hazır değil.",
|
||||
"highlight-title": "Öne çıkanlar",
|
||||
"section": {
|
||||
"released": "{date} tarihinde yayımlandı",
|
||||
"version": "Sürüm {version}"
|
||||
},
|
||||
"subtitle": {
|
||||
"fresh": "Noctalia’yı kurduğun için teşekkürler! Bu sürümde gelenler bunlar.",
|
||||
"updated": "{previousVersion} sürümünden güncellendi"
|
||||
},
|
||||
"title": "{version} sürümünde neler yeni",
|
||||
"version": {
|
||||
"new-user": "Yeni kurulum"
|
||||
}
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"tooltip": "Takvimi aç"
|
||||
},
|
||||
"context-menu": {
|
||||
"activate-app": "{app}'i etkinleştir",
|
||||
"clear-history": "Geçmişi temizle",
|
||||
"close-app": "{app}'i kapat",
|
||||
"connect-vpn": "{name} bağlantısına bağlan",
|
||||
"cycle-visualizer": "Döngü görselleştirici",
|
||||
"disable-bluetooth": "Bluetooth'u kapat",
|
||||
"disable-dnd": "Rahatsız Etmeyin'i Kapat",
|
||||
"disable-wifi": "Wi-Fi'ı kapat",
|
||||
"disconnect-vpn": "{name} bağlantısını kes",
|
||||
"enable-bluetooth": "Bluetooth'u etkinleştir",
|
||||
"enable-dnd": "Rahatsız Etmeyin'i Etkinleştir",
|
||||
"enable-wifi": "Wi-Fi'ı etkinleştir",
|
||||
"next": "Sonraki",
|
||||
"open-calendar": "Takvimi aç",
|
||||
"open-display-settings": "Ekran ayarları",
|
||||
"open-launcher": "Başlatıcıyı aç",
|
||||
"open-mixer": "Ses mikseri",
|
||||
"open-settings": "Ayarları aç",
|
||||
"pause": "Duraklat",
|
||||
"play": "Oyna",
|
||||
"previous": "Önceki",
|
||||
"random-wallpaper": "Rastgele duvar kağıdı",
|
||||
"toggle-mute": "Sesi kapat/aç",
|
||||
"widget-settings": "Araç ayarları"
|
||||
},
|
||||
"dock": {
|
||||
"menu": {
|
||||
"close": "Kapat",
|
||||
@@ -564,6 +634,7 @@
|
||||
},
|
||||
"workspace-labels": {
|
||||
"index": "İndeks",
|
||||
"index+name": "Dizin ve Ad",
|
||||
"name": "İsim",
|
||||
"none": "Hiçbiri"
|
||||
}
|
||||
@@ -579,8 +650,8 @@
|
||||
"search": "Ara...",
|
||||
"search-icons": "örn., noctalia, niri, battery, cloud",
|
||||
"search-launcher": "Girişleri arayın... veya > komutları için kullanın",
|
||||
"search-wallpapers": "Duvar kağıtlarını filtrelemek için yazın...",
|
||||
"search-wallhaven": "Wallhaven'da ara...",
|
||||
"search-wallpapers": "Duvar kağıtlarını filtrelemek için yazın...",
|
||||
"select": "Seç",
|
||||
"test": "Test"
|
||||
},
|
||||
@@ -721,6 +792,11 @@
|
||||
"label": "Ses cihazları"
|
||||
}
|
||||
},
|
||||
"external-mixer": {
|
||||
"description": "Harici ses mikseri özelliği etkinleştirilirken başlatılacak komutu veya uygulama yolunu girin.",
|
||||
"label": "Harici Ses Mikseri Komutu",
|
||||
"placeholder": "pwvucontrol || pavucontrol"
|
||||
},
|
||||
"media": {
|
||||
"excluded-player": {
|
||||
"description": "Sistemin yoksaymasını istediğiniz oynatıcılar için anahtar kelimeler ekleyin. Her anahtar kelime ayrı bir satırda olmalıdır.",
|
||||
@@ -795,6 +871,10 @@
|
||||
"description": "Barın arka plan opaklığını ayarlayın.",
|
||||
"label": "Arka plan opaklığı"
|
||||
},
|
||||
"capsule-opacity": {
|
||||
"description": "Kapsül gösterildiğinde widget arka planlarının saydamlık seviyesini ayarla.",
|
||||
"label": "Kapsül saydamlığı"
|
||||
},
|
||||
"density": {
|
||||
"description": "Sıkı veya geniş bir görünüm için barın dolgusunu ayarlayın.",
|
||||
"label": "Bar yoğunluğu"
|
||||
@@ -887,6 +967,41 @@
|
||||
"label": "Koyu mod"
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"error": {
|
||||
"description": "{scheme} silinemedi",
|
||||
"title": "Silme başarısız"
|
||||
},
|
||||
"success": {
|
||||
"description": "{scheme} başarıyla silindi",
|
||||
"title": "Renk şeması silindi"
|
||||
}
|
||||
},
|
||||
"download": {
|
||||
"button": "Daha fazla indir",
|
||||
"delete": "Sil",
|
||||
"download": "İndir",
|
||||
"downloading": "İndiriliyor...",
|
||||
"empty": "Mevcut renk şeması yok",
|
||||
"error": {
|
||||
"api-error": "API hatası: {status}",
|
||||
"description": "{scheme} indirilemedi",
|
||||
"download-failed": "İndirme başarısız, çıkış kodu: {code}",
|
||||
"invalid-response": "Geçersiz API yanıt formatı",
|
||||
"no-files": "Şema için dosya bulunamadı",
|
||||
"parse-failed": "API yanıtı ayrıştırılamadı: {error}",
|
||||
"rate-limit": "GitHub API hız sınırı aşıldı",
|
||||
"title": "İndirme başarısız"
|
||||
},
|
||||
"fetching": "Mevcut renk şemaları alınıyor...",
|
||||
"installed": "Yüklü",
|
||||
"refresh": "Yenile",
|
||||
"success": {
|
||||
"description": "{scheme} başarıyla indirildi",
|
||||
"title": "Renk şeması indirildi"
|
||||
},
|
||||
"title": "Renk şemalarını indir"
|
||||
},
|
||||
"predefined": {
|
||||
"generate-templates": {
|
||||
"description": "Önceden tanımlanmış renk şemaları kullanırken Matugen şablonları (GTK, terminal temaları vb.) oluşturun.",
|
||||
@@ -929,6 +1044,10 @@
|
||||
"description": "{filepath} dosyasına yaz. Comfy temasının kurulu ve manuel olarak etkinleştirilmiş olması gerekir.",
|
||||
"description-missing": "Kurulum için {app} gereklidir"
|
||||
},
|
||||
"telegram": {
|
||||
"description": "{filepath} dosyasına yaz.",
|
||||
"description-missing": "Kurulum için {app} gereklidir"
|
||||
},
|
||||
"vicinae": {
|
||||
"description": "{filepath} dosyasına yaz ve yeniden yükle",
|
||||
"description-missing": "Kurulum için {app} gereklidir"
|
||||
@@ -1125,6 +1244,10 @@
|
||||
"description": "Dock'un arka plan opaklığını ayarlayın.",
|
||||
"label": "Arka plan opaklığı"
|
||||
},
|
||||
"border-radius": {
|
||||
"description": "Dock'un kenar yarıçapını ayarla.",
|
||||
"label": "Kenar yarıçapı"
|
||||
},
|
||||
"colorize-icons": {
|
||||
"description": "Dock uygulama simgelerine tema renklerini uygulayın (sadece odaklanılmamış uygulamalar).",
|
||||
"label": "Simgeleri Renklendir"
|
||||
@@ -1276,6 +1399,10 @@
|
||||
"description": "Başlatıcının arka plan opaklığını ayarlayın.",
|
||||
"label": "Arka plan opaklığı"
|
||||
},
|
||||
"clip-preview": {
|
||||
"description": ">clip komutu kullanılırken panodaki içeriğin önizlemesini gösterir.",
|
||||
"label": "Panoyu önizlemeyi etkinleştir"
|
||||
},
|
||||
"clipboard-history": {
|
||||
"description": "Başlatıcıdan daha önce kopyalanan öğelere erişin.",
|
||||
"label": "Pano geçmişini etkinleştir"
|
||||
@@ -1364,6 +1491,10 @@
|
||||
"description": "Tercih ettiğiniz sıcaklık birimini seçin.",
|
||||
"label": "Hava durumu"
|
||||
},
|
||||
"show-effects": {
|
||||
"description": "Hava durumu kartında ek görsel efektler (yağmur, kar veya şimşek gibi) gösterir.",
|
||||
"label": "Hava efektlerini göster"
|
||||
},
|
||||
"show-in-calendar": {
|
||||
"description": "Günlük hava durumu tahminini doğrudan takvim görünümünüzde gösterin.",
|
||||
"label": "Takvimde hava durumunu göster"
|
||||
@@ -1379,6 +1510,10 @@
|
||||
"description": "Sistemi askıya alırken otomatik olarak ekranı kilitler.",
|
||||
"label": "Askıya alırken kilitle"
|
||||
},
|
||||
"show-hibernate": {
|
||||
"description": "Güç işlemlerinde 'hazırda beklet' seçeneğini göster.",
|
||||
"label": "Hazırda beklet seçeneğini göster"
|
||||
},
|
||||
"title": "Ekran Kilit"
|
||||
},
|
||||
"network": {
|
||||
@@ -1663,6 +1798,10 @@
|
||||
}
|
||||
},
|
||||
"user-interface": {
|
||||
"allow-panels-without-bar": {
|
||||
"description": "Etkinleştirildiğinde, paneller herhangi bir ekranda açılabilir. Devre dışı bırakıldığında, paneller yalnızca bir çubuğu olan ekranlarda açılır, bu da bellek kullanımını azaltabilir.",
|
||||
"label": "Çubuksuz ekranlardaki panellere izin ver."
|
||||
},
|
||||
"animation-disable": {
|
||||
"description": "Daha hızlı ve daha duyarlı bir deneyim için tüm animasyonları devre dışı bırakın.",
|
||||
"label": "UI Animasyonlarını Devre Dışı Bırak"
|
||||
@@ -1870,19 +2009,6 @@
|
||||
"low": "Düşük batarya",
|
||||
"low-desc": "Batarya % {percent}. Lütfen şarj bağlantısını yapın."
|
||||
},
|
||||
"battery-manager": {
|
||||
"initial-setup": "Başlangıç kurulumu gerekli",
|
||||
"install-failed": "Kurulum başarısız oldu",
|
||||
"install-missing": "Gerekli dosyalar eksik",
|
||||
"install-success": "Başarıyla kuruldu",
|
||||
"install-unsupported": "Sistem desteklenmiyor",
|
||||
"set-failed": "Batarya eşiği ayarlanamadı",
|
||||
"set-success-desc": "Batarya eşiği % {percent} olarak ayarlandı",
|
||||
"title": "Batarya eşiği",
|
||||
"uninstall-failed": "Kaldırma başarısız oldu",
|
||||
"uninstall-setup": "Kaldırılıyor, kimlik doğrulama gerekli",
|
||||
"uninstall-success": "Başarıyla kaldırıldı"
|
||||
},
|
||||
"bluetooth": {
|
||||
"disabled": "Devre dışı",
|
||||
"enabled": "Etkin"
|
||||
@@ -1951,6 +2077,10 @@
|
||||
"title-matugen": "Matugen şablon işleme başarısız oldu.",
|
||||
"title-predefined": "Önceden tanımlanmış renk şeması işleme başarısız oldu."
|
||||
},
|
||||
"vpn": {
|
||||
"connected": "'{name}' ile bağlantı kuruldu",
|
||||
"disconnected": "'{name}' bağlantısı kesildi"
|
||||
},
|
||||
"wallpaper-colors": {
|
||||
"disabled": "Duvar kağıdı renkleri devre dışı",
|
||||
"enabled": "Duvar kağıdı renkleri etkin",
|
||||
@@ -1984,6 +2114,7 @@
|
||||
"input-muted": "Giriş sessizliğini değiştir",
|
||||
"keep-awake": "Uyanık kal",
|
||||
"keyboard-layout": "{layout} klavye düzeni",
|
||||
"manage-vpn": "VPN bağlantılarını yönet",
|
||||
"manage-wifi": "Wi-Fi yönet",
|
||||
"microphone-volume-at": "Mikrofon sesi %{volume}\nAyarlar için sol tık. Sessize almak için sağ tık.\nSesi değiştirmek için kaydırın.",
|
||||
"move-to-center-section": "Orta bölüme taşı",
|
||||
@@ -2047,6 +2178,11 @@
|
||||
"label": "Kategoriler",
|
||||
"people": "İnsanlar"
|
||||
},
|
||||
"order": {
|
||||
"asc": "Artan",
|
||||
"desc": "Azalan",
|
||||
"label": "Sıra"
|
||||
},
|
||||
"purity": {
|
||||
"all": "Tümü",
|
||||
"label": "İçerik filtresi",
|
||||
@@ -2071,21 +2207,16 @@
|
||||
"toplist": "En iyi liste",
|
||||
"views": "Görüntülemeler"
|
||||
},
|
||||
"order": {
|
||||
"asc": "Artan",
|
||||
"desc": "Azalan",
|
||||
"label": "Sıra"
|
||||
},
|
||||
"wallhaven-settings": {
|
||||
"apply": "Uygula",
|
||||
"title": "Wallhaven Ayarları"
|
||||
},
|
||||
"source": {
|
||||
"label": "Kaynak",
|
||||
"local": "Yerel",
|
||||
"wallhaven": "Wallhaven"
|
||||
},
|
||||
"title": "Duvar kağıdı seçici"
|
||||
"title": "Duvar kağıdı seçici",
|
||||
"wallhaven-settings": {
|
||||
"apply": "Uygula",
|
||||
"title": "Wallhaven Ayarları"
|
||||
}
|
||||
},
|
||||
"transitions": {
|
||||
"disc": "Disk",
|
||||
@@ -2096,10 +2227,11 @@
|
||||
"wipe": "Silme"
|
||||
},
|
||||
"try-different-search": "Farklı bir arama sorgusu deneyin.",
|
||||
"unknown": "Bilinmiyor",
|
||||
"wallhaven": {
|
||||
"loading": "Duvar kağıtları yükleniyor...",
|
||||
"no-results": "Duvar kağıdı bulunamadı. Farklı bir arama sorgusu deneyin.",
|
||||
"page": "Sayfa {current} / {total}"
|
||||
"page": "{current} / {total}"
|
||||
}
|
||||
},
|
||||
"weather": {
|
||||
@@ -2209,6 +2341,7 @@
|
||||
},
|
||||
"wifi": {
|
||||
"panel": {
|
||||
"available-networks": "Kullanılabilir Ağlar",
|
||||
"connect": "Bağlan",
|
||||
"connected": "Bağlı",
|
||||
"disabled": "Wi-Fi devre dışı",
|
||||
@@ -2219,6 +2352,7 @@
|
||||
"forget": "Unut",
|
||||
"forget-network": "Bu ağı unut?",
|
||||
"forgetting": "Unutuluyor...",
|
||||
"known-networks": "Bilinen Ağlar",
|
||||
"no-networks": "Ağ bulunamadı",
|
||||
"password": "Şifre",
|
||||
"saved": "Kaydedildi",
|
||||
|
||||
@@ -123,10 +123,6 @@
|
||||
"stream-description": "Введіть команду для безперервного запуску."
|
||||
},
|
||||
"dynamic-text": "Динамічний текст",
|
||||
"hide-vertical": {
|
||||
"description": "Якщо увімкнено, текст з виводу команди не відображатиметься, коли панель знаходиться у вертикальному розташуванні (ліворуч або праворуч).",
|
||||
"label": "Приховати текст у вертикальній панелі"
|
||||
},
|
||||
"icon": {
|
||||
"description": "Вибрати значок з бібліотеки.",
|
||||
"label": "Значок"
|
||||
@@ -136,6 +132,14 @@
|
||||
"label": "Лівий клік",
|
||||
"update-text": "Оновити текст, що відображається, при натисканні лівою кнопкою миші"
|
||||
},
|
||||
"max-text-length-horizontal": {
|
||||
"description": "Максимальна кількість символів для відображення в горизонтальній панелі (0 щоб приховати текст)",
|
||||
"label": "Макс. довжина тексту (горизонтально)"
|
||||
},
|
||||
"max-text-length-vertical": {
|
||||
"description": "Максимальна кількість символів для відображення в вертикальній панелі (0 щоб приховати текст)",
|
||||
"label": "Макс. довжина тексту (вертикально)"
|
||||
},
|
||||
"middle-click": {
|
||||
"description": "Команда для виконання при середньому кліку на кнопку.",
|
||||
"label": "Середній клік",
|
||||
@@ -157,6 +161,23 @@
|
||||
"text-stream": {
|
||||
"description": "Потокові рядки з команди відображатимуться як текст на кнопці.",
|
||||
"label": "Потік"
|
||||
},
|
||||
"wheel": {
|
||||
"description": "Команда для виконання при використанні колеса прокрутки.\nВикористовуйте $delta для дельти колеса прокрутки в команді",
|
||||
"label": "Колесо прокрутки",
|
||||
"update-text": "Оновити відображуваний текст при прокрутці"
|
||||
},
|
||||
"wheel-down": {
|
||||
"description": "Команда для виконання при прокрутці колеса вниз.",
|
||||
"label": "Команда прокрутки колеса вниз"
|
||||
},
|
||||
"wheel-mode-separate": {
|
||||
"description": "Увімкнути окремі команди для колеса прокрутки вгору та вниз",
|
||||
"label": "Окремі команди колеса прокрутки"
|
||||
},
|
||||
"wheel-up": {
|
||||
"description": "Команда для виконання при прокрутці колеса вгору.",
|
||||
"label": "Команда прокрутки колеса вгору"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
@@ -202,6 +223,10 @@
|
||||
"description": "Відображати обкладинку альбому для поточного треку.",
|
||||
"label": "Показувати обкладинку альбому"
|
||||
},
|
||||
"show-artist-first": {
|
||||
"description": "Відображати виконавець - назва замість назва - виконавець.",
|
||||
"label": "Показувати спочатку виконавця"
|
||||
},
|
||||
"show-visualizer": {
|
||||
"description": "Відображати аудіовізуалізатор під час відтворення музики.",
|
||||
"label": "Показувати візуалізатор"
|
||||
@@ -259,6 +284,10 @@
|
||||
"disk-critical-threshold": {
|
||||
"label": "Місце на диску (Критичний)"
|
||||
},
|
||||
"disk-path": {
|
||||
"description": "Виберіть точку монтування диска для моніторингу.",
|
||||
"label": "Шлях до диска"
|
||||
},
|
||||
"disk-warning-threshold": {
|
||||
"label": "Місце на диску (Попередження)"
|
||||
},
|
||||
@@ -314,13 +343,9 @@
|
||||
}
|
||||
},
|
||||
"taskbar-grouped": {
|
||||
"show-numbers-only-when-occupied": {
|
||||
"description": "Показувати номери лише для робочих просторів з відкритими вікнами",
|
||||
"label": "Показувати номера лише коли зайнято"
|
||||
},
|
||||
"show-workspace-numbers": {
|
||||
"description": "Показувати номери робочих просторів у лівому верхньому куті групи завдань",
|
||||
"label": "Показувати номери робочих просторів"
|
||||
"show-labels-only-when-occupied": {
|
||||
"description": "Показувати мітку робочого простору лише для робочих просторів, які мають відкриті вікна.",
|
||||
"label": "Показувати мітку лише коли зайнято"
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
@@ -363,13 +388,6 @@
|
||||
"health": "Здоров'я: {percent}%",
|
||||
"idle": "Бездіяльність.",
|
||||
"no-battery-detected": "Батарею не виявлено.",
|
||||
"panel": {
|
||||
"balanced": "Збалансований ({percent}%)",
|
||||
"disabled": "Менеджер батареї вимкнено",
|
||||
"full": "Повна ємність ({percent}%)",
|
||||
"lifespan": "Подовжений термін служби ({percent}%)",
|
||||
"title": "Поріг зарядки"
|
||||
},
|
||||
"plugged-in": "Підключено.",
|
||||
"time-left": "Залишилось часу: {time}.",
|
||||
"time-until-full": "Час до повного заряду: {time}."
|
||||
@@ -398,9 +416,61 @@
|
||||
"loading": "Завантаження погоди…"
|
||||
}
|
||||
},
|
||||
"changelog": {
|
||||
"error": {
|
||||
"fetch-failed": "Не вдалося завантажити дані журналу змін. Будь ласка, спробуйте пізніше.",
|
||||
"rate-limit": "Перевищено ліміт GitHub. Спробуйте ще раз за кілька хвилин."
|
||||
},
|
||||
"panel": {
|
||||
"buttons": {
|
||||
"discord": "Приєднатися до нашого Discord",
|
||||
"dismiss": "Ок"
|
||||
},
|
||||
"empty": "Примітки до релізу ще недоступні.",
|
||||
"highlight-title": "Основні зміни",
|
||||
"section": {
|
||||
"released": "Випущено {date}",
|
||||
"version": "Версія {version}"
|
||||
},
|
||||
"subtitle": {
|
||||
"fresh": "Дякуємо, що встановили Noctalia! Ось що містить цей білд.",
|
||||
"updated": "Оновлено з {previousVersion}"
|
||||
},
|
||||
"title": "Що нового у {version}",
|
||||
"version": {
|
||||
"new-user": "Нове встановлення"
|
||||
}
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"tooltip": "Відкрити календар"
|
||||
},
|
||||
"context-menu": {
|
||||
"activate-app": "Активувати {app}",
|
||||
"clear-history": "Очистити історію",
|
||||
"close-app": "Закрити {app}",
|
||||
"connect-vpn": "Підключитися до {name}",
|
||||
"cycle-visualizer": "Візуалізатор циклів",
|
||||
"disable-bluetooth": "Вимкнути Bluetooth",
|
||||
"disable-dnd": "Вимкнути режим \"Не турбувати\"",
|
||||
"disable-wifi": "Вимкнути Wi-Fi",
|
||||
"disconnect-vpn": "Відключити {name}",
|
||||
"enable-bluetooth": "Увімкнути Bluetooth",
|
||||
"enable-dnd": "Увімкнути режим \"Не турбувати\"",
|
||||
"enable-wifi": "Увімкнути Wi-Fi",
|
||||
"next": "Наступний",
|
||||
"open-calendar": "Відкрити календар",
|
||||
"open-display-settings": "Параметри дисплея",
|
||||
"open-launcher": "Відкрити панель запуску",
|
||||
"open-mixer": "Аудіомікшер",
|
||||
"open-settings": "Відкрити налаштування",
|
||||
"pause": "Пауза",
|
||||
"play": "Грати",
|
||||
"previous": "Попередній",
|
||||
"random-wallpaper": "Випадкові шпалери",
|
||||
"toggle-mute": "Увімкнути/вимкнути звук",
|
||||
"widget-settings": "Налаштування віджета"
|
||||
},
|
||||
"dock": {
|
||||
"menu": {
|
||||
"close": "Закрити",
|
||||
@@ -564,6 +634,7 @@
|
||||
},
|
||||
"workspace-labels": {
|
||||
"index": "Індекс",
|
||||
"index+name": "Індекс та назва",
|
||||
"name": "Назва",
|
||||
"none": "Немає"
|
||||
}
|
||||
@@ -579,8 +650,8 @@
|
||||
"search": "Пошук...",
|
||||
"search-icons": "напр., noctalia, niri, battery, cloud",
|
||||
"search-launcher": "Пошук записів... або використовуйте > для команд",
|
||||
"search-wallpapers": "Введіть для фільтрації шпалер...",
|
||||
"search-wallhaven": "Пошук у Wallhaven...",
|
||||
"search-wallpapers": "Введіть для фільтрації шпалер...",
|
||||
"select": "Вибрати",
|
||||
"test": "Тест"
|
||||
},
|
||||
@@ -721,6 +792,11 @@
|
||||
"label": "Аудіопристрої"
|
||||
}
|
||||
},
|
||||
"external-mixer": {
|
||||
"description": "Введіть команду або шлях до програми для запуску при активації функції зовнішнього аудіомікшера.",
|
||||
"label": "Команда зовнішнього аудіомікшера",
|
||||
"placeholder": "pwvucontrol || pavucontrol"
|
||||
},
|
||||
"media": {
|
||||
"excluded-player": {
|
||||
"description": "Додайте ключові слова для плеєрів, які система має ігнорувати. Кожне ключове слово на новому рядку.",
|
||||
@@ -795,6 +871,10 @@
|
||||
"description": "Налаштуйте непрозорість фону панелі.",
|
||||
"label": "Непрозорість фону"
|
||||
},
|
||||
"capsule-opacity": {
|
||||
"description": "Встановити рівень непрозорості для фону віджетів, коли показано капсулу.",
|
||||
"label": "Непрозорість капсули"
|
||||
},
|
||||
"density": {
|
||||
"description": "Налаштуйте відступи панелі для компактного або просторого вигляду.",
|
||||
"label": "Щільність панелі"
|
||||
@@ -887,6 +967,41 @@
|
||||
"label": "Темний режим"
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"error": {
|
||||
"description": "Не вдалося видалити {scheme}",
|
||||
"title": "Помилка видалення"
|
||||
},
|
||||
"success": {
|
||||
"description": "{scheme} успішно видалено",
|
||||
"title": "Кольорову схему видалено"
|
||||
}
|
||||
},
|
||||
"download": {
|
||||
"button": "Завантажити ще",
|
||||
"delete": "Видалити",
|
||||
"download": "Завантажити",
|
||||
"downloading": "Завантаження...",
|
||||
"empty": "Немає доступних кольорових схем",
|
||||
"error": {
|
||||
"api-error": "Помилка API: {status}",
|
||||
"description": "Не вдалося завантажити {scheme}",
|
||||
"download-failed": "Помилка завантаження з кодом виходу: {code}",
|
||||
"invalid-response": "Невірний формат відповіді API",
|
||||
"no-files": "Файли для схеми не знайдено",
|
||||
"parse-failed": "Помилка парсингу відповіді API: {error}",
|
||||
"rate-limit": "Перевищено ліміт запитів GitHub API",
|
||||
"title": "Помилка завантаження"
|
||||
},
|
||||
"fetching": "Отримання доступних кольорових схем...",
|
||||
"installed": "Встановлено",
|
||||
"refresh": "Оновити",
|
||||
"success": {
|
||||
"description": "{scheme} успішно завантажено",
|
||||
"title": "Кольорову схему завантажено"
|
||||
},
|
||||
"title": "Завантажити кольорові схеми"
|
||||
},
|
||||
"predefined": {
|
||||
"generate-templates": {
|
||||
"description": "Генерувати шаблони Matugen (GTK, теми терміналу тощо) при використанні попередньо визначених колірних схем.",
|
||||
@@ -929,6 +1044,10 @@
|
||||
"description": "Записати {filepath}. Тему Comfy потрібно встановити та активувати вручну.",
|
||||
"description-missing": "Потрібна установка {app}"
|
||||
},
|
||||
"telegram": {
|
||||
"description": "Записати {filepath}.",
|
||||
"description-missing": "Потрібна установка {app}"
|
||||
},
|
||||
"vicinae": {
|
||||
"description": "Записати {filepath} та перезавантажити",
|
||||
"description-missing": "Потрібна установка {app}"
|
||||
@@ -1125,6 +1244,10 @@
|
||||
"description": "Налаштуйте непрозорість фону дока.",
|
||||
"label": "Непрозорість фону"
|
||||
},
|
||||
"border-radius": {
|
||||
"description": "Налаштуйте радіус заокруглення країв док-панелі.",
|
||||
"label": "Радіус заокруглення"
|
||||
},
|
||||
"colorize-icons": {
|
||||
"description": "Застосувати кольори теми до значків програм у доці (тільки неактивні програми).",
|
||||
"label": "Розфарбувати значки"
|
||||
@@ -1276,6 +1399,10 @@
|
||||
"description": "Налаштуйте непрозорість фону запускача.",
|
||||
"label": "Непрозорість фону"
|
||||
},
|
||||
"clip-preview": {
|
||||
"description": "Показувати попередній перегляд вмісту буфера обміну при використанні команди >clip.",
|
||||
"label": "Увімкнути попередній перегляд буфера обміну"
|
||||
},
|
||||
"clipboard-history": {
|
||||
"description": "Отримати доступ до раніше скопійованих елементів із запускача.",
|
||||
"label": "Увімкнути історію буфера обміну"
|
||||
@@ -1364,6 +1491,10 @@
|
||||
"description": "Виберіть бажану одиницю температури.",
|
||||
"label": "Погода"
|
||||
},
|
||||
"show-effects": {
|
||||
"description": "Показує додаткові візуальні ефекти (наприклад, дощ, сніг або блискавку) на картці погоди.",
|
||||
"label": "Відображати погодні ефекти"
|
||||
},
|
||||
"show-in-calendar": {
|
||||
"description": "Показувати щоденний прогноз погоди безпосередньо в календарі.",
|
||||
"label": "Відображати погоду в календарі"
|
||||
@@ -1379,6 +1510,10 @@
|
||||
"description": "Автоматично блокувати екран при призупиненні системи.",
|
||||
"label": "Блокувати при призупиненні"
|
||||
},
|
||||
"show-hibernate": {
|
||||
"description": "Показувати опцію 'сплячий режим' у діях живлення.",
|
||||
"label": "Показувати сплячий режим"
|
||||
},
|
||||
"title": "Екран блокування"
|
||||
},
|
||||
"network": {
|
||||
@@ -1663,6 +1798,10 @@
|
||||
}
|
||||
},
|
||||
"user-interface": {
|
||||
"allow-panels-without-bar": {
|
||||
"description": "Якщо ввімкнено, панелі можуть відкриватися на будь-якому екрані. Якщо вимкнено, панелі відкриватимуться лише на екранах, де є панель завдань, що може зменшити використання пам'яті.",
|
||||
"label": "Дозволити панелі на екранах без панелі завдань."
|
||||
},
|
||||
"animation-disable": {
|
||||
"description": "Вимкнути всі анімації для швидшого, більш відгукового досвіду.",
|
||||
"label": "Вимкнути анімації інтерфейсу"
|
||||
@@ -1870,19 +2009,6 @@
|
||||
"low": "Низький заряд батареї",
|
||||
"low-desc": "Батарея на {percent}%. Будь ласка, підключіть зарядний пристрій."
|
||||
},
|
||||
"battery-manager": {
|
||||
"initial-setup": "Потрібне початкове налаштування",
|
||||
"install-failed": "Помилка встановлення",
|
||||
"install-missing": "Необхідні файли відсутні",
|
||||
"install-success": "Встановлено успішно",
|
||||
"install-unsupported": "Система не підтримується",
|
||||
"set-failed": "Не вдалося встановити поріг батареї",
|
||||
"set-success-desc": "Поріг батареї встановлено на {percent}%",
|
||||
"title": "Поріг батареї",
|
||||
"uninstall-failed": "Помилка видалення",
|
||||
"uninstall-setup": "Видалення, потрібна автентифікація",
|
||||
"uninstall-success": "Видалено успішно"
|
||||
},
|
||||
"bluetooth": {
|
||||
"disabled": "Вимкнено",
|
||||
"enabled": "Увімкнено"
|
||||
@@ -1951,6 +2077,10 @@
|
||||
"title-matugen": "Помилка обробки шаблонів Matugen",
|
||||
"title-predefined": "Помилка обробки попередньо визначеної колірної схеми"
|
||||
},
|
||||
"vpn": {
|
||||
"connected": "Підключено до '{name}'",
|
||||
"disconnected": "Відключено від '{name}'"
|
||||
},
|
||||
"wallpaper-colors": {
|
||||
"disabled": "Кольори шпалер вимкнено",
|
||||
"enabled": "Кольори шпалер увімкнено",
|
||||
@@ -1984,6 +2114,7 @@
|
||||
"input-muted": "Перемкнути вимкнення входу",
|
||||
"keep-awake": "Не спати",
|
||||
"keyboard-layout": "Розкладка клавіатури {layout}",
|
||||
"manage-vpn": "Керувати підключеннями VPN",
|
||||
"manage-wifi": "Керувати Wi-Fi",
|
||||
"microphone-volume-at": "Гучність мікрофона на {volume}%\nЛівий клік для налаштувань. Правий клік для вимкнення звуку.\nПрокрутка для зміни гучності.",
|
||||
"move-to-center-section": "Перемістити в центральну секцію",
|
||||
@@ -2047,6 +2178,11 @@
|
||||
"label": "Категорії",
|
||||
"people": "Люди"
|
||||
},
|
||||
"order": {
|
||||
"asc": "За зростанням",
|
||||
"desc": "За спаданням",
|
||||
"label": "Порядок"
|
||||
},
|
||||
"purity": {
|
||||
"all": "Всі",
|
||||
"label": "Фільтр контенту",
|
||||
@@ -2071,21 +2207,16 @@
|
||||
"toplist": "Топ-лист",
|
||||
"views": "Перегляди"
|
||||
},
|
||||
"order": {
|
||||
"asc": "За зростанням",
|
||||
"desc": "За спаданням",
|
||||
"label": "Порядок"
|
||||
},
|
||||
"wallhaven-settings": {
|
||||
"apply": "Застосувати",
|
||||
"title": "Налаштування Wallhaven"
|
||||
},
|
||||
"source": {
|
||||
"label": "Джерело",
|
||||
"local": "Локальний",
|
||||
"wallhaven": "Wallhaven"
|
||||
},
|
||||
"title": "Вибір шпалер"
|
||||
"title": "Вибір шпалер",
|
||||
"wallhaven-settings": {
|
||||
"apply": "Застосувати",
|
||||
"title": "Налаштування Wallhaven"
|
||||
}
|
||||
},
|
||||
"transitions": {
|
||||
"disc": "Диск",
|
||||
@@ -2096,10 +2227,11 @@
|
||||
"wipe": "Змітання"
|
||||
},
|
||||
"try-different-search": "Спробуйте інший пошуковий запит.",
|
||||
"unknown": "Невідомо",
|
||||
"wallhaven": {
|
||||
"loading": "Завантаження шпалер...",
|
||||
"no-results": "Шпалери не знайдено. Спробуйте інший пошуковий запит.",
|
||||
"page": "Сторінка {current} з {total}"
|
||||
"page": "{current} з {total}"
|
||||
}
|
||||
},
|
||||
"weather": {
|
||||
@@ -2209,6 +2341,7 @@
|
||||
},
|
||||
"wifi": {
|
||||
"panel": {
|
||||
"available-networks": "Доступні мережі",
|
||||
"connect": "Підключити",
|
||||
"connected": "Підключено",
|
||||
"disabled": "Wi-Fi вимкнено",
|
||||
@@ -2219,6 +2352,7 @@
|
||||
"forget": "Забути",
|
||||
"forget-network": "Забути цю мережу?",
|
||||
"forgetting": "Забування...",
|
||||
"known-networks": "Відомі мережі",
|
||||
"no-networks": "Мереж не знайдено",
|
||||
"password": "Пароль",
|
||||
"saved": "Збережено",
|
||||
|
||||
@@ -123,10 +123,6 @@
|
||||
"stream-description": "输入一个要持续运行的命令。"
|
||||
},
|
||||
"dynamic-text": "动态文本",
|
||||
"hide-vertical": {
|
||||
"description": "如果启用,当栏处于垂直布局(左或右)时,将不显示命令输出的文本。",
|
||||
"label": "在垂直栏中隐藏文本"
|
||||
},
|
||||
"icon": {
|
||||
"description": "从库中选择图标。",
|
||||
"label": "图标"
|
||||
@@ -136,6 +132,14 @@
|
||||
"label": "左键点击",
|
||||
"update-text": "左键单击时更新显示的文本"
|
||||
},
|
||||
"max-text-length-horizontal": {
|
||||
"description": "在水平栏中显示的最大字符数(0 为隐藏文本)",
|
||||
"label": "最大文本长度(水平)"
|
||||
},
|
||||
"max-text-length-vertical": {
|
||||
"description": "在垂直栏中显示的最大字符数(0 为隐藏文本)",
|
||||
"label": "最大文本长度(垂直)"
|
||||
},
|
||||
"middle-click": {
|
||||
"description": "中键点击按钮时执行的命令。",
|
||||
"label": "中键点击",
|
||||
@@ -157,6 +161,23 @@
|
||||
"text-stream": {
|
||||
"description": "来自命令的流式输出行将作为文本显示在按钮上。",
|
||||
"label": "流"
|
||||
},
|
||||
"wheel": {
|
||||
"description": "使用滚轮时执行的命令。\n在命令中使用 $delta 表示滚轮增量",
|
||||
"label": "滚轮",
|
||||
"update-text": "滚轮滚动时更新显示的文本"
|
||||
},
|
||||
"wheel-down": {
|
||||
"description": "滚轮向下滚动时执行的命令。",
|
||||
"label": "滚轮向下命令"
|
||||
},
|
||||
"wheel-mode-separate": {
|
||||
"description": "为滚轮向上和向下启用单独的命令",
|
||||
"label": "分开滚轮命令"
|
||||
},
|
||||
"wheel-up": {
|
||||
"description": "滚轮向上滚动时执行的命令。",
|
||||
"label": "滚轮向上命令"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
@@ -202,6 +223,10 @@
|
||||
"description": "显示当前播放曲目的专辑封面。",
|
||||
"label": "显示专辑封面"
|
||||
},
|
||||
"show-artist-first": {
|
||||
"description": "显示艺术家 - 标题,而不是标题 - 艺术家。",
|
||||
"label": "先显示艺术家"
|
||||
},
|
||||
"show-visualizer": {
|
||||
"description": "播放音乐时显示音频可视化器。",
|
||||
"label": "显示可视化器"
|
||||
@@ -224,10 +249,10 @@
|
||||
"notification-history": {
|
||||
"hide-badge-when-zero": {
|
||||
"description": "当没有未读通知时隐藏通知徽章。",
|
||||
"label": "零时隐藏徽章"
|
||||
"label": "空时隐藏徽章"
|
||||
},
|
||||
"show-unread-badge": {
|
||||
"description": "显示显示未读通知数量的徽章。",
|
||||
"description": "显示一个用于展示未读通知数量的徽章。",
|
||||
"label": "显示未读徽章"
|
||||
}
|
||||
},
|
||||
@@ -259,6 +284,10 @@
|
||||
"disk-critical-threshold": {
|
||||
"label": "存储空间(严重)"
|
||||
},
|
||||
"disk-path": {
|
||||
"description": "选择要监控的磁盘挂载点。",
|
||||
"label": "磁盘路径"
|
||||
},
|
||||
"disk-warning-threshold": {
|
||||
"label": "存储空间(警告)"
|
||||
},
|
||||
@@ -314,13 +343,9 @@
|
||||
}
|
||||
},
|
||||
"taskbar-grouped": {
|
||||
"show-numbers-only-when-occupied": {
|
||||
"description": "只为有打开窗口的工作区显示编号",
|
||||
"label": "仅在有窗口时显示编号"
|
||||
},
|
||||
"show-workspace-numbers": {
|
||||
"description": "在任务组左上角显示工作区编号",
|
||||
"label": "显示工作区编号"
|
||||
"show-labels-only-when-occupied": {
|
||||
"description": "只显示有打开窗口的工作区标签。",
|
||||
"label": "仅在被占用时显示标签"
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
@@ -363,13 +388,6 @@
|
||||
"health": "健康状况:{percent}%",
|
||||
"idle": "空闲。",
|
||||
"no-battery-detected": "未检测到电池。",
|
||||
"panel": {
|
||||
"balanced": "平衡 ({percent}%)",
|
||||
"disabled": "电池管理器已禁用",
|
||||
"full": "完全容量 ({percent}%)",
|
||||
"lifespan": "延长寿命 ({percent}%)",
|
||||
"title": "充电阈值"
|
||||
},
|
||||
"plugged-in": "已接通电源。",
|
||||
"time-left": "剩余时间:{time}。",
|
||||
"time-until-full": "充满所需时间:{time}。"
|
||||
@@ -398,9 +416,61 @@
|
||||
"loading": "正在加载天气…"
|
||||
}
|
||||
},
|
||||
"changelog": {
|
||||
"error": {
|
||||
"fetch-failed": "无法加载更新日志数据,请稍后再试。",
|
||||
"rate-limit": "已达到 GitHub 速率限制,请稍后再试。"
|
||||
},
|
||||
"panel": {
|
||||
"buttons": {
|
||||
"discord": "加入我们的 Discord",
|
||||
"dismiss": "确定"
|
||||
},
|
||||
"empty": "暂时没有可用的发行说明。",
|
||||
"highlight-title": "重点更新",
|
||||
"section": {
|
||||
"released": "{date} 发布",
|
||||
"version": "版本 {version}"
|
||||
},
|
||||
"subtitle": {
|
||||
"fresh": "感谢安装 Noctalia!以下是本次构建包含的内容。",
|
||||
"updated": "已从 {previousVersion} 更新"
|
||||
},
|
||||
"title": "{version} 有哪些更新",
|
||||
"version": {
|
||||
"new-user": "全新安装"
|
||||
}
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"tooltip": "打开日历"
|
||||
},
|
||||
"context-menu": {
|
||||
"activate-app": "激活 {app}",
|
||||
"clear-history": "清除历史记录",
|
||||
"close-app": "关闭 {app}",
|
||||
"connect-vpn": "连接 {name}",
|
||||
"cycle-visualizer": "切换可视化器样式",
|
||||
"disable-bluetooth": "禁用蓝牙",
|
||||
"disable-dnd": "关闭勿扰模式",
|
||||
"disable-wifi": "禁用Wi-Fi",
|
||||
"disconnect-vpn": "断开 {name}",
|
||||
"enable-bluetooth": "启用蓝牙",
|
||||
"enable-dnd": "启用勿扰模式",
|
||||
"enable-wifi": "启用 Wi-Fi",
|
||||
"next": "下一首",
|
||||
"open-calendar": "打开日历",
|
||||
"open-display-settings": "显示设置",
|
||||
"open-launcher": "打开启动器",
|
||||
"open-mixer": "音频混音器",
|
||||
"open-settings": "打开设置",
|
||||
"pause": "暂停",
|
||||
"play": "播放",
|
||||
"previous": "上一首",
|
||||
"random-wallpaper": "随机壁纸",
|
||||
"toggle-mute": "切换静音",
|
||||
"widget-settings": "小部件设置"
|
||||
},
|
||||
"dock": {
|
||||
"menu": {
|
||||
"close": "关闭",
|
||||
@@ -564,6 +634,7 @@
|
||||
},
|
||||
"workspace-labels": {
|
||||
"index": "索引",
|
||||
"index+name": "索引和名称",
|
||||
"name": "名称",
|
||||
"none": "无"
|
||||
}
|
||||
@@ -579,8 +650,8 @@
|
||||
"search": "搜索...",
|
||||
"search-icons": "例如:noctalia, niri, battery, cloud",
|
||||
"search-launcher": "搜索条目...或使用 > 执行命令",
|
||||
"search-wallpapers": "输入以筛选壁纸...",
|
||||
"search-wallhaven": "搜索 Wallhaven...",
|
||||
"search-wallpapers": "输入以筛选壁纸...",
|
||||
"select": "选择",
|
||||
"test": "测试"
|
||||
},
|
||||
@@ -721,6 +792,11 @@
|
||||
"label": "音频设备"
|
||||
}
|
||||
},
|
||||
"external-mixer": {
|
||||
"description": "输入激活外部音频混音器功能时要启动的命令或应用程序路径。",
|
||||
"label": "外部音频混音器命令",
|
||||
"placeholder": "pwvucontrol || pavucontrol"
|
||||
},
|
||||
"media": {
|
||||
"excluded-player": {
|
||||
"description": "添加您希望系统忽略的播放器关键词。每个关键词应单独占一行。",
|
||||
@@ -795,6 +871,10 @@
|
||||
"description": "调整状态栏的背景不透明度。",
|
||||
"label": "背景不透明度"
|
||||
},
|
||||
"capsule-opacity": {
|
||||
"description": "设置显示胶囊时小部件背景的不透明度。",
|
||||
"label": "胶囊不透明度"
|
||||
},
|
||||
"density": {
|
||||
"description": "调整状态栏的内边距以获得紧凑或宽松的外观。",
|
||||
"label": "状态栏密度"
|
||||
@@ -887,6 +967,41 @@
|
||||
"label": "深色模式"
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"error": {
|
||||
"description": "删除 {scheme} 失败",
|
||||
"title": "删除失败"
|
||||
},
|
||||
"success": {
|
||||
"description": "成功删除 {scheme}",
|
||||
"title": "配色方案已删除"
|
||||
}
|
||||
},
|
||||
"download": {
|
||||
"button": "下载更多",
|
||||
"delete": "删除",
|
||||
"download": "下载",
|
||||
"downloading": "正在下载...",
|
||||
"empty": "没有可用的配色方案",
|
||||
"error": {
|
||||
"api-error": "API 错误: {status}",
|
||||
"description": "下载 {scheme} 失败",
|
||||
"download-failed": "下载失败,退出代码: {code}",
|
||||
"invalid-response": "无效的 API 响应格式",
|
||||
"no-files": "未找到方案的文件",
|
||||
"parse-failed": "解析 API 响应失败: {error}",
|
||||
"rate-limit": "GitHub API 速率限制已超出",
|
||||
"title": "下载失败"
|
||||
},
|
||||
"fetching": "正在获取可用的配色方案...",
|
||||
"installed": "已安装",
|
||||
"refresh": "刷新",
|
||||
"success": {
|
||||
"description": "成功下载 {scheme}",
|
||||
"title": "配色方案已下载"
|
||||
},
|
||||
"title": "下载配色方案"
|
||||
},
|
||||
"predefined": {
|
||||
"generate-templates": {
|
||||
"description": "使用预定义配色方案时生成 Matugen 模板(GTK、终端主题等)。",
|
||||
@@ -929,6 +1044,10 @@
|
||||
"description": "写入 {filepath}。Comfy 主题需要手动安装和激活。",
|
||||
"description-missing": "需要安装 {app}"
|
||||
},
|
||||
"telegram": {
|
||||
"description": "写入 {filepath}。",
|
||||
"description-missing": "需要安装 {app}"
|
||||
},
|
||||
"vicinae": {
|
||||
"description": "写入 {filepath} 并重新加载",
|
||||
"description-missing": "需要安装 {app}"
|
||||
@@ -1125,6 +1244,10 @@
|
||||
"description": "调整 Dock 的背景不透明度。",
|
||||
"label": "背景不透明度"
|
||||
},
|
||||
"border-radius": {
|
||||
"description": "调整程序坞的边框半径。",
|
||||
"label": "边框半径"
|
||||
},
|
||||
"colorize-icons": {
|
||||
"description": "将主题颜色应用到 Dock 应用图标(仅限非聚焦应用)。",
|
||||
"label": "着色图标"
|
||||
@@ -1276,6 +1399,10 @@
|
||||
"description": "调整启动器的背景不透明度。",
|
||||
"label": "背景不透明度"
|
||||
},
|
||||
"clip-preview": {
|
||||
"description": "在使用 >clip 命令时显示剪贴板内容的预览。",
|
||||
"label": "启用剪贴板预览"
|
||||
},
|
||||
"clipboard-history": {
|
||||
"description": "从启动器访问之前复制的项目。",
|
||||
"label": "启用剪贴板历史记录"
|
||||
@@ -1364,6 +1491,10 @@
|
||||
"description": "选择您喜欢的温度单位。",
|
||||
"label": "天气"
|
||||
},
|
||||
"show-effects": {
|
||||
"description": "在天气卡片上显示额外的视觉效果(如雨、雪或闪电)。",
|
||||
"label": "显示天气效果"
|
||||
},
|
||||
"show-in-calendar": {
|
||||
"description": "直接在您的日历视图中显示每日天气预报。",
|
||||
"label": "在日历中显示天气"
|
||||
@@ -1379,6 +1510,10 @@
|
||||
"description": "系统挂起时自动锁定屏幕。",
|
||||
"label": "挂起时锁定"
|
||||
},
|
||||
"show-hibernate": {
|
||||
"description": "在电源操作中显示'休眠'选项。",
|
||||
"label": "显示休眠"
|
||||
},
|
||||
"title": "锁屏"
|
||||
},
|
||||
"network": {
|
||||
@@ -1663,6 +1798,10 @@
|
||||
}
|
||||
},
|
||||
"user-interface": {
|
||||
"allow-panels-without-bar": {
|
||||
"description": "启用后,面板可以在任何屏幕上打开。禁用后,面板将仅在有栏的屏幕上打开,这可以减少内存使用。",
|
||||
"label": "允许在没有栏的屏幕上显示面板"
|
||||
},
|
||||
"animation-disable": {
|
||||
"description": "禁用所有动画以获得更快、更流畅的体验。",
|
||||
"label": "禁用 UI 动画"
|
||||
@@ -1870,19 +2009,6 @@
|
||||
"low": "电量低",
|
||||
"low-desc": "电量为 {percent}%。请连接充电器。"
|
||||
},
|
||||
"battery-manager": {
|
||||
"initial-setup": "需要初始设置",
|
||||
"install-failed": "安装失败",
|
||||
"install-missing": "缺少必要文件",
|
||||
"install-success": "安装成功",
|
||||
"install-unsupported": "系统不受支持",
|
||||
"set-failed": "设置电池阈值失败",
|
||||
"set-success-desc": "电池阈值已设置为 {percent}%",
|
||||
"title": "电池阈值",
|
||||
"uninstall-failed": "卸载失败",
|
||||
"uninstall-setup": "正在卸载,需要身份验证",
|
||||
"uninstall-success": "卸载成功"
|
||||
},
|
||||
"bluetooth": {
|
||||
"disabled": "已禁用",
|
||||
"enabled": "已启用"
|
||||
@@ -1951,6 +2077,10 @@
|
||||
"title-matugen": "Matugen模板处理失败",
|
||||
"title-predefined": "预定义的颜色方案处理失败"
|
||||
},
|
||||
"vpn": {
|
||||
"connected": "已连接到“{name}”",
|
||||
"disconnected": "已断开与“{name}”的连接"
|
||||
},
|
||||
"wallpaper-colors": {
|
||||
"disabled": "壁纸颜色已禁用",
|
||||
"enabled": "壁纸颜色已启用",
|
||||
@@ -1984,6 +2114,7 @@
|
||||
"input-muted": "静音输入设备",
|
||||
"keep-awake": "保持唤醒",
|
||||
"keyboard-layout": "{layout} 键盘布局",
|
||||
"manage-vpn": "管理 VPN 连接",
|
||||
"manage-wifi": "管理 Wi-Fi",
|
||||
"microphone-volume-at": "麦克风音量 {volume}%\n左键点击进入设置。右键点击切换静音。\n滚动滚轮调节音量。",
|
||||
"move-to-center-section": "移动到中央部分",
|
||||
@@ -2047,6 +2178,11 @@
|
||||
"label": "分类",
|
||||
"people": "人物"
|
||||
},
|
||||
"order": {
|
||||
"asc": "升序",
|
||||
"desc": "降序",
|
||||
"label": "顺序"
|
||||
},
|
||||
"purity": {
|
||||
"all": "全部",
|
||||
"label": "内容过滤器",
|
||||
@@ -2071,21 +2207,16 @@
|
||||
"toplist": "排行榜",
|
||||
"views": "浏览量"
|
||||
},
|
||||
"order": {
|
||||
"asc": "升序",
|
||||
"desc": "降序",
|
||||
"label": "顺序"
|
||||
},
|
||||
"wallhaven-settings": {
|
||||
"apply": "应用",
|
||||
"title": "Wallhaven 设置"
|
||||
},
|
||||
"source": {
|
||||
"label": "来源",
|
||||
"local": "本地",
|
||||
"wallhaven": "Wallhaven"
|
||||
},
|
||||
"title": "壁纸选择器"
|
||||
"title": "壁纸选择器",
|
||||
"wallhaven-settings": {
|
||||
"apply": "应用",
|
||||
"title": "Wallhaven 设置"
|
||||
}
|
||||
},
|
||||
"transitions": {
|
||||
"disc": "圆盘",
|
||||
@@ -2096,10 +2227,11 @@
|
||||
"wipe": "擦除"
|
||||
},
|
||||
"try-different-search": "尝试不同的搜索查询。",
|
||||
"unknown": "未知",
|
||||
"wallhaven": {
|
||||
"loading": "正在加载壁纸...",
|
||||
"no-results": "未找到壁纸。请尝试不同的搜索查询。",
|
||||
"page": "第 {current} 页,共 {total} 页"
|
||||
"page": "{current} / {total}"
|
||||
}
|
||||
},
|
||||
"weather": {
|
||||
@@ -2209,6 +2341,7 @@
|
||||
},
|
||||
"wifi": {
|
||||
"panel": {
|
||||
"available-networks": "可用网络",
|
||||
"connect": "连接",
|
||||
"connected": "已连接",
|
||||
"disabled": "Wi-Fi 已禁用",
|
||||
@@ -2219,6 +2352,7 @@
|
||||
"forget": "忘记",
|
||||
"forget-network": "忘记此网络?",
|
||||
"forgetting": "正在忘记...",
|
||||
"known-networks": "已知网络",
|
||||
"no-networks": "未找到网络",
|
||||
"password": "密码",
|
||||
"saved": "已保存",
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
"monitors": [],
|
||||
"density": "default",
|
||||
"showCapsule": true,
|
||||
"capsuleOpacity": 1,
|
||||
"floating": false,
|
||||
"marginVertical": 0.25,
|
||||
"marginHorizontal": 0.25,
|
||||
@@ -59,7 +60,7 @@
|
||||
},
|
||||
"general": {
|
||||
"avatarImage": "",
|
||||
"dimmerOpacity": 0.8,
|
||||
"dimmerOpacity": 0.6,
|
||||
"showScreenCorners": false,
|
||||
"forceBlackScreenCorners": false,
|
||||
"scaleRatio": 1,
|
||||
@@ -73,7 +74,8 @@
|
||||
"shadowDirection": "bottom_right",
|
||||
"shadowOffsetX": 2,
|
||||
"shadowOffsetY": 3,
|
||||
"language": ""
|
||||
"language": "",
|
||||
"allowPanelsOnScreenWithoutBar": true
|
||||
},
|
||||
"ui": {
|
||||
"fontDefault": "Roboto",
|
||||
@@ -88,6 +90,7 @@
|
||||
"location": {
|
||||
"name": "Tokyo",
|
||||
"weatherEnabled": true,
|
||||
"weatherShowEffects": true,
|
||||
"useFahrenheit": false,
|
||||
"use12hourFormat": false,
|
||||
"showWeekNumberInCalendar": false,
|
||||
@@ -127,7 +130,7 @@
|
||||
"hideWallpaperFilenames": false,
|
||||
"useWallhaven": false,
|
||||
"wallhavenQuery": "",
|
||||
"wallhavenSorting": "date_added",
|
||||
"wallhavenSorting": "relevance",
|
||||
"wallhavenOrder": "desc",
|
||||
"wallhavenCategories": "111",
|
||||
"wallhavenPurity": "100",
|
||||
@@ -137,6 +140,7 @@
|
||||
},
|
||||
"appLauncher": {
|
||||
"enableClipboardHistory": false,
|
||||
"enableClipPreview": true,
|
||||
"position": "center",
|
||||
"pinnedExecs": [],
|
||||
"useApp2Unit": false,
|
||||
@@ -217,6 +221,7 @@
|
||||
"enabled": true,
|
||||
"displayMode": "always_visible",
|
||||
"backgroundOpacity": 1,
|
||||
"radiusRatio": 0.1,
|
||||
"floatingRatio": 1,
|
||||
"size": 1,
|
||||
"onlySameOutput": true,
|
||||
@@ -286,7 +291,8 @@
|
||||
"visualizerType": "linear",
|
||||
"visualizerQuality": "high",
|
||||
"mprisBlacklist": [],
|
||||
"preferredPlayer": ""
|
||||
"preferredPlayer": "",
|
||||
"externalMixer": "pwvucontrol || pavucontrol"
|
||||
},
|
||||
"brightness": {
|
||||
"brightnessStep": 5,
|
||||
@@ -330,12 +336,12 @@
|
||||
"manualSunrise": "06:30",
|
||||
"manualSunset": "18:30"
|
||||
},
|
||||
"changelog": {
|
||||
"lastSeenVersion": ""
|
||||
},
|
||||
"hooks": {
|
||||
"enabled": false,
|
||||
"wallpaperChange": "",
|
||||
"darkModeChange": ""
|
||||
},
|
||||
"battery": {
|
||||
"chargingMode": 0
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
# Battery charge control paths
|
||||
# Add one path per line
|
||||
/sys/class/power_supply/BAT0/charge_control_end_threshold
|
||||
/sys/class/power_supply/BAT1/charge_control_end_threshold
|
||||
/sys/class/power_supply/BAT0/charge_stop_threshold
|
||||
@@ -1,178 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
SUCCESS=0
|
||||
FAILURE=1
|
||||
MISSING_FILES=2
|
||||
UNSUPPORTED=3
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
print_error() {
|
||||
echo -e "$1" >&2
|
||||
}
|
||||
|
||||
print_info() {
|
||||
echo -e "$1"
|
||||
}
|
||||
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
print_error "This script must be run with root privileges"
|
||||
exit $FAILURE
|
||||
fi
|
||||
|
||||
print_info "Installing Battery Manager..."
|
||||
echo
|
||||
|
||||
if [ -n "$PKEXEC_UID" ]; then
|
||||
ACTUAL_USER=$(getent passwd "$PKEXEC_UID" | cut -d: -f1)
|
||||
else
|
||||
ACTUAL_USER="$SUDO_USER"
|
||||
fi
|
||||
|
||||
if [ -z "$ACTUAL_USER" ]; then
|
||||
print_error "Could not determine the actual user"
|
||||
exit $FAILURE
|
||||
fi
|
||||
|
||||
print_info "Installing for user: $ACTUAL_USER"
|
||||
echo
|
||||
|
||||
print_info "Checking required files..."
|
||||
|
||||
MISSING_FILES_LIST=()
|
||||
|
||||
if [ ! -f "$SCRIPT_DIR/battery-paths.conf" ]; then
|
||||
MISSING_FILES_LIST+=("battery-paths.conf")
|
||||
fi
|
||||
|
||||
if [ ! -f "$SCRIPT_DIR/templates/battery-manager.sh" ]; then
|
||||
MISSING_FILES_LIST+=("battery-manager.sh")
|
||||
fi
|
||||
|
||||
if [ ! -f "$SCRIPT_DIR/templates/battery-manager.policy" ]; then
|
||||
MISSING_FILES_LIST+=("battery-manager.policy")
|
||||
fi
|
||||
|
||||
if [ ! -f "$SCRIPT_DIR/templates/battery-manager.rules" ]; then
|
||||
MISSING_FILES_LIST+=("battery-manager.rules")
|
||||
fi
|
||||
|
||||
if [ ${#MISSING_FILES_LIST[@]} -gt 0 ]; then
|
||||
print_error "Missing required files in $SCRIPT_DIR:"
|
||||
for file in "${MISSING_FILES_LIST[@]}"; do
|
||||
print_error " - $file"
|
||||
done
|
||||
exit $MISSING_FILES
|
||||
fi
|
||||
|
||||
print_info "All required files found"
|
||||
|
||||
print_info "Checking battery paths..."
|
||||
BATTERY_PATHS=($(grep -v '^#' "$SCRIPT_DIR/battery-paths.conf" | grep -v '^$'))
|
||||
EXISTING_PATHS=()
|
||||
|
||||
for path in "${BATTERY_PATHS[@]}"; do
|
||||
if [ -f "$path" ]; then
|
||||
EXISTING_PATHS+=("$path")
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ${#EXISTING_PATHS[@]} -eq 0 ]; then
|
||||
print_error "None of the battery control files exist. Please check your hardware compatibility."
|
||||
exit $UNSUPPORTED
|
||||
fi
|
||||
|
||||
print_info "Found ${#EXISTING_PATHS[@]} compatible battery control file(s)"
|
||||
|
||||
print_info "Installing battery manager script..."
|
||||
BATTERY_MANAGER_SCRIPT="/usr/bin/battery-manager-$ACTUAL_USER"
|
||||
|
||||
SHEBANG=$(head -n 1 "$SCRIPT_DIR/templates/battery-manager.sh")
|
||||
echo "$SHEBANG" > "$BATTERY_MANAGER_SCRIPT"
|
||||
echo "" >> "$BATTERY_MANAGER_SCRIPT"
|
||||
|
||||
echo "BATTERY_PATHS=(" >> "$BATTERY_MANAGER_SCRIPT"
|
||||
for path in "${EXISTING_PATHS[@]}"; do
|
||||
echo " \"$path\"" >> "$BATTERY_MANAGER_SCRIPT"
|
||||
done
|
||||
echo ")" >> "$BATTERY_MANAGER_SCRIPT"
|
||||
|
||||
echo "" >> "$BATTERY_MANAGER_SCRIPT"
|
||||
|
||||
tail -n +2 "$SCRIPT_DIR/templates/battery-manager.sh" >> "$BATTERY_MANAGER_SCRIPT"
|
||||
|
||||
chmod +x "$BATTERY_MANAGER_SCRIPT"
|
||||
|
||||
print_info "Battery manager script created from $SCRIPT_DIR/templates/battery-manager.sh with compatible paths"
|
||||
print_info "Script installed at $BATTERY_MANAGER_SCRIPT"
|
||||
|
||||
print_info "Creating log file..."
|
||||
touch /var/log/battery-manager.log
|
||||
chmod 644 /var/log/battery-manager.log
|
||||
print_info "Log file created at /var/log/battery-manager.log"
|
||||
|
||||
print_info "Creating polkit policy..."
|
||||
|
||||
POLICY_FILE="/usr/share/polkit-1/actions/com.local.battery-manager.$ACTUAL_USER.policy"
|
||||
|
||||
sed -e "s/ACTUAL_USER_PLACEHOLDER/$ACTUAL_USER/g" \
|
||||
"$SCRIPT_DIR/templates/battery-manager.policy" > "$POLICY_FILE"
|
||||
|
||||
print_info "Polkit policy copied from $SCRIPT_DIR/templates/battery-manager.policy"
|
||||
print_info "Polkit policy created at $POLICY_FILE"
|
||||
print_info "Creating polkit rule..."
|
||||
|
||||
RULES_FILE="/etc/polkit-1/rules.d/50-battery-manager-$ACTUAL_USER.rules"
|
||||
|
||||
sed "s/ACTUAL_USER_PLACEHOLDER/$ACTUAL_USER/g" \
|
||||
"$SCRIPT_DIR/templates/battery-manager.rules" > "$RULES_FILE"
|
||||
|
||||
print_info "Polkit rule copied from $SCRIPT_DIR/templates/battery-manager.rules"
|
||||
print_info "Polkit rule created for user: $ACTUAL_USER at $RULES_FILE"
|
||||
|
||||
print_info "Restarting polkit..."
|
||||
if systemctl restart polkit 2>/dev/null; then
|
||||
print_info "Polkit restarted"
|
||||
else
|
||||
print_info "Could not restart polkit automatically, you may need to reboot"
|
||||
fi
|
||||
|
||||
print_info "Creating uninstall script..."
|
||||
UNINSTALL_SCRIPT="$SCRIPT_DIR/uninstall-battery-manager.sh"
|
||||
|
||||
|
||||
if [ -f "$SCRIPT_DIR/templates/uninstall-template" ]; then
|
||||
SHEBANG=$(head -n 1 "$SCRIPT_DIR/templates/uninstall-template")
|
||||
else
|
||||
SHEBANG="#!/usr/bin/env bash"
|
||||
fi
|
||||
echo "$SHEBANG" > "$UNINSTALL_SCRIPT"
|
||||
echo "" >> "$UNINSTALL_SCRIPT"
|
||||
|
||||
cat >> "$UNINSTALL_SCRIPT" << EOF
|
||||
SCRIPT_PATH="$BATTERY_MANAGER_SCRIPT"
|
||||
POLICY_PATH="$POLICY_FILE"
|
||||
RULE_PATH="$RULES_FILE"
|
||||
LOG_PATH="/var/log/battery-manager.log"
|
||||
|
||||
EOF
|
||||
|
||||
if [ -f "$SCRIPT_DIR/templates/uninstall-template" ]; then
|
||||
tail -n +2 "$SCRIPT_DIR/templates/uninstall-template" >> "$UNINSTALL_SCRIPT"
|
||||
fi
|
||||
|
||||
chmod 744 "$UNINSTALL_SCRIPT"
|
||||
chown root:root "$UNINSTALL_SCRIPT"
|
||||
|
||||
print_info "Uninstall script created at $UNINSTALL_SCRIPT"
|
||||
|
||||
|
||||
echo
|
||||
print_info "Installation complete!"
|
||||
echo
|
||||
print_info "Log file: /var/log/battery-manager.log"
|
||||
print_info "User-specific script: $BATTERY_MANAGER_SCRIPT"
|
||||
print_info "User-specific policy: $POLICY_FILE"
|
||||
print_info "User-specific rules: $RULES_FILE"
|
||||
print_info "User-specific uninstall script: $UNINSTALL_SCRIPT"
|
||||
@@ -1,86 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
SUPPRESS_NOTIFICATIONS=false
|
||||
|
||||
print_error() {
|
||||
echo -e "$1" >&2
|
||||
}
|
||||
|
||||
print_info() {
|
||||
echo -e "$1"
|
||||
}
|
||||
|
||||
send_notification() {
|
||||
local urgency="$1"
|
||||
local title="$2"
|
||||
local message="$3"
|
||||
|
||||
if [ "$SUPPRESS_NOTIFICATIONS" = false ] && command -v notify-send >/dev/null 2>&1; then
|
||||
notify-send -u "$urgency" "$title" "$message"
|
||||
fi
|
||||
}
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
-q|--quiet)
|
||||
SUPPRESS_NOTIFICATIONS=true
|
||||
shift
|
||||
;;
|
||||
-*)
|
||||
print_error "Unknown option: $1"
|
||||
echo "Usage: $0 [OPTIONS] <number>" >&2
|
||||
echo "Options:" >&2
|
||||
echo " -q, --quiet Suppress notifications" >&2
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
BATTERY_LEVEL="$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$BATTERY_LEVEL" ]; then
|
||||
print_error "Battery level not specified"
|
||||
echo "Usage: $0 [OPTIONS] <number>" >&2
|
||||
echo "Options:" >&2
|
||||
echo " -q, --quiet Suppress notifications" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! [[ "$BATTERY_LEVEL" =~ ^[0-9]+$ ]] || [ "$BATTERY_LEVEL" -gt 100 ] || [ "$BATTERY_LEVEL" -lt 0 ]; then
|
||||
print_error "Battery level must be a number between 0-100"
|
||||
echo "Usage: $0 [OPTIONS] <number>" >&2
|
||||
echo "Options:" >&2
|
||||
echo " -q, --quiet Suppress notifications" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
CURRENT_USER="$USER"
|
||||
if [ -z "$CURRENT_USER" ]; then
|
||||
CURRENT_USER="$(whoami)"
|
||||
fi
|
||||
|
||||
BATTERY_MANAGER_PATH="/usr/bin/battery-manager-$CURRENT_USER"
|
||||
|
||||
SUCCESS=0
|
||||
MISSING_FILES=2
|
||||
|
||||
if [ ! -f "$BATTERY_MANAGER_PATH" ]; then
|
||||
print_error "Battery manager components missing for user $CURRENT_USER!"
|
||||
exit $MISSING_FILES
|
||||
fi
|
||||
|
||||
print_info "Setting battery charging threshold to $BATTERY_LEVEL% for user $CURRENT_USER..."
|
||||
|
||||
if pkexec "$BATTERY_MANAGER_PATH" "$BATTERY_LEVEL"; then
|
||||
print_info "Battery charging threshold set to $BATTERY_LEVEL%"
|
||||
send_notification "normal" "Battery Threshold Updated" \
|
||||
"Battery charging threshold has been set to $BATTERY_LEVEL%"
|
||||
else
|
||||
print_error "Failed to set battery charging threshold"
|
||||
send_notification "critical" "Battery Threshold Failed" \
|
||||
"Failed to set battery charging threshold to $BATTERY_LEVEL%"
|
||||
exit 1
|
||||
fi
|
||||
@@ -1,17 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE policyconfig PUBLIC
|
||||
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
|
||||
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
|
||||
<policyconfig>
|
||||
<action id="com.local.battery-manager.ACTUAL_USER_PLACEHOLDER">
|
||||
<description>Manage battery settings for ACTUAL_USER_PLACEHOLDER</description>
|
||||
<message>Authentication is required to manage battery settings</message>
|
||||
<defaults>
|
||||
<allow_any>no</allow_any>
|
||||
<allow_inactive>no</allow_inactive>
|
||||
<allow_active>yes</allow_active>
|
||||
</defaults>
|
||||
<annotate key="org.freedesktop.policykit.exec.path">/usr/bin/battery-manager-ACTUAL_USER_PLACEHOLDER</annotate>
|
||||
<annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
|
||||
</action>
|
||||
</policyconfig>
|
||||
@@ -1,14 +0,0 @@
|
||||
polkit.addRule(function(action, subject) {
|
||||
if (action.id == "com.local.battery-manager.ACTUAL_USER_PLACEHOLDER" &&
|
||||
subject.user == "ACTUAL_USER_PLACEHOLDER") {
|
||||
|
||||
// Check if the parent process is quickshell or set-battery-threshold
|
||||
var pid = subject.pid;
|
||||
var ppid = polkit.spawn(["ps", "-o", "ppid=", "-p", pid.toString()]).trim();
|
||||
var parentCmd = polkit.spawn(["ps", "-o", "comm=", "-p", ppid]).trim();
|
||||
|
||||
if (parentCmd.indexOf("quickshell") !== -1 || parentCmd.indexOf("set-battery-treshold") !== -1) {
|
||||
return polkit.Result.YES;
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -1,53 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
LOG_FILE="/var/log/battery-manager.log"
|
||||
|
||||
log_message() {
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE"
|
||||
}
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo "Error: No battery level provided" >&2
|
||||
log_message "ERROR: No battery level provided"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BATTERY_LEVEL="$1"
|
||||
|
||||
if ! [[ "$BATTERY_LEVEL" =~ ^[0-9]+$ ]] || [ "$BATTERY_LEVEL" -gt 100 ] || [ "$BATTERY_LEVEL" -lt 0 ]; then
|
||||
echo "Error: Invalid battery level. Must be 0-100" >&2
|
||||
log_message "ERROR: Invalid battery level: $BATTERY_LEVEL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SUCCESS_COUNT=0
|
||||
FAIL_COUNT=0
|
||||
|
||||
for path in "${BATTERY_PATHS[@]}"; do
|
||||
[[ -z "$path" || "$path" =~ ^# ]] && continue
|
||||
|
||||
if [ -f "$path" ] && [ -w "$path" ]; then
|
||||
if echo "$BATTERY_LEVEL" > "$path" 2>/dev/null; then
|
||||
echo "Updated: $path"
|
||||
log_message "SUCCESS: Updated $path to $BATTERY_LEVEL"
|
||||
((SUCCESS_COUNT++))
|
||||
else
|
||||
echo "Failed to write: $path" >&2
|
||||
log_message "ERROR: Failed to write to $path"
|
||||
((FAIL_COUNT++))
|
||||
fi
|
||||
else
|
||||
echo "Skipped (not found/writable): $path"
|
||||
log_message "INFO: Skipped $path (not found or not writable)"
|
||||
fi
|
||||
done
|
||||
|
||||
log_message "SUMMARY: Updated $SUCCESS_COUNT file(s), failed $FAIL_COUNT, battery level: $BATTERY_LEVEL"
|
||||
|
||||
if [ "$SUCCESS_COUNT" -eq 0 ]; then
|
||||
echo "Error: No battery files were updated" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Successfully updated $SUCCESS_COUNT battery file(s)"
|
||||
exit 0
|
||||
@@ -1,30 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [ "$(id -u)" -ne 0 ]; then
|
||||
echo "This script must be run as root"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Uninstalling battery manager..."
|
||||
|
||||
if [ -f "$SCRIPT_PATH" ]; then
|
||||
rm -f "$SCRIPT_PATH"
|
||||
echo "Removed script from $SCRIPT_PATH"
|
||||
fi
|
||||
|
||||
if [ -f "$POLICY_PATH" ]; then
|
||||
rm -f "$POLICY_PATH"
|
||||
echo "Removed policy file from $POLICY_PATH"
|
||||
fi
|
||||
|
||||
if [ -f "$RULE_PATH" ]; then
|
||||
rm -f "$RULE_PATH"
|
||||
echo "Removed udev rule from $RULE_PATH"
|
||||
fi
|
||||
|
||||
if [ -f "$LOG_PATH" ]; then
|
||||
rm -f "$LOG_PATH"
|
||||
echo "Removed log file from $LOG_PATH"
|
||||
fi
|
||||
|
||||
echo "Uninstallation completed successfully"
|
||||
@@ -2,42 +2,25 @@
|
||||
set -euo pipefail
|
||||
|
||||
# QML Formatter Script
|
||||
# Uses: https://github.com/jesperhh/qmlfmt
|
||||
# Install: AUR package "qmlfmt-git" (requires qt6-5compat)
|
||||
|
||||
# Find the available QML formatter command and define format_file accordingly
|
||||
if command -v qmlfmt &>/dev/null; then
|
||||
echo "Using 'qmlfmt' for formatting."
|
||||
format_file() { qmlfmt -e -b 360 -t 2 -i 2 -w "$1" || { echo "Failed: $1" >&2; return 1; }; }
|
||||
elif command -v qmlformat &>/dev/null; then
|
||||
echo "Using 'qmlformat' for formatting."
|
||||
format_file() { qmlformat -i --indent-width 2 --semicolon-rule essential "$1" || { echo "Failed: $1" >&2; return 1; }; }
|
||||
else
|
||||
echo "Neither 'qmlfmt' nor 'qmlformat' found in PATH." >&2
|
||||
# Find qmlformat binary
|
||||
if [ ! -x "/usr/lib/qt6/bin/qmlformat" ]; then
|
||||
echo "No 'qmlformat' found in /usr/lib/qt6/bin." >&2
|
||||
echo "Install it via 'qt6-tools' or 'qt6-declarative-tools' to proceed." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
format_file() {
|
||||
/usr/lib/qt6/bin/qmlformat -w 2 -W 360 -S --semicolon-rule always -i "$1" || { echo "Failed: $1" >&2; return 1; }
|
||||
}
|
||||
|
||||
export -f format_file
|
||||
|
||||
# Find all .qml files
|
||||
mapfile -t all_files < <(find "${1:-.}" -name "*.qml" -type f)
|
||||
[ ${#all_files[@]} -eq 0 ] && { echo "No QML files found"; exit 0; }
|
||||
|
||||
echo "Scanning ${#all_files[@]} files for array destructuring..."
|
||||
safe_files=()
|
||||
for file in "${all_files[@]}"; do
|
||||
# Checks for a comma inside brackets followed by an equals sign aka "array destructuring"
|
||||
# as this ES6 syntax is not supported by qmlfmt and will result in breakage.
|
||||
if grep -qE '\[.*,.*\]\s*=' "$file"; then
|
||||
echo "-> Skipping (Array destructuring detected): $file" >&2
|
||||
else
|
||||
safe_files+=("$file")
|
||||
fi
|
||||
done
|
||||
|
||||
[ ${#safe_files[@]} -eq 0 ] && { echo "No safe files to format after filtering."; exit 0; }
|
||||
|
||||
echo "Formatting ${#safe_files[@]} files..."
|
||||
printf '%s\0' "${safe_files[@]}" | \
|
||||
echo "Formatting ${#all_files[@]} files..."
|
||||
printf '%s\0' "${all_files[@]}" | \
|
||||
xargs -0 -P "${QMLFMT_JOBS:-$(nproc)}" -I {} bash -c 'format_file "$@"' _ {} \
|
||||
&& echo "Done" || { echo "Errors occurred" >&2; exit 1; }
|
||||
&& echo "Done" || { echo "Errors occurred" >&2; exit 1; }
|
||||
|
||||
@@ -15,22 +15,59 @@ fi
|
||||
# Create the destination directory if it doesn't exist.
|
||||
mkdir -p "$DEST_DIR"
|
||||
|
||||
# Loop through all files in the source directory ending with .frag
|
||||
for shader in "$SOURCE_DIR"*.frag; do
|
||||
# Check if a file was found (to handle the case of no .frag files).
|
||||
if [ -f "$shader" ]; then
|
||||
# Get the base name of the file (e.g., wp_fade).
|
||||
shader_name=$(basename "$shader" .frag)
|
||||
# Array to hold the list of full paths to the shaders.
|
||||
SHADERS_TO_COMPILE=()
|
||||
|
||||
# Construct the output path for the compiled shader.
|
||||
output_path="$DEST_DIR$shader_name.frag.qsb"
|
||||
# Specific files mode.
|
||||
if [ "$#" -gt 0 ]; then
|
||||
|
||||
# Construct and run the qsb command.
|
||||
qsb --qt6 -o "$output_path" "$shader"
|
||||
# Loop through all command-line arguments ($@ holds all arguments).
|
||||
for SINGLE_FILE in "$@"; do
|
||||
|
||||
# Print a message to confirm compilation.
|
||||
echo "Compiled $shader to $output_path"
|
||||
# Construct the full path to the source file.
|
||||
FULL_PATH="$SOURCE_DIR$SINGLE_FILE"
|
||||
|
||||
# Check if the specified file exists in the SOURCE_DIR.
|
||||
if [ ! -f "$FULL_PATH" ]; then
|
||||
echo "Error: Specified file '$SINGLE_FILE' not found in $SOURCE_DIR! Skipping."
|
||||
continue
|
||||
fi
|
||||
|
||||
# Add the valid file to the compilation list.
|
||||
SHADERS_TO_COMPILE+=("$FULL_PATH")
|
||||
done
|
||||
|
||||
# Check if any valid files were found to compile.
|
||||
if [ ${#SHADERS_TO_COMPILE[@]} -eq 0 ]; then
|
||||
echo "No valid shaders found to compile."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Whole directory mode (no argument provided).
|
||||
else
|
||||
# Use find to generate the list of files and assign it to the array.
|
||||
while IFS= read -r shader_path; do
|
||||
if [ -n "$shader_path" ]; then
|
||||
SHADERS_TO_COMPILE+=("$shader_path")
|
||||
fi
|
||||
done < <(find "$SOURCE_DIR" -maxdepth 1 -name "*.frag")
|
||||
|
||||
fi
|
||||
|
||||
# Loop through the list of shaders to compile.
|
||||
for shader in "${SHADERS_TO_COMPILE[@]}"; do
|
||||
|
||||
# Get the base name of the file (e.g., wp_fade).
|
||||
shader_name=$(basename "$shader" .frag)
|
||||
|
||||
# Construct the output path for the compiled shader.
|
||||
output_path="$DEST_DIR$shader_name.frag.qsb"
|
||||
|
||||
# Construct and run the qsb command.
|
||||
/usr/lib/qt6/bin/qsb --qt6 -o "$output_path" "$shader"
|
||||
|
||||
# Print a message to confirm compilation.
|
||||
echo "Compiled $(basename "$shader") to $output_path"
|
||||
done
|
||||
|
||||
echo "Shader compilation complete."
|
||||
echo "Shader compilation complete."
|
||||
|
||||
@@ -5,111 +5,80 @@ import Quickshell
|
||||
import Quickshell.Io
|
||||
import qs.Commons
|
||||
|
||||
|
||||
/*
|
||||
Noctalia is not strictly a Material Design project, it supports both some predefined
|
||||
color schemes and dynamic color generation from the wallpaper (using Matugen).
|
||||
Noctalia is not strictly a Material Design project, it supports both some predefined
|
||||
color schemes and dynamic color generation from the wallpaper (using Matugen).
|
||||
|
||||
We ultimately decided to use a restricted set of colors that follows the
|
||||
Material Design 3 naming convention.
|
||||
We ultimately decided to use a restricted set of colors that follows the
|
||||
Material Design 3 naming convention.
|
||||
|
||||
NOTE: All color names are prefixed with 'm' (e.g., mPrimary) to prevent QML from
|
||||
misinterpreting them as signals (e.g., the 'onPrimary' property name).
|
||||
NOTE: All color names are prefixed with 'm' (e.g., mPrimary) to prevent QML from
|
||||
misinterpreting them as signals (e.g., the 'onPrimary' property name).
|
||||
*/
|
||||
Singleton {
|
||||
id: root
|
||||
|
||||
// --- Key Colors: These are the main accent colors that define your app's style
|
||||
property color mPrimary: customColors.mPrimary
|
||||
property color mOnPrimary: customColors.mOnPrimary
|
||||
property color mSecondary: customColors.mSecondary
|
||||
property color mOnSecondary: customColors.mOnSecondary
|
||||
property color mTertiary: customColors.mTertiary
|
||||
property color mOnTertiary: customColors.mOnTertiary
|
||||
readonly property color mPrimary: customColorsData.mPrimary
|
||||
readonly property color mOnPrimary: customColorsData.mOnPrimary
|
||||
readonly property color mSecondary: customColorsData.mSecondary
|
||||
readonly property color mOnSecondary: customColorsData.mOnSecondary
|
||||
readonly property color mTertiary: customColorsData.mTertiary
|
||||
readonly property color mOnTertiary: customColorsData.mOnTertiary
|
||||
|
||||
// --- Utility Colors: These colors serve specific, universal purposes like indicating errors
|
||||
property color mError: customColors.mError
|
||||
property color mOnError: customColors.mOnError
|
||||
readonly property color mError: customColorsData.mError
|
||||
readonly property color mOnError: customColorsData.mOnError
|
||||
|
||||
// --- Surface and Variant Colors: These provide additional options for surfaces and their contents, creating visual hierarchy
|
||||
property color mSurface: customColors.mSurface
|
||||
property color mOnSurface: customColors.mOnSurface
|
||||
readonly property color mSurface: customColorsData.mSurface
|
||||
readonly property color mOnSurface: customColorsData.mOnSurface
|
||||
|
||||
property color mSurfaceVariant: customColors.mSurfaceVariant
|
||||
property color mOnSurfaceVariant: customColors.mOnSurfaceVariant
|
||||
readonly property color mSurfaceVariant: customColorsData.mSurfaceVariant
|
||||
readonly property color mOnSurfaceVariant: customColorsData.mOnSurfaceVariant
|
||||
|
||||
property color mOutline: customColors.mOutline
|
||||
property color mShadow: customColors.mShadow
|
||||
readonly property color mOutline: customColorsData.mOutline
|
||||
readonly property color mShadow: customColorsData.mShadow
|
||||
|
||||
property color mHover: customColors.mHover
|
||||
property color mOnHover: customColors.mOnHover
|
||||
readonly property color mHover: customColorsData.mHover
|
||||
readonly property color mOnHover: customColorsData.mOnHover
|
||||
|
||||
// --- Absolute Colors
|
||||
property color transparent: "transparent"
|
||||
property color black: "#000000"
|
||||
property color white: "#ffffff"
|
||||
readonly property color transparent: "transparent"
|
||||
readonly property color black: "#000000"
|
||||
readonly property color white: "#ffffff"
|
||||
|
||||
// --------------------------------
|
||||
// Default colors: RosePine
|
||||
QtObject {
|
||||
id: defaultColors
|
||||
|
||||
property color mPrimary: "#c7a1d8"
|
||||
property color mOnPrimary: "#1a151f"
|
||||
readonly property color mPrimary: "#c7a1d8"
|
||||
readonly property color mOnPrimary: "#1a151f"
|
||||
|
||||
property color mSecondary: "#a984c4"
|
||||
property color mOnSecondary: "#f3edf7"
|
||||
readonly property color mSecondary: "#a984c4"
|
||||
readonly property color mOnSecondary: "#f3edf7"
|
||||
|
||||
property color mTertiary: "#e0b7c9"
|
||||
property color mOnTertiary: "#20161f"
|
||||
readonly property color mTertiary: "#e0b7c9"
|
||||
readonly property color mOnTertiary: "#20161f"
|
||||
|
||||
property color mError: "#e9899d"
|
||||
property color mOnError: "#1e1418"
|
||||
readonly property color mError: "#e9899d"
|
||||
readonly property color mOnError: "#1e1418"
|
||||
|
||||
property color mSurface: "#1c1822"
|
||||
property color mOnSurface: "#e9e4f0"
|
||||
readonly property color mSurface: "#1c1822"
|
||||
readonly property color mOnSurface: "#e9e4f0"
|
||||
|
||||
property color mSurfaceVariant: "#262130"
|
||||
property color mOnSurfaceVariant: "#a79ab0"
|
||||
readonly property color mSurfaceVariant: "#262130"
|
||||
readonly property color mOnSurfaceVariant: "#a79ab0"
|
||||
|
||||
property color mOutline: "#342c42"
|
||||
property color mShadow: "#120f18"
|
||||
readonly property color mOutline: "#342c42"
|
||||
readonly property color mShadow: "#120f18"
|
||||
|
||||
property color mHover: "#e0b7c9"
|
||||
property color mOnHover: "#20161f"
|
||||
readonly property color mHover: "#e0b7c9"
|
||||
readonly property color mOnHover: "#20161f"
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------
|
||||
// Custom colors loaded from colors.json
|
||||
// These can be generated by matugen or simply come from a well know color scheme (Dracula, Gruvbox, Nord, ...)
|
||||
QtObject {
|
||||
id: customColors
|
||||
|
||||
property color mPrimary: customColorsData.mPrimary
|
||||
property color mOnPrimary: customColorsData.mOnPrimary
|
||||
|
||||
property color mSecondary: customColorsData.mSecondary
|
||||
property color mOnSecondary: customColorsData.mOnSecondary
|
||||
|
||||
property color mTertiary: customColorsData.mTertiary
|
||||
property color mOnTertiary: customColorsData.mOnTertiary
|
||||
|
||||
property color mError: customColorsData.mError
|
||||
property color mOnError: customColorsData.mOnError
|
||||
|
||||
property color mSurface: customColorsData.mSurface
|
||||
property color mOnSurface: customColorsData.mOnSurface
|
||||
|
||||
property color mSurfaceVariant: customColorsData.mSurfaceVariant
|
||||
property color mOnSurfaceVariant: customColorsData.mOnSurfaceVariant
|
||||
|
||||
property color mOutline: customColorsData.mOutline
|
||||
property color mShadow: customColorsData.mShadow
|
||||
|
||||
property color mHover: customColorsData.mHover
|
||||
property color mOnHover: customColorsData.mOnHover
|
||||
}
|
||||
|
||||
// FileView to load custom colors data from colors.json
|
||||
FileView {
|
||||
id: customColorsFile
|
||||
@@ -117,24 +86,25 @@ Singleton {
|
||||
printErrors: false
|
||||
watchChanges: true
|
||||
onFileChanged: {
|
||||
Logger.i("Color", "Reloading colors from disk")
|
||||
reload()
|
||||
Logger.i("Color", "Reloading colors from disk");
|
||||
reload();
|
||||
}
|
||||
onAdapterUpdated: {
|
||||
Logger.i("Color", "Writing colors to disk")
|
||||
writeAdapter()
|
||||
Logger.i("Color", "Writing colors to disk");
|
||||
writeAdapter();
|
||||
}
|
||||
|
||||
// Trigger initial load when path changes from empty to actual path
|
||||
onPathChanged: {
|
||||
if (path !== undefined) {
|
||||
reload()
|
||||
reload();
|
||||
}
|
||||
}
|
||||
onLoadFailed: function (error) {
|
||||
if (error.toString().includes("No such file") || error === 2) {
|
||||
// Error code 2 = ENOENT (No such file or directory)
|
||||
if (error === 2 || error.toString().includes("No such file")) {
|
||||
// File doesn't exist, create it with default values
|
||||
writeAdapter()
|
||||
writeAdapter();
|
||||
}
|
||||
}
|
||||
JsonAdapter {
|
||||
|
||||
252
Commons/I18n.qml
252
Commons/I18n.qml
@@ -12,6 +12,7 @@ Singleton {
|
||||
property string langCode: ""
|
||||
property var locale: Qt.locale()
|
||||
property string systemDetectedLangCode: ""
|
||||
property string fullLocaleCode: "" // Preserves regional locale variants
|
||||
property var availableLanguages: []
|
||||
property var translations: ({})
|
||||
property var fallbackTranslations: ({})
|
||||
@@ -32,13 +33,13 @@ Singleton {
|
||||
|
||||
onExited: function (exitCode, exitStatus) {
|
||||
if (exitCode === 0) {
|
||||
var output = stdoutCollector.text || ""
|
||||
parseDirectoryListing(output)
|
||||
var output = stdoutCollector.text || "";
|
||||
parseDirectoryListing(output);
|
||||
} else {
|
||||
Logger.e("I18n", `Failed to scan translation directory`)
|
||||
Logger.e("I18n", `Failed to scan translation directory`);
|
||||
// Fallback to default languages
|
||||
availableLanguages = ["en"]
|
||||
detectLanguage()
|
||||
availableLanguages = ["en"];
|
||||
detectLanguage();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -50,21 +51,21 @@ Singleton {
|
||||
onFileChanged: reload()
|
||||
onLoaded: {
|
||||
try {
|
||||
var data = JSON.parse(text())
|
||||
root.translations = data
|
||||
Logger.i("I18n", `Loaded translations for "${root.langCode}"`)
|
||||
Logger.d("I18n", `Available root keys: ${Object.keys(data).join(", ")}`)
|
||||
var data = JSON.parse(text());
|
||||
root.translations = data;
|
||||
Logger.i("I18n", `Loaded translations for "${root.langCode}"`);
|
||||
Logger.d("I18n", `Available root keys: ${Object.keys(data).join(", ")}`);
|
||||
|
||||
root.isLoaded = true
|
||||
root.translationsLoaded()
|
||||
root.isLoaded = true;
|
||||
root.translationsLoaded();
|
||||
} catch (e) {
|
||||
Logger.e("I18n", `Failed to parse translation file: ${e}`)
|
||||
setLanguage("en")
|
||||
Logger.e("I18n", `Failed to parse translation file: ${e}`);
|
||||
setLanguage("en");
|
||||
}
|
||||
}
|
||||
onLoadFailed: function (error) {
|
||||
setLanguage("en")
|
||||
Logger.e("I18n", `Failed to load translation file: ${error}`)
|
||||
setLanguage("en");
|
||||
Logger.e("I18n", `Failed to load translation file: ${error}`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,152 +76,161 @@ Singleton {
|
||||
onFileChanged: reload()
|
||||
onLoaded: {
|
||||
try {
|
||||
var data = JSON.parse(text())
|
||||
root.fallbackTranslations = data
|
||||
Logger.d("I18n", `Loaded english fallback translations`)
|
||||
var data = JSON.parse(text());
|
||||
root.fallbackTranslations = data;
|
||||
Logger.d("I18n", `Loaded english fallback translations`);
|
||||
} catch (e) {
|
||||
Logger.e("I18n", `Failed to parse fallback translation file: ${e}`)
|
||||
Logger.e("I18n", `Failed to parse fallback translation file: ${e}`);
|
||||
}
|
||||
}
|
||||
onLoadFailed: function (error) {
|
||||
Logger.e("I18n", `Failed to load fallback translation file: ${error}`)
|
||||
Logger.e("I18n", `Failed to load fallback translation file: ${error}`);
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
Logger.i("I18n", "Service started")
|
||||
scanAvailableLanguages()
|
||||
Logger.i("I18n", "Service started");
|
||||
scanAvailableLanguages();
|
||||
}
|
||||
|
||||
// -------------------------------------------
|
||||
function scanAvailableLanguages() {
|
||||
Logger.d("I18n", "Scanning for available translation files...")
|
||||
directoryScanner.running = true
|
||||
Logger.d("I18n", "Scanning for available translation files...");
|
||||
directoryScanner.running = true;
|
||||
}
|
||||
|
||||
// -------------------------------------------
|
||||
function parseDirectoryListing(output) {
|
||||
var languages = []
|
||||
var languages = [];
|
||||
|
||||
try {
|
||||
if (!output || output.trim() === "") {
|
||||
Logger.w("I18n", "Empty directory listing output")
|
||||
availableLanguages = ["en"]
|
||||
detectLanguage()
|
||||
return
|
||||
Logger.w("I18n", "Empty directory listing output");
|
||||
availableLanguages = ["en"];
|
||||
detectLanguage();
|
||||
return;
|
||||
}
|
||||
|
||||
const entries = output.trim().split('\n')
|
||||
const entries = output.trim().split('\n');
|
||||
|
||||
for (var i = 0; i < entries.length; i++) {
|
||||
const entry = entries[i].trim()
|
||||
const entry = entries[i].trim();
|
||||
if (entry && entry.endsWith('.json')) {
|
||||
// Extract language code from filename (e.g., "en.json" -> "en")
|
||||
const langCode = entry.substring(0, entry.lastIndexOf('.json'))
|
||||
const langCode = entry.substring(0, entry.lastIndexOf('.json'));
|
||||
if (langCode.length >= 2 && langCode.length <= 5) {
|
||||
// Basic validation for language codes
|
||||
languages.push(langCode)
|
||||
languages.push(langCode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Sort languages alphabetically, but ensure "en" comes first if available
|
||||
languages.sort()
|
||||
const enIndex = languages.indexOf("en")
|
||||
languages.sort();
|
||||
const enIndex = languages.indexOf("en");
|
||||
if (enIndex > 0) {
|
||||
languages.splice(enIndex, 1)
|
||||
languages.unshift("en")
|
||||
languages.splice(enIndex, 1);
|
||||
languages.unshift("en");
|
||||
}
|
||||
|
||||
if (languages.length === 0) {
|
||||
Logger.w("I18n", "No translation files found, using fallback")
|
||||
languages = ["en"] // Fallback
|
||||
Logger.w("I18n", "No translation files found, using fallback");
|
||||
languages = ["en"]; // Fallback
|
||||
}
|
||||
|
||||
availableLanguages = languages
|
||||
Logger.d("I18n", `Found ${languages.length} available languages: ${languages.join(', ')}`)
|
||||
availableLanguages = languages;
|
||||
Logger.d("I18n", `Found ${languages.length} available languages: ${languages.join(', ')}`);
|
||||
|
||||
// Detect language after scanning
|
||||
detectLanguage()
|
||||
detectLanguage();
|
||||
} catch (e) {
|
||||
Logger.e("I18n", `Failed to parse directory listing: ${e}`)
|
||||
Logger.e("I18n", `Failed to parse directory listing: ${e}`);
|
||||
// Fallback to default languages
|
||||
availableLanguages = ["en"]
|
||||
detectLanguage()
|
||||
availableLanguages = ["en"];
|
||||
detectLanguage();
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------
|
||||
function detectLanguage() {
|
||||
Logger.d("I18n", `detectLanguage() called. Available languages: [${availableLanguages.join(', ')}]`)
|
||||
Logger.d("I18n", `detectLanguage() called. Available languages: [${availableLanguages.join(', ')}]`);
|
||||
|
||||
if (availableLanguages.length === 0) {
|
||||
Logger.w("I18n", "No available languages found")
|
||||
return
|
||||
Logger.w("I18n", "No available languages found");
|
||||
return;
|
||||
}
|
||||
|
||||
var detectedLang = ""
|
||||
var detectedLang = "";
|
||||
var detectedFullLocale = "";
|
||||
|
||||
// First, determine the system's preferred language
|
||||
for (var i = 0; i < Qt.locale().uiLanguages.length; i++) {
|
||||
const fullUserLang = Qt.locale().uiLanguages[i]
|
||||
const fullUserLang = Qt.locale().uiLanguages[i];
|
||||
|
||||
if (availableLanguages.includes(fullUserLang)) {
|
||||
detectedLang = fullUserLang
|
||||
break
|
||||
detectedLang = fullUserLang;
|
||||
detectedFullLocale = fullUserLang;
|
||||
break;
|
||||
}
|
||||
|
||||
const shortUserLang = fullUserLang.substring(0, 2)
|
||||
const shortUserLang = fullUserLang.substring(0, 2);
|
||||
if (availableLanguages.includes(shortUserLang)) {
|
||||
detectedLang = shortUserLang
|
||||
break
|
||||
detectedLang = shortUserLang;
|
||||
detectedFullLocale = fullUserLang;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// If no system language is found among available languages, fallback
|
||||
if (detectedLang === "") {
|
||||
detectedLang = availableLanguages.includes("en") ? "en" : availableLanguages[0]
|
||||
detectedLang = availableLanguages.includes("en") ? "en" : availableLanguages[0];
|
||||
detectedFullLocale = detectedLang;
|
||||
}
|
||||
|
||||
root.systemDetectedLangCode = detectedLang
|
||||
Logger.d("I18n", `System detected language: "${root.systemDetectedLangCode}"`)
|
||||
root.systemDetectedLangCode = detectedLang;
|
||||
root.fullLocaleCode = detectedFullLocale;
|
||||
Logger.d("I18n", `System detected language: "${root.systemDetectedLangCode}" (full locale: "${root.fullLocaleCode}")`);
|
||||
|
||||
// Now, apply the language: user-defined, then system-detected
|
||||
if (Settings.data.general.language !== "" && availableLanguages.includes(Settings.data.general.language)) {
|
||||
Logger.d("I18n", `User-defined language found: "${Settings.data.general.language}"`)
|
||||
setLanguage(Settings.data.general.language)
|
||||
Logger.d("I18n", `User-defined language found: "${Settings.data.general.language}"`);
|
||||
setLanguage(Settings.data.general.language);
|
||||
} else {
|
||||
Logger.d("I18n", `No user-defined language, using system detected: "${root.systemDetectedLangCode}"`)
|
||||
setLanguage(root.systemDetectedLangCode)
|
||||
Logger.d("I18n", `No user-defined language, using system detected: "${root.systemDetectedLangCode}"`);
|
||||
setLanguage(root.systemDetectedLangCode, root.fullLocaleCode);
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------
|
||||
function setLanguage(newLangCode) {
|
||||
function setLanguage(newLangCode, fullLocale) {
|
||||
if (typeof fullLocale === "undefined") {
|
||||
fullLocale = newLangCode;
|
||||
}
|
||||
|
||||
if (newLangCode !== langCode && availableLanguages.includes(newLangCode)) {
|
||||
langCode = newLangCode
|
||||
locale = Qt.locale(langCode)
|
||||
Logger.i("I18n", `Language set to "${langCode}"`)
|
||||
languageChanged(langCode)
|
||||
loadTranslations()
|
||||
langCode = newLangCode;
|
||||
fullLocaleCode = fullLocale;
|
||||
locale = Qt.locale(fullLocale);
|
||||
Logger.i("I18n", `Language set to "${langCode}" with locale "${fullLocale}"`);
|
||||
languageChanged(langCode);
|
||||
loadTranslations();
|
||||
} else if (!availableLanguages.includes(newLangCode)) {
|
||||
Logger.w("I18n", `Language "${newLangCode}" is not available`)
|
||||
Logger.w("I18n", `Language "${newLangCode}" is not available`);
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------
|
||||
function loadTranslations() {
|
||||
if (langCode === "")
|
||||
return
|
||||
|
||||
const filePath = `file://${Quickshell.shellDir}/Assets/Translations/${langCode}.json`
|
||||
fileView.path = filePath
|
||||
isLoaded = false
|
||||
Logger.d("I18n", `Loading translations: ${langCode}`)
|
||||
return;
|
||||
const filePath = `file://${Quickshell.shellDir}/Assets/Translations/${langCode}.json`;
|
||||
fileView.path = filePath;
|
||||
isLoaded = false;
|
||||
Logger.d("I18n", `Loading translations: ${langCode}`);
|
||||
|
||||
// Only load fallback translations if we are not using english and english is available
|
||||
if (langCode !== "en" && availableLanguages.includes("en")) {
|
||||
fallbackFileView.path = `file://${Quickshell.shellDir}/Assets/Translations/en.json`
|
||||
fallbackFileView.path = `file://${Quickshell.shellDir}/Assets/Translations/en.json`;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -228,133 +238,133 @@ Singleton {
|
||||
// Check if a translation exists
|
||||
function hasTranslation(key) {
|
||||
if (!isLoaded)
|
||||
return false
|
||||
return false;
|
||||
|
||||
const keys = key.split(".")
|
||||
var value = translations
|
||||
const keys = key.split(".");
|
||||
var value = translations;
|
||||
|
||||
for (var i = 0; i < keys.length; i++) {
|
||||
if (value && typeof value === "object" && keys[i] in value) {
|
||||
value = value[keys[i]]
|
||||
value = value[keys[i]];
|
||||
} else {
|
||||
return false
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return typeof value === "string"
|
||||
return typeof value === "string";
|
||||
}
|
||||
|
||||
// -------------------------------------------
|
||||
// Get all translation keys (useful for debugging)
|
||||
function getAllKeys(obj, prefix) {
|
||||
if (typeof obj === "undefined")
|
||||
obj = translations
|
||||
obj = translations;
|
||||
if (typeof prefix === "undefined")
|
||||
prefix = ""
|
||||
prefix = "";
|
||||
|
||||
var keys = []
|
||||
var keys = [];
|
||||
for (var key in (obj || {})) {
|
||||
const value = obj[key]
|
||||
const fullKey = prefix ? `${prefix}.${key}` : key
|
||||
const value = obj[key];
|
||||
const fullKey = prefix ? `${prefix}.${key}` : key;
|
||||
if (typeof value === "object" && value !== null) {
|
||||
keys = keys.concat(getAllKeys(value, fullKey))
|
||||
keys = keys.concat(getAllKeys(value, fullKey));
|
||||
} else if (typeof value === "string") {
|
||||
keys.push(fullKey)
|
||||
keys.push(fullKey);
|
||||
}
|
||||
}
|
||||
return keys
|
||||
return keys;
|
||||
}
|
||||
|
||||
// -------------------------------------------
|
||||
// Reload translations (useful for development)
|
||||
function reload() {
|
||||
Logger.d("I18n", "Reloading translations")
|
||||
loadTranslations()
|
||||
Logger.d("I18n", "Reloading translations");
|
||||
loadTranslations();
|
||||
}
|
||||
|
||||
// -------------------------------------------
|
||||
// Main translation function
|
||||
function tr(key, interpolations) {
|
||||
if (typeof interpolations === "undefined")
|
||||
interpolations = {}
|
||||
interpolations = {};
|
||||
|
||||
if (!isLoaded) {
|
||||
//Logger.d("I18n", "Translations not loaded yet")
|
||||
return key
|
||||
return key;
|
||||
}
|
||||
|
||||
// Navigate nested keys (e.g., "menu.file.open")
|
||||
const keys = key.split(".")
|
||||
const keys = key.split(".");
|
||||
|
||||
// Look-up translation in the active language
|
||||
var value = translations
|
||||
var notFound = false
|
||||
var value = translations;
|
||||
var notFound = false;
|
||||
for (var i = 0; i < keys.length; i++) {
|
||||
if (value && typeof value === "object" && keys[i] in value) {
|
||||
value = value[keys[i]]
|
||||
value = value[keys[i]];
|
||||
} else {
|
||||
Logger.d("I18n", `Translation key "${key}" not found at part "${keys[i]}"`)
|
||||
Logger.d("I18n", `Available keys: ${Object.keys(value || {}).join(", ")}`)
|
||||
notFound = true
|
||||
break
|
||||
Logger.d("I18n", `Translation key "${key}" not found at part "${keys[i]}"`);
|
||||
Logger.d("I18n", `Available keys: ${Object.keys(value || {}).join(", ")}`);
|
||||
notFound = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Fallback to english if not found
|
||||
if (notFound && availableLanguages.includes("en") && langCode !== "en") {
|
||||
value = fallbackTranslations
|
||||
value = fallbackTranslations;
|
||||
for (var i = 0; i < keys.length; i++) {
|
||||
if (value && typeof value === "object" && keys[i] in value) {
|
||||
value = value[keys[i]]
|
||||
value = value[keys[i]];
|
||||
} else {
|
||||
// Indicate this key does not even exists in the english fallback
|
||||
return `## ${key} ##`
|
||||
return `## ${key} ##`;
|
||||
}
|
||||
}
|
||||
|
||||
// Make untranslated string easy to spot
|
||||
value = `<i>${value}</i>`
|
||||
value = `<i>${value}</i>`;
|
||||
} else if (notFound) {
|
||||
// No fallback available
|
||||
return `## ${key} ##`
|
||||
return `## ${key} ##`;
|
||||
}
|
||||
|
||||
if (typeof value !== "string") {
|
||||
Logger.d("I18n", `Translation key "${key}" is not a string`)
|
||||
return key
|
||||
Logger.d("I18n", `Translation key "${key}" is not a string`);
|
||||
return key;
|
||||
}
|
||||
|
||||
// Handle interpolations (e.g., "Hello {name}!")
|
||||
var result = value
|
||||
var result = value;
|
||||
for (var placeholder in interpolations) {
|
||||
const regex = new RegExp(`\\{${placeholder}\\}`, 'g')
|
||||
result = result.replace(regex, interpolations[placeholder])
|
||||
const regex = new RegExp(`\\{${placeholder}\\}`, 'g');
|
||||
result = result.replace(regex, interpolations[placeholder]);
|
||||
}
|
||||
|
||||
return result
|
||||
return result;
|
||||
}
|
||||
|
||||
// -------------------------------------------
|
||||
// Plural translation function
|
||||
function trp(key, count, defaultSingular, defaultPlural, interpolations) {
|
||||
if (typeof defaultSingular === "undefined")
|
||||
defaultSingular = ""
|
||||
defaultSingular = "";
|
||||
if (typeof defaultPlural === "undefined")
|
||||
defaultPlural = ""
|
||||
defaultPlural = "";
|
||||
if (typeof interpolations === "undefined")
|
||||
interpolations = {}
|
||||
interpolations = {};
|
||||
|
||||
const pluralKey = count === 1 ? key : `${key}_plural`
|
||||
const defaultValue = count === 1 ? defaultSingular : defaultPlural
|
||||
const pluralKey = count === 1 ? key : `${key}_plural`;
|
||||
const defaultValue = count === 1 ? defaultSingular : defaultPlural;
|
||||
|
||||
// Merge interpolations with count (QML doesn't support spread operator)
|
||||
var finalInterpolations = {
|
||||
"count": count
|
||||
}
|
||||
};
|
||||
for (var prop in interpolations) {
|
||||
finalInterpolations[prop] = interpolations[prop]
|
||||
finalInterpolations[prop] = interpolations[prop];
|
||||
}
|
||||
|
||||
return tr(pluralKey, finalInterpolations)
|
||||
return tr(pluralKey, finalInterpolations);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,15 +26,15 @@ Singleton {
|
||||
signal fontReloaded
|
||||
|
||||
Component.onCompleted: {
|
||||
Logger.i("Icons", "Service started")
|
||||
loadFontWithCacheBusting()
|
||||
Logger.i("Icons", "Service started");
|
||||
loadFontWithCacheBusting();
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: Quickshell
|
||||
function onReloadCompleted() {
|
||||
Logger.d("Icons", "Quickshell reload completed - forcing font reload")
|
||||
reloadFont()
|
||||
Logger.d("Icons", "Quickshell reload completed - forcing font reload");
|
||||
reloadFont();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,20 +42,20 @@ Singleton {
|
||||
function get(iconName) {
|
||||
// Check in aliases first
|
||||
if (aliases[iconName] !== undefined) {
|
||||
iconName = aliases[iconName]
|
||||
iconName = aliases[iconName];
|
||||
}
|
||||
|
||||
// Find the appropriate codepoint
|
||||
return icons[iconName]
|
||||
return icons[iconName];
|
||||
}
|
||||
|
||||
function loadFontWithCacheBusting() {
|
||||
Logger.d("Icons", "Loading font with cache busting")
|
||||
Logger.d("Icons", "Loading font with cache busting");
|
||||
|
||||
// Destroy old loader first
|
||||
if (currentFontLoader) {
|
||||
currentFontLoader.destroy()
|
||||
currentFontLoader = null
|
||||
currentFontLoader.destroy();
|
||||
currentFontLoader = null;
|
||||
}
|
||||
|
||||
// Create new loader with cache-busting URL
|
||||
@@ -64,22 +64,22 @@ Singleton {
|
||||
FontLoader {
|
||||
source: "${cacheBustingPath}"
|
||||
}
|
||||
`, root, "dynamicFontLoader_" + fontVersion)
|
||||
`, root, "dynamicFontLoader_" + fontVersion);
|
||||
|
||||
// Connect to the new loader's status changes
|
||||
currentFontLoader.statusChanged.connect(function () {
|
||||
if (currentFontLoader.status === FontLoader.Ready) {
|
||||
Logger.d("Icons", "Font loaded successfully:", currentFontLoader.name, "(version " + fontVersion + ")")
|
||||
fontReloaded()
|
||||
Logger.d("Icons", "Font loaded successfully:", currentFontLoader.name, "(version " + fontVersion + ")");
|
||||
fontReloaded();
|
||||
} else if (currentFontLoader.status === FontLoader.Error) {
|
||||
Logger.e("Icons", "Font failed to load (version " + fontVersion + ")")
|
||||
Logger.e("Icons", "Font failed to load (version " + fontVersion + ")");
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
function reloadFont() {
|
||||
Logger.d("Icons", "Forcing font reload...")
|
||||
fontVersion++
|
||||
loadFontWithCacheBusting()
|
||||
Logger.d("Icons", "Forcing font reload...");
|
||||
fontVersion++;
|
||||
loadFontWithCacheBusting();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -310,8 +310,8 @@ Singleton {
|
||||
"align-left": "\u{ea09}",
|
||||
"align-left-2": "\u{ff00}",
|
||||
"align-right": "\u{ea0a}",
|
||||
"alpha"//"align-right-2": "\u{feff}",
|
||||
: "\u{f543}",
|
||||
//"align-right-2": "\u{feff}",
|
||||
"alpha": "\u{f543}",
|
||||
"alphabet-arabic": "\u{ff2f}",
|
||||
"alphabet-bangla": "\u{ff2e}",
|
||||
"alphabet-cyrillic": "\u{f1df}",
|
||||
@@ -3143,8 +3143,8 @@ Singleton {
|
||||
"friends": "\u{eab0}",
|
||||
"friends-off": "\u{f136}",
|
||||
"frustum": "\u{fa9f}",
|
||||
"frustum-plus"//"frustum-off": "\u{fa9d}",
|
||||
: "\u{fa9e}",
|
||||
//"frustum-off": "\u{fa9d}",
|
||||
"frustum-plus": "\u{fa9e}",
|
||||
"function": "\u{f225}",
|
||||
"function-filled": "\u{fc2b}",
|
||||
"function-off": "\u{f3f0}",
|
||||
@@ -3403,13 +3403,13 @@ Singleton {
|
||||
"hexagon-letter-x": "\u{f479}",
|
||||
"hexagon-letter-x-filled": "\u{fe30}",
|
||||
"hexagon-letter-y": "\u{f47a}",
|
||||
"hexagon-letter-z"//"hexagon-letter-y-filled": "\u{fe2f}",
|
||||
: "\u{f47b}",
|
||||
"hexagon-minus"//"hexagon-letter-z-filled": "\u{fe2e}",
|
||||
: "\u{fc8f}",
|
||||
//"hexagon-letter-y-filled": "\u{fe2f}",
|
||||
"hexagon-letter-z": "\u{f47b}",
|
||||
//"hexagon-letter-z-filled": "\u{fe2e}",
|
||||
"hexagon-minus": "\u{fc8f}",
|
||||
"hexagon-minus-2": "\u{fc8e}",
|
||||
"hexagon-number-0"//"hexagon-minus-filled": "\u{fe2d}",
|
||||
: "\u{f459}",
|
||||
//"hexagon-minus-filled": "\u{fe2d}",
|
||||
"hexagon-number-0": "\u{f459}",
|
||||
"hexagon-number-0-filled": "\u{f74c}",
|
||||
"hexagon-number-1": "\u{f45a}",
|
||||
"hexagon-number-1-filled": "\u{f74d}",
|
||||
@@ -3432,8 +3432,8 @@ Singleton {
|
||||
"hexagon-off": "\u{ee9c}",
|
||||
"hexagon-plus": "\u{fc45}",
|
||||
"hexagon-plus-2": "\u{fc90}",
|
||||
"hexagonal-prism"//"hexagon-plus-filled": "\u{fe2c}",
|
||||
: "\u{faa5}",
|
||||
//"hexagon-plus-filled": "\u{fe2c}",
|
||||
"hexagonal-prism": "\u{faa5}",
|
||||
"hexagonal-prism-off": "\u{faa3}",
|
||||
"hexagonal-prism-plus": "\u{faa4}",
|
||||
"hexagonal-pyramid": "\u{faa8}",
|
||||
@@ -3463,8 +3463,8 @@ Singleton {
|
||||
"home-eco": "\u{f351}",
|
||||
"home-edit": "\u{f352}",
|
||||
"home-exclamation": "\u{f33c}",
|
||||
"home-hand"//"home-filled": "\u{fe2b}",
|
||||
: "\u{f504}",
|
||||
//"home-filled": "\u{fe2b}",
|
||||
"home-hand": "\u{f504}",
|
||||
"home-heart": "\u{f353}",
|
||||
"home-infinity": "\u{f505}",
|
||||
"home-link": "\u{f354}",
|
||||
@@ -3582,8 +3582,8 @@ Singleton {
|
||||
"ironing-2-filled": "\u{1006e}",
|
||||
"ironing-3": "\u{f2f6}",
|
||||
"ironing-3-filled": "\u{1006d}",
|
||||
"ironing-off"//"ironing-filled": "\u{fe2a}",
|
||||
: "\u{f2f7}",
|
||||
//"ironing-filled": "\u{fe2a}",
|
||||
"ironing-off": "\u{f2f7}",
|
||||
"ironing-steam": "\u{f2f9}",
|
||||
"ironing-steam-filled": "\u{1006c}",
|
||||
"ironing-steam-off": "\u{f2f8}",
|
||||
@@ -3593,8 +3593,8 @@ Singleton {
|
||||
"italic": "\u{eb93}",
|
||||
"jacket": "\u{f661}",
|
||||
"jetpack": "\u{f581}",
|
||||
"jewish-star"//"jetpack-filled": "\u{fe29}",
|
||||
: "\u{f3ff}",
|
||||
//"jetpack-filled": "\u{fe29}",
|
||||
"jewish-star": "\u{f3ff}",
|
||||
"jewish-star-filled": "\u{f67e}",
|
||||
"join-bevel": "\u{ff4c}",
|
||||
"join-round": "\u{ff4b}",
|
||||
@@ -3608,8 +3608,8 @@ Singleton {
|
||||
"kering": "\u{efb8}",
|
||||
"kerning": "\u{efb8}",
|
||||
"key": "\u{eac7}",
|
||||
"key-off"//"key-filled": "\u{fe28}",
|
||||
: "\u{f14b}",
|
||||
//"key-filled": "\u{fe28}",
|
||||
"key-off": "\u{f14b}",
|
||||
"keyboard": "\u{ebd6}",
|
||||
"keyboard-filled": "\u{100a2}",
|
||||
"keyboard-hide": "\u{ec7e}",
|
||||
@@ -3665,20 +3665,20 @@ Singleton {
|
||||
"layers-union": "\u{eacb}",
|
||||
"layout": "\u{eadb}",
|
||||
"layout-2": "\u{eacc}",
|
||||
"layout-align-left"//"layout-2-filled": "\u{fe27}",
|
||||
// "layout-align-bottom": "\u{eacd}",
|
||||
//"layout-2-filled": "\u{fe27}",
|
||||
//"layout-align-bottom": "\u{eacd}",
|
||||
//"layout-align-bottom-filled": "\u{fe26}",
|
||||
// "layout-align-center": "\u{eace}",
|
||||
//"layout-align-center": "\u{eace}",
|
||||
//"layout-align-center-filled": "\u{fe25}",
|
||||
: "\u{eacf}",
|
||||
"layout-align-middle"// "layout-align-left-filled": "\u{fe24}",
|
||||
: "\u{ead0}",
|
||||
"layout-align-right"//"layout-align-middle-filled": "\u{fe23}",
|
||||
: "\u{ead1}",
|
||||
"layout-align-top"//"layout-align-right-filled": "\u{fe22}",
|
||||
: "\u{ead2}",
|
||||
"layout-board"//"layout-align-top-filled": "\u{fe21}",
|
||||
: "\u{ef95}",
|
||||
"layout-align-left": "\u{eacf}",
|
||||
//"layout-align-left-filled": "\u{fe24}",
|
||||
"layout-align-middle": "\u{ead0}",
|
||||
//"layout-align-middle-filled": "\u{fe23}",
|
||||
"layout-align-right": "\u{ead1}",
|
||||
//"layout-align-right-filled": "\u{fe22}",
|
||||
"layout-align-top": "\u{ead2}",
|
||||
//"layout-align-top-filled": "\u{fe21}",
|
||||
"layout-board": "\u{ef95}",
|
||||
"layout-board-filled": "\u{10182}",
|
||||
"layout-board-split": "\u{ef94}",
|
||||
"layout-board-split-filled": "\u{10183}",
|
||||
@@ -3690,8 +3690,8 @@ Singleton {
|
||||
"layout-bottombar-filled": "\u{fc37}",
|
||||
"layout-bottombar-inactive": "\u{fd45}",
|
||||
"layout-cards": "\u{ec13}",
|
||||
"layout-collage"// "layout-cards-filled": "\u{fe20}",
|
||||
: "\u{f389}",
|
||||
//"layout-cards-filled": "\u{fe20}",
|
||||
"layout-collage": "\u{f389}",
|
||||
"layout-columns": "\u{ead4}",
|
||||
"layout-dashboard": "\u{f02c}",
|
||||
"layout-dashboard-filled": "\u{fe1f}",
|
||||
@@ -4172,14 +4172,14 @@ Singleton {
|
||||
"microphone": "\u{eaf0}",
|
||||
"microphone-2": "\u{ef2c}",
|
||||
"microphone-2-off": "\u{f40d}",
|
||||
"microphone-off"//"microphone-filled": "\u{fe0f}",
|
||||
: "\u{ed16}",
|
||||
//"microphone-filled": "\u{fe0f}",
|
||||
"microphone-off": "\u{ed16}",
|
||||
"microscope": "\u{ef64}",
|
||||
"microscope-filled": "\u{10166}",
|
||||
"microscope-off": "\u{f40e}",
|
||||
"microwave": "\u{f248}",
|
||||
"microwave-off"//"microwave-filled": "\u{fe0e}",
|
||||
: "\u{f264}",
|
||||
//"microwave-filled": "\u{fe0e}",
|
||||
"microwave-off": "\u{f264}",
|
||||
"military-award": "\u{f079}",
|
||||
"military-rank": "\u{efcf}",
|
||||
"military-rank-filled": "\u{ff5e}",
|
||||
@@ -4413,18 +4413,18 @@ Singleton {
|
||||
"number-4-small": "\u{fcf9}",
|
||||
"number-40-small": "\u{fffa}",
|
||||
"number-41-small": "\u{fff9}",
|
||||
"number-5"//"number-42-small": "\u{fff8}",
|
||||
// "number-43-small": "\u{fff7}",
|
||||
// "number-44-small": "\u{fff6}",
|
||||
// "number-45-small": "\u{fff5}",
|
||||
// "number-46-small": "\u{fff4}",
|
||||
// "number-47-small": "\u{fff3}",
|
||||
// "number-48-small": "\u{fff2}",
|
||||
// "number-49-small": "\u{fff1}",
|
||||
: "\u{edf5}",
|
||||
//"number-42-small": "\u{fff8}",
|
||||
//"number-43-small": "\u{fff7}",
|
||||
//"number-44-small": "\u{fff6}",
|
||||
//"number-45-small": "\u{fff5}",
|
||||
//"number-46-small": "\u{fff4}",
|
||||
//"number-47-small": "\u{fff3}",
|
||||
//"number-48-small": "\u{fff2}",
|
||||
//"number-49-small": "\u{fff1}",
|
||||
"number-5": "\u{edf5}",
|
||||
"number-5-small": "\u{fcfa}",
|
||||
"number-51-small"// "number-50-small": "\u{fff0}",
|
||||
: "\u{ffef}",
|
||||
//"number-50-small": "\u{fff0}",
|
||||
"number-51-small": "\u{ffef}",
|
||||
"number-52-small": "\u{ffee}",
|
||||
"number-53-small": "\u{ffed}",
|
||||
"number-54-small": "\u{ffec}",
|
||||
@@ -4864,11 +4864,11 @@ Singleton {
|
||||
"quote": "\u{efbe}",
|
||||
"quote-filled": "\u{1009c}",
|
||||
"quote-off": "\u{f188}",
|
||||
"radar"//"quotes": "\u{fb1e}",
|
||||
: "\u{f017}",
|
||||
//"quotes": "\u{fb1e}",
|
||||
"radar": "\u{f017}",
|
||||
"radar-2": "\u{f016}",
|
||||
"radar-off"//"radar-filled": "\u{fe0d}",
|
||||
: "\u{f41f}",
|
||||
//"radar-filled": "\u{fe0d}",
|
||||
"radar-off": "\u{f41f}",
|
||||
"radio": "\u{ef2d}",
|
||||
"radio-off": "\u{f420}",
|
||||
"radioactive": "\u{ecc0}",
|
||||
@@ -4928,12 +4928,12 @@ Singleton {
|
||||
"regex-off": "\u{f421}",
|
||||
"registered": "\u{eb14}",
|
||||
"relation-many-to-many": "\u{ed7f}",
|
||||
"relation-one-to-many"//"relation-many-to-many-filled": "\u{fe0c}",
|
||||
: "\u{ed80}",
|
||||
"relation-one-to-one"//"relation-one-to-many-filled": "\u{fe0b}",
|
||||
: "\u{ed81}",
|
||||
"reload"//"relation-one-to-one-filled": "\u{fe0a}",
|
||||
: "\u{f3ae}",
|
||||
//"relation-many-to-many-filled": "\u{fe0c}",
|
||||
"relation-one-to-many": "\u{ed80}",
|
||||
//"relation-one-to-many-filled": "\u{fe0b}",
|
||||
"relation-one-to-one": "\u{ed81}",
|
||||
//"relation-one-to-one-filled": "\u{fe0a}",
|
||||
"reload": "\u{f3ae}",
|
||||
"reorder": "\u{fc15}",
|
||||
"repeat": "\u{eb72}",
|
||||
"repeat-off": "\u{f18e}",
|
||||
@@ -5085,8 +5085,8 @@ Singleton {
|
||||
"search": "\u{eb1c}",
|
||||
"search-off": "\u{f19c}",
|
||||
"section": "\u{eed5}",
|
||||
"section-sign"//"section-filled": "\u{fe09}",
|
||||
: "\u{f019}",
|
||||
//"section-filled": "\u{fe09}",
|
||||
"section-sign": "\u{f019}",
|
||||
"seeding": "\u{ed51}",
|
||||
"seeding-filled": "\u{10006}",
|
||||
"seeding-off": "\u{f19d}",
|
||||
@@ -5294,8 +5294,8 @@ Singleton {
|
||||
"sort-z-a": "\u{f550}",
|
||||
"sos": "\u{f24a}",
|
||||
"soup": "\u{ef2e}",
|
||||
"soup-off"//"soup-filled": "\u{fe08}",
|
||||
: "\u{f42d}",
|
||||
//"soup-filled": "\u{fe08}",
|
||||
"soup-off": "\u{f42d}",
|
||||
"source-code": "\u{f4a2}",
|
||||
"space": "\u{ec0c}",
|
||||
"space-off": "\u{f1aa}",
|
||||
@@ -5388,22 +5388,22 @@ Singleton {
|
||||
"square-half": "\u{effb}",
|
||||
"square-key": "\u{f638}",
|
||||
"square-letter-a": "\u{f47c}",
|
||||
"square-letter-b"//"square-letter-a-filled": "\u{fe07}",
|
||||
: "\u{f47d}",
|
||||
"square-letter-c"//"square-letter-b-filled": "\u{fe06}",
|
||||
: "\u{f47e}",
|
||||
"square-letter-d"//"square-letter-c-filled": "\u{fe05}",
|
||||
: "\u{f47f}",
|
||||
"square-letter-e"//"square-letter-d-filled": "\u{fe04}",
|
||||
: "\u{f480}",
|
||||
"square-letter-f"//"square-letter-e-filled": "\u{fe03}",
|
||||
: "\u{f481}",
|
||||
"square-letter-g"//"square-letter-f-filled": "\u{fe02}",
|
||||
: "\u{f482}",
|
||||
"square-letter-h"//"square-letter-g-filled": "\u{fe01}",
|
||||
: "\u{f483}",
|
||||
"square-letter-i"//"square-letter-h-filled": "\u{fe00}",
|
||||
: "\u{f484}",
|
||||
//"square-letter-a-filled": "\u{fe07}",
|
||||
"square-letter-b": "\u{f47d}",
|
||||
//"square-letter-b-filled": "\u{fe06}",
|
||||
"square-letter-c": "\u{f47e}",
|
||||
//"square-letter-c-filled": "\u{fe05}",
|
||||
"square-letter-d": "\u{f47f}",
|
||||
//"square-letter-d-filled": "\u{fe04}",
|
||||
"square-letter-e": "\u{f480}",
|
||||
//"square-letter-e-filled": "\u{fe03}",
|
||||
"square-letter-f": "\u{f481}",
|
||||
//"square-letter-f-filled": "\u{fe02}",
|
||||
"square-letter-g": "\u{f482}",
|
||||
//"square-letter-g-filled": "\u{fe01}",
|
||||
"square-letter-h": "\u{f483}",
|
||||
//"square-letter-h-filled": "\u{fe00}",
|
||||
"square-letter-i": "\u{f484}",
|
||||
"square-letter-i-filled": "\u{fdff}",
|
||||
"square-letter-j": "\u{f485}",
|
||||
"square-letter-j-filled": "\u{fdfe}",
|
||||
|
||||
@@ -7,63 +7,63 @@ Singleton {
|
||||
id: root
|
||||
|
||||
function _formatMessage(...args) {
|
||||
var t = Time.getFormattedTimestamp()
|
||||
var t = Time.getFormattedTimestamp();
|
||||
if (args.length > 1) {
|
||||
const maxLength = 14
|
||||
var module = args.shift().substring(0, maxLength).padStart(maxLength, " ")
|
||||
return `\x1b[36m[${t}]\x1b[0m \x1b[35m${module}\x1b[0m ` + args.join(" ")
|
||||
const maxLength = 14;
|
||||
var module = args.shift().substring(0, maxLength).padStart(maxLength, " ");
|
||||
return `\x1b[36m[${t}]\x1b[0m \x1b[35m${module}\x1b[0m ` + args.join(" ");
|
||||
} else {
|
||||
return `[\x1b[36m[${t}]\x1b[0m ` + args.join(" ")
|
||||
return `[\x1b[36m[${t}]\x1b[0m ` + args.join(" ");
|
||||
}
|
||||
}
|
||||
|
||||
function _getStackTrace() {
|
||||
try {
|
||||
throw new Error("Stack trace")
|
||||
throw new Error("Stack trace");
|
||||
} catch (e) {
|
||||
return e.stack
|
||||
return e.stack;
|
||||
}
|
||||
}
|
||||
|
||||
// Debug log (only when Settings.isDebug is true)
|
||||
function d(...args) {
|
||||
if (Settings && Settings.isDebug) {
|
||||
var msg = _formatMessage(...args)
|
||||
console.debug(msg)
|
||||
if (Settings?.isDebug) {
|
||||
var msg = _formatMessage(...args);
|
||||
console.debug(msg);
|
||||
}
|
||||
}
|
||||
|
||||
// Info log (always visible)
|
||||
function i(...args) {
|
||||
var msg = _formatMessage(...args)
|
||||
console.info(msg)
|
||||
var msg = _formatMessage(...args);
|
||||
console.info(msg);
|
||||
}
|
||||
|
||||
// Warning log (always visible)
|
||||
function w(...args) {
|
||||
var msg = _formatMessage(...args)
|
||||
console.warn(msg)
|
||||
var msg = _formatMessage(...args);
|
||||
console.warn(msg);
|
||||
}
|
||||
|
||||
// Error log (always visible)
|
||||
function e(...args) {
|
||||
var msg = _formatMessage(...args)
|
||||
console.error(msg)
|
||||
var msg = _formatMessage(...args);
|
||||
console.error(msg);
|
||||
}
|
||||
|
||||
function callStack() {
|
||||
var stack = _getStackTrace()
|
||||
Logger.i("Debug", "--------------------------")
|
||||
Logger.i("Debug", "Current call stack")
|
||||
var stack = _getStackTrace();
|
||||
Logger.i("Debug", "--------------------------");
|
||||
Logger.i("Debug", "Current call stack");
|
||||
// Split the stack into lines and log each one
|
||||
var stackLines = stack.split('\n')
|
||||
var stackLines = stack.split('\n');
|
||||
for (var i = 0; i < stackLines.length; i++) {
|
||||
var line = stackLines[i].trim() // Remove leading/trailing whitespace
|
||||
var line = stackLines[i].trim(); // Remove leading/trailing whitespace
|
||||
if (line.length > 0) {
|
||||
// Only log non-empty lines
|
||||
Logger.i("Debug", `- ${line}`)
|
||||
Logger.i("Debug", `- ${line}`);
|
||||
}
|
||||
}
|
||||
Logger.i("Debug", "--------------------------")
|
||||
Logger.i("Debug", "--------------------------");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,9 +3,9 @@ pragma Singleton
|
||||
import QtQuick
|
||||
import Quickshell
|
||||
import Quickshell.Io
|
||||
import "../Helpers/QtObj2JS.js" as QtObj2JS
|
||||
import qs.Commons
|
||||
import qs.Services.UI
|
||||
import "../Helpers/QtObj2JS.js" as QtObj2JS
|
||||
|
||||
Singleton {
|
||||
id: root
|
||||
@@ -42,30 +42,30 @@ Singleton {
|
||||
// Ensure directories exist before FileView tries to read files
|
||||
Component.onCompleted: {
|
||||
// ensure settings dir exists
|
||||
Quickshell.execDetached(["mkdir", "-p", configDir])
|
||||
Quickshell.execDetached(["mkdir", "-p", cacheDir])
|
||||
Quickshell.execDetached(["mkdir", "-p", configDir]);
|
||||
Quickshell.execDetached(["mkdir", "-p", cacheDir]);
|
||||
|
||||
Quickshell.execDetached(["mkdir", "-p", cacheDirImagesWallpapers])
|
||||
Quickshell.execDetached(["mkdir", "-p", cacheDirImagesNotifications])
|
||||
Quickshell.execDetached(["mkdir", "-p", cacheDirImagesWallpapers]);
|
||||
Quickshell.execDetached(["mkdir", "-p", cacheDirImagesNotifications]);
|
||||
|
||||
// Mark directories as created and trigger file loading
|
||||
directoriesCreated = true
|
||||
directoriesCreated = true;
|
||||
|
||||
// This should only be activated once when the settings structure has changed
|
||||
// Then it should be commented out again, regular users don't need to generate
|
||||
// default settings on every start
|
||||
if (isDebug) {
|
||||
generateDefaultSettings()
|
||||
generateDefaultSettings();
|
||||
}
|
||||
|
||||
// Patch-in the local default, resolved to user's home
|
||||
adapter.general.avatarImage = defaultAvatar
|
||||
adapter.screenRecorder.directory = defaultVideosDirectory
|
||||
adapter.wallpaper.directory = defaultWallpapersDirectory
|
||||
adapter.wallpaper.defaultWallpaper = Quickshell.shellDir + "/Assets/Wallpaper/noctalia.png"
|
||||
adapter.general.avatarImage = defaultAvatar;
|
||||
adapter.screenRecorder.directory = defaultVideosDirectory;
|
||||
adapter.wallpaper.directory = defaultWallpapersDirectory;
|
||||
adapter.wallpaper.defaultWallpaper = Quickshell.shellDir + "/Assets/Wallpaper/noctalia.png";
|
||||
|
||||
// Set the adapter to the settingsFileView to trigger the real settings load
|
||||
settingsFileView.adapter = adapter
|
||||
settingsFileView.adapter = adapter;
|
||||
}
|
||||
|
||||
// Don't write settings to disk immediately
|
||||
@@ -75,7 +75,7 @@ Singleton {
|
||||
running: false
|
||||
interval: 1000
|
||||
onTriggered: {
|
||||
root.saveImmediate()
|
||||
root.saveImmediate();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,31 +90,31 @@ Singleton {
|
||||
// Trigger initial load when path changes from empty to actual path
|
||||
onPathChanged: {
|
||||
if (path !== undefined) {
|
||||
reload()
|
||||
reload();
|
||||
}
|
||||
}
|
||||
onLoaded: function () {
|
||||
if (!isLoaded) {
|
||||
Logger.i("Settings", "Settings loaded")
|
||||
Logger.i("Settings", "Settings loaded");
|
||||
|
||||
upgradeSettingsData()
|
||||
validateMonitorConfigurations()
|
||||
isLoaded = true
|
||||
upgradeSettingsData();
|
||||
validateMonitorConfigurations();
|
||||
isLoaded = true;
|
||||
|
||||
// Emit the signal
|
||||
root.settingsLoaded()
|
||||
root.settingsLoaded();
|
||||
|
||||
// Finally, update our local settings version
|
||||
adapter.settingsVersion = settingsVersion
|
||||
adapter.settingsVersion = settingsVersion;
|
||||
}
|
||||
}
|
||||
onLoadFailed: function (error) {
|
||||
if (error.toString().includes("No such file") || error === 2) {
|
||||
// File doesn't exist, create it with default values
|
||||
writeAdapter()
|
||||
writeAdapter();
|
||||
// Also write to fallback if set
|
||||
if (Quickshell.env("NOCTALIA_SETTINGS_FALLBACK")) {
|
||||
settingsFallbackFileView.writeAdapter()
|
||||
settingsFallbackFileView.writeAdapter();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -141,6 +141,7 @@ Singleton {
|
||||
property list<string> monitors: []
|
||||
property string density: "default" // "compact", "default", "comfortable"
|
||||
property bool showCapsule: true
|
||||
property real capsuleOpacity: 1.0
|
||||
|
||||
// Floating bar settings
|
||||
property bool floating: false
|
||||
@@ -156,40 +157,55 @@ Singleton {
|
||||
// Widget configuration for modular bar system
|
||||
property JsonObject widgets
|
||||
widgets: JsonObject {
|
||||
property list<var> left: [{
|
||||
property list<var> left: [
|
||||
{
|
||||
"id": "ControlCenter"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"id": "SystemMonitor"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"id": "ActiveWindow"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"id": "MediaMini"
|
||||
}]
|
||||
property list<var> center: [{
|
||||
}
|
||||
]
|
||||
property list<var> center: [
|
||||
{
|
||||
"id": "Workspace"
|
||||
}]
|
||||
property list<var> right: [{
|
||||
}
|
||||
]
|
||||
property list<var> right: [
|
||||
{
|
||||
"id": "ScreenRecorder"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"id": "Tray"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"id": "NotificationHistory"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"id": "Battery"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"id": "Volume"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"id": "Brightness"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"id": "Clock"
|
||||
}]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
// general
|
||||
property JsonObject general: JsonObject {
|
||||
property string avatarImage: ""
|
||||
property real dimmerOpacity: 0.8
|
||||
property real dimmerOpacity: 0.6
|
||||
property bool showScreenCorners: false
|
||||
property bool forceBlackScreenCorners: false
|
||||
property real scaleRatio: 1.0
|
||||
@@ -204,6 +220,7 @@ Singleton {
|
||||
property int shadowOffsetX: 2
|
||||
property int shadowOffsetY: 3
|
||||
property string language: ""
|
||||
property bool allowPanelsOnScreenWithoutBar: true
|
||||
}
|
||||
|
||||
// ui
|
||||
@@ -222,6 +239,7 @@ Singleton {
|
||||
property JsonObject location: JsonObject {
|
||||
property string name: defaultLocation
|
||||
property bool weatherEnabled: true
|
||||
property bool weatherShowEffects: true
|
||||
property bool useFahrenheit: false
|
||||
property bool use12hourFormat: false
|
||||
property bool showWeekNumberInCalendar: false
|
||||
@@ -266,7 +284,7 @@ Singleton {
|
||||
// Wallhaven settings
|
||||
property bool useWallhaven: false
|
||||
property string wallhavenQuery: ""
|
||||
property string wallhavenSorting: "date_added"
|
||||
property string wallhavenSorting: "relevance"
|
||||
property string wallhavenOrder: "desc"
|
||||
property string wallhavenCategories: "111" // general,anime,people
|
||||
property string wallhavenPurity: "100" // sfw only
|
||||
@@ -278,6 +296,7 @@ Singleton {
|
||||
// applauncher
|
||||
property JsonObject appLauncher: JsonObject {
|
||||
property bool enableClipboardHistory: false
|
||||
property bool enableClipPreview: true
|
||||
// Position: center, top_left, top_right, bottom_left, bottom_right, bottom_center, top_center
|
||||
property string position: "center"
|
||||
property list<string> pinnedExecs: []
|
||||
@@ -294,41 +313,57 @@ Singleton {
|
||||
property string position: "close_to_bar_button"
|
||||
property JsonObject shortcuts
|
||||
shortcuts: JsonObject {
|
||||
property list<var> left: [{
|
||||
property list<var> left: [
|
||||
{
|
||||
"id": "WiFi"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"id": "Bluetooth"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"id": "ScreenRecorder"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"id": "WallpaperSelector"
|
||||
}]
|
||||
property list<var> right: [{
|
||||
}
|
||||
]
|
||||
property list<var> right: [
|
||||
{
|
||||
"id": "Notifications"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"id": "PowerProfile"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"id": "KeepAwake"
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"id": "NightLight"
|
||||
}]
|
||||
}
|
||||
]
|
||||
}
|
||||
property list<var> cards: [{
|
||||
property list<var> cards: [
|
||||
{
|
||||
"id": "profile-card",
|
||||
"enabled": true
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"id": "shortcuts-card",
|
||||
"enabled": true
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"id": "audio-card",
|
||||
"enabled": true
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"id": "weather-card",
|
||||
"enabled": true
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"id": "media-sysmon-card",
|
||||
"enabled": true
|
||||
}]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
// system monitor
|
||||
@@ -351,6 +386,7 @@ Singleton {
|
||||
property bool enabled: true
|
||||
property string displayMode: "always_visible" // "always_visible", "auto_hide", "exclusive"
|
||||
property real backgroundOpacity: 1.0
|
||||
property real radiusRatio: 0.1
|
||||
property real floatingRatio: 1.0
|
||||
property real size: 1
|
||||
property bool onlySameOutput: true
|
||||
@@ -371,25 +407,32 @@ Singleton {
|
||||
property int countdownDuration: 10000
|
||||
property string position: "center"
|
||||
property bool showHeader: true
|
||||
property list<var> powerOptions: [{
|
||||
property list<var> powerOptions: [
|
||||
{
|
||||
"action": "lock",
|
||||
"enabled": true
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"action": "suspend",
|
||||
"enabled": true
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"action": "hibernate",
|
||||
"enabled": true
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"action": "reboot",
|
||||
"enabled": true
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"action": "logout",
|
||||
"enabled": true
|
||||
}, {
|
||||
},
|
||||
{
|
||||
"action": "shutdown",
|
||||
"enabled": true
|
||||
}]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
// notifications
|
||||
@@ -425,6 +468,7 @@ Singleton {
|
||||
property string visualizerQuality: "high"
|
||||
property list<string> mprisBlacklist: []
|
||||
property string preferredPlayer: ""
|
||||
property string externalMixer: "pwvucontrol || pavucontrol"
|
||||
}
|
||||
|
||||
// brightness
|
||||
@@ -476,98 +520,97 @@ Singleton {
|
||||
property string manualSunset: "18:30"
|
||||
}
|
||||
|
||||
property JsonObject changelog: JsonObject {
|
||||
property string lastSeenVersion: ""
|
||||
}
|
||||
|
||||
// hooks
|
||||
property JsonObject hooks: JsonObject {
|
||||
property bool enabled: false
|
||||
property string wallpaperChange: ""
|
||||
property string darkModeChange: ""
|
||||
}
|
||||
|
||||
// battery
|
||||
property JsonObject battery: JsonObject {
|
||||
property int chargingMode: 0
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Function to preprocess paths by expanding "~" to user's home directory
|
||||
function preprocessPath(path) {
|
||||
if (typeof path !== "string" || path === "") {
|
||||
return path
|
||||
return path;
|
||||
}
|
||||
|
||||
// Expand "~" to user's home directory
|
||||
if (path.startsWith("~/")) {
|
||||
return Quickshell.env("HOME") + path.substring(1)
|
||||
return Quickshell.env("HOME") + path.substring(1);
|
||||
} else if (path === "~") {
|
||||
return Quickshell.env("HOME")
|
||||
return Quickshell.env("HOME");
|
||||
}
|
||||
|
||||
return path
|
||||
return path;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Public function to trigger immediate settings saving
|
||||
function saveImmediate() {
|
||||
settingsFileView.writeAdapter()
|
||||
settingsFileView.writeAdapter();
|
||||
// Write to fallback location if set
|
||||
if (Quickshell.env("NOCTALIA_SETTINGS_FALLBACK")) {
|
||||
settingsFallbackFileView.writeAdapter()
|
||||
settingsFallbackFileView.writeAdapter();
|
||||
}
|
||||
root.settingsSaved() // Emit signal after saving
|
||||
root.settingsSaved(); // Emit signal after saving
|
||||
}
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Generate default settings at the root of the repo
|
||||
function generateDefaultSettings() {
|
||||
try {
|
||||
Logger.d("Settings", "Generating settings-default.json")
|
||||
Logger.d("Settings", "Generating settings-default.json");
|
||||
|
||||
// Prepare a clean JSON
|
||||
var plainAdapter = QtObj2JS.qtObjectToPlainObject(adapter)
|
||||
var jsonData = JSON.stringify(plainAdapter, null, 2)
|
||||
var plainAdapter = QtObj2JS.qtObjectToPlainObject(adapter);
|
||||
var jsonData = JSON.stringify(plainAdapter, null, 2);
|
||||
|
||||
var defaultPath = Quickshell.shellDir + "/Assets/settings-default.json"
|
||||
var defaultPath = Quickshell.shellDir + "/Assets/settings-default.json";
|
||||
|
||||
// Encode transfer it has base64 to avoid any escaping issue
|
||||
var base64Data = Qt.btoa(jsonData)
|
||||
Quickshell.execDetached(["sh", "-c", `echo "${base64Data}" | base64 -d > "${defaultPath}"`])
|
||||
var base64Data = Qt.btoa(jsonData);
|
||||
Quickshell.execDetached(["sh", "-c", `echo "${base64Data}" | base64 -d > "${defaultPath}"`]);
|
||||
} catch (error) {
|
||||
Logger.e("Settings", "Failed to generate default settings file: " + error)
|
||||
Logger.e("Settings", "Failed to generate default settings file: " + error);
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Function to validate monitor configurations
|
||||
function validateMonitorConfigurations() {
|
||||
var availableScreenNames = []
|
||||
var availableScreenNames = [];
|
||||
for (var i = 0; i < Quickshell.screens.length; i++) {
|
||||
availableScreenNames.push(Quickshell.screens[i].name)
|
||||
availableScreenNames.push(Quickshell.screens[i].name);
|
||||
}
|
||||
|
||||
Logger.d("Settings", "Available monitors: [" + availableScreenNames.join(", ") + "]")
|
||||
Logger.d("Settings", "Configured bar monitors: [" + adapter.bar.monitors.join(", ") + "]")
|
||||
Logger.d("Settings", "Available monitors: [" + availableScreenNames.join(", ") + "]");
|
||||
Logger.d("Settings", "Configured bar monitors: [" + adapter.bar.monitors.join(", ") + "]");
|
||||
|
||||
// Check bar monitors
|
||||
if (adapter.bar.monitors.length > 0) {
|
||||
var hasValidBarMonitor = false
|
||||
var hasValidBarMonitor = false;
|
||||
for (var j = 0; j < adapter.bar.monitors.length; j++) {
|
||||
if (availableScreenNames.includes(adapter.bar.monitors[j])) {
|
||||
hasValidBarMonitor = true
|
||||
break
|
||||
hasValidBarMonitor = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!hasValidBarMonitor) {
|
||||
Logger.w("Settings", "No configured bar monitors found on system, clearing bar monitor list to show on all screens")
|
||||
adapter.bar.monitors = []
|
||||
} else {
|
||||
Logger.w("Settings", "No configured bar monitors found on system, clearing bar monitor list to show on all screens");
|
||||
adapter.bar.monitors = [];
|
||||
} else
|
||||
|
||||
//Logger.i("Settings", "Found valid bar monitors, keeping configuration")
|
||||
}
|
||||
} else {
|
||||
{}
|
||||
} else
|
||||
|
||||
//Logger.i("Settings", "Bar monitor list is empty, will show on all available screens")
|
||||
}
|
||||
{}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------
|
||||
@@ -576,50 +619,50 @@ Singleton {
|
||||
function upgradeSettingsData() {
|
||||
// Wait for BarWidgetRegistry to be ready
|
||||
if (!BarWidgetRegistry.widgets || Object.keys(BarWidgetRegistry.widgets).length === 0) {
|
||||
Logger.w("Settings", "BarWidgetRegistry not ready, deferring upgrade")
|
||||
Qt.callLater(upgradeSettingsData)
|
||||
return
|
||||
Logger.w("Settings", "BarWidgetRegistry not ready, deferring upgrade");
|
||||
Qt.callLater(upgradeSettingsData);
|
||||
return;
|
||||
}
|
||||
|
||||
const sections = ["left", "center", "right"]
|
||||
const sections = ["left", "center", "right"];
|
||||
|
||||
// -----------------
|
||||
// 1st. convert old widget id to new id
|
||||
for (var s = 0; s < sections.length; s++) {
|
||||
const sectionName = sections[s]
|
||||
const sectionName = sections[s];
|
||||
for (var i = 0; i < adapter.bar.widgets[sectionName].length; i++) {
|
||||
var widget = adapter.bar.widgets[sectionName][i]
|
||||
var widget = adapter.bar.widgets[sectionName][i];
|
||||
|
||||
switch (widget.id) {
|
||||
case "DarkModeToggle":
|
||||
widget.id = "DarkMode"
|
||||
break
|
||||
widget.id = "DarkMode";
|
||||
break;
|
||||
case "PowerToggle":
|
||||
widget.id = "SessionMenu"
|
||||
break
|
||||
widget.id = "SessionMenu";
|
||||
break;
|
||||
case "ScreenRecorderIndicator":
|
||||
widget.id = "ScreenRecorder"
|
||||
break
|
||||
widget.id = "ScreenRecorder";
|
||||
break;
|
||||
case "SidePanelToggle":
|
||||
widget.id = "ControlCenter"
|
||||
break
|
||||
widget.id = "ControlCenter";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------
|
||||
// 2nd. remove any non existing widget type
|
||||
var removedWidget = false
|
||||
var removedWidget = false;
|
||||
for (var s = 0; s < sections.length; s++) {
|
||||
const sectionName = sections[s]
|
||||
const widgets = adapter.bar.widgets[sectionName]
|
||||
const sectionName = sections[s];
|
||||
const widgets = adapter.bar.widgets[sectionName];
|
||||
// Iterate backward through the widgets array, so it does not break when removing a widget
|
||||
for (var i = widgets.length - 1; i >= 0; i--) {
|
||||
var widget = widgets[i]
|
||||
var widget = widgets[i];
|
||||
if (!BarWidgetRegistry.hasWidget(widget.id)) {
|
||||
Logger.w(`Settings`, `Deleted invalid widget ${widget.id}`)
|
||||
widgets.splice(i, 1)
|
||||
removedWidget = true
|
||||
Logger.w(`Settings`, `Deleted invalid widget ${widget.id}`);
|
||||
widgets.splice(i, 1);
|
||||
removedWidget = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -627,18 +670,18 @@ Singleton {
|
||||
// -----------------
|
||||
// 3nd. upgrade widget settings
|
||||
for (var s = 0; s < sections.length; s++) {
|
||||
const sectionName = sections[s]
|
||||
const sectionName = sections[s];
|
||||
for (var i = 0; i < adapter.bar.widgets[sectionName].length; i++) {
|
||||
var widget = adapter.bar.widgets[sectionName][i]
|
||||
var widget = adapter.bar.widgets[sectionName][i];
|
||||
|
||||
// Check if widget registry supports user settings, if it does not, then there is nothing to do
|
||||
const reg = BarWidgetRegistry.widgetMetadata[widget.id]
|
||||
const reg = BarWidgetRegistry.widgetMetadata[widget.id];
|
||||
if ((reg === undefined) || (reg.allowUserSettings === undefined) || !reg.allowUserSettings) {
|
||||
continue
|
||||
continue;
|
||||
}
|
||||
|
||||
if (upgradeWidget(widget)) {
|
||||
Logger.d("Settings", `Upgraded ${widget.id} widget:`, JSON.stringify(widget))
|
||||
Logger.d("Settings", `Upgraded ${widget.id} widget:`, JSON.stringify(widget));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -647,14 +690,14 @@ Singleton {
|
||||
// 4th. safety check
|
||||
// if a widget was deleted, ensure we still have a control center
|
||||
if (removedWidget) {
|
||||
var gotControlCenter = false
|
||||
var gotControlCenter = false;
|
||||
for (var s = 0; s < sections.length; s++) {
|
||||
const sectionName = sections[s]
|
||||
const sectionName = sections[s];
|
||||
for (var i = 0; i < adapter.bar.widgets[sectionName].length; i++) {
|
||||
var widget = adapter.bar.widgets[sectionName][i]
|
||||
var widget = adapter.bar.widgets[sectionName][i];
|
||||
if (widget.id === "ControlCenter") {
|
||||
gotControlCenter = true
|
||||
break
|
||||
gotControlCenter = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -663,8 +706,8 @@ Singleton {
|
||||
//const obj = JSON.parse('{"id": "ControlCenter"}');
|
||||
adapter.bar.widgets["right"].push(({
|
||||
"id": "ControlCenter"
|
||||
}))
|
||||
Logger.w("Settings", "Added a ControlCenter widget to the right section")
|
||||
}));
|
||||
Logger.w("Settings", "Added a ControlCenter widget to the right section");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -674,31 +717,31 @@ Singleton {
|
||||
if (adapter.settingsVersion < 21) {
|
||||
// Read raw JSON file to access properties not in adapter schema
|
||||
try {
|
||||
var rawJson = settingsFileView.text()
|
||||
var rawJson = settingsFileView.text();
|
||||
|
||||
if (rawJson) {
|
||||
var parsed = JSON.parse(rawJson)
|
||||
var anyDiscordEnabled = false
|
||||
var parsed = JSON.parse(rawJson);
|
||||
var anyDiscordEnabled = false;
|
||||
|
||||
// Check if any Discord client was enabled
|
||||
const discordClients = ["discord_vesktop", "discord_webcord", "discord_armcord", "discord_equibop", "discord_lightcord", "discord_dorion", "discord_vencord"]
|
||||
const discordClients = ["discord_vesktop", "discord_webcord", "discord_armcord", "discord_equibop", "discord_lightcord", "discord_dorion", "discord_vencord"];
|
||||
|
||||
if (parsed.templates) {
|
||||
for (var i = 0; i < discordClients.length; i++) {
|
||||
if (parsed.templates[discordClients[i]]) {
|
||||
anyDiscordEnabled = true
|
||||
break
|
||||
anyDiscordEnabled = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Set unified discord property
|
||||
adapter.templates.discord = anyDiscordEnabled
|
||||
adapter.templates.discord = anyDiscordEnabled;
|
||||
|
||||
Logger.i("Settings", "Migrated Discord templates to unified 'discord' property (enabled:", anyDiscordEnabled + ")")
|
||||
Logger.i("Settings", "Migrated Discord templates to unified 'discord' property (enabled:", anyDiscordEnabled + ")");
|
||||
}
|
||||
} catch (error) {
|
||||
Logger.w("Settings", "Failed to read raw JSON for Discord migration:", error)
|
||||
Logger.w("Settings", "Failed to read raw JSON for Discord migration:", error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -708,20 +751,20 @@ Singleton {
|
||||
if (adapter.settingsVersion < 22) {
|
||||
// Read raw JSON file to access properties not in adapter schema
|
||||
try {
|
||||
var rawJson = settingsFileView.text()
|
||||
var rawJson = settingsFileView.text();
|
||||
|
||||
if (rawJson) {
|
||||
var parsed = JSON.parse(rawJson)
|
||||
var parsed = JSON.parse(rawJson);
|
||||
if (parsed.appLauncher && parsed.appLauncher.backgroundOpacity !== undefined) {
|
||||
var oldOpacity = parsed.appLauncher.backgroundOpacity
|
||||
var oldOpacity = parsed.appLauncher.backgroundOpacity;
|
||||
if (adapter.ui) {
|
||||
adapter.ui.panelBackgroundOpacity = oldOpacity
|
||||
Logger.i("Settings", "Migrated appLauncher.backgroundOpacity to ui.panelBackgroundOpacity (value:", oldOpacity + ")")
|
||||
adapter.ui.panelBackgroundOpacity = oldOpacity;
|
||||
Logger.i("Settings", "Migrated appLauncher.backgroundOpacity to ui.panelBackgroundOpacity (value:", oldOpacity + ")");
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
Logger.w("Settings", "Failed to read raw JSON for migration:", error)
|
||||
Logger.w("Settings", "Failed to read raw JSON for migration:", error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -732,23 +775,23 @@ Singleton {
|
||||
if (adapter.settingsVersion < 23) {
|
||||
// Read raw JSON file to access dimDesktop property
|
||||
try {
|
||||
var rawJson = settingsFileView.text()
|
||||
var rawJson = settingsFileView.text();
|
||||
|
||||
if (rawJson) {
|
||||
var parsed = JSON.parse(rawJson)
|
||||
var parsed = JSON.parse(rawJson);
|
||||
if (parsed.general && parsed.general.dimDesktop === true) {
|
||||
// Check if dimmerOpacity exists in raw JSON (not adapter default)
|
||||
var dimmerOpacityInJson = parsed.general.dimmerOpacity
|
||||
var dimmerOpacityInJson = parsed.general.dimmerOpacity;
|
||||
|
||||
// If dimmerOpacity wasn't explicitly set in JSON or was 0, set it to 0.8 (80% dimming)
|
||||
if (dimmerOpacityInJson === undefined || dimmerOpacityInJson === 0) {
|
||||
adapter.general.dimmerOpacity = 0.8
|
||||
Logger.i("Settings", "Migrated dimDesktop=true: set dimmerOpacity to 0.8 (80% dimming)")
|
||||
adapter.general.dimmerOpacity = 0.8;
|
||||
Logger.i("Settings", "Migrated dimDesktop=true: set dimmerOpacity to 0.8 (80% dimming)");
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
Logger.w("Settings", "Failed to read raw JSON for dimDesktop migration:", error)
|
||||
Logger.w("Settings", "Failed to read raw JSON for dimDesktop migration:", error);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -756,35 +799,35 @@ Singleton {
|
||||
// -----------------------------------------------------
|
||||
function upgradeWidget(widget) {
|
||||
// Backup the widget definition before altering
|
||||
const widgetBefore = JSON.stringify(widget)
|
||||
const widgetBefore = JSON.stringify(widget);
|
||||
|
||||
// Get all existing custom settings keys
|
||||
const keys = Object.keys(BarWidgetRegistry.widgetMetadata[widget.id])
|
||||
const keys = Object.keys(BarWidgetRegistry.widgetMetadata[widget.id]);
|
||||
|
||||
// Delete deprecated user settings from the wiget
|
||||
for (const k of Object.keys(widget)) {
|
||||
if (k === "id" || k === "allowUserSettings") {
|
||||
continue
|
||||
continue;
|
||||
}
|
||||
if (!keys.includes(k)) {
|
||||
delete widget[k]
|
||||
delete widget[k];
|
||||
}
|
||||
}
|
||||
|
||||
// Inject missing default setting (metaData) from BarWidgetRegistry
|
||||
for (var i = 0; i < keys.length; i++) {
|
||||
const k = keys[i]
|
||||
const k = keys[i];
|
||||
if (k === "id" || k === "allowUserSettings") {
|
||||
continue
|
||||
continue;
|
||||
}
|
||||
|
||||
if (widget[k] === undefined) {
|
||||
widget[k] = BarWidgetRegistry.widgetMetadata[widget.id][k]
|
||||
widget[k] = BarWidgetRegistry.widgetMetadata[widget.id][k];
|
||||
}
|
||||
}
|
||||
|
||||
// Compare settings, to detect if something has been upgraded
|
||||
const widgetAfter = JSON.stringify(widget)
|
||||
return (widgetAfter !== widgetBefore)
|
||||
const widgetAfter = JSON.stringify(widget);
|
||||
return (widgetAfter !== widgetBefore);
|
||||
}
|
||||
}
|
||||
|
||||
183
Commons/ShellState.qml
Normal file
183
Commons/ShellState.qml
Normal file
@@ -0,0 +1,183 @@
|
||||
pragma Singleton
|
||||
|
||||
import QtQuick
|
||||
import Quickshell
|
||||
import Quickshell.Io
|
||||
|
||||
// Centralized shell state management for small cache files
|
||||
Singleton {
|
||||
id: root
|
||||
|
||||
property string stateFile: ""
|
||||
property bool isLoaded: false
|
||||
|
||||
// State properties for different services
|
||||
readonly property alias data: adapter
|
||||
|
||||
// Signals for state changes
|
||||
signal displayStateChanged
|
||||
signal notificationsStateChanged
|
||||
signal changelogStateChanged
|
||||
signal colorSchemesListChanged
|
||||
|
||||
Component.onCompleted: {
|
||||
// Setup state file path (needs Settings to be available)
|
||||
Qt.callLater(() => {
|
||||
if (typeof Settings !== 'undefined' && Settings.cacheDir) {
|
||||
stateFile = Settings.cacheDir + "shell-state.json";
|
||||
stateFileView.path = stateFile;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// FileView for shell state
|
||||
FileView {
|
||||
id: stateFileView
|
||||
printErrors: false
|
||||
watchChanges: false
|
||||
|
||||
adapter: JsonAdapter {
|
||||
id: adapter
|
||||
|
||||
// CompositorService: display scales
|
||||
property var display: ({})
|
||||
|
||||
// NotificationService: notification state
|
||||
property var notificationsState: ({
|
||||
lastSeenTs: 0
|
||||
})
|
||||
|
||||
// UpdateService: changelog state
|
||||
property var changelogState: ({
|
||||
lastSeenVersion: ""
|
||||
})
|
||||
|
||||
// SchemeDownloader: color schemes list
|
||||
property var colorSchemesList: ({
|
||||
schemes: [],
|
||||
timestamp: 0
|
||||
})
|
||||
|
||||
// WallpaperService: current wallpapers per screen
|
||||
property var wallpapers: ({})
|
||||
}
|
||||
|
||||
onLoaded: {
|
||||
root.isLoaded = true;
|
||||
Logger.d("ShellState", "Loaded state file");
|
||||
}
|
||||
|
||||
onLoadFailed: error => {
|
||||
if (error === 2) {
|
||||
// File doesn't exist, will be created on first write
|
||||
root.isLoaded = true;
|
||||
Logger.d("ShellState", "State file doesn't exist, will create on first write");
|
||||
} else {
|
||||
Logger.e("ShellState", "Failed to load state file:", error);
|
||||
root.isLoaded = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Debounced save timer
|
||||
Timer {
|
||||
id: saveTimer
|
||||
interval: 300
|
||||
onTriggered: performSave()
|
||||
}
|
||||
|
||||
property bool saveQueued: false
|
||||
|
||||
function save() {
|
||||
saveQueued = true;
|
||||
saveTimer.restart();
|
||||
}
|
||||
|
||||
function performSave() {
|
||||
if (!saveQueued || !stateFile) {
|
||||
return;
|
||||
}
|
||||
|
||||
saveQueued = false;
|
||||
|
||||
try {
|
||||
// Ensure cache directory exists
|
||||
Quickshell.execDetached(["mkdir", "-p", Settings.cacheDir]);
|
||||
|
||||
Qt.callLater(() => {
|
||||
try {
|
||||
stateFileView.writeAdapter();
|
||||
Logger.d("ShellState", "Saved state file");
|
||||
} catch (writeError) {
|
||||
Logger.e("ShellState", "Failed to write state file:", writeError);
|
||||
}
|
||||
});
|
||||
} catch (error) {
|
||||
Logger.e("ShellState", "Failed to save state:", error);
|
||||
}
|
||||
}
|
||||
|
||||
// Convenience functions for each service
|
||||
|
||||
// Display state (CompositorService)
|
||||
function setDisplay(displayData) {
|
||||
adapter.display = displayData;
|
||||
save();
|
||||
displayStateChanged();
|
||||
}
|
||||
|
||||
function getDisplay() {
|
||||
return adapter.display || {};
|
||||
}
|
||||
|
||||
// Notifications state (NotificationService)
|
||||
function setNotificationsState(stateData) {
|
||||
adapter.notificationsState = stateData;
|
||||
save();
|
||||
notificationsStateChanged();
|
||||
}
|
||||
|
||||
function getNotificationsState() {
|
||||
return adapter.notificationsState || {
|
||||
lastSeenTs: 0
|
||||
};
|
||||
}
|
||||
|
||||
// Changelog state (UpdateService)
|
||||
function setChangelogState(stateData) {
|
||||
adapter.changelogState = stateData;
|
||||
save();
|
||||
changelogStateChanged();
|
||||
}
|
||||
|
||||
function getChangelogState() {
|
||||
return adapter.changelogState || {
|
||||
lastSeenVersion: ""
|
||||
};
|
||||
}
|
||||
|
||||
// Color schemes list (SchemeDownloader)
|
||||
function setColorSchemesList(listData) {
|
||||
adapter.colorSchemesList = listData;
|
||||
save();
|
||||
colorSchemesListChanged();
|
||||
}
|
||||
|
||||
function getColorSchemesList() {
|
||||
return adapter.colorSchemesList || {
|
||||
schemes: [],
|
||||
timestamp: 0
|
||||
};
|
||||
}
|
||||
|
||||
// Wallpapers (WallpaperService)
|
||||
function setWallpapers(wallpapersData) {
|
||||
adapter.wallpapers = wallpapersData;
|
||||
save();
|
||||
}
|
||||
|
||||
function getWallpapers() {
|
||||
return adapter.wallpapers || {};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,108 +7,102 @@ import qs.Services.Power
|
||||
Singleton {
|
||||
id: root
|
||||
|
||||
|
||||
/*
|
||||
Preset sizes for font, radii, ?
|
||||
*/
|
||||
|
||||
// Font size
|
||||
property real fontSizeXXS: 8
|
||||
property real fontSizeXS: 9
|
||||
property real fontSizeS: 10
|
||||
property real fontSizeM: 11
|
||||
property real fontSizeL: 13
|
||||
property real fontSizeXL: 16
|
||||
property real fontSizeXXL: 18
|
||||
property real fontSizeXXXL: 24
|
||||
readonly property real fontSizeXXS: 8
|
||||
readonly property real fontSizeXS: 9
|
||||
readonly property real fontSizeS: 10
|
||||
readonly property real fontSizeM: 11
|
||||
readonly property real fontSizeL: 13
|
||||
readonly property real fontSizeXL: 16
|
||||
readonly property real fontSizeXXL: 18
|
||||
readonly property real fontSizeXXXL: 24
|
||||
|
||||
// Font weight
|
||||
property int fontWeightRegular: 400
|
||||
property int fontWeightMedium: 500
|
||||
property int fontWeightSemiBold: 600
|
||||
property int fontWeightBold: 700
|
||||
readonly property int fontWeightRegular: 400
|
||||
readonly property int fontWeightMedium: 500
|
||||
readonly property int fontWeightSemiBold: 600
|
||||
readonly property int fontWeightBold: 700
|
||||
|
||||
// Radii
|
||||
property int radiusXXS: Math.round(4 * Settings.data.general.radiusRatio)
|
||||
property int radiusXS: Math.round(8 * Settings.data.general.radiusRatio)
|
||||
property int radiusS: Math.round(12 * Settings.data.general.radiusRatio)
|
||||
property int radiusM: Math.round(16 * Settings.data.general.radiusRatio)
|
||||
property int radiusL: Math.round(20 * Settings.data.general.radiusRatio)
|
||||
property int screenRadius: Math.round(20 * Settings.data.general.screenRadiusRatio)
|
||||
readonly property int radiusXXS: Math.round(4 * Settings.data.general.radiusRatio)
|
||||
readonly property int radiusXS: Math.round(8 * Settings.data.general.radiusRatio)
|
||||
readonly property int radiusS: Math.round(12 * Settings.data.general.radiusRatio)
|
||||
readonly property int radiusM: Math.round(16 * Settings.data.general.radiusRatio)
|
||||
readonly property int radiusL: Math.round(20 * Settings.data.general.radiusRatio)
|
||||
readonly property int screenRadius: Math.round(20 * Settings.data.general.screenRadiusRatio)
|
||||
|
||||
// Border
|
||||
property int borderS: Math.max(1, Math.round(1 * uiScaleRatio))
|
||||
property int borderM: Math.max(1, Math.round(2 * uiScaleRatio))
|
||||
property int borderL: Math.max(1, Math.round(3 * uiScaleRatio))
|
||||
readonly property int borderS: Math.max(1, Math.round(1 * uiScaleRatio))
|
||||
readonly property int borderM: Math.max(1, Math.round(2 * uiScaleRatio))
|
||||
readonly property int borderL: Math.max(1, Math.round(3 * uiScaleRatio))
|
||||
|
||||
// Margins (for margins and spacing)
|
||||
property int marginXXS: Math.round(2 * uiScaleRatio)
|
||||
property int marginXS: Math.round(4 * uiScaleRatio)
|
||||
property int marginS: Math.round(6 * uiScaleRatio)
|
||||
property int marginM: Math.round(9 * uiScaleRatio)
|
||||
property int marginL: Math.round(13 * uiScaleRatio)
|
||||
property int marginXL: Math.round(18 * uiScaleRatio)
|
||||
readonly property int marginXXS: Math.round(2 * uiScaleRatio)
|
||||
readonly property int marginXS: Math.round(4 * uiScaleRatio)
|
||||
readonly property int marginS: Math.round(6 * uiScaleRatio)
|
||||
readonly property int marginM: Math.round(9 * uiScaleRatio)
|
||||
readonly property int marginL: Math.round(13 * uiScaleRatio)
|
||||
readonly property int marginXL: Math.round(18 * uiScaleRatio)
|
||||
|
||||
// Opacity
|
||||
property real opacityNone: 0.0
|
||||
property real opacityLight: 0.25
|
||||
property real opacityMedium: 0.5
|
||||
property real opacityHeavy: 0.75
|
||||
property real opacityAlmost: 0.95
|
||||
property real opacityFull: 1.0
|
||||
readonly property real opacityNone: 0.0
|
||||
readonly property real opacityLight: 0.25
|
||||
readonly property real opacityMedium: 0.5
|
||||
readonly property real opacityHeavy: 0.75
|
||||
readonly property real opacityAlmost: 0.95
|
||||
readonly property real opacityFull: 1.0
|
||||
|
||||
// Shadows
|
||||
property real shadowOpacity: 0.85
|
||||
property real shadowBlur: 1.0
|
||||
property int shadowBlurMax: 22
|
||||
property real shadowHorizontalOffset: Settings.data.general.shadowOffsetX
|
||||
property real shadowVerticalOffset: Settings.data.general.shadowOffsetY
|
||||
readonly property real shadowOpacity: 0.85
|
||||
readonly property real shadowBlur: 1.0
|
||||
readonly property int shadowBlurMax: 22
|
||||
readonly property real shadowHorizontalOffset: Settings.data.general.shadowOffsetX
|
||||
readonly property real shadowVerticalOffset: Settings.data.general.shadowOffsetY
|
||||
|
||||
// Animation duration (ms)
|
||||
property int animationFaster: (Settings.data.general.animationDisabled || PowerProfileService.noctaliaPerformanceMode) ? 0 : Math.round(75 / Settings.data.general.animationSpeed)
|
||||
property int animationFast: (Settings.data.general.animationDisabled || PowerProfileService.noctaliaPerformanceMode) ? 0 : Math.round(150 / Settings.data.general.animationSpeed)
|
||||
property int animationNormal: (Settings.data.general.animationDisabled || PowerProfileService.noctaliaPerformanceMode) ? 0 : Math.round(300 / Settings.data.general.animationSpeed)
|
||||
property int animationSlow: (Settings.data.general.animationDisabled || PowerProfileService.noctaliaPerformanceMode) ? 0 : Math.round(450 / Settings.data.general.animationSpeed)
|
||||
property int animationSlowest: (Settings.data.general.animationDisabled || PowerProfileService.noctaliaPerformanceMode) ? 0 : Math.round(750 / Settings.data.general.animationSpeed)
|
||||
readonly property int animationFaster: (Settings.data.general.animationDisabled || PowerProfileService.noctaliaPerformanceMode) ? 0 : Math.round(75 / Settings.data.general.animationSpeed)
|
||||
readonly property int animationFast: (Settings.data.general.animationDisabled || PowerProfileService.noctaliaPerformanceMode) ? 0 : Math.round(150 / Settings.data.general.animationSpeed)
|
||||
readonly property int animationNormal: (Settings.data.general.animationDisabled || PowerProfileService.noctaliaPerformanceMode) ? 0 : Math.round(300 / Settings.data.general.animationSpeed)
|
||||
readonly property int animationSlow: (Settings.data.general.animationDisabled || PowerProfileService.noctaliaPerformanceMode) ? 0 : Math.round(450 / Settings.data.general.animationSpeed)
|
||||
readonly property int animationSlowest: (Settings.data.general.animationDisabled || PowerProfileService.noctaliaPerformanceMode) ? 0 : Math.round(750 / Settings.data.general.animationSpeed)
|
||||
|
||||
// Delays
|
||||
property int tooltipDelay: 300
|
||||
property int tooltipDelayLong: 1200
|
||||
property int pillDelay: 500
|
||||
readonly property int tooltipDelay: 300
|
||||
readonly property int tooltipDelayLong: 1200
|
||||
readonly property int pillDelay: 500
|
||||
|
||||
// Widgets base size
|
||||
property real baseWidgetSize: 33
|
||||
property real sliderWidth: 200
|
||||
readonly property real baseWidgetSize: 33
|
||||
readonly property real sliderWidth: 200
|
||||
|
||||
property real uiScaleRatio: Settings.data.general.scaleRatio
|
||||
readonly property real uiScaleRatio: Settings.data.general.scaleRatio
|
||||
|
||||
// Bar Dimensions
|
||||
property real barHeight: {
|
||||
readonly property real barHeight: {
|
||||
switch (Settings.data.bar.density) {
|
||||
case "mini":
|
||||
return (Settings.data.bar.position === "left" || Settings.data.bar.position === "right") ? 22 : 20
|
||||
return (Settings.data.bar.position === "left" || Settings.data.bar.position === "right") ? 22 : 20;
|
||||
case "compact":
|
||||
return (Settings.data.bar.position === "left" || Settings.data.bar.position === "right") ? 27 : 25
|
||||
return (Settings.data.bar.position === "left" || Settings.data.bar.position === "right") ? 27 : 25;
|
||||
case "comfortable":
|
||||
return (Settings.data.bar.position === "left" || Settings.data.bar.position === "right") ? 39 : 37
|
||||
return (Settings.data.bar.position === "left" || Settings.data.bar.position === "right") ? 39 : 37;
|
||||
default:
|
||||
|
||||
case "default":
|
||||
return (Settings.data.bar.position === "left" || Settings.data.bar.position === "right") ? 33 : 31
|
||||
return (Settings.data.bar.position === "left" || Settings.data.bar.position === "right") ? 33 : 31;
|
||||
}
|
||||
}
|
||||
property real capsuleHeight: {
|
||||
readonly property real capsuleHeight: {
|
||||
switch (Settings.data.bar.density) {
|
||||
case "mini":
|
||||
return Math.round(barHeight * 1.0)
|
||||
return Math.round(barHeight * 1.0);
|
||||
case "compact":
|
||||
return Math.round(barHeight * 0.85)
|
||||
return Math.round(barHeight * 0.85);
|
||||
case "comfortable":
|
||||
return Math.round(barHeight * 0.73)
|
||||
return Math.round(barHeight * 0.73);
|
||||
default:
|
||||
|
||||
case "default":
|
||||
return Math.round(barHeight * 0.82)
|
||||
return Math.round(barHeight * 0.82);
|
||||
}
|
||||
}
|
||||
readonly property color capsuleColor: Settings.data.bar.showCapsule ? Qt.alpha(Color.mSurfaceVariant, Settings.data.bar.capsuleOpacity) : Color.transparent
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user