Merge branch 'main' into feat/smarter_shader_compiler

This commit is contained in:
MrDowntempo
2025-11-21 11:45:19 -05:00
committed by GitHub
190 changed files with 5560 additions and 3213 deletions

View File

@@ -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.

View File

@@ -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"
}
}

View File

@@ -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'

View File

@@ -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'

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"
}
}

View File

@@ -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'

View File

@@ -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'

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"
}
}

View File

@@ -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'

View File

@@ -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'

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"
}
}

View File

@@ -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'

View File

@@ -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'

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"
}
}

View File

@@ -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'

View File

@@ -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'

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -8,7 +8,7 @@
"mOnTertiary": "#e0def4",
"mError": "#eb6f92",
"mOnError": "#191724",
"mSurface": "#1f1d2e",
"mSurface": "#191724",
"mOnSurface": "#e0def4",
"mSurfaceVariant": "#26233a",
"mOnSurfaceVariant": "#908caa",

View File

@@ -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"
}
}

View File

@@ -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'

View File

@@ -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'

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -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;
}
}

View File

@@ -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

View File

@@ -395,9 +395,59 @@
"loading": "Wetter wird geladen…"
}
},
"changelog": {
"error": {
"rate-limit": "GitHub-Limit erreicht. Bitte versuche es in ein paar Minuten erneut.",
"fetch-failed": "Changelog-Daten konnten nicht geladen werden. Bitte versuche es später 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",
"cycle-visualizer": "Zyklus-Visualisierer",
"disable-bluetooth": "Bluetooth deaktivieren",
"disable-dnd": "Bitte nicht stören deaktivieren",
"disable-wifi": "WLAN deaktivieren",
"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",
@@ -719,6 +769,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.",
@@ -889,6 +944,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.",
@@ -1282,6 +1372,10 @@
"description": "Zugriff auf zuvor kopierte Elemente über den Launcher.",
"label": "Zwischenablageverlauf aktivieren"
},
"clip-preview": {
"description": "Zeigt eine Vorschau des Inhalts der Zwischenablage an, wenn der Befehl >clip verwendet wird.",
"label": "Clip-Vorschau aktivieren"
},
"custom-launch-prefix": {
"description": "Befehle mit einem benutzerdefinierten Launcher präfixieren (z.B. 'runapp' für systemd-Integration).",
"label": "Benutzerdefiniertes Start-Präfix"
@@ -1366,6 +1460,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"
@@ -2203,6 +2301,7 @@
},
"wifi": {
"panel": {
"available-networks": "Verfügbare Netzwerke",
"connect": "Verbinden",
"connected": "Verbunden",
"disabled": "WLAN ist deaktiviert",
@@ -2213,6 +2312,7 @@
"forget": "Vergessen",
"forget-network": "Dieses Netzwerk vergessen?",
"forgetting": "Wird vergessen...",
"known-networks": "Bekannte Netzwerke",
"no-networks": "Keine Netzwerke gefunden",
"password": "Passwort",
"saved": "Gespeichert",

View File

@@ -360,16 +360,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.",
"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": {
@@ -387,11 +387,6 @@
"title": "Bluetooth"
}
},
"context-menu": {
"open-mixer": "Audio mixer",
"toggle-mute": "Toggle mute",
"widget-settings": "Widget settings"
},
"calendar": {
"panel": {
"week": "Week"
@@ -400,9 +395,59 @@
"loading": "Loading weather…"
}
},
"changelog": {
"error": {
"rate-limit": "GitHub rate limit exceeded. Please try again in a few minutes.",
"fetch-failed": "Unable to load changelog data. Please try again later."
},
"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 whats 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}",
"cycle-visualizer": "Cycle visualizer",
"disable-bluetooth": "Disable Bluetooth",
"disable-dnd": "Disable Do Not Disturb",
"disable-wifi": "Disable Wi-Fi",
"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",
@@ -724,6 +769,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.",
@@ -894,6 +944,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.",
@@ -1287,6 +1372,10 @@
"description": "Access previously copied items from the launcher.",
"label": "Enable clipboard history"
},
"clip-preview": {
"description": "Show a preview of the clipboard content when using the >clip command.",
"label": "Enable clip preview"
},
"custom-launch-prefix": {
"description": "Prefix commands with a custom launcher (e.g., 'runapp' for systemd integration).",
"label": "Custom launch prefix"
@@ -1371,6 +1460,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"
@@ -1965,39 +2058,39 @@
"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-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",
@@ -2020,8 +2113,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": {
@@ -2208,6 +2301,7 @@
},
"wifi": {
"panel": {
"available-networks": "Available Networks",
"connect": "Connect",
"connected": "Connected",
"disabled": "Wi-Fi is disabled",
@@ -2218,6 +2312,7 @@
"forget": "Forget",
"forget-network": "Forget this network?",
"forgetting": "Forgetting...",
"known-networks": "Known Networks",
"no-networks": "No networks found",
"password": "Password",
"saved": "Saved",

View File

@@ -395,9 +395,59 @@
"loading": "Cargando el clima…"
}
},
"changelog": {
"error": {
"rate-limit": "Se alcanzó el límite de GitHub. Inténtalo de nuevo en unos minutos.",
"fetch-failed": "No se pudieron cargar los datos del registro de cambios. Inténtalo de nuevo más tarde."
},
"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}",
"cycle-visualizer": "Visualizador de ciclos",
"disable-bluetooth": "Desactivar Bluetooth",
"disable-dnd": "Desactivar No molestar",
"disable-wifi": "Desactivar Wi-Fi",
"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",
@@ -719,6 +769,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.",
@@ -889,6 +944,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.",
@@ -1282,6 +1372,10 @@
"description": "Accede a los elementos copiados anteriormente desde el lanzador.",
"label": "Activar historial del portapapeles"
},
"clip-preview": {
"description": "Muestra una vista previa del contenido del portapapeles al usar el comando >clip.",
"label": "Activar vista previa del portapapeles"
},
"custom-launch-prefix": {
"description": "Prefijar comandos con un lanzador personalizado (ej. 'runapp' para integración con systemd).",
"label": "Prefijo de lanzamiento personalizado"
@@ -1366,6 +1460,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"
@@ -2203,6 +2301,7 @@
},
"wifi": {
"panel": {
"available-networks": "Redes disponibles",
"connect": "Conectar",
"connected": "Conectado",
"disabled": "Wi-Fi está desactivado",
@@ -2213,6 +2312,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",

View File

@@ -395,9 +395,59 @@
"loading": "Chargement de la météo…"
}
},
"changelog": {
"error": {
"rate-limit": "Limite de GitHub atteinte. Réessayez dans quelques minutes.",
"fetch-failed": "Impossible de charger les données du journal des modifications. Veuillez réessayer plus tard."
},
"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 davoir 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}",
"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",
"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",
@@ -719,6 +769,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.",
@@ -889,6 +944,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.",
@@ -1282,6 +1372,10 @@
"description": "Accédez aux éléments précédemment copiés depuis le lanceur.",
"label": "Activer l'historique du presse-papiers"
},
"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"
},
"custom-launch-prefix": {
"description": "Préfixer les commandes avec un lanceur personnalisé (ex. 'runapp' pour l'intégration systemd).",
"label": "Préfixe de lancement personnalisé"
@@ -1366,6 +1460,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"
@@ -2203,6 +2301,7 @@
},
"wifi": {
"panel": {
"available-networks": "Réseaux disponibles",
"connect": "Connecter",
"connected": "Connecté",
"disabled": "Le Wi-Fi est désactivé",
@@ -2213,6 +2312,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é",

View File

@@ -395,9 +395,59 @@
"loading": "Weer laden…"
}
},
"changelog": {
"error": {
"rate-limit": "GitHub-limiet bereikt. Probeer het over enkele minuten opnieuw.",
"fetch-failed": "Kan changeloggegevens niet laden. Probeer het later 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}",
"cycle-visualizer": "Cyclusvisualisatie",
"disable-bluetooth": "Bluetooth uitschakelen",
"disable-dnd": "Niet Storen uitschakelen",
"disable-wifi": "Wi-Fi uitschakelen",
"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",
@@ -719,6 +769,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.",
@@ -889,6 +944,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.",
@@ -1282,6 +1372,10 @@
"description": "Toegang tot eerder gekopieerde items vanuit de launcher.",
"label": "Klembordgeschiedenis inschakelen"
},
"clip-preview": {
"description": "Toon een voorbeeld van de inhoud van het klembord bij gebruik van het >clip-commando.",
"label": "Klembordvoorbeeld inschakelen"
},
"custom-launch-prefix": {
"description": "Voorzie commando's van een aangepaste launcher-prefix (bijv. 'runapp' voor systemd-integratie).",
"label": "Aangepaste startprefix"
@@ -1366,6 +1460,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"
@@ -2203,6 +2301,7 @@
},
"wifi": {
"panel": {
"available-networks": "Beschikbare netwerken",
"connect": "Verbinden",
"connected": "Verbonden",
"disabled": "Wi-Fi is uitgeschakeld",
@@ -2213,6 +2312,7 @@
"forget": "Vergeten",
"forget-network": "Dit netwerk vergeten?",
"forgetting": "Vergeten...",
"known-networks": "Bekende netwerken",
"no-networks": "Geen netwerken gevonden",
"password": "Wachtwoord",
"saved": "Opgeslagen",

View File

@@ -395,9 +395,59 @@
"loading": "Carregando o clima…"
}
},
"changelog": {
"error": {
"rate-limit": "Limite do GitHub atingido. Tente novamente em alguns minutos.",
"fetch-failed": "Não foi possível carregar os dados do changelog. Tente novamente mais tarde."
},
"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}",
"cycle-visualizer": "Visualizador de ciclo",
"disable-bluetooth": "Desativar Bluetooth",
"disable-dnd": "Desativar o Não Perturbe",
"disable-wifi": "Desativar Wi-Fi",
"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",
@@ -719,6 +769,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.",
@@ -889,6 +944,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.",
@@ -1282,6 +1372,10 @@
"description": "Acesse itens copiados anteriormente a partir do lançador.",
"label": "Ativar histórico da área de transferência"
},
"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"
},
"custom-launch-prefix": {
"description": "Prefixar comandos com um inicializador personalizado (ex. 'runapp' para integração systemd).",
"label": "Prefixo de inicialização personalizado"
@@ -1366,6 +1460,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"
@@ -2203,6 +2301,7 @@
},
"wifi": {
"panel": {
"available-networks": "Redes Disponíveis",
"connect": "Conectar",
"connected": "Conectado",
"disabled": "O Wi-Fi está desativado",
@@ -2213,6 +2312,7 @@
"forget": "Esquecer",
"forget-network": "Esquecer esta rede?",
"forgetting": "Esquecendo...",
"known-networks": "Redes Conhecidas",
"no-networks": "Nenhuma rede encontrada",
"password": "Senha",
"saved": "Salva",

View File

@@ -395,9 +395,59 @@
"loading": "Загрузка погоды…"
}
},
"changelog": {
"error": {
"rate-limit": "Превышен лимит GitHub. Попробуйте снова через несколько минут.",
"fetch-failed": "Не удалось загрузить данные журнала изменений. Пожалуйста, попробуйте позже."
},
"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}",
"cycle-visualizer": "Визуализатор циклов",
"disable-bluetooth": "Отключить Bluetooth",
"disable-dnd": "Отключить режим \"Не беспокоить\"",
"disable-wifi": "Отключить Wi-Fi",
"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": "Закрыть",
@@ -719,6 +769,11 @@
"label": "Аудиоустройства"
}
},
"external-mixer": {
"description": "Введите команду или путь к приложению для запуска при активации функции внешнего аудиомикшера.",
"label": "Команда внешнего аудиомикшера",
"placeholder": "pwvucontrol || pavucontrol"
},
"media": {
"excluded-player": {
"description": "Добавьте ключевые слова для плееров, которые система должна игнорировать. Каждое ключевое слово должно быть на новой строке.",
@@ -889,6 +944,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, темы терминала и т. д.) при использовании предопределенных цветовых схем.",
@@ -1282,6 +1372,10 @@
"description": "Доступ к ранее скопированным элементам из запуска.",
"label": "Включить историю буфера обмена"
},
"clip-preview": {
"description": "Показывать предварительный просмотр содержимого буфера обмена при использовании команды >clip.",
"label": "Включить предварительный просмотр буфера обмена"
},
"custom-launch-prefix": {
"description": "Добавлять префикс к командам с помощью пользовательского запуска (например, 'runapp' для интеграции с systemd).",
"label": "Пользовательский префикс запуска"
@@ -1366,6 +1460,10 @@
"description": "Выберите предпочитаемую единицу измерения температуры.",
"label": "Погода"
},
"show-effects": {
"description": "Отображает дополнительные визуальные эффекты (например, дождь, снег или молнию) на карточке погоды.",
"label": "Отображать погодные эффекты"
},
"show-in-calendar": {
"description": "Показывать ежедневный прогноз погоды непосредственно в вашем календаре.",
"label": "Отображать погоду в календаре"
@@ -2203,6 +2301,7 @@
},
"wifi": {
"panel": {
"available-networks": "Доступные сети",
"connect": "Подключить",
"connected": "Подключено",
"disabled": "Wi-Fi отключен",
@@ -2213,6 +2312,7 @@
"forget": "Забыть",
"forget-network": "Забыть эту сеть?",
"forgetting": "Забывание...",
"known-networks": "Известные сети",
"no-networks": "Сети не найдены",
"password": "Пароль",
"saved": "Сохранено",

View File

@@ -395,9 +395,59 @@
"loading": "Hava durumu yükleniyor..."
}
},
"changelog": {
"error": {
"rate-limit": "GitHub sınırına ulaşıldı. Lütfen birkaç dakika sonra tekrar dene.",
"fetch-failed": "Değişiklik günlüğü verileri yüklenemedi. Lütfen daha 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": "Noctaliayı 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",
"cycle-visualizer": "Döngü görselleştirici",
"disable-bluetooth": "Bluetooth'u kapat",
"disable-dnd": "Rahatsız Etmeyin'i Kapat",
"disable-wifi": "Wi-Fi'ı kapat",
"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",
@@ -719,6 +769,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.",
@@ -889,6 +944,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ıı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.",
@@ -1282,6 +1372,10 @@
"description": "Başlatıcıdan daha önce kopyalanan öğelere erişin.",
"label": "Pano geçmişini etkinleştir"
},
"clip-preview": {
"description": ">clip komutu kullanılırken panodaki içeriğin önizlemesini gösterir.",
"label": "Panoyu önizlemeyi etkinleştir"
},
"custom-launch-prefix": {
"description": "Komutlara özel bir başlatıcı ile ön ek ekleyin (örn., systemd entegrasyonu için 'runapp').",
"label": "Özel başlatma ön eki"
@@ -1366,6 +1460,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"
@@ -2203,6 +2301,7 @@
},
"wifi": {
"panel": {
"available-networks": "Kullanılabilir Ağlar",
"connect": "Bağlan",
"connected": "Bağlı",
"disabled": "Wi-Fi devre dışı",
@@ -2213,6 +2312,7 @@
"forget": "Unut",
"forget-network": "Bu ağı unut?",
"forgetting": "Unutuluyor...",
"known-networks": "Bilinen Ağlar",
"no-networks": "Ağ bulunamadı",
"password": "Şifre",
"saved": "Kaydedildi",

View File

@@ -395,9 +395,59 @@
"loading": "Завантаження погоди…"
}
},
"changelog": {
"error": {
"rate-limit": "Перевищено ліміт GitHub. Спробуйте ще раз за кілька хвилин.",
"fetch-failed": "Не вдалося завантажити дані журналу змін. Будь ласка, спробуйте пізніше."
},
"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}",
"cycle-visualizer": "Візуалізатор циклів",
"disable-bluetooth": "Вимкнути Bluetooth",
"disable-dnd": "Вимкнути режим \"Не турбувати\"",
"disable-wifi": "Вимкнути Wi-Fi",
"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": "Закрити",
@@ -719,6 +769,11 @@
"label": "Аудіопристрої"
}
},
"external-mixer": {
"description": "Введіть команду або шлях до програми для запуску при активації функції зовнішнього аудіомікшера.",
"label": "Команда зовнішнього аудіомікшера",
"placeholder": "pwvucontrol || pavucontrol"
},
"media": {
"excluded-player": {
"description": "Додайте ключові слова для плеєрів, які система має ігнорувати. Кожне ключове слово на новому рядку.",
@@ -889,6 +944,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, теми терміналу тощо) при використанні попередньо визначених колірних схем.",
@@ -1282,6 +1372,10 @@
"description": "Отримати доступ до раніше скопійованих елементів із запускача.",
"label": "Увімкнути історію буфера обміну"
},
"clip-preview": {
"description": "Показувати попередній перегляд вмісту буфера обміну при використанні команди >clip.",
"label": "Увімкнути попередній перегляд буфера обміну"
},
"custom-launch-prefix": {
"description": "Додати префікс до команд власним запускачем (напр., 'runapp' для інтеграції з systemd).",
"label": "Власний префікс запуску"
@@ -1366,6 +1460,10 @@
"description": "Виберіть бажану одиницю температури.",
"label": "Погода"
},
"show-effects": {
"description": "Показує додаткові візуальні ефекти (наприклад, дощ, сніг або блискавку) на картці погоди.",
"label": "Відображати погодні ефекти"
},
"show-in-calendar": {
"description": "Показувати щоденний прогноз погоди безпосередньо в календарі.",
"label": "Відображати погоду в календарі"
@@ -2203,6 +2301,7 @@
},
"wifi": {
"panel": {
"available-networks": "Доступні мережі",
"connect": "Підключити",
"connected": "Підключено",
"disabled": "Wi-Fi вимкнено",
@@ -2213,6 +2312,7 @@
"forget": "Забути",
"forget-network": "Забути цю мережу?",
"forgetting": "Забування...",
"known-networks": "Відомі мережі",
"no-networks": "Мереж не знайдено",
"password": "Пароль",
"saved": "Збережено",

View File

@@ -228,10 +228,10 @@
"notification-history": {
"hide-badge-when-zero": {
"description": "当没有未读通知时隐藏通知徽章。",
"label": "时隐藏徽章"
"label": "时隐藏徽章"
},
"show-unread-badge": {
"description": "显示示未读通知数量的徽章。",
"description": "显示一个用于展示未读通知数量的徽章。",
"label": "显示未读徽章"
}
},
@@ -395,9 +395,59 @@
"loading": "正在加载天气…"
}
},
"changelog": {
"error": {
"rate-limit": "已达到 GitHub 速率限制,请稍后再试。",
"fetch-failed": "无法加载更新日志数据,请稍后再试。"
},
"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}",
"cycle-visualizer": "切换可视化器样式",
"disable-bluetooth": "禁用蓝牙",
"disable-dnd": "关闭勿扰模式",
"disable-wifi": "禁用Wi-Fi",
"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": "关闭",
@@ -719,6 +769,11 @@
"label": "音频设备"
}
},
"external-mixer": {
"description": "输入激活外部音频混音器功能时要启动的命令或应用程序路径。",
"label": "外部音频混音器命令",
"placeholder": "pwvucontrol || pavucontrol"
},
"media": {
"excluded-player": {
"description": "添加您希望系统忽略的播放器关键词。每个关键词应单独占一行。",
@@ -889,6 +944,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、终端主题等。",
@@ -1282,6 +1372,10 @@
"description": "从启动器访问之前复制的项目。",
"label": "启用剪贴板历史记录"
},
"clip-preview": {
"description": "在使用 >clip 命令时显示剪贴板内容的预览。",
"label": "启用剪贴板预览"
},
"custom-launch-prefix": {
"description": "使用自定义启动器前缀命令(例如,'runapp'用于systemd集成。",
"label": "自定义启动前缀"
@@ -1366,6 +1460,10 @@
"description": "选择您喜欢的温度单位。",
"label": "天气"
},
"show-effects": {
"description": "在天气卡片上显示额外的视觉效果(如雨、雪或闪电)。",
"label": "显示天气效果"
},
"show-in-calendar": {
"description": "直接在您的日历视图中显示每日天气预报。",
"label": "在日历中显示天气"
@@ -2203,6 +2301,7 @@
},
"wifi": {
"panel": {
"available-networks": "可用网络",
"connect": "连接",
"connected": "已连接",
"disabled": "Wi-Fi 已禁用",
@@ -2213,6 +2312,7 @@
"forget": "忘记",
"forget-network": "忘记此网络?",
"forgetting": "正在忘记...",
"known-networks": "已知网络",
"no-networks": "未找到网络",
"password": "密码",
"saved": "已保存",

View File

@@ -7,7 +7,7 @@
"monitors": [],
"density": "default",
"showCapsule": true,
"capsuleOpacity": 1.0,
"capsuleOpacity": 1,
"floating": false,
"marginVertical": 0.25,
"marginHorizontal": 0.25,
@@ -60,7 +60,7 @@
},
"general": {
"avatarImage": "",
"dimmerOpacity": 0.8,
"dimmerOpacity": 0.6,
"showScreenCorners": false,
"forceBlackScreenCorners": false,
"scaleRatio": 1,
@@ -87,9 +87,13 @@
"panelsAttachedToBar": true,
"settingsPanelAttachToBar": false
},
"changelog": {
"lastSeenVersion": ""
},
"location": {
"name": "Tokyo",
"weatherEnabled": true,
"weatherShowEffects": true,
"useFahrenheit": false,
"use12hourFormat": false,
"showWeekNumberInCalendar": false,
@@ -139,6 +143,7 @@
},
"appLauncher": {
"enableClipboardHistory": false,
"enableClipPreview": true,
"position": "center",
"pinnedExecs": [],
"useApp2Unit": false,
@@ -336,8 +341,5 @@
"enabled": false,
"wallpaperChange": "",
"darkModeChange": ""
},
"battery": {
"chargingMode": 0
}
}

View File

@@ -64,7 +64,7 @@ for shader in "${SHADERS_TO_COMPILE[@]}"; do
output_path="$DEST_DIR$shader_name.frag.qsb"
# Construct and run the qsb command.
qsb --qt6 -o "$output_path" "$shader"
/usr/lib/qt6/bin/qsb --qt6 -o "$output_path" "$shader"
# Print a message to confirm compilation.
echo "Compiled $(basename "$shader") to $output_path"

View File

@@ -205,7 +205,7 @@ Singleton {
// 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
@@ -239,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
@@ -295,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: []
@@ -465,6 +467,7 @@ Singleton {
property string visualizerQuality: "high"
property list<string> mprisBlacklist: []
property string preferredPlayer: ""
property string externalMixer: "pwvucontrol || pavucontrol"
}
// brightness
@@ -516,6 +519,10 @@ Singleton {
property string manualSunset: "18:30"
}
property JsonObject changelog: JsonObject {
property string lastSeenVersion: ""
}
// hooks
property JsonObject hooks: JsonObject {
property bool enabled: false

34
Helpers/TextFormatter.js Normal file
View File

@@ -0,0 +1,34 @@
.pragma library
/**
* Wrap text in a nicely styled HTML container for display
* @param {string} text - The text to display
* @returns {string} HTML string
*/
function wrapTextForDisplay(text) {
// Escape HTML special characters
const escapeHtml = (s) =>
s.replace(/&/g, "&amp;")
.replace(/</g, "&lt;")
.replace(/>/g, "&gt;")
.replace(/"/g, "&quot;")
.replace(/'/g, "&#39;");
return `
<div style="
font-family: 'Fira Code', 'Courier New', monospace;
white-space: pre-wrap;
background: linear-gradient(135deg, #2c3e50, #34495e);
color: #ecf0f1;
padding: 16px;
border-radius: 12px;
box-shadow: 0 4px 12px rgba(0,0,0,0.3);
overflow-x: auto;
line-height: 1.5;
font-size: 14px;
border: 1px solid #3d566e;
">
${escapeHtml(text)}
</div>
`;
}

View File

@@ -20,6 +20,8 @@ Item {
property bool oppositeDirection: false
property bool hovered: false
property bool rotateText: false
property color customBackgroundColor: Qt.rgba(0, 0, 0, 0)
property color customTextIconColor: Qt.rgba(0, 0, 0, 0)
readonly property string barPosition: Settings.data.bar.position
readonly property bool isVerticalBar: barPosition === "left" || barPosition === "right"
@@ -57,6 +59,8 @@ Item {
hovered: root.hovered
density: root.density
rotateText: root.rotateText
customBackgroundColor: root.customBackgroundColor
customTextIconColor: root.customTextIconColor
onShown: root.shown()
onHidden: root.hidden()
onEntered: root.entered()
@@ -82,6 +86,8 @@ Item {
oppositeDirection: root.oppositeDirection
hovered: root.hovered
density: root.density
customBackgroundColor: root.customBackgroundColor
customTextIconColor: root.customTextIconColor
onShown: root.shown()
onHidden: root.hidden()
onEntered: root.entered()

View File

@@ -20,6 +20,8 @@ Item {
property bool forceClose: false
property bool oppositeDirection: false
property bool hovered: false
property color customBackgroundColor: Qt.rgba(0, 0, 0, 0)
property color customTextIconColor: Qt.rgba(0, 0, 0, 0)
// Effective shown state (true if hovered/animated open or forced)
readonly property bool revealed: !forceClose && (forceOpen || showPill)
@@ -78,7 +80,7 @@ Item {
width: root.width
height: pillHeight
radius: halfPillHeight
color: hovered ? Color.mHover : Style.capsuleColor
color: hovered ? (customBackgroundColor.a > 0 ? Qt.lighter(customBackgroundColor, 1.1) : Color.mHover) : (customBackgroundColor.a > 0 ? customBackgroundColor : Style.capsuleColor)
anchors.verticalCenter: parent.verticalCenter
readonly property int halfPillHeight: Math.round(pillHeight * 0.5)
@@ -129,7 +131,7 @@ Item {
pointSize: textSize
applyUiScale: false
font.weight: Style.fontWeightBold
color: hovered ? Color.mOnHover : (forceOpen ? Color.mOnSurface : Color.mPrimary)
color: hovered ? (customTextIconColor.a > 0 ? customTextIconColor : Color.mOnHover) : (customTextIconColor.a > 0 ? customTextIconColor : (forceOpen ? Color.mOnSurface : Color.mPrimary))
visible: revealed
}
@@ -163,7 +165,7 @@ Item {
icon: root.icon
pointSize: iconSize
applyUiScale: false
color: hovered ? Color.mOnHover : Color.mOnSurface
color: hovered ? (customTextIconColor.a > 0 ? customTextIconColor : Color.mOnHover) : (customTextIconColor.a > 0 ? customTextIconColor : Color.mOnSurface)
// Center horizontally
x: (iconCircle.width - width) / 2
// Center vertically accounting for font metrics
@@ -255,7 +257,7 @@ Item {
onEntered: {
hovered = true;
root.entered();
TooltipService.show(screen, pill, root.tooltipText, BarService.getTooltipDirection(), Style.tooltipDelayLong);
TooltipService.show(pill, root.tooltipText, BarService.getTooltipDirection(), Style.tooltipDelayLong);
if (forceClose) {
return;
}

View File

@@ -21,6 +21,8 @@ Item {
property bool oppositeDirection: false
property bool hovered: false
property bool rotateText: false
property color customBackgroundColor: Qt.rgba(0, 0, 0, 0)
property color customTextIconColor: Qt.rgba(0, 0, 0, 0)
// Bar position detection for pill direction
readonly property string barPosition: Settings.data.bar.position
@@ -91,7 +93,7 @@ Item {
width: buttonSize
height: revealed ? (buttonSize + maxPillHeight - pillOverlap) : buttonSize
radius: halfButtonSize
color: hovered ? Color.mHover : Style.capsuleColor
color: hovered ? (customBackgroundColor.a > 0 ? Qt.lighter(customBackgroundColor, 1.1) : Color.mHover) : (customBackgroundColor.a > 0 ? customBackgroundColor : Style.capsuleColor)
readonly property int halfButtonSize: Math.round(buttonSize * 0.5)
@@ -139,7 +141,7 @@ Item {
font.weight: Style.fontWeightMedium
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
color: hovered ? Color.mOnHover : (forceOpen ? Color.mOnSurface : Color.mPrimary)
color: hovered ? (customTextIconColor.a > 0 ? customTextIconColor : Color.mOnHover) : (customTextIconColor.a > 0 ? customTextIconColor : (forceOpen ? Color.mOnSurface : Color.mPrimary))
visible: revealed
function getVerticalCenterOffset() {
@@ -189,7 +191,7 @@ Item {
icon: root.icon
pointSize: iconSize
applyUiScale: false
color: hovered ? Color.mOnHover : Color.mOnSurface
color: hovered ? (customTextIconColor.a > 0 ? customTextIconColor : Color.mOnHover) : (customTextIconColor.a > 0 ? customTextIconColor : Color.mOnSurface)
// Center horizontally
x: (iconCircle.width - width) / 2
// Center vertically accounting for font metrics
@@ -297,7 +299,7 @@ Item {
onEntered: {
hovered = true;
root.entered();
TooltipService.show(screen, pill, root.tooltipText, BarService.getTooltipDirection(), Style.tooltipDelayLong);
TooltipService.show(pill, root.tooltipText, BarService.getTooltipDirection(), Style.tooltipDelayLong);
if (forceClose) {
return;
}

View File

@@ -1,9 +1,11 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import Quickshell
import Quickshell.Wayland
import Quickshell.Widgets
import qs.Commons
import qs.Modules.Bar.Extras
import qs.Services.Compositor
import qs.Services.UI
import qs.Widgets
@@ -166,6 +168,29 @@ Item {
font.weight: Style.fontWeightMedium
}
NPopupContextMenu {
id: contextMenu
model: [
{
"label": I18n.tr("context-menu.widget-settings"),
"action": "widget-settings",
"icon": "settings"
},
]
onTriggered: action => {
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
popupMenuWindow.close();
}
if (action === "widget-settings") {
BarService.openWidgetSettings(screen, section, sectionWidgetIndex, widgetId, widgetSettings);
}
}
}
Rectangle {
id: windowActiveRect
visible: root.visible
@@ -409,15 +434,25 @@ Item {
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
acceptedButtons: Qt.LeftButton
acceptedButtons: Qt.LeftButton | Qt.RightButton
onEntered: {
if ((windowTitle !== "") && isVerticalBar || (scrollingMode === "never")) {
TooltipService.show(screen, root, windowTitle, BarService.getTooltipDirection());
TooltipService.show(root, windowTitle, BarService.getTooltipDirection());
}
}
onExited: {
TooltipService.hide();
}
onClicked: mouse => {
if (mouse.button === Qt.RightButton) {
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
const pos = BarService.getContextMenuPosition(root, contextMenu.implicitWidth, contextMenu.implicitHeight);
contextMenu.openAtItem(root, pos.x, pos.y);
popupMenuWindow.showContextMenu(contextMenu);
}
}
}
}
}
}

View File

@@ -1,6 +1,8 @@
import QtQuick
import QtQuick.Controls
import Quickshell
import qs.Commons
import qs.Modules.Bar.Extras
import qs.Services.Media
import qs.Services.UI
import qs.Widgets
@@ -103,22 +105,61 @@ Item {
}
}
NPopupContextMenu {
id: contextMenu
model: [
{
"label": I18n.tr("context-menu.cycle-visualizer"),
"action": "cycle-visualizer",
"icon": "chart-column"
},
{
"label": I18n.tr("context-menu.widget-settings"),
"action": "widget-settings",
"icon": "settings"
},
]
onTriggered: action => {
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
popupMenuWindow.close();
}
if (action === "cycle-visualizer") {
const types = ["linear", "mirrored", "wave"];
const currentIndex = types.indexOf(currentVisualizerType);
const nextIndex = (currentIndex + 1) % types.length;
Settings.data.audio.visualizerType = types[nextIndex];
} else if (action === "widget-settings") {
BarService.openWidgetSettings(screen, section, sectionWidgetIndex, widgetId, widgetSettings);
}
}
}
// Click to cycle through visualizer types
MouseArea {
id: mouseArea
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
hoverEnabled: true
acceptedButtons: Qt.LeftButton
acceptedButtons: Qt.LeftButton | Qt.RightButton
onClicked: mouse => {
const types = ["linear", "mirrored", "wave"];
const currentIndex = types.indexOf(currentVisualizerType);
const nextIndex = (currentIndex + 1) % types.length;
const newType = types[nextIndex];
// Update settings directly, maybe this should be a widget setting...
Settings.data.audio.visualizerType = newType;
if (mouse.button === Qt.RightButton) {
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
const pos = BarService.getContextMenuPosition(root, contextMenu.implicitWidth, contextMenu.implicitHeight);
contextMenu.openAtItem(root, pos.x, pos.y);
popupMenuWindow.showContextMenu(contextMenu);
}
} else {
const types = ["linear", "mirrored", "wave"];
const currentIndex = types.indexOf(currentVisualizerType);
const nextIndex = (currentIndex + 1) % types.length;
Settings.data.audio.visualizerType = types[nextIndex];
}
}
}

View File

@@ -1,4 +1,5 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import Quickshell
import Quickshell.Services.UPower
@@ -33,10 +34,11 @@ Item {
readonly property bool isBarVertical: Settings.data.bar.position === "left" || Settings.data.bar.position === "right"
readonly property string displayMode: widgetSettings.displayMode !== undefined ? widgetSettings.displayMode : widgetMetadata.displayMode
readonly property real warningThreshold: widgetSettings.warningThreshold !== undefined ? widgetSettings.warningThreshold : widgetMetadata.warningThreshold
readonly property bool isLowBattery: !charging && percent <= warningThreshold
// Test mode
readonly property bool testMode: false
readonly property int testPercent: 100
readonly property int testPercent: 15
readonly property bool testCharging: false
// Main properties
@@ -84,6 +86,29 @@ Item {
}
}
NPopupContextMenu {
id: contextMenu
model: [
{
"label": I18n.tr("context-menu.widget-settings"),
"action": "widget-settings",
"icon": "settings"
},
]
onTriggered: action => {
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
popupMenuWindow.close();
}
if (action === "widget-settings") {
BarService.openWidgetSettings(screen, section, sectionWidgetIndex, widgetId, widgetSettings);
}
}
}
BarPill {
id: pill
@@ -96,6 +121,8 @@ Item {
autoHide: false
forceOpen: isReady && (testMode || battery.isLaptopBattery) && displayMode === "alwaysShow"
forceClose: displayMode === "alwaysHide" || !isReady || (!testMode && !battery.isLaptopBattery)
customBackgroundColor: isLowBattery ? Color.mError : Qt.rgba(0, 0, 0, 0)
customTextIconColor: isLowBattery ? Color.mOnError : Qt.rgba(0, 0, 0, 0)
tooltipText: {
let lines = [];
if (testMode) {
@@ -141,5 +168,13 @@ Item {
}
return lines.join("\n");
}
onRightClicked: {
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
const pos = BarService.getContextMenuPosition(pill, contextMenu.implicitWidth, contextMenu.implicitHeight);
contextMenu.openAtItem(pill, pos.x, pos.y);
popupMenuWindow.showContextMenu(contextMenu);
}
}
}
}

View File

@@ -1,9 +1,11 @@
import QtQuick
import QtQuick.Controls
import Quickshell
import qs.Commons
import qs.Modules.Bar.Extras
import qs.Services.Networking
import qs.Services.UI
import qs.Widgets
Item {
id: root
@@ -33,6 +35,36 @@ Item {
implicitWidth: pill.width
implicitHeight: pill.height
NPopupContextMenu {
id: contextMenu
model: [
{
"label": BluetoothService.enabled ? I18n.tr("context-menu.disable-bluetooth") : I18n.tr("context-menu.enable-bluetooth"),
"action": "toggle-bluetooth",
"icon": BluetoothService.enabled ? "bluetooth-off" : "bluetooth"
},
{
"label": I18n.tr("context-menu.widget-settings"),
"action": "widget-settings",
"icon": "settings"
},
]
onTriggered: action => {
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
popupMenuWindow.close();
}
if (action === "toggle-bluetooth") {
BluetoothService.setBluetoothEnabled(!BluetoothService.enabled);
} else if (action === "widget-settings") {
BarService.openWidgetSettings(screen, section, sectionWidgetIndex, widgetId, widgetSettings);
}
}
}
BarPill {
id: pill
@@ -57,7 +89,14 @@ Item {
forceOpen: !isBarVertical && root.displayMode === "alwaysShow"
forceClose: isBarVertical || root.displayMode === "alwaysHide" || BluetoothService.connectedDevices.length === 0
onClicked: PanelService.getPanel("bluetoothPanel", screen)?.toggle(this)
onRightClicked: BluetoothService.setBluetoothEnabled(!BluetoothService.enabled)
onRightClicked: {
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
const pos = BarService.getContextMenuPosition(pill, contextMenu.implicitWidth, contextMenu.implicitHeight);
contextMenu.openAtItem(pill, pos.x, pos.y);
popupMenuWindow.showContextMenu(contextMenu);
}
}
tooltipText: {
if (pill.text !== "") {
return pill.text;

View File

@@ -1,4 +1,5 @@
import QtQuick
import QtQuick.Controls
import Quickshell
import qs.Commons
import qs.Modules.Bar.Extras
@@ -74,6 +75,38 @@ Item {
onTriggered: pill.hide()
}
NPopupContextMenu {
id: contextMenu
model: [
{
"label": I18n.tr("context-menu.open-display-settings"),
"action": "open-display-settings",
"icon": "sun"
},
{
"label": I18n.tr("context-menu.widget-settings"),
"action": "widget-settings",
"icon": "settings"
},
]
onTriggered: action => {
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
popupMenuWindow.close();
}
if (action === "open-display-settings") {
var settingsPanel = PanelService.getPanel("settingsPanel", screen);
settingsPanel.requestedTab = SettingsPanel.Tab.Display;
settingsPanel.open();
} else if (action === "widget-settings") {
BarService.openWidgetSettings(screen, section, sectionWidgetIndex, widgetId, widgetSettings);
}
}
}
BarPill {
id: pill
@@ -116,9 +149,12 @@ Item {
}
onRightClicked: {
var settingsPanel = PanelService.getPanel("settingsPanel", screen);
settingsPanel.requestedTab = SettingsPanel.Tab.Display;
settingsPanel.open();
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
const pos = BarService.getContextMenuPosition(pill, contextMenu.implicitWidth, contextMenu.implicitHeight);
contextMenu.openAtItem(pill, pos.x, pos.y);
popupMenuWindow.showContextMenu(contextMenu);
}
}
}
}

View File

@@ -1,7 +1,9 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import Quickshell
import qs.Commons
import qs.Modules.Bar.Extras
import qs.Services.UI
import qs.Widgets
@@ -115,22 +117,62 @@ Rectangle {
}
}
NPopupContextMenu {
id: contextMenu
model: [
{
"label": I18n.tr("context-menu.open-calendar"),
"action": "open-calendar",
"icon": "calendar"
},
{
"label": I18n.tr("context-menu.widget-settings"),
"action": "widget-settings",
"icon": "settings"
},
]
onTriggered: action => {
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
popupMenuWindow.close();
}
if (action === "open-calendar") {
PanelService.getPanel("calendarPanel", screen)?.toggle(root);
} else if (action === "widget-settings") {
BarService.openWidgetSettings(screen, section, sectionWidgetIndex, widgetId, widgetSettings);
}
}
}
MouseArea {
id: clockMouseArea
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
hoverEnabled: true
acceptedButtons: Qt.LeftButton | Qt.RightButton
onEntered: {
if (!PanelService.getPanel("calendarPanel", screen)?.active) {
TooltipService.show(screen, root, I18n.tr("clock.tooltip"), BarService.getTooltipDirection());
TooltipService.show(root, I18n.tr("clock.tooltip"), BarService.getTooltipDirection());
}
}
onExited: {
TooltipService.hide();
}
onClicked: {
TooltipService.hide();
PanelService.getPanel("calendarPanel", screen)?.toggle(this);
}
onClicked: mouse => {
TooltipService.hide();
if (mouse.button === Qt.RightButton) {
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
const pos = BarService.getContextMenuPosition(root, contextMenu.implicitWidth, contextMenu.implicitHeight);
contextMenu.openAtItem(root, pos.x, pos.y);
popupMenuWindow.showContextMenu(contextMenu);
}
} else {
PanelService.getPanel("calendarPanel", screen)?.toggle(this);
}
}
}
}

View File

@@ -1,8 +1,10 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Effects
import Quickshell
import Quickshell.Widgets
import qs.Commons
import qs.Modules.Bar.Extras
import qs.Services.System
import qs.Services.UI
import qs.Widgets
@@ -50,16 +52,61 @@ NIconButton {
colorBgHover: useDistroLogo ? Color.mSurfaceVariant : Color.mHover
colorBorder: Color.transparent
colorBorderHover: useDistroLogo ? Color.mHover : Color.transparent
NPopupContextMenu {
id: contextMenu
model: [
{
"label": I18n.tr("context-menu.open-launcher"),
"action": "open-launcher",
"icon": "search"
},
{
"label": I18n.tr("context-menu.open-settings"),
"action": "open-settings",
"icon": "adjustments"
},
{
"label": I18n.tr("context-menu.widget-settings"),
"action": "widget-settings",
"icon": "settings"
},
]
onTriggered: action => {
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
popupMenuWindow.close();
}
if (action === "open-launcher") {
PanelService.getPanel("launcherPanel", screen)?.toggle();
} else if (action === "open-settings") {
PanelService.getPanel("settingsPanel", screen)?.toggle();
} else if (action === "widget-settings") {
BarService.openWidgetSettings(screen, section, sectionWidgetIndex, widgetId, widgetSettings);
}
}
}
onClicked: {
var controlCenterPanel = PanelService.getPanel("controlCenterPanel", screen);
if (Settings.data.controlCenter.position === "close_to_bar_button") {
// Willopen the panel next to the bar button.
// Will open the panel next to the bar button.
controlCenterPanel?.toggle(this);
} else {
controlCenterPanel?.toggle();
}
}
onRightClicked: PanelService.getPanel("settingsPanel", screen)?.toggle()
onRightClicked: {
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
const pos = BarService.getContextMenuPosition(root, contextMenu.implicitWidth, contextMenu.implicitHeight);
contextMenu.openAtItem(root, pos.x, pos.y);
popupMenuWindow.showContextMenu(contextMenu);
}
}
onMiddleClicked: PanelService.getPanel("launcherPanel", screen)?.toggle()
IconImage {

View File

@@ -159,7 +159,7 @@ Item {
const parsed = JSON.parse(lineToParse);
const text = parsed.text || "";
const icon = parsed.icon || "";
const tooltip = parsed.tooltip || "";
let tooltip = parsed.tooltip || "";
if (checkCollapse(text)) {
_dynamicText = "";
@@ -170,7 +170,8 @@ Item {
_dynamicText = text;
_dynamicIcon = icon;
_dynamicTooltip = tooltip;
_dynamicTooltip = toHtml(tooltip);
return;
} catch (e) {
Logger.w("CustomButton", `Failed to parse JSON. Content: "${lineToParse}"`);
@@ -186,7 +187,7 @@ Item {
_dynamicText = contentStr;
_dynamicIcon = "";
_dynamicTooltip = "";
_dynamicTooltip = toHtml(contentStr);
}
function checkCollapse(text) {
@@ -245,6 +246,20 @@ Item {
}
}
function toHtml(str) {
const htmlRegex = /<\/?[a-zA-Z][\s\S]*>/;
if (htmlRegex.test(str)) {
return str;
}
const escaped = str.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
const withBreaks = escaped.replace(/\r\n|\r|\n/g, "<br/>");
return withBreaks;
}
function runTextCommand() {
if (!textCommand || textCommand.length === 0)
return;

View File

@@ -1,4 +1,5 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import Quickshell
import Quickshell.Io
@@ -39,6 +40,29 @@ Item {
implicitWidth: pill.width
implicitHeight: pill.height
NPopupContextMenu {
id: contextMenu
model: [
{
"label": I18n.tr("context-menu.widget-settings"),
"action": "widget-settings",
"icon": "settings"
},
]
onTriggered: action => {
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
popupMenuWindow.close();
}
if (action === "widget-settings") {
BarService.openWidgetSettings(screen, section, sectionWidgetIndex, widgetId, widgetSettings);
}
}
}
BarPill {
id: pill
anchors.verticalCenter: parent.verticalCenter
@@ -54,9 +78,14 @@ Item {
})
forceOpen: root.displayMode === "forceOpen"
forceClose: root.displayMode === "alwaysHide"
onClicked:
// You could open keyboard settings here if needed.
{}
onClicked: {}
onRightClicked: {
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
const pos = BarService.getContextMenuPosition(pill, contextMenu.implicitWidth, contextMenu.implicitHeight);
contextMenu.openAtItem(pill, pos.x, pos.y);
popupMenuWindow.showContextMenu(contextMenu);
}
}
}
}

View File

@@ -1,17 +1,20 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import Quickshell
import Quickshell.Io
import qs.Commons
import qs.Modules.Bar.Extras
import qs.Modules.Panels.Settings
import qs.Services.Keyboard
import qs.Services.UI
import qs.Widgets
//import qs.Modules.Bar.Extras
Rectangle {
id: root
property ShellScreen screen
property string widgetId: ""
property string section: ""
property int sectionWidgetIndex: -1
@@ -47,6 +50,44 @@ Rectangle {
radius: Style.radiusM
color: Style.capsuleColor
NPopupContextMenu {
id: contextMenu
model: [
{
"label": I18n.tr("context-menu.widget-settings"),
"action": "widget-settings",
"icon": "settings"
},
]
onTriggered: action => {
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
popupMenuWindow.close();
}
if (action === "widget-settings") {
BarService.openWidgetSettings(screen, section, sectionWidgetIndex, widgetId, widgetSettings);
}
}
}
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.RightButton
onClicked: mouse => {
if (mouse.button === Qt.RightButton) {
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
const pos = BarService.getContextMenuPosition(root, contextMenu.implicitWidth, contextMenu.implicitHeight);
contextMenu.openAtItem(root, pos.x, pos.y);
popupMenuWindow.showContextMenu(contextMenu);
}
}
}
}
Item {
id: layout
anchors.verticalCenter: parent.verticalCenter

View File

@@ -3,6 +3,7 @@ import QtQuick.Controls
import QtQuick.Layouts
import Quickshell
import qs.Commons
import qs.Modules.Bar.Extras
import qs.Services.Media
import qs.Services.UI
import qs.Widgets
@@ -162,6 +163,58 @@ Item {
pointSize: Style.fontSizeS * scaling
}
NPopupContextMenu {
id: contextMenu
model: {
var items = [];
if (hasActivePlayer && MediaService.canPlay) {
items.push({
"label": MediaService.isPlaying ? I18n.tr("context-menu.pause") : I18n.tr("context-menu.play"),
"action": "play-pause",
"icon": MediaService.isPlaying ? "media-pause" : "media-play"
});
}
if (hasActivePlayer && MediaService.canGoPrevious) {
items.push({
"label": I18n.tr("context-menu.previous"),
"action": "previous",
"icon": "media-prev"
});
}
if (hasActivePlayer && MediaService.canGoNext) {
items.push({
"label": I18n.tr("context-menu.next"),
"action": "next",
"icon": "media-next"
});
}
items.push({
"label": I18n.tr("context-menu.widget-settings"),
"action": "widget-settings",
"icon": "settings"
});
return items;
}
onTriggered: action => {
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
popupMenuWindow.close();
}
if (action === "play-pause") {
MediaService.playPause();
} else if (action === "previous") {
MediaService.previous();
} else if (action === "next") {
MediaService.next();
} else if (action === "widget-settings") {
BarService.openWidgetSettings(screen, section, sectionWidgetIndex, widgetId, widgetSettings);
}
}
}
Rectangle {
id: mediaMini
visible: root.visible
@@ -466,25 +519,31 @@ Item {
cursorShape: hasActivePlayer ? Qt.PointingHandCursor : Qt.ArrowCursor
acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
onClicked: mouse => {
if (!hasActivePlayer || !MediaService.currentPlayer || !MediaService.canPlay) {
return;
}
if (mouse.button === Qt.LeftButton) {
if (!hasActivePlayer || !MediaService.currentPlayer || !MediaService.canPlay) {
return;
}
MediaService.playPause();
} else if (mouse.button == Qt.RightButton) {
MediaService.next();
TooltipService.hide();
} else if (mouse.button == Qt.MiddleButton) {
MediaService.previous();
} else if (mouse.button === Qt.RightButton) {
TooltipService.hide();
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
const pos = BarService.getContextMenuPosition(mediaMini, contextMenu.implicitWidth, contextMenu.implicitHeight);
contextMenu.openAtItem(mediaMini, pos.x, pos.y);
popupMenuWindow.showContextMenu(contextMenu);
}
} else if (mouse.button === Qt.MiddleButton) {
if (hasActivePlayer && MediaService.canGoPrevious) {
MediaService.previous();
TooltipService.hide();
}
}
}
onEntered: {
var textToShow = hasActivePlayer ? tooltipText : placeholderText;
if ((textToShow !== "") && isVerticalBar || (scrollingMode === "never")) {
TooltipService.show(screen, root, textToShow, BarService.getTooltipDirection());
TooltipService.show(root, textToShow, BarService.getTooltipDirection());
}
}
onExited: {

View File

@@ -1,4 +1,5 @@
import QtQuick
import QtQuick.Controls
import Quickshell
import Quickshell.Io
import Quickshell.Services.Pipewire
@@ -84,6 +85,47 @@ Item {
}
}
function openExternalMixer() {
Quickshell.execDetached(["sh", "-c", Settings.data.audio.externalMixer]);
}
NPopupContextMenu {
id: contextMenu
model: [
{
"label": I18n.tr("context-menu.toggle-mute"),
"action": "toggle-mute",
"icon": AudioService.inputMuted ? "microphone-off" : "microphone"
},
{
"label": I18n.tr("context-menu.open-mixer"),
"action": "open-mixer",
"icon": "adjustments"
},
{
"label": I18n.tr("context-menu.widget-settings"),
"action": "widget-settings",
"icon": "settings"
},
]
onTriggered: action => {
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
popupMenuWindow.close();
}
if (action === "toggle-mute") {
AudioService.setInputMuted(!AudioService.inputMuted);
} else if (action === "open-mixer") {
root.openExternalMixer();
} else if (action === "widget-settings") {
BarService.openWidgetSettings(screen, section, sectionWidgetIndex, widgetId, widgetSettings);
}
}
}
BarPill {
id: pill
@@ -92,12 +134,20 @@ Item {
icon: AudioService.getInputIcon()
density: Settings.data.bar.density
autoHide: false // Important to be false so we can hover as long as we want
text: Math.round(AudioService.inputVolume * 100)
text: {
const maxVolume = Settings.data.audio.volumeOverdrive ? 1.5 : 1.0;
const displayVolume = Math.min(maxVolume, AudioService.inputVolume);
return Math.round(displayVolume * 100);
}
suffix: "%"
forceOpen: displayMode === "alwaysShow"
forceClose: displayMode === "alwaysHide"
tooltipText: I18n.tr("tooltips.microphone-volume-at", {
"volume": Math.round(AudioService.inputVolume * 100)
"volume": (() => {
const maxVolume = Settings.data.audio.volumeOverdrive ? 1.5 : 1.0;
const displayVolume = Math.min(maxVolume, AudioService.inputVolume);
return Math.round(displayVolume * 100);
})()
})
onWheel: function (delta) {
@@ -117,10 +167,13 @@ Item {
PanelService.getPanel("audioPanel", screen)?.toggle(this);
}
onRightClicked: {
AudioService.setInputMuted(!AudioService.inputMuted);
}
onMiddleClicked: {
Quickshell.execDetached(["pwvucontrol"]);
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
const pos = BarService.getContextMenuPosition(pill, contextMenu.implicitWidth, contextMenu.implicitHeight);
contextMenu.openAtItem(pill, pos.x, pos.y);
popupMenuWindow.showContextMenu(contextMenu);
}
}
onMiddleClicked: root.openExternalMixer()
}
}

View File

@@ -4,6 +4,7 @@ import QtQuick.Layouts
import Quickshell
import Quickshell.Wayland
import qs.Commons
import qs.Modules.Bar.Extras
import qs.Services.System
import qs.Services.UI
import qs.Widgets
@@ -56,12 +57,56 @@ NIconButton {
colorBorder: Color.transparent
colorBorderHover: Color.transparent
NPopupContextMenu {
id: contextMenu
model: [
{
"label": NotificationService.doNotDisturb ? I18n.tr("context-menu.disable-dnd") : I18n.tr("context-menu.enable-dnd"),
"action": "toggle-dnd",
"icon": NotificationService.doNotDisturb ? "bell" : "bell-off"
},
{
"label": I18n.tr("context-menu.clear-history"),
"action": "clear-history",
"icon": "trash"
},
{
"label": I18n.tr("context-menu.widget-settings"),
"action": "widget-settings",
"icon": "settings"
},
]
onTriggered: action => {
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
popupMenuWindow.close();
}
if (action === "toggle-dnd") {
NotificationService.doNotDisturb = !NotificationService.doNotDisturb;
} else if (action === "clear-history") {
NotificationService.clearHistory();
} else if (action === "widget-settings") {
BarService.openWidgetSettings(screen, section, sectionWidgetIndex, widgetId, widgetSettings);
}
}
}
onClicked: {
var panel = PanelService.getPanel("notificationHistoryPanel", screen);
panel?.toggle(this);
}
onRightClicked: NotificationService.doNotDisturb = !NotificationService.doNotDisturb
onRightClicked: {
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
if (popupMenuWindow) {
const pos = BarService.getContextMenuPosition(root, contextMenu.implicitWidth, contextMenu.implicitHeight);
contextMenu.openAtItem(root, pos.x, pos.y);
popupMenuWindow.showContextMenu(contextMenu);
}
}
Loader {
anchors.right: parent.right
@@ -78,7 +123,7 @@ NIconButton {
radius: height / 2
color: Color.mError
border.color: Color.mSurface
border.width: 1
border.width: Style.borderS
visible: count > 0 || !hideWhenZero
}
}

Some files were not shown because too many files have changed in this diff Show More