From 688f2f37f5ccbe0f657863d87e604b8d5cc9153c Mon Sep 17 00:00:00 2001 From: Furfx Date: Mon, 22 Jan 2018 17:53:32 +0100 Subject: [PATCH 01/34] QoL changes Removed manifest related properties in percentage.csproj so it can compile everywhere Replaced the hover text by the estimated remaining battery time or by "Charging" if the laptop is connected to a power source --- percentage/percentage/TrayIcon.cs | 22 ++++++++++++++---- .../percentage/bin/Debug/percentage.exe | Bin 0 -> 9216 bytes .../bin/Debug/percentage.exe.config | 6 +++++ .../percentage/bin/Debug/percentage.pdb | Bin 0 -> 19968 bytes .../bin/Debug/percentage.vshost.exe | Bin 0 -> 22696 bytes .../bin/Debug/percentage.vshost.exe.config | 6 +++++ .../bin/Debug/percentage.vshost.exe.manifest | 11 +++++++++ ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 7349 bytes .../percentage.Properties.Resources.resources | Bin 0 -> 180 bytes .../percentage.csproj.CoreCompileInputs.cache | 1 + .../percentage.csproj.FileListAbsolute.txt | 9 +++++++ .../percentage.csproj.GenerateResource.Cache | Bin 0 -> 954 bytes ...ntage.csprojResolveAssemblyReference.cache | Bin 0 -> 2384 bytes .../percentage/obj/Debug/percentage.exe | Bin 0 -> 9216 bytes .../percentage/obj/Debug/percentage.pdb | Bin 0 -> 19968 bytes percentage/percentage/percentage.csproj | 13 +---------- 16 files changed, 52 insertions(+), 16 deletions(-) create mode 100644 percentage/percentage/bin/Debug/percentage.exe create mode 100644 percentage/percentage/bin/Debug/percentage.exe.config create mode 100644 percentage/percentage/bin/Debug/percentage.pdb create mode 100644 percentage/percentage/bin/Debug/percentage.vshost.exe create mode 100644 percentage/percentage/bin/Debug/percentage.vshost.exe.config create mode 100644 percentage/percentage/bin/Debug/percentage.vshost.exe.manifest create mode 100644 percentage/percentage/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 percentage/percentage/obj/Debug/percentage.Properties.Resources.resources create mode 100644 percentage/percentage/obj/Debug/percentage.csproj.CoreCompileInputs.cache create mode 100644 percentage/percentage/obj/Debug/percentage.csproj.FileListAbsolute.txt create mode 100644 percentage/percentage/obj/Debug/percentage.csproj.GenerateResource.Cache create mode 100644 percentage/percentage/obj/Debug/percentage.csprojResolveAssemblyReference.cache create mode 100644 percentage/percentage/obj/Debug/percentage.exe create mode 100644 percentage/percentage/obj/Debug/percentage.pdb diff --git a/percentage/percentage/TrayIcon.cs b/percentage/percentage/TrayIcon.cs index d3643c6..489724f 100644 --- a/percentage/percentage/TrayIcon.cs +++ b/percentage/percentage/TrayIcon.cs @@ -16,6 +16,9 @@ class TrayIcon private string batteryPercentage; private NotifyIcon notifyIcon; + private int refreshInterval = 1000; // in miliseconds + + public TrayIcon() { ContextMenu contextMenu = new ContextMenu(); @@ -28,7 +31,7 @@ public TrayIcon() // initialize menuItem menuItem.Index = 0; - menuItem.Text = "E&xit"; + menuItem.Text = "Exit"; menuItem.Click += new System.EventHandler(menuItem_Click); notifyIcon.ContextMenu = contextMenu; @@ -39,7 +42,7 @@ public TrayIcon() Timer timer = new Timer(); timer.Tick += new EventHandler(timer_Tick); - timer.Interval = 1000; // in miliseconds + timer.Interval = refreshInterval; timer.Start(); } @@ -47,6 +50,7 @@ private void timer_Tick(object sender, EventArgs e) { PowerStatus powerStatus = SystemInformation.PowerStatus; batteryPercentage = (powerStatus.BatteryLifePercent * 100).ToString(); + using (Bitmap bitmap = new Bitmap(DrawText(batteryPercentage, new Font(iconFont, iconFontSize), Color.White, Color.Black))) { @@ -55,8 +59,18 @@ private void timer_Tick(object sender, EventArgs e) { using (Icon icon = Icon.FromHandle(intPtr)) { - notifyIcon.Icon = icon; - notifyIcon.Text = batteryPercentage + "%"; + if (powerStatus.PowerLineStatus.ToString().Equals("Offline")) { + int hoursRemaining = (int)Math.Floor(powerStatus.BatteryLifeRemaining / 3600.0); + int minutesRemaining = (int)Math.Floor((((powerStatus.BatteryLifeRemaining / 3600.0) - hoursRemaining) * 60)); + + notifyIcon.Icon = icon; + notifyIcon.Text = hoursRemaining + ":" + minutesRemaining; + } else + { + notifyIcon.Icon = icon; + notifyIcon.Text = "Charging"; + } + } } finally diff --git a/percentage/percentage/bin/Debug/percentage.exe b/percentage/percentage/bin/Debug/percentage.exe new file mode 100644 index 0000000000000000000000000000000000000000..85610b59a972c7a38df43479e7cc3405ccdfb36f GIT binary patch literal 9216 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 J=zn|!{u2*@{L26U literal 0 HcmV?d00001 diff --git a/percentage/percentage/bin/Debug/percentage.exe.config b/percentage/percentage/bin/Debug/percentage.exe.config new file mode 100644 index 0000000..d740e88 --- /dev/null +++ b/percentage/percentage/bin/Debug/percentage.exe.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/percentage/percentage/bin/Debug/percentage.pdb b/percentage/percentage/bin/Debug/percentage.pdb new file mode 100644 index 0000000000000000000000000000000000000000..add147239efa6baf4f0bb5086b3788263902bcb1 GIT binary patch literal 19968 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 wj{B?PH3nCjG}491+ySfEVd + + + + + \ No newline at end of file diff --git a/percentage/percentage/bin/Debug/percentage.vshost.exe.manifest b/percentage/percentage/bin/Debug/percentage.vshost.exe.manifest new file mode 100644 index 0000000..f96b1d6 --- /dev/null +++ b/percentage/percentage/bin/Debug/percentage.vshost.exe.manifest @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/percentage/percentage/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/percentage/percentage/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000000000000000000000000000000000000..1d59a8e73491069a093e01e5cb021bdc56102b5b GIT binary patch literal 7349 zcmeHMds7=X5Vv_K7($9uN=V4VY11~zI9HoT5;DUd6yt`LqzrbF&R~YfcWa~M?sS!O zfXnb%`UyJyi0$tA#VcuN@XhdtkMUaQu|KV}(*1UwNG1}AfAFDidae$ja9#;pNiA!} zdMk9u-I56%A*~hZdD34itY$NBL1`iVrTn~=qrYrsC3H=wV9AHjDDGx68)4NI_Ak&V z%a7nMRdaK-h1#=PKJP5#_#7W5$mgFx`Y{x)LwIYx0VRWXiU$EGYm=)rKM0M!iGy!) z*OmL=ENcy3)orXE81QLUdK`PNNWUiPMd8Af&3#8W+(5f0)#{mA=(G}VO4{9jY{+bQTL^S0@OGz#hR}T&aXSWrsBt+@6=S+ z?0Q3-uj0;``s1TAF50Qhsc9C30^3L>Ku-jY;i?2&*}EIu?COd7sfw{c$r`Q@S#@1O zU1*~k-2o{y%m6LnEmU-TF^-{3ooad|een_0{qw5}LI*By5a8*7Ek~Pa4%|@E2Cb!9 z#@P#lHlfS4hJdpf`bK!r8gg1wbCvXTs9_Uopuk5}MI}8{`T;dvQ|;PlS=ay@WGs;w zL^+U5CK-NECIro zT{I3a>YS!HlwWe6>hS^UJ7^p})OXNcy*Rg%#Di0VC`MC5R2(LObRdzsf&#xrNTf)N zk{ClV%C4eJuyGWH!_5|RdQn0mz0Va?I%KzEy zXzA{C2yvGXSvI$KA@v2>F@fUt$*Hz^e{;$#jXfr*N2X&7lv7f8ib1KF7s)DGA!1gKmT0GTCX7-Zd*5*UO0PFol*Lwt_PUhjk^QVt0o&C+UoQ$T_b;r);opj7fbN{*>t(DR)S3$HXcMy)p z0@r515zJkLabkh#P;>zj;{b`9Jc=+LV_~R>Df1+SN>TiDd@@OjozB#zDVU-sO#v0nmt|2*AFiC6!#`qAu=V=k zOW_;J+EO}q4G+%|v#|cwVfp+7b>oQrfbG4B(Q>G1{BV=+6XB*5_7Tft)rF~jRrsy2 zElnX01*B{iMLhe)=1}!^EG|*xHg_=INJr5g!d!{`fSiP$!N2;~+JF6a*1y&|ziDib F{R@)Pn8yGB literal 0 HcmV?d00001 diff --git a/percentage/percentage/obj/Debug/percentage.Properties.Resources.resources b/percentage/percentage/obj/Debug/percentage.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/percentage/percentage/obj/Debug/percentage.csproj.CoreCompileInputs.cache b/percentage/percentage/obj/Debug/percentage.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..25377cb --- /dev/null +++ b/percentage/percentage/obj/Debug/percentage.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +d058aec9cef97fb95369d357eb18b23597371ce1 diff --git a/percentage/percentage/obj/Debug/percentage.csproj.FileListAbsolute.txt b/percentage/percentage/obj/Debug/percentage.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..5dc851c --- /dev/null +++ b/percentage/percentage/obj/Debug/percentage.csproj.FileListAbsolute.txt @@ -0,0 +1,9 @@ +C:\Users\Lucas\OneDrive\percentage-master\percentage\percentage\bin\Debug\percentage.exe.config +C:\Users\Lucas\OneDrive\percentage-master\percentage\percentage\bin\Debug\percentage.exe +C:\Users\Lucas\OneDrive\percentage-master\percentage\percentage\bin\Debug\percentage.pdb +C:\Users\Lucas\OneDrive\percentage-master\percentage\percentage\obj\Debug\percentage.csprojResolveAssemblyReference.cache +C:\Users\Lucas\OneDrive\percentage-master\percentage\percentage\obj\Debug\percentage.Properties.Resources.resources +C:\Users\Lucas\OneDrive\percentage-master\percentage\percentage\obj\Debug\percentage.csproj.GenerateResource.Cache +C:\Users\Lucas\OneDrive\percentage-master\percentage\percentage\obj\Debug\percentage.exe +C:\Users\Lucas\OneDrive\percentage-master\percentage\percentage\obj\Debug\percentage.pdb +C:\Users\Lucas\OneDrive\percentage-master\percentage\percentage\obj\Debug\percentage.csproj.CoreCompileInputs.cache diff --git a/percentage/percentage/obj/Debug/percentage.csproj.GenerateResource.Cache b/percentage/percentage/obj/Debug/percentage.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..58cdc4b5e5523f10eabddce82b1deacae7092db9 GIT binary patch literal 954 zcma)4!D`z;5S1dyv1A9FLJ6fkm{Ll?M%bhwxtKy6(uO9G)*#cv)ujpU&AKDp_gpi1m5sX%&H~aR@KF{|&?=JC{*l_RqnhGUa6aIvw#d>`yE0DhrbmDrbcr_D`!!tNcBz&deOjNjBOpc8c9%JeE5n zu`MDdd)3VG5%4XP2e5=vLYXVTkifA8{B)=^;O5d;Co&DkDzn1U|E)|QeU)>Nj5tsh za%b$SKXbwXm-Y!T_=;ea(CRzLD+OWbd(WFsahsn9@<7-cW8;7mpE?O5UO%9j2hx?d zL6L?W;uW2Ic@tLOPYtbU)(tjJ*36LBcArA%5X#Hvu?WtKT zg$3JVim8!sYRxw#!M3?DqoIX#o7g%Rx&kE1z>A_zyNT=QdaoA^3XbmW|L4Qr8&;nr zwG2LB+@|ESAlAbGdR+rzTE+>b9z(ga)uHr+4!i{G$Pb^%LZ-4gU`npJ?A5ywB<@n` zaX&|o_uz=QJZ`qZeKQWIR2z{8-_bX&!>t?3tk`mcf>J3K@bpey3v?$&szQN$eCHor gDsE#%Q6Z2?YeCVZF!@P8h)5 z5Hx5~Ukf=gnopr2q8^nX%Q$F51h6f|Aqzkj@J5^cfN?V;mEWbj56W?}Stpm9EL`NZ zelphF1u?JxGyd-ntFNaqD)+L{;y6mqNEy#c=9|wO*>Ak+n2`1)jl8DGit^@&mROVczFjg# z-_kT%gB}-y2x6W1m5twCs(z9lv3M^r!n{uA|&QxruTM z9KXZOA7VE8FE!TDP_syki zT6TrhDz)lMcMRu<0iTB+*bwHxhCCa>9NEyU4Pg##=%Ec^j&10X4dEKt(3}n78rjfe f8^SfTp(i$kYivVLZ3t_?hURSuYs7{YENJpC;i0q) literal 0 HcmV?d00001 diff --git a/percentage/percentage/obj/Debug/percentage.exe b/percentage/percentage/obj/Debug/percentage.exe new file mode 100644 index 0000000000000000000000000000000000000000..85610b59a972c7a38df43479e7cc3405ccdfb36f GIT binary patch literal 9216 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 J=zn|!{u2*@{L26U literal 0 HcmV?d00001 diff --git a/percentage/percentage/obj/Debug/percentage.pdb b/percentage/percentage/obj/Debug/percentage.pdb new file mode 100644 index 0000000000000000000000000000000000000000..add147239efa6baf4f0bb5086b3788263902bcb1 GIT binary patch literal 19968 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 4 - - 5EAFB344C4489CCD86726031EE568ACE22CF26C4 - - - percentage_TemporaryKey.pfx - - - true - - - true - + From 8b8d2e9cad96e0aaa54796d2359594526f9916b2 Mon Sep 17 00:00:00 2001 From: Furfx Date: Mon, 22 Jan 2018 17:55:27 +0100 Subject: [PATCH 02/34] Add files via upload --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 052ff72..7cf7297 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ # percentage +## Original project by kas +https://github.com/kas/percentage + ![](https://raw.githubusercontent.com/kas/percentage/master/percentage.png) See your battery percentage in the Windows 10 system tray From e773dc05c080a76a3cb2a53e9dc8e5b43d5542ab Mon Sep 17 00:00:00 2001 From: Furfx Date: Mon, 22 Jan 2018 18:35:13 +0100 Subject: [PATCH 03/34] Add files via upload --- percentage/percentage/TrayIcon.cs | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/percentage/percentage/TrayIcon.cs b/percentage/percentage/TrayIcon.cs index 489724f..e96f396 100644 --- a/percentage/percentage/TrayIcon.cs +++ b/percentage/percentage/TrayIcon.cs @@ -9,16 +9,13 @@ class TrayIcon { [DllImport("user32.dll", CharSet = CharSet.Auto)] static extern bool DestroyIcon(IntPtr handle); - private const string iconFont = "Segoe UI"; private const int iconFontSize = 14; - private string batteryPercentage; private NotifyIcon notifyIcon; private int refreshInterval = 1000; // in miliseconds - public TrayIcon() { ContextMenu contextMenu = new ContextMenu(); @@ -33,11 +30,8 @@ public TrayIcon() menuItem.Index = 0; menuItem.Text = "Exit"; menuItem.Click += new System.EventHandler(menuItem_Click); - notifyIcon.ContextMenu = contextMenu; - batteryPercentage = "?"; - notifyIcon.Visible = true; Timer timer = new Timer(); @@ -51,26 +45,24 @@ private void timer_Tick(object sender, EventArgs e) PowerStatus powerStatus = SystemInformation.PowerStatus; batteryPercentage = (powerStatus.BatteryLifePercent * 100).ToString(); - - using (Bitmap bitmap = new Bitmap(DrawText(batteryPercentage, new Font(iconFont, iconFontSize), Color.White, Color.Black))) + using (Bitmap bitmap = new Bitmap(DrawText(batteryPercentage, new Font(iconFont, iconFontSize), Color.White, Color.Transparent))) { System.IntPtr intPtr = bitmap.GetHicon(); try { using (Icon icon = Icon.FromHandle(intPtr)) { + // Offline means the laptop is not connected to a power source if (powerStatus.PowerLineStatus.ToString().Equals("Offline")) { - int hoursRemaining = (int)Math.Floor(powerStatus.BatteryLifeRemaining / 3600.0); - int minutesRemaining = (int)Math.Floor((((powerStatus.BatteryLifeRemaining / 3600.0) - hoursRemaining) * 60)); - notifyIcon.Icon = icon; - notifyIcon.Text = hoursRemaining + ":" + minutesRemaining; - } else - { + var ts = TimeSpan.FromSeconds(powerStatus.BatteryLifeRemaining); + + // if you don't want the leading zeros, you can replace the format by '{0}:{1}' + notifyIcon.Text = string.Format("{0:00}:{1:00}", ts.Hours, ts.Minutes); + } else { notifyIcon.Icon = icon; notifyIcon.Text = "Charging"; } - } } finally From 0b2822df18e6970ce8713855e19b3bb5e4798c72 Mon Sep 17 00:00:00 2001 From: Furfx Date: Mon, 22 Jan 2018 18:37:38 +0100 Subject: [PATCH 04/34] Delete percentage.exe --- percentage/percentage/bin/Debug/percentage.exe | Bin 9216 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 percentage/percentage/bin/Debug/percentage.exe diff --git a/percentage/percentage/bin/Debug/percentage.exe b/percentage/percentage/bin/Debug/percentage.exe deleted file mode 100644 index 85610b59a972c7a38df43479e7cc3405ccdfb36f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9216 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 J=zn|!{u2*@{L26U From 9ae7066c2f57cb984bd63a190a7a398e47344ccb Mon Sep 17 00:00:00 2001 From: Furfx Date: Mon, 22 Jan 2018 18:37:47 +0100 Subject: [PATCH 05/34] Delete percentage.exe.config --- percentage/percentage/bin/Debug/percentage.exe.config | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 percentage/percentage/bin/Debug/percentage.exe.config diff --git a/percentage/percentage/bin/Debug/percentage.exe.config b/percentage/percentage/bin/Debug/percentage.exe.config deleted file mode 100644 index d740e88..0000000 --- a/percentage/percentage/bin/Debug/percentage.exe.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From dbdf3369932b93c468de7ee989d65ba9b6012d62 Mon Sep 17 00:00:00 2001 From: Furfx Date: Mon, 22 Jan 2018 18:37:53 +0100 Subject: [PATCH 06/34] Delete percentage.pdb --- percentage/percentage/bin/Debug/percentage.pdb | Bin 19968 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 percentage/percentage/bin/Debug/percentage.pdb diff --git a/percentage/percentage/bin/Debug/percentage.pdb b/percentage/percentage/bin/Debug/percentage.pdb deleted file mode 100644 index add147239efa6baf4f0bb5086b3788263902bcb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19968 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 Date: Mon, 22 Jan 2018 18:37:59 +0100 Subject: [PATCH 07/34] Delete percentage.vshost.exe --- .../percentage/bin/Debug/percentage.vshost.exe | Bin 22696 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 percentage/percentage/bin/Debug/percentage.vshost.exe diff --git a/percentage/percentage/bin/Debug/percentage.vshost.exe b/percentage/percentage/bin/Debug/percentage.vshost.exe deleted file mode 100644 index 681ab771eb267aad9397bb2eaf7889c5ac0e15e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22696 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 wj{B?PH3nCjG}491+ySfEVd Date: Mon, 22 Jan 2018 18:38:04 +0100 Subject: [PATCH 08/34] Delete percentage.vshost.exe.config --- .../percentage/bin/Debug/percentage.vshost.exe.config | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 percentage/percentage/bin/Debug/percentage.vshost.exe.config diff --git a/percentage/percentage/bin/Debug/percentage.vshost.exe.config b/percentage/percentage/bin/Debug/percentage.vshost.exe.config deleted file mode 100644 index d740e88..0000000 --- a/percentage/percentage/bin/Debug/percentage.vshost.exe.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From e3061ff1798184f5b69cb6413920c3069d575971 Mon Sep 17 00:00:00 2001 From: Furfx Date: Mon, 22 Jan 2018 18:38:10 +0100 Subject: [PATCH 09/34] Delete percentage.vshost.exe.manifest --- .../bin/Debug/percentage.vshost.exe.manifest | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 percentage/percentage/bin/Debug/percentage.vshost.exe.manifest diff --git a/percentage/percentage/bin/Debug/percentage.vshost.exe.manifest b/percentage/percentage/bin/Debug/percentage.vshost.exe.manifest deleted file mode 100644 index f96b1d6..0000000 --- a/percentage/percentage/bin/Debug/percentage.vshost.exe.manifest +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - From f7a4d147120d6a201089870bc7ce0dcb7e8423d7 Mon Sep 17 00:00:00 2001 From: Furfx Date: Mon, 22 Jan 2018 18:38:32 +0100 Subject: [PATCH 10/34] Delete DesignTimeResolveAssemblyReferencesInput.cache --- ...esignTimeResolveAssemblyReferencesInput.cache | Bin 7349 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 percentage/percentage/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache diff --git a/percentage/percentage/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/percentage/percentage/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache deleted file mode 100644 index 1d59a8e73491069a093e01e5cb021bdc56102b5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7349 zcmeHMds7=X5Vv_K7($9uN=V4VY11~zI9HoT5;DUd6yt`LqzrbF&R~YfcWa~M?sS!O zfXnb%`UyJyi0$tA#VcuN@XhdtkMUaQu|KV}(*1UwNG1}AfAFDidae$ja9#;pNiA!} zdMk9u-I56%A*~hZdD34itY$NBL1`iVrTn~=qrYrsC3H=wV9AHjDDGx68)4NI_Ak&V z%a7nMRdaK-h1#=PKJP5#_#7W5$mgFx`Y{x)LwIYx0VRWXiU$EGYm=)rKM0M!iGy!) z*OmL=ENcy3)orXE81QLUdK`PNNWUiPMd8Af&3#8W+(5f0)#{mA=(G}VO4{9jY{+bQTL^S0@OGz#hR}T&aXSWrsBt+@6=S+ z?0Q3-uj0;``s1TAF50Qhsc9C30^3L>Ku-jY;i?2&*}EIu?COd7sfw{c$r`Q@S#@1O zU1*~k-2o{y%m6LnEmU-TF^-{3ooad|een_0{qw5}LI*By5a8*7Ek~Pa4%|@E2Cb!9 z#@P#lHlfS4hJdpf`bK!r8gg1wbCvXTs9_Uopuk5}MI}8{`T;dvQ|;PlS=ay@WGs;w zL^+U5CK-NECIro zT{I3a>YS!HlwWe6>hS^UJ7^p})OXNcy*Rg%#Di0VC`MC5R2(LObRdzsf&#xrNTf)N zk{ClV%C4eJuyGWH!_5|RdQn0mz0Va?I%KzEy zXzA{C2yvGXSvI$KA@v2>F@fUt$*Hz^e{;$#jXfr*N2X&7lv7f8ib1KF7s)DGA!1gKmT0GTCX7-Zd*5*UO0PFol*Lwt_PUhjk^QVt0o&C+UoQ$T_b;r);opj7fbN{*>t(DR)S3$HXcMy)p z0@r515zJkLabkh#P;>zj;{b`9Jc=+LV_~R>Df1+SN>TiDd@@OjozB#zDVU-sO#v0nmt|2*AFiC6!#`qAu=V=k zOW_;J+EO}q4G+%|v#|cwVfp+7b>oQrfbG4B(Q>G1{BV=+6XB*5_7Tft)rF~jRrsy2 zElnX01*B{iMLhe)=1}!^EG|*xHg_=INJr5g!d!{`fSiP$!N2;~+JF6a*1y&|ziDib F{R@)Pn8yGB From d1d6c5eff0db02050ca84559cd7d27cacd8a996f Mon Sep 17 00:00:00 2001 From: Furfx Date: Mon, 22 Jan 2018 18:38:37 +0100 Subject: [PATCH 11/34] Delete percentage.Properties.Resources.resources --- .../percentage.Properties.Resources.resources | Bin 180 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 percentage/percentage/obj/Debug/percentage.Properties.Resources.resources diff --git a/percentage/percentage/obj/Debug/percentage.Properties.Resources.resources b/percentage/percentage/obj/Debug/percentage.Properties.Resources.resources deleted file mode 100644 index 6c05a9776bd7cbae976fdcec7e3a254e93018279..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh From 53e5c83745a099aa0d43e2bbab87e3aae118f241 Mon Sep 17 00:00:00 2001 From: Furfx Date: Mon, 22 Jan 2018 18:38:43 +0100 Subject: [PATCH 12/34] Delete percentage.csproj.CoreCompileInputs.cache --- .../obj/Debug/percentage.csproj.CoreCompileInputs.cache | 1 - 1 file changed, 1 deletion(-) delete mode 100644 percentage/percentage/obj/Debug/percentage.csproj.CoreCompileInputs.cache diff --git a/percentage/percentage/obj/Debug/percentage.csproj.CoreCompileInputs.cache b/percentage/percentage/obj/Debug/percentage.csproj.CoreCompileInputs.cache deleted file mode 100644 index 25377cb..0000000 --- a/percentage/percentage/obj/Debug/percentage.csproj.CoreCompileInputs.cache +++ /dev/null @@ -1 +0,0 @@ -d058aec9cef97fb95369d357eb18b23597371ce1 From f38abdbb542660f74df70a5c4acd3e3b00b85cd1 Mon Sep 17 00:00:00 2001 From: Furfx Date: Mon, 22 Jan 2018 18:38:48 +0100 Subject: [PATCH 13/34] Delete percentage.csproj.FileListAbsolute.txt --- .../obj/Debug/percentage.csproj.FileListAbsolute.txt | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 percentage/percentage/obj/Debug/percentage.csproj.FileListAbsolute.txt diff --git a/percentage/percentage/obj/Debug/percentage.csproj.FileListAbsolute.txt b/percentage/percentage/obj/Debug/percentage.csproj.FileListAbsolute.txt deleted file mode 100644 index 5dc851c..0000000 --- a/percentage/percentage/obj/Debug/percentage.csproj.FileListAbsolute.txt +++ /dev/null @@ -1,9 +0,0 @@ -C:\Users\Lucas\OneDrive\percentage-master\percentage\percentage\bin\Debug\percentage.exe.config -C:\Users\Lucas\OneDrive\percentage-master\percentage\percentage\bin\Debug\percentage.exe -C:\Users\Lucas\OneDrive\percentage-master\percentage\percentage\bin\Debug\percentage.pdb -C:\Users\Lucas\OneDrive\percentage-master\percentage\percentage\obj\Debug\percentage.csprojResolveAssemblyReference.cache -C:\Users\Lucas\OneDrive\percentage-master\percentage\percentage\obj\Debug\percentage.Properties.Resources.resources -C:\Users\Lucas\OneDrive\percentage-master\percentage\percentage\obj\Debug\percentage.csproj.GenerateResource.Cache -C:\Users\Lucas\OneDrive\percentage-master\percentage\percentage\obj\Debug\percentage.exe -C:\Users\Lucas\OneDrive\percentage-master\percentage\percentage\obj\Debug\percentage.pdb -C:\Users\Lucas\OneDrive\percentage-master\percentage\percentage\obj\Debug\percentage.csproj.CoreCompileInputs.cache From f2dc2c8611291be679aa2e2889384ef7cab131f2 Mon Sep 17 00:00:00 2001 From: Furfx Date: Mon, 22 Jan 2018 18:38:53 +0100 Subject: [PATCH 14/34] Delete percentage.csproj.GenerateResource.Cache --- .../percentage.csproj.GenerateResource.Cache | Bin 954 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 percentage/percentage/obj/Debug/percentage.csproj.GenerateResource.Cache diff --git a/percentage/percentage/obj/Debug/percentage.csproj.GenerateResource.Cache b/percentage/percentage/obj/Debug/percentage.csproj.GenerateResource.Cache deleted file mode 100644 index 58cdc4b5e5523f10eabddce82b1deacae7092db9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 954 zcma)4!D`z;5S1dyv1A9FLJ6fkm{Ll?M%bhwxtKy6(uO9G)*#cv)ujpU&AKDp_gpi1m5sX%&H~aR@KF{|&?=JC{*l_RqnhGUa6aIvw#d>`yE0DhrbmDrbcr_D`!!tNcBz&deOjNjBOpc8c9%JeE5n zu`MDdd)3VG5%4XP2e5=vLYXVTkifA8{B)=^;O5d;Co&DkDzn1U|E)|QeU)>Nj5tsh za%b$SKXbwXm-Y!T_=;ea(CRzLD+OWbd(WFsahsn9@<7-cW8;7mpE?O5UO%9j2hx?d zL6L?W;uW2Ic@tLOPYtbU)(tjJ*36LBcArA%5X#Hvu?WtKT zg$3JVim8!sYRxw#!M3?DqoIX#o7g%Rx&kE1z>A_zyNT=QdaoA^3XbmW|L4Qr8&;nr zwG2LB+@|ESAlAbGdR+rzTE+>b9z(ga)uHr+4!i{G$Pb^%LZ-4gU`npJ?A5ywB<@n` zaX&|o_uz=QJZ`qZeKQWIR2z{8-_bX&!>t?3tk`mcf>J3K@bpey3v?$&szQN$eCHor gDs Date: Mon, 22 Jan 2018 18:38:58 +0100 Subject: [PATCH 15/34] Delete percentage.csprojResolveAssemblyReference.cache --- ...rcentage.csprojResolveAssemblyReference.cache | Bin 2384 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 percentage/percentage/obj/Debug/percentage.csprojResolveAssemblyReference.cache diff --git a/percentage/percentage/obj/Debug/percentage.csprojResolveAssemblyReference.cache b/percentage/percentage/obj/Debug/percentage.csprojResolveAssemblyReference.cache deleted file mode 100644 index 5f6a07e8650b1d97b3526580c8fac7c341c1f75c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2384 zcmcJQYflqF6o!|UmUbyv?>E#%Q6Z2?YeCVZF!@P8h)5 z5Hx5~Ukf=gnopr2q8^nX%Q$F51h6f|Aqzkj@J5^cfN?V;mEWbj56W?}Stpm9EL`NZ zelphF1u?JxGyd-ntFNaqD)+L{;y6mqNEy#c=9|wO*>Ak+n2`1)jl8DGit^@&mROVczFjg# z-_kT%gB}-y2x6W1m5twCs(z9lv3M^r!n{uA|&QxruTM z9KXZOA7VE8FE!TDP_syki zT6TrhDz)lMcMRu<0iTB+*bwHxhCCa>9NEyU4Pg##=%Ec^j&10X4dEKt(3}n78rjfe f8^SfTp(i$kYivVLZ3t_?hURSuYs7{YENJpC;i0q) From f8afe51835f81c0bd78b1ec8544ceec71da3b75a Mon Sep 17 00:00:00 2001 From: Furfx Date: Mon, 22 Jan 2018 18:39:04 +0100 Subject: [PATCH 16/34] Delete percentage.exe --- percentage/percentage/obj/Debug/percentage.exe | Bin 9216 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 percentage/percentage/obj/Debug/percentage.exe diff --git a/percentage/percentage/obj/Debug/percentage.exe b/percentage/percentage/obj/Debug/percentage.exe deleted file mode 100644 index 85610b59a972c7a38df43479e7cc3405ccdfb36f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9216 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 J=zn|!{u2*@{L26U From 1c02b0db6d0919026e2b86cbbb9b72a3059b3498 Mon Sep 17 00:00:00 2001 From: Furfx Date: Mon, 22 Jan 2018 18:39:10 +0100 Subject: [PATCH 17/34] Delete percentage.pdb --- percentage/percentage/obj/Debug/percentage.pdb | Bin 19968 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 percentage/percentage/obj/Debug/percentage.pdb diff --git a/percentage/percentage/obj/Debug/percentage.pdb b/percentage/percentage/obj/Debug/percentage.pdb deleted file mode 100644 index add147239efa6baf4f0bb5086b3788263902bcb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19968 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 Date: Wed, 24 Jan 2018 10:36:34 +0100 Subject: [PATCH 18/34] Changed to cleartype and displaying green text when charging --- percentage/percentage/Program.cs | 1 + percentage/percentage/TrayIcon.cs | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/percentage/percentage/Program.cs b/percentage/percentage/Program.cs index 0e58ed0..0c5741e 100644 --- a/percentage/percentage/Program.cs +++ b/percentage/percentage/Program.cs @@ -11,6 +11,7 @@ static class Program [STAThread] static void Main() { + Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); diff --git a/percentage/percentage/TrayIcon.cs b/percentage/percentage/TrayIcon.cs index d3643c6..825f16c 100644 --- a/percentage/percentage/TrayIcon.cs +++ b/percentage/percentage/TrayIcon.cs @@ -47,8 +47,15 @@ private void timer_Tick(object sender, EventArgs e) { PowerStatus powerStatus = SystemInformation.PowerStatus; batteryPercentage = (powerStatus.BatteryLifePercent * 100).ToString(); + BatteryChargeStatus batteryChargeStatus = SystemInformation.PowerStatus.BatteryChargeStatus; - using (Bitmap bitmap = new Bitmap(DrawText(batteryPercentage, new Font(iconFont, iconFontSize), Color.White, Color.Black))) + Color fontColor; + if (batteryChargeStatus.HasFlag(BatteryChargeStatus.Charging)) + fontColor = Color.FromArgb(255, 0, 255, 0); + else + fontColor = Color.FromArgb(255, 255, 255, 255); + + using (Bitmap bitmap = new Bitmap(DrawText(batteryPercentage, new Font(iconFont, iconFontSize), fontColor, Color.FromArgb(0, 0, 0, 0)))) { System.IntPtr intPtr = bitmap.GetHicon(); try @@ -85,7 +92,7 @@ private Image DrawText(String text, Font font, Color textColor, Color backColor) // create a brush for the text using (Brush textBrush = new SolidBrush(textColor)) { - graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; + graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; graphics.DrawString(text, font, textBrush, 0, 0); graphics.Save(); } From a3c0c8fe62dc4a8b4ed12d5f508d796ae228b8d0 Mon Sep 17 00:00:00 2001 From: Lorenz Stangier Date: Wed, 24 Jan 2018 16:53:48 +0100 Subject: [PATCH 19/34] Remaining time now shown in tooltip --- percentage/percentage/TrayIcon.cs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/percentage/percentage/TrayIcon.cs b/percentage/percentage/TrayIcon.cs index 825f16c..d73c2bb 100644 --- a/percentage/percentage/TrayIcon.cs +++ b/percentage/percentage/TrayIcon.cs @@ -47,10 +47,10 @@ private void timer_Tick(object sender, EventArgs e) { PowerStatus powerStatus = SystemInformation.PowerStatus; batteryPercentage = (powerStatus.BatteryLifePercent * 100).ToString(); - BatteryChargeStatus batteryChargeStatus = SystemInformation.PowerStatus.BatteryChargeStatus; + bool charging = SystemInformation.PowerStatus.BatteryChargeStatus.HasFlag(BatteryChargeStatus.Charging); Color fontColor; - if (batteryChargeStatus.HasFlag(BatteryChargeStatus.Charging)) + if (charging) fontColor = Color.FromArgb(255, 0, 255, 0); else fontColor = Color.FromArgb(255, 255, 255, 255); @@ -62,8 +62,16 @@ private void timer_Tick(object sender, EventArgs e) { using (Icon icon = Icon.FromHandle(intPtr)) { - notifyIcon.Icon = icon; + notifyIcon.Icon = icon; notifyIcon.Text = batteryPercentage + "%"; + if (!charging) + { + int seconds = SystemInformation.PowerStatus.BatteryLifeRemaining; + int mins = seconds / 60; + int hours = mins / 60; + mins = mins % 60; + notifyIcon.Text += "\n" + " " + hours + ":" + mins + " remaining"; + } } } finally From 8b092ca0816db2da1f0f788c56629818473d3e9b Mon Sep 17 00:00:00 2001 From: Lorenz Stangier Date: Mon, 19 Feb 2018 09:41:45 +0100 Subject: [PATCH 20/34] Better charging behaviour --- percentage/percentage/TrayIcon.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/percentage/percentage/TrayIcon.cs b/percentage/percentage/TrayIcon.cs index d73c2bb..aa5dd8e 100644 --- a/percentage/percentage/TrayIcon.cs +++ b/percentage/percentage/TrayIcon.cs @@ -1,5 +1,7 @@ using System; +using System.Collections.Generic; using System.Drawing; +using System.Management; using System.Runtime.InteropServices; using System.Windows.Forms; @@ -51,10 +53,15 @@ private void timer_Tick(object sender, EventArgs e) Color fontColor; if (charging) + { fontColor = Color.FromArgb(255, 0, 255, 0); + } else + { fontColor = Color.FromArgb(255, 255, 255, 255); + } + using (Bitmap bitmap = new Bitmap(DrawText(batteryPercentage, new Font(iconFont, iconFontSize), fontColor, Color.FromArgb(0, 0, 0, 0)))) { System.IntPtr intPtr = bitmap.GetHicon(); @@ -72,6 +79,10 @@ private void timer_Tick(object sender, EventArgs e) mins = mins % 60; notifyIcon.Text += "\n" + " " + hours + ":" + mins + " remaining"; } + else + { + notifyIcon.Text = "Charging"; + } } } finally From 38902c46fcab22a0dac6f46a99cca007fb09da36 Mon Sep 17 00:00:00 2001 From: Chris Cunningham Date: Sun, 27 Oct 2019 08:17:27 +0100 Subject: [PATCH 21/34] Pull in updates (#2) add CI setup and resolve build failure by commenting certificate setup --- .github/workflows/main.yml | 17 +++++++++++++++++ percentage/percentage/percentage.csproj | 8 ++++---- 2 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..319e5c7 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,17 @@ +name: CI + +on: [push] + +jobs: + build: + runs-on: windows-latest + + steps: + - uses: actions/checkout@master + + - name: Setup MSBuild.exe + uses: warrenbuckley/Setup-MSBuild@v1 + + - name: MSBuild + working-directory: percentage + run: msbuild percentage.sln diff --git a/percentage/percentage/percentage.csproj b/percentage/percentage/percentage.csproj index 5711585..f5c5b7f 100644 --- a/percentage/percentage/percentage.csproj +++ b/percentage/percentage/percentage.csproj @@ -48,7 +48,7 @@ prompt 4 - + @@ -113,11 +113,11 @@ - - \ No newline at end of file + From 917a46495bfd61585ad78d1840bee55a37f66988 Mon Sep 17 00:00:00 2001 From: Chris Cunningham Date: Sun, 27 Oct 2019 08:38:40 +0100 Subject: [PATCH 22/34] Cszucko tooltip info (#6) * Show More Information in Icon and Tooltip Updated the icon to use green text while charging and red text when the battery level is critical. Updated the tooltip to show time remaining when on battery and information about the charge state when plugged in. * Show the Tooltip Text in the Context Menu Too This is useful on touchscreen devices where hovering isn't possible without a mouse / stylus. --- percentage/percentage/TrayIcon.cs | 77 +++++++++++++++++++++++++------ 1 file changed, 64 insertions(+), 13 deletions(-) diff --git a/percentage/percentage/TrayIcon.cs b/percentage/percentage/TrayIcon.cs index d89eb5b..e0dbe33 100644 --- a/percentage/percentage/TrayIcon.cs +++ b/percentage/percentage/TrayIcon.cs @@ -15,6 +15,7 @@ class TrayIcon private const int iconFontSize = 14; private string batteryPercentage; private NotifyIcon notifyIcon; + private MenuItem descriptionMenuItem; private int refreshInterval = 1000; // in miliseconds @@ -22,15 +23,19 @@ public TrayIcon() { ContextMenu contextMenu = new ContextMenu(); MenuItem menuItem = new MenuItem(); + descriptionMenuItem = new MenuItem(); notifyIcon = new NotifyIcon(); // initialize contextMenu - contextMenu.MenuItems.AddRange(new MenuItem[] { menuItem }); + contextMenu.MenuItems.AddRange(new MenuItem[] { descriptionMenuItem, menuItem }); + + // initialize descriptionMenuItem + descriptionMenuItem.Text = ""; + descriptionMenuItem.Enabled = false; // initialize menuItem - menuItem.Index = 0; - menuItem.Text = "Exit"; + menuItem.Text = "E&xit"; menuItem.Click += new System.EventHandler(menuItem_Click); notifyIcon.ContextMenu = contextMenu; batteryPercentage = "?"; @@ -45,6 +50,16 @@ public TrayIcon() private void timer_Tick(object sender, EventArgs e) { PowerStatus powerStatus = SystemInformation.PowerStatus; + bool fullyCharged = (powerStatus.BatteryLifePercent == 1.0); + + BatteryChargeStatus chargeStatus = SystemInformation.PowerStatus.BatteryChargeStatus; + bool charging = chargeStatus.HasFlag(BatteryChargeStatus.Charging); + bool critical = chargeStatus.HasFlag(BatteryChargeStatus.Critical); + bool noBattery = chargeStatus.HasFlag(BatteryChargeStatus.NoSystemBattery); + + PowerLineStatus powerLineStatus = SystemInformation.PowerStatus.PowerLineStatus; + bool pluggedIn = (powerLineStatus == PowerLineStatus.Online); + batteryPercentage = (powerStatus.BatteryLifePercent * 100).ToString(); bool charging = SystemInformation.PowerStatus.BatteryChargeStatus.HasFlag(BatteryChargeStatus.Charging); @@ -59,27 +74,63 @@ private void timer_Tick(object sender, EventArgs e) } - using (Bitmap bitmap = new Bitmap(DrawText(batteryPercentage, new Font(iconFont, iconFontSize), fontColor, Color.FromArgb(0, 0, 0, 0)))) + Color fontColor = Color.White; + if (!noBattery) + { + if (charging || (pluggedIn && fullyCharged)) + { + fontColor = Color.Lime; + } + else if (critical) + { + fontColor = Color.Red; + } + } + + using (Bitmap bitmap = new Bitmap(DrawText(batteryPercentage, new Font(iconFont, iconFontSize), fontColor, Color.Black))) { System.IntPtr intPtr = bitmap.GetHicon(); try { using (Icon icon = Icon.FromHandle(intPtr)) { - notifyIcon.Icon = icon; - notifyIcon.Text = batteryPercentage + "%"; - if (!charging) + string description = ""; + if (noBattery) { - int seconds = SystemInformation.PowerStatus.BatteryLifeRemaining; - int mins = seconds / 60; - int hours = mins / 60; - mins = mins % 60; - notifyIcon.Text += "\n" + " " + hours + ":" + mins + " remaining"; + description = "No Battery Detected"; + } + else if (pluggedIn) + { + if (charging) + { + description = string.Format("Charging ({0}%)", batteryPercentage); + } + else if (fullyCharged) + { + description = string.Format("Fully Charged ({0}%)", batteryPercentage); + } + else + { + description = string.Format("Not Charging ({0}%)", batteryPercentage); + } } else { - notifyIcon.Text = "Charging"; + int totalRemaining = SystemInformation.PowerStatus.BatteryLifeRemaining; + if (totalRemaining > 0) + { + TimeSpan timeSpan = TimeSpan.FromSeconds(totalRemaining); + description = string.Format("{1} hr {2:D2} min ({0}%) remaining", batteryPercentage, timeSpan.Hours, timeSpan.Minutes); + } + else + { + description = string.Format("{0}% remaining", batteryPercentage); + } } + notifyIcon.Icon = icon; + notifyIcon.Text = description; + + descriptionMenuItem.Text = description; } } finally From 02d71b5286c51528c45929264baaf3f108b41d5a Mon Sep 17 00:00:00 2001 From: Chris Cunningham Date: Sun, 27 Oct 2019 08:39:54 +0100 Subject: [PATCH 23/34] Revert "Cszucko tooltip info (#6)" (#7) This reverts commit 917a46495bfd61585ad78d1840bee55a37f66988. --- percentage/percentage/TrayIcon.cs | 77 ++++++------------------------- 1 file changed, 13 insertions(+), 64 deletions(-) diff --git a/percentage/percentage/TrayIcon.cs b/percentage/percentage/TrayIcon.cs index e0dbe33..d89eb5b 100644 --- a/percentage/percentage/TrayIcon.cs +++ b/percentage/percentage/TrayIcon.cs @@ -15,7 +15,6 @@ class TrayIcon private const int iconFontSize = 14; private string batteryPercentage; private NotifyIcon notifyIcon; - private MenuItem descriptionMenuItem; private int refreshInterval = 1000; // in miliseconds @@ -23,19 +22,15 @@ public TrayIcon() { ContextMenu contextMenu = new ContextMenu(); MenuItem menuItem = new MenuItem(); - descriptionMenuItem = new MenuItem(); notifyIcon = new NotifyIcon(); // initialize contextMenu - contextMenu.MenuItems.AddRange(new MenuItem[] { descriptionMenuItem, menuItem }); - - // initialize descriptionMenuItem - descriptionMenuItem.Text = ""; - descriptionMenuItem.Enabled = false; + contextMenu.MenuItems.AddRange(new MenuItem[] { menuItem }); // initialize menuItem - menuItem.Text = "E&xit"; + menuItem.Index = 0; + menuItem.Text = "Exit"; menuItem.Click += new System.EventHandler(menuItem_Click); notifyIcon.ContextMenu = contextMenu; batteryPercentage = "?"; @@ -50,16 +45,6 @@ public TrayIcon() private void timer_Tick(object sender, EventArgs e) { PowerStatus powerStatus = SystemInformation.PowerStatus; - bool fullyCharged = (powerStatus.BatteryLifePercent == 1.0); - - BatteryChargeStatus chargeStatus = SystemInformation.PowerStatus.BatteryChargeStatus; - bool charging = chargeStatus.HasFlag(BatteryChargeStatus.Charging); - bool critical = chargeStatus.HasFlag(BatteryChargeStatus.Critical); - bool noBattery = chargeStatus.HasFlag(BatteryChargeStatus.NoSystemBattery); - - PowerLineStatus powerLineStatus = SystemInformation.PowerStatus.PowerLineStatus; - bool pluggedIn = (powerLineStatus == PowerLineStatus.Online); - batteryPercentage = (powerStatus.BatteryLifePercent * 100).ToString(); bool charging = SystemInformation.PowerStatus.BatteryChargeStatus.HasFlag(BatteryChargeStatus.Charging); @@ -74,63 +59,27 @@ private void timer_Tick(object sender, EventArgs e) } - Color fontColor = Color.White; - if (!noBattery) - { - if (charging || (pluggedIn && fullyCharged)) - { - fontColor = Color.Lime; - } - else if (critical) - { - fontColor = Color.Red; - } - } - - using (Bitmap bitmap = new Bitmap(DrawText(batteryPercentage, new Font(iconFont, iconFontSize), fontColor, Color.Black))) + using (Bitmap bitmap = new Bitmap(DrawText(batteryPercentage, new Font(iconFont, iconFontSize), fontColor, Color.FromArgb(0, 0, 0, 0)))) { System.IntPtr intPtr = bitmap.GetHicon(); try { using (Icon icon = Icon.FromHandle(intPtr)) { - string description = ""; - if (noBattery) - { - description = "No Battery Detected"; - } - else if (pluggedIn) + notifyIcon.Icon = icon; + notifyIcon.Text = batteryPercentage + "%"; + if (!charging) { - if (charging) - { - description = string.Format("Charging ({0}%)", batteryPercentage); - } - else if (fullyCharged) - { - description = string.Format("Fully Charged ({0}%)", batteryPercentage); - } - else - { - description = string.Format("Not Charging ({0}%)", batteryPercentage); - } + int seconds = SystemInformation.PowerStatus.BatteryLifeRemaining; + int mins = seconds / 60; + int hours = mins / 60; + mins = mins % 60; + notifyIcon.Text += "\n" + " " + hours + ":" + mins + " remaining"; } else { - int totalRemaining = SystemInformation.PowerStatus.BatteryLifeRemaining; - if (totalRemaining > 0) - { - TimeSpan timeSpan = TimeSpan.FromSeconds(totalRemaining); - description = string.Format("{1} hr {2:D2} min ({0}%) remaining", batteryPercentage, timeSpan.Hours, timeSpan.Minutes); - } - else - { - description = string.Format("{0}% remaining", batteryPercentage); - } + notifyIcon.Text = "Charging"; } - notifyIcon.Icon = icon; - notifyIcon.Text = description; - - descriptionMenuItem.Text = description; } } finally From 05db90754e8f6974109f21c69fffeef33472162a Mon Sep 17 00:00:00 2001 From: Chris Cunningham Date: Sun, 27 Oct 2019 08:45:47 +0100 Subject: [PATCH 24/34] Cszucko tooltip info (#8) * Show More Information in Icon and Tooltip Updated the icon to use green text while charging and red text when the battery level is critical. Updated the tooltip to show time remaining when on battery and information about the charge state when plugged in. * Show the Tooltip Text in the Context Menu Too This is useful on touchscreen devices where hovering isn't possible without a mouse / stylus. * fix errors and make bg transparent again --- percentage/percentage/TrayIcon.cs | 77 +++++++++++++++++++++++++------ 1 file changed, 63 insertions(+), 14 deletions(-) diff --git a/percentage/percentage/TrayIcon.cs b/percentage/percentage/TrayIcon.cs index d89eb5b..6e9faf4 100644 --- a/percentage/percentage/TrayIcon.cs +++ b/percentage/percentage/TrayIcon.cs @@ -15,6 +15,7 @@ class TrayIcon private const int iconFontSize = 14; private string batteryPercentage; private NotifyIcon notifyIcon; + private MenuItem descriptionMenuItem; private int refreshInterval = 1000; // in miliseconds @@ -22,15 +23,19 @@ public TrayIcon() { ContextMenu contextMenu = new ContextMenu(); MenuItem menuItem = new MenuItem(); + descriptionMenuItem = new MenuItem(); notifyIcon = new NotifyIcon(); // initialize contextMenu - contextMenu.MenuItems.AddRange(new MenuItem[] { menuItem }); + contextMenu.MenuItems.AddRange(new MenuItem[] { descriptionMenuItem, menuItem }); + + // initialize descriptionMenuItem + descriptionMenuItem.Text = ""; + descriptionMenuItem.Enabled = false; // initialize menuItem - menuItem.Index = 0; - menuItem.Text = "Exit"; + menuItem.Text = "E&xit"; menuItem.Click += new System.EventHandler(menuItem_Click); notifyIcon.ContextMenu = contextMenu; batteryPercentage = "?"; @@ -45,8 +50,17 @@ public TrayIcon() private void timer_Tick(object sender, EventArgs e) { PowerStatus powerStatus = SystemInformation.PowerStatus; + bool fullyCharged = (powerStatus.BatteryLifePercent == 1.0); + + BatteryChargeStatus chargeStatus = SystemInformation.PowerStatus.BatteryChargeStatus; + bool charging = chargeStatus.HasFlag(BatteryChargeStatus.Charging); + bool critical = chargeStatus.HasFlag(BatteryChargeStatus.Critical); + bool noBattery = chargeStatus.HasFlag(BatteryChargeStatus.NoSystemBattery); + + PowerLineStatus powerLineStatus = SystemInformation.PowerStatus.PowerLineStatus; + bool pluggedIn = (powerLineStatus == PowerLineStatus.Online); + batteryPercentage = (powerStatus.BatteryLifePercent * 100).ToString(); - bool charging = SystemInformation.PowerStatus.BatteryChargeStatus.HasFlag(BatteryChargeStatus.Charging); Color fontColor; if (charging) @@ -59,27 +73,62 @@ private void timer_Tick(object sender, EventArgs e) } - using (Bitmap bitmap = new Bitmap(DrawText(batteryPercentage, new Font(iconFont, iconFontSize), fontColor, Color.FromArgb(0, 0, 0, 0)))) + if (!noBattery) + { + if (charging || (pluggedIn && fullyCharged)) + { + fontColor = Color.Lime; + } + else if (critical) + { + fontColor = Color.Red; + } + } + + using (Bitmap bitmap = new Bitmap(DrawText(batteryPercentage, new Font(iconFont, iconFontSize), fontColor, Color.Transparent))) { System.IntPtr intPtr = bitmap.GetHicon(); try { using (Icon icon = Icon.FromHandle(intPtr)) { - notifyIcon.Icon = icon; - notifyIcon.Text = batteryPercentage + "%"; - if (!charging) + string description = ""; + if (noBattery) { - int seconds = SystemInformation.PowerStatus.BatteryLifeRemaining; - int mins = seconds / 60; - int hours = mins / 60; - mins = mins % 60; - notifyIcon.Text += "\n" + " " + hours + ":" + mins + " remaining"; + description = "No Battery Detected"; + } + else if (pluggedIn) + { + if (charging) + { + description = string.Format("Charging ({0}%)", batteryPercentage); + } + else if (fullyCharged) + { + description = string.Format("Fully Charged ({0}%)", batteryPercentage); + } + else + { + description = string.Format("Not Charging ({0}%)", batteryPercentage); + } } else { - notifyIcon.Text = "Charging"; + int totalRemaining = SystemInformation.PowerStatus.BatteryLifeRemaining; + if (totalRemaining > 0) + { + TimeSpan timeSpan = TimeSpan.FromSeconds(totalRemaining); + description = string.Format("{1} hr {2:D2} min ({0}%) remaining", batteryPercentage, timeSpan.Hours, timeSpan.Minutes); + } + else + { + description = string.Format("{0}% remaining", batteryPercentage); + } } + notifyIcon.Icon = icon; + notifyIcon.Text = description; + + descriptionMenuItem.Text = description; } } finally From 99b9de03de0a84c1abe277559ef475edbdf8ae66 Mon Sep 17 00:00:00 2001 From: Chris Cunningham Date: Sun, 27 Oct 2019 09:00:15 +0100 Subject: [PATCH 25/34] Add Github Action for continuous integration, and compiling notes --- .github/workflows/main.yml | 17 +++++++++++++++++ README.md | 15 +++++++++++---- 2 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..319e5c7 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,17 @@ +name: CI + +on: [push] + +jobs: + build: + runs-on: windows-latest + + steps: + - uses: actions/checkout@master + + - name: Setup MSBuild.exe + uses: warrenbuckley/Setup-MSBuild@v1 + + - name: MSBuild + working-directory: percentage + run: msbuild percentage.sln diff --git a/README.md b/README.md index 052ff72..4363e71 100644 --- a/README.md +++ b/README.md @@ -6,13 +6,20 @@ See your battery percentage in the Windows 10 system tray ## Installing -* [Download the latest release](https://github.com/kas/percentage/releases) -* Put `percentage.exe` in your startup folder - * To get to your startup folder, press `Windows+R`, type `shell:startup`, and press enter +- [Download the latest release](https://github.com/kas/percentage/releases) +- Put `percentage.exe` in your startup folder (to get to your startup folder, + press `Windows+R`, type `shell:startup`, and press enter) ## Compiling -This project was compiled with Visual Studio Professional 2015. +This project was compiled with Visual Studio Professional 2015. To compile +using a Docker image with this pre-installed, first install Docker Desktop and +configure it to run Windows containers, then change to the root directory of +the repository and run the following: + +```powershell +docker run -v "$(pwd)\:C:\Build\" nugardt/msbuild:15.5 msbuild C:\Build\percentage\percentage.sln /property:Configuration=Release +``` ## Contributing From 244f08271cdd85fea740a607612245feaca97a8d Mon Sep 17 00:00:00 2001 From: Chris Cunningham Date: Sun, 27 Oct 2019 09:02:18 +0100 Subject: [PATCH 26/34] remove signing from csproj so CI works --- percentage/percentage/percentage.csproj | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/percentage/percentage/percentage.csproj b/percentage/percentage/percentage.csproj index 5711585..7f833a3 100644 --- a/percentage/percentage/percentage.csproj +++ b/percentage/percentage/percentage.csproj @@ -48,18 +48,6 @@ prompt 4 - - 5EAFB344C4489CCD86726031EE568ACE22CF26C4 - - - percentage_TemporaryKey.pfx - - - true - - - true - @@ -113,11 +101,11 @@ - - \ No newline at end of file + From 303ada2c58848f5975cddcefeead4389a3b3ca54 Mon Sep 17 00:00:00 2001 From: Chris Cunningham Date: Sun, 27 Oct 2019 09:31:32 +0100 Subject: [PATCH 27/34] add artifact upload to CI (#9) add artifact upload to CI --- .github/workflows/main.yml | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 319e5c7..b2108b5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -5,13 +5,19 @@ on: [push] jobs: build: runs-on: windows-latest - steps: - - uses: actions/checkout@master + - name: Checkout + uses: actions/checkout@master + + - name: Setup MSBuild.exe + uses: warrenbuckley/Setup-MSBuild@v1 - - name: Setup MSBuild.exe - uses: warrenbuckley/Setup-MSBuild@v1 + - name: MSBuild + working-directory: percentage + run: msbuild percentage.sln /property:Configuration=Release - - name: MSBuild - working-directory: percentage - run: msbuild percentage.sln + - name: Artifact upload + uses: actions/upload-artifact@master + with: + name: percentage + path: percentage\percentage\bin\Release\percentage.exe From 672e98e67e6690291449a9641c5a172ba9878396 Mon Sep 17 00:00:00 2001 From: Chris Cunningham Date: Sun, 12 Apr 2020 12:39:30 +0200 Subject: [PATCH 28/34] add CI status badge --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 44f148e..0a07c8f 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +![CI](https://github.com/thumperward/percentage/workflows/CI/badge.svg) + # percentage ## Original project by kas From ee13327bcb106df878e43a7aa561785ea07f78ee Mon Sep 17 00:00:00 2001 From: thumperward Date: Fri, 20 Aug 2021 14:12:47 +0000 Subject: [PATCH 29/34] add devcontainer and markdown config --- .devcontainer/Dockerfile | 36 +++++++++++++++++++++ .devcontainer/devcontainer.json | 55 +++++++++++++++++++++++++++++++++ .markdownlint.yaml | 16 ++++++++++ README.md | 35 +++++++++++++-------- 4 files changed, 129 insertions(+), 13 deletions(-) create mode 100644 .devcontainer/Dockerfile create mode 100644 .devcontainer/devcontainer.json create mode 100644 .markdownlint.yaml diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000..f97ce79 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,36 @@ +# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.191.1/containers/dotnet/.devcontainer/base.Dockerfile + +# [Choice] .NET version: 5.0, 3.1, 2.1 +# ARG VARIANT="5.0" +# FROM mcr.microsoft.com/vscode/devcontainers/dotnet:0-${VARIANT} +FROM mono + +# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10 +# ARG NODE_VERSION="none" +# RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi + +# [Option] Install Azure CLI +# ARG INSTALL_AZURE_CLI="false" +# COPY library-scripts/*.sh library-scripts/*.env /tmp/library-scripts/ +# RUN if [ "$INSTALL_AZURE_CLI" = "true" ]; then bash /tmp/library-scripts/azcli-debian.sh; fi \ +# && apt-get clean -y && rm -rf /var/lib/apt/lists/* /tmp/library-scripts + +# [Optional] Uncomment this section to install additional OS packages. +RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ + && apt-get -y install --no-install-recommends \ + git \ + sudo \ + bash + +# [Optional] Uncomment this line to install global node packages. +# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g " 2>&1 + +ARG USERNAME=vscode +ARG USER_UID=1000 +ARG USER_GID=$USER_UID + +# Create the user +RUN groupadd --gid $USER_GID $USERNAME \ + && useradd --uid $USER_UID --gid $USER_GID -m $USERNAME -s /bin/bash \ + && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \ + && chmod 0440 /etc/sudoers.d/$USERNAME diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..1d9c4ec --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,55 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: +// https://github.com/microsoft/vscode-dev-containers/tree/v0.191.1/containers/dotnet +{ + "name": "C# (.NET)", + "build": { + "dockerfile": "Dockerfile", + "args": { + // Update 'VARIANT' to pick a .NET Core version: 2.1, 3.1, 5.0 + "VARIANT": "5.0", + // Options + "NODE_VERSION": "none", + "INSTALL_AZURE_CLI": "false" + } + }, + + // Set *default* container specific settings.json values on container create. + "settings": {}, + + // Add the IDs of extensions you want installed when the container is created. + "extensions": [ + "ms-dotnettools.csharp" + ], + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [5000, 5001], + + // [Optional] To reuse of your local HTTPS dev cert: + // + // 1. Export it locally using this command: + // * Windows PowerShell: + // dotnet dev-certs https --trust; dotnet dev-certs https -ep "$env:USERPROFILE/.aspnet/https/aspnetapp.pfx" -p "SecurePwdGoesHere" + // * macOS/Linux terminal: + // dotnet dev-certs https --trust; dotnet dev-certs https -ep "${HOME}/.aspnet/https/aspnetapp.pfx" -p "SecurePwdGoesHere" + // + // 2. Uncomment these 'remoteEnv' lines: + // "remoteEnv": { + // "ASPNETCORE_Kestrel__Certificates__Default__Password": "SecurePwdGoesHere", + // "ASPNETCORE_Kestrel__Certificates__Default__Path": "/home/vscode/.aspnet/https/aspnetapp.pfx", + // }, + // + // 3. Do one of the following depending on your scenario: + // * When using GitHub Codespaces and/or Remote - Containers: + // 1. Start the container + // 2. Drag ~/.aspnet/https/aspnetapp.pfx into the root of the file explorer + // 3. Open a terminal in VS Code and run "mkdir -p /home/vscode/.aspnet/https && mv aspnetapp.pfx /home/vscode/.aspnet/https" + // + // * If only using Remote - Containers with a local container, uncomment this line instead: + // "mounts": [ "source=${env:HOME}${env:USERPROFILE}/.aspnet/https,target=/home/vscode/.aspnet/https,type=bind" ], + + // Use 'postCreateCommand' to run commands after the container is created. + // "postCreateCommand": "dotnet restore", + + // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. + "remoteUser": "vscode" +} diff --git a/.markdownlint.yaml b/.markdownlint.yaml new file mode 100644 index 0000000..491bda1 --- /dev/null +++ b/.markdownlint.yaml @@ -0,0 +1,16 @@ +--- +MD007: + indent: 4 +MD013: + line_length: 80 + tables: false + code_blocks: false +MD030: + ul_single: 3 + ol_single: 2 + ul_multi: 3 + ol_multi: 2 +MD033: + allowed_elements: + - pre + - br diff --git a/README.md b/README.md index 0a07c8f..cdfb220 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,40 @@ -![CI](https://github.com/thumperward/percentage/workflows/CI/badge.svg) - # percentage -## Original project by kas -https://github.com/kas/percentage +![CI](https://github.com/thumperward/percentage/workflows/CI/badge.svg) -![](https://raw.githubusercontent.com/kas/percentage/master/percentage.png) +![Screenshot](percentage.png) -See your battery percentage in the Windows 10 system tray +See your battery percentage in the Windows 10 system tray. + +Original project by [kas](https://github.com/kas/percentage). ## Installing -- [Download the latest release](https://github.com/kas/percentage/releases) +- [Download the latest release](https://github.com/thumperward/percentage/releases). - Put `percentage.exe` in your startup folder (to get to your startup folder, - press `Windows+R`, type `shell:startup`, and press enter) + press `Windows + R`, type `shell:startup`, and press enter). ## Compiling -This project was compiled with Visual Studio Professional 2015. To compile -using a Docker image with this pre-installed, first install Docker Desktop and -configure it to run Windows containers, then change to the root directory of -the repository and run the following: +This project was compiled with Visual Studio Professional 2015. + +To compile using a Windows Docker image with this pre-installed, first install +Docker Desktop and configure it to run Windows containers, then change to the +root directory of the repository and run the following: ```powershell docker run -v "$(pwd)\:C:\Build\" nugardt/msbuild:15.5 msbuild C:\Build\percentage\percentage.sln /property:Configuration=Release ``` +Alternatively, simply open the project in the provided devcontainer and run: + +```sh +msbuild percentage/percentage.sln -p:Configuration=Release +``` + +The output binary is in `percentage/percentage/bin/release`. + ## Contributing -I created this project with a very basic understanding of developing C# desktop applications and contributions are extremely welcome! +I created this project with a very basic understanding of developing C# desktop +applications and contributions are extremely welcome! From ac7ac4f68a4e4d960ab6c91ce8cdfaa9c7854eec Mon Sep 17 00:00:00 2001 From: thumperward Date: Fri, 20 Aug 2021 14:13:59 +0000 Subject: [PATCH 30/34] add ssh to devcontainer --- .devcontainer/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index f97ce79..d26840a 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -18,6 +18,7 @@ FROM mono # [Optional] Uncomment this section to install additional OS packages. RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ && apt-get -y install --no-install-recommends \ + ssh \ git \ sudo \ bash From c1eea29bda9522bc200de0c843a222d26060e028 Mon Sep 17 00:00:00 2001 From: thumperward Date: Fri, 20 Aug 2021 14:24:08 +0000 Subject: [PATCH 31/34] fix windows github action --- .github/workflows/main.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b2108b5..18a0ec0 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -3,19 +3,16 @@ name: CI on: [push] jobs: - build: + windows-build: runs-on: windows-latest steps: - name: Checkout uses: actions/checkout@master - - name: Setup MSBuild.exe - uses: warrenbuckley/Setup-MSBuild@v1 - + uses: microsoft/setup-msbuild@v1.0.2 - name: MSBuild working-directory: percentage run: msbuild percentage.sln /property:Configuration=Release - - name: Artifact upload uses: actions/upload-artifact@master with: From f96f3624c0f844f791a71d893a8d0e19b8aa63c3 Mon Sep 17 00:00:00 2001 From: Chris Cunningham Date: Sat, 21 Aug 2021 12:44:58 +0100 Subject: [PATCH 32/34] Add mono action (#10) This adds a Linux build using Mono, using the upstream container. --- .devcontainer/Dockerfile | 9 ++++----- .devcontainer/devcontainer.json | 3 ++- .github/workflows/main.yml | 27 ++++++++++++++++++++++----- 3 files changed, 28 insertions(+), 11 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index d26840a..22b17f3 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -20,8 +20,7 @@ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ && apt-get -y install --no-install-recommends \ ssh \ git \ - sudo \ - bash + sudo # [Optional] Uncomment this line to install global node packages. # RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g " 2>&1 @@ -32,6 +31,6 @@ ARG USER_GID=$USER_UID # Create the user RUN groupadd --gid $USER_GID $USERNAME \ - && useradd --uid $USER_UID --gid $USER_GID -m $USERNAME -s /bin/bash \ - && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \ - && chmod 0440 /etc/sudoers.d/$USERNAME + && useradd --uid $USER_UID --gid $USER_GID -m $USERNAME -s /bin/bash \ + && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \ + && chmod 0440 /etc/sudoers.d/$USERNAME diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 1d9c4ec..6199eb6 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -18,7 +18,8 @@ // Add the IDs of extensions you want installed when the container is created. "extensions": [ - "ms-dotnettools.csharp" + "ms-dotnettools.csharp", + "redhat.vscode-yaml" ], // Use 'forwardPorts' to make a list of ports inside the container available locally. diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 18a0ec0..a6682a7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,8 +13,25 @@ jobs: - name: MSBuild working-directory: percentage run: msbuild percentage.sln /property:Configuration=Release - - name: Artifact upload - uses: actions/upload-artifact@master - with: - name: percentage - path: percentage\percentage\bin\Release\percentage.exe + # - name: Artifact upload + # uses: actions/upload-artifact@master + # with: + # name: percentage + # path: percentage\percentage\bin\Release\percentage.exe + linux-build: + runs-on: ubuntu-latest + container: + image: mono + steps: + - name: Prerequisites + run: apt update && apt install -y --no-install-recommends ssh git + - name: Checkout + uses: actions/checkout@master + - name: MSBuild + working-directory: percentage + run: msbuild percentage.sln -p:Configuration=Release + # - name: Artifact upload + # uses: actions/upload-artifact@master + # with: + # name: percentage + # path: percentage\percentage\bin\Release\percentage.exe From 11c0cacbfabfebac49edeb93d5019d428a181e77 Mon Sep 17 00:00:00 2001 From: thumperward Date: Sat, 21 Aug 2021 12:25:43 +0000 Subject: [PATCH 33/34] add vscode devcontainer, github action, update readme, fix manifests --- README.md | 35 ++++++++++++++++++------- percentage/percentage/percentage.csproj | 2 +- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 8edcc97..93eeb71 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,16 @@ # percentage -![](https://raw.githubusercontent.com/kas/percentage/master/percentage.png) +![CI](https://github.com/kas/percentage/workflows/CI/badge.svg) -See your battery percentage in the Windows 10 system tray +![Screenshot](percentage.png) + +See your battery percentage in the Windows 10 system tray. ## Installing -1. [Download the latest release](https://github.com/kas/percentage/releases) -1. Put percentage.exe in your startup folder - 1. To get to your startup folder, press Windows+R, type "shell:startup", then press enter +- [Download the latest release](https://github.com/kas/percentage/releases). +- Put `percentage.exe` in your startup folder (to get to your startup folder, + press `Windows + R`, type `shell:startup`, and press enter). ## Compiling @@ -16,11 +18,24 @@ This project was compiled with Visual Studio Community 2019. Select ".NET desktop development" when setting up Visual Studio. -To build the project -1. Open the percentage/percentage.sln file with Visual Studio -1. Click "Build > Build Solution" -1. percentage.exe can be found at percentage\percentage\percentage\bin\Debug\percentage.exe +To compile using a Windows Docker image with this pre-installed, first install +Docker Desktop and configure it to run Windows containers, then change to the +root directory of the repository and run the following: + +```powershell +docker run -v "$(pwd)\:C:\Build\" nugardt/msbuild:15.5 msbuild \ + C:\Build\percentage\percentage.sln /property:Configuration=Release +``` + +Alternatively, simply open the project in the provided devcontainer and run: + +```sh +msbuild percentage/percentage.sln -p:Configuration=Release +``` + +The output binary is in `percentage/percentage/bin/release`. ## Contributions -My goal for this project is to keep it as simple as possible. I welcome suggestions, but for complicated features I'd recommend forking the project. +My goal for this project is to keep it as simple as possible. I welcome +suggestions, but for complicated features I'd recommend forking the project. diff --git a/percentage/percentage/percentage.csproj b/percentage/percentage/percentage.csproj index 04f99f4..3e4e228 100644 --- a/percentage/percentage/percentage.csproj +++ b/percentage/percentage/percentage.csproj @@ -55,7 +55,7 @@ percentage_TemporaryKey.pfx - true + false false From b4653ab7dc1c35bc204fa0786ced20eca1febe24 Mon Sep 17 00:00:00 2001 From: thumperward Date: Sat, 21 Aug 2021 12:31:24 +0000 Subject: [PATCH 34/34] rm commented old content from devcontainer setup --- .devcontainer/Dockerfile | 24 ++-------------- .devcontainer/devcontainer.json | 51 ++------------------------------- 2 files changed, 5 insertions(+), 70 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 22b17f3..0f3c990 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,35 +1,15 @@ -# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.191.1/containers/dotnet/.devcontainer/base.Dockerfile - -# [Choice] .NET version: 5.0, 3.1, 2.1 -# ARG VARIANT="5.0" -# FROM mcr.microsoft.com/vscode/devcontainers/dotnet:0-${VARIANT} FROM mono - -# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10 -# ARG NODE_VERSION="none" -# RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi - -# [Option] Install Azure CLI -# ARG INSTALL_AZURE_CLI="false" -# COPY library-scripts/*.sh library-scripts/*.env /tmp/library-scripts/ -# RUN if [ "$INSTALL_AZURE_CLI" = "true" ]; then bash /tmp/library-scripts/azcli-debian.sh; fi \ -# && apt-get clean -y && rm -rf /var/lib/apt/lists/* /tmp/library-scripts - -# [Optional] Uncomment this section to install additional OS packages. +# Install additional OS packages. RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ && apt-get -y install --no-install-recommends \ ssh \ git \ sudo -# [Optional] Uncomment this line to install global node packages. -# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g " 2>&1 - +# Add the vscode user. ARG USERNAME=vscode ARG USER_UID=1000 ARG USER_GID=$USER_UID - -# Create the user RUN groupadd --gid $USER_GID $USERNAME \ && useradd --uid $USER_UID --gid $USER_GID -m $USERNAME -s /bin/bash \ && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \ diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 6199eb6..4356da7 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,56 +1,11 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: -// https://github.com/microsoft/vscode-dev-containers/tree/v0.191.1/containers/dotnet { - "name": "C# (.NET)", + "name": "Mono (.NET)", "build": { - "dockerfile": "Dockerfile", - "args": { - // Update 'VARIANT' to pick a .NET Core version: 2.1, 3.1, 5.0 - "VARIANT": "5.0", - // Options - "NODE_VERSION": "none", - "INSTALL_AZURE_CLI": "false" - } + "dockerfile": "Dockerfile" }, - - // Set *default* container specific settings.json values on container create. - "settings": {}, - - // Add the IDs of extensions you want installed when the container is created. "extensions": [ "ms-dotnettools.csharp", "redhat.vscode-yaml" ], - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [5000, 5001], - - // [Optional] To reuse of your local HTTPS dev cert: - // - // 1. Export it locally using this command: - // * Windows PowerShell: - // dotnet dev-certs https --trust; dotnet dev-certs https -ep "$env:USERPROFILE/.aspnet/https/aspnetapp.pfx" -p "SecurePwdGoesHere" - // * macOS/Linux terminal: - // dotnet dev-certs https --trust; dotnet dev-certs https -ep "${HOME}/.aspnet/https/aspnetapp.pfx" -p "SecurePwdGoesHere" - // - // 2. Uncomment these 'remoteEnv' lines: - // "remoteEnv": { - // "ASPNETCORE_Kestrel__Certificates__Default__Password": "SecurePwdGoesHere", - // "ASPNETCORE_Kestrel__Certificates__Default__Path": "/home/vscode/.aspnet/https/aspnetapp.pfx", - // }, - // - // 3. Do one of the following depending on your scenario: - // * When using GitHub Codespaces and/or Remote - Containers: - // 1. Start the container - // 2. Drag ~/.aspnet/https/aspnetapp.pfx into the root of the file explorer - // 3. Open a terminal in VS Code and run "mkdir -p /home/vscode/.aspnet/https && mv aspnetapp.pfx /home/vscode/.aspnet/https" - // - // * If only using Remote - Containers with a local container, uncomment this line instead: - // "mounts": [ "source=${env:HOME}${env:USERPROFILE}/.aspnet/https,target=/home/vscode/.aspnet/https,type=bind" ], - - // Use 'postCreateCommand' to run commands after the container is created. - // "postCreateCommand": "dotnet restore", - - // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. "remoteUser": "vscode" -} +} \ No newline at end of file