Compare commits

...

16 Commits

Author SHA1 Message Date
Carter Li c4824b2b5d Merge pull request #654 from fastfetch-cli/dev
Release v2.3.4
2023-12-08 00:10:31 +08:00
李通洲 dcbda6c0d5 Release: v2.3.4 2023-12-08 00:04:38 +08:00
李通洲 91e4e94aaa CMake: fix --help doesn't work when building without python3 2023-12-07 23:51:56 +08:00
apocelipes 1504e26e38 optimize(Packages): optimize reading large files
Using less syscalls and processing data in memory
makes getNumStringsImpl ~300% faster.

The code is much simpler.
2023-12-07 20:32:14 +08:00
李通洲 a9c5c2892c Memory (Linux): Use MemAvailable if available 2023-12-07 16:30:10 +08:00
Carter Li 923997f0a2 Merge pull request #651 from fastfetch-cli/dev
Release v2.3.3
2023-12-07 09:39:07 +08:00
李通洲 0182e32f00 Release: v2.3.3 2023-12-07 09:33:26 +08:00
李通洲 bd40205427 Help: fix json text loading 2023-12-06 23:55:34 +08:00
Carter Li 30b9f95b49 Merge pull request #649 from fastfetch-cli/dev
Release v2.3.2
2023-12-06 11:20:24 +08:00
李通洲 74b9fd01ff CI (macOS): try fixing compiling 2023-12-06 11:06:52 +08:00
李通洲 03f4ffb9d7 Release: v2.3.2 2023-12-06 10:48:06 +08:00
李通洲 a00cb2aede CMake: install fish completion script 2023-12-06 10:38:55 +08:00
李通洲 6799076fa6 Logo (Builtin): fix compiling 2023-12-06 10:30:56 +08:00
李通洲 573a315d61 Help: tweaks 2023-12-06 10:29:28 +08:00
李通洲 0cd6cb841d Completion (Fish): fix fastfetch detection 2023-12-06 10:29:28 +08:00
xray_os af94cf4d0d fixing the name of my distro 2023-12-06 08:51:29 +08:00
9 changed files with 85 additions and 52 deletions
+1 -2
View File
@@ -152,9 +152,8 @@ jobs:
- name: install required packages
run: |
brew uninstall aws-sam-cli azure-cli qemu lima colima gradle kotlin maven pipx aria2 || true
brew update
brew install vulkan-loader vulkan-headers molten-vk imagemagick chafa
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 brew install vulkan-loader vulkan-headers molten-vk imagemagick chafa
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
+23 -1
View File
@@ -1,7 +1,29 @@
# 2.3.4
Bugfixes:
* Fix `--help` doesn't work when built without python
Features:
* Use `MemAvailable` if available (Memory, Linux)
* Improve performance of detecting dpkg package count (Packages, Linux)
# 2.3.3
Bugfixes:
* Fix `--help` doesn't work in Windows and some other platforms
# 2.3.2
Bugfixes:
* Fix fish completion script, and install the script correctly
Logo:
* Fix Xray-OS logo name
# 2.3.1
Bugfixes:
* Man page install location
* Fix man page install location
# 2.3.0
+14 -5
View File
@@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.12.0) # target_link_libraries with OBJECT libs & project homepage url
project(fastfetch
VERSION 2.3.1
VERSION 2.3.4
LANGUAGES C
DESCRIPTION "Fast neofetch-like system information tool"
HOMEPAGE_URL "https://github.com/fastfetch-cli/fastfetch"
@@ -206,7 +206,7 @@ endif()
#############
function(fastfetch_encode_c_string STR OUTVAR)
string(REGEX REPLACE "\n$" "" TEMP "${STR}") # Remove trailing newline
string(REGEX REPLACE "\n$" "" TEMP "${STR}") # Remove trailing newline
string(REPLACE "\\" "\\\\" TEMP "${TEMP}") # Escape backslashes
string(REPLACE "\n" "\\n" TEMP "${TEMP}") # Replace newlines with \n
string(REPLACE "\"" "\\\"" TEMP "${TEMP}") # Replace quotes with \"
@@ -221,12 +221,15 @@ endfunction(fastfetch_load_text)
find_package(Python)
if(Python_FOUND)
# Minify JSON string. `io.open(0,encoding='utf-8')` is needed to avoid encoding issues on Windows
execute_process(COMMAND ${Python_EXECUTABLE} -c "import io,json,sys;json.dump(json.load(io.open(0,encoding='utf-8')),sys.stdout,separators=(',', ':'),ensure_ascii=False)"
execute_process(COMMAND ${Python_EXECUTABLE} -c "import json,sys;json.dump(json.load(sys.stdin),sys.stdout,separators=(',',':'))"
INPUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/src/data/help.json"
OUTPUT_VARIABLE DATATEXT_JSON_HELP)
if(DATATEXT_JSON_HELP STREQUAL "")
message(ERROR "DATATEXT_JSON_HELP is empty, which should not happen!")
endif()
else()
file(READ "src/data/help.json" TEMP)
message(STATUS "Python3 is not found, 'help.json' will not be minified")
file(READ "src/data/help.json" DATATEXT_JSON_HELP)
endif()
fastfetch_encode_c_string("${DATATEXT_JSON_HELP}" DATATEXT_JSON_HELP)
@@ -1040,6 +1043,12 @@ install(
RENAME "${CMAKE_PROJECT_NAME}"
)
install(
FILES "${CMAKE_SOURCE_DIR}/completions/fish"
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/fish/vendor_completions.d"
RENAME "${CMAKE_PROJECT_NAME}.fish"
)
install(
DIRECTORY "${CMAKE_SOURCE_DIR}/presets"
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${CMAKE_PROJECT_NAME}"
+1 -1
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env fish
if not test -x fastfetch
if not type -q fastfetch
return
end
+11 -11
View File
@@ -545,15 +545,15 @@
},
{
"long": "bar-char-elapsed",
"desc": "Set the character to use in elapsed part",
"desc": "Set the character to use in elapsed part of percentage bars",
"arg": {
"type": "str",
"default": ""
"default": "\u25a0"
}
},
{
"long": "bar-char-total",
"desc": "Set the character to use in total part",
"desc": "Set the character to use in total part of percentage bars",
"arg": {
"type": "str",
"default": "-"
@@ -561,7 +561,7 @@
},
{
"long": "bar-width",
"desc": "Set the width of the bar, in number of characters",
"desc": "Set the width of percentage bars, in number of characters",
"arg": {
"type": "num",
"default": 10
@@ -569,7 +569,7 @@
},
{
"long": "bar-border",
"desc": "Whether to show a border around the bar",
"desc": "Whether to show a border around percentage bars",
"arg": {
"type": "bool",
"optional": true,
@@ -1290,12 +1290,12 @@
"arg": {
"type": "enum",
"enum": {
"block": "███",
"circle": "",
"diamond": "",
"triangle": "",
"square": "",
"star": ""
"block": "\u2588\u2588\u2588",
"circle": "\u25cf",
"diamond": "\u25c6",
"triangle": "\u25b2",
"square": "\u25a0",
"star": "\u2605"
},
"default": "block"
}
+25 -15
View File
@@ -13,33 +13,43 @@ const char* ffDetectMemory(FFMemoryResult* ram)
buf[nRead] = '\0';
uint64_t memTotal = 0,
memAvailable = 0,
shmem = 0,
memFree = 0,
buffers = 0,
cached = 0,
sReclaimable = 0;
char *token = NULL;
if((token = strstr(buf, "MemTotal:")) != NULL)
memTotal = strtoul(token + strlen("MemTotal:"), NULL, 10);
else
return "MemTotal not found in /proc/meminfo";
if((token = strstr(buf, "MemFree:")) != NULL)
memFree = strtoul(token + strlen("MemFree:"), NULL, 10);
if((token = strstr(buf, "MemAvailable:")) != NULL)
memAvailable = strtoul(token + strlen("MemAvailable:"), NULL, 10);
else
{
if((token = strstr(buf, "MemFree:")) != NULL)
memFree = strtoul(token + strlen("MemFree:"), NULL, 10);
if((token = strstr(buf, "Buffers:")) != NULL)
buffers = strtoul(token + strlen("Buffers:"), NULL, 10);
if((token = strstr(buf, "Cached:")) != NULL)
cached = strtoul(token + strlen("Cached:"), NULL, 10);
if((token = strstr(buf, "Shmem:")) != NULL)
shmem = strtoul(token + strlen("Shmem:"), NULL, 10);
if((token = strstr(buf, "SReclaimable:")) != NULL)
sReclaimable = strtoul(token + strlen("SReclaimable:"), NULL, 10);
if((token = strstr(buf, "Buffers:")) != NULL)
buffers = strtoul(token + strlen("Buffers:"), NULL, 10);
if((token = strstr(buf, "Cached:")) != NULL)
cached = strtoul(token + strlen("Cached:"), NULL, 10);
if((token = strstr(buf, "Shmem:")) != NULL)
shmem = strtoul(token + strlen("Shmem:"), NULL, 10);
if((token = strstr(buf, "SReclaimable:")) != NULL)
sReclaimable = strtoul(token + strlen("SReclaimable:"), NULL, 10);
memAvailable = memFree + buffers + cached + sReclaimable - shmem;
}
ram->bytesTotal = memTotal * 1024lu;
ram->bytesUsed = (memTotal + shmem - memFree - buffers - cached - sReclaimable) * 1024lu;
ram->bytesUsed = (memTotal - memAvailable) * 1024lu;
return NULL;
}
+7 -14
View File
@@ -42,26 +42,19 @@ static uint32_t getNumElements(FFstrbuf* baseDir, const char* dirname, unsigned
static uint32_t getNumStringsImpl(const char* filename, const char* needle)
{
FILE* file = fopen(filename, "r");
if(file == NULL)
FF_STRBUF_AUTO_DESTROY content = ffStrbufCreate();
if (!ffReadFileBuffer(filename, &content))
return 0;
uint32_t count = 0;
char* line = NULL;
size_t len = 0;
while(getline(&line, &len, file) != EOF)
char *iter = content.chars;
size_t needleLength = strlen(needle);
while ((iter = memmem(iter, content.length - (size_t)(iter - content.chars), needle, needleLength)) != NULL)
{
if(strstr(line, needle) != NULL)
++count;
++count;
iter += needleLength;
}
if(line != NULL)
free(line);
fclose(file);
return count;
}
+3 -3
View File
@@ -4279,10 +4279,10 @@ static const FFlogo X[] = {
FF_COLOR_FG_CYAN,
},
},
//XrayOS
//Xray_OS
{
.names = {"XrayOS"},
.lines = FASTFETCH_DATATEXT_LOGO_XRAYOS,
.names = {"Xray_OS"},
.lines = FASTFETCH_DATATEXT_LOGO_XRAY_OS,
.colors = {
FF_COLOR_FG_256 "15",
FF_COLOR_FG_256 "14",