Skip to content

Commit 00836d7

Browse files
Add files via upload
1 parent 82bb829 commit 00836d7

19 files changed

Lines changed: 228 additions & 11 deletions

not-just-text/Main.qml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,10 @@ Item {
1414
readonly property bool fortuneOffensive: cfg.fortuneOffensive ?? defaults.fortuneOffensive ?? false
1515
readonly property bool fortuneEqual: cfg.fortuneEqual ?? defaults.fortuneEqual ?? false
1616
readonly property string fortuneCategory: cfg.fortuneCategory ?? defaults.fortuneCategory ?? ""
17+
readonly property int fortuneMaxLength: cfg.fortuneMaxLength ?? defaults.fortuneMaxLength ?? 60
1718
readonly property bool listEnabled: cfg.listEnabled ?? defaults.listEnabled ?? false
1819
readonly property string textFile: cfg.textFile ?? defaults.textFile ?? ""
20+
readonly property bool refreshOnWallpaper: cfg.refreshOnWallpaper ?? defaults.refreshOnWallpaper ?? true
1921

2022
property string fortuneText: ""
2123
property int _retries: 0
@@ -68,6 +70,7 @@ Item {
6870
Connections {
6971
target: WallpaperService
7072
function onWallpaperChanged(screenName, path) {
73+
if (!root.refreshOnWallpaper) return;
7174
if (root.fortuneEnabled || root.listEnabled) debounce.restart();
7275
}
7376
}
@@ -85,7 +88,7 @@ Item {
8588
stdout: StdioCollector {
8689
onStreamFinished: {
8790
var lines = text.trim().split('\n').filter(l => l.trim().length > 0);
88-
var valid = lines.length === 1 && lines[0].length <= 60;
91+
var valid = lines.length === 1 && lines[0].length <= root.fortuneMaxLength;
8992
if (valid) {
9093
root.fortuneText = lines[0].trim();
9194
root._retries = 0;
@@ -94,15 +97,15 @@ Item {
9497
root.triggerFortune();
9598
} else {
9699
Logger.w("NotJustText", "Gave up after", root._maxRetries, "retries finding a short single-line fortune");
97-
root.fortuneText = "(╯°□°)╯︵ ┻━┻";
100+
root.fortuneText = root.pluginApi?.tr("fortune.gaveUp");
98101
root._retries = 0;
99102
}
100103
}
101104
}
102105
onExited: (exitCode, exitStatus) => {
103106
if (exitCode === 127) {
104107
Logger.e("NotJustText", "fortune is not installed — install it to use fortune mode");
105-
root.fortuneText = "fortune not installed";
108+
root.fortuneText = root.pluginApi?.tr("fortune.notInstalled");
106109
} else if (exitCode !== 0) {
107110
Logger.w("NotJustText", "fortune exited with code", exitCode);
108111
}

not-just-text/README.md

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ A Noctalia bar widget that displays a short message — either custom text, a ra
77
- **just text** — type anything, it shows up in the bar
88
- **List mode** — picks a random line from a text file each time the wallpaper changes
99
- **Fortune mode** — shows a random quote from `fortune -s` instead
10-
- **Wallpaper-triggered refresh** — when list or fortune mode is on, a new entry is picked each time the wallpaper changes
10+
- **Wallpaper-triggered refresh** — when list or fortune mode is on, a new entry is picked each time the wallpaper changes (can be disabled to pick once per session)
1111
- **Fortune options** — optionally filter by category (e.g. `computers`), enable offensive quotes (`-o`), or equalise category probability (`-e`)
1212
- Click the widget to open settings directly
1313

@@ -21,5 +21,28 @@ Lines starting with `# ` (hash + space) and blank lines are ignored, so `#hashta
2121

2222
## Fortune mode
2323

24-
Requires `fortune` to be installed.
25-
Quotes are filtered to single-line entries of 60 characters or fewer. If no suitable quote is found after 10 attempts, the widget displays `(╯°□°)╯︵ ┻━┻`.
24+
Requires `fortune` to be installed:
25+
26+
```bash
27+
# Arch
28+
sudo pacman -S fortune-mod
29+
30+
# Debian/Ubuntu
31+
sudo apt install fortune-mod
32+
```
33+
34+
Quotes are filtered to single-line entries up to a configurable character limit (default: 60). If no suitable quote is found after 10 attempts, the widget displays `(╯°□°)╯︵ ┻━┻`.
35+
36+
## Settings
37+
38+
| Key | Type | Default | Description |
39+
|---|---|---|---|
40+
| `text` | string | `"Hello"` | Static text shown in the bar (just text mode) |
41+
| `fortuneEnabled` | bool | `false` | Enable fortune mode |
42+
| `fortuneCategory` | string | `""` | Limit fortune to a specific category (e.g. `computers`) |
43+
| `fortuneMaxLength` | int | `60` | Maximum character length a fortune quote may have |
44+
| `fortuneOffensive` | bool | `false` | Also draw from the offensive fortune database (`-o`) |
45+
| `fortuneEqual` | bool | `false` | Give all categories equal probability regardless of size (`-e`) |
46+
| `listEnabled` | bool | `false` | Enable list mode |
47+
| `textFile` | string | `""` | Path to a text file; falls back to bundled `examples.txt` if empty |
48+
| `refreshOnWallpaper` | bool | `true` | Pick a new entry when the wallpaper changes; disable to pick once per session |

not-just-text/i18n/de.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
"menu": {
33
"settings": "Widget-Einstellungen"
44
},
5+
"fortune": {
6+
"notInstalled": "⚠ fortune nicht installiert",
7+
"gaveUp": "(╯°□°)╯︵ ┻━┻"
8+
},
59
"settings": {
610
"text": {
711
"label": "Nur Text",
@@ -15,6 +19,10 @@
1519
"label": "Kategorie",
1620
"desc": "Zitate auf eine bestimmte fortune-Kategorie beschränken (z. B. computers, science)"
1721
},
22+
"fortuneMaxLength": {
23+
"label": "Max. Zitatlänge: {value}",
24+
"desc": "Maximale Zeichenanzahl, die ein fortune-Zitat haben darf"
25+
},
1826
"fortuneOffensive": {
1927
"label": "Anstößige einschließen (-o)",
2028
"desc": "Auch aus der anstößigen fortune-Datenbank ziehen"
@@ -30,6 +38,10 @@
3038
"textFile": {
3139
"label": "Textdatei",
3240
"desc": "Pfad zu einer Textdatei mit einem Eintrag pro Zeile. Unter examples.txt findest du eine Vorlage."
41+
},
42+
"refreshOnWallpaper": {
43+
"label": "Bei Hintergrundbildwechsel aktualisieren",
44+
"desc": "Neuen Text auswählen, wenn das Hintergrundbild wechselt. Deaktivieren, um den Text nur einmal pro Sitzung zu wählen."
3345
}
3446
}
3547
}

not-just-text/i18n/en.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
"menu": {
33
"settings": "Widget settings"
44
},
5+
"fortune": {
6+
"notInstalled": "⚠ fortune not installed",
7+
"gaveUp": "(╯°□°)╯︵ ┻━┻"
8+
},
59
"settings": {
610
"text": {
711
"label": "Just text",
@@ -15,6 +19,10 @@
1519
"label": "Category",
1620
"desc": "Limit quotes to a specific fortune category (e.g. computers, science)"
1721
},
22+
"fortuneMaxLength": {
23+
"label": "Max quote length: {value}",
24+
"desc": "Maximum number of characters a fortune quote may have"
25+
},
1826
"fortuneOffensive": {
1927
"label": "Include offensive (-o)",
2028
"desc": "Also draw from the offensive fortune database"
@@ -30,6 +38,10 @@
3038
"textFile": {
3139
"label": "Text file",
3240
"desc": "Path to a text file with one entry per line. See examples.txt for a starting point."
41+
},
42+
"refreshOnWallpaper": {
43+
"label": "Refresh on wallpaper change",
44+
"desc": "Pick a new text when the wallpaper changes. Disable to only pick once per session."
3345
}
3446
}
3547
}

not-just-text/i18n/es.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
"menu": {
33
"settings": "Ajustes del widget"
44
},
5+
"fortune": {
6+
"notInstalled": "⚠ fortune no instalado",
7+
"gaveUp": "(╯°□°)╯︵ ┻━┻"
8+
},
59
"settings": {
610
"text": {
711
"label": "Solo texto",
@@ -15,6 +19,10 @@
1519
"label": "Categoría",
1620
"desc": "Limitar las citas a una categoría específica de fortune (p. ej. computers, science)"
1721
},
22+
"fortuneMaxLength": {
23+
"label": "Longitud máxima de cita: {value}",
24+
"desc": "Número máximo de caracteres que puede tener una cita de fortune"
25+
},
1826
"fortuneOffensive": {
1927
"label": "Incluir ofensivo (-o)",
2028
"desc": "También extraer de la base de datos ofensiva de fortune"
@@ -30,6 +38,10 @@
3038
"textFile": {
3139
"label": "Archivo de texto",
3240
"desc": "Ruta a un archivo de texto con una entrada por línea. Consulta examples.txt para un punto de partida."
41+
},
42+
"refreshOnWallpaper": {
43+
"label": "Actualizar al cambiar el fondo",
44+
"desc": "Elegir un nuevo texto cuando cambie el fondo de pantalla. Desactívalo para elegir solo una vez por sesión."
3345
}
3446
}
3547
}

not-just-text/i18n/fr.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
"menu": {
33
"settings": "Paramètres du widget"
44
},
5+
"fortune": {
6+
"notInstalled": "⚠ fortune non installé",
7+
"gaveUp": "(╯°□°)╯︵ ┻━┻"
8+
},
59
"settings": {
610
"text": {
711
"label": "Texte simple",
@@ -15,6 +19,10 @@
1519
"label": "Catégorie",
1620
"desc": "Limiter les citations à une catégorie fortune spécifique (ex. computers, science)"
1721
},
22+
"fortuneMaxLength": {
23+
"label": "Longueur max. de citation : {value}",
24+
"desc": "Nombre maximum de caractères qu'une citation fortune peut contenir"
25+
},
1826
"fortuneOffensive": {
1927
"label": "Inclure les offensants (-o)",
2028
"desc": "Puiser aussi dans la base de données fortune offensive"
@@ -30,6 +38,10 @@
3038
"textFile": {
3139
"label": "Fichier texte",
3240
"desc": "Chemin vers un fichier texte avec une entrée par ligne. Voir examples.txt pour commencer."
41+
},
42+
"refreshOnWallpaper": {
43+
"label": "Actualiser au changement de fond d'écran",
44+
"desc": "Choisir un nouveau texte lors du changement de fond d'écran. Désactiver pour ne choisir qu'une fois par session."
3345
}
3446
}
3547
}

not-just-text/i18n/hu.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
"menu": {
33
"settings": "Widget beállítások"
44
},
5+
"fortune": {
6+
"notInstalled": "⚠ fortune nincs telepítve",
7+
"gaveUp": "(╯°□°)╯︵ ┻━┻"
8+
},
59
"settings": {
610
"text": {
711
"label": "Csak szöveg",
@@ -15,6 +19,10 @@
1519
"label": "Kategória",
1620
"desc": "Idézetek korlátozása egy adott fortune kategóriára (pl. computers, science)"
1721
},
22+
"fortuneMaxLength": {
23+
"label": "Max. idézethossz: {value}",
24+
"desc": "A fortune-idézet maximálisan megengedett karakterszáma"
25+
},
1826
"fortuneOffensive": {
1927
"label": "Sértő tartalom (-o)",
2028
"desc": "A sértő fortune adatbázisból is merítsen"
@@ -30,6 +38,10 @@
3038
"textFile": {
3139
"label": "Szövegfájl",
3240
"desc": "Szövegfájl elérési útja, soronként egy bejegyzéssel. Kiindulópontként lásd az examples.txt fájlt."
41+
},
42+
"refreshOnWallpaper": {
43+
"label": "Frissítés háttérkép-váltáskor",
44+
"desc": "Új szöveg választása háttérkép-váltáskor. Letiltva munkamenetenként csak egyszer választ."
3345
}
3446
}
3547
}

not-just-text/i18n/it.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
"menu": {
33
"settings": "Impostazioni widget"
44
},
5+
"fortune": {
6+
"notInstalled": "⚠ fortune non installato",
7+
"gaveUp": "(╯°□°)╯︵ ┻━┻"
8+
},
59
"settings": {
610
"text": {
711
"label": "Solo testo",
@@ -15,6 +19,10 @@
1519
"label": "Categoria",
1620
"desc": "Limita le citazioni a una categoria fortune specifica (es. computers, science)"
1721
},
22+
"fortuneMaxLength": {
23+
"label": "Lunghezza massima citazione: {value}",
24+
"desc": "Numero massimo di caratteri che una citazione fortune può avere"
25+
},
1826
"fortuneOffensive": {
1927
"label": "Includi offensivo (-o)",
2028
"desc": "Estrai anche dal database fortune offensivo"
@@ -30,6 +38,10 @@
3038
"textFile": {
3139
"label": "File di testo",
3240
"desc": "Percorso a un file di testo con una voce per riga. Vedi examples.txt per un punto di partenza."
41+
},
42+
"refreshOnWallpaper": {
43+
"label": "Aggiorna al cambio sfondo",
44+
"desc": "Scegli un nuovo testo quando cambia lo sfondo. Disabilita per scegliere solo una volta per sessione."
3345
}
3446
}
3547
}

not-just-text/i18n/ja.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
"menu": {
33
"settings": "ウィジェット設定"
44
},
5+
"fortune": {
6+
"notInstalled": "⚠ fortune がインストールされていません",
7+
"gaveUp": "(╯°□°)╯︵ ┻━┻"
8+
},
59
"settings": {
610
"text": {
711
"label": "テキストのみ",
@@ -15,6 +19,10 @@
1519
"label": "カテゴリー",
1620
"desc": "引用を特定のfortuneカテゴリーに限定する(例:computers、science)"
1721
},
22+
"fortuneMaxLength": {
23+
"label": "引用の最大文字数:{value}",
24+
"desc": "fortuneの引用に許可される最大文字数"
25+
},
1826
"fortuneOffensive": {
1927
"label": "不適切な内容を含む (-o)",
2028
"desc": "不適切なfortuneデータベースからも引用する"
@@ -30,6 +38,10 @@
3038
"textFile": {
3139
"label": "テキストファイル",
3240
"desc": "1行に1エントリのテキストファイルへのパス。examples.txtを参照してください。"
41+
},
42+
"refreshOnWallpaper": {
43+
"label": "壁紙変更時に更新",
44+
"desc": "壁紙が変わるたびに新しいテキストを選択します。無効にするとセッションごとに一度だけ選択します。"
3345
}
3446
}
3547
}

not-just-text/i18n/ku.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
"menu": {
33
"settings": "Mîhengên wîdcetê"
44
},
5+
"fortune": {
6+
"notInstalled": "⚠ fortune nehatiye saz kirin",
7+
"gaveUp": "(╯°□°)╯︵ ┻━┻"
8+
},
59
"settings": {
610
"text": {
711
"label": "Tenê nivîs",
@@ -15,6 +19,10 @@
1519
"label": "Kategorî",
1620
"desc": "Ramanan bi kategoriyeke fortune-ê ya taybet ve sînordar bike (wek: computers, science)"
1721
},
22+
"fortuneMaxLength": {
23+
"label": "Dirêjahiya herî zêde ya ramanê: {value}",
24+
"desc": "Hejmara herî zêde ya tîpên ku ramanek fortune-ê dikare hebe"
25+
},
1826
"fortuneOffensive": {
1927
"label": "Naverokên saldirker bihewîne (-o)",
2028
"desc": "Ji databaza fortune-ê ya saldirker jî bikşîne"
@@ -30,6 +38,10 @@
3038
"textFile": {
3139
"label": "Pelê nivîsê",
3240
"desc": "Rêça peleke nivîsê ya bi têkelek di her rêzê de. Ji examples.txt re binêre."
41+
},
42+
"refreshOnWallpaper": {
43+
"label": "Di guhertina dîmenê de nûve bike",
44+
"desc": "Dema ku dîmen diguhere nivîseke nû hilbijêre. Neçalak bike da ku di her danişînê de tenê carekê were hilbijartin."
3345
}
3446
}
3547
}

0 commit comments

Comments
 (0)