Skip to content

Commit e4d5696

Browse files
committed
initial commit
Signed-off-by: James Knight <git@jdknight.me>
0 parents  commit e4d5696

File tree

14 files changed

+376
-0
lines changed

14 files changed

+376
-0
lines changed

.github/workflows/build.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Build
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- '.github/workflows/build.yml'
9+
- 'scripts/**'
10+
- 'src/**'
11+
- 'CMakeLists.txt'
12+
- '*.cmake'
13+
pull_request:
14+
branches:
15+
- main
16+
paths:
17+
- '.github/workflows/build.yml'
18+
- 'scripts/**'
19+
- 'src/**'
20+
- 'CMakeLists.txt'
21+
- '*.cmake'
22+
workflow_dispatch:
23+
24+
jobs:
25+
build:
26+
runs-on: windows-latest
27+
steps:
28+
- uses: actions/checkout@v4
29+
- run: |
30+
mkdir output
31+
cd output
32+
cmake .. -A x64
33+
cmake --build .

.github/workflows/release.yml

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
name: Release
2+
permissions: read-all
3+
4+
on:
5+
push:
6+
tags:
7+
- 'v*'
8+
9+
jobs:
10+
build:
11+
name: Build Release
12+
runs-on: windows-latest
13+
steps:
14+
- name: Checkout sources
15+
uses: actions/checkout@v4
16+
17+
- name: Build release
18+
run: |
19+
mkdir output
20+
cd output
21+
cmake .. -A x64 -DCMAKE_INSTALL_PREFIX=staging
22+
cmake --build . --config Release --target install
23+
24+
- name: Create archive
25+
run: |
26+
cd output/staging
27+
Compress-Archive -Path * -Destination w11asi-portable.zip
28+
29+
- name: Generate hashes
30+
run: |
31+
cd output/staging
32+
sha256sum -b w11asi-portable.zip >SHA256SUMS
33+
cat SHA256SUMS
34+
35+
- name: Store release artifacts
36+
uses: actions/upload-artifact@v4
37+
with:
38+
name: release-artifacts
39+
path: |
40+
output/staging/SHA256SUMS
41+
output/staging/w11asi-portable.zip
42+
43+
draft-release:
44+
name: Prepare GitHub Draft Release
45+
runs-on: ubuntu-latest
46+
environment: release
47+
needs:
48+
- build
49+
permissions:
50+
contents: write
51+
steps:
52+
- name: Checkout sources
53+
uses: actions/checkout@v4
54+
55+
- name: Acquire release artifacts
56+
uses: actions/download-artifact@v4
57+
with:
58+
name: release-artifacts
59+
path: artifacts/
60+
61+
- name: Prepare GitHub Release
62+
env:
63+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
64+
run:
65+
gh release create --draft --verify-tag
66+
'${{ github.ref_name }}' artifacts/**

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# ignore cmake output directories
2+
/out*/

CMakeLists.txt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Copyright jdknight
2+
3+
cmake_minimum_required(VERSION 3.11)
4+
project(w11asi)
5+
6+
set(BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
7+
set(INC_DIR ${BASE_DIR}/src)
8+
set(SRC_DIR ${BASE_DIR}/src/w11asi)
9+
set(SCRIPTS_DIR ${BASE_DIR}/scripts)
10+
include(${BASE_DIR}/support.cmake)
11+
12+
include(${BASE_DIR}/sources.cmake)
13+
include_directories(${INC_DIR})
14+
15+
add_executable(w11asi WIN32 ${W11ASI_SRCS})
16+
install(TARGETS w11asi RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX})
17+
install(FILES ${W11ASI_SCRIPTS} DESTINATION ${CMAKE_INSTALL_PREFIX})

LICENSE

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
Copyright jdknight
2+
3+
Redistribution and use in source and binary forms, with or without modification,
4+
are permitted provided that the following conditions are met:
5+
6+
1. Redistributions of source code must retain the above copyright notice, this
7+
list of conditions and the following disclaimer.
8+
9+
2. Redistributions in binary form must reproduce the above copyright notice,
10+
this list of conditions and the following disclaimer in the documentation
11+
and/or other materials provided with the distribution.
12+
13+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
14+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
16+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
17+
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
18+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
19+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20+
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
22+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

README.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# W11ASI
2+
3+
[![Build Status](https://github.com/jdknight/w11asi/actions/workflows/build.yml/badge.svg)](https://github.com/jdknight/w11asi/actions/workflows/build.yml)
4+
5+
## Overview
6+
7+
Provides the ability in Windows 11 to help force the promotion of all system
8+
icons in the system tray.
9+
10+
This application was created with the goal of supporting the removed
11+
functionality of Window's "Always show all icons in the notification area".
12+
When this utility is run, it will first ensure all known system icon entries
13+
are visible. Afterwards, it will monitor for changes to the system tray (such
14+
as new/updated applications) and ensure they remain visible.
15+
16+
## Install
17+
18+
1. Extract the `w11asi-portable.zip` package and place the contents in
19+
any desired directory (e.g. `C:\w11asi`).
20+
2. *(optional)* Run the `install.bat` script to have the program start after
21+
logging in.
22+
3. Run `w11asi.exe`, which will run in the background.
23+
24+
Users can also use `shutdown.bat` to terminate the program (or use the task
25+
manager, if preferred). Also, an `uninstall.bat` script is provided to
26+
unregister the application from starting when the user logs in.

scripts/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# ignore built executable if dropped here
2+
w11asi.exe

scripts/install.bat

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
@echo off
2+
setlocal enabledelayedexpansion
3+
4+
set script_path=%~dp0
5+
set base_path=%script_path:~0,-1%
6+
set exe_path="%base_path%\w11asi.exe"
7+
8+
if exist %exe_path% (
9+
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /t REG_SZ ^
10+
/v "W11ASI" /d "%exe_path%" /f >NUL
11+
if !ERRORLEVEL! neq 0 exit /b !ERRORLEVEL!
12+
13+
echo W11ASI has been configured to startup.
14+
) else (
15+
echo W11ASI executable is missing!
16+
)

scripts/shutdown.bat

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
@echo off
2+
taskkill /f /im w11asi.exe

scripts/uninstall.bat

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
@echo off
2+
reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Run ^
3+
/v "W11ASI" /f >NUL

0 commit comments

Comments
 (0)