├── .gitattributes
├── .github
├── CONTRIBUTING.md
├── FUNDING.yml
├── ISSUE_TEMPLATE.md
├── PULL_REQUEST_TEMPLATE.md
└── workflows
│ ├── publish.yaml
│ └── push.yaml
├── .gitignore
├── .vscode
├── extensions.json
├── launch.json
├── settings.json
└── tasks.json
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── LICENSE
├── README.md
├── Terminal-Icons
├── Data
│ ├── colorThemes
│ │ ├── devblackops.psd1
│ │ ├── devblackops_light.psd1
│ │ └── dracula.psd1
│ ├── glyphs.ps1
│ └── iconThemes
│ │ └── devblackops.psd1
├── Private
│ ├── Add-Theme.ps1
│ ├── ConvertFrom-ColorEscapeSequence.ps1
│ ├── ConvertFrom-RGBColor.ps1
│ ├── ConvertTo-ColorSequence.ps1
│ ├── Get-ThemeStoragePath.ps1
│ ├── Import-ColorTheme.ps1
│ ├── Import-IconTheme.ps1
│ ├── Import-Preferences.ps1
│ ├── New-EmptyColorTheme.ps1
│ ├── Resolve-Icon.ps1
│ ├── Save-Preferences.ps1
│ ├── Save-Theme.ps1
│ └── Set-Theme.ps1
├── Public
│ ├── Add-TerminalIconsColorTheme.ps1
│ ├── Add-TerminalIconsIconTheme.ps1
│ ├── Format-TerminalIcons.ps1
│ ├── Get-TerminalIconsColorTheme.ps1
│ ├── Get-TerminalIconsGlyphs.ps1
│ ├── Get-TerminalIconsIconTheme.ps1
│ ├── Get-TerminalIconsTheme.ps1
│ ├── Invoke-TerminalIconsThemeMigration.ps1
│ ├── Remove-TerminalIconsTheme.ps1
│ ├── Set-TerminalIconsIcon.ps1
│ ├── Set-TerminalIconsTheme.ps1
│ └── Show-TerminalIconsTheme.ps1
├── Terminal-Icons.format.ps1xml
├── Terminal-Icons.psd1
└── Terminal-Icons.psm1
├── build.ps1
├── docs
└── en-US
│ ├── Add-TerminalIconsColorTheme.md
│ ├── Add-TerminalIconsIconTheme.md
│ ├── Format-TerminalIcons.md
│ ├── Get-TerminalIconsColorTheme.md
│ ├── Get-TerminalIconsGlyphs.md
│ ├── Get-TerminalIconsIconTheme.md
│ ├── Get-TerminalIconsTheme.md
│ ├── Invoke-TerminalIconsThemeMigration.md
│ ├── Remove-TerminalIconsTheme.md
│ ├── Set-TerminalIconsColorTheme.md
│ ├── Set-TerminalIconsIcon.md
│ ├── Set-TerminalIconsIconTheme.md
│ ├── Set-TerminalIconsTheme.md
│ └── Show-TerminalIconsTheme.md
├── media
├── icon_256.png
├── icon_512.png
├── screenshot.png
└── screenshot1.PNG
├── psakeFile.ps1
├── requirements.psd1
└── tests
├── Help.tests.ps1
├── Manifest.tests.ps1
├── Meta.tests.ps1
├── MetaFixers.psm1
├── MyAwesomeColorTheme.psd1
├── MyAwesomeIconTheme.psd1
├── ScriptAnalyzerSettings.psd1
├── TestItems
├── .gitattributes
├── .gitconfig
├── LICENSE
├── README.md
├── asdf.md
├── asdf.png
├── asdf.txt
├── bar.jpg
├── foo.go
└── for.gif
└── unit
├── Add-TerminalIconsColorTheme.tests.ps1
├── Add-TerminalIconsIconTheme.tests.ps1
└── Format-TerminalIcons.tests.ps1
/.gitattributes:
--------------------------------------------------------------------------------
1 | * -crlf
2 |
--------------------------------------------------------------------------------
/.github/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # How to contribute
2 |
3 | Contributions to Terminal-Icons are highly encouraged and desired.
4 | Below are some guidelines that will help make the process as smooth as possible.
5 |
6 | ## Getting Started
7 |
8 | - Make sure you have a [GitHub account](https://github.com/signup/free)
9 | - Submit a new issue, assuming one does not already exist.
10 | - Clearly describe the issue including steps to reproduce when it is a bug.
11 | - Make sure you fill in the earliest version that you know has the issue.
12 | - Fork the repository on GitHub
13 |
14 | ## Suggesting Enhancements
15 |
16 | I want to know what you think is missing from Terminal-Icons and how it can be made better.
17 |
18 | - When submitting an issue for an enhancement, please be as clear as possible about why you think the enhancement is needed and what the benefit of it would be.
19 |
20 | ## Making Changes
21 |
22 | - From your fork of the repository, create a topic branch where work on your change will take place.
23 | - To quickly create a topic branch based on master; `git checkout -b my_contribution master`.
24 | Please avoid working directly on the `master` branch.
25 | - Make commits of logical units.
26 | - Check for unnecessary whitespace with `git diff --check` before committing.
27 | - Please follow the prevailing code conventions in the repository.
28 | Differences in style make the code harder to understand for everyone.
29 | - Make sure your commit messages are in the proper format.
30 |
31 | ```
32 | Add more cowbell to Get-Something.ps1
33 |
34 | The functionality of Get-Something would be greatly improved if there was a little
35 | more 'pizzazz' added to it. I propose a cowbell. Adding more cowbell has been
36 | shown in studies to both increase one's mojo, and cement one's status
37 | as a rock legend.
38 | ```
39 |
40 | - Make sure you have added all the necessary Pester tests for your changes.
41 | - Run _all_ Pester tests in the module to assure nothing else was accidentally broken.
42 |
43 | ## Documentation
44 |
45 | I am infallible and as such my documenation needs no corectoin.
46 | In the highly unlikely event that that is _not_ the case, commits to update or add documentation are highly apprecaited.
47 |
48 | ## Submitting Changes
49 |
50 | - Push your changes to a topic branch in your fork of the repository.
51 | - Submit a pull request to the main repository.
52 | - Once the pull request has been reviewed and accepted, it will be merged with the master branch.
53 | - Celebrate
54 |
55 | ## Additional Resources
56 |
57 | - [General GitHub documentation](https://help.github.com/)
58 | - [GitHub forking documentation](https://guides.github.com/activities/forking/)
59 | - [GitHub pull request documentation](https://help.github.com/send-pull-requests/)
60 | - [GitHub Flow guide](https://guides.github.com/introduction/flow/)
61 | - [GitHub's guide to contributing to open source projects](https://guides.github.com/activities/contributing-to-open-source/)
62 |
63 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: devblackops
4 | patreon: devblackops
5 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## Expected Behavior
4 |
5 |
6 |
7 | ## Current Behavior
8 |
9 |
10 |
11 | ## Possible Solution
12 |
13 |
14 |
15 | ## Steps to Reproduce (for bugs)
16 |
17 |
18 | 1.
19 | 2.
20 | 3.
21 | 4.
22 |
23 | ## Context
24 |
25 |
26 |
27 | ## Your Environment
28 |
29 | * Module version used:
30 | * Operating System and PowerShell version:
31 |
32 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## Description
4 |
5 |
6 | ## Related Issue
7 |
8 |
9 |
10 |
11 |
12 | ## Motivation and Context
13 |
14 |
15 | ## How Has This Been Tested?
16 |
17 |
18 |
19 |
20 | ## Screenshots (if appropriate):
21 |
22 | ## Types of changes
23 |
24 | - [ ] Bug fix (non-breaking change which fixes an issue)
25 | - [ ] New feature (non-breaking change which adds functionality)
26 | - [ ] Breaking change (fix or feature that would cause existing functionality to change)
27 |
28 | ## Checklist:
29 |
30 |
31 | - [ ] My code follows the code style of this project.
32 | - [ ] My change requires a change to the documentation.
33 | - [ ] I have updated the documentation accordingly.
34 | - [ ] I have read the **CONTRIBUTING** document.
35 | - [ ] I have added tests to cover my changes.
36 | - [ ] All new and existing tests passed.
37 |
38 |
--------------------------------------------------------------------------------
/.github/workflows/publish.yaml:
--------------------------------------------------------------------------------
1 | name: Publish module
2 | on:
3 | workflow_dispatch:
4 | release:
5 | types: [published]
6 |
7 | jobs:
8 | terraform_publish:
9 | name: Publish module
10 | runs-on: ubuntu-latest
11 | steps:
12 | - uses: actions/checkout@v3
13 | - name: Publish module
14 | id: publish
15 | shell: pwsh
16 | run: |
17 | $apiKey = '${{ secrets.PS_GALLERY_API_KEY }}' | ConvertTo-SecureString -AsPlainText -Force
18 | $cred = [pscredential]::new('apikey', $apiKey)
19 | ./build.ps1 -Task Publish -PSGalleryApiKey $cred -Bootstrap
20 |
--------------------------------------------------------------------------------
/.github/workflows/push.yaml:
--------------------------------------------------------------------------------
1 | name: CI
2 | on: [push, pull_request]
3 | jobs:
4 | test:
5 | name: test
6 | runs-on: ${{ matrix.os }}
7 | strategy:
8 | fail-fast: false
9 | matrix:
10 | os: [ubuntu-latest, windows-latest, macOS-latest]
11 | steps:
12 | - uses: actions/checkout@v3
13 | - name: Test
14 | run: pwsh -f ./build.ps1 -Task Test -Bootstrap
15 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 |
3 | # Don't check in the Output dir
4 | Output/
5 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | // See http://go.microsoft.com/fwlink/?LinkId=827846
3 | // for the documentation about the extensions.json format
4 | "recommendations": [
5 | "ms-vscode.PowerShell",
6 | "DavidAnson.vscode-markdownlint"
7 | ]
8 | }
9 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | "version": "0.2.0",
6 | "configurations": [
7 | {
8 | "name": "PowerShell Launch Current File",
9 | "type": "PowerShell",
10 | "request": "launch",
11 | "script": "${file}",
12 | "args": [],
13 | "cwd": "${file}"
14 | },
15 | {
16 | "name": "PowerShell Launch Current File in Temporary Console",
17 | "type": "PowerShell",
18 | "request": "launch",
19 | "script": "${file}",
20 | "args": [],
21 | "cwd": "${file}",
22 | "createTemporaryIntegratedConsole": true
23 | },
24 | {
25 | "name": "PowerShell Launch Current File w/Args Prompt",
26 | "type": "PowerShell",
27 | "request": "launch",
28 | "script": "${file}",
29 | "args": [
30 | "${command:SpecifyScriptArgs}"
31 | ],
32 | "cwd": "${file}"
33 | },
34 | {
35 | "name": "PowerShell Attach to Host Process",
36 | "type": "PowerShell",
37 | "request": "attach"
38 | },
39 | {
40 | "name": "PowerShell Interactive Session",
41 | "type": "PowerShell",
42 | "request": "launch",
43 | "cwd": ""
44 | },
45 | {
46 | "name": "PowerShell Attach Interactive Session Runspace",
47 | "type": "PowerShell",
48 | "request": "attach",
49 | "processId": "current"
50 | }
51 | ]
52 | }
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "files.trimTrailingWhitespace": true,
3 | "files.insertFinalNewline": true,
4 | "editor.insertSpaces": true,
5 | "editor.tabSize": 4,
6 | "powershell.codeFormatting.preset": "OTBS"
7 | }
8 |
--------------------------------------------------------------------------------
/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | {
2 | // See https://go.microsoft.com/fwlink/?LinkId=733558
3 | // for the documentation about the tasks.json format
4 | "version": "2.0.0",
5 |
6 | // Start PowerShell (pwsh on *nix)
7 | "windows": {
8 | "options": {
9 | "shell": {
10 | "executable": "pwsh.exe",
11 | "args": [ "-NoProfile", "-ExecutionPolicy", "Bypass", "-Command" ]
12 | }
13 | }
14 | },
15 | "linux": {
16 | "options": {
17 | "shell": {
18 | "executable": "/usr/bin/pwsh",
19 | "args": [ "-NoProfile", "-Command" ]
20 | }
21 | }
22 | },
23 | "osx": {
24 | "options": {
25 | "shell": {
26 | "executable": "/usr/local/bin/pwsh",
27 | "args": [ "-NoProfile", "-Command" ]
28 | }
29 | }
30 | },
31 |
32 | "tasks": [
33 | {
34 | "label": "Clean",
35 | "type": "shell",
36 | "command": "${cwd}/build.ps1 -Task Clean -Verbose"
37 | },
38 | {
39 | "label": "Test",
40 | "type": "shell",
41 | "command": "${cwd}/build.ps1 -Task Test -Verbose",
42 | "group": {
43 | "kind": "test",
44 | "isDefault": true
45 | },
46 | "problemMatcher": "$pester"
47 | },
48 | {
49 | "label": "Analyze",
50 | "type": "shell",
51 | "command": "${cwd}/build.ps1 -Task Analyze -Verbose"
52 | },
53 | {
54 | "label": "Pester",
55 | "type": "shell",
56 | "command": "${cwd}/build.ps1 -Task Pester -Verbose",
57 | "problemMatcher": "$pester"
58 | },
59 | {
60 | "label": "Build",
61 | "type": "shell",
62 | "command": "${cwd}/build.ps1 -Task Build -Verbose",
63 | "group": {
64 | "kind": "build",
65 | "isDefault": true
66 | }
67 | },
68 | {
69 | "label": "Publish",
70 | "type": "shell",
71 | "command": "${cwd}/build.ps1 -Task Publish -Verbose"
72 | }
73 | ]
74 | }
75 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Change Log
2 |
3 | All notable changes to this project will be documented in this file.
4 |
5 | The format is based on [Keep a Changelog](http://keepachangelog.com/)
6 | and this project adheres to [Semantic Versioning](http://semver.org/).
7 |
8 | ## [0.12.0] Unreleased
9 |
10 | ### Added
11 |
12 | - Add icon and color for wellknown file `jenkinsfile`.
13 | - Add icon and color for c++ files (.cxx and .c++)
14 | - Add icon and color for wellknown file `makefile`.
15 | - Add icon and color for svelte files (.svelte).
16 | - Add icon and color for generic database files (.db)
17 | - Add icon and color for Scala Build Tool files (.sbt)
18 |
19 | ## [0.11.0] 2023-07-05
20 |
21 | ### Added
22 |
23 | - [**#104**](https://github.com/devblackops/Terminal-Icons/pull/104) Migrate to Nerd Font v3 (via [@Tiberriver256](https://github.com/Tiberriver256)
24 | - [**#92**](https://github.com/devblackops/Terminal-Icons/pull/92) - Add icon and color for `artifacts` wellknown folder (via [@wangkanai](https://github.com/wangkanai))
25 | - [**#91**](https://github.com/devblackops/Terminal-Icons/pull/91) - Add icons and colors for `demo` and `sample` wellknown folders (via [@wangkanai](https://github.com/wangkanai))
26 | - [**#90**](https://github.com/devblackops/Terminal-Icons/pull/90) - Add icon and color for `benchmark` wellknown folder (via [@wangkanai](https://github.com/wangkanai))
27 | - Add glyphs from Nerd Font v2.2.0 (must have a Nerd Font >= 2.2.0 installed to see these)
28 | - Add icon and color for Puppet (.pp and .epp)
29 | - Add icon and color for bicep (.bicep)
30 | - Add icon and color for `output` wellknown folder
31 | - Add icon and color for Scala (.scala, .sc)
32 | - Add icon and color for Autodesk Inventor (.iLogicVb)
33 |
34 | ## [0.10.0] 2022-07-06
35 |
36 | ### Added
37 |
38 | - [**#80**](https://github.com/devblackops/Terminal-Icons/pull/80) - Added light color theme `devblackops_light` (via [@TamKengHong](https://github.com/TamKengHong))
39 | - Add icon and color for Julia language file (.jl)
40 | - Add icon and color for Vim (.vim)
41 | - Add icon and color for Sass (.scss)
42 |
43 | ### Fixed
44 |
45 | - [**#68**](https://github.com/devblackops/Terminal-Icons/issues/68) Symlink rendering on Windows PowerShell
46 |
47 | ## [0.9.0] 2022-01-27
48 |
49 | ### Added
50 |
51 | - Add icon and color R language files (.R, .Rmd, and .Rproj)
52 |
53 | ## [0.8.0] 2021-12-15
54 |
55 | ### Added
56 |
57 | - [**#60**](https://github.com/devblackops/Terminal-Icons/pull/60) Add support for Gradle (*.gradle and gradlew) files (via [@Hexeption](https://github.com/Hexeption))
58 | - [**#58**](https://github.com/devblackops/Terminal-Icons/pull/58) Add support for Jupyter notebook (*.ipynb) files (via [@gaardhus](https://github.com/gaardhus))
59 |
60 | ## [0.7.1] 2021-11-22
61 |
62 | ### Fixed
63 |
64 | - Set default preferences if the preferences XML file cannot be parsed for any reason.
65 |
66 | ## [0.7.0] 2021-11-10
67 |
68 | ### Added
69 |
70 | - [**#53**](https://github.com/devblackops/Terminal-Icons/pull/53) Add color and icon for handlebar (.hbs) files (via [@nikouu](https://github.com/nikouu))
71 |
72 | ## [0.6.0] 2021-11-08
73 |
74 | ### Added
75 |
76 | - [**#44**](https://github.com/devblackops/Terminal-Icons/pull/44) Added icons for .msi, .msix, .msixbundle, .appx, .appxbundle, .deb, .rpm, .jar, .srt, .lrc, .ass, .wav, .acc, .opus, .vmdk, .vhdx, .iso. (via [@KaranKad](https://github.com/KaranKad))
77 | - Added option to turn off displaying custom icons or colors with `-DisableIconTheme` and `-DisableColorTheme` switches on the `Set-TerminalIconsTheme` command.
78 |
79 | ### Changed
80 |
81 | - [**#44**](https://github.com/devblackops/Terminal-Icons/pull/44) Changed .img icon to match other disk image formats (via [@KaranKad](https://github.com/KaranKad))
82 |
83 | ### Removed
84 |
85 | - Removed deprecated commands `Set-TerminalIconsColorTheme` and `Set-TerminalIconsIconTheme`. Use `Set-TerminalIconsTheme` instead.
86 |
87 | ## [0.5.2] 2021-06-18
88 |
89 | ### Added
90 |
91 | - [**#39**](https://github.com/devblackops/Terminal-Icons/pull/39) Added icon and color for Visual Studio Solution filter files (.slnf) (via [@kkoziarski](https://github.com/kkoziarski))
92 |
93 | ## [0.5.1] 2021-05-21
94 |
95 | ### Added
96 |
97 | - Add icon for `gruntfile.js`
98 |
99 | ### Changed
100 |
101 | - Theme files and preferences are now stored in the directory defined by `$env:XDG_CONFIG_HOME` (if it exists) on Linux and macOS. If not defined, the default of `$HOME/local/share/powershell/Community/Terminal-Icons` is still used.
102 | - `Get-TerminalIconsGlyphs` now returns glyphs sorted by name
103 |
104 | ## [0.5.0] 2021-04-20
105 |
106 | ### Added
107 |
108 | - [**#PR35**](https://github.com/devblackops/Terminal-Icons/pull/35) Add `Get-TerminalIconsGlyphs` and `Set-TerminalIconsIcon` functions (via [@tillig](https://github.com/tillig))
109 | - `Get-TerminalIconsGlyphs` returns the list of glyphs available
110 | - `Set-TerminalIconsIcon` set a specific icon in the current icon theme or allows for swapping one glyph for another. Changes are not persisted between PowerShell sessions.
111 |
112 | ### Fixed
113 |
114 | - Replace glyphs that are causing alignment issues
115 | - Fixed module import error when user directory containing saved themes did not exist
116 |
117 | ## [0.4.0] 2021-04-18
118 |
119 | ### Added
120 |
121 | - [**#PR27**](https://github.com/devblackops/Terminal-Icons/pull/27) Add icon for Umbraco .NET CMS common folder (via [@warrenbuckley](https://github.com/warrenbuckley))
122 | - [**#PR30**](https://github.com/devblackops/Terminal-Icons/pull/30) Add `.gitconfig` and `.vscode-insiders` icons/colors (via [@MJECloud](https://github.com/MJECloud))
123 | - Added function `Set-TerminalIconsTheme` to set icon/color theme. Existing functions `Set-TerminalIconsColorTheme` and `Set-TerminalIconsIconTheme` have been deprecated and will be removed in a later version
124 | - Added function `Remove-TerminalIconsTheme` to remove an icon or color theme
125 |
126 | ### Changed
127 |
128 | - Minimum PowerShell verison is now `5.1`
129 |
130 | ### Fixed
131 |
132 | - Adding a new icon or color theme no longer raises errors
133 |
134 | ## [0.3.1] 2021-04-09
135 |
136 | ### Fixed
137 |
138 | - [**#PR26**](https://github.com/devblackops/Terminal-Icons/pull/26) Display file when no extension is present (via [@zanseb](https://github.com/zanseb))
139 |
140 | ## [0.3.0] 2021-04-08
141 |
142 | ### Added
143 |
144 | - Icon and color for symlinks and junctions are now shown, along with the target path.
145 | - [**#PR23**](https://github.com/devblackops/Terminal-Icons/pull/23) Add icons/colors for common folders `.aws`, `.Azure`, `.kube`, and `.docker` (via [@cdhunt](https://github.com/cdhunt))
146 |
147 | ### Fixed
148 |
149 | - Colors/icons for files with more than one extension now have the theme applied.
150 |
151 | ## [0.2.2] 2020-01-10
152 |
153 | ### Added
154 |
155 | - New icons and colors for Terraform files (via [@TravisTX](https://github.com/TravisTX))
156 |
157 | ## [0.2.1] 2020-11-30
158 |
159 | ### Added
160 |
161 | - New icons and colors for Python (.py) and Java (.java) files.
162 |
163 | ## [0.2.0] 2020-11-15
164 |
165 | ### Added
166 |
167 | - New icons and colors for well-known folder names (via [@rashil2000](https://github.com/rashil2000))
168 |
169 | ### Changed
170 |
171 | - Module load time has been improved by ~4x by storing the current theme on disk in XML format (Export-CliXml) instead of PSD1.
172 |
173 | ## [0.1.1] 2019-06-11
174 |
175 | ### Changed
176 |
177 | - Store RGB color values instead of escape sequences in the theme data stored in the user profile.
178 |
179 | ### Fixed
180 |
181 | - Changed `glyphs.ps1` to `UTF8 with BOM` so it's compatible with Windows PowerShell.
182 | - Changed minimum PowerShell version to `v4.0` as the `.ForEach()` and `.Where()` methods are used internally.
183 | - Fixed use of escape sequences to be compatible with Windows PowerShell and the default console.
184 |
185 | ## [0.1.0] 2019-06-09
186 |
187 | ### Added
188 |
189 | - Initial release
190 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as
6 | contributors and maintainers pledge to making participation in our project and
7 | our community a harassment-free experience for everyone, regardless of age, body
8 | size, disability, ethnicity, gender identity and expression, level of experience,
9 | nationality, personal appearance, race, religion, sexual identity and
10 | orientation, or sexual proclivities between consenting adults.
11 |
12 | ## Our Standards
13 |
14 | Examples of behavior that contributes to creating a positive environment
15 | include:
16 |
17 | * Using welcoming and inclusive language
18 | * Being respectful of differing viewpoints and experiences
19 | * Gracefully accepting constructive criticism
20 | * Focusing on what is best for the community
21 | * Showing empathy towards other community members
22 |
23 | Examples of unacceptable behavior by participants include:
24 |
25 | * The use of sexualized language or imagery and unwelcome sexual attention or advances
26 | * Trolling, insulting/derogatory comments, and personal or political attacks
27 | * Public or private harassment
28 | * Publishing others' private information, such as a physical or electronic
29 | address, without explicit permission
30 | * Other conduct which could reasonably be considered inappropriate in a
31 | professional setting
32 |
33 | ## Our Responsibilities
34 |
35 | Project maintainers are responsible for clarifying the standards of acceptable
36 | behavior and are expected to take appropriate and fair corrective action in
37 | response to any instances of unacceptable behavior.
38 |
39 | Project maintainers have the right and responsibility to remove, edit, or
40 | reject comments, commits, code, wiki edits, issues, and other contributions
41 | that are not aligned to this Code of Conduct, or to ban temporarily or
42 | permanently any contributor for other behaviors that they deem inappropriate,
43 | threatening, offensive, or harmful.
44 |
45 | ## Scope
46 |
47 | This Code of Conduct applies both within project spaces and in public spaces
48 | when an individual is representing the project or its community. Examples of
49 | representing a project or community include using an official project e-mail
50 | address, posting via an official social media account, or acting as an appointed
51 | representative at an online or offline event. Representation of a project may be
52 | further defined and clarified by project maintainers.
53 |
54 | ## Enforcement
55 |
56 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
57 | reported by contacting the project team at [brandon@devblackops.io](mailto:brandon@devblackops.io). All
58 | complaints will be reviewed and investigated and will result in a response that
59 | is deemed necessary and appropriate to the circumstances. The project team is
60 | obligated to maintain confidentiality with regard to the reporter of an incident.
61 | Further details of specific enforcement policies may be posted separately.
62 |
63 | Project maintainers who do not follow or enforce the Code of Conduct in good
64 | faith may face temporary or permanent repercussions as determined by other
65 | members of the project's leadership.
66 |
67 | ## Attribution
68 |
69 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4.1,
70 | available at [http://contributor-covenant.org/version/1/4/1][version]
71 |
72 | [homepage]: http://contributor-covenant.org
73 | [version]: http://contributor-covenant.org/version/1/4/
74 |
75 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Brandon Olin
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Terminal-Icons
2 |
3 | A PowerShell module to show file and folder icons in the terminal.
4 |
5 | | GitHub Actions | PSGallery | License |
6 | |----------------|-----------|---------|
7 | [![GitHub Actions Status][github-actions-badge]][github-actions-build] | [![PowerShell Gallery][psgallery-badge]][psgallery] | [![License][license-badge]][license]
8 |
9 |
10 |
11 |
12 |
13 | ## Overview
14 |
15 | *Terminal-Icons* is a PowerShell module that adds file and folder icons when displaying items in the terminal.
16 | This relies on the custom fonts provided by [Nerd Fonts](https://github.com/ryanoasis/nerd-fonts).
17 |
18 | > You must be using one of the fonts provided by Nerd Fonts for this module to work as these fonts include tons of custom glyphs/icons that are referenced by their unicode number.
19 |
20 | ## How Does this Work?
21 |
22 | It uses a custom [format.ps1xml](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_format.ps1xml?view=powershell-6) file that inspects the items being displayed and looks up their appropriate icon based on name or extension.
23 | Icons for well-known files/folders are attempted to be used first before displaying an icon based on the file extension.
24 | Any files/folders that are not matched are shown using a generic file or folder icon.
25 |
26 | ## Installation
27 |
28 | To install the module from the [PowerShell Gallery](https://www.powershellgallery.com/):
29 |
30 | ```powershell
31 | Install-Module -Name Terminal-Icons -Repository PSGallery
32 | ```
33 |
34 | You can also install it from [Scoop](https://scoop.sh/):
35 | ```powershell
36 | scoop bucket add extras
37 | scoop install terminal-icons
38 | ```
39 |
40 | ## Usage
41 |
42 | ```powershell
43 | Import-Module -Name Terminal-Icons
44 |
45 | Get-Item ./README.md
46 |
47 | Get-ChildItem
48 |
49 | Get-ChildItem | Format-List
50 |
51 | Get-ChildItem | Format-Wide
52 | ```
53 |
54 | ## Commands
55 |
56 | | Command | Description
57 | |---------|-------------|
58 | Add-TerminalIconsColorTheme | Add a Terminal-Icons color theme for the current user.
59 | Add-TerminalIconsIconTheme | Add a Terminal-Icons icon theme for the current user.
60 | Format-TerminalIcons | Prepend a custom icon (with color) to the provided file or folder object when displayed.
61 | Get-TerminalIconsColorTheme | List the available color themes.
62 | Get-TerminalIconsIconTheme | List the available icon themes.
63 | Get-TerminalIconsTheme | Get the currently applied color and icon theme.
64 | Remove-TerminalIconsTheme | Removes a given icon or color theme.
65 | Set-TerminalIconsColorTheme | **DEPRECATED** Set the Terminal-Icons color theme.
66 | Set-TerminalIconsIconTheme | **DEPRECATED** Set the Terminal-Icons icon theme.
67 | Set-TerminalIconsTheme | Set the Terminal-Icons icon and/or color theme.
68 | Show-TerminalIconsTheme | List example directories and files to show the currently applied color and icon themes.
69 |
70 | ## Screenshots
71 |
72 | ```powershell
73 | Get-ChildItem -Path . -Force
74 | ```
75 |
76 | 
77 |
78 | ## Tips
79 |
80 | If using the default console in Windows and not something like VSCode, ConEmu, Terminus, etc., you may have issues getting a nerd font to be recognized correctly.
81 | Try following this [quick guide](https://gist.github.com/markwragg/6301bfcd56ce86c3de2bd7e2f09a8839) by [Mark Wragg](https://twitter.com/markwragg).
82 | [Issue #269](https://github.com/ryanoasis/nerd-fonts/issues/269) on Nerd Fonts has more information.
83 |
84 | ## Contributions
85 |
86 | Any ideas on how to improve this module are welcome.
87 | If you have ideas for an appropriate [glyph](http://nerdfonts.com/#cheat-sheet) to display for a well-known folder or file, or a particular file extension, please raise an [issue](https://github.com/devblackops/Terminal-Icons/issues/new).
88 | If you'd like to submit an entirely new color or icon theme, take a look at the existing ones [here](https://github.com/devblackops/Terminal-Icons/tree/master/Terminal-Icons/Data/colorThemes) and [here](https://github.com/devblackops/Terminal-Icons/tree/master/Terminal-Icons/Data/iconThemes), create your new file(s) named what ever you like, and submit a pull request.
89 |
90 | [github-actions-badge]: https://github.com/devblackops/Terminal-Icons/workflows/CI/badge.svg
91 | [github-actions-build]: https://github.com/devblackops/Terminal-Icons/actions
92 | [psgallery-badge]: https://img.shields.io/powershellgallery/dt/terminal-icons.svg
93 | [psgallery]: https://www.powershellgallery.com/packages/terminal-icons
94 | [license-badge]: https://img.shields.io/github/license/poshbotio/poshbot.svg
95 | [license]: https://www.powershellgallery.com/packages/poshbot
96 |
--------------------------------------------------------------------------------
/Terminal-Icons/Data/colorThemes/devblackops.psd1:
--------------------------------------------------------------------------------
1 | @{
2 | Name = 'devblackops'
3 | Types = @{
4 | Directories = @{
5 | symlink = '7373ff'
6 | junction = '7373ff'
7 | WellKnown = @{
8 | docs = '00BFFF'
9 | documents = '00BFFF'
10 | desktop = '00FBFF'
11 | benchmark = 'F08519'
12 | demo = '5F3EC3'
13 | samples = '5F3EC3'
14 | contacts = '00FBFF'
15 | apps = 'FF143C'
16 | applications = 'FF143C'
17 | artifacts = 'D49653'
18 | shortcuts = 'FF143C'
19 | links = 'FF143C'
20 | fonts = 'DC143C'
21 | images = '9ACD32'
22 | photos = '9ACD32'
23 | pictures = '9ACD32'
24 | videos = 'FFA500'
25 | movies = 'FFA500'
26 | media = 'D3D3D3'
27 | music = 'DB7093'
28 | songs = 'DB7093'
29 | onedrive = 'D3D3D3'
30 | downloads = 'D3D3D3'
31 | src = '00FF7F'
32 | development = '00FF7F'
33 | projects = '00FF7F'
34 | bin = '00FFF7'
35 | tests = '87CEEB'
36 | windows = '00A8E8'
37 | users = 'F4F4F4'
38 | favorites = 'F7D72C'
39 | output = '00FF7F'
40 | '.config' = '87CEAF'
41 | '.cache' = '87ECAF'
42 | '.vscode' = '87CEFA'
43 | '.vscode-insiders' = '24BFA5'
44 | '.git' = 'FF4500'
45 | '.github' = 'C0C0C0'
46 | 'github' = 'C0C0C0'
47 | 'node_modules' = '6B8E23'
48 | '.terraform' = '948EEC'
49 | '.azure' = '00BFFF'
50 | '.aws' = 'EC912D'
51 | '.kube' = '326DE6'
52 | '.docker' = '2391E6'
53 | }
54 | }
55 | Files = @{
56 | symlink = '7373ff'
57 | junction = '7373ff'
58 | WellKnown = @{
59 | '.gitattributes' = 'FF4500'
60 | '.gitconfig' = 'FF4500'
61 | '.gitignore' = 'FF4500'
62 | '.gitmodules' = 'FF4500'
63 | '.gitkeep' = 'FF4500'
64 | 'git-history' = 'FF4500'
65 | 'LICENSE' = 'CD5C5C'
66 | 'LICENSE.md' = 'CD5C5C'
67 | 'LICENSE.txt' = 'CD5C5C'
68 | 'CHANGELOG.md' = '98FB98'
69 | 'CHANGELOG.txt' = '98FB98'
70 | 'CHANGELOG' = '98FB98'
71 | 'README.md' = '00FFFF'
72 | 'README.txt' = '00FFFF'
73 | 'README' = '00FFFF'
74 | '.DS_Store' = '696969'
75 | '.tsbuildinfo' = 'F4A460'
76 | '.jscsrc' = 'F4A460'
77 | '.jshintrc' = 'F4A460'
78 | 'tsconfig.json' = 'F4A460'
79 | 'tslint.json' = 'F4A460'
80 | 'composer.lock' = 'F4A460'
81 | '.jsbeautifyrc' = 'F4A460'
82 | '.esformatter' = 'F4A460'
83 | 'cdp.pid' = 'F4A460'
84 | '.htaccess' = '9ACD32'
85 | '.jshintignore' = '87CEEB'
86 | '.buildignore' = '87CEEB'
87 | '.mrconfig' = '87CEEB'
88 | '.yardopts' = '87CEEB'
89 | 'manifest.mf' = '87CEEB'
90 | '.clang-format' = '87CEEB'
91 | '.clang-tidy' = '87CEEB'
92 | 'favicon.ico' = 'FFD700'
93 | '.travis.yml' = 'FFE4B5'
94 | '.gitlab-ci.yml' = 'FF4500'
95 | '.jenkinsfile' = '6495ED'
96 | 'jenkinsfile' = '6495ED'
97 | 'bitbucket-pipelines.yml' = '87CEFA'
98 | 'bitbucket-pipelines.yaml' = '87CEFA'
99 | '.azure-pipelines.yml' = '00BFFF'
100 | 'makefile' = '6495ED'
101 |
102 | # Firebase
103 | 'firebase.json' = 'FFA500'
104 | '.firebaserc' = 'FFA500'
105 |
106 | # Bower
107 | '.bowerrc' = 'CD5C5C'
108 | 'bower.json' = 'CD5C5C'
109 |
110 | # Conduct
111 | 'code_of_conduct.md' = 'FFFFE0'
112 | 'code_of_conduct.txt' = 'FFFFE0'
113 |
114 | # Docker
115 | 'Dockerfile' = '4682B4'
116 | 'docker-compose.yml' = '4682B4'
117 | 'docker-compose.yaml' = '4682B4'
118 | 'docker-compose.dev.yml' = '4682B4'
119 | 'docker-compose.local.yml' = '4682B4'
120 | 'docker-compose.ci.yml' = '4682B4'
121 | 'docker-compose.override.yml' = '4682B4'
122 | 'docker-compose.staging.yml' = '4682B4'
123 | 'docker-compose.prod.yml' = '4682B4'
124 | 'docker-compose.production.yml' = '4682B4'
125 | 'docker-compose.test.yml' = '4682B4'
126 |
127 | # Vue
128 | 'vue.config.js' = '778899'
129 | 'vue.config.ts' = '778899'
130 |
131 | # Gulp
132 | 'gulpfile.js' = 'CD5C5C'
133 | 'gulpfile.ts' = 'CD5C5C'
134 | 'gulpfile.babel.js' = 'CD5C5C'
135 |
136 | 'gruntfile.js' = 'CD5C5C'
137 |
138 | # NodeJS
139 | 'package.json' = '6B8E23'
140 | 'package-lock.json' = '6B8E23'
141 | '.nvmrc' = '6B8E23'
142 | '.esmrc' = '6B8E23'
143 |
144 | # NPM
145 | '.nmpignore' = '00BFFF'
146 | '.npmrc' = '00BFFF'
147 |
148 | # Authors
149 | 'authors' = 'FF6347'
150 | 'authors.md' = 'FF6347'
151 | 'authors.txt' = 'FF6347'
152 |
153 | # Terraform
154 | '.terraform.lock.hcl' = '948EEC'
155 |
156 | # Gradle
157 | 'gradlew' = '39D52D'
158 | }
159 | # Archive files
160 | '.7z' = 'DAA520'
161 | '.bz' = 'DAA520'
162 | '.tar' = 'DAA520'
163 | '.zip' = 'DAA520'
164 | '.gz' = 'DAA520'
165 | '.xz' = 'DAA520'
166 | '.br' = 'DAA520'
167 | '.bzip2' = 'DAA520'
168 | '.gzip' = 'DAA520'
169 | '.brotli' = 'DAA520'
170 | '.rar' = 'DAA520'
171 | '.tgz' = 'DAA520'
172 |
173 | # Executable things
174 | '.bat' = '008000'
175 | '.cmd' = '008000'
176 | '.exe' = '00FA9A'
177 | '.pl' = '8A2BE2'
178 |
179 | '.sh' = 'FF4500'
180 |
181 | # App Packages
182 | '.msi' = 'FFC77A'
183 | '.msix' = 'FFC77A'
184 | '.msixbundle' = 'FFC77A'
185 | '.appx' = 'FFC77A'
186 | '.AppxBundle' = 'FFC77A'
187 | '.deb' = 'FFC77A'
188 | '.rpm' = 'FFC77A'
189 |
190 | # PowerShell
191 | '.ps1' = '00BFFF'
192 | '.psm1' = '00BFFF'
193 | '.psd1' = '00BFFF'
194 | '.ps1xml' = '00BFFF'
195 | '.psc1' = '00BFFF'
196 | '.pssc' = '00BFFF'
197 |
198 | # Javascript
199 | '.js' = 'F0E68C'
200 | '.esx' = 'F0E68C'
201 | '.mjs' = 'F0E68C'
202 |
203 | # Java
204 | '.java' = 'F89820'
205 | '.jar' = 'F89820'
206 |
207 | '.gradle' = '39D52D'
208 |
209 | # Python
210 | '.py' = '4B8BBE'
211 | '.ipynb' = '4B8BBE'
212 |
213 |
214 | # React
215 | '.jsx' = '20B2AA'
216 | '.tsx' = '20B2AA'
217 |
218 | # Typescript
219 | '.ts' = 'F0E68C'
220 |
221 | # Not-executable code files
222 | '.dll' = '87CEEB'
223 |
224 | # Importable Data files
225 | '.clixml' = '00BFFF'
226 | '.csv' = '9ACD32'
227 | '.tsv' = '9ACD32'
228 |
229 | # Settings
230 | '.ini' = '6495ED'
231 | '.dlc' = '6495ED'
232 | '.config' = '6495ED'
233 | '.conf' = '6495ED'
234 | '.properties' = '6495ED'
235 | '.prop' = '6495ED'
236 | '.settings' = '6495ED'
237 | '.option' = '6495ED'
238 | '.reg' = '6495ED'
239 | '.props' = '6495ED'
240 | '.toml' = '6495ED'
241 | '.prefs' = '6495ED'
242 | '.sln.dotsettings' = '6495ED'
243 | '.sln.dotsettings.user' = '6495ED'
244 | '.cfg' = '6495ED'
245 |
246 | # Source Files
247 | '.c' = 'A9A9A9'
248 | '.cpp' = 'A9A9A9'
249 | '.cxx' = 'A9A9A9'
250 | '.c++' = 'A9A9A9'
251 | '.go' = '20B2AA'
252 | '.php' = '6A5ACD'
253 |
254 | # Visual Studio
255 | '.csproj' = 'EE82EE'
256 | '.ruleset' = 'EE82EE'
257 | '.sln' = 'EE82EE'
258 | '.slnf' = 'EE82EE'
259 | '.suo' = 'EE82EE'
260 | '.vb' = 'EE82EE'
261 | '.vbs' = 'EE82EE'
262 | '.vcxitems' = 'EE82EE'
263 | '.vcxitems.filters' = 'EE82EE'
264 | '.vcxproj' = 'EE82EE'
265 | '.vsxproj.filters' = 'EE82EE'
266 |
267 | # CSharp
268 | '.cs' = '7B68EE'
269 | '.csx' = '7B68EE'
270 |
271 | # Haskell
272 | '.hs' = '9932CC'
273 |
274 | # XAML
275 | '.xaml' = '87CEFA'
276 |
277 | # Rust
278 | '.rs' = 'FF4500'
279 |
280 | # Database
281 | '.pdb' = 'FFD700'
282 | '.sql' = 'FFD700'
283 | '.pks' = 'FFD700'
284 | '.pkb' = 'FFD700'
285 | '.accdb' = 'FFD700'
286 | '.mdb' = 'FFD700'
287 | '.sqlite' = 'FFD700'
288 | '.pgsql' = 'FFD700'
289 | '.postgres' = 'FFD700'
290 | '.psql' = 'FFD700'
291 | '.db' = 'FFD700'
292 |
293 | # Source Control
294 | '.patch' = 'FF4500'
295 |
296 | # Project files
297 | '.user' = '00BFFF'
298 | '.code-workspace' = '00BFFF'
299 |
300 | # Text data files
301 | '.log' = 'F0E68C'
302 | '.txt' = '00CED1'
303 |
304 | # Subtitle files
305 | '.srt' = '00CED1'
306 | '.lrc' = '00CED1'
307 | '.ass' = 'C50000'
308 |
309 | # HTML/css
310 | '.html' = 'CD5C5C'
311 | '.htm' = 'CD5C5C'
312 | '.xhtml' = 'CD5C5C'
313 | '.html_vm' = 'CD5C5C'
314 | '.asp' = 'CD5C5C'
315 | '.css' = '87CEFA'
316 | '.sass' = 'FF00FF'
317 | '.scss' = 'FF00FF'
318 | '.less' = '6B8E23'
319 |
320 | # Markdown
321 | '.md' = '00BFFF'
322 | '.markdown' = '00BFFF'
323 | '.rst' = '00BFFF'
324 |
325 | # Handlebars
326 | '.hbs' = 'E37933'
327 |
328 | # JSON
329 | '.json' = 'FFD700'
330 | '.tsbuildinfo' = 'FFD700'
331 |
332 | # YAML
333 | '.yml' = 'FF6347'
334 | '.yaml' = 'FF6347'
335 |
336 | # LUA
337 | '.lua' = '87CEFA'
338 |
339 | # Clojure
340 | '.clj' = '00FF7F'
341 | '.cljs' = '00FF7F'
342 | '.cljc' = '00FF7F'
343 |
344 | # Groovy
345 | '.groovy' = '87CEFA'
346 |
347 | # Vue
348 | '.vue' = '20B2AA'
349 |
350 | # Dart
351 | '.dart' = '4682B4'
352 |
353 | # Elixir
354 | '.ex' = '8B4513'
355 | '.exs' = '8B4513'
356 | '.eex' = '8B4513'
357 | '.leex' = '8B4513'
358 |
359 | # Erlang
360 | '.erl' = 'FF6347'
361 |
362 | # Elm
363 | '.elm' = '9932CC'
364 |
365 | # Applescript
366 | '.applescript' = '4682B4'
367 |
368 | # XML
369 | '.xml' = '98FB98'
370 | '.plist' = '98FB98'
371 | '.xsd' = '98FB98'
372 | '.dtd' = '98FB98'
373 | '.xsl' = '98FB98'
374 | '.xslt' = '98FB98'
375 | '.resx' = '98FB98'
376 | '.iml' = '98FB98'
377 | '.xquery' = '98FB98'
378 | '.tmLanguage' = '98FB98'
379 | '.manifest' = '98FB98'
380 | '.project' = '98FB98'
381 |
382 | # Documents
383 | '.chm' = '87CEEB'
384 | '.pdf' = 'CD5C5C'
385 |
386 | # Excel
387 | '.xls' = '9ACD32'
388 | '.xlsx' = '9ACD32'
389 |
390 | # PowerPoint
391 | '.pptx' = 'DC143C'
392 | '.ppt' = 'DC143C'
393 | '.pptm' = 'DC143C'
394 | '.potx' = 'DC143C'
395 | '.potm' = 'DC143C'
396 | '.ppsx' = 'DC143C'
397 | '.ppsm' = 'DC143C'
398 | '.pps' = 'DC143C'
399 | '.ppam' = 'DC143C'
400 | '.ppa' = 'DC143C'
401 |
402 | # Word
403 | '.doc' = '00BFFF'
404 | '.docx' = '00BFFF'
405 | '.rtf' = '00BFFF'
406 |
407 | # Audio
408 | '.mp3' = 'DB7093'
409 | '.flac' = 'DB7093'
410 | '.m4a' = 'DB7093'
411 | '.wma' = 'DB7093'
412 | '.aiff' = 'DB7093'
413 | '.wav' = 'DB7093'
414 | '.aac' = 'DB7093'
415 | '.opus' = 'DB7093'
416 |
417 | # Images
418 | '.png' = '20B2AA'
419 | '.jpeg' = '20B2AA'
420 | '.jpg' = '20B2AA'
421 | '.gif' = '20B2AA'
422 | '.ico' = '20B2AA'
423 | '.tif' = '20B2AA'
424 | '.tiff' = '20B2AA'
425 | '.psd' = '20B2AA'
426 | '.psb' = '20B2AA'
427 | '.ami' = '20B2AA'
428 | '.apx' = '20B2AA'
429 | '.bmp' = '20B2AA'
430 | '.bpg' = '20B2AA'
431 | '.brk' = '20B2AA'
432 | '.cur' = '20B2AA'
433 | '.dds' = '20B2AA'
434 | '.dng' = '20B2AA'
435 | '.eps' = '20B2AA'
436 | '.exr' = '20B2AA'
437 | '.fpx' = '20B2AA'
438 | '.gbr' = '20B2AA'
439 | '.jbig2' = '20B2AA'
440 | '.jb2' = '20B2AA'
441 | '.jng' = '20B2AA'
442 | '.jxr' = '20B2AA'
443 | '.pbm' = '20B2AA'
444 | '.pgf' = '20B2AA'
445 | '.pic' = '20B2AA'
446 | '.raw' = '20B2AA'
447 | '.webp' = '20B2AA'
448 | '.svg' = 'F4A460'
449 |
450 | # Video
451 | '.webm' = 'FFA500'
452 | '.mkv' = 'FFA500'
453 | '.flv' = 'FFA500'
454 | '.vob' = 'FFA500'
455 | '.ogv' = 'FFA500'
456 | '.ogg' = 'FFA500'
457 | '.gifv' = 'FFA500'
458 | '.avi' = 'FFA500'
459 | '.mov' = 'FFA500'
460 | '.qt' = 'FFA500'
461 | '.wmv' = 'FFA500'
462 | '.yuv' = 'FFA500'
463 | '.rm' = 'FFA500'
464 | '.rmvb' = 'FFA500'
465 | '.mp4' = 'FFA500'
466 | '.mpg' = 'FFA500'
467 | '.mp2' = 'FFA500'
468 | '.mpeg' = 'FFA500'
469 | '.mpe' = 'FFA500'
470 | '.mpv' = 'FFA500'
471 | '.m2v' = 'FFA500'
472 |
473 | # Email
474 | '.ics' = '00CED1'
475 |
476 | # Certifactes
477 | '.cer' = 'FF6347'
478 | '.cert' = 'FF6347'
479 | '.crt' = 'FF6347'
480 | '.pfx' = 'FF6347'
481 |
482 | # Keys
483 | '.pem' = '66CDAA'
484 | '.pub' = '66CDAA'
485 | '.key' = '66CDAA'
486 | '.asc' = '66CDAA'
487 | '.gpg' = '66CDAA'
488 |
489 | # Fonts
490 | '.woff' = 'DC143C'
491 | '.woff2' = 'DC143C'
492 | '.ttf' = 'DC143C'
493 | '.eot' = 'DC143C'
494 | '.suit' = 'DC143C'
495 | '.otf' = 'DC143C'
496 | '.bmap' = 'DC143C'
497 | '.fnt' = 'DC143C'
498 | '.odttf' = 'DC143C'
499 | '.ttc' = 'DC143C'
500 | '.font' = 'DC143C'
501 | '.fonts' = 'DC143C'
502 | '.sui' = 'DC143C'
503 | '.ntf' = 'DC143C'
504 | '.mrg' = 'DC143C'
505 |
506 | # Ruby
507 | '.rb' = 'FF0000'
508 | '.erb' = 'FF0000'
509 | '.gemfile' = 'FF0000'
510 | 'Rakefile' = 'FF0000'
511 |
512 | # FSharp
513 | '.fs' = '00BFFF'
514 | '.fsx' = '00BFFF'
515 | '.fsi' = '00BFFF'
516 | '.fsproj' = '00BFFF'
517 |
518 | # Docker
519 | '.dockerignore' = '4682B4'
520 | '.dockerfile' = '4682B4'
521 |
522 |
523 | # VSCode
524 | '.vscodeignore' = '6495ED'
525 | '.vsixmanifest' = '6495ED'
526 | '.vsix' = '6495ED'
527 | '.code-workplace' = '6495ED'
528 |
529 | # Sublime
530 | '.sublime-project' = 'F4A460'
531 | '.sublime-workspace' = 'F4A460'
532 |
533 | '.lock' = 'DAA520'
534 |
535 | # Terraform
536 | '.tf' = '948EEC'
537 | '.tfvars' = '948EEC'
538 | '.auto.tfvars' = '948EEC'
539 |
540 | # Bicep
541 | '.bicep' = '00BFFF'
542 |
543 | # Disk Image
544 | '.vmdk' = 'E1E3E6'
545 | '.vhd' = 'E1E3E6'
546 | '.vhdx' = 'E1E3E6'
547 | '.img' = 'E1E3E6'
548 | '.iso' = 'E1E3E6'
549 |
550 | # R language
551 | '.R' = '276DC3'
552 | '.Rmd' = '276DC3'
553 | '.Rproj' = '276DC3'
554 |
555 | # Julia language
556 | '.jl' = '9259a3'
557 |
558 | # Vim
559 | '.vim' = '019833'
560 |
561 | # Puppet
562 | '.pp' = 'FFA61A'
563 | '.epp' = 'FFA61A'
564 |
565 | # Scala
566 | '.scala' = 'DE3423'
567 | '.sc' = 'DE3423'
568 | '.sbt' = 'DE3423'
569 |
570 | # Autodesk Inventor
571 | '.iLogicVb' = 'A63B22'
572 |
573 | '.svelte' = 'FF3E00'
574 | }
575 | }
576 | }
577 |
--------------------------------------------------------------------------------
/Terminal-Icons/Data/colorThemes/devblackops_light.psd1:
--------------------------------------------------------------------------------
1 | @{
2 | Name = 'devblackops_light'
3 | Types = @{
4 | Directories = @{
5 | symlink = '7373ff'
6 | junction = '7373ff'
7 | WellKnown = @{
8 | docs = '00BFFF'
9 | documents = '00BFFF'
10 | desktop = '00c9cd'
11 | benchmark = 'F08519'
12 | demo = '5F3EC3'
13 | samples = '5F3EC3'
14 | contacts = '00c9cd'
15 | apps = 'FF143C'
16 | applications = 'FF143C'
17 | artifacts = 'D49653'
18 | shortcuts = 'FF143C'
19 | links = 'FF143C'
20 | fonts = 'DC143C'
21 | images = '9ACD32'
22 | photos = '9ACD32'
23 | pictures = '9ACD32'
24 | videos = 'FFA500'
25 | movies = 'FFA500'
26 | media = 'b0b0b0'
27 | music = 'DB7093'
28 | songs = 'DB7093'
29 | onedrive = 'b0b0b0'
30 | downloads = 'b0b0b0'
31 | src = '00cd65'
32 | development = '00cd65'
33 | projects = '00cd65'
34 | bin = '00FFF7'
35 | tests = '87CEEB'
36 | windows = '00A8E8'
37 | users = 'F4F4F4'
38 | favorites = 'F7D72C'
39 | output = '00cd65'
40 | '.config' = '87CEAF'
41 | '.cache' = '87ECAF'
42 | '.vscode' = '87CEFA'
43 | '.vscode-insiders' = '24BFA5'
44 | '.git' = 'FF4500'
45 | '.github' = 'b0b0b0'
46 | 'github' = 'b0b0b0'
47 | 'node_modules' = '6B8E23'
48 | '.terraform' = '948EEC'
49 | '.azure' = '00BFFF'
50 | '.aws' = 'EC912D'
51 | '.kube' = '326DE6'
52 | '.docker' = '2391E6'
53 | }
54 | }
55 | Files = @{
56 | symlink = '7373ff'
57 | junction = '7373ff'
58 | WellKnown = @{
59 | '.gitattributes' = 'FF4500'
60 | '.gitconfig' = 'FF4500'
61 | '.gitignore' = 'FF4500'
62 | '.gitmodules' = 'FF4500'
63 | '.gitkeep' = 'FF4500'
64 | 'git-history' = 'FF4500'
65 | 'LICENSE' = 'CD5C5C'
66 | 'LICENSE.md' = 'CD5C5C'
67 | 'LICENSE.txt' = 'CD5C5C'
68 | 'CHANGELOG.md' = '09db09'
69 | 'CHANGELOG.txt' = '09db09'
70 | 'CHANGELOG' = '09db09'
71 | 'README.md' = '00CDCD'
72 | 'README.txt' = '00CDCD'
73 | 'README' = '00CDCD'
74 | '.DS_Store' = '696969'
75 | '.tsbuildinfo' = 'F4A460'
76 | '.jscsrc' = 'F4A460'
77 | '.jshintrc' = 'F4A460'
78 | 'tsconfig.json' = 'F4A460'
79 | 'tslint.json' = 'F4A460'
80 | 'composer.lock' = 'F4A460'
81 | '.jsbeautifyrc' = 'F4A460'
82 | '.esformatter' = 'F4A460'
83 | 'cdp.pid' = 'F4A460'
84 | '.htaccess' = '9ACD32'
85 | '.jshintignore' = '87CEEB'
86 | '.buildignore' = '87CEEB'
87 | '.mrconfig' = '87CEEB'
88 | '.yardopts' = '87CEEB'
89 | 'manifest.mf' = '87CEEB'
90 | '.clang-format' = '87CEEB'
91 | '.clang-tidy' = '87CEEB'
92 | 'favicon.ico' = 'ffc200'
93 | '.travis.yml' = 'ffbe4f'
94 | '.gitlab-ci.yml' = 'FF4500'
95 | '.jenkinsfile' = '6495ED'
96 | 'jenkinsfile' = '6495ED'
97 | 'bitbucket-pipelines.yml' = '87CEFA'
98 | 'bitbucket-pipelines.yaml' = '87CEFA'
99 | '.azure-pipelines.yml' = '00BFFF'
100 | 'makefile' = '6495ED'
101 |
102 | # Firebase
103 | 'firebase.json' = 'FFA500'
104 | '.firebaserc' = 'FFA500'
105 |
106 | # Bower
107 | '.bowerrc' = 'CD5C5C'
108 | 'bower.json' = 'CD5C5C'
109 |
110 | # Conduct
111 | 'code_of_conduct.md' = 'b0b0b0'
112 | 'code_of_conduct.txt' = 'b0b0b0'
113 |
114 | # Docker
115 | 'Dockerfile' = '4682B4'
116 | 'docker-compose.yml' = '4682B4'
117 | 'docker-compose.yaml' = '4682B4'
118 | 'docker-compose.dev.yml' = '4682B4'
119 | 'docker-compose.local.yml' = '4682B4'
120 | 'docker-compose.ci.yml' = '4682B4'
121 | 'docker-compose.override.yml' = '4682B4'
122 | 'docker-compose.staging.yml' = '4682B4'
123 | 'docker-compose.prod.yml' = '4682B4'
124 | 'docker-compose.production.yml' = '4682B4'
125 | 'docker-compose.test.yml' = '4682B4'
126 |
127 | # Vue
128 | 'vue.config.js' = '778899'
129 | 'vue.config.ts' = '778899'
130 |
131 | # Gulp
132 | 'gulpfile.js' = 'CD5C5C'
133 | 'gulpfile.ts' = 'CD5C5C'
134 | 'gulpfile.babel.js' = 'CD5C5C'
135 |
136 | 'gruntfile.js' = 'CD5C5C'
137 |
138 | # NodeJS
139 | 'package.json' = '6B8E23'
140 | 'package-lock.json' = '6B8E23'
141 | '.nvmrc' = '6B8E23'
142 | '.esmrc' = '6B8E23'
143 |
144 | # NPM
145 | '.nmpignore' = '00BFFF'
146 | '.npmrc' = '00BFFF'
147 |
148 | # Authors
149 | 'authors' = 'FF6347'
150 | 'authors.md' = 'FF6347'
151 | 'authors.txt' = 'FF6347'
152 |
153 | # Terraform
154 | '.terraform.lock.hcl' = '948EEC'
155 |
156 | # Gradle
157 | 'gradlew' = '39D52D'
158 | }
159 | # Archive files
160 | '.7z' = 'DAA520'
161 | '.bz' = 'DAA520'
162 | '.tar' = 'DAA520'
163 | '.zip' = 'DAA520'
164 | '.gz' = 'DAA520'
165 | '.xz' = 'DAA520'
166 | '.br' = 'DAA520'
167 | '.bzip2' = 'DAA520'
168 | '.gzip' = 'DAA520'
169 | '.brotli' = 'DAA520'
170 | '.rar' = 'DAA520'
171 | '.tgz' = 'DAA520'
172 |
173 | # Executable things
174 | '.bat' = '008000'
175 | '.cmd' = '008000'
176 | '.exe' = '00e18a'
177 | '.pl' = '8A2BE2'
178 |
179 | '.sh' = 'FF4500'
180 |
181 | # App Packages
182 | '.msi' = 'ffb247'
183 | '.msix' = 'ffb247'
184 | '.msixbundle' = 'ffb247'
185 | '.appx' = 'ffb247'
186 | '.AppxBundle' = 'ffb247'
187 | '.deb' = 'ffb247'
188 | '.rpm' = 'ffb247'
189 |
190 | # PowerShell
191 | '.ps1' = '00BFFF'
192 | '.psm1' = '00BFFF'
193 | '.psd1' = '00BFFF'
194 | '.ps1xml' = '00BFFF'
195 | '.psc1' = '00BFFF'
196 | '.pssc' = '00BFFF'
197 |
198 | # Javascript
199 | '.js' = 'FFC200'
200 | '.esx' = 'FFC200'
201 | '.mjs' = 'FFC200'
202 |
203 | # Java
204 | '.java' = 'F89820'
205 | '.jar' = 'F89820'
206 |
207 | '.gradle' = '39D52D'
208 |
209 | # Python
210 | '.py' = '4B8BBE'
211 | '.ipynb' = '4B8BBE'
212 |
213 | # React
214 | '.jsx' = '20B2AA'
215 | '.tsx' = '20B2AA'
216 |
217 | # Typescript
218 | '.ts' = 'FFC200'
219 |
220 | # Not-executable code files
221 | '.dll' = '87CEEB'
222 |
223 | # Importable Data files
224 | '.clixml' = '00BFFF'
225 | '.csv' = '9ACD32'
226 | '.tsv' = '9ACD32'
227 |
228 | # Settings
229 | '.ini' = '6495ED'
230 | '.dlc' = '6495ED'
231 | '.config' = '6495ED'
232 | '.conf' = '6495ED'
233 | '.properties' = '6495ED'
234 | '.prop' = '6495ED'
235 | '.settings' = '6495ED'
236 | '.option' = '6495ED'
237 | '.reg' = '6495ED'
238 | '.props' = '6495ED'
239 | '.toml' = '6495ED'
240 | '.prefs' = '6495ED'
241 | '.sln.dotsettings' = '6495ED'
242 | '.sln.dotsettings.user' = '6495ED'
243 | '.cfg' = '6495ED'
244 |
245 | # Source Files
246 | '.c' = 'A9A9A9'
247 | '.cpp' = 'A9A9A9'
248 | '.cxx' = 'A9A9A9'
249 | '.c++' = 'A9A9A9'
250 | '.go' = '20B2AA'
251 | '.php' = '6A5ACD'
252 |
253 | # Visual Studio
254 | '.csproj' = 'EE82EE'
255 | '.ruleset' = 'EE82EE'
256 | '.sln' = 'EE82EE'
257 | '.slnf' = 'EE82EE'
258 | '.suo' = 'EE82EE'
259 | '.vb' = 'EE82EE'
260 | '.vbs' = 'EE82EE'
261 | '.vcxitems' = 'EE82EE'
262 | '.vcxitems.filters' = 'EE82EE'
263 | '.vcxproj' = 'EE82EE'
264 | '.vsxproj.filters' = 'EE82EE'
265 |
266 | # CSharp
267 | '.cs' = '7B68EE'
268 | '.csx' = '7B68EE'
269 |
270 | # Haskell
271 | '.hs' = '9932CC'
272 |
273 | # XAML
274 | '.xaml' = '87CEFA'
275 |
276 | # Rust
277 | '.rs' = 'FF4500'
278 |
279 | # Database
280 | '.pdb' = 'ffc200'
281 | '.sql' = 'ffc200'
282 | '.pks' = 'ffc200'
283 | '.pkb' = 'ffc200'
284 | '.accdb' = 'ffc200'
285 | '.mdb' = 'ffc200'
286 | '.sqlite' = 'ffc200'
287 | '.pgsql' = 'ffc200'
288 | '.postgres' = 'ffc200'
289 | '.psql' = 'ffc200'
290 | '.db' = 'ffc200'
291 |
292 | # Source Control
293 | '.patch' = 'FF4500'
294 |
295 | # Project files
296 | '.user' = '00BFFF'
297 | '.code-workspace' = '00BFFF'
298 |
299 | # Text data files
300 | '.log' = 'FFC200'
301 | '.txt' = '00CED1'
302 |
303 | # Subtitle files
304 | '.srt' = '00CED1'
305 | '.lrc' = '00CED1'
306 | '.ass' = 'C50000'
307 |
308 | # HTML/css
309 | '.html' = 'CD5C5C'
310 | '.htm' = 'CD5C5C'
311 | '.xhtml' = 'CD5C5C'
312 | '.html_vm' = 'CD5C5C'
313 | '.asp' = 'CD5C5C'
314 | '.css' = '87CEFA'
315 | '.sass' = 'FF00FF'
316 | '.scss' = 'FF00FF'
317 | '.less' = '6B8E23'
318 |
319 | # Markdown
320 | '.md' = '00BFFF'
321 | '.markdown' = '00BFFF'
322 | '.rst' = '00BFFF'
323 |
324 | # Handlebars
325 | '.hbs' = 'E37933'
326 |
327 | # JSON
328 | '.json' = 'ffc200'
329 | '.tsbuildinfo' = 'ffc200'
330 |
331 | # YAML
332 | '.yml' = 'FF6347'
333 | '.yaml' = 'FF6347'
334 |
335 | # LUA
336 | '.lua' = '87CEFA'
337 |
338 | # Clojure
339 | '.clj' = '00cd65'
340 | '.cljs' = '00cd65'
341 | '.cljc' = '00cd65'
342 |
343 | # Groovy
344 | '.groovy' = '87CEFA'
345 |
346 | # Vue
347 | '.vue' = '20B2AA'
348 |
349 | # Dart
350 | '.dart' = '4682B4'
351 |
352 | # Elixir
353 | '.ex' = '8B4513'
354 | '.exs' = '8B4513'
355 | '.eex' = '8B4513'
356 | '.leex' = '8B4513'
357 |
358 | # Erlang
359 | '.erl' = 'FF6347'
360 |
361 | # Elm
362 | '.elm' = '9932CC'
363 |
364 | # Applescript
365 | '.applescript' = '4682B4'
366 |
367 | # XML
368 | '.xml' = '09db09'
369 | '.plist' = '09db09'
370 | '.xsd' = '09db09'
371 | '.dtd' = '09db09'
372 | '.xsl' = '09db09'
373 | '.xslt' = '09db09'
374 | '.resx' = '09db09'
375 | '.iml' = '09db09'
376 | '.xquery' = '09db09'
377 | '.tmLanguage' = '09db09'
378 | '.manifest' = '09db09'
379 | '.project' = '09db09'
380 |
381 | # Documents
382 | '.chm' = '87CEEB'
383 | '.pdf' = 'CD5C5C'
384 |
385 | # Excel
386 | '.xls' = '9ACD32'
387 | '.xlsx' = '9ACD32'
388 |
389 | # PowerPoint
390 | '.pptx' = 'DC143C'
391 | '.ppt' = 'DC143C'
392 | '.pptm' = 'DC143C'
393 | '.potx' = 'DC143C'
394 | '.potm' = 'DC143C'
395 | '.ppsx' = 'DC143C'
396 | '.ppsm' = 'DC143C'
397 | '.pps' = 'DC143C'
398 | '.ppam' = 'DC143C'
399 | '.ppa' = 'DC143C'
400 |
401 | # Word
402 | '.doc' = '00BFFF'
403 | '.docx' = '00BFFF'
404 | '.rtf' = '00BFFF'
405 |
406 | # Audio
407 | '.mp3' = 'DB7093'
408 | '.flac' = 'DB7093'
409 | '.m4a' = 'DB7093'
410 | '.wma' = 'DB7093'
411 | '.aiff' = 'DB7093'
412 | '.wav' = 'DB7093'
413 | '.aac' = 'DB7093'
414 | '.opus' = 'DB7093'
415 |
416 | # Images
417 | '.png' = '20B2AA'
418 | '.jpeg' = '20B2AA'
419 | '.jpg' = '20B2AA'
420 | '.gif' = '20B2AA'
421 | '.ico' = '20B2AA'
422 | '.tif' = '20B2AA'
423 | '.tiff' = '20B2AA'
424 | '.psd' = '20B2AA'
425 | '.psb' = '20B2AA'
426 | '.ami' = '20B2AA'
427 | '.apx' = '20B2AA'
428 | '.bmp' = '20B2AA'
429 | '.bpg' = '20B2AA'
430 | '.brk' = '20B2AA'
431 | '.cur' = '20B2AA'
432 | '.dds' = '20B2AA'
433 | '.dng' = '20B2AA'
434 | '.eps' = '20B2AA'
435 | '.exr' = '20B2AA'
436 | '.fpx' = '20B2AA'
437 | '.gbr' = '20B2AA'
438 | '.jbig2' = '20B2AA'
439 | '.jb2' = '20B2AA'
440 | '.jng' = '20B2AA'
441 | '.jxr' = '20B2AA'
442 | '.pbm' = '20B2AA'
443 | '.pgf' = '20B2AA'
444 | '.pic' = '20B2AA'
445 | '.raw' = '20B2AA'
446 | '.webp' = '20B2AA'
447 | '.svg' = 'F4A460'
448 |
449 | # Video
450 | '.webm' = 'FFA500'
451 | '.mkv' = 'FFA500'
452 | '.flv' = 'FFA500'
453 | '.vob' = 'FFA500'
454 | '.ogv' = 'FFA500'
455 | '.ogg' = 'FFA500'
456 | '.gifv' = 'FFA500'
457 | '.avi' = 'FFA500'
458 | '.mov' = 'FFA500'
459 | '.qt' = 'FFA500'
460 | '.wmv' = 'FFA500'
461 | '.yuv' = 'FFA500'
462 | '.rm' = 'FFA500'
463 | '.rmvb' = 'FFA500'
464 | '.mp4' = 'FFA500'
465 | '.mpg' = 'FFA500'
466 | '.mp2' = 'FFA500'
467 | '.mpeg' = 'FFA500'
468 | '.mpe' = 'FFA500'
469 | '.mpv' = 'FFA500'
470 | '.m2v' = 'FFA500'
471 |
472 | # Email
473 | '.ics' = '00CED1'
474 |
475 | # Certifactes
476 | '.cer' = 'FF6347'
477 | '.cert' = 'FF6347'
478 | '.crt' = 'FF6347'
479 | '.pfx' = 'FF6347'
480 |
481 | # Keys
482 | '.pem' = '66CDAA'
483 | '.pub' = '66CDAA'
484 | '.key' = '66CDAA'
485 | '.asc' = '66CDAA'
486 | '.gpg' = '66CDAA'
487 |
488 | # Fonts
489 | '.woff' = 'DC143C'
490 | '.woff2' = 'DC143C'
491 | '.ttf' = 'DC143C'
492 | '.eot' = 'DC143C'
493 | '.suit' = 'DC143C'
494 | '.otf' = 'DC143C'
495 | '.bmap' = 'DC143C'
496 | '.fnt' = 'DC143C'
497 | '.odttf' = 'DC143C'
498 | '.ttc' = 'DC143C'
499 | '.font' = 'DC143C'
500 | '.fonts' = 'DC143C'
501 | '.sui' = 'DC143C'
502 | '.ntf' = 'DC143C'
503 | '.mrg' = 'DC143C'
504 |
505 | # Ruby
506 | '.rb' = 'FF0000'
507 | '.erb' = 'FF0000'
508 | '.gemfile' = 'FF0000'
509 | 'Rakefile' = 'FF0000'
510 |
511 | # FSharp
512 | '.fs' = '00BFFF'
513 | '.fsx' = '00BFFF'
514 | '.fsi' = '00BFFF'
515 | '.fsproj' = '00BFFF'
516 |
517 | # Docker
518 | '.dockerignore' = '4682B4'
519 | '.dockerfile' = '4682B4'
520 |
521 |
522 | # VSCode
523 | '.vscodeignore' = '6495ED'
524 | '.vsixmanifest' = '6495ED'
525 | '.vsix' = '6495ED'
526 | '.code-workplace' = '6495ED'
527 |
528 | # Sublime
529 | '.sublime-project' = 'F4A460'
530 | '.sublime-workspace' = 'F4A460'
531 |
532 | '.lock' = 'DAA520'
533 |
534 | # Terraform
535 | '.tf' = '948EEC'
536 | '.tfvars' = '948EEC'
537 | '.auto.tfvars' = '948EEC'
538 |
539 | # Bicep
540 | '.bicep' = '00BFFF'
541 |
542 | # Disk Image
543 | '.vmdk' = 'a9afb8'
544 | '.vhd' = 'a9afb8'
545 | '.vhdx' = 'a9afb8'
546 | '.img' = 'a9afb8'
547 | '.iso' = 'a9afb8'
548 |
549 | # R language
550 | '.R' = '276DC3'
551 | '.Rmd' = '276DC3'
552 | '.Rproj' = '276DC3'
553 |
554 | # Julia language
555 | '.jl' = '9259a3'
556 |
557 | # Vim
558 | '.vim' = '019833'
559 |
560 | # Puppet
561 | '.pp' = 'FFA61A'
562 | '.epp' = 'FFA61A'
563 |
564 | # Scala
565 | '.scala' = 'DE3423'
566 | '.sc' = 'DE3423'
567 | '.sbt' = 'DE3423'
568 |
569 | # Autodesk Inventor
570 | '.iLogicVb' = 'A63B22'
571 |
572 | '.svelte' = 'FF3E00'
573 | }
574 | }
575 | }
576 |
--------------------------------------------------------------------------------
/Terminal-Icons/Data/colorThemes/dracula.psd1:
--------------------------------------------------------------------------------
1 | @{
2 | Name = 'dracula'
3 | Types = @{
4 | Directories = @{
5 | symlink = '6272a4'
6 | junction = '6272a4'
7 | WellKnown = @{
8 | docs = '8be9fd'
9 | documents = '8be9fd'
10 | desktop = '8be9fd'
11 | benchmark = 'ffb86c'
12 | demo = 'bd93f9'
13 | samples = 'bd93f9'
14 | contacts = '8be9fd'
15 | apps = 'ff5555'
16 | applications = 'ff5555'
17 | artifacts = 'ffb86c'
18 | shortcuts = 'ff5555'
19 | links = 'ff5555'
20 | fonts = 'ff5555'
21 | images = '50fa7b'
22 | photos = '50fa7b'
23 | pictures = '50fa7b'
24 | videos = 'ffb86c'
25 | movies = 'ffb86c'
26 | media = 'f8f8f2'
27 | music = 'ff79c6'
28 | songs = 'ff79c6'
29 | onedrive = 'f8f8f2'
30 | downloads = 'f8f8f2'
31 | src = '50fa7b'
32 | development = '50fa7b'
33 | projects = '50fa7b'
34 | bin = '8be9fd'
35 | tests = '8be9fd'
36 | windows = '8be9fd'
37 | users = 'f8f8f2'
38 | favorites = 'f1fa8c'
39 | output = '50fa7b'
40 | '.config' = '50fa7b'
41 | '.cache' = '50fa7b'
42 | '.vscode' = '8be9fd'
43 | '.vscode-insiders' = '8be9fd'
44 | '.git' = 'ff5555'
45 | '.github' = 'f8f8f2'
46 | 'github' = 'f8f8f2'
47 | 'node_modules' = '50fa7b'
48 | '.terraform' = '6272a4'
49 | '.azure' = '8be9fd'
50 | '.aws' = 'ffb86c'
51 | '.kube' = '6272a4'
52 | '.docker' = '6272a4'
53 | }
54 | }
55 | Files = @{
56 | symlink = '6272a4'
57 | junction = '6272a4'
58 | WellKnown = @{
59 | '.gitattributes' = 'ff5555'
60 | '.gitconfig' = 'ff5555'
61 | '.gitignore' = 'ff5555'
62 | '.gitmodules' = 'ff5555'
63 | '.gitkeep' = 'ff5555'
64 | 'git-history' = 'ff5555'
65 | 'LICENSE' = 'ff5555'
66 | 'LICENSE.md' = 'ff5555'
67 | 'LICENSE.txt' = 'ff5555'
68 | 'CHANGELOG.md' = '50fa7b'
69 | 'CHANGELOG.txt' = '50fa7b'
70 | 'CHANGELOG' = '50fa7b'
71 | 'README.md' = '8be9fd'
72 | 'README.txt' = '8be9fd'
73 | 'README' = '8be9fd'
74 | '.DS_Store' = '44475a'
75 | '.tsbuildinfo' = 'ffb86c'
76 | '.jscsrc' = 'ffb86c'
77 | '.jshintrc' = 'ffb86c'
78 | 'tsconfig.json' = 'ffb86c'
79 | 'tslint.json' = 'ffb86c'
80 | 'composer.lock' = 'ffb86c'
81 | '.jsbeautifyrc' = 'ffb86c'
82 | '.esformatter' = 'ffb86c'
83 | 'cdp.pid' = 'ffb86c'
84 | '.htaccess' = '50fa7b'
85 | '.jshintignore' = '8be9fd'
86 | '.buildignore' = '8be9fd'
87 | '.mrconfig' = '8be9fd'
88 | '.yardopts' = '8be9fd'
89 | 'manifest.mf' = '8be9fd'
90 | '.clang-format' = '8be9fd'
91 | '.clang-tidy' = '8be9fd'
92 | 'favicon.ico' = 'f1fa8c'
93 | '.travis.yml' = 'ffb86c'
94 | '.gitlab-ci.yml' = 'ff5555'
95 | '.jenkinsfile' = '6272a4'
96 | 'jenkinsfile' = '6272a4'
97 | 'bitbucket-pipelines.yml' = '8be9fd'
98 | 'bitbucket-pipelines.yaml' = '8be9fd'
99 | '.azure-pipelines.yml' = '8be9fd'
100 | 'makefile' = '6272a4'
101 |
102 | # Firebase
103 | 'firebase.json' = 'ffb86c'
104 | '.firebaserc' = 'ffb86c'
105 |
106 | # Bower
107 | '.bowerrc' = 'ff5555'
108 | 'bower.json' = 'ff5555'
109 |
110 | # Conduct
111 | 'code_of_conduct.md' = 'f8f8f2'
112 | 'code_of_conduct.txt' = 'f8f8f2'
113 |
114 | # Docker
115 | 'Dockerfile' = '6272a4'
116 | 'docker-compose.yml' = '6272a4'
117 | 'docker-compose.yaml' = '6272a4'
118 | 'docker-compose.dev.yml' = '6272a4'
119 | 'docker-compose.local.yml' = '6272a4'
120 | 'docker-compose.ci.yml' = '6272a4'
121 | 'docker-compose.override.yml' = '6272a4'
122 | 'docker-compose.staging.yml' = '6272a4'
123 | 'docker-compose.prod.yml' = '6272a4'
124 | 'docker-compose.production.yml' = '6272a4'
125 | 'docker-compose.test.yml' = '6272a4'
126 |
127 | # Vue
128 | 'vue.config.js' = '44475a'
129 | 'vue.config.ts' = '44475a'
130 |
131 | # Gulp
132 | 'gulpfile.js' = 'ff5555'
133 | 'gulpfile.ts' = 'ff5555'
134 | 'gulpfile.babel.js' = 'ff5555'
135 |
136 | 'gruntfile.js' = 'ff5555'
137 |
138 | # NodeJS
139 | 'package.json' = '50fa7b'
140 | 'package-lock.json' = '50fa7b'
141 | '.nvmrc' = '50fa7b'
142 | '.esmrc' = '50fa7b'
143 |
144 | # NPM
145 | '.nmpignore' = '8be9fd'
146 | '.npmrc' = '8be9fd'
147 |
148 | # Authors
149 | 'authors' = 'ff5555'
150 | 'authors.md' = 'ff5555'
151 | 'authors.txt' = 'ff5555'
152 |
153 | # Terraform
154 | '.terraform.lock.hcl' = '6272a4'
155 |
156 | # Gradle
157 | 'gradlew' = '50fa7b'
158 | }
159 | # Archive files
160 | '.7z' = 'ffb86c'
161 | '.bz' = 'ffb86c'
162 | '.tar' = 'ffb86c'
163 | '.zip' = 'ffb86c'
164 | '.gz' = 'ffb86c'
165 | '.xz' = 'ffb86c'
166 | '.br' = 'ffb86c'
167 | '.bzip2' = 'ffb86c'
168 | '.gzip' = 'ffb86c'
169 | '.brotli' = 'ffb86c'
170 | '.rar' = 'ffb86c'
171 | '.tgz' = 'ffb86c'
172 |
173 | # Executable things
174 | '.bat' = '50fa7b'
175 | '.cmd' = '50fa7b'
176 | '.exe' = '8be9fd'
177 | '.pl' = 'bd93f9'
178 |
179 | '.sh' = 'ff5555'
180 |
181 | # App Packages
182 | '.msi' = 'ffb86c'
183 | '.msix' = 'ffb86c'
184 | '.msixbundle' = 'ffb86c'
185 | '.appx' = 'ffb86c'
186 | '.AppxBundle' = 'ffb86c'
187 | '.deb' = 'ffb86c'
188 | '.rpm' = 'ffb86c'
189 |
190 | # PowerShell
191 | '.ps1' = '8be9fd'
192 | '.psm1' = '8be9fd'
193 | '.psd1' = '8be9fd'
194 | '.ps1xml' = '8be9fd'
195 | '.psc1' = '8be9fd'
196 | '.pssc' = '8be9fd'
197 |
198 | # Javascript
199 | '.js' = 'f1fa8c'
200 | '.esx' = 'f1fa8c'
201 | '.mjs' = 'f1fa8c'
202 |
203 | # Java
204 | '.java' = 'ffb86c'
205 | '.jar' = 'ffb86c'
206 |
207 | '.gradle' = '50fa7b'
208 |
209 | # Python
210 | '.py' = '6272a4'
211 | '.ipynb' = '6272a4'
212 |
213 |
214 | # React
215 | '.jsx' = '6272a4'
216 | '.tsx' = '6272a4'
217 |
218 | # Typescript
219 | '.ts' = 'f1fa8c'
220 |
221 | # Not-executable code files
222 | '.dll' = '8be9fd'
223 |
224 | # Importable Data files
225 | '.clixml' = '8be9fd'
226 | '.csv' = '50fa7b'
227 | '.tsv' = '50fa7b'
228 |
229 | # Settings
230 | '.ini' = '6272a4'
231 | '.dlc' = '6272a4'
232 | '.config' = '6272a4'
233 | '.conf' = '6272a4'
234 | '.properties' = '6272a4'
235 | '.prop' = '6272a4'
236 | '.settings' = '6272a4'
237 | '.option' = '6272a4'
238 | '.reg' = '6272a4'
239 | '.props' = '6272a4'
240 | '.toml' = '6272a4'
241 | '.prefs' = '6272a4'
242 | '.sln.dotsettings' = '6272a4'
243 | '.sln.dotsettings.user' = '6272a4'
244 | '.cfg' = '6272a4'
245 |
246 | # Source Files
247 | '.c' = 'f8f8f2'
248 | '.cpp' = 'f8f8f2'
249 | '.cxx' = 'f8f8f2'
250 | '.c++' = 'f8f8f2'
251 | '.go' = '6272a4'
252 | '.php' = 'bd93f9'
253 |
254 | # Visual Studio
255 | '.csproj' = 'ff79c6'
256 | '.ruleset' = 'ff79c6'
257 | '.sln' = 'ff79c6'
258 | '.slnf' = 'ff79c6'
259 | '.suo' = 'ff79c6'
260 | '.vb' = 'ff79c6'
261 | '.vbs' = 'ff79c6'
262 | '.vcxitems' = 'ff79c6'
263 | '.vcxitems.filters' = 'ff79c6'
264 | '.vcxproj' = 'ff79c6'
265 | '.vsxproj.filters' = 'ff79c6'
266 |
267 | # CSharp
268 | '.cs' = '6272a4'
269 | '.csx' = '6272a4'
270 |
271 | # Haskell
272 | '.hs' = 'bd93f9'
273 |
274 | # XAML
275 | '.xaml' = '8be9fd'
276 |
277 | # Rust
278 | '.rs' = 'ff5555'
279 |
280 | # Database
281 | '.pdb' = 'f1fa8c'
282 | '.sql' = 'f1fa8c'
283 | '.pks' = 'f1fa8c'
284 | '.pkb' = 'f1fa8c'
285 | '.accdb' = 'f1fa8c'
286 | '.mdb' = 'f1fa8c'
287 | '.sqlite' = 'f1fa8c'
288 | '.pgsql' = 'f1fa8c'
289 | '.postgres' = 'f1fa8c'
290 | '.psql' = 'f1fa8c'
291 | '.db' = 'f1fa8c'
292 |
293 | # Source Control
294 | '.patch' = 'ff5555'
295 |
296 | # Project files
297 | '.user' = '8be9fd'
298 | '.code-workspace' = '8be9fd'
299 |
300 | # Text data files
301 | '.log' = 'f1fa8c'
302 | '.txt' = '8be9fd'
303 |
304 | # Subtitle files
305 | '.srt' = '8be9fd'
306 | '.lrc' = '8be9fd'
307 | '.ass' = 'ff5555'
308 |
309 | # HTML/css
310 | '.html' = 'ff5555'
311 | '.htm' = 'ff5555'
312 | '.xhtml' = 'ff5555'
313 | '.html_vm' = 'ff5555'
314 | '.asp' = 'ff5555'
315 | '.css' = '8be9fd'
316 | '.sass' = 'ff79c6'
317 | '.scss' = 'ff79c6'
318 | '.less' = '50fa7b'
319 |
320 | # Markdown
321 | '.md' = '8be9fd'
322 | '.markdown' = '8be9fd'
323 | '.rst' = '8be9fd'
324 |
325 | # Handlebars
326 | '.hbs' = 'ffb86c'
327 |
328 | # JSON
329 | '.json' = 'f1fa8c'
330 | '.tsbuildinfo' = 'f1fa8c'
331 |
332 | # YAML
333 | '.yml' = 'ff5555'
334 | '.yaml' = 'ff5555'
335 |
336 | # LUA
337 | '.lua' = '8be9fd'
338 |
339 | # Clojure
340 | '.clj' = '50fa7b'
341 | '.cljs' = '50fa7b'
342 | '.cljc' = '50fa7b'
343 |
344 | # Groovy
345 | '.groovy' = '8be9fd'
346 |
347 | # Vue
348 | '.vue' = '6272a4'
349 |
350 | # Dart
351 | '.dart' = '6272a4'
352 |
353 | # Elixir
354 | '.ex' = 'ffb86c'
355 | '.exs' = 'ffb86c'
356 | '.eex' = 'ffb86c'
357 | '.leex' = 'ffb86c'
358 |
359 | # Erlang
360 | '.erl' = 'ff5555'
361 |
362 | # Elm
363 | '.elm' = 'bd93f9'
364 |
365 | # Applescript
366 | '.applescript' = '6272a4'
367 |
368 | # XML
369 | '.xml' = '50fa7b'
370 | '.plist' = '50fa7b'
371 | '.xsd' = '50fa7b'
372 | '.dtd' = '50fa7b'
373 | '.xsl' = '50fa7b'
374 | '.xslt' = '50fa7b'
375 | '.resx' = '50fa7b'
376 | '.iml' = '50fa7b'
377 | '.xquery' = '50fa7b'
378 | '.tmLanguage' = '50fa7b'
379 | '.manifest' = '50fa7b'
380 | '.project' = '50fa7b'
381 |
382 | # Documents
383 | '.chm' = '8be9fd'
384 | '.pdf' = 'ff5555'
385 |
386 | # Excel
387 | '.xls' = '50fa7b'
388 | '.xlsx' = '50fa7b'
389 |
390 | # PowerPoint
391 | '.pptx' = 'ff5555'
392 | '.ppt' = 'ff5555'
393 | '.pptm' = 'ff5555'
394 | '.potx' = 'ff5555'
395 | '.potm' = 'ff5555'
396 | '.ppsx' = 'ff5555'
397 | '.ppsm' = 'ff5555'
398 | '.pps' = 'ff5555'
399 | '.ppam' = 'ff5555'
400 | '.ppa' = 'ff5555'
401 |
402 | # Word
403 | '.doc' = '8be9fd'
404 | '.docx' = '8be9fd'
405 | '.rtf' = '8be9fd'
406 |
407 | # Audio
408 | '.mp3' = 'ff79c6'
409 | '.flac' = 'ff79c6'
410 | '.m4a' = 'ff79c6'
411 | '.wma' = 'ff79c6'
412 | '.aiff' = 'ff79c6'
413 | '.wav' = 'ff79c6'
414 | '.aac' = 'ff79c6'
415 | '.opus' = 'ff79c6'
416 |
417 | # Images
418 | '.png' = '6272a4'
419 | '.jpeg' = '6272a4'
420 | '.jpg' = '6272a4'
421 | '.gif' = '6272a4'
422 | '.ico' = '6272a4'
423 | '.tif' = '6272a4'
424 | '.tiff' = '6272a4'
425 | '.psd' = '6272a4'
426 | '.psb' = '6272a4'
427 | '.ami' = '6272a4'
428 | '.apx' = '6272a4'
429 | '.bmp' = '6272a4'
430 | '.bpg' = '6272a4'
431 | '.brk' = '6272a4'
432 | '.cur' = '6272a4'
433 | '.dds' = '6272a4'
434 | '.dng' = '6272a4'
435 | '.eps' = '6272a4'
436 | '.exr' = '6272a4'
437 | '.fpx' = '6272a4'
438 | '.gbr' = '6272a4'
439 | '.jbig2' = '6272a4'
440 | '.jb2' = '6272a4'
441 | '.jng' = '6272a4'
442 | '.jxr' = '6272a4'
443 | '.pbm' = '6272a4'
444 | '.pgf' = '6272a4'
445 | '.pic' = '6272a4'
446 | '.raw' = '6272a4'
447 | '.webp' = '6272a4'
448 | '.svg' = 'ffb86c'
449 |
450 | # Video
451 | '.webm' = 'ffb86c'
452 | '.mkv' = 'ffb86c'
453 | '.flv' = 'ffb86c'
454 | '.vob' = 'ffb86c'
455 | '.ogv' = 'ffb86c'
456 | '.ogg' = 'ffb86c'
457 | '.gifv' = 'ffb86c'
458 | '.avi' = 'ffb86c'
459 | '.mov' = 'ffb86c'
460 | '.qt' = 'ffb86c'
461 | '.wmv' = 'ffb86c'
462 | '.yuv' = 'ffb86c'
463 | '.rm' = 'ffb86c'
464 | '.rmvb' = 'ffb86c'
465 | '.mp4' = 'ffb86c'
466 | '.mpg' = 'ffb86c'
467 | '.mp2' = 'ffb86c'
468 | '.mpeg' = 'ffb86c'
469 | '.mpe' = 'ffb86c'
470 | '.mpv' = 'ffb86c'
471 | '.m2v' = 'ffb86c'
472 |
473 | # Email
474 | '.ics' = '8be9fd'
475 |
476 | # Certifactes
477 | '.cer' = 'ff5555'
478 | '.cert' = 'ff5555'
479 | '.crt' = 'ff5555'
480 | '.pfx' = 'ff5555'
481 |
482 | # Keys
483 | '.pem' = '8be9fd'
484 | '.pub' = '8be9fd'
485 | '.key' = '8be9fd'
486 | '.asc' = '8be9fd'
487 | '.gpg' = '8be9fd'
488 |
489 | # Fonts
490 | '.woff' = 'ff5555'
491 | '.woff2' = 'ff5555'
492 | '.ttf' = 'ff5555'
493 | '.eot' = 'ff5555'
494 | '.suit' = 'ff5555'
495 | '.otf' = 'ff5555'
496 | '.bmap' = 'ff5555'
497 | '.fnt' = 'ff5555'
498 | '.odttf' = 'ff5555'
499 | '.ttc' = 'ff5555'
500 | '.font' = 'ff5555'
501 | '.fonts' = 'ff5555'
502 | '.sui' = 'ff5555'
503 | '.ntf' = 'ff5555'
504 | '.mrg' = 'ff5555'
505 |
506 | # Ruby
507 | '.rb' = 'ff5555'
508 | '.erb' = 'ff5555'
509 | '.gemfile' = 'ff5555'
510 | 'Rakefile' = 'ff5555'
511 |
512 | # FSharp
513 | '.fs' = '8be9fd'
514 | '.fsx' = '8be9fd'
515 | '.fsi' = '8be9fd'
516 | '.fsproj' = '8be9fd'
517 |
518 | # Docker
519 | '.dockerignore' = '6272a4'
520 | '.dockerfile' = '6272a4'
521 |
522 |
523 | # VSCode
524 | '.vscodeignore' = '6272a4'
525 | '.vsixmanifest' = '6272a4'
526 | '.vsix' = '6272a4'
527 | '.code-workplace' = '6272a4'
528 |
529 | # Sublime
530 | '.sublime-project' = 'ffb86c'
531 | '.sublime-workspace' = 'ffb86c'
532 |
533 | '.lock' = 'ffb86c'
534 |
535 | # Terraform
536 | '.tf' = '6272a4'
537 | '.tfvars' = '6272a4'
538 | '.auto.tfvars' = '6272a4'
539 |
540 | # Bicep
541 | '.bicep' = '8be9fd'
542 |
543 | # Disk Image
544 | '.vmdk' = 'f8f8f2'
545 | '.vhd' = 'f8f8f2'
546 | '.vhdx' = 'f8f8f2'
547 | '.img' = 'f8f8f2'
548 | '.iso' = 'f8f8f2'
549 |
550 | # R language
551 | '.R' = '6272a4'
552 | '.Rmd' = '6272a4'
553 | '.Rproj' = '6272a4'
554 |
555 | # Julia language
556 | '.jl' = '9259a3'
557 |
558 | # Vim
559 | '.vim' = '50fa7b'
560 |
561 | # Puppet
562 | '.pp' = 'ffb86c'
563 | '.epp' = 'ffb86c'
564 |
565 | # Scala
566 | '.scala' = 'ff5555'
567 | '.sc' = 'ff5555'
568 | '.sbt' = 'ff5555'
569 |
570 | # Autodesk Inventor
571 | '.iLogicVb' = 'ff5555'
572 |
573 | '.svelte' = 'ff5555'
574 | }
575 | }
576 | }
577 |
--------------------------------------------------------------------------------
/Terminal-Icons/Private/Add-Theme.ps1:
--------------------------------------------------------------------------------
1 | function Add-Theme {
2 | [cmdletbinding(DefaultParameterSetName = 'Path', SupportsShouldProcess)]
3 | param(
4 | [Parameter(
5 | Mandatory,
6 | ParameterSetName = 'Path',
7 | Position = 0,
8 | ValueFromPipeline,
9 | ValueFromPipelineByPropertyName
10 | )]
11 | [ValidateNotNullOrEmpty()]
12 | [SupportsWildcards()]
13 | [string[]]$Path,
14 |
15 | [Parameter(
16 | Mandatory,
17 | ParameterSetName = 'LiteralPath',
18 | Position = 0,
19 | ValueFromPipelineByPropertyName
20 | )]
21 | [ValidateNotNullOrEmpty()]
22 | [Alias('PSPath')]
23 | [string[]]$LiteralPath,
24 |
25 | [switch]$Force,
26 |
27 | [ValidateSet('Color', 'Icon')]
28 | [Parameter(Mandatory)]
29 | [string]$Type
30 | )
31 |
32 | process {
33 | # Resolve path(s)
34 | if ($PSCmdlet.ParameterSetName -eq 'Path') {
35 | $paths = Resolve-Path -Path $Path | Select-Object -ExpandProperty Path
36 | } elseif ($PSCmdlet.ParameterSetName -eq 'LiteralPath') {
37 | $paths = Resolve-Path -LiteralPath $LiteralPath | Select-Object -ExpandProperty Path
38 | }
39 |
40 | foreach ($resolvedPath in $paths) {
41 | if (Test-Path $resolvedPath) {
42 | $item = Get-Item -LiteralPath $resolvedPath
43 |
44 | $statusMsg = "Adding $($type.ToLower()) theme [$($item.BaseName)]"
45 | $confirmMsg = "Are you sure you want to add file [$resolvedPath]?"
46 | $operation = "Add $($Type.ToLower())"
47 | if ($PSCmdlet.ShouldProcess($statusMsg, $confirmMsg, $operation) -or $Force.IsPresent) {
48 | if (-not $script:userThemeData.Themes.$Type.ContainsKey($item.BaseName) -or $Force.IsPresent) {
49 |
50 | $theme = Import-PowerShellDataFile $item.FullName
51 |
52 | # Convert color theme into escape sequences for lookup later
53 | if ($Type -eq 'Color') {
54 | # Add empty color theme
55 | if (-not $script:colorSequences.ContainsKey($theme.Name)) {
56 | $script:colorSequences[$theme.Name] = New-EmptyColorTheme
57 | }
58 |
59 | # Directories
60 | $theme.Types.Directories.WellKnown.GetEnumerator().ForEach({
61 | $script:colorSequences[$theme.Name].Types.Directories[$_.Name] = ConvertFrom-RGBColor -RGB $_.Value
62 | })
63 | # Wellknown files
64 | $theme.Types.Files.WellKnown.GetEnumerator().ForEach({
65 | $script:colorSequences[$theme.Name].Types.Files.WellKnown[$_.Name] = ConvertFrom-RGBColor -RGB $_.Value
66 | })
67 | # File extensions
68 | $theme.Types.Files.GetEnumerator().Where({$_.Name -ne 'WellKnown'}).ForEach({
69 | $script:colorSequences[$theme.Name].Types.Files[$_.Name] = ConvertFrom-RGBColor -RGB $_.Value
70 | })
71 | }
72 |
73 | $script:userThemeData.Themes.$Type[$theme.Name] = $theme
74 | Save-Theme -Theme $theme -Type $Type
75 | } else {
76 | Write-Error "$Type theme [$($theme.Name)] already exists. Use the -Force switch to overwrite."
77 | }
78 | }
79 | } else {
80 | Write-Error "Path [$resolvedPath] is not valid."
81 | }
82 | }
83 | }
84 | }
85 |
--------------------------------------------------------------------------------
/Terminal-Icons/Private/ConvertFrom-ColorEscapeSequence.ps1:
--------------------------------------------------------------------------------
1 | function ConvertFrom-ColorEscapeSequence {
2 | [OutputType([string])]
3 | [CmdletBinding()]
4 | param(
5 | [Parameter(Mandatory, ValueFromPipeline)]
6 | [ValidateNotNullOrEmpty()]
7 | [string]$Sequence
8 | )
9 |
10 | process {
11 | # Example input sequence: 'e[38;2;135;206;250m'
12 | $arr = $Sequence.Split(';')
13 | $r = '{0:x}' -f [int]$arr[2]
14 | $g = '{0:x}' -f [int]$arr[3]
15 | $b = '{0:x}' -f [int]$arr[4].TrimEnd('m')
16 |
17 | ($r + $g + $b).ToUpper()
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Terminal-Icons/Private/ConvertFrom-RGBColor.ps1:
--------------------------------------------------------------------------------
1 | function ConvertFrom-RGBColor {
2 | [OutputType([string])]
3 | [CmdletBinding()]
4 | param(
5 | [Parameter(Mandatory, ValueFromPipeline)]
6 | [ValidateNotNullOrEmpty()]
7 | [string]$RGB
8 | )
9 |
10 | process {
11 | $RGB = $RGB.Replace('#', '')
12 | $r = [convert]::ToInt32($RGB.SubString(0,2), 16)
13 | $g = [convert]::ToInt32($RGB.SubString(2,2), 16)
14 | $b = [convert]::ToInt32($RGB.SubString(4,2), 16)
15 |
16 | "${script:escape}[38;2;$r;$g;$b`m"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Terminal-Icons/Private/ConvertTo-ColorSequence.ps1:
--------------------------------------------------------------------------------
1 | function ConvertTo-ColorSequence {
2 | [cmdletbinding()]
3 | param(
4 | [parameter(Mandatory, ValueFromPipeline)]
5 | [hashtable]$ColorData
6 | )
7 |
8 | process {
9 | $cs = New-EmptyColorTheme
10 | $cs.Name = $ColorData.Name
11 |
12 | # Directories
13 | if ($ColorData.Types.Directories['symlink']) {
14 | $cs.Types.Directories['symlink'] = ConvertFrom-RGBColor -RGB $ColorData.Types.Directories['symlink']
15 | }
16 | if ($ColorData.Types.Directories['junction']) {
17 | $cs.Types.Directories['junction'] = ConvertFrom-RGBColor -RGB $ColorData.Types.Directories['junction']
18 | }
19 | $ColorData.Types.Directories.WellKnown.GetEnumerator().ForEach({
20 | $cs.Types.Directories[$_.Name] = ConvertFrom-RGBColor -RGB $_.Value
21 | })
22 |
23 | # Wellknown files
24 | if ($ColorData.Types.Files['symlink']) {
25 | $cs.Types.Files['symlink'] = ConvertFrom-RGBColor -RGB $ColorData.Types.Files['symlink']
26 | }
27 | if ($ColorData.Types.Files['junction']) {
28 | $cs.Types.Files['junction'] = ConvertFrom-RGBColor -RGB $ColorData.Types.Files['junction']
29 | }
30 | $ColorData.Types.Files.WellKnown.GetEnumerator().ForEach({
31 | $cs.Types.Files.WellKnown[$_.Name] = ConvertFrom-RGBColor -RGB $_.Value
32 | })
33 |
34 | # File extensions
35 | $ColorData.Types.Files.GetEnumerator().Where({$_.Name -ne 'WellKnown' -and $_.Name -ne ''}).ForEach({
36 | $cs.Types.Files[$_.Name] = ConvertFrom-RGBColor -RGB $_.Value
37 | })
38 |
39 | $cs
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/Terminal-Icons/Private/Get-ThemeStoragePath.ps1:
--------------------------------------------------------------------------------
1 | function Get-ThemeStoragePath {
2 | [OutputType([string])]
3 | [CmdletBinding()]
4 | param()
5 |
6 | if ($IsLinux -or $IsMacOs) {
7 | if (-not ($basePath = $env:XDG_CONFIG_HOME)) {
8 | $basePath = [IO.Path]::Combine($HOME, '.local', 'share')
9 | }
10 | } else {
11 | if (-not ($basePath = $env:APPDATA)) {
12 | $basePath = [Environment]::GetFolderPath('ApplicationData')
13 | }
14 | }
15 |
16 | if ($basePath) {
17 | $storagePath = [IO.Path]::Combine($basePath, 'powershell', 'Community', 'Terminal-Icons')
18 | if (-not (Test-Path $storagePath)) {
19 | New-Item -Path $storagePath -ItemType Directory -Force > $null
20 | }
21 | $storagePath
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Terminal-Icons/Private/Import-ColorTheme.ps1:
--------------------------------------------------------------------------------
1 | function Import-ColorTheme {
2 | [OutputType([hashtable])]
3 | [cmdletbinding()]
4 | param()
5 |
6 | $hash = @{}
7 | (Get-ChildItem -Path $moduleRoot/Data/colorThemes).ForEach({
8 | $colorData = Import-PowerShellDataFile $_.FullName
9 | $hash[$colorData.Name] = $colorData
10 | $hash[$colorData.Name].Types.Directories[''] = $colorReset
11 | $hash[$colorData.Name].Types.Files[''] = $colorReset
12 | })
13 | $hash
14 | }
15 |
--------------------------------------------------------------------------------
/Terminal-Icons/Private/Import-IconTheme.ps1:
--------------------------------------------------------------------------------
1 | function Import-IconTheme {
2 | [OutputType([hashtable])]
3 | [cmdletbinding()]
4 | param()
5 |
6 | $hash = @{}
7 | (Get-ChildItem -Path $moduleRoot/Data/iconThemes).ForEach({
8 | $hash.Add($_.Basename, (Import-PowerShellDataFile $_.FullName))
9 | })
10 | $hash
11 | }
12 |
--------------------------------------------------------------------------------
/Terminal-Icons/Private/Import-Preferences.ps1:
--------------------------------------------------------------------------------
1 | function Import-Preferences {
2 | [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseShouldProcessForStateChangingFunctions', '')]
3 | [OutputType([hashtable])]
4 | [cmdletbinding()]
5 | param(
6 | [parameter(ValueFromPipeline)]
7 | [string]$Path = (Join-Path (Get-ThemeStoragePath) 'prefs.xml'),
8 |
9 | [string]$DefaultThemeName = $script:defaultTheme
10 | )
11 |
12 | begin {
13 | $defaultPrefs = @{
14 | CurrentColorTheme = $DefaultThemeName
15 | CurrentIconTheme = $DefaultThemeName
16 | }
17 | }
18 |
19 | process {
20 | if (Test-Path $Path) {
21 | try {
22 | Import-Clixml -Path $Path -ErrorAction Stop
23 | } catch {
24 | Write-Warning "Unable to parse [$Path]. Setting default preferences."
25 | $defaultPrefs
26 | }
27 | } else {
28 | $defaultPrefs
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/Terminal-Icons/Private/New-EmptyColorTheme.ps1:
--------------------------------------------------------------------------------
1 | function New-EmptyColorTheme {
2 | [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseShouldProcessForStateChangingFunctions', '')]
3 | [OutputType([hashtable])]
4 | [cmdletbinding()]
5 | param()
6 |
7 | @{
8 | Name = ''
9 | Types = @{
10 | Directories = @{
11 | #'' = "`e[0m"
12 | symlink = ''
13 | junction = ''
14 | WellKnown = @{}
15 | }
16 | Files = @{
17 | #'' = "`e[0m"
18 | symlink = ''
19 | junction = ''
20 | WellKnown = @{}
21 | }
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Terminal-Icons/Private/Resolve-Icon.ps1:
--------------------------------------------------------------------------------
1 | function Resolve-Icon {
2 | [OutputType([hashtable])]
3 | [CmdletBinding()]
4 | param(
5 | [Parameter(Mandatory, ValueFromPipeline)]
6 | [IO.FileSystemInfo]$FileInfo,
7 |
8 | [string]$IconTheme = $script:userThemeData.CurrentIconTheme,
9 |
10 | [string]$ColorTheme = $script:userThemeData.CurrentColorTheme
11 | )
12 |
13 | begin {
14 | $icons = $script:userThemeData.Themes.Icon[$IconTheme]
15 | $colors = $script:colorSequences[$ColorTheme]
16 | }
17 |
18 | process {
19 | $displayInfo = @{
20 | Icon = $null
21 | Color = $null
22 | Target = ''
23 | }
24 |
25 | if ($FileInfo.PSIsContainer) {
26 | $type = 'Directories'
27 | } else {
28 | $type = 'Files'
29 | }
30 |
31 | switch ($FileInfo.LinkType) {
32 | # Determine symlink or junction icon and color
33 | 'Junction' {
34 | if ($icons) {
35 | $iconName = $icons.Types.($type)['junction']
36 | } else {
37 | $iconName = $null
38 | }
39 | if ($colors) {
40 | $colorSeq = $colors.Types.($type)['junction']
41 | } else {
42 | $colorSet = $script:colorReset
43 | }
44 | $displayInfo['Target'] = ' ' + $glyphs['nf-md-arrow_right_thick'] + ' ' + $FileInfo.Target
45 | break
46 | }
47 | 'SymbolicLink' {
48 | if ($icons) {
49 | $iconName = $icons.Types.($type)['symlink']
50 | } else {
51 | $iconName = $null
52 | }
53 | if ($colors) {
54 | $colorSeq = $colors.Types.($type)['symlink']
55 | } else {
56 | $colorSet = $script:colorReset
57 | }
58 | $displayInfo['Target'] = ' ' + $glyphs['nf-md-arrow_right_thick'] + ' ' + $FileInfo.Target
59 | break
60 | } default {
61 | if ($icons) {
62 | # Determine normal directory icon and color
63 | $iconName = $icons.Types.$type.WellKnown[$FileInfo.Name]
64 | if (-not $iconName) {
65 | if ($FileInfo.PSIsContainer) {
66 | $iconName = $icons.Types.$type[$FileInfo.Name]
67 | } elseif ($icons.Types.$type.ContainsKey($FileInfo.Extension)) {
68 | $iconName = $icons.Types.$type[$FileInfo.Extension]
69 | } else {
70 | # File probably has multiple extensions
71 | # Fallback to computing the full extension
72 | $firstDot = $FileInfo.Name.IndexOf('.')
73 | if ($firstDot -ne -1) {
74 | $fullExtension = $FileInfo.Name.Substring($firstDot)
75 | $iconName = $icons.Types.$type[$fullExtension]
76 | }
77 | }
78 | if (-not $iconName) {
79 | $iconName = $icons.Types.$type['']
80 | }
81 |
82 | # Fallback if everything has gone horribly wrong
83 | if (-not $iconName) {
84 | if ($FileInfo.PSIsContainer) {
85 | $iconName = 'nf-oct-file_directory'
86 | } else {
87 | $iconName = 'nf-fa-file'
88 | }
89 | }
90 | }
91 | } else {
92 | $iconName = $null
93 | }
94 | if ($colors) {
95 | $colorSeq = $colors.Types.$type.WellKnown[$FileInfo.Name]
96 | if (-not $colorSeq) {
97 | if ($FileInfo.PSIsContainer) {
98 | $colorSeq = $colors.Types.$type[$FileInfo.Name]
99 | } elseif ($colors.Types.$type.ContainsKey($FileInfo.Extension)) {
100 | $colorSeq = $colors.Types.$type[$FileInfo.Extension]
101 | } else {
102 | # File probably has multiple extensions
103 | # Fallback to computing the full extension
104 | $firstDot = $FileInfo.Name.IndexOf('.')
105 | if ($firstDot -ne -1) {
106 | $fullExtension = $FileInfo.Name.Substring($firstDot)
107 | $colorSeq = $colors.Types.$type[$fullExtension]
108 | }
109 | }
110 | if (-not $colorSeq) {
111 | $colorSeq = $colors.Types.$type['']
112 | }
113 |
114 | # Fallback if everything has gone horribly wrong
115 | if (-not $colorSeq) {
116 | $colorSeq = $script:colorReset
117 | }
118 | }
119 | } else {
120 | $colorSeq = $script:colorReset
121 | }
122 | }
123 | }
124 | if ($iconName) {
125 | $displayInfo['Icon'] = $glyphs[$iconName]
126 | } else {
127 | $displayInfo['Icon'] = $null
128 | }
129 | $displayInfo['Color'] = $colorSeq
130 | $displayInfo
131 | }
132 | }
133 |
--------------------------------------------------------------------------------
/Terminal-Icons/Private/Save-Preferences.ps1:
--------------------------------------------------------------------------------
1 | function Save-Preferences {
2 | [cmdletbinding()]
3 | param(
4 | [parameter(Mandatory, ValueFromPipeline)]
5 | [hashtable]$Preferences,
6 |
7 | [string]$Path = (Join-Path (Get-ThemeStoragePath) 'prefs.xml')
8 | )
9 |
10 | process {
11 | Write-Debug ('Saving preferendces to [{0}]' -f $Path)
12 | $Preferences | Export-CliXml -Path $Path -Force
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Terminal-Icons/Private/Save-Theme.ps1:
--------------------------------------------------------------------------------
1 | function Save-Theme {
2 | [CmdletBinding()]
3 | param(
4 | [Parameter(Mandatory, ValueFromPipeline)]
5 | [hashtable]$Theme,
6 |
7 | [ValidateSet('color', 'icon')]
8 | [string]$Type,
9 |
10 | [string]$Path = (Get-ThemeStoragePath)
11 | )
12 |
13 | process {
14 | $themePath = Join-Path $Path "$($Theme.Name)_$($Type.ToLower()).xml"
15 | Write-Debug ('Saving [{0}] theme [{1}] to [{2}]' -f $type, $theme.Name, $themePath)
16 | $Theme | Export-CliXml -Path $themePath -Force
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Terminal-Icons/Private/Set-Theme.ps1:
--------------------------------------------------------------------------------
1 | function Set-Theme {
2 | [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseShouldProcessForStateChangingFunctions', '')]
3 | [CmdletBinding()]
4 | param(
5 | [Parameter(Mandatory)]
6 | [AllowNull()]
7 | [AllowEmptyString()]
8 | [string]$Name,
9 |
10 | [ValidateSet('Color', 'Icon')]
11 | [Parameter(Mandatory)]
12 | [string]$Type
13 | )
14 |
15 | if ([string]::IsNullOrEmpty($Name)) {
16 | $script:userThemeData."Current$($Type)Theme" = $null
17 | $script:prefs."Current$($Type)Theme" = ''
18 | Save-Preferences $script:prefs
19 | } else {
20 | if (-not $script:userThemeData.Themes.$Type.ContainsKey($Name)) {
21 | Write-Error "$Type theme [$Name] not found."
22 | } else {
23 | $script:userThemeData."Current$($Type)Theme" = $Name
24 | $script:prefs."Current$($Type)Theme" = $Name
25 | Save-Theme -Theme $userThemeData.Themes.$Type[$Name] -Type $type
26 | Save-Preferences $script:prefs
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/Terminal-Icons/Public/Add-TerminalIconsColorTheme.ps1:
--------------------------------------------------------------------------------
1 | function Add-TerminalIconsColorTheme {
2 | <#
3 | .SYNOPSIS
4 | Add a Terminal-Icons color theme for the current user.
5 | .DESCRIPTION
6 | Add a Terminal-Icons color theme for the current user. The theme data
7 | is stored in the user's profile
8 | .PARAMETER Path
9 | The path to the Terminal-Icons color theme file.
10 | .PARAMETER LiteralPath
11 | The literal path to the Terminal-Icons color theme file.
12 | .PARAMETER Force
13 | Overwrite the color theme if it already exists in the profile.
14 | .EXAMPLE
15 | PS> Add-TerminalIconsColorTheme -Path ./my_color_theme.psd1
16 |
17 | Add the color theme contained in ./my_color_theme.psd1.
18 | .EXAMPLE
19 | PS> Get-ChildItem ./path/to/colorthemes | Add-TerminalIconsColorTheme -Force
20 |
21 | Add all color themes contained in the folder ./path/to/colorthemes and add them,
22 | overwriting existing ones if needed.
23 | .INPUTS
24 | System.String
25 |
26 | You can pipe a string that contains a path to 'Add-TerminalIconsColorTheme'.
27 | .OUTPUTS
28 | None.
29 | .NOTES
30 | 'Add-TerminalIconsColorTheme' will not overwrite an existing theme by default.
31 | Add the -Force switch to overwrite.
32 | .LINK
33 | Add-TerminalIconsIconTheme
34 | #>
35 | [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSShouldProcess', '', Justification='Implemented in private function')]
36 | [CmdletBinding(DefaultParameterSetName = 'Path', SupportsShouldProcess)]
37 | param(
38 | [Parameter(
39 | Mandatory,
40 | ParameterSetName = 'Path',
41 | Position = 0,
42 | ValueFromPipeline,
43 | ValueFromPipelineByPropertyName
44 | )]
45 | [ValidateNotNullOrEmpty()]
46 | [SupportsWildcards()]
47 | [string[]]$Path,
48 |
49 | [Parameter(
50 | Mandatory,
51 | ParameterSetName = 'LiteralPath',
52 | Position = 0,
53 | ValueFromPipelineByPropertyName
54 | )]
55 | [ValidateNotNullOrEmpty()]
56 | [Alias('PSPath')]
57 | [string[]]$LiteralPath,
58 |
59 | [switch]$Force
60 | )
61 |
62 | process {
63 | Add-Theme @PSBoundParameters -Type Color
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/Terminal-Icons/Public/Add-TerminalIconsIconTheme.ps1:
--------------------------------------------------------------------------------
1 | function Add-TerminalIconsIconTheme {
2 | <#
3 | .SYNOPSIS
4 | Add a Terminal-Icons icon theme for the current user.
5 | .DESCRIPTION
6 | Add a Terminal-Icons icon theme for the current user. The theme data
7 | is stored in the user's profile
8 | .PARAMETER Path
9 | The path to the Terminal-Icons icon theme file.
10 | .PARAMETER LiteralPath
11 | The literal path to the Terminal-Icons icon theme file.
12 | .PARAMETER Force
13 | Overwrite the icon theme if it already exists in the profile.
14 | .EXAMPLE
15 | PS> Add-Terminal-IconsIconTHeme -Path ./my_icon_theme.psd1
16 |
17 | Add the icon theme contained in ./my_icon_theme.psd1.
18 | .EXAMPLE
19 | PS> Get-ChildItem ./path/to/iconthemes | Add-TerminalIconsIconTheme -Force
20 |
21 | Add all icon themes contained in the folder ./path/to/iconthemes and add them,
22 | overwriting existing ones if needed.
23 | .INPUTS
24 | System.String
25 |
26 | You can pipe a string that contains a path to 'Add-TerminalIconsIconTheme'.
27 | .OUTPUTS
28 | None.
29 | .NOTES
30 | 'Add-TerminalIconsIconTheme' will not overwrite an existing theme by default.
31 | Add the -Force switch to overwrite.
32 | .LINK
33 | Add-TerminalIconsColorTheme
34 | #>
35 | [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSShouldProcess', '', Justification='Implemented in private function')]
36 | [CmdletBinding(DefaultParameterSetName = 'Path', SupportsShouldProcess)]
37 | param(
38 | [Parameter(
39 | Mandatory,
40 | ParameterSetName = 'Path',
41 | Position = 0,
42 | ValueFromPipeline,
43 | ValueFromPipelineByPropertyName
44 | )]
45 | [ValidateNotNullOrEmpty()]
46 | [SupportsWildcards()]
47 | [string[]]$Path,
48 |
49 | [Parameter(
50 | Mandatory,
51 | ParameterSetName = 'LiteralPath',
52 | Position = 0,
53 | ValueFromPipelineByPropertyName
54 | )]
55 | [ValidateNotNullOrEmpty()]
56 | [Alias('PSPath')]
57 | [string[]]$LiteralPath,
58 |
59 | [switch]$Force
60 | )
61 |
62 | process {
63 | Add-Theme @PSBoundParameters -Type Icon
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/Terminal-Icons/Public/Format-TerminalIcons.ps1:
--------------------------------------------------------------------------------
1 | function Format-TerminalIcons {
2 | <#
3 | .SYNOPSIS
4 | Prepend a custom icon (with color) to the provided file or folder object when displayed.
5 | .DESCRIPTION
6 | Take the provided file or folder object and look up the appropriate icon and color to display.
7 | .PARAMETER FileInfo
8 | The file or folder to display
9 | .EXAMPLE
10 | Get-ChildItem
11 |
12 | List a directory. Terminal-Icons will be invoked automatically for display.
13 | .EXAMPLE
14 | Get-Item ./README.md | Format-TerminalIcons
15 |
16 | Get a file object and pass directly to Format-TerminalIcons.
17 | .INPUTS
18 | System.IO.FileSystemInfo
19 |
20 | You can pipe an objects that derive from System.IO.FileSystemInfo (System.IO.DIrectoryInfo and System.IO.FileInfo) to 'Format-TerminalIcons'.
21 | .OUTPUTS
22 | System.String
23 |
24 | Outputs a colorized string with an icon prepended.
25 | #>
26 | [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseShouldProcessForStateChangingFunctions', '')]
27 | [OutputType([string])]
28 | [CmdletBinding()]
29 | param(
30 | [Parameter(Mandatory, ValueFromPipeline)]
31 | [IO.FileSystemInfo]$FileInfo
32 | )
33 |
34 | process {
35 | $displayInfo = Resolve-Icon $FileInfo
36 | if ($displayInfo.Icon) {
37 | "$($displayInfo.Color)$($displayInfo.Icon) $($FileInfo.Name)$($displayInfo.Target)$($script:colorReset)"
38 | } else {
39 | "$($displayInfo.Color)$($FileInfo.Name)$($displayInfo.Target)$($script:colorReset)"
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/Terminal-Icons/Public/Get-TerminalIconsColorTheme.ps1:
--------------------------------------------------------------------------------
1 | function Get-TerminalIconsColorTheme {
2 | <#
3 | .SYNOPSIS
4 | List the available color themes.
5 | .DESCRIPTION
6 | List the available color themes.
7 | .Example
8 | PS> Get-TerminalIconsColorTheme
9 |
10 | Get the list of available color themes.
11 | .INPUTS
12 | None.
13 | .OUTPUTS
14 | System.Collections.Hashtable
15 |
16 | An array of hashtables representing available color themes.
17 | .LINK
18 | Get-TerminalIconsIconTheme
19 | .LINK
20 | Get-TerminalIconsTheme
21 | #>
22 | $script:userThemeData.Themes.Color
23 | }
24 |
--------------------------------------------------------------------------------
/Terminal-Icons/Public/Get-TerminalIconsGlyphs.ps1:
--------------------------------------------------------------------------------
1 | function Get-TerminalIconsGlyphs {
2 | <#
3 | .SYNOPSIS
4 | Gets the list of glyphs known to Terminal-Icons.
5 | .DESCRIPTION
6 | Gets a hashtable with the available glyph names and icons. Useful in creating a custom theme.
7 | .EXAMPLE
8 | PS> Get-TerminalIconsGlyphs
9 |
10 | Gets the table of glyph names and icons.
11 | .INPUTS
12 | None.
13 | .OUTPUTS
14 | None.
15 | .LINK
16 | Get-TerminalIconsIconTheme
17 | .LINK
18 | Set-TerminalIconsIcon
19 | #>
20 | [cmdletbinding()]
21 | param()
22 |
23 | # This is also helpful for argument completers needing glyphs -
24 | # ArgumentCompleterAttribute isn't able to access script variables but it
25 | # CAN call commands.
26 | $script:glyphs.GetEnumerator() | Sort-Object Name
27 | }
28 |
--------------------------------------------------------------------------------
/Terminal-Icons/Public/Get-TerminalIconsIconTheme.ps1:
--------------------------------------------------------------------------------
1 | function Get-TerminalIconsIconTheme {
2 | <#
3 | .SYNOPSIS
4 | List the available icon themes.
5 | .DESCRIPTION
6 | List the available icon themes.
7 | .Example
8 | PS> Get-TerminalIconsIconTheme
9 |
10 | Get the list of available icon themes.
11 | .INPUTS
12 | None.
13 | .OUTPUTS
14 | System.Collections.Hashtable
15 |
16 | An array of hashtables representing available icon themes.
17 | .LINK
18 | Get-TerminalIconsColorTheme
19 | .LINK
20 | Get-TerminalIconsTheme
21 | #>
22 | $script:userThemeData.Themes.Icon
23 | }
24 |
--------------------------------------------------------------------------------
/Terminal-Icons/Public/Get-TerminalIconsTheme.ps1:
--------------------------------------------------------------------------------
1 | function Get-TerminalIconsTheme {
2 | <#
3 | .SYNOPSIS
4 | Get the currently applied color and icon theme.
5 | .DESCRIPTION
6 | Get the currently applied color and icon theme.
7 | .EXAMPLE
8 | PS> Get-TerminalIconsTheme
9 |
10 | Get the currently applied Terminal-Icons color and icon theme.
11 | .INPUTS
12 | None.
13 | .OUTPUTS
14 | System.Management.Automation.PSCustomObject
15 |
16 | An object representing the currently applied color and icon theme.
17 | .LINK
18 | Get-TerminalIconsColorTheme
19 | .LINK
20 | Get-TerminalIconsIconTheme
21 | #>
22 | [CmdletBinding()]
23 | param()
24 |
25 | $iconTheme = if ($script:userThemeData.CurrentIconTheme) {
26 | [pscustomobject]$script:userThemeData.Themes.Icon[$script:userThemeData.CurrentIconTheme]
27 | } else {
28 | $null
29 | }
30 |
31 | $colorTheme = if ($script:userThemeData.CurrentColorTheme) {
32 | [pscustomobject]$script:userThemeData.Themes.Color[$script:userThemeData.CurrentColorTheme]
33 | } else {
34 | $null
35 | }
36 |
37 | [pscustomobject]@{
38 | PSTypeName = 'TerminalIconsTheme'
39 | Color = $colorTheme
40 | Icon = $iconTheme
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/Terminal-Icons/Public/Remove-TerminalIconsTheme.ps1:
--------------------------------------------------------------------------------
1 | function Remove-TerminalIconsTheme {
2 | <#
3 | .SYNOPSIS
4 | Removes a color or icon theme
5 | .DESCRIPTION
6 | Removes a given icon or color theme. In order to be removed, a theme must not be active.
7 | .PARAMETER IconTheme
8 | The icon theme to remove.
9 | .PARAMETER ColorTheme
10 | The color theme to remove.
11 | .PARAMETER Force
12 | Bypass confirmation messages.
13 | .EXAMPLE
14 | PS> Remove-TerminalIconsTheme -IconTheme MyAwesomeTheme
15 |
16 | Removes the icon theme 'MyAwesomeTheme'
17 | .EXAMPLE
18 | PS> Remove-TerminalIconsTheme -ColorTheme MyAwesomeTheme
19 |
20 | Removes the color theme 'MyAwesomeTheme'
21 | .INPUTS
22 | System.String
23 |
24 | The name of the color or icon theme to remove.
25 | .OUTPUTS
26 | None.
27 | .LINK
28 | Set-TerminalIconsTheme
29 | .LINK
30 | Add-TerminalIconsColorTheme
31 | .LINK
32 | Add-TerminalIconsIconTheme
33 | .LINK
34 | Get-TerminalIconsTheme
35 | .NOTES
36 | A theme must not be active in order to be removed.
37 | #>
38 | [cmdletbinding(SupportsShouldProcess)]
39 | param(
40 | [ArgumentCompleter({
41 | (Get-TerminalIconsIconTheme).Keys | Sort-Object
42 | })]
43 | [string]$IconTheme,
44 |
45 | [ArgumentCompleter({
46 | (Get-TerminalIconsColorTheme).Keys | Sort-Object
47 | })]
48 | [string]$ColorTheme,
49 |
50 | [switch]$Force
51 | )
52 |
53 | $currentTheme = Get-TerminalIconsTheme
54 | $themeStoragePath = Get-ThemeStoragePath
55 |
56 | if ($ColorTheme) {
57 | if ($currentTheme.Color.Name -ne $ColorTheme) {
58 | $themePath = Join-Path $themeStoragePath "$($ColorTheme)_color.xml"
59 | if (-not (Test-Path $themePath)) {
60 | Write-Error "Could not find theme file [$themePath]"
61 | } else {
62 | if ($Force -or $PSCmdlet.ShouldProcess($ColorTheme, 'Remove color theme')) {
63 | if ($userThemeData.Themes.Color.ContainsKey($ColorTheme)) {
64 | $userThemeData.Themes.Color.Remove($ColorTheme)
65 | } else {
66 | # We shouldn't be here
67 | Write-Error "Color theme [$ColorTheme] is not registered."
68 | }
69 | Remove-Item $themePath -Force
70 | }
71 | }
72 | } else {
73 | Write-Error ("Color theme [{0}] is active. Please select another theme before removing this it." -f $ColorTheme)
74 | }
75 | }
76 |
77 | if ($IconTheme) {
78 | if ($currentTheme.Icon.Name -ne $IconTheme) {
79 | $themePath = Join-Path $themeStoragePath "$($IconTheme)_icon.xml"
80 | if (-not (Test-Path $themePath)) {
81 | Write-Error "Could not find theme file [$themePath]"
82 | } else {
83 | if ($Force -or $PSCmdlet.ShouldProcess($ColorTheme, 'Remove icon theme')) {
84 | if ($userThemeData.Themes.Icon.ContainsKey($IconTheme)) {
85 | $userThemeData.Themes.Icon.Remove($IconTheme)
86 | } else {
87 | # We shouldn't be here
88 | Write-Error "Icon theme [$IconTheme] is not registered."
89 | }
90 | Remove-Item $themePath -Force
91 | }
92 | }
93 | } else {
94 | Write-Error ("Icon theme [{0}] is active. Please select another theme before removing this it." -f $IconTheme)
95 | }
96 | }
97 | }
98 |
--------------------------------------------------------------------------------
/Terminal-Icons/Public/Set-TerminalIconsIcon.ps1:
--------------------------------------------------------------------------------
1 | function Set-TerminalIconsIcon {
2 | <#
3 | .SYNOPSIS
4 | Set a specific icon in the current Terminal-Icons icon theme or allows
5 | swapping one glyph for another.
6 | .DESCRIPTION
7 | Set the Terminal-Icons icon for a specific file/directory or glyph to a
8 | named glyph.
9 |
10 | Also allows all uses of a specific glyph to be replaced with a different
11 | glyph.
12 | .PARAMETER Directory
13 | The well-known directory name to match for the icon.
14 | .PARAMETER FileName
15 | The well-known file name to match for the icon.
16 | .PARAMETER FileExtension
17 | The file extension to match for the icon.
18 | .PARAMETER NewGlyph
19 | The name of the new glyph to use when swapping.
20 | .PARAMETER Glyph
21 | The name of the glyph to use; or, when swapping glyphs, the name of the
22 | glyph you want to change.
23 | .PARAMETER Force
24 | Bypass confirmation messages.
25 | .EXAMPLE
26 | PS> Set-TerminalIconsIcon -FileName "README.md" -Glyph "nf-fa-file_text"
27 |
28 | Set README.md files to display a text file icon.
29 | .EXAMPLE
30 | PS> Set-TerminalIconsIcon -FileExtension ".xml" -Glyph "nf-md-xml"
31 |
32 | Set XML files to display an XML file icon.
33 | .EXAMPLE
34 | PS> Set-TerminalIconsIcon -Directory ".github" -Glyph "nf-dev-github_alt"
35 |
36 | Set directories named ".github" to display an Octocat face icon.
37 | .EXAMPLE
38 | PS> Set-TerminalIconsIcon -Glyph "nf-md-xml" -NewGlyph "nf-md-xml"
39 |
40 | Changes all uses of the "nf-md-xml" double-wide glyph to be the "nf-md-xml"
41 | single-width XML file glyph.
42 | .INPUTS
43 | None.
44 |
45 | The command does not accept pipeline input.
46 | .OUTPUTS
47 | None.
48 | .LINK
49 | Get-TerminalIconsIconTheme
50 | .LINK
51 | Get-TerminalIconsTheme
52 | .LINK
53 | Get-TerminalIconsGlyphs
54 | #>
55 | [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSReviewUnusedParameter', '', Justification = "ArgumentCompleter parameters don't all get used.")]
56 | [cmdletbinding(SupportsShouldProcess, DefaultParameterSetName = "FileExtension")]
57 | param(
58 | [Parameter(ParameterSetName = "Directory", Mandatory)]
59 | [ArgumentCompleter( {
60 | param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters)
61 | (Get-TerminalIconsIconTheme).Values.Types.Directories.WellKnown.Keys | Where-Object { $_ -like "$wordToComplete*" } | Sort-Object
62 | })]
63 | [ValidateNotNullOrEmpty()]
64 | [string]$Directory,
65 |
66 | [Parameter(ParameterSetName = "FileName", Mandatory)]
67 | [ArgumentCompleter( {
68 | param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters)
69 | (Get-TerminalIconsIconTheme).Values.Types.Files.WellKnown.Keys | Where-Object { $_ -like "$wordToComplete*" } | Sort-Object
70 | })]
71 | [ValidateNotNullOrEmpty()]
72 | [string]$FileName,
73 |
74 | [Parameter(ParameterSetName = "FileExtension", Mandatory)]
75 | [ArgumentCompleter( {
76 | param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters)
77 | (Get-TerminalIconsIconTheme).Values.Types.Files.Keys | Where-Object { $_.StartsWith(".") -and $_ -like "$wordToComplete*" } | Sort-Object
78 | })]
79 | [ValidatePattern("^\.")]
80 | [string]$FileExtension,
81 |
82 | [Parameter(ParameterSetName = "SwapGlyph", Mandatory)]
83 | [ArgumentCompleter( {
84 | param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters)
85 | (Get-TerminalIconsGlyphs).Keys | Where-Object { $_ -like "*$wordToComplete*" } | Sort-Object
86 | })]
87 | [ValidateNotNullOrEmpty()]
88 | [string]$NewGlyph,
89 |
90 | [Parameter(Mandatory)]
91 | [ArgumentCompleter( {
92 | param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters)
93 | (Get-TerminalIconsGlyphs).Keys | Where-Object { $_ -like "*$wordToComplete*" } | Sort-Object
94 | })]
95 | [ValidateNotNullOrEmpty()]
96 | [string]$Glyph,
97 |
98 | [switch]$Force
99 | )
100 |
101 | If($PSCmdlet.ParameterSetName -eq "Directory") {
102 | If ($Force -or $PSCmdlet.ShouldProcess("$Directory = $Glyph", 'Set well-known directory icon')) {
103 | (Get-TerminalIconsIconTheme).Values.Types.Directories.WellKnown[$Directory] = $Glyph
104 | }
105 | }
106 | ElseIf ($PSCmdlet.ParameterSetName -eq "FileName") {
107 | If ($Force -or $PSCmdlet.ShouldProcess("$FileName = $Glyph", 'Set well-known file name icon')) {
108 | (Get-TerminalIconsIconTheme).Values.Types.Files.WellKnown[$FileName] = $Glyph
109 | }
110 | }
111 | ElseIf ($PSCmdlet.ParameterSetName -eq "FileExtension") {
112 | If ($Force -or $PSCmdlet.ShouldProcess("$FileExtension = $Glyph", 'Set file extension icon')) {
113 | (Get-TerminalIconsIconTheme).Values.Types.Files[$FileExtension] = $Glyph
114 | }
115 | }
116 | ElseIf ($PSCmdlet.ParameterSetName -eq "SwapGlyph") {
117 | If ($Force -or $PSCmdlet.ShouldProcess("$Glyph to $NewGlyph", 'Swap glyph usage')) {
118 | # Directories
119 | $toModify = (Get-TerminalIconsTheme).Icon.Types.Directories.WellKnown
120 | $keys = $toModify.Keys | Where-Object { $toModify[$_] -eq $Glyph }
121 | $keys | ForEach-Object { $toModify[$_] = $NewGlyph }
122 |
123 | # Files
124 | $toModify = (Get-TerminalIconsTheme).Icon.Types.Files.WellKnown
125 | $keys = $toModify.Keys | Where-Object { $toModify[$_] -eq $Glyph }
126 | $keys | ForEach-Object { $toModify[$_] = $NewGlyph }
127 |
128 | # Extensions
129 | $toModify = (Get-TerminalIconsTheme).Icon.Types.Files
130 | $keys = $toModify.Keys | Where-Object { $_.StartsWith(".") -and $toModify[$_] -eq $Glyph }
131 | $keys | ForEach-Object { $toModify[$_] = $NewGlyph }
132 | }
133 | }
134 | }
135 |
--------------------------------------------------------------------------------
/Terminal-Icons/Public/Set-TerminalIconsTheme.ps1:
--------------------------------------------------------------------------------
1 | function Set-TerminalIconsTheme {
2 | <#
3 | .SYNOPSIS
4 | Set the Terminal-Icons color or icon theme
5 | .DESCRIPTION
6 | Set the Terminal-Icons color or icon theme to the given name.
7 | .PARAMETER ColorTheme
8 | The name of a registered color theme to use.
9 | .PARAMETER IconTheme
10 | The name of a registered icon theme to use.
11 | .PARAMETER DisableColorTheme
12 | Disables custom colors and uses default terminal color.
13 | .PARAMETER DisableIconTheme
14 | Disables custom icons and shows only shows the directory or file name.
15 | .PARAMETER Force
16 | Bypass confirmation messages.
17 | .EXAMPLE
18 | PS> Set-TerminalIconsTheme -ColorTheme devblackops
19 |
20 | Set the color theme to 'devblackops'.
21 | .EXAMPLE
22 | PS> Set-TerminalIconsTheme -IconTheme devblackops
23 |
24 | Set the icon theme to 'devblackops'.
25 | .EXAMPLE
26 | PS> Set-TerminalIconsTheme -DisableIconTheme
27 |
28 | Disable Terminal-Icons custom icons and only show custom colors.
29 | .EXAMPLE
30 | PS> Set-TerminalIconsTheme -DisableColorTheme
31 |
32 | Disable Terminal-Icons custom colors and only show custom icons.
33 | .INPUTS
34 | System.String
35 |
36 | The name of the color or icon theme to use.
37 | .OUTPUTS
38 | None.
39 | .LINK
40 | Get-TerminalIconsColorTheme
41 | .LINK
42 | Get-TerminalIconsIconTheme
43 | .LINK
44 | Get-TerminalIconsTheme
45 | .NOTES
46 | This function supercedes Set-TerminalIconsColorTheme and Set-TerminalIconsIconTheme. They have been deprecated.
47 | #>
48 | [cmdletbinding(SupportsShouldProcess, DefaultParameterSetName = 'theme')]
49 | param(
50 | [Parameter(ParameterSetName = 'theme')]
51 | [ArgumentCompleter({
52 | (Get-TerminalIconsIconTheme).Keys | Sort-Object
53 | })]
54 | [string]$IconTheme,
55 |
56 | [Parameter(ParameterSetName = 'theme')]
57 | [ArgumentCompleter({
58 | (Get-TerminalIconsColorTheme).Keys | Sort-Object
59 | })]
60 | [string]$ColorTheme,
61 |
62 | [Parameter(ParameterSetName = 'notheme')]
63 | [switch]$DisableColorTheme,
64 |
65 | [Parameter(ParameterSetName = 'notheme')]
66 | [switch]$DisableIconTheme,
67 |
68 | [switch]$Force
69 | )
70 |
71 | if ($DisableIconTheme.IsPresent) {
72 | Set-Theme -Name $null -Type Icon
73 | }
74 |
75 | if ($DisableColorTheme.IsPresent) {
76 | Set-Theme -Name $null -Type Color
77 | }
78 |
79 | if ($ColorTheme) {
80 | if ($Force -or $PSCmdlet.ShouldProcess($ColorTheme, 'Set color theme')) {
81 | Set-Theme -Name $ColorTheme -Type Color
82 | }
83 | }
84 |
85 | if ($IconTheme) {
86 | if ($Force -or $PSCmdlet.ShouldProcess($IconTheme, 'Set icon theme')) {
87 | Set-Theme -Name $IconTheme -Type Icon
88 | }
89 | }
90 | }
91 |
92 |
--------------------------------------------------------------------------------
/Terminal-Icons/Public/Show-TerminalIconsTheme.ps1:
--------------------------------------------------------------------------------
1 | function Show-TerminalIconsTheme {
2 | <#
3 | .SYNOPSIS
4 | List example directories and files to show the currently applied color and icon themes.
5 | .DESCRIPTION
6 | List example directories and files to show the currently applied color and icon themes.
7 | The directory/file objects show are in memory only, they are not written to the filesystem.
8 | .PARAMETER ColorTheme
9 | The color theme to use for examples
10 | .PARAMETER IconTheme
11 | The icon theme to use for examples
12 | .EXAMPLE
13 | Show-TerminalIconsTheme
14 |
15 | List example directories and files to show the currently applied color and icon themes.
16 | .INPUTS
17 | None.
18 | .OUTPUTS
19 | System.IO.DirectoryInfo
20 | .OUTPUTS
21 | System.IO.FileInfo
22 | .NOTES
23 | Example directory and file objects only exist in memory. They are not written to the filesystem.
24 | .LINK
25 | Get-TerminalIconsColorTheme
26 | .LINK
27 | Get-TerminalIconsIconTheme
28 | .LINK
29 | Get-TerminalIconsTheme
30 | #>
31 | [CmdletBinding()]
32 | param()
33 |
34 | $theme = Get-TerminalIconsTheme
35 |
36 | # Use the default theme if the icon theme has been disabled
37 | if ($theme.Icon) {
38 | $themeName = $theme.Icon.Name
39 | } else {
40 | $themeName = $script:defaultTheme
41 | }
42 |
43 | $directories = @(
44 | [IO.DirectoryInfo]::new('ExampleFolder')
45 | $script:userThemeData.Themes.Icon[$themeName].Types.Directories.WellKnown.Keys.ForEach({
46 | [IO.DirectoryInfo]::new($_)
47 | })
48 | )
49 | $wellKnownFiles = @(
50 | [IO.FileInfo]::new('ExampleFile')
51 | $script:userThemeData.Themes.Icon[$themeName].Types.Files.WellKnown.Keys.ForEach({
52 | [IO.FileInfo]::new($_)
53 | })
54 | )
55 |
56 | $extensions = $script:userThemeData.Themes.Icon[$themeName].Types.Files.Keys.Where({$_ -ne 'WellKnown'}).ForEach({
57 | [IO.FileInfo]::new("example$_")
58 | })
59 |
60 | $directories + $wellKnownFiles + $extensions | Sort-Object | Format-TerminalIcons
61 | }
62 |
--------------------------------------------------------------------------------
/Terminal-Icons/Terminal-Icons.format.ps1xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 | FileSystemTypes
9 |
10 | System.IO.DirectoryInfo
11 | System.IO.FileInfo
12 |
13 |
14 |
15 |
16 |
17 |
18 | FileSystemTypes-GroupingFormat
19 |
20 |
21 |
22 |
23 |
24 | 4
25 |
26 |
27 |
28 |
29 | $_.PSParentPath.Replace("Microsoft.PowerShell.Core\FileSystem::", "")
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | children
45 |
46 | FileSystemTypes
47 |
48 |
49 | PSParentPath
50 | FileSystemTypes-GroupingFormat
51 |
52 |
53 |
54 |
55 | Mode
56 | 7
57 | left
58 |
59 |
60 | LastWriteTime
61 | 25
62 | right
63 |
64 |
65 | Length
66 | 14
67 | right
68 |
69 |
70 | Name
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 | Mode
79 |
80 |
81 |
82 | [String]::Format('{0,10} {1,8}', $_.LastWriteTime.ToString('d'), $_.LastWriteTime.ToString('t'))
83 |
84 |
85 |
86 | Length
87 |
88 |
89 |
90 | Terminal-Icons\Format-TerminalIcons $_
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 | children
100 |
101 | FileSystemTypes
102 |
103 |
104 | PSParentPath
105 | FileSystemTypes-GroupingFormat
106 |
107 |
108 |
109 |
110 |
111 | System.IO.FileInfo
112 |
113 |
114 |
115 | Name
116 |
117 | Terminal-Icons\Format-TerminalIcons $_
118 |
119 |
120 |
121 | Length
122 |
123 |
124 | CreationTime
125 |
126 |
127 | LastWriteTime
128 |
129 |
130 | LastAccessTime
131 |
132 |
133 | Mode
134 |
135 |
136 | LinkType
137 |
138 |
139 | Target
140 |
141 | Terminal-Icons\Format-TerminalIcons $_
142 |
143 |
144 |
147 |
148 |
149 |
150 |
151 |
152 | Name
153 |
154 | Terminal-Icons\Format-TerminalIcons $_
155 |
156 |
157 |
158 | CreationTime
159 |
160 |
161 | LastWriteTime
162 |
163 |
164 | LastAccessTime
165 |
166 |
167 | Mode
168 |
169 |
170 | LinkType
171 |
172 |
173 | Target
174 |
175 | Terminal-Icons\Format-TerminalIcons $_
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 | children
185 |
186 | FileSystemTypes
187 |
188 |
189 | PSParentPath
190 | FileSystemTypes-GroupingFormat
191 |
192 |
193 |
194 |
195 |
196 |
197 | Terminal-Icons\Format-TerminalIcons $_
198 |
199 |
200 |
201 |
202 |
203 | System.IO.DirectoryInfo
204 |
205 |
206 |
207 | Terminal-Icons\Format-TerminalIcons $_
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
--------------------------------------------------------------------------------
/Terminal-Icons/Terminal-Icons.psd1:
--------------------------------------------------------------------------------
1 | @{
2 | RootModule = 'Terminal-Icons.psm1'
3 | ModuleVersion = '0.12.0'
4 | GUID = '4419ddb6-3528-47cd-baf3-7fb9d8566620'
5 | Author = 'Brandon Olin'
6 | CompanyName = 'Community'
7 | Copyright = '(c) Brandon Olin. All rights reserved.'
8 | Description = 'PowerShell module to add file icons to terminal based on file extension'
9 | PowerShellVersion = '5.1'
10 | # PowerShellHostName = ''
11 | # PowerShellHostVersion = ''
12 | RequiredModules = @()
13 | FunctionsToExport = @()
14 | CmdletsToExport = @()
15 | VariablesToExport = @()
16 | AliasesToExport = @()
17 | PrivateData = @{
18 | PSData = @{
19 | Tags = @('Color', 'Terminal', 'Console', 'NerdFonts', 'Icon')
20 | LicenseUri = 'https://raw.githubusercontent.com/devblackops/Terminal-Icons/master/LICENSE'
21 | ProjectUri = 'https://github.com/devblackops/Terminal-Icons'
22 | IconUri = 'https://github.com/devblackops/Terminal-Icons/raw/master/media/icon_256.png'
23 | ReleaseNotes = 'https://raw.githubusercontent.com/devblackops/Terminal-Icons/master/CHANGELOG.md'
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Terminal-Icons/Terminal-Icons.psm1:
--------------------------------------------------------------------------------
1 | # Dot source public/private functions
2 | # $public = @(Get-ChildItem -Path ([IO.Path]::Combine($PSScriptRoot, 'Public/*.ps1')) -Recurse -ErrorAction Stop)
3 | # $private = @(Get-ChildItem -Path ([IO.Path]::Combine($PSScriptRoot, 'Private/*.ps1')) -Recurse -ErrorAction Stop)
4 | # @($public + $private).ForEach({
5 | # try {
6 | # . $_.FullName
7 | # } catch {
8 | # throw $_
9 | # $PSCmdlet.ThrowTerminatingError("Unable to dot source [$($import.FullName)]")
10 | # }
11 | # })
12 |
13 | $moduleRoot = $PSScriptRoot
14 | $glyphs = . $moduleRoot/Data/glyphs.ps1
15 | $escape = [char]27
16 | $colorReset = "${escape}[0m"
17 | $defaultTheme = 'devblackops'
18 | $userThemePath = Get-ThemeStoragePath
19 | $userThemeData = @{
20 | CurrentIconTheme = $null
21 | CurrentColorTheme = $null
22 | Themes = @{
23 | Color = @{}
24 | Icon = @{}
25 | }
26 | }
27 |
28 | # Import builtin icon/color themes and convert colors to escape sequences
29 | $colorSequences = @{}
30 | $iconThemes = Import-IconTheme
31 | $colorThemes = Import-ColorTheme
32 | $colorThemes.GetEnumerator().ForEach({
33 | $colorSequences[$_.Name] = ConvertTo-ColorSequence -ColorData $_.Value
34 | })
35 |
36 | # Load or create default prefs
37 | $prefs = Import-Preferences
38 |
39 | # Set current theme
40 | $userThemeData.CurrentIconTheme = $prefs.CurrentIconTheme
41 | $userThemeData.CurrentColorTheme = $prefs.CurrentColorTheme
42 |
43 | # Load user icon and color themes
44 | # We're ignoring the old 'theme.xml' from Terimal-Icons v0.3.1 and earlier
45 | (Get-ChildItem $userThemePath -Filter '*_icon.xml').ForEach({
46 | $userIconTheme = Import-CliXml -Path $_.FullName
47 | $userThemeData.Themes.Icon[$userIconTheme.Name] = $userIconTheme
48 | })
49 | (Get-ChildItem $userThemePath -Filter '*_color.xml').ForEach({
50 | $userColorTheme = Import-CliXml -Path $_.FullName
51 | $userThemeData.Themes.Color[$userColorTheme.Name] = $userColorTheme
52 | $colorSequences[$userColorTheme.Name] = ConvertTo-ColorSequence -ColorData $userThemeData.Themes.Color[$userColorTheme.Name]
53 | })
54 |
55 | # Update the builtin themes
56 | $colorThemes.GetEnumerator().ForEach({
57 | $userThemeData.Themes.Color[$_.Name] = $_.Value
58 | })
59 | $iconThemes.GetEnumerator().ForEach({
60 | $userThemeData.Themes.Icon[$_.Name] = $_.Value
61 | })
62 |
63 | # Save all themes to theme path
64 | $userThemeData.Themes.Color.GetEnumerator().ForEach({
65 | $colorThemePath = Join-Path $userThemePath "$($_.Name)_color.xml"
66 | $_.Value | Export-Clixml -Path $colorThemePath -Force
67 | })
68 | $userThemeData.Themes.Icon.GetEnumerator().ForEach({
69 | $iconThemePath = Join-Path $userThemePath "$($_.Name)_icon.xml"
70 | $_.Value | Export-Clixml -Path $iconThemePath -Force
71 | })
72 |
73 | Save-Preferences -Preferences $prefs
74 |
75 | # Export-ModuleMember -Function $public.Basename
76 |
77 | Update-FormatData -Prepend ([IO.Path]::Combine($moduleRoot, 'Terminal-Icons.format.ps1xml'))
78 |
--------------------------------------------------------------------------------
/build.ps1:
--------------------------------------------------------------------------------
1 | [cmdletbinding(DefaultParameterSetName = 'Task')]
2 | param(
3 | # Build task(s) to execute
4 | [parameter(ParameterSetName = 'task', position = 0)]
5 | [string[]]$Task = 'default',
6 |
7 | # Bootstrap dependencies
8 | [switch]$Bootstrap,
9 |
10 | # List available build tasks
11 | [parameter(ParameterSetName = 'Help')]
12 | [switch]$Help,
13 |
14 | [pscredential]$PSGalleryApiKey
15 | )
16 |
17 | $ErrorActionPreference = 'Stop'
18 |
19 | # Bootstrap dependencies
20 | if ($Bootstrap.IsPresent) {
21 | Get-PackageProvider -Name Nuget -ForceBootstrap | Out-Null
22 | Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
23 | if (-not (Get-Module -Name PSDepend -ListAvailable)) {
24 | Install-Module -Name PSDepend -Repository PSGallery -Scope CurrentUser
25 | }
26 | Invoke-PSDepend -Path './requirements.psd1' -Install -Import -Force -WarningAction SilentlyContinue
27 | }
28 |
29 | # Execute psake task(s)
30 | $psakeFile = './psakeFile.ps1'
31 | if ($PSCmdlet.ParameterSetName -eq 'Help') {
32 | Get-PSakeScriptTasks -buildFile $psakeFile |
33 | Format-Table -Property Name, Description, Alias, DependsOn
34 | } else {
35 | Set-BuildEnvironment -Force
36 | $parameters = @{}
37 | if ($PSGalleryApiKey) {
38 | $parameters['galleryApiKey'] = $PSGalleryApiKey
39 | }
40 | Invoke-psake -buildFile $psakeFile -taskList $Task -nologo -parameters $parameters
41 | exit ( [int]( -not $psake.build_success ) )
42 | }
43 |
--------------------------------------------------------------------------------
/docs/en-US/Add-TerminalIconsColorTheme.md:
--------------------------------------------------------------------------------
1 | ---
2 | external help file: Terminal-Icons-help.xml
3 | Module Name: Terminal-Icons
4 | online version:
5 | schema: 2.0.0
6 | ---
7 |
8 | # Add-TerminalIconsColorTheme
9 |
10 | ## SYNOPSIS
11 | Add a Terminal-Icons color theme for the current user.
12 |
13 | ## SYNTAX
14 |
15 | ### Path (Default)
16 | ```
17 | Add-TerminalIconsColorTheme [-Path] [-Force] [-WhatIf] [-Confirm] []
18 | ```
19 |
20 | ### LiteralPath
21 | ```
22 | Add-TerminalIconsColorTheme [-LiteralPath] [-Force] [-WhatIf] [-Confirm] []
23 | ```
24 |
25 | ## DESCRIPTION
26 | Add a Terminal-Icons color theme for the current user.
27 | The theme data
28 | is stored in the user's profile
29 |
30 | ## EXAMPLES
31 |
32 | ### EXAMPLE 1
33 | ```
34 | Add-Terminal-IconsColorTHeme -Path ./my_color_theme.psd1
35 | ```
36 |
37 | Add the color theme contained in ./my_color_theme.psd1.
38 |
39 | ### EXAMPLE 2
40 | ```
41 | Get-ChildItem ./path/to/colorthemes | Add-TerminalIconsColorTheme -Force
42 | ```
43 |
44 | Add all color themes contained in the folder ./path/to/colorthemes and add them,
45 | overwriting existing ones if needed.
46 |
47 | ## PARAMETERS
48 |
49 | ### -Path
50 | The path to the Terminal-Icons color theme file.
51 |
52 | ```yaml
53 | Type: String[]
54 | Parameter Sets: Path
55 | Aliases:
56 |
57 | Required: True
58 | Position: 1
59 | Default value: None
60 | Accept pipeline input: True (ByPropertyName, ByValue)
61 | Accept wildcard characters: True
62 | ```
63 |
64 | ### -LiteralPath
65 | The literal path to the Terminal-Icons color theme file.
66 |
67 | ```yaml
68 | Type: String[]
69 | Parameter Sets: LiteralPath
70 | Aliases: PSPath
71 |
72 | Required: True
73 | Position: 1
74 | Default value: None
75 | Accept pipeline input: True (ByPropertyName)
76 | Accept wildcard characters: False
77 | ```
78 |
79 | ### -Force
80 | Overwrite the color theme if it already exists in the profile.
81 |
82 | ```yaml
83 | Type: SwitchParameter
84 | Parameter Sets: (All)
85 | Aliases:
86 |
87 | Required: False
88 | Position: Named
89 | Default value: False
90 | Accept pipeline input: False
91 | Accept wildcard characters: False
92 | ```
93 |
94 | ### -WhatIf
95 | Shows what would happen if the cmdlet runs.
96 | The cmdlet is not run.
97 |
98 | ```yaml
99 | Type: SwitchParameter
100 | Parameter Sets: (All)
101 | Aliases: wi
102 |
103 | Required: False
104 | Position: Named
105 | Default value: None
106 | Accept pipeline input: False
107 | Accept wildcard characters: False
108 | ```
109 |
110 | ### -Confirm
111 | Prompts you for confirmation before running the cmdlet.
112 |
113 | ```yaml
114 | Type: SwitchParameter
115 | Parameter Sets: (All)
116 | Aliases: cf
117 |
118 | Required: False
119 | Position: Named
120 | Default value: None
121 | Accept pipeline input: False
122 | Accept wildcard characters: False
123 | ```
124 |
125 | ### CommonParameters
126 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
127 |
128 | ## INPUTS
129 |
130 | ### System.String
131 | ### You can pipe a string that contains a path to 'Add-TerminalIconsColorTheme'.
132 | ## OUTPUTS
133 |
134 | ### None.
135 | ## NOTES
136 | 'Add-TerminalIconsColorTheme' will not overwrite an existing theme by default.
137 | Add the -Force switch to overwrite.
138 |
139 | ## RELATED LINKS
140 |
141 | [Add-TerminalIconsIconTheme]()
142 |
143 |
--------------------------------------------------------------------------------
/docs/en-US/Add-TerminalIconsIconTheme.md:
--------------------------------------------------------------------------------
1 | ---
2 | external help file: Terminal-Icons-help.xml
3 | Module Name: Terminal-Icons
4 | online version:
5 | schema: 2.0.0
6 | ---
7 |
8 | # Add-TerminalIconsIconTheme
9 |
10 | ## SYNOPSIS
11 | Add a Terminal-Icons icon theme for the current user.
12 |
13 | ## SYNTAX
14 |
15 | ### Path (Default)
16 | ```
17 | Add-TerminalIconsIconTheme [-Path] [-Force] [-WhatIf] [-Confirm] []
18 | ```
19 |
20 | ### LiteralPath
21 | ```
22 | Add-TerminalIconsIconTheme [-LiteralPath] [-Force] [-WhatIf] [-Confirm] []
23 | ```
24 |
25 | ## DESCRIPTION
26 | Add a Terminal-Icons icon theme for the current user.
27 | The theme data
28 | is stored in the user's profile
29 |
30 | ## EXAMPLES
31 |
32 | ### EXAMPLE 1
33 | ```
34 | Add-Terminal-IconsIconTHeme -Path ./my_icon_theme.psd1
35 | ```
36 |
37 | Add the icon theme contained in ./my_icon_theme.psd1.
38 |
39 | ### EXAMPLE 2
40 | ```
41 | Get-ChildItem ./path/to/iconthemes | Add-TerminalIconsIconTheme -Force
42 | ```
43 |
44 | Add all icon themes contained in the folder ./path/to/iconthemes and add them,
45 | overwriting existing ones if needed.
46 |
47 | ## PARAMETERS
48 |
49 | ### -Path
50 | The path to the Terminal-Icons icon theme file.
51 |
52 | ```yaml
53 | Type: String[]
54 | Parameter Sets: Path
55 | Aliases:
56 |
57 | Required: True
58 | Position: 1
59 | Default value: None
60 | Accept pipeline input: True (ByPropertyName, ByValue)
61 | Accept wildcard characters: True
62 | ```
63 |
64 | ### -LiteralPath
65 | The literal path to the Terminal-Icons icon theme file.
66 |
67 | ```yaml
68 | Type: String[]
69 | Parameter Sets: LiteralPath
70 | Aliases: PSPath
71 |
72 | Required: True
73 | Position: 1
74 | Default value: None
75 | Accept pipeline input: True (ByPropertyName)
76 | Accept wildcard characters: False
77 | ```
78 |
79 | ### -Force
80 | Overwrite the icon theme if it already exists in the profile.
81 |
82 | ```yaml
83 | Type: SwitchParameter
84 | Parameter Sets: (All)
85 | Aliases:
86 |
87 | Required: False
88 | Position: Named
89 | Default value: False
90 | Accept pipeline input: False
91 | Accept wildcard characters: False
92 | ```
93 |
94 | ### -WhatIf
95 | Shows what would happen if the cmdlet runs.
96 | The cmdlet is not run.
97 |
98 | ```yaml
99 | Type: SwitchParameter
100 | Parameter Sets: (All)
101 | Aliases: wi
102 |
103 | Required: False
104 | Position: Named
105 | Default value: None
106 | Accept pipeline input: False
107 | Accept wildcard characters: False
108 | ```
109 |
110 | ### -Confirm
111 | Prompts you for confirmation before running the cmdlet.
112 |
113 | ```yaml
114 | Type: SwitchParameter
115 | Parameter Sets: (All)
116 | Aliases: cf
117 |
118 | Required: False
119 | Position: Named
120 | Default value: None
121 | Accept pipeline input: False
122 | Accept wildcard characters: False
123 | ```
124 |
125 | ### CommonParameters
126 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
127 |
128 | ## INPUTS
129 |
130 | ### System.String
131 | ### You can pipe a string that contains a path to 'Add-TerminalIconsIconTheme'.
132 | ## OUTPUTS
133 |
134 | ### None.
135 | ## NOTES
136 | 'Add-TerminalIconsIconTheme' will not overwrite an existing theme by default.
137 | Add the -Force switch to overwrite.
138 |
139 | ## RELATED LINKS
140 |
141 | [Add-TerminalIconsColorTheme]()
142 |
143 |
--------------------------------------------------------------------------------
/docs/en-US/Format-TerminalIcons.md:
--------------------------------------------------------------------------------
1 | ---
2 | external help file: Terminal-Icons-help.xml
3 | Module Name: Terminal-Icons
4 | online version:
5 | schema: 2.0.0
6 | ---
7 |
8 | # Format-TerminalIcons
9 |
10 | ## SYNOPSIS
11 | Prepend a custom icon (with color) to the provided file or folder object when displayed.
12 |
13 | ## SYNTAX
14 |
15 | ```
16 | Format-TerminalIcons [-FileInfo] []
17 | ```
18 |
19 | ## DESCRIPTION
20 | Take the provided file or folder object and look up the appropriate icon and color to display.
21 |
22 | ## EXAMPLES
23 |
24 | ### EXAMPLE 1
25 | ```
26 | Get-ChildItem
27 | ```
28 |
29 | List a directory.
30 | Terminal-Icons will be invoked automatically for display.
31 |
32 | ### EXAMPLE 2
33 | ```
34 | Get-Item ./README.md | Format-TerminalIcons
35 | ```
36 |
37 | Get a file object and pass directly to Format-TerminalIcons.
38 |
39 | ## PARAMETERS
40 |
41 | ### -FileInfo
42 | The file or folder to display
43 |
44 | ```yaml
45 | Type: FileSystemInfo
46 | Parameter Sets: (All)
47 | Aliases:
48 |
49 | Required: True
50 | Position: 1
51 | Default value: None
52 | Accept pipeline input: True (ByValue)
53 | Accept wildcard characters: False
54 | ```
55 |
56 | ### CommonParameters
57 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
58 |
59 | ## INPUTS
60 |
61 | ### System.IO.FileSystemInfo
62 | ### You can pipe an objects that derive from System.IO.FileSystemInfo (System.IO.DIrectoryInfo and System.IO.FileInfo) to 'Format-TerminalIcons'.
63 | ## OUTPUTS
64 |
65 | ### System.String
66 | ### Outputs a colorized string with an icon prepended.
67 | ## NOTES
68 |
69 | ## RELATED LINKS
70 |
--------------------------------------------------------------------------------
/docs/en-US/Get-TerminalIconsColorTheme.md:
--------------------------------------------------------------------------------
1 | ---
2 | external help file: Terminal-Icons-help.xml
3 | Module Name: Terminal-Icons
4 | online version:
5 | schema: 2.0.0
6 | ---
7 |
8 | # Get-TerminalIconsColorTheme
9 |
10 | ## SYNOPSIS
11 | List the available color themes.
12 |
13 | ## SYNTAX
14 |
15 | ```
16 | Get-TerminalIconsColorTheme []
17 | ```
18 |
19 | ## DESCRIPTION
20 | List the available color themes.
21 |
22 | ## EXAMPLES
23 |
24 | ### EXAMPLE 1
25 | ```
26 | Get-TerminalIconsColorTheme
27 | ```
28 |
29 | Get the list of available color themes.
30 |
31 | ## PARAMETERS
32 |
33 | ### CommonParameters
34 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
35 |
36 | ## INPUTS
37 |
38 | ### None.
39 | ## OUTPUTS
40 |
41 | ### System.Collections.Hashtable
42 | ### An array of hashtables representing available color themes.
43 | ## NOTES
44 |
45 | ## RELATED LINKS
46 |
47 | [Get-TerminalIconsIconTheme]()
48 |
49 | [Get-TerminalIconsTheme]()
50 |
51 |
--------------------------------------------------------------------------------
/docs/en-US/Get-TerminalIconsGlyphs.md:
--------------------------------------------------------------------------------
1 | ---
2 | external help file: Terminal-Icons-help.xml
3 | Module Name: Terminal-Icons
4 | online version:
5 | schema: 2.0.0
6 | ---
7 |
8 | # Get-TerminalIconsGlyphs
9 |
10 | ## SYNOPSIS
11 | Gets the list of glyphs known to Terminal-Icons.
12 |
13 | ## SYNTAX
14 |
15 | ```
16 | Get-TerminalIconsGlyphs []
17 | ```
18 |
19 | ## DESCRIPTION
20 | Gets a hashtable with the available glyph names and icons.
21 | Useful in creating a custom theme.
22 |
23 | ## EXAMPLES
24 |
25 | ### EXAMPLE 1
26 | ```
27 | Get-TerminalIconsGlyphs
28 | ```
29 |
30 | Gets the table of glyph names and icons.
31 |
32 | ## PARAMETERS
33 |
34 | ### CommonParameters
35 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
36 |
37 | ## INPUTS
38 |
39 | ### None.
40 | ## OUTPUTS
41 |
42 | ### None.
43 | ## NOTES
44 |
45 | ## RELATED LINKS
46 |
47 | [Get-TerminalIconsIconTheme]()
48 |
49 | [Set-TerminalIconsIcon]()
50 |
51 |
--------------------------------------------------------------------------------
/docs/en-US/Get-TerminalIconsIconTheme.md:
--------------------------------------------------------------------------------
1 | ---
2 | external help file: Terminal-Icons-help.xml
3 | Module Name: Terminal-Icons
4 | online version:
5 | schema: 2.0.0
6 | ---
7 |
8 | # Get-TerminalIconsIconTheme
9 |
10 | ## SYNOPSIS
11 | List the available icon themes.
12 |
13 | ## SYNTAX
14 |
15 | ```
16 | Get-TerminalIconsIconTheme []
17 | ```
18 |
19 | ## DESCRIPTION
20 | List the available icon themes.
21 |
22 | ## EXAMPLES
23 |
24 | ### EXAMPLE 1
25 | ```
26 | Get-TerminalIconsIconTheme
27 | ```
28 |
29 | Get the list of available icon themes.
30 |
31 | ## PARAMETERS
32 |
33 | ### CommonParameters
34 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
35 |
36 | ## INPUTS
37 |
38 | ### None.
39 | ## OUTPUTS
40 |
41 | ### System.Collections.Hashtable
42 | ### An array of hashtables representing available icon themes.
43 | ## NOTES
44 |
45 | ## RELATED LINKS
46 |
47 | [Get-TerminalIconsColorTheme]()
48 |
49 | [Get-TerminalIconsTheme]()
50 |
51 |
--------------------------------------------------------------------------------
/docs/en-US/Get-TerminalIconsTheme.md:
--------------------------------------------------------------------------------
1 | ---
2 | external help file: Terminal-Icons-help.xml
3 | Module Name: Terminal-Icons
4 | online version:
5 | schema: 2.0.0
6 | ---
7 |
8 | # Get-TerminalIconsTheme
9 |
10 | ## SYNOPSIS
11 | Get the currently applied color and icon theme.
12 |
13 | ## SYNTAX
14 |
15 | ```
16 | Get-TerminalIconsTheme []
17 | ```
18 |
19 | ## DESCRIPTION
20 | Get the currently applied color and icon theme.
21 |
22 | ## EXAMPLES
23 |
24 | ### EXAMPLE 1
25 | ```
26 | Get-TerminalIconsTheme
27 | ```
28 |
29 | Get the currently applied Terminal-Icons color and icon theme.
30 |
31 | ## PARAMETERS
32 |
33 | ### CommonParameters
34 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
35 |
36 | ## INPUTS
37 |
38 | ### None.
39 | ## OUTPUTS
40 |
41 | ### System.Management.Automation.PSCustomObject
42 | ### An object representing the currently applied color and icon theme.
43 | ## NOTES
44 |
45 | ## RELATED LINKS
46 |
47 | [Get-TerminalIconsColorTheme]()
48 |
49 | [Get-TerminalIconsIconTheme]()
50 |
51 |
--------------------------------------------------------------------------------
/docs/en-US/Invoke-TerminalIconsThemeMigration.md:
--------------------------------------------------------------------------------
1 | ---
2 | external help file: Terminal-Icons-help.xml
3 | Module Name: Terminal-Icons
4 | online version:
5 | schema: 2.0.0
6 | ---
7 |
8 | # Invoke-TerminalIconsThemeMigration
9 |
10 | ## SYNOPSIS
11 | Used to migrate your terminal icon themes to Nerd Fonts v3.
12 |
13 | ## SYNTAX
14 |
15 | ### Path
16 | ```
17 | Invoke-TerminalIconsThemeMigration [-Path] []
18 | ```
19 |
20 | ### LiteralPath
21 | ```
22 | Invoke-TerminalIconsThemeMigration [-LiteralPath] []
23 | ```
24 |
25 | ## DESCRIPTION
26 | Used to migrate your terminal icon themes to Nerd Fonts v3.
27 |
28 | ## EXAMPLES
29 |
30 | ### EXAMPLE 1
31 | ```
32 | Invoke-TerminalIconsThemeMigration -Path ./my_icon_theme.psd1 | Out-File ./migrated_icon_theme.psd1
33 | ```
34 |
35 | Loads the theme, migrates classes and then saves the newly migrated theme using the Out-File command.
36 |
37 | ## PARAMETERS
38 |
39 | ### -Path
40 | {{ Fill Path Description }}
41 |
42 | ```yaml
43 | Type: String[]
44 | Parameter Sets: Path
45 | Aliases:
46 |
47 | Required: True
48 | Position: 1
49 | Default value: None
50 | Accept pipeline input: True (ByPropertyName, ByValue)
51 | Accept wildcard characters: True
52 | ```
53 |
54 | ### -LiteralPath
55 | {{ Fill LiteralPath Description }}
56 |
57 | ```yaml
58 | Type: String[]
59 | Parameter Sets: LiteralPath
60 | Aliases: PSPath
61 |
62 | Required: True
63 | Position: 1
64 | Default value: None
65 | Accept pipeline input: True (ByPropertyName)
66 | Accept wildcard characters: False
67 | ```
68 |
69 | ### CommonParameters
70 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
71 |
72 | ## INPUTS
73 |
74 | ### None.
75 | ## OUTPUTS
76 |
77 | ### System.String
78 | ### The theme that has been fully migrated.
79 | ## NOTES
80 |
81 | ## RELATED LINKS
82 |
83 | [Invoke-TerminalIconsThemeMigration]()
84 |
85 | [Invoke-TerminalIconsThemeMigration]()
86 |
87 |
--------------------------------------------------------------------------------
/docs/en-US/Remove-TerminalIconsTheme.md:
--------------------------------------------------------------------------------
1 | ---
2 | external help file: Terminal-Icons-help.xml
3 | Module Name: Terminal-Icons
4 | online version:
5 | schema: 2.0.0
6 | ---
7 |
8 | # Remove-TerminalIconsTheme
9 |
10 | ## SYNOPSIS
11 | Removes a color or icon theme
12 |
13 | ## SYNTAX
14 |
15 | ```
16 | Remove-TerminalIconsTheme [[-IconTheme] ] [[-ColorTheme] ] [-Force] [-WhatIf] [-Confirm]
17 | []
18 | ```
19 |
20 | ## DESCRIPTION
21 | Removes a given icon or color theme.
22 | In order to be removed, a theme must not be active.
23 |
24 | ## EXAMPLES
25 |
26 | ### EXAMPLE 1
27 | ```
28 | Remove-TerminalIconsTheme -IconTheme MyAwesomeTheme
29 | ```
30 |
31 | Removes the icon theme 'MyAwesomeTheme'
32 |
33 | ### EXAMPLE 2
34 | ```
35 | Remove-TerminalIconsTheme -ColorTheme MyAwesomeTheme
36 | ```
37 |
38 | Removes the color theme 'MyAwesomeTheme'
39 |
40 | ## PARAMETERS
41 |
42 | ### -IconTheme
43 | The icon theme to remove.
44 |
45 | ```yaml
46 | Type: String
47 | Parameter Sets: (All)
48 | Aliases:
49 |
50 | Required: False
51 | Position: 1
52 | Default value: None
53 | Accept pipeline input: False
54 | Accept wildcard characters: False
55 | ```
56 |
57 | ### -ColorTheme
58 | The color theme to remove.
59 |
60 | ```yaml
61 | Type: String
62 | Parameter Sets: (All)
63 | Aliases:
64 |
65 | Required: False
66 | Position: 2
67 | Default value: None
68 | Accept pipeline input: False
69 | Accept wildcard characters: False
70 | ```
71 |
72 | ### -Force
73 | Bypass confirmation messages.
74 |
75 | ```yaml
76 | Type: SwitchParameter
77 | Parameter Sets: (All)
78 | Aliases:
79 |
80 | Required: False
81 | Position: Named
82 | Default value: False
83 | Accept pipeline input: False
84 | Accept wildcard characters: False
85 | ```
86 |
87 | ### -WhatIf
88 | Shows what would happen if the cmdlet runs. The cmdlet is not run.
89 |
90 | ```yaml
91 | Type: SwitchParameter
92 | Parameter Sets: (All)
93 | Aliases: wi
94 |
95 | Required: False
96 | Position: Named
97 | Default value: None
98 | Accept pipeline input: False
99 | Accept wildcard characters: False
100 | ```
101 |
102 | ### -Confirm
103 | Prompts you for confirmation before running the cmdlet.
104 |
105 | ```yaml
106 | Type: SwitchParameter
107 | Parameter Sets: (All)
108 | Aliases: cf
109 |
110 | Required: False
111 | Position: Named
112 | Default value: None
113 | Accept pipeline input: False
114 | Accept wildcard characters: False
115 | ```
116 |
117 | ### CommonParameters
118 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
119 |
120 | ## INPUTS
121 |
122 | ### System.String
123 | ### The name of the color or icon theme to remove.
124 | ## OUTPUTS
125 |
126 | ### None.
127 | ## NOTES
128 | A theme must not be active in order to be removed.
129 |
130 | ## RELATED LINKS
131 |
132 | [Set-TerminalIconsTheme]()
133 |
134 | [Add-TerminalIconsColorTheme]()
135 |
136 | [Add-TerminalIconsIconTheme]()
137 |
138 | [Get-TerminalIconsTheme]()
139 |
140 |
--------------------------------------------------------------------------------
/docs/en-US/Set-TerminalIconsColorTheme.md:
--------------------------------------------------------------------------------
1 | ---
2 | external help file: Terminal-Icons-help.xml
3 | Module Name: Terminal-Icons
4 | online version:
5 | schema: 2.0.0
6 | ---
7 |
8 | # Set-TerminalIconsColorTheme
9 |
10 | ## SYNOPSIS
11 | Set the Terminal-Icons color theme.
12 |
13 | ## SYNTAX
14 |
15 | ```
16 | Set-TerminalIconsColorTheme [-Name] []
17 | ```
18 |
19 | ## DESCRIPTION
20 | Set the Terminal-Icons color theme to a registered theme.
21 |
22 | ## EXAMPLES
23 |
24 | ### EXAMPLE 1
25 | ```
26 | Set-TerminalIconsColorTheme -Name devblackops
27 | ```
28 |
29 | Set the color theme to 'devblackops'.
30 |
31 | ## PARAMETERS
32 |
33 | ### -Name
34 | The name of a registered color theme.
35 |
36 | ```yaml
37 | Type: String
38 | Parameter Sets: (All)
39 | Aliases:
40 |
41 | Required: True
42 | Position: 1
43 | Default value: None
44 | Accept pipeline input: True (ByPropertyName, ByValue)
45 | Accept wildcard characters: False
46 | ```
47 |
48 | ### CommonParameters
49 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
50 |
51 | ## INPUTS
52 |
53 | ### System.String
54 | ### The name of a registered color theme.
55 | ## OUTPUTS
56 |
57 | ### None.
58 | ## NOTES
59 |
60 | ## RELATED LINKS
61 |
62 | [Set-TerminalIconsIconTheme]()
63 |
64 | [Get-TerminalIconsColorTheme]()
65 |
66 | [Get-TerminalIconsIconTheme]()
67 |
68 |
--------------------------------------------------------------------------------
/docs/en-US/Set-TerminalIconsIcon.md:
--------------------------------------------------------------------------------
1 | ---
2 | external help file: Terminal-Icons-help.xml
3 | Module Name: Terminal-Icons
4 | online version:
5 | schema: 2.0.0
6 | ---
7 |
8 | # Set-TerminalIconsIcon
9 |
10 | ## SYNOPSIS
11 | Set a specific icon in the current Terminal-Icons icon theme or allows
12 | swapping one glyph for another.
13 |
14 | ## SYNTAX
15 |
16 | ### FileExtension (Default)
17 | ```
18 | Set-TerminalIconsIcon -FileExtension -Glyph [-Force] [-WhatIf] [-Confirm]
19 | []
20 | ```
21 |
22 | ### Directory
23 | ```
24 | Set-TerminalIconsIcon -Directory -Glyph [-Force] [-WhatIf] [-Confirm] []
25 | ```
26 |
27 | ### FileName
28 | ```
29 | Set-TerminalIconsIcon -FileName -Glyph [-Force] [-WhatIf] [-Confirm] []
30 | ```
31 |
32 | ### SwapGlyph
33 | ```
34 | Set-TerminalIconsIcon -NewGlyph -Glyph [-Force] [-WhatIf] [-Confirm] []
35 | ```
36 |
37 | ## DESCRIPTION
38 | Set the Terminal-Icons icon for a specific file/directory or glyph to a
39 | named glyph.
40 |
41 | Also allows all uses of a specific glyph to be replaced with a different
42 | glyph.
43 |
44 | ## EXAMPLES
45 |
46 | ### EXAMPLE 1
47 | ```
48 | Set-TerminalIconsIcon -FileName "README.md" -Glyph "nf-fa-file_text"
49 | ```
50 |
51 | Set README.md files to display a text file icon.
52 |
53 | ### EXAMPLE 2
54 | ```
55 | Set-TerminalIconsIcon -FileExtension ".xml" -Glyph "nf-md-xml"
56 | ```
57 |
58 | Set XML files to display an XML file icon.
59 |
60 | ### EXAMPLE 3
61 | ```
62 | Set-TerminalIconsIcon -Directory ".github" -Glyph "nf-dev-github_alt"
63 | ```
64 |
65 | Set directories named ".github" to display an Octocat face icon.
66 |
67 | ### EXAMPLE 4
68 | ```
69 | Set-TerminalIconsIcon -Glyph "nf-md-xml" -NewGlyph "nf-md-xml"
70 | ```
71 |
72 | Changes all uses of the "nf-md-xml" double-wide glyph to be the "nf-md-xml"
73 | single-width XML file glyph.
74 |
75 | ## PARAMETERS
76 |
77 | ### -Directory
78 | The well-known directory name to match for the icon.
79 |
80 | ```yaml
81 | Type: String
82 | Parameter Sets: Directory
83 | Aliases:
84 |
85 | Required: True
86 | Position: Named
87 | Default value: None
88 | Accept pipeline input: False
89 | Accept wildcard characters: False
90 | ```
91 |
92 | ### -FileName
93 | The well-known file name to match for the icon.
94 |
95 | ```yaml
96 | Type: String
97 | Parameter Sets: FileName
98 | Aliases:
99 |
100 | Required: True
101 | Position: Named
102 | Default value: None
103 | Accept pipeline input: False
104 | Accept wildcard characters: False
105 | ```
106 |
107 | ### -FileExtension
108 | The file extension to match for the icon.
109 |
110 | ```yaml
111 | Type: String
112 | Parameter Sets: FileExtension
113 | Aliases:
114 |
115 | Required: True
116 | Position: Named
117 | Default value: None
118 | Accept pipeline input: False
119 | Accept wildcard characters: False
120 | ```
121 |
122 | ### -NewGlyph
123 | The name of the new glyph to use when swapping.
124 |
125 | ```yaml
126 | Type: String
127 | Parameter Sets: SwapGlyph
128 | Aliases:
129 |
130 | Required: True
131 | Position: Named
132 | Default value: None
133 | Accept pipeline input: False
134 | Accept wildcard characters: False
135 | ```
136 |
137 | ### -Glyph
138 | The name of the glyph to use; or, when swapping glyphs, the name of the
139 | glyph you want to change.
140 |
141 | ```yaml
142 | Type: String
143 | Parameter Sets: (All)
144 | Aliases:
145 |
146 | Required: True
147 | Position: Named
148 | Default value: None
149 | Accept pipeline input: False
150 | Accept wildcard characters: False
151 | ```
152 |
153 | ### -Force
154 | Bypass confirmation messages.
155 |
156 | ```yaml
157 | Type: SwitchParameter
158 | Parameter Sets: (All)
159 | Aliases:
160 |
161 | Required: False
162 | Position: Named
163 | Default value: False
164 | Accept pipeline input: False
165 | Accept wildcard characters: False
166 | ```
167 |
168 | ### -WhatIf
169 | Shows what would happen if the cmdlet runs.
170 | The cmdlet is not run.
171 |
172 | ```yaml
173 | Type: SwitchParameter
174 | Parameter Sets: (All)
175 | Aliases: wi
176 |
177 | Required: False
178 | Position: Named
179 | Default value: None
180 | Accept pipeline input: False
181 | Accept wildcard characters: False
182 | ```
183 |
184 | ### -Confirm
185 | Prompts you for confirmation before running the cmdlet.
186 |
187 | ```yaml
188 | Type: SwitchParameter
189 | Parameter Sets: (All)
190 | Aliases: cf
191 |
192 | Required: False
193 | Position: Named
194 | Default value: None
195 | Accept pipeline input: False
196 | Accept wildcard characters: False
197 | ```
198 |
199 | ### CommonParameters
200 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
201 |
202 | ## INPUTS
203 |
204 | ### None.
205 | ### The command does not accept pipeline input.
206 | ## OUTPUTS
207 |
208 | ### None.
209 | ## NOTES
210 |
211 | ## RELATED LINKS
212 |
213 | [Get-TerminalIconsIconTheme]()
214 |
215 | [Get-TerminalIconsTheme]()
216 |
217 | [Get-TerminalIconsGlyphs]()
218 |
219 |
--------------------------------------------------------------------------------
/docs/en-US/Set-TerminalIconsIconTheme.md:
--------------------------------------------------------------------------------
1 | ---
2 | external help file: Terminal-Icons-help.xml
3 | Module Name: Terminal-Icons
4 | online version:
5 | schema: 2.0.0
6 | ---
7 |
8 | # Set-TerminalIconsIconTheme
9 |
10 | ## SYNOPSIS
11 | Set the Terminal-Icons icon theme.
12 |
13 | ## SYNTAX
14 |
15 | ```
16 | Set-TerminalIconsIconTheme [-Name] []
17 | ```
18 |
19 | ## DESCRIPTION
20 | Set the Terminal-Icons icon theme to a registered theme.
21 |
22 | ## EXAMPLES
23 |
24 | ### EXAMPLE 1
25 | ```
26 | Set-TerminalIconsIconTheme -Name devblackops
27 | ```
28 |
29 | Set the icon theme to 'devblackops'.
30 |
31 | ## PARAMETERS
32 |
33 | ### -Name
34 | The name of a registered icon theme.
35 |
36 | ```yaml
37 | Type: String
38 | Parameter Sets: (All)
39 | Aliases:
40 |
41 | Required: True
42 | Position: 1
43 | Default value: None
44 | Accept pipeline input: True (ByPropertyName, ByValue)
45 | Accept wildcard characters: False
46 | ```
47 |
48 | ### CommonParameters
49 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
50 |
51 | ## INPUTS
52 |
53 | ### System.String
54 | ### The name of a registered icon theme.
55 | ## OUTPUTS
56 |
57 | ### None.
58 | ## NOTES
59 |
60 | ## RELATED LINKS
61 |
62 | [Set-TerminalIconsColorTheme]()
63 |
64 | [Get-TerminalIconsColorTheme]()
65 |
66 | [Get-TerminalIconsIconTheme]()
67 |
68 |
--------------------------------------------------------------------------------
/docs/en-US/Set-TerminalIconsTheme.md:
--------------------------------------------------------------------------------
1 | ---
2 | external help file: Terminal-Icons-help.xml
3 | Module Name: Terminal-Icons
4 | online version:
5 | schema: 2.0.0
6 | ---
7 |
8 | # Set-TerminalIconsTheme
9 |
10 | ## SYNOPSIS
11 | {{ Fill in the Synopsis }}
12 |
13 | ## SYNTAX
14 |
15 | ### theme (Default)
16 | ```
17 | Set-TerminalIconsTheme [-IconTheme ] [-ColorTheme ] [-Force] [-WhatIf] [-Confirm]
18 | []
19 | ```
20 |
21 | ### notheme
22 | ```
23 | Set-TerminalIconsTheme [-DisableColorTheme] [-DisableIconTheme] [-Force] [-WhatIf] [-Confirm]
24 | []
25 | ```
26 |
27 | ## DESCRIPTION
28 | {{ Fill in the Description }}
29 |
30 | ## EXAMPLES
31 |
32 | ### Example 1
33 | ```powershell
34 | PS C:\> {{ Add example code here }}
35 | ```
36 |
37 | {{ Add example description here }}
38 |
39 | ## PARAMETERS
40 |
41 | ### -IconTheme
42 | {{ Fill IconTheme Description }}
43 |
44 | ```yaml
45 | Type: String
46 | Parameter Sets: theme
47 | Aliases:
48 |
49 | Required: False
50 | Position: Named
51 | Default value: None
52 | Accept pipeline input: False
53 | Accept wildcard characters: False
54 | ```
55 |
56 | ### -ColorTheme
57 | {{ Fill ColorTheme Description }}
58 |
59 | ```yaml
60 | Type: String
61 | Parameter Sets: theme
62 | Aliases:
63 |
64 | Required: False
65 | Position: Named
66 | Default value: None
67 | Accept pipeline input: False
68 | Accept wildcard characters: False
69 | ```
70 |
71 | ### -DisableColorTheme
72 | Disables custom colors and uses default terminal color.
73 |
74 | ```yaml
75 | Type: SwitchParameter
76 | Parameter Sets: notheme
77 | Aliases:
78 |
79 | Required: False
80 | Position: Named
81 | Default value: False
82 | Accept pipeline input: False
83 | Accept wildcard characters: False
84 | ```
85 |
86 | ### -DisableIconTheme
87 | Disables custom icons and shows only shows the directory or file name.
88 |
89 | ```yaml
90 | Type: SwitchParameter
91 | Parameter Sets: notheme
92 | Aliases:
93 |
94 | Required: False
95 | Position: Named
96 | Default value: False
97 | Accept pipeline input: False
98 | Accept wildcard characters: False
99 | ```
100 |
101 | ### -Force
102 | Bypass confirmation messages.
103 |
104 | ```yaml
105 | Type: SwitchParameter
106 | Parameter Sets: (All)
107 | Aliases:
108 |
109 | Required: False
110 | Position: Named
111 | Default value: False
112 | Accept pipeline input: False
113 | Accept wildcard characters: False
114 | ```
115 |
116 | ### -WhatIf
117 | Shows what would happen if the cmdlet runs. The cmdlet is not run.
118 |
119 | ```yaml
120 | Type: SwitchParameter
121 | Parameter Sets: (All)
122 | Aliases: wi
123 |
124 | Required: False
125 | Position: Named
126 | Default value: None
127 | Accept pipeline input: False
128 | Accept wildcard characters: False
129 | ```
130 |
131 | ### -Confirm
132 | Prompts you for confirmation before running the cmdlet.
133 |
134 | ```yaml
135 | Type: SwitchParameter
136 | Parameter Sets: (All)
137 | Aliases: cf
138 |
139 | Required: False
140 | Position: Named
141 | Default value: None
142 | Accept pipeline input: False
143 | Accept wildcard characters: False
144 | ```
145 |
146 | ### CommonParameters
147 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
148 |
149 | ## INPUTS
150 |
151 | ### System.String
152 |
153 | ## OUTPUTS
154 |
155 | ### System.Object
156 | ## NOTES
157 |
158 | ## RELATED LINKS
159 |
--------------------------------------------------------------------------------
/docs/en-US/Show-TerminalIconsTheme.md:
--------------------------------------------------------------------------------
1 | ---
2 | external help file: Terminal-Icons-help.xml
3 | Module Name: Terminal-Icons
4 | online version:
5 | schema: 2.0.0
6 | ---
7 |
8 | # Show-TerminalIconsTheme
9 |
10 | ## SYNOPSIS
11 | List example directories and files to show the currently applied color and icon themes.
12 |
13 | ## SYNTAX
14 |
15 | ```
16 | Show-TerminalIconsTheme []
17 | ```
18 |
19 | ## DESCRIPTION
20 | List example directories and files to show the currently applied color and icon themes.
21 | The directory/file objects show are in memory only, they are not written to the filesystem.
22 |
23 | ## EXAMPLES
24 |
25 | ### EXAMPLE 1
26 | ```
27 | Show-TerminalIconsTheme
28 | ```
29 |
30 | List example directories and files to show the currently applied color and icon themes.
31 |
32 | ## PARAMETERS
33 |
34 | ### CommonParameters
35 | This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
36 |
37 | ## INPUTS
38 |
39 | ### None.
40 | ## OUTPUTS
41 |
42 | ### System.IO.DirectoryInfo
43 | ### System.IO.FileInfo
44 | ## NOTES
45 | Example directory and file objects only exist in memory.
46 | They are not written to the filesystem.
47 |
48 | ## RELATED LINKS
49 |
50 | [Get-TerminalIconsColorTheme]()
51 |
52 | [Get-TerminalIconsIconTheme]()
53 |
54 | [Get-TerminalIconsTheme]()
55 |
56 |
--------------------------------------------------------------------------------
/media/icon_256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devblackops/Terminal-Icons/46866e45a602566bb8a52af5a04dac1d69482c29/media/icon_256.png
--------------------------------------------------------------------------------
/media/icon_512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devblackops/Terminal-Icons/46866e45a602566bb8a52af5a04dac1d69482c29/media/icon_512.png
--------------------------------------------------------------------------------
/media/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devblackops/Terminal-Icons/46866e45a602566bb8a52af5a04dac1d69482c29/media/screenshot.png
--------------------------------------------------------------------------------
/media/screenshot1.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devblackops/Terminal-Icons/46866e45a602566bb8a52af5a04dac1d69482c29/media/screenshot1.PNG
--------------------------------------------------------------------------------
/psakeFile.ps1:
--------------------------------------------------------------------------------
1 | properties {
2 | # Build settings
3 | $PSBPreference.Build.CompileModule = $true
4 | $PSBPreference.Build.CopyDirectories = @('Data')
5 | $PSBPreference.Build.CompileHeader = @'
6 | using namespace System.Management.Automation
7 | using namespace System.Collections.ObjectModel
8 | '@
9 |
10 | # Test settings
11 | $PSBPreference.Test.ImportModule = $true
12 | $PSBPreference.Test.OutputFile = [IO.Path]::Combine($PSBPreference.Build.OutDir, 'testResults.xml')
13 | $PSBPreference.Test.ScriptAnalysis.SettingsPath = [IO.Path]::Combine($PSBPreference.Test.RootDir, 'ScriptAnalyzerSettings.psd1')
14 |
15 | # Publish settings
16 | if ($galleryApiKey) {
17 | $PSBPreference.Publish.PSRepositoryApiKey = $galleryApiKey.GetNetworkCredential().password
18 | }
19 | }
20 |
21 | task default -depends Test
22 |
23 | task Pester -FromModule PowerShellBuild -Version '0.6.1' -preaction {Remove-Module Terminal-Icons -ErrorAction SilentlyContinue}
24 |
25 | task UpdateGlyphs {
26 | Import-Module PowerHtml
27 |
28 | $cheatsheet = 'https://www.nerdfonts.com/cheat-sheet'
29 | $parsedHtml = Invoke-WebRequest $cheatsheet | ConvertFrom-Html
30 | $glyphs = $parsedHtml.SelectNodes("//div[@class='class-name']").ForEach({
31 | [pscustomobject]@{
32 | name = $_.InnerText
33 | codePoint = $_.NextSibling[0].InnerText
34 | }
35 | })
36 |
37 | $sb = [Text.StringBuilder]::new()
38 | $sb.AppendLine('@{') > $null
39 | $glyphs.ForEach({
40 | $icon = [char][int]"0x$($_.codePoint)"
41 | $sb.AppendFormat(" '{0}' = '{1}'`n", $_.Name, $icon ) > $null
42 | })
43 | $sb.AppendLine('}') > $null
44 |
45 | $now = [int][double]::Parse((Get-Date -UFormat %s))
46 | $fileName = "$PSScriptRoot/Terminal-Icons/Data/glyphs_$now.ps1"
47 | $sb.ToString().Trim() | Out-File $fileName -Encoding utf8
48 |
49 | } -description 'Create a list of glyphs, sourced from nerdfonts.com'
50 |
51 | task InstallAct {
52 | if (-not (Get-Command -Name act -CommandType Application -ErrorAction SilentlyContinue)) {
53 | if ($IsWindows) {
54 | choco install act-cli
55 | } elseif ($IsLinux) {
56 | curl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash
57 | } elseIf ($IsMacOS) {
58 | brew install nektos/tap/act
59 | }
60 | } else {
61 | 'act already installed'
62 | }
63 | }
64 |
65 | task TestGHAction -depends Build, InstallAct {
66 | act -j test -P ubuntu-latest=nektos/act-environments-ubuntu:18.04
67 | }
68 |
--------------------------------------------------------------------------------
/requirements.psd1:
--------------------------------------------------------------------------------
1 | @{
2 | PSDependOptions = @{
3 | Target = 'CurrentUser'
4 | }
5 | BuildHelpers = '2.0.16'
6 | PowerHtml = 'latest'
7 | PowerShellBuild = '0.6.1'
8 | psake = '4.9.0'
9 | PSScriptAnalyzer = '1.19.1'
10 | }
11 |
--------------------------------------------------------------------------------
/tests/Help.tests.ps1:
--------------------------------------------------------------------------------
1 | # Taken with love from @juneb_get_help (https://raw.githubusercontent.com/juneb/PesterTDD/master/Module.Help.Tests.ps1)
2 |
3 | Describe 'Help' {
4 | $testCases = Get-Command -Module $env:BHProjectName -CommandType Cmdlet, Function | ForEach-Object {
5 | @{
6 | Name = $_.Name
7 | Command = $_
8 | }
9 | }
10 |
11 | BeforeAll {
12 | $commonParameters = 'Debug', 'ErrorAction', 'ErrorVariable', 'InformationAction', 'InformationVariable', 'OutBuffer',
13 | 'OutVariable', 'PipelineVariable', 'Verbose', 'WarningAction', 'WarningVariable', 'Confirm', 'Whatif'
14 | }
15 |
16 | # No auto-generated help
17 | Context 'Auto-generation' {
18 | it 'Help for [] should not be auto-generated' -TestCases $testCases {
19 | param($Name, $Command)
20 |
21 | $help = Get-Help $Name -ErrorAction SilentlyContinue
22 | $help.Synopsis | Should -Not -BeLike '*`[``]*'
23 | }
24 | }
25 |
26 |
27 | # Should have a description for every function
28 | Context 'Help description' {
29 | It 'Help for [] has a description' -TestCases $testCases {
30 | param($Name, $Command)
31 |
32 | $help = Get-Help $Name -ErrorAction SilentlyContinue
33 | $help.Description | Should -Not -BeNullOrEmpty
34 | }
35 | }
36 |
37 | # Should be at least one example per command
38 | Context 'Examples' {
39 | It 'Help for [] has example code' -TestCases $testCases {
40 | param($Name, $Command)
41 |
42 | $help = Get-Help $Name -ErrorAction SilentlyContinue
43 | ($help.Examples.Example | Select-Object -First 1).Code | Should -Not -BeNullOrEmpty
44 | }
45 | }
46 |
47 | # Parameter help
48 | Context 'Parameter help' {
49 | It '[] has help for every parameter' -TestCases $testCases {
50 | param($Name, $Command)
51 |
52 | $help = Get-Help $Name -ErrorAction SilentlyContinue
53 | $parameters = $Command.ParameterSets.Parameters |
54 | Sort-Object -Property Name -Unique |
55 | Where-Object { $_.Name -notin $commonParameters }
56 | $parameterNames = $parameters.Name
57 |
58 | # Without the filter, WhatIf and Confirm parameters are still flagged in "finds help parameter in code" test
59 | $helpParameters = $help.Parameters.Parameter |
60 | Where-Object { $_.Name -notin $commonParameters } |
61 | Sort-Object -Property Name -Unique
62 | $helpParameterNames = $helpParameters.Name
63 |
64 | foreach ($parameter in $parameters) {
65 | $parameterName = $parameter.Name
66 | $parameterHelp = $help.parameters.parameter | Where-Object Name -eq $parameterName
67 | $parameterHelp.Description.Text | Should -Not -BeNullOrEmpty
68 |
69 | $codeMandatory = $parameter.IsMandatory.toString()
70 | $parameterHelp.Required | Should -Be $codeMandatory
71 |
72 | $codeType = $parameter.ParameterType.Name
73 | # To avoid calling Trim method on a null object.
74 | $helpType = if ($parameterHelp.parameterValue) { $parameterHelp.parameterValue.Trim() }
75 | $helpType | Should -Be $codeType
76 | }
77 | }
78 | }
79 |
80 | # Links are valid
81 | Context 'Links' {
82 | It 'Help for [] has valid links' -TestCases $testCases {
83 | param($Name, $Command)
84 |
85 | $help = Get-Help $Name -ErrorAction SilentlyContinue
86 | $link = $help.relatedLinks.navigationLink.uri
87 | foreach ($link in $links) {
88 | $Results = Invoke-WebRequest -Uri $link -UseBasicParsing
89 | $Results.StatusCode | Should -Be '200'
90 | }
91 | }
92 | }
93 | }
94 |
--------------------------------------------------------------------------------
/tests/Manifest.tests.ps1:
--------------------------------------------------------------------------------
1 | Describe 'Module manifest' {
2 |
3 | BeforeAll {
4 | $moduleName = $env:BHProjectName
5 | $manifest = Test-ModuleManifest $env:BHPSModuleManifest
6 | $outputDir = [IO.Path]::Combine($ENV:BHProjectPath, 'Output')
7 | $outputModDir = [IO.Path]::Combine($outputDir, $env:BHProjectName)
8 | $outputModVerDir = [IO.Path]::Combine($outputModDir, $manifest.Version)
9 | $outputManifestPath = [IO.Path]::Combine($outputModVerDir, "$($moduleName).psd1")
10 | $changelogPath = [IO.Path]::Combine($env:BHProjectPath, 'CHANGELOG.md')
11 | }
12 |
13 | Context 'Validation' {
14 |
15 | $script:manifest = $null
16 |
17 | It 'has a valid manifest' {
18 | {
19 | $script:manifest = Test-ModuleManifest -Path $outputManifestPath -Verbose:$false -ErrorAction Stop -WarningAction SilentlyContinue
20 | } | Should -Not -Throw
21 | }
22 |
23 | It 'has a valid name in the manifest' {
24 | $script:manifest.Name | Should -Be $env:BHProjectName
25 | }
26 |
27 | It 'has a valid root module' {
28 | $script:manifest.RootModule | Should -Be "$($moduleName).psm1"
29 | }
30 |
31 | It 'has a valid version in the manifest' {
32 | $script:manifest.Version -as [Version] | Should -Not -BeNullOrEmpty
33 | }
34 |
35 | It 'has a valid description' {
36 | $script:manifest.Description | Should -Not -BeNullOrEmpty
37 | }
38 |
39 | It 'has a valid author' {
40 | $script:manifest.Author | Should -Not -BeNullOrEmpty
41 | }
42 |
43 | It 'has a valid guid' {
44 | {
45 | [guid]::Parse($script:manifest.Guid)
46 | } | Should -Not -Throw
47 | }
48 |
49 | It 'has a valid copyright' {
50 | $script:manifest.CopyRight | Should -Not -BeNullOrEmpty
51 | }
52 |
53 | $script:changelogVersion = $null
54 | It 'has a valid version in the changelog' {
55 | foreach ($line in (Get-Content $changelogPath)) {
56 | if ($line -match "^##\s\[(?(\d+\.){1,3}\d+)\]") {
57 | $script:changelogVersion = $matches.Version
58 | break
59 | }
60 | }
61 | $script:changelogVersion | Should -Not -BeNullOrEmpty
62 | $script:changelogVersion -as [Version] | Should -Not -BeNullOrEmpty
63 | }
64 |
65 | It 'changelog and manifest versions are the same' {
66 | $script:changelogVersion -as [Version] | Should -Be ( $script:manifest.Version -as [Version] )
67 | }
68 |
69 | if (Get-Command git.exe -ErrorAction SilentlyContinue) {
70 | $script:tagVersion = $null
71 | It 'is tagged with a valid version' -skip {
72 | $thisCommit = git.exe log --decorate --oneline HEAD~1..HEAD
73 |
74 | if ($thisCommit -match 'tag:\s*(\d+(?:\.\d+)*)') {
75 | $script:tagVersion = $matches[1]
76 | }
77 |
78 | $script:tagVersion | Should -Not -BeNullOrEmpty
79 | $script:tagVersion -as [Version] | Should -Not -BeNullOrEmpty
80 | }
81 |
82 | It 'all versions are the same' {
83 | $script:changelogVersion -as [Version] | Should -Be ( $script:manifest.Version -as [Version] )
84 | }
85 | }
86 | }
87 | }
88 |
--------------------------------------------------------------------------------
/tests/Meta.tests.ps1:
--------------------------------------------------------------------------------
1 | Describe 'Text files formatting' {
2 |
3 | BeforeAll {
4 | Set-StrictMode -Version latest
5 |
6 | # Make sure MetaFixers.psm1 is loaded - it contains Get-TextFilesList
7 | Import-Module -Name ([IO.Path]::Combine($PSScriptRoot, 'MetaFixers.psm1')) -Verbose:$false -Force
8 |
9 | $projectRoot = $ENV:BHProjectPath
10 | if(-not $projectRoot) {
11 | $projectRoot = $PSScriptRoot
12 | }
13 |
14 | $allTextFiles = Get-TextFilesList $projectRoot
15 | }
16 |
17 | Context 'Files encoding' {
18 | It "Doesn't use Unicode encoding" {
19 | $unicodeFilesCount = 0
20 | $allTextFiles | Foreach-Object {
21 | if (Test-FileUnicode $_) {
22 | $unicodeFilesCount += 1
23 | Write-Warning "File $($_.FullName) contains 0x00 bytes. It's probably uses Unicode and need to be converted to UTF-8. Use Fixer 'Get-UnicodeFilesList `$pwd | ConvertTo-UTF8'."
24 | }
25 | }
26 | $unicodeFilesCount | Should -Be 0
27 | }
28 | }
29 |
30 | Context 'Indentations' {
31 | It 'Uses spaces for indentation, not tabs' {
32 | $totalTabsCount = 0
33 | $allTextFiles | Foreach-Object {
34 | $fileName = $_.FullName
35 | (Get-Content $_.FullName -Raw) | Select-String "`t" | Foreach-Object {
36 | Write-Warning "There are tab in $fileName. Use Fixer 'Get-TextFilesList `$pwd | ConvertTo-SpaceIndentation'."
37 | $totalTabsCount++
38 | }
39 | }
40 | $totalTabsCount | Should -Be 0
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/tests/MetaFixers.psm1:
--------------------------------------------------------------------------------
1 | # Taken with love from https://github.com/PowerShell/DscResource.Tests/blob/master/MetaFixers.psm1
2 |
3 | <#
4 | This module helps fix problems, found by Meta.Tests.ps1
5 | #>
6 |
7 | $ErrorActionPreference = 'stop'
8 | Set-StrictMode -Version latest
9 |
10 | function ConvertTo-UTF8() {
11 | [CmdletBinding()]
12 | [OutputType([void])]
13 | param(
14 | [Parameter(Mandatory, ValueFromPipeline)]
15 | [System.IO.FileInfo]$FileInfo
16 | )
17 |
18 | process {
19 | $content = Get-Content -Raw -Encoding Unicode -Path $FileInfo.FullName
20 | [System.IO.File]::WriteAllText($FileInfo.FullName, $content, [System.Text.Encoding]::UTF8)
21 | }
22 | }
23 |
24 | function ConvertTo-SpaceIndentation() {
25 | [CmdletBinding()]
26 | [OutputType([void])]
27 | param(
28 | [Parameter(Mandatory, ValueFromPipeline)]
29 | [System.IO.FileInfo]$FileInfo
30 | )
31 |
32 | process {
33 | $content = (Get-Content -Raw -Path $FileInfo.FullName) -replace "`t", ' '
34 | [System.IO.File]::WriteAllText($FileInfo.FullName, $content)
35 | }
36 | }
37 |
38 | function Get-TextFilesList {
39 | [CmdletBinding()]
40 | [OutputType([System.IO.FileInfo])]
41 | param(
42 | [Parameter(Mandatory)]
43 | [string]$Root
44 | )
45 | Get-ChildItem -Path $Root -File -Recurse |
46 | Where-Object { @('.gitignore', '.gitattributes', '.ps1', '.psm1', '.psd1', '.json', '.xml', '.cmd', '.mof') -contains $_.Extension }
47 | }
48 |
49 | function Test-FileUnicode {
50 | [CmdletBinding()]
51 | [OutputType([bool])]
52 | param(
53 | [Parameter(Mandatory, ValueFromPipeline)]
54 | [System.IO.FileInfo]$FileInfo
55 | )
56 |
57 | process {
58 | $path = $FileInfo.FullName
59 | $bytes = [System.IO.File]::ReadAllBytes($path)
60 | $zeroBytes = @($bytes -eq 0)
61 | return [bool]$zeroBytes.Length
62 |
63 | }
64 | }
65 |
66 | function Get-UnicodeFilesList() {
67 | [CmdletBinding()]
68 | [OutputType([System.IO.FileInfo])]
69 | param(
70 | [Parameter(Mandatory)]
71 | [string]$Root
72 | )
73 |
74 | Get-TextFilesList $Root | Where-Object { Test-FileUnicode $_ }
75 | }
76 |
--------------------------------------------------------------------------------
/tests/MyAwesomeColorTheme.psd1:
--------------------------------------------------------------------------------
1 | @{
2 | Name = 'MyAwesomeTheme'
3 | Types = @{
4 | Directories = @{
5 | WellKnown = @{
6 | tests = '98FB98'
7 | }
8 | }
9 | Files = @{
10 | WellKnown = @{
11 | '.ps1' = '98FB98'
12 | }
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/tests/MyAwesomeIconTheme.psd1:
--------------------------------------------------------------------------------
1 | @{
2 | Name = 'MyAwesomeTheme'
3 | Types = @{
4 | Directories = @{
5 | '' = 'nf-fa-file'
6 | symlink = 'nf-oct-file_symlink_directory'
7 | junction = 'nf-fa-external_link'
8 | WellKnown = @{
9 | tests = 'nf-fa-gear'
10 | }
11 | }
12 | Files = @{
13 | '' = 'nf-fa-file'
14 | symlink = 'nf-oct-file_symlink_file'
15 | junction = 'nf-fa-external_link'
16 | WellKnown = @{
17 | '.ps1' = 'nf-fa-gear'
18 | }
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/tests/ScriptAnalyzerSettings.psd1:
--------------------------------------------------------------------------------
1 | @{
2 | ExcludeRules = @('PSUseBOMForUnicodeEncodedFile')
3 | }
4 |
--------------------------------------------------------------------------------
/tests/TestItems/.gitattributes:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devblackops/Terminal-Icons/46866e45a602566bb8a52af5a04dac1d69482c29/tests/TestItems/.gitattributes
--------------------------------------------------------------------------------
/tests/TestItems/.gitconfig:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devblackops/Terminal-Icons/46866e45a602566bb8a52af5a04dac1d69482c29/tests/TestItems/.gitconfig
--------------------------------------------------------------------------------
/tests/TestItems/LICENSE:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devblackops/Terminal-Icons/46866e45a602566bb8a52af5a04dac1d69482c29/tests/TestItems/LICENSE
--------------------------------------------------------------------------------
/tests/TestItems/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devblackops/Terminal-Icons/46866e45a602566bb8a52af5a04dac1d69482c29/tests/TestItems/README.md
--------------------------------------------------------------------------------
/tests/TestItems/asdf.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devblackops/Terminal-Icons/46866e45a602566bb8a52af5a04dac1d69482c29/tests/TestItems/asdf.md
--------------------------------------------------------------------------------
/tests/TestItems/asdf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devblackops/Terminal-Icons/46866e45a602566bb8a52af5a04dac1d69482c29/tests/TestItems/asdf.png
--------------------------------------------------------------------------------
/tests/TestItems/asdf.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devblackops/Terminal-Icons/46866e45a602566bb8a52af5a04dac1d69482c29/tests/TestItems/asdf.txt
--------------------------------------------------------------------------------
/tests/TestItems/bar.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devblackops/Terminal-Icons/46866e45a602566bb8a52af5a04dac1d69482c29/tests/TestItems/bar.jpg
--------------------------------------------------------------------------------
/tests/TestItems/foo.go:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devblackops/Terminal-Icons/46866e45a602566bb8a52af5a04dac1d69482c29/tests/TestItems/foo.go
--------------------------------------------------------------------------------
/tests/TestItems/for.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devblackops/Terminal-Icons/46866e45a602566bb8a52af5a04dac1d69482c29/tests/TestItems/for.gif
--------------------------------------------------------------------------------
/tests/unit/Add-TerminalIconsColorTheme.tests.ps1:
--------------------------------------------------------------------------------
1 | InModuleScope 'Terminal-Icons' {
2 | Describe 'Add-TerminalIconsColorTheme' {
3 | Context 'Themes' {
4 | AfterAll {
5 | $themeStorage = Get-ThemeStoragePath
6 | Set-TerminalIconsTheme -ColorTheme devblackops -IconTheme devblackops
7 | Remove-Item (Join-Path $themeStorage 'MyAwesomeTheme_color.xml') -Force -ErrorAction SilentlyContinue
8 | }
9 |
10 | Mock Export-CliXml {}
11 |
12 | it 'Good theme should be added' {
13 | Add-TerminalIconsColorTheme -Path $PSScriptRoot/../MyAwesomeColorTheme.psd1 # $goodTheme.FullName -Force
14 | $script:userThemeData.Themes.Color['MyAwesomeTheme'] | Should -BeOfType System.Collections.Hashtable
15 | $script:userThemeData.Themes.Color['MyAwesomeTheme'].Name | Should -Be 'MyAwesomeTheme'
16 | }
17 |
18 | it 'Bad theme path should throw' {
19 | $badThemeFile = [guid]::NewGuid().ToString()
20 | {Add-TerminalIconsColorTheme -Path "./$badThemeFile" -ErrorAction Stop} | Should -Throw
21 | }
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/tests/unit/Add-TerminalIconsIconTheme.tests.ps1:
--------------------------------------------------------------------------------
1 | InModuleScope 'Terminal-Icons' {
2 | Describe 'Add-TerminalIconsIconTheme' {
3 | Context 'Themes' {
4 | AfterAll {
5 | $themeStorage = Get-ThemeStoragePath
6 | Set-TerminalIconsTheme -ColorTheme devblackops -IconTheme devblackops
7 | Remove-Item (Join-Path $themeStorage 'MyAwesomeTheme_icon.xml') -Force -ErrorAction SilentlyContinue
8 | }
9 |
10 | Mock Export-CliXml {}
11 |
12 | it 'Good theme should be added' {
13 | Add-TerminalIconsIconTheme -Path $PSScriptRoot/../MyAwesomeIconTheme.psd1 -Force
14 | $script:userThemeData.Themes.Icon['MyAwesomeTheme'] | Should -BeOfType System.Collections.Hashtable
15 | $script:userThemeData.Themes.Icon['MyAwesomeTheme'].Name | Should -Be 'MyAwesomeTheme'
16 | }
17 |
18 | it 'Bad theme path should throw' {
19 | $badThemeFile = [guid]::NewGuid().ToString()
20 | {Add-TerminalIconsIconTheme -Path "./$badThemeFile" -ErrorAction Stop} | Should -Throw
21 | }
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/tests/unit/Format-TerminalIcons.tests.ps1:
--------------------------------------------------------------------------------
1 | Describe 'Format-TerminalIcons' {
2 | BeforeAll {
3 | $folderName = [System.IO.Path]::GetRandomFileName().Split('.')[0]
4 | $fileName = [System.IO.Path]::GetRandomFileName().Split('.')[0] + '.someextension'
5 | $folder = New-Item -Path "TestDrive:/$folderName" -Type Directory
6 | $file = New-Item -Path "TestDrive:/$fileName"
7 | }
8 |
9 | Context 'Folder icon resolution' {
10 | It 'Resolves a random directory to a default icon' {
11 | $string = $folder | Format-TerminalIcons
12 | $string | Should -BeLike "*$([char]0xf413)*"
13 | }
14 | }
15 |
16 | Context 'File icon resolution' {
17 | It 'Resolves a random file to a default icon' {
18 | $string = $file | Format-TerminalIcons
19 | $string | Should -BeLike "*$([char]0xf15b)*"
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------