7 Commits

Author SHA1 Message Date
Piotr Miller
433c05ca1e Merge pull request #125 from nwg-piotr/icon-theme
update README.md
2024-06-29 20:20:34 +02:00
piotr
cd06a981cb update README.md 2024-06-29 20:19:12 +02:00
Piotr Miller
0f6f92433e Merge pull request #124 from nwg-piotr/icon-theme
Add the `-pbuseicontheme` flagIcon theme
2024-06-29 03:01:20 +02:00
piotr
3ffd09b5d7 add more desc 2024-06-29 02:40:01 +02:00
piotr
071841da46 bump to 0.4.9 2024-06-29 02:38:43 +02:00
piotr
c7a0b564c0 improve description 2024-06-29 02:34:41 +02:00
piotr
6862711010 add pbUseIconTheme flag #122 2024-06-29 02:32:27 +02:00
3 changed files with 47 additions and 14 deletions

View File

@@ -101,9 +101,11 @@ Usage of nwg-drawer:
-pbreboot string -pbreboot string
command for the Reboot power bar icon command for the Reboot power bar icon
-pbsize int -pbsize int
power bar icon size (default 64) power bar icon size (only works w/ built-in icons) (default 64)
-pbsleep string -pbsleep string
command for the sleep power bar icon command for the sleep power bar icon
-pbuseicontheme
use icon theme instead of built-in icons in power bar
-r Leave the program resident in memory -r Leave the program resident in memory
-s string -s string
Styling: css file name (default "drawer.css") Styling: css file name (default "drawer.css")

40
main.go
View File

@@ -21,7 +21,7 @@ import (
"github.com/gotk3/gotk3/gtk" "github.com/gotk3/gotk3/gtk"
) )
const version = "0.4.8" const version = "0.4.9"
var ( var (
appDirs []string appDirs []string
@@ -181,7 +181,8 @@ var pbLock = flag.String("pblock", "", "command for the Lock power bar icon")
var pbPoweroff = flag.String("pbpoweroff", "", "command for the Poweroff power bar icon") var pbPoweroff = flag.String("pbpoweroff", "", "command for the Poweroff power bar icon")
var pbReboot = flag.String("pbreboot", "", "command for the Reboot power bar icon") var pbReboot = flag.String("pbreboot", "", "command for the Reboot power bar icon")
var pbSleep = flag.String("pbsleep", "", "command for the sleep power bar icon") var pbSleep = flag.String("pbsleep", "", "command for the sleep power bar icon")
var pbSize = flag.Int("pbsize", 64, "power bar icon size") var pbSize = flag.Int("pbsize", 64, "power bar icon size (only works w/ built-in icons)")
var pbUseIconTheme = flag.Bool("pbuseicontheme", false, "use icon theme instead of built-in icons in power bar")
var debug = flag.Bool("d", false, "Turn on Debug messages") var debug = flag.Bool("d", false, "Turn on Debug messages")
func main() { func main() {
@@ -624,27 +625,52 @@ func main() {
powerBarWrapper.PackStart(powerButtonsWrapper, true, false, 12) powerBarWrapper.PackStart(powerButtonsWrapper, true, false, 12)
if *pbPoweroff != "" { if *pbPoweroff != "" {
btn := powerButton(filepath.Join(dataDirectory, "img/poweroff.svg"), *pbPoweroff) btn, _ := gtk.ButtonNew()
if !*pbUseIconTheme {
btn = powerButton(filepath.Join(dataDirectory, "img/poweroff.svg"), *pbPoweroff)
} else {
btn = powerButton("system-shutdown-symbolic", *pbPoweroff)
}
powerButtonsWrapper.PackEnd(btn, true, false, 0) powerButtonsWrapper.PackEnd(btn, true, false, 0)
firstPowerBtn = btn firstPowerBtn = btn
} }
if *pbSleep != "" { if *pbSleep != "" {
btn := powerButton(filepath.Join(dataDirectory, "img/sleep.svg"), *pbSleep) btn, _ := gtk.ButtonNew()
if !*pbUseIconTheme {
btn = powerButton(filepath.Join(dataDirectory, "img/sleep.svg"), *pbSleep)
} else {
btn = powerButton("face-yawn-symbolic", *pbSleep)
}
powerButtonsWrapper.PackEnd(btn, true, false, 0) powerButtonsWrapper.PackEnd(btn, true, false, 0)
firstPowerBtn = btn firstPowerBtn = btn
} }
if *pbReboot != "" { if *pbReboot != "" {
btn := powerButton(filepath.Join(dataDirectory, "img/reboot.svg"), *pbReboot) btn, _ := gtk.ButtonNew()
if !*pbUseIconTheme {
btn = powerButton(filepath.Join(dataDirectory, "img/reboot.svg"), *pbReboot)
} else {
btn = powerButton("system-reboot-symbolic", *pbReboot)
}
powerButtonsWrapper.PackEnd(btn, true, false, 0) powerButtonsWrapper.PackEnd(btn, true, false, 0)
firstPowerBtn = btn firstPowerBtn = btn
} }
if *pbExit != "" { if *pbExit != "" {
btn := powerButton(filepath.Join(dataDirectory, "img/exit.svg"), *pbExit) btn, _ := gtk.ButtonNew()
if !*pbUseIconTheme {
btn = powerButton(filepath.Join(dataDirectory, "img/exit.svg"), *pbExit)
} else {
btn = powerButton("system-log-out-symbolic", *pbExit)
}
powerButtonsWrapper.PackEnd(btn, true, false, 0) powerButtonsWrapper.PackEnd(btn, true, false, 0)
firstPowerBtn = btn firstPowerBtn = btn
} }
if *pbLock != "" { if *pbLock != "" {
btn := powerButton(filepath.Join(dataDirectory, "img/lock.svg"), *pbLock) btn, _ := gtk.ButtonNew()
if !*pbUseIconTheme {
btn = powerButton(filepath.Join(dataDirectory, "img/lock.svg"), *pbLock)
} else {
btn = powerButton("system-lock-screen-symbolic", *pbLock)
}
powerButtonsWrapper.PackEnd(btn, true, false, 0) powerButtonsWrapper.PackEnd(btn, true, false, 0)
firstPowerBtn = btn firstPowerBtn = btn
} }

View File

@@ -298,19 +298,24 @@ func flowBoxButton(entry desktopEntry) *gtk.Button {
return button return button
} }
func powerButton(iconPath, command string) *gtk.Button { func powerButton(iconPathOrName, command string) *gtk.Button {
button, _ := gtk.ButtonNew() button, _ := gtk.ButtonNew()
button.SetAlwaysShowImage(true) button.SetAlwaysShowImage(true)
var pixbuf *gdk.Pixbuf var pixbuf *gdk.Pixbuf
var img *gtk.Image var img *gtk.Image
var err error var err error
pixbuf, err = gdk.PixbufNewFromFileAtSize(iconPath, *pbSize, *pbSize) if !*pbUseIconTheme {
if err != nil { pixbuf, err = gdk.PixbufNewFromFileAtSize(iconPathOrName, *pbSize, *pbSize)
pixbuf, _ = createPixbuf("unknown", *pbSize) if err != nil {
log.Warnf("Couldn't find icon %s", iconPath) pixbuf, _ = createPixbuf("unknown", *pbSize)
log.Warnf("Couldn't find icon %s", iconPathOrName)
}
img, _ = gtk.ImageNewFromPixbuf(pixbuf)
} else {
img, _ = gtk.ImageNewFromIconName(iconPathOrName, gtk.ICON_SIZE_DIALOG)
} }
img, _ = gtk.ImageNewFromPixbuf(pixbuf)
button.SetImage(img) button.SetImage(img)
button.SetImagePosition(gtk.POS_TOP) button.SetImagePosition(gtk.POS_TOP)