mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-06-17 16:45:19 -04:00
Compare commits
96 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2b7fd36322 | |||
| b8014fd4df | |||
| 07460f6e1f | |||
| f7bf3b2afb | |||
| 056f298cdf | |||
| e83da53162 | |||
| 9f38a47a02 | |||
| 236a4d4a6d | |||
| 0909471510 | |||
| 05eaf59c89 | |||
| 7749613801 | |||
| e3dbaedbb4 | |||
| 9f17ced6de | |||
| de54ef871d | |||
| b0da45d6d0 | |||
| 9b2a46fa92 | |||
| 12099d2db6 | |||
| 84fa75936a | |||
| d78d8121a1 | |||
| a9a3a52872 | |||
| 912e3bdfce | |||
| ee1b25d9e8 | |||
| 20ef5e2c18 | |||
| 6ee419bc52 | |||
| 85b00d3c76 | |||
| bc4ad31d48 | |||
| 71aad8ee32 | |||
| 8bb8231559 | |||
| 3cf9caae89 | |||
| f983c67135 | |||
| f2aef5b93f | |||
| 46d4288969 | |||
| 65516e872f | |||
| 171329246c | |||
| b2bee699e0 | |||
| 95c66b4d67 | |||
| babc8feb2b | |||
| 2f445c546a | |||
| a0283b3e3e | |||
| 61bd156fb0 | |||
| 8ad0cf8e5f | |||
| ecd6d70da6 | |||
| 359617d927 | |||
| 38c286329a | |||
| 401b4095cc | |||
| 06ab1a8ef0 | |||
| 726fb8b015 | |||
| b3b5c7a59f | |||
| d18f934978 | |||
| e67f1f79bc | |||
| e931829411 | |||
| db8ebd606c | |||
| 072a358a94 | |||
| 6ceb1b150c | |||
| a4e03e1877 | |||
| 02b3e4277b | |||
| 37daf801e6 | |||
| 68d9f7eeb2 | |||
| 526e2420ca | |||
| a9cc58fc28 | |||
| 77889ce1c6 | |||
| 549073119e | |||
| 5c5af5795f | |||
| 68e10934e4 | |||
| c67bb1444a | |||
| 07389a152e | |||
| e562e21555 | |||
| 86dfe7dd3f | |||
| ac0a8f3449 | |||
| 8e4a63db67 | |||
| c02c63806f | |||
| 42e5d7f6e9 | |||
| d8cf1af422 | |||
| 9723661c80 | |||
| 81cba7ad97 | |||
| c23f58de40 | |||
| 2cf67ca7da | |||
| 392bd850ea | |||
| 3b2ad9d1bd | |||
| 27b7474180 | |||
| 63948d728e | |||
| d219d3b873 | |||
| 93ab290bc1 | |||
| 7335c5d79a | |||
| 242ead722a | |||
| 8a6d9696a8 | |||
| 896b7ea242 | |||
| 0c7f4c7828 | |||
| 3d35af2a87 | |||
| fed3c36f84 | |||
| 414d81aa40 | |||
| d548803769 | |||
| 1180258394 | |||
| 48a566a24b | |||
| 3bc5d1df81 | |||
| c7222e2e86 |
@@ -7,7 +7,7 @@ body:
|
|||||||
attributes:
|
attributes:
|
||||||
value: |
|
value: |
|
||||||
## DankMaterialShell Bug Report
|
## DankMaterialShell Bug Report
|
||||||
Limit your report to one issue per submission unless similarly related
|
Limit your report to one issue per submission unless closely related
|
||||||
- type: dropdown
|
- type: dropdown
|
||||||
id: compositor
|
id: compositor
|
||||||
attributes:
|
attributes:
|
||||||
@@ -53,9 +53,9 @@ body:
|
|||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: dropdown
|
- type: dropdown
|
||||||
id: original_installation_method
|
id: original_installation_method_different
|
||||||
attributes:
|
attributes:
|
||||||
label: Was this your original Installation method?
|
label: Was your original Installation method different?
|
||||||
options:
|
options:
|
||||||
- "Yes"
|
- "Yes"
|
||||||
- No (specify below)
|
- No (specify below)
|
||||||
@@ -73,7 +73,7 @@ body:
|
|||||||
id: dms_doctor
|
id: dms_doctor
|
||||||
attributes:
|
attributes:
|
||||||
label: dms doctor -vC
|
label: dms doctor -vC
|
||||||
description: Output of `dms doctor -vC` command — paste between the details tags below to keep it collapsed in the issue
|
description: Output of `dms doctor -vC` command — paste between the lines below to keep it collapsed in the issue
|
||||||
placeholder: Paste the output of `dms doctor -vC` here
|
placeholder: Paste the output of `dms doctor -vC` here
|
||||||
value: |
|
value: |
|
||||||
<details>
|
<details>
|
||||||
|
|||||||
@@ -525,6 +525,5 @@ func getCommonCommands() []*cobra.Command {
|
|||||||
doctorCmd,
|
doctorCmd,
|
||||||
configCmd,
|
configCmd,
|
||||||
dlCmd,
|
dlCmd,
|
||||||
randrCmd,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,9 +3,7 @@ package main
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/AvengeMedia/DankMaterialShell/core/internal/log"
|
"github.com/AvengeMedia/DankMaterialShell/core/internal/log"
|
||||||
@@ -97,11 +95,7 @@ func buildMatugenOptions(cmd *cobra.Command) matugen.Options {
|
|||||||
|
|
||||||
func runMatugenGenerate(cmd *cobra.Command, args []string) {
|
func runMatugenGenerate(cmd *cobra.Command, args []string) {
|
||||||
opts := buildMatugenOptions(cmd)
|
opts := buildMatugenOptions(cmd)
|
||||||
err := matugen.Run(opts)
|
if err := matugen.Run(opts); err != nil {
|
||||||
switch {
|
|
||||||
case errors.Is(err, matugen.ErrNoChanges):
|
|
||||||
os.Exit(2)
|
|
||||||
case err != nil:
|
|
||||||
log.Fatalf("Theme generation failed: %v", err)
|
log.Fatalf("Theme generation failed: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -135,11 +129,7 @@ func runMatugenQueue(cmd *cobra.Command, args []string) {
|
|||||||
if !wait {
|
if !wait {
|
||||||
if err := sendServerRequestFireAndForget(request); err != nil {
|
if err := sendServerRequestFireAndForget(request); err != nil {
|
||||||
log.Info("Server unavailable, running synchronously")
|
log.Info("Server unavailable, running synchronously")
|
||||||
err := matugen.Run(opts)
|
if err := matugen.Run(opts); err != nil {
|
||||||
switch {
|
|
||||||
case errors.Is(err, matugen.ErrNoChanges):
|
|
||||||
os.Exit(2)
|
|
||||||
case err != nil:
|
|
||||||
log.Fatalf("Theme generation failed: %v", err)
|
log.Fatalf("Theme generation failed: %v", err)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
@@ -156,15 +146,11 @@ func runMatugenQueue(cmd *cobra.Command, args []string) {
|
|||||||
resp, ok := tryServerRequest(request)
|
resp, ok := tryServerRequest(request)
|
||||||
if !ok {
|
if !ok {
|
||||||
log.Info("Server unavailable, running synchronously")
|
log.Info("Server unavailable, running synchronously")
|
||||||
err := matugen.Run(opts)
|
if err := matugen.Run(opts); err != nil {
|
||||||
switch {
|
|
||||||
case errors.Is(err, matugen.ErrNoChanges):
|
|
||||||
resultCh <- matugen.ErrNoChanges
|
|
||||||
case err != nil:
|
|
||||||
resultCh <- err
|
resultCh <- err
|
||||||
default:
|
return
|
||||||
resultCh <- nil
|
|
||||||
}
|
}
|
||||||
|
resultCh <- nil
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if resp.Error != "" {
|
if resp.Error != "" {
|
||||||
@@ -176,10 +162,7 @@ func runMatugenQueue(cmd *cobra.Command, args []string) {
|
|||||||
|
|
||||||
select {
|
select {
|
||||||
case err := <-resultCh:
|
case err := <-resultCh:
|
||||||
switch {
|
if err != nil {
|
||||||
case errors.Is(err, matugen.ErrNoChanges):
|
|
||||||
os.Exit(2)
|
|
||||||
case err != nil:
|
|
||||||
log.Fatalf("Theme generation failed: %v", err)
|
log.Fatalf("Theme generation failed: %v", err)
|
||||||
}
|
}
|
||||||
fmt.Println("Theme generation completed")
|
fmt.Println("Theme generation completed")
|
||||||
|
|||||||
@@ -1,58 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
"github.com/AvengeMedia/DankMaterialShell/core/internal/log"
|
|
||||||
"github.com/spf13/cobra"
|
|
||||||
)
|
|
||||||
|
|
||||||
var randrCmd = &cobra.Command{
|
|
||||||
Use: "randr",
|
|
||||||
Short: "Query output display information",
|
|
||||||
Long: "Query Wayland compositor for output names, scales, resolutions and refresh rates via zwlr-output-management",
|
|
||||||
Run: runRandr,
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
randrCmd.Flags().Bool("json", false, "Output in JSON format")
|
|
||||||
}
|
|
||||||
|
|
||||||
type randrJSON struct {
|
|
||||||
Outputs []randrOutput `json:"outputs"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func runRandr(cmd *cobra.Command, args []string) {
|
|
||||||
outputs, err := queryRandr()
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("%v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
jsonFlag, _ := cmd.Flags().GetBool("json")
|
|
||||||
|
|
||||||
if jsonFlag {
|
|
||||||
data, err := json.Marshal(randrJSON{Outputs: outputs})
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("failed to marshal JSON: %v", err)
|
|
||||||
}
|
|
||||||
fmt.Println(string(data))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
for i, out := range outputs {
|
|
||||||
if i > 0 {
|
|
||||||
fmt.Println()
|
|
||||||
}
|
|
||||||
status := "enabled"
|
|
||||||
if !out.Enabled {
|
|
||||||
status = "disabled"
|
|
||||||
}
|
|
||||||
fmt.Printf("%s (%s)\n", out.Name, status)
|
|
||||||
fmt.Printf(" Scale: %.4g\n", out.Scale)
|
|
||||||
fmt.Printf(" Resolution: %dx%d\n", out.Width, out.Height)
|
|
||||||
if out.Refresh > 0 {
|
|
||||||
fmt.Printf(" Refresh: %.2f Hz\n", float64(out.Refresh)/1000.0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,172 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
"github.com/AvengeMedia/DankMaterialShell/core/internal/proto/wlr_output_management"
|
|
||||||
wlclient "github.com/AvengeMedia/DankMaterialShell/core/pkg/go-wayland/wayland/client"
|
|
||||||
)
|
|
||||||
|
|
||||||
type randrOutput struct {
|
|
||||||
Name string `json:"name"`
|
|
||||||
Scale float64 `json:"scale"`
|
|
||||||
Width int32 `json:"width"`
|
|
||||||
Height int32 `json:"height"`
|
|
||||||
Refresh int32 `json:"refresh"`
|
|
||||||
Enabled bool `json:"enabled"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type randrHead struct {
|
|
||||||
name string
|
|
||||||
enabled bool
|
|
||||||
scale float64
|
|
||||||
currentModeID uint32
|
|
||||||
modeIDs []uint32
|
|
||||||
}
|
|
||||||
|
|
||||||
type randrMode struct {
|
|
||||||
width int32
|
|
||||||
height int32
|
|
||||||
refresh int32
|
|
||||||
}
|
|
||||||
|
|
||||||
type randrClient struct {
|
|
||||||
display *wlclient.Display
|
|
||||||
ctx *wlclient.Context
|
|
||||||
manager *wlr_output_management.ZwlrOutputManagerV1
|
|
||||||
heads map[uint32]*randrHead
|
|
||||||
modes map[uint32]*randrMode
|
|
||||||
done bool
|
|
||||||
err error
|
|
||||||
}
|
|
||||||
|
|
||||||
func queryRandr() ([]randrOutput, error) {
|
|
||||||
display, err := wlclient.Connect("")
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("failed to connect to Wayland: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
c := &randrClient{
|
|
||||||
display: display,
|
|
||||||
ctx: display.Context(),
|
|
||||||
heads: make(map[uint32]*randrHead),
|
|
||||||
modes: make(map[uint32]*randrMode),
|
|
||||||
}
|
|
||||||
defer c.ctx.Close()
|
|
||||||
|
|
||||||
registry, err := display.GetRegistry()
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("failed to get registry: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
registry.SetGlobalHandler(func(e wlclient.RegistryGlobalEvent) {
|
|
||||||
if e.Interface == wlr_output_management.ZwlrOutputManagerV1InterfaceName {
|
|
||||||
mgr := wlr_output_management.NewZwlrOutputManagerV1(c.ctx)
|
|
||||||
version := min(e.Version, 4)
|
|
||||||
|
|
||||||
mgr.SetHeadHandler(func(e wlr_output_management.ZwlrOutputManagerV1HeadEvent) {
|
|
||||||
c.handleHead(e)
|
|
||||||
})
|
|
||||||
|
|
||||||
mgr.SetDoneHandler(func(e wlr_output_management.ZwlrOutputManagerV1DoneEvent) {
|
|
||||||
c.done = true
|
|
||||||
})
|
|
||||||
|
|
||||||
if err := registry.Bind(e.Name, e.Interface, version, mgr); err == nil {
|
|
||||||
c.manager = mgr
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
// First roundtrip: discover globals and bind manager
|
|
||||||
syncCallback, err := display.Sync()
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("failed to sync display: %w", err)
|
|
||||||
}
|
|
||||||
syncCallback.SetDoneHandler(func(e wlclient.CallbackDoneEvent) {
|
|
||||||
if c.manager == nil {
|
|
||||||
c.err = fmt.Errorf("zwlr_output_manager_v1 protocol not supported by compositor")
|
|
||||||
c.done = true
|
|
||||||
}
|
|
||||||
// Otherwise wait for manager's DoneHandler
|
|
||||||
})
|
|
||||||
|
|
||||||
for !c.done {
|
|
||||||
if err := c.ctx.Dispatch(); err != nil {
|
|
||||||
return nil, fmt.Errorf("dispatch error: %w", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if c.err != nil {
|
|
||||||
return nil, c.err
|
|
||||||
}
|
|
||||||
|
|
||||||
return c.buildOutputs(), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *randrClient) handleHead(e wlr_output_management.ZwlrOutputManagerV1HeadEvent) {
|
|
||||||
handle := e.Head
|
|
||||||
headID := handle.ID()
|
|
||||||
|
|
||||||
head := &randrHead{
|
|
||||||
modeIDs: make([]uint32, 0),
|
|
||||||
}
|
|
||||||
c.heads[headID] = head
|
|
||||||
|
|
||||||
handle.SetNameHandler(func(e wlr_output_management.ZwlrOutputHeadV1NameEvent) {
|
|
||||||
head.name = e.Name
|
|
||||||
})
|
|
||||||
|
|
||||||
handle.SetEnabledHandler(func(e wlr_output_management.ZwlrOutputHeadV1EnabledEvent) {
|
|
||||||
head.enabled = e.Enabled != 0
|
|
||||||
})
|
|
||||||
|
|
||||||
handle.SetScaleHandler(func(e wlr_output_management.ZwlrOutputHeadV1ScaleEvent) {
|
|
||||||
head.scale = e.Scale
|
|
||||||
})
|
|
||||||
|
|
||||||
handle.SetCurrentModeHandler(func(e wlr_output_management.ZwlrOutputHeadV1CurrentModeEvent) {
|
|
||||||
head.currentModeID = e.Mode.ID()
|
|
||||||
})
|
|
||||||
|
|
||||||
handle.SetModeHandler(func(e wlr_output_management.ZwlrOutputHeadV1ModeEvent) {
|
|
||||||
modeHandle := e.Mode
|
|
||||||
modeID := modeHandle.ID()
|
|
||||||
|
|
||||||
head.modeIDs = append(head.modeIDs, modeID)
|
|
||||||
|
|
||||||
mode := &randrMode{}
|
|
||||||
c.modes[modeID] = mode
|
|
||||||
|
|
||||||
modeHandle.SetSizeHandler(func(e wlr_output_management.ZwlrOutputModeV1SizeEvent) {
|
|
||||||
mode.width = e.Width
|
|
||||||
mode.height = e.Height
|
|
||||||
})
|
|
||||||
|
|
||||||
modeHandle.SetRefreshHandler(func(e wlr_output_management.ZwlrOutputModeV1RefreshEvent) {
|
|
||||||
mode.refresh = e.Refresh
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *randrClient) buildOutputs() []randrOutput {
|
|
||||||
outputs := make([]randrOutput, 0, len(c.heads))
|
|
||||||
|
|
||||||
for _, head := range c.heads {
|
|
||||||
out := randrOutput{
|
|
||||||
Name: head.name,
|
|
||||||
Scale: head.scale,
|
|
||||||
Enabled: head.enabled,
|
|
||||||
}
|
|
||||||
|
|
||||||
if mode, ok := c.modes[head.currentModeID]; ok {
|
|
||||||
out.Width = mode.width
|
|
||||||
out.Height = mode.height
|
|
||||||
out.Refresh = mode.refresh
|
|
||||||
}
|
|
||||||
|
|
||||||
outputs = append(outputs, out)
|
|
||||||
}
|
|
||||||
|
|
||||||
return outputs
|
|
||||||
}
|
|
||||||
@@ -16,6 +16,8 @@ require (
|
|||||||
github.com/sblinch/kdl-go v0.0.0-20260121213736-8b7053306ca6
|
github.com/sblinch/kdl-go v0.0.0-20260121213736-8b7053306ca6
|
||||||
github.com/spf13/cobra v1.10.2
|
github.com/spf13/cobra v1.10.2
|
||||||
github.com/stretchr/testify v1.11.1
|
github.com/stretchr/testify v1.11.1
|
||||||
|
github.com/yeqown/go-qrcode/v2 v2.2.5
|
||||||
|
github.com/yeqown/go-qrcode/writer/standard v1.3.0
|
||||||
github.com/yuin/goldmark v1.7.16
|
github.com/yuin/goldmark v1.7.16
|
||||||
github.com/yuin/goldmark-highlighting/v2 v2.0.0-20230729083705-37449abec8cc
|
github.com/yuin/goldmark-highlighting/v2 v2.0.0-20230729083705-37449abec8cc
|
||||||
go.etcd.io/bbolt v1.4.3
|
go.etcd.io/bbolt v1.4.3
|
||||||
@@ -32,15 +34,19 @@ require (
|
|||||||
github.com/cyphar/filepath-securejoin v0.6.1 // indirect
|
github.com/cyphar/filepath-securejoin v0.6.1 // indirect
|
||||||
github.com/dlclark/regexp2 v1.11.5 // indirect
|
github.com/dlclark/regexp2 v1.11.5 // indirect
|
||||||
github.com/emirpasic/gods v1.18.1 // indirect
|
github.com/emirpasic/gods v1.18.1 // indirect
|
||||||
|
github.com/fogleman/gg v1.3.0 // indirect
|
||||||
github.com/go-git/gcfg/v2 v2.0.2 // indirect
|
github.com/go-git/gcfg/v2 v2.0.2 // indirect
|
||||||
github.com/go-git/go-billy/v6 v6.0.0-20260209124918-37866f83c2d3 // indirect
|
github.com/go-git/go-billy/v6 v6.0.0-20260209124918-37866f83c2d3 // indirect
|
||||||
github.com/go-logfmt/logfmt v0.6.1 // indirect
|
github.com/go-logfmt/logfmt v0.6.1 // indirect
|
||||||
|
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
|
||||||
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
|
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
|
||||||
github.com/kevinburke/ssh_config v1.6.0 // indirect
|
github.com/kevinburke/ssh_config v1.6.0 // indirect
|
||||||
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
|
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
|
||||||
github.com/pjbgf/sha1cd v0.5.0 // indirect
|
github.com/pjbgf/sha1cd v0.5.0 // indirect
|
||||||
|
github.com/pkg/errors v0.9.1 // indirect
|
||||||
github.com/sergi/go-diff v1.4.0 // indirect
|
github.com/sergi/go-diff v1.4.0 // indirect
|
||||||
github.com/stretchr/objx v0.5.3 // indirect
|
github.com/stretchr/objx v0.5.3 // indirect
|
||||||
|
github.com/yeqown/reedsolomon v1.0.0 // indirect
|
||||||
golang.org/x/crypto v0.48.0 // indirect
|
golang.org/x/crypto v0.48.0 // indirect
|
||||||
golang.org/x/net v0.50.0 // indirect
|
golang.org/x/net v0.50.0 // indirect
|
||||||
)
|
)
|
||||||
|
|||||||
+12
@@ -58,6 +58,8 @@ github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc
|
|||||||
github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
|
github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
|
||||||
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4=
|
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4=
|
||||||
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM=
|
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM=
|
||||||
|
github.com/fogleman/gg v1.3.0 h1:/7zJX8F6AaYQc57WQCyN9cAIz+4bCJGO9B+dyW29am8=
|
||||||
|
github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
|
||||||
github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k=
|
github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k=
|
||||||
github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
|
github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
|
||||||
github.com/gliderlabs/ssh v0.3.8 h1:a4YXD1V7xMF9g5nTkdfnja3Sxy1PVDCj1Zg4Wb8vY6c=
|
github.com/gliderlabs/ssh v0.3.8 h1:a4YXD1V7xMF9g5nTkdfnja3Sxy1PVDCj1Zg4Wb8vY6c=
|
||||||
@@ -75,6 +77,8 @@ github.com/go-logfmt/logfmt v0.6.1/go.mod h1:EV2pOAQoZaT1ZXZbqDl5hrymndi4SY9ED9/
|
|||||||
github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
|
github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
|
||||||
github.com/godbus/dbus/v5 v5.2.2 h1:TUR3TgtSVDmjiXOgAAyaZbYmIeP3DPkld3jgKGV8mXQ=
|
github.com/godbus/dbus/v5 v5.2.2 h1:TUR3TgtSVDmjiXOgAAyaZbYmIeP3DPkld3jgKGV8mXQ=
|
||||||
github.com/godbus/dbus/v5 v5.2.2/go.mod h1:3AAv2+hPq5rdnr5txxxRwiGjPXamgoIHgz9FPBfOp3c=
|
github.com/godbus/dbus/v5 v5.2.2/go.mod h1:3AAv2+hPq5rdnr5txxxRwiGjPXamgoIHgz9FPBfOp3c=
|
||||||
|
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=
|
||||||
|
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
|
||||||
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ=
|
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ=
|
||||||
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw=
|
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw=
|
||||||
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
|
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
|
||||||
@@ -115,6 +119,8 @@ github.com/pilebones/go-udev v0.9.1 h1:uN72M1C1fgzhsVmBGEM8w9RD1JY4iVsPZpr+Z6rb3
|
|||||||
github.com/pilebones/go-udev v0.9.1/go.mod h1:Bgcl07crebF3JSeS4+nuaRvhWFdCeFoBhXXeAp93XNo=
|
github.com/pilebones/go-udev v0.9.1/go.mod h1:Bgcl07crebF3JSeS4+nuaRvhWFdCeFoBhXXeAp93XNo=
|
||||||
github.com/pjbgf/sha1cd v0.5.0 h1:a+UkboSi1znleCDUNT3M5YxjOnN1fz2FhN48FlwCxs0=
|
github.com/pjbgf/sha1cd v0.5.0 h1:a+UkboSi1znleCDUNT3M5YxjOnN1fz2FhN48FlwCxs0=
|
||||||
github.com/pjbgf/sha1cd v0.5.0/go.mod h1:lhpGlyHLpQZoxMv8HcgXvZEhcGs0PG/vsZnEJ7H0iCM=
|
github.com/pjbgf/sha1cd v0.5.0/go.mod h1:lhpGlyHLpQZoxMv8HcgXvZEhcGs0PG/vsZnEJ7H0iCM=
|
||||||
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
|
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
|
||||||
@@ -142,6 +148,12 @@ github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu
|
|||||||
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
|
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
|
||||||
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no=
|
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no=
|
||||||
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM=
|
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM=
|
||||||
|
github.com/yeqown/go-qrcode/v2 v2.2.5 h1:HCOe2bSjkhZyYoyyNaXNzh4DJZll6inVJQQw+8228Zk=
|
||||||
|
github.com/yeqown/go-qrcode/v2 v2.2.5/go.mod h1:uHpt9CM0V1HeXLz+Wg5MN50/sI/fQhfkZlOM+cOTHxw=
|
||||||
|
github.com/yeqown/go-qrcode/writer/standard v1.3.0 h1:chdyhEfRtUPgQtuPeaWVGQ/TQx4rE1PqeoW3U+53t34=
|
||||||
|
github.com/yeqown/go-qrcode/writer/standard v1.3.0/go.mod h1:O4MbzsotGCvy8upYPCR91j81dr5XLT7heuljcNXW+oQ=
|
||||||
|
github.com/yeqown/reedsolomon v1.0.0 h1:x1h/Ej/uJnNu8jaX7GLHBWmZKCAWjEJTetkqaabr4B0=
|
||||||
|
github.com/yeqown/reedsolomon v1.0.0/go.mod h1:P76zpcn2TCuL0ul1Fso373qHRc69LKwAw/Iy6g1WiiM=
|
||||||
github.com/yuin/goldmark v1.4.15/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
github.com/yuin/goldmark v1.4.15/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||||
github.com/yuin/goldmark v1.7.16 h1:n+CJdUxaFMiDUNnWC3dMWCIQJSkxH4uz3ZwQBkAlVNE=
|
github.com/yuin/goldmark v1.7.16 h1:n+CJdUxaFMiDUNnWC3dMWCIQJSkxH4uz3ZwQBkAlVNE=
|
||||||
github.com/yuin/goldmark v1.7.16/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg=
|
github.com/yuin/goldmark v1.7.16/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg=
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
package matugen
|
package matugen
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"math"
|
"math"
|
||||||
"os"
|
"os"
|
||||||
@@ -21,8 +19,6 @@ import (
|
|||||||
"github.com/lucasb-eyer/go-colorful"
|
"github.com/lucasb-eyer/go-colorful"
|
||||||
)
|
)
|
||||||
|
|
||||||
var ErrNoChanges = errors.New("no color changes")
|
|
||||||
|
|
||||||
type ColorMode string
|
type ColorMode string
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -164,45 +160,39 @@ func Run(opts Options) error {
|
|||||||
|
|
||||||
log.Infof("Building theme: %s %s (%s)", opts.Kind, opts.Value, opts.Mode)
|
log.Infof("Building theme: %s %s (%s)", opts.Kind, opts.Value, opts.Mode)
|
||||||
|
|
||||||
changed, buildErr := buildOnce(&opts)
|
buildErr := buildOnce(&opts)
|
||||||
if buildErr != nil {
|
|
||||||
return buildErr
|
|
||||||
}
|
|
||||||
|
|
||||||
if !changed {
|
|
||||||
log.Info("No color changes detected, skipping refresh")
|
|
||||||
return ErrNoChanges
|
|
||||||
}
|
|
||||||
|
|
||||||
if opts.SyncModeWithPortal {
|
if opts.SyncModeWithPortal {
|
||||||
syncColorScheme(opts.Mode)
|
syncColorScheme(opts.Mode)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if buildErr != nil {
|
||||||
|
return buildErr
|
||||||
|
}
|
||||||
|
|
||||||
log.Info("Done")
|
log.Info("Done")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildOnce(opts *Options) (bool, error) {
|
func buildOnce(opts *Options) error {
|
||||||
cfgFile, err := os.CreateTemp("", "matugen-config-*.toml")
|
cfgFile, err := os.CreateTemp("", "matugen-config-*.toml")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, fmt.Errorf("failed to create temp config: %w", err)
|
return fmt.Errorf("failed to create temp config: %w", err)
|
||||||
}
|
}
|
||||||
defer os.Remove(cfgFile.Name())
|
defer os.Remove(cfgFile.Name())
|
||||||
defer cfgFile.Close()
|
defer cfgFile.Close()
|
||||||
|
|
||||||
tmpDir, err := os.MkdirTemp("", "matugen-templates-*")
|
tmpDir, err := os.MkdirTemp("", "matugen-templates-*")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, fmt.Errorf("failed to create temp dir: %w", err)
|
return fmt.Errorf("failed to create temp dir: %w", err)
|
||||||
}
|
}
|
||||||
defer os.RemoveAll(tmpDir)
|
defer os.RemoveAll(tmpDir)
|
||||||
|
|
||||||
if err := buildMergedConfig(opts, cfgFile, tmpDir); err != nil {
|
if err := buildMergedConfig(opts, cfgFile, tmpDir); err != nil {
|
||||||
return false, fmt.Errorf("failed to build config: %w", err)
|
return fmt.Errorf("failed to build config: %w", err)
|
||||||
}
|
}
|
||||||
cfgFile.Close()
|
cfgFile.Close()
|
||||||
|
|
||||||
oldColors, _ := os.ReadFile(opts.ColorsOutput())
|
|
||||||
|
|
||||||
var primaryDark, primaryLight, surface string
|
var primaryDark, primaryLight, surface string
|
||||||
var dank16JSON string
|
var dank16JSON string
|
||||||
var importArgs []string
|
var importArgs []string
|
||||||
@@ -214,7 +204,7 @@ func buildOnce(opts *Options) (bool, error) {
|
|||||||
surface = extractNestedColor(opts.StockColors, "surface", "dark")
|
surface = extractNestedColor(opts.StockColors, "surface", "dark")
|
||||||
|
|
||||||
if primaryDark == "" {
|
if primaryDark == "" {
|
||||||
return false, fmt.Errorf("failed to extract primary dark from stock colors")
|
return fmt.Errorf("failed to extract primary dark from stock colors")
|
||||||
}
|
}
|
||||||
if primaryLight == "" {
|
if primaryLight == "" {
|
||||||
primaryLight = primaryDark
|
primaryLight = primaryDark
|
||||||
@@ -228,14 +218,14 @@ func buildOnce(opts *Options) (bool, error) {
|
|||||||
args := []string{"color", "hex", primaryDark, "-m", string(opts.Mode), "-t", opts.MatugenType, "-c", cfgFile.Name()}
|
args := []string{"color", "hex", primaryDark, "-m", string(opts.Mode), "-t", opts.MatugenType, "-c", cfgFile.Name()}
|
||||||
args = append(args, importArgs...)
|
args = append(args, importArgs...)
|
||||||
if err := runMatugen(args); err != nil {
|
if err := runMatugen(args); err != nil {
|
||||||
return false, err
|
return err
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.Infof("Using dynamic theme from %s: %s", opts.Kind, opts.Value)
|
log.Infof("Using dynamic theme from %s: %s", opts.Kind, opts.Value)
|
||||||
|
|
||||||
matJSON, err := runMatugenDryRun(opts)
|
matJSON, err := runMatugenDryRun(opts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, fmt.Errorf("matugen dry-run failed: %w", err)
|
return fmt.Errorf("matugen dry-run failed: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
primaryDark = extractMatugenColor(matJSON, "primary", "dark")
|
primaryDark = extractMatugenColor(matJSON, "primary", "dark")
|
||||||
@@ -243,7 +233,7 @@ func buildOnce(opts *Options) (bool, error) {
|
|||||||
surface = extractMatugenColor(matJSON, "surface", "dark")
|
surface = extractMatugenColor(matJSON, "surface", "dark")
|
||||||
|
|
||||||
if primaryDark == "" {
|
if primaryDark == "" {
|
||||||
return false, fmt.Errorf("failed to extract primary color")
|
return fmt.Errorf("failed to extract primary color")
|
||||||
}
|
}
|
||||||
if primaryLight == "" {
|
if primaryLight == "" {
|
||||||
primaryLight = primaryDark
|
primaryLight = primaryDark
|
||||||
@@ -264,15 +254,10 @@ func buildOnce(opts *Options) (bool, error) {
|
|||||||
args = append(args, "-m", string(opts.Mode), "-t", opts.MatugenType, "-c", cfgFile.Name())
|
args = append(args, "-m", string(opts.Mode), "-t", opts.MatugenType, "-c", cfgFile.Name())
|
||||||
args = append(args, importArgs...)
|
args = append(args, importArgs...)
|
||||||
if err := runMatugen(args); err != nil {
|
if err := runMatugen(args); err != nil {
|
||||||
return false, err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
newColors, _ := os.ReadFile(opts.ColorsOutput())
|
|
||||||
if bytes.Equal(oldColors, newColors) && len(oldColors) > 0 {
|
|
||||||
return false, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
if isDMSGTKActive(opts.ConfigDir) {
|
if isDMSGTKActive(opts.ConfigDir) {
|
||||||
switch opts.Mode {
|
switch opts.Mode {
|
||||||
case ColorModeLight:
|
case ColorModeLight:
|
||||||
@@ -290,7 +275,7 @@ func buildOnce(opts *Options) (bool, error) {
|
|||||||
|
|
||||||
signalTerminals(opts)
|
signalTerminals(opts)
|
||||||
|
|
||||||
return true, nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildMergedConfig(opts *Options, cfgFile *os.File, tmpDir string) error {
|
func buildMergedConfig(opts *Options, cfgFile *os.File, tmpDir string) error {
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package matugen
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/AvengeMedia/DankMaterialShell/core/internal/log"
|
"github.com/AvengeMedia/DankMaterialShell/core/internal/log"
|
||||||
@@ -94,13 +93,10 @@ func (q *Queue) runWorker() {
|
|||||||
err := Run(job.Options)
|
err := Run(job.Options)
|
||||||
|
|
||||||
var result Result
|
var result Result
|
||||||
switch {
|
if err != nil {
|
||||||
case err == nil:
|
|
||||||
result = Result{Success: true}
|
|
||||||
case errors.Is(err, ErrNoChanges):
|
|
||||||
result = Result{Success: true}
|
|
||||||
default:
|
|
||||||
result = Result{Success: false, Error: err}
|
result = Result{Success: false, Error: err}
|
||||||
|
} else {
|
||||||
|
result = Result{Success: true}
|
||||||
}
|
}
|
||||||
|
|
||||||
q.finishJob(result)
|
q.finishJob(result)
|
||||||
|
|||||||
@@ -1062,6 +1062,62 @@ func (_c *MockBackend_GetWiFiNetworkDetails_Call) RunAndReturn(run func(string)
|
|||||||
return _c
|
return _c
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetWiFiQRCodeContent provides a mock function with given fields: ssid
|
||||||
|
func (_m *MockBackend) GetWiFiQRCodeContent(ssid string) (string, error) {
|
||||||
|
ret := _m.Called(ssid)
|
||||||
|
|
||||||
|
if len(ret) == 0 {
|
||||||
|
panic("no return value specified for GetWiFiQRCodeContent")
|
||||||
|
}
|
||||||
|
|
||||||
|
var r0 string
|
||||||
|
var r1 error
|
||||||
|
if rf, ok := ret.Get(0).(func(string) (string, error)); ok {
|
||||||
|
return rf(ssid)
|
||||||
|
}
|
||||||
|
if rf, ok := ret.Get(0).(func(string) string); ok {
|
||||||
|
r0 = rf(ssid)
|
||||||
|
} else {
|
||||||
|
r0 = ret.Get(0).(string)
|
||||||
|
}
|
||||||
|
|
||||||
|
if rf, ok := ret.Get(1).(func(string) error); ok {
|
||||||
|
r1 = rf(ssid)
|
||||||
|
} else {
|
||||||
|
r1 = ret.Error(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
return r0, r1
|
||||||
|
}
|
||||||
|
|
||||||
|
// MockBackend_GetWiFiQRCodeContent_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetWiFiQRCodeContent'
|
||||||
|
type MockBackend_GetWiFiQRCodeContent_Call struct {
|
||||||
|
*mock.Call
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetWiFiQRCodeContent is a helper method to define mock.On call
|
||||||
|
// - ssid string
|
||||||
|
func (_e *MockBackend_Expecter) GetWiFiQRCodeContent(ssid interface{}) *MockBackend_GetWiFiQRCodeContent_Call {
|
||||||
|
return &MockBackend_GetWiFiQRCodeContent_Call{Call: _e.mock.On("GetWiFiQRCodeContent", ssid)}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (_c *MockBackend_GetWiFiQRCodeContent_Call) Run(run func(ssid string)) *MockBackend_GetWiFiQRCodeContent_Call {
|
||||||
|
_c.Call.Run(func(args mock.Arguments) {
|
||||||
|
run(args[0].(string))
|
||||||
|
})
|
||||||
|
return _c
|
||||||
|
}
|
||||||
|
|
||||||
|
func (_c *MockBackend_GetWiFiQRCodeContent_Call) Return(_a0 string, _a1 error) *MockBackend_GetWiFiQRCodeContent_Call {
|
||||||
|
_c.Call.Return(_a0, _a1)
|
||||||
|
return _c
|
||||||
|
}
|
||||||
|
|
||||||
|
func (_c *MockBackend_GetWiFiQRCodeContent_Call) RunAndReturn(run func(string) (string, error)) *MockBackend_GetWiFiQRCodeContent_Call {
|
||||||
|
_c.Call.Return(run)
|
||||||
|
return _c
|
||||||
|
}
|
||||||
|
|
||||||
// GetWiredConnections provides a mock function with no fields
|
// GetWiredConnections provides a mock function with no fields
|
||||||
func (_m *MockBackend) GetWiredConnections() ([]network.WiredConnection, error) {
|
func (_m *MockBackend) GetWiredConnections() ([]network.WiredConnection, error) {
|
||||||
ret := _m.Called()
|
ret := _m.Called()
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ type Backend interface {
|
|||||||
ScanWiFi() error
|
ScanWiFi() error
|
||||||
ScanWiFiDevice(device string) error
|
ScanWiFiDevice(device string) error
|
||||||
GetWiFiNetworkDetails(ssid string) (*NetworkInfoResponse, error)
|
GetWiFiNetworkDetails(ssid string) (*NetworkInfoResponse, error)
|
||||||
|
GetWiFiQRCodeContent(ssid string) (string, error)
|
||||||
GetWiFiDevices() []WiFiDevice
|
GetWiFiDevices() []WiFiDevice
|
||||||
|
|
||||||
ConnectWiFi(req ConnectionRequest) error
|
ConnectWiFi(req ConnectionRequest) error
|
||||||
|
|||||||
@@ -111,6 +111,10 @@ func (b *HybridIwdNetworkdBackend) GetWiFiNetworkDetails(ssid string) (*NetworkI
|
|||||||
return b.wifi.GetWiFiNetworkDetails(ssid)
|
return b.wifi.GetWiFiNetworkDetails(ssid)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (b *HybridIwdNetworkdBackend) GetWiFiQRCodeContent(ssid string) (string, error) {
|
||||||
|
return b.wifi.GetWiFiQRCodeContent(ssid)
|
||||||
|
}
|
||||||
|
|
||||||
func (b *HybridIwdNetworkdBackend) ConnectWiFi(req ConnectionRequest) error {
|
func (b *HybridIwdNetworkdBackend) ConnectWiFi(req ConnectionRequest) error {
|
||||||
if err := b.wifi.ConnectWiFi(req); err != nil {
|
if err := b.wifi.ConnectWiFi(req); err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package network
|
package network
|
||||||
|
|
||||||
import "fmt"
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
func (b *IWDBackend) GetWiredConnections() ([]WiredConnection, error) {
|
func (b *IWDBackend) GetWiredConnections() ([]WiredConnection, error) {
|
||||||
return nil, fmt.Errorf("wired connections not supported by iwd")
|
return nil, fmt.Errorf("wired connections not supported by iwd")
|
||||||
@@ -112,3 +115,19 @@ func (b *IWDBackend) getWiFiDevicesLocked() []WiFiDevice {
|
|||||||
Networks: b.state.WiFiNetworks,
|
Networks: b.state.WiFiNetworks,
|
||||||
}}
|
}}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (b *IWDBackend) GetWiFiQRCodeContent(ssid string) (string, error) {
|
||||||
|
path := iwdConfigPath(ssid)
|
||||||
|
|
||||||
|
data, err := os.ReadFile(path)
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("no saved iwd config for `%s`: %w", ssid, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
passphrase, err := parseIWDPassphrase(string(data))
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("failed to read passphrase for `%s`: %w", ssid, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return FormatWiFiQRString("WPA", ssid, passphrase), nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -18,6 +18,10 @@ func (b *SystemdNetworkdBackend) GetWiFiNetworkDetails(ssid string) (*NetworkInf
|
|||||||
return nil, fmt.Errorf("WiFi details not supported by networkd backend")
|
return nil, fmt.Errorf("WiFi details not supported by networkd backend")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (b *SystemdNetworkdBackend) GetWiFiQRCodeContent(ssid string) (string, error) {
|
||||||
|
return "", fmt.Errorf("WiFi QR Code not supported by networkd backend")
|
||||||
|
}
|
||||||
|
|
||||||
func (b *SystemdNetworkdBackend) ConnectWiFi(req ConnectionRequest) error {
|
func (b *SystemdNetworkdBackend) ConnectWiFi(req ConnectionRequest) error {
|
||||||
return fmt.Errorf("WiFi connect not supported by networkd backend")
|
return fmt.Errorf("WiFi connect not supported by networkd backend")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -196,6 +196,65 @@ func (b *NetworkManagerBackend) GetWiFiNetworkDetails(ssid string) (*NetworkInfo
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (b *NetworkManagerBackend) GetWiFiQRCodeContent(ssid string) (string, error) {
|
||||||
|
conn, err := b.findConnection(ssid)
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("no saved connection for `%s`: %w", ssid, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
connSettings, err := conn.GetSettings()
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("failed to get settings for `%s`: %w", ssid, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
secSettings, ok := connSettings["802-11-wireless-security"]
|
||||||
|
if !ok {
|
||||||
|
return "", fmt.Errorf("network `%s` has no security settings", ssid)
|
||||||
|
}
|
||||||
|
|
||||||
|
keyMgmt, ok := secSettings["key-mgmt"].(string)
|
||||||
|
if !ok {
|
||||||
|
return "", fmt.Errorf("failed to identify security type of network `%s`", ssid)
|
||||||
|
}
|
||||||
|
|
||||||
|
var securityType string
|
||||||
|
switch keyMgmt {
|
||||||
|
case "none":
|
||||||
|
authAlg, _ := secSettings["auth-alg"].(string)
|
||||||
|
switch authAlg {
|
||||||
|
case "open":
|
||||||
|
securityType = "nopass"
|
||||||
|
default:
|
||||||
|
securityType = "WEP"
|
||||||
|
}
|
||||||
|
case "ieee8021x":
|
||||||
|
securityType = "WEP"
|
||||||
|
default:
|
||||||
|
securityType = "WPA"
|
||||||
|
}
|
||||||
|
|
||||||
|
if securityType != "WPA" {
|
||||||
|
return "", fmt.Errorf("QR code generation only supports WPA connections, `%s` uses %s", ssid, securityType)
|
||||||
|
}
|
||||||
|
|
||||||
|
secrets, err := conn.GetSecrets("802-11-wireless-security")
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("failed to retrieve connection secrets for `%s`: %w", ssid, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
secSecrets, ok := secrets["802-11-wireless-security"]
|
||||||
|
if !ok {
|
||||||
|
return "", fmt.Errorf("failed to retrieve password for `%s`", ssid)
|
||||||
|
}
|
||||||
|
|
||||||
|
psk, ok := secSecrets["psk"].(string)
|
||||||
|
if !ok {
|
||||||
|
return "", fmt.Errorf("failed to retrieve password for `%s`", ssid)
|
||||||
|
}
|
||||||
|
|
||||||
|
return FormatWiFiQRString(securityType, ssid, psk), nil
|
||||||
|
}
|
||||||
|
|
||||||
func (b *NetworkManagerBackend) ConnectWiFi(req ConnectionRequest) error {
|
func (b *NetworkManagerBackend) ConnectWiFi(req ConnectionRequest) error {
|
||||||
devInfo, err := b.getWifiDeviceForConnection(req.Device)
|
devInfo, err := b.getWifiDeviceForConnection(req.Device)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net"
|
"net"
|
||||||
|
"os"
|
||||||
|
|
||||||
"github.com/AvengeMedia/DankMaterialShell/core/internal/log"
|
"github.com/AvengeMedia/DankMaterialShell/core/internal/log"
|
||||||
"github.com/AvengeMedia/DankMaterialShell/core/internal/server/models"
|
"github.com/AvengeMedia/DankMaterialShell/core/internal/server/models"
|
||||||
@@ -40,6 +41,10 @@ func HandleRequest(conn net.Conn, req models.Request, manager *Manager) {
|
|||||||
handleSetPreference(conn, req, manager)
|
handleSetPreference(conn, req, manager)
|
||||||
case "network.info":
|
case "network.info":
|
||||||
handleGetNetworkInfo(conn, req, manager)
|
handleGetNetworkInfo(conn, req, manager)
|
||||||
|
case "network.qrcode":
|
||||||
|
handleGetNetworkQRCode(conn, req, manager)
|
||||||
|
case "network.delete-qrcode":
|
||||||
|
handleDeleteQRCode(conn, req, manager)
|
||||||
case "network.ethernet.info":
|
case "network.ethernet.info":
|
||||||
handleGetWiredNetworkInfo(conn, req, manager)
|
handleGetWiredNetworkInfo(conn, req, manager)
|
||||||
case "network.subscribe":
|
case "network.subscribe":
|
||||||
@@ -320,6 +325,42 @@ func handleGetNetworkInfo(conn net.Conn, req models.Request, manager *Manager) {
|
|||||||
models.Respond(conn, req.ID, network)
|
models.Respond(conn, req.ID, network)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func handleGetNetworkQRCode(conn net.Conn, req models.Request, manager *Manager) {
|
||||||
|
ssid, err := params.String(req.Params, "ssid")
|
||||||
|
if err != nil {
|
||||||
|
models.RespondError(conn, req.ID, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
content, err := manager.GetNetworkQRCode(ssid)
|
||||||
|
if err != nil {
|
||||||
|
models.RespondError(conn, req.ID, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
models.Respond(conn, req.ID, content)
|
||||||
|
}
|
||||||
|
|
||||||
|
func handleDeleteQRCode(conn net.Conn, req models.Request, _ *Manager) {
|
||||||
|
path, err := params.String(req.Params, "path")
|
||||||
|
if err != nil {
|
||||||
|
models.RespondError(conn, req.ID, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if !isValidQRCodePath(path) {
|
||||||
|
models.RespondError(conn, req.ID, "invalid QR code path")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := os.Remove(path); err != nil {
|
||||||
|
models.RespondError(conn, req.ID, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
models.Respond(conn, req.ID, models.SuccessResult{Success: true, Message: "QR code file deleted"})
|
||||||
|
}
|
||||||
|
|
||||||
func handleGetWiredNetworkInfo(conn net.Conn, req models.Request, manager *Manager) {
|
func handleGetWiredNetworkInfo(conn net.Conn, req models.Request, manager *Manager) {
|
||||||
uuid, err := params.String(req.Params, "uuid")
|
uuid, err := params.String(req.Params, "uuid")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/AvengeMedia/DankMaterialShell/core/internal/log"
|
"github.com/AvengeMedia/DankMaterialShell/core/internal/log"
|
||||||
|
"github.com/yeqown/go-qrcode/v2"
|
||||||
|
"github.com/yeqown/go-qrcode/writer/standard"
|
||||||
)
|
)
|
||||||
|
|
||||||
func NewManager() (*Manager, error) {
|
func NewManager() (*Manager, error) {
|
||||||
@@ -438,6 +440,43 @@ func (m *Manager) GetNetworkInfoDetailed(ssid string) (*NetworkInfoResponse, err
|
|||||||
return m.backend.GetWiFiNetworkDetails(ssid)
|
return m.backend.GetWiFiNetworkDetails(ssid)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *Manager) GetNetworkQRCode(ssid string) ([2]string, error) {
|
||||||
|
content, err := m.backend.GetWiFiQRCodeContent(ssid)
|
||||||
|
if err != nil {
|
||||||
|
return [2]string{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
qrc, err := qrcode.New(content)
|
||||||
|
if err != nil {
|
||||||
|
return [2]string{}, fmt.Errorf("failed to create QR code for `%s`: %w", ssid, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
pathThemed, pathNormal := qrCodePaths(ssid)
|
||||||
|
|
||||||
|
wThemed, err := standard.New(
|
||||||
|
pathThemed,
|
||||||
|
standard.WithBuiltinImageEncoder(standard.PNG_FORMAT),
|
||||||
|
standard.WithBgTransparent(),
|
||||||
|
standard.WithFgColorRGBHex("#ffffff"),
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
return [2]string{}, fmt.Errorf("failed to create QR code writer: %w", err)
|
||||||
|
}
|
||||||
|
if err := qrc.Save(wThemed); err != nil {
|
||||||
|
return [2]string{}, fmt.Errorf("failed to save QR code for `%s`: %w", ssid, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
wNormal, err := standard.New(pathNormal, standard.WithBuiltinImageEncoder(standard.PNG_FORMAT))
|
||||||
|
if err != nil {
|
||||||
|
return [2]string{}, fmt.Errorf("failed to create QR code writer: %w", err)
|
||||||
|
}
|
||||||
|
if err := qrc.Save(wNormal); err != nil {
|
||||||
|
return [2]string{}, fmt.Errorf("failed to save QR code for `%s`: %w", ssid, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return [2]string{pathThemed, pathNormal}, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (m *Manager) ToggleWiFi() error {
|
func (m *Manager) ToggleWiFi() error {
|
||||||
enabled, err := m.backend.GetWiFiEnabled()
|
enabled, err := m.backend.GetWiFiEnabled()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -0,0 +1,59 @@
|
|||||||
|
package network
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"path/filepath"
|
||||||
|
"regexp"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
const qrCodeTmpPrefix = "/tmp/dank-wifi-qrcode-"
|
||||||
|
|
||||||
|
func FormatWiFiQRString(securityType, ssid, password string) string {
|
||||||
|
return fmt.Sprintf("WIFI:T:%s;S:%s;P:%s;;", securityType, ssid, password)
|
||||||
|
}
|
||||||
|
|
||||||
|
func qrCodePaths(ssid string) (themed, normal string) {
|
||||||
|
safe := sanitizeSSIDForPath(ssid)
|
||||||
|
themed = fmt.Sprintf("%s%s-themed.png", qrCodeTmpPrefix, safe)
|
||||||
|
normal = fmt.Sprintf("%s%s-normal.png", qrCodeTmpPrefix, safe)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func isValidQRCodePath(path string) bool {
|
||||||
|
clean := filepath.Clean(path)
|
||||||
|
return strings.HasPrefix(clean, qrCodeTmpPrefix) && strings.HasSuffix(clean, ".png")
|
||||||
|
}
|
||||||
|
|
||||||
|
var safePathChar = regexp.MustCompile(`[^a-zA-Z0-9_-]`)
|
||||||
|
|
||||||
|
func sanitizeSSIDForPath(ssid string) string {
|
||||||
|
return safePathChar.ReplaceAllString(ssid, "_")
|
||||||
|
}
|
||||||
|
|
||||||
|
var iwdVerbatimSSID = regexp.MustCompile(`^[a-zA-Z0-9 _-]+$`)
|
||||||
|
|
||||||
|
func iwdConfigPath(ssid string) string {
|
||||||
|
switch {
|
||||||
|
case iwdVerbatimSSID.MatchString(ssid):
|
||||||
|
return fmt.Sprintf("/var/lib/iwd/%s.psk", ssid)
|
||||||
|
default:
|
||||||
|
return fmt.Sprintf("/var/lib/iwd/=%x.psk", []byte(ssid))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func parseIWDPassphrase(data string) (string, error) {
|
||||||
|
inSecurity := false
|
||||||
|
for _, line := range strings.Split(data, "\n") {
|
||||||
|
line = strings.TrimSpace(line)
|
||||||
|
switch {
|
||||||
|
case line == "[Security]":
|
||||||
|
inSecurity = true
|
||||||
|
case strings.HasPrefix(line, "["):
|
||||||
|
inSecurity = false
|
||||||
|
case inSecurity && strings.HasPrefix(line, "Passphrase="):
|
||||||
|
return strings.TrimPrefix(line, "Passphrase="), nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "", fmt.Errorf("no passphrase found in iwd config")
|
||||||
|
}
|
||||||
@@ -27,12 +27,12 @@ override_dh_auto_build:
|
|||||||
# Verify core directory exists (native package format has source at root)
|
# Verify core directory exists (native package format has source at root)
|
||||||
test -d core || (echo "ERROR: core directory not found!" && exit 1)
|
test -d core || (echo "ERROR: core directory not found!" && exit 1)
|
||||||
|
|
||||||
# Patch go.mod to use Go 1.24 base version (Debian 13 has 1.23.x, may vary)
|
# Pin go.mod and vendor/modules.txt to the installed Go toolchain version
|
||||||
sed -i 's/^go 1\.24\.[0-9]*/go 1.24/' core/go.mod
|
GO_INSTALLED=$$(go version | grep -oP 'go\K[0-9]+\.[0-9]+'); \
|
||||||
|
sed -i "s/^go [0-9]\+\.[0-9]\+\(\.[0-9]*\)\?$$/go $${GO_INSTALLED}/" core/go.mod; \
|
||||||
|
sed -i "s/^\(## explicit; go \)[0-9]\+\.[0-9]\+\(\.[0-9]*\)\?$$/\1$${GO_INSTALLED}/" core/vendor/modules.txt
|
||||||
|
|
||||||
# Build dms-cli from source using vendored dependencies
|
# Build dms-cli (single shell to preserve variables; arch: Debian amd64/arm64 -> Makefile amd64/arm64)
|
||||||
# Extract version info and build in single shell to preserve variables
|
|
||||||
# Architecture mapping: Debian amd64/arm64 -> Makefile amd64/arm64
|
|
||||||
VERSION="$(UPSTREAM_VERSION)"; \
|
VERSION="$(UPSTREAM_VERSION)"; \
|
||||||
COMMIT=$$(echo "$(UPSTREAM_VERSION)" | grep -oP '(?<=git)[0-9]+\.[a-f0-9]+' | cut -d. -f2 | head -c8 || echo "unknown"); \
|
COMMIT=$$(echo "$(UPSTREAM_VERSION)" | grep -oP '(?<=git)[0-9]+\.[a-f0-9]+' | cut -d. -f2 | head -c8 || echo "unknown"); \
|
||||||
if [ "$(DEB_HOST_ARCH)" = "amd64" ]; then \
|
if [ "$(DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
%global debug_package %{nil}
|
%global debug_package %{nil}
|
||||||
%global version {{{ git_repo_version }}}
|
%global version {{{ git_repo_version }}}
|
||||||
%global pkg_summary DankMaterialShell - Material 3 inspired shell for Wayland compositors
|
%global pkg_summary DankMaterialShell - Material 3 inspired shell for Wayland compositors
|
||||||
|
%global go_toolchain_version 1.25.7
|
||||||
|
|
||||||
Name: dms
|
Name: dms
|
||||||
Epoch: 2
|
Epoch: 2
|
||||||
@@ -14,12 +15,12 @@ License: MIT
|
|||||||
URL: https://github.com/AvengeMedia/DankMaterialShell
|
URL: https://github.com/AvengeMedia/DankMaterialShell
|
||||||
VCS: {{{ git_repo_vcs }}}
|
VCS: {{{ git_repo_vcs }}}
|
||||||
Source0: {{{ git_repo_pack }}}
|
Source0: {{{ git_repo_pack }}}
|
||||||
|
Source1: https://go.dev/dl/go%{go_toolchain_version}.linux-amd64.tar.gz
|
||||||
|
Source2: https://go.dev/dl/go%{go_toolchain_version}.linux-arm64.tar.gz
|
||||||
|
|
||||||
BuildRequires: git-core
|
BuildRequires: git-core
|
||||||
BuildRequires: gzip
|
BuildRequires: gzip
|
||||||
BuildRequires: golang >= 1.24
|
|
||||||
BuildRequires: make
|
BuildRequires: make
|
||||||
BuildRequires: wget
|
|
||||||
BuildRequires: systemd-rpm-macros
|
BuildRequires: systemd-rpm-macros
|
||||||
|
|
||||||
# Core requirements
|
# Core requirements
|
||||||
@@ -28,7 +29,7 @@ Requires: accountsservice
|
|||||||
Requires: dms-cli = %{epoch}:%{version}-%{release}
|
Requires: dms-cli = %{epoch}:%{version}-%{release}
|
||||||
Requires: dgop
|
Requires: dgop
|
||||||
|
|
||||||
# Core utilities (Highly recommended for DMS functionality)
|
# Core utilities (Recommended for DMS functionality)
|
||||||
Recommends: cava
|
Recommends: cava
|
||||||
Recommends: danksearch
|
Recommends: danksearch
|
||||||
Recommends: matugen
|
Recommends: matugen
|
||||||
@@ -66,6 +67,28 @@ Provides native DBus bindings, NetworkManager integration, and system utilities.
|
|||||||
VERSION="%{version}"
|
VERSION="%{version}"
|
||||||
COMMIT=$(echo "%{version}" | grep -oP '[a-f0-9]{7,}' | head -n1 || echo "unknown")
|
COMMIT=$(echo "%{version}" | grep -oP '[a-f0-9]{7,}' | head -n1 || echo "unknown")
|
||||||
|
|
||||||
|
# Use pinned bundled Go toolchain (deterministic across chroots)
|
||||||
|
case "%{_arch}" in
|
||||||
|
x86_64)
|
||||||
|
GO_TARBALL="%{_sourcedir}/go%{go_toolchain_version}.linux-amd64.tar.gz"
|
||||||
|
;;
|
||||||
|
aarch64)
|
||||||
|
GO_TARBALL="%{_sourcedir}/go%{go_toolchain_version}.linux-arm64.tar.gz"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unsupported architecture for bundled Go: %{_arch}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
rm -rf .go
|
||||||
|
tar -xzf "$GO_TARBALL"
|
||||||
|
mv go .go
|
||||||
|
export GOROOT="$PWD/.go"
|
||||||
|
export PATH="$GOROOT/bin:$PATH"
|
||||||
|
export GOTOOLCHAIN=local
|
||||||
|
go version
|
||||||
|
|
||||||
cd core
|
cd core
|
||||||
make dist VERSION="$VERSION" COMMIT="$COMMIT"
|
make dist VERSION="$VERSION" COMMIT="$COMMIT"
|
||||||
|
|
||||||
|
|||||||
@@ -56,8 +56,10 @@ mkdir -p $HOME $GOCACHE $GOMODCACHE
|
|||||||
# OBS has no network access, so use local toolchain only
|
# OBS has no network access, so use local toolchain only
|
||||||
export GOTOOLCHAIN=local
|
export GOTOOLCHAIN=local
|
||||||
|
|
||||||
# Patch go.mod to use base Go version (e.g., go 1.24 instead of go 1.24.6)
|
# Pin go.mod and vendor/modules.txt to the installed Go toolchain version
|
||||||
sed -i 's/^go 1\.24\.[0-9]*/go 1.24/' core/go.mod
|
GO_INSTALLED=$(go version | grep -oP 'go\K[0-9]+\.[0-9]+')
|
||||||
|
sed -i "s/^go [0-9]\+\.[0-9]\+\(\.[0-9]*\)\?$/go ${GO_INSTALLED}/" core/go.mod
|
||||||
|
sed -i "s/^\(## explicit; go \)[0-9]\+\.[0-9]\+\(\.[0-9]*\)\?$/\1${GO_INSTALLED}/" core/vendor/modules.txt
|
||||||
|
|
||||||
# Extract version info for embedding in binary
|
# Extract version info for embedding in binary
|
||||||
VERSION="%{version}"
|
VERSION="%{version}"
|
||||||
|
|||||||
@@ -182,6 +182,7 @@
|
|||||||
with pkgs;
|
with pkgs;
|
||||||
[
|
[
|
||||||
go_1_25
|
go_1_25
|
||||||
|
go-mockery_2
|
||||||
gopls
|
gopls
|
||||||
delve
|
delve
|
||||||
go-tools
|
go-tools
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
Saffron Bloom
|
The Wolverine
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ pragma ComponentBehavior: Bound
|
|||||||
|
|
||||||
import Quickshell
|
import Quickshell
|
||||||
import QtCore
|
import QtCore
|
||||||
import qs.Services
|
|
||||||
|
|
||||||
Singleton {
|
Singleton {
|
||||||
id: root
|
id: root
|
||||||
@@ -84,12 +83,7 @@ Singleton {
|
|||||||
if (desktopEntry && desktopEntry.icon) {
|
if (desktopEntry && desktopEntry.icon) {
|
||||||
return Quickshell.iconPath(desktopEntry.icon, true);
|
return Quickshell.iconPath(desktopEntry.icon, true);
|
||||||
}
|
}
|
||||||
|
return Quickshell.iconPath(appId, true);
|
||||||
const icon = Quickshell.iconPath(appId, true);
|
|
||||||
if (icon && icon !== "")
|
|
||||||
return icon;
|
|
||||||
|
|
||||||
return DesktopService.resolveIconPath(appId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getAppName(appId: string, desktopEntry: var): string {
|
function getAppName(appId: string, desktopEntry: var): string {
|
||||||
|
|||||||
@@ -575,7 +575,7 @@ Singleton {
|
|||||||
"maximizeWidgetIcons": false,
|
"maximizeWidgetIcons": false,
|
||||||
"maximizeWidgetText": false,
|
"maximizeWidgetText": false,
|
||||||
"removeWidgetPadding": false,
|
"removeWidgetPadding": false,
|
||||||
"widgetPadding": 8,
|
"widgetPadding": 12,
|
||||||
"gothCornersEnabled": false,
|
"gothCornersEnabled": false,
|
||||||
"gothCornerRadiusOverride": false,
|
"gothCornerRadiusOverride": false,
|
||||||
"gothCornerRadiusValue": 12,
|
"gothCornerRadiusValue": 12,
|
||||||
|
|||||||
@@ -398,7 +398,7 @@ var SPEC = {
|
|||||||
maximizeWidgetIcons: false,
|
maximizeWidgetIcons: false,
|
||||||
maximizeWidgetText: false,
|
maximizeWidgetText: false,
|
||||||
removeWidgetPadding: false,
|
removeWidgetPadding: false,
|
||||||
widgetPadding: 8,
|
widgetPadding: 12,
|
||||||
gothCornersEnabled: false,
|
gothCornersEnabled: false,
|
||||||
gothCornerRadiusOverride: false,
|
gothCornerRadiusOverride: false,
|
||||||
gothCornerRadiusValue: 12,
|
gothCornerRadiusValue: 12,
|
||||||
|
|||||||
+35
-77
@@ -142,45 +142,25 @@ Item {
|
|||||||
fadeDpmsWindowLoader.item.cancelFade();
|
fadeDpmsWindowLoader.item.cancelFade();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function onRequestMonitorOn() {
|
|
||||||
if (!fadeDpmsWindowLoader.item)
|
|
||||||
return;
|
|
||||||
fadeDpmsWindowLoader.item.cancelFade();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
property string _barLayoutStateJson: {
|
|
||||||
const configs = SettingsData.barConfigs;
|
|
||||||
const mapped = configs.map(c => ({
|
|
||||||
id: c.id,
|
|
||||||
position: c.position,
|
|
||||||
autoHide: c.autoHide,
|
|
||||||
visible: c.visible
|
|
||||||
})).sort((a, b) => {
|
|
||||||
const aVertical = a.position === SettingsData.Position.Left || a.position === SettingsData.Position.Right;
|
|
||||||
const bVertical = b.position === SettingsData.Position.Left || b.position === SettingsData.Position.Right;
|
|
||||||
if (aVertical !== bVertical) {
|
|
||||||
return aVertical - bVertical;
|
|
||||||
}
|
|
||||||
return String(a.id).localeCompare(String(b.id));
|
|
||||||
});
|
|
||||||
return JSON.stringify(mapped);
|
|
||||||
}
|
|
||||||
|
|
||||||
on_BarLayoutStateJsonChanged: {
|
|
||||||
if (typeof dockRecreateDebounce !== "undefined") {
|
|
||||||
dockRecreateDebounce.restart();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Repeater {
|
Repeater {
|
||||||
id: dankBarRepeater
|
id: dankBarRepeater
|
||||||
model: ScriptModel {
|
model: ScriptModel {
|
||||||
id: barRepeaterModel
|
id: barRepeaterModel
|
||||||
values: JSON.parse(root._barLayoutStateJson)
|
values: {
|
||||||
|
const configs = SettingsData.barConfigs;
|
||||||
|
return configs.map(c => ({
|
||||||
|
id: c.id,
|
||||||
|
position: c.position
|
||||||
|
})).sort((a, b) => {
|
||||||
|
const aVertical = a.position === SettingsData.Position.Left || a.position === SettingsData.Position.Right;
|
||||||
|
const bVertical = b.position === SettingsData.Position.Left || b.position === SettingsData.Position.Right;
|
||||||
|
return aVertical - bVertical;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
property var hyprlandOverviewLoaderRef: hyprlandOverviewLoader
|
property var hyprlandOverviewLoaderRef: hyprlandOverviewLoader
|
||||||
@@ -227,6 +207,13 @@ Item {
|
|||||||
PolkitService.polkitAvailable;
|
PolkitService.polkitAvailable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: SettingsData
|
||||||
|
function onBarConfigsChanged() {
|
||||||
|
dockRecreateDebounce.restart();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Loader {
|
Loader {
|
||||||
id: dockLoader
|
id: dockLoader
|
||||||
active: root.dockEnabled
|
active: root.dockEnabled
|
||||||
@@ -278,7 +265,6 @@ Item {
|
|||||||
sourceComponent: Component {
|
sourceComponent: Component {
|
||||||
DankDashPopout {
|
DankDashPopout {
|
||||||
id: dankDashPopout
|
id: dankDashPopout
|
||||||
onPopoutClosed: PopoutService.unloadDankDash()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -298,13 +284,8 @@ Item {
|
|||||||
|
|
||||||
active: false
|
active: false
|
||||||
|
|
||||||
Component.onCompleted: {
|
|
||||||
PopoutService.notificationCenterLoader = notificationCenterLoader;
|
|
||||||
}
|
|
||||||
|
|
||||||
NotificationCenterPopout {
|
NotificationCenterPopout {
|
||||||
id: notificationCenter
|
id: notificationCenter
|
||||||
onPopoutClosed: PopoutService.unloadNotificationCenter()
|
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
PopoutService.notificationCenterPopout = notificationCenter;
|
PopoutService.notificationCenterPopout = notificationCenter;
|
||||||
@@ -328,15 +309,10 @@ Item {
|
|||||||
property var modalRef: colorPickerModal
|
property var modalRef: colorPickerModal
|
||||||
property LazyLoader powerModalLoaderRef: powerMenuModalLoader
|
property LazyLoader powerModalLoaderRef: powerMenuModalLoader
|
||||||
|
|
||||||
Component.onCompleted: {
|
|
||||||
PopoutService.controlCenterLoader = controlCenterLoader;
|
|
||||||
}
|
|
||||||
|
|
||||||
ControlCenterPopout {
|
ControlCenterPopout {
|
||||||
id: controlCenterPopout
|
id: controlCenterPopout
|
||||||
colorPickerModal: controlCenterLoader.modalRef
|
colorPickerModal: controlCenterLoader.modalRef
|
||||||
powerMenuModalLoader: controlCenterLoader.powerModalLoaderRef
|
powerMenuModalLoader: controlCenterLoader.powerModalLoaderRef
|
||||||
onPopoutClosed: PopoutService.unloadControlCenter()
|
|
||||||
|
|
||||||
onLockRequested: {
|
onLockRequested: {
|
||||||
lock.activate();
|
lock.activate();
|
||||||
@@ -365,6 +341,23 @@ Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LazyLoader {
|
||||||
|
id: wifiQRCodeModalLoader
|
||||||
|
active: false
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
PopoutService.wifiQRCodeModalLoader = wifiQRCodeModalLoader;
|
||||||
|
}
|
||||||
|
|
||||||
|
WifiQRCodeModal {
|
||||||
|
id: wifiQRCodeModalItem
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
PopoutService.wifiQRCodeModal = wifiQRCodeModalItem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
LazyLoader {
|
LazyLoader {
|
||||||
id: polkitAuthModalLoader
|
id: polkitAuthModalLoader
|
||||||
active: false
|
active: false
|
||||||
@@ -444,13 +437,8 @@ Item {
|
|||||||
|
|
||||||
active: false
|
active: false
|
||||||
|
|
||||||
Component.onCompleted: {
|
|
||||||
PopoutService.batteryPopoutLoader = batteryPopoutLoader;
|
|
||||||
}
|
|
||||||
|
|
||||||
BatteryPopout {
|
BatteryPopout {
|
||||||
id: batteryPopout
|
id: batteryPopout
|
||||||
onPopoutClosed: PopoutService.unloadBattery()
|
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
PopoutService.batteryPopout = batteryPopout;
|
PopoutService.batteryPopout = batteryPopout;
|
||||||
@@ -463,13 +451,8 @@ Item {
|
|||||||
|
|
||||||
active: false
|
active: false
|
||||||
|
|
||||||
Component.onCompleted: {
|
|
||||||
PopoutService.layoutPopoutLoader = layoutPopoutLoader;
|
|
||||||
}
|
|
||||||
|
|
||||||
DWLLayoutPopout {
|
DWLLayoutPopout {
|
||||||
id: layoutPopout
|
id: layoutPopout
|
||||||
onPopoutClosed: PopoutService.unloadLayoutPopout()
|
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
PopoutService.layoutPopout = layoutPopout;
|
PopoutService.layoutPopout = layoutPopout;
|
||||||
@@ -482,13 +465,8 @@ Item {
|
|||||||
|
|
||||||
active: false
|
active: false
|
||||||
|
|
||||||
Component.onCompleted: {
|
|
||||||
PopoutService.vpnPopoutLoader = vpnPopoutLoader;
|
|
||||||
}
|
|
||||||
|
|
||||||
VpnPopout {
|
VpnPopout {
|
||||||
id: vpnPopout
|
id: vpnPopout
|
||||||
onPopoutClosed: PopoutService.unloadVpn()
|
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
PopoutService.vpnPopout = vpnPopout;
|
PopoutService.vpnPopout = vpnPopout;
|
||||||
@@ -501,13 +479,8 @@ Item {
|
|||||||
|
|
||||||
active: false
|
active: false
|
||||||
|
|
||||||
Component.onCompleted: {
|
|
||||||
PopoutService.processListPopoutLoader = processListPopoutLoader;
|
|
||||||
}
|
|
||||||
|
|
||||||
ProcessListPopout {
|
ProcessListPopout {
|
||||||
id: processListPopout
|
id: processListPopout
|
||||||
onPopoutClosed: PopoutService.unloadProcessListPopout()
|
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
PopoutService.processListPopout = processListPopout;
|
PopoutService.processListPopout = processListPopout;
|
||||||
@@ -550,13 +523,8 @@ Item {
|
|||||||
|
|
||||||
active: false
|
active: false
|
||||||
|
|
||||||
Component.onCompleted: {
|
|
||||||
PopoutService.appDrawerLoader = appDrawerLoader;
|
|
||||||
}
|
|
||||||
|
|
||||||
AppDrawerPopout {
|
AppDrawerPopout {
|
||||||
id: appDrawerPopout
|
id: appDrawerPopout
|
||||||
onPopoutClosed: PopoutService.unloadAppDrawer()
|
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
PopoutService.appDrawerPopout = appDrawerPopout;
|
PopoutService.appDrawerPopout = appDrawerPopout;
|
||||||
@@ -588,13 +556,8 @@ Item {
|
|||||||
|
|
||||||
active: false
|
active: false
|
||||||
|
|
||||||
Component.onCompleted: {
|
|
||||||
PopoutService.clipboardHistoryPopoutLoader = clipboardHistoryPopoutLoader;
|
|
||||||
}
|
|
||||||
|
|
||||||
ClipboardHistoryPopout {
|
ClipboardHistoryPopout {
|
||||||
id: clipboardHistoryPopout
|
id: clipboardHistoryPopout
|
||||||
onPopoutClosed: PopoutService.unloadClipboardHistoryPopout()
|
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
PopoutService.clipboardHistoryPopout = clipboardHistoryPopout;
|
PopoutService.clipboardHistoryPopout = clipboardHistoryPopout;
|
||||||
@@ -769,13 +732,8 @@ Item {
|
|||||||
|
|
||||||
active: false
|
active: false
|
||||||
|
|
||||||
Component.onCompleted: {
|
|
||||||
PopoutService.systemUpdateLoader = systemUpdateLoader;
|
|
||||||
}
|
|
||||||
|
|
||||||
SystemUpdatePopout {
|
SystemUpdatePopout {
|
||||||
id: systemUpdatePopout
|
id: systemUpdatePopout
|
||||||
onPopoutClosed: PopoutService.unloadSystemUpdate()
|
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
PopoutService.systemUpdatePopout = systemUpdatePopout;
|
PopoutService.systemUpdatePopout = systemUpdatePopout;
|
||||||
|
|||||||
@@ -162,6 +162,11 @@ Item {
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
property string fileSearchType: "all"
|
||||||
|
property string fileSearchExt: ""
|
||||||
|
property string fileSearchFolder: ""
|
||||||
|
property string fileSearchSort: "score"
|
||||||
|
|
||||||
property string pluginFilter: ""
|
property string pluginFilter: ""
|
||||||
property string activePluginName: ""
|
property string activePluginName: ""
|
||||||
property var activePluginCategories: []
|
property var activePluginCategories: []
|
||||||
@@ -346,6 +351,10 @@ Item {
|
|||||||
previousSearchMode = "all";
|
previousSearchMode = "all";
|
||||||
autoSwitchedToFiles = false;
|
autoSwitchedToFiles = false;
|
||||||
isFileSearching = false;
|
isFileSearching = false;
|
||||||
|
fileSearchType = "all";
|
||||||
|
fileSearchExt = "";
|
||||||
|
fileSearchFolder = "";
|
||||||
|
fileSearchSort = "score";
|
||||||
sections = [];
|
sections = [];
|
||||||
flatModel = [];
|
flatModel = [];
|
||||||
selectedFlatIndex = 0;
|
selectedFlatIndex = 0;
|
||||||
@@ -399,6 +408,34 @@ Item {
|
|||||||
performSearch();
|
performSearch();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setFileSearchType(type) {
|
||||||
|
if (fileSearchType === type)
|
||||||
|
return;
|
||||||
|
fileSearchType = type;
|
||||||
|
performFileSearch();
|
||||||
|
}
|
||||||
|
|
||||||
|
function setFileSearchExt(ext) {
|
||||||
|
if (fileSearchExt === ext)
|
||||||
|
return;
|
||||||
|
fileSearchExt = ext;
|
||||||
|
performFileSearch();
|
||||||
|
}
|
||||||
|
|
||||||
|
function setFileSearchFolder(folder) {
|
||||||
|
if (fileSearchFolder === folder)
|
||||||
|
return;
|
||||||
|
fileSearchFolder = folder;
|
||||||
|
performFileSearch();
|
||||||
|
}
|
||||||
|
|
||||||
|
function setFileSearchSort(sort) {
|
||||||
|
if (fileSearchSort === sort)
|
||||||
|
return;
|
||||||
|
fileSearchSort = sort;
|
||||||
|
performFileSearch();
|
||||||
|
}
|
||||||
|
|
||||||
function clearPluginFilter() {
|
function clearPluginFilter() {
|
||||||
if (pluginFilter) {
|
if (pluginFilter) {
|
||||||
pluginFilter = "";
|
pluginFilter = "";
|
||||||
@@ -827,10 +864,20 @@ Item {
|
|||||||
var params = {
|
var params = {
|
||||||
limit: 20,
|
limit: 20,
|
||||||
fuzzy: true,
|
fuzzy: true,
|
||||||
sort: "score",
|
sort: fileSearchSort || "score",
|
||||||
desc: true
|
desc: true
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (DSearchService.supportsTypeFilter) {
|
||||||
|
params.type = (fileSearchType && fileSearchType !== "all") ? fileSearchType : "all";
|
||||||
|
}
|
||||||
|
if (fileSearchExt) {
|
||||||
|
params.ext = fileSearchExt;
|
||||||
|
}
|
||||||
|
if (fileSearchFolder) {
|
||||||
|
params.folder = fileSearchFolder;
|
||||||
|
}
|
||||||
|
|
||||||
DSearchService.search(fileQuery, params, function (response) {
|
DSearchService.search(fileQuery, params, function (response) {
|
||||||
isFileSearching = false;
|
isFileSearching = false;
|
||||||
if (response.error)
|
if (response.error)
|
||||||
@@ -840,34 +887,73 @@ Item {
|
|||||||
|
|
||||||
for (var i = 0; i < hits.length; i++) {
|
for (var i = 0; i < hits.length; i++) {
|
||||||
var hit = hits[i];
|
var hit = hits[i];
|
||||||
|
var docTypes = hit.locations?.doc_type;
|
||||||
|
var isDir = docTypes ? !!docTypes["dir"] : false;
|
||||||
fileItems.push(transformFileResult({
|
fileItems.push(transformFileResult({
|
||||||
path: hit.id || "",
|
path: hit.id || "",
|
||||||
score: hit.score || 0
|
score: hit.score || 0,
|
||||||
|
is_dir: isDir
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
var fileSection = {
|
var fileSections = [];
|
||||||
|
var showType = fileSearchType || "all";
|
||||||
|
|
||||||
|
if (showType === "all" && DSearchService.supportsTypeFilter) {
|
||||||
|
var onlyFiles = [];
|
||||||
|
var onlyDirs = [];
|
||||||
|
for (var j = 0; j < fileItems.length; j++) {
|
||||||
|
if (fileItems[j].data?.is_dir)
|
||||||
|
onlyDirs.push(fileItems[j]);
|
||||||
|
else
|
||||||
|
onlyFiles.push(fileItems[j]);
|
||||||
|
}
|
||||||
|
if (onlyFiles.length > 0) {
|
||||||
|
fileSections.push({
|
||||||
id: "files",
|
id: "files",
|
||||||
title: I18n.tr("Files"),
|
title: I18n.tr("Files"),
|
||||||
|
icon: "insert_drive_file",
|
||||||
|
priority: 4,
|
||||||
|
items: onlyFiles,
|
||||||
|
collapsed: collapsedSections["files"] || false,
|
||||||
|
flatStartIndex: 0
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (onlyDirs.length > 0) {
|
||||||
|
fileSections.push({
|
||||||
|
id: "folders",
|
||||||
|
title: I18n.tr("Folders"),
|
||||||
icon: "folder",
|
icon: "folder",
|
||||||
|
priority: 4.1,
|
||||||
|
items: onlyDirs,
|
||||||
|
collapsed: collapsedSections["folders"] || false,
|
||||||
|
flatStartIndex: 0
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
var filesIcon = showType === "dir" ? "folder" : showType === "file" ? "insert_drive_file" : "folder";
|
||||||
|
var filesTitle = showType === "dir" ? I18n.tr("Folders") : I18n.tr("Files");
|
||||||
|
if (fileItems.length > 0) {
|
||||||
|
fileSections.push({
|
||||||
|
id: "files",
|
||||||
|
title: filesTitle,
|
||||||
|
icon: filesIcon,
|
||||||
priority: 4,
|
priority: 4,
|
||||||
items: fileItems,
|
items: fileItems,
|
||||||
collapsed: collapsedSections["files"] || false,
|
collapsed: collapsedSections["files"] || false,
|
||||||
flatStartIndex: 0
|
flatStartIndex: 0
|
||||||
};
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var newSections;
|
var newSections;
|
||||||
if (searchMode === "files") {
|
if (searchMode === "files") {
|
||||||
newSections = fileItems.length > 0 ? [fileSection] : [];
|
newSections = fileSections;
|
||||||
} else {
|
} else {
|
||||||
var existingNonFile = sections.filter(function (s) {
|
var existingNonFile = sections.filter(function (s) {
|
||||||
return s.id !== "files";
|
return s.id !== "files" && s.id !== "folders";
|
||||||
});
|
});
|
||||||
if (fileItems.length > 0) {
|
newSections = existingNonFile.concat(fileSections);
|
||||||
newSections = existingNonFile.concat([fileSection]);
|
|
||||||
} else {
|
|
||||||
newSections = existingNonFile;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
newSections.sort(function (a, b) {
|
newSections.sort(function (a, b) {
|
||||||
return a.priority - b.priority;
|
return a.priority - b.priority;
|
||||||
@@ -913,7 +999,7 @@ Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function transformFileResult(file) {
|
function transformFileResult(file) {
|
||||||
return Transform.transformFileResult(file, I18n.tr("Open"), I18n.tr("Open folder"), I18n.tr("Copy path"));
|
return Transform.transformFileResult(file, I18n.tr("Open"), I18n.tr("Open folder"), I18n.tr("Copy path"), I18n.tr("Open in terminal"));
|
||||||
}
|
}
|
||||||
|
|
||||||
function detectTrigger(query) {
|
function detectTrigger(query) {
|
||||||
@@ -1581,6 +1667,9 @@ Item {
|
|||||||
case "copy_path":
|
case "copy_path":
|
||||||
copyToClipboard(item.data.path);
|
copyToClipboard(item.data.path);
|
||||||
break;
|
break;
|
||||||
|
case "open_terminal":
|
||||||
|
openTerminal(item.data.path);
|
||||||
|
break;
|
||||||
case "copy":
|
case "copy":
|
||||||
copyToClipboard(item.name);
|
copyToClipboard(item.name);
|
||||||
break;
|
break;
|
||||||
@@ -1662,6 +1751,16 @@ Item {
|
|||||||
Qt.openUrlExternally("file://" + folder);
|
Qt.openUrlExternally("file://" + folder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function openTerminal(path) {
|
||||||
|
if (!path)
|
||||||
|
return;
|
||||||
|
var terminal = Quickshell.env("TERMINAL") || "xterm";
|
||||||
|
Quickshell.execDetached({
|
||||||
|
command: [terminal],
|
||||||
|
workingDirectory: path
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function copyToClipboard(text) {
|
function copyToClipboard(text) {
|
||||||
if (!text)
|
if (!text)
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -107,6 +107,10 @@ Item {
|
|||||||
spotlightContent.controller.activePluginId = "";
|
spotlightContent.controller.activePluginId = "";
|
||||||
spotlightContent.controller.activePluginName = "";
|
spotlightContent.controller.activePluginName = "";
|
||||||
spotlightContent.controller.pluginFilter = "";
|
spotlightContent.controller.pluginFilter = "";
|
||||||
|
spotlightContent.controller.fileSearchType = "all";
|
||||||
|
spotlightContent.controller.fileSearchExt = "";
|
||||||
|
spotlightContent.controller.fileSearchFolder = "";
|
||||||
|
spotlightContent.controller.fileSearchSort = "score";
|
||||||
spotlightContent.controller.collapsedSections = {};
|
spotlightContent.controller.collapsedSections = {};
|
||||||
spotlightContent.controller.selectedFlatIndex = 0;
|
spotlightContent.controller.selectedFlatIndex = 0;
|
||||||
spotlightContent.controller.selectedItem = null;
|
spotlightContent.controller.selectedItem = null;
|
||||||
|
|||||||
@@ -116,31 +116,43 @@ function transformBuiltInLauncherItem(item, pluginId, openLabel) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function transformFileResult(file, openLabel, openFolderLabel, copyPathLabel) {
|
function transformFileResult(file, openLabel, openFolderLabel, copyPathLabel, openTerminalLabel) {
|
||||||
var filename = file.path ? file.path.split("/").pop() : "";
|
var filename = file.path ? file.path.split("/").pop() : "";
|
||||||
var dirname = file.path ? file.path.substring(0, file.path.lastIndexOf("/")) : "";
|
var dirname = file.path ? file.path.substring(0, file.path.lastIndexOf("/")) : "";
|
||||||
|
var isDir = file.is_dir || false;
|
||||||
|
|
||||||
|
var actions = [];
|
||||||
|
if (isDir) {
|
||||||
|
if (openTerminalLabel) {
|
||||||
|
actions.push({
|
||||||
|
name: openTerminalLabel,
|
||||||
|
icon: "terminal",
|
||||||
|
action: "open_terminal"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
actions.push({
|
||||||
|
name: openFolderLabel,
|
||||||
|
icon: "folder_open",
|
||||||
|
action: "open_folder"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
actions.push({
|
||||||
|
name: copyPathLabel,
|
||||||
|
icon: "content_copy",
|
||||||
|
action: "copy_path"
|
||||||
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
id: file.path || "",
|
id: file.path || "",
|
||||||
type: "file",
|
type: "file",
|
||||||
name: filename,
|
name: filename,
|
||||||
subtitle: dirname,
|
subtitle: dirname,
|
||||||
icon: Utils.getFileIcon(filename),
|
icon: isDir ? "folder" : Utils.getFileIcon(filename),
|
||||||
iconType: "material",
|
iconType: "material",
|
||||||
section: "files",
|
section: "files",
|
||||||
data: file,
|
data: file,
|
||||||
actions: [
|
actions: actions,
|
||||||
{
|
|
||||||
name: openFolderLabel,
|
|
||||||
icon: "folder_open",
|
|
||||||
action: "open_folder"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: copyPathLabel,
|
|
||||||
icon: "content_copy",
|
|
||||||
action: "copy_path"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
primaryAction: {
|
primaryAction: {
|
||||||
name: openLabel,
|
name: openLabel,
|
||||||
icon: "open_in_new",
|
icon: "open_in_new",
|
||||||
|
|||||||
@@ -549,8 +549,151 @@ FocusScope {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
id: fileFilterRow
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: parent.height - searchField.height - categoryRow.height - actionPanel.height - Theme.spacingXS * (categoryRow.visible ? 3 : 2)
|
height: showFileFilters ? fileFilterContent.height : 0
|
||||||
|
visible: showFileFilters
|
||||||
|
|
||||||
|
readonly property bool showFileFilters: controller.searchMode === "files"
|
||||||
|
|
||||||
|
Behavior on height {
|
||||||
|
NumberAnimation {
|
||||||
|
duration: Theme.shortDuration
|
||||||
|
easing.type: Theme.standardEasing
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Row {
|
||||||
|
id: fileFilterContent
|
||||||
|
width: parent.width
|
||||||
|
spacing: Theme.spacingS
|
||||||
|
|
||||||
|
Row {
|
||||||
|
id: typeChips
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
spacing: 2
|
||||||
|
visible: DSearchService.supportsTypeFilter
|
||||||
|
|
||||||
|
Repeater {
|
||||||
|
model: [
|
||||||
|
{
|
||||||
|
id: "all",
|
||||||
|
label: I18n.tr("All"),
|
||||||
|
icon: "search"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "file",
|
||||||
|
label: I18n.tr("Files"),
|
||||||
|
icon: "insert_drive_file"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "dir",
|
||||||
|
label: I18n.tr("Folders"),
|
||||||
|
icon: "folder"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
required property var modelData
|
||||||
|
required property int index
|
||||||
|
|
||||||
|
width: chipContent.width + Theme.spacingM * 2
|
||||||
|
height: sortDropdown.height
|
||||||
|
radius: Theme.cornerRadius
|
||||||
|
color: controller.fileSearchType === modelData.id || chipArea.containsMouse ? Theme.primaryContainer : "transparent"
|
||||||
|
|
||||||
|
Row {
|
||||||
|
id: chipContent
|
||||||
|
anchors.centerIn: parent
|
||||||
|
spacing: Theme.spacingXS
|
||||||
|
|
||||||
|
DankIcon {
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
name: modelData.icon
|
||||||
|
size: 14
|
||||||
|
color: controller.fileSearchType === modelData.id ? Theme.primary : Theme.surfaceVariantText
|
||||||
|
}
|
||||||
|
|
||||||
|
StyledText {
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
text: modelData.label
|
||||||
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
|
color: controller.fileSearchType === modelData.id ? Theme.primary : Theme.surfaceText
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
id: chipArea
|
||||||
|
anchors.fill: parent
|
||||||
|
hoverEnabled: true
|
||||||
|
cursorShape: Qt.PointingHandCursor
|
||||||
|
onClicked: controller.setFileSearchType(modelData.id)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
width: 1
|
||||||
|
height: 20
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
color: Theme.outlineMedium
|
||||||
|
visible: typeChips.visible
|
||||||
|
}
|
||||||
|
|
||||||
|
DankDropdown {
|
||||||
|
id: sortDropdown
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
width: Math.min(130, parent.width / 3)
|
||||||
|
compactMode: true
|
||||||
|
dropdownWidth: 130
|
||||||
|
popupWidth: 150
|
||||||
|
maxPopupHeight: 200
|
||||||
|
currentValue: {
|
||||||
|
switch (controller.fileSearchSort) {
|
||||||
|
case "score":
|
||||||
|
return I18n.tr("Score");
|
||||||
|
case "name":
|
||||||
|
return I18n.tr("Name");
|
||||||
|
case "modified":
|
||||||
|
return I18n.tr("Modified");
|
||||||
|
case "size":
|
||||||
|
return I18n.tr("Size");
|
||||||
|
default:
|
||||||
|
return I18n.tr("Score");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
options: [I18n.tr("Score"), I18n.tr("Name"), I18n.tr("Modified"), I18n.tr("Size")]
|
||||||
|
|
||||||
|
onValueChanged: value => {
|
||||||
|
var sortMap = {};
|
||||||
|
sortMap[I18n.tr("Score")] = "score";
|
||||||
|
sortMap[I18n.tr("Name")] = "name";
|
||||||
|
sortMap[I18n.tr("Modified")] = "modified";
|
||||||
|
sortMap[I18n.tr("Size")] = "size";
|
||||||
|
controller.setFileSearchSort(sortMap[value] || "score");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DankTextField {
|
||||||
|
id: extFilterField
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
width: Math.min(100, parent.width / 4)
|
||||||
|
height: sortDropdown.height
|
||||||
|
placeholderText: I18n.tr("ext")
|
||||||
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
|
showClearButton: text.length > 0
|
||||||
|
|
||||||
|
onTextChanged: {
|
||||||
|
controller.setFileSearchExt(text.trim());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
width: parent.width
|
||||||
|
height: parent.height - searchField.height - categoryRow.height - fileFilterRow.height - actionPanel.height - Theme.spacingXS * ((categoryRow.visible ? 1 : 0) + (fileFilterRow.visible ? 1 : 0) + 2)
|
||||||
opacity: root.parentModal?.isClosing ? 0 : 1
|
opacity: root.parentModal?.isClosing ? 0 : 1
|
||||||
|
|
||||||
ResultsList {
|
ResultsList {
|
||||||
@@ -586,6 +729,9 @@ FocusScope {
|
|||||||
function onSearchQueryRequested(query) {
|
function onSearchQueryRequested(query) {
|
||||||
searchField.text = query;
|
searchField.text = query;
|
||||||
}
|
}
|
||||||
|
function onModeChanged() {
|
||||||
|
extFilterField.text = "";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FocusScope {
|
FocusScope {
|
||||||
|
|||||||
@@ -113,6 +113,7 @@ Rectangle {
|
|||||||
font.family: Theme.fontFamily
|
font.family: Theme.fontFamily
|
||||||
color: Theme.surfaceVariantText
|
color: Theme.surfaceVariantText
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
|
clip: true
|
||||||
visible: (root.item?.subtitle ?? "").length > 0
|
visible: (root.item?.subtitle ?? "").length > 0
|
||||||
horizontalAlignment: Text.AlignLeft
|
horizontalAlignment: Text.AlignLeft
|
||||||
}
|
}
|
||||||
@@ -181,7 +182,7 @@ Rectangle {
|
|||||||
case "plugin":
|
case "plugin":
|
||||||
return I18n.tr("Plugin");
|
return I18n.tr("Plugin");
|
||||||
case "file":
|
case "file":
|
||||||
return I18n.tr("File");
|
return root.item.data?.is_dir ? I18n.tr("Folder") : I18n.tr("File");
|
||||||
default:
|
default:
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -435,7 +435,15 @@ Item {
|
|||||||
var mode = root.controller?.searchMode ?? "all";
|
var mode = root.controller?.searchMode ?? "all";
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case "files":
|
case "files":
|
||||||
|
var fileType = root.controller?.fileSearchType ?? "all";
|
||||||
|
switch (fileType) {
|
||||||
|
case "dir":
|
||||||
return "folder_open";
|
return "folder_open";
|
||||||
|
case "file":
|
||||||
|
return "insert_drive_file";
|
||||||
|
default:
|
||||||
|
return "folder_open";
|
||||||
|
}
|
||||||
case "plugins":
|
case "plugins":
|
||||||
return "extension";
|
return "extension";
|
||||||
case "apps":
|
case "apps":
|
||||||
@@ -465,7 +473,15 @@ Item {
|
|||||||
return I18n.tr("Type to search files");
|
return I18n.tr("Type to search files");
|
||||||
if (root.controller.searchQuery.length < 2)
|
if (root.controller.searchQuery.length < 2)
|
||||||
return I18n.tr("Type at least 2 characters");
|
return I18n.tr("Type at least 2 characters");
|
||||||
|
var fileType = root.controller?.fileSearchType ?? "all";
|
||||||
|
switch (fileType) {
|
||||||
|
case "dir":
|
||||||
|
return I18n.tr("No folders found");
|
||||||
|
case "file":
|
||||||
return I18n.tr("No files found");
|
return I18n.tr("No files found");
|
||||||
|
default:
|
||||||
|
return I18n.tr("No results found");
|
||||||
|
}
|
||||||
case "plugins":
|
case "plugins":
|
||||||
return hasQuery ? I18n.tr("No plugin results") : I18n.tr("Browse or search plugins");
|
return hasQuery ? I18n.tr("No plugin results") : I18n.tr("Browse or search plugins");
|
||||||
case "apps":
|
case "apps":
|
||||||
|
|||||||
@@ -0,0 +1,170 @@
|
|||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import QtQuick.Effects
|
||||||
|
import Quickshell
|
||||||
|
import Quickshell.Io
|
||||||
|
import qs.Modals.Common
|
||||||
|
import qs.Modals.FileBrowser
|
||||||
|
import qs.Common
|
||||||
|
import qs.Services
|
||||||
|
import qs.Widgets
|
||||||
|
|
||||||
|
DankModal {
|
||||||
|
id: root
|
||||||
|
visible: false
|
||||||
|
layerNamespace: "dms:wifi-qrcode"
|
||||||
|
|
||||||
|
property bool disablePopupTransparency: true
|
||||||
|
property string wifiSSID: ""
|
||||||
|
property string themedQrCodePath: ""
|
||||||
|
property string normalQrCodePath: ""
|
||||||
|
modalWidth: 420
|
||||||
|
modalHeight: 480
|
||||||
|
onBackgroundClicked: hide()
|
||||||
|
onOpened: {
|
||||||
|
Qt.callLater(() => {
|
||||||
|
modalFocusScope.forceActiveFocus();
|
||||||
|
contentLoader.item.wifiSSID = wifiSSID;
|
||||||
|
contentLoader.item.themedQrCodePath = themedQrCodePath;
|
||||||
|
contentLoader.item.saveBrowserLoader = saveBrowserLoader;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function show(ssid) {
|
||||||
|
wifiSSID = ssid;
|
||||||
|
fetchNetworkQRCode(ssid);
|
||||||
|
}
|
||||||
|
|
||||||
|
function hide() {
|
||||||
|
if (themedQrCodePath !== "") {
|
||||||
|
deleteQRCodeFile(themedQrCodePath);
|
||||||
|
}
|
||||||
|
if (normalQrCodePath !== "") {
|
||||||
|
deleteQRCodeFile(normalQrCodePath);
|
||||||
|
}
|
||||||
|
close();
|
||||||
|
}
|
||||||
|
|
||||||
|
function fetchNetworkQRCode(ssid) {
|
||||||
|
// TODO: Add loading UI?
|
||||||
|
|
||||||
|
DMSService.sendRequest("network.qrcode", {
|
||||||
|
ssid: ssid
|
||||||
|
}, response => {
|
||||||
|
if (response.error) {
|
||||||
|
ToastService.showError("Failed to fetch network QR code: ", JSON.stringify(response.error));
|
||||||
|
} else if (response.result) {
|
||||||
|
themedQrCodePath = response.result[0];
|
||||||
|
normalQrCodePath = response.result[1];
|
||||||
|
open();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function deleteQRCodeFile(path) {
|
||||||
|
DMSService.sendRequest("network.delete-qrcode", {
|
||||||
|
path: path
|
||||||
|
}, response => {
|
||||||
|
if (response.error) {
|
||||||
|
ToastService.showError(`Failed to remove QR code at ${path}: `, JSON.stringify(response.error));
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
LazyLoader {
|
||||||
|
id: saveBrowserLoader
|
||||||
|
active: false
|
||||||
|
|
||||||
|
FileBrowserSurfaceModal {
|
||||||
|
id: saveBrowser
|
||||||
|
|
||||||
|
browserTitle: I18n.tr("Save QR Code")
|
||||||
|
browserIcon: "qr_code"
|
||||||
|
browserType: "default"
|
||||||
|
fileExtensions: ["*.png"]
|
||||||
|
allowStacking: true
|
||||||
|
saveMode: true
|
||||||
|
defaultFileName: `${root.wifiSSID ?? "wifi-qrcode"}.png`
|
||||||
|
onFileSelected: path => {
|
||||||
|
const cleanPath = decodeURI(path.toString().replace(/^file:\/\//, ''));
|
||||||
|
const fileName = cleanPath.split('/').pop();
|
||||||
|
const fileUrl = "file://" + cleanPath;
|
||||||
|
|
||||||
|
copyQrCodeProcess.exec(["cp", root.normalQrCodePath, cleanPath, "-f"])
|
||||||
|
}
|
||||||
|
|
||||||
|
Process {
|
||||||
|
id: copyQrCodeProcess
|
||||||
|
stdout: StdioCollector {
|
||||||
|
onStreamFinished: {
|
||||||
|
saveBrowser.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
content: Component {
|
||||||
|
Item {
|
||||||
|
id: theItem
|
||||||
|
property alias themedQrCodePath: qrCodeImg.source
|
||||||
|
property var saveBrowserLoader: null
|
||||||
|
property string wifiSSID: ""
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
Column {
|
||||||
|
anchors.fill: parent
|
||||||
|
anchors.margins: Theme.spacingL
|
||||||
|
spacing: Theme.spacingL
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
id: modalTitle
|
||||||
|
width: parent.width
|
||||||
|
|
||||||
|
StyledText {
|
||||||
|
text: I18n.tr("WiFi QR code for ") + theItem.wifiSSID
|
||||||
|
font.pixelSize: Theme.fontSizeLarge
|
||||||
|
color: Theme.surfaceText
|
||||||
|
font.weight: Font.Bold
|
||||||
|
Layout.alignment: Qt.AlignLeft
|
||||||
|
}
|
||||||
|
|
||||||
|
DankActionButton {
|
||||||
|
iconName: "save"
|
||||||
|
iconSize: Theme.iconSize - 4
|
||||||
|
iconColor: Theme.surfaceText
|
||||||
|
onClicked: {
|
||||||
|
saveBrowserLoader.active = true;
|
||||||
|
if (saveBrowserLoader.item) {
|
||||||
|
saveBrowserLoader.item.open();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Layout.alignment: Qt.AlignRight
|
||||||
|
}
|
||||||
|
|
||||||
|
DankActionButton {
|
||||||
|
iconName: "close"
|
||||||
|
iconSize: Theme.iconSize - 4
|
||||||
|
iconColor: Theme.surfaceText
|
||||||
|
onClicked: root.hide()
|
||||||
|
Layout.alignment: Qt.AlignRight
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Image {
|
||||||
|
id: qrCodeImg
|
||||||
|
height: parent.height - parent.spacing - modalTitle.height
|
||||||
|
width: height
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
|
||||||
|
MultiEffect {
|
||||||
|
source: qrCodeImg
|
||||||
|
anchors.fill: source
|
||||||
|
colorization: 1.0
|
||||||
|
colorizationColor: Theme.primary
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -85,12 +85,12 @@ Variants {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
if (typeof blurWallpaperWindow.updatesEnabled !== "undefined")
|
|
||||||
blurWallpaperWindow.updatesEnabled = Qt.binding(() => root.effectActive || root._renderSettling || currentWallpaper.status === Image.Loading || nextWallpaper.status === Image.Loading);
|
|
||||||
|
|
||||||
if (!source) {
|
if (!source) {
|
||||||
root._renderSettling = false;
|
isInitialized = true;
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
const formattedSource = source.startsWith("file://") ? source : encodeFileUrl(source);
|
||||||
|
setWallpaperImmediate(formattedSource);
|
||||||
isInitialized = true;
|
isInitialized = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -98,25 +98,8 @@ Variants {
|
|||||||
property real transitionProgress: 0
|
property real transitionProgress: 0
|
||||||
readonly property bool transitioning: transitionAnimation.running
|
readonly property bool transitioning: transitionAnimation.running
|
||||||
property bool effectActive: false
|
property bool effectActive: false
|
||||||
property bool _renderSettling: true
|
|
||||||
property bool useNextForEffect: false
|
property bool useNextForEffect: false
|
||||||
|
|
||||||
Connections {
|
|
||||||
target: currentWallpaper
|
|
||||||
function onStatusChanged() {
|
|
||||||
if (currentWallpaper.status === Image.Ready) {
|
|
||||||
root._renderSettling = true;
|
|
||||||
renderSettleTimer.restart();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Timer {
|
|
||||||
id: renderSettleTimer
|
|
||||||
interval: 100
|
|
||||||
onTriggered: root._renderSettling = false
|
|
||||||
}
|
|
||||||
|
|
||||||
onSourceChanged: {
|
onSourceChanged: {
|
||||||
if (!source || source.startsWith("#")) {
|
if (!source || source.startsWith("#")) {
|
||||||
setWallpaperImmediate("");
|
setWallpaperImmediate("");
|
||||||
@@ -141,8 +124,6 @@ Variants {
|
|||||||
transitionAnimation.stop();
|
transitionAnimation.stop();
|
||||||
root.transitionProgress = 0.0;
|
root.transitionProgress = 0.0;
|
||||||
root.effectActive = false;
|
root.effectActive = false;
|
||||||
root._renderSettling = true;
|
|
||||||
renderSettleTimer.restart();
|
|
||||||
currentWallpaper.source = newSource;
|
currentWallpaper.source = newSource;
|
||||||
nextWallpaper.source = "";
|
nextWallpaper.source = "";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -651,6 +651,7 @@ Rectangle {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
|
id: pinButton
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.rightMargin: optionsButton.width + Theme.spacingM + Theme.spacingS
|
anchors.rightMargin: optionsButton.width + Theme.spacingM + Theme.spacingS
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
@@ -711,6 +712,19 @@ Rectangle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DankActionButton {
|
||||||
|
id: qrCodeButton
|
||||||
|
visible: modelData.secured && modelData.saved
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.rightMargin: optionsButton.width + pinWifiRow.width + 3 * Theme.spacingM + Theme.spacingS
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
iconName: "qr_code"
|
||||||
|
buttonSize: 28
|
||||||
|
onClicked: {
|
||||||
|
PopoutService.showWifiQRCodeModal(modelData.ssid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
DankRipple {
|
DankRipple {
|
||||||
id: wifiRipple
|
id: wifiRipple
|
||||||
cornerRadius: parent.radius
|
cornerRadius: parent.radius
|
||||||
@@ -719,7 +733,7 @@ Rectangle {
|
|||||||
MouseArea {
|
MouseArea {
|
||||||
id: networkMouseArea
|
id: networkMouseArea
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.rightMargin: optionsButton.width + Theme.spacingM + Theme.spacingS + pinWifiRow.width + Theme.spacingS * 4
|
anchors.rightMargin: optionsButton.width + pinWifiRow.width + (qrCodeButton.visible ? qrCodeButton.width : 0) + Theme.spacingS * 5 + Theme.spacingM
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
cursorShape: Qt.PointingHandCursor
|
cursorShape: Qt.PointingHandCursor
|
||||||
onPressed: mouse => wifiRipple.trigger(mouse.x, mouse.y)
|
onPressed: mouse => wifiRipple.trigger(mouse.x, mouse.y)
|
||||||
|
|||||||
@@ -21,82 +21,73 @@ Item {
|
|||||||
property alias centerWidgetsModel: centerWidgetsModel
|
property alias centerWidgetsModel: centerWidgetsModel
|
||||||
property alias rightWidgetsModel: rightWidgetsModel
|
property alias rightWidgetsModel: rightWidgetsModel
|
||||||
|
|
||||||
property string _leftWidgetsJson: {
|
|
||||||
root.barConfig;
|
|
||||||
const leftWidgets = root.barConfig?.leftWidgets || [];
|
|
||||||
const mapped = leftWidgets.map((w, index) => {
|
|
||||||
if (typeof w === "string") {
|
|
||||||
return {
|
|
||||||
widgetId: w,
|
|
||||||
id: w + "_" + index,
|
|
||||||
enabled: true
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
const obj = Object.assign({}, w);
|
|
||||||
obj.widgetId = w.id || w.widgetId;
|
|
||||||
obj.id = (w.id || w.widgetId) + "_" + index;
|
|
||||||
obj.enabled = w.enabled !== false;
|
|
||||||
return obj;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return JSON.stringify(mapped);
|
|
||||||
}
|
|
||||||
|
|
||||||
property string _centerWidgetsJson: {
|
|
||||||
root.barConfig;
|
|
||||||
const centerWidgets = root.barConfig?.centerWidgets || [];
|
|
||||||
const mapped = centerWidgets.map((w, index) => {
|
|
||||||
if (typeof w === "string") {
|
|
||||||
return {
|
|
||||||
widgetId: w,
|
|
||||||
id: w + "_" + index,
|
|
||||||
enabled: true
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
const obj = Object.assign({}, w);
|
|
||||||
obj.widgetId = w.id || w.widgetId;
|
|
||||||
obj.id = (w.id || w.widgetId) + "_" + index;
|
|
||||||
obj.enabled = w.enabled !== false;
|
|
||||||
return obj;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return JSON.stringify(mapped);
|
|
||||||
}
|
|
||||||
|
|
||||||
property string _rightWidgetsJson: {
|
|
||||||
root.barConfig;
|
|
||||||
const rightWidgets = root.barConfig?.rightWidgets || [];
|
|
||||||
const mapped = rightWidgets.map((w, index) => {
|
|
||||||
if (typeof w === "string") {
|
|
||||||
return {
|
|
||||||
widgetId: w,
|
|
||||||
id: w + "_" + index,
|
|
||||||
enabled: true
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
const obj = Object.assign({}, w);
|
|
||||||
obj.widgetId = w.id || w.widgetId;
|
|
||||||
obj.id = (w.id || w.widgetId) + "_" + index;
|
|
||||||
obj.enabled = w.enabled !== false;
|
|
||||||
return obj;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return JSON.stringify(mapped);
|
|
||||||
}
|
|
||||||
|
|
||||||
ScriptModel {
|
ScriptModel {
|
||||||
id: leftWidgetsModel
|
id: leftWidgetsModel
|
||||||
values: JSON.parse(root._leftWidgetsJson)
|
values: {
|
||||||
|
root.barConfig;
|
||||||
|
const leftWidgets = root.barConfig?.leftWidgets || [];
|
||||||
|
return leftWidgets.map((w, index) => {
|
||||||
|
if (typeof w === "string") {
|
||||||
|
return {
|
||||||
|
widgetId: w,
|
||||||
|
id: w + "_" + index,
|
||||||
|
enabled: true
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
const obj = Object.assign({}, w);
|
||||||
|
obj.widgetId = w.id || w.widgetId;
|
||||||
|
obj.id = (w.id || w.widgetId) + "_" + index;
|
||||||
|
obj.enabled = w.enabled !== false;
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ScriptModel {
|
ScriptModel {
|
||||||
id: centerWidgetsModel
|
id: centerWidgetsModel
|
||||||
values: JSON.parse(root._centerWidgetsJson)
|
values: {
|
||||||
|
root.barConfig;
|
||||||
|
const centerWidgets = root.barConfig?.centerWidgets || [];
|
||||||
|
return centerWidgets.map((w, index) => {
|
||||||
|
if (typeof w === "string") {
|
||||||
|
return {
|
||||||
|
widgetId: w,
|
||||||
|
id: w + "_" + index,
|
||||||
|
enabled: true
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
const obj = Object.assign({}, w);
|
||||||
|
obj.widgetId = w.id || w.widgetId;
|
||||||
|
obj.id = (w.id || w.widgetId) + "_" + index;
|
||||||
|
obj.enabled = w.enabled !== false;
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ScriptModel {
|
ScriptModel {
|
||||||
id: rightWidgetsModel
|
id: rightWidgetsModel
|
||||||
values: JSON.parse(root._rightWidgetsJson)
|
values: {
|
||||||
|
root.barConfig;
|
||||||
|
const rightWidgets = root.barConfig?.rightWidgets || [];
|
||||||
|
return rightWidgets.map((w, index) => {
|
||||||
|
if (typeof w === "string") {
|
||||||
|
return {
|
||||||
|
widgetId: w,
|
||||||
|
id: w + "_" + index,
|
||||||
|
enabled: true
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
const obj = Object.assign({}, w);
|
||||||
|
obj.widgetId = w.id || w.widgetId;
|
||||||
|
obj.id = (w.id || w.widgetId) + "_" + index;
|
||||||
|
obj.enabled = w.enabled !== false;
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function triggerControlCenterOnFocusedScreen() {
|
function triggerControlCenterOnFocusedScreen() {
|
||||||
|
|||||||
@@ -561,7 +561,10 @@ Item {
|
|||||||
axis: barWindow.axis
|
axis: barWindow.axis
|
||||||
section: topBarContent.getWidgetSection(parent)
|
section: topBarContent.getWidgetSection(parent)
|
||||||
parentScreen: barWindow.screen
|
parentScreen: barWindow.screen
|
||||||
popoutTarget: clipboardHistoryPopoutLoader.item ?? null
|
popoutTarget: {
|
||||||
|
clipboardHistoryPopoutLoader.active = true;
|
||||||
|
return clipboardHistoryPopoutLoader.item;
|
||||||
|
}
|
||||||
|
|
||||||
function openClipboardPopout(initialTab) {
|
function openClipboardPopout(initialTab) {
|
||||||
clipboardHistoryPopoutLoader.active = true;
|
clipboardHistoryPopoutLoader.active = true;
|
||||||
@@ -756,7 +759,10 @@ Item {
|
|||||||
barThickness: barWindow.effectiveBarThickness
|
barThickness: barWindow.effectiveBarThickness
|
||||||
widgetThickness: barWindow.widgetThickness
|
widgetThickness: barWindow.widgetThickness
|
||||||
section: topBarContent.getWidgetSection(parent) || "center"
|
section: topBarContent.getWidgetSection(parent) || "center"
|
||||||
popoutTarget: dankDashPopoutLoader.item ?? null
|
popoutTarget: {
|
||||||
|
dankDashPopoutLoader.active = true;
|
||||||
|
return dankDashPopoutLoader.item;
|
||||||
|
}
|
||||||
parentScreen: barWindow.screen
|
parentScreen: barWindow.screen
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
@@ -820,7 +826,10 @@ Item {
|
|||||||
barThickness: barWindow.effectiveBarThickness
|
barThickness: barWindow.effectiveBarThickness
|
||||||
widgetThickness: barWindow.widgetThickness
|
widgetThickness: barWindow.widgetThickness
|
||||||
section: topBarContent.getWidgetSection(parent) || "center"
|
section: topBarContent.getWidgetSection(parent) || "center"
|
||||||
popoutTarget: dankDashPopoutLoader.item ?? null
|
popoutTarget: {
|
||||||
|
dankDashPopoutLoader.active = true;
|
||||||
|
return dankDashPopoutLoader.item;
|
||||||
|
}
|
||||||
parentScreen: barWindow.screen
|
parentScreen: barWindow.screen
|
||||||
onClicked: {
|
onClicked: {
|
||||||
dankDashPopoutLoader.active = true;
|
dankDashPopoutLoader.active = true;
|
||||||
@@ -872,7 +881,10 @@ Item {
|
|||||||
barThickness: barWindow.effectiveBarThickness
|
barThickness: barWindow.effectiveBarThickness
|
||||||
widgetThickness: barWindow.widgetThickness
|
widgetThickness: barWindow.widgetThickness
|
||||||
section: topBarContent.getWidgetSection(parent) || "center"
|
section: topBarContent.getWidgetSection(parent) || "center"
|
||||||
popoutTarget: dankDashPopoutLoader.item ?? null
|
popoutTarget: {
|
||||||
|
dankDashPopoutLoader.active = true;
|
||||||
|
return dankDashPopoutLoader.item;
|
||||||
|
}
|
||||||
parentScreen: barWindow.screen
|
parentScreen: barWindow.screen
|
||||||
onClicked: {
|
onClicked: {
|
||||||
dankDashPopoutLoader.active = true;
|
dankDashPopoutLoader.active = true;
|
||||||
@@ -956,7 +968,10 @@ Item {
|
|||||||
widgetThickness: barWindow.widgetThickness
|
widgetThickness: barWindow.widgetThickness
|
||||||
axis: barWindow.axis
|
axis: barWindow.axis
|
||||||
section: topBarContent.getWidgetSection(parent) || "right"
|
section: topBarContent.getWidgetSection(parent) || "right"
|
||||||
popoutTarget: processListPopoutLoader.item ?? null
|
popoutTarget: {
|
||||||
|
processListPopoutLoader.active = true;
|
||||||
|
return processListPopoutLoader.item;
|
||||||
|
}
|
||||||
parentScreen: barWindow.screen
|
parentScreen: barWindow.screen
|
||||||
widgetData: parent.widgetData
|
widgetData: parent.widgetData
|
||||||
onCpuClicked: {
|
onCpuClicked: {
|
||||||
@@ -989,7 +1004,10 @@ Item {
|
|||||||
widgetThickness: barWindow.widgetThickness
|
widgetThickness: barWindow.widgetThickness
|
||||||
axis: barWindow.axis
|
axis: barWindow.axis
|
||||||
section: topBarContent.getWidgetSection(parent) || "right"
|
section: topBarContent.getWidgetSection(parent) || "right"
|
||||||
popoutTarget: processListPopoutLoader.item ?? null
|
popoutTarget: {
|
||||||
|
processListPopoutLoader.active = true;
|
||||||
|
return processListPopoutLoader.item;
|
||||||
|
}
|
||||||
parentScreen: barWindow.screen
|
parentScreen: barWindow.screen
|
||||||
widgetData: parent.widgetData
|
widgetData: parent.widgetData
|
||||||
onRamClicked: {
|
onRamClicked: {
|
||||||
@@ -1036,7 +1054,10 @@ Item {
|
|||||||
widgetThickness: barWindow.widgetThickness
|
widgetThickness: barWindow.widgetThickness
|
||||||
axis: barWindow.axis
|
axis: barWindow.axis
|
||||||
section: topBarContent.getWidgetSection(parent) || "right"
|
section: topBarContent.getWidgetSection(parent) || "right"
|
||||||
popoutTarget: processListPopoutLoader.item ?? null
|
popoutTarget: {
|
||||||
|
processListPopoutLoader.active = true;
|
||||||
|
return processListPopoutLoader.item;
|
||||||
|
}
|
||||||
parentScreen: barWindow.screen
|
parentScreen: barWindow.screen
|
||||||
widgetData: parent.widgetData
|
widgetData: parent.widgetData
|
||||||
onCpuTempClicked: {
|
onCpuTempClicked: {
|
||||||
@@ -1069,7 +1090,10 @@ Item {
|
|||||||
widgetThickness: barWindow.widgetThickness
|
widgetThickness: barWindow.widgetThickness
|
||||||
axis: barWindow.axis
|
axis: barWindow.axis
|
||||||
section: topBarContent.getWidgetSection(parent) || "right"
|
section: topBarContent.getWidgetSection(parent) || "right"
|
||||||
popoutTarget: processListPopoutLoader.item ?? null
|
popoutTarget: {
|
||||||
|
processListPopoutLoader.active = true;
|
||||||
|
return processListPopoutLoader.item;
|
||||||
|
}
|
||||||
parentScreen: barWindow.screen
|
parentScreen: barWindow.screen
|
||||||
widgetData: parent.widgetData
|
widgetData: parent.widgetData
|
||||||
onGpuTempClicked: {
|
onGpuTempClicked: {
|
||||||
@@ -1110,7 +1134,10 @@ Item {
|
|||||||
barThickness: barWindow.effectiveBarThickness
|
barThickness: barWindow.effectiveBarThickness
|
||||||
axis: barWindow.axis
|
axis: barWindow.axis
|
||||||
section: topBarContent.getWidgetSection(parent) || "right"
|
section: topBarContent.getWidgetSection(parent) || "right"
|
||||||
popoutTarget: notificationCenterLoader.item ?? null
|
popoutTarget: {
|
||||||
|
notificationCenterLoader.active = true;
|
||||||
|
return notificationCenterLoader.item;
|
||||||
|
}
|
||||||
parentScreen: barWindow.screen
|
parentScreen: barWindow.screen
|
||||||
onClicked: {
|
onClicked: {
|
||||||
notificationCenterLoader.active = true;
|
notificationCenterLoader.active = true;
|
||||||
@@ -1145,7 +1172,10 @@ Item {
|
|||||||
section: topBarContent.getWidgetSection(parent) || "right"
|
section: topBarContent.getWidgetSection(parent) || "right"
|
||||||
barSpacing: barConfig?.spacing ?? 4
|
barSpacing: barConfig?.spacing ?? 4
|
||||||
barConfig: topBarContent.barConfig
|
barConfig: topBarContent.barConfig
|
||||||
popoutTarget: batteryPopoutLoader.item ?? null
|
popoutTarget: {
|
||||||
|
batteryPopoutLoader.active = true;
|
||||||
|
return batteryPopoutLoader.item;
|
||||||
|
}
|
||||||
parentScreen: barWindow.screen
|
parentScreen: barWindow.screen
|
||||||
onToggleBatteryPopup: {
|
onToggleBatteryPopup: {
|
||||||
batteryPopoutLoader.active = true;
|
batteryPopoutLoader.active = true;
|
||||||
@@ -1178,7 +1208,10 @@ Item {
|
|||||||
barThickness: barWindow.effectiveBarThickness
|
barThickness: barWindow.effectiveBarThickness
|
||||||
axis: barWindow.axis
|
axis: barWindow.axis
|
||||||
section: topBarContent.getWidgetSection(parent) || "center"
|
section: topBarContent.getWidgetSection(parent) || "center"
|
||||||
popoutTarget: layoutPopoutLoader.item ?? null
|
popoutTarget: {
|
||||||
|
layoutPopoutLoader.active = true;
|
||||||
|
return layoutPopoutLoader.item;
|
||||||
|
}
|
||||||
parentScreen: barWindow.screen
|
parentScreen: barWindow.screen
|
||||||
onToggleLayoutPopup: {
|
onToggleLayoutPopup: {
|
||||||
layoutPopoutLoader.active = true;
|
layoutPopoutLoader.active = true;
|
||||||
@@ -1211,7 +1244,10 @@ Item {
|
|||||||
barSpacing: barConfig?.spacing ?? 4
|
barSpacing: barConfig?.spacing ?? 4
|
||||||
barConfig: topBarContent.barConfig
|
barConfig: topBarContent.barConfig
|
||||||
isAutoHideBar: topBarContent.barConfig?.autoHide ?? false
|
isAutoHideBar: topBarContent.barConfig?.autoHide ?? false
|
||||||
popoutTarget: vpnPopoutLoader.item ?? null
|
popoutTarget: {
|
||||||
|
vpnPopoutLoader.active = true;
|
||||||
|
return vpnPopoutLoader.item;
|
||||||
|
}
|
||||||
parentScreen: barWindow.screen
|
parentScreen: barWindow.screen
|
||||||
onToggleVpnPopup: {
|
onToggleVpnPopup: {
|
||||||
vpnPopoutLoader.active = true;
|
vpnPopoutLoader.active = true;
|
||||||
@@ -1245,7 +1281,10 @@ Item {
|
|||||||
barThickness: barWindow.effectiveBarThickness
|
barThickness: barWindow.effectiveBarThickness
|
||||||
axis: barWindow.axis
|
axis: barWindow.axis
|
||||||
section: topBarContent.getWidgetSection(parent) || "right"
|
section: topBarContent.getWidgetSection(parent) || "right"
|
||||||
popoutTarget: controlCenterLoader.item ?? null
|
popoutTarget: {
|
||||||
|
controlCenterLoader.active = true;
|
||||||
|
return controlCenterLoader.item;
|
||||||
|
}
|
||||||
parentScreen: barWindow.screen
|
parentScreen: barWindow.screen
|
||||||
screenName: barWindow.screen?.name || ""
|
screenName: barWindow.screen?.name || ""
|
||||||
screenModel: barWindow.screen?.model || ""
|
screenModel: barWindow.screen?.model || ""
|
||||||
@@ -1395,7 +1434,10 @@ Item {
|
|||||||
barThickness: barWindow.effectiveBarThickness
|
barThickness: barWindow.effectiveBarThickness
|
||||||
axis: barWindow.axis
|
axis: barWindow.axis
|
||||||
section: topBarContent.getWidgetSection(parent) || "right"
|
section: topBarContent.getWidgetSection(parent) || "right"
|
||||||
popoutTarget: systemUpdateLoader.item ?? null
|
popoutTarget: {
|
||||||
|
systemUpdateLoader.active = true;
|
||||||
|
return systemUpdateLoader.item;
|
||||||
|
}
|
||||||
parentScreen: barWindow.screen
|
parentScreen: barWindow.screen
|
||||||
onClicked: {
|
onClicked: {
|
||||||
systemUpdateLoader.active = true;
|
systemUpdateLoader.active = true;
|
||||||
|
|||||||
@@ -131,55 +131,38 @@ PanelWindow {
|
|||||||
readonly property real _wingR: Math.max(0, wingtipsRadius)
|
readonly property real _wingR: Math.max(0, wingtipsRadius)
|
||||||
readonly property color _surfaceContainer: Theme.surfaceContainer
|
readonly property color _surfaceContainer: Theme.surfaceContainer
|
||||||
readonly property string _barId: barConfig?.id ?? "default"
|
readonly property string _barId: barConfig?.id ?? "default"
|
||||||
property real _backgroundAlpha: barConfig?.transparency ?? 1.0
|
readonly property var _liveBarConfig: SettingsData.barConfigs.find(c => c.id === _barId) || barConfig
|
||||||
|
readonly property real _backgroundAlpha: _liveBarConfig?.transparency ?? 1.0
|
||||||
readonly property color _bgColor: Theme.withAlpha(_surfaceContainer, _backgroundAlpha)
|
readonly property color _bgColor: Theme.withAlpha(_surfaceContainer, _backgroundAlpha)
|
||||||
|
|
||||||
function _updateBackgroundAlpha() {
|
|
||||||
const live = SettingsData.barConfigs.find(c => c.id === _barId);
|
|
||||||
_backgroundAlpha = (live ?? barConfig)?.transparency ?? 1.0;
|
|
||||||
}
|
|
||||||
readonly property real _dpr: CompositorService.getScreenScale(barWindow.screen)
|
readonly property real _dpr: CompositorService.getScreenScale(barWindow.screen)
|
||||||
|
|
||||||
property string screenName: modelData.name
|
property string screenName: modelData.name
|
||||||
|
|
||||||
property bool hasMaximizedToplevel: false
|
readonly property bool hasMaximizedToplevel: {
|
||||||
property bool shouldHideForWindows: false
|
if (!(barConfig?.maximizeDetection ?? true))
|
||||||
|
return false;
|
||||||
function _updateHasMaximizedToplevel() {
|
if (!CompositorService.isHyprland && !CompositorService.isNiri)
|
||||||
if (!(barConfig?.maximizeDetection ?? true)) {
|
return false;
|
||||||
hasMaximizedToplevel = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!CompositorService.isHyprland && !CompositorService.isNiri) {
|
|
||||||
hasMaximizedToplevel = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const filtered = CompositorService.filterCurrentWorkspace(CompositorService.sortedToplevels, screenName);
|
const filtered = CompositorService.filterCurrentWorkspace(CompositorService.sortedToplevels, screenName);
|
||||||
for (let i = 0; i < filtered.length; i++) {
|
for (let i = 0; i < filtered.length; i++) {
|
||||||
if (filtered[i]?.maximized) {
|
if (filtered[i]?.maximized)
|
||||||
hasMaximizedToplevel = true;
|
return true;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
return false;
|
||||||
hasMaximizedToplevel = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function _updateShouldHideForWindows() {
|
readonly property bool shouldHideForWindows: {
|
||||||
if (!(barConfig?.showOnWindowsOpen ?? false)) {
|
if (!(barConfig?.showOnWindowsOpen ?? false))
|
||||||
shouldHideForWindows = false;
|
return false;
|
||||||
return;
|
if (!(barConfig?.autoHide ?? false))
|
||||||
}
|
return false;
|
||||||
if (!(barConfig?.autoHide ?? false)) {
|
if (!CompositorService.isNiri && !CompositorService.isHyprland)
|
||||||
shouldHideForWindows = false;
|
return false;
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!CompositorService.isNiri && !CompositorService.isHyprland) {
|
|
||||||
shouldHideForWindows = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (CompositorService.isNiri) {
|
if (CompositorService.isNiri) {
|
||||||
|
NiriService.windows;
|
||||||
|
|
||||||
let currentWorkspaceId = null;
|
let currentWorkspaceId = null;
|
||||||
for (let i = 0; i < NiriService.allWorkspaces.length; i++) {
|
for (let i = 0; i < NiriService.allWorkspaces.length; i++) {
|
||||||
const ws = NiriService.allWorkspaces[i];
|
const ws = NiriService.allWorkspaces[i];
|
||||||
@@ -189,10 +172,8 @@ PanelWindow {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentWorkspaceId === null) {
|
if (currentWorkspaceId === null)
|
||||||
shouldHideForWindows = false;
|
return false;
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
let hasTiled = false;
|
let hasTiled = false;
|
||||||
let hasFloatingTouchingBar = false;
|
let hasFloatingTouchingBar = false;
|
||||||
@@ -236,12 +217,14 @@ PanelWindow {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
shouldHideForWindows = hasTiled || hasFloatingTouchingBar;
|
if (hasTiled)
|
||||||
return;
|
return true;
|
||||||
|
|
||||||
|
return hasFloatingTouchingBar;
|
||||||
}
|
}
|
||||||
|
|
||||||
const filtered = CompositorService.filterCurrentWorkspace(CompositorService.sortedToplevels, screenName);
|
const filtered = CompositorService.filterCurrentWorkspace(CompositorService.sortedToplevels, screenName);
|
||||||
shouldHideForWindows = filtered.length > 0;
|
return filtered.length > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
property real effectiveSpacing: hasMaximizedToplevel ? 0 : (barConfig?.spacing ?? 4)
|
property real effectiveSpacing: hasMaximizedToplevel ? 0 : (barConfig?.spacing ?? 4)
|
||||||
@@ -373,9 +356,6 @@ PanelWindow {
|
|||||||
}
|
}
|
||||||
|
|
||||||
updateGpuTempConfig();
|
updateGpuTempConfig();
|
||||||
_updateBackgroundAlpha();
|
|
||||||
_updateHasMaximizedToplevel();
|
|
||||||
_updateShouldHideForWindows();
|
|
||||||
|
|
||||||
inhibitorInitTimer.start();
|
inhibitorInitTimer.start();
|
||||||
}
|
}
|
||||||
@@ -452,37 +432,11 @@ PanelWindow {
|
|||||||
Connections {
|
Connections {
|
||||||
function onBarConfigChanged() {
|
function onBarConfigChanged() {
|
||||||
barWindow.updateGpuTempConfig();
|
barWindow.updateGpuTempConfig();
|
||||||
barWindow._updateBackgroundAlpha();
|
|
||||||
barWindow._updateHasMaximizedToplevel();
|
|
||||||
barWindow._updateShouldHideForWindows();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
target: rootWindow
|
target: rootWindow
|
||||||
}
|
}
|
||||||
|
|
||||||
Connections {
|
|
||||||
target: SettingsData
|
|
||||||
function onBarConfigsChanged() {
|
|
||||||
barWindow._updateBackgroundAlpha();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Connections {
|
|
||||||
target: CompositorService
|
|
||||||
function onToplevelsChanged() {
|
|
||||||
barWindow._updateHasMaximizedToplevel();
|
|
||||||
barWindow._updateShouldHideForWindows();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Connections {
|
|
||||||
target: NiriService
|
|
||||||
function onAllWorkspacesChanged() {
|
|
||||||
barWindow._updateHasMaximizedToplevel();
|
|
||||||
barWindow._updateShouldHideForWindows();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
function onNvidiaGpuTempEnabledChanged() {
|
function onNvidiaGpuTempEnabledChanged() {
|
||||||
barWindow.updateGpuTempConfig();
|
barWindow.updateGpuTempConfig();
|
||||||
|
|||||||
@@ -584,7 +584,8 @@ BasePill {
|
|||||||
|
|
||||||
property string tooltipText: {
|
property string tooltipText: {
|
||||||
root._desktopEntriesUpdateTrigger;
|
root._desktopEntriesUpdateTrigger;
|
||||||
const desktopEntry = appId ? DesktopEntries.heuristicLookup(appId) : null;
|
const moddedId = Paths.moddedAppId(appId);
|
||||||
|
const desktopEntry = moddedId ? DesktopEntries.heuristicLookup(moddedId) : null;
|
||||||
const appName = appId ? Paths.getAppName(appId, desktopEntry) : "Unknown";
|
const appName = appId ? Paths.getAppName(appId, desktopEntry) : "Unknown";
|
||||||
|
|
||||||
if (modelData.type === "grouped" && windowCount > 1) {
|
if (modelData.type === "grouped" && windowCount > 1) {
|
||||||
@@ -689,8 +690,9 @@ BasePill {
|
|||||||
if (!appItem.appId)
|
if (!appItem.appId)
|
||||||
return "";
|
return "";
|
||||||
if (modelData.isCoreApp)
|
if (modelData.isCoreApp)
|
||||||
return "";
|
return ""; // Explicitly skip if core app to avoid flickering or wrong look ups
|
||||||
const desktopEntry = DesktopEntries.heuristicLookup(appItem.appId);
|
const moddedId = Paths.moddedAppId(appItem.appId);
|
||||||
|
const desktopEntry = DesktopEntries.heuristicLookup(moddedId);
|
||||||
return Paths.getAppIcon(appItem.appId, desktopEntry);
|
return Paths.getAppIcon(appItem.appId, desktopEntry);
|
||||||
}
|
}
|
||||||
smooth: true
|
smooth: true
|
||||||
@@ -747,7 +749,8 @@ BasePill {
|
|||||||
root._desktopEntriesUpdateTrigger;
|
root._desktopEntriesUpdateTrigger;
|
||||||
if (!appItem.appId)
|
if (!appItem.appId)
|
||||||
return "?";
|
return "?";
|
||||||
const desktopEntry = DesktopEntries.heuristicLookup(appItem.appId);
|
const moddedId = Paths.moddedAppId(appItem.appId);
|
||||||
|
const desktopEntry = DesktopEntries.heuristicLookup(moddedId);
|
||||||
const appName = Paths.getAppName(appItem.appId, desktopEntry);
|
const appName = Paths.getAppName(appItem.appId, desktopEntry);
|
||||||
return appName.charAt(0).toUpperCase();
|
return appName.charAt(0).toUpperCase();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,9 @@ BasePill {
|
|||||||
id: root
|
id: root
|
||||||
|
|
||||||
property bool isActive: false
|
property bool isActive: false
|
||||||
|
property var popoutTarget: null
|
||||||
|
property var parentScreen: null
|
||||||
|
property Item windowRoot: (Window.window ? Window.window.contentItem : null)
|
||||||
property bool isAutoHideBar: false
|
property bool isAutoHideBar: false
|
||||||
|
|
||||||
signal clipboardClicked
|
signal clipboardClicked
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ BasePill {
|
|||||||
id: textBox
|
id: textBox
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
|
||||||
implicitWidth: root.minimumWidth ? Math.max(cpuBaseline.width, cpuCurrent.width) : cpuCurrent.width
|
implicitWidth: root.minimumWidth ? Math.max(cpuBaseline.width, cpuText.paintedWidth) : cpuText.paintedWidth
|
||||||
implicitHeight: cpuText.implicitHeight
|
implicitHeight: cpuText.implicitHeight
|
||||||
|
|
||||||
width: implicitWidth
|
width: implicitWidth
|
||||||
@@ -105,12 +105,6 @@ BasePill {
|
|||||||
text: "88%"
|
text: "88%"
|
||||||
}
|
}
|
||||||
|
|
||||||
StyledTextMetrics {
|
|
||||||
id: cpuCurrent
|
|
||||||
font.pixelSize: Theme.barTextSize(root.barThickness, root.barConfig?.fontScale, root.barConfig?.maximizeWidgetText)
|
|
||||||
text: cpuText.text
|
|
||||||
}
|
|
||||||
|
|
||||||
StyledText {
|
StyledText {
|
||||||
id: cpuText
|
id: cpuText
|
||||||
text: {
|
text: {
|
||||||
|
|||||||
@@ -18,43 +18,9 @@ BasePill {
|
|||||||
readonly property real contentWidth: hasActivePrivacy ? (activeCount * 18 + (activeCount - 1) * Theme.spacingXS) : 0
|
readonly property real contentWidth: hasActivePrivacy ? (activeCount * 18 + (activeCount - 1) * Theme.spacingXS) : 0
|
||||||
readonly property real contentHeight: hasActivePrivacy ? (activeCount * 18 + (activeCount - 1) * Theme.spacingXS) : 0
|
readonly property real contentHeight: hasActivePrivacy ? (activeCount * 18 + (activeCount - 1) * Theme.spacingXS) : 0
|
||||||
|
|
||||||
|
visible: hasActivePrivacy
|
||||||
opacity: hasActivePrivacy ? 1 : 0
|
opacity: hasActivePrivacy ? 1 : 0
|
||||||
|
enabled: hasActivePrivacy
|
||||||
states: [
|
|
||||||
State {
|
|
||||||
name: "hidden_horizontal"
|
|
||||||
when: !hasActivePrivacy && !isVerticalOrientation
|
|
||||||
PropertyChanges {
|
|
||||||
target: root
|
|
||||||
width: 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
State {
|
|
||||||
name: "hidden_vertical"
|
|
||||||
when: !hasActivePrivacy && isVerticalOrientation
|
|
||||||
PropertyChanges {
|
|
||||||
target: root
|
|
||||||
height: 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
transitions: [
|
|
||||||
Transition {
|
|
||||||
NumberAnimation {
|
|
||||||
properties: "width,height"
|
|
||||||
duration: Theme.shortDuration
|
|
||||||
easing.type: Theme.standardEasing
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
Behavior on opacity {
|
|
||||||
NumberAnimation {
|
|
||||||
duration: Theme.shortDuration
|
|
||||||
easing.type: Theme.standardEasing
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
content: Component {
|
content: Component {
|
||||||
Item {
|
Item {
|
||||||
@@ -69,7 +35,7 @@ BasePill {
|
|||||||
Item {
|
Item {
|
||||||
width: 18
|
width: 18
|
||||||
height: 18
|
height: 18
|
||||||
visible: root.showMicIcon || PrivacyService.microphoneActive
|
visible: PrivacyService.microphoneActive
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
|
||||||
DankIcon {
|
DankIcon {
|
||||||
@@ -81,8 +47,8 @@ BasePill {
|
|||||||
return "mic";
|
return "mic";
|
||||||
}
|
}
|
||||||
size: Theme.iconSizeSmall
|
size: Theme.iconSizeSmall
|
||||||
color: PrivacyService.microphoneActive ? Theme.error : Theme.surfaceText
|
color: Theme.error
|
||||||
filled: PrivacyService.microphoneActive
|
filled: true
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -90,14 +56,14 @@ BasePill {
|
|||||||
Item {
|
Item {
|
||||||
width: 18
|
width: 18
|
||||||
height: 18
|
height: 18
|
||||||
visible: root.showCameraIcon || PrivacyService.cameraActive
|
visible: PrivacyService.cameraActive
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
|
||||||
DankIcon {
|
DankIcon {
|
||||||
name: "camera_video"
|
name: "camera_video"
|
||||||
size: Theme.iconSizeSmall
|
size: Theme.iconSizeSmall
|
||||||
color: PrivacyService.cameraActive ? Theme.error : Theme.surfaceText
|
color: Theme.widgetTextColor
|
||||||
filled: PrivacyService.cameraActive
|
filled: true
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -110,21 +76,20 @@ BasePill {
|
|||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.rightMargin: -2
|
anchors.rightMargin: -2
|
||||||
anchors.topMargin: -1
|
anchors.topMargin: -1
|
||||||
visible: PrivacyService.cameraActive
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
width: 18
|
width: 18
|
||||||
height: 18
|
height: 18
|
||||||
visible: root.showScreenSharingIcon || PrivacyService.screensharingActive
|
visible: PrivacyService.screensharingActive
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
|
||||||
DankIcon {
|
DankIcon {
|
||||||
name: "screen_share"
|
name: "screen_share"
|
||||||
size: Theme.iconSizeSmall
|
size: Theme.iconSizeSmall
|
||||||
color: PrivacyService.screensharingActive ? Theme.warning : Theme.surfaceText
|
color: Theme.warning
|
||||||
filled: PrivacyService.screensharingActive
|
filled: true
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -151,7 +116,7 @@ BasePill {
|
|||||||
}
|
}
|
||||||
size: Theme.iconSizeSmall
|
size: Theme.iconSizeSmall
|
||||||
color: PrivacyService.microphoneActive ? Theme.error : Theme.surfaceText
|
color: PrivacyService.microphoneActive ? Theme.error : Theme.surfaceText
|
||||||
filled: PrivacyService.microphoneActive
|
filled: true
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -166,7 +131,7 @@ BasePill {
|
|||||||
name: "camera_video"
|
name: "camera_video"
|
||||||
size: Theme.iconSizeSmall
|
size: Theme.iconSizeSmall
|
||||||
color: PrivacyService.cameraActive ? Theme.error : Theme.surfaceText
|
color: PrivacyService.cameraActive ? Theme.error : Theme.surfaceText
|
||||||
filled: PrivacyService.cameraActive
|
filled: true
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -193,7 +158,7 @@ BasePill {
|
|||||||
name: "screen_share"
|
name: "screen_share"
|
||||||
size: Theme.iconSizeSmall
|
size: Theme.iconSizeSmall
|
||||||
color: PrivacyService.screensharingActive ? Theme.warning : Theme.surfaceText
|
color: PrivacyService.screensharingActive ? Theme.warning : Theme.surfaceText
|
||||||
filled: PrivacyService.screensharingActive
|
filled: true
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -244,4 +209,22 @@ BasePill {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Behavior on width {
|
||||||
|
enabled: hasActivePrivacy && visible && !isVerticalOrientation
|
||||||
|
|
||||||
|
NumberAnimation {
|
||||||
|
duration: Theme.mediumDuration
|
||||||
|
easing.type: Theme.emphasizedEasing
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Behavior on height {
|
||||||
|
enabled: hasActivePrivacy && visible && isVerticalOrientation
|
||||||
|
|
||||||
|
NumberAnimation {
|
||||||
|
duration: Theme.mediumDuration
|
||||||
|
easing.type: Theme.emphasizedEasing
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -241,17 +241,14 @@ BasePill {
|
|||||||
property var toplevelData: isGrouped ? (modelData.windows.length > 0 ? modelData.windows[0].toplevel : null) : modelData
|
property var toplevelData: isGrouped ? (modelData.windows.length > 0 ? modelData.windows[0].toplevel : null) : modelData
|
||||||
property bool isFocused: isGrouped ? (root.focusedAppId === appId) : (toplevelData ? toplevelData.activated : false)
|
property bool isFocused: isGrouped ? (root.focusedAppId === appId) : (toplevelData ? toplevelData.activated : false)
|
||||||
property string appId: isGrouped ? modelData.appId : (modelData.appId || "")
|
property string appId: isGrouped ? modelData.appId : (modelData.appId || "")
|
||||||
readonly property string effectiveAppId: {
|
|
||||||
root._appIdSubstitutionsTrigger;
|
|
||||||
return Paths.moddedAppId(appId);
|
|
||||||
}
|
|
||||||
property string windowTitle: toplevelData ? (toplevelData.title || "(Unnamed)") : "(Unnamed)"
|
property string windowTitle: toplevelData ? (toplevelData.title || "(Unnamed)") : "(Unnamed)"
|
||||||
property var toplevelObject: toplevelData
|
property var toplevelObject: toplevelData
|
||||||
property int windowCount: isGrouped ? modelData.windows.length : 1
|
property int windowCount: isGrouped ? modelData.windows.length : 1
|
||||||
property string tooltipText: {
|
property string tooltipText: {
|
||||||
root._desktopEntriesUpdateTrigger;
|
root._desktopEntriesUpdateTrigger;
|
||||||
const desktopEntry = effectiveAppId ? DesktopEntries.heuristicLookup(effectiveAppId) : null;
|
const moddedId = Paths.moddedAppId(appId);
|
||||||
const appName = effectiveAppId ? Paths.getAppName(effectiveAppId, desktopEntry) : "Unknown";
|
const desktopEntry = moddedId ? DesktopEntries.heuristicLookup(moddedId) : null;
|
||||||
|
const appName = appId ? Paths.getAppName(appId, desktopEntry) : "Unknown";
|
||||||
|
|
||||||
if (isGrouped && windowCount > 1) {
|
if (isGrouped && windowCount > 1) {
|
||||||
return appName + " (" + windowCount + " windows)";
|
return appName + " (" + windowCount + " windows)";
|
||||||
@@ -287,10 +284,11 @@ BasePill {
|
|||||||
source: {
|
source: {
|
||||||
root._desktopEntriesUpdateTrigger;
|
root._desktopEntriesUpdateTrigger;
|
||||||
root._appIdSubstitutionsTrigger;
|
root._appIdSubstitutionsTrigger;
|
||||||
if (!effectiveAppId)
|
if (!appId)
|
||||||
return "";
|
return "";
|
||||||
const desktopEntry = DesktopEntries.heuristicLookup(effectiveAppId);
|
const moddedId = Paths.moddedAppId(appId);
|
||||||
return Paths.getAppIcon(effectiveAppId, desktopEntry);
|
const desktopEntry = DesktopEntries.heuristicLookup(moddedId);
|
||||||
|
return Paths.getAppIcon(appId, desktopEntry);
|
||||||
}
|
}
|
||||||
smooth: true
|
smooth: true
|
||||||
mipmap: true
|
mipmap: true
|
||||||
@@ -313,18 +311,20 @@ BasePill {
|
|||||||
size: Theme.barIconSize(root.barThickness, undefined, root.barConfig?.maximizeWidgetIcons, root.barConfig?.iconScale)
|
size: Theme.barIconSize(root.barThickness, undefined, root.barConfig?.maximizeWidgetIcons, root.barConfig?.iconScale)
|
||||||
name: "sports_esports"
|
name: "sports_esports"
|
||||||
color: Theme.widgetTextColor
|
color: Theme.widgetTextColor
|
||||||
visible: !iconImg.visible && Paths.isSteamApp(effectiveAppId)
|
visible: !iconImg.visible && Paths.isSteamApp(appId)
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
visible: !iconImg.visible && !Paths.isSteamApp(effectiveAppId)
|
visible: !iconImg.visible && !Paths.isSteamApp(appId)
|
||||||
text: {
|
text: {
|
||||||
root._desktopEntriesUpdateTrigger;
|
root._desktopEntriesUpdateTrigger;
|
||||||
if (!effectiveAppId)
|
if (!appId)
|
||||||
return "?";
|
return "?";
|
||||||
const desktopEntry = DesktopEntries.heuristicLookup(effectiveAppId);
|
|
||||||
const appName = Paths.getAppName(effectiveAppId, desktopEntry);
|
const moddedId = Paths.moddedAppId(appId);
|
||||||
|
const desktopEntry = DesktopEntries.heuristicLookup(moddedId);
|
||||||
|
const appName = Paths.getAppName(appId, desktopEntry);
|
||||||
return appName.charAt(0).toUpperCase();
|
return appName.charAt(0).toUpperCase();
|
||||||
}
|
}
|
||||||
font.pixelSize: 10
|
font.pixelSize: 10
|
||||||
@@ -496,17 +496,14 @@ BasePill {
|
|||||||
property var toplevelData: isGrouped ? (modelData.windows.length > 0 ? modelData.windows[0].toplevel : null) : modelData
|
property var toplevelData: isGrouped ? (modelData.windows.length > 0 ? modelData.windows[0].toplevel : null) : modelData
|
||||||
property bool isFocused: isGrouped ? (root.focusedAppId === appId) : (toplevelData ? toplevelData.activated : false)
|
property bool isFocused: isGrouped ? (root.focusedAppId === appId) : (toplevelData ? toplevelData.activated : false)
|
||||||
property string appId: isGrouped ? modelData.appId : (modelData.appId || "")
|
property string appId: isGrouped ? modelData.appId : (modelData.appId || "")
|
||||||
readonly property string effectiveAppId: {
|
|
||||||
root._appIdSubstitutionsTrigger;
|
|
||||||
return Paths.moddedAppId(appId);
|
|
||||||
}
|
|
||||||
property string windowTitle: toplevelData ? (toplevelData.title || "(Unnamed)") : "(Unnamed)"
|
property string windowTitle: toplevelData ? (toplevelData.title || "(Unnamed)") : "(Unnamed)"
|
||||||
property var toplevelObject: toplevelData
|
property var toplevelObject: toplevelData
|
||||||
property int windowCount: isGrouped ? modelData.windows.length : 1
|
property int windowCount: isGrouped ? modelData.windows.length : 1
|
||||||
property string tooltipText: {
|
property string tooltipText: {
|
||||||
root._desktopEntriesUpdateTrigger;
|
root._desktopEntriesUpdateTrigger;
|
||||||
const desktopEntry = effectiveAppId ? DesktopEntries.heuristicLookup(effectiveAppId) : null;
|
const moddedId = Paths.moddedAppId(appId);
|
||||||
const appName = effectiveAppId ? Paths.getAppName(effectiveAppId, desktopEntry) : "Unknown";
|
const desktopEntry = moddedId ? DesktopEntries.heuristicLookup(moddedId) : null;
|
||||||
|
const appName = appId ? Paths.getAppName(appId, desktopEntry) : "Unknown";
|
||||||
|
|
||||||
if (isGrouped && windowCount > 1) {
|
if (isGrouped && windowCount > 1) {
|
||||||
return appName + " (" + windowCount + " windows)";
|
return appName + " (" + windowCount + " windows)";
|
||||||
@@ -541,10 +538,11 @@ BasePill {
|
|||||||
source: {
|
source: {
|
||||||
root._desktopEntriesUpdateTrigger;
|
root._desktopEntriesUpdateTrigger;
|
||||||
root._appIdSubstitutionsTrigger;
|
root._appIdSubstitutionsTrigger;
|
||||||
if (!effectiveAppId)
|
if (!appId)
|
||||||
return "";
|
return "";
|
||||||
const desktopEntry = DesktopEntries.heuristicLookup(effectiveAppId);
|
const moddedId = Paths.moddedAppId(appId);
|
||||||
return Paths.getAppIcon(effectiveAppId, desktopEntry);
|
const desktopEntry = DesktopEntries.heuristicLookup(moddedId);
|
||||||
|
return Paths.getAppIcon(appId, desktopEntry);
|
||||||
}
|
}
|
||||||
smooth: true
|
smooth: true
|
||||||
mipmap: true
|
mipmap: true
|
||||||
@@ -567,18 +565,20 @@ BasePill {
|
|||||||
size: Theme.barIconSize(root.barThickness, undefined, root.barConfig?.maximizeWidgetIcons, root.barConfig?.iconScale)
|
size: Theme.barIconSize(root.barThickness, undefined, root.barConfig?.maximizeWidgetIcons, root.barConfig?.iconScale)
|
||||||
name: "sports_esports"
|
name: "sports_esports"
|
||||||
color: Theme.widgetTextColor
|
color: Theme.widgetTextColor
|
||||||
visible: !iconImg.visible && Paths.isSteamApp(effectiveAppId)
|
visible: !iconImg.visible && Paths.isSteamApp(appId)
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
visible: !iconImg.visible && !Paths.isSteamApp(effectiveAppId)
|
visible: !iconImg.visible && !Paths.isSteamApp(appId)
|
||||||
text: {
|
text: {
|
||||||
root._desktopEntriesUpdateTrigger;
|
root._desktopEntriesUpdateTrigger;
|
||||||
if (!effectiveAppId)
|
if (!appId)
|
||||||
return "?";
|
return "?";
|
||||||
const desktopEntry = DesktopEntries.heuristicLookup(effectiveAppId);
|
|
||||||
const appName = Paths.getAppName(effectiveAppId, desktopEntry);
|
const moddedId = Paths.moddedAppId(appId);
|
||||||
|
const desktopEntry = DesktopEntries.heuristicLookup(moddedId);
|
||||||
|
const appName = Paths.getAppName(appId, desktopEntry);
|
||||||
return appName.charAt(0).toUpperCase();
|
return appName.charAt(0).toUpperCase();
|
||||||
}
|
}
|
||||||
font.pixelSize: 10
|
font.pixelSize: 10
|
||||||
|
|||||||
@@ -282,15 +282,14 @@ Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const keyBase = (w.app_id || w.appId || w.class || w.windowClass || "unknown");
|
const keyBase = (w.app_id || w.appId || w.class || w.windowClass || "unknown");
|
||||||
const moddedId = Paths.moddedAppId(keyBase);
|
const key = isActiveWs || !SettingsData.groupWorkspaceApps ? `${keyBase}_${i}` : keyBase;
|
||||||
const key = isActiveWs || !SettingsData.groupWorkspaceApps ? `${moddedId}_${i}` : moddedId;
|
|
||||||
|
|
||||||
if (!byApp[key]) {
|
if (!byApp[key]) {
|
||||||
const isQuickshell = keyBase === "org.quickshell";
|
const isQuickshell = keyBase === "org.quickshell";
|
||||||
const isSteamApp = Paths.isSteamApp(moddedId);
|
const isSteamApp = Paths.isSteamApp(keyBase);
|
||||||
|
const moddedId = Paths.moddedAppId(keyBase);
|
||||||
const desktopEntry = DesktopEntries.heuristicLookup(moddedId);
|
const desktopEntry = DesktopEntries.heuristicLookup(moddedId);
|
||||||
const icon = Paths.getAppIcon(moddedId, desktopEntry);
|
const icon = Paths.getAppIcon(keyBase, desktopEntry);
|
||||||
const appName = Paths.getAppName(moddedId, desktopEntry);
|
|
||||||
byApp[key] = {
|
byApp[key] = {
|
||||||
"type": "icon",
|
"type": "icon",
|
||||||
"icon": icon,
|
"icon": icon,
|
||||||
@@ -299,7 +298,7 @@ Item {
|
|||||||
"active": !!((w.activated || w.is_focused) || (CompositorService.isNiri && w.is_focused)),
|
"active": !!((w.activated || w.is_focused) || (CompositorService.isNiri && w.is_focused)),
|
||||||
"count": 1,
|
"count": 1,
|
||||||
"windowId": w.address || w.id,
|
"windowId": w.address || w.id,
|
||||||
"fallbackText": appName || ""
|
"fallbackText": w.appId || w.class || w.title || ""
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
byApp[key].count++;
|
byApp[key].count++;
|
||||||
@@ -1474,44 +1473,9 @@ Item {
|
|||||||
IconImage {
|
IconImage {
|
||||||
id: rowAppIcon
|
id: rowAppIcon
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
source: modelData.icon || ""
|
source: modelData.icon
|
||||||
opacity: modelData.active ? 1.0 : rowAppMouseArea.containsMouse ? 0.8 : 0.6
|
opacity: modelData.active ? 1.0 : rowAppMouseArea.containsMouse ? 0.8 : 0.6
|
||||||
visible: !modelData.isQuickshell && !modelData.isSteamApp && status === Image.Ready
|
visible: !modelData.isQuickshell && !modelData.isSteamApp
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
anchors.fill: parent
|
|
||||||
visible: !modelData.isQuickshell && !modelData.isSteamApp && rowAppIcon.status !== Image.Ready
|
|
||||||
color: Theme.surfaceContainer
|
|
||||||
radius: Theme.cornerRadius * (root.appIconSize / 40)
|
|
||||||
border.width: 1
|
|
||||||
border.color: Theme.primarySelected
|
|
||||||
opacity: (modelData.active || isActive) ? 1.0 : rowAppMouseArea.containsMouse ? 0.8 : 0.6
|
|
||||||
|
|
||||||
StyledText {
|
|
||||||
anchors.centerIn: parent
|
|
||||||
text: (modelData.fallbackText || "?").charAt(0).toUpperCase()
|
|
||||||
font.pixelSize: parent.width * 0.45
|
|
||||||
color: Theme.primary
|
|
||||||
font.weight: Font.Bold
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
anchors.fill: parent
|
|
||||||
visible: !modelData.isQuickshell && modelData.isSteamApp && rowSteamIcon.status !== Image.Ready
|
|
||||||
color: Theme.surfaceContainer
|
|
||||||
radius: Theme.cornerRadius * (root.appIconSize / 40)
|
|
||||||
border.width: 1
|
|
||||||
border.color: Theme.primarySelected
|
|
||||||
opacity: (modelData.active || isActive) ? 1.0 : rowAppMouseArea.containsMouse ? 0.8 : 0.6
|
|
||||||
|
|
||||||
DankIcon {
|
|
||||||
anchors.centerIn: parent
|
|
||||||
size: parent.width * 0.7
|
|
||||||
name: "sports_esports"
|
|
||||||
color: Theme.primary
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
IconImage {
|
IconImage {
|
||||||
@@ -1628,44 +1592,9 @@ Item {
|
|||||||
IconImage {
|
IconImage {
|
||||||
id: colAppIcon
|
id: colAppIcon
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
source: modelData.icon || ""
|
source: modelData.icon
|
||||||
opacity: modelData.active ? 1.0 : colAppMouseArea.containsMouse ? 0.8 : 0.6
|
opacity: modelData.active ? 1.0 : colAppMouseArea.containsMouse ? 0.8 : 0.6
|
||||||
visible: !modelData.isQuickshell && !modelData.isSteamApp && status === Image.Ready
|
visible: !modelData.isQuickshell && !modelData.isSteamApp
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
anchors.fill: parent
|
|
||||||
visible: !modelData.isQuickshell && !modelData.isSteamApp && colAppIcon.status !== Image.Ready
|
|
||||||
color: Theme.surfaceContainer
|
|
||||||
radius: Theme.cornerRadius * (root.appIconSize / 40)
|
|
||||||
border.width: 1
|
|
||||||
border.color: Theme.primarySelected
|
|
||||||
opacity: (modelData.active || isActive) ? 1.0 : colAppMouseArea.containsMouse ? 0.8 : 0.6
|
|
||||||
|
|
||||||
StyledText {
|
|
||||||
anchors.centerIn: parent
|
|
||||||
text: (modelData.fallbackText || "?").charAt(0).toUpperCase()
|
|
||||||
font.pixelSize: parent.width * 0.45
|
|
||||||
color: Theme.primary
|
|
||||||
font.weight: Font.Bold
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
anchors.fill: parent
|
|
||||||
visible: !modelData.isQuickshell && modelData.isSteamApp && colSteamIcon.status !== Image.Ready
|
|
||||||
color: Theme.surfaceContainer
|
|
||||||
radius: Theme.cornerRadius * (root.appIconSize / 40)
|
|
||||||
border.width: 1
|
|
||||||
border.color: Theme.primarySelected
|
|
||||||
opacity: (modelData.active || isActive) ? 1.0 : colAppMouseArea.containsMouse ? 0.8 : 0.6
|
|
||||||
|
|
||||||
DankIcon {
|
|
||||||
anchors.centerIn: parent
|
|
||||||
size: parent.width * 0.7
|
|
||||||
name: "sports_esports"
|
|
||||||
color: Theme.primary
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
IconImage {
|
IconImage {
|
||||||
|
|||||||
@@ -378,27 +378,21 @@ Variants {
|
|||||||
const screenY = dock.screen ? (dock.screen.y || 0) : 0;
|
const screenY = dock.screen ? (dock.screen.y || 0) : 0;
|
||||||
const screenHeight = dock.screen ? dock.screen.height : 0;
|
const screenHeight = dock.screen ? dock.screen.height : 0;
|
||||||
|
|
||||||
const gap = Theme.spacingS;
|
|
||||||
const bgMargin = barSpacing + SettingsData.dockMargin + 1 + dock.borderThickness;
|
|
||||||
const btnW = dock.hoveredButton.width;
|
|
||||||
const btnH = dock.hoveredButton.height;
|
|
||||||
|
|
||||||
if (!dock.isVertical) {
|
if (!dock.isVertical) {
|
||||||
const isBottom = SettingsData.dockPosition === SettingsData.Position.Bottom;
|
const isBottom = SettingsData.dockPosition === SettingsData.Position.Bottom;
|
||||||
const globalX = buttonGlobalPos.x + btnW / 2 + adjacentLeftBarWidth;
|
const globalX = buttonGlobalPos.x + dock.hoveredButton.width / 2 + adjacentLeftBarWidth;
|
||||||
const tooltipHeight = 32;
|
const tooltipHeight = 32;
|
||||||
const totalFromEdge = bgMargin + dockBackground.height + dock.borderThickness + gap;
|
const tooltipOffset = dock.effectiveBarHeight + SettingsData.dockSpacing + SettingsData.dockBottomGap + SettingsData.dockMargin + barSpacing + Theme.spacingM;
|
||||||
const screenRelativeY = isBottom ? (screenHeight - totalFromEdge - tooltipHeight) : totalFromEdge;
|
const screenRelativeY = isBottom ? (screenHeight - tooltipOffset - tooltipHeight) : tooltipOffset;
|
||||||
dockTooltip.show(tooltipText, globalX, screenRelativeY, dock.screen, false, false);
|
dockTooltip.show(tooltipText, globalX, screenRelativeY, dock.screen, false, false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const isLeft = SettingsData.dockPosition === SettingsData.Position.Left;
|
const isLeft = SettingsData.dockPosition === SettingsData.Position.Left;
|
||||||
const screenWidth = dock.screen ? dock.screen.width : 0;
|
const tooltipOffset = dock.effectiveBarHeight + SettingsData.dockSpacing + SettingsData.dockBottomGap + SettingsData.dockMargin + barSpacing + Theme.spacingM;
|
||||||
const totalFromEdge = bgMargin + dockBackground.width + dock.borderThickness + gap;
|
const tooltipX = isLeft ? tooltipOffset : (dock.screen.width - tooltipOffset);
|
||||||
const tooltipX = isLeft ? (screenX + totalFromEdge) : (screenX + screenWidth - totalFromEdge);
|
const screenRelativeY = buttonGlobalPos.y - screenY + dock.hoveredButton.height / 2 + adjacentTopBarHeight;
|
||||||
const screenRelativeY = buttonGlobalPos.y - screenY + btnH / 2 + adjacentTopBarHeight;
|
dockTooltip.show(tooltipText, screenX + tooltipX, screenRelativeY, dock.screen, isLeft, !isLeft);
|
||||||
dockTooltip.show(tooltipText, tooltipX, screenRelativeY, dock.screen, isLeft, !isLeft);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
|
|||||||
@@ -28,58 +28,7 @@ Item {
|
|||||||
return pos === SettingsData.Position.Left || pos === SettingsData.Position.Right;
|
return pos === SettingsData.Position.Left || pos === SettingsData.Position.Right;
|
||||||
}
|
}
|
||||||
|
|
||||||
Timer {
|
|
||||||
id: horizontalBarChangeDebounce
|
|
||||||
interval: 500
|
|
||||||
repeat: false
|
|
||||||
onTriggered: {
|
|
||||||
const verticalBars = SettingsData.barConfigs.filter(cfg => {
|
|
||||||
const pos = cfg.position ?? SettingsData.Position.Top;
|
|
||||||
return pos === SettingsData.Position.Left || pos === SettingsData.Position.Right;
|
|
||||||
});
|
|
||||||
|
|
||||||
verticalBars.forEach(bar => {
|
|
||||||
if (!bar.enabled)
|
|
||||||
return;
|
|
||||||
SettingsData.updateBarConfig(bar.id, {
|
|
||||||
enabled: false
|
|
||||||
});
|
|
||||||
Qt.callLater(() => SettingsData.updateBarConfig(bar.id, {
|
|
||||||
enabled: true
|
|
||||||
}));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function _isBarActive(c) {
|
|
||||||
if (!c.enabled) return false;
|
|
||||||
const prefs = c.screenPreferences || ["all"];
|
|
||||||
if (prefs.length > 0) return true;
|
|
||||||
return (c.showOnLastDisplay ?? true) && Quickshell.screens.length === 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
function notifyHorizontalBarChange() {
|
function notifyHorizontalBarChange() {
|
||||||
const configs = SettingsData.barConfigs;
|
|
||||||
if (configs.length < 2)
|
|
||||||
return;
|
|
||||||
|
|
||||||
const hasHorizontal = configs.some(c => {
|
|
||||||
if (!_isBarActive(c)) return false;
|
|
||||||
const p = c.position ?? SettingsData.Position.Top;
|
|
||||||
return p === SettingsData.Position.Top || p === SettingsData.Position.Bottom;
|
|
||||||
});
|
|
||||||
if (!hasHorizontal)
|
|
||||||
return;
|
|
||||||
|
|
||||||
const hasVertical = configs.some(c => {
|
|
||||||
if (!_isBarActive(c)) return false;
|
|
||||||
const p = c.position ?? SettingsData.Position.Top;
|
|
||||||
return p === SettingsData.Position.Left || p === SettingsData.Position.Right;
|
|
||||||
});
|
|
||||||
if (!hasVertical)
|
|
||||||
return;
|
|
||||||
|
|
||||||
horizontalBarChangeDebounce.restart();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function createNewBar() {
|
function createNewBar() {
|
||||||
@@ -117,12 +66,7 @@ Item {
|
|||||||
widgetOutlineColor: defaultBar.widgetOutlineColor || "primary",
|
widgetOutlineColor: defaultBar.widgetOutlineColor || "primary",
|
||||||
widgetOutlineOpacity: defaultBar.widgetOutlineOpacity ?? 1.0,
|
widgetOutlineOpacity: defaultBar.widgetOutlineOpacity ?? 1.0,
|
||||||
widgetOutlineThickness: defaultBar.widgetOutlineThickness ?? 1,
|
widgetOutlineThickness: defaultBar.widgetOutlineThickness ?? 1,
|
||||||
widgetPadding: defaultBar.widgetPadding ?? 8,
|
|
||||||
maximizeWidgetIcons: defaultBar.maximizeWidgetIcons ?? false,
|
|
||||||
maximizeWidgetText: defaultBar.maximizeWidgetText ?? false,
|
|
||||||
removeWidgetPadding: defaultBar.removeWidgetPadding ?? false,
|
|
||||||
fontScale: defaultBar.fontScale ?? 1.0,
|
fontScale: defaultBar.fontScale ?? 1.0,
|
||||||
iconScale: defaultBar.iconScale ?? 1.0,
|
|
||||||
autoHide: defaultBar.autoHide ?? false,
|
autoHide: defaultBar.autoHide ?? false,
|
||||||
autoHideDelay: defaultBar.autoHideDelay ?? 250,
|
autoHideDelay: defaultBar.autoHideDelay ?? 250,
|
||||||
showOnWindowsOpen: defaultBar.showOnWindowsOpen ?? false,
|
showOnWindowsOpen: defaultBar.showOnWindowsOpen ?? false,
|
||||||
@@ -172,7 +116,6 @@ Item {
|
|||||||
SettingsData.updateBarConfig(barId, {
|
SettingsData.updateBarConfig(barId, {
|
||||||
screenPreferences: prefs
|
screenPreferences: prefs
|
||||||
});
|
});
|
||||||
notifyHorizontalBarChange();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getBarShowOnLastDisplay(barId) {
|
function getBarShowOnLastDisplay(barId) {
|
||||||
@@ -184,8 +127,6 @@ Item {
|
|||||||
SettingsData.updateBarConfig(barId, {
|
SettingsData.updateBarConfig(barId, {
|
||||||
showOnLastDisplay: value
|
showOnLastDisplay: value
|
||||||
});
|
});
|
||||||
if (Quickshell.screens.length === 1)
|
|
||||||
notifyHorizontalBarChange();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DankFlickable {
|
DankFlickable {
|
||||||
@@ -567,9 +508,12 @@ Item {
|
|||||||
newPos = SettingsData.Position.Right;
|
newPos = SettingsData.Position.Right;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
const wasVertical = selectedBarIsVertical;
|
||||||
SettingsData.updateBarConfig(selectedBarId, {
|
SettingsData.updateBarConfig(selectedBarId, {
|
||||||
position: newPos
|
position: newPos
|
||||||
});
|
});
|
||||||
|
const isVertical = newPos === SettingsData.Position.Left || newPos === SettingsData.Position.Right;
|
||||||
|
if (wasVertical !== isVertical || !isVertical)
|
||||||
notifyHorizontalBarChange();
|
notifyHorizontalBarChange();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -619,6 +563,7 @@ Item {
|
|||||||
SettingsData.updateBarConfig(selectedBarId, {
|
SettingsData.updateBarConfig(selectedBarId, {
|
||||||
autoHideDelay: newValue
|
autoHideDelay: newValue
|
||||||
});
|
});
|
||||||
|
notifyHorizontalBarChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
Binding {
|
Binding {
|
||||||
@@ -638,6 +583,7 @@ Item {
|
|||||||
SettingsData.updateBarConfig(selectedBarId, {
|
SettingsData.updateBarConfig(selectedBarId, {
|
||||||
showOnWindowsOpen: toggled
|
showOnWindowsOpen: toggled
|
||||||
});
|
});
|
||||||
|
notifyHorizontalBarChange();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -691,6 +637,7 @@ Item {
|
|||||||
SettingsData.updateBarConfig(selectedBarId, {
|
SettingsData.updateBarConfig(selectedBarId, {
|
||||||
openOnOverview: toggled
|
openOnOverview: toggled
|
||||||
});
|
});
|
||||||
|
notifyHorizontalBarChange();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -807,6 +754,7 @@ Item {
|
|||||||
SettingsData.updateBarConfig(selectedBarId, {
|
SettingsData.updateBarConfig(selectedBarId, {
|
||||||
spacing: finalValue
|
spacing: finalValue
|
||||||
});
|
});
|
||||||
|
notifyHorizontalBarChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
Binding {
|
Binding {
|
||||||
@@ -828,6 +776,7 @@ Item {
|
|||||||
SettingsData.updateBarConfig(selectedBarId, {
|
SettingsData.updateBarConfig(selectedBarId, {
|
||||||
bottomGap: finalValue
|
bottomGap: finalValue
|
||||||
});
|
});
|
||||||
|
notifyHorizontalBarChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
Binding {
|
Binding {
|
||||||
@@ -849,6 +798,7 @@ Item {
|
|||||||
SettingsData.updateBarConfig(selectedBarId, {
|
SettingsData.updateBarConfig(selectedBarId, {
|
||||||
innerPadding: finalValue
|
innerPadding: finalValue
|
||||||
});
|
});
|
||||||
|
notifyHorizontalBarChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
Binding {
|
Binding {
|
||||||
@@ -861,12 +811,13 @@ Item {
|
|||||||
|
|
||||||
SettingsSliderRow {
|
SettingsSliderRow {
|
||||||
id: widgetPaddingSlider
|
id: widgetPaddingSlider
|
||||||
text: I18n.tr("Padding")
|
text: I18n.tr("Widget Padding Base")
|
||||||
value: selectedBarConfig?.widgetPadding ?? 8
|
description: I18n.tr("Material 3 Expressive padding")
|
||||||
|
value: selectedBarConfig?.widgetPadding ?? 12
|
||||||
minimum: 0
|
minimum: 0
|
||||||
maximum: 32
|
maximum: 32
|
||||||
unit: "px"
|
unit: "px"
|
||||||
defaultValue: 8
|
defaultValue: 12
|
||||||
opacity: (selectedBarConfig?.removeWidgetPadding ?? false) ? 0.5 : 1.0
|
opacity: (selectedBarConfig?.removeWidgetPadding ?? false) ? 0.5 : 1.0
|
||||||
enabled: !(selectedBarConfig?.removeWidgetPadding ?? false)
|
enabled: !(selectedBarConfig?.removeWidgetPadding ?? false)
|
||||||
onSliderValueChanged: newValue => {
|
onSliderValueChanged: newValue => {
|
||||||
@@ -897,6 +848,7 @@ Item {
|
|||||||
SettingsData.updateBarConfig(selectedBarId, {
|
SettingsData.updateBarConfig(selectedBarId, {
|
||||||
popupGapsAuto: checked
|
popupGapsAuto: checked
|
||||||
});
|
});
|
||||||
|
notifyHorizontalBarChange();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -925,6 +877,7 @@ Item {
|
|||||||
SettingsData.updateBarConfig(selectedBarId, {
|
SettingsData.updateBarConfig(selectedBarId, {
|
||||||
popupGapsManual: finalValue
|
popupGapsManual: finalValue
|
||||||
});
|
});
|
||||||
|
notifyHorizontalBarChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
Binding {
|
Binding {
|
||||||
@@ -937,107 +890,6 @@ Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SettingsSliderCard {
|
|
||||||
id: fontScaleSliderCard
|
|
||||||
iconName: "text_fields"
|
|
||||||
title: I18n.tr("Font Scale")
|
|
||||||
description: I18n.tr("Scale DankBar font sizes independently")
|
|
||||||
visible: selectedBarConfig?.enabled
|
|
||||||
minimum: 50
|
|
||||||
maximum: 200
|
|
||||||
value: Math.round((selectedBarConfig?.fontScale ?? 1.0) * 100)
|
|
||||||
unit: "%"
|
|
||||||
defaultValue: 100
|
|
||||||
onSliderValueChanged: newValue => {
|
|
||||||
SettingsData.updateBarConfig(selectedBarId, {
|
|
||||||
fontScale: newValue / 100
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
Binding {
|
|
||||||
target: fontScaleSliderCard
|
|
||||||
property: "value"
|
|
||||||
value: Math.round((selectedBarConfig?.fontScale ?? 1.0) * 100)
|
|
||||||
restoreMode: Binding.RestoreBinding
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SettingsSliderCard {
|
|
||||||
id: iconScaleSliderCard
|
|
||||||
iconName: "interests"
|
|
||||||
title: I18n.tr("Icon Scale")
|
|
||||||
description: I18n.tr("Scale DankBar icon sizes independently")
|
|
||||||
visible: selectedBarConfig?.enabled
|
|
||||||
minimum: 50
|
|
||||||
maximum: 200
|
|
||||||
value: Math.round((selectedBarConfig?.iconScale ?? 1.0) * 100)
|
|
||||||
unit: "%"
|
|
||||||
defaultValue: 100
|
|
||||||
onSliderValueChanged: newValue => {
|
|
||||||
SettingsData.updateBarConfig(selectedBarId, {
|
|
||||||
iconScale: newValue / 100
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
Binding {
|
|
||||||
target: iconScaleSliderCard
|
|
||||||
property: "value"
|
|
||||||
value: Math.round((selectedBarConfig?.iconScale ?? 1.0) * 100)
|
|
||||||
restoreMode: Binding.RestoreBinding
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SettingsCard {
|
|
||||||
iconName: "opacity"
|
|
||||||
title: I18n.tr("Transparency")
|
|
||||||
settingKey: "barTransparency"
|
|
||||||
visible: selectedBarConfig?.enabled
|
|
||||||
|
|
||||||
SettingsSliderRow {
|
|
||||||
id: barTransparencySlider
|
|
||||||
text: I18n.tr("Bar Transparency")
|
|
||||||
value: (selectedBarConfig?.transparency ?? 1.0) * 100
|
|
||||||
minimum: 0
|
|
||||||
maximum: 100
|
|
||||||
unit: "%"
|
|
||||||
defaultValue: 100
|
|
||||||
onSliderDragFinished: finalValue => {
|
|
||||||
SettingsData.updateBarConfig(selectedBarId, {
|
|
||||||
transparency: finalValue / 100
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
Binding {
|
|
||||||
target: barTransparencySlider
|
|
||||||
property: "value"
|
|
||||||
value: (selectedBarConfig?.transparency ?? 1.0) * 100
|
|
||||||
restoreMode: Binding.RestoreBinding
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SettingsSliderRow {
|
|
||||||
id: widgetTransparencySlider
|
|
||||||
text: I18n.tr("Widget Transparency")
|
|
||||||
value: (selectedBarConfig?.widgetTransparency ?? 1.0) * 100
|
|
||||||
minimum: 0
|
|
||||||
maximum: 100
|
|
||||||
unit: "%"
|
|
||||||
defaultValue: 100
|
|
||||||
onSliderDragFinished: finalValue => {
|
|
||||||
SettingsData.updateBarConfig(selectedBarId, {
|
|
||||||
widgetTransparency: finalValue / 100
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
Binding {
|
|
||||||
target: widgetTransparencySlider
|
|
||||||
property: "value"
|
|
||||||
value: (selectedBarConfig?.widgetTransparency ?? 1.0) * 100
|
|
||||||
restoreMode: Binding.RestoreBinding
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SettingsCard {
|
SettingsCard {
|
||||||
iconName: "rounded_corner"
|
iconName: "rounded_corner"
|
||||||
title: I18n.tr("Corners & Background")
|
title: I18n.tr("Corners & Background")
|
||||||
@@ -1447,6 +1299,111 @@ Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SettingsCard {
|
||||||
|
iconName: "opacity"
|
||||||
|
title: I18n.tr("Transparency")
|
||||||
|
settingKey: "barTransparency"
|
||||||
|
visible: selectedBarConfig?.enabled
|
||||||
|
|
||||||
|
SettingsSliderRow {
|
||||||
|
id: barTransparencySlider
|
||||||
|
text: I18n.tr("Bar Transparency")
|
||||||
|
value: (selectedBarConfig?.transparency ?? 1.0) * 100
|
||||||
|
minimum: 0
|
||||||
|
maximum: 100
|
||||||
|
unit: "%"
|
||||||
|
defaultValue: 100
|
||||||
|
onSliderDragFinished: finalValue => {
|
||||||
|
SettingsData.updateBarConfig(selectedBarId, {
|
||||||
|
transparency: finalValue / 100
|
||||||
|
});
|
||||||
|
notifyHorizontalBarChange();
|
||||||
|
}
|
||||||
|
|
||||||
|
Binding {
|
||||||
|
target: barTransparencySlider
|
||||||
|
property: "value"
|
||||||
|
value: (selectedBarConfig?.transparency ?? 1.0) * 100
|
||||||
|
restoreMode: Binding.RestoreBinding
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SettingsSliderRow {
|
||||||
|
id: widgetTransparencySlider
|
||||||
|
text: I18n.tr("Widget Transparency")
|
||||||
|
value: (selectedBarConfig?.widgetTransparency ?? 1.0) * 100
|
||||||
|
minimum: 0
|
||||||
|
maximum: 100
|
||||||
|
unit: "%"
|
||||||
|
defaultValue: 100
|
||||||
|
onSliderDragFinished: finalValue => {
|
||||||
|
SettingsData.updateBarConfig(selectedBarId, {
|
||||||
|
widgetTransparency: finalValue / 100
|
||||||
|
});
|
||||||
|
notifyHorizontalBarChange();
|
||||||
|
}
|
||||||
|
|
||||||
|
Binding {
|
||||||
|
target: widgetTransparencySlider
|
||||||
|
property: "value"
|
||||||
|
value: (selectedBarConfig?.widgetTransparency ?? 1.0) * 100
|
||||||
|
restoreMode: Binding.RestoreBinding
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SettingsSliderCard {
|
||||||
|
id: fontScaleSliderCard
|
||||||
|
iconName: "text_fields"
|
||||||
|
title: I18n.tr("Font Scale")
|
||||||
|
description: I18n.tr("Scale DankBar font sizes independently")
|
||||||
|
visible: selectedBarConfig?.enabled
|
||||||
|
minimum: 50
|
||||||
|
maximum: 200
|
||||||
|
value: Math.round((selectedBarConfig?.fontScale ?? 1.0) * 100)
|
||||||
|
unit: "%"
|
||||||
|
defaultValue: 100
|
||||||
|
onSliderDragFinished: finalValue => {
|
||||||
|
SettingsData.updateBarConfig(selectedBarId, {
|
||||||
|
fontScale: finalValue / 100
|
||||||
|
});
|
||||||
|
notifyHorizontalBarChange();
|
||||||
|
}
|
||||||
|
|
||||||
|
Binding {
|
||||||
|
target: fontScaleSliderCard
|
||||||
|
property: "value"
|
||||||
|
value: Math.round((selectedBarConfig?.fontScale ?? 1.0) * 100)
|
||||||
|
restoreMode: Binding.RestoreBinding
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SettingsSliderCard {
|
||||||
|
id: iconScaleSliderCard
|
||||||
|
iconName: "interests"
|
||||||
|
title: I18n.tr("Icon Scale")
|
||||||
|
description: I18n.tr("Scale DankBar icon sizes independently")
|
||||||
|
visible: selectedBarConfig?.enabled
|
||||||
|
minimum: 50
|
||||||
|
maximum: 200
|
||||||
|
value: Math.round((selectedBarConfig?.iconScale ?? 1.0) * 100)
|
||||||
|
unit: "%"
|
||||||
|
defaultValue: 100
|
||||||
|
onSliderDragFinished: finalValue => {
|
||||||
|
SettingsData.updateBarConfig(selectedBarId, {
|
||||||
|
iconScale: finalValue / 100
|
||||||
|
});
|
||||||
|
notifyHorizontalBarChange();
|
||||||
|
}
|
||||||
|
|
||||||
|
Binding {
|
||||||
|
target: iconScaleSliderCard
|
||||||
|
property: "value"
|
||||||
|
value: Math.round((selectedBarConfig?.iconScale ?? 1.0) * 100)
|
||||||
|
restoreMode: Binding.RestoreBinding
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -231,16 +231,13 @@ Singleton {
|
|||||||
const compositor = CompositorService.compositor;
|
const compositor = CompositorService.compositor;
|
||||||
const profilesDir = getProfilesDir();
|
const profilesDir = getProfilesDir();
|
||||||
const profileFile = profilesDir + "/" + profileId + getProfileExtension();
|
const profileFile = profilesDir + "/" + profileId + getProfileExtension();
|
||||||
const isActive = SettingsData.getActiveDisplayProfile(compositor) === profileId;
|
|
||||||
|
|
||||||
profilesLoading = true;
|
profilesLoading = true;
|
||||||
Proc.runCommand("delete-profile", ["rm", "-f", profileFile], (output, exitCode) => {
|
Proc.runCommand("delete-profile", ["rm", "-f", profileFile], (output, exitCode) => {
|
||||||
profilesLoading = false;
|
profilesLoading = false;
|
||||||
SettingsData.removeDisplayProfile(compositor, profileId);
|
SettingsData.removeDisplayProfile(compositor, profileId);
|
||||||
if (isActive) {
|
if (SettingsData.getActiveDisplayProfile(compositor) === profileId)
|
||||||
SettingsData.setActiveDisplayProfile(compositor, "");
|
SettingsData.setActiveDisplayProfile(compositor, "");
|
||||||
backendWriteOutputsConfig(allOutputs);
|
|
||||||
}
|
|
||||||
const updated = JSON.parse(JSON.stringify(validatedProfiles));
|
const updated = JSON.parse(JSON.stringify(validatedProfiles));
|
||||||
delete updated[profileId];
|
delete updated[profileId];
|
||||||
validatedProfiles = updated;
|
validatedProfiles = updated;
|
||||||
|
|||||||
@@ -1281,6 +1281,15 @@ Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DankActionButton {
|
||||||
|
iconName: "qr_code"
|
||||||
|
buttonSize: 28
|
||||||
|
visible: modelData.secured && modelData.saved
|
||||||
|
onClicked: {
|
||||||
|
PopoutService.showWifiQRCodeModal(modelData.ssid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
DankActionButton {
|
DankActionButton {
|
||||||
iconName: isPinned ? "push_pin" : "push_pin"
|
iconName: isPinned ? "push_pin" : "push_pin"
|
||||||
buttonSize: 28
|
buttonSize: 28
|
||||||
|
|||||||
@@ -386,22 +386,12 @@ Item {
|
|||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: Theme.surfaceVariant
|
color: Theme.surfaceVariant
|
||||||
|
|
||||||
Image {
|
CachingImage {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.margins: 1
|
anchors.margins: 1
|
||||||
source: {
|
imagePath: (Theme.wallpaperPath && !Theme.wallpaperPath.startsWith("#")) ? Theme.wallpaperPath : ""
|
||||||
var wp = Theme.wallpaperPath;
|
|
||||||
if (!wp || wp === "" || wp.startsWith("#"))
|
|
||||||
return "";
|
|
||||||
if (wp.startsWith("file://"))
|
|
||||||
wp = wp.substring(7);
|
|
||||||
return "file://" + wp.split('/').map(s => encodeURIComponent(s)).join('/');
|
|
||||||
}
|
|
||||||
fillMode: Image.PreserveAspectCrop
|
fillMode: Image.PreserveAspectCrop
|
||||||
visible: Theme.wallpaperPath && !Theme.wallpaperPath.startsWith("#")
|
visible: Theme.wallpaperPath && !Theme.wallpaperPath.startsWith("#")
|
||||||
sourceSize.width: 120
|
|
||||||
sourceSize.height: 120
|
|
||||||
asynchronous: true
|
|
||||||
layer.enabled: true
|
layer.enabled: true
|
||||||
layer.effect: MultiEffect {
|
layer.effect: MultiEffect {
|
||||||
maskEnabled: true
|
maskEnabled: true
|
||||||
|
|||||||
@@ -401,25 +401,19 @@ Item {
|
|||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: Theme.surfaceVariant
|
color: Theme.surfaceVariant
|
||||||
|
|
||||||
Image {
|
CachingImage {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.margins: 1
|
anchors.margins: 1
|
||||||
source: {
|
imagePath: {
|
||||||
var wp = SessionData.wallpaperPathLight;
|
var lightWallpaper = SessionData.wallpaperPathLight;
|
||||||
if (wp === "" || wp.startsWith("#"))
|
return (lightWallpaper !== "" && !lightWallpaper.startsWith("#")) ? lightWallpaper : "";
|
||||||
return "";
|
|
||||||
if (wp.startsWith("file://"))
|
|
||||||
wp = wp.substring(7);
|
|
||||||
return "file://" + wp.split('/').map(s => encodeURIComponent(s)).join('/');
|
|
||||||
}
|
}
|
||||||
fillMode: Image.PreserveAspectCrop
|
fillMode: Image.PreserveAspectCrop
|
||||||
visible: {
|
visible: {
|
||||||
var lightWallpaper = SessionData.wallpaperPathLight;
|
var lightWallpaper = SessionData.wallpaperPathLight;
|
||||||
return lightWallpaper !== "" && !lightWallpaper.startsWith("#");
|
return lightWallpaper !== "" && !lightWallpaper.startsWith("#");
|
||||||
}
|
}
|
||||||
sourceSize.width: 160
|
maxCacheSize: 160
|
||||||
sourceSize.height: 160
|
|
||||||
asynchronous: true
|
|
||||||
layer.enabled: true
|
layer.enabled: true
|
||||||
layer.effect: MultiEffect {
|
layer.effect: MultiEffect {
|
||||||
maskEnabled: true
|
maskEnabled: true
|
||||||
@@ -591,25 +585,19 @@ Item {
|
|||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: Theme.surfaceVariant
|
color: Theme.surfaceVariant
|
||||||
|
|
||||||
Image {
|
CachingImage {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.margins: 1
|
anchors.margins: 1
|
||||||
source: {
|
imagePath: {
|
||||||
var wp = SessionData.wallpaperPathDark;
|
var darkWallpaper = SessionData.wallpaperPathDark;
|
||||||
if (wp === "" || wp.startsWith("#"))
|
return (darkWallpaper !== "" && !darkWallpaper.startsWith("#")) ? darkWallpaper : "";
|
||||||
return "";
|
|
||||||
if (wp.startsWith("file://"))
|
|
||||||
wp = wp.substring(7);
|
|
||||||
return "file://" + wp.split('/').map(s => encodeURIComponent(s)).join('/');
|
|
||||||
}
|
}
|
||||||
fillMode: Image.PreserveAspectCrop
|
fillMode: Image.PreserveAspectCrop
|
||||||
visible: {
|
visible: {
|
||||||
var darkWallpaper = SessionData.wallpaperPathDark;
|
var darkWallpaper = SessionData.wallpaperPathDark;
|
||||||
return darkWallpaper !== "" && !darkWallpaper.startsWith("#");
|
return darkWallpaper !== "" && !darkWallpaper.startsWith("#");
|
||||||
}
|
}
|
||||||
sourceSize.width: 160
|
maxCacheSize: 160
|
||||||
sourceSize.height: 160
|
|
||||||
asynchronous: true
|
|
||||||
layer.enabled: true
|
layer.enabled: true
|
||||||
layer.effect: MultiEffect {
|
layer.effect: MultiEffect {
|
||||||
maskEnabled: true
|
maskEnabled: true
|
||||||
|
|||||||
@@ -83,61 +83,8 @@ Variants {
|
|||||||
|
|
||||||
readonly property bool transitioning: transitionAnimation.running
|
readonly property bool transitioning: transitionAnimation.running
|
||||||
property bool effectActive: false
|
property bool effectActive: false
|
||||||
property bool _renderSettling: true
|
|
||||||
property bool useNextForEffect: false
|
property bool useNextForEffect: false
|
||||||
property string pendingWallpaper: ""
|
property string pendingWallpaper: ""
|
||||||
property string _deferredSource: ""
|
|
||||||
|
|
||||||
Connections {
|
|
||||||
target: currentWallpaper
|
|
||||||
function onStatusChanged() {
|
|
||||||
if (currentWallpaper.status === Image.Ready) {
|
|
||||||
root._renderSettling = true;
|
|
||||||
renderSettleTimer.restart();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function _recheckScreenScale() {
|
|
||||||
const newScale = CompositorService.getScreenScale(modelData);
|
|
||||||
if (newScale !== root.screenScale) {
|
|
||||||
console.info("WallpaperBackground: screen scale corrected for", modelData.name + ":", root.screenScale, "->", newScale);
|
|
||||||
root.screenScale = newScale;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Connections {
|
|
||||||
target: NiriService
|
|
||||||
function onDisplayScalesChanged() {
|
|
||||||
root._recheckScreenScale();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Connections {
|
|
||||||
target: WlrOutputService
|
|
||||||
function onWlrOutputAvailableChanged() {
|
|
||||||
root._recheckScreenScale();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Connections {
|
|
||||||
target: CompositorService
|
|
||||||
function onRandrDataReady() {
|
|
||||||
if (root._deferredSource) {
|
|
||||||
const src = root._deferredSource;
|
|
||||||
root._deferredSource = "";
|
|
||||||
root.setWallpaperImmediate(src);
|
|
||||||
} else {
|
|
||||||
root._recheckScreenScale();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Timer {
|
|
||||||
id: renderSettleTimer
|
|
||||||
interval: 100
|
|
||||||
onTriggered: root._renderSettling = false
|
|
||||||
}
|
|
||||||
|
|
||||||
function getFillMode(modeName) {
|
function getFillMode(modeName) {
|
||||||
switch (modeName) {
|
switch (modeName) {
|
||||||
@@ -163,12 +110,12 @@ Variants {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
if (typeof wallpaperWindow.updatesEnabled !== "undefined")
|
|
||||||
wallpaperWindow.updatesEnabled = Qt.binding(() => root.effectActive || root._renderSettling || currentWallpaper.status === Image.Loading || nextWallpaper.status === Image.Loading);
|
|
||||||
|
|
||||||
if (!source) {
|
if (!source) {
|
||||||
root._renderSettling = false;
|
isInitialized = true;
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
const formattedSource = source.startsWith("file://") ? source : encodeFileUrl(source);
|
||||||
|
setWallpaperImmediate(formattedSource);
|
||||||
isInitialized = true;
|
isInitialized = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -181,11 +128,8 @@ Variants {
|
|||||||
const formattedSource = source.startsWith("file://") ? source : encodeFileUrl(source);
|
const formattedSource = source.startsWith("file://") ? source : encodeFileUrl(source);
|
||||||
|
|
||||||
if (!isInitialized || !currentWallpaper.source) {
|
if (!isInitialized || !currentWallpaper.source) {
|
||||||
if (!CompositorService.randrReady) {
|
|
||||||
_deferredSource = formattedSource;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
setWallpaperImmediate(formattedSource);
|
setWallpaperImmediate(formattedSource);
|
||||||
|
isInitialized = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (CompositorService.isNiri && SessionData.isSwitchingMode) {
|
if (CompositorService.isNiri && SessionData.isSwitchingMode) {
|
||||||
@@ -199,9 +143,6 @@ Variants {
|
|||||||
transitionAnimation.stop();
|
transitionAnimation.stop();
|
||||||
root.transitionProgress = 0.0;
|
root.transitionProgress = 0.0;
|
||||||
root.effectActive = false;
|
root.effectActive = false;
|
||||||
root._renderSettling = true;
|
|
||||||
renderSettleTimer.restart();
|
|
||||||
root.screenScale = CompositorService.getScreenScale(modelData);
|
|
||||||
currentWallpaper.source = newSource;
|
currentWallpaper.source = newSource;
|
||||||
nextWallpaper.source = "";
|
nextWallpaper.source = "";
|
||||||
}
|
}
|
||||||
@@ -230,7 +171,6 @@ Variants {
|
|||||||
return;
|
return;
|
||||||
if (!newPath || newPath.startsWith("#"))
|
if (!newPath || newPath.startsWith("#"))
|
||||||
return;
|
return;
|
||||||
root.screenScale = CompositorService.getScreenScale(modelData);
|
|
||||||
if (root.transitioning || root.effectActive) {
|
if (root.transitioning || root.effectActive) {
|
||||||
root.pendingWallpaper = newPath;
|
root.pendingWallpaper = newPath;
|
||||||
return;
|
return;
|
||||||
@@ -282,7 +222,7 @@ Variants {
|
|||||||
}
|
}
|
||||||
|
|
||||||
readonly property int maxTextureSize: 8192
|
readonly property int maxTextureSize: 8192
|
||||||
property real screenScale: 1
|
property real screenScale: CompositorService.getScreenScale(modelData)
|
||||||
property int textureWidth: Math.min(Math.round(modelData.width * screenScale), maxTextureSize)
|
property int textureWidth: Math.min(Math.round(modelData.width * screenScale), maxTextureSize)
|
||||||
property int textureHeight: Math.min(Math.round(modelData.height * screenScale), maxTextureSize)
|
property int textureHeight: Math.min(Math.round(modelData.height * screenScale), maxTextureSize)
|
||||||
|
|
||||||
|
|||||||
@@ -18,8 +18,6 @@ Singleton {
|
|||||||
function registerWidget(widgetId, screenName, widgetRef) {
|
function registerWidget(widgetId, screenName, widgetRef) {
|
||||||
if (!widgetId || !screenName || !widgetRef)
|
if (!widgetId || !screenName || !widgetRef)
|
||||||
return;
|
return;
|
||||||
if (typeof widgetRegistry !== "object" || widgetRegistry === null)
|
|
||||||
widgetRegistry = ({});
|
|
||||||
|
|
||||||
if (!widgetRegistry[widgetId])
|
if (!widgetRegistry[widgetId])
|
||||||
widgetRegistry[widgetId] = {};
|
widgetRegistry[widgetId] = {};
|
||||||
@@ -31,8 +29,6 @@ Singleton {
|
|||||||
function unregisterWidget(widgetId, screenName) {
|
function unregisterWidget(widgetId, screenName) {
|
||||||
if (!widgetId || !screenName)
|
if (!widgetId || !screenName)
|
||||||
return;
|
return;
|
||||||
if (typeof widgetRegistry !== "object" || widgetRegistry === null)
|
|
||||||
return;
|
|
||||||
if (!widgetRegistry[widgetId])
|
if (!widgetRegistry[widgetId])
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ Singleton {
|
|||||||
id: root
|
id: root
|
||||||
|
|
||||||
readonly property string currentVersion: "1.4"
|
readonly property string currentVersion: "1.4"
|
||||||
readonly property bool changelogEnabled: true
|
readonly property bool changelogEnabled: false
|
||||||
|
|
||||||
readonly property string configDir: Paths.strip(StandardPaths.writableLocation(StandardPaths.ConfigLocation)) + "/DankMaterialShell"
|
readonly property string configDir: Paths.strip(StandardPaths.writableLocation(StandardPaths.ConfigLocation)) + "/DankMaterialShell"
|
||||||
readonly property string changelogMarkerPath: configDir + "/.changelog-" + currentVersion
|
readonly property string changelogMarkerPath: configDir + "/.changelog-" + currentVersion
|
||||||
|
|||||||
@@ -29,37 +29,11 @@ Singleton {
|
|||||||
readonly property string labwcPid: Quickshell.env("LABWC_PID")
|
readonly property string labwcPid: Quickshell.env("LABWC_PID")
|
||||||
property bool useNiriSorting: isNiri && NiriService
|
property bool useNiriSorting: isNiri && NiriService
|
||||||
|
|
||||||
property var randrScales: ({})
|
|
||||||
property bool randrReady: false
|
|
||||||
signal randrDataReady
|
|
||||||
|
|
||||||
property var sortedToplevels: []
|
property var sortedToplevels: []
|
||||||
property bool _sortScheduled: false
|
property bool _sortScheduled: false
|
||||||
|
|
||||||
signal toplevelsChanged
|
signal toplevelsChanged
|
||||||
|
|
||||||
function fetchRandrData() {
|
|
||||||
Proc.runCommand("randr", ["dms", "randr", "--json"], (output, exitCode) => {
|
|
||||||
if (exitCode === 0 && output) {
|
|
||||||
try {
|
|
||||||
const data = JSON.parse(output.trim());
|
|
||||||
if (data.outputs && Array.isArray(data.outputs)) {
|
|
||||||
const scales = {};
|
|
||||||
for (const out of data.outputs) {
|
|
||||||
if (out.name && out.scale > 0)
|
|
||||||
scales[out.name] = out.scale;
|
|
||||||
}
|
|
||||||
randrScales = scales;
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
console.warn("CompositorService: failed to parse randr data:", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
randrReady = true;
|
|
||||||
randrDataReady();
|
|
||||||
}, 0, 3000);
|
|
||||||
}
|
|
||||||
|
|
||||||
function getScreenScale(screen) {
|
function getScreenScale(screen) {
|
||||||
if (!screen)
|
if (!screen)
|
||||||
return 1;
|
return 1;
|
||||||
@@ -68,10 +42,6 @@ Singleton {
|
|||||||
return screen.devicePixelRatio || 1;
|
return screen.devicePixelRatio || 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
const randrScale = randrScales[screen.name];
|
|
||||||
if (randrScale !== undefined && randrScale > 0)
|
|
||||||
return Math.round(randrScale * 20) / 20;
|
|
||||||
|
|
||||||
if (WlrOutputService.wlrOutputAvailable && screen) {
|
if (WlrOutputService.wlrOutputAvailable && screen) {
|
||||||
const wlrOutput = WlrOutputService.getOutput(screen.name);
|
const wlrOutput = WlrOutputService.getOutput(screen.name);
|
||||||
if (wlrOutput?.enabled && wlrOutput.scale !== undefined && wlrOutput.scale > 0) {
|
if (wlrOutput?.enabled && wlrOutput.scale !== undefined && wlrOutput.scale > 0) {
|
||||||
@@ -167,7 +137,6 @@ Singleton {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
fetchRandrData();
|
|
||||||
detectCompositor();
|
detectCompositor();
|
||||||
scheduleSort();
|
scheduleSort();
|
||||||
Qt.callLater(() => {
|
Qt.callLater(() => {
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
pragma Singleton
|
pragma Singleton
|
||||||
|
|
||||||
pragma ComponentBehavior: Bound
|
pragma ComponentBehavior: Bound
|
||||||
|
|
||||||
import QtCore
|
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import Quickshell
|
import Quickshell
|
||||||
import Quickshell.Io
|
import Quickshell.Io
|
||||||
@@ -13,6 +11,9 @@ Singleton {
|
|||||||
|
|
||||||
property bool dsearchAvailable: false
|
property bool dsearchAvailable: false
|
||||||
property int searchIdCounter: 0
|
property int searchIdCounter: 0
|
||||||
|
property int indexVersion: 0
|
||||||
|
property bool supportsTypeFilter: false
|
||||||
|
property bool versionChecked: false
|
||||||
|
|
||||||
signal searchResultsReceived(var results)
|
signal searchResultsReceived(var results)
|
||||||
signal statsReceived(var stats)
|
signal statsReceived(var stats)
|
||||||
@@ -26,118 +27,157 @@ Singleton {
|
|||||||
stdout: SplitParser {
|
stdout: SplitParser {
|
||||||
onRead: line => {
|
onRead: line => {
|
||||||
if (line && line.trim().length > 0) {
|
if (line && line.trim().length > 0) {
|
||||||
root.dsearchAvailable = true
|
root.dsearchAvailable = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onExited: exitCode => {
|
onExited: exitCode => {
|
||||||
if (exitCode !== 0) {
|
if (exitCode !== 0) {
|
||||||
root.dsearchAvailable = false
|
root.dsearchAvailable = false;
|
||||||
|
} else {
|
||||||
|
root._checkVersion();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function _checkVersion() {
|
||||||
|
Proc.runCommand("dsearch-version", ["dsearch", "version", "--json"], (stdout, exitCode) => {
|
||||||
|
root.versionChecked = true;
|
||||||
|
if (exitCode !== 0)
|
||||||
|
return;
|
||||||
|
const response = JSON.parse(stdout);
|
||||||
|
root.indexVersion = response.index_schema || 0;
|
||||||
|
root.supportsTypeFilter = root.indexVersion >= 2;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function ping(callback) {
|
function ping(callback) {
|
||||||
if (!dsearchAvailable) {
|
if (!dsearchAvailable) {
|
||||||
if (callback) {
|
if (callback) {
|
||||||
callback({ "error": "dsearch not available" })
|
callback({
|
||||||
|
"error": "dsearch not available"
|
||||||
|
});
|
||||||
}
|
}
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Proc.runCommand("dsearch-ping", ["dsearch", "ping", "--json"], (stdout, exitCode) => {
|
Proc.runCommand("dsearch-ping", ["dsearch", "ping", "--json"], (stdout, exitCode) => {
|
||||||
if (callback) {
|
if (callback) {
|
||||||
if (exitCode === 0) {
|
if (exitCode === 0) {
|
||||||
try {
|
try {
|
||||||
const response = JSON.parse(stdout)
|
const response = JSON.parse(stdout);
|
||||||
callback({ "result": response })
|
callback({
|
||||||
|
"result": response
|
||||||
|
});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
callback({ "error": "failed to parse ping response" })
|
callback({
|
||||||
|
"error": "failed to parse ping response"
|
||||||
|
});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
callback({ "error": "ping failed" })
|
callback({
|
||||||
|
"error": "ping failed"
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function search(query, params, callback) {
|
function search(query, params, callback) {
|
||||||
if (!query || query.length === 0) {
|
if (!query || query.length === 0) {
|
||||||
if (callback) {
|
if (callback) {
|
||||||
callback({ "error": "query is required" })
|
callback({
|
||||||
|
"error": "query is required"
|
||||||
|
});
|
||||||
}
|
}
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!dsearchAvailable) {
|
if (!dsearchAvailable) {
|
||||||
if (callback) {
|
if (callback) {
|
||||||
callback({ "error": "dsearch not available" })
|
callback({
|
||||||
|
"error": "dsearch not available"
|
||||||
|
});
|
||||||
}
|
}
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const args = ["dsearch", "search", query, "--json"]
|
const args = ["dsearch", "search", query, "--json"];
|
||||||
|
|
||||||
if (params) {
|
if (params) {
|
||||||
if (params.limit !== undefined) {
|
if (params.limit !== undefined) {
|
||||||
args.push("-n", String(params.limit))
|
args.push("-n", String(params.limit));
|
||||||
|
}
|
||||||
|
if (params.type) {
|
||||||
|
args.push("-t", params.type);
|
||||||
}
|
}
|
||||||
if (params.ext) {
|
if (params.ext) {
|
||||||
args.push("-e", params.ext)
|
args.push("-e", params.ext);
|
||||||
|
}
|
||||||
|
if (params.folder) {
|
||||||
|
args.push("--folder", params.folder);
|
||||||
}
|
}
|
||||||
if (params.field) {
|
if (params.field) {
|
||||||
args.push("-f", params.field)
|
args.push("-f", params.field);
|
||||||
}
|
}
|
||||||
if (params.fuzzy) {
|
if (params.fuzzy) {
|
||||||
args.push("--fuzzy")
|
args.push("--fuzzy");
|
||||||
}
|
}
|
||||||
if (params.sort) {
|
if (params.sort) {
|
||||||
args.push("--sort", params.sort)
|
args.push("--sort", params.sort);
|
||||||
}
|
}
|
||||||
if (params.desc !== undefined) {
|
if (params.desc !== undefined) {
|
||||||
args.push("--desc=" + (params.desc ? "true" : "false"))
|
args.push("--desc=" + (params.desc ? "true" : "false"));
|
||||||
}
|
}
|
||||||
if (params.minSize !== undefined) {
|
if (params.minSize !== undefined) {
|
||||||
args.push("--min-size", String(params.minSize))
|
args.push("--min-size", String(params.minSize));
|
||||||
}
|
}
|
||||||
if (params.maxSize !== undefined) {
|
if (params.maxSize !== undefined) {
|
||||||
args.push("--max-size", String(params.maxSize))
|
args.push("--max-size", String(params.maxSize));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Proc.runCommand("dsearch-search", args, (stdout, exitCode) => {
|
Proc.runCommand("dsearch-search", args, (stdout, exitCode) => {
|
||||||
if (exitCode === 0) {
|
if (exitCode === 0) {
|
||||||
try {
|
try {
|
||||||
const response = JSON.parse(stdout)
|
const response = JSON.parse(stdout);
|
||||||
searchResultsReceived(response)
|
searchResultsReceived(response);
|
||||||
if (callback) {
|
if (callback) {
|
||||||
callback({ "result": response })
|
callback({
|
||||||
|
"result": response
|
||||||
|
});
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
const error = "failed to parse search response"
|
const error = "failed to parse search response";
|
||||||
errorOccurred(error)
|
errorOccurred(error);
|
||||||
if (callback) {
|
if (callback) {
|
||||||
callback({ "error": error })
|
callback({
|
||||||
|
"error": error
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (exitCode === 124) {
|
} else if (exitCode === 124) {
|
||||||
const error = "search timed out"
|
const error = "search timed out";
|
||||||
errorOccurred(error)
|
errorOccurred(error);
|
||||||
if (callback) {
|
if (callback) {
|
||||||
callback({ "error": error })
|
callback({
|
||||||
|
"error": error
|
||||||
|
});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
const error = "search failed"
|
const error = "search failed";
|
||||||
errorOccurred(error)
|
errorOccurred(error);
|
||||||
if (callback) {
|
if (callback) {
|
||||||
callback({ "error": error })
|
callback({
|
||||||
|
"error": error
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, 100, 5000)
|
}, 100, 5000);
|
||||||
}
|
}
|
||||||
|
|
||||||
function rediscover() {
|
function rediscover() {
|
||||||
checkProcess.running = true
|
checkProcess.running = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,87 +8,52 @@ import Quickshell.Io
|
|||||||
|
|
||||||
Singleton {
|
Singleton {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
property var _cache: ({})
|
|
||||||
|
|
||||||
function resolveIconPath(moddedAppId) {
|
function resolveIconPath(moddedAppId) {
|
||||||
if (!moddedAppId)
|
const entry = DesktopEntries.heuristicLookup(moddedAppId)
|
||||||
return "";
|
const appIds = [moddedAppId, moddedAppId.toLowerCase()];
|
||||||
|
|
||||||
if (_cache[moddedAppId] !== undefined)
|
|
||||||
return _cache[moddedAppId];
|
|
||||||
|
|
||||||
const result = (function() {
|
|
||||||
// 1. Try heuristic lookup (standard)
|
|
||||||
const entry = DesktopEntries.heuristicLookup(moddedAppId);
|
|
||||||
let icon = Quickshell.iconPath(entry?.icon, true);
|
|
||||||
if (icon && icon !== "")
|
|
||||||
return icon;
|
|
||||||
|
|
||||||
// 2. Try the appId itself as an icon name
|
|
||||||
icon = Quickshell.iconPath(moddedAppId, true);
|
|
||||||
if (icon && icon !== "")
|
|
||||||
return icon;
|
|
||||||
|
|
||||||
// 3. Try variations of the appId (lowercase, last part)
|
|
||||||
const appIds = [moddedAppId.toLowerCase()];
|
|
||||||
const lastPart = moddedAppId.split('.').pop();
|
const lastPart = moddedAppId.split('.').pop();
|
||||||
if (lastPart && lastPart !== moddedAppId) {
|
if (lastPart && lastPart !== moddedAppId) {
|
||||||
appIds.push(lastPart);
|
appIds.push(lastPart);
|
||||||
appIds.push(lastPart.toLowerCase());
|
|
||||||
|
const firstChar = lastPart.charAt(0);
|
||||||
|
const rest = lastPart.slice(1);
|
||||||
|
let toggled;
|
||||||
|
|
||||||
|
if (firstChar === firstChar.toLowerCase()) {
|
||||||
|
toggled = firstChar.toUpperCase() + rest;
|
||||||
|
} else {
|
||||||
|
toggled = firstChar.toLowerCase() + rest;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const id of appIds) {
|
if (toggled !== lastPart) {
|
||||||
icon = Quickshell.iconPath(id, true);
|
appIds.push(toggled);
|
||||||
if (icon && icon !== "")
|
|
||||||
return icon;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 4. Deep search in all desktop entries (if the above fail)
|
|
||||||
// This is slow-ish but only happens once for failed icons
|
|
||||||
const strippedId = moddedAppId.replace(/-bin$/, "").toLowerCase();
|
|
||||||
const allEntries = DesktopEntries.applications.values;
|
|
||||||
for (let i = 0; i < allEntries.length; i++) {
|
|
||||||
const e = allEntries[i];
|
|
||||||
const eId = (e.id || "").toLowerCase();
|
|
||||||
const eName = (e.name || "").toLowerCase();
|
|
||||||
const eExec = (e.execString || "").toLowerCase();
|
|
||||||
|
|
||||||
if (eId.includes(strippedId) || eName.includes(strippedId) || eExec.includes(strippedId)) {
|
|
||||||
icon = Quickshell.iconPath(e.icon, true);
|
|
||||||
if (icon && icon !== "")
|
|
||||||
return icon;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 5. Nix/Guix specific store check (as a last resort)
|
|
||||||
for (const appId of appIds){
|
for (const appId of appIds){
|
||||||
let execPath = entry?.execString?.replace(/\/bin.*/, "");
|
let icon = Quickshell.iconPath(entry?.icon, true)
|
||||||
if (!execPath)
|
if (icon && icon !== "") return icon
|
||||||
continue;
|
|
||||||
|
|
||||||
|
let execPath = entry?.execString?.replace(/\/bin.*/, "")
|
||||||
|
if (!execPath) continue
|
||||||
|
|
||||||
|
//Check that the app is installed with nix/guix
|
||||||
if (execPath.startsWith("/nix/store/") || execPath.startsWith("/gnu/store/")) {
|
if (execPath.startsWith("/nix/store/") || execPath.startsWith("/gnu/store/")) {
|
||||||
const basePath = execPath;
|
const basePath = execPath
|
||||||
const sizes = ["256x256", "128x128", "64x64", "48x48", "32x32", "24x24", "16x16"];
|
const sizes = ["256x256", "128x128", "64x64", "48x48", "32x32", "24x24", "16x16"]
|
||||||
|
|
||||||
let iconPath = `${basePath}/share/icons/hicolor/scalable/apps/${appId}.svg`;
|
let iconPath = `${basePath}/share/icons/hicolor/scalable/apps/${appId}.svg`
|
||||||
icon = Quickshell.iconPath(iconPath, true);
|
icon = Quickshell.iconPath(iconPath, true)
|
||||||
if (icon && icon !== "")
|
if (icon && icon !== "") return icon
|
||||||
return icon;
|
|
||||||
|
|
||||||
for (const size of sizes) {
|
for (const size of sizes) {
|
||||||
iconPath = `${basePath}/share/icons/hicolor/${size}/apps/${appId}.png`;
|
iconPath = `${basePath}/share/icons/hicolor/${size}/apps/${appId}.png`
|
||||||
icon = Quickshell.iconPath(iconPath, true);
|
icon = Quickshell.iconPath(iconPath, true)
|
||||||
if (icon && icon !== "")
|
if (icon && icon !== "") return icon
|
||||||
return icon;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return "";
|
return ""
|
||||||
})();
|
|
||||||
|
|
||||||
_cache[moddedAppId] = result;
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ Singleton {
|
|||||||
|
|
||||||
Timer {
|
Timer {
|
||||||
id: suppressResetTimer
|
id: suppressResetTimer
|
||||||
interval: 5000
|
interval: 2000
|
||||||
onTriggered: root.matugenSuppression = false
|
onTriggered: root.matugenSuppression = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -158,10 +158,7 @@ Singleton {
|
|||||||
continue;
|
continue;
|
||||||
const urg = typeof item.urgency === "number" ? item.urgency : 1;
|
const urg = typeof item.urgency === "number" ? item.urgency : 1;
|
||||||
const body = item.body || "";
|
const body = item.body || "";
|
||||||
let htmlBody = item.htmlBody || _resolveHtmlBody(body);
|
const htmlBody = item.htmlBody || _resolveHtmlBody(body);
|
||||||
if (htmlBody) {
|
|
||||||
htmlBody = htmlBody.replace(/<img\b[^>]*>/gi, "");
|
|
||||||
}
|
|
||||||
loaded.push({
|
loaded.push({
|
||||||
id: item.id || "",
|
id: item.id || "",
|
||||||
summary: item.summary || "",
|
summary: item.summary || "",
|
||||||
@@ -723,8 +720,8 @@ Singleton {
|
|||||||
}
|
}
|
||||||
|
|
||||||
required property Notification notification
|
required property Notification notification
|
||||||
readonly property string summary: (notification?.summary ?? "").replace(/<img\b[^>]*>/gi, "")
|
readonly property string summary: notification?.summary ?? ""
|
||||||
readonly property string body: (notification?.body ?? "").replace(/<img\b[^>]*>/gi, "")
|
readonly property string body: notification?.body ?? ""
|
||||||
readonly property string htmlBody: root._resolveHtmlBody(body)
|
readonly property string htmlBody: root._resolveHtmlBody(body)
|
||||||
readonly property string appIcon: notification?.appIcon ?? ""
|
readonly property string appIcon: notification?.appIcon ?? ""
|
||||||
readonly property string appName: {
|
readonly property string appName: {
|
||||||
@@ -981,34 +978,22 @@ Singleton {
|
|||||||
function _resolveHtmlBody(body) {
|
function _resolveHtmlBody(body) {
|
||||||
if (!body)
|
if (!body)
|
||||||
return "";
|
return "";
|
||||||
|
if (/<\/?[a-z][\s\S]*>/i.test(body))
|
||||||
|
return body;
|
||||||
|
|
||||||
let result = body;
|
|
||||||
|
|
||||||
if (/<\/?[a-z][\s\S]*>/i.test(body)) {
|
|
||||||
result = body;
|
|
||||||
} else {
|
|
||||||
// Decode percent-encoded URLs (e.g. https%3A%2F%2F → https://)
|
// Decode percent-encoded URLs (e.g. https%3A%2F%2F → https://)
|
||||||
let processed = body.replace(/\bhttps?%3A%2F%2F[^\s]+/gi, match => {
|
body = body.replace(/\bhttps?%3A%2F%2F[^\s]+/gi, match => {
|
||||||
try {
|
try { return decodeURIComponent(match); }
|
||||||
return decodeURIComponent(match);
|
catch (e) { return match; }
|
||||||
} catch (e) {
|
|
||||||
return match;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
if (/&(#\d+|#x[0-9a-fA-F]+|[a-zA-Z][a-zA-Z0-9]+);/.test(processed)) {
|
if (/&(#\d+|#x[0-9a-fA-F]+|[a-zA-Z][a-zA-Z0-9]+);/.test(body)) {
|
||||||
const decoded = _decodeEntities(processed);
|
const decoded = _decodeEntities(body);
|
||||||
if (/<\/?[a-z][\s\S]*>/i.test(decoded))
|
if (/<\/?[a-z][\s\S]*>/i.test(decoded))
|
||||||
result = decoded;
|
return decoded;
|
||||||
else
|
return Markdown2Html.markdownToHtml(decoded);
|
||||||
result = Markdown2Html.markdownToHtml(decoded);
|
|
||||||
} else {
|
|
||||||
result = Markdown2Html.markdownToHtml(processed);
|
|
||||||
}
|
}
|
||||||
}
|
return Markdown2Html.markdownToHtml(body);
|
||||||
|
|
||||||
// Strip out image tags to prevent IP tracking
|
|
||||||
return result.replace(/<img\b[^>]*>/gi, "");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getGroupKey(wrapper) {
|
function getGroupKey(wrapper) {
|
||||||
|
|||||||
@@ -9,29 +9,19 @@ Singleton {
|
|||||||
id: root
|
id: root
|
||||||
|
|
||||||
property var controlCenterPopout: null
|
property var controlCenterPopout: null
|
||||||
property var controlCenterLoader: null
|
|
||||||
property var notificationCenterPopout: null
|
property var notificationCenterPopout: null
|
||||||
property var notificationCenterLoader: null
|
|
||||||
property var appDrawerPopout: null
|
property var appDrawerPopout: null
|
||||||
property var appDrawerLoader: null
|
|
||||||
property var processListPopout: null
|
property var processListPopout: null
|
||||||
property var processListPopoutLoader: null
|
|
||||||
property var dankDashPopout: null
|
property var dankDashPopout: null
|
||||||
property var dankDashPopoutLoader: null
|
property var dankDashPopoutLoader: null
|
||||||
property var batteryPopout: null
|
property var batteryPopout: null
|
||||||
property var batteryPopoutLoader: null
|
|
||||||
property var vpnPopout: null
|
property var vpnPopout: null
|
||||||
property var vpnPopoutLoader: null
|
|
||||||
property var systemUpdatePopout: null
|
property var systemUpdatePopout: null
|
||||||
property var systemUpdateLoader: null
|
|
||||||
property var layoutPopout: null
|
|
||||||
property var layoutPopoutLoader: null
|
|
||||||
property var clipboardHistoryPopout: null
|
|
||||||
property var clipboardHistoryPopoutLoader: null
|
|
||||||
|
|
||||||
property var settingsModal: null
|
property var settingsModal: null
|
||||||
property var settingsModalLoader: null
|
property var settingsModalLoader: null
|
||||||
property var clipboardHistoryModal: null
|
property var clipboardHistoryModal: null
|
||||||
|
property var clipboardHistoryPopout: null
|
||||||
property var dankLauncherV2Modal: null
|
property var dankLauncherV2Modal: null
|
||||||
property var dankLauncherV2ModalLoader: null
|
property var dankLauncherV2ModalLoader: null
|
||||||
property var powerMenuModal: null
|
property var powerMenuModal: null
|
||||||
@@ -41,6 +31,8 @@ Singleton {
|
|||||||
property var notificationModal: null
|
property var notificationModal: null
|
||||||
property var wifiPasswordModal: null
|
property var wifiPasswordModal: null
|
||||||
property var wifiPasswordModalLoader: null
|
property var wifiPasswordModalLoader: null
|
||||||
|
property var wifiQRCodeModal: null
|
||||||
|
property var wifiQRCodeModalLoader: null
|
||||||
property var polkitAuthModal: null
|
property var polkitAuthModal: null
|
||||||
property var polkitAuthModalLoader: null
|
property var polkitAuthModalLoader: null
|
||||||
property var bluetoothPairingModal: null
|
property var bluetoothPairingModal: null
|
||||||
@@ -69,13 +61,6 @@ Singleton {
|
|||||||
controlCenterPopout?.close();
|
controlCenterPopout?.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
function unloadControlCenter() {
|
|
||||||
if (!controlCenterLoader)
|
|
||||||
return;
|
|
||||||
controlCenterPopout = null;
|
|
||||||
controlCenterLoader.active = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function toggleControlCenter(x, y, width, section, screen) {
|
function toggleControlCenter(x, y, width, section, screen) {
|
||||||
if (controlCenterPopout) {
|
if (controlCenterPopout) {
|
||||||
setPosition(controlCenterPopout, x, y, width, section, screen);
|
setPosition(controlCenterPopout, x, y, width, section, screen);
|
||||||
@@ -94,13 +79,6 @@ Singleton {
|
|||||||
notificationCenterPopout?.close();
|
notificationCenterPopout?.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
function unloadNotificationCenter() {
|
|
||||||
if (!notificationCenterLoader)
|
|
||||||
return;
|
|
||||||
notificationCenterPopout = null;
|
|
||||||
notificationCenterLoader.active = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function toggleNotificationCenter(x, y, width, section, screen) {
|
function toggleNotificationCenter(x, y, width, section, screen) {
|
||||||
if (notificationCenterPopout) {
|
if (notificationCenterPopout) {
|
||||||
setPosition(notificationCenterPopout, x, y, width, section, screen);
|
setPosition(notificationCenterPopout, x, y, width, section, screen);
|
||||||
@@ -119,13 +97,6 @@ Singleton {
|
|||||||
appDrawerPopout?.close();
|
appDrawerPopout?.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
function unloadAppDrawer() {
|
|
||||||
if (!appDrawerLoader)
|
|
||||||
return;
|
|
||||||
appDrawerPopout = null;
|
|
||||||
appDrawerLoader.active = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function toggleAppDrawer(x, y, width, section, screen) {
|
function toggleAppDrawer(x, y, width, section, screen) {
|
||||||
if (appDrawerPopout) {
|
if (appDrawerPopout) {
|
||||||
setPosition(appDrawerPopout, x, y, width, section, screen);
|
setPosition(appDrawerPopout, x, y, width, section, screen);
|
||||||
@@ -144,13 +115,6 @@ Singleton {
|
|||||||
processListPopout?.close();
|
processListPopout?.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
function unloadProcessListPopout() {
|
|
||||||
if (!processListPopoutLoader)
|
|
||||||
return;
|
|
||||||
processListPopout = null;
|
|
||||||
processListPopoutLoader.active = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function toggleProcessList(x, y, width, section, screen) {
|
function toggleProcessList(x, y, width, section, screen) {
|
||||||
if (processListPopout) {
|
if (processListPopout) {
|
||||||
setPosition(processListPopout, x, y, width, section, screen);
|
setPosition(processListPopout, x, y, width, section, screen);
|
||||||
@@ -199,13 +163,6 @@ Singleton {
|
|||||||
dankDashPopout.dashVisible = false;
|
dankDashPopout.dashVisible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function unloadDankDash() {
|
|
||||||
if (!dankDashPopoutLoader)
|
|
||||||
return;
|
|
||||||
dankDashPopout = null;
|
|
||||||
dankDashPopoutLoader.active = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function toggleDankDash(tabIndex, x, y, width, section, screen) {
|
function toggleDankDash(tabIndex, x, y, width, section, screen) {
|
||||||
_dankDashPendingTab = tabIndex || 0;
|
_dankDashPendingTab = tabIndex || 0;
|
||||||
if (dankDashPopout) {
|
if (dankDashPopout) {
|
||||||
@@ -262,13 +219,6 @@ Singleton {
|
|||||||
batteryPopout?.close();
|
batteryPopout?.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
function unloadBattery() {
|
|
||||||
if (!batteryPopoutLoader)
|
|
||||||
return;
|
|
||||||
batteryPopout = null;
|
|
||||||
batteryPopoutLoader.active = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function toggleBattery(x, y, width, section, screen) {
|
function toggleBattery(x, y, width, section, screen) {
|
||||||
if (batteryPopout) {
|
if (batteryPopout) {
|
||||||
setPosition(batteryPopout, x, y, width, section, screen);
|
setPosition(batteryPopout, x, y, width, section, screen);
|
||||||
@@ -287,13 +237,6 @@ Singleton {
|
|||||||
vpnPopout?.close();
|
vpnPopout?.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
function unloadVpn() {
|
|
||||||
if (!vpnPopoutLoader)
|
|
||||||
return;
|
|
||||||
vpnPopout = null;
|
|
||||||
vpnPopoutLoader.active = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function toggleVpn(x, y, width, section, screen) {
|
function toggleVpn(x, y, width, section, screen) {
|
||||||
if (vpnPopout) {
|
if (vpnPopout) {
|
||||||
setPosition(vpnPopout, x, y, width, section, screen);
|
setPosition(vpnPopout, x, y, width, section, screen);
|
||||||
@@ -312,13 +255,6 @@ Singleton {
|
|||||||
systemUpdatePopout?.close();
|
systemUpdatePopout?.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
function unloadSystemUpdate() {
|
|
||||||
if (!systemUpdateLoader)
|
|
||||||
return;
|
|
||||||
systemUpdatePopout = null;
|
|
||||||
systemUpdateLoader.active = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function toggleSystemUpdate(x, y, width, section, screen) {
|
function toggleSystemUpdate(x, y, width, section, screen) {
|
||||||
if (systemUpdatePopout) {
|
if (systemUpdatePopout) {
|
||||||
setPosition(systemUpdatePopout, x, y, width, section, screen);
|
setPosition(systemUpdatePopout, x, y, width, section, screen);
|
||||||
@@ -479,20 +415,6 @@ Singleton {
|
|||||||
clipboardHistoryModal?.close();
|
clipboardHistoryModal?.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
function unloadClipboardHistoryPopout() {
|
|
||||||
if (!clipboardHistoryPopoutLoader)
|
|
||||||
return;
|
|
||||||
clipboardHistoryPopout = null;
|
|
||||||
clipboardHistoryPopoutLoader.active = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function unloadLayoutPopout() {
|
|
||||||
if (!layoutPopoutLoader)
|
|
||||||
return;
|
|
||||||
layoutPopout = null;
|
|
||||||
layoutPopoutLoader.active = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
property bool _dankLauncherV2WantsOpen: false
|
property bool _dankLauncherV2WantsOpen: false
|
||||||
property bool _dankLauncherV2WantsToggle: false
|
property bool _dankLauncherV2WantsToggle: false
|
||||||
property string _dankLauncherV2PendingQuery: ""
|
property string _dankLauncherV2PendingQuery: ""
|
||||||
@@ -661,6 +583,13 @@ Singleton {
|
|||||||
wifiPasswordModal.show(ssid);
|
wifiPasswordModal.show(ssid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function showWifiQRCodeModal(ssid) {
|
||||||
|
if (wifiQRCodeModalLoader)
|
||||||
|
wifiQRCodeModalLoader.active = true;
|
||||||
|
if (wifiQRCodeModal)
|
||||||
|
wifiQRCodeModal.show(ssid);
|
||||||
|
}
|
||||||
|
|
||||||
function showHiddenNetworkModal() {
|
function showHiddenNetworkModal() {
|
||||||
if (wifiPasswordModalLoader)
|
if (wifiPasswordModalLoader)
|
||||||
wifiPasswordModalLoader.active = true;
|
wifiPasswordModalLoader.active = true;
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
v1.4.3
|
v1.5-beta
|
||||||
|
|||||||
@@ -236,14 +236,7 @@ Item {
|
|||||||
|
|
||||||
parent: Overlay.overlay
|
parent: Overlay.overlay
|
||||||
width: root.popupWidth === -1 ? undefined : (root.popupWidth > 0 ? root.popupWidth : (dropdown.width + root.popupWidthOffset))
|
width: root.popupWidth === -1 ? undefined : (root.popupWidth > 0 ? root.popupWidth : (dropdown.width + root.popupWidthOffset))
|
||||||
height: {
|
height: Math.min(root.maxPopupHeight, (root.enableFuzzySearch ? 54 : 0) + Math.min(filteredOptions.length, 10) * 36 + 16)
|
||||||
let h = root.enableFuzzySearch ? 54 : 0;
|
|
||||||
if (root.options.length === 0 && root.emptyText !== "")
|
|
||||||
h += 32;
|
|
||||||
else
|
|
||||||
h += Math.min(filteredOptions.length, 10) * 36;
|
|
||||||
return Math.min(root.maxPopupHeight, h + 16);
|
|
||||||
}
|
|
||||||
padding: 0
|
padding: 0
|
||||||
modal: true
|
modal: true
|
||||||
dim: false
|
dim: false
|
||||||
|
|||||||
@@ -288,10 +288,6 @@ Item {
|
|||||||
screen: root.screen
|
screen: root.screen
|
||||||
visible: false
|
visible: false
|
||||||
color: "transparent"
|
color: "transparent"
|
||||||
Component.onCompleted: {
|
|
||||||
if (typeof updatesEnabled !== "undefined")
|
|
||||||
updatesEnabled = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
WlrLayershell.namespace: root.layerNamespace + ":background"
|
WlrLayershell.namespace: root.layerNamespace + ":background"
|
||||||
WlrLayershell.layer: WlrLayershell.Top
|
WlrLayershell.layer: WlrLayershell.Top
|
||||||
|
|||||||
+212
-302
File diff suppressed because it is too large
Load Diff
@@ -21,7 +21,7 @@
|
|||||||
"%1 custom animation duration": ""
|
"%1 custom animation duration": ""
|
||||||
},
|
},
|
||||||
"%1 days ago": {
|
"%1 days ago": {
|
||||||
"%1 days ago": "hace %1 días"
|
"%1 days ago": ""
|
||||||
},
|
},
|
||||||
"%1 disconnected": {
|
"%1 disconnected": {
|
||||||
"%1 disconnected": ""
|
"%1 disconnected": ""
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
"%1 job(s)": "%1 trabajo(s)"
|
"%1 job(s)": "%1 trabajo(s)"
|
||||||
},
|
},
|
||||||
"%1 notifications": {
|
"%1 notifications": {
|
||||||
"%1 notifications": "%1 notificaciones"
|
"%1 notifications": ""
|
||||||
},
|
},
|
||||||
"%1 printer(s)": {
|
"%1 printer(s)": {
|
||||||
"%1 printer(s)": "%1 impresora(s)"
|
"%1 printer(s)": "%1 impresora(s)"
|
||||||
@@ -57,13 +57,13 @@
|
|||||||
"%1 widgets": "%1 widgets"
|
"%1 widgets": "%1 widgets"
|
||||||
},
|
},
|
||||||
"%1m ago": {
|
"%1m ago": {
|
||||||
"%1m ago": "hace %1m"
|
"%1m ago": ""
|
||||||
},
|
},
|
||||||
"(Unnamed)": {
|
"(Unnamed)": {
|
||||||
"(Unnamed)": "(Sin nombre)"
|
"(Unnamed)": "(Sin nombre)"
|
||||||
},
|
},
|
||||||
"+ %1 more": {
|
"+ %1 more": {
|
||||||
"+ %1 more": "+ %1 más"
|
"+ %1 more": ""
|
||||||
},
|
},
|
||||||
"0 = square corners": {
|
"0 = square corners": {
|
||||||
"0 = square corners": "0 = esquinas cuadradas"
|
"0 = square corners": "0 = esquinas cuadradas"
|
||||||
@@ -78,7 +78,7 @@
|
|||||||
"1 minute": "1 minuto"
|
"1 minute": "1 minuto"
|
||||||
},
|
},
|
||||||
"1 notification": {
|
"1 notification": {
|
||||||
"1 notification": "1 notificación"
|
"1 notification": ""
|
||||||
},
|
},
|
||||||
"1 second": {
|
"1 second": {
|
||||||
"1 second": "1 segundo"
|
"1 second": "1 segundo"
|
||||||
@@ -183,7 +183,7 @@
|
|||||||
"About": "Información"
|
"About": "Información"
|
||||||
},
|
},
|
||||||
"Accent Color": {
|
"Accent Color": {
|
||||||
"Accent Color": "Color de acento"
|
"Accent Color": ""
|
||||||
},
|
},
|
||||||
"Accept Jobs": {
|
"Accept Jobs": {
|
||||||
"Accept Jobs": "Aceptar trabajos"
|
"Accept Jobs": "Aceptar trabajos"
|
||||||
@@ -560,7 +560,7 @@
|
|||||||
"Available Screens (%1)": "Pantallas disponibles (%1)"
|
"Available Screens (%1)": "Pantallas disponibles (%1)"
|
||||||
},
|
},
|
||||||
"Available in Detailed and Forecast view modes": {
|
"Available in Detailed and Forecast view modes": {
|
||||||
"Available in Detailed and Forecast view modes": "Disponible en modo detallado y pronóstico"
|
"Available in Detailed and Forecast view modes": ""
|
||||||
},
|
},
|
||||||
"BSSID": {
|
"BSSID": {
|
||||||
"BSSID": "BSSID"
|
"BSSID": "BSSID"
|
||||||
@@ -659,7 +659,7 @@
|
|||||||
"Border Opacity": "Opacidad del borde"
|
"Border Opacity": "Opacidad del borde"
|
||||||
},
|
},
|
||||||
"Border Size": {
|
"Border Size": {
|
||||||
"Border Size": "Grosor del borde"
|
"Border Size": ""
|
||||||
},
|
},
|
||||||
"Border Thickness": {
|
"Border Thickness": {
|
||||||
"Border Thickness": "Grosor del borde"
|
"Border Thickness": "Grosor del borde"
|
||||||
@@ -812,7 +812,7 @@
|
|||||||
"Choose colors from palette": "Escoje colores de la paleta"
|
"Choose colors from palette": "Escoje colores de la paleta"
|
||||||
},
|
},
|
||||||
"Choose how the weather widget is displayed": {
|
"Choose how the weather widget is displayed": {
|
||||||
"Choose how the weather widget is displayed": "Elige cómo se muestra el widget del tiempo"
|
"Choose how the weather widget is displayed": ""
|
||||||
},
|
},
|
||||||
"Choose icon": {
|
"Choose icon": {
|
||||||
"Choose icon": "Elegir icono"
|
"Choose icon": "Elegir icono"
|
||||||
@@ -1010,7 +1010,7 @@
|
|||||||
"Communication": "Comunicación"
|
"Communication": "Comunicación"
|
||||||
},
|
},
|
||||||
"Compact": {
|
"Compact": {
|
||||||
"Compact": "Compacto"
|
"Compact": ""
|
||||||
},
|
},
|
||||||
"Compact Mode": {
|
"Compact Mode": {
|
||||||
"Compact Mode": "Modo compacto"
|
"Compact Mode": "Modo compacto"
|
||||||
@@ -1253,7 +1253,7 @@
|
|||||||
"Custom": "Personal"
|
"Custom": "Personal"
|
||||||
},
|
},
|
||||||
"Custom Color": {
|
"Custom Color": {
|
||||||
"Custom Color": "Color personalizado"
|
"Custom Color": ""
|
||||||
},
|
},
|
||||||
"Custom Duration": {
|
"Custom Duration": {
|
||||||
"Custom Duration": "Duracion personalizada"
|
"Custom Duration": "Duracion personalizada"
|
||||||
@@ -1439,7 +1439,7 @@
|
|||||||
"Desktop Clock": "Reloj de escritorio"
|
"Desktop Clock": "Reloj de escritorio"
|
||||||
},
|
},
|
||||||
"Detailed": {
|
"Detailed": {
|
||||||
"Detailed": "Detallado"
|
"Detailed": ""
|
||||||
},
|
},
|
||||||
"Development": {
|
"Development": {
|
||||||
"Development": "Desarrollo"
|
"Development": "Desarrollo"
|
||||||
@@ -1541,7 +1541,7 @@
|
|||||||
"Display currently focused application title": "Mostrar título de la aplicación enfocada"
|
"Display currently focused application title": "Mostrar título de la aplicación enfocada"
|
||||||
},
|
},
|
||||||
"Display hourly weather predictions": {
|
"Display hourly weather predictions": {
|
||||||
"Display hourly weather predictions": "Mostrar pronósticos por hora"
|
"Display hourly weather predictions": ""
|
||||||
},
|
},
|
||||||
"Display only workspaces that contain windows": {
|
"Display only workspaces that contain windows": {
|
||||||
"Display only workspaces that contain windows": "Mostrar solo los espacios que contengan ventanas"
|
"Display only workspaces that contain windows": "Mostrar solo los espacios que contengan ventanas"
|
||||||
@@ -1826,7 +1826,7 @@
|
|||||||
"Fade to lock screen": "Bloquear con transición suave"
|
"Fade to lock screen": "Bloquear con transición suave"
|
||||||
},
|
},
|
||||||
"Fade to monitor off": {
|
"Fade to monitor off": {
|
||||||
"Fade to monitor off": "Fundido antes de apagar monitor"
|
"Fade to monitor off": ""
|
||||||
},
|
},
|
||||||
"Failed to activate configuration": {
|
"Failed to activate configuration": {
|
||||||
"Failed to activate configuration": "Error al activar la configuración"
|
"Failed to activate configuration": "Error al activar la configuración"
|
||||||
@@ -2006,7 +2006,7 @@
|
|||||||
"Failed to write temp file for validation": "Fallo al escribir archivo temporal para la validacion"
|
"Failed to write temp file for validation": "Fallo al escribir archivo temporal para la validacion"
|
||||||
},
|
},
|
||||||
"Feels": {
|
"Feels": {
|
||||||
"Feels": "Sensación"
|
"Feels": ""
|
||||||
},
|
},
|
||||||
"Feels Like": {
|
"Feels Like": {
|
||||||
"Feels Like": "Temperatura"
|
"Feels Like": "Temperatura"
|
||||||
@@ -2089,12 +2089,6 @@
|
|||||||
"Fog": {
|
"Fog": {
|
||||||
"Fog": ""
|
"Fog": ""
|
||||||
},
|
},
|
||||||
"Folder": {
|
|
||||||
"Folder": ""
|
|
||||||
},
|
|
||||||
"Folders": {
|
|
||||||
"Folders": ""
|
|
||||||
},
|
|
||||||
"Follow Monitor Focus": {
|
"Follow Monitor Focus": {
|
||||||
"Follow Monitor Focus": ""
|
"Follow Monitor Focus": ""
|
||||||
},
|
},
|
||||||
@@ -2129,7 +2123,7 @@
|
|||||||
"Force terminal applications to always use dark color schemes": "Forzar que las aplicaciones de terminal usen esquemas de colores oscuros"
|
"Force terminal applications to always use dark color schemes": "Forzar que las aplicaciones de terminal usen esquemas de colores oscuros"
|
||||||
},
|
},
|
||||||
"Forecast": {
|
"Forecast": {
|
||||||
"Forecast": "Pronóstico"
|
"Forecast": ""
|
||||||
},
|
},
|
||||||
"Forecast Days": {
|
"Forecast Days": {
|
||||||
"Forecast Days": ""
|
"Forecast Days": ""
|
||||||
@@ -2213,7 +2207,7 @@
|
|||||||
"Gradually fade the screen before locking with a configurable grace period": "Desvanecer gradualmente la pantalla antes de bloquear, con una duración configurable"
|
"Gradually fade the screen before locking with a configurable grace period": "Desvanecer gradualmente la pantalla antes de bloquear, con una duración configurable"
|
||||||
},
|
},
|
||||||
"Gradually fade the screen before turning off monitors with a configurable grace period": {
|
"Gradually fade the screen before turning off monitors with a configurable grace period": {
|
||||||
"Gradually fade the screen before turning off monitors with a configurable grace period": "La pantalla se funde a negro antes de apagar el monitor, tras un intervalo configurable"
|
"Gradually fade the screen before turning off monitors with a configurable grace period": ""
|
||||||
},
|
},
|
||||||
"Graph Time Range": {
|
"Graph Time Range": {
|
||||||
"Graph Time Range": "Gráfico Intervalo de tiempo"
|
"Graph Time Range": "Gráfico Intervalo de tiempo"
|
||||||
@@ -2402,7 +2396,7 @@
|
|||||||
"Humidity": "Humedad"
|
"Humidity": "Humedad"
|
||||||
},
|
},
|
||||||
"Hyprland Layout Overrides": {
|
"Hyprland Layout Overrides": {
|
||||||
"Hyprland Layout Overrides": "Sobreescribir opciones de Hyprland"
|
"Hyprland Layout Overrides": ""
|
||||||
},
|
},
|
||||||
"Hyprland Options": {
|
"Hyprland Options": {
|
||||||
"Hyprland Options": ""
|
"Hyprland Options": ""
|
||||||
@@ -2419,9 +2413,6 @@
|
|||||||
"Icon": {
|
"Icon": {
|
||||||
"Icon": ""
|
"Icon": ""
|
||||||
},
|
},
|
||||||
"Icon Scale": {
|
|
||||||
"Icon Scale": ""
|
|
||||||
},
|
|
||||||
"Icon Size": {
|
"Icon Size": {
|
||||||
"Icon Size": "Tamaño de icono"
|
"Icon Size": "Tamaño de icono"
|
||||||
},
|
},
|
||||||
@@ -2903,7 +2894,7 @@
|
|||||||
"Lock before suspend": "Bloquear pantalla antes de suspender"
|
"Lock before suspend": "Bloquear pantalla antes de suspender"
|
||||||
},
|
},
|
||||||
"Lock fade grace period": {
|
"Lock fade grace period": {
|
||||||
"Lock fade grace period": "Intervalo de fundido antes de bloquear la pantalla"
|
"Lock fade grace period": ""
|
||||||
},
|
},
|
||||||
"Locked": {
|
"Locked": {
|
||||||
"Locked": ""
|
"Locked": ""
|
||||||
@@ -2942,7 +2933,7 @@
|
|||||||
"Management": "Gestión"
|
"Management": "Gestión"
|
||||||
},
|
},
|
||||||
"MangoWC Layout Overrides": {
|
"MangoWC Layout Overrides": {
|
||||||
"MangoWC Layout Overrides": "Sobreescribir opciones de MangoWC"
|
"MangoWC Layout Overrides": ""
|
||||||
},
|
},
|
||||||
"Manual Coordinates": {
|
"Manual Coordinates": {
|
||||||
"Manual Coordinates": "Coordenadas manuales"
|
"Manual Coordinates": "Coordenadas manuales"
|
||||||
@@ -3022,12 +3013,6 @@
|
|||||||
"Maximize Detection": {
|
"Maximize Detection": {
|
||||||
"Maximize Detection": "Maximizar la detección"
|
"Maximize Detection": "Maximizar la detección"
|
||||||
},
|
},
|
||||||
"Maximize Widget Icons": {
|
|
||||||
"Maximize Widget Icons": ""
|
|
||||||
},
|
|
||||||
"Maximize Widget Text": {
|
|
||||||
"Maximize Widget Text": ""
|
|
||||||
},
|
|
||||||
"Maximum Entry Size": {
|
"Maximum Entry Size": {
|
||||||
"Maximum Entry Size": "Tamaño máximo de entrada"
|
"Maximum Entry Size": "Tamaño máximo de entrada"
|
||||||
},
|
},
|
||||||
@@ -3155,7 +3140,7 @@
|
|||||||
"Monitor Configuration": "Configuracion del monitor"
|
"Monitor Configuration": "Configuracion del monitor"
|
||||||
},
|
},
|
||||||
"Monitor fade grace period": {
|
"Monitor fade grace period": {
|
||||||
"Monitor fade grace period": "Intervalo de fundido antes de apagar el monitor"
|
"Monitor fade grace period": ""
|
||||||
},
|
},
|
||||||
"Monitor whose wallpaper drives dynamic theming colors": {
|
"Monitor whose wallpaper drives dynamic theming colors": {
|
||||||
"Monitor whose wallpaper drives dynamic theming colors": "Seleccionar monitor que define los colores dinámicos"
|
"Monitor whose wallpaper drives dynamic theming colors": "Seleccionar monitor que define los colores dinámicos"
|
||||||
@@ -3379,9 +3364,6 @@
|
|||||||
"No files found": {
|
"No files found": {
|
||||||
"No files found": "Archivos no encontrados"
|
"No files found": "Archivos no encontrados"
|
||||||
},
|
},
|
||||||
"No folders found": {
|
|
||||||
"No folders found": ""
|
|
||||||
},
|
|
||||||
"No hidden apps.": {
|
"No hidden apps.": {
|
||||||
"No hidden apps.": ""
|
"No hidden apps.": ""
|
||||||
},
|
},
|
||||||
@@ -3574,9 +3556,6 @@
|
|||||||
"Open in Browser": {
|
"Open in Browser": {
|
||||||
"Open in Browser": ""
|
"Open in Browser": ""
|
||||||
},
|
},
|
||||||
"Open in terminal": {
|
|
||||||
"Open in terminal": ""
|
|
||||||
},
|
|
||||||
"Open search bar to find text": {
|
"Open search bar to find text": {
|
||||||
"Open search bar to find text": "Abrir barra de búsqueda para encontrar texto"
|
"Open search bar to find text": "Abrir barra de búsqueda para encontrar texto"
|
||||||
},
|
},
|
||||||
@@ -3904,7 +3883,7 @@
|
|||||||
"Power source": "Fuente de energia"
|
"Power source": "Fuente de energia"
|
||||||
},
|
},
|
||||||
"Precip": {
|
"Precip": {
|
||||||
"Precip": "Precipitaciones"
|
"Precip": ""
|
||||||
},
|
},
|
||||||
"Precipitation": {
|
"Precipitation": {
|
||||||
"Precipitation": ""
|
"Precipitation": ""
|
||||||
@@ -4074,9 +4053,6 @@
|
|||||||
"Remove": {
|
"Remove": {
|
||||||
"Remove": "Remover"
|
"Remove": "Remover"
|
||||||
},
|
},
|
||||||
"Remove Widget Padding": {
|
|
||||||
"Remove Widget Padding": ""
|
|
||||||
},
|
|
||||||
"Remove gaps and border when windows are maximized": {
|
"Remove gaps and border when windows are maximized": {
|
||||||
"Remove gaps and border when windows are maximized": "Eliminar espacios y bordes cuando las ventanas estan maximizadas"
|
"Remove gaps and border when windows are maximized": "Eliminar espacios y bordes cuando las ventanas estan maximizadas"
|
||||||
},
|
},
|
||||||
@@ -4174,10 +4150,10 @@
|
|||||||
"Rounded corners for windows": "Esquinas redondeadas para ventanas"
|
"Rounded corners for windows": "Esquinas redondeadas para ventanas"
|
||||||
},
|
},
|
||||||
"Rounded corners for windows (border_radius)": {
|
"Rounded corners for windows (border_radius)": {
|
||||||
"Rounded corners for windows (border_radius)": "Esquinas de ventana redondeadas (border_radius)"
|
"Rounded corners for windows (border_radius)": ""
|
||||||
},
|
},
|
||||||
"Rounded corners for windows (decoration.rounding)": {
|
"Rounded corners for windows (decoration.rounding)": {
|
||||||
"Rounded corners for windows (decoration.rounding)": "Esquinas de ventana redondeadas (decoration.rounding)"
|
"Rounded corners for windows (decoration.rounding)": ""
|
||||||
},
|
},
|
||||||
"Rule": {
|
"Rule": {
|
||||||
"Rule": ""
|
"Rule": ""
|
||||||
@@ -4227,9 +4203,6 @@
|
|||||||
"Save Notepad File": {
|
"Save Notepad File": {
|
||||||
"Save Notepad File": "Guardar archivo"
|
"Save Notepad File": "Guardar archivo"
|
||||||
},
|
},
|
||||||
"Save QR Code": {
|
|
||||||
"Save QR Code": ""
|
|
||||||
},
|
|
||||||
"Save and switch between display configurations": {
|
"Save and switch between display configurations": {
|
||||||
"Save and switch between display configurations": ""
|
"Save and switch between display configurations": ""
|
||||||
},
|
},
|
||||||
@@ -4257,9 +4230,6 @@
|
|||||||
"Scale DankBar font sizes independently": {
|
"Scale DankBar font sizes independently": {
|
||||||
"Scale DankBar font sizes independently": "Escalar fuentes de la barra independientemente"
|
"Scale DankBar font sizes independently": "Escalar fuentes de la barra independientemente"
|
||||||
},
|
},
|
||||||
"Scale DankBar icon sizes independently": {
|
|
||||||
"Scale DankBar icon sizes independently": ""
|
|
||||||
},
|
|
||||||
"Scale all font sizes throughout the shell": {
|
"Scale all font sizes throughout the shell": {
|
||||||
"Scale all font sizes throughout the shell": "Escala todos los tamaños de fuente en todo el shell"
|
"Scale all font sizes throughout the shell": "Escala todos los tamaños de fuente en todo el shell"
|
||||||
},
|
},
|
||||||
@@ -4275,9 +4245,6 @@
|
|||||||
"Science": {
|
"Science": {
|
||||||
"Science": "Ciencia"
|
"Science": "Ciencia"
|
||||||
},
|
},
|
||||||
"Score": {
|
|
||||||
"Score": ""
|
|
||||||
},
|
|
||||||
"Screen Sharing": {
|
"Screen Sharing": {
|
||||||
"Screen Sharing": ""
|
"Screen Sharing": ""
|
||||||
},
|
},
|
||||||
@@ -4504,10 +4471,10 @@
|
|||||||
"Show Dock": "Mostrar dock"
|
"Show Dock": "Mostrar dock"
|
||||||
},
|
},
|
||||||
"Show Feels Like Temperature": {
|
"Show Feels Like Temperature": {
|
||||||
"Show Feels Like Temperature": "Mostrar sensación térmica"
|
"Show Feels Like Temperature": ""
|
||||||
},
|
},
|
||||||
"Show Forecast": {
|
"Show Forecast": {
|
||||||
"Show Forecast": "Mostrar pronóstico"
|
"Show Forecast": ""
|
||||||
},
|
},
|
||||||
"Show GPU Temperature": {
|
"Show GPU Temperature": {
|
||||||
"Show GPU Temperature": "Mostrar temperatura de la GPU"
|
"Show GPU Temperature": "Mostrar temperatura de la GPU"
|
||||||
@@ -4522,10 +4489,10 @@
|
|||||||
"Show Hour Numbers": "Mostrar números de horas"
|
"Show Hour Numbers": "Mostrar números de horas"
|
||||||
},
|
},
|
||||||
"Show Hourly Forecast": {
|
"Show Hourly Forecast": {
|
||||||
"Show Hourly Forecast": "Mostrar pronóstico por hora"
|
"Show Hourly Forecast": ""
|
||||||
},
|
},
|
||||||
"Show Humidity": {
|
"Show Humidity": {
|
||||||
"Show Humidity": "Mostrar humedad"
|
"Show Humidity": ""
|
||||||
},
|
},
|
||||||
"Show Launcher Button": {
|
"Show Launcher Button": {
|
||||||
"Show Launcher Button": ""
|
"Show Launcher Button": ""
|
||||||
@@ -4534,7 +4501,7 @@
|
|||||||
"Show Line Numbers": "Mostrar números de líneas"
|
"Show Line Numbers": "Mostrar números de líneas"
|
||||||
},
|
},
|
||||||
"Show Location": {
|
"Show Location": {
|
||||||
"Show Location": "Mostrar ubicación"
|
"Show Location": ""
|
||||||
},
|
},
|
||||||
"Show Lock": {
|
"Show Lock": {
|
||||||
"Show Lock": "Mostrar Bloquear"
|
"Show Lock": "Mostrar Bloquear"
|
||||||
@@ -4567,10 +4534,10 @@
|
|||||||
"Show Power Off": "Mostrar Apagar"
|
"Show Power Off": "Mostrar Apagar"
|
||||||
},
|
},
|
||||||
"Show Precipitation Probability": {
|
"Show Precipitation Probability": {
|
||||||
"Show Precipitation Probability": "Mostrar probabilidad de precipitaciones"
|
"Show Precipitation Probability": ""
|
||||||
},
|
},
|
||||||
"Show Pressure": {
|
"Show Pressure": {
|
||||||
"Show Pressure": "Mostrar presión"
|
"Show Pressure": ""
|
||||||
},
|
},
|
||||||
"Show Reboot": {
|
"Show Reboot": {
|
||||||
"Show Reboot": "Mostrar Reiniciar"
|
"Show Reboot": "Mostrar Reiniciar"
|
||||||
@@ -4585,7 +4552,7 @@
|
|||||||
"Show Seconds": "Mostrar segundos"
|
"Show Seconds": "Mostrar segundos"
|
||||||
},
|
},
|
||||||
"Show Sunrise/Sunset": {
|
"Show Sunrise/Sunset": {
|
||||||
"Show Sunrise/Sunset": "Mostrar amanecer/anochecer"
|
"Show Sunrise/Sunset": ""
|
||||||
},
|
},
|
||||||
"Show Suspend": {
|
"Show Suspend": {
|
||||||
"Show Suspend": "Mostrar Suspender"
|
"Show Suspend": "Mostrar Suspender"
|
||||||
@@ -4594,13 +4561,13 @@
|
|||||||
"Show Top Processes": "Mostrar procesos principales"
|
"Show Top Processes": "Mostrar procesos principales"
|
||||||
},
|
},
|
||||||
"Show Weather Condition": {
|
"Show Weather Condition": {
|
||||||
"Show Weather Condition": "Mostrar estado del tiempo"
|
"Show Weather Condition": ""
|
||||||
},
|
},
|
||||||
"Show Welcome": {
|
"Show Welcome": {
|
||||||
"Show Welcome": "Mostrar bienvenida"
|
"Show Welcome": ""
|
||||||
},
|
},
|
||||||
"Show Wind Speed": {
|
"Show Wind Speed": {
|
||||||
"Show Wind Speed": "Mostrar velocidad del viento"
|
"Show Wind Speed": ""
|
||||||
},
|
},
|
||||||
"Show Workspace Apps": {
|
"Show Workspace Apps": {
|
||||||
"Show Workspace Apps": "Mostrar aplicaciones en el espacio de trabajo"
|
"Show Workspace Apps": "Mostrar aplicaciones en el espacio de trabajo"
|
||||||
@@ -5109,9 +5076,6 @@
|
|||||||
"Trigger: %1": {
|
"Trigger: %1": {
|
||||||
"Trigger: %1": ""
|
"Trigger: %1": ""
|
||||||
},
|
},
|
||||||
"Trust": {
|
|
||||||
"Trust": ""
|
|
||||||
},
|
|
||||||
"Try a different search": {
|
"Try a different search": {
|
||||||
"Try a different search": ""
|
"Try a different search": ""
|
||||||
},
|
},
|
||||||
@@ -5208,9 +5172,6 @@
|
|||||||
"Untitled": {
|
"Untitled": {
|
||||||
"Untitled": "Sin titulo"
|
"Untitled": "Sin titulo"
|
||||||
},
|
},
|
||||||
"Untrust": {
|
|
||||||
"Untrust": ""
|
|
||||||
},
|
|
||||||
"Update": {
|
"Update": {
|
||||||
"Update": ""
|
"Update": ""
|
||||||
},
|
},
|
||||||
@@ -5470,9 +5431,6 @@
|
|||||||
"WiFi Device": {
|
"WiFi Device": {
|
||||||
"WiFi Device": "Dispositivo Wi-Fi"
|
"WiFi Device": "Dispositivo Wi-Fi"
|
||||||
},
|
},
|
||||||
"WiFi QR code for ": {
|
|
||||||
"WiFi QR code for ": ""
|
|
||||||
},
|
|
||||||
"WiFi disabled": {
|
"WiFi disabled": {
|
||||||
"WiFi disabled": "Wi‑Fi desactivado"
|
"WiFi disabled": "Wi‑Fi desactivado"
|
||||||
},
|
},
|
||||||
@@ -5807,9 +5765,6 @@
|
|||||||
"events": {
|
"events": {
|
||||||
"events": "eventos"
|
"events": "eventos"
|
||||||
},
|
},
|
||||||
"ext": {
|
|
||||||
"ext": ""
|
|
||||||
},
|
|
||||||
"fallback gpu name": {
|
"fallback gpu name": {
|
||||||
"Unknown GPU": ""
|
"Unknown GPU": ""
|
||||||
},
|
},
|
||||||
@@ -5826,28 +5781,28 @@
|
|||||||
"GPU Monitoring": ""
|
"GPU Monitoring": ""
|
||||||
},
|
},
|
||||||
"greeter back button": {
|
"greeter back button": {
|
||||||
"Back": "Atrás"
|
"Back": ""
|
||||||
},
|
},
|
||||||
"greeter completion page subtitle": {
|
"greeter completion page subtitle": {
|
||||||
"DankMaterialShell is ready to use": "DankMaterialShell está listo para utilizarse"
|
"DankMaterialShell is ready to use": ""
|
||||||
},
|
},
|
||||||
"greeter completion page title": {
|
"greeter completion page title": {
|
||||||
"You're All Set!": ""
|
"You're All Set!": ""
|
||||||
},
|
},
|
||||||
"greeter configure keybinds link": {
|
"greeter configure keybinds link": {
|
||||||
"Configure Keybinds": "Configurar atajos de teclado"
|
"Configure Keybinds": ""
|
||||||
},
|
},
|
||||||
"greeter dankbar description": {
|
"greeter dankbar description": {
|
||||||
"Widgets, layout, style": ""
|
"Widgets, layout, style": ""
|
||||||
},
|
},
|
||||||
"greeter displays description": {
|
"greeter displays description": {
|
||||||
"Resolution, position, scale": "Resolución, posición, escala"
|
"Resolution, position, scale": ""
|
||||||
},
|
},
|
||||||
"greeter dock description": {
|
"greeter dock description": {
|
||||||
"Position, pinned apps": "Posición de las aplicaciones fijadas"
|
"Position, pinned apps": ""
|
||||||
},
|
},
|
||||||
"greeter doctor page button": {
|
"greeter doctor page button": {
|
||||||
"Run Again": "Ejecutar de nuevo"
|
"Run Again": ""
|
||||||
},
|
},
|
||||||
"greeter doctor page empty state": {
|
"greeter doctor page empty state": {
|
||||||
"No checks passed": "",
|
"No checks passed": "",
|
||||||
@@ -5856,46 +5811,46 @@
|
|||||||
"No warnings": ""
|
"No warnings": ""
|
||||||
},
|
},
|
||||||
"greeter doctor page error count": {
|
"greeter doctor page error count": {
|
||||||
"%1 issue(s) found": "detectado(s) %1 problema(s)"
|
"%1 issue(s) found": ""
|
||||||
},
|
},
|
||||||
"greeter doctor page loading text": {
|
"greeter doctor page loading text": {
|
||||||
"Analyzing configuration...": "Analizando la configuración..."
|
"Analyzing configuration...": ""
|
||||||
},
|
},
|
||||||
"greeter doctor page status card": {
|
"greeter doctor page status card": {
|
||||||
"Errors": "Errores",
|
"Errors": "",
|
||||||
"Info": "Información",
|
"Info": "",
|
||||||
"OK": "",
|
"OK": "",
|
||||||
"Warnings": ""
|
"Warnings": ""
|
||||||
},
|
},
|
||||||
"greeter doctor page success": {
|
"greeter doctor page success": {
|
||||||
"All checks passed": "Todas las comprobaciones fueron exitosas"
|
"All checks passed": ""
|
||||||
},
|
},
|
||||||
"greeter doctor page title": {
|
"greeter doctor page title": {
|
||||||
"System Check": ""
|
"System Check": ""
|
||||||
},
|
},
|
||||||
"greeter documentation link": {
|
"greeter documentation link": {
|
||||||
"Docs": "Documentación"
|
"Docs": ""
|
||||||
},
|
},
|
||||||
"greeter explore section header": {
|
"greeter explore section header": {
|
||||||
"Explore": "Explorar"
|
"Explore": ""
|
||||||
},
|
},
|
||||||
"greeter feature card description": {
|
"greeter feature card description": {
|
||||||
"Background app icons": "",
|
"Background app icons": "",
|
||||||
"Colors from wallpaper": "Colores del fondo de pantalla",
|
"Colors from wallpaper": "",
|
||||||
"Community themes": "Temas de la comunidad",
|
"Community themes": "",
|
||||||
"Extensible architecture": "Arquitectura extensible",
|
"Extensible architecture": "",
|
||||||
"GTK, Qt, IDEs, more": "GTK, Qt, IDE y más",
|
"GTK, Qt, IDEs, more": "",
|
||||||
"Modular widget bar": "Barra de widgets modular",
|
"Modular widget bar": "",
|
||||||
"Night mode & gamma": "",
|
"Night mode & gamma": "",
|
||||||
"Per-screen config": "",
|
"Per-screen config": "",
|
||||||
"Quick system toggles": "Configuración rápida del sistema",
|
"Quick system toggles": "",
|
||||||
"Security & privacy": ""
|
"Security & privacy": ""
|
||||||
},
|
},
|
||||||
"greeter feature card title": {
|
"greeter feature card title": {
|
||||||
"App Theming": "",
|
"App Theming": "",
|
||||||
"Control Center": "Centro de control",
|
"Control Center": "",
|
||||||
"Display Control": "Control del monitor",
|
"Display Control": "",
|
||||||
"Dynamic Theming": "Temas dinámicos",
|
"Dynamic Theming": "",
|
||||||
"Multi-Monitor": "",
|
"Multi-Monitor": "",
|
||||||
"System Tray": "",
|
"System Tray": "",
|
||||||
"Theme Registry": ""
|
"Theme Registry": ""
|
||||||
@@ -5904,22 +5859,22 @@
|
|||||||
"Plugins": ""
|
"Plugins": ""
|
||||||
},
|
},
|
||||||
"greeter feature card title | greeter settings link": {
|
"greeter feature card title | greeter settings link": {
|
||||||
"DankBar": "DankBar"
|
"DankBar": ""
|
||||||
},
|
},
|
||||||
"greeter feature card title | lock screen notifications settings card": {
|
"greeter feature card title | lock screen notifications settings card": {
|
||||||
"Lock Screen": ""
|
"Lock Screen": ""
|
||||||
},
|
},
|
||||||
"greeter finish button": {
|
"greeter finish button": {
|
||||||
"Finish": "Terminar"
|
"Finish": ""
|
||||||
},
|
},
|
||||||
"greeter first page button": {
|
"greeter first page button": {
|
||||||
"Get Started": "Comenzar"
|
"Get Started": ""
|
||||||
},
|
},
|
||||||
"greeter keybinds niri description": {
|
"greeter keybinds niri description": {
|
||||||
"niri shortcuts config": ""
|
"niri shortcuts config": ""
|
||||||
},
|
},
|
||||||
"greeter keybinds section header": {
|
"greeter keybinds section header": {
|
||||||
"DMS Shortcuts": "Atajos de DMS"
|
"DMS Shortcuts": ""
|
||||||
},
|
},
|
||||||
"greeter modal window title": {
|
"greeter modal window title": {
|
||||||
"Welcome": ""
|
"Welcome": ""
|
||||||
@@ -5931,39 +5886,39 @@
|
|||||||
"No DMS shortcuts configured": ""
|
"No DMS shortcuts configured": ""
|
||||||
},
|
},
|
||||||
"greeter notifications description": {
|
"greeter notifications description": {
|
||||||
"Popup behavior, position": "Comportamiento y posición de las notificaciones emergentes"
|
"Popup behavior, position": ""
|
||||||
},
|
},
|
||||||
"greeter settings link": {
|
"greeter settings link": {
|
||||||
"Displays": "Monitores",
|
"Displays": "",
|
||||||
"Dock": "Dock",
|
"Dock": "",
|
||||||
"Keybinds": "Atajos de teclado",
|
"Keybinds": "",
|
||||||
"Notifications": "",
|
"Notifications": "",
|
||||||
"Theme & Colors": "",
|
"Theme & Colors": "",
|
||||||
"Wallpaper": ""
|
"Wallpaper": ""
|
||||||
},
|
},
|
||||||
"greeter settings section header": {
|
"greeter settings section header": {
|
||||||
"Configure": "Configurar"
|
"Configure": ""
|
||||||
},
|
},
|
||||||
"greeter skip button": {
|
"greeter skip button": {
|
||||||
"Skip": "Pasar"
|
"Skip": ""
|
||||||
},
|
},
|
||||||
"greeter skip button tooltip": {
|
"greeter skip button tooltip": {
|
||||||
"Skip setup": ""
|
"Skip setup": ""
|
||||||
},
|
},
|
||||||
"greeter theme description": {
|
"greeter theme description": {
|
||||||
"Dynamic colors, presets": "Colores y esquemas dinámicos"
|
"Dynamic colors, presets": ""
|
||||||
},
|
},
|
||||||
"greeter themes link": {
|
"greeter themes link": {
|
||||||
"Themes": ""
|
"Themes": ""
|
||||||
},
|
},
|
||||||
"greeter wallpaper description": {
|
"greeter wallpaper description": {
|
||||||
"Background image": "Imagen de fondo"
|
"Background image": ""
|
||||||
},
|
},
|
||||||
"greeter welcome page section header": {
|
"greeter welcome page section header": {
|
||||||
"Features": "Funciones"
|
"Features": ""
|
||||||
},
|
},
|
||||||
"greeter welcome page tagline": {
|
"greeter welcome page tagline": {
|
||||||
"A modern desktop shell for Wayland compositors": "Un shell de escritorio moderno para compositores Wayland"
|
"A modern desktop shell for Wayland compositors": ""
|
||||||
},
|
},
|
||||||
"greeter welcome page title": {
|
"greeter welcome page title": {
|
||||||
"Welcome to DankMaterialShell": ""
|
"Welcome to DankMaterialShell": ""
|
||||||
@@ -6008,20 +5963,20 @@
|
|||||||
"Loading...": "Cargando..."
|
"Loading...": "Cargando..."
|
||||||
},
|
},
|
||||||
"lock screen notification mode option": {
|
"lock screen notification mode option": {
|
||||||
"App Names": "Nombre de la aplicación",
|
"App Names": "",
|
||||||
"Count Only": "Solo la cantidad",
|
"Count Only": "",
|
||||||
"Disabled": "Desactivado",
|
"Disabled": "",
|
||||||
"Full Content": "Contenido completo"
|
"Full Content": ""
|
||||||
},
|
},
|
||||||
"lock screen notification mode option | notification rule match field option": {
|
"lock screen notification mode option | notification rule match field option": {
|
||||||
"App Names": ""
|
"App Names": ""
|
||||||
},
|
},
|
||||||
"lock screen notification privacy setting": {
|
"lock screen notification privacy setting": {
|
||||||
"Control what notification information is shown on the lock screen": "Controla cuánta información de las notificaciones se muestra en la pantalla de bloqueo",
|
"Control what notification information is shown on the lock screen": "",
|
||||||
"Notification Display": ""
|
"Notification Display": ""
|
||||||
},
|
},
|
||||||
"lock screen notifications settings card": {
|
"lock screen notifications settings card": {
|
||||||
"Lock Screen": "Pantalla de bloqueo"
|
"Lock Screen": ""
|
||||||
},
|
},
|
||||||
"loginctl not available - lock integration requires DMS socket connection": {
|
"loginctl not available - lock integration requires DMS socket connection": {
|
||||||
"loginctl not available - lock integration requires DMS socket connection": "loginctl no disponible - integración requiere conexión al socket DMS"
|
"loginctl not available - lock integration requires DMS socket connection": "loginctl no disponible - integración requiere conexión al socket DMS"
|
||||||
@@ -6089,45 +6044,45 @@
|
|||||||
"No wallpaper selected": "No hay papel pintado seleccionado"
|
"No wallpaper selected": "No hay papel pintado seleccionado"
|
||||||
},
|
},
|
||||||
"notification center tab": {
|
"notification center tab": {
|
||||||
"Current": "Actuales",
|
"Current": "",
|
||||||
"History": "Historial"
|
"History": ""
|
||||||
},
|
},
|
||||||
"notification history filter": {
|
"notification history filter": {
|
||||||
"All": "Todas",
|
"All": "",
|
||||||
"Last hour": "Última hora",
|
"Last hour": "",
|
||||||
"Today": "Hoy",
|
"Today": "",
|
||||||
"Yesterday": "Ayer"
|
"Yesterday": ""
|
||||||
},
|
},
|
||||||
"notification history filter for content older than other filters": {
|
"notification history filter for content older than other filters": {
|
||||||
"Older": "Más antiguas"
|
"Older": ""
|
||||||
},
|
},
|
||||||
"notification history filter | notification history retention option": {
|
"notification history filter | notification history retention option": {
|
||||||
"30 days": "30 días",
|
"30 days": "",
|
||||||
"7 days": "7 días"
|
"7 days": ""
|
||||||
},
|
},
|
||||||
"notification history limit": {
|
"notification history limit": {
|
||||||
"Maximum number of notifications to keep": "Número máximo de notificaciones que se conservarán"
|
"Maximum number of notifications to keep": ""
|
||||||
},
|
},
|
||||||
"notification history retention option": {
|
"notification history retention option": {
|
||||||
"1 day": "1 día",
|
"1 day": "",
|
||||||
"14 days": "14 días",
|
"14 days": "",
|
||||||
"3 days": "3 días",
|
"3 days": "",
|
||||||
"Forever": "Siempre"
|
"Forever": ""
|
||||||
},
|
},
|
||||||
"notification history retention settings label": {
|
"notification history retention settings label": {
|
||||||
"History Retention": "Preservación del historial"
|
"History Retention": ""
|
||||||
},
|
},
|
||||||
"notification history setting": {
|
"notification history setting": {
|
||||||
"Auto-delete notifications older than this": "Eliminar automáticamente las notificaciones más antiguas",
|
"Auto-delete notifications older than this": "",
|
||||||
"Save critical priority notifications to history": "Guardar en el historial las notificaciones de prioridad crítica",
|
"Save critical priority notifications to history": "",
|
||||||
"Save low priority notifications to history": "Guardar en el historial las notificaciones de prioridad baja",
|
"Save low priority notifications to history": "",
|
||||||
"Save normal priority notifications to history": "Guardar en el historial las notificaciones de prioridad normal"
|
"Save normal priority notifications to history": ""
|
||||||
},
|
},
|
||||||
"notification history toggle description": {
|
"notification history toggle description": {
|
||||||
"Save dismissed notifications to history": "Guardar en el historial las notificaciones ignoradas"
|
"Save dismissed notifications to history": ""
|
||||||
},
|
},
|
||||||
"notification history toggle label": {
|
"notification history toggle label": {
|
||||||
"Enable History": "Activar historial"
|
"Enable History": ""
|
||||||
},
|
},
|
||||||
"notification privacy mode placeholder": {
|
"notification privacy mode placeholder": {
|
||||||
"Message Content": ""
|
"Message Content": ""
|
||||||
@@ -6157,7 +6112,7 @@
|
|||||||
"Normal Priority": ""
|
"Normal Priority": ""
|
||||||
},
|
},
|
||||||
"now": {
|
"now": {
|
||||||
"now": "ahora"
|
"now": ""
|
||||||
},
|
},
|
||||||
"official": {
|
"official": {
|
||||||
"official": "oficial"
|
"official": "oficial"
|
||||||
@@ -6437,7 +6392,7 @@
|
|||||||
"wtype not available - install wtype for paste support": "wtype no disponible - instala wtype para soporte de pegado"
|
"wtype not available - install wtype for paste support": "wtype no disponible - instala wtype para soporte de pegado"
|
||||||
},
|
},
|
||||||
"yesterday": {
|
"yesterday": {
|
||||||
"yesterday": "ayer"
|
"yesterday": ""
|
||||||
},
|
},
|
||||||
"• Install only from trusted sources": {
|
"• Install only from trusted sources": {
|
||||||
"• Install only from trusted sources": "• Instalar solo desde fuentes confiables"
|
"• Install only from trusted sources": "• Instalar solo desde fuentes confiables"
|
||||||
|
|||||||
@@ -770,7 +770,7 @@
|
|||||||
"Caps Lock Indicator": "نشانگر Caps Lock"
|
"Caps Lock Indicator": "نشانگر Caps Lock"
|
||||||
},
|
},
|
||||||
"Caps Lock is on": {
|
"Caps Lock is on": {
|
||||||
"Caps Lock is on": "قفل حروف بزرگ روشن است"
|
"Caps Lock is on": ""
|
||||||
},
|
},
|
||||||
"Center Section": {
|
"Center Section": {
|
||||||
"Center Section": "بخش مرکزی"
|
"Center Section": "بخش مرکزی"
|
||||||
@@ -2089,12 +2089,6 @@
|
|||||||
"Fog": {
|
"Fog": {
|
||||||
"Fog": "مه"
|
"Fog": "مه"
|
||||||
},
|
},
|
||||||
"Folder": {
|
|
||||||
"Folder": ""
|
|
||||||
},
|
|
||||||
"Folders": {
|
|
||||||
"Folders": ""
|
|
||||||
},
|
|
||||||
"Follow Monitor Focus": {
|
"Follow Monitor Focus": {
|
||||||
"Follow Monitor Focus": "فوکوس مانیتور را دنبال کن"
|
"Follow Monitor Focus": "فوکوس مانیتور را دنبال کن"
|
||||||
},
|
},
|
||||||
@@ -2419,9 +2413,6 @@
|
|||||||
"Icon": {
|
"Icon": {
|
||||||
"Icon": "آیکون"
|
"Icon": "آیکون"
|
||||||
},
|
},
|
||||||
"Icon Scale": {
|
|
||||||
"Icon Scale": ""
|
|
||||||
},
|
|
||||||
"Icon Size": {
|
"Icon Size": {
|
||||||
"Icon Size": "اندازه آیکون"
|
"Icon Size": "اندازه آیکون"
|
||||||
},
|
},
|
||||||
@@ -3022,12 +3013,6 @@
|
|||||||
"Maximize Detection": {
|
"Maximize Detection": {
|
||||||
"Maximize Detection": "تشخیص بزرگشدن پنجره"
|
"Maximize Detection": "تشخیص بزرگشدن پنجره"
|
||||||
},
|
},
|
||||||
"Maximize Widget Icons": {
|
|
||||||
"Maximize Widget Icons": ""
|
|
||||||
},
|
|
||||||
"Maximize Widget Text": {
|
|
||||||
"Maximize Widget Text": ""
|
|
||||||
},
|
|
||||||
"Maximum Entry Size": {
|
"Maximum Entry Size": {
|
||||||
"Maximum Entry Size": "حداکثر اندازه مدخل"
|
"Maximum Entry Size": "حداکثر اندازه مدخل"
|
||||||
},
|
},
|
||||||
@@ -3209,7 +3194,7 @@
|
|||||||
"Named Workspace Icons": "آیکون محیطکارهای نامدار"
|
"Named Workspace Icons": "آیکون محیطکارهای نامدار"
|
||||||
},
|
},
|
||||||
"Navigation": {
|
"Navigation": {
|
||||||
"Navigation": "پیمایش"
|
"Navigation": "مسیریابی"
|
||||||
},
|
},
|
||||||
"Network": {
|
"Network": {
|
||||||
"Network": "شبکه"
|
"Network": "شبکه"
|
||||||
@@ -3379,9 +3364,6 @@
|
|||||||
"No files found": {
|
"No files found": {
|
||||||
"No files found": "هیچ فایلی یافت نشد"
|
"No files found": "هیچ فایلی یافت نشد"
|
||||||
},
|
},
|
||||||
"No folders found": {
|
|
||||||
"No folders found": ""
|
|
||||||
},
|
|
||||||
"No hidden apps.": {
|
"No hidden apps.": {
|
||||||
"No hidden apps.": "هیچ برنامه پنهانی موجود نیست."
|
"No hidden apps.": "هیچ برنامه پنهانی موجود نیست."
|
||||||
},
|
},
|
||||||
@@ -3574,9 +3556,6 @@
|
|||||||
"Open in Browser": {
|
"Open in Browser": {
|
||||||
"Open in Browser": "باز کردن در مرورگر"
|
"Open in Browser": "باز کردن در مرورگر"
|
||||||
},
|
},
|
||||||
"Open in terminal": {
|
|
||||||
"Open in terminal": ""
|
|
||||||
},
|
|
||||||
"Open search bar to find text": {
|
"Open search bar to find text": {
|
||||||
"Open search bar to find text": "بازکردن نوار جستجو برای یافتن متن"
|
"Open search bar to find text": "بازکردن نوار جستجو برای یافتن متن"
|
||||||
},
|
},
|
||||||
@@ -4074,9 +4053,6 @@
|
|||||||
"Remove": {
|
"Remove": {
|
||||||
"Remove": "حذف"
|
"Remove": "حذف"
|
||||||
},
|
},
|
||||||
"Remove Widget Padding": {
|
|
||||||
"Remove Widget Padding": ""
|
|
||||||
},
|
|
||||||
"Remove gaps and border when windows are maximized": {
|
"Remove gaps and border when windows are maximized": {
|
||||||
"Remove gaps and border when windows are maximized": "حذف فاصلهها و حاشیه هنگام بزرگکردن پنجرهها"
|
"Remove gaps and border when windows are maximized": "حذف فاصلهها و حاشیه هنگام بزرگکردن پنجرهها"
|
||||||
},
|
},
|
||||||
@@ -4227,9 +4203,6 @@
|
|||||||
"Save Notepad File": {
|
"Save Notepad File": {
|
||||||
"Save Notepad File": "ذخیره فایل دفترچه یادداشت"
|
"Save Notepad File": "ذخیره فایل دفترچه یادداشت"
|
||||||
},
|
},
|
||||||
"Save QR Code": {
|
|
||||||
"Save QR Code": ""
|
|
||||||
},
|
|
||||||
"Save and switch between display configurations": {
|
"Save and switch between display configurations": {
|
||||||
"Save and switch between display configurations": "ذخیره و جابهجایی بین پیکربندیهای نمایشگر"
|
"Save and switch between display configurations": "ذخیره و جابهجایی بین پیکربندیهای نمایشگر"
|
||||||
},
|
},
|
||||||
@@ -4257,9 +4230,6 @@
|
|||||||
"Scale DankBar font sizes independently": {
|
"Scale DankBar font sizes independently": {
|
||||||
"Scale DankBar font sizes independently": "اندازه فونت نوار دَنک را به صورت مستقل مقیاس کن"
|
"Scale DankBar font sizes independently": "اندازه فونت نوار دَنک را به صورت مستقل مقیاس کن"
|
||||||
},
|
},
|
||||||
"Scale DankBar icon sizes independently": {
|
|
||||||
"Scale DankBar icon sizes independently": ""
|
|
||||||
},
|
|
||||||
"Scale all font sizes throughout the shell": {
|
"Scale all font sizes throughout the shell": {
|
||||||
"Scale all font sizes throughout the shell": "تمام اندازههای فونت در سراسر شِل مقیاس کن"
|
"Scale all font sizes throughout the shell": "تمام اندازههای فونت در سراسر شِل مقیاس کن"
|
||||||
},
|
},
|
||||||
@@ -4275,9 +4245,6 @@
|
|||||||
"Science": {
|
"Science": {
|
||||||
"Science": "علمی"
|
"Science": "علمی"
|
||||||
},
|
},
|
||||||
"Score": {
|
|
||||||
"Score": ""
|
|
||||||
},
|
|
||||||
"Screen Sharing": {
|
"Screen Sharing": {
|
||||||
"Screen Sharing": "اشتراکگذاری صفحه"
|
"Screen Sharing": "اشتراکگذاری صفحه"
|
||||||
},
|
},
|
||||||
@@ -5109,9 +5076,6 @@
|
|||||||
"Trigger: %1": {
|
"Trigger: %1": {
|
||||||
"Trigger: %1": "راهانداز: %1"
|
"Trigger: %1": "راهانداز: %1"
|
||||||
},
|
},
|
||||||
"Trust": {
|
|
||||||
"Trust": ""
|
|
||||||
},
|
|
||||||
"Try a different search": {
|
"Try a different search": {
|
||||||
"Try a different search": "یک جستجوی دیگر را امتحان کنید"
|
"Try a different search": "یک جستجوی دیگر را امتحان کنید"
|
||||||
},
|
},
|
||||||
@@ -5208,9 +5172,6 @@
|
|||||||
"Untitled": {
|
"Untitled": {
|
||||||
"Untitled": "بدون عنوان"
|
"Untitled": "بدون عنوان"
|
||||||
},
|
},
|
||||||
"Untrust": {
|
|
||||||
"Untrust": ""
|
|
||||||
},
|
|
||||||
"Update": {
|
"Update": {
|
||||||
"Update": "بروزرسانی"
|
"Update": "بروزرسانی"
|
||||||
},
|
},
|
||||||
@@ -5470,9 +5431,6 @@
|
|||||||
"WiFi Device": {
|
"WiFi Device": {
|
||||||
"WiFi Device": "دستگاه وایفای"
|
"WiFi Device": "دستگاه وایفای"
|
||||||
},
|
},
|
||||||
"WiFi QR code for ": {
|
|
||||||
"WiFi QR code for ": ""
|
|
||||||
},
|
|
||||||
"WiFi disabled": {
|
"WiFi disabled": {
|
||||||
"WiFi disabled": "وایفای غیرفعال"
|
"WiFi disabled": "وایفای غیرفعال"
|
||||||
},
|
},
|
||||||
@@ -5807,9 +5765,6 @@
|
|||||||
"events": {
|
"events": {
|
||||||
"events": "رویدادها"
|
"events": "رویدادها"
|
||||||
},
|
},
|
||||||
"ext": {
|
|
||||||
"ext": ""
|
|
||||||
},
|
|
||||||
"fallback gpu name": {
|
"fallback gpu name": {
|
||||||
"Unknown GPU": "کارت گرافیک ناشناخته"
|
"Unknown GPU": "کارت گرافیک ناشناخته"
|
||||||
},
|
},
|
||||||
@@ -6061,7 +6016,7 @@
|
|||||||
"ms": "ms"
|
"ms": "ms"
|
||||||
},
|
},
|
||||||
"nav": {
|
"nav": {
|
||||||
"nav": "پیمایش"
|
"nav": "جهت"
|
||||||
},
|
},
|
||||||
"neovim template description": {
|
"neovim template description": {
|
||||||
"Requires lazy plugin manager": "به مدیریت افزونه lazy نیاز دارد"
|
"Requires lazy plugin manager": "به مدیریت افزونه lazy نیاز دارد"
|
||||||
@@ -6367,13 +6322,13 @@
|
|||||||
"Wallpaper Error": "خطای تصویر پسزمینه"
|
"Wallpaper Error": "خطای تصویر پسزمینه"
|
||||||
},
|
},
|
||||||
"wallpaper fill mode": {
|
"wallpaper fill mode": {
|
||||||
"Fill": "پُر",
|
"Fill": "پرکن",
|
||||||
"Fit": "متناسب",
|
"Fit": "جاشدن",
|
||||||
"Pad": "حاشیهدار",
|
"Pad": "حاشیهدار",
|
||||||
"Stretch": "کشیده",
|
"Stretch": "کشیده",
|
||||||
"Tile": "کاشیوار",
|
"Tile": "کاشی",
|
||||||
"Tile H": "کاشیوار افقی",
|
"Tile H": "کاشی افقی",
|
||||||
"Tile V": "کاشیوار عمودی"
|
"Tile V": "کاشی عمودی"
|
||||||
},
|
},
|
||||||
"wallpaper interval": {
|
"wallpaper interval": {
|
||||||
"1 hour": "۱ ساعت",
|
"1 hour": "۱ ساعت",
|
||||||
@@ -6479,6 +6434,6 @@
|
|||||||
"• yyyy - Year (2024)": "• yyyy - سال (2024)"
|
"• yyyy - Year (2024)": "• yyyy - سال (2024)"
|
||||||
},
|
},
|
||||||
"↑/↓: Nav • Space: Expand • Enter: Action/Expand • E: Text": {
|
"↑/↓: Nav • Space: Expand • Enter: Action/Expand • E: Text": {
|
||||||
"↑/↓: Nav • Space: Expand • Enter: Action/Expand • E: Text": "↑/↓: پیمایش • Space: گسترش • Enter: اقدام/گسترش • E: متن"
|
"↑/↓: Nav • Space: Expand • Enter: Action/Expand • E: Text": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,10 +105,10 @@
|
|||||||
"2 minutes": "2 minutes"
|
"2 minutes": "2 minutes"
|
||||||
},
|
},
|
||||||
"2 seconds": {
|
"2 seconds": {
|
||||||
"2 seconds": "2 secondes"
|
"2 seconds": ""
|
||||||
},
|
},
|
||||||
"20 minutes": {
|
"20 minutes": {
|
||||||
"20 minutes": "20 minutes"
|
"20 minutes": ""
|
||||||
},
|
},
|
||||||
"24-Hour Format": {
|
"24-Hour Format": {
|
||||||
"24-Hour Format": "Format 24 Heures"
|
"24-Hour Format": "Format 24 Heures"
|
||||||
@@ -117,7 +117,7 @@
|
|||||||
"24-hour format": "Format 24 heures"
|
"24-hour format": "Format 24 heures"
|
||||||
},
|
},
|
||||||
"250 ms": {
|
"250 ms": {
|
||||||
"250 ms": "250ms"
|
"250 ms": ""
|
||||||
},
|
},
|
||||||
"270°": {
|
"270°": {
|
||||||
"270°": "270°"
|
"270°": "270°"
|
||||||
@@ -126,7 +126,7 @@
|
|||||||
"3 days": "3 jours"
|
"3 days": "3 jours"
|
||||||
},
|
},
|
||||||
"3 minutes": {
|
"3 minutes": {
|
||||||
"3 minutes": "3 minutes"
|
"3 minutes": ""
|
||||||
},
|
},
|
||||||
"3 seconds": {
|
"3 seconds": {
|
||||||
"3 seconds": "3 secondes"
|
"3 seconds": "3 secondes"
|
||||||
@@ -141,7 +141,7 @@
|
|||||||
"3rd party": "tiers"
|
"3rd party": "tiers"
|
||||||
},
|
},
|
||||||
"4 seconds": {
|
"4 seconds": {
|
||||||
"4 seconds": "4 secondes"
|
"4 seconds": ""
|
||||||
},
|
},
|
||||||
"5 minutes": {
|
"5 minutes": {
|
||||||
"5 minutes": "5 minutes"
|
"5 minutes": "5 minutes"
|
||||||
@@ -150,13 +150,13 @@
|
|||||||
"5 seconds": "5 secondes"
|
"5 seconds": "5 secondes"
|
||||||
},
|
},
|
||||||
"500 ms": {
|
"500 ms": {
|
||||||
"500 ms": "500ms"
|
"500 ms": ""
|
||||||
},
|
},
|
||||||
"7 days": {
|
"7 days": {
|
||||||
"7 days": "7 jours"
|
"7 days": "7 jours"
|
||||||
},
|
},
|
||||||
"750 ms": {
|
"750 ms": {
|
||||||
"750 ms": "750ms"
|
"750 ms": ""
|
||||||
},
|
},
|
||||||
"8 seconds": {
|
"8 seconds": {
|
||||||
"8 seconds": "8 secondes"
|
"8 seconds": "8 secondes"
|
||||||
@@ -770,7 +770,7 @@
|
|||||||
"Caps Lock Indicator": "Indicateur Verr. Maj."
|
"Caps Lock Indicator": "Indicateur Verr. Maj."
|
||||||
},
|
},
|
||||||
"Caps Lock is on": {
|
"Caps Lock is on": {
|
||||||
"Caps Lock is on": "Verr Maj est activé"
|
"Caps Lock is on": ""
|
||||||
},
|
},
|
||||||
"Center Section": {
|
"Center Section": {
|
||||||
"Center Section": "Partie centrale"
|
"Center Section": "Partie centrale"
|
||||||
@@ -1418,7 +1418,7 @@
|
|||||||
"Description": "Description"
|
"Description": "Description"
|
||||||
},
|
},
|
||||||
"Desktop": {
|
"Desktop": {
|
||||||
"Desktop": "Bureau"
|
"Desktop": ""
|
||||||
},
|
},
|
||||||
"Desktop Clock": {
|
"Desktop Clock": {
|
||||||
"Desktop Clock": "Horloge du bureau"
|
"Desktop Clock": "Horloge du bureau"
|
||||||
@@ -1592,7 +1592,7 @@
|
|||||||
"Docs": "Documentation"
|
"Docs": "Documentation"
|
||||||
},
|
},
|
||||||
"Documents": {
|
"Documents": {
|
||||||
"Documents": "Documents"
|
"Documents": ""
|
||||||
},
|
},
|
||||||
"Domain (optional)": {
|
"Domain (optional)": {
|
||||||
"Domain (optional)": "Domaine (optionnel)"
|
"Domain (optional)": "Domaine (optionnel)"
|
||||||
@@ -1607,7 +1607,7 @@
|
|||||||
"Door Open": "Porte ouverte"
|
"Door Open": "Porte ouverte"
|
||||||
},
|
},
|
||||||
"Downloads": {
|
"Downloads": {
|
||||||
"Downloads": "Téléchargements"
|
"Downloads": ""
|
||||||
},
|
},
|
||||||
"Drag to Reorder": {
|
"Drag to Reorder": {
|
||||||
"Drag to Reorder": "Glisser pour réorganiser"
|
"Drag to Reorder": "Glisser pour réorganiser"
|
||||||
@@ -2087,13 +2087,7 @@
|
|||||||
"Focused Window": "Fenêtre active"
|
"Focused Window": "Fenêtre active"
|
||||||
},
|
},
|
||||||
"Fog": {
|
"Fog": {
|
||||||
"Fog": "Brouillard"
|
"Fog": ""
|
||||||
},
|
|
||||||
"Folder": {
|
|
||||||
"Folder": ""
|
|
||||||
},
|
|
||||||
"Folders": {
|
|
||||||
"Folders": ""
|
|
||||||
},
|
},
|
||||||
"Follow Monitor Focus": {
|
"Follow Monitor Focus": {
|
||||||
"Follow Monitor Focus": "Suivre le focus de l’écran"
|
"Follow Monitor Focus": "Suivre le focus de l’écran"
|
||||||
@@ -2419,9 +2413,6 @@
|
|||||||
"Icon": {
|
"Icon": {
|
||||||
"Icon": "Icône"
|
"Icon": "Icône"
|
||||||
},
|
},
|
||||||
"Icon Scale": {
|
|
||||||
"Icon Scale": ""
|
|
||||||
},
|
|
||||||
"Icon Size": {
|
"Icon Size": {
|
||||||
"Icon Size": "Taille d'icônes"
|
"Icon Size": "Taille d'icônes"
|
||||||
},
|
},
|
||||||
@@ -2828,10 +2819,10 @@
|
|||||||
"Light Mode": "Mode Clair"
|
"Light Mode": "Mode Clair"
|
||||||
},
|
},
|
||||||
"Light Rain": {
|
"Light Rain": {
|
||||||
"Light Rain": "Pluie légère"
|
"Light Rain": ""
|
||||||
},
|
},
|
||||||
"Light Snow": {
|
"Light Snow": {
|
||||||
"Light Snow": "Neige légère"
|
"Light Snow": ""
|
||||||
},
|
},
|
||||||
"Light Snow Showers": {
|
"Light Snow Showers": {
|
||||||
"Light Snow Showers": ""
|
"Light Snow Showers": ""
|
||||||
@@ -3022,12 +3013,6 @@
|
|||||||
"Maximize Detection": {
|
"Maximize Detection": {
|
||||||
"Maximize Detection": "Détection de maximisation"
|
"Maximize Detection": "Détection de maximisation"
|
||||||
},
|
},
|
||||||
"Maximize Widget Icons": {
|
|
||||||
"Maximize Widget Icons": ""
|
|
||||||
},
|
|
||||||
"Maximize Widget Text": {
|
|
||||||
"Maximize Widget Text": ""
|
|
||||||
},
|
|
||||||
"Maximum Entry Size": {
|
"Maximum Entry Size": {
|
||||||
"Maximum Entry Size": "Taille maximale d’entrée"
|
"Maximum Entry Size": "Taille maximale d’entrée"
|
||||||
},
|
},
|
||||||
@@ -3188,7 +3173,7 @@
|
|||||||
"Moving to Paused": "Mise en pause en cours"
|
"Moving to Paused": "Mise en pause en cours"
|
||||||
},
|
},
|
||||||
"Music": {
|
"Music": {
|
||||||
"Music": "Musique"
|
"Music": ""
|
||||||
},
|
},
|
||||||
"Mute popups for %1": {
|
"Mute popups for %1": {
|
||||||
"Mute popups for %1": "Popup en sourdine pour %1"
|
"Mute popups for %1": "Popup en sourdine pour %1"
|
||||||
@@ -3379,9 +3364,6 @@
|
|||||||
"No files found": {
|
"No files found": {
|
||||||
"No files found": "Aucun fichier trouvé"
|
"No files found": "Aucun fichier trouvé"
|
||||||
},
|
},
|
||||||
"No folders found": {
|
|
||||||
"No folders found": ""
|
|
||||||
},
|
|
||||||
"No hidden apps.": {
|
"No hidden apps.": {
|
||||||
"No hidden apps.": "Aucune appli masquée."
|
"No hidden apps.": "Aucune appli masquée."
|
||||||
},
|
},
|
||||||
@@ -3574,9 +3556,6 @@
|
|||||||
"Open in Browser": {
|
"Open in Browser": {
|
||||||
"Open in Browser": "Ouvrir dans le navigateur"
|
"Open in Browser": "Ouvrir dans le navigateur"
|
||||||
},
|
},
|
||||||
"Open in terminal": {
|
|
||||||
"Open in terminal": ""
|
|
||||||
},
|
|
||||||
"Open search bar to find text": {
|
"Open search bar to find text": {
|
||||||
"Open search bar to find text": "Ouvrir la barre de recherche pour trouver du texte"
|
"Open search bar to find text": "Ouvrir la barre de recherche pour trouver du texte"
|
||||||
},
|
},
|
||||||
@@ -4074,9 +4053,6 @@
|
|||||||
"Remove": {
|
"Remove": {
|
||||||
"Remove": "Supprimer"
|
"Remove": "Supprimer"
|
||||||
},
|
},
|
||||||
"Remove Widget Padding": {
|
|
||||||
"Remove Widget Padding": ""
|
|
||||||
},
|
|
||||||
"Remove gaps and border when windows are maximized": {
|
"Remove gaps and border when windows are maximized": {
|
||||||
"Remove gaps and border when windows are maximized": "Supprimer les marges et bordures lorsque les fenêtres sont maximisées"
|
"Remove gaps and border when windows are maximized": "Supprimer les marges et bordures lorsque les fenêtres sont maximisées"
|
||||||
},
|
},
|
||||||
@@ -4227,9 +4203,6 @@
|
|||||||
"Save Notepad File": {
|
"Save Notepad File": {
|
||||||
"Save Notepad File": "Enregistrer le fichier"
|
"Save Notepad File": "Enregistrer le fichier"
|
||||||
},
|
},
|
||||||
"Save QR Code": {
|
|
||||||
"Save QR Code": ""
|
|
||||||
},
|
|
||||||
"Save and switch between display configurations": {
|
"Save and switch between display configurations": {
|
||||||
"Save and switch between display configurations": "Enregistrer et basculer entre les configurations d’affichage"
|
"Save and switch between display configurations": "Enregistrer et basculer entre les configurations d’affichage"
|
||||||
},
|
},
|
||||||
@@ -4257,9 +4230,6 @@
|
|||||||
"Scale DankBar font sizes independently": {
|
"Scale DankBar font sizes independently": {
|
||||||
"Scale DankBar font sizes independently": "Échelle des polices de la barre indépendamment"
|
"Scale DankBar font sizes independently": "Échelle des polices de la barre indépendamment"
|
||||||
},
|
},
|
||||||
"Scale DankBar icon sizes independently": {
|
|
||||||
"Scale DankBar icon sizes independently": ""
|
|
||||||
},
|
|
||||||
"Scale all font sizes throughout the shell": {
|
"Scale all font sizes throughout the shell": {
|
||||||
"Scale all font sizes throughout the shell": "Échelle de toutes les polices dans le shell"
|
"Scale all font sizes throughout the shell": "Échelle de toutes les polices dans le shell"
|
||||||
},
|
},
|
||||||
@@ -4275,9 +4245,6 @@
|
|||||||
"Science": {
|
"Science": {
|
||||||
"Science": "Science"
|
"Science": "Science"
|
||||||
},
|
},
|
||||||
"Score": {
|
|
||||||
"Score": ""
|
|
||||||
},
|
|
||||||
"Screen Sharing": {
|
"Screen Sharing": {
|
||||||
"Screen Sharing": "Partage d'écran"
|
"Screen Sharing": "Partage d'écran"
|
||||||
},
|
},
|
||||||
@@ -5109,9 +5076,6 @@
|
|||||||
"Trigger: %1": {
|
"Trigger: %1": {
|
||||||
"Trigger: %1": "Déclencheur : %1"
|
"Trigger: %1": "Déclencheur : %1"
|
||||||
},
|
},
|
||||||
"Trust": {
|
|
||||||
"Trust": ""
|
|
||||||
},
|
|
||||||
"Try a different search": {
|
"Try a different search": {
|
||||||
"Try a different search": "Essayez une recherche différente"
|
"Try a different search": "Essayez une recherche différente"
|
||||||
},
|
},
|
||||||
@@ -5208,9 +5172,6 @@
|
|||||||
"Untitled": {
|
"Untitled": {
|
||||||
"Untitled": "Sans titre"
|
"Untitled": "Sans titre"
|
||||||
},
|
},
|
||||||
"Untrust": {
|
|
||||||
"Untrust": ""
|
|
||||||
},
|
|
||||||
"Update": {
|
"Update": {
|
||||||
"Update": "Mettre à jour"
|
"Update": "Mettre à jour"
|
||||||
},
|
},
|
||||||
@@ -5389,7 +5350,7 @@
|
|||||||
"Vibrant palette with playful saturation.": "Palette vibrante avec saturation ludique."
|
"Vibrant palette with playful saturation.": "Palette vibrante avec saturation ludique."
|
||||||
},
|
},
|
||||||
"Videos": {
|
"Videos": {
|
||||||
"Videos": "Vidéos"
|
"Videos": ""
|
||||||
},
|
},
|
||||||
"View Mode": {
|
"View Mode": {
|
||||||
"View Mode": "Mode d’affichage"
|
"View Mode": "Mode d’affichage"
|
||||||
@@ -5470,9 +5431,6 @@
|
|||||||
"WiFi Device": {
|
"WiFi Device": {
|
||||||
"WiFi Device": "Appareil Wi-Fi"
|
"WiFi Device": "Appareil Wi-Fi"
|
||||||
},
|
},
|
||||||
"WiFi QR code for ": {
|
|
||||||
"WiFi QR code for ": ""
|
|
||||||
},
|
|
||||||
"WiFi disabled": {
|
"WiFi disabled": {
|
||||||
"WiFi disabled": "Wi-Fi désactivé"
|
"WiFi disabled": "Wi-Fi désactivé"
|
||||||
},
|
},
|
||||||
@@ -5807,9 +5765,6 @@
|
|||||||
"events": {
|
"events": {
|
||||||
"events": "événements"
|
"events": "événements"
|
||||||
},
|
},
|
||||||
"ext": {
|
|
||||||
"ext": ""
|
|
||||||
},
|
|
||||||
"fallback gpu name": {
|
"fallback gpu name": {
|
||||||
"Unknown GPU": "GPU inconnu"
|
"Unknown GPU": "GPU inconnu"
|
||||||
},
|
},
|
||||||
@@ -6163,22 +6118,22 @@
|
|||||||
"official": "officiel"
|
"official": "officiel"
|
||||||
},
|
},
|
||||||
"on Hyprland": {
|
"on Hyprland": {
|
||||||
"on Hyprland": "sur Hyprland"
|
"on Hyprland": ""
|
||||||
},
|
},
|
||||||
"on MangoWC": {
|
"on MangoWC": {
|
||||||
"on MangoWC": "sur MangoWC"
|
"on MangoWC": ""
|
||||||
},
|
},
|
||||||
"on Miracle WM": {
|
"on Miracle WM": {
|
||||||
"on Miracle WM": "sur Miracle WM"
|
"on Miracle WM": ""
|
||||||
},
|
},
|
||||||
"on Niri": {
|
"on Niri": {
|
||||||
"on Niri": "sur Niri"
|
"on Niri": ""
|
||||||
},
|
},
|
||||||
"on Scroll": {
|
"on Scroll": {
|
||||||
"on Scroll": "sur Scroll"
|
"on Scroll": ""
|
||||||
},
|
},
|
||||||
"on Sway": {
|
"on Sway": {
|
||||||
"on Sway": "sur Sway"
|
"on Sway": ""
|
||||||
},
|
},
|
||||||
"open": {
|
"open": {
|
||||||
"open": "ouvrir"
|
"open": "ouvrir"
|
||||||
@@ -6231,7 +6186,7 @@
|
|||||||
"You need to set either:\nQT_QPA_PLATFORMTHEME=gtk3 OR\nQT_QPA_PLATFORMTHEME=qt6ct\nas environment variables, and then restart the shell.\n\nqt6ct requires qt6ct-kde to be installed.": ""
|
"You need to set either:\nQT_QPA_PLATFORMTHEME=gtk3 OR\nQT_QPA_PLATFORMTHEME=qt6ct\nas environment variables, and then restart the shell.\n\nqt6ct requires qt6ct-kde to be installed.": ""
|
||||||
},
|
},
|
||||||
"qt theme env error title": {
|
"qt theme env error title": {
|
||||||
"Missing Environment Variables": "Variables d'environnement manquantes"
|
"Missing Environment Variables": ""
|
||||||
},
|
},
|
||||||
"read-only settings warning for NixOS home-manager users": {
|
"read-only settings warning for NixOS home-manager users": {
|
||||||
"Settings are read-only. Changes will not persist.": "Les paramètres sont en lecture seule. Les modifications ne seront pas conservées."
|
"Settings are read-only. Changes will not persist.": "Les paramètres sont en lecture seule. Les modifications ne seront pas conservées."
|
||||||
@@ -6291,7 +6246,7 @@
|
|||||||
"Load Average": "Charge moyenne"
|
"Load Average": "Charge moyenne"
|
||||||
},
|
},
|
||||||
"theme auto mode tab": {
|
"theme auto mode tab": {
|
||||||
"Location": "Localisation"
|
"Location": ""
|
||||||
},
|
},
|
||||||
"theme auto mode tab | wallpaper cycling mode tab": {
|
"theme auto mode tab | wallpaper cycling mode tab": {
|
||||||
"Time": ""
|
"Time": ""
|
||||||
@@ -6337,7 +6292,7 @@
|
|||||||
"Unknown": "Inconnu"
|
"Unknown": "Inconnu"
|
||||||
},
|
},
|
||||||
"up": {
|
"up": {
|
||||||
"up": "allumé"
|
"up": ""
|
||||||
},
|
},
|
||||||
"update dms for NM integration.": {
|
"update dms for NM integration.": {
|
||||||
"update dms for NM integration.": "Mettre à jour DMS pour l'intégration NM."
|
"update dms for NM integration.": "Mettre à jour DMS pour l'intégration NM."
|
||||||
@@ -6376,29 +6331,29 @@
|
|||||||
"Tile V": "Tuile V"
|
"Tile V": "Tuile V"
|
||||||
},
|
},
|
||||||
"wallpaper interval": {
|
"wallpaper interval": {
|
||||||
"1 hour": "1 heure",
|
"1 hour": "",
|
||||||
"1 hour 30 minutes": "1 heure et 30 minutes",
|
"1 hour 30 minutes": "",
|
||||||
"1 minute": "1 minute",
|
"1 minute": "",
|
||||||
"10 seconds": "10 secondes",
|
"10 seconds": "",
|
||||||
"12 hours": "12 heures",
|
"12 hours": "",
|
||||||
"15 minutes": "15 minutes",
|
"15 minutes": "",
|
||||||
"15 seconds": "15 secondes",
|
"15 seconds": "",
|
||||||
"2 hours": "2 heures",
|
"2 hours": "",
|
||||||
"20 seconds": "20 secondes",
|
"20 seconds": "",
|
||||||
"25 seconds": "25 secondes",
|
"25 seconds": "",
|
||||||
"3 hours": "3 heures",
|
"3 hours": "",
|
||||||
"30 minutes": "30 minutes",
|
"30 minutes": "",
|
||||||
"30 seconds": "30 secondes",
|
"30 seconds": "",
|
||||||
"35 seconds": "35 secondes",
|
"35 seconds": "",
|
||||||
"4 hours": "4 heures",
|
"4 hours": "",
|
||||||
"40 seconds": "40 secondes",
|
"40 seconds": "",
|
||||||
"45 seconds": "45 secondes",
|
"45 seconds": "",
|
||||||
"5 minutes": "5 minutes",
|
"5 minutes": "",
|
||||||
"5 seconds": "5 secondes",
|
"5 seconds": "",
|
||||||
"50 seconds": "50 secondes",
|
"50 seconds": "",
|
||||||
"55 seconds": "55 secondes",
|
"55 seconds": "",
|
||||||
"6 hours": "6 heures",
|
"6 hours": "",
|
||||||
"8 hours": "8 heures"
|
"8 hours": ""
|
||||||
},
|
},
|
||||||
"wallpaper not set label": {
|
"wallpaper not set label": {
|
||||||
"Not set": ""
|
"Not set": ""
|
||||||
@@ -6479,6 +6434,6 @@
|
|||||||
"• yyyy - Year (2024)": "• yyyy - Année (2024)"
|
"• yyyy - Year (2024)": "• yyyy - Année (2024)"
|
||||||
},
|
},
|
||||||
"↑/↓: Nav • Space: Expand • Enter: Action/Expand • E: Text": {
|
"↑/↓: Nav • Space: Expand • Enter: Action/Expand • E: Text": {
|
||||||
"↑/↓: Nav • Space: Expand • Enter: Action/Expand • E: Text": "↑/↓: Nav • Espace: Étendre • Entrée: Action/Étendre • E: Texte"
|
"↑/↓: Nav • Space: Expand • Enter: Action/Expand • E: Text": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,10 +105,10 @@
|
|||||||
"2 minutes": "2 דקות"
|
"2 minutes": "2 דקות"
|
||||||
},
|
},
|
||||||
"2 seconds": {
|
"2 seconds": {
|
||||||
"2 seconds": "2 שניות"
|
"2 seconds": ""
|
||||||
},
|
},
|
||||||
"20 minutes": {
|
"20 minutes": {
|
||||||
"20 minutes": "20 דקות"
|
"20 minutes": ""
|
||||||
},
|
},
|
||||||
"24-Hour Format": {
|
"24-Hour Format": {
|
||||||
"24-Hour Format": "תבנית 24 שעות"
|
"24-Hour Format": "תבנית 24 שעות"
|
||||||
@@ -117,7 +117,7 @@
|
|||||||
"24-hour format": "תבנית 24 שעות"
|
"24-hour format": "תבנית 24 שעות"
|
||||||
},
|
},
|
||||||
"250 ms": {
|
"250 ms": {
|
||||||
"250 ms": "250 ms"
|
"250 ms": ""
|
||||||
},
|
},
|
||||||
"270°": {
|
"270°": {
|
||||||
"270°": "270°"
|
"270°": "270°"
|
||||||
@@ -126,7 +126,7 @@
|
|||||||
"3 days": "3 ימים"
|
"3 days": "3 ימים"
|
||||||
},
|
},
|
||||||
"3 minutes": {
|
"3 minutes": {
|
||||||
"3 minutes": "3 דקות"
|
"3 minutes": ""
|
||||||
},
|
},
|
||||||
"3 seconds": {
|
"3 seconds": {
|
||||||
"3 seconds": "3 שניות"
|
"3 seconds": "3 שניות"
|
||||||
@@ -141,7 +141,7 @@
|
|||||||
"3rd party": "צד שלישי"
|
"3rd party": "צד שלישי"
|
||||||
},
|
},
|
||||||
"4 seconds": {
|
"4 seconds": {
|
||||||
"4 seconds": "4 שניות"
|
"4 seconds": ""
|
||||||
},
|
},
|
||||||
"5 minutes": {
|
"5 minutes": {
|
||||||
"5 minutes": "5 דקות"
|
"5 minutes": "5 דקות"
|
||||||
@@ -150,13 +150,13 @@
|
|||||||
"5 seconds": "5 שניות"
|
"5 seconds": "5 שניות"
|
||||||
},
|
},
|
||||||
"500 ms": {
|
"500 ms": {
|
||||||
"500 ms": "500 מילישניות"
|
"500 ms": ""
|
||||||
},
|
},
|
||||||
"7 days": {
|
"7 days": {
|
||||||
"7 days": "7 ימים"
|
"7 days": "7 ימים"
|
||||||
},
|
},
|
||||||
"750 ms": {
|
"750 ms": {
|
||||||
"750 ms": "750 מילישניות"
|
"750 ms": ""
|
||||||
},
|
},
|
||||||
"8 seconds": {
|
"8 seconds": {
|
||||||
"8 seconds": "8 שניות"
|
"8 seconds": "8 שניות"
|
||||||
@@ -171,7 +171,7 @@
|
|||||||
"A file with this name already exists. Do you want to overwrite it?": "קיים כבר קובץ עם השם זה. האם ברצונך לדרוס אותו?"
|
"A file with this name already exists. Do you want to overwrite it?": "קיים כבר קובץ עם השם זה. האם ברצונך לדרוס אותו?"
|
||||||
},
|
},
|
||||||
"AC Power": {
|
"AC Power": {
|
||||||
"AC Power": "חשמל AC"
|
"AC Power": ""
|
||||||
},
|
},
|
||||||
"API": {
|
"API": {
|
||||||
"API": "API"
|
"API": "API"
|
||||||
@@ -770,7 +770,7 @@
|
|||||||
"Caps Lock Indicator": "מחוון Caps Lock"
|
"Caps Lock Indicator": "מחוון Caps Lock"
|
||||||
},
|
},
|
||||||
"Caps Lock is on": {
|
"Caps Lock is on": {
|
||||||
"Caps Lock is on": "Caps Lock פעיל"
|
"Caps Lock is on": ""
|
||||||
},
|
},
|
||||||
"Center Section": {
|
"Center Section": {
|
||||||
"Center Section": "קטע אמצעי"
|
"Center Section": "קטע אמצעי"
|
||||||
@@ -863,7 +863,7 @@
|
|||||||
"Clear History?": "לנקות את ההיסטוריה?"
|
"Clear History?": "לנקות את ההיסטוריה?"
|
||||||
},
|
},
|
||||||
"Clear Sky": {
|
"Clear Sky": {
|
||||||
"Clear Sky": "שמיים בהירים"
|
"Clear Sky": ""
|
||||||
},
|
},
|
||||||
"Clear all history when server starts": {
|
"Clear all history when server starts": {
|
||||||
"Clear all history when server starts": "נקה/י את כל ההיסטוריה כאשר השרת מופעל"
|
"Clear all history when server starts": "נקה/י את כל ההיסטוריה כאשר השרת מופעל"
|
||||||
@@ -1418,7 +1418,7 @@
|
|||||||
"Description": "תיאור"
|
"Description": "תיאור"
|
||||||
},
|
},
|
||||||
"Desktop": {
|
"Desktop": {
|
||||||
"Desktop": "שולחן העבודה"
|
"Desktop": ""
|
||||||
},
|
},
|
||||||
"Desktop Clock": {
|
"Desktop Clock": {
|
||||||
"Desktop Clock": "שעון לשולחן העבודה"
|
"Desktop Clock": "שעון לשולחן העבודה"
|
||||||
@@ -1592,7 +1592,7 @@
|
|||||||
"Docs": "דוקיומנטציה"
|
"Docs": "דוקיומנטציה"
|
||||||
},
|
},
|
||||||
"Documents": {
|
"Documents": {
|
||||||
"Documents": "מסמכים"
|
"Documents": ""
|
||||||
},
|
},
|
||||||
"Domain (optional)": {
|
"Domain (optional)": {
|
||||||
"Domain (optional)": "דומיין (לא חובה)"
|
"Domain (optional)": "דומיין (לא חובה)"
|
||||||
@@ -1607,7 +1607,7 @@
|
|||||||
"Door Open": "דלת פתוחה"
|
"Door Open": "דלת פתוחה"
|
||||||
},
|
},
|
||||||
"Downloads": {
|
"Downloads": {
|
||||||
"Downloads": "הורדות"
|
"Downloads": ""
|
||||||
},
|
},
|
||||||
"Drag to Reorder": {
|
"Drag to Reorder": {
|
||||||
"Drag to Reorder": "גרור/גררי לסידור מחדש"
|
"Drag to Reorder": "גרור/גררי לסידור מחדש"
|
||||||
@@ -1622,7 +1622,7 @@
|
|||||||
"Driver": "מנהל התקן"
|
"Driver": "מנהל התקן"
|
||||||
},
|
},
|
||||||
"Drizzle": {
|
"Drizzle": {
|
||||||
"Drizzle": "טפטוף"
|
"Drizzle": ""
|
||||||
},
|
},
|
||||||
"Duplicate": {
|
"Duplicate": {
|
||||||
"Duplicate": "שכפל/י"
|
"Duplicate": "שכפל/י"
|
||||||
@@ -2087,13 +2087,7 @@
|
|||||||
"Focused Window": "חלון ממוקד"
|
"Focused Window": "חלון ממוקד"
|
||||||
},
|
},
|
||||||
"Fog": {
|
"Fog": {
|
||||||
"Fog": "ערפל"
|
"Fog": ""
|
||||||
},
|
|
||||||
"Folder": {
|
|
||||||
"Folder": ""
|
|
||||||
},
|
|
||||||
"Folders": {
|
|
||||||
"Folders": ""
|
|
||||||
},
|
},
|
||||||
"Follow Monitor Focus": {
|
"Follow Monitor Focus": {
|
||||||
"Follow Monitor Focus": "מעקב אחרי המסך הממוקד"
|
"Follow Monitor Focus": "מעקב אחרי המסך הממוקד"
|
||||||
@@ -2159,7 +2153,7 @@
|
|||||||
"Free VRAM/memory when the launcher is closed. May cause a slight delay when reopening.": "שחרר/י VRAM/זיכרון כאשר המשגר נסגר. עלול לגרום לעיכוב קל בפתיחה מחדש."
|
"Free VRAM/memory when the launcher is closed. May cause a slight delay when reopening.": "שחרר/י VRAM/זיכרון כאשר המשגר נסגר. עלול לגרום לעיכוב קל בפתיחה מחדש."
|
||||||
},
|
},
|
||||||
"Freezing Drizzle": {
|
"Freezing Drizzle": {
|
||||||
"Freezing Drizzle": "טפטוף קפוא"
|
"Freezing Drizzle": ""
|
||||||
},
|
},
|
||||||
"Frequency": {
|
"Frequency": {
|
||||||
"Frequency": "תדירות"
|
"Frequency": "תדירות"
|
||||||
@@ -2267,13 +2261,13 @@
|
|||||||
"Health": "בריאות"
|
"Health": "בריאות"
|
||||||
},
|
},
|
||||||
"Heavy Rain": {
|
"Heavy Rain": {
|
||||||
"Heavy Rain": "גשם כבד"
|
"Heavy Rain": ""
|
||||||
},
|
},
|
||||||
"Heavy Snow": {
|
"Heavy Snow": {
|
||||||
"Heavy Snow": "שלג כבד"
|
"Heavy Snow": ""
|
||||||
},
|
},
|
||||||
"Heavy Snow Showers": {
|
"Heavy Snow Showers": {
|
||||||
"Heavy Snow Showers": "מקלחות שלג כבדות"
|
"Heavy Snow Showers": ""
|
||||||
},
|
},
|
||||||
"Height": {
|
"Height": {
|
||||||
"Height": "גובה"
|
"Height": "גובה"
|
||||||
@@ -2375,7 +2369,7 @@
|
|||||||
"Hold to confirm (%1s)": "החזק/י לחוץ כדי לאשר (%1 שניות)"
|
"Hold to confirm (%1s)": "החזק/י לחוץ כדי לאשר (%1 שניות)"
|
||||||
},
|
},
|
||||||
"Home": {
|
"Home": {
|
||||||
"Home": "בית"
|
"Home": ""
|
||||||
},
|
},
|
||||||
"Hot Corners": {
|
"Hot Corners": {
|
||||||
"Hot Corners": "פינות חמות"
|
"Hot Corners": "פינות חמות"
|
||||||
@@ -2419,9 +2413,6 @@
|
|||||||
"Icon": {
|
"Icon": {
|
||||||
"Icon": "סמל"
|
"Icon": "סמל"
|
||||||
},
|
},
|
||||||
"Icon Scale": {
|
|
||||||
"Icon Scale": ""
|
|
||||||
},
|
|
||||||
"Icon Size": {
|
"Icon Size": {
|
||||||
"Icon Size": "גודל סמל"
|
"Icon Size": "גודל סמל"
|
||||||
},
|
},
|
||||||
@@ -2828,13 +2819,13 @@
|
|||||||
"Light Mode": "מצב בהיר"
|
"Light Mode": "מצב בהיר"
|
||||||
},
|
},
|
||||||
"Light Rain": {
|
"Light Rain": {
|
||||||
"Light Rain": "גשם קל"
|
"Light Rain": ""
|
||||||
},
|
},
|
||||||
"Light Snow": {
|
"Light Snow": {
|
||||||
"Light Snow": "שלג קל"
|
"Light Snow": ""
|
||||||
},
|
},
|
||||||
"Light Snow Showers": {
|
"Light Snow Showers": {
|
||||||
"Light Snow Showers": "מקלחות שלג קלות"
|
"Light Snow Showers": ""
|
||||||
},
|
},
|
||||||
"Linear": {
|
"Linear": {
|
||||||
"Linear": "ליניארי"
|
"Linear": "ליניארי"
|
||||||
@@ -3022,12 +3013,6 @@
|
|||||||
"Maximize Detection": {
|
"Maximize Detection": {
|
||||||
"Maximize Detection": "זיהוי הגדלה של החלון"
|
"Maximize Detection": "זיהוי הגדלה של החלון"
|
||||||
},
|
},
|
||||||
"Maximize Widget Icons": {
|
|
||||||
"Maximize Widget Icons": ""
|
|
||||||
},
|
|
||||||
"Maximize Widget Text": {
|
|
||||||
"Maximize Widget Text": ""
|
|
||||||
},
|
|
||||||
"Maximum Entry Size": {
|
"Maximum Entry Size": {
|
||||||
"Maximum Entry Size": "גודל רשומה מקסימלי"
|
"Maximum Entry Size": "גודל רשומה מקסימלי"
|
||||||
},
|
},
|
||||||
@@ -3188,7 +3173,7 @@
|
|||||||
"Moving to Paused": "עובר להשהיה"
|
"Moving to Paused": "עובר להשהיה"
|
||||||
},
|
},
|
||||||
"Music": {
|
"Music": {
|
||||||
"Music": "מוסיקה"
|
"Music": ""
|
||||||
},
|
},
|
||||||
"Mute popups for %1": {
|
"Mute popups for %1": {
|
||||||
"Mute popups for %1": "השתק/י חלונות קופצים עבור %1"
|
"Mute popups for %1": "השתק/י חלונות קופצים עבור %1"
|
||||||
@@ -3379,9 +3364,6 @@
|
|||||||
"No files found": {
|
"No files found": {
|
||||||
"No files found": "לא נמצאו קבצים"
|
"No files found": "לא נמצאו קבצים"
|
||||||
},
|
},
|
||||||
"No folders found": {
|
|
||||||
"No folders found": ""
|
|
||||||
},
|
|
||||||
"No hidden apps.": {
|
"No hidden apps.": {
|
||||||
"No hidden apps.": "אין אפליקציות מוסתרות."
|
"No hidden apps.": "אין אפליקציות מוסתרות."
|
||||||
},
|
},
|
||||||
@@ -3574,9 +3556,6 @@
|
|||||||
"Open in Browser": {
|
"Open in Browser": {
|
||||||
"Open in Browser": "פתח/י בדפדפן"
|
"Open in Browser": "פתח/י בדפדפן"
|
||||||
},
|
},
|
||||||
"Open in terminal": {
|
|
||||||
"Open in terminal": ""
|
|
||||||
},
|
|
||||||
"Open search bar to find text": {
|
"Open search bar to find text": {
|
||||||
"Open search bar to find text": "פתח/י שורת חיפוש כדי למצוא טקסט"
|
"Open search bar to find text": "פתח/י שורת חיפוש כדי למצוא טקסט"
|
||||||
},
|
},
|
||||||
@@ -3614,7 +3593,7 @@
|
|||||||
"Outputs Include Missing": "קובץ includes של פלטי תצוגה חסר"
|
"Outputs Include Missing": "קובץ includes של פלטי תצוגה חסר"
|
||||||
},
|
},
|
||||||
"Overcast": {
|
"Overcast": {
|
||||||
"Overcast": "מעונן"
|
"Overcast": ""
|
||||||
},
|
},
|
||||||
"Overflow": {
|
"Overflow": {
|
||||||
"Overflow": "גלישה"
|
"Overflow": "גלישה"
|
||||||
@@ -3674,7 +3653,7 @@
|
|||||||
"Pairing...": "מתאים..."
|
"Pairing...": "מתאים..."
|
||||||
},
|
},
|
||||||
"Partly Cloudy": {
|
"Partly Cloudy": {
|
||||||
"Partly Cloudy": "מעונן חלקית"
|
"Partly Cloudy": ""
|
||||||
},
|
},
|
||||||
"Passkey:": {
|
"Passkey:": {
|
||||||
"Passkey:": "מפתח גישה:"
|
"Passkey:": "מפתח גישה:"
|
||||||
@@ -3784,7 +3763,7 @@
|
|||||||
"Unavailable": "לא זמין"
|
"Unavailable": "לא זמין"
|
||||||
},
|
},
|
||||||
"Pictures": {
|
"Pictures": {
|
||||||
"Pictures": "תמונות"
|
"Pictures": ""
|
||||||
},
|
},
|
||||||
"Pin": {
|
"Pin": {
|
||||||
"Pin": "הצמד/י"
|
"Pin": "הצמד/י"
|
||||||
@@ -4012,7 +3991,7 @@
|
|||||||
"Protocol": "פרוטוקול"
|
"Protocol": "פרוטוקול"
|
||||||
},
|
},
|
||||||
"Quick Access": {
|
"Quick Access": {
|
||||||
"Quick Access": "גישה מהירה"
|
"Quick Access": ""
|
||||||
},
|
},
|
||||||
"Quick access to application launcher": {
|
"Quick access to application launcher": {
|
||||||
"Quick access to application launcher": "גישה מהירה למשגר האפליקציות"
|
"Quick access to application launcher": "גישה מהירה למשגר האפליקציות"
|
||||||
@@ -4033,7 +4012,7 @@
|
|||||||
"Radius": "רדיוס"
|
"Radius": "רדיוס"
|
||||||
},
|
},
|
||||||
"Rain": {
|
"Rain": {
|
||||||
"Rain": "גשם"
|
"Rain": ""
|
||||||
},
|
},
|
||||||
"Rain Chance": {
|
"Rain Chance": {
|
||||||
"Rain Chance": "סיכוי לגשם"
|
"Rain Chance": "סיכוי לגשם"
|
||||||
@@ -4074,9 +4053,6 @@
|
|||||||
"Remove": {
|
"Remove": {
|
||||||
"Remove": "הסר/י"
|
"Remove": "הסר/י"
|
||||||
},
|
},
|
||||||
"Remove Widget Padding": {
|
|
||||||
"Remove Widget Padding": ""
|
|
||||||
},
|
|
||||||
"Remove gaps and border when windows are maximized": {
|
"Remove gaps and border when windows are maximized": {
|
||||||
"Remove gaps and border when windows are maximized": "הסר/י רווחים ומסגרת כאשר חלונות ממוקסמים"
|
"Remove gaps and border when windows are maximized": "הסר/י רווחים ומסגרת כאשר חלונות ממוקסמים"
|
||||||
},
|
},
|
||||||
@@ -4105,7 +4081,7 @@
|
|||||||
"Requires DMS %1": "DMS %1 נדרש"
|
"Requires DMS %1": "DMS %1 נדרש"
|
||||||
},
|
},
|
||||||
"Requires DWL compositor": {
|
"Requires DWL compositor": {
|
||||||
"Requires DWL compositor": "קומפוזיטור DWL נדרש"
|
"Requires DWL compositor": "דורש קומפוזיטור DWL"
|
||||||
},
|
},
|
||||||
"Requires night mode support": {
|
"Requires night mode support": {
|
||||||
"Requires night mode support": "תמיכה במצב לילה נדרשת"
|
"Requires night mode support": "תמיכה במצב לילה נדרשת"
|
||||||
@@ -4227,9 +4203,6 @@
|
|||||||
"Save Notepad File": {
|
"Save Notepad File": {
|
||||||
"Save Notepad File": "שמור/י פתק כקובץ"
|
"Save Notepad File": "שמור/י פתק כקובץ"
|
||||||
},
|
},
|
||||||
"Save QR Code": {
|
|
||||||
"Save QR Code": ""
|
|
||||||
},
|
|
||||||
"Save and switch between display configurations": {
|
"Save and switch between display configurations": {
|
||||||
"Save and switch between display configurations": "שמור/שמרי והחלף/החליפי בין תצורות תצוגה"
|
"Save and switch between display configurations": "שמור/שמרי והחלף/החליפי בין תצורות תצוגה"
|
||||||
},
|
},
|
||||||
@@ -4257,9 +4230,6 @@
|
|||||||
"Scale DankBar font sizes independently": {
|
"Scale DankBar font sizes independently": {
|
||||||
"Scale DankBar font sizes independently": "שנה/י את גודל הגופנים של DankBar באופן עצמאי"
|
"Scale DankBar font sizes independently": "שנה/י את גודל הגופנים של DankBar באופן עצמאי"
|
||||||
},
|
},
|
||||||
"Scale DankBar icon sizes independently": {
|
|
||||||
"Scale DankBar icon sizes independently": ""
|
|
||||||
},
|
|
||||||
"Scale all font sizes throughout the shell": {
|
"Scale all font sizes throughout the shell": {
|
||||||
"Scale all font sizes throughout the shell": "שנה/י קנה מידה של כל גדלי הגופנים בכל המעטפת"
|
"Scale all font sizes throughout the shell": "שנה/י קנה מידה של כל גדלי הגופנים בכל המעטפת"
|
||||||
},
|
},
|
||||||
@@ -4275,9 +4245,6 @@
|
|||||||
"Science": {
|
"Science": {
|
||||||
"Science": "מדע"
|
"Science": "מדע"
|
||||||
},
|
},
|
||||||
"Score": {
|
|
||||||
"Score": ""
|
|
||||||
},
|
|
||||||
"Screen Sharing": {
|
"Screen Sharing": {
|
||||||
"Screen Sharing": "שיתוף מסך"
|
"Screen Sharing": "שיתוף מסך"
|
||||||
},
|
},
|
||||||
@@ -4543,7 +4510,7 @@
|
|||||||
"Show Log Out": "הצג/י התנתקות"
|
"Show Log Out": "הצג/י התנתקות"
|
||||||
},
|
},
|
||||||
"Show Material Design ripple animations on interactive elements": {
|
"Show Material Design ripple animations on interactive elements": {
|
||||||
"Show Material Design ripple animations on interactive elements": "הצג/י אנימציות של אדוות בעיצוב Material על גבי רכיבים אינטראקטיביים"
|
"Show Material Design ripple animations on interactive elements": "הצג/י אנימציות של אדוות Material Design על רכיבים אינטראקטיביים"
|
||||||
},
|
},
|
||||||
"Show Memory": {
|
"Show Memory": {
|
||||||
"Show Memory": "הצג/י זיכרון"
|
"Show Memory": "הצג/י זיכרון"
|
||||||
@@ -4747,7 +4714,7 @@
|
|||||||
"Snap": "הצמד/י"
|
"Snap": "הצמד/י"
|
||||||
},
|
},
|
||||||
"Snow": {
|
"Snow": {
|
||||||
"Snow": "שלג"
|
"Snow": ""
|
||||||
},
|
},
|
||||||
"Some plugins require a newer version of DMS:": {
|
"Some plugins require a newer version of DMS:": {
|
||||||
"Some plugins require a newer version of DMS:": "תוספים מסוימים דורשים גרסה חדשה יותר של DMS:"
|
"Some plugins require a newer version of DMS:": "תוספים מסוימים דורשים גרסה חדשה יותר של DMS:"
|
||||||
@@ -4846,7 +4813,7 @@
|
|||||||
"Suspend system after": "העבר/י את המערכת למצב השהיה לאחר"
|
"Suspend system after": "העבר/י את המערכת למצב השהיה לאחר"
|
||||||
},
|
},
|
||||||
"Suspend then Hibernate": {
|
"Suspend then Hibernate": {
|
||||||
"Suspend then Hibernate": "השהיה ואחריה שינה עמוקה"
|
"Suspend then Hibernate": ""
|
||||||
},
|
},
|
||||||
"Swap": {
|
"Swap": {
|
||||||
"Swap": "זיכרון החלפה (Swap)"
|
"Swap": "זיכרון החלפה (Swap)"
|
||||||
@@ -4963,7 +4930,7 @@
|
|||||||
"Third-Party Plugin Warning": "אזהרת תוסף צד שלישי"
|
"Third-Party Plugin Warning": "אזהרת תוסף צד שלישי"
|
||||||
},
|
},
|
||||||
"Third-party plugins are created by the community and are not officially supported by DankMaterialShell.\n\nThese plugins may pose security and privacy risks - install at your own risk.": {
|
"Third-party plugins are created by the community and are not officially supported by DankMaterialShell.\n\nThese plugins may pose security and privacy risks - install at your own risk.": {
|
||||||
"Third-party plugins are created by the community and are not officially supported by DankMaterialShell.\n\nThese plugins may pose security and privacy risks - install at your own risk.": "תוספי צד שלישי נוצרו על ידי הקהילה ואינם נתמכים רשמית על ידי DankMaterialShell.\n\nתוספים אלה עלולים להוות סיכוני אבטחה ופרטיות - התקן/י על אחריותך בלבד."
|
"Third-party plugins are created by the community and are not officially supported by DankMaterialShell.\n\nThese plugins may pose security and privacy risks - install at your own risk.": "תוספי צד שלישי נוצרו על ידי הקהילה ואינם נתמכים רשמית על ידי DankMaterialShell.\n\nתוספים אלה עלולים להוות סיכוני אבטחה ופרטיות - התקן/י על אחריותך."
|
||||||
},
|
},
|
||||||
"Third-party plugins are created by the community and are not officially supported by DankMaterialShell.\\n\\nThese plugins may pose security and privacy risks - install at your own risk.": {
|
"Third-party plugins are created by the community and are not officially supported by DankMaterialShell.\\n\\nThese plugins may pose security and privacy risks - install at your own risk.": {
|
||||||
"Third-party plugins are created by the community and are not officially supported by DankMaterialShell.\\n\\nThese plugins may pose security and privacy risks - install at your own risk.": "תוספי צד שלישי נוצרים על ידי הקהילה ואינם נתמכים רשמית על ידי DankMaterialShell.\\n\\nתוספים אלה עלולים להוות סיכון אבטחה ופרטיות – התקן/י אותם על אחריותך בלבד."
|
"Third-party plugins are created by the community and are not officially supported by DankMaterialShell.\\n\\nThese plugins may pose security and privacy risks - install at your own risk.": "תוספי צד שלישי נוצרים על ידי הקהילה ואינם נתמכים רשמית על ידי DankMaterialShell.\\n\\nתוספים אלה עלולים להוות סיכון אבטחה ופרטיות – התקן/י אותם על אחריותך בלבד."
|
||||||
@@ -4987,10 +4954,10 @@
|
|||||||
"This will permanently remove this saved clipboard item. This action cannot be undone.": "זה יסיר לצמיתות את פריט לוח ההעתקה השמור הזה. לא ניתן לבטל פעולה זו."
|
"This will permanently remove this saved clipboard item. This action cannot be undone.": "זה יסיר לצמיתות את פריט לוח ההעתקה השמור הזה. לא ניתן לבטל פעולה זו."
|
||||||
},
|
},
|
||||||
"Thunderstorm": {
|
"Thunderstorm": {
|
||||||
"Thunderstorm": "סערת ברקים"
|
"Thunderstorm": ""
|
||||||
},
|
},
|
||||||
"Thunderstorm with Hail": {
|
"Thunderstorm with Hail": {
|
||||||
"Thunderstorm with Hail": "סערת ברקים עם ברד"
|
"Thunderstorm with Hail": ""
|
||||||
},
|
},
|
||||||
"Tiled": {
|
"Tiled": {
|
||||||
"Tiled": "באריחים"
|
"Tiled": "באריחים"
|
||||||
@@ -5109,9 +5076,6 @@
|
|||||||
"Trigger: %1": {
|
"Trigger: %1": {
|
||||||
"Trigger: %1": "מפעיל: %1"
|
"Trigger: %1": "מפעיל: %1"
|
||||||
},
|
},
|
||||||
"Trust": {
|
|
||||||
"Trust": ""
|
|
||||||
},
|
|
||||||
"Try a different search": {
|
"Try a different search": {
|
||||||
"Try a different search": "נסה/י חיפוש אחר"
|
"Try a different search": "נסה/י חיפוש אחר"
|
||||||
},
|
},
|
||||||
@@ -5208,9 +5172,6 @@
|
|||||||
"Untitled": {
|
"Untitled": {
|
||||||
"Untitled": "ללא כותרת"
|
"Untitled": "ללא כותרת"
|
||||||
},
|
},
|
||||||
"Untrust": {
|
|
||||||
"Untrust": ""
|
|
||||||
},
|
|
||||||
"Update": {
|
"Update": {
|
||||||
"Update": "עדכן/י"
|
"Update": "עדכן/י"
|
||||||
},
|
},
|
||||||
@@ -5389,7 +5350,7 @@
|
|||||||
"Vibrant palette with playful saturation.": "פלטת צבעים עשירה עם רוויה משחקית."
|
"Vibrant palette with playful saturation.": "פלטת צבעים עשירה עם רוויה משחקית."
|
||||||
},
|
},
|
||||||
"Videos": {
|
"Videos": {
|
||||||
"Videos": "סרטונים"
|
"Videos": ""
|
||||||
},
|
},
|
||||||
"View Mode": {
|
"View Mode": {
|
||||||
"View Mode": "מצב תצוגה"
|
"View Mode": "מצב תצוגה"
|
||||||
@@ -5470,9 +5431,6 @@
|
|||||||
"WiFi Device": {
|
"WiFi Device": {
|
||||||
"WiFi Device": "התקן WiFi"
|
"WiFi Device": "התקן WiFi"
|
||||||
},
|
},
|
||||||
"WiFi QR code for ": {
|
|
||||||
"WiFi QR code for ": ""
|
|
||||||
},
|
|
||||||
"WiFi disabled": {
|
"WiFi disabled": {
|
||||||
"WiFi disabled": "WiFi מושבת"
|
"WiFi disabled": "WiFi מושבת"
|
||||||
},
|
},
|
||||||
@@ -5664,7 +5622,7 @@
|
|||||||
"Thickness": "עובי"
|
"Thickness": "עובי"
|
||||||
},
|
},
|
||||||
"brandon": {
|
"brandon": {
|
||||||
"brandon": "brandon"
|
"brandon": ""
|
||||||
},
|
},
|
||||||
"browse themes button | theme browser header | theme browser window title": {
|
"browse themes button | theme browser header | theme browser window title": {
|
||||||
"Browse Themes": "עיין/י בערכות נושא"
|
"Browse Themes": "עיין/י בערכות נושא"
|
||||||
@@ -5710,7 +5668,7 @@
|
|||||||
"Click to select a custom theme JSON file": "לחץ/י כדי לבחור קובץ JSON של ערכת נושא מותאמת אישית"
|
"Click to select a custom theme JSON file": "לחץ/י כדי לבחור קובץ JSON של ערכת נושא מותאמת אישית"
|
||||||
},
|
},
|
||||||
"dark mode wallpaper color picker title": {
|
"dark mode wallpaper color picker title": {
|
||||||
"Choose Dark Mode Color": "בחר/י צבע למצב כהה"
|
"Choose Dark Mode Color": ""
|
||||||
},
|
},
|
||||||
"dark mode wallpaper file browser title | light mode wallpaper file browser title | wallpaper file browser title": {
|
"dark mode wallpaper file browser title | light mode wallpaper file browser title | wallpaper file browser title": {
|
||||||
"Select Wallpaper": "בחר/י רקע"
|
"Select Wallpaper": "בחר/י רקע"
|
||||||
@@ -5725,13 +5683,13 @@
|
|||||||
"Month Date": "חודש תאריך",
|
"Month Date": "חודש תאריך",
|
||||||
"Numeric (D/M)": "מספרי (D/M)",
|
"Numeric (D/M)": "מספרי (D/M)",
|
||||||
"Numeric (M/D)": "מספרי (M/D)",
|
"Numeric (M/D)": "מספרי (M/D)",
|
||||||
"System Default": "ברירת מחדל של המערכת"
|
"System Default": "ברירת מחדל מערכת"
|
||||||
},
|
},
|
||||||
"days": {
|
"days": {
|
||||||
"days": "ימים"
|
"days": "ימים"
|
||||||
},
|
},
|
||||||
"default monitor label suffix": {
|
"default monitor label suffix": {
|
||||||
"(Default)": "(ברירת מחדל)"
|
"(Default)": ""
|
||||||
},
|
},
|
||||||
"dgop not available": {
|
"dgop not available": {
|
||||||
"dgop not available": "dgop אינו זמין"
|
"dgop not available": "dgop אינו זמין"
|
||||||
@@ -5807,9 +5765,6 @@
|
|||||||
"events": {
|
"events": {
|
||||||
"events": "אירועים"
|
"events": "אירועים"
|
||||||
},
|
},
|
||||||
"ext": {
|
|
||||||
"ext": ""
|
|
||||||
},
|
|
||||||
"fallback gpu name": {
|
"fallback gpu name": {
|
||||||
"Unknown GPU": "GPU לא ידוע"
|
"Unknown GPU": "GPU לא ידוע"
|
||||||
},
|
},
|
||||||
@@ -6002,7 +5957,7 @@
|
|||||||
"leave empty for default": "השאר/י ריק לברירת מחדל"
|
"leave empty for default": "השאר/י ריק לברירת מחדל"
|
||||||
},
|
},
|
||||||
"light mode wallpaper color picker title": {
|
"light mode wallpaper color picker title": {
|
||||||
"Choose Light Mode Color": "בחר/י צבע למצב בהיר"
|
"Choose Light Mode Color": ""
|
||||||
},
|
},
|
||||||
"loading indicator": {
|
"loading indicator": {
|
||||||
"Loading...": "טוען..."
|
"Loading...": "טוען..."
|
||||||
@@ -6064,7 +6019,7 @@
|
|||||||
"nav": "ניווט"
|
"nav": "ניווט"
|
||||||
},
|
},
|
||||||
"neovim template description": {
|
"neovim template description": {
|
||||||
"Requires lazy plugin manager": "מנהל התוספים 'lazy' נדרש"
|
"Requires lazy plugin manager": ""
|
||||||
},
|
},
|
||||||
"network status": {
|
"network status": {
|
||||||
"Connected": "מחובר",
|
"Connected": "מחובר",
|
||||||
@@ -6080,7 +6035,7 @@
|
|||||||
"No custom theme file": "אין קובץ ערכת נושא מותאמת אישית"
|
"No custom theme file": "אין קובץ ערכת נושא מותאמת אישית"
|
||||||
},
|
},
|
||||||
"no monitors available label": {
|
"no monitors available label": {
|
||||||
"No monitors": "אין מסכים"
|
"No monitors": ""
|
||||||
},
|
},
|
||||||
"no registry themes installed hint": {
|
"no registry themes installed hint": {
|
||||||
"No themes installed. Browse themes to install from the registry.": "אין ערכות נושא מותקנות. עיין/י בערכות נושא להתקנה מהמאגר."
|
"No themes installed. Browse themes to install from the registry.": "אין ערכות נושא מותקנות. עיין/י בערכות נושא להתקנה מהמאגר."
|
||||||
@@ -6163,22 +6118,22 @@
|
|||||||
"official": "רשמי"
|
"official": "רשמי"
|
||||||
},
|
},
|
||||||
"on Hyprland": {
|
"on Hyprland": {
|
||||||
"on Hyprland": "על Hyprland"
|
"on Hyprland": ""
|
||||||
},
|
},
|
||||||
"on MangoWC": {
|
"on MangoWC": {
|
||||||
"on MangoWC": "על MangoWC"
|
"on MangoWC": ""
|
||||||
},
|
},
|
||||||
"on Miracle WM": {
|
"on Miracle WM": {
|
||||||
"on Miracle WM": "על Miracle WM"
|
"on Miracle WM": ""
|
||||||
},
|
},
|
||||||
"on Niri": {
|
"on Niri": {
|
||||||
"on Niri": "על Niri"
|
"on Niri": ""
|
||||||
},
|
},
|
||||||
"on Scroll": {
|
"on Scroll": {
|
||||||
"on Scroll": "על Scroll"
|
"on Scroll": ""
|
||||||
},
|
},
|
||||||
"on Sway": {
|
"on Sway": {
|
||||||
"on Sway": "על Sway"
|
"on Sway": ""
|
||||||
},
|
},
|
||||||
"open": {
|
"open": {
|
||||||
"open": "פתח/י"
|
"open": "פתח/י"
|
||||||
@@ -6228,10 +6183,10 @@
|
|||||||
"Select Profile Image": "בחר/י תמונת פרופיל"
|
"Select Profile Image": "בחר/י תמונת פרופיל"
|
||||||
},
|
},
|
||||||
"qt theme env error body": {
|
"qt theme env error body": {
|
||||||
"You need to set either:\nQT_QPA_PLATFORMTHEME=gtk3 OR\nQT_QPA_PLATFORMTHEME=qt6ct\nas environment variables, and then restart the shell.\n\nqt6ct requires qt6ct-kde to be installed.": "עליך להגדיר את אחד מהמשתנים הבאים:\nQT_QPA_PLATFORMTHEME=gtk3 או\nQT_QPA_PLATFORMTHEME=qt6ct\nכמשתני סביבה ולאחר מכן להפעיל מחדש את DMS.\n\n* qt6ct דורש התקנה של qt6ct-kde."
|
"You need to set either:\nQT_QPA_PLATFORMTHEME=gtk3 OR\nQT_QPA_PLATFORMTHEME=qt6ct\nas environment variables, and then restart the shell.\n\nqt6ct requires qt6ct-kde to be installed.": ""
|
||||||
},
|
},
|
||||||
"qt theme env error title": {
|
"qt theme env error title": {
|
||||||
"Missing Environment Variables": "משתני סביבה חסרים"
|
"Missing Environment Variables": ""
|
||||||
},
|
},
|
||||||
"read-only settings warning for NixOS home-manager users": {
|
"read-only settings warning for NixOS home-manager users": {
|
||||||
"Settings are read-only. Changes will not persist.": "ההגדרות הן לקריאה בלבד. שינויים לא יישמרו."
|
"Settings are read-only. Changes will not persist.": "ההגדרות הן לקריאה בלבד. שינויים לא יישמרו."
|
||||||
@@ -6291,10 +6246,10 @@
|
|||||||
"Load Average": "עומס ממוצע"
|
"Load Average": "עומס ממוצע"
|
||||||
},
|
},
|
||||||
"theme auto mode tab": {
|
"theme auto mode tab": {
|
||||||
"Location": "מיקום"
|
"Location": ""
|
||||||
},
|
},
|
||||||
"theme auto mode tab | wallpaper cycling mode tab": {
|
"theme auto mode tab | wallpaper cycling mode tab": {
|
||||||
"Time": "זמן"
|
"Time": ""
|
||||||
},
|
},
|
||||||
"theme browser description": {
|
"theme browser description": {
|
||||||
"Install color themes from the DMS theme registry": "התקן/י ערכות צבעים ממאגר ערכות הנושא של DMS"
|
"Install color themes from the DMS theme registry": "התקן/י ערכות צבעים ממאגר ערכות הנושא של DMS"
|
||||||
@@ -6337,7 +6292,7 @@
|
|||||||
"Unknown": "לא ידוע"
|
"Unknown": "לא ידוע"
|
||||||
},
|
},
|
||||||
"up": {
|
"up": {
|
||||||
"up": "פועל"
|
"up": ""
|
||||||
},
|
},
|
||||||
"update dms for NM integration.": {
|
"update dms for NM integration.": {
|
||||||
"update dms for NM integration.": "עדכן/י את DMS כדי לאפשר אינטגרציה עם NM."
|
"update dms for NM integration.": "עדכן/י את DMS כדי לאפשר אינטגרציה עם NM."
|
||||||
@@ -6352,10 +6307,10 @@
|
|||||||
"Requires %1": "גרסה %1 נדרשת"
|
"Requires %1": "גרסה %1 נדרשת"
|
||||||
},
|
},
|
||||||
"wallpaper color picker title": {
|
"wallpaper color picker title": {
|
||||||
"Choose Wallpaper Color": "בחר/י צבע לרקע"
|
"Choose Wallpaper Color": ""
|
||||||
},
|
},
|
||||||
"wallpaper cycling mode tab": {
|
"wallpaper cycling mode tab": {
|
||||||
"Interval": "מרווח זמן"
|
"Interval": ""
|
||||||
},
|
},
|
||||||
"wallpaper directory file browser title": {
|
"wallpaper directory file browser title": {
|
||||||
"Select Wallpaper Directory": "בחר/י תיקיית רקעים"
|
"Select Wallpaper Directory": "בחר/י תיקיית רקעים"
|
||||||
@@ -6376,32 +6331,32 @@
|
|||||||
"Tile V": "אריח אנכי"
|
"Tile V": "אריח אנכי"
|
||||||
},
|
},
|
||||||
"wallpaper interval": {
|
"wallpaper interval": {
|
||||||
"1 hour": "שעה אחת",
|
"1 hour": "",
|
||||||
"1 hour 30 minutes": "שעה וחצי (ו30 דקות)",
|
"1 hour 30 minutes": "",
|
||||||
"1 minute": "דקה אחת",
|
"1 minute": "",
|
||||||
"10 seconds": "10 שניות",
|
"10 seconds": "",
|
||||||
"12 hours": "12 שעות",
|
"12 hours": "",
|
||||||
"15 minutes": "15 דקות",
|
"15 minutes": "",
|
||||||
"15 seconds": "15 שניות",
|
"15 seconds": "",
|
||||||
"2 hours": "2 שעות",
|
"2 hours": "",
|
||||||
"20 seconds": "20 שניות",
|
"20 seconds": "",
|
||||||
"25 seconds": "25 שניות",
|
"25 seconds": "",
|
||||||
"3 hours": "3 שעות",
|
"3 hours": "",
|
||||||
"30 minutes": "30 דקות",
|
"30 minutes": "",
|
||||||
"30 seconds": "30 שניות",
|
"30 seconds": "",
|
||||||
"35 seconds": "35 שניות",
|
"35 seconds": "",
|
||||||
"4 hours": "4 שעות",
|
"4 hours": "",
|
||||||
"40 seconds": "40 שניות",
|
"40 seconds": "",
|
||||||
"45 seconds": "45 שניות",
|
"45 seconds": "",
|
||||||
"5 minutes": "5 דקות",
|
"5 minutes": "",
|
||||||
"5 seconds": "5 שניות",
|
"5 seconds": "",
|
||||||
"50 seconds": "50 שניות",
|
"50 seconds": "",
|
||||||
"55 seconds": "55 שניות",
|
"55 seconds": "",
|
||||||
"6 hours": "6 שעות",
|
"6 hours": "",
|
||||||
"8 hours": "8 שעות"
|
"8 hours": ""
|
||||||
},
|
},
|
||||||
"wallpaper not set label": {
|
"wallpaper not set label": {
|
||||||
"Not set": "לא מוגדר"
|
"Not set": ""
|
||||||
},
|
},
|
||||||
"wallpaper processing error": {
|
"wallpaper processing error": {
|
||||||
"Wallpaper processing failed": "עיבוד תמונת הרקע נכשל"
|
"Wallpaper processing failed": "עיבוד תמונת הרקע נכשל"
|
||||||
@@ -6479,6 +6434,6 @@
|
|||||||
"• yyyy - Year (2024)": "• yyyy - שנה (2024)"
|
"• yyyy - Year (2024)": "• yyyy - שנה (2024)"
|
||||||
},
|
},
|
||||||
"↑/↓: Nav • Space: Expand • Enter: Action/Expand • E: Text": {
|
"↑/↓: Nav • Space: Expand • Enter: Action/Expand • E: Text": {
|
||||||
"↑/↓: Nav • Space: Expand • Enter: Action/Expand • E: Text": "↑/↓: ניווט • Space: הרחב • Enter: פעולה/הרחבה • E: טקסט"
|
"↑/↓: Nav • Space: Expand • Enter: Action/Expand • E: Text": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -2089,12 +2089,6 @@
|
|||||||
"Fog": {
|
"Fog": {
|
||||||
"Fog": "Nebbia"
|
"Fog": "Nebbia"
|
||||||
},
|
},
|
||||||
"Folder": {
|
|
||||||
"Folder": ""
|
|
||||||
},
|
|
||||||
"Folders": {
|
|
||||||
"Folders": ""
|
|
||||||
},
|
|
||||||
"Follow Monitor Focus": {
|
"Follow Monitor Focus": {
|
||||||
"Follow Monitor Focus": "Segui lo Schermo Attivo"
|
"Follow Monitor Focus": "Segui lo Schermo Attivo"
|
||||||
},
|
},
|
||||||
@@ -2419,9 +2413,6 @@
|
|||||||
"Icon": {
|
"Icon": {
|
||||||
"Icon": "Icona"
|
"Icon": "Icona"
|
||||||
},
|
},
|
||||||
"Icon Scale": {
|
|
||||||
"Icon Scale": ""
|
|
||||||
},
|
|
||||||
"Icon Size": {
|
"Icon Size": {
|
||||||
"Icon Size": "Dimensione Icona"
|
"Icon Size": "Dimensione Icona"
|
||||||
},
|
},
|
||||||
@@ -3022,12 +3013,6 @@
|
|||||||
"Maximize Detection": {
|
"Maximize Detection": {
|
||||||
"Maximize Detection": "Rilevamento Finestra Massimizzata"
|
"Maximize Detection": "Rilevamento Finestra Massimizzata"
|
||||||
},
|
},
|
||||||
"Maximize Widget Icons": {
|
|
||||||
"Maximize Widget Icons": ""
|
|
||||||
},
|
|
||||||
"Maximize Widget Text": {
|
|
||||||
"Maximize Widget Text": ""
|
|
||||||
},
|
|
||||||
"Maximum Entry Size": {
|
"Maximum Entry Size": {
|
||||||
"Maximum Entry Size": "Dimensione Massima della Voce"
|
"Maximum Entry Size": "Dimensione Massima della Voce"
|
||||||
},
|
},
|
||||||
@@ -3379,9 +3364,6 @@
|
|||||||
"No files found": {
|
"No files found": {
|
||||||
"No files found": "Nessun file trovato"
|
"No files found": "Nessun file trovato"
|
||||||
},
|
},
|
||||||
"No folders found": {
|
|
||||||
"No folders found": ""
|
|
||||||
},
|
|
||||||
"No hidden apps.": {
|
"No hidden apps.": {
|
||||||
"No hidden apps.": "Nessuna app nascosta."
|
"No hidden apps.": "Nessuna app nascosta."
|
||||||
},
|
},
|
||||||
@@ -3574,9 +3556,6 @@
|
|||||||
"Open in Browser": {
|
"Open in Browser": {
|
||||||
"Open in Browser": "Apri nel Browser"
|
"Open in Browser": "Apri nel Browser"
|
||||||
},
|
},
|
||||||
"Open in terminal": {
|
|
||||||
"Open in terminal": ""
|
|
||||||
},
|
|
||||||
"Open search bar to find text": {
|
"Open search bar to find text": {
|
||||||
"Open search bar to find text": "Apri barra di ricerca per cercare testo"
|
"Open search bar to find text": "Apri barra di ricerca per cercare testo"
|
||||||
},
|
},
|
||||||
@@ -4074,9 +4053,6 @@
|
|||||||
"Remove": {
|
"Remove": {
|
||||||
"Remove": "Rimuovi"
|
"Remove": "Rimuovi"
|
||||||
},
|
},
|
||||||
"Remove Widget Padding": {
|
|
||||||
"Remove Widget Padding": ""
|
|
||||||
},
|
|
||||||
"Remove gaps and border when windows are maximized": {
|
"Remove gaps and border when windows are maximized": {
|
||||||
"Remove gaps and border when windows are maximized": "Rimuovi spazi e bordo quando le finestre sono massimizzate"
|
"Remove gaps and border when windows are maximized": "Rimuovi spazi e bordo quando le finestre sono massimizzate"
|
||||||
},
|
},
|
||||||
@@ -4227,9 +4203,6 @@
|
|||||||
"Save Notepad File": {
|
"Save Notepad File": {
|
||||||
"Save Notepad File": "Salva File Blocco Note"
|
"Save Notepad File": "Salva File Blocco Note"
|
||||||
},
|
},
|
||||||
"Save QR Code": {
|
|
||||||
"Save QR Code": ""
|
|
||||||
},
|
|
||||||
"Save and switch between display configurations": {
|
"Save and switch between display configurations": {
|
||||||
"Save and switch between display configurations": "Salva e passa tra le configurazioni dello schermo"
|
"Save and switch between display configurations": "Salva e passa tra le configurazioni dello schermo"
|
||||||
},
|
},
|
||||||
@@ -4257,9 +4230,6 @@
|
|||||||
"Scale DankBar font sizes independently": {
|
"Scale DankBar font sizes independently": {
|
||||||
"Scale DankBar font sizes independently": "Scala le dimensioni dei font della DankBar in modo indipendente"
|
"Scale DankBar font sizes independently": "Scala le dimensioni dei font della DankBar in modo indipendente"
|
||||||
},
|
},
|
||||||
"Scale DankBar icon sizes independently": {
|
|
||||||
"Scale DankBar icon sizes independently": ""
|
|
||||||
},
|
|
||||||
"Scale all font sizes throughout the shell": {
|
"Scale all font sizes throughout the shell": {
|
||||||
"Scale all font sizes throughout the shell": "Ridimensiona tutte le dimensioni dei caratteri nell'intera shell"
|
"Scale all font sizes throughout the shell": "Ridimensiona tutte le dimensioni dei caratteri nell'intera shell"
|
||||||
},
|
},
|
||||||
@@ -4275,9 +4245,6 @@
|
|||||||
"Science": {
|
"Science": {
|
||||||
"Science": "Scienza"
|
"Science": "Scienza"
|
||||||
},
|
},
|
||||||
"Score": {
|
|
||||||
"Score": ""
|
|
||||||
},
|
|
||||||
"Screen Sharing": {
|
"Screen Sharing": {
|
||||||
"Screen Sharing": "Condivisione dello Schermo"
|
"Screen Sharing": "Condivisione dello Schermo"
|
||||||
},
|
},
|
||||||
@@ -5109,9 +5076,6 @@
|
|||||||
"Trigger: %1": {
|
"Trigger: %1": {
|
||||||
"Trigger: %1": "Attivatore: %1"
|
"Trigger: %1": "Attivatore: %1"
|
||||||
},
|
},
|
||||||
"Trust": {
|
|
||||||
"Trust": ""
|
|
||||||
},
|
|
||||||
"Try a different search": {
|
"Try a different search": {
|
||||||
"Try a different search": "Prova una ricerca diversa"
|
"Try a different search": "Prova una ricerca diversa"
|
||||||
},
|
},
|
||||||
@@ -5208,9 +5172,6 @@
|
|||||||
"Untitled": {
|
"Untitled": {
|
||||||
"Untitled": "Senza Titolo"
|
"Untitled": "Senza Titolo"
|
||||||
},
|
},
|
||||||
"Untrust": {
|
|
||||||
"Untrust": ""
|
|
||||||
},
|
|
||||||
"Update": {
|
"Update": {
|
||||||
"Update": "Aggiorna"
|
"Update": "Aggiorna"
|
||||||
},
|
},
|
||||||
@@ -5470,9 +5431,6 @@
|
|||||||
"WiFi Device": {
|
"WiFi Device": {
|
||||||
"WiFi Device": "Dispositivo WiFi"
|
"WiFi Device": "Dispositivo WiFi"
|
||||||
},
|
},
|
||||||
"WiFi QR code for ": {
|
|
||||||
"WiFi QR code for ": ""
|
|
||||||
},
|
|
||||||
"WiFi disabled": {
|
"WiFi disabled": {
|
||||||
"WiFi disabled": "WiFi disattivato"
|
"WiFi disabled": "WiFi disattivato"
|
||||||
},
|
},
|
||||||
@@ -5807,9 +5765,6 @@
|
|||||||
"events": {
|
"events": {
|
||||||
"events": "eventi"
|
"events": "eventi"
|
||||||
},
|
},
|
||||||
"ext": {
|
|
||||||
"ext": ""
|
|
||||||
},
|
|
||||||
"fallback gpu name": {
|
"fallback gpu name": {
|
||||||
"Unknown GPU": "GPU Sconosciuta"
|
"Unknown GPU": "GPU Sconosciuta"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2089,12 +2089,6 @@
|
|||||||
"Fog": {
|
"Fog": {
|
||||||
"Fog": ""
|
"Fog": ""
|
||||||
},
|
},
|
||||||
"Folder": {
|
|
||||||
"Folder": ""
|
|
||||||
},
|
|
||||||
"Folders": {
|
|
||||||
"Folders": ""
|
|
||||||
},
|
|
||||||
"Follow Monitor Focus": {
|
"Follow Monitor Focus": {
|
||||||
"Follow Monitor Focus": ""
|
"Follow Monitor Focus": ""
|
||||||
},
|
},
|
||||||
@@ -2419,9 +2413,6 @@
|
|||||||
"Icon": {
|
"Icon": {
|
||||||
"Icon": ""
|
"Icon": ""
|
||||||
},
|
},
|
||||||
"Icon Scale": {
|
|
||||||
"Icon Scale": ""
|
|
||||||
},
|
|
||||||
"Icon Size": {
|
"Icon Size": {
|
||||||
"Icon Size": "アイコンサイズ"
|
"Icon Size": "アイコンサイズ"
|
||||||
},
|
},
|
||||||
@@ -3022,12 +3013,6 @@
|
|||||||
"Maximize Detection": {
|
"Maximize Detection": {
|
||||||
"Maximize Detection": ""
|
"Maximize Detection": ""
|
||||||
},
|
},
|
||||||
"Maximize Widget Icons": {
|
|
||||||
"Maximize Widget Icons": ""
|
|
||||||
},
|
|
||||||
"Maximize Widget Text": {
|
|
||||||
"Maximize Widget Text": ""
|
|
||||||
},
|
|
||||||
"Maximum Entry Size": {
|
"Maximum Entry Size": {
|
||||||
"Maximum Entry Size": ""
|
"Maximum Entry Size": ""
|
||||||
},
|
},
|
||||||
@@ -3379,9 +3364,6 @@
|
|||||||
"No files found": {
|
"No files found": {
|
||||||
"No files found": "ファイルが見つかりませんでした"
|
"No files found": "ファイルが見つかりませんでした"
|
||||||
},
|
},
|
||||||
"No folders found": {
|
|
||||||
"No folders found": ""
|
|
||||||
},
|
|
||||||
"No hidden apps.": {
|
"No hidden apps.": {
|
||||||
"No hidden apps.": ""
|
"No hidden apps.": ""
|
||||||
},
|
},
|
||||||
@@ -3574,9 +3556,6 @@
|
|||||||
"Open in Browser": {
|
"Open in Browser": {
|
||||||
"Open in Browser": ""
|
"Open in Browser": ""
|
||||||
},
|
},
|
||||||
"Open in terminal": {
|
|
||||||
"Open in terminal": ""
|
|
||||||
},
|
|
||||||
"Open search bar to find text": {
|
"Open search bar to find text": {
|
||||||
"Open search bar to find text": "検索バーを開いてテキストを検索"
|
"Open search bar to find text": "検索バーを開いてテキストを検索"
|
||||||
},
|
},
|
||||||
@@ -4074,9 +4053,6 @@
|
|||||||
"Remove": {
|
"Remove": {
|
||||||
"Remove": "削除"
|
"Remove": "削除"
|
||||||
},
|
},
|
||||||
"Remove Widget Padding": {
|
|
||||||
"Remove Widget Padding": ""
|
|
||||||
},
|
|
||||||
"Remove gaps and border when windows are maximized": {
|
"Remove gaps and border when windows are maximized": {
|
||||||
"Remove gaps and border when windows are maximized": ""
|
"Remove gaps and border when windows are maximized": ""
|
||||||
},
|
},
|
||||||
@@ -4227,9 +4203,6 @@
|
|||||||
"Save Notepad File": {
|
"Save Notepad File": {
|
||||||
"Save Notepad File": "メモ帳ファイルを保存"
|
"Save Notepad File": "メモ帳ファイルを保存"
|
||||||
},
|
},
|
||||||
"Save QR Code": {
|
|
||||||
"Save QR Code": ""
|
|
||||||
},
|
|
||||||
"Save and switch between display configurations": {
|
"Save and switch between display configurations": {
|
||||||
"Save and switch between display configurations": ""
|
"Save and switch between display configurations": ""
|
||||||
},
|
},
|
||||||
@@ -4257,9 +4230,6 @@
|
|||||||
"Scale DankBar font sizes independently": {
|
"Scale DankBar font sizes independently": {
|
||||||
"Scale DankBar font sizes independently": "Dank Barのフォントサイズを個別に調整"
|
"Scale DankBar font sizes independently": "Dank Barのフォントサイズを個別に調整"
|
||||||
},
|
},
|
||||||
"Scale DankBar icon sizes independently": {
|
|
||||||
"Scale DankBar icon sizes independently": ""
|
|
||||||
},
|
|
||||||
"Scale all font sizes throughout the shell": {
|
"Scale all font sizes throughout the shell": {
|
||||||
"Scale all font sizes throughout the shell": ""
|
"Scale all font sizes throughout the shell": ""
|
||||||
},
|
},
|
||||||
@@ -4275,9 +4245,6 @@
|
|||||||
"Science": {
|
"Science": {
|
||||||
"Science": "科学"
|
"Science": "科学"
|
||||||
},
|
},
|
||||||
"Score": {
|
|
||||||
"Score": ""
|
|
||||||
},
|
|
||||||
"Screen Sharing": {
|
"Screen Sharing": {
|
||||||
"Screen Sharing": ""
|
"Screen Sharing": ""
|
||||||
},
|
},
|
||||||
@@ -5109,9 +5076,6 @@
|
|||||||
"Trigger: %1": {
|
"Trigger: %1": {
|
||||||
"Trigger: %1": ""
|
"Trigger: %1": ""
|
||||||
},
|
},
|
||||||
"Trust": {
|
|
||||||
"Trust": ""
|
|
||||||
},
|
|
||||||
"Try a different search": {
|
"Try a different search": {
|
||||||
"Try a different search": ""
|
"Try a different search": ""
|
||||||
},
|
},
|
||||||
@@ -5208,9 +5172,6 @@
|
|||||||
"Untitled": {
|
"Untitled": {
|
||||||
"Untitled": "無題"
|
"Untitled": "無題"
|
||||||
},
|
},
|
||||||
"Untrust": {
|
|
||||||
"Untrust": ""
|
|
||||||
},
|
|
||||||
"Update": {
|
"Update": {
|
||||||
"Update": ""
|
"Update": ""
|
||||||
},
|
},
|
||||||
@@ -5470,9 +5431,6 @@
|
|||||||
"WiFi Device": {
|
"WiFi Device": {
|
||||||
"WiFi Device": ""
|
"WiFi Device": ""
|
||||||
},
|
},
|
||||||
"WiFi QR code for ": {
|
|
||||||
"WiFi QR code for ": ""
|
|
||||||
},
|
|
||||||
"WiFi disabled": {
|
"WiFi disabled": {
|
||||||
"WiFi disabled": "WiFiを無効化にしました"
|
"WiFi disabled": "WiFiを無効化にしました"
|
||||||
},
|
},
|
||||||
@@ -5807,9 +5765,6 @@
|
|||||||
"events": {
|
"events": {
|
||||||
"events": "イベント"
|
"events": "イベント"
|
||||||
},
|
},
|
||||||
"ext": {
|
|
||||||
"ext": ""
|
|
||||||
},
|
|
||||||
"fallback gpu name": {
|
"fallback gpu name": {
|
||||||
"Unknown GPU": ""
|
"Unknown GPU": ""
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -105,10 +105,10 @@
|
|||||||
"2 minutes": "2 minuten"
|
"2 minutes": "2 minuten"
|
||||||
},
|
},
|
||||||
"2 seconds": {
|
"2 seconds": {
|
||||||
"2 seconds": "2 seconden"
|
"2 seconds": ""
|
||||||
},
|
},
|
||||||
"20 minutes": {
|
"20 minutes": {
|
||||||
"20 minutes": "20 minuten"
|
"20 minutes": ""
|
||||||
},
|
},
|
||||||
"24-Hour Format": {
|
"24-Hour Format": {
|
||||||
"24-Hour Format": "24-uursnotatie"
|
"24-Hour Format": "24-uursnotatie"
|
||||||
@@ -117,7 +117,7 @@
|
|||||||
"24-hour format": "24-uursnotatie"
|
"24-hour format": "24-uursnotatie"
|
||||||
},
|
},
|
||||||
"250 ms": {
|
"250 ms": {
|
||||||
"250 ms": "250 ms"
|
"250 ms": ""
|
||||||
},
|
},
|
||||||
"270°": {
|
"270°": {
|
||||||
"270°": "270°"
|
"270°": "270°"
|
||||||
@@ -126,7 +126,7 @@
|
|||||||
"3 days": "3 dagen"
|
"3 days": "3 dagen"
|
||||||
},
|
},
|
||||||
"3 minutes": {
|
"3 minutes": {
|
||||||
"3 minutes": "3 minuten"
|
"3 minutes": ""
|
||||||
},
|
},
|
||||||
"3 seconds": {
|
"3 seconds": {
|
||||||
"3 seconds": "3 seconden"
|
"3 seconds": "3 seconden"
|
||||||
@@ -141,7 +141,7 @@
|
|||||||
"3rd party": "Derden"
|
"3rd party": "Derden"
|
||||||
},
|
},
|
||||||
"4 seconds": {
|
"4 seconds": {
|
||||||
"4 seconds": "4 seconden"
|
"4 seconds": ""
|
||||||
},
|
},
|
||||||
"5 minutes": {
|
"5 minutes": {
|
||||||
"5 minutes": "5 minuten"
|
"5 minutes": "5 minuten"
|
||||||
@@ -150,13 +150,13 @@
|
|||||||
"5 seconds": "5 seconden"
|
"5 seconds": "5 seconden"
|
||||||
},
|
},
|
||||||
"500 ms": {
|
"500 ms": {
|
||||||
"500 ms": "500 ms"
|
"500 ms": ""
|
||||||
},
|
},
|
||||||
"7 days": {
|
"7 days": {
|
||||||
"7 days": "7 dagen"
|
"7 days": "7 dagen"
|
||||||
},
|
},
|
||||||
"750 ms": {
|
"750 ms": {
|
||||||
"750 ms": "750 ms"
|
"750 ms": ""
|
||||||
},
|
},
|
||||||
"8 seconds": {
|
"8 seconds": {
|
||||||
"8 seconds": "8 seconden"
|
"8 seconds": "8 seconden"
|
||||||
@@ -171,7 +171,7 @@
|
|||||||
"A file with this name already exists. Do you want to overwrite it?": "Er bestaat al een bestand met deze naam. Wilt u het overschrijven?"
|
"A file with this name already exists. Do you want to overwrite it?": "Er bestaat al een bestand met deze naam. Wilt u het overschrijven?"
|
||||||
},
|
},
|
||||||
"AC Power": {
|
"AC Power": {
|
||||||
"AC Power": "Netstroom"
|
"AC Power": ""
|
||||||
},
|
},
|
||||||
"API": {
|
"API": {
|
||||||
"API": "API"
|
"API": "API"
|
||||||
@@ -381,7 +381,7 @@
|
|||||||
"Apps with custom display name, icon, or launch options. Right-click an app and select 'Edit App' to customize.": "Apps met aangepaste weergavenaam, pictogram of startopties. Klik rechts op een app en selecteer 'App bewerken' om aan te passen."
|
"Apps with custom display name, icon, or launch options. Right-click an app and select 'Edit App' to customize.": "Apps met aangepaste weergavenaam, pictogram of startopties. Klik rechts op een app en selecteer 'App bewerken' om aan te passen."
|
||||||
},
|
},
|
||||||
"Apps with notification popups muted. Unmute or delete to remove.": {
|
"Apps with notification popups muted. Unmute or delete to remove.": {
|
||||||
"Apps with notification popups muted. Unmute or delete to remove.": "Apps met gedempte meldingspop-ups. Dempen opheffen of verwijderen om te wissen."
|
"Apps with notification popups muted. Unmute or delete to remove.": ""
|
||||||
},
|
},
|
||||||
"Arrange displays and configure resolution, refresh rate, and VRR": {
|
"Arrange displays and configure resolution, refresh rate, and VRR": {
|
||||||
"Arrange displays and configure resolution, refresh rate, and VRR": "Beeldschermen rangschikken en resolutie, verversingssnelheid en VRR configureren"
|
"Arrange displays and configure resolution, refresh rate, and VRR": "Beeldschermen rangschikken en resolutie, verversingssnelheid en VRR configureren"
|
||||||
@@ -587,7 +587,7 @@
|
|||||||
"Bar Transparency": "Balktransparantie"
|
"Bar Transparency": "Balktransparantie"
|
||||||
},
|
},
|
||||||
"Base duration for animations (drag to use Custom)": {
|
"Base duration for animations (drag to use Custom)": {
|
||||||
"Base duration for animations (drag to use Custom)": "Basisduur voor animaties (sleep om Aangepast te gebruiken)"
|
"Base duration for animations (drag to use Custom)": ""
|
||||||
},
|
},
|
||||||
"Battery": {
|
"Battery": {
|
||||||
"Battery": "Batterij"
|
"Battery": "Batterij"
|
||||||
@@ -770,7 +770,7 @@
|
|||||||
"Caps Lock Indicator": "Caps Lock-indicator"
|
"Caps Lock Indicator": "Caps Lock-indicator"
|
||||||
},
|
},
|
||||||
"Caps Lock is on": {
|
"Caps Lock is on": {
|
||||||
"Caps Lock is on": "Caps Lock staat aan"
|
"Caps Lock is on": ""
|
||||||
},
|
},
|
||||||
"Center Section": {
|
"Center Section": {
|
||||||
"Center Section": "Middensectie"
|
"Center Section": "Middensectie"
|
||||||
@@ -863,7 +863,7 @@
|
|||||||
"Clear History?": "Geschiedenis wissen?"
|
"Clear History?": "Geschiedenis wissen?"
|
||||||
},
|
},
|
||||||
"Clear Sky": {
|
"Clear Sky": {
|
||||||
"Clear Sky": "Heldere hemel"
|
"Clear Sky": ""
|
||||||
},
|
},
|
||||||
"Clear all history when server starts": {
|
"Clear all history when server starts": {
|
||||||
"Clear all history when server starts": "Alle geschiedenis wissen wanneer server start"
|
"Clear all history when server starts": "Alle geschiedenis wissen wanneer server start"
|
||||||
@@ -1112,7 +1112,7 @@
|
|||||||
"Control Center Tile Color": "Tegelkleur bedieningspaneel"
|
"Control Center Tile Color": "Tegelkleur bedieningspaneel"
|
||||||
},
|
},
|
||||||
"Control animation duration for notification popups and history": {
|
"Control animation duration for notification popups and history": {
|
||||||
"Control animation duration for notification popups and history": "Animatieduur voor meldingspop-ups en geschiedenis beheren"
|
"Control animation duration for notification popups and history": ""
|
||||||
},
|
},
|
||||||
"Control currently playing media": {
|
"Control currently playing media": {
|
||||||
"Control currently playing media": "Huidige media bedienen"
|
"Control currently playing media": "Huidige media bedienen"
|
||||||
@@ -1205,7 +1205,7 @@
|
|||||||
"Create rules to mute, ignore, hide from history, or override notification priority.": "Maak regels om meldingen te dempen, te negeren, uit de geschiedenis te verbergen of de prioriteit te overschrijven."
|
"Create rules to mute, ignore, hide from history, or override notification priority.": "Maak regels om meldingen te dempen, te negeren, uit de geschiedenis te verbergen of de prioriteit te overschrijven."
|
||||||
},
|
},
|
||||||
"Create rules to mute, ignore, hide from history, or override notification priority. Default only overrides priority; notifications still show normally.": {
|
"Create rules to mute, ignore, hide from history, or override notification priority. Default only overrides priority; notifications still show normally.": {
|
||||||
"Create rules to mute, ignore, hide from history, or override notification priority. Default only overrides priority; notifications still show normally.": "Regels maken om meldingen te dempen, negeren, verbergen in geschiedenis of prioriteit te overschrijven. Standaard wordt alleen de prioriteit overschreven; meldingen worden nog steeds normaal weergegeven."
|
"Create rules to mute, ignore, hide from history, or override notification priority. Default only overrides priority; notifications still show normally.": ""
|
||||||
},
|
},
|
||||||
"Creating...": {
|
"Creating...": {
|
||||||
"Creating...": "Aanmaken..."
|
"Creating...": "Aanmaken..."
|
||||||
@@ -1418,7 +1418,7 @@
|
|||||||
"Description": "Beschrijving"
|
"Description": "Beschrijving"
|
||||||
},
|
},
|
||||||
"Desktop": {
|
"Desktop": {
|
||||||
"Desktop": "Bureaublad"
|
"Desktop": ""
|
||||||
},
|
},
|
||||||
"Desktop Clock": {
|
"Desktop Clock": {
|
||||||
"Desktop Clock": "Bureaubladklok"
|
"Desktop Clock": "Bureaubladklok"
|
||||||
@@ -1592,7 +1592,7 @@
|
|||||||
"Docs": "Documentatie"
|
"Docs": "Documentatie"
|
||||||
},
|
},
|
||||||
"Documents": {
|
"Documents": {
|
||||||
"Documents": "Documenten"
|
"Documents": ""
|
||||||
},
|
},
|
||||||
"Domain (optional)": {
|
"Domain (optional)": {
|
||||||
"Domain (optional)": "Domein (optioneel)"
|
"Domain (optional)": "Domein (optioneel)"
|
||||||
@@ -1607,7 +1607,7 @@
|
|||||||
"Door Open": "Deur open"
|
"Door Open": "Deur open"
|
||||||
},
|
},
|
||||||
"Downloads": {
|
"Downloads": {
|
||||||
"Downloads": "Downloads"
|
"Downloads": ""
|
||||||
},
|
},
|
||||||
"Drag to Reorder": {
|
"Drag to Reorder": {
|
||||||
"Drag to Reorder": "Sleep om te rangschikken"
|
"Drag to Reorder": "Sleep om te rangschikken"
|
||||||
@@ -1622,7 +1622,7 @@
|
|||||||
"Driver": "Stuurprogramma"
|
"Driver": "Stuurprogramma"
|
||||||
},
|
},
|
||||||
"Drizzle": {
|
"Drizzle": {
|
||||||
"Drizzle": "Motregen"
|
"Drizzle": ""
|
||||||
},
|
},
|
||||||
"Duplicate": {
|
"Duplicate": {
|
||||||
"Duplicate": "Dupliceren"
|
"Duplicate": "Dupliceren"
|
||||||
@@ -1631,7 +1631,7 @@
|
|||||||
"Duplicate Wallpaper with Blur": "Achtergrond dupliceren met vervaging"
|
"Duplicate Wallpaper with Blur": "Achtergrond dupliceren met vervaging"
|
||||||
},
|
},
|
||||||
"Duration": {
|
"Duration": {
|
||||||
"Duration": "Duur"
|
"Duration": ""
|
||||||
},
|
},
|
||||||
"Dusk (Astronomical Twilight)": {
|
"Dusk (Astronomical Twilight)": {
|
||||||
"Dusk (Astronomical Twilight)": "Avondschemering (Astronomische schemering)"
|
"Dusk (Astronomical Twilight)": "Avondschemering (Astronomische schemering)"
|
||||||
@@ -2087,13 +2087,7 @@
|
|||||||
"Focused Window": "Actieve venster"
|
"Focused Window": "Actieve venster"
|
||||||
},
|
},
|
||||||
"Fog": {
|
"Fog": {
|
||||||
"Fog": "Mist"
|
"Fog": ""
|
||||||
},
|
|
||||||
"Folder": {
|
|
||||||
"Folder": ""
|
|
||||||
},
|
|
||||||
"Folders": {
|
|
||||||
"Folders": ""
|
|
||||||
},
|
},
|
||||||
"Follow Monitor Focus": {
|
"Follow Monitor Focus": {
|
||||||
"Follow Monitor Focus": "Monitorfocus volgen"
|
"Follow Monitor Focus": "Monitorfocus volgen"
|
||||||
@@ -2156,10 +2150,10 @@
|
|||||||
"Format Legend": "Legenda voor notatie"
|
"Format Legend": "Legenda voor notatie"
|
||||||
},
|
},
|
||||||
"Free VRAM/memory when the launcher is closed. May cause a slight delay when reopening.": {
|
"Free VRAM/memory when the launcher is closed. May cause a slight delay when reopening.": {
|
||||||
"Free VRAM/memory when the launcher is closed. May cause a slight delay when reopening.": "VRAM/geheugen vrijmaken wanneer het startmenu gesloten is. Dit kan een lichte vertraging veroorzaken bij het heropenen."
|
"Free VRAM/memory when the launcher is closed. May cause a slight delay when reopening.": ""
|
||||||
},
|
},
|
||||||
"Freezing Drizzle": {
|
"Freezing Drizzle": {
|
||||||
"Freezing Drizzle": "IJzel"
|
"Freezing Drizzle": ""
|
||||||
},
|
},
|
||||||
"Frequency": {
|
"Frequency": {
|
||||||
"Frequency": "Frequentie"
|
"Frequency": "Frequentie"
|
||||||
@@ -2267,13 +2261,13 @@
|
|||||||
"Health": "Gezondheid"
|
"Health": "Gezondheid"
|
||||||
},
|
},
|
||||||
"Heavy Rain": {
|
"Heavy Rain": {
|
||||||
"Heavy Rain": "Zware regen"
|
"Heavy Rain": ""
|
||||||
},
|
},
|
||||||
"Heavy Snow": {
|
"Heavy Snow": {
|
||||||
"Heavy Snow": "Zware sneeuwval"
|
"Heavy Snow": ""
|
||||||
},
|
},
|
||||||
"Heavy Snow Showers": {
|
"Heavy Snow Showers": {
|
||||||
"Heavy Snow Showers": "Zware sneeuwbuien"
|
"Heavy Snow Showers": ""
|
||||||
},
|
},
|
||||||
"Height": {
|
"Height": {
|
||||||
"Height": "Hoogte"
|
"Height": "Hoogte"
|
||||||
@@ -2294,7 +2288,7 @@
|
|||||||
"Hidden": "Verborgen"
|
"Hidden": "Verborgen"
|
||||||
},
|
},
|
||||||
"Hidden (%1)": {
|
"Hidden (%1)": {
|
||||||
"Hidden (%1)": "Verborgen (%1)"
|
"Hidden (%1)": ""
|
||||||
},
|
},
|
||||||
"Hidden Apps": {
|
"Hidden Apps": {
|
||||||
"Hidden Apps": "Verborgen apps"
|
"Hidden Apps": "Verborgen apps"
|
||||||
@@ -2336,13 +2330,13 @@
|
|||||||
"Hide cursor when using touch input": "Cursor verbergen bij gebruik van aanraakinvoer"
|
"Hide cursor when using touch input": "Cursor verbergen bij gebruik van aanraakinvoer"
|
||||||
},
|
},
|
||||||
"Hide device": {
|
"Hide device": {
|
||||||
"Hide device": "Apparaat verbergen"
|
"Hide device": ""
|
||||||
},
|
},
|
||||||
"Hide notification content until expanded": {
|
"Hide notification content until expanded": {
|
||||||
"Hide notification content until expanded": "Meldingsinhoud verbergen tot uitgevouwen"
|
"Hide notification content until expanded": ""
|
||||||
},
|
},
|
||||||
"Hide notification content until expanded; popups show collapsed by default": {
|
"Hide notification content until expanded; popups show collapsed by default": {
|
||||||
"Hide notification content until expanded; popups show collapsed by default": "Meldingsinhoud verbergen tot uitgevouwen; pop-ups worden standaard ingeklapt weergegeven"
|
"Hide notification content until expanded; popups show collapsed by default": ""
|
||||||
},
|
},
|
||||||
"Hide on Touch": {
|
"Hide on Touch": {
|
||||||
"Hide on Touch": "Verbergen bij aanraking"
|
"Hide on Touch": "Verbergen bij aanraking"
|
||||||
@@ -2375,7 +2369,7 @@
|
|||||||
"Hold to confirm (%1s)": "Ingedrukt houden om te bevestigen (%1s)"
|
"Hold to confirm (%1s)": "Ingedrukt houden om te bevestigen (%1s)"
|
||||||
},
|
},
|
||||||
"Home": {
|
"Home": {
|
||||||
"Home": "Persoonlijke map"
|
"Home": ""
|
||||||
},
|
},
|
||||||
"Hot Corners": {
|
"Hot Corners": {
|
||||||
"Hot Corners": "Hot Corners"
|
"Hot Corners": "Hot Corners"
|
||||||
@@ -2419,9 +2413,6 @@
|
|||||||
"Icon": {
|
"Icon": {
|
||||||
"Icon": "Pictogram"
|
"Icon": "Pictogram"
|
||||||
},
|
},
|
||||||
"Icon Scale": {
|
|
||||||
"Icon Scale": ""
|
|
||||||
},
|
|
||||||
"Icon Size": {
|
"Icon Size": {
|
||||||
"Icon Size": "Pictogramgrootte"
|
"Icon Size": "Pictogramgrootte"
|
||||||
},
|
},
|
||||||
@@ -2828,13 +2819,13 @@
|
|||||||
"Light Mode": "Lichte modus"
|
"Light Mode": "Lichte modus"
|
||||||
},
|
},
|
||||||
"Light Rain": {
|
"Light Rain": {
|
||||||
"Light Rain": "Lichte regen"
|
"Light Rain": ""
|
||||||
},
|
},
|
||||||
"Light Snow": {
|
"Light Snow": {
|
||||||
"Light Snow": "Lichte sneeuwval"
|
"Light Snow": ""
|
||||||
},
|
},
|
||||||
"Light Snow Showers": {
|
"Light Snow Showers": {
|
||||||
"Light Snow Showers": "Lichte sneeuwbuien"
|
"Light Snow Showers": ""
|
||||||
},
|
},
|
||||||
"Linear": {
|
"Linear": {
|
||||||
"Linear": "Lineair"
|
"Linear": "Lineair"
|
||||||
@@ -3022,12 +3013,6 @@
|
|||||||
"Maximize Detection": {
|
"Maximize Detection": {
|
||||||
"Maximize Detection": "Maximalisatiedetectie"
|
"Maximize Detection": "Maximalisatiedetectie"
|
||||||
},
|
},
|
||||||
"Maximize Widget Icons": {
|
|
||||||
"Maximize Widget Icons": ""
|
|
||||||
},
|
|
||||||
"Maximize Widget Text": {
|
|
||||||
"Maximize Widget Text": ""
|
|
||||||
},
|
|
||||||
"Maximum Entry Size": {
|
"Maximum Entry Size": {
|
||||||
"Maximum Entry Size": "Maximale grootte item"
|
"Maximum Entry Size": "Maximale grootte item"
|
||||||
},
|
},
|
||||||
@@ -3188,13 +3173,13 @@
|
|||||||
"Moving to Paused": "Overschakelen naar gepauzeerd"
|
"Moving to Paused": "Overschakelen naar gepauzeerd"
|
||||||
},
|
},
|
||||||
"Music": {
|
"Music": {
|
||||||
"Music": "Muziek"
|
"Music": ""
|
||||||
},
|
},
|
||||||
"Mute popups for %1": {
|
"Mute popups for %1": {
|
||||||
"Mute popups for %1": "Pop-ups dempen voor %1"
|
"Mute popups for %1": ""
|
||||||
},
|
},
|
||||||
"Muted Apps": {
|
"Muted Apps": {
|
||||||
"Muted Apps": "Gedempte apps"
|
"Muted Apps": ""
|
||||||
},
|
},
|
||||||
"Muted palette with subdued, calming tones.": {
|
"Muted palette with subdued, calming tones.": {
|
||||||
"Muted palette with subdued, calming tones.": "Gedempt palet met ingetogen, rustgevende tinten."
|
"Muted palette with subdued, calming tones.": "Gedempt palet met ingetogen, rustgevende tinten."
|
||||||
@@ -3347,7 +3332,7 @@
|
|||||||
"No apps have been launched yet.": "Er zijn nog geen apps gestart."
|
"No apps have been launched yet.": "Er zijn nog geen apps gestart."
|
||||||
},
|
},
|
||||||
"No apps muted. Right-click a notification and choose \"Mute popups\" to add one here.": {
|
"No apps muted. Right-click a notification and choose \"Mute popups\" to add one here.": {
|
||||||
"No apps muted. Right-click a notification and choose \"Mute popups\" to add one here.": "Geen apps gedempt. Klik met de rechtermuisknop op een melding en kies \"Pop-ups dempen\" om er hier een toe te voegen."
|
"No apps muted. Right-click a notification and choose \"Mute popups\" to add one here.": ""
|
||||||
},
|
},
|
||||||
"No battery": {
|
"No battery": {
|
||||||
"No battery": "Geen batterij"
|
"No battery": "Geen batterij"
|
||||||
@@ -3379,9 +3364,6 @@
|
|||||||
"No files found": {
|
"No files found": {
|
||||||
"No files found": "Geen bestanden gevonden"
|
"No files found": "Geen bestanden gevonden"
|
||||||
},
|
},
|
||||||
"No folders found": {
|
|
||||||
"No folders found": ""
|
|
||||||
},
|
|
||||||
"No hidden apps.": {
|
"No hidden apps.": {
|
||||||
"No hidden apps.": "Geen verborgen apps."
|
"No hidden apps.": "Geen verborgen apps."
|
||||||
},
|
},
|
||||||
@@ -3574,9 +3556,6 @@
|
|||||||
"Open in Browser": {
|
"Open in Browser": {
|
||||||
"Open in Browser": "Openen in browser"
|
"Open in Browser": "Openen in browser"
|
||||||
},
|
},
|
||||||
"Open in terminal": {
|
|
||||||
"Open in terminal": ""
|
|
||||||
},
|
|
||||||
"Open search bar to find text": {
|
"Open search bar to find text": {
|
||||||
"Open search bar to find text": "Zoekbalk openen om tekst te vinden"
|
"Open search bar to find text": "Zoekbalk openen om tekst te vinden"
|
||||||
},
|
},
|
||||||
@@ -3614,7 +3593,7 @@
|
|||||||
"Outputs Include Missing": "Outputs-include ontbreekt"
|
"Outputs Include Missing": "Outputs-include ontbreekt"
|
||||||
},
|
},
|
||||||
"Overcast": {
|
"Overcast": {
|
||||||
"Overcast": "Bewolkt"
|
"Overcast": ""
|
||||||
},
|
},
|
||||||
"Overflow": {
|
"Overflow": {
|
||||||
"Overflow": "Overloop"
|
"Overflow": "Overloop"
|
||||||
@@ -3674,7 +3653,7 @@
|
|||||||
"Pairing...": "Koppelen..."
|
"Pairing...": "Koppelen..."
|
||||||
},
|
},
|
||||||
"Partly Cloudy": {
|
"Partly Cloudy": {
|
||||||
"Partly Cloudy": "Half bewolkt"
|
"Partly Cloudy": ""
|
||||||
},
|
},
|
||||||
"Passkey:": {
|
"Passkey:": {
|
||||||
"Passkey:": "Toegangscode:"
|
"Passkey:": "Toegangscode:"
|
||||||
@@ -3784,7 +3763,7 @@
|
|||||||
"Unavailable": "Niet beschikbaar"
|
"Unavailable": "Niet beschikbaar"
|
||||||
},
|
},
|
||||||
"Pictures": {
|
"Pictures": {
|
||||||
"Pictures": "Afbeeldingen"
|
"Pictures": ""
|
||||||
},
|
},
|
||||||
"Pin": {
|
"Pin": {
|
||||||
"Pin": "Vastmaken"
|
"Pin": "Vastmaken"
|
||||||
@@ -3856,7 +3835,7 @@
|
|||||||
"Popup Position": "Popup-positie"
|
"Popup Position": "Popup-positie"
|
||||||
},
|
},
|
||||||
"Popup Shadow": {
|
"Popup Shadow": {
|
||||||
"Popup Shadow": "Pop-upschaduw"
|
"Popup Shadow": ""
|
||||||
},
|
},
|
||||||
"Popup Transparency": {
|
"Popup Transparency": {
|
||||||
"Popup Transparency": "Popup-transparantie"
|
"Popup Transparency": "Popup-transparantie"
|
||||||
@@ -3967,7 +3946,7 @@
|
|||||||
"Privacy Indicator": "Privacy-indicator"
|
"Privacy Indicator": "Privacy-indicator"
|
||||||
},
|
},
|
||||||
"Privacy Mode": {
|
"Privacy Mode": {
|
||||||
"Privacy Mode": "Privacy-modus"
|
"Privacy Mode": ""
|
||||||
},
|
},
|
||||||
"Private Key Password": {
|
"Private Key Password": {
|
||||||
"Private Key Password": "Wachtwoord privésleutel"
|
"Private Key Password": "Wachtwoord privésleutel"
|
||||||
@@ -4012,7 +3991,7 @@
|
|||||||
"Protocol": "Protocol"
|
"Protocol": "Protocol"
|
||||||
},
|
},
|
||||||
"Quick Access": {
|
"Quick Access": {
|
||||||
"Quick Access": "Snelle toegang"
|
"Quick Access": ""
|
||||||
},
|
},
|
||||||
"Quick access to application launcher": {
|
"Quick access to application launcher": {
|
||||||
"Quick access to application launcher": "Snelle toegang tot app-starter"
|
"Quick access to application launcher": "Snelle toegang tot app-starter"
|
||||||
@@ -4033,7 +4012,7 @@
|
|||||||
"Radius": "Straal"
|
"Radius": "Straal"
|
||||||
},
|
},
|
||||||
"Rain": {
|
"Rain": {
|
||||||
"Rain": "Regen"
|
"Rain": ""
|
||||||
},
|
},
|
||||||
"Rain Chance": {
|
"Rain Chance": {
|
||||||
"Rain Chance": "Neerslagkans"
|
"Rain Chance": "Neerslagkans"
|
||||||
@@ -4074,9 +4053,6 @@
|
|||||||
"Remove": {
|
"Remove": {
|
||||||
"Remove": "Verwijderen"
|
"Remove": "Verwijderen"
|
||||||
},
|
},
|
||||||
"Remove Widget Padding": {
|
|
||||||
"Remove Widget Padding": ""
|
|
||||||
},
|
|
||||||
"Remove gaps and border when windows are maximized": {
|
"Remove gaps and border when windows are maximized": {
|
||||||
"Remove gaps and border when windows are maximized": "Tussenruimte en rand verwijderen wanneer vensters gemaximaliseerd zijn"
|
"Remove gaps and border when windows are maximized": "Tussenruimte en rand verwijderen wanneer vensters gemaximaliseerd zijn"
|
||||||
},
|
},
|
||||||
@@ -4227,9 +4203,6 @@
|
|||||||
"Save Notepad File": {
|
"Save Notepad File": {
|
||||||
"Save Notepad File": "Kladblok-bestand opslaan"
|
"Save Notepad File": "Kladblok-bestand opslaan"
|
||||||
},
|
},
|
||||||
"Save QR Code": {
|
|
||||||
"Save QR Code": ""
|
|
||||||
},
|
|
||||||
"Save and switch between display configurations": {
|
"Save and switch between display configurations": {
|
||||||
"Save and switch between display configurations": "Opslaan en schakelen tussen beeldschermconfiguraties"
|
"Save and switch between display configurations": "Opslaan en schakelen tussen beeldschermconfiguraties"
|
||||||
},
|
},
|
||||||
@@ -4257,9 +4230,6 @@
|
|||||||
"Scale DankBar font sizes independently": {
|
"Scale DankBar font sizes independently": {
|
||||||
"Scale DankBar font sizes independently": "DankBar-lettergroottes onafhankelijk schalen"
|
"Scale DankBar font sizes independently": "DankBar-lettergroottes onafhankelijk schalen"
|
||||||
},
|
},
|
||||||
"Scale DankBar icon sizes independently": {
|
|
||||||
"Scale DankBar icon sizes independently": ""
|
|
||||||
},
|
|
||||||
"Scale all font sizes throughout the shell": {
|
"Scale all font sizes throughout the shell": {
|
||||||
"Scale all font sizes throughout the shell": "Alle lettergroottes in de shell schalen"
|
"Scale all font sizes throughout the shell": "Alle lettergroottes in de shell schalen"
|
||||||
},
|
},
|
||||||
@@ -4275,9 +4245,6 @@
|
|||||||
"Science": {
|
"Science": {
|
||||||
"Science": "Wetenschap"
|
"Science": "Wetenschap"
|
||||||
},
|
},
|
||||||
"Score": {
|
|
||||||
"Score": ""
|
|
||||||
},
|
|
||||||
"Screen Sharing": {
|
"Screen Sharing": {
|
||||||
"Screen Sharing": "Schermdelen"
|
"Screen Sharing": "Schermdelen"
|
||||||
},
|
},
|
||||||
@@ -4444,7 +4411,7 @@
|
|||||||
"Set key and action to save": "Stel toets en actie in om op te slaan"
|
"Set key and action to save": "Stel toets en actie in om op te slaan"
|
||||||
},
|
},
|
||||||
"Set notification rules": {
|
"Set notification rules": {
|
||||||
"Set notification rules": "Meldingsregels instellen"
|
"Set notification rules": ""
|
||||||
},
|
},
|
||||||
"Setup": {
|
"Setup": {
|
||||||
"Setup": "Instellen"
|
"Setup": "Instellen"
|
||||||
@@ -4618,13 +4585,13 @@
|
|||||||
"Show darkened overlay behind modal dialogs": "Verduisterde overlay tonen achter modale vensters"
|
"Show darkened overlay behind modal dialogs": "Verduisterde overlay tonen achter modale vensters"
|
||||||
},
|
},
|
||||||
"Show device": {
|
"Show device": {
|
||||||
"Show device": "Apparaat tonen"
|
"Show device": ""
|
||||||
},
|
},
|
||||||
"Show dock when floating windows don't overlap its area": {
|
"Show dock when floating windows don't overlap its area": {
|
||||||
"Show dock when floating windows don't overlap its area": "Dock tonen wanneer zwevende vensters het gebied niet overlappen"
|
"Show dock when floating windows don't overlap its area": "Dock tonen wanneer zwevende vensters het gebied niet overlappen"
|
||||||
},
|
},
|
||||||
"Show drop shadow on notification popups": {
|
"Show drop shadow on notification popups": {
|
||||||
"Show drop shadow on notification popups": "Slagschaduw tonen op meldingspop-ups"
|
"Show drop shadow on notification popups": ""
|
||||||
},
|
},
|
||||||
"Show launcher overlay when typing in Niri overview. Disable to use another launcher.": {
|
"Show launcher overlay when typing in Niri overview. Disable to use another launcher.": {
|
||||||
"Show launcher overlay when typing in Niri overview. Disable to use another launcher.": "Starter-overlay tonen bij typen in Niri-overzicht. Schakel uit om een andere starter te gebruiken."
|
"Show launcher overlay when typing in Niri overview. Disable to use another launcher.": "Starter-overlay tonen bij typen in Niri-overzicht. Schakel uit om een andere starter te gebruiken."
|
||||||
@@ -4747,7 +4714,7 @@
|
|||||||
"Snap": "Vastklikken"
|
"Snap": "Vastklikken"
|
||||||
},
|
},
|
||||||
"Snow": {
|
"Snow": {
|
||||||
"Snow": "Sneeuw"
|
"Snow": ""
|
||||||
},
|
},
|
||||||
"Some plugins require a newer version of DMS:": {
|
"Some plugins require a newer version of DMS:": {
|
||||||
"Some plugins require a newer version of DMS:": "Sommige plug-ins vereisen een nieuwere versie van DMS:"
|
"Some plugins require a newer version of DMS:": "Sommige plug-ins vereisen een nieuwere versie van DMS:"
|
||||||
@@ -4846,7 +4813,7 @@
|
|||||||
"Suspend system after": "Systeem in slaapstand zetten na"
|
"Suspend system after": "Systeem in slaapstand zetten na"
|
||||||
},
|
},
|
||||||
"Suspend then Hibernate": {
|
"Suspend then Hibernate": {
|
||||||
"Suspend then Hibernate": "Onderbreken dan Sluimerstand"
|
"Suspend then Hibernate": ""
|
||||||
},
|
},
|
||||||
"Swap": {
|
"Swap": {
|
||||||
"Swap": "Swap"
|
"Swap": "Swap"
|
||||||
@@ -4987,10 +4954,10 @@
|
|||||||
"This will permanently remove this saved clipboard item. This action cannot be undone.": "Dit verwijdert dit opgeslagen klemborditem permanent. Deze actie kan niet ongedaan worden gemaakt."
|
"This will permanently remove this saved clipboard item. This action cannot be undone.": "Dit verwijdert dit opgeslagen klemborditem permanent. Deze actie kan niet ongedaan worden gemaakt."
|
||||||
},
|
},
|
||||||
"Thunderstorm": {
|
"Thunderstorm": {
|
||||||
"Thunderstorm": "Onweer"
|
"Thunderstorm": ""
|
||||||
},
|
},
|
||||||
"Thunderstorm with Hail": {
|
"Thunderstorm with Hail": {
|
||||||
"Thunderstorm with Hail": "Onweer met hagel"
|
"Thunderstorm with Hail": ""
|
||||||
},
|
},
|
||||||
"Tiled": {
|
"Tiled": {
|
||||||
"Tiled": "Getegeld"
|
"Tiled": "Getegeld"
|
||||||
@@ -5109,9 +5076,6 @@
|
|||||||
"Trigger: %1": {
|
"Trigger: %1": {
|
||||||
"Trigger: %1": "Trigger: %1"
|
"Trigger: %1": "Trigger: %1"
|
||||||
},
|
},
|
||||||
"Trust": {
|
|
||||||
"Trust": ""
|
|
||||||
},
|
|
||||||
"Try a different search": {
|
"Try a different search": {
|
||||||
"Try a different search": "Probeer een andere zoekopdracht"
|
"Try a different search": "Probeer een andere zoekopdracht"
|
||||||
},
|
},
|
||||||
@@ -5179,13 +5143,13 @@
|
|||||||
"Unknown Title": "Onbekende titel"
|
"Unknown Title": "Onbekende titel"
|
||||||
},
|
},
|
||||||
"Unload on Close": {
|
"Unload on Close": {
|
||||||
"Unload on Close": "Ontladen bij sluiten"
|
"Unload on Close": ""
|
||||||
},
|
},
|
||||||
"Unmute": {
|
"Unmute": {
|
||||||
"Unmute": "Dempen opheffen"
|
"Unmute": ""
|
||||||
},
|
},
|
||||||
"Unmute popups for %1": {
|
"Unmute popups for %1": {
|
||||||
"Unmute popups for %1": "Dempen van pop-ups opheffen voor %1"
|
"Unmute popups for %1": ""
|
||||||
},
|
},
|
||||||
"Unnamed Rule": {
|
"Unnamed Rule": {
|
||||||
"Unnamed Rule": "Naamloze regel"
|
"Unnamed Rule": "Naamloze regel"
|
||||||
@@ -5208,9 +5172,6 @@
|
|||||||
"Untitled": {
|
"Untitled": {
|
||||||
"Untitled": "Naamloos"
|
"Untitled": "Naamloos"
|
||||||
},
|
},
|
||||||
"Untrust": {
|
|
||||||
"Untrust": ""
|
|
||||||
},
|
|
||||||
"Update": {
|
"Update": {
|
||||||
"Update": "Bijwerken"
|
"Update": "Bijwerken"
|
||||||
},
|
},
|
||||||
@@ -5389,7 +5350,7 @@
|
|||||||
"Vibrant palette with playful saturation.": "Levendig palet met speelse verzadiging."
|
"Vibrant palette with playful saturation.": "Levendig palet met speelse verzadiging."
|
||||||
},
|
},
|
||||||
"Videos": {
|
"Videos": {
|
||||||
"Videos": "Video's"
|
"Videos": ""
|
||||||
},
|
},
|
||||||
"View Mode": {
|
"View Mode": {
|
||||||
"View Mode": "Weergavemodus"
|
"View Mode": "Weergavemodus"
|
||||||
@@ -5470,9 +5431,6 @@
|
|||||||
"WiFi Device": {
|
"WiFi Device": {
|
||||||
"WiFi Device": "Wifi-apparaat"
|
"WiFi Device": "Wifi-apparaat"
|
||||||
},
|
},
|
||||||
"WiFi QR code for ": {
|
|
||||||
"WiFi QR code for ": ""
|
|
||||||
},
|
|
||||||
"WiFi disabled": {
|
"WiFi disabled": {
|
||||||
"WiFi disabled": "Wifi uitgeschakeld"
|
"WiFi disabled": "Wifi uitgeschakeld"
|
||||||
},
|
},
|
||||||
@@ -5664,7 +5622,7 @@
|
|||||||
"Thickness": "Dikte"
|
"Thickness": "Dikte"
|
||||||
},
|
},
|
||||||
"brandon": {
|
"brandon": {
|
||||||
"brandon": "brandon"
|
"brandon": ""
|
||||||
},
|
},
|
||||||
"browse themes button | theme browser header | theme browser window title": {
|
"browse themes button | theme browser header | theme browser window title": {
|
||||||
"Browse Themes": "Thema's doorbladeren"
|
"Browse Themes": "Thema's doorbladeren"
|
||||||
@@ -5695,7 +5653,7 @@
|
|||||||
"Active tile background and icon color": "Achtergrond- en pictogramkleur van actieve tegel"
|
"Active tile background and icon color": "Achtergrond- en pictogramkleur van actieve tegel"
|
||||||
},
|
},
|
||||||
"count of hidden audio devices": {
|
"count of hidden audio devices": {
|
||||||
"Hidden (%1)": "Verborgen (%1)"
|
"Hidden (%1)": ""
|
||||||
},
|
},
|
||||||
"current theme label": {
|
"current theme label": {
|
||||||
"Current Theme: %1": "Huidig thema: %1"
|
"Current Theme: %1": "Huidig thema: %1"
|
||||||
@@ -5710,7 +5668,7 @@
|
|||||||
"Click to select a custom theme JSON file": "Klik om een aangepast thema-JSON-bestand te selecteren"
|
"Click to select a custom theme JSON file": "Klik om een aangepast thema-JSON-bestand te selecteren"
|
||||||
},
|
},
|
||||||
"dark mode wallpaper color picker title": {
|
"dark mode wallpaper color picker title": {
|
||||||
"Choose Dark Mode Color": "Kleur donkere modus kiezen"
|
"Choose Dark Mode Color": ""
|
||||||
},
|
},
|
||||||
"dark mode wallpaper file browser title | light mode wallpaper file browser title | wallpaper file browser title": {
|
"dark mode wallpaper file browser title | light mode wallpaper file browser title | wallpaper file browser title": {
|
||||||
"Select Wallpaper": "Selecteer achtergrond"
|
"Select Wallpaper": "Selecteer achtergrond"
|
||||||
@@ -5731,7 +5689,7 @@
|
|||||||
"days": "dagen"
|
"days": "dagen"
|
||||||
},
|
},
|
||||||
"default monitor label suffix": {
|
"default monitor label suffix": {
|
||||||
"(Default)": "(Standaard)"
|
"(Default)": ""
|
||||||
},
|
},
|
||||||
"dgop not available": {
|
"dgop not available": {
|
||||||
"dgop not available": "dgop niet beschikbaar"
|
"dgop not available": "dgop niet beschikbaar"
|
||||||
@@ -5807,9 +5765,6 @@
|
|||||||
"events": {
|
"events": {
|
||||||
"events": "afspraken"
|
"events": "afspraken"
|
||||||
},
|
},
|
||||||
"ext": {
|
|
||||||
"ext": ""
|
|
||||||
},
|
|
||||||
"fallback gpu name": {
|
"fallback gpu name": {
|
||||||
"Unknown GPU": "Onbekende GPU"
|
"Unknown GPU": "Onbekende GPU"
|
||||||
},
|
},
|
||||||
@@ -6002,7 +5957,7 @@
|
|||||||
"leave empty for default": "laat leeg voor standaard"
|
"leave empty for default": "laat leeg voor standaard"
|
||||||
},
|
},
|
||||||
"light mode wallpaper color picker title": {
|
"light mode wallpaper color picker title": {
|
||||||
"Choose Light Mode Color": "Kleur lichte modus kiezen"
|
"Choose Light Mode Color": ""
|
||||||
},
|
},
|
||||||
"loading indicator": {
|
"loading indicator": {
|
||||||
"Loading...": "Laden..."
|
"Loading...": "Laden..."
|
||||||
@@ -6064,7 +6019,7 @@
|
|||||||
"nav": "navigatie"
|
"nav": "navigatie"
|
||||||
},
|
},
|
||||||
"neovim template description": {
|
"neovim template description": {
|
||||||
"Requires lazy plugin manager": "Vereist lazy plugin manager"
|
"Requires lazy plugin manager": ""
|
||||||
},
|
},
|
||||||
"network status": {
|
"network status": {
|
||||||
"Connected": "Verbonden",
|
"Connected": "Verbonden",
|
||||||
@@ -6080,7 +6035,7 @@
|
|||||||
"No custom theme file": "Geen aangepast themabestand"
|
"No custom theme file": "Geen aangepast themabestand"
|
||||||
},
|
},
|
||||||
"no monitors available label": {
|
"no monitors available label": {
|
||||||
"No monitors": "Geen beeldschermen"
|
"No monitors": ""
|
||||||
},
|
},
|
||||||
"no registry themes installed hint": {
|
"no registry themes installed hint": {
|
||||||
"No themes installed. Browse themes to install from the registry.": "Geen thema's geïnstalleerd. Blader door thema's om te installeren uit het register."
|
"No themes installed. Browse themes to install from the registry.": "Geen thema's geïnstalleerd. Blader door thema's om te installeren uit het register."
|
||||||
@@ -6130,7 +6085,7 @@
|
|||||||
"Enable History": "Geschiedenis inschakelen"
|
"Enable History": "Geschiedenis inschakelen"
|
||||||
},
|
},
|
||||||
"notification privacy mode placeholder": {
|
"notification privacy mode placeholder": {
|
||||||
"Message Content": "Berichtinhoud"
|
"Message Content": ""
|
||||||
},
|
},
|
||||||
"notification rule action option": {
|
"notification rule action option": {
|
||||||
"Ignore Completely": "Volledig negeren",
|
"Ignore Completely": "Volledig negeren",
|
||||||
@@ -6163,22 +6118,22 @@
|
|||||||
"official": "officieel"
|
"official": "officieel"
|
||||||
},
|
},
|
||||||
"on Hyprland": {
|
"on Hyprland": {
|
||||||
"on Hyprland": "op Hyprland"
|
"on Hyprland": ""
|
||||||
},
|
},
|
||||||
"on MangoWC": {
|
"on MangoWC": {
|
||||||
"on MangoWC": "op MangoWC"
|
"on MangoWC": ""
|
||||||
},
|
},
|
||||||
"on Miracle WM": {
|
"on Miracle WM": {
|
||||||
"on Miracle WM": "op Miracle WM"
|
"on Miracle WM": ""
|
||||||
},
|
},
|
||||||
"on Niri": {
|
"on Niri": {
|
||||||
"on Niri": "op Niri"
|
"on Niri": ""
|
||||||
},
|
},
|
||||||
"on Scroll": {
|
"on Scroll": {
|
||||||
"on Scroll": "op Scroll"
|
"on Scroll": ""
|
||||||
},
|
},
|
||||||
"on Sway": {
|
"on Sway": {
|
||||||
"on Sway": "op Sway"
|
"on Sway": ""
|
||||||
},
|
},
|
||||||
"open": {
|
"open": {
|
||||||
"open": "openen"
|
"open": "openen"
|
||||||
@@ -6228,10 +6183,10 @@
|
|||||||
"Select Profile Image": "Selecteer profielafbeelding"
|
"Select Profile Image": "Selecteer profielafbeelding"
|
||||||
},
|
},
|
||||||
"qt theme env error body": {
|
"qt theme env error body": {
|
||||||
"You need to set either:\nQT_QPA_PLATFORMTHEME=gtk3 OR\nQT_QPA_PLATFORMTHEME=qt6ct\nas environment variables, and then restart the shell.\n\nqt6ct requires qt6ct-kde to be installed.": "U moet het volgende instellen:\nQT_QPA_PLATFORMTHEME=gtk3 OF\nQT_QPA_PLATFORMTHEME=qt6ct\nals omgevingsvariabelen, en daarna de shell herstarten.\n\nqt6ct vereist dat qt6ct-kde is geïnstalleerd."
|
"You need to set either:\nQT_QPA_PLATFORMTHEME=gtk3 OR\nQT_QPA_PLATFORMTHEME=qt6ct\nas environment variables, and then restart the shell.\n\nqt6ct requires qt6ct-kde to be installed.": ""
|
||||||
},
|
},
|
||||||
"qt theme env error title": {
|
"qt theme env error title": {
|
||||||
"Missing Environment Variables": "Ontbrekende omgevingsvariabelen"
|
"Missing Environment Variables": ""
|
||||||
},
|
},
|
||||||
"read-only settings warning for NixOS home-manager users": {
|
"read-only settings warning for NixOS home-manager users": {
|
||||||
"Settings are read-only. Changes will not persist.": "Instellingen zijn alleen-lezen. Wijzigingen worden niet opgeslagen."
|
"Settings are read-only. Changes will not persist.": "Instellingen zijn alleen-lezen. Wijzigingen worden niet opgeslagen."
|
||||||
@@ -6291,10 +6246,10 @@
|
|||||||
"Load Average": "Gemiddelde belasting"
|
"Load Average": "Gemiddelde belasting"
|
||||||
},
|
},
|
||||||
"theme auto mode tab": {
|
"theme auto mode tab": {
|
||||||
"Location": "Locatie"
|
"Location": ""
|
||||||
},
|
},
|
||||||
"theme auto mode tab | wallpaper cycling mode tab": {
|
"theme auto mode tab | wallpaper cycling mode tab": {
|
||||||
"Time": "Tijd"
|
"Time": ""
|
||||||
},
|
},
|
||||||
"theme browser description": {
|
"theme browser description": {
|
||||||
"Install color themes from the DMS theme registry": "Installeer kleurthema's uit het DMS-themaregister"
|
"Install color themes from the DMS theme registry": "Installeer kleurthema's uit het DMS-themaregister"
|
||||||
@@ -6315,7 +6270,7 @@
|
|||||||
"Search themes...": "Thema's zoeken..."
|
"Search themes...": "Thema's zoeken..."
|
||||||
},
|
},
|
||||||
"this app": {
|
"this app": {
|
||||||
"this app": "deze app"
|
"this app": ""
|
||||||
},
|
},
|
||||||
"tile color option": {
|
"tile color option": {
|
||||||
"Primary Container": "Primaire container",
|
"Primary Container": "Primaire container",
|
||||||
@@ -6337,7 +6292,7 @@
|
|||||||
"Unknown": "Onbekend"
|
"Unknown": "Onbekend"
|
||||||
},
|
},
|
||||||
"up": {
|
"up": {
|
||||||
"up": "actief"
|
"up": ""
|
||||||
},
|
},
|
||||||
"update dms for NM integration.": {
|
"update dms for NM integration.": {
|
||||||
"update dms for NM integration.": "update dms voor NM-integratie."
|
"update dms for NM integration.": "update dms voor NM-integratie."
|
||||||
@@ -6352,10 +6307,10 @@
|
|||||||
"Requires %1": "Vereist %1"
|
"Requires %1": "Vereist %1"
|
||||||
},
|
},
|
||||||
"wallpaper color picker title": {
|
"wallpaper color picker title": {
|
||||||
"Choose Wallpaper Color": "Achtergrondkleur kiezen"
|
"Choose Wallpaper Color": ""
|
||||||
},
|
},
|
||||||
"wallpaper cycling mode tab": {
|
"wallpaper cycling mode tab": {
|
||||||
"Interval": "Interval"
|
"Interval": ""
|
||||||
},
|
},
|
||||||
"wallpaper directory file browser title": {
|
"wallpaper directory file browser title": {
|
||||||
"Select Wallpaper Directory": "Selecteer achtergrondmap"
|
"Select Wallpaper Directory": "Selecteer achtergrondmap"
|
||||||
@@ -6376,32 +6331,32 @@
|
|||||||
"Tile V": "Tegelen V"
|
"Tile V": "Tegelen V"
|
||||||
},
|
},
|
||||||
"wallpaper interval": {
|
"wallpaper interval": {
|
||||||
"1 hour": "1 uur",
|
"1 hour": "",
|
||||||
"1 hour 30 minutes": "1 uur 30 minuten",
|
"1 hour 30 minutes": "",
|
||||||
"1 minute": "1 minuut",
|
"1 minute": "",
|
||||||
"10 seconds": "10 seconden",
|
"10 seconds": "",
|
||||||
"12 hours": "12 uur",
|
"12 hours": "",
|
||||||
"15 minutes": "15 minuten",
|
"15 minutes": "",
|
||||||
"15 seconds": "15 seconden",
|
"15 seconds": "",
|
||||||
"2 hours": "2 uur",
|
"2 hours": "",
|
||||||
"20 seconds": "20 seconden",
|
"20 seconds": "",
|
||||||
"25 seconds": "25 seconden",
|
"25 seconds": "",
|
||||||
"3 hours": "3 uur",
|
"3 hours": "",
|
||||||
"30 minutes": "30 minuten",
|
"30 minutes": "",
|
||||||
"30 seconds": "30 seconden",
|
"30 seconds": "",
|
||||||
"35 seconds": "35 seconden",
|
"35 seconds": "",
|
||||||
"4 hours": "4 uur",
|
"4 hours": "",
|
||||||
"40 seconds": "40 seconden",
|
"40 seconds": "",
|
||||||
"45 seconds": "45 seconden",
|
"45 seconds": "",
|
||||||
"5 minutes": "5 minuten",
|
"5 minutes": "",
|
||||||
"5 seconds": "5 seconden",
|
"5 seconds": "",
|
||||||
"50 seconds": "50 seconden",
|
"50 seconds": "",
|
||||||
"55 seconds": "55 seconden",
|
"55 seconds": "",
|
||||||
"6 hours": "6 uur",
|
"6 hours": "",
|
||||||
"8 hours": "8 uur"
|
"8 hours": ""
|
||||||
},
|
},
|
||||||
"wallpaper not set label": {
|
"wallpaper not set label": {
|
||||||
"Not set": "Niet ingesteld"
|
"Not set": ""
|
||||||
},
|
},
|
||||||
"wallpaper processing error": {
|
"wallpaper processing error": {
|
||||||
"Wallpaper processing failed": "Verwerken achtergrond mislukt"
|
"Wallpaper processing failed": "Verwerken achtergrond mislukt"
|
||||||
@@ -6479,6 +6434,6 @@
|
|||||||
"• yyyy - Year (2024)": "• yyyy - Jaar (2024)"
|
"• yyyy - Year (2024)": "• yyyy - Jaar (2024)"
|
||||||
},
|
},
|
||||||
"↑/↓: Nav • Space: Expand • Enter: Action/Expand • E: Text": {
|
"↑/↓: Nav • Space: Expand • Enter: Action/Expand • E: Text": {
|
||||||
"↑/↓: Nav • Space: Expand • Enter: Action/Expand • E: Text": "↑/↓: Nav • Spatie: Uitvouwen • Enter: Actie/Uitvouwen • E: Tekst"
|
"↑/↓: Nav • Space: Expand • Enter: Action/Expand • E: Text": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2089,12 +2089,6 @@
|
|||||||
"Fog": {
|
"Fog": {
|
||||||
"Fog": ""
|
"Fog": ""
|
||||||
},
|
},
|
||||||
"Folder": {
|
|
||||||
"Folder": ""
|
|
||||||
},
|
|
||||||
"Folders": {
|
|
||||||
"Folders": ""
|
|
||||||
},
|
|
||||||
"Follow Monitor Focus": {
|
"Follow Monitor Focus": {
|
||||||
"Follow Monitor Focus": ""
|
"Follow Monitor Focus": ""
|
||||||
},
|
},
|
||||||
@@ -2419,9 +2413,6 @@
|
|||||||
"Icon": {
|
"Icon": {
|
||||||
"Icon": ""
|
"Icon": ""
|
||||||
},
|
},
|
||||||
"Icon Scale": {
|
|
||||||
"Icon Scale": ""
|
|
||||||
},
|
|
||||||
"Icon Size": {
|
"Icon Size": {
|
||||||
"Icon Size": "Rozmiar ikony"
|
"Icon Size": "Rozmiar ikony"
|
||||||
},
|
},
|
||||||
@@ -3022,12 +3013,6 @@
|
|||||||
"Maximize Detection": {
|
"Maximize Detection": {
|
||||||
"Maximize Detection": "Wykrywanie maksymalizacji"
|
"Maximize Detection": "Wykrywanie maksymalizacji"
|
||||||
},
|
},
|
||||||
"Maximize Widget Icons": {
|
|
||||||
"Maximize Widget Icons": ""
|
|
||||||
},
|
|
||||||
"Maximize Widget Text": {
|
|
||||||
"Maximize Widget Text": ""
|
|
||||||
},
|
|
||||||
"Maximum Entry Size": {
|
"Maximum Entry Size": {
|
||||||
"Maximum Entry Size": "Maksymalny rozmiar wpisu"
|
"Maximum Entry Size": "Maksymalny rozmiar wpisu"
|
||||||
},
|
},
|
||||||
@@ -3379,9 +3364,6 @@
|
|||||||
"No files found": {
|
"No files found": {
|
||||||
"No files found": "Nie znaleziono plików"
|
"No files found": "Nie znaleziono plików"
|
||||||
},
|
},
|
||||||
"No folders found": {
|
|
||||||
"No folders found": ""
|
|
||||||
},
|
|
||||||
"No hidden apps.": {
|
"No hidden apps.": {
|
||||||
"No hidden apps.": ""
|
"No hidden apps.": ""
|
||||||
},
|
},
|
||||||
@@ -3574,9 +3556,6 @@
|
|||||||
"Open in Browser": {
|
"Open in Browser": {
|
||||||
"Open in Browser": ""
|
"Open in Browser": ""
|
||||||
},
|
},
|
||||||
"Open in terminal": {
|
|
||||||
"Open in terminal": ""
|
|
||||||
},
|
|
||||||
"Open search bar to find text": {
|
"Open search bar to find text": {
|
||||||
"Open search bar to find text": "Otwórz pasek wyszukiwania, aby znaleźć tekst"
|
"Open search bar to find text": "Otwórz pasek wyszukiwania, aby znaleźć tekst"
|
||||||
},
|
},
|
||||||
@@ -4074,9 +4053,6 @@
|
|||||||
"Remove": {
|
"Remove": {
|
||||||
"Remove": "Usuń"
|
"Remove": "Usuń"
|
||||||
},
|
},
|
||||||
"Remove Widget Padding": {
|
|
||||||
"Remove Widget Padding": ""
|
|
||||||
},
|
|
||||||
"Remove gaps and border when windows are maximized": {
|
"Remove gaps and border when windows are maximized": {
|
||||||
"Remove gaps and border when windows are maximized": "Usuń odstępy i ramkę gdy okna są zmaksymalizowane"
|
"Remove gaps and border when windows are maximized": "Usuń odstępy i ramkę gdy okna są zmaksymalizowane"
|
||||||
},
|
},
|
||||||
@@ -4227,9 +4203,6 @@
|
|||||||
"Save Notepad File": {
|
"Save Notepad File": {
|
||||||
"Save Notepad File": "Zapisz plik notatnika"
|
"Save Notepad File": "Zapisz plik notatnika"
|
||||||
},
|
},
|
||||||
"Save QR Code": {
|
|
||||||
"Save QR Code": ""
|
|
||||||
},
|
|
||||||
"Save and switch between display configurations": {
|
"Save and switch between display configurations": {
|
||||||
"Save and switch between display configurations": ""
|
"Save and switch between display configurations": ""
|
||||||
},
|
},
|
||||||
@@ -4257,9 +4230,6 @@
|
|||||||
"Scale DankBar font sizes independently": {
|
"Scale DankBar font sizes independently": {
|
||||||
"Scale DankBar font sizes independently": "Skaluj rozmiary czcionek DankBar niezależnie"
|
"Scale DankBar font sizes independently": "Skaluj rozmiary czcionek DankBar niezależnie"
|
||||||
},
|
},
|
||||||
"Scale DankBar icon sizes independently": {
|
|
||||||
"Scale DankBar icon sizes independently": ""
|
|
||||||
},
|
|
||||||
"Scale all font sizes throughout the shell": {
|
"Scale all font sizes throughout the shell": {
|
||||||
"Scale all font sizes throughout the shell": "Skaluj wszystkie rozmiary czcionek w całej powłoce"
|
"Scale all font sizes throughout the shell": "Skaluj wszystkie rozmiary czcionek w całej powłoce"
|
||||||
},
|
},
|
||||||
@@ -4275,9 +4245,6 @@
|
|||||||
"Science": {
|
"Science": {
|
||||||
"Science": "Nauka"
|
"Science": "Nauka"
|
||||||
},
|
},
|
||||||
"Score": {
|
|
||||||
"Score": ""
|
|
||||||
},
|
|
||||||
"Screen Sharing": {
|
"Screen Sharing": {
|
||||||
"Screen Sharing": ""
|
"Screen Sharing": ""
|
||||||
},
|
},
|
||||||
@@ -5109,9 +5076,6 @@
|
|||||||
"Trigger: %1": {
|
"Trigger: %1": {
|
||||||
"Trigger: %1": ""
|
"Trigger: %1": ""
|
||||||
},
|
},
|
||||||
"Trust": {
|
|
||||||
"Trust": ""
|
|
||||||
},
|
|
||||||
"Try a different search": {
|
"Try a different search": {
|
||||||
"Try a different search": ""
|
"Try a different search": ""
|
||||||
},
|
},
|
||||||
@@ -5208,9 +5172,6 @@
|
|||||||
"Untitled": {
|
"Untitled": {
|
||||||
"Untitled": "Bez tytułu"
|
"Untitled": "Bez tytułu"
|
||||||
},
|
},
|
||||||
"Untrust": {
|
|
||||||
"Untrust": ""
|
|
||||||
},
|
|
||||||
"Update": {
|
"Update": {
|
||||||
"Update": ""
|
"Update": ""
|
||||||
},
|
},
|
||||||
@@ -5470,9 +5431,6 @@
|
|||||||
"WiFi Device": {
|
"WiFi Device": {
|
||||||
"WiFi Device": "Urządzenie WiFi"
|
"WiFi Device": "Urządzenie WiFi"
|
||||||
},
|
},
|
||||||
"WiFi QR code for ": {
|
|
||||||
"WiFi QR code for ": ""
|
|
||||||
},
|
|
||||||
"WiFi disabled": {
|
"WiFi disabled": {
|
||||||
"WiFi disabled": "WiFi wyłączone"
|
"WiFi disabled": "WiFi wyłączone"
|
||||||
},
|
},
|
||||||
@@ -5807,9 +5765,6 @@
|
|||||||
"events": {
|
"events": {
|
||||||
"events": "wydarzenia"
|
"events": "wydarzenia"
|
||||||
},
|
},
|
||||||
"ext": {
|
|
||||||
"ext": ""
|
|
||||||
},
|
|
||||||
"fallback gpu name": {
|
"fallback gpu name": {
|
||||||
"Unknown GPU": ""
|
"Unknown GPU": ""
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -770,7 +770,7 @@
|
|||||||
"Caps Lock Indicator": "Indicador de Caps Lock"
|
"Caps Lock Indicator": "Indicador de Caps Lock"
|
||||||
},
|
},
|
||||||
"Caps Lock is on": {
|
"Caps Lock is on": {
|
||||||
"Caps Lock is on": "Caps Lock está ligado"
|
"Caps Lock is on": ""
|
||||||
},
|
},
|
||||||
"Center Section": {
|
"Center Section": {
|
||||||
"Center Section": "Seção Central"
|
"Center Section": "Seção Central"
|
||||||
@@ -2089,12 +2089,6 @@
|
|||||||
"Fog": {
|
"Fog": {
|
||||||
"Fog": "Neblina"
|
"Fog": "Neblina"
|
||||||
},
|
},
|
||||||
"Folder": {
|
|
||||||
"Folder": ""
|
|
||||||
},
|
|
||||||
"Folders": {
|
|
||||||
"Folders": ""
|
|
||||||
},
|
|
||||||
"Follow Monitor Focus": {
|
"Follow Monitor Focus": {
|
||||||
"Follow Monitor Focus": "Seguir Foco do Monitor"
|
"Follow Monitor Focus": "Seguir Foco do Monitor"
|
||||||
},
|
},
|
||||||
@@ -2419,9 +2413,6 @@
|
|||||||
"Icon": {
|
"Icon": {
|
||||||
"Icon": "Ícone"
|
"Icon": "Ícone"
|
||||||
},
|
},
|
||||||
"Icon Scale": {
|
|
||||||
"Icon Scale": ""
|
|
||||||
},
|
|
||||||
"Icon Size": {
|
"Icon Size": {
|
||||||
"Icon Size": "Tamanho do Ícone"
|
"Icon Size": "Tamanho do Ícone"
|
||||||
},
|
},
|
||||||
@@ -3022,12 +3013,6 @@
|
|||||||
"Maximize Detection": {
|
"Maximize Detection": {
|
||||||
"Maximize Detection": "Detecção de Maximizado"
|
"Maximize Detection": "Detecção de Maximizado"
|
||||||
},
|
},
|
||||||
"Maximize Widget Icons": {
|
|
||||||
"Maximize Widget Icons": ""
|
|
||||||
},
|
|
||||||
"Maximize Widget Text": {
|
|
||||||
"Maximize Widget Text": ""
|
|
||||||
},
|
|
||||||
"Maximum Entry Size": {
|
"Maximum Entry Size": {
|
||||||
"Maximum Entry Size": "Tamanho Máximo de Entrada"
|
"Maximum Entry Size": "Tamanho Máximo de Entrada"
|
||||||
},
|
},
|
||||||
@@ -3379,9 +3364,6 @@
|
|||||||
"No files found": {
|
"No files found": {
|
||||||
"No files found": "Nenhum arquivo encontrado"
|
"No files found": "Nenhum arquivo encontrado"
|
||||||
},
|
},
|
||||||
"No folders found": {
|
|
||||||
"No folders found": ""
|
|
||||||
},
|
|
||||||
"No hidden apps.": {
|
"No hidden apps.": {
|
||||||
"No hidden apps.": "Sem aplicativos ocultos."
|
"No hidden apps.": "Sem aplicativos ocultos."
|
||||||
},
|
},
|
||||||
@@ -3574,9 +3556,6 @@
|
|||||||
"Open in Browser": {
|
"Open in Browser": {
|
||||||
"Open in Browser": "Abrir no Navegador"
|
"Open in Browser": "Abrir no Navegador"
|
||||||
},
|
},
|
||||||
"Open in terminal": {
|
|
||||||
"Open in terminal": ""
|
|
||||||
},
|
|
||||||
"Open search bar to find text": {
|
"Open search bar to find text": {
|
||||||
"Open search bar to find text": "Abrir barra de pesquisa e encontrar texto"
|
"Open search bar to find text": "Abrir barra de pesquisa e encontrar texto"
|
||||||
},
|
},
|
||||||
@@ -4074,9 +4053,6 @@
|
|||||||
"Remove": {
|
"Remove": {
|
||||||
"Remove": "Remover"
|
"Remove": "Remover"
|
||||||
},
|
},
|
||||||
"Remove Widget Padding": {
|
|
||||||
"Remove Widget Padding": ""
|
|
||||||
},
|
|
||||||
"Remove gaps and border when windows are maximized": {
|
"Remove gaps and border when windows are maximized": {
|
||||||
"Remove gaps and border when windows are maximized": "Remover espaçámentos e borda quando janelas estão maximizadas"
|
"Remove gaps and border when windows are maximized": "Remover espaçámentos e borda quando janelas estão maximizadas"
|
||||||
},
|
},
|
||||||
@@ -4227,9 +4203,6 @@
|
|||||||
"Save Notepad File": {
|
"Save Notepad File": {
|
||||||
"Save Notepad File": "Salvar Arquivo do Bloco de Notas"
|
"Save Notepad File": "Salvar Arquivo do Bloco de Notas"
|
||||||
},
|
},
|
||||||
"Save QR Code": {
|
|
||||||
"Save QR Code": ""
|
|
||||||
},
|
|
||||||
"Save and switch between display configurations": {
|
"Save and switch between display configurations": {
|
||||||
"Save and switch between display configurations": "Salvar e alternar entre configurações de exibição"
|
"Save and switch between display configurations": "Salvar e alternar entre configurações de exibição"
|
||||||
},
|
},
|
||||||
@@ -4257,9 +4230,6 @@
|
|||||||
"Scale DankBar font sizes independently": {
|
"Scale DankBar font sizes independently": {
|
||||||
"Scale DankBar font sizes independently": "Ajustar tamanho da fonte da DankBar de forma independente"
|
"Scale DankBar font sizes independently": "Ajustar tamanho da fonte da DankBar de forma independente"
|
||||||
},
|
},
|
||||||
"Scale DankBar icon sizes independently": {
|
|
||||||
"Scale DankBar icon sizes independently": ""
|
|
||||||
},
|
|
||||||
"Scale all font sizes throughout the shell": {
|
"Scale all font sizes throughout the shell": {
|
||||||
"Scale all font sizes throughout the shell": "Ajuste todos os tamanhos de fonte em todo o shell"
|
"Scale all font sizes throughout the shell": "Ajuste todos os tamanhos de fonte em todo o shell"
|
||||||
},
|
},
|
||||||
@@ -4275,9 +4245,6 @@
|
|||||||
"Science": {
|
"Science": {
|
||||||
"Science": "Ciência"
|
"Science": "Ciência"
|
||||||
},
|
},
|
||||||
"Score": {
|
|
||||||
"Score": ""
|
|
||||||
},
|
|
||||||
"Screen Sharing": {
|
"Screen Sharing": {
|
||||||
"Screen Sharing": "Compartilhamento de Tela"
|
"Screen Sharing": "Compartilhamento de Tela"
|
||||||
},
|
},
|
||||||
@@ -5109,9 +5076,6 @@
|
|||||||
"Trigger: %1": {
|
"Trigger: %1": {
|
||||||
"Trigger: %1": "Gatilho: %1"
|
"Trigger: %1": "Gatilho: %1"
|
||||||
},
|
},
|
||||||
"Trust": {
|
|
||||||
"Trust": ""
|
|
||||||
},
|
|
||||||
"Try a different search": {
|
"Try a different search": {
|
||||||
"Try a different search": "Tente uma pesquisa diferente"
|
"Try a different search": "Tente uma pesquisa diferente"
|
||||||
},
|
},
|
||||||
@@ -5208,9 +5172,6 @@
|
|||||||
"Untitled": {
|
"Untitled": {
|
||||||
"Untitled": "Sem título"
|
"Untitled": "Sem título"
|
||||||
},
|
},
|
||||||
"Untrust": {
|
|
||||||
"Untrust": ""
|
|
||||||
},
|
|
||||||
"Update": {
|
"Update": {
|
||||||
"Update": "Atualizar"
|
"Update": "Atualizar"
|
||||||
},
|
},
|
||||||
@@ -5470,9 +5431,6 @@
|
|||||||
"WiFi Device": {
|
"WiFi Device": {
|
||||||
"WiFi Device": "Dispositivo WiFi"
|
"WiFi Device": "Dispositivo WiFi"
|
||||||
},
|
},
|
||||||
"WiFi QR code for ": {
|
|
||||||
"WiFi QR code for ": ""
|
|
||||||
},
|
|
||||||
"WiFi disabled": {
|
"WiFi disabled": {
|
||||||
"WiFi disabled": "WiFi desativado"
|
"WiFi disabled": "WiFi desativado"
|
||||||
},
|
},
|
||||||
@@ -5807,9 +5765,6 @@
|
|||||||
"events": {
|
"events": {
|
||||||
"events": "eventos"
|
"events": "eventos"
|
||||||
},
|
},
|
||||||
"ext": {
|
|
||||||
"ext": ""
|
|
||||||
},
|
|
||||||
"fallback gpu name": {
|
"fallback gpu name": {
|
||||||
"Unknown GPU": "GPU Desconhecida"
|
"Unknown GPU": "GPU Desconhecida"
|
||||||
},
|
},
|
||||||
@@ -6479,6 +6434,6 @@
|
|||||||
"• yyyy - Year (2024)": "yyyy - Ano (2024)"
|
"• yyyy - Year (2024)": "yyyy - Ano (2024)"
|
||||||
},
|
},
|
||||||
"↑/↓: Nav • Space: Expand • Enter: Action/Expand • E: Text": {
|
"↑/↓: Nav • Space: Expand • Enter: Action/Expand • E: Text": {
|
||||||
"↑/↓: Nav • Space: Expand • Enter: Action/Expand • E: Text": "↑/↓: Navegar • Espaço: Expandir • Enter: Ação/Expandir • E: Texto"
|
"↑/↓: Nav • Space: Expand • Enter: Action/Expand • E: Text": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2089,12 +2089,6 @@
|
|||||||
"Fog": {
|
"Fog": {
|
||||||
"Fog": ""
|
"Fog": ""
|
||||||
},
|
},
|
||||||
"Folder": {
|
|
||||||
"Folder": ""
|
|
||||||
},
|
|
||||||
"Folders": {
|
|
||||||
"Folders": ""
|
|
||||||
},
|
|
||||||
"Follow Monitor Focus": {
|
"Follow Monitor Focus": {
|
||||||
"Follow Monitor Focus": ""
|
"Follow Monitor Focus": ""
|
||||||
},
|
},
|
||||||
@@ -2419,9 +2413,6 @@
|
|||||||
"Icon": {
|
"Icon": {
|
||||||
"Icon": ""
|
"Icon": ""
|
||||||
},
|
},
|
||||||
"Icon Scale": {
|
|
||||||
"Icon Scale": ""
|
|
||||||
},
|
|
||||||
"Icon Size": {
|
"Icon Size": {
|
||||||
"Icon Size": "Simge Boyutu"
|
"Icon Size": "Simge Boyutu"
|
||||||
},
|
},
|
||||||
@@ -3022,12 +3013,6 @@
|
|||||||
"Maximize Detection": {
|
"Maximize Detection": {
|
||||||
"Maximize Detection": "Algılamayı En Üst Düzeye Çıkar"
|
"Maximize Detection": "Algılamayı En Üst Düzeye Çıkar"
|
||||||
},
|
},
|
||||||
"Maximize Widget Icons": {
|
|
||||||
"Maximize Widget Icons": ""
|
|
||||||
},
|
|
||||||
"Maximize Widget Text": {
|
|
||||||
"Maximize Widget Text": ""
|
|
||||||
},
|
|
||||||
"Maximum Entry Size": {
|
"Maximum Entry Size": {
|
||||||
"Maximum Entry Size": "Maksimum Kayıt Boyutu"
|
"Maximum Entry Size": "Maksimum Kayıt Boyutu"
|
||||||
},
|
},
|
||||||
@@ -3379,9 +3364,6 @@
|
|||||||
"No files found": {
|
"No files found": {
|
||||||
"No files found": "Dosya bulunamadı"
|
"No files found": "Dosya bulunamadı"
|
||||||
},
|
},
|
||||||
"No folders found": {
|
|
||||||
"No folders found": ""
|
|
||||||
},
|
|
||||||
"No hidden apps.": {
|
"No hidden apps.": {
|
||||||
"No hidden apps.": ""
|
"No hidden apps.": ""
|
||||||
},
|
},
|
||||||
@@ -3574,9 +3556,6 @@
|
|||||||
"Open in Browser": {
|
"Open in Browser": {
|
||||||
"Open in Browser": ""
|
"Open in Browser": ""
|
||||||
},
|
},
|
||||||
"Open in terminal": {
|
|
||||||
"Open in terminal": ""
|
|
||||||
},
|
|
||||||
"Open search bar to find text": {
|
"Open search bar to find text": {
|
||||||
"Open search bar to find text": "Metin bulmak için arama çubuğunu aç"
|
"Open search bar to find text": "Metin bulmak için arama çubuğunu aç"
|
||||||
},
|
},
|
||||||
@@ -4074,9 +4053,6 @@
|
|||||||
"Remove": {
|
"Remove": {
|
||||||
"Remove": "Kaldır"
|
"Remove": "Kaldır"
|
||||||
},
|
},
|
||||||
"Remove Widget Padding": {
|
|
||||||
"Remove Widget Padding": ""
|
|
||||||
},
|
|
||||||
"Remove gaps and border when windows are maximized": {
|
"Remove gaps and border when windows are maximized": {
|
||||||
"Remove gaps and border when windows are maximized": "Pencereler ekranı kapladığında boşlukları ve kenarlıkları kaldır"
|
"Remove gaps and border when windows are maximized": "Pencereler ekranı kapladığında boşlukları ve kenarlıkları kaldır"
|
||||||
},
|
},
|
||||||
@@ -4227,9 +4203,6 @@
|
|||||||
"Save Notepad File": {
|
"Save Notepad File": {
|
||||||
"Save Notepad File": "Not Defteri Dosyasını Kaydet"
|
"Save Notepad File": "Not Defteri Dosyasını Kaydet"
|
||||||
},
|
},
|
||||||
"Save QR Code": {
|
|
||||||
"Save QR Code": ""
|
|
||||||
},
|
|
||||||
"Save and switch between display configurations": {
|
"Save and switch between display configurations": {
|
||||||
"Save and switch between display configurations": ""
|
"Save and switch between display configurations": ""
|
||||||
},
|
},
|
||||||
@@ -4257,9 +4230,6 @@
|
|||||||
"Scale DankBar font sizes independently": {
|
"Scale DankBar font sizes independently": {
|
||||||
"Scale DankBar font sizes independently": "DankBar yazı tipi boyutlarını bağımsız olarak ölçeklendir"
|
"Scale DankBar font sizes independently": "DankBar yazı tipi boyutlarını bağımsız olarak ölçeklendir"
|
||||||
},
|
},
|
||||||
"Scale DankBar icon sizes independently": {
|
|
||||||
"Scale DankBar icon sizes independently": ""
|
|
||||||
},
|
|
||||||
"Scale all font sizes throughout the shell": {
|
"Scale all font sizes throughout the shell": {
|
||||||
"Scale all font sizes throughout the shell": "Kabuk genelinde tüm yazı tipi boyutlarını ölçeklendir"
|
"Scale all font sizes throughout the shell": "Kabuk genelinde tüm yazı tipi boyutlarını ölçeklendir"
|
||||||
},
|
},
|
||||||
@@ -4275,9 +4245,6 @@
|
|||||||
"Science": {
|
"Science": {
|
||||||
"Science": "Bilim"
|
"Science": "Bilim"
|
||||||
},
|
},
|
||||||
"Score": {
|
|
||||||
"Score": ""
|
|
||||||
},
|
|
||||||
"Screen Sharing": {
|
"Screen Sharing": {
|
||||||
"Screen Sharing": ""
|
"Screen Sharing": ""
|
||||||
},
|
},
|
||||||
@@ -5109,9 +5076,6 @@
|
|||||||
"Trigger: %1": {
|
"Trigger: %1": {
|
||||||
"Trigger: %1": ""
|
"Trigger: %1": ""
|
||||||
},
|
},
|
||||||
"Trust": {
|
|
||||||
"Trust": ""
|
|
||||||
},
|
|
||||||
"Try a different search": {
|
"Try a different search": {
|
||||||
"Try a different search": ""
|
"Try a different search": ""
|
||||||
},
|
},
|
||||||
@@ -5208,9 +5172,6 @@
|
|||||||
"Untitled": {
|
"Untitled": {
|
||||||
"Untitled": "Başlıksız"
|
"Untitled": "Başlıksız"
|
||||||
},
|
},
|
||||||
"Untrust": {
|
|
||||||
"Untrust": ""
|
|
||||||
},
|
|
||||||
"Update": {
|
"Update": {
|
||||||
"Update": ""
|
"Update": ""
|
||||||
},
|
},
|
||||||
@@ -5470,9 +5431,6 @@
|
|||||||
"WiFi Device": {
|
"WiFi Device": {
|
||||||
"WiFi Device": "WiFi Aygıtı"
|
"WiFi Device": "WiFi Aygıtı"
|
||||||
},
|
},
|
||||||
"WiFi QR code for ": {
|
|
||||||
"WiFi QR code for ": ""
|
|
||||||
},
|
|
||||||
"WiFi disabled": {
|
"WiFi disabled": {
|
||||||
"WiFi disabled": "WiFi devre dışı"
|
"WiFi disabled": "WiFi devre dışı"
|
||||||
},
|
},
|
||||||
@@ -5807,9 +5765,6 @@
|
|||||||
"events": {
|
"events": {
|
||||||
"events": "etkinlikler"
|
"events": "etkinlikler"
|
||||||
},
|
},
|
||||||
"ext": {
|
|
||||||
"ext": ""
|
|
||||||
},
|
|
||||||
"fallback gpu name": {
|
"fallback gpu name": {
|
||||||
"Unknown GPU": ""
|
"Unknown GPU": ""
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -24,10 +24,10 @@
|
|||||||
"%1 days ago": "%1天之前"
|
"%1 days ago": "%1天之前"
|
||||||
},
|
},
|
||||||
"%1 disconnected": {
|
"%1 disconnected": {
|
||||||
"%1 disconnected": "%1已断开连接"
|
"%1 disconnected": ""
|
||||||
},
|
},
|
||||||
"%1 disconnected (hidden)": {
|
"%1 disconnected (hidden)": {
|
||||||
"%1 disconnected (hidden)": "%1已断开连接(隐藏)"
|
"%1 disconnected (hidden)": ""
|
||||||
},
|
},
|
||||||
"%1 display(s)": {
|
"%1 display(s)": {
|
||||||
"%1 display(s)": "%1 显示"
|
"%1 display(s)": "%1 显示"
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
"%1 exists but is not included in config. Custom keybinds will not work until this is fixed.": "%1存在但并未被包含至配置文件。在此问题修复前,自定义快捷键绑定将不会生效。"
|
"%1 exists but is not included in config. Custom keybinds will not work until this is fixed.": "%1存在但并未被包含至配置文件。在此问题修复前,自定义快捷键绑定将不会生效。"
|
||||||
},
|
},
|
||||||
"%1 exists but is not included. Window rules won't apply.": {
|
"%1 exists but is not included. Window rules won't apply.": {
|
||||||
"%1 exists but is not included. Window rules won't apply.": "%1已存在但未被包含。窗口规则将不会生效。"
|
"%1 exists but is not included. Window rules won't apply.": ""
|
||||||
},
|
},
|
||||||
"%1 is now included in config": {
|
"%1 is now included in config": {
|
||||||
"%1 is now included in config": "%1现在已被包含至配置文件"
|
"%1 is now included in config": "%1现在已被包含至配置文件"
|
||||||
@@ -246,7 +246,7 @@
|
|||||||
"Add Printer": "添加打印机"
|
"Add Printer": "添加打印机"
|
||||||
},
|
},
|
||||||
"Add Title": {
|
"Add Title": {
|
||||||
"Add Title": "添加标题"
|
"Add Title": ""
|
||||||
},
|
},
|
||||||
"Add Widget": {
|
"Add Widget": {
|
||||||
"Add Widget": "添加部件"
|
"Add Widget": "添加部件"
|
||||||
@@ -339,7 +339,7 @@
|
|||||||
"App ID Substitutions": "应用ID替换"
|
"App ID Substitutions": "应用ID替换"
|
||||||
},
|
},
|
||||||
"App ID regex (e.g. ^firefox$)": {
|
"App ID regex (e.g. ^firefox$)": {
|
||||||
"App ID regex (e.g. ^firefox$)": "应用ID正则(比如^firefox$)"
|
"App ID regex (e.g. ^firefox$)": ""
|
||||||
},
|
},
|
||||||
"App Launcher": {
|
"App Launcher": {
|
||||||
"App Launcher": "启动器"
|
"App Launcher": "启动器"
|
||||||
@@ -617,10 +617,10 @@
|
|||||||
"Bit Depth": "位深"
|
"Bit Depth": "位深"
|
||||||
},
|
},
|
||||||
"Block Out": {
|
"Block Out": {
|
||||||
"Block Out": "封锁"
|
"Block Out": ""
|
||||||
},
|
},
|
||||||
"Block Out From": {
|
"Block Out From": {
|
||||||
"Block Out From": "从此处封锁"
|
"Block Out From": ""
|
||||||
},
|
},
|
||||||
"Block notifications": {
|
"Block notifications": {
|
||||||
"Block notifications": "屏蔽通知"
|
"Block notifications": "屏蔽通知"
|
||||||
@@ -665,7 +665,7 @@
|
|||||||
"Border Thickness": "边框厚度"
|
"Border Thickness": "边框厚度"
|
||||||
},
|
},
|
||||||
"Border with BG": {
|
"Border with BG": {
|
||||||
"Border with BG": "带BG的边框"
|
"Border with BG": ""
|
||||||
},
|
},
|
||||||
"Bottom": {
|
"Bottom": {
|
||||||
"Bottom": "底部"
|
"Bottom": "底部"
|
||||||
@@ -845,7 +845,7 @@
|
|||||||
"Cipher": "密码"
|
"Cipher": "密码"
|
||||||
},
|
},
|
||||||
"Class regex (e.g. ^firefox$)": {
|
"Class regex (e.g. ^firefox$)": {
|
||||||
"Class regex (e.g. ^firefox$)": "窗口类型正则(比如^firefox$)"
|
"Class regex (e.g. ^firefox$)": ""
|
||||||
},
|
},
|
||||||
"Clear": {
|
"Clear": {
|
||||||
"Clear": "清除"
|
"Clear": "清除"
|
||||||
@@ -875,7 +875,7 @@
|
|||||||
"Click 'Setup' to create %1 and add include to config.": "点击设置以创建%1并将其包含至配置文件。"
|
"Click 'Setup' to create %1 and add include to config.": "点击设置以创建%1并将其包含至配置文件。"
|
||||||
},
|
},
|
||||||
"Click 'Setup' to create %1 and add include to your compositor config.": {
|
"Click 'Setup' to create %1 and add include to your compositor config.": {
|
||||||
"Click 'Setup' to create %1 and add include to your compositor config.": "点击设置以创建%1并添加包含文件至合成器配置文件。"
|
"Click 'Setup' to create %1 and add include to your compositor config.": ""
|
||||||
},
|
},
|
||||||
"Click 'Setup' to create cursor config and add include to your compositor config.": {
|
"Click 'Setup' to create cursor config and add include to your compositor config.": {
|
||||||
"Click 'Setup' to create cursor config and add include to your compositor config.": "点击设置以创建光标配置,并导入至合成器配置文件。"
|
"Click 'Setup' to create cursor config and add include to your compositor config.": "点击设置以创建光标配置,并导入至合成器配置文件。"
|
||||||
@@ -905,10 +905,10 @@
|
|||||||
"Click to capture": "点击以捕获"
|
"Click to capture": "点击以捕获"
|
||||||
},
|
},
|
||||||
"Clip": {
|
"Clip": {
|
||||||
"Clip": "裁剪"
|
"Clip": ""
|
||||||
},
|
},
|
||||||
"Clip to Geometry": {
|
"Clip to Geometry": {
|
||||||
"Clip to Geometry": "裁剪至几何形"
|
"Clip to Geometry": ""
|
||||||
},
|
},
|
||||||
"Clipboard": {
|
"Clipboard": {
|
||||||
"Clipboard": "剪切板"
|
"Clipboard": "剪切板"
|
||||||
@@ -995,10 +995,10 @@
|
|||||||
"Column": "列"
|
"Column": "列"
|
||||||
},
|
},
|
||||||
"Column Display": {
|
"Column Display": {
|
||||||
"Column Display": "列式显示"
|
"Column Display": ""
|
||||||
},
|
},
|
||||||
"Column Width": {
|
"Column Width": {
|
||||||
"Column Width": "列宽"
|
"Column Width": ""
|
||||||
},
|
},
|
||||||
"Command": {
|
"Command": {
|
||||||
"Command": "命令"
|
"Command": "命令"
|
||||||
@@ -1025,7 +1025,7 @@
|
|||||||
"Compositor Settings": "合成器设置"
|
"Compositor Settings": "合成器设置"
|
||||||
},
|
},
|
||||||
"Compositor not supported": {
|
"Compositor not supported": {
|
||||||
"Compositor not supported": "合成器不支持"
|
"Compositor not supported": ""
|
||||||
},
|
},
|
||||||
"Config Format": {
|
"Config Format": {
|
||||||
"Config Format": "配置格式"
|
"Config Format": "配置格式"
|
||||||
@@ -1052,7 +1052,7 @@
|
|||||||
"Configure icons for named workspaces. Icons take priority over numbers when both are enabled.": "为已命名工作区配置图标。当数字和图标同时启用时,图标优先生效。"
|
"Configure icons for named workspaces. Icons take priority over numbers when both are enabled.": "为已命名工作区配置图标。当数字和图标同时启用时,图标优先生效。"
|
||||||
},
|
},
|
||||||
"Configure match criteria and actions": {
|
"Configure match criteria and actions": {
|
||||||
"Configure match criteria and actions": "配置文件匹配条件与动作"
|
"Configure match criteria and actions": ""
|
||||||
},
|
},
|
||||||
"Configure which displays show \"%1": {
|
"Configure which displays show \"%1": {
|
||||||
"Configure which displays show \"%1\"": ""
|
"Configure which displays show \"%1\"": ""
|
||||||
@@ -1100,7 +1100,7 @@
|
|||||||
"Connecting...": "连接中..."
|
"Connecting...": "连接中..."
|
||||||
},
|
},
|
||||||
"Content copied": {
|
"Content copied": {
|
||||||
"Content copied": "内容已复制"
|
"Content copied": ""
|
||||||
},
|
},
|
||||||
"Contrast": {
|
"Contrast": {
|
||||||
"Contrast": "对比度"
|
"Contrast": "对比度"
|
||||||
@@ -1148,7 +1148,7 @@
|
|||||||
"Copy": "复制"
|
"Copy": "复制"
|
||||||
},
|
},
|
||||||
"Copy Content": {
|
"Copy Content": {
|
||||||
"Copy Content": "复制内容"
|
"Copy Content": ""
|
||||||
},
|
},
|
||||||
"Copy Full Command": {
|
"Copy Full Command": {
|
||||||
"Copy Full Command": "复制完整命令"
|
"Copy Full Command": "复制完整命令"
|
||||||
@@ -1187,7 +1187,7 @@
|
|||||||
"Cover Open": "打印机盖已打开"
|
"Cover Open": "打印机盖已打开"
|
||||||
},
|
},
|
||||||
"Create": {
|
"Create": {
|
||||||
"Create": "创建"
|
"Create": ""
|
||||||
},
|
},
|
||||||
"Create Dir": {
|
"Create Dir": {
|
||||||
"Create Dir": "创建目录"
|
"Create Dir": "创建目录"
|
||||||
@@ -1196,10 +1196,10 @@
|
|||||||
"Create Printer": "创建打印机"
|
"Create Printer": "创建打印机"
|
||||||
},
|
},
|
||||||
"Create Window Rule": {
|
"Create Window Rule": {
|
||||||
"Create Window Rule": "创建窗口规则"
|
"Create Window Rule": ""
|
||||||
},
|
},
|
||||||
"Create rule for:": {
|
"Create rule for:": {
|
||||||
"Create rule for:": "为此创建规则:"
|
"Create rule for:": ""
|
||||||
},
|
},
|
||||||
"Create rules to mute, ignore, hide from history, or override notification priority.": {
|
"Create rules to mute, ignore, hide from history, or override notification priority.": {
|
||||||
"Create rules to mute, ignore, hide from history, or override notification priority.": ""
|
"Create rules to mute, ignore, hide from history, or override notification priority.": ""
|
||||||
@@ -1382,7 +1382,7 @@
|
|||||||
"Defaults": "复位"
|
"Defaults": "复位"
|
||||||
},
|
},
|
||||||
"Define rules for window behavior. Saves to %1": {
|
"Define rules for window behavior. Saves to %1": {
|
||||||
"Define rules for window behavior. Saves to %1": "定义窗口行为规则。保存至%1"
|
"Define rules for window behavior. Saves to %1": ""
|
||||||
},
|
},
|
||||||
"Del: Clear • Shift+Del: Clear All • 1-9: Actions • F10: Help • Esc: Close": {
|
"Del: Clear • Shift+Del: Clear All • 1-9: Actions • F10: Help • Esc: Close": {
|
||||||
"Del: Clear • Shift+Del: Clear All • 1-9: Actions • F10: Help • Esc: Close": "Del: 清除 • Shift+Del: 清空 • 1-9: 操作 • F10: 帮助 • Esc: 关闭"
|
"Del: Clear • Shift+Del: Clear All • 1-9: Actions • F10: Help • Esc: Close": "Del: 清除 • Shift+Del: 清空 • 1-9: 操作 • F10: 帮助 • Esc: 关闭"
|
||||||
@@ -1505,7 +1505,7 @@
|
|||||||
"Dismiss": "忽略"
|
"Dismiss": "忽略"
|
||||||
},
|
},
|
||||||
"Display": {
|
"Display": {
|
||||||
"Display": "显示"
|
"Display": ""
|
||||||
},
|
},
|
||||||
"Display Assignment": {
|
"Display Assignment": {
|
||||||
"Display Assignment": "显示布局"
|
"Display Assignment": "显示布局"
|
||||||
@@ -1514,7 +1514,7 @@
|
|||||||
"Display Name Format": "显示名称格式"
|
"Display Name Format": "显示名称格式"
|
||||||
},
|
},
|
||||||
"Display Profiles": {
|
"Display Profiles": {
|
||||||
"Display Profiles": "显示档案"
|
"Display Profiles": ""
|
||||||
},
|
},
|
||||||
"Display Settings": {
|
"Display Settings": {
|
||||||
"Display Settings": "显示设置"
|
"Display Settings": "显示设置"
|
||||||
@@ -1562,7 +1562,7 @@
|
|||||||
"Displays": "显示"
|
"Displays": "显示"
|
||||||
},
|
},
|
||||||
"Displays count when overflow is active": {
|
"Displays count when overflow is active": {
|
||||||
"Displays count when overflow is active": "当溢出激活时显示计数"
|
"Displays count when overflow is active": ""
|
||||||
},
|
},
|
||||||
"Displays the active keyboard layout and allows switching": {
|
"Displays the active keyboard layout and allows switching": {
|
||||||
"Displays the active keyboard layout and allows switching": "显示当前键盘布局并支持切换"
|
"Displays the active keyboard layout and allows switching": "显示当前键盘布局并支持切换"
|
||||||
@@ -1643,7 +1643,7 @@
|
|||||||
"Dusk (Nautical Twilight)": "黄昏(航海暮光)"
|
"Dusk (Nautical Twilight)": "黄昏(航海暮光)"
|
||||||
},
|
},
|
||||||
"Dynamic Properties": {
|
"Dynamic Properties": {
|
||||||
"Dynamic Properties": "动态属性"
|
"Dynamic Properties": ""
|
||||||
},
|
},
|
||||||
"Edge Spacing": {
|
"Edge Spacing": {
|
||||||
"Edge Spacing": "边缘间距"
|
"Edge Spacing": "边缘间距"
|
||||||
@@ -2089,12 +2089,6 @@
|
|||||||
"Fog": {
|
"Fog": {
|
||||||
"Fog": ""
|
"Fog": ""
|
||||||
},
|
},
|
||||||
"Folder": {
|
|
||||||
"Folder": ""
|
|
||||||
},
|
|
||||||
"Folders": {
|
|
||||||
"Folders": ""
|
|
||||||
},
|
|
||||||
"Follow Monitor Focus": {
|
"Follow Monitor Focus": {
|
||||||
"Follow Monitor Focus": "遵守显示器聚焦"
|
"Follow Monitor Focus": "遵守显示器聚焦"
|
||||||
},
|
},
|
||||||
@@ -2419,9 +2413,6 @@
|
|||||||
"Icon": {
|
"Icon": {
|
||||||
"Icon": "图标"
|
"Icon": "图标"
|
||||||
},
|
},
|
||||||
"Icon Scale": {
|
|
||||||
"Icon Scale": ""
|
|
||||||
},
|
|
||||||
"Icon Size": {
|
"Icon Size": {
|
||||||
"Icon Size": "图标大小"
|
"Icon Size": "图标大小"
|
||||||
},
|
},
|
||||||
@@ -2560,7 +2551,7 @@
|
|||||||
"Clipboard sent": "已发送剪切板"
|
"Clipboard sent": "已发送剪切板"
|
||||||
},
|
},
|
||||||
"KDE Connect clipboard action | Phone Connect clipboard action": {
|
"KDE Connect clipboard action | Phone Connect clipboard action": {
|
||||||
"Clipboard sent": "剪切板已发送"
|
"Clipboard sent": ""
|
||||||
},
|
},
|
||||||
"KDE Connect clipboard tooltip": {
|
"KDE Connect clipboard tooltip": {
|
||||||
"Send Clipboard": "发送剪切板"
|
"Send Clipboard": "发送剪切板"
|
||||||
@@ -2606,7 +2597,7 @@
|
|||||||
"No devices": "无设备"
|
"No devices": "无设备"
|
||||||
},
|
},
|
||||||
"KDE Connect no devices status | bluetooth status": {
|
"KDE Connect no devices status | bluetooth status": {
|
||||||
"No devices": "无设备"
|
"No devices": ""
|
||||||
},
|
},
|
||||||
"KDE Connect not paired status": {
|
"KDE Connect not paired status": {
|
||||||
"Not paired": "未配对"
|
"Not paired": "未配对"
|
||||||
@@ -2713,7 +2704,7 @@
|
|||||||
"Unavailable": "不可用"
|
"Unavailable": "不可用"
|
||||||
},
|
},
|
||||||
"KDE Connect unknown device status | battery status | power profile option | unknown author | widget status": {
|
"KDE Connect unknown device status | battery status | power profile option | unknown author | widget status": {
|
||||||
"Unknown": "未知"
|
"Unknown": ""
|
||||||
},
|
},
|
||||||
"KDE Connect unknown device status | unknown author": {
|
"KDE Connect unknown device status | unknown author": {
|
||||||
"Unknown": "未知"
|
"Unknown": "未知"
|
||||||
@@ -2722,7 +2713,7 @@
|
|||||||
"Device unpaired": "设备已取消配对"
|
"Device unpaired": "设备已取消配对"
|
||||||
},
|
},
|
||||||
"KDE Connect unpair action | Phone Connect unpair action": {
|
"KDE Connect unpair action | Phone Connect unpair action": {
|
||||||
"Device unpaired": "设备已取消配对"
|
"Device unpaired": ""
|
||||||
},
|
},
|
||||||
"KDE Connect unpair tooltip": {
|
"KDE Connect unpair tooltip": {
|
||||||
"Unpair": "取消配对"
|
"Unpair": "取消配对"
|
||||||
@@ -3022,12 +3013,6 @@
|
|||||||
"Maximize Detection": {
|
"Maximize Detection": {
|
||||||
"Maximize Detection": "最大化检测"
|
"Maximize Detection": "最大化检测"
|
||||||
},
|
},
|
||||||
"Maximize Widget Icons": {
|
|
||||||
"Maximize Widget Icons": ""
|
|
||||||
},
|
|
||||||
"Maximize Widget Text": {
|
|
||||||
"Maximize Widget Text": ""
|
|
||||||
},
|
|
||||||
"Maximum Entry Size": {
|
"Maximum Entry Size": {
|
||||||
"Maximum Entry Size": "最大尺寸"
|
"Maximum Entry Size": "最大尺寸"
|
||||||
},
|
},
|
||||||
@@ -3379,9 +3364,6 @@
|
|||||||
"No files found": {
|
"No files found": {
|
||||||
"No files found": "未找到文件"
|
"No files found": "未找到文件"
|
||||||
},
|
},
|
||||||
"No folders found": {
|
|
||||||
"No folders found": ""
|
|
||||||
},
|
|
||||||
"No hidden apps.": {
|
"No hidden apps.": {
|
||||||
"No hidden apps.": "无已隐藏应用。"
|
"No hidden apps.": "无已隐藏应用。"
|
||||||
},
|
},
|
||||||
@@ -3574,9 +3556,6 @@
|
|||||||
"Open in Browser": {
|
"Open in Browser": {
|
||||||
"Open in Browser": "在浏览器中打开"
|
"Open in Browser": "在浏览器中打开"
|
||||||
},
|
},
|
||||||
"Open in terminal": {
|
|
||||||
"Open in terminal": ""
|
|
||||||
},
|
|
||||||
"Open search bar to find text": {
|
"Open search bar to find text": {
|
||||||
"Open search bar to find text": "打开搜索栏以查找文本"
|
"Open search bar to find text": "打开搜索栏以查找文本"
|
||||||
},
|
},
|
||||||
@@ -3753,7 +3732,7 @@
|
|||||||
"No devices": ""
|
"No devices": ""
|
||||||
},
|
},
|
||||||
"Phone Connect pairing action": {
|
"Phone Connect pairing action": {
|
||||||
"Device paired": "设备已配对",
|
"Device paired": "",
|
||||||
"Pairing request sent": ""
|
"Pairing request sent": ""
|
||||||
},
|
},
|
||||||
"Phone Connect pairing request notification": {
|
"Phone Connect pairing request notification": {
|
||||||
@@ -4074,9 +4053,6 @@
|
|||||||
"Remove": {
|
"Remove": {
|
||||||
"Remove": "移除"
|
"Remove": "移除"
|
||||||
},
|
},
|
||||||
"Remove Widget Padding": {
|
|
||||||
"Remove Widget Padding": ""
|
|
||||||
},
|
|
||||||
"Remove gaps and border when windows are maximized": {
|
"Remove gaps and border when windows are maximized": {
|
||||||
"Remove gaps and border when windows are maximized": "当窗口最大化时移除间距和边框"
|
"Remove gaps and border when windows are maximized": "当窗口最大化时移除间距和边框"
|
||||||
},
|
},
|
||||||
@@ -4227,9 +4203,6 @@
|
|||||||
"Save Notepad File": {
|
"Save Notepad File": {
|
||||||
"Save Notepad File": "保存便签"
|
"Save Notepad File": "保存便签"
|
||||||
},
|
},
|
||||||
"Save QR Code": {
|
|
||||||
"Save QR Code": ""
|
|
||||||
},
|
|
||||||
"Save and switch between display configurations": {
|
"Save and switch between display configurations": {
|
||||||
"Save and switch between display configurations": ""
|
"Save and switch between display configurations": ""
|
||||||
},
|
},
|
||||||
@@ -4257,9 +4230,6 @@
|
|||||||
"Scale DankBar font sizes independently": {
|
"Scale DankBar font sizes independently": {
|
||||||
"Scale DankBar font sizes independently": "独立调整 Dank Bar 字体缩放"
|
"Scale DankBar font sizes independently": "独立调整 Dank Bar 字体缩放"
|
||||||
},
|
},
|
||||||
"Scale DankBar icon sizes independently": {
|
|
||||||
"Scale DankBar icon sizes independently": ""
|
|
||||||
},
|
|
||||||
"Scale all font sizes throughout the shell": {
|
"Scale all font sizes throughout the shell": {
|
||||||
"Scale all font sizes throughout the shell": "缩放整个 shell 中的所有字体大小"
|
"Scale all font sizes throughout the shell": "缩放整个 shell 中的所有字体大小"
|
||||||
},
|
},
|
||||||
@@ -4275,9 +4245,6 @@
|
|||||||
"Science": {
|
"Science": {
|
||||||
"Science": "科学"
|
"Science": "科学"
|
||||||
},
|
},
|
||||||
"Score": {
|
|
||||||
"Score": ""
|
|
||||||
},
|
|
||||||
"Screen Sharing": {
|
"Screen Sharing": {
|
||||||
"Screen Sharing": "屏幕共享"
|
"Screen Sharing": "屏幕共享"
|
||||||
},
|
},
|
||||||
@@ -5109,9 +5076,6 @@
|
|||||||
"Trigger: %1": {
|
"Trigger: %1": {
|
||||||
"Trigger: %1": "触发器:%1"
|
"Trigger: %1": "触发器:%1"
|
||||||
},
|
},
|
||||||
"Trust": {
|
|
||||||
"Trust": ""
|
|
||||||
},
|
|
||||||
"Try a different search": {
|
"Try a different search": {
|
||||||
"Try a different search": "尝试不同的搜索"
|
"Try a different search": "尝试不同的搜索"
|
||||||
},
|
},
|
||||||
@@ -5208,9 +5172,6 @@
|
|||||||
"Untitled": {
|
"Untitled": {
|
||||||
"Untitled": "无标题"
|
"Untitled": "无标题"
|
||||||
},
|
},
|
||||||
"Untrust": {
|
|
||||||
"Untrust": ""
|
|
||||||
},
|
|
||||||
"Update": {
|
"Update": {
|
||||||
"Update": ""
|
"Update": ""
|
||||||
},
|
},
|
||||||
@@ -5470,9 +5431,6 @@
|
|||||||
"WiFi Device": {
|
"WiFi Device": {
|
||||||
"WiFi Device": "WiFi 设备"
|
"WiFi Device": "WiFi 设备"
|
||||||
},
|
},
|
||||||
"WiFi QR code for ": {
|
|
||||||
"WiFi QR code for ": ""
|
|
||||||
},
|
|
||||||
"WiFi disabled": {
|
"WiFi disabled": {
|
||||||
"WiFi disabled": "Wi-Fi 已停用"
|
"WiFi disabled": "Wi-Fi 已停用"
|
||||||
},
|
},
|
||||||
@@ -5625,10 +5583,10 @@
|
|||||||
"apps": "应用程序"
|
"apps": "应用程序"
|
||||||
},
|
},
|
||||||
"audio status": {
|
"audio status": {
|
||||||
"Muted": "已静音",
|
"Muted": "",
|
||||||
"No input device": "无输入设备",
|
"No input device": "",
|
||||||
"No output device": "无输出设备",
|
"No output device": "",
|
||||||
"Select device": "选择设备"
|
"Select device": ""
|
||||||
},
|
},
|
||||||
"author attribution": {
|
"author attribution": {
|
||||||
"by %1": "%1"
|
"by %1": "%1"
|
||||||
@@ -5640,19 +5598,19 @@
|
|||||||
"Charging": "充电",
|
"Charging": "充电",
|
||||||
"Discharging": "放电",
|
"Discharging": "放电",
|
||||||
"Empty": "空白",
|
"Empty": "空白",
|
||||||
"Fully Charged": "已充满",
|
"Fully Charged": "",
|
||||||
"No Battery": "无电池",
|
"No Battery": "",
|
||||||
"Pending Charge": "待充电",
|
"Pending Charge": "",
|
||||||
"Pending Discharge": "待放电",
|
"Pending Discharge": "",
|
||||||
"Plugged In": "已接入"
|
"Plugged In": ""
|
||||||
},
|
},
|
||||||
"bluetooth status": {
|
"bluetooth status": {
|
||||||
"Bluetooth": "蓝牙",
|
"Bluetooth": "蓝牙",
|
||||||
"Connected Device": "已连接的设备",
|
"Connected Device": "已连接的设备",
|
||||||
"Enabled": "启用",
|
"Enabled": "",
|
||||||
"No adapter": "无适配器",
|
"No adapter": "",
|
||||||
"No adapters": "无适配器",
|
"No adapters": "",
|
||||||
"Off": "关"
|
"Off": ""
|
||||||
},
|
},
|
||||||
"bluetooth status | lock screen notification mode option": {
|
"bluetooth status | lock screen notification mode option": {
|
||||||
"Disabled": "禁用"
|
"Disabled": "禁用"
|
||||||
@@ -5683,13 +5641,13 @@
|
|||||||
"Soothing pastel theme based on Catppuccin": "基于Catppuccin的舒缓且柔和的主题"
|
"Soothing pastel theme based on Catppuccin": "基于Catppuccin的舒缓且柔和的主题"
|
||||||
},
|
},
|
||||||
"color option | primary color | tile color option": {
|
"color option | primary color | tile color option": {
|
||||||
"Primary": "首选"
|
"Primary": ""
|
||||||
},
|
},
|
||||||
"color option | secondary color | tile color option": {
|
"color option | secondary color | tile color option": {
|
||||||
"Secondary": "次选"
|
"Secondary": ""
|
||||||
},
|
},
|
||||||
"color option | shadow color option": {
|
"color option | shadow color option": {
|
||||||
"Surface": "表面"
|
"Surface": ""
|
||||||
},
|
},
|
||||||
"control center tile color setting description": {
|
"control center tile color setting description": {
|
||||||
"Active tile background and icon color": "激活平铺背景与图标颜色"
|
"Active tile background and icon color": "激活平铺背景与图标颜色"
|
||||||
@@ -5719,13 +5677,13 @@
|
|||||||
"Custom...": "自定义...",
|
"Custom...": "自定义...",
|
||||||
"Day Date": "日 日期",
|
"Day Date": "日 日期",
|
||||||
"Day Month Date": "日 月份 日期",
|
"Day Month Date": "日 月份 日期",
|
||||||
"Full Day & Month": "日期与月份全写",
|
"Full Day & Month": "",
|
||||||
"Full with Year": "年份全写",
|
"Full with Year": "",
|
||||||
"ISO Date": "ISO日期",
|
"ISO Date": "",
|
||||||
"Month Date": "月份日期",
|
"Month Date": "",
|
||||||
"Numeric (D/M)": "数字(D/M)",
|
"Numeric (D/M)": "",
|
||||||
"Numeric (M/D)": "数字(M/D)",
|
"Numeric (M/D)": "",
|
||||||
"System Default": "系统默认"
|
"System Default": ""
|
||||||
},
|
},
|
||||||
"days": {
|
"days": {
|
||||||
"days": "天"
|
"days": "天"
|
||||||
@@ -5763,13 +5721,13 @@
|
|||||||
},
|
},
|
||||||
"dock indicator style option": {
|
"dock indicator style option": {
|
||||||
"Circle": "圆形",
|
"Circle": "圆形",
|
||||||
"Line": "线条"
|
"Line": ""
|
||||||
},
|
},
|
||||||
"dock position option": {
|
"dock position option": {
|
||||||
"Bottom": "底部",
|
"Bottom": "底部",
|
||||||
"Left": "左侧",
|
"Left": "",
|
||||||
"Right": "右侧",
|
"Right": "",
|
||||||
"Top": "顶部"
|
"Top": ""
|
||||||
},
|
},
|
||||||
"dynamic colors description": {
|
"dynamic colors description": {
|
||||||
"Dynamic colors from wallpaper": "自壁纸选取动态色"
|
"Dynamic colors from wallpaper": "自壁纸选取动态色"
|
||||||
@@ -5807,9 +5765,6 @@
|
|||||||
"events": {
|
"events": {
|
||||||
"events": "事件"
|
"events": "事件"
|
||||||
},
|
},
|
||||||
"ext": {
|
|
||||||
"ext": ""
|
|
||||||
},
|
|
||||||
"fallback gpu name": {
|
"fallback gpu name": {
|
||||||
"Unknown GPU": "未知的GPU"
|
"Unknown GPU": "未知的GPU"
|
||||||
},
|
},
|
||||||
@@ -6028,14 +5983,14 @@
|
|||||||
},
|
},
|
||||||
"matugen color scheme option": {
|
"matugen color scheme option": {
|
||||||
"Content": "内容",
|
"Content": "内容",
|
||||||
"Expressive": "具有表现力的",
|
"Expressive": "",
|
||||||
"Fidelity": "保真",
|
"Fidelity": "",
|
||||||
"Fruit Salad": "水果沙拉",
|
"Fruit Salad": "",
|
||||||
"Monochrome": "单色",
|
"Monochrome": "",
|
||||||
"Neutral": "中性",
|
"Neutral": "",
|
||||||
"Rainbow": "彩虹",
|
"Rainbow": "",
|
||||||
"Tonal Spot": "音色斑点",
|
"Tonal Spot": "",
|
||||||
"Vibrant": "鲜艳"
|
"Vibrant": ""
|
||||||
},
|
},
|
||||||
"matugen error": {
|
"matugen error": {
|
||||||
"matugen not found - install matugen package for dynamic theming": "未找到matugen - 请为动态主题安装matugen包"
|
"matugen not found - install matugen package for dynamic theming": "未找到matugen - 请为动态主题安装matugen包"
|
||||||
@@ -6049,7 +6004,7 @@
|
|||||||
"media scroll wheel option": {
|
"media scroll wheel option": {
|
||||||
"Change Song": "切换歌曲",
|
"Change Song": "切换歌曲",
|
||||||
"Change Volume": "切换音量",
|
"Change Volume": "切换音量",
|
||||||
"Nothing": "无"
|
"Nothing": ""
|
||||||
},
|
},
|
||||||
"minutes": {
|
"minutes": {
|
||||||
"minutes": "分钟"
|
"minutes": "分钟"
|
||||||
@@ -6069,12 +6024,12 @@
|
|||||||
"network status": {
|
"network status": {
|
||||||
"Connected": "",
|
"Connected": "",
|
||||||
"Disabling WiFi...": "正在禁用WiFi...",
|
"Disabling WiFi...": "正在禁用WiFi...",
|
||||||
"Enabling WiFi...": "正在启用WiFi...",
|
"Enabling WiFi...": "",
|
||||||
"Ethernet": "以太网",
|
"Ethernet": "",
|
||||||
"Not connected": "未连接",
|
"Not connected": "",
|
||||||
"Please wait...": "请稍候...",
|
"Please wait...": "",
|
||||||
"Select network": "选择网络",
|
"Select network": "",
|
||||||
"WiFi off": "WiFi关闭"
|
"WiFi off": ""
|
||||||
},
|
},
|
||||||
"no custom theme file status": {
|
"no custom theme file status": {
|
||||||
"No custom theme file": "缺失自定义主题文件"
|
"No custom theme file": "缺失自定义主题文件"
|
||||||
@@ -6204,13 +6159,13 @@
|
|||||||
"power profile description": {
|
"power profile description": {
|
||||||
"Balance power and performance": "平衡与性能电源模式",
|
"Balance power and performance": "平衡与性能电源模式",
|
||||||
"Custom power profile": "自定义电源配置",
|
"Custom power profile": "自定义电源配置",
|
||||||
"Extend battery life": "延长电池寿命",
|
"Extend battery life": "",
|
||||||
"Prioritize performance": "优先考虑性能"
|
"Prioritize performance": ""
|
||||||
},
|
},
|
||||||
"power profile option": {
|
"power profile option": {
|
||||||
"Balanced": "平衡",
|
"Balanced": "平衡",
|
||||||
"Performance": "性能",
|
"Performance": "",
|
||||||
"Power Saver": "省电"
|
"Power Saver": ""
|
||||||
},
|
},
|
||||||
"primary color": {
|
"primary color": {
|
||||||
"Primary": "首选"
|
"Primary": "首选"
|
||||||
@@ -6243,11 +6198,11 @@
|
|||||||
"Bottom Center": "底部中间",
|
"Bottom Center": "底部中间",
|
||||||
"Bottom Left": "底部左侧",
|
"Bottom Left": "底部左侧",
|
||||||
"Bottom Right": "底部右侧",
|
"Bottom Right": "底部右侧",
|
||||||
"Left Center": "左侧中部",
|
"Left Center": "",
|
||||||
"Right Center": "右侧中部",
|
"Right Center": "",
|
||||||
"Top Center": "顶部中间",
|
"Top Center": "",
|
||||||
"Top Left": "顶部左侧",
|
"Top Left": "",
|
||||||
"Top Right": "顶部右侧"
|
"Top Right": ""
|
||||||
},
|
},
|
||||||
"secondary color": {
|
"secondary color": {
|
||||||
"Secondary": "次选"
|
"Secondary": "次选"
|
||||||
@@ -6303,7 +6258,7 @@
|
|||||||
"Auto": "自动",
|
"Auto": "自动",
|
||||||
"Browse": "浏览",
|
"Browse": "浏览",
|
||||||
"Custom": "自定义",
|
"Custom": "自定义",
|
||||||
"Generic": "通用"
|
"Generic": ""
|
||||||
},
|
},
|
||||||
"theme installation confirmation": {
|
"theme installation confirmation": {
|
||||||
"Install theme '%1' from the DMS registry?": "要从DMS注册表安装主题%1吗?"
|
"Install theme '%1' from the DMS registry?": "要从DMS注册表安装主题%1吗?"
|
||||||
@@ -6318,8 +6273,8 @@
|
|||||||
"this app": ""
|
"this app": ""
|
||||||
},
|
},
|
||||||
"tile color option": {
|
"tile color option": {
|
||||||
"Primary Container": "首选容器",
|
"Primary Container": "",
|
||||||
"Surface Variant": "表面变体"
|
"Surface Variant": ""
|
||||||
},
|
},
|
||||||
"uninstall action button": {
|
"uninstall action button": {
|
||||||
"Uninstall": "卸载"
|
"Uninstall": "卸载"
|
||||||
@@ -6367,13 +6322,13 @@
|
|||||||
"Wallpaper Error": "壁纸错误"
|
"Wallpaper Error": "壁纸错误"
|
||||||
},
|
},
|
||||||
"wallpaper fill mode": {
|
"wallpaper fill mode": {
|
||||||
"Fill": "填充",
|
"Fill": "",
|
||||||
"Fit": "适合",
|
"Fit": "",
|
||||||
"Pad": "覆盖",
|
"Pad": "",
|
||||||
"Stretch": "拉伸",
|
"Stretch": "",
|
||||||
"Tile": "平铺",
|
"Tile": "",
|
||||||
"Tile H": "水平平铺",
|
"Tile H": "",
|
||||||
"Tile V": "垂直平铺"
|
"Tile V": ""
|
||||||
},
|
},
|
||||||
"wallpaper interval": {
|
"wallpaper interval": {
|
||||||
"1 hour": "",
|
"1 hour": "",
|
||||||
@@ -6417,14 +6372,14 @@
|
|||||||
},
|
},
|
||||||
"wallpaper transition option": {
|
"wallpaper transition option": {
|
||||||
"Disc": "Disc",
|
"Disc": "Disc",
|
||||||
"Fade": "淡入淡出",
|
"Fade": "",
|
||||||
"Iris Bloom": "光圈绽放",
|
"Iris Bloom": "",
|
||||||
"None": "无",
|
"None": "",
|
||||||
"Pixelate": "像素化",
|
"Pixelate": "",
|
||||||
"Portal": "门户",
|
"Portal": "",
|
||||||
"Random": "随机",
|
"Random": "",
|
||||||
"Stripes": "条纹",
|
"Stripes": "",
|
||||||
"Wipe": "擦除"
|
"Wipe": ""
|
||||||
},
|
},
|
||||||
"weather feels like temperature": {
|
"weather feels like temperature": {
|
||||||
"Feels Like %1°": "体感 %1°"
|
"Feels Like %1°": "体感 %1°"
|
||||||
|
|||||||
@@ -2089,12 +2089,6 @@
|
|||||||
"Fog": {
|
"Fog": {
|
||||||
"Fog": ""
|
"Fog": ""
|
||||||
},
|
},
|
||||||
"Folder": {
|
|
||||||
"Folder": ""
|
|
||||||
},
|
|
||||||
"Folders": {
|
|
||||||
"Folders": ""
|
|
||||||
},
|
|
||||||
"Follow Monitor Focus": {
|
"Follow Monitor Focus": {
|
||||||
"Follow Monitor Focus": "跟隨螢幕焦點"
|
"Follow Monitor Focus": "跟隨螢幕焦點"
|
||||||
},
|
},
|
||||||
@@ -2419,9 +2413,6 @@
|
|||||||
"Icon": {
|
"Icon": {
|
||||||
"Icon": "圖示"
|
"Icon": "圖示"
|
||||||
},
|
},
|
||||||
"Icon Scale": {
|
|
||||||
"Icon Scale": ""
|
|
||||||
},
|
|
||||||
"Icon Size": {
|
"Icon Size": {
|
||||||
"Icon Size": "圖示大小"
|
"Icon Size": "圖示大小"
|
||||||
},
|
},
|
||||||
@@ -3022,12 +3013,6 @@
|
|||||||
"Maximize Detection": {
|
"Maximize Detection": {
|
||||||
"Maximize Detection": "最大化偵測"
|
"Maximize Detection": "最大化偵測"
|
||||||
},
|
},
|
||||||
"Maximize Widget Icons": {
|
|
||||||
"Maximize Widget Icons": ""
|
|
||||||
},
|
|
||||||
"Maximize Widget Text": {
|
|
||||||
"Maximize Widget Text": ""
|
|
||||||
},
|
|
||||||
"Maximum Entry Size": {
|
"Maximum Entry Size": {
|
||||||
"Maximum Entry Size": "單一項目最大大小"
|
"Maximum Entry Size": "單一項目最大大小"
|
||||||
},
|
},
|
||||||
@@ -3379,9 +3364,6 @@
|
|||||||
"No files found": {
|
"No files found": {
|
||||||
"No files found": "沒有找到"
|
"No files found": "沒有找到"
|
||||||
},
|
},
|
||||||
"No folders found": {
|
|
||||||
"No folders found": ""
|
|
||||||
},
|
|
||||||
"No hidden apps.": {
|
"No hidden apps.": {
|
||||||
"No hidden apps.": "沒有隱藏的應用程式。"
|
"No hidden apps.": "沒有隱藏的應用程式。"
|
||||||
},
|
},
|
||||||
@@ -3574,9 +3556,6 @@
|
|||||||
"Open in Browser": {
|
"Open in Browser": {
|
||||||
"Open in Browser": "在瀏覽器中開啟"
|
"Open in Browser": "在瀏覽器中開啟"
|
||||||
},
|
},
|
||||||
"Open in terminal": {
|
|
||||||
"Open in terminal": ""
|
|
||||||
},
|
|
||||||
"Open search bar to find text": {
|
"Open search bar to find text": {
|
||||||
"Open search bar to find text": "打開搜尋欄尋找文本"
|
"Open search bar to find text": "打開搜尋欄尋找文本"
|
||||||
},
|
},
|
||||||
@@ -4074,9 +4053,6 @@
|
|||||||
"Remove": {
|
"Remove": {
|
||||||
"Remove": "刪除"
|
"Remove": "刪除"
|
||||||
},
|
},
|
||||||
"Remove Widget Padding": {
|
|
||||||
"Remove Widget Padding": ""
|
|
||||||
},
|
|
||||||
"Remove gaps and border when windows are maximized": {
|
"Remove gaps and border when windows are maximized": {
|
||||||
"Remove gaps and border when windows are maximized": "視窗最大化時移除間距與邊框"
|
"Remove gaps and border when windows are maximized": "視窗最大化時移除間距與邊框"
|
||||||
},
|
},
|
||||||
@@ -4227,9 +4203,6 @@
|
|||||||
"Save Notepad File": {
|
"Save Notepad File": {
|
||||||
"Save Notepad File": "儲存記事本"
|
"Save Notepad File": "儲存記事本"
|
||||||
},
|
},
|
||||||
"Save QR Code": {
|
|
||||||
"Save QR Code": ""
|
|
||||||
},
|
|
||||||
"Save and switch between display configurations": {
|
"Save and switch between display configurations": {
|
||||||
"Save and switch between display configurations": "儲存並切換顯示設定"
|
"Save and switch between display configurations": "儲存並切換顯示設定"
|
||||||
},
|
},
|
||||||
@@ -4257,9 +4230,6 @@
|
|||||||
"Scale DankBar font sizes independently": {
|
"Scale DankBar font sizes independently": {
|
||||||
"Scale DankBar font sizes independently": "獨立縮放 DankBar 字體大小"
|
"Scale DankBar font sizes independently": "獨立縮放 DankBar 字體大小"
|
||||||
},
|
},
|
||||||
"Scale DankBar icon sizes independently": {
|
|
||||||
"Scale DankBar icon sizes independently": ""
|
|
||||||
},
|
|
||||||
"Scale all font sizes throughout the shell": {
|
"Scale all font sizes throughout the shell": {
|
||||||
"Scale all font sizes throughout the shell": "縮放整個 Shell 中的所有字體大小"
|
"Scale all font sizes throughout the shell": "縮放整個 Shell 中的所有字體大小"
|
||||||
},
|
},
|
||||||
@@ -4275,9 +4245,6 @@
|
|||||||
"Science": {
|
"Science": {
|
||||||
"Science": "科學"
|
"Science": "科學"
|
||||||
},
|
},
|
||||||
"Score": {
|
|
||||||
"Score": ""
|
|
||||||
},
|
|
||||||
"Screen Sharing": {
|
"Screen Sharing": {
|
||||||
"Screen Sharing": "螢幕分享"
|
"Screen Sharing": "螢幕分享"
|
||||||
},
|
},
|
||||||
@@ -5109,9 +5076,6 @@
|
|||||||
"Trigger: %1": {
|
"Trigger: %1": {
|
||||||
"Trigger: %1": "觸發條件:%1"
|
"Trigger: %1": "觸發條件:%1"
|
||||||
},
|
},
|
||||||
"Trust": {
|
|
||||||
"Trust": ""
|
|
||||||
},
|
|
||||||
"Try a different search": {
|
"Try a different search": {
|
||||||
"Try a different search": "嘗試不同的搜尋"
|
"Try a different search": "嘗試不同的搜尋"
|
||||||
},
|
},
|
||||||
@@ -5208,9 +5172,6 @@
|
|||||||
"Untitled": {
|
"Untitled": {
|
||||||
"Untitled": "無標題"
|
"Untitled": "無標題"
|
||||||
},
|
},
|
||||||
"Untrust": {
|
|
||||||
"Untrust": ""
|
|
||||||
},
|
|
||||||
"Update": {
|
"Update": {
|
||||||
"Update": "更新"
|
"Update": "更新"
|
||||||
},
|
},
|
||||||
@@ -5470,9 +5431,6 @@
|
|||||||
"WiFi Device": {
|
"WiFi Device": {
|
||||||
"WiFi Device": "WiFi 裝置"
|
"WiFi Device": "WiFi 裝置"
|
||||||
},
|
},
|
||||||
"WiFi QR code for ": {
|
|
||||||
"WiFi QR code for ": ""
|
|
||||||
},
|
|
||||||
"WiFi disabled": {
|
"WiFi disabled": {
|
||||||
"WiFi disabled": "關閉 WiFi"
|
"WiFi disabled": "關閉 WiFi"
|
||||||
},
|
},
|
||||||
@@ -5807,9 +5765,6 @@
|
|||||||
"events": {
|
"events": {
|
||||||
"events": "活動"
|
"events": "活動"
|
||||||
},
|
},
|
||||||
"ext": {
|
|
||||||
"ext": ""
|
|
||||||
},
|
|
||||||
"fallback gpu name": {
|
"fallback gpu name": {
|
||||||
"Unknown GPU": "未知 GPU"
|
"Unknown GPU": "未知 GPU"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -5354,20 +5354,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Folder",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"term": "Folders",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Follow Monitor Focus",
|
"term": "Follow Monitor Focus",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -6229,13 +6215,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Icon Scale",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Icon Size",
|
"term": "Icon Size",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -7321,20 +7300,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Maximize Widget Icons",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"term": "Maximize Widget Text",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Maximum Entry Size",
|
"term": "Maximum Entry Size",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -8308,13 +8273,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "No folders found",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "No hidden apps.",
|
"term": "No hidden apps.",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -8917,13 +8875,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Open in terminal",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Open search bar to find text",
|
"term": "Open search bar to find text",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -10191,13 +10142,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Remove Widget Padding",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Remove gaps and border when windows are maximized",
|
"term": "Remove gaps and border when windows are maximized",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -10597,13 +10541,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Save QR Code",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Save and switch between display configurations",
|
"term": "Save and switch between display configurations",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -10695,13 +10632,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Scale DankBar icon sizes independently",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Scale all font sizes throughout the shell",
|
"term": "Scale all font sizes throughout the shell",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -10737,13 +10667,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Score",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Screen Sharing",
|
"term": "Screen Sharing",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -12977,13 +12900,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Trust",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Try a different search",
|
"term": "Try a different search",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -13257,13 +13173,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Untrust",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Update",
|
"term": "Update",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -13901,13 +13810,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "WiFi QR code for ",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "WiFi disabled",
|
"term": "WiFi disabled",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -14370,13 +14272,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "ext",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "featured",
|
"term": "featured",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
|
|||||||
Reference in New Issue
Block a user