Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions [email protected]/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Show My IP

A simple Cinnamon applet that displays your local IP address directly on the panel.

## Features

- Shows your primary IP (Ethernet or Wi-Fi) in the panel.
- Click to see all IP addresses (lo, eth, wlan, docker, etc).
- Clean aligned display.
- Refreshes every 10 seconds.

## Author

Triyadi

## Installation

1. Clone or download this applet folder.
2. Place it in `~/.local/share/cinnamon/applets/[email protected]/`
3. Enable it via System Settings → Applets.
20 changes: 20 additions & 0 deletions [email protected]/files/[email protected]/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Show My IP

A simple Cinnamon applet that displays your local IP address directly on the panel.

## Features

- Shows your primary IP (Ethernet or Wi-Fi) in the panel.
- Click to see all IP addresses (lo, eth, wlan, docker, etc).
- Clean aligned display.
- Refreshes every 10 seconds.

## Author

Triyadi

## Installation

1. Clone or download this applet folder.
2. Place it in `~/.local/share/cinnamon/applets/[email protected]/`
3. Enable it via System Settings → Applets.
59 changes: 59 additions & 0 deletions [email protected]/files/[email protected]/applet.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
const Applet = imports.ui.applet;
const GLib = imports.gi.GLib;
const Lang = imports.lang;
const Mainloop = imports.mainloop;

function MyApplet(orientation, panel_height, instance_id) {
this._init(orientation, panel_height, instance_id);
}

MyApplet.prototype = {
__proto__: Applet.TextApplet.prototype,

_init: function(orientation, panel_height, instance_id) {
Applet.TextApplet.prototype._init.call(this, orientation, panel_height, instance_id);
this.set_applet_label("IP: ...");
this.set_applet_tooltip("Click to refresh");
this.timeout = Mainloop.timeout_add_seconds(5, Lang.bind(this, this.update_ip));
this.update_ip();
},

update_ip: function() {
try {
let [res, out] = GLib.spawn_command_line_sync("ip -o -4 addr show | awk '{print $2 \" : \" $4}' | cut -d/ -f1");
if (res) {
let output = String.fromCharCode.apply(null, out).trim();
let lines = output.split("\n");
let label = "";
for (let i = 0; i < lines.length; i++) {
let parts = lines[i].split(" : ");
let iface = parts[0];
let ip = parts[1];
if (iface === "lo") iface = "lo";
else if (iface.startsWith("eth")) iface = "eth0";
else if (iface.startsWith("wlan") || iface.startsWith("wlp")) iface = "wifi";
label += iface + " : " + ip + "\n";
}
this.set_applet_label(label.trim());
}
} catch (e) {
global.logError("ShowMyIP: " + e);
}
return true; // agar timeout terus berjalan
},

on_applet_clicked: function() {
this.update_ip();
},

on_applet_removed_from_panel: function() {
if (this.timeout) {
Mainloop.source_remove(this.timeout);
this.timeout = null;
}
}
};

function main(metadata, orientation, panel_height, instance_id) {
return new MyApplet(orientation, panel_height, instance_id);
}
Binary file added [email protected]/files/[email protected]/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions [email protected]/files/[email protected]/metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"uuid": "[email protected]",
"name": "Show My IP",
"description": "Display local IP addresses of network interfaces in the panel.",
"version": "1.0",
"author": "triyadi",
"max-instances": 1
}
3 changes: 3 additions & 0 deletions [email protected]/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"author": "triyadi"
}
Binary file added [email protected]/screenshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
164 changes: 164 additions & 0 deletions updates-notifier@zamszowy/files/updates-notifier@zamszowy/po/zh_TW.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
# UPDATES NOTIFIER
# This file is put in the public domain.
# zamszowy, 2025
#
msgid ""
msgstr ""
"Project-Id-Version: updates-notifier@zamszowy 1.2.0\n"
"Report-Msgid-Bugs-To: https://github.com/linuxmint/cinnamon-spices-applets/"
"issues\n"
"POT-Creation-Date: 2025-09-13 12:55+0200\n"
"PO-Revision-Date: 2025-09-16 02:23+0800\n"
"Last-Translator: Peter Dave Hello <[email protected]>\n"
"Language-Team: \n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#. applet.js:37
msgid "missing dependencies"
msgstr "缺少相依套件"

#. applet.js:106
#, javascript-format
msgid "%s updates available"
msgstr "有 %s 個可用的更新"

#. applet.js:107
msgid "No updates available"
msgstr "沒有可用的更新"

#. applet.js:133
msgid "Check for new updates"
msgstr "檢查更新"

#. applet.js:144
#, javascript-format
msgid "View %s updates"
msgstr "檢視 %s 個更新"

#. applet.js:144
msgid "No updates to view"
msgstr "沒有可檢視的更新"

#. applet.js:157
#, javascript-format
msgid "Upgrade %s packages"
msgstr "升級 %s 個套件"

#. applet.js:157
msgid "No packages to upgrade"
msgstr "沒有要升級的套件"

#. info-window.js:118
msgid "Loading update details…"
msgstr "正在載入更新的詳細資訊…"

#. info-window.js:170
msgid "No details available."
msgstr "沒有可用的詳細資訊。"

#. info-window.js:172
msgid ""
"Error:\n"
"{0}"
msgstr ""
"錯誤:\n"
"{0}"

#. info-window.js:181
msgid ""
"Failed to run command:\n"
"{0}"
msgstr ""
"執行指令失敗:\n"
"{0}"

#. info-window.js:191
msgid "Updates"
msgstr "更新"

#. info-window.js:206
msgid "Search updates…"
msgstr "搜尋更新…"

#. info-window.js:238
msgid "{0} updates"
msgstr "{0} 個更新"

#. metadata.json->name
msgid "Updates notifier"
msgstr "更新通知器"

#. metadata.json->description
msgid "Shows icons for pending update packages"
msgstr "顯示待處理更新套件的圖示"

#. settings-schema.json->section1->description
msgid "Settings"
msgstr "設定"

#. settings-schema.json->update-refresh->description
msgid "Minutes to wait before refreshing applet"
msgstr "重新整理小程式前等待的分鐘數"

#. settings-schema.json->hide-applet->description
msgid "Hide applet if there are no updates"
msgstr "沒有更新時隱藏小程式"

#. settings-schema.json->different-levels->description
msgid "Show different applet icon for different updgradeable packages count"
msgstr "根據可升級套件數量顯示不同的小程式圖示"

#. settings-schema.json->level-1->description
msgid "Show low level icon when updates count is between 0 and this value "
msgstr "當更新數量介於 0 與此數值之間時,顯示「低」等級圖示"

#. settings-schema.json->level-2->description
msgid ""
"Show medium level icon when updates count is between low level value and "
"this value. Show high level icon if it's higher than this value."
msgstr ""
"當更新數量介於「低」等級數值與此數值之間時,顯示「中」等級圖示。"
"若高於此數值,則顯示「高」等級圖示。"

#. settings-schema.json->section2->description
msgid "Commands to execute in popup menu"
msgstr "在彈出式選單中要執行的指令"

#. settings-schema.json->commandUpdate-show->description
msgid "Show \"Check for new updates\" command"
msgstr "顯示 \"檢查更新\" 指令"

#. settings-schema.json->commandUpdate->description
msgid "Check for new updates:"
msgstr "檢查更新:"

#. settings-schema.json->commandUpgrade-show->description
msgid "Show \"Upgrade packages\" command"
msgstr "顯示 \"升級套件\" 指令"

#. settings-schema.json->commandUpgrade->description
msgid "Upgrade packages:"
msgstr "升級套件:"

#. settings-schema.json->section3->description
msgid "Theme"
msgstr "佈景主題"

#. settings-schema.json->icon-style->description
msgid "Icon style"
msgstr "圖示樣式"

#. settings-schema.json->icon-style->options
msgid "dark"
msgstr "深色"

#. settings-schema.json->icon-style->options
msgid "light"
msgstr "淺色"

#. settings-schema.json->icon-style->options
msgid "symbolic"
msgstr "符號式"