Skip to content

Commit d5b91a8

Browse files
authored
Merge pull request #758 from fastfetch-cli/dev
Release: v2.8.9
2 parents 912f6c4 + 72fee13 commit d5b91a8

File tree

19 files changed

+148
-90
lines changed

19 files changed

+148
-90
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -245,8 +245,7 @@ jobs:
245245

246246
- name: install required packages
247247
run: |
248-
brew update
249-
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 brew install vulkan-loader vulkan-headers molten-vk imagemagick chafa
248+
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 brew install --overwrite vulkan-loader vulkan-headers molten-vk imagemagick chafa
250249
251250
- name: Initialize CodeQL
252251
uses: github/codeql-action/init@v3

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
# 2.8.9
2+
3+
Bugfixes:
4+
* Don't detect `SessionLeader` as terminal, actually (Terminal, Linux)
5+
* Fix blurry chafa result when specifying both width and height (#757, Logo)
6+
7+
Features:
8+
* Support new MacBook Air (Host, macOS)
9+
* Distinguish min frequency and base frequency (CPU)
10+
11+
Logo:
12+
* Fix proxmox
13+
114
# 2.8.8
215

316
Bugfixes:

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
cmake_minimum_required(VERSION 3.12.0) # target_link_libraries with OBJECT libs & project homepage url
22

33
project(fastfetch
4-
VERSION 2.8.8
4+
VERSION 2.8.9
55
LANGUAGES C
66
DESCRIPTION "Fast neofetch-like system information tool"
77
HOMEPAGE_URL "https://github.com/fastfetch-cli/fastfetch"

debian/changelog

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
fastfetch (2.8.8) jammy; urgency=medium
2+
3+
* Update to 2.8.8
4+
5+
-- Carter Li <[email protected]> Fri, 08 Mar 2024 09:59:41 +0800
6+
17
fastfetch (2.8.6) jammy; urgency=medium
28

39
* Update to 2.8.6

debian/files

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
fastfetch_2.8.6_source.buildinfo universe/utils optional
1+
fastfetch_2.8.8_source.buildinfo universe/utils optional

screenshots/example1.png

273 KB
Loading

src/detection/cpu/cpu.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,12 @@ typedef struct FFCPUResult
1313
uint16_t coresLogical;
1414
uint16_t coresOnline;
1515

16-
double frequencyMin; // GHz
16+
double frequencyBase; // GHz
1717
double frequencyMax; // GHz
18+
double frequencyMin; // GHz
1819

1920
double temperature;
2021
} FFCPUResult;
2122

23+
const char* ffCPUDetectByCpuid(FFCPUResult* cpu);
2224
const char* ffDetectCPU(const FFCPUOptions* options, FFCPUResult* cpu);

src/detection/cpu/cpu_apple.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,13 @@ static const char* detectFrequency(FFCPUResult* cpu)
6060
ffCfDictGetData(properties, CFSTR("voltage-states5-sram"), pCoreLength - 8, 4, (uint8_t*) &aMax, NULL);
6161
cpu->frequencyMax = aMax / (1000.0 * 1000 * 1000);
6262
}
63-
else
64-
cpu->frequencyMax = 0.0;
6563

6664
return NULL;
6765
}
6866
#else
6967
static const char* detectFrequency(FFCPUResult* cpu)
7068
{
69+
cpu->frequencyBase = ffSysctlGetInt64("hw.cpufrequency", 0) / 1000.0 / 1000.0 / 1000.0;
7170
cpu->frequencyMin = ffSysctlGetInt64("hw.cpufrequency_min", 0) / 1000.0 / 1000.0 / 1000.0;
7271
cpu->frequencyMax = ffSysctlGetInt64("hw.cpufrequency_max", 0);
7372
if(cpu->frequencyMax > 0.0)

src/detection/cpu/cpu_bsd.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ const char* ffDetectCPUImpl(const FFCPUOptions* options, FFCPUResult* cpu)
1111
cpu->coresLogical = cpu->coresPhysical;
1212
cpu->coresOnline = cpu->coresPhysical;
1313

14-
cpu->frequencyMin = ffSysctlGetInt("hw.clockrate", 0) / 1000.0;
15-
cpu->frequencyMax = cpu->frequencyMin;
14+
cpu->frequencyBase = ffSysctlGetInt("hw.clockrate", 0) / 1000.0;
1615
cpu->temperature = FF_CPU_TEMP_UNSET;
1716

1817
if (options->temp)

src/detection/cpu/cpu_linux.c

Lines changed: 30 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,14 @@ static double getFrequency(FFstrbuf* basePath, const char* cpuinfoFileName, cons
9494
if (ok)
9595
return ffStrbufToDouble(buffer) / 1e6;
9696

97-
ffStrbufAppendS(basePath, scalingFileName);
98-
ok = ffReadFileBuffer(basePath->chars, buffer);
99-
ffStrbufSubstrBefore(basePath, baseLen);
100-
if (ok)
101-
return ffStrbufToDouble(buffer) / 1e6;
97+
if (scalingFileName)
98+
{
99+
ffStrbufAppendS(basePath, scalingFileName);
100+
ok = ffReadFileBuffer(basePath->chars, buffer);
101+
ffStrbufSubstrBefore(basePath, baseLen);
102+
if (ok)
103+
return ffStrbufToDouble(buffer) / 1e6;
104+
}
102105

103106
return 0.0/0.0;
104107
}
@@ -111,34 +114,41 @@ static bool detectFrequency(FFCPUResult* cpu)
111114

112115
FF_STRBUF_AUTO_DESTROY buffer = ffStrbufCreate();
113116
uint32_t baseLen = path.length;
114-
bool flag = false;
115117

116118
struct dirent* entry;
117119
while((entry = readdir(dir)) != NULL)
118120
{
119121
if (ffStrStartsWith(entry->d_name, "policy") && isdigit(entry->d_name[strlen("policy")]))
120122
{
121123
ffStrbufAppendS(&path, entry->d_name);
122-
double fmin = getFrequency(&path, "/cpuinfo_min_freq", "/scaling_min_freq", &buffer);
123-
if (fmin != fmin) continue;
124+
double fbase = getFrequency(&path, "/base_frequency", NULL, &buffer);
125+
if (fbase == fbase)
126+
{
127+
if (cpu->frequencyBase == cpu->frequencyBase)
128+
cpu->frequencyBase = cpu->frequencyBase > fbase ? cpu->frequencyBase : fbase;
129+
else
130+
cpu->frequencyBase = fbase;
131+
}
124132
double fmax = getFrequency(&path, "/cpuinfo_max_freq", "/scaling_max_freq", &buffer);
125-
if (fmax != fmax) continue;
126-
127-
if (flag)
133+
if (fmax == fmax)
128134
{
129-
cpu->frequencyMin = cpu->frequencyMin < fmin ? cpu->frequencyMin : fmin;
130-
cpu->frequencyMax = cpu->frequencyMax > fmax ? cpu->frequencyMax : fmax;
135+
if (cpu->frequencyMax == cpu->frequencyMax)
136+
cpu->frequencyMax = cpu->frequencyMax > fmax ? cpu->frequencyMax : fmax;
137+
else
138+
cpu->frequencyMax = fmax;
131139
}
132-
else
140+
double fmin = getFrequency(&path, "/cpuinfo_min_freq", "/scaling_min_freq", &buffer);
141+
if (fmin == fmin)
133142
{
134-
cpu->frequencyMin = fmin;
135-
cpu->frequencyMax = fmax;
136-
flag = true;
143+
if (cpu->frequencyMin == cpu->frequencyMin)
144+
cpu->frequencyMin = cpu->frequencyMin < fmin ? cpu->frequencyMin : fmin;
145+
else
146+
cpu->frequencyMin = fmin;
137147
}
138148
ffStrbufSubstrBefore(&path, baseLen);
139149
}
140150
}
141-
return flag;
151+
return true;
142152
}
143153

144154
static double detectCPUTemp(void)
@@ -234,8 +244,8 @@ const char* ffDetectCPUImpl(const FFCPUOptions* options, FFCPUResult* cpu)
234244
cpu->coresOnline = (uint16_t) get_nprocs();
235245
cpu->coresPhysical = (uint16_t) ffStrbufToUInt(&physicalCoresBuffer, cpu->coresLogical);
236246

237-
if (!detectFrequency(cpu))
238-
cpu->frequencyMin = cpu->frequencyMax = ffStrbufToDouble(&cpuMHz) / 1000;
247+
if (!detectFrequency(cpu) || cpu->frequencyBase != cpu->frequencyBase)
248+
cpu->frequencyBase = ffStrbufToDouble(&cpuMHz) / 1000;
239249

240250
if(cpuUarch.length > 0)
241251
{

0 commit comments

Comments
 (0)