Skip to content

Commit c675f78

Browse files
wxphahaxinpeng wang
andauthored
feat: add new grub theme (#122)
add new grub theme Log: add new grub theme Co-authored-by: xinpeng wang <wangxinpeng@uniontech.com>
1 parent bac8779 commit c675f78

32 files changed

+115
-27
lines changed

adjust-grub-theme/main.go

Lines changed: 87 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,7 @@ func adjustThemeFallback() error {
410410
}
411411
copyThemeFiles(themeInputDir, themeOutputDir)
412412

413-
bgImg, err := loadBackgroundImage()
413+
bgImg, themeBgImg, err := loadV25BackgroundImage()
414414
if err != nil {
415415
return err
416416
}
@@ -419,6 +419,18 @@ func adjustThemeFallback() error {
419419
if err != nil {
420420
return err
421421
}
422+
if themeBgImg != nil {
423+
err = saveJpeg(themeBgImg, filepath.Join(themeOutputDir, "background_in_theme.jpg"))
424+
if err != nil {
425+
return err
426+
}
427+
} else {
428+
_, err = copyFile(filepath.Join(themeOutputDir, "background.jpg"),
429+
filepath.Join(themeOutputDir, "background_in_theme.jpg"))
430+
if err != nil {
431+
return err
432+
}
433+
}
422434

423435
themeFile := filepath.Join(themeInputDir, "theme.txt.tpl")
424436
theme, err := tt.ParseThemeFile(themeFile)
@@ -476,6 +488,80 @@ func adjustThemeFallback() error {
476488
return err
477489
}
478490

491+
// getSystemNameFromOSVersionFile parses the /etc/os-version file and returns the
492+
// value of SystemName,which is used to determine whether it is a community version.
493+
func getSystemNameFromOSVersionFile(filePath string) (string, error) {
494+
file, err := os.Open(filePath)
495+
if err != nil {
496+
return "", err
497+
}
498+
defer file.Close()
499+
500+
var systemName string
501+
scanner := bufio.NewScanner(file)
502+
for scanner.Scan() {
503+
line := scanner.Text()
504+
if strings.HasPrefix(line, "SystemName=") {
505+
parts := strings.SplitN(line, "=", 2)
506+
if len(parts) == 2 {
507+
systemName = parts[1]
508+
break
509+
}
510+
}
511+
}
512+
513+
if err := scanner.Err(); err != nil {
514+
return "", err
515+
}
516+
517+
return systemName, nil
518+
}
519+
520+
// The v25 theme has 2 background images
521+
func loadV25BackgroundImage() (image.Image, image.Image, error) {
522+
img, err := loadImage(filepath.Join(optThemeOutputDir, themeNameNormal, "background_source"))
523+
if err == nil {
524+
return img, nil, nil
525+
}
526+
logger.Warning("failed to load image background_source:", err)
527+
528+
systemName, err := getSystemNameFromOSVersionFile("/etc/os-version")
529+
if err != nil || systemName == "" {
530+
logger.Warningf("error get systemName %s: %v\n", systemName, err)
531+
return nil, nil, err
532+
}
533+
534+
var backgroundFilename, themeBackgroundFilename string
535+
if strings.Contains(strings.ToLower(systemName), "deepin") {
536+
backgroundFilename = "deepin_background.jpg"
537+
themeBackgroundFilename = "deepin_background_in_theme.jpg"
538+
} else {
539+
backgroundFilename = "uos_background.jpg"
540+
themeBackgroundFilename = "uos_background_in_theme.jpg"
541+
}
542+
543+
backgroundFile := filepath.Join(optThemeInputDir, themeNameFallback, backgroundFilename)
544+
themeBackgroundFile := filepath.Join(optThemeInputDir, themeNameFallback, themeBackgroundFilename)
545+
img, err = loadImage(backgroundFile)
546+
if err == nil {
547+
cmdImg, err := loadImage(themeBackgroundFile)
548+
if err == nil {
549+
return img, cmdImg, nil
550+
}
551+
logger.Warning(err)
552+
} else {
553+
logger.Warning(err)
554+
}
555+
556+
originDesktopImageFile := filepath.Join(optThemeInputDir, themeNameNormal, "background.origin.jpg")
557+
img, err = loadImage(originDesktopImageFile)
558+
if err != nil {
559+
logger.Warning(err)
560+
return nil, nil, err
561+
}
562+
return img, nil, nil
563+
}
564+
479565
func main() {
480566
flag.Parse()
481567
if optVersion {

adjust-grub-theme/version.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44

55
package main
66

7-
const VERSION int = 17
7+
const VERSION int = 18

debian/changelog

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
dde-api (6.0.13) unstable; urgency=medium
2+
3+
* feat: add new grub theme.
4+
5+
-- xinpeng.wang <wangxinpeng@uniontech.com> Wed, 25 Sep 2024 11:15:16 +0800
6+
17
dde-api (6.0.12) unstable; urgency=medium
28

39
* fix: no logout sound (linuxdeepin/developer-center#9370)

debian/control

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Build-Depends:
2727
golang-gopkg-check.v1-dev,
2828
libcairo2-dev,
2929
libcanberra-dev,
30-
libfreetype-dev,
30+
libfreetype-dev | libfreetype6-dev,
3131
libgdk-pixbuf2.0-dev,
3232
libgtk-3-dev,
3333
libpoppler-glib-dev,

debian/postinst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ adjustGrubTheme () {
3636
fi
3737
echo themeCurrentVersion: $themeCurrentVersion
3838

39-
if [ $themeToolVersion -gt $themeCurrentVersion ]; then
39+
if [ $themeToolVersion -gt $themeCurrentVersion ] || [ ! -d "$fallbackThemeDir" ]; then
4040
echo need adjust grub theme
4141
$adjustGrubThemeBin -log-sys || true
4242
update-grub || true
1.75 MB
Loading
1.77 MB
Loading
-166 Bytes
Binary file not shown.
-77 Bytes
Binary file not shown.
-105 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)