diff --git a/assets/images/device-compatibility/librem/quick-settings.png b/assets/images/device-compatibility/librem/quick-settings.png new file mode 100644 index 0000000..9b2497e Binary files /dev/null and b/assets/images/device-compatibility/librem/quick-settings.png differ diff --git a/assets/images/device-compatibility/librem/settings.png b/assets/images/device-compatibility/librem/settings.png new file mode 100644 index 0000000..1eeec6c Binary files /dev/null and b/assets/images/device-compatibility/librem/settings.png differ diff --git a/docs/Changelog.md b/docs/Changelog.md index e7a51db..678ee9a 100644 --- a/docs/Changelog.md +++ b/docs/Changelog.md @@ -7,17 +7,36 @@ permalink: /changelogs # Changelogs +{: .important-title } +> GN-45_Version 46    Jan 03, 2024 +> * Added support for Purism Librem Laptops +> * Some minor about ui changes and cleanup + +{: .note-title } +> GN-44_Version 45    Jan 03, 2024 +> * Added support for Purism Librem Laptops +> * Some minor about ui changes and cleanup + +{: .important-title } +> GN-45_Version 44    Dec 26, 2023 +> * Translation: updates Credits: sabriunal, ViBE-HU, Vistaus +> * Power icon: Use upower for checking charging state of barrel/usb charging for Charging behaviour icon modification + +{: .note-title } +> GN-44_Version 43    Dec 26, 2023 +> * Translation: updates Credits: sabriunal, ViBE-HU, Vistaus +> * Power icon: Use upower for checking charging state of barrel/usb charging for Charging behaviour icon modification + {: .important-title } > GN-45_Version 42    Dec 15, 2023 > * Nofity users if laptop is supported and dependencies are missing > * Pref: About updated {: .note-title } -> GN-44_Version 31    Dec 15, 2023 +> GN-44_Version 41    Dec 15, 2023 > * Nofity users if laptop is supported and dependencies are missing > * Pref: About updated - {: .important-title } > GN-45_Version 40    Dec 06, 2023 > * Added support for Framework Laptops @@ -75,12 +94,12 @@ permalink: /changelogs {: .important-title } > GN-45_Version 32    Sep 25, 2023 > * Razer doesn't need root privileges for razer-cli so they do no need to install polkit rules. No Installation setting or notifications regarding polkit rules will be available for Razer devices -> * Add missing properties for thinkpad +> * Add missing properties for Thinkpad {: .note-title } > GN-44_Version 31    Sep 25, 2023 > * Razer doesn't need root privileges for razer-cli so they do no need to install polkit rules. No Installation setting or notifications regarding polkit rules will be available for Razer devices -> * Add missing properties for thinkpad +> * Add missing properties for Thinkpad {: .important-title } > GN-45_Version 30    Sep 23, 2023 @@ -110,7 +129,7 @@ permalink: /changelogs {: .important-title } > Version 25    Sep 06, 2023 > * Fix for devices which doesn't immediately update threshold after writing. Added re-verification by reading threshold after 200ms if threshold fails verification the first time. -> * Fix error for thinkpad legacy when disabling extension +> * Fix error for Thinkpad legacy when disabling extension {: .important-title } > Version 24    Jul 05, 2023 @@ -125,28 +144,28 @@ permalink: /changelogs {: .important-title } > Version 22    May 31, 2023 > * Italian translation contribution (Thanks dalz) -> * Added additional check for detection of laptop, as dells libsmbios can be installed as dependencies on non-dell laptops (Thanks hensnenenej for debugging and report it) -> * Added a settings option to choose betweem libsmbios and dell command center if both packages are installed on dell device. -> * Added battery removal detection for dual battery thinkpads (untested). -> * Fix threshold setting on full-capacity mode for sony laptops. +> * Added additional check for detection of laptop, as Dells libsmbios can be installed as dependencies on non-dell laptops (Thanks hensnenenej for debugging and report it) +> * Added a settings option to choose between libsmbios and Dell command center if both packages are installed on dell device. +> * Added battery removal detection for dual battery Thinkpads (untested). +> * Fix threshold setting on full-capacity mode for Sony laptops. > * Added a notification message if threshold fails to update. -> * Added detected device name on error notifications (Helps debugging incase extension detect as wrong device) -> * Removed verify threshold by readback after setting threshold as reading charging threshold is buggy on toshiba -> * Remove option to change charging threshold to 80% if battery level is more than 80% on toshiba. +> * Added detected device name on error notifications (Helps debugging in case extension detect as wrong device) +> * Removed verify threshold by readback after setting threshold as reading charging threshold is buggy on Toshiba +> * Remove option to change charging threshold to 80% if battery level is more than 80% on Toshiba. {: .important-title } > Version 21    May 22, 2023 > * German translation contribution (Thanks olebole) -> * Fix for some thinkpad mode conditions where start threshold should be less than end threshold. (Thanks olebole) -> * Adjusted allowed custom valueLegacy thinkpad (tpsmapi) as allowed values for end endthreshold > startthreshold + 5 +> * Fix for some Thinkpad mode conditions where start threshold should be less than end threshold. (Thanks olebole) +> * Adjusted allowed custom value Legacy Thinkpad (tpsmapi) as allowed values for end endthreshold > startthreshold + 5 {: .important-title } > Version 20    May 18, 2023 > * Turkish translation contribution (Thanks sabriunal) > * Used CHECK Icons (Same as wifi) for displaying selected mode, instead of ugly CHECK ornament unicode. -> * Removed threshold value displayed on panel/notification for lenovo ideapad/legion. When charging limit is enabled (conservation mode), Some models sets threshold to 60% and some models set threhsold to 80%, and the kernel doesnt report what is the current threshold value is, but only informs that charging limit is enabled or disabled. Now it will report only the current mode. conservation mode enabled displays max lifespan mode. conservation mode disable display full capacity mode. -> * Removed threshold value displayed on panel/notification for Samsung laptop. When charging limit is enabled (battery_life_extender), Some models sets threshold to 60% and some models set threhsold to 80%, and the kernel doesnt report what is the current threshold value is, but only informs that charging limit is enabled or disabled. Now it will report only the current mode. battery_life_extender mode enabled, displays max lifespan mode. battery_life_extender mode disable, display full capacity mode. -> * Same goes for panasonic +> * Removed threshold value displayed on panel/notification for Lenovo Ideapad/Legion. When charging limit is enabled (conservation mode), Some models sets threshold to 60% and some models set threshold to 80%, and the kernel doesn't report what is the current threshold value is, but only informs that charging limit is enabled or disabled. Now it will report only the current mode. conservation mode enabled displays max lifespan mode. conservation mode disable display full capacity mode. +> * Removed threshold value displayed on panel/notification for Samsung laptop. When charging limit is enabled (battery_life_extender), Some models sets threshold to 60% and some models set threshold to 80%, and the kernel doesn't report what is the current threshold value is, but only informs that charging limit is enabled or disabled. Now it will report only the current mode. battery_life_extender mode enabled, displays max lifespan mode. battery_life_extender mode disable, display full capacity mode. +> * Same goes for Panasonic {: .important-title } > Version 19    May 12, 2023 @@ -161,7 +180,7 @@ permalink: /changelogs > Version 17    May 08, 2023 > * Strings correction > * Used suggested crowdin translations for incomplete translation -> * Few asus device do not restore threshold on resume after suspend. Fixed. (Thanks AbrarSL) +> * Few Asus device do not restore threshold on resume after suspend. Fixed. (Thanks AbrarSL) > * Used session-mode. {: .important-title } @@ -170,11 +189,11 @@ permalink: /changelogs > * Extension only writes new threshold if new mode/threshold is different than the current mode/threshold. > * Added support for Dell laptop using cctk > * Added support for Tuxedo laptops using tuxedo-keyboard (Thanks r_wraith) -> * Added support for few gigabyte aero/aorus module (Thanks tangalbert919) +> * Added support for few Gigabyte Aero/Aorus module (Thanks tangalbert919) {: .important-title } > Version 15    Apr 27, 2023 -> * Added support to Apple Macbook M processora running Asahi Linux (teohhanhui) +> * Added support for Apple Macbook M processor running Asahi Linux (teohhanhui) {: .important-title } > Version 14    Apr 25, 2023 @@ -192,14 +211,14 @@ permalink: /changelogs {: .important-title } > Version 11    Apr 2, 2023 -> * Added option to change behavior of system battery indicator +> * Added option to change behaviour of system battery indicator > * In current threshold the text "currently active" will be displayed indicating the current mode {: .important-title } > Version 10    Mar 28, 2023 > * Add option to change index of system indicator in general prefs -> * Re-add vendor checks for thinkpad with correct path as it conflicts with huawei which also uses the same sysfs path. +> * Re-add vendor checks for Thinkpad with correct path as it conflicts with Huawei which also uses the same sysfs path. > * Fix for Huawei. Used correct sysfs path. > * Added support for Panasonic devices and Intel QC71 devices > @@ -216,7 +235,7 @@ permalink: /changelogs {: .important-title } > Version 8    Mar 17, 2023 > * Added dell, msi and sys76 -> * Seperated devices in different class +> * Separated devices in different class > * Removed delay timer and update UI with signal on completion of writing and reading threshold value > * Changed/widen the range for end and start threshold for custom device > @@ -226,7 +245,7 @@ permalink: /changelogs {: .important-title } > Version 7    Mar 3, 2023 -> * Do not detroy popupmenu during UIupdates instead. Instead just change/update the text and icon. Instead of updating everything, update only specific items that requires updates. +> * Do not destroy popupmenu during UI updates instead. Instead just change/update the text and icon. Instead of updating everything, update only specific items that requires updates. > * Fixed Binding > * Added extension pref button in quicksettings > * Added option in Prefs to remove extension pref button from quicksettings @@ -235,14 +254,14 @@ permalink: /changelogs > * Added option in Prefs to remove mode mode showing in quicksetting toggle subtitle > * Fixed initializing of pref if pref is open before enabling extension for the first time > * Destroy notification of this extension on extension disable -> * Destroy notification on when new notification recieved. +> * Destroy notification on when new notification received. > * Added icon on popup menu showing current threshold read > * Spanish translation contribution (Thanks: Valeria) {: .important-title } > Version 6    Feb 25, 2023 -> * Log only during installation and uninstalltion of polkit script +> * Log only during installation and removal of polkit script {: .important-title } @@ -253,14 +272,14 @@ permalink: /changelogs {: .important-title } > Version 4    Feb 20, 2023 -> * Removed usage of systemd service to change permision of sysfs charge_control_end_threshold. +> * Removed usage of systemd service to change permission of sysfs charge_control_end_threshold. > * Use Polkit for a way to write to sysfs threshold using root permission. (Ported from Deminder Shutdown timer) > * Pref UI changes > * Added option to disable notification > * Quick Setting UI changes -> * Polkit: Fixed serveral issue, and issue checking of version of polkit and ctl +> * Polkit: Fixed several issue, and issue checking of version of polkit and ctl > * Polkit: clean up and remove unneeded code -> * Added support for more device. Thinkpad, acer, lenovo, huawei, sony, samsung, lg. +> * Added support for more device. Thinkpad, Acer, Lenovo, Huawei, Sony, Samsung, lg. > * Added notification to remove older systemd service files if detected. > * Added delay timer to delay updating panel and indicator UI so that threshold are written and read back from sysfs > * Added more icon for different devices @@ -276,14 +295,14 @@ permalink: /changelogs {: .important-title } > Version 2    Feb 4, 2023 -> * Added Extension prefs button to notifcation prompt for installation -> * Added notifcation upon sucessfull removal of systemd service file +> * Added Extension prefs button to notification prompt for installation +> * Added notification upon successfully removal of systemd service file {: .important-title } > Version 1    Feb 3, 2023 > * Initial Release. > * Works on asus device -> * Uses systemd service to change permision of sysfs charge_control_end_threshold. +> * Uses systemd service to change permission of sysfs charge_control_end_threshold. > * Feature enable/disable system indicator, change icons, install systemd service, customizable threshold, notifications for installation, removal and error diff --git a/docs/Device-Compatibility/Librem.md b/docs/Device-Compatibility/Librem.md new file mode 100644 index 0000000..9578eeb --- /dev/null +++ b/docs/Device-Compatibility/Librem.md @@ -0,0 +1,123 @@ +--- +layout: default +title: Purism Librem +parent: Device Compatibility +permalink: /device-compatibility/librem +--- + + +# Purism Librem + +## Capability +* 3 presets: Full Capacity Mode, Balance Mode, and Maximum Life Span mode. +* Default threshold values of these 3 preset modes are set at 100/95%, 80/75%, and 60/55%. +* Each preset end threshold value can be customized between 100-80 %, 80-65 %, and 85-50 % respectively. +* Each preset start threshold value can be customized between is 98-75 %, 83-60 %, and 83-40 % respectively. +* The difference between end and start threshold cannot be less than 2%. + +## Dependencies +Depends on separate kernel module `librem-ec-acpi-dkms`, that need to be installed.
+ + +## Testing charging threshold using command-line +After installing `librem-ec-acpi-dkms` below sysfs path will be available and charging threshold/mode can be changed. +Now user will be able to set charging threshold, using commandline and test charging behavior. +Charging mode can be set by using `echo` command in `terminal`. +
+
+ +**For example:**
To apply start threshold value of `55`, end threshold value of `60`, command would be. + +Require root privileges +{: .label .label-yellow .mt-0} +```bash +echo '55' | pkexec tee /sys/class/power_supply/BAT0/charge_control_start_threshold +echo '60' | pkexec tee /sys/class/power_supply/BAT0/charge_control_end_threshold +``` +
+`sudo` also can be used in place of `pkexec` in the above commands as both `sudo` and `pkexec` can be use to run commands in root mode. To make use of polkit rules, the extension uses `pkexec`. + +The current threshold value can also be read using `cat` command in `terminal`. +```bash +cat /sys/class/power_supply/BAT0/charge_control_start_threshold +cat /sys/class/power_supply/BAT0/charge_control_end_threshold +``` +
+If charging threshold are applied successfully using above commands, the extension is compatible. + + +{: .important-title } +> Condition for applying threshold +> +> * Accepted values for `charge_control_end_threshold` : 1 - 100 +> * Accepted values for `charge_control_start_threshold` : 0 - 99 +> * `charge_control_end_threshold` > `charge_control_start_threshold` + +
+ +{: .note } +> The sequence of applying threshold in command-line matters, as in whether to set `charge_control_end_threshold` first or the apply `charge_control_end_threshold` first.

+> The condition `charge_control_end_threshold > charge_control_start_threshold` must be fulfilled in order for charging threshold to apply. Threshold values will not be accepted if `charge_control_start_threshold` is less than `charge_control_end_threshold`
+> +>**For example 1: Increase threshold** +>> Laptops current threshold value is:
`charge_control_start_threshold = 75`
`charge_control_end_threshold = 80` +> +>> User want to apply new threshold value of:
`charge_control_start_threshold = 95`
`charge_control_end_threshold = 100` +> +>>**Incorrect sequence**
+>> ```bash +echo '95' | pkexec tee /sys/class/power_supply/BAT0/charge_control_start_threshold +echo '100' | pkexec tee /sys/class/power_supply/BAT0/charge_control_end_threshold +``` +>> Since start_threshold is applied first `charge_control_end_threshold (80)` is less than `charge_control_start_threshold (95)`, so the condition `charge_control_end_threshold > charge_control_start_threshold` is not fulfilled, hence `charge_control_start_threshold` wont be updated. +> +>>**Correct sequence**
+>> ```bash +echo '100' | pkexec tee /sys/class/power_supply/BAT0/charge_control_end_threshold +echo '95' | pkexec tee /sys/class/power_supply/BAT0/charge_control_start_threshold +``` +>> Since end_threshold is applied first, `charge_control_end_threshold (100)` is greater than `charge_control_start_threshold (75)`, so the condition `charge_control_end_threshold > charge_control_start_threshold` is fulfilled. +> +>**For example 2: Decrease threshold** +>> Laptops current threshold value is:
`charge_control_start_threshold = 75`
`charge_control_end_threshold = 80` +> +>> User want to apply new threshold value of:
`charge_control_start_threshold = 55`
`charge_control_end_threshold = 60` +> +>>**Incorrect sequence**
+>> ```bash +echo '60' | pkexec tee /sys/class/power_supply/BAT0/charge_control_end_threshold +echo '55' | pkexec tee /sys/class/power_supply/BAT0/charge_control_start_threshold +``` +>> Since end_threshold is applied first, `charge_control_end_threshold (60)` is less than `charge_control_start_threshold (75)`, hence the condition `charge_control_end_threshold > charge_control_start_threshold` is not fulfilled. So `charge_control_end_threshold` wont be updated. +> +>>**Correct sequence**
+>> ```bash +echo '55' | pkexec tee /sys/class/power_supply/BAT0/charge_control_start_threshold +echo '60' | pkexec tee /sys/class/power_supply/BAT0/charge_control_end_threshold +``` +>> Since start_threshold is applied first, `charge_control_end_threshold (80)` is greater than `charge_control_start_threshold (55)`, so the condition `charge_control_end_threshold > charge_control_start_threshold` is fulfilled. + +## Quick Settings +
+ +
+ Gnome 43 and above + Gnome 42 +
+ +## Extension Preferences +
+ +
+ +