Compare commits
279 Commits
Arch-Hyprl
...
Arch-Hyprl
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5a459d35e7 | ||
|
|
ea2125a467 | ||
|
|
1182b17d0b | ||
|
|
b16f579e86 | ||
|
|
11f2b0c6fe | ||
|
|
2ee27f6959 | ||
|
|
6c5c4b22b8 | ||
|
|
c1b872865a | ||
|
|
8d92fdd1af | ||
|
|
07f5053b2b | ||
|
|
e4e488fc4c | ||
|
|
1970cca375 | ||
|
|
2828811ad8 | ||
|
|
653ca995ae | ||
|
|
f4fcd6deed | ||
|
|
52531e7d1f | ||
|
|
5db40aafa3 | ||
|
|
1d2126b7ff | ||
|
|
622e09c781 | ||
|
|
5baaec6f12 | ||
|
|
941b24ed1d | ||
|
|
cfab030ca2 | ||
|
|
8ea3dc390c | ||
|
|
6c1b941fa1 | ||
|
|
3e7f5664e5 | ||
|
|
af4d191ee3 | ||
|
|
5fa3096724 | ||
|
|
d00addba58 | ||
|
|
e28b5940cb | ||
|
|
49f8cef0be | ||
|
|
ac4ffc922a | ||
|
|
c93e1861d0 | ||
|
|
4185638900 | ||
|
|
a4f16e24cb | ||
|
|
d09e2dfd09 | ||
|
|
9695a4c75b | ||
|
|
68af696789 | ||
|
|
b2f43b18fd | ||
|
|
f450ddd382 | ||
|
|
04c090a828 | ||
|
|
bb58ae9940 | ||
|
|
39e515f9b0 | ||
|
|
8842d72a79 | ||
|
|
573321fd5f | ||
|
|
e766866207 | ||
|
|
fb9b3a8205 | ||
|
|
3420522393 | ||
|
|
409aadf655 | ||
|
|
dcc282968e | ||
|
|
a66845607d | ||
|
|
f5e3ed99d2 | ||
|
|
2d31448492 | ||
|
|
39d3f1a958 | ||
|
|
28c12f6df2 | ||
|
|
79af4e7b7d | ||
|
|
8a60729680 | ||
|
|
fd1358d920 | ||
|
|
113fee6d7a | ||
|
|
87676210e2 | ||
|
|
cf6cc1010e | ||
|
|
52dfbe8593 | ||
|
|
e9c5d3d4a6 | ||
|
|
1e2704bc23 | ||
|
|
f049050b73 | ||
|
|
094ccb9b1f | ||
|
|
47791287f1 | ||
|
|
4fba08d8d6 | ||
|
|
a19b9b8a8d | ||
|
|
5f20c04b05 | ||
|
|
9aa43ae531 | ||
|
|
bf67e6030c | ||
|
|
9873283814 | ||
|
|
03aa990f35 | ||
|
|
2c4cdd3889 | ||
|
|
eb486d7ef2 | ||
|
|
262b6eb87c | ||
|
|
3233396b72 | ||
|
|
df48873278 | ||
|
|
3af8762a88 | ||
|
|
e35d66658c | ||
|
|
e320af02c8 | ||
|
|
6a67a21a33 | ||
|
|
b6d982d168 | ||
|
|
2590e76bd2 | ||
|
|
bde3ef8433 | ||
|
|
6b3d3efbb5 | ||
|
|
c4074aeffa | ||
|
|
f578249698 | ||
|
|
b43ace2f24 | ||
|
|
815438934a | ||
|
|
5d5af21bea | ||
|
|
e1d258503a | ||
|
|
fa9c2ae04f | ||
|
|
8a7f40c75a | ||
|
|
d6a25e04e7 | ||
|
|
61b61a980c | ||
|
|
cc9ce2cb49 | ||
|
|
7278a45305 | ||
|
|
049c27ac22 | ||
|
|
90121d9172 | ||
|
|
2b0528ca89 | ||
|
|
528551ea86 | ||
|
|
8c71bdeee7 | ||
|
|
63f2f45866 | ||
|
|
c1f67feb18 | ||
|
|
d215fbd786 | ||
|
|
1d812d7357 | ||
|
|
083c20878e | ||
|
|
695081332b | ||
|
|
93d3a18b9a | ||
|
|
29cc1c3f52 | ||
|
|
bfbbbd2e52 | ||
|
|
e2fe39222c | ||
|
|
872fd89261 | ||
|
|
d3f0016158 | ||
|
|
8995c47902 | ||
|
|
058859a07e | ||
|
|
54363d5267 | ||
|
|
b2628c8126 | ||
|
|
7ecb641731 | ||
|
|
497e71fdf5 | ||
|
|
35aa72e021 | ||
|
|
9c1741e00d | ||
|
|
fcf18bede5 | ||
|
|
6abc879468 | ||
|
|
38ce478f5c | ||
|
|
527a504e83 | ||
|
|
a44b376e79 | ||
|
|
2e62542a35 | ||
|
|
5343041805 | ||
|
|
221870054e | ||
|
|
193977dcb6 | ||
|
|
c18526390d | ||
|
|
7b403cd72d | ||
|
|
9a6fce78ab | ||
|
|
0c8c829c57 | ||
|
|
2ed79c491a | ||
|
|
c1c5450c9b | ||
|
|
7eea1d7659 | ||
|
|
dac6c373c9 | ||
|
|
b9b437cb23 | ||
|
|
01a001f9a6 | ||
|
|
fc2df0f9a3 | ||
|
|
67d6c1524e | ||
|
|
e96da3ea4a | ||
|
|
b3a0055785 | ||
|
|
bd03f3eeeb | ||
|
|
68eef02324 | ||
|
|
6ab203a6d4 | ||
|
|
2fc7acf538 | ||
|
|
7a70f63f3e | ||
|
|
7d056ae6e4 | ||
|
|
4c09bdfad1 | ||
|
|
94bc08c1a4 | ||
|
|
71cc8ef641 | ||
|
|
5610bc9d30 | ||
|
|
e7fc2dc95a | ||
|
|
ced449539e | ||
|
|
79fbcc022b | ||
|
|
2f4790f04e | ||
|
|
ef7e427b7e | ||
|
|
fbe4560a4a | ||
|
|
4d783a270b | ||
|
|
e4c8763d6f | ||
|
|
b253c9f764 | ||
|
|
813b11dcab | ||
|
|
09fb19d8a3 | ||
|
|
3cab113056 | ||
|
|
a31f6a4716 | ||
|
|
3f2c9ac655 | ||
|
|
080c210d60 | ||
|
|
70604dc0a5 | ||
|
|
ac22f4e161 | ||
|
|
cbe3de92f5 | ||
|
|
e5c54b9145 | ||
|
|
170e36518a | ||
|
|
54b65e92b8 | ||
|
|
84a413c615 | ||
|
|
cea9183d2d | ||
|
|
8eef96db51 | ||
|
|
f99474f81f | ||
|
|
10a1e9142d | ||
|
|
b4bfd935d9 | ||
|
|
17b836ee2f | ||
|
|
54bc0d1499 | ||
|
|
0e876533c2 | ||
|
|
f096714637 | ||
|
|
38f24a43bb | ||
|
|
0ed0894c38 | ||
|
|
c0b198d562 | ||
|
|
99cc2c481b | ||
|
|
b16dffda4d | ||
|
|
04995241c4 | ||
|
|
44b58b3c65 | ||
|
|
eb033d3220 | ||
|
|
ba7dcc8523 | ||
|
|
bbc3094e3d | ||
|
|
8ad8784443 | ||
|
|
477545ac2e | ||
|
|
5f59d96640 | ||
|
|
4f7ff52523 | ||
|
|
16f3c44ec8 | ||
|
|
fb2866eed1 | ||
|
|
b47a5f7a9a | ||
|
|
8a452057cf | ||
|
|
9241cbf2c6 | ||
|
|
3318f33c31 | ||
|
|
267eda6dc4 | ||
|
|
48b57acbfd | ||
|
|
e25cbba2c6 | ||
|
|
38cb01047c | ||
|
|
6fe4514341 | ||
|
|
43ce92bb86 | ||
|
|
8a5705156e | ||
|
|
3ed441614e | ||
|
|
37f9b02292 | ||
|
|
f8a0c925c3 | ||
|
|
d0605b5afe | ||
|
|
39a97acf3b | ||
|
|
a177ed254f | ||
|
|
73938d8343 | ||
|
|
f82fcf966c | ||
|
|
f7bf5a4667 | ||
|
|
9ac06f2125 | ||
|
|
acce625ac7 | ||
|
|
a09c819cb6 | ||
|
|
c891da45d5 | ||
|
|
0b1be97f7b | ||
|
|
939444a27d | ||
|
|
ae4bc4a855 | ||
|
|
7ebfa06c3b | ||
|
|
6655cc12e6 | ||
|
|
3502766cd7 | ||
|
|
60c62bd122 | ||
|
|
611d8ba612 | ||
|
|
56d3cbb19b | ||
|
|
69e938e33c | ||
|
|
b0f2e59cd1 | ||
|
|
227ef1d75d | ||
|
|
165d8ff0bb | ||
|
|
0fdd31534f | ||
|
|
2ae238ace1 | ||
|
|
1f822e3d5f | ||
|
|
322ddee8e7 | ||
|
|
9615baf63e | ||
|
|
5add49ac89 | ||
|
|
86943a51b3 | ||
|
|
d24a9c4888 | ||
|
|
62e69cfd73 | ||
|
|
97992554b1 | ||
|
|
6120faaea5 | ||
|
|
f45f41d14a | ||
|
|
f214cf3c8d | ||
|
|
55f5819ae9 | ||
|
|
c15100db44 | ||
|
|
c429266320 | ||
|
|
3b6c7c3c73 | ||
|
|
4c56e4fbcc | ||
|
|
e3c10a7661 | ||
|
|
5fc5342a67 | ||
|
|
216008382e | ||
|
|
51f4bcfa26 | ||
|
|
6f2128a27a | ||
|
|
07824f1fab | ||
|
|
1d100b2ca9 | ||
|
|
8b01d91625 | ||
|
|
bd162bffd3 | ||
|
|
bc4a9b54f7 | ||
|
|
dc3dc39e12 | ||
|
|
03ca2d6494 | ||
|
|
eb62120deb | ||
|
|
340019c627 | ||
|
|
7a111e0284 | ||
|
|
6252e96186 | ||
|
|
92f595b6e4 | ||
|
|
37f09a8e7e | ||
|
|
ae859493b6 | ||
|
|
ae720c7299 | ||
|
|
84e32d5ea3 |
83
.github/ISSUE_TEMPLATE/bug.yml
vendored
Normal file
83
.github/ISSUE_TEMPLATE/bug.yml
vendored
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
name: Bug Report
|
||||||
|
description: Something is not working right
|
||||||
|
title: "[Bug]: "
|
||||||
|
labels: ["bug"]
|
||||||
|
assignees:
|
||||||
|
- JaKooLit
|
||||||
|
|
||||||
|
body:
|
||||||
|
- type: checkboxes
|
||||||
|
attributes:
|
||||||
|
label: Already reported ? *
|
||||||
|
description: Before opening a new bug report, please take a moment to search through the current open and closed issues to check if it already exists.
|
||||||
|
options:
|
||||||
|
- label: I have searched the existing open and closed issues.
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: type
|
||||||
|
attributes:
|
||||||
|
label: Regression?
|
||||||
|
description: |
|
||||||
|
Regression means that something used to work but no longer does.
|
||||||
|
options:
|
||||||
|
- "Yes"
|
||||||
|
- "No"
|
||||||
|
- "Not sure"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: ver
|
||||||
|
attributes:
|
||||||
|
label: System Info and Version
|
||||||
|
description: |
|
||||||
|
Paste the output of `inxi --full` here.
|
||||||
|
install inxi if command not found.
|
||||||
|
value: "<details>
|
||||||
|
<summary>System/Version info</summary>
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
<Paste the output of the command here, without removing any formatting around this>
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
</details>"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: dots
|
||||||
|
attributes:
|
||||||
|
label: KooL's Dots version
|
||||||
|
description: |
|
||||||
|
Paste the output of `find ~/.config/hypr/ -type f -name 'v*' -exec basename {} \;`
|
||||||
|
This is just KooL's Hyprland Dots version.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: desc
|
||||||
|
attributes:
|
||||||
|
label: Description
|
||||||
|
description: "What went wrong? What exactly happened?"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: repro
|
||||||
|
attributes:
|
||||||
|
label: How to reproduce
|
||||||
|
description: "How can someone else reproduce the issue?"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: logs
|
||||||
|
attributes:
|
||||||
|
label: install logs, images or videos
|
||||||
|
description: |
|
||||||
|
Anything that can help. Please always ATTACH and not paste them.
|
||||||
46
.github/ISSUE_TEMPLATE/bug_report.md
vendored
46
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -1,46 +0,0 @@
|
|||||||
---
|
|
||||||
name: Bug report
|
|
||||||
about: Create a report to help us improve
|
|
||||||
title: "[Bug]: Short description of the issue"
|
|
||||||
labels: "Something isn't working"
|
|
||||||
---
|
|
||||||
|
|
||||||
## Bug Report
|
|
||||||
|
|
||||||
### Description
|
|
||||||
|
|
||||||
[Provide a clear and concise description of the bug.]
|
|
||||||
|
|
||||||
### Steps to Reproduce
|
|
||||||
|
|
||||||
1. [First Step]
|
|
||||||
2. [Second Step]
|
|
||||||
3. [and so on...]
|
|
||||||
|
|
||||||
### Expected Behavior
|
|
||||||
|
|
||||||
[What did you expect to happen?]
|
|
||||||
|
|
||||||
### Actual Behavior
|
|
||||||
|
|
||||||
[What actually happened?]
|
|
||||||
|
|
||||||
### Screenshots
|
|
||||||
|
|
||||||
[If applicable, add screenshots to help explain your problem.]
|
|
||||||
|
|
||||||
### Environment
|
|
||||||
|
|
||||||
[Please add any other relevant information about the bug and remove the unnecessary lines.]
|
|
||||||
|
|
||||||
e.g.,
|
|
||||||
|
|
||||||
- Linux Distro: [e.g., ArchLinux, EndeavourOS, Arco, Manjaro]
|
|
||||||
- Linux Version, output of `uname -a`:
|
|
||||||
- Hyprland Version, output of `hyprctl version`:
|
|
||||||
- Installation Environment: [e.g., On The Main Hardware, On A Virtual Machine]
|
|
||||||
- Other info: [e.g., Display Resolution, Resolution, etc]
|
|
||||||
|
|
||||||
### Additional Information
|
|
||||||
|
|
||||||
[Add any other information about the problem here. For example, you might include the error message, any recent changes that you made to the project, or any other relevant details.]
|
|
||||||
38
.github/ISSUE_TEMPLATE/custom.md
vendored
38
.github/ISSUE_TEMPLATE/custom.md
vendored
@@ -1,38 +0,0 @@
|
|||||||
---
|
|
||||||
name: Custom template
|
|
||||||
about: Use this template to submit a custom issue
|
|
||||||
title: "[Custom]: Short description of the issue"
|
|
||||||
labels: "custom"
|
|
||||||
---
|
|
||||||
|
|
||||||
## Custom Template
|
|
||||||
|
|
||||||
### Description
|
|
||||||
|
|
||||||
[Provide a clear and concise description of the issue or request.]
|
|
||||||
|
|
||||||
### Steps to Reproduce (if applicable)
|
|
||||||
|
|
||||||
1. [First Step]
|
|
||||||
2. [Second Step]
|
|
||||||
3. [and so on...]
|
|
||||||
|
|
||||||
### Expected Behavior
|
|
||||||
|
|
||||||
[What did you expect to happen?]
|
|
||||||
|
|
||||||
### Actual Behavior
|
|
||||||
|
|
||||||
[What actually happened?]
|
|
||||||
|
|
||||||
### Screenshots (if applicable)
|
|
||||||
|
|
||||||
[If applicable, add screenshots to help explain your problem.]
|
|
||||||
|
|
||||||
### Proposed Solution (if applicable)
|
|
||||||
|
|
||||||
[If you have a specific solution in mind, describe it here. If not, you can skip this section.]
|
|
||||||
|
|
||||||
### Additional Information
|
|
||||||
|
|
||||||
[Add any other information about the issue or request here. For example, you might include links to similar features in other projects, or screenshots or diagrams to help explain your idea.]
|
|
||||||
30
.github/ISSUE_TEMPLATE/documentation-update.yml
vendored
Normal file
30
.github/ISSUE_TEMPLATE/documentation-update.yml
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
name: Documentation update
|
||||||
|
description: Propose a change to the project documentation wiki
|
||||||
|
title: "[Documentation update]: "
|
||||||
|
labels: ["documentation_update"]
|
||||||
|
assignees:
|
||||||
|
- JaKooLit
|
||||||
|
|
||||||
|
body:
|
||||||
|
- type: textarea
|
||||||
|
id: desc
|
||||||
|
attributes:
|
||||||
|
label: Description
|
||||||
|
description: "Provide a clear and concise description of the documentation update"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: repro
|
||||||
|
attributes:
|
||||||
|
label: Proposed Solution
|
||||||
|
description: "Provide a clear and concise description of the updated documentation that you'd like to see added"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: logs
|
||||||
|
attributes:
|
||||||
|
label: install links, images or videos
|
||||||
|
description: |
|
||||||
|
Add any other information about the documentation update here. For example, you might include links to similar documentation in other projects, or screenshots or diagrams to help explain your idea
|
||||||
24
.github/ISSUE_TEMPLATE/documentation_update.md
vendored
24
.github/ISSUE_TEMPLATE/documentation_update.md
vendored
@@ -1,24 +0,0 @@
|
|||||||
---
|
|
||||||
name: Documentation update
|
|
||||||
about: Propose a change to the project documentation
|
|
||||||
title: "[Docs]: Short description of the change"
|
|
||||||
labels: "documentation update"
|
|
||||||
---
|
|
||||||
|
|
||||||
## Documentation Update
|
|
||||||
|
|
||||||
### Description
|
|
||||||
|
|
||||||
[Provide a clear and concise description of the documentation update you'd like to see made.]
|
|
||||||
|
|
||||||
### Current Documentation
|
|
||||||
|
|
||||||
[Provide a link to the current documentation or describe where it can be found.]
|
|
||||||
|
|
||||||
### Proposed Documentation
|
|
||||||
|
|
||||||
[Provide a clear and concise description of the updated documentation that you'd like to see added.]
|
|
||||||
|
|
||||||
### Additional Information
|
|
||||||
|
|
||||||
[Add any other information about the documentation update here. For example, you might include links to similar documentation in other projects, or screenshots or diagrams to help explain your idea.]
|
|
||||||
38
.github/ISSUE_TEMPLATE/feature.yml
vendored
Normal file
38
.github/ISSUE_TEMPLATE/feature.yml
vendored
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
name: Feature Request
|
||||||
|
description: I'd like to propose some changes and enhancements
|
||||||
|
title: "[Enhancement]: "
|
||||||
|
labels: ["enhancement"]
|
||||||
|
assignees:
|
||||||
|
- JaKooLit
|
||||||
|
|
||||||
|
body:
|
||||||
|
- type: checkboxes
|
||||||
|
attributes:
|
||||||
|
label: Already reported ? *
|
||||||
|
description: Before opening a new feature request, please take a moment to search through the current open and closed issues / request to check if it already exists.
|
||||||
|
options:
|
||||||
|
- label: I have searched the existing open and closed request.
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: desc
|
||||||
|
attributes:
|
||||||
|
label: Description
|
||||||
|
description: "Describe your idea?"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: repro
|
||||||
|
attributes:
|
||||||
|
label: Proposed Solution
|
||||||
|
description: "describe if you have a specific solution in mind"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
28
.github/ISSUE_TEMPLATE/feature_request.md
vendored
28
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -1,28 +0,0 @@
|
|||||||
---
|
|
||||||
name: Feature request
|
|
||||||
about: Suggest a feature for this project
|
|
||||||
title: "[Feature Request]: Short description of the feature"
|
|
||||||
labels: "enhancement, needs triage, feature request"
|
|
||||||
---
|
|
||||||
|
|
||||||
## Feature Request
|
|
||||||
|
|
||||||
### Description
|
|
||||||
|
|
||||||
[Provide a clear and concise description of the feature you'd like to see added.]
|
|
||||||
|
|
||||||
### Use Case
|
|
||||||
|
|
||||||
[Describe how this feature would be useful to you or to other users of the project.]
|
|
||||||
|
|
||||||
### Proposed Solution
|
|
||||||
|
|
||||||
[If you have a specific solution in mind, describe it here. If not, you can skip this section.]
|
|
||||||
|
|
||||||
### Alternatives
|
|
||||||
|
|
||||||
[Are there any alternative solutions or workarounds that you've considered? If so, describe them here.]
|
|
||||||
|
|
||||||
### Additional Information
|
|
||||||
|
|
||||||
[Add any other information about the feature request here. For example, you might include links to similar features in other projects, or screenshots or diagrams to help explain your idea.]
|
|
||||||
111
CHANGELOGS.md
111
CHANGELOGS.md
@@ -1,4 +1,113 @@
|
|||||||
## Changelogs
|
## CHANGELOGS
|
||||||
|
|
||||||
|
## 23 Feb 2025
|
||||||
|
- added Victor Mono Font for proper hyprlock font rendering for Dots v2.3.12
|
||||||
|
- added Fantasque Sans Mono Nerd for Kitty
|
||||||
|
|
||||||
|
## 22 Feb 2025
|
||||||
|
- replaced eog with loupe
|
||||||
|
- changed url for installing oh-my-zsh to get wider coverage. Some countries are blocking github raw url's
|
||||||
|
|
||||||
|
## 20 Feb 2025
|
||||||
|
- Added nwg-displays for the upcoming Kools dots v2.3.12
|
||||||
|
|
||||||
|
## 18 Feb 2025
|
||||||
|
- Change default zsh theme to adnosterzak
|
||||||
|
- pokemon coloscript integrated with fastfetch when opted with pokemon to add some bling
|
||||||
|
- additional external oh-my-zsh theme
|
||||||
|
|
||||||
|
## 06 Feb 2025
|
||||||
|
- added semi-unattended function.
|
||||||
|
- move all the initial questions at the beginning
|
||||||
|
|
||||||
|
## 04 Feb 2025
|
||||||
|
- Re-coded for better visibility
|
||||||
|
- Offered a new SDDM theme.
|
||||||
|
- script will automatically detect if you have nvidia but script still offer if you want to set up for user
|
||||||
|
|
||||||
|
## 29 Jan 2025
|
||||||
|
- enhanced nvidia.sh to add additional systemd-bootloader entries for nvidia
|
||||||
|
|
||||||
|
## 16 Jan 2025
|
||||||
|
- updated nvidia.sh to install non-git libva-nvidia-driver
|
||||||
|
|
||||||
|
## 13 Jan 2025
|
||||||
|
- replaced polkit-gnome with hyprpolkitagent
|
||||||
|
|
||||||
|
## 12 Jan 2025
|
||||||
|
- switch to final version of aylurs-gtk-shell-v1
|
||||||
|
|
||||||
|
## 11 Jan 2025
|
||||||
|
- added cachyos-hyprland-settings to uninstall
|
||||||
|
|
||||||
|
## 06 Jan 2025
|
||||||
|
- added copying of modified fastfetch-compact for Arch
|
||||||
|
- default theme for oh my zsh theme is now "funky"
|
||||||
|
|
||||||
|
## 26 Dec 2024
|
||||||
|
- Removal of Bibata Ice cursor on assets since its integrated in the GTK Themes and Icons extract from a separate repo
|
||||||
|
- integrated hyprcursor in Bibata Ice Cursor
|
||||||
|
|
||||||
|
## 15 Nov 2024
|
||||||
|
- revert Aylurs GTK Shell (AGS) to install older version
|
||||||
|
- added aylurs-gtk-shell to uninstall
|
||||||
|
|
||||||
|
## 20 Sep 2024
|
||||||
|
- User will be ask if they want to set Thunar as default file manager if they decided to install it
|
||||||
|
|
||||||
|
## 19 Sep 2024
|
||||||
|
- Added fastfetch on tty. However, will be disabled if user decided to install pokemon colorscripts
|
||||||
|
|
||||||
|
## 18 Sep 2024
|
||||||
|
- dotfiles will now be downloaded from main or master branch instead of from the releases version.
|
||||||
|
|
||||||
|
## 14 Sep 2024
|
||||||
|
- remove the final error checks instead, introduced a final check of essential packages to ran Hyprland
|
||||||
|
|
||||||
|
## 08 Sep 2024
|
||||||
|
- Added final error checks on install-logs
|
||||||
|
|
||||||
|
## 07 Sep 2024
|
||||||
|
- added pulseaudio check
|
||||||
|
- added sof-firmware
|
||||||
|
|
||||||
|
## 29 Aug 2024
|
||||||
|
- switched over to non-git wallust package
|
||||||
|
- improved indentions on some install scripts
|
||||||
|
|
||||||
|
## 28 Aug 2024
|
||||||
|
- Added final check if hyprland is installed and will give an error to user
|
||||||
|
|
||||||
|
## 26 Aug 2024
|
||||||
|
- Set to uninstall rofi as conflicts with rofi-wayland
|
||||||
|
- added nvidia_drm.fbdev=1 for grub
|
||||||
|
|
||||||
|
## 14 Aug 2024
|
||||||
|
- added archlinux-keyring on base.sh
|
||||||
|
|
||||||
|
## 08 Aug 2024
|
||||||
|
- Increased to 1 sec delay for installing base-devel [commit](https://github.com/JaKooLit/Arch-Hyprland/commit/7ebfa06c3b186f9bec0bcf268fae401ba67dfc2a)
|
||||||
|
|
||||||
|
## 07 Jul 2024
|
||||||
|
- added eza (ls replacement for tty). Note only on .zshrc
|
||||||
|
|
||||||
|
## 25 Jun 2024
|
||||||
|
- added fbdev=1 for nvidia.sh on `/etc/modprobe.d/nvidia.conf`. see here `https://wiki.hyprland.org/Nvidia/#drm-kernel-mode-setting`
|
||||||
|
|
||||||
|
## 26 May 2024
|
||||||
|
- Added fzf for zsh (CTRL R to invoke FZF history)
|
||||||
|
|
||||||
|
## 23 May 2024
|
||||||
|
- added qalculate-gtk to work with rofi-calc. Default keybinds (SUPER ALT C)
|
||||||
|
- added power-profiles-daemon for ROG laptops. Note, I cant add to all since it conflicts with TLP, CPU-Auto-frequency etc.
|
||||||
|
- added fastfetch
|
||||||
|
|
||||||
|
## 22 May 2024
|
||||||
|
- nwg-look is now in extra repo so replaced with nwg-look from nwg-look-bin
|
||||||
|
- change the sddm theme destination to /etc/sddm.conf.d/10-theme.conf to theme.conf.user
|
||||||
|
|
||||||
|
## 19 May 2024
|
||||||
|
- Disabled the auto-login in .zprofile as it causes auto-login to Hyprland if any wayland was chosen. Can enabled if only using hyprland
|
||||||
|
|
||||||
## 10 May 2024
|
## 10 May 2024
|
||||||
- added wallust-git and remove python-pywal for migration to wallust on Hyprland-Dots v2.2.11
|
- added wallust-git and remove python-pywal for migration to wallust on Hyprland-Dots v2.2.11
|
||||||
|
|||||||
128
CODE_OF_CONDUCT.md
Normal file
128
CODE_OF_CONDUCT.md
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
# Contributor Covenant Code of Conduct
|
||||||
|
|
||||||
|
## Our Pledge
|
||||||
|
|
||||||
|
We as members, contributors, and leaders pledge to make participation in our
|
||||||
|
community a harassment-free experience for everyone, regardless of age, body
|
||||||
|
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||||
|
identity and expression, level of experience, education, socio-economic status,
|
||||||
|
nationality, personal appearance, race, religion, or sexual identity
|
||||||
|
and orientation.
|
||||||
|
|
||||||
|
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||||
|
diverse, inclusive, and healthy community.
|
||||||
|
|
||||||
|
## Our Standards
|
||||||
|
|
||||||
|
Examples of behavior that contributes to a positive environment for our
|
||||||
|
community include:
|
||||||
|
|
||||||
|
* Demonstrating empathy and kindness toward other people
|
||||||
|
* Being respectful of differing opinions, viewpoints, and experiences
|
||||||
|
* Giving and gracefully accepting constructive feedback
|
||||||
|
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||||
|
and learning from the experience
|
||||||
|
* Focusing on what is best not just for us as individuals, but for the
|
||||||
|
overall community
|
||||||
|
|
||||||
|
Examples of unacceptable behavior include:
|
||||||
|
|
||||||
|
* The use of sexualized language or imagery, and sexual attention or
|
||||||
|
advances of any kind
|
||||||
|
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||||
|
* Public or private harassment
|
||||||
|
* Publishing others' private information, such as a physical or email
|
||||||
|
address, without their explicit permission
|
||||||
|
* Other conduct which could reasonably be considered inappropriate in a
|
||||||
|
professional setting
|
||||||
|
|
||||||
|
## Enforcement Responsibilities
|
||||||
|
|
||||||
|
Community leaders are responsible for clarifying and enforcing our standards of
|
||||||
|
acceptable behavior and will take appropriate and fair corrective action in
|
||||||
|
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||||
|
or harmful.
|
||||||
|
|
||||||
|
Community leaders have the right and responsibility to remove, edit, or reject
|
||||||
|
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||||
|
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||||
|
decisions when appropriate.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
This Code of Conduct applies within all community spaces, and also applies when
|
||||||
|
an individual is officially representing the community in public spaces.
|
||||||
|
Examples of representing our community include using an official e-mail address,
|
||||||
|
posting via an official social media account, or acting as an appointed
|
||||||
|
representative at an online or offline event.
|
||||||
|
|
||||||
|
## Enforcement
|
||||||
|
|
||||||
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
|
reported to the community leaders responsible for enforcement at
|
||||||
|
mail[at]ml4w.com.
|
||||||
|
All complaints will be reviewed and investigated promptly and fairly.
|
||||||
|
|
||||||
|
All community leaders are obligated to respect the privacy and security of the
|
||||||
|
reporter of any incident.
|
||||||
|
|
||||||
|
## Enforcement Guidelines
|
||||||
|
|
||||||
|
Community leaders will follow these Community Impact Guidelines in determining
|
||||||
|
the consequences for any action they deem in violation of this Code of Conduct:
|
||||||
|
|
||||||
|
### 1. Correction
|
||||||
|
|
||||||
|
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||||
|
unprofessional or unwelcome in the community.
|
||||||
|
|
||||||
|
**Consequence**: A private, written warning from community leaders, providing
|
||||||
|
clarity around the nature of the violation and an explanation of why the
|
||||||
|
behavior was inappropriate. A public apology may be requested.
|
||||||
|
|
||||||
|
### 2. Warning
|
||||||
|
|
||||||
|
**Community Impact**: A violation through a single incident or series
|
||||||
|
of actions.
|
||||||
|
|
||||||
|
**Consequence**: A warning with consequences for continued behavior. No
|
||||||
|
interaction with the people involved, including unsolicited interaction with
|
||||||
|
those enforcing the Code of Conduct, for a specified period of time. This
|
||||||
|
includes avoiding interactions in community spaces as well as external channels
|
||||||
|
like social media. Violating these terms may lead to a temporary or
|
||||||
|
permanent ban.
|
||||||
|
|
||||||
|
### 3. Temporary Ban
|
||||||
|
|
||||||
|
**Community Impact**: A serious violation of community standards, including
|
||||||
|
sustained inappropriate behavior.
|
||||||
|
|
||||||
|
**Consequence**: A temporary ban from any sort of interaction or public
|
||||||
|
communication with the community for a specified period of time. No public or
|
||||||
|
private interaction with the people involved, including unsolicited interaction
|
||||||
|
with those enforcing the Code of Conduct, is allowed during this period.
|
||||||
|
Violating these terms may lead to a permanent ban.
|
||||||
|
|
||||||
|
### 4. Permanent Ban
|
||||||
|
|
||||||
|
**Community Impact**: Demonstrating a pattern of violation of community
|
||||||
|
standards, including sustained inappropriate behavior, harassment of an
|
||||||
|
individual, or aggression toward or disparagement of classes of individuals.
|
||||||
|
|
||||||
|
**Consequence**: A permanent ban from any sort of public interaction within
|
||||||
|
the community.
|
||||||
|
|
||||||
|
## Attribution
|
||||||
|
|
||||||
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||||
|
version 2.0, available at
|
||||||
|
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
||||||
|
|
||||||
|
Community Impact Guidelines were inspired by [Mozilla's code of conduct
|
||||||
|
enforcement ladder](https://github.com/mozilla/diversity).
|
||||||
|
|
||||||
|
[homepage]: https://www.contributor-covenant.org
|
||||||
|
|
||||||
|
For answers to common questions about this code of conduct, see the FAQ at
|
||||||
|
https://www.contributor-covenant.org/faq. Translations are available at
|
||||||
|
https://www.contributor-covenant.org/translations.
|
||||||
BIN
Installer.png
BIN
Installer.png
Binary file not shown.
|
Before Width: | Height: | Size: 2.3 MiB After Width: | Height: | Size: 589 KiB |
183
README.md
183
README.md
@@ -1,49 +1,66 @@
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
## 💌 ** JaKooLit's Arch Hyprland Install Script ** 💌
|
# 💌 ** KooL's Arch - Hyprland Install Script ** 💌
|
||||||
|
|
||||||
  
|
<p align="center">
|
||||||
|
<img src="https://raw.githubusercontent.com/JaKooLit/Hyprland-Dots/main/assets/latte.png" width="400" />
|
||||||
|
</p>
|
||||||
|
|
||||||
|
   <a href="https://discord.gg/9JEgZsfhex"> <img src="https://img.shields.io/discord/1151869464405606400?style=for-the-badge&logo=discord&color=cba6f7&link=https%3A%2F%2Fdiscord.gg%9JEgZsfhex"> </a>
|
||||||
|
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
#### Hyprland-Dots-showcase
|
<div align="center">
|
||||||
|
<br>
|
||||||
|
<a href="#-announcement-"><kbd> <br> Read this First <br> </kbd></a>  
|
||||||
|
<a href="#-to-use-this-script"><kbd> <br> How to use this script <br> </kbd></a>  
|
||||||
|
<a href="#gallery-and-videos"><kbd> <br> Gallery <br> </kbd></a>  
|
||||||
|
</div><br>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<img src="https://raw.githubusercontent.com/JaKooLit/Hyprland-Dots/main/assets/latte.png" width="200" />
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
👇 KOOL's Hyprland-Dots related Links 👇
|
||||||
|
<br/>
|
||||||
|
</div>
|
||||||
|
<div align="center">
|
||||||
|
<br>
|
||||||
|
<a href="https://github.com/JaKooLit/Hyprland-Dots"><kbd> <br> Hyprland-Dots repo <br> </kbd></a>  
|
||||||
|
<a href="https://www.youtube.com/playlist?list=PLDtGd5Fw5_GjXCznR0BzCJJDIQSZJRbxx"><kbd> <br> Youtube <br> </kbd></a>  
|
||||||
|
<a href="https://github.com/JaKooLit/Hyprland-Dots/wiki"><kbd> <br> Wiki <br> </kbd></a>  
|
||||||
|
<a href="https://github.com/JaKooLit/Hyprland-Dots/wiki/Keybinds"><kbd> <br> Keybinds <br> </kbd></a>  
|
||||||
|
<a href="https://github.com/JaKooLit/Hyprland-Dots/wiki/FAQ"><kbd> <br> FAQ <br> </kbd></a>  
|
||||||
|
<a href="https://discord.gg/9JEgZsfhex"><kbd> <br> Discord <br> </kbd></a>
|
||||||
|
</div><br>
|
||||||
|
|
||||||
https://github.com/JaKooLit/Arch-Hyprland/assets/85185940/84e3948f-edbf-45b8-9e3f-1f6699e3830a
|
<p align="center">
|
||||||
|
<img src="https://raw.githubusercontent.com/JaKooLit/Hyprland-Dots/main/assets/latte.png" width="200" />
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3 align="center">
|
||||||
|
<img src="https://github.com/JaKooLit/Telegram-Animated-Emojis/blob/main/Activity/Sparkles.webp" alt="Sparkles" width="38" height="38" />
|
||||||
|
KooL Hyprland-Dotfiles Showcase
|
||||||
|
<img src="https://github.com/JaKooLit/Telegram-Animated-Emojis/blob/main/Activity/Sparkles.webp" alt="Sparkles" width="38" height="38" />
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
|
||||||
|
https://github.com/user-attachments/assets/49bc12b2-abaf-45de-a21c-67aacd9bb872
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
### Gallery and Videos
|
### Gallery and Videos
|
||||||
<details>
|
#### 🎥 Feb 2025 Video explanation of installation with preset
|
||||||
<summary>
|
- [YOUTUBE-LINK](https://youtu.be/wQ70lo7P6vA?si=_QcbrNKh_Bg0L3wC)
|
||||||
📷 Screenshots
|
- [YOUTUBE-Hyprland-Playlist](https://youtube.com/playlist?list=PLDtGd5Fw5_GjXCznR0BzCJJDIQSZJRbxx&si=iaNjLulFdsZ6AV-t)
|
||||||
</summary>
|
|
||||||
<p align="center">
|
|
||||||
<img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-ScreenShots/Arch-v2/Arch-Default-Layout.png" /> <img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-Dots-Showcase/dark-theme.png" />
|
|
||||||
<img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-Dots-Showcase/Light-theme.png" /> <img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-ScreenShots/Arch-v2/Another-Screenshot.png"" />
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p align="center">
|
|
||||||
<img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-Dots-Showcase/default-waybar.png" /> <img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-Dots-Showcase/rofi.png" />
|
|
||||||
<img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-Dots-Showcase/wlogout-dark.png" /> <img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-Dots-Showcase/showcase2.png"" />
|
|
||||||
<img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-Dots-Showcase/waybar-layout.png" /> <img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-Dots-Showcase/waybar-style.png"" />
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
#### 📷 More Screenshots on v2 [`Link`](https://github.com/JaKooLit/screenshots/tree/main/Hyprland-Dots-Showcase) and [`Previous-Screenshots`](https://github.com/JaKooLit/screenshots/tree/main/Hyprland-ScreenShots/Arch-v2) and
|
|
||||||
|
|
||||||
|
|
||||||
#### ✨ A video walk through my dotfiles[`Link`](https://youtu.be/fO-RBHvVEcc?si=ijqxxnq_DLiyO8xb)
|
|
||||||
#### ✨ A video walk on My Hyprland-Dots v2[`Link`](https://youtu.be/yaVurRoXc-s?si=iDnBC5S3thPBX3ZE)
|
|
||||||
|
|
||||||
#### 📽️ youtube video showcase: [`Link`](https://youtu.be/W2UFwkgdwNo)
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
### 🪧🪧🪧 ANNOUNCEMENT 🪧🪧🪧
|
### 🪧🪧🪧 ANNOUNCEMENT 🪧🪧🪧
|
||||||
- This Repo does not contain Hyprland Dots or configs! Dotfiles can be checked here [`Hyprland-Dots`](https://github.com/JaKooLit/Hyprland-Dots) . During installation, if you opt to copy installation, it will be downloaded from that centralized repo.
|
- This Repo does not contain Hyprland Dots or configs! Dotfiles can be checked here [`Hyprland-Dots`](https://github.com/JaKooLit/Hyprland-Dots) . During installation, if you opt to copy pre-configured dots, it will be downloaded from that centralized repo.
|
||||||
- Hyprland-Dots use are constantly evolving / improving. you can check CHANGELOGS here [`Hyprland-Dots-Changelogs`](https://github.com/JaKooLit/Hyprland-Dots/wiki/Changelogs)
|
- Hyprland-Dots use are constantly evolving / improving. you can check CHANGELOGS here [`Hyprland-Dots-Changelogs`](https://github.com/JaKooLit/Hyprland-Dots/wiki/Changelogs)
|
||||||
- Since the Hyprland-Dots are evolving, some of the screenshots maybe old
|
- Since the Hyprland-Dots are evolving, some of the screenshots maybe old
|
||||||
- the wallpaper offered to be downloaded towards the end is from this [`REPO`](https://github.com/JaKooLit/Wallpaper-Bank)
|
- the wallpaper offered to be downloaded towards the end is from this [`REPO`](https://github.com/JaKooLit/Wallpaper-Bank)
|
||||||
@@ -54,7 +71,7 @@ https://github.com/JaKooLit/Arch-Hyprland/assets/85185940/84e3948f-edbf-45b8-9e3
|
|||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> Main reason why I have not included an uninstallation script is simple. Some packages maybe already installed on your system by default. If I create an uninstall script with packages that I have set to install, you may end up a unrecoverable system.
|
> Main reason why I have not included an uninstallation script is simple. Some packages maybe already installed on your system by default. If I create an uninstall script with packages that I have set to install, you may end up a unrecoverable system.
|
||||||
|
|
||||||
> [!WARNING]
|
> [!CAUTION]
|
||||||
> Download this script on a directory where you have write permissions. ie. HOME. Or any directory within your home directory. Else script will fail
|
> Download this script on a directory where you have write permissions. ie. HOME. Or any directory within your home directory. Else script will fail
|
||||||
|
|
||||||
#### 🆕 Prerequisites
|
#### 🆕 Prerequisites
|
||||||
@@ -62,24 +79,26 @@ https://github.com/JaKooLit/Arch-Hyprland/assets/85185940/84e3948f-edbf-45b8-9e3
|
|||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> 🔘 Pipewire and Pipewire audio
|
> 🔘 Pipewire and Pipewire audio
|
||||||
- This script will install pipewire and will also disable or will uninstall pulseaudio. If you dont want it, edit install.sh, about line 191 and comment the line `execute_script "pipewire.sh"` or you can simply just delete pipewire.sh in install-scripts folder before installing.
|
- This script will install pipewire and will also disable or will uninstall pulseaudio. If you dont want it, edit install.sh, about line 191 and comment the line `execute_script "pipewire.sh"` or you can simply just delete pipewire.sh in install-scripts directory before installing.
|
||||||
|
|
||||||
#### ✨ Costumize the packages to be installed
|
#### ✨ Customize the packages to be installed
|
||||||
- inside the install-scripts folder, you can edit 00-hypr-pkgs.sh. Care though as the Hyprland Dots may not work properly!
|
- inside the install-scripts directory, you can edit 00-hypr-pkgs.sh. Care though as the Hyprland Dots may not work properly!
|
||||||
- default GTK theme if agreed to be installed is Tokyo night GTK themes (dark and light) + Tokyo night SE icons
|
|
||||||
|
|
||||||
#### 💫 SDDM and GTK Themes offered
|
#### 💫 SDDM and GTK Themes offered
|
||||||
- If you opted to install SDDM theme, here's the [`LINK`](https://github.com/JaKooLit/simple-sddm-2)
|
- If you opted to install SDDM theme, here's the [`LINK`](https://codeberg.org/JaKooLit/sddm-sequoia) which is a fork of [`LINK`](https://codeberg.org/minMelody/sddm-sequoia)
|
||||||
- If you opted to install GTK Themes, Icons and Cursor offered are Tokyo Nights. [`LINK`](https://github.com/JaKooLit/GTK-themes-icons) & Bibata Cursor Modern Ice
|
- If you opted to install GTK Themes, Icons, here's the [`LINK`](https://github.com/JaKooLit/GTK-themes-icons). This also includes Bibata Modern Ice cursor.
|
||||||
|
|
||||||
#### 👀 NVidia GPU Owners.
|
#### 👀 NVidia GPU Owners.
|
||||||
- By default, nvidia-dkms will be installed. and only supports GTX 900 and newer. If required to install older driver, edit the nvidia.sh in scripts-folder
|
- By default, nvidia-dkms will be installed. and only supports GTX 900 and newer. If required to install older driver, edit the nvidia.sh in install-scripts directory
|
||||||
|
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> If you want to use nouveau driver, choose N when asked if you have nvidia gpu. This is because the nvidia installer part, it will blacklist nouveau. Hyprland will still be installed but it will skip blacklisting nouveau.
|
> If you want to use nouveau driver, choose N when asked if you have nvidia gpu. This is because the nvidia installer part, it will blacklist nouveau. Hyprland will still be installed but it will skip blacklisting nouveau.
|
||||||
|
|
||||||
- After installation, check [`THIS`](https://github.com/JaKooLit/Hyprland-Dots/wiki/Notes_to_remember#--for-nvidia-gpu-users)
|
- After installation, check [`THIS`](https://github.com/JaKooLit/Hyprland-Dots/wiki/Notes_to_remember#--for-nvidia-gpu-users)
|
||||||
|
|
||||||
#### ✨ to run
|
## ✨ to use this script
|
||||||
> clone this repo (latest commit only) to reduce file size download by using git. Change directory, make executable and run the script
|
- clone this repo (latest commit only) to reduce file size download by using git. Change directory, make executable and run the script
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone --depth=1 https://github.com/JaKooLit/Arch-Hyprland.git ~/Arch-Hyprland
|
git clone --depth=1 https://github.com/JaKooLit/Arch-Hyprland.git ~/Arch-Hyprland
|
||||||
cd ~/Arch-Hyprland
|
cd ~/Arch-Hyprland
|
||||||
@@ -90,6 +109,24 @@ chmod +x install.sh
|
|||||||
<p align="center">
|
<p align="center">
|
||||||
<img align="center" width="100%" src="https://raw.githubusercontent.com/JaKooLit/Arch-Hyprland/main/Installer.png" />
|
<img align="center" width="100%" src="https://raw.githubusercontent.com/JaKooLit/Arch-Hyprland/main/Installer.png" />
|
||||||
|
|
||||||
|
|
||||||
|
### 🤟 semi-unattended installation (new for Feb 2025)
|
||||||
|
- edit preset.sh to modify what packages you want. Make sure to change only with Y or N
|
||||||
|
- to use preset instead of usual `./install.sh` you can ran like this
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./install.sh --preset
|
||||||
|
```
|
||||||
|
|
||||||
|
- if you have nvidia you can add --nvidia argument
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./install.sh --preset --nvidia
|
||||||
|
```
|
||||||
|
|
||||||
|
- its called semi-unattended it is because you still have to answer some questions when installing KooL's Hyprland Dots
|
||||||
|
|
||||||
|
|
||||||
#### ✨ for ZSH and OH-MY-ZSH installation
|
#### ✨ for ZSH and OH-MY-ZSH installation
|
||||||
> installer should auto change your default shell to zsh. However, if it does not, do this
|
> installer should auto change your default shell to zsh. However, if it does not, do this
|
||||||
```bash
|
```bash
|
||||||
@@ -98,31 +135,48 @@ zsh
|
|||||||
source ~/.zshrc
|
source ~/.zshrc
|
||||||
```
|
```
|
||||||
- reboot or logout
|
- reboot or logout
|
||||||
- by default agnoster theme is installed. You can find more themes from this [`OH-MY-ZSH-THEMES`](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes)
|
- by default `agnosterzak` theme is installed. Which is from external oh-my-zsh theme. You can find more themes from this [`OH-MY-ZSH-THEMES`](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes)
|
||||||
- to change the theme, edit ~/.zshrc . Look for ZSH_THEME="desired theme"
|
- to change the theme, `SUPER SHIFT O` , choose desired theme, and close and open terminal.
|
||||||
|
- or manually edit `~/.zshrc` . Look for ZSH_THEME="desired theme"
|
||||||
|
|
||||||
|
#### 🎞️ AGS Overview DEMO
|
||||||
|
- in case you wonder, here is a short demo of AGS overview [Youtube LINK](https://youtu.be/zY5SLNPBJTs)
|
||||||
|
|
||||||
#### ✨ TO DO once installation done and dotfiles copied
|
#### ✨ TO DO once installation done and dotfiles copied
|
||||||
- ~~if you opted to install gtk themes, to apply the theme and icon, press the dark/light button (beside the padlock). To apply Bibata modern ice cursor, launch nwg-look (GTK Settings) through rofi.~~ Hyprland-Dots v2.1.18, initial boot file will attempt to apply GTK themes,cursor, and icons. You can tweak more using nwg-look (GTK-Settings) utility
|
|
||||||
|
|
||||||
- SUPER H for HINT or click on the waybar HINT! Button
|
- SUPER H for HINT or click on the waybar HINT! Button
|
||||||
- Head over to [FAQ](https://github.com/JaKooLit/Hyprland-Dots/wiki/FAQ) and [TIPS](https://github.com/JaKooLit/Hyprland-Dots/wiki/TIPS)
|
- Head over to [KooL Hyprland WIKI](https://github.com/JaKooLit/Hyprland-Dots/wiki)
|
||||||
|
|
||||||
#### 🙋 Got a questions regarding the Hyprland Dots or configurations? 🙋
|
#### 🙋 Got a questions regarding the Hyprland Dots or configurations? 🙋
|
||||||
- Head over to wiki Link [`WIKI`](https://github.com/JaKooLit/Hyprland-Dots/wiki)
|
- Head over to wiki Link [`WIKI`](https://github.com/JaKooLit/Hyprland-Dots/wiki)
|
||||||
|
|
||||||
|
#### ⌨ Keybinds
|
||||||
|
- Keybinds [`CLICK`](https://github.com/JaKooLit/Hyprland-Dots/wiki/Keybinds)
|
||||||
|
|
||||||
|
> [!TIP]
|
||||||
|
> KooL Hyprland has a searchable keybind function via rofi. (SUPER SHIFT K) or right click the `HINTS` waybar button
|
||||||
|
|
||||||
|
|
||||||
|
#### 🔄 switching between Hyprland-git and none Hyprland-git
|
||||||
|
- you can use my prepared script [`LINK`](https://github.com/JaKooLit/Arch-Hyprland/tree/main/assets/hyprland-install)
|
||||||
|
- Readme is also there
|
||||||
|
|
||||||
|
|
||||||
#### 🙋 👋 Having issues or questions?
|
#### 🙋 👋 Having issues or questions?
|
||||||
- for the install part, kindly open issue on this repo
|
- for the install part, kindly open issue on this repo
|
||||||
- for the Pre-configured Hyprland dots / configuration, submit issue [`here`](https://github.com/JaKooLit/Hyprland-Dots/issues)
|
- for the Pre-configured Hyprland dots / configuration, submit issue [`here`](https://github.com/JaKooLit/Hyprland-Dots/issues)
|
||||||
|
|
||||||
#### 🔧 Proper way to re-installing a particular script from install-scripts folder
|
#### 🔧 Proper way to re-installing a particular script from install-scripts directory
|
||||||
- CD into Arch-Hyprland Folder and then ran the below command.
|
- CD into Arch-Hyprland directory and then ran the below command.
|
||||||
- i.e. `./install-scripts/gtk-themes` - For reinstall GTK Themes.
|
- i.e. `./install-scripts/gtk-themes.sh` - For reinstall GTK Themes or
|
||||||
|
- `./install-scripts/sddm.sh` - For reinstall sddm
|
||||||
|
|
||||||
|
> [!IMPORTANT]
|
||||||
|
> DO NOT cd into install-scripts directory as script will most likely to fail
|
||||||
|
|
||||||
#### 🛣️ Roadmap:
|
#### 🛣️ Roadmap:
|
||||||
- ~~[ ] Install zsh and oh-my-zsh without necessary steps above~~ DONE
|
- [ ] show a progress bar in downloading and compiling part when installing outside AUR or official repo
|
||||||
- [ ] possibly adding gruvbox themes, cursors, icons
|
|
||||||
|
|
||||||
#### ⚠️ some known issues
|
#### ❗ some known issues for nvidia
|
||||||
- reports from members of my discord, states that some users of nvidia are getting stuck on sddm login. credit to @Kenni Fix stated was
|
- reports from members of my discord, states that some users of nvidia are getting stuck on sddm login. credit to @Kenni Fix stated was
|
||||||
```
|
```
|
||||||
while in sddm press ctrl+alt+F2 or F3
|
while in sddm press ctrl+alt+F2 or F3
|
||||||
@@ -132,21 +186,44 @@ log into your account
|
|||||||
`ls -l /dev/dri/by-path` to check where the symlink points to
|
`ls -l /dev/dri/by-path` to check where the symlink points to
|
||||||
)
|
)
|
||||||
```
|
```
|
||||||
- add "env = WLR_DRM_DEVICES,/dev/dri/cardX" to the ENVvariables config (.config/hypr/UserConfigs/ENVariables.conf) ; X being where the symlink of the gpu points to
|
- add "env = WLR_DRM_DEVICES,/dev/dri/cardX" to the ENVvariables config `~/.config/hypr/UserConfigs/ENVariables.conf` ; X being where the symlink of the gpu points to
|
||||||
|
|
||||||
- more info from the hyprland wiki [`Hyprland Wiki Link`](https://wiki.hyprland.org/FAQ/#my-external-monitor-is-blank--doesnt-render--receives-no-signal-laptop)
|
- more info from the hyprland wiki [`Hyprland Wiki Link`](https://wiki.hyprland.org/FAQ/#my-external-monitor-is-blank--doesnt-render--receives-no-signal-laptop)
|
||||||
|
|
||||||
|
|
||||||
- installing of cava-git on a newly installed Arch makes the install keep hanging. Switched back to cava. After booting and logged in, if cava dont work, replace it cava-git `yay -S cava-git` or `paru -S cava-git`
|
- reports from a member of discord for Nvidia for additional env's
|
||||||
|
- remove # from the following env's on
|
||||||
|
```
|
||||||
|
env = GBM_BACKEND,nvidia-drm
|
||||||
|
env = WLR_RENDERER_ALLOW_SOFTWARE,1
|
||||||
|
```
|
||||||
|
|
||||||
|
#### ❗ other known issues
|
||||||
|
- [ ] If you are using this script on an Arch-Based distros like Arco linux, or cachy OS or EOS or Manjaro, make sure to install pipewire, pipewire-pulse & pipewire-audio first. Arco Linux, on some of their ISO's still shipped with pulseaudio as audio backend. You will experience getting "stuck" on installation.
|
||||||
|
- [ ] To install pipewire and its services , `sudo pacman -S pipewire wireplumber pipewire-audio pipewire-pulse` . When prompted, remove / replace pulseaudio. After that, you can ran `./install.sh`
|
||||||
|
- [ ] installing of cava-git on a newly installed Arch makes the install keep hanging. Switched back to cava. After booting and logged in, if cava dont work, replace it cava-git `yay -S cava-git` or `paru -S cava-git`
|
||||||
|
> [!NOTE]
|
||||||
|
> Auto start of Hyprland after login (no SDDM or GDM or any login managers)
|
||||||
|
- [ ] This was disabled a few days ago. (19 May 2024). This was because some users, after they used the Distro-Hyprland scripts with other DE (gnome-wayland or plasma-wayland), if they choose to login into gnome-wayland for example, Hyprland is starting.
|
||||||
|
- [ ] to avoid this, I disabled it. You can re-enable again by editing `~/.zprofile` . Remove all the # on the first lines
|
||||||
|
- [ ] ROFI issues (scaling, unexplained scaling etc). This is most likely to experience if you are installing on a system where rofi is currently installed. To fix it uninstall rofi and install rofi-wayland . `sudo pacman -Rns rofi` . Install rofi-wayland with `sudo pacman -S rofi-wayland`. Rofi-wayland is compatible with x11 so no need to worry.
|
||||||
|
|
||||||
|
|
||||||
#### 🫥 Improving performance for Older Nvidia Cards using driver 470
|
#### 🫥 Improving performance for Older Nvidia Cards using driver 470
|
||||||
- [`SEE HERE`](https://github.com/JaKooLit/Hyprland-Dots/discussions/123#discussion-6035205)
|
- [`SEE HERE`](https://github.com/JaKooLit/Hyprland-Dots/discussions/123#discussion-6035205)
|
||||||
|
|
||||||
#### 📒 Final Notes
|
#### 📒 Final Notes
|
||||||
- join my discord channel [`Discord`](https://discord.gg/V2SJ92vbEN)
|
- join my discord channel [`Discord`](https://discord.com/invite/9JEgZsfhex)
|
||||||
- Feel free to copy, re-distribute, and use this script however you want. Would appreciate if you give me some loves by crediting my work :)
|
- Feel free to copy, re-distribute, and use this script however you want. Would appreciate if you give me some loves by crediting my work :)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### ⏩ Contributing
|
||||||
|
- As stated above, these script does not contain actual config files. These are only the installer of packages
|
||||||
|
- The development branch of this script is pulling the latest "stable" releases of the Hyprland-Dotfiles.
|
||||||
|
- If you want to contribute and/or test the Hyprland-Dotfiles (development branch), [`Hyprland-Dots-Development`](https://github.com/JaKooLit/Hyprland-Dots/tree/development)
|
||||||
|
|
||||||
|
|
||||||
#### 👍👍👍 Thanks and Credits!
|
#### 👍👍👍 Thanks and Credits!
|
||||||
- [`Hyprland`](https://hyprland.org/) Of course to Hyprland and @vaxerski for this awesome Dynamic Tiling Manager.
|
- [`Hyprland`](https://hyprland.org/) Of course to Hyprland and @vaxerski for this awesome Dynamic Tiling Manager.
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
|
#if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
|
||||||
Hyprland
|
# Hyprland
|
||||||
fi
|
#fi
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
export ZSH="$HOME/.oh-my-zsh"
|
export ZSH="$HOME/.oh-my-zsh"
|
||||||
|
|
||||||
ZSH_THEME="xiong-chiamiov-plus"
|
ZSH_THEME="agnosterzak"
|
||||||
|
|
||||||
plugins=(
|
plugins=(
|
||||||
git
|
git
|
||||||
@@ -17,22 +17,23 @@ source $ZSH/oh-my-zsh.sh
|
|||||||
# Check archlinux plugin commands here
|
# Check archlinux plugin commands here
|
||||||
# https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/archlinux
|
# https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/archlinux
|
||||||
|
|
||||||
|
|
||||||
# Display Pokemon-colorscripts
|
# Display Pokemon-colorscripts
|
||||||
# Project page: https://gitlab.com/phoneybadger/pokemon-colorscripts#on-other-distros-and-macos
|
# Project page: https://gitlab.com/phoneybadger/pokemon-colorscripts#on-other-distros-and-macos
|
||||||
#pokemon-colorscripts --no-title -s -r
|
#pokemon-colorscripts --no-title -s -r #without fastfetch
|
||||||
|
#pokemon-colorscripts --no-title -s -r | fastfetch -c $HOME/.config/fastfetch/config-pokemon.jsonc --logo-type file-raw --logo-height 10 --logo-width 5 --logo -
|
||||||
|
|
||||||
|
# fastfetch. Will be disabled if above colorscript was chosen to install
|
||||||
|
fastfetch -c $HOME/.config/fastfetch/config-compact.jsonc
|
||||||
|
|
||||||
### From this line is for pywal-colors
|
# Set-up icons for files/folders in terminal
|
||||||
# Import colorscheme from 'wal' asynchronously
|
alias ls='eza -a --icons'
|
||||||
# & # Run the process in the background.
|
alias ll='eza -al --icons'
|
||||||
# ( ) # Hide shell job control messages.
|
alias lt='eza -a --tree --level=1 --icons'
|
||||||
# Not supported in the "fish" shell.
|
|
||||||
#(cat ~/.cache/wal/sequences &)
|
|
||||||
|
|
||||||
# Alternative (blocks terminal for 0-3ms)
|
# Set-up FZF key bindings (CTRL R for fuzzy history finder)
|
||||||
#cat ~/.cache/wal/sequences
|
source <(fzf --zsh)
|
||||||
|
|
||||||
# To add support for TTYs this line can be optionally added.
|
|
||||||
#source ~/.cache/wal/colors-tty.sh
|
|
||||||
|
|
||||||
|
HISTFILE=~/.zsh_history
|
||||||
|
HISTSIZE=10000
|
||||||
|
SAVEHIST=10000
|
||||||
|
setopt appendhistory
|
||||||
|
|||||||
Binary file not shown.
124
assets/Thunar/accels.scm
Normal file
124
assets/Thunar/accels.scm
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
; Thunar GtkAccelMap rc-file -*- scheme -*-
|
||||||
|
; this file is an automated accelerator map dump
|
||||||
|
;
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-type" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-last-modified" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarActionManager/cut" "<Primary>x")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-size" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/file-menu" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/close-tab" "<Primary>w")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-size" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/new-window" "<Primary>n")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/clear-directory-specific-settings" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/close-window" "<Primary>q")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/open-parent" "<Alt>Up")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/view-side-pane-menu" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-size-in-bytes" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/switch-previous-tab" "<Primary>Page_Up")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarBookmarks/3925ac2f7e4055558c447a20c2e047ad" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarActionManager/open" "<Primary>o")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-ascending" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/toggle-split-view" "F3")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarActionManager/copy-2" "<Primary>Insert")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarActionManager/trash-delete" "Delete")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/open-recent" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/view-configure-toolbar" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/forward" "<Alt>Right")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarActionManager/restore" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarBookmarks/9f0d843e4074095bf657b996746ec75c" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/open-location-alt" "<Alt>d")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarBookmarks/a16339451d60726d0755a887bd755af2" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-out-alt" "<Primary>KP_Subtract")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/select-by-pattern" "<Primary>s")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/open-file-menu" "F10")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/contents" "F1")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/show-highlight" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarBookmarks/44e0e66b3d753576f90ed75c87917822" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-descending" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-name" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/select-all-files" "<Primary>a")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarActionManager/execute" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/properties" "<Alt>Return")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarActionManager/cut-2" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-dtime" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/switch-next-tab" "<Primary>Page_Down")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarActionManager/paste-2" "<Shift>Insert")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/open-templates" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-filetype" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/close-all-windows" "<Primary><Shift>w")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/create-document" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/detach-tab" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarBookmarks/978d3e7a7225e42c977fe94183792d87" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/cancel-search" "Escape")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-in-alt2" "<Primary>equal")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarShortcutsPane/sendto-shortcuts" "<Primary>d")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarActionManager/undo" "<Primary>z")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/toggle-sort-order" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/reload-alt" "F5")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/view-location-selector-entry" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarActionManager/paste" "<Primary>v")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-in-alt1" "<Primary>KP_Add")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/view-menubar" "<Primary>m")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/back" "<Alt>Left")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/open-desktop" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/view-as-detailed-list" "<Primary>2")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarActionManager/restore-show" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-out" "<Primary>minus")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-display-name" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/sendto-menu" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/go-menu" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/remove-from-recent" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarActionManager/open-with-other" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/invert-selection" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/view-side-pane-shortcuts" "<Primary>b")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/view-location-selector-menu" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/edit-menu" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/reload" "<Primary>r")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarActionManager/move-to-trash" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarActionManager/copy" "<Primary>c")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarActionManager/delete-3" "<Shift>KP_Delete")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/toggle-side-pane" "F9")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-mtime" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarBookmarks/a50db0a56a1e6c31df6bf18c55eb78cd" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/arrange-items-menu" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/unselect-all-files" "Escape")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/open-computer" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/bookmarks-menu" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/toggle-image-preview" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/view-as-icons" "<Primary>1")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarActionManager/delete-2" "<Shift>Delete")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-in" "<Primary>plus")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/rename" "F2")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/open-location" "<Primary>l")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/view-as-compact-list" "<Primary>3")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/view-menu" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/search" "<Primary>f")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/new-tab" "<Primary>t")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-reset" "<Primary>0")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/contents/help-menu" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarActionManager/open-in-new-tab" "<Primary><Shift>p")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/view-location-selector-buttons" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarActionManager/redo" "<Primary><Shift>z")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/open-trash" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarActionManager/open-in-new-window" "<Primary><Shift>o")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/view-statusbar" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarActionManager/open-location" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/duplicate" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarBookmarks/c76f07a72d3c8ef5d4bf8e84c8981221" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarActionManager/trash-delete-2" "KP_Delete")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/create-folder" "<Primary><Shift>n")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/open-home" "<Alt>Home")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/show-hidden" "<Primary>h")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/set-default-app" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/empty-trash" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/back-alt" "BackSpace")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/preferences" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarBookmarks/8ea92a0b35875a5a65ffafcf02698ce8" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarActionManager/delete" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/view-side-pane-tree" "<Primary>e")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/open-file-system" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/open-network" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarActionManager/sendto-desktop" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/make-link" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-reset-alt" "<Primary>KP_0")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarWindow/about" "")
|
||||||
370
assets/add_zsh_theme/agnosterzak.zsh-theme
Normal file
370
assets/add_zsh_theme/agnosterzak.zsh-theme
Normal file
@@ -0,0 +1,370 @@
|
|||||||
|
# vim:ft=zsh ts=2 sw=2 sts=2
|
||||||
|
#
|
||||||
|
# agnoster's Theme - https://gist.github.com/3712874
|
||||||
|
# A Powerline-inspired theme for ZSH
|
||||||
|
#
|
||||||
|
# # README
|
||||||
|
#
|
||||||
|
# In order for this theme to render correctly, you will need a
|
||||||
|
# [Powerline-patched font](https://gist.github.com/1595572).
|
||||||
|
#
|
||||||
|
# In addition, I recommend the
|
||||||
|
# [Solarized theme](https://github.com/altercation/solarized/) and, if you're
|
||||||
|
# using it on Mac OS X, [iTerm 2](http://www.iterm2.com/) over Terminal.app -
|
||||||
|
# it has significantly better color fidelity.
|
||||||
|
#
|
||||||
|
# # Goals
|
||||||
|
#
|
||||||
|
# The aim of this theme is to only show you *relevant* information. Like most
|
||||||
|
# prompts, it will only show git information when in a git working directory.
|
||||||
|
# However, it goes a step further: everything from the current user and
|
||||||
|
# hostname to whether the last call exited with an error to whether background
|
||||||
|
# jobs are running in this shell will all be displayed automatically when
|
||||||
|
# appropriate.
|
||||||
|
|
||||||
|
### Segment drawing
|
||||||
|
# A few utility functions to make it easy and re-usable to draw segmented prompts
|
||||||
|
|
||||||
|
CURRENT_BG='NONE'
|
||||||
|
|
||||||
|
# Characters
|
||||||
|
SEGMENT_SEPARATOR="\ue0b0"
|
||||||
|
PLUSMINUS="\u00b1"
|
||||||
|
BRANCH="\ue0a0"
|
||||||
|
DETACHED="\u27a6"
|
||||||
|
CROSS="\u2718"
|
||||||
|
LIGHTNING="\u26a1"
|
||||||
|
GEAR="\u2699"
|
||||||
|
|
||||||
|
# Begin a segment
|
||||||
|
# Takes two arguments, background and foreground. Both can be omitted,
|
||||||
|
# rendering default background/foreground.
|
||||||
|
prompt_segment() {
|
||||||
|
local bg fg
|
||||||
|
[[ -n $1 ]] && bg="%K{$1}" || bg="%k"
|
||||||
|
[[ -n $2 ]] && fg="%F{$2}" || fg="%f"
|
||||||
|
if [[ $CURRENT_BG != 'NONE' && $1 != $CURRENT_BG ]]; then
|
||||||
|
print -n " %{$bg%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR%{$fg%} "
|
||||||
|
else
|
||||||
|
print -n "%{$bg%}%{$fg%} "
|
||||||
|
fi
|
||||||
|
CURRENT_BG=$1
|
||||||
|
[[ -n $3 ]] && print -n $3
|
||||||
|
}
|
||||||
|
|
||||||
|
# End the prompt, closing any open segments
|
||||||
|
prompt_end() {
|
||||||
|
if [[ -n $CURRENT_BG ]]; then
|
||||||
|
print -n " %{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR"
|
||||||
|
else
|
||||||
|
print -n "%{%k%}"
|
||||||
|
fi
|
||||||
|
print -n "%{%f%}"
|
||||||
|
CURRENT_BG=''
|
||||||
|
}
|
||||||
|
|
||||||
|
### Prompt components
|
||||||
|
# Each component will draw itself, and hide itself if no information needs to be shown
|
||||||
|
|
||||||
|
# Context: user@hostname (who am I and where am I)
|
||||||
|
prompt_context() {
|
||||||
|
if [[ -n "$SSH_CLIENT" ]]; then
|
||||||
|
prompt_segment magenta white "%{$fg_bold[white]%(!.%{%F{white}%}.)%}$USER@%m%{$fg_no_bold[white]%}"
|
||||||
|
else
|
||||||
|
prompt_segment yellow magenta "%{$fg_bold[magenta]%(!.%{%F{magenta}%}.)%}@$USER%{$fg_no_bold[magenta]%}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Battery Level
|
||||||
|
prompt_battery() {
|
||||||
|
HEART='♥ '
|
||||||
|
|
||||||
|
if [[ $(uname) == "Darwin" ]] ; then
|
||||||
|
|
||||||
|
function battery_is_charging() {
|
||||||
|
[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]
|
||||||
|
}
|
||||||
|
|
||||||
|
function battery_pct() {
|
||||||
|
local smart_battery_status="$(ioreg -rc "AppleSmartBattery")"
|
||||||
|
typeset -F maxcapacity=$(echo $smart_battery_status | grep '^.*"MaxCapacity"\ =\ ' | sed -e 's/^.*"MaxCapacity"\ =\ //')
|
||||||
|
typeset -F currentcapacity=$(echo $smart_battery_status | grep '^.*"CurrentCapacity"\ =\ ' | sed -e 's/^.*CurrentCapacity"\ =\ //')
|
||||||
|
integer i=$(((currentcapacity/maxcapacity) * 100))
|
||||||
|
echo $i
|
||||||
|
}
|
||||||
|
|
||||||
|
function battery_pct_remaining() {
|
||||||
|
if battery_is_charging ; then
|
||||||
|
battery_pct
|
||||||
|
else
|
||||||
|
echo "External Power"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function battery_time_remaining() {
|
||||||
|
local smart_battery_status="$(ioreg -rc "AppleSmartBattery")"
|
||||||
|
if [[ $(echo $smart_battery_status | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then
|
||||||
|
timeremaining=$(echo $smart_battery_status | grep '^.*"AvgTimeToEmpty"\ =\ ' | sed -e 's/^.*"AvgTimeToEmpty"\ =\ //')
|
||||||
|
if [ $timeremaining -gt 720 ] ; then
|
||||||
|
echo "::"
|
||||||
|
else
|
||||||
|
echo "~$((timeremaining / 60)):$((timeremaining % 60))"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
b=$(battery_pct_remaining)
|
||||||
|
if [[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then
|
||||||
|
if [ $b -gt 50 ] ; then
|
||||||
|
prompt_segment green white
|
||||||
|
elif [ $b -gt 20 ] ; then
|
||||||
|
prompt_segment yellow white
|
||||||
|
else
|
||||||
|
prompt_segment red white
|
||||||
|
fi
|
||||||
|
echo -n "%{$fg_bold[white]%}$HEART$(battery_pct_remaining)%%%{$fg_no_bold[white]%}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $(uname) == "Linux" && -d /sys/module/battery ]] ; then
|
||||||
|
|
||||||
|
function battery_is_charging() {
|
||||||
|
! [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]]
|
||||||
|
}
|
||||||
|
|
||||||
|
function battery_pct() {
|
||||||
|
if (( $+commands[acpi] )) ; then
|
||||||
|
echo "$(acpi | cut -f2 -d ',' | tr -cd '[:digit:]')"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function battery_pct_remaining() {
|
||||||
|
if [ ! $(battery_is_charging) ] ; then
|
||||||
|
battery_pct
|
||||||
|
else
|
||||||
|
echo "External Power"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function battery_time_remaining() {
|
||||||
|
if [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then
|
||||||
|
echo $(acpi | cut -f3 -d ',')
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
b=$(battery_pct_remaining)
|
||||||
|
if [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then
|
||||||
|
if [ $b -gt 40 ] ; then
|
||||||
|
prompt_segment green white
|
||||||
|
elif [ $b -gt 20 ] ; then
|
||||||
|
prompt_segment yellow white
|
||||||
|
else
|
||||||
|
prompt_segment red white
|
||||||
|
fi
|
||||||
|
echo -n "%{$fg_bold[white]%}$HEART$(battery_pct_remaining)%%%{$fg_no_bold[white]%}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Git: branch/detached head, dirty status
|
||||||
|
prompt_git() {
|
||||||
|
#«»±˖˗‑‐‒ ━ ✚‐↔←↑↓→↭⇎⇔⋆━◂▸◄►◆☀★☗☊✔✖❮❯⚑⚙
|
||||||
|
local PL_BRANCH_CHAR
|
||||||
|
() {
|
||||||
|
local LC_ALL="" LC_CTYPE="en_US.UTF-8"
|
||||||
|
PL_BRANCH_CHAR="$BRANCH"
|
||||||
|
}
|
||||||
|
local ref dirty mode repo_path clean has_upstream
|
||||||
|
local modified untracked added deleted tagged stashed
|
||||||
|
local ready_commit git_status bgclr fgclr
|
||||||
|
local commits_diff commits_ahead commits_behind has_diverged to_push to_pull
|
||||||
|
|
||||||
|
repo_path=$(git rev-parse --git-dir 2>/dev/null)
|
||||||
|
|
||||||
|
if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then
|
||||||
|
dirty=$(parse_git_dirty)
|
||||||
|
git_status=$(git status --porcelain 2> /dev/null)
|
||||||
|
ref=$(git symbolic-ref HEAD 2> /dev/null) || ref="➦ $(git rev-parse --short HEAD 2> /dev/null)"
|
||||||
|
if [[ -n $dirty ]]; then
|
||||||
|
clean=''
|
||||||
|
bgclr='yellow'
|
||||||
|
fgclr='magenta'
|
||||||
|
else
|
||||||
|
clean=' ✔'
|
||||||
|
bgclr='green'
|
||||||
|
fgclr='white'
|
||||||
|
fi
|
||||||
|
|
||||||
|
local upstream=$(git rev-parse --symbolic-full-name --abbrev-ref @{upstream} 2> /dev/null)
|
||||||
|
if [[ -n "${upstream}" && "${upstream}" != "@{upstream}" ]]; then has_upstream=true; fi
|
||||||
|
|
||||||
|
local current_commit_hash=$(git rev-parse HEAD 2> /dev/null)
|
||||||
|
|
||||||
|
local number_of_untracked_files=$(\grep -c "^??" <<< "${git_status}")
|
||||||
|
# if [[ $number_of_untracked_files -gt 0 ]]; then untracked=" $number_of_untracked_files◆"; fi
|
||||||
|
if [[ $number_of_untracked_files -gt 0 ]]; then untracked=" $number_of_untracked_files☀"; fi
|
||||||
|
|
||||||
|
local number_added=$(\grep -c "^A" <<< "${git_status}")
|
||||||
|
if [[ $number_added -gt 0 ]]; then added=" $number_added✚"; fi
|
||||||
|
|
||||||
|
local number_modified=$(\grep -c "^.M" <<< "${git_status}")
|
||||||
|
if [[ $number_modified -gt 0 ]]; then
|
||||||
|
modified=" $number_modified●"
|
||||||
|
bgclr='red'
|
||||||
|
fgclr='white'
|
||||||
|
fi
|
||||||
|
|
||||||
|
local number_added_modified=$(\grep -c "^M" <<< "${git_status}")
|
||||||
|
local number_added_renamed=$(\grep -c "^R" <<< "${git_status}")
|
||||||
|
if [[ $number_modified -gt 0 && $number_added_modified -gt 0 ]]; then
|
||||||
|
modified="$modified$((number_added_modified+number_added_renamed))±"
|
||||||
|
elif [[ $number_added_modified -gt 0 ]]; then
|
||||||
|
modified=" ●$((number_added_modified+number_added_renamed))±"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local number_deleted=$(\grep -c "^.D" <<< "${git_status}")
|
||||||
|
if [[ $number_deleted -gt 0 ]]; then
|
||||||
|
deleted=" $number_deleted‒"
|
||||||
|
bgclr='red'
|
||||||
|
fgclr='white'
|
||||||
|
fi
|
||||||
|
|
||||||
|
local number_added_deleted=$(\grep -c "^D" <<< "${git_status}")
|
||||||
|
if [[ $number_deleted -gt 0 && $number_added_deleted -gt 0 ]]; then
|
||||||
|
deleted="$deleted$number_added_deleted±"
|
||||||
|
elif [[ $number_added_deleted -gt 0 ]]; then
|
||||||
|
deleted=" ‒$number_added_deleted±"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local tag_at_current_commit=$(git describe --exact-match --tags $current_commit_hash 2> /dev/null)
|
||||||
|
if [[ -n $tag_at_current_commit ]]; then tagged=" ☗$tag_at_current_commit "; fi
|
||||||
|
|
||||||
|
local number_of_stashes="$(git stash list -n1 2> /dev/null | wc -l)"
|
||||||
|
if [[ $number_of_stashes -gt 0 ]]; then
|
||||||
|
stashed=" ${number_of_stashes##*( )}⚙"
|
||||||
|
bgclr='magenta'
|
||||||
|
fgclr='white'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $number_added -gt 0 || $number_added_modified -gt 0 || $number_added_deleted -gt 0 ]]; then ready_commit=' ⚑'; fi
|
||||||
|
|
||||||
|
local upstream_prompt=''
|
||||||
|
if [[ $has_upstream == true ]]; then
|
||||||
|
commits_diff="$(git log --pretty=oneline --topo-order --left-right ${current_commit_hash}...${upstream} 2> /dev/null)"
|
||||||
|
commits_ahead=$(\grep -c "^<" <<< "$commits_diff")
|
||||||
|
commits_behind=$(\grep -c "^>" <<< "$commits_diff")
|
||||||
|
upstream_prompt="$(git rev-parse --symbolic-full-name --abbrev-ref @{upstream} 2> /dev/null)"
|
||||||
|
upstream_prompt=$(sed -e 's/\/.*$/ ☊ /g' <<< "$upstream_prompt")
|
||||||
|
fi
|
||||||
|
|
||||||
|
has_diverged=false
|
||||||
|
if [[ $commits_ahead -gt 0 && $commits_behind -gt 0 ]]; then has_diverged=true; fi
|
||||||
|
if [[ $has_diverged == false && $commits_ahead -gt 0 ]]; then
|
||||||
|
if [[ $bgclr == 'red' || $bgclr == 'magenta' ]] then
|
||||||
|
to_push=" $fg_bold[white]↑$commits_ahead$fg_bold[$fgclr]"
|
||||||
|
else
|
||||||
|
to_push=" $fg_bold[black]↑$commits_ahead$fg_bold[$fgclr]"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [[ $has_diverged == false && $commits_behind -gt 0 ]]; then to_pull=" $fg_bold[magenta]↓$commits_behind$fg_bold[$fgclr]"; fi
|
||||||
|
|
||||||
|
if [[ -e "${repo_path}/BISECT_LOG" ]]; then
|
||||||
|
mode=" <B>"
|
||||||
|
elif [[ -e "${repo_path}/MERGE_HEAD" ]]; then
|
||||||
|
mode=" >M<"
|
||||||
|
elif [[ -e "${repo_path}/rebase" || -e "${repo_path}/rebase-apply" || -e "${repo_path}/rebase-merge" || -e "${repo_path}/../.dotest" ]]; then
|
||||||
|
mode=" >R>"
|
||||||
|
fi
|
||||||
|
|
||||||
|
prompt_segment $bgclr $fgclr
|
||||||
|
|
||||||
|
print -n "%{$fg_bold[$fgclr]%}${ref/refs\/heads\//$PL_BRANCH_CHAR $upstream_prompt}${mode}$to_push$to_pull$clean$tagged$stashed$untracked$modified$deleted$added$ready_commit%{$fg_no_bold[$fgclr]%}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt_hg() {
|
||||||
|
local rev status
|
||||||
|
if $(hg id >/dev/null 2>&1); then
|
||||||
|
if $(hg prompt >/dev/null 2>&1); then
|
||||||
|
if [[ $(hg prompt "{status|unknown}") = "?" ]]; then
|
||||||
|
# if files are not added
|
||||||
|
prompt_segment red white
|
||||||
|
st='±'
|
||||||
|
elif [[ -n $(hg prompt "{status|modified}") ]]; then
|
||||||
|
# if any modification
|
||||||
|
prompt_segment yellow black
|
||||||
|
st='±'
|
||||||
|
else
|
||||||
|
# if working copy is clean
|
||||||
|
prompt_segment green black
|
||||||
|
fi
|
||||||
|
print -n $(hg prompt "☿ {rev}@{branch}") $st
|
||||||
|
else
|
||||||
|
st=""
|
||||||
|
rev=$(hg id -n 2>/dev/null | sed 's/[^-0-9]//g')
|
||||||
|
branch=$(hg id -b 2>/dev/null)
|
||||||
|
if `hg st | grep -q "^\?"`; then
|
||||||
|
prompt_segment red black
|
||||||
|
st='±'
|
||||||
|
elif `hg st | grep -q "^[MA]"`; then
|
||||||
|
prompt_segment yellow black
|
||||||
|
st='±'
|
||||||
|
else
|
||||||
|
prompt_segment green black
|
||||||
|
fi
|
||||||
|
print -n "☿ $rev@$branch" $st
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Dir: current working directory
|
||||||
|
prompt_dir() {
|
||||||
|
prompt_segment cyan white "%{$fg_bold[white]%}%~%{$fg_no_bold[white]%}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Virtualenv: current working virtualenv
|
||||||
|
prompt_virtualenv() {
|
||||||
|
local virtualenv_path="$VIRTUAL_ENV"
|
||||||
|
if [[ -n $virtualenv_path && -n $VIRTUAL_ENV_DISABLE_PROMPT ]]; then
|
||||||
|
prompt_segment blue black "(`basename $virtualenv_path`)"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt_time() {
|
||||||
|
prompt_segment blue white "%{$fg_bold[white]%}%D{%a %e %b - %H:%M}%{$fg_no_bold[white]%}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Status:
|
||||||
|
# - was there an error
|
||||||
|
# - am I root
|
||||||
|
# - are there background jobs?
|
||||||
|
prompt_status() {
|
||||||
|
local symbols
|
||||||
|
symbols=()
|
||||||
|
[[ $RETVAL -ne 0 ]] && symbols+="%{%F{red}%}$CROSS"
|
||||||
|
[[ $UID -eq 0 ]] && symbols+="%{%F{yellow}%}$LIGHTNING"
|
||||||
|
[[ $(jobs -l | wc -l) -gt 0 ]] && symbols+="%{%F{cyan}%}$GEAR"
|
||||||
|
|
||||||
|
[[ -n "$symbols" ]] && prompt_segment black default "$symbols"
|
||||||
|
}
|
||||||
|
|
||||||
|
## Main prompt
|
||||||
|
build_prompt() {
|
||||||
|
RETVAL=$?
|
||||||
|
print -n "\n"
|
||||||
|
prompt_status
|
||||||
|
#prompt_battery
|
||||||
|
prompt_time
|
||||||
|
prompt_virtualenv
|
||||||
|
prompt_dir
|
||||||
|
prompt_git
|
||||||
|
prompt_hg
|
||||||
|
prompt_end
|
||||||
|
CURRENT_BG='NONE'
|
||||||
|
print -n "\n"
|
||||||
|
prompt_context
|
||||||
|
prompt_end
|
||||||
|
}
|
||||||
|
|
||||||
|
PROMPT='%{%f%b%k%}$(build_prompt) '
|
||||||
392
assets/add_zsh_theme/antares.zsh-theme
Normal file
392
assets/add_zsh_theme/antares.zsh-theme
Normal file
@@ -0,0 +1,392 @@
|
|||||||
|
|
||||||
|
###
|
||||||
|
### You can re-define the following variables in your .zshrc file
|
||||||
|
### in order to customize the appearance of the prompt
|
||||||
|
###
|
||||||
|
|
||||||
|
# The indentation of the rprompt
|
||||||
|
ZLE_RPROMPT_INDENT=${ZLE_RPROMPT_INDENT:-0}
|
||||||
|
|
||||||
|
# Whether to use oh-my-zsh's git-prompt plugin
|
||||||
|
# or the builtin logic written in this file
|
||||||
|
ZSH_ANTARES_USE_OHMYZSH_GIT_PROMPT=""
|
||||||
|
|
||||||
|
# Whether to gather additional details about the git status
|
||||||
|
# This option only applies when using the builtin logic
|
||||||
|
# Usefull when dealing with huge repositories to speed things up
|
||||||
|
ZSH_ANTARES_USE_LIGHT_GIT_MODE=""
|
||||||
|
|
||||||
|
# The colors to use for the various elements of the prompt
|
||||||
|
ZSH_ANTARES_FG_EXECTIME="#dd00ff"
|
||||||
|
ZSH_ANTARES_FG_ERRVAL="#c31a1a"
|
||||||
|
ZSH_ANTARES_FG_DECO="#ffffff"
|
||||||
|
ZSH_ANTARES_FG_PWD_OK="#ffffff"
|
||||||
|
ZSH_ANTARES_BG_PWD_OK="#0055ff"
|
||||||
|
ZSH_ANTARES_FG_PWD_ERR="#ffffff"
|
||||||
|
ZSH_ANTARES_BG_PWD_ERR="#c31a1a"
|
||||||
|
ZSH_ANTARES_FG_GIT_INIT="#000000"
|
||||||
|
ZSH_ANTARES_BG_GIT_INIT="#b5f3a1"
|
||||||
|
ZSH_ANTARES_FG_GIT_BARE="#000000"
|
||||||
|
ZSH_ANTARES_BG_GIT_BARE="#b07a4e"
|
||||||
|
ZSH_ANTARES_FG_GIT_BRANCH="#000000"
|
||||||
|
ZSH_ANTARES_BG_GIT_BRANCH="#47cc2b"
|
||||||
|
ZSH_ANTARES_FG_GIT_DETACH="#000000"
|
||||||
|
ZSH_ANTARES_BG_GIT_DETACH="#eeaa22"
|
||||||
|
ZSH_ANTARES_FG_GIT_CONFLICT="#000000"
|
||||||
|
ZSH_ANTARES_BG_GIT_CONFLICT="#c31a1a"
|
||||||
|
ZSH_ANTARES_FG_GIT_AHEAD="#cfcfcf"
|
||||||
|
ZSH_ANTARES_FG_GIT_BEHIND="#9f9f9f"
|
||||||
|
ZSH_ANTARES_FG_GIT_STAGED="#6cc6ee"
|
||||||
|
ZSH_ANTARES_FG_GIT_ADDED="#04c304"
|
||||||
|
ZSH_ANTARES_FG_GIT_DELETED="#e7165a"
|
||||||
|
ZSH_ANTARES_FG_GIT_CHANGED="#ee9931"
|
||||||
|
ZSH_ANTARES_FG_GIT_CONFLICTS="#ff0000"
|
||||||
|
ZSH_ANTARES_FG_GIT_UNTRACKED="#bbffff"
|
||||||
|
ZSH_ANTARES_FG_GIT_STASHED="#eaa0ff"
|
||||||
|
ZSH_ANTARES_FG_GIT_TAG="#ffffff"
|
||||||
|
ZSH_ANTARES_FG_JOBS="#9f9f9f"
|
||||||
|
ZSH_ANTARES_FG_PRIVILEDGES="#ffdd44"
|
||||||
|
|
||||||
|
# The characters (or strings, by will) to use for some of the elements
|
||||||
|
ZSH_ANTARES_STR_GIT_BARE="⛁"
|
||||||
|
ZSH_ANTARES_STR_GIT_AHEAD="↑"
|
||||||
|
ZSH_ANTARES_STR_GIT_BEHIND="↓"
|
||||||
|
ZSH_ANTARES_STR_GIT_STAGED="●"
|
||||||
|
ZSH_ANTARES_STR_GIT_ADDED="✚"
|
||||||
|
ZSH_ANTARES_STR_GIT_DELETED="━"
|
||||||
|
ZSH_ANTARES_STR_GIT_CHANGED="✱"
|
||||||
|
ZSH_ANTARES_STR_GIT_CONFLICTS="✖"
|
||||||
|
ZSH_ANTARES_STR_GIT_UNTRACKED="❍"
|
||||||
|
ZSH_ANTARES_STR_GIT_STASHED="⚑"
|
||||||
|
ZSH_ANTARES_STR_GIT_TAG="🏲"
|
||||||
|
ZSH_ANTARES_STR_JOBS="⚙"
|
||||||
|
ZSH_ANTARES_STR_ROOT="#"
|
||||||
|
ZSH_ANTARES_STR_USER="$"
|
||||||
|
|
||||||
|
# The path expansion to use to display the pwd
|
||||||
|
ZSH_ANTARES_PATHVAR='%~'
|
||||||
|
|
||||||
|
# The minimum amount of time (in seconds) a command shall take to complete
|
||||||
|
# in order to display the execution time in the prompt
|
||||||
|
ZSH_ANTARES_MIN_EXEC_TIME=0
|
||||||
|
|
||||||
|
# The control character used to insert a new line
|
||||||
|
# You shouldn't edit this variable, but if you really want to...
|
||||||
|
ZSH_ANTARES_LINEFEED=$'\n'
|
||||||
|
|
||||||
|
###
|
||||||
|
### End of the re-definable section
|
||||||
|
###
|
||||||
|
|
||||||
|
|
||||||
|
antares_update_git_status()
|
||||||
|
{
|
||||||
|
ZSH_ANTARES_GIT_STATUS=""
|
||||||
|
ZSH_ANTARES_GIT_IN_WORKING_TREE=0
|
||||||
|
ZSH_ANTARES_GIT_IS_INIT_REPO=0
|
||||||
|
ZSH_ANTARES_GIT_IS_BARE_REPO=0
|
||||||
|
ZSH_ANTARES_GIT_IS_DETACHED_HEAD=0
|
||||||
|
ZSH_ANTARES_GIT_HAS_CONFLICTS=0
|
||||||
|
ZSH_ANTARES_GIT_HAS_TAGS=0
|
||||||
|
ZSH_ANTARES_GIT_TAG=""
|
||||||
|
|
||||||
|
if ( $(git rev-parse --is-inside-work-tree 1>/dev/null 2>/dev/null) )
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_IN_WORKING_TREE=1
|
||||||
|
private branch_name="$(git branch --show-current)"
|
||||||
|
if [ -n "$branch_name" ]
|
||||||
|
then
|
||||||
|
if [ -z "$ZSH_ANTARES_USE_OHMYZSH_GIT_PROMPT" ]
|
||||||
|
then
|
||||||
|
GIT_BRANCH="$branch_name"
|
||||||
|
fi
|
||||||
|
if ( ! $(git rev-parse --verify HEAD 1>/dev/null 2>/dev/null) )
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_IS_INIT_REPO=1
|
||||||
|
fi
|
||||||
|
if [ $(git rev-parse --is-bare-repository) = "true" ]
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_IS_BARE_REPO=1
|
||||||
|
GIT_BRANCH="$ZSH_ANTARES_STR_GIT_BARE"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
ZSH_ANTARES_GIT_IS_DETACHED_HEAD=1
|
||||||
|
if [ -z "$ZSH_ANTARES_USE_OHMYZSH_GIT_PROMPT" ]
|
||||||
|
then
|
||||||
|
GIT_BRANCH="$(git rev-parse --short HEAD)"
|
||||||
|
if [ -z "$ZSH_ANTARES_USE_LIGHT_GIT_MODE" ]
|
||||||
|
then
|
||||||
|
private git_tag="$(git tag --points-at=HEAD)"
|
||||||
|
if [ -n "$git_tag" ]
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_HAS_TAGS=1
|
||||||
|
private n_tags="$(echo "$git_tag" | wc -l)"
|
||||||
|
if (( n_tags == 1 ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_TAG=" $ZSH_ANTARES_STR_GIT_TAG $git_tag"
|
||||||
|
elif (( n_tags > 1 ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_TAG=" $ZSH_ANTARES_STR_GIT_TAG $n_tags"
|
||||||
|
else
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
antares_reset_git_info
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
if (( ZSH_ANTARES_GIT_IS_BARE_REPO ))
|
||||||
|
then
|
||||||
|
antares_reset_git_counts
|
||||||
|
GIT_AHEAD=$(git rev-list --left-only HEAD..FETCH_HEAD --count)
|
||||||
|
GIT_BEHIND=$(git rev-list --right-only HEAD..FETCH_HEAD --count)
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$ZSH_ANTARES_USE_OHMYZSH_GIT_PROMPT" ]
|
||||||
|
then
|
||||||
|
GIT_ADDED=0
|
||||||
|
elif [ -n "$ZSH_ANTARES_USE_LIGHT_GIT_MODE" ]
|
||||||
|
then
|
||||||
|
antares_reset_git_counts
|
||||||
|
return
|
||||||
|
else
|
||||||
|
private git_status="$(git status -sb)"
|
||||||
|
if [ -n "$git_status" ]
|
||||||
|
then
|
||||||
|
GIT_STAGED=$(echo $git_status | grep '^[AMD]. ' | wc -l)
|
||||||
|
GIT_ADDED=$(echo $git_status | grep '^A ' | wc -l)
|
||||||
|
GIT_DELETED=$(echo $git_status | grep -E '^(D |.D) ' | wc -l)
|
||||||
|
GIT_CHANGED=$(echo $git_status | grep -E '^(M |.M) ' | wc -l)
|
||||||
|
GIT_CONFLICTS=$(echo $git_status | grep '^U. ' | wc -l)
|
||||||
|
GIT_UNTRACKED=$(echo $git_status | grep '^?? ' | wc -l)
|
||||||
|
GIT_STASHED=$(git stash list | wc -l)
|
||||||
|
if (( ZSH_ANTARES_GIT_IS_DETACHED_HEAD ))
|
||||||
|
then
|
||||||
|
GIT_AHEAD=0
|
||||||
|
GIT_BEHIND=0
|
||||||
|
elif (( ! ZSH_ANTARES_GIT_IS_INIT_REPO ))
|
||||||
|
then
|
||||||
|
private left_right=$(echo $git_status | grep '^## ' | cut -d" " -f2)
|
||||||
|
GIT_AHEAD=$(git rev-list --left-only $left_right --count)
|
||||||
|
GIT_BEHIND=$(git rev-list --right-only $left_right --count)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
ZSH_ANTARES_GIT_HAS_CONFLICTS=$(( GIT_CONFLICTS > 0 ))
|
||||||
|
}
|
||||||
|
|
||||||
|
antares_reset_git_info()
|
||||||
|
{
|
||||||
|
if [ -z "$ZSH_ANTARES_USE_OHMYZSH_GIT_PROMPT" ]
|
||||||
|
then
|
||||||
|
GIT_BRANCH=""
|
||||||
|
fi
|
||||||
|
antares_reset_git_counts
|
||||||
|
}
|
||||||
|
antares_reset_git_counts()
|
||||||
|
{
|
||||||
|
if [ -n "$ZSH_ANTARES_USE_OHMYZSH_GIT_PROMPT" ]
|
||||||
|
then
|
||||||
|
GIT_ADDED=0
|
||||||
|
else
|
||||||
|
GIT_AHEAD=0
|
||||||
|
GIT_BEHIND=0
|
||||||
|
GIT_STAGED=0
|
||||||
|
GIT_ADDED=0
|
||||||
|
GIT_DELETED=0
|
||||||
|
GIT_CHANGED=0
|
||||||
|
GIT_CONFLICTS=0
|
||||||
|
GIT_UNTRACKED=0
|
||||||
|
GIT_STASHED=0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
antares_update_prompt()
|
||||||
|
{
|
||||||
|
ZSH_ANTARES_RETURN=""
|
||||||
|
if [ -n "$ZSH_ANTARES_EXEC_FLAG" ]
|
||||||
|
then
|
||||||
|
if (( ZSH_ANTARES_MIN_EXEC_TIME >= 0 ))
|
||||||
|
then
|
||||||
|
private exec_time=$(( SECONDS - ZSH_ANTARES_EXEC_START ))
|
||||||
|
if (( exec_time >= ZSH_ANTARES_MIN_EXEC_TIME ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_RETURN+="%F{$ZSH_ANTARES_FG_EXECTIME}%B⤷%b $exec_time%f"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [[ "$ZSH_ANTARES_ERR_CODE" != "0" ]]
|
||||||
|
then
|
||||||
|
if [ -z "$ZSH_ANTARES_RETURN" ]
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_RETURN+="%F{$ZSH_ANTARES_FG_ERRVAL}%B⤷%b%f"
|
||||||
|
fi
|
||||||
|
ZSH_ANTARES_RETURN+=" %F{$ZSH_ANTARES_FG_ERRVAL}✘%B${ZSH_ANTARES_ERR_CODE}%b%f"
|
||||||
|
fi
|
||||||
|
[ -n "$ZSH_ANTARES_RETURN" ] && ZSH_ANTARES_RETURN+="$ZSH_ANTARES_LINEFEED"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ZSH_ANTARES_FILLER=""
|
||||||
|
private fillchar=" "
|
||||||
|
|
||||||
|
private width=$(( COLUMNS - ${ZLE_RPROMPT_INDENT:-1} ))
|
||||||
|
|
||||||
|
private decosize=7
|
||||||
|
private pwdsize=${#${(%):-$ZSH_ANTARES_PATHVAR}}
|
||||||
|
private pwdcut=""
|
||||||
|
private gitsize=${#${(%):-$GIT_BRANCH$ZSH_ANTARES_GIT_TAG}}
|
||||||
|
private gitcut=""
|
||||||
|
|
||||||
|
if (( pwdsize + gitsize + (decosize * 2) > width )); then
|
||||||
|
private half_width=$(( width / 2 ))
|
||||||
|
private pwd_over_half=$(( (pwdsize + decosize) > half_width ))
|
||||||
|
private git_over_half=$(( (gitsize + decosize) > half_width ))
|
||||||
|
if (( pwd_over_half > 0 )) && (( git_over_half > 0 ))
|
||||||
|
then
|
||||||
|
(( pwdcut = half_width - decosize ))
|
||||||
|
(( gitcut = half_width - decosize ))
|
||||||
|
elif (( pwd_over_half > 0 ))
|
||||||
|
then
|
||||||
|
(( pwdcut = width - gitsize - (decosize * 2) ))
|
||||||
|
ZSH_ANTARES_FILLER="\${(l:$(( width - pwdcut - gitsize - (decosize * 2) ))::$fillchar:)}"
|
||||||
|
elif (( git_over_half > 0 ))
|
||||||
|
then
|
||||||
|
(( gitcut = width - pwdsize - (decosize * 2) ))
|
||||||
|
ZSH_ANTARES_FILLER="\${(l:$(( width - pwdsize - gitcut - (decosize * 2) ))::$fillchar:)}"
|
||||||
|
else
|
||||||
|
ZSH_ANTARES_FILLER="\${(l:$(( width - pwdsize - gitsize - (decosize * 2) ))::$fillchar:)}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
ZSH_ANTARES_FILLER="\${(l:$(( width - pwdsize - gitsize - (decosize * 2) ))::$fillchar:)}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$ZSH_ANTARES_EXEC_FLAG" ]
|
||||||
|
then
|
||||||
|
private pwd_fg_color="%(?.${ZSH_ANTARES_FG_PWD_OK}.${ZSH_ANTARES_FG_PWD_ERR})"
|
||||||
|
private pwd_bg_color="%(?.${ZSH_ANTARES_BG_PWD_OK}.${ZSH_ANTARES_BG_PWD_ERR})"
|
||||||
|
else
|
||||||
|
private pwd_fg_color="$ZSH_ANTARES_FG_PWD_OK"
|
||||||
|
private pwd_bg_color="$ZSH_ANTARES_BG_PWD_OK"
|
||||||
|
fi
|
||||||
|
ZSH_ANTARES_PWD="%K{$pwd_bg_color}%F{$pwd_fg_color} %${pwdcut}<...<${ZSH_ANTARES_PATHVAR}%<< %f%k%F{$pwd_bg_color}▓▒░%f"
|
||||||
|
|
||||||
|
ZSH_ANTARES_GIT_BRANCH=""
|
||||||
|
if (( ZSH_ANTARES_GIT_IN_WORKING_TREE ))
|
||||||
|
then
|
||||||
|
if (( ZSH_ANTARES_GIT_HAS_CONFLICTS ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_BRANCH+="%F{$ZSH_ANTARES_BG_GIT_CONFLICT}░▒▓%f%K{$ZSH_ANTARES_BG_GIT_CONFLICT}%F{$ZSH_ANTARES_FG_GIT_CONFLICT}"
|
||||||
|
elif (( ZSH_ANTARES_GIT_IS_DETACHED_HEAD ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_BRANCH+="%F{$ZSH_ANTARES_BG_GIT_DETACH}░▒▓%f%K{$ZSH_ANTARES_BG_GIT_DETACH}%F{$ZSH_ANTARES_FG_GIT_DETACH}"
|
||||||
|
if (( ZSH_ANTARES_GIT_HAS_TAGS ))
|
||||||
|
then
|
||||||
|
GIT_BRANCH+="%F{$ZSH_ANTARES_FG_GIT_TAG}${ZSH_ANTARES_GIT_TAG}%f"
|
||||||
|
fi
|
||||||
|
elif (( ZSH_ANTARES_GIT_IS_BARE_REPO ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_BRANCH+="%F{$ZSH_ANTARES_BG_GIT_BARE}░▒▓%f%K{$ZSH_ANTARES_BG_GIT_BARE}%F{$ZSH_ANTARES_FG_GIT_BARE}"
|
||||||
|
elif (( ZSH_ANTARES_GIT_IS_INIT_REPO ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_BRANCH+="%F{$ZSH_ANTARES_BG_GIT_INIT}░▒▓%f%K{$ZSH_ANTARES_BG_GIT_INIT}%F{$ZSH_ANTARES_FG_GIT_INIT}"
|
||||||
|
else
|
||||||
|
ZSH_ANTARES_GIT_BRANCH+="%F{$ZSH_ANTARES_BG_GIT_BRANCH}░▒▓%f%K{$ZSH_ANTARES_BG_GIT_BRANCH}%F{$ZSH_ANTARES_FG_GIT_BRANCH}"
|
||||||
|
fi
|
||||||
|
ZSH_ANTARES_GIT_BRANCH+=" %${gitcut}>...>$GIT_BRANCH%>> %f%k"
|
||||||
|
if [ -n "$ZSH_ANTARES_USE_LIGHT_GIT_MODE" ]
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_BRANCH+="%F{$ZSH_ANTARES_FG_DECO}├╼%f"
|
||||||
|
else
|
||||||
|
ZSH_ANTARES_GIT_BRANCH+="%F{$ZSH_ANTARES_FG_DECO}├╮%f"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
ZSH_ANTARES_JOBS="%(1j.%F{$ZSH_ANTARES_FG_JOBS}${ZSH_ANTARES_STR_JOBS}%j%f .)"
|
||||||
|
|
||||||
|
ZSH_ANTARES_PRIVILEDGES="%F{$ZSH_ANTARES_FG_PRIVILEDGES}%B%(!.${ZSH_ANTARES_STR_ROOT}.${ZSH_ANTARES_STR_USER})%b%f"
|
||||||
|
}
|
||||||
|
|
||||||
|
antares_update_rprompt()
|
||||||
|
{
|
||||||
|
ZSH_ANTARES_GIT_STATUS=""
|
||||||
|
|
||||||
|
[ -n "$ZSH_ANTARES_USE_LIGHT_GIT_MODE" ] && return
|
||||||
|
|
||||||
|
(( ZSH_ANTARES_GIT_IN_WORKING_TREE )) || return
|
||||||
|
|
||||||
|
if (( GIT_CONFLICTS > 0 ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_STATUS+=" %F{$ZSH_ANTARES_FG_GIT_CONFLICTS}${ZSH_ANTARES_STR_GIT_CONFLICTS}${GIT_CONFLICTS}%f"
|
||||||
|
fi
|
||||||
|
if (( GIT_STAGED > 0 ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_STATUS+=" %F{$ZSH_ANTARES_FG_GIT_STAGED}${ZSH_ANTARES_STR_GIT_STAGED}${GIT_STAGED}%f"
|
||||||
|
fi
|
||||||
|
if (( GIT_DELETED > 0 ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_STATUS+=" %F{$ZSH_ANTARES_FG_GIT_DELETED}${ZSH_ANTARES_STR_GIT_DELETED}${GIT_DELETED}%f"
|
||||||
|
fi
|
||||||
|
if (( GIT_CHANGED > 0 ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_STATUS+=" %F{$ZSH_ANTARES_FG_GIT_CHANGED}${ZSH_ANTARES_STR_GIT_CHANGED}${GIT_CHANGED}%f"
|
||||||
|
fi
|
||||||
|
if (( GIT_ADDED > 0 ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_STATUS+=" %F{$ZSH_ANTARES_FG_GIT_ADDED}${ZSH_ANTARES_STR_GIT_ADDED}${GIT_ADDED}%f"
|
||||||
|
fi
|
||||||
|
if (( GIT_UNTRACKED > 0 ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_STATUS+=" %F{$ZSH_ANTARES_FG_GIT_UNTRACKED}${ZSH_ANTARES_STR_GIT_UNTRACKED}${GIT_UNTRACKED}%f"
|
||||||
|
fi
|
||||||
|
if (( GIT_STASHED > 0 ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_STATUS+=" %F{$ZSH_ANTARES_FG_GIT_STASHED}${ZSH_ANTARES_STR_GIT_STASHED}${GIT_STASHED}%f"
|
||||||
|
fi
|
||||||
|
if (( ! ZSH_ANTARES_GIT_IS_DETACHED_HEAD ))
|
||||||
|
then
|
||||||
|
private ahead_behind=""
|
||||||
|
if (( GIT_AHEAD > 0 ))
|
||||||
|
then
|
||||||
|
ahead_behind+="%F{$ZSH_ANTARES_FG_GIT_AHEAD}${ZSH_ANTARES_STR_GIT_AHEAD}${GIT_AHEAD}%f"
|
||||||
|
fi
|
||||||
|
if (( GIT_BEHIND > 0 ))
|
||||||
|
then
|
||||||
|
ahead_behind+="%F{$ZSH_ANTARES_FG_GIT_BEHIND}${ZSH_ANTARES_STR_GIT_BEHIND}${GIT_BEHIND}%f"
|
||||||
|
fi
|
||||||
|
if [ -n "$ahead_behind" ]
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_STATUS+=" $ahead_behind"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
ZSH_ANTARES_GIT_STATUS+=" %F{$ZSH_ANTARES_FG_DECO}╾─╯%f"
|
||||||
|
}
|
||||||
|
|
||||||
|
antares_precmd()
|
||||||
|
{
|
||||||
|
ZSH_ANTARES_ERR_CODE="$?"
|
||||||
|
antares_update_git_status
|
||||||
|
antares_update_prompt
|
||||||
|
antares_update_rprompt
|
||||||
|
ZSH_ANTARES_EXEC_FLAG=""
|
||||||
|
}
|
||||||
|
|
||||||
|
antares_preexec()
|
||||||
|
{
|
||||||
|
ZSH_ANTARES_EXEC_FLAG="+"
|
||||||
|
ZSH_ANTARES_EXEC_START=$SECONDS
|
||||||
|
}
|
||||||
|
|
||||||
|
autoload -U add-zsh-hook
|
||||||
|
add-zsh-hook precmd antares_precmd
|
||||||
|
add-zsh-hook preexec antares_preexec
|
||||||
|
|
||||||
|
PROMPT='${ZSH_ANTARES_RETURN}\
|
||||||
|
%F{$ZSH_ANTARES_FG_DECO}╭┤%f${ZSH_ANTARES_PWD}${(e)ZSH_ANTARES_FILLER}${ZSH_ANTARES_GIT_BRANCH}
|
||||||
|
%F{$ZSH_ANTARES_FG_DECO}╰─╼%f ${ZSH_ANTARES_JOBS}${ZSH_ANTARES_PRIVILEDGES} '
|
||||||
|
|
||||||
|
RPROMPT='${ZSH_ANTARES_GIT_STATUS}'
|
||||||
|
|
||||||
696
assets/add_zsh_theme/bullet-train.zsh-theme
Normal file
696
assets/add_zsh_theme/bullet-train.zsh-theme
Normal file
@@ -0,0 +1,696 @@
|
|||||||
|
# README
|
||||||
|
#
|
||||||
|
# In order for this theme to render correctly, you will need a
|
||||||
|
# [Powerline-patched font](https://github.com/Lokaltog/powerline-fonts).
|
||||||
|
#
|
||||||
|
# In addition, I recommend the
|
||||||
|
# [Tomorrow Night theme](https://github.com/chriskempson/tomorrow-theme) and, if
|
||||||
|
# you're using it on Mac OS X, [iTerm 2](http://www.iterm2.com/) over
|
||||||
|
# Terminal.app - it has significantly better color fidelity.
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# CONFIGURATION
|
||||||
|
# The default configuration, that can be overwrite in your .zshrc file
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
VIRTUAL_ENV_DISABLE_PROMPT=true
|
||||||
|
|
||||||
|
# Define order and content of prompt
|
||||||
|
if [ ! -n "${BULLETTRAIN_PROMPT_ORDER+1}" ]; then
|
||||||
|
BULLETTRAIN_PROMPT_ORDER=(
|
||||||
|
time
|
||||||
|
status
|
||||||
|
custom
|
||||||
|
context
|
||||||
|
dir
|
||||||
|
screen
|
||||||
|
perl
|
||||||
|
ruby
|
||||||
|
virtualenv
|
||||||
|
nvm
|
||||||
|
aws
|
||||||
|
go
|
||||||
|
rust
|
||||||
|
elixir
|
||||||
|
git
|
||||||
|
hg
|
||||||
|
cmd_exec_time
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# PROMPT
|
||||||
|
if [ ! -n "${BULLETTRAIN_PROMPT_CHAR+1}" ]; then
|
||||||
|
BULLETTRAIN_PROMPT_CHAR="\$"
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_PROMPT_ROOT+1}" ]; then
|
||||||
|
BULLETTRAIN_PROMPT_ROOT=true
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_PROMPT_SEPARATE_LINE+1}" ]; then
|
||||||
|
BULLETTRAIN_PROMPT_SEPARATE_LINE=true
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_PROMPT_ADD_NEWLINE+1}" ]; then
|
||||||
|
BULLETTRAIN_PROMPT_ADD_NEWLINE=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# STATUS
|
||||||
|
if [ ! -n "${BULLETTRAIN_STATUS_EXIT_SHOW+1}" ]; then
|
||||||
|
BULLETTRAIN_STATUS_EXIT_SHOW=false
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_STATUS_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_STATUS_BG=green
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_STATUS_ERROR_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_STATUS_ERROR_BG=red
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_STATUS_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_STATUS_FG=white
|
||||||
|
fi
|
||||||
|
|
||||||
|
# TIME
|
||||||
|
if [ ! -n "${BULLETTRAIN_TIME_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_TIME_BG=white
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_TIME_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_TIME_FG=black
|
||||||
|
fi
|
||||||
|
|
||||||
|
# CUSTOM
|
||||||
|
if [ ! -n "${BULLETTRAIN_CUSTOM_MSG+1}" ]; then
|
||||||
|
BULLETTRAIN_CUSTOM_MSG=false
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_CUSTOM_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_CUSTOM_BG=black
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_CUSTOM_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_CUSTOM_FG=default
|
||||||
|
fi
|
||||||
|
|
||||||
|
# VIRTUALENV
|
||||||
|
if [ ! -n "${BULLETTRAIN_VIRTUALENV_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_VIRTUALENV_BG=yellow
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_VIRTUALENV_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_VIRTUALENV_FG=white
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_VIRTUALENV_PREFIX+1}" ]; then
|
||||||
|
BULLETTRAIN_VIRTUALENV_PREFIX=🐍
|
||||||
|
fi
|
||||||
|
|
||||||
|
# NVM
|
||||||
|
if [ ! -n "${BULLETTRAIN_NVM_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_NVM_BG=green
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_NVM_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_NVM_FG=white
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_NVM_PREFIX+1}" ]; then
|
||||||
|
BULLETTRAIN_NVM_PREFIX="⬡ "
|
||||||
|
fi
|
||||||
|
|
||||||
|
# AWS
|
||||||
|
if [ ! -n "${BULLETTRAIN_AWS_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_AWS_BG=yellow
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_AWS_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_AWS_FG=black
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_AWS_PREFIX+1}" ]; then
|
||||||
|
BULLETTRAIN_AWS_PREFIX="☁️"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# RUBY
|
||||||
|
if [ ! -n "${BULLETTRAIN_RUBY_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_RUBY_BG=red
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_RUBY_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_RUBY_FG=white
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_RUBY_PREFIX+1}" ]; then
|
||||||
|
BULLETTRAIN_RUBY_PREFIX=♦️
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Go
|
||||||
|
if [ ! -n "${BULLETTRAIN_GO_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_GO_BG=cyan
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GO_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_GO_FG=white
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GO_PREFIX+1}" ]; then
|
||||||
|
BULLETTRAIN_GO_PREFIX="go"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Rust
|
||||||
|
if [ ! -n "${BULLETTRAIN_RUST_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_RUST_BG=black
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_RUST_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_RUST_FG=white
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_RUST_PREFIX+1}" ]; then
|
||||||
|
BULLETTRAIN_RUST_PREFIX="🦀"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Kubernetes Context
|
||||||
|
if [ ! -n "${BULLETTRAIN_KCTX_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_KCTX_BG=yellow
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_KCTX_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_KCTX_FG=white
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_KCTX_PREFIX+1}" ]; then
|
||||||
|
BULLETTRAIN_KCTX_PREFIX="⎈"
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_KCTX_KCONFIG+1}" ]; then
|
||||||
|
BULLETTRAIN_KCTX_KCONFIG="${HOME}/.kube/config"
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_KCTX_KUBECTL+1}" ]; then
|
||||||
|
BULLETTRAIN_KCTX_KUBECTL="true"
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_KCTX_NAMESPACE+1}" ]; then
|
||||||
|
BULLETTRAIN_KCTX_NAMESPACE="true"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ELIXIR
|
||||||
|
if [ ! -n "${BULLETTRAIN_ELIXIR_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_ELIXIR_BG=magenta
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_ELIXIR_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_ELIXIR_FG=white
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_ELIXIR_PREFIX+1}" ]; then
|
||||||
|
BULLETTRAIN_ELIXIR_PREFIX="💧"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# DIR
|
||||||
|
if [ ! -n "${BULLETTRAIN_DIR_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_DIR_BG=blue
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_DIR_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_DIR_FG=white
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_DIR_CONTEXT_SHOW+1}" ]; then
|
||||||
|
BULLETTRAIN_DIR_CONTEXT_SHOW=false
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_DIR_EXTENDED+1}" ]; then
|
||||||
|
BULLETTRAIN_DIR_EXTENDED=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# GIT
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_COLORIZE_DIRTY+1}" ]; then
|
||||||
|
BULLETTRAIN_GIT_COLORIZE_DIRTY=false
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_COLORIZE_DIRTY_FG_COLOR+1}" ]; then
|
||||||
|
BULLETTRAIN_GIT_COLORIZE_DIRTY_FG_COLOR=black
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_COLORIZE_DIRTY_BG_COLOR+1}" ]; then
|
||||||
|
BULLETTRAIN_GIT_COLORIZE_DIRTY_BG_COLOR=yellow
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_GIT_BG=white
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_GIT_FG=black
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_EXTENDED+1}" ]; then
|
||||||
|
BULLETTRAIN_GIT_EXTENDED=true
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_PROMPT_CMD+1}" ]; then
|
||||||
|
BULLETTRAIN_GIT_PROMPT_CMD="\$(git_prompt_info)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# PERL
|
||||||
|
if [ ! -n "${BULLETTRAIN_PERL_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_PERL_BG=yellow
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_PERL_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_PERL_FG=black
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_PERL_PREFIX+1}" ]; then
|
||||||
|
BULLETTRAIN_PERL_PREFIX=🐪
|
||||||
|
fi
|
||||||
|
|
||||||
|
# CONTEXT
|
||||||
|
if [ ! -n "${BULLETTRAIN_CONTEXT_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_CONTEXT_BG=black
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_CONTEXT_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_CONTEXT_FG=default
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_CONTEXT_HOSTNAME+1}" ]; then
|
||||||
|
BULLETTRAIN_CONTEXT_HOSTNAME=%m
|
||||||
|
fi
|
||||||
|
|
||||||
|
# GIT PROMPT
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_PREFIX+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX="\ue0a0 "
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX=$BULLETTRAIN_GIT_PREFIX
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_SUFFIX+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_SUFFIX=""
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_SUFFIX=$BULLETTRAIN_GIT_SUFFIX
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_DIRTY+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIRTY=" %F{red}✘%F{black}"
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIRTY=$BULLETTRAIN_GIT_DIRTY
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_CLEAN+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_CLEAN=" %F{green}✔%F{black}"
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_CLEAN=$BULLETTRAIN_GIT_CLEAN
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_ADDED+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_ADDED=" %F{green}✚%F{black}"
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_ADDED=$BULLETTRAIN_GIT_ADDED
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_MODIFIED+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_MODIFIED=" %F{blue}✹%F{black}"
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_MODIFIED=$BULLETTRAIN_GIT_MODIFIED
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_DELETED+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_DELETED=" %F{red}✖%F{black}"
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_DELETED=$BULLETTRAIN_GIT_DELETED
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_UNTRACKED+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_UNTRACKED=" %F{yellow}✭%F{black}"
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_UNTRACKED=$BULLETTRAIN_GIT_UNTRACKED
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_RENAMED+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_RENAMED=" ➜"
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_RENAMED=$BULLETTRAIN_GIT_RENAMED
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_UNMERGED+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_UNMERGED=" ═"
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_UNMERGED=$BULLETTRAIN_GIT_UNMERGED
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_AHEAD+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_AHEAD=" ⬆"
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_AHEAD=$BULLETTRAIN_GIT_AHEAD
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_BEHIND+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_BEHIND=" ⬇"
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_BEHIND=$BULLETTRAIN_GIT_BEHIND
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_DIVERGED+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIVERGED=" ⬍"
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIVERGED=$BULLETTRAIN_GIT_PROMPT_DIVERGED
|
||||||
|
fi
|
||||||
|
|
||||||
|
# SCREEN
|
||||||
|
if [ ! -n "${BULLETTRAIN_SCREEN_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_SCREEN_BG=white
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_SCREEN_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_SCREEN_FG=black
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_SCREEN_PREFIX+1}" ]; then
|
||||||
|
BULLETTRAIN_SCREEN_PREFIX="⬗"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# COMMAND EXECUTION TIME
|
||||||
|
if [ ! -n "${BULLETTRAIN_EXEC_TIME_ELAPSED+1}" ]; then
|
||||||
|
BULLETTRAIN_EXEC_TIME_ELAPSED=5
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_EXEC_TIME_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_EXEC_TIME_BG=yellow
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_EXEC_TIME_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_EXEC_TIME_FG=black
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# SEGMENT DRAWING
|
||||||
|
# A few functions to make it easy and re-usable to draw segmented prompts
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
CURRENT_BG='NONE'
|
||||||
|
SEGMENT_SEPARATOR=''
|
||||||
|
|
||||||
|
# Begin a segment
|
||||||
|
# Takes three arguments, background, foreground and text. All of them can be omitted,
|
||||||
|
# rendering default background/foreground and no text.
|
||||||
|
prompt_segment() {
|
||||||
|
local bg fg
|
||||||
|
[[ -n $1 ]] && bg="%K{$1}" || bg="%k"
|
||||||
|
[[ -n $2 ]] && fg="%F{$2}" || fg="%f"
|
||||||
|
if [[ $CURRENT_BG != 'NONE' && $1 != $CURRENT_BG ]]; then
|
||||||
|
echo -n " %{$bg%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR%{$fg%} "
|
||||||
|
else
|
||||||
|
echo -n "%{$bg%}%{$fg%} "
|
||||||
|
fi
|
||||||
|
CURRENT_BG=$1
|
||||||
|
[[ -n $3 ]] && echo -n $3
|
||||||
|
}
|
||||||
|
|
||||||
|
# End the prompt, closing any open segments
|
||||||
|
prompt_end() {
|
||||||
|
if [[ -n $CURRENT_BG ]]; then
|
||||||
|
echo -n " %{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR"
|
||||||
|
else
|
||||||
|
echo -n "%{%k%}"
|
||||||
|
fi
|
||||||
|
echo -n "%{%f%}"
|
||||||
|
CURRENT_BG=''
|
||||||
|
}
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# PROMPT COMPONENTS
|
||||||
|
# Each component will draw itself, and hide itself if no information needs
|
||||||
|
# to be shown
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Context: user@hostname (who am I and where am I)
|
||||||
|
context() {
|
||||||
|
local user="$(whoami)"
|
||||||
|
[[ "$user" != "$BULLETTRAIN_CONTEXT_DEFAULT_USER" || -n "$BULLETTRAIN_IS_SSH_CLIENT" ]] && echo -n "${user}@$BULLETTRAIN_CONTEXT_HOSTNAME"
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt_context() {
|
||||||
|
local _context="$(context)"
|
||||||
|
[[ -n "$_context" ]] && prompt_segment $BULLETTRAIN_CONTEXT_BG $BULLETTRAIN_CONTEXT_FG "$_context"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Based on http://stackoverflow.com/a/32164707/3859566
|
||||||
|
function displaytime {
|
||||||
|
local T=$1
|
||||||
|
local D=$((T/60/60/24))
|
||||||
|
local H=$((T/60/60%24))
|
||||||
|
local M=$((T/60%60))
|
||||||
|
local S=$((T%60))
|
||||||
|
[[ $D > 0 ]] && printf '%dd' $D
|
||||||
|
[[ $H > 0 ]] && printf '%dh' $H
|
||||||
|
[[ $M > 0 ]] && printf '%dm' $M
|
||||||
|
printf '%ds' $S
|
||||||
|
}
|
||||||
|
|
||||||
|
# Prompt previous command execution time
|
||||||
|
preexec() {
|
||||||
|
cmd_timestamp=`date +%s`
|
||||||
|
}
|
||||||
|
|
||||||
|
precmd() {
|
||||||
|
local stop=`date +%s`
|
||||||
|
local start=${cmd_timestamp:-$stop}
|
||||||
|
let BULLETTRAIN_last_exec_duration=$stop-$start
|
||||||
|
cmd_timestamp=''
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt_cmd_exec_time() {
|
||||||
|
[ $BULLETTRAIN_last_exec_duration -gt $BULLETTRAIN_EXEC_TIME_ELAPSED ] && prompt_segment $BULLETTRAIN_EXEC_TIME_BG $BULLETTRAIN_EXEC_TIME_FG "$(displaytime $BULLETTRAIN_last_exec_duration)"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Custom
|
||||||
|
prompt_custom() {
|
||||||
|
if [[ $BULLETTRAIN_CUSTOM_MSG == false ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local custom_msg
|
||||||
|
eval custom_msg=$BULLETTRAIN_CUSTOM_MSG
|
||||||
|
[[ -n "${custom_msg}" ]] && prompt_segment $BULLETTRAIN_CUSTOM_BG $BULLETTRAIN_CUSTOM_FG "${custom_msg}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Git
|
||||||
|
prompt_git() {
|
||||||
|
if [[ "$(command git config --get oh-my-zsh.hide-status 2>/dev/null)" == "1" ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local ref dirty mode repo_path git_prompt
|
||||||
|
repo_path=$(git rev-parse --git-dir 2>/dev/null)
|
||||||
|
|
||||||
|
if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then
|
||||||
|
if [[ $BULLETTRAIN_GIT_COLORIZE_DIRTY == true && -n $(git status --porcelain --ignore-submodules) ]]; then
|
||||||
|
BULLETTRAIN_GIT_BG=$BULLETTRAIN_GIT_COLORIZE_DIRTY_BG_COLOR
|
||||||
|
BULLETTRAIN_GIT_FG=$BULLETTRAIN_GIT_COLORIZE_DIRTY_FG_COLOR
|
||||||
|
fi
|
||||||
|
prompt_segment $BULLETTRAIN_GIT_BG $BULLETTRAIN_GIT_FG
|
||||||
|
|
||||||
|
eval git_prompt=${BULLETTRAIN_GIT_PROMPT_CMD}
|
||||||
|
if [[ $BULLETTRAIN_GIT_EXTENDED == true ]]; then
|
||||||
|
echo -n ${git_prompt}$(git_prompt_status)
|
||||||
|
else
|
||||||
|
echo -n ${git_prompt}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt_hg() {
|
||||||
|
local rev status
|
||||||
|
if $(hg id >/dev/null 2>&1); then
|
||||||
|
if $(hg prompt >/dev/null 2>&1); then
|
||||||
|
if [[ $(hg prompt "{status|unknown}") = "?" ]]; then
|
||||||
|
# if files are not added
|
||||||
|
prompt_segment red white
|
||||||
|
st='±'
|
||||||
|
elif [[ -n $(hg prompt "{status|modified}") ]]; then
|
||||||
|
# if any modification
|
||||||
|
prompt_segment yellow black
|
||||||
|
st='±'
|
||||||
|
else
|
||||||
|
# if working copy is clean
|
||||||
|
prompt_segment green black
|
||||||
|
fi
|
||||||
|
echo -n $(hg prompt "☿ {rev}@{branch}") $st
|
||||||
|
else
|
||||||
|
st=""
|
||||||
|
rev=$(hg id -n 2>/dev/null | sed 's/[^-0-9]//g')
|
||||||
|
branch=$(hg id -b 2>/dev/null)
|
||||||
|
if $(hg st | grep -Eq "^\?"); then
|
||||||
|
prompt_segment red black
|
||||||
|
st='±'
|
||||||
|
elif $(hg st | grep -Eq "^(M|A)"); then
|
||||||
|
prompt_segment yellow black
|
||||||
|
st='±'
|
||||||
|
else
|
||||||
|
prompt_segment green black
|
||||||
|
fi
|
||||||
|
echo -n "☿ $rev@$branch" $st
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Dir: current working directory
|
||||||
|
prompt_dir() {
|
||||||
|
local dir=''
|
||||||
|
local _context="$(context)"
|
||||||
|
[[ $BULLETTRAIN_DIR_CONTEXT_SHOW == true && -n "$_context" ]] && dir="${dir}${_context}:"
|
||||||
|
|
||||||
|
if [[ $BULLETTRAIN_DIR_EXTENDED == 0 ]]; then
|
||||||
|
#short directories
|
||||||
|
dir="${dir}%1~"
|
||||||
|
elif [[ $BULLETTRAIN_DIR_EXTENDED == 2 ]]; then
|
||||||
|
#long directories
|
||||||
|
dir="${dir}%0~"
|
||||||
|
else
|
||||||
|
#medium directories (default case)
|
||||||
|
dir="${dir}%4(c:...:)%3c"
|
||||||
|
fi
|
||||||
|
|
||||||
|
prompt_segment $BULLETTRAIN_DIR_BG $BULLETTRAIN_DIR_FG $dir
|
||||||
|
}
|
||||||
|
|
||||||
|
# RUBY
|
||||||
|
# RVM: only shows RUBY info if on a gemset that is not the default one
|
||||||
|
# RBENV: shows current ruby version active in the shell; also with non-global gemsets if any is active
|
||||||
|
# CHRUBY: shows current ruby version active in the shell
|
||||||
|
prompt_ruby() {
|
||||||
|
if command -v rvm-prompt > /dev/null 2>&1; then
|
||||||
|
prompt_segment $BULLETTRAIN_RUBY_BG $BULLETTRAIN_RUBY_FG $BULLETTRAIN_RUBY_PREFIX" $(rvm-prompt i v g)"
|
||||||
|
elif command -v chruby > /dev/null 2>&1; then
|
||||||
|
prompt_segment $BULLETTRAIN_RUBY_BG $BULLETTRAIN_RUBY_FG $BULLETTRAIN_RUBY_PREFIX" $(chruby | sed -n -e 's/ \* //p')"
|
||||||
|
elif command -v rbenv > /dev/null 2>&1; then
|
||||||
|
current_gemset() {
|
||||||
|
echo "$(rbenv gemset active 2&>/dev/null | sed -e 's/ global$//')"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ -n $(current_gemset) ]]; then
|
||||||
|
prompt_segment $BULLETTRAIN_RUBY_BG $BULLETTRAIN_RUBY_FG $BULLETTRAIN_RUBY_PREFIX" $(rbenv version | sed -e 's/ (set.*$//')"@"$(current_gemset)"
|
||||||
|
else
|
||||||
|
prompt_segment $BULLETTRAIN_RUBY_BG $BULLETTRAIN_RUBY_FG $BULLETTRAIN_RUBY_PREFIX" $(rbenv version | sed -e 's/ (set.*$//')"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# ELIXIR
|
||||||
|
prompt_elixir() {
|
||||||
|
if command -v elixir > /dev/null 2>&1; then
|
||||||
|
prompt_segment $BULLETTRAIN_ELIXIR_BG $BULLETTRAIN_ELIXIR_FG $BULLETTRAIN_ELIXIR_PREFIX" $(elixir -v | tail -n 1 | awk '{print $2}')"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# PERL
|
||||||
|
# PLENV: shows current PERL version active in the shell
|
||||||
|
prompt_perl() {
|
||||||
|
if command -v plenv > /dev/null 2>&1; then
|
||||||
|
prompt_segment $BULLETTRAIN_PERL_BG $BULLETTRAIN_PERL_FG $BULLETTRAIN_PERL_PREFIX" $(plenv version | sed -e 's/ (set.*$//')"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Go
|
||||||
|
prompt_go() {
|
||||||
|
setopt extended_glob
|
||||||
|
if [[ (-f *.go(#qN) || -d Godeps || -f glide.yaml) ]]; then
|
||||||
|
if command -v go > /dev/null 2>&1; then
|
||||||
|
prompt_segment $BULLETTRAIN_GO_BG $BULLETTRAIN_GO_FG $BULLETTRAIN_GO_PREFIX" $(go version | grep --colour=never -oE '[[:digit:]].[[:digit:]]+')"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Rust
|
||||||
|
prompt_rust() {
|
||||||
|
if [[ (-f Cargo.toml) ]]; then
|
||||||
|
if command -v rustc > /dev/null 2>&1; then
|
||||||
|
prompt_segment $BULLETTRAIN_RUST_BG $BULLETTRAIN_RUST_FG $BULLETTRAIN_RUST_PREFIX" $(rustc -V version | cut -d' ' -f2)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Kubernetes Context
|
||||||
|
prompt_kctx() {
|
||||||
|
if [[ "$BULLETTRAIN_KCTX_KUBECTL" == "true" ]] && command -v kubectl > /dev/null 2>&1; then
|
||||||
|
local jsonpath='{.current-context}'
|
||||||
|
if [[ "$BULLETTRAIN_KCTX_NAMESPACE" == "true" ]]; then
|
||||||
|
jsonpath="${jsonpath}{':'}{..namespace}"
|
||||||
|
fi
|
||||||
|
prompt_segment $BULLETTRAIN_KCTX_BG $BULLETTRAIN_KCTX_FG $BULLETTRAIN_KCTX_PREFIX" $(kubectl config view --minify --output "jsonpath=${jsonpath}" 2>/dev/null)"
|
||||||
|
elif [[ -f $BULLETTRAIN_KCTX_KCONFIG ]]; then
|
||||||
|
prompt_segment $BULLETTRAIN_KCTX_BG $BULLETTRAIN_KCTX_FG $BULLETTRAIN_KCTX_PREFIX" $(cat $BULLETTRAIN_KCTX_KCONFIG | grep current-context | awk '{print $2}')"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Virtualenv: current working virtualenv
|
||||||
|
prompt_virtualenv() {
|
||||||
|
local virtualenv_path="$VIRTUAL_ENV"
|
||||||
|
if [[ -n $virtualenv_path && -n $VIRTUAL_ENV_DISABLE_PROMPT ]]; then
|
||||||
|
prompt_segment $BULLETTRAIN_VIRTUALENV_BG $BULLETTRAIN_VIRTUALENV_FG $BULLETTRAIN_VIRTUALENV_PREFIX" $(basename $virtualenv_path)"
|
||||||
|
elif which pyenv &> /dev/null; then
|
||||||
|
if [[ "$(pyenv version | sed -e 's/ (set.*$//' | tr '\n' ' ' | sed 's/.$//')" != "system" ]]; then
|
||||||
|
prompt_segment $BULLETTRAIN_VIRTUALENV_BG $BULLETTRAIN_VIRTUALENV_FG $BULLETTRAIN_VIRTUALENV_PREFIX" $(pyenv version | sed -e 's/ (set.*$//' | tr '\n' ' ' | sed 's/.$//')"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# NVM: Node version manager
|
||||||
|
prompt_nvm() {
|
||||||
|
local nvm_prompt
|
||||||
|
if type nvm >/dev/null 2>&1; then
|
||||||
|
nvm_prompt=$(nvm current 2>/dev/null)
|
||||||
|
[[ "${nvm_prompt}x" == "x" || "${nvm_prompt}" == "system" ]] && return
|
||||||
|
elif type node >/dev/null 2>&1; then
|
||||||
|
nvm_prompt="$(node --version)"
|
||||||
|
else
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
nvm_prompt=${nvm_prompt}
|
||||||
|
prompt_segment $BULLETTRAIN_NVM_BG $BULLETTRAIN_NVM_FG $BULLETTRAIN_NVM_PREFIX$nvm_prompt
|
||||||
|
}
|
||||||
|
|
||||||
|
#AWS Profile
|
||||||
|
prompt_aws() {
|
||||||
|
local spaces=" "
|
||||||
|
|
||||||
|
if [[ -n "$AWS_PROFILE" ]]; then
|
||||||
|
prompt_segment $BULLETTRAIN_AWS_BG $BULLETTRAIN_AWS_FG $BULLETTRAIN_AWS_PREFIX$spaces$AWS_PROFILE
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# SCREEN Session
|
||||||
|
prompt_screen() {
|
||||||
|
local session_name="$STY"
|
||||||
|
if [[ "$session_name" != "" ]]; then
|
||||||
|
prompt_segment $BULLETTRAIN_SCREEN_BG $BULLETTRAIN_SCREEN_FG $BULLETTRAIN_SCREEN_PREFIX" $session_name"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt_time() {
|
||||||
|
if [[ $BULLETTRAIN_TIME_12HR == true ]]; then
|
||||||
|
prompt_segment $BULLETTRAIN_TIME_BG $BULLETTRAIN_TIME_FG %D{%r}
|
||||||
|
else
|
||||||
|
prompt_segment $BULLETTRAIN_TIME_BG $BULLETTRAIN_TIME_FG %D{%T}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Status:
|
||||||
|
# - was there an error
|
||||||
|
# - am I root
|
||||||
|
# - are there background jobs?
|
||||||
|
prompt_status() {
|
||||||
|
local symbols
|
||||||
|
symbols=()
|
||||||
|
[[ $RETVAL -ne 0 && $BULLETTRAIN_STATUS_EXIT_SHOW != true ]] && symbols+="✘"
|
||||||
|
[[ $RETVAL -ne 0 && $BULLETTRAIN_STATUS_EXIT_SHOW == true ]] && symbols+="✘ $RETVAL"
|
||||||
|
[[ $UID -eq 0 ]] && symbols+="%{%F{yellow}%}⚡%f"
|
||||||
|
[[ $(jobs -l | wc -l) -gt 0 ]] && symbols+="⚙"
|
||||||
|
|
||||||
|
if [[ -n "$symbols" && $RETVAL -ne 0 ]]; then
|
||||||
|
prompt_segment $BULLETTRAIN_STATUS_ERROR_BG $BULLETTRAIN_STATUS_FG "$symbols"
|
||||||
|
elif [[ -n "$symbols" ]]; then
|
||||||
|
prompt_segment $BULLETTRAIN_STATUS_BG $BULLETTRAIN_STATUS_FG "$symbols"
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# Prompt Character
|
||||||
|
prompt_chars() {
|
||||||
|
local bt_prompt_chars="${BULLETTRAIN_PROMPT_CHAR}"
|
||||||
|
|
||||||
|
if [[ $BULLETTRAIN_PROMPT_ROOT == true ]]; then
|
||||||
|
bt_prompt_chars="%(!.%F{red}# .%F{green}${bt_prompt_chars}%f)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $BULLETTRAIN_PROMPT_SEPARATE_LINE == false ]]; then
|
||||||
|
bt_prompt_chars="${bt_prompt_chars}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -n "$bt_prompt_chars"
|
||||||
|
|
||||||
|
if [[ -n $BULLETTRAIN_PROMPT_CHAR ]]; then
|
||||||
|
echo -n " "
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Prompt Line Separator
|
||||||
|
prompt_line_sep() {
|
||||||
|
if [[ $BULLETTRAIN_PROMPT_SEPARATE_LINE == true ]]; then
|
||||||
|
# newline wont print without a non newline character, so add a zero-width space
|
||||||
|
echo -e '\n%{\u200B%}'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# MAIN
|
||||||
|
# Entry point
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
build_prompt() {
|
||||||
|
RETVAL=$?
|
||||||
|
for segment in $BULLETTRAIN_PROMPT_ORDER
|
||||||
|
do
|
||||||
|
prompt_$segment
|
||||||
|
done
|
||||||
|
prompt_end
|
||||||
|
}
|
||||||
|
|
||||||
|
NEWLINE='
|
||||||
|
'
|
||||||
|
PROMPT=''
|
||||||
|
[[ $BULLETTRAIN_PROMPT_ADD_NEWLINE == true ]] && PROMPT="$PROMPT$NEWLINE"
|
||||||
|
PROMPT="$PROMPT"'%{%f%b%k%}$(build_prompt)'
|
||||||
|
[[ $BULLETTRAIN_PROMPT_SEPARATE_LINE == true ]] && PROMPT="$PROMPT$NEWLINE"
|
||||||
|
PROMPT="$PROMPT"'%{${fg_bold[default]}%}'
|
||||||
|
[[ $BULLETTRAIN_PROMPT_SEPARATE_LINE == false ]] && PROMPT="$PROMPT "
|
||||||
|
PROMPT="$PROMPT"'$(prompt_chars)%{$reset_color%}'
|
||||||
38
assets/add_zsh_theme/color-input.zsh-theme
Normal file
38
assets/add_zsh_theme/color-input.zsh-theme
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# Refer https://misc.flogisoft.com/bash/tip_colors_and_formatting for the ANSI/VT100 control sequences
|
||||||
|
|
||||||
|
local user_color=026
|
||||||
|
local dir_color=130
|
||||||
|
local git_branch_color=010
|
||||||
|
local input_color=220
|
||||||
|
|
||||||
|
# Uncomment the following line to hide the virtual environment name.
|
||||||
|
# export VIRTUAL_ENV_DISABLE_PROMPT=1
|
||||||
|
|
||||||
|
# User details in green, bold
|
||||||
|
local user='%B$FG[${user_color}]%}%n@%m%{$reset_color%}'
|
||||||
|
# Directory details in cyan, bold
|
||||||
|
local dir='%B$FG[${dir_color}]%~%{$reset_color%}'
|
||||||
|
# git branch details in green
|
||||||
|
local git_branch='$FG[${git_branch_color}]$(git_prompt_info)%{$reset_color%}'
|
||||||
|
|
||||||
|
# Error message on command returning non-zero exit code
|
||||||
|
error_msg="\e[0;31mCommand failed"
|
||||||
|
|
||||||
|
PROMPT="${user}:${dir}:${git_branch}
|
||||||
|
$ $FG[${input_color}]"
|
||||||
|
|
||||||
|
# Resetting color to default white.
|
||||||
|
preexec()
|
||||||
|
{
|
||||||
|
echo -ne "\e[0m"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Printing error message if command failed.
|
||||||
|
precmd()
|
||||||
|
{
|
||||||
|
# Command failed
|
||||||
|
if [ $? -ne 0 ];
|
||||||
|
then
|
||||||
|
echo "${error_msg}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
418
assets/add_zsh_theme/comfyline.zsh-theme
Normal file
418
assets/add_zsh_theme/comfyline.zsh-theme
Normal file
@@ -0,0 +1,418 @@
|
|||||||
|
##########################################
|
||||||
|
### Comfyline - theme for zsh ###
|
||||||
|
# Original Author: not pua ( imnotpua ) #
|
||||||
|
# email: atp@tutamail.com #
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
|
||||||
|
# make prompt work without oh-my-zsh
|
||||||
|
setopt PROMPT_SUBST
|
||||||
|
export LANG=en_US.UTF-8
|
||||||
|
export LC_ALL=en_US.UTF-8
|
||||||
|
|
||||||
|
# default segment seperators
|
||||||
|
if [[ $COMFYLINE_SEGSEP == "" ]]; then
|
||||||
|
COMFYLINE_SEGSEP='\ue0b4'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $COMFYLINE_SEGSEP_REVERSE == "" ]]; then
|
||||||
|
COMFYLINE_SEGSEP_REVERSE='\ue0b6'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# date and time formats
|
||||||
|
if [[ $COMFYLINE_DATE_FORMAT == "" ]]; then
|
||||||
|
COMFYLINE_DATE_FORMAT="%A, %e %B %Y"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $COMFYLINE_TIME_FORMAT == "" ]]; then
|
||||||
|
COMFYLINE_TIME_FORMAT="%l:%M %p"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# default light theme
|
||||||
|
if [[ $RETVAL_RANK == "" ]]; then
|
||||||
|
RETVAL_RANK=1
|
||||||
|
fi
|
||||||
|
if [[ $HOST_RANK == "" ]]; then
|
||||||
|
HOST_RANK=2
|
||||||
|
fi
|
||||||
|
if [[ $USER_RANK == "" ]] then
|
||||||
|
USER_RANK=3
|
||||||
|
fi
|
||||||
|
if [[ $DIR_RANK == "" ]]; then
|
||||||
|
DIR_RANK=4
|
||||||
|
fi
|
||||||
|
if [[ $GIT_RANK == "" ]] then
|
||||||
|
GIT_RANK=5
|
||||||
|
fi
|
||||||
|
if [[ $VENV_RANK = "" ]]; then
|
||||||
|
VENV_RANK=6
|
||||||
|
fi
|
||||||
|
if [[ $BAT_RANK == "" ]] then
|
||||||
|
BAT_RANK=-3
|
||||||
|
fi
|
||||||
|
if [[ $DATE_RANK == "" ]]; then
|
||||||
|
DATE_RANK=-2
|
||||||
|
fi
|
||||||
|
if [[ $TIME_RANK == "" ]]; then
|
||||||
|
TIME_RANK=-1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# default colors
|
||||||
|
if [[ $RETVAL_b == "" ]]; then
|
||||||
|
RETVAL_b="#8a8bd8"
|
||||||
|
fi
|
||||||
|
if [[ $RETVAL_f == "" ]]; then
|
||||||
|
RETVAL_f="#61355c"
|
||||||
|
fi
|
||||||
|
if [[ $HOST_b == "" ]]; then
|
||||||
|
HOST_b="#b3b5fb"
|
||||||
|
fi
|
||||||
|
if [[ $HOST_f == "" ]]; then
|
||||||
|
HOST_f="#4a4b87"
|
||||||
|
fi
|
||||||
|
if [[ $USER_b == "" ]]; then
|
||||||
|
USER_b="#f8bbe5"
|
||||||
|
fi
|
||||||
|
if [[ $USER_f == "" ]]; then
|
||||||
|
USER_f="#874c80"
|
||||||
|
fi
|
||||||
|
if [[ $GIT_b == "" ]]; then
|
||||||
|
GIT_b="#f6b3b3"
|
||||||
|
fi
|
||||||
|
if [[ $GIT_f == "" ]]; then
|
||||||
|
GIT_f="#d95353"
|
||||||
|
fi
|
||||||
|
if [[ $GIT_CLEAN_b == "" ]]; then
|
||||||
|
GIT_CLEAN_b="#b3f58c"
|
||||||
|
fi
|
||||||
|
if [[ $GIT_CLEAN_f == "" ]]; then
|
||||||
|
GIT_CLEAN_f="#568459"
|
||||||
|
fi
|
||||||
|
if [[ $DIR_b == "" ]]; then
|
||||||
|
DIR_b="#e1bff2"
|
||||||
|
fi
|
||||||
|
if [[ $DIR_f == "" ]]; then
|
||||||
|
DIR_f="#844189"
|
||||||
|
fi
|
||||||
|
if [[ $VENV_b == "" ]]; then
|
||||||
|
VENV_b="#a8ddf9"
|
||||||
|
fi
|
||||||
|
if [[ $VENV_f == "" ]]; then
|
||||||
|
VENV_f="#0066a4"
|
||||||
|
fi
|
||||||
|
if [[ $BAT_b == "" ]]; then
|
||||||
|
BAT_b="#b3b5fb"
|
||||||
|
fi
|
||||||
|
if [[ $BAT_f == "" ]]; then
|
||||||
|
BAT_f="#4a4b87"
|
||||||
|
fi
|
||||||
|
if [[ $DATE_b == "" ]]; then
|
||||||
|
DATE_b="#f8bbe5"
|
||||||
|
fi
|
||||||
|
if [[ $DATE_f == "" ]]; then
|
||||||
|
DATE_f="#874c80"
|
||||||
|
fi
|
||||||
|
if [[ $TIME_b == "" ]]; then
|
||||||
|
TIME_b="#e1bff2"
|
||||||
|
fi
|
||||||
|
if [[ $TIME_f == "" ]]; then
|
||||||
|
TIME_f="#844189"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# basic functions
|
||||||
|
|
||||||
|
#function takes 4 arguments, background, foreground, text and rank (for edge cases)
|
||||||
|
function create_segment(){
|
||||||
|
if [[ $4 -lt $RIGHTMOST_RANK ]]; then
|
||||||
|
local segment="%F{$1}$COMFYLINE_SEGSEP_REVERSE"
|
||||||
|
echo -n "$segment%K{$1}%F{$2} $3 "
|
||||||
|
elif [[ $4 -gt $LEFTMOST_RANK ]]; then
|
||||||
|
local segment="%K{$1}$COMFYLINE_SEGSEP "
|
||||||
|
echo -n "$segment%F{$2}$3%F{$1} "
|
||||||
|
elif [[ $4 -eq $RIGHTMOST_RANK ]]; then
|
||||||
|
if [[ $COMFYLINE_NO_START -eq 1 ]]; then
|
||||||
|
local segment="%F{$1}$COMFYLINE_SEGSEP_REVERSE"
|
||||||
|
echo -n "$segment%K{$1}%F{$2} $3"
|
||||||
|
else
|
||||||
|
local segment="%F{$1}$COMFYLINE_SEGSEP_REVERSE"
|
||||||
|
echo -n "$segment%K{$1}%F{$2} $3 %k%F{$1}$COMFYLINE_SEGSEP"
|
||||||
|
fi
|
||||||
|
elif [[ $4 -eq $LEFTMOST_RANK ]]; then
|
||||||
|
if [[ $COMFYLINE_NO_START -eq 1 ]]; then
|
||||||
|
local segment="%K{$1} "
|
||||||
|
echo -n "$segment%F{$2}$3%F{$1} "
|
||||||
|
else
|
||||||
|
local segment="%F{$1}$COMFYLINE_SEGSEP_REVERSE%K{$1} "
|
||||||
|
echo -n "$segment%F{$2}$3%F{$1} "
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
### explanation: creates segment seperator with new bg but fg as old bg.
|
||||||
|
### then prints contents in new fg and prepares for next fg as current bg
|
||||||
|
|
||||||
|
# segment functions
|
||||||
|
function retval(){
|
||||||
|
if [[ $COMFYLINE_RETVAL_NUMBER -eq 2 ]]; then
|
||||||
|
symbol="%(?..✘ %?)"
|
||||||
|
elif [[ $COMFYLINE_RETVAL_NUMBER -eq 1 ]]; then
|
||||||
|
symbol="%?"
|
||||||
|
else
|
||||||
|
symbol="%(?..✘)"
|
||||||
|
fi
|
||||||
|
create_segment $RETVAL_b $RETVAL_f $symbol $RETVAL_RANK
|
||||||
|
}
|
||||||
|
|
||||||
|
function hostname(){
|
||||||
|
if [[ $COMFYLINE_FULL_HOSTNAME -eq 1 ]]; then
|
||||||
|
create_segment $HOST_b $HOST_f "%M" $HOST_RANK
|
||||||
|
else
|
||||||
|
create_segment $HOST_b $HOST_f "%m" $HOST_RANK
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function username(){
|
||||||
|
create_segment $USER_b $USER_f "%n" $USER_RANK
|
||||||
|
}
|
||||||
|
|
||||||
|
function dir(){
|
||||||
|
if [[ $COMFYLINE_FULL_DIR -eq 1 ]]; then
|
||||||
|
symbol="%d"
|
||||||
|
else
|
||||||
|
symbol="%~"
|
||||||
|
fi
|
||||||
|
create_segment $DIR_b $DIR_f $symbol $DIR_RANK
|
||||||
|
}
|
||||||
|
|
||||||
|
# variables to set git_prompt info and status
|
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX=" \ue0a0 "
|
||||||
|
ZSH_THEME_GIT_PROMPT_SUFFIX=""
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIRTY=""
|
||||||
|
ZSH_THEME_GIT_PROMPT_CLEAN=""
|
||||||
|
ZSH_THEME_GIT_PROMPT_ADDED=" ✚"
|
||||||
|
ZSH_THEME_GIT_PROMPT_MODIFIED=" ±"
|
||||||
|
ZSH_THEME_GIT_PROMPT_DELETED=" \u2796"
|
||||||
|
ZSH_THEME_GIT_PROMPT_UNTRACKED=" !"
|
||||||
|
ZSH_THEME_GIT_PROMPT_RENAMED=" \u21b7"
|
||||||
|
ZSH_THEME_GIT_PROMPT_UNMERGED=" \u21e1"
|
||||||
|
ZSH_THEME_GIT_PROMPT_AHEAD=" \u21c5"
|
||||||
|
ZSH_THEME_GIT_PROMPT_BEHIND=" \u21b1"
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIVERGED=" \u21b0"
|
||||||
|
|
||||||
|
function gitrepo(){
|
||||||
|
if [ "$(git rev-parse --is-inside-work-tree 2>/dev/null)" = "true" ]; then
|
||||||
|
if [[ $(git status --porcelain) == "" ]]; then
|
||||||
|
if [[ $(command -v git_prompt_info 2> /dev/null) ]]; then
|
||||||
|
create_segment $GIT_CLEAN_b $GIT_CLEAN_f "$(git_prompt_info)$(git_prompt_status)" $GIT_RANK
|
||||||
|
else
|
||||||
|
create_segment $GIT_CLEAN_b $GIT_CLEAN_f "$ZSH_THEME_GIT_PROMPT_PREFIX$(git rev-parse --abbrev-ref HEAD)" $GIT_RANK
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [[ $(command -v git_prompt_info 2> /dev/null) ]]; then
|
||||||
|
create_segment $GIT_b $GIT_f "$(git_prompt_info)$(git_prompt_status)" $GIT_RANK
|
||||||
|
else
|
||||||
|
create_segment $GIT_b $GIT_f "$ZSH_THEME_GIT_PROMPT_PREFIX$(git rev-parse --abbrev-ref HEAD)" $GIT_RANK
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function venv(){
|
||||||
|
if [ -n "$VIRTUAL_ENV" ]; then
|
||||||
|
create_segment $VENV_b $VENV_f ${VIRTUAL_ENV:t:gs/%/%%} $VENV_RANK
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# battery function
|
||||||
|
|
||||||
|
# variables
|
||||||
|
|
||||||
|
if [[ $COMFYLINE_BATTERY_LOW == "" ]]; then
|
||||||
|
COMFYLINE_BATTERY_LOW=15
|
||||||
|
fi
|
||||||
|
if [[ $COMFYLINE_BATTERY_HIGH == "" ]]; then
|
||||||
|
COMFYLINE_BATTERY_HIGH=90
|
||||||
|
fi
|
||||||
|
if [[ $COMFYLINE_CHARGING_ICON == "" ]]; then
|
||||||
|
COMFYLINE_CHARGING_ICON="⚡️"
|
||||||
|
fi
|
||||||
|
if [[ $COMFYLINE_HIGHCHARGE_ICON == "" ]]; then
|
||||||
|
COMFYLINE_HIGHCHARGE_ICON=""
|
||||||
|
fi
|
||||||
|
if [[ $COMFYLINE_MIDCHARGE_ICON == "" ]]; then
|
||||||
|
COMFYLINE_MIDCHARGE_ICON=""
|
||||||
|
fi
|
||||||
|
if [[ $COMFYLINE_LOWCHARGE_ICON == "" ]]; then
|
||||||
|
COMFYLINE_LOWCHARGE_ICON=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
function calcbat(){
|
||||||
|
BAT=""
|
||||||
|
if [[ $(uname) == "Linux" ]]; then
|
||||||
|
number=$(ls /sys/class/power_supply/ | grep 'BAT' | wc -l )
|
||||||
|
if [[ $number -eq 0 ]]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
for ((i=0;i<$number;i++));do
|
||||||
|
capacity=$(cat /sys/class/power_supply/BAT${i}/capacity)
|
||||||
|
stats=$(cat /sys/class/power_supply/BAT${i}/status)
|
||||||
|
if [[ $stats == "Charging" ]]; then
|
||||||
|
stats="$COMFYLINE_CHARGING_ICON"
|
||||||
|
elif [[ $stats == "Discharging" ]]; then
|
||||||
|
if [ $capacity -gt $COMFYLINE_BATTERY_HIGH ]; then
|
||||||
|
stats="$COMFYLINE_HIGHCHARGE_ICON"
|
||||||
|
elif [ $capacity -lt $COMFYLINE_BATTERY_LOW ]; then
|
||||||
|
stats="$COMFYLINE_LOWCHARGE_ICON"
|
||||||
|
else
|
||||||
|
stats="$COMFYLINE_MIDCHARGE_ICON"
|
||||||
|
fi
|
||||||
|
elif [[ $stats == "Not charging" ]]; then
|
||||||
|
stats="$COMFYLINE_HIGHCHARGE_ICON"
|
||||||
|
fi
|
||||||
|
BAT="$BAT$capacity%% $stats "
|
||||||
|
done
|
||||||
|
|
||||||
|
elif [[ $(uname) == "Darwin" ]]; then
|
||||||
|
battery_details = $(pmset -g batt)
|
||||||
|
charged=$(echo "$battery_details" | grep -w 'charged')
|
||||||
|
charging=$(echo "$battery_details" | grep -w 'AC Power')
|
||||||
|
discharging=$(echo "$battery_details" | grep -w 'Battery Power')
|
||||||
|
capacity=$(echo "$battery_details" | grep -o "([0-9]*)"%)
|
||||||
|
|
||||||
|
if [ -n "$charging" ]; then
|
||||||
|
stats="$COMFYLINE_CHARGING_ICON"
|
||||||
|
elif [[ -n "$discharging" ]]; then
|
||||||
|
if [ $capacity -gt $COMFYLINE_BATTERY_HIGH ]; then
|
||||||
|
stats="$COMFYLINE_HIGHCHARGE_ICON"
|
||||||
|
elif [ $capacity -lt $COMFYLINE_BATTERY_LOW ]; then
|
||||||
|
stats="$COMFYLINE_LOWCHARGE_ICON"
|
||||||
|
else
|
||||||
|
stats="$COMFYLINE_MIDCHARGE_ICON"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
BAT="$capacity%% $stats"
|
||||||
|
|
||||||
|
elif [[ $(uname) == "FreeBSD" || $(uname) == "OpenBSD" ]]; then
|
||||||
|
capacity=$(apm -l)
|
||||||
|
stats=$(apm -b)
|
||||||
|
if [ $stats -eq 3 ]; then
|
||||||
|
stats="$COMFYLINE_CHARGING_ICON"
|
||||||
|
else
|
||||||
|
if [[ $capacity -gt $COMFYLINE_BATTERY_HIGH ]]; then
|
||||||
|
stats="$COMFYLINE_HIGHCHARGE_ICON"
|
||||||
|
elif [[ $capacity -lt $COMFYLINE_BATTERY_LOW ]]; then
|
||||||
|
stats="$COMFYLINE_LOWCHARGE_ICON"
|
||||||
|
else
|
||||||
|
stats="$COMFYLINE_MIDCHARGE_ICON"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
BAT="$capacity%% $stats"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# function to call battery calculation
|
||||||
|
function currbat(){
|
||||||
|
if [[ $COMFYLINE_BATTERY_PLUGIN -eq 1 ]]; then
|
||||||
|
create_segment $BAT_b $BAT_f "$(battery_pct_prompt)" $BAT_RANK
|
||||||
|
else
|
||||||
|
calcbat
|
||||||
|
create_segment $BAT_b $BAT_f "$BAT" $BAT_RANK
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function currdate(){
|
||||||
|
info="%D{$COMFYLINE_DATE_FORMAT}"
|
||||||
|
create_segment $DATE_b $DATE_f $info $DATE_RANK
|
||||||
|
}
|
||||||
|
|
||||||
|
function currtime(){
|
||||||
|
info="%D{$COMFYLINE_TIME_FORMAT}"
|
||||||
|
create_segment $TIME_b $TIME_f $info $TIME_RANK
|
||||||
|
}
|
||||||
|
|
||||||
|
function endleft(){
|
||||||
|
echo -n "%k$COMFYLINE_SEGSEP%f"
|
||||||
|
}
|
||||||
|
|
||||||
|
# parse variables
|
||||||
|
|
||||||
|
segments=("retval" "hostname" "username" "dir" "gitrepo" "venv" "currbat" "currtime" "currdate")
|
||||||
|
segment_ranks=($RETVAL_RANK $HOST_RANK $USER_RANK $DIR_RANK $GIT_RANK $VENV_RANK $BAT_RANK $TIME_RANK $DATE_RANK)
|
||||||
|
|
||||||
|
# split into left and right
|
||||||
|
|
||||||
|
left_prompt=()
|
||||||
|
right_prompt=()
|
||||||
|
left_ranks=()
|
||||||
|
right_ranks=()
|
||||||
|
for ((i=1;i<=${#segments[@]};i++)); do
|
||||||
|
if [[ segment_ranks[$i] -gt 0 ]]; then
|
||||||
|
left_prompt+=(${segments[$i]})
|
||||||
|
left_ranks+=(${segment_ranks[$i]})
|
||||||
|
elif [[ segment_ranks[$i] -lt 0 ]]; then
|
||||||
|
right_prompt+=(${segments[$i]})
|
||||||
|
right_ranks+=(${segment_ranks[$i]#-})
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# sort the prompts according to ranks and find the leftmost and rightmost
|
||||||
|
# I use the traditional iterative method to find max/min and using count-sort for sorting
|
||||||
|
|
||||||
|
LEFTMOST_RANK=100
|
||||||
|
declare -A sorted_left
|
||||||
|
for ((i=1;i<=${#left_prompt[@]};i++)); do
|
||||||
|
if [[ $left_ranks[$i] -lt $LEFTMOST_RANK ]]; then LEFTMOST_RANK=$left_ranks[$i] fi
|
||||||
|
sorted_left[$left_ranks[$i]]="$left_prompt[$i]"
|
||||||
|
done
|
||||||
|
|
||||||
|
RIGHTMOST_RANK=100
|
||||||
|
declare -A sorted_right
|
||||||
|
for ((i=1;i<=${#right_prompt[@]};i++)); do
|
||||||
|
if [[ $right_ranks[$i] -lt $RIGHTMOST_RANK ]]; then RIGHTMOST_RANK=$right_ranks[$i] fi
|
||||||
|
sorted_right[$right_ranks[$i]]="$right_prompt[$i]"
|
||||||
|
done
|
||||||
|
((RIGHTMOST_RANK*=-1))
|
||||||
|
|
||||||
|
|
||||||
|
# finally make_prompt which makes prompts
|
||||||
|
make_left_prompt(){
|
||||||
|
for ((j = 1; j <= ${#left_prompt[@]}; j++)); do
|
||||||
|
type $sorted_left[$j] &>/dev/null && $sorted_left[$j]
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
make_right_prompt(){
|
||||||
|
for ((j = ${#right_prompt[@]}; j>0; j--)); do
|
||||||
|
type $sorted_right[$j] &>/dev/null && $sorted_right[$j]
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
export PROMPT='%{%f%b%k%}$(make_left_prompt)$(endleft) '
|
||||||
|
export RPROMPT=' %{%f%b%k%}$(make_right_prompt)' # spaces left so that hiding is triggered
|
||||||
|
|
||||||
|
if [[ $COMFYLINE_NEXT_LINE_CHAR == "" ]]; then
|
||||||
|
COMFYLINE_NEXT_LINE_CHAR='➟'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $COMFYLINE_NEXT_LINE_CHAR_COLOR == "" ]]; then
|
||||||
|
COMFYLINE_NEXT_LINE_CHAR_COLOR="grey"
|
||||||
|
fi
|
||||||
|
|
||||||
|
next_line_maker(){
|
||||||
|
echo -n "%F{$COMFYLINE_NEXT_LINE_CHAR_COLOR}$COMFYLINE_NEXT_LINE_CHAR %f"
|
||||||
|
}
|
||||||
|
|
||||||
|
# setting up typing area
|
||||||
|
if [[ COMFYLINE_START_NEXT_LINE -eq 2 ]]; then
|
||||||
|
|
||||||
|
PROMPT=$PROMPT'
|
||||||
|
'$(next_line_maker)
|
||||||
|
|
||||||
|
|
||||||
|
elif [[ COMFYLINE_NO_GAP_LINE -eq 1 ]]; then
|
||||||
|
else
|
||||||
|
|
||||||
|
PROMPT='
|
||||||
|
'$PROMPT
|
||||||
|
|
||||||
|
fi
|
||||||
7
assets/add_zsh_theme/emoji.zsh-theme
Normal file
7
assets/add_zsh_theme/emoji.zsh-theme
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
PROMPT=" %(?:%{$fg_bold[green]%}➜:%{$fg_bold[red]%}➜)"
|
||||||
|
PROMPT+=' %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)'
|
||||||
|
|
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}(%{$fg[red]%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✏️ "
|
||||||
|
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%}) ✅"
|
||||||
60
assets/add_zsh_theme/fishbone++.zsh-theme
Normal file
60
assets/add_zsh_theme/fishbone++.zsh-theme
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
|
||||||
|
local username="%n"
|
||||||
|
local path_prefix="%{$fg[yellow]%}["
|
||||||
|
local path_string="%{$fg[blue]%}%~"
|
||||||
|
local path_postfix="%{$fg[yellow]%}]"
|
||||||
|
local prompt_string="❯❯ "
|
||||||
|
local local_time="%T"
|
||||||
|
local newline=$'\n'
|
||||||
|
local line_mode=$'\n'
|
||||||
|
|
||||||
|
# customize user settings
|
||||||
|
# prompt symbol
|
||||||
|
if [ ! -z "$FISHBONEPP_PROMPT" ]; then
|
||||||
|
prompt_string="$FISHBONEPP_PROMPT"
|
||||||
|
fi
|
||||||
|
# username
|
||||||
|
if [ ! -z "$FISHBONEPP_USER" ]; then
|
||||||
|
username="$FISHBONEPP_USER"
|
||||||
|
fi
|
||||||
|
# time mode
|
||||||
|
if [ "$FISHBONEPP_TIME" = "12HR" ]; then
|
||||||
|
local_time="%t"
|
||||||
|
elif [ "$FISHBONEPP_TIME" = "FULL" ]; then
|
||||||
|
local_time="%*"
|
||||||
|
else
|
||||||
|
local_time="%T"
|
||||||
|
fi
|
||||||
|
# new line on start
|
||||||
|
if [ "$FISHBONEPP_NEWLINE" = false ]; then
|
||||||
|
newline=''
|
||||||
|
fi
|
||||||
|
# line mode
|
||||||
|
if [ "$FISHBONEPP_LINE_MODE" = "singleline" ]; then
|
||||||
|
line_mode=''
|
||||||
|
fi
|
||||||
|
|
||||||
|
local host_name="%{$fg[blue]%}${username}"
|
||||||
|
local time_string="%{$fg[blue]%}${local_time}"
|
||||||
|
# Make prompt_string red if the previous command failed.
|
||||||
|
local return_status="%(?:%{$fg[cyan]%}$prompt_string:%{$fg[red]%}$prompt_string%}"
|
||||||
|
|
||||||
|
|
||||||
|
# set the git_prompt_info text
|
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[blue](%{$reset_color%}%{$fg[yellow]%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%{$fg[blue])%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIRTY="⚡"
|
||||||
|
ZSH_THEME_GIT_PROMPT_CLEAN=""
|
||||||
|
|
||||||
|
PROMPT='${newline}\
|
||||||
|
${host_name}${hosr}%{$reset_color%}@${time_string} ${line_mode}\
|
||||||
|
${path_prefix}${path_string}${path_postfix}$(git_prompt_info)$(git_prompt_status) \
|
||||||
|
${return_status} %{$reset_color%}'
|
||||||
|
|
||||||
|
|
||||||
|
ZSH_THEME_GIT_PROMPT_ADDED="➕"
|
||||||
|
ZSH_THEME_GIT_PROMPT_MODIFIED="✒️ "
|
||||||
|
ZSH_THEME_GIT_PROMPT_DELETED="➖"
|
||||||
|
ZSH_THEME_GIT_PROMPT_RENAMED="⁉️ "
|
||||||
|
ZSH_THEME_GIT_PROMPT_UNMERGED="🥺"
|
||||||
|
ZSH_THEME_GIT_PROMPT_UNTRACKED="🚝"
|
||||||
BIN
assets/fastfetch/arch.png
Normal file
BIN
assets/fastfetch/arch.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 71 KiB |
75
assets/fastfetch/config-compact.jsonc
Normal file
75
assets/fastfetch/config-compact.jsonc
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
|
||||||
|
"logo": {
|
||||||
|
"source": "~/.config/fastfetch/arch.png",
|
||||||
|
"type": "kitty-direct",
|
||||||
|
"height": 10,
|
||||||
|
"width": 20,
|
||||||
|
"padding": {
|
||||||
|
"top": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"separator": " -> "
|
||||||
|
},
|
||||||
|
"modules": [
|
||||||
|
"break",
|
||||||
|
{
|
||||||
|
"type": "title",
|
||||||
|
"keyWidth": 10,
|
||||||
|
"format": " {6}{7}{8}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom",
|
||||||
|
"format": " ─────────────────────────── "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "kernel",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "yellow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "wm",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "blue"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "yellow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "terminal",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "blue"
|
||||||
|
},
|
||||||
|
/*
|
||||||
|
{
|
||||||
|
"type": "packages",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "yellow"
|
||||||
|
},
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
"type": "memory",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "magenta",
|
||||||
|
// format: used / total
|
||||||
|
"format": "{1} / {2}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "uptime",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom",
|
||||||
|
"format": " ─────────────────────────── "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom",
|
||||||
|
"format": " \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m \u001b[90m "
|
||||||
|
},
|
||||||
|
"break",
|
||||||
|
]
|
||||||
|
}
|
||||||
73
assets/fastfetch/config-pokemon.jsonc
Normal file
73
assets/fastfetch/config-pokemon.jsonc
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
|
||||||
|
"logo": {
|
||||||
|
"height": 5,
|
||||||
|
"width": 10,
|
||||||
|
"padding": {
|
||||||
|
"top": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"separator": " -> "
|
||||||
|
},
|
||||||
|
"modules": [
|
||||||
|
"break",
|
||||||
|
{
|
||||||
|
"type": "title",
|
||||||
|
"keyWidth": 10,
|
||||||
|
"format": " {6}{7}{8}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom",
|
||||||
|
"format": " ─────────────────────────── "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "kernel",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "yellow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "wm",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "blue"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "yellow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "terminal",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "blue"
|
||||||
|
},
|
||||||
|
/*
|
||||||
|
{
|
||||||
|
"type": "packages",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "yellow"
|
||||||
|
},
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
"type": "memory",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "magenta",
|
||||||
|
// format: used / total
|
||||||
|
"format": "{1} / {2}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "uptime",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom",
|
||||||
|
"format": " ─────────────────────────── "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom",
|
||||||
|
"format": " \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m \u001b[90m "
|
||||||
|
},
|
||||||
|
"break",
|
||||||
|
]
|
||||||
|
}
|
||||||
112
assets/fastfetch/config-v2.jsonc
Normal file
112
assets/fastfetch/config-v2.jsonc
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
|
||||||
|
"logo": {
|
||||||
|
//"source": "~/.config/fastfetch/nixos.png",
|
||||||
|
//"type": "kitty-direct",
|
||||||
|
"height": 15,
|
||||||
|
"width": 30,
|
||||||
|
"padding": {
|
||||||
|
"top": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"separator": " ➜ "
|
||||||
|
},
|
||||||
|
|
||||||
|
"modules": [
|
||||||
|
"break",
|
||||||
|
{
|
||||||
|
"type": "os",
|
||||||
|
"key": " DISTRO",
|
||||||
|
"keyColor": "31",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "kernel",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "31",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "packages",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "31",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"key": " └ ",
|
||||||
|
"keyColor": "31",
|
||||||
|
},
|
||||||
|
"break",
|
||||||
|
{
|
||||||
|
"type": "wm",
|
||||||
|
"key": " DE/WM",
|
||||||
|
"keyColor": "32",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "wmtheme",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "32",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "icons",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "32",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "cursor",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "32",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "terminal",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "32",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "terminalfont",
|
||||||
|
"key": " └ ",
|
||||||
|
"keyColor": "32",
|
||||||
|
},
|
||||||
|
"break",
|
||||||
|
{
|
||||||
|
"type": "host",
|
||||||
|
"format": "{2}",
|
||||||
|
"key": " SYSTEM",
|
||||||
|
"keyColor": "33",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "cpu",
|
||||||
|
"format": "{1} ({3}) @ {7} GHz",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "33",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "gpu",
|
||||||
|
"format": "{2}",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "33",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "memory",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "33",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "swap",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "33",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "disk",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "33",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "display",
|
||||||
|
"key": " └ ",
|
||||||
|
"compactType": "original-with-refresh-rate",
|
||||||
|
"keyColor": "33",
|
||||||
|
},
|
||||||
|
"break",
|
||||||
|
"break",
|
||||||
|
]
|
||||||
|
}
|
||||||
128
assets/fastfetch/config.jsonc
Normal file
128
assets/fastfetch/config.jsonc
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
|
||||||
|
{
|
||||||
|
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
|
||||||
|
"logo": {
|
||||||
|
"padding": {
|
||||||
|
"top": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"separator": " "
|
||||||
|
},
|
||||||
|
"modules": [
|
||||||
|
"break",
|
||||||
|
{
|
||||||
|
"type": "os",
|
||||||
|
"key": " DISTRO",
|
||||||
|
"keyColor": "yellow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "kernel",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "yellow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "packages",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "yellow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"key": "│ └",
|
||||||
|
"keyColor": "yellow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "wm",
|
||||||
|
"key": " DE/WM",
|
||||||
|
"keyColor": "blue"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "wmtheme",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "blue"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "icons",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "blue"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "cursor",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "blue",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "terminalfont",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "blue",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "terminal",
|
||||||
|
"key": "│ └",
|
||||||
|
"keyColor": "blue"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "host",
|
||||||
|
"key": " SYSTEM",
|
||||||
|
"keyColor": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "cpu",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "gpu",
|
||||||
|
"key": "│ ├",
|
||||||
|
"format": "{2}",
|
||||||
|
"keyColor": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "display",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "green",
|
||||||
|
"compactType": "original-with-refresh-rate"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "memory",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "swap",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "uptime",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "display",
|
||||||
|
"key": "│ └",
|
||||||
|
"keyColor": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "sound",
|
||||||
|
"key": " AUDIO",
|
||||||
|
"format": "{2}",
|
||||||
|
"keyColor": "magenta"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "player",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "magenta"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "media",
|
||||||
|
"key": "│ └",
|
||||||
|
"keyColor": "magenta"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom",
|
||||||
|
"format": "\u001b[90m \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m \u001b[38m \u001b[39m \u001b[39m \u001b[38m \u001b[37m \u001b[36m \u001b[35m \u001b[34m \u001b[33m \u001b[32m \u001b[31m \u001b[90m "
|
||||||
|
},
|
||||||
|
"break",
|
||||||
|
]
|
||||||
|
}
|
||||||
17
assets/gtk-3.0/settings.ini
Normal file
17
assets/gtk-3.0/settings.ini
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
[Settings]
|
||||||
|
gtk-theme-name=Andromeda-dark
|
||||||
|
gtk-icon-theme-name=Flat-Remix-Blue-Dark
|
||||||
|
gtk-font-name=Fira Code Semi-Bold 14
|
||||||
|
gtk-cursor-theme-name=Bibata-Modern-Ice
|
||||||
|
gtk-cursor-theme-size=24
|
||||||
|
gtk-toolbar-style=GTK_TOOLBAR_ICONS
|
||||||
|
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
||||||
|
gtk-button-images=1
|
||||||
|
gtk-menu-images=1
|
||||||
|
gtk-enable-event-sounds=1
|
||||||
|
gtk-enable-input-feedback-sounds=0
|
||||||
|
gtk-xft-antialias=1
|
||||||
|
gtk-xft-hinting=1
|
||||||
|
gtk-xft-hintstyle=hintslight
|
||||||
|
gtk-xft-rgba=rgb
|
||||||
|
gtk-application-prefer-dark-theme=1
|
||||||
7
assets/hyprland-install/README
Normal file
7
assets/hyprland-install/README
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Arch-Hyprland - Sharing a scripts to install hyprland git or non-git versions
|
||||||
|
|
||||||
|
Basically created this script so I can easily switch to git and non-git version of hyprland on Arch Linux
|
||||||
|
|
||||||
|
|
||||||
|
chmod +x actions.sh
|
||||||
|
./actions.sh
|
||||||
63
assets/hyprland-install/actions.sh
Executable file
63
assets/hyprland-install/actions.sh
Executable file
@@ -0,0 +1,63 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
|
||||||
|
|
||||||
|
# Set some colors for output messages
|
||||||
|
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||||
|
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||||
|
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||||
|
INFO="$(tput setaf 4)[INFO]$(tput sgr0)"
|
||||||
|
WARN="$(tput setaf 1)[WARN]$(tput sgr0)"
|
||||||
|
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||||
|
MAGENTA=$(tput setaf 5)
|
||||||
|
WARNING=$(tput setaf 1)
|
||||||
|
YELLOW=$(tput setaf 3)
|
||||||
|
BLUE=$(tput setaf 4)
|
||||||
|
RESET=$(tput sgr0)
|
||||||
|
|
||||||
|
|
||||||
|
# Make all scripts in the scripts directory executable
|
||||||
|
echo -e "${INFO} Making all files in the ${BLUE}scripts${RESET} directory executable..."
|
||||||
|
chmod +x ./scripts/*
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
echo -e "${BLUE} Please choose an option:${RESET}"
|
||||||
|
echo -e "${YELLOW} -- 1 - Install non-git Hyprland version${RESET}"
|
||||||
|
echo -e "${YELLOW} -- 2 - Install git Hyprland version${RESET}"
|
||||||
|
echo -e "${YELLOW} -- 3 - Update Hyprland-git packages${RESET}"
|
||||||
|
echo -e "${MAGENTA} -- 4 - Quit${RESET}"
|
||||||
|
|
||||||
|
read -p "${CAT} Enter your choice [1, 2, or 3]: " choice
|
||||||
|
|
||||||
|
case $choice in
|
||||||
|
1)
|
||||||
|
printf "\n${OK} You chose ${BLUE}non-git version of Hyprland${RESET}....... executing...\n"
|
||||||
|
echo -e "${YELLOW} Uninstalling some hyprland packages first...${RESET}"
|
||||||
|
./scripts/uninstall.sh &&
|
||||||
|
./scripts/install-hyprland.sh
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
printf "\n${OK} You chose ${BLUE}git version of Hyprland${RESET}....... executing...\n"
|
||||||
|
echo -e "${YELLOW} Uninstalling some hyprland packages....${RESET}"
|
||||||
|
./scripts/uninstall.sh &&
|
||||||
|
./scripts/install-hyprland-git.sh
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
3)
|
||||||
|
printf "\n${OK} You chose ${BLUE} to update Hyprland-git packages${RESET}....... executing...\n"
|
||||||
|
./scripts/install-hyprland-git.sh
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
4)
|
||||||
|
echo -e "${MAGENTA} You have cancel it. Good Bye!!...${RESET}"
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo -e "\n${WARNING} There are only 4 Choices!!!! 1 2 3 or 4. Enter 1, 2, 3, or 4 only.${RESET}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
done
|
||||||
87
assets/hyprland-install/scripts/install-hyprland-git.sh
Executable file
87
assets/hyprland-install/scripts/install-hyprland-git.sh
Executable file
@@ -0,0 +1,87 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
|
||||||
|
|
||||||
|
# Set some colors for output messages
|
||||||
|
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||||
|
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||||
|
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||||
|
INFO="$(tput setaf 4)[INFO]$(tput sgr0)"
|
||||||
|
WARN="$(tput setaf 1)[WARN]$(tput sgr0)"
|
||||||
|
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||||
|
MAGENTA="$(tput setaf 5)"
|
||||||
|
ORANGE="$(tput setaf 214)"
|
||||||
|
WARNING="$(tput setaf 1)"
|
||||||
|
YELLOW="$(tput setaf 3)"
|
||||||
|
BLUE="$(tput setaf 4)"
|
||||||
|
RESET="$(tput sgr0)"
|
||||||
|
|
||||||
|
ISAUR=$(command -v yay || command -v paru)
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
|
# List of packages to install / update
|
||||||
|
packages=(
|
||||||
|
"hyprutils-git"
|
||||||
|
"hyprcursor-git"
|
||||||
|
"hyprwayland-scanner-git"
|
||||||
|
"aquamarine-git"
|
||||||
|
"hyprgraphics-git"
|
||||||
|
"hyprlang-git"
|
||||||
|
"hyprland-protocols-git"
|
||||||
|
"hyprland-qt-support-git"
|
||||||
|
"hyprland-qtutils-git"
|
||||||
|
"hyprland-git"
|
||||||
|
"hyprlock-git"
|
||||||
|
"hypridle-git"
|
||||||
|
"xdg-desktop-portal-hyprland-git"
|
||||||
|
"hyprpolkitagent-git"
|
||||||
|
"pyprland"
|
||||||
|
)
|
||||||
|
|
||||||
|
# rotating stars progress
|
||||||
|
show_progress() {
|
||||||
|
spin='-'
|
||||||
|
while ps | grep $1 &> /dev/null; do
|
||||||
|
echo -ne "\rInstalling ${ORANGE}$2${RESET} ... Kindly wait! $spin"
|
||||||
|
sleep 0.3
|
||||||
|
case $spin in
|
||||||
|
'-') spin='\';;
|
||||||
|
'\') spin='|';;
|
||||||
|
'|') spin='/';;
|
||||||
|
'/') spin='-';;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
echo -en "\rInstalling ${ORANGE}$2${RESET} ... Kindly wait! .... Done!"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Clearing cache
|
||||||
|
echo -n "${CAT} Recommend (choose y to all) to clear ${MAGENTA}pacman and aur helper${RESET} cache ..."
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
sudo pacman -Scc &&
|
||||||
|
$ISAUR -Scc
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
printf "${NOTE} Installing ${BLUE}git hyprland version${RESET}....."
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
|
# Installing packages
|
||||||
|
for package in "${packages[@]}"; do
|
||||||
|
$ISAUR -S --noconfirm "$package" &>/dev/null &
|
||||||
|
pid=$!
|
||||||
|
|
||||||
|
show_progress $pid $package
|
||||||
|
|
||||||
|
wait $pid
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo -e "\n${OK} ${ORANGE}$package${RESET} successfully installed."
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
else
|
||||||
|
echo -e "\n${ERROR} Failed to install ${MAGENTA}$package${RESET}"
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
printf "${OK} Done!! Now you NEED to ${YELLOW}EXIT${RESET} Hyprland and Re-Login! Enjoy!!!!"
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
81
assets/hyprland-install/scripts/install-hyprland.sh
Executable file
81
assets/hyprland-install/scripts/install-hyprland.sh
Executable file
@@ -0,0 +1,81 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
|
||||||
|
|
||||||
|
# Set some colors for output messages
|
||||||
|
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||||
|
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||||
|
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||||
|
INFO="$(tput setaf 4)[INFO]$(tput sgr0)"
|
||||||
|
WARN="$(tput setaf 1)[WARN]$(tput sgr0)"
|
||||||
|
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||||
|
MAGENTA="$(tput setaf 5)"
|
||||||
|
ORANGE="$(tput setaf 214)"
|
||||||
|
WARNING="$(tput setaf 1)"
|
||||||
|
YELLOW="$(tput setaf 3)"
|
||||||
|
BLUE="$(tput setaf 4)"
|
||||||
|
RESET="$(tput sgr0)"
|
||||||
|
|
||||||
|
ISAUR=$(command -v yay || command -v paru)
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
|
# List of packages to install / update
|
||||||
|
packages=(
|
||||||
|
"aquamarine"
|
||||||
|
"hyprutils"
|
||||||
|
"hyprcursor"
|
||||||
|
"hyprwayland-scanner"
|
||||||
|
"hyprgraphics"
|
||||||
|
"hyprlang"
|
||||||
|
"hyprland-protocols"
|
||||||
|
"hyprland-qt-support"
|
||||||
|
"hyprland-qtutils"
|
||||||
|
"hyprland"
|
||||||
|
"hyprlock"
|
||||||
|
"hypridle"
|
||||||
|
"xdg-desktop-portal-hyprland"
|
||||||
|
"hyprpolkitagent"
|
||||||
|
"pyprland"
|
||||||
|
)
|
||||||
|
|
||||||
|
# rotating stars progress
|
||||||
|
show_progress() {
|
||||||
|
spin='-'
|
||||||
|
while ps | grep $1 &> /dev/null; do
|
||||||
|
echo -ne "\rInstalling ${ORANGE}$2${RESET} ... Kindly wait! $spin"
|
||||||
|
sleep 0.3
|
||||||
|
case $spin in
|
||||||
|
'-') spin='\';;
|
||||||
|
'\') spin='|';;
|
||||||
|
'|') spin='/';;
|
||||||
|
'/') spin='-';;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
echo -en "\rInstalling ${ORANGE}$2${RESET} ... Kindly wait! .... Done!"
|
||||||
|
}
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
printf "${NOTE} Installing ${BLUE}non-git hyprland version${RESET}....."
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
|
# Installing packages
|
||||||
|
for package in "${packages[@]}"; do
|
||||||
|
$ISAUR -S --noconfirm "$package" &>/dev/null &
|
||||||
|
pid=$!
|
||||||
|
|
||||||
|
show_progress $pid $package
|
||||||
|
|
||||||
|
wait $pid
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo -e "\n${OK} ${ORANGE}$package${RESET} successfully installed."
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
else
|
||||||
|
echo -e "\n${ERROR} Failed to install ${MAGENTA}$package${RESET}"
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
printf "${OK} Done!! Now you NEED to ${YELLOW}EXIT${RESET} Hyprland and Re-Login! Enjoy!!!!"
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
91
assets/hyprland-install/scripts/uninstall.sh
Executable file
91
assets/hyprland-install/scripts/uninstall.sh
Executable file
@@ -0,0 +1,91 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
|
||||||
|
|
||||||
|
# uninstalling hyprland packages
|
||||||
|
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||||
|
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||||
|
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||||
|
INFO="$(tput setaf 4)[INFO]$(tput sgr0)"
|
||||||
|
WARN="$(tput setaf 1)[WARN]$(tput sgr0)"
|
||||||
|
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||||
|
MAGENTA="$(tput setaf 5)"
|
||||||
|
WARNING="$(tput setaf 1)"
|
||||||
|
YELLOW="$(tput setaf 3)"
|
||||||
|
BLUE="$(tput setaf 4)"
|
||||||
|
RESET="$(tput sgr0)"
|
||||||
|
|
||||||
|
|
||||||
|
# List of packages to uninstall (including git versions)
|
||||||
|
packages=(
|
||||||
|
"aquamarine"
|
||||||
|
"aquamarine-git"
|
||||||
|
"hyprutils"
|
||||||
|
"hyprutils-git"
|
||||||
|
"hyprcursor"
|
||||||
|
"hyprcursor-git"
|
||||||
|
"hyprwayland-scanner"
|
||||||
|
"hyprwayland-scanner-git"
|
||||||
|
"hyprgraphics"
|
||||||
|
"hyprgraphics-git"
|
||||||
|
"hyprlang"
|
||||||
|
"hyprlang-git"
|
||||||
|
"hyprland-protocols"
|
||||||
|
"hyprland-protocols-git"
|
||||||
|
"hyprland-qt-support"
|
||||||
|
"hyprland-qt-support-git"
|
||||||
|
"hyprland-qtutils"
|
||||||
|
"hyprland-qtutils-git"
|
||||||
|
"hyprland"
|
||||||
|
"hyprland-git"
|
||||||
|
"hyprlock"
|
||||||
|
"hyprlock-git"
|
||||||
|
"hypridle"
|
||||||
|
"hypridle-git"
|
||||||
|
"xdg-desktop-portal-hyprland"
|
||||||
|
"xdg-desktop-portal-hyprland-git"
|
||||||
|
"hyprpolkitagent"
|
||||||
|
"hyprpolkitagent-git"
|
||||||
|
"pyprland"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Function for uninstall packages
|
||||||
|
uninstall_package() {
|
||||||
|
local pkg="$1"
|
||||||
|
|
||||||
|
if pacman -Qi "$pkg" &>> /dev/null ; then
|
||||||
|
echo -e "${NOTE} Uninstalling $pkg ..."
|
||||||
|
sudo pacman -Rnsdd --noconfirm "$pkg" | grep -v "error: target not found"
|
||||||
|
|
||||||
|
if ! pacman -Qi "$pkg" &>> /dev/null ; then
|
||||||
|
echo -e "\e[1A\e[K${OK} $pkg was uninstalled."
|
||||||
|
else
|
||||||
|
echo -e "\e[1A\e[K${ERROR} $pkg failed to uninstall"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo -e "${NOTE} $pkg is not installed, skipping uninstallation."
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
printf "\n%s - Removing Hyprland Packages including -git versions \n" "${NOTE}"
|
||||||
|
|
||||||
|
# Track failures but continue with next packages
|
||||||
|
overall_failed=0
|
||||||
|
for PKG in "${packages[@]}"; do
|
||||||
|
uninstall_package "$PKG"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
|
||||||
|
overall_failed=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Remove specific configuration file since on my experience, it conflicts.
|
||||||
|
# Dont worry, it will be reinstalled by either xdph non-git or git version
|
||||||
|
sudo rm -rf "/usr/share/xdg-desktop-portal/hyprland-portals.conf"
|
||||||
|
|
||||||
|
if [ $overall_failed -eq 0 ]; then
|
||||||
|
echo -e "${OK} All specified hyprland packages have been uninstalled."
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Name=Hyprland
|
|
||||||
Comment=An intelligent dynamic tiling Wayland compositor
|
|
||||||
Exec=Hyprland
|
|
||||||
Type=Application
|
|
||||||
BIN
assets/sddm.png
Normal file
BIN
assets/sddm.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1007 KiB |
@@ -1,9 +1,10 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# 💫 https://github.com/JaKooLit 💫 #
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
# base devel #
|
# base devel + archlinux-keyring #
|
||||||
|
|
||||||
base=(
|
base=(
|
||||||
base-devel
|
base-devel
|
||||||
|
archlinux-keyring
|
||||||
)
|
)
|
||||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||||
@@ -13,10 +14,10 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_base.log"
|
|||||||
|
|
||||||
|
|
||||||
# Installation of main components
|
# Installation of main components
|
||||||
printf "\n%s - Installing base-devel \n" "${NOTE}"
|
printf "\n%s - Installing ${SKY_BLUE}base-devel${RESET} \n" "${NOTE}"
|
||||||
|
|
||||||
for PKG1 in "${base[@]}"; do
|
for PKG1 in "${base[@]}"; do
|
||||||
install_package_pacman "$PKG1" | tee -a "$LOG"
|
install_package_pacman "$PKG1" "$LOG"
|
||||||
done
|
done
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
@@ -1,114 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# 💫 https://github.com/JaKooLit 💫 #
|
|
||||||
# Hyprland Packages #
|
|
||||||
|
|
||||||
# edit your packages desired here.
|
|
||||||
# WARNING! If you remove packages here, dotfiles may not work properly.
|
|
||||||
# and also, ensure that packages are present in AUR and official Arch Repo
|
|
||||||
|
|
||||||
# add packages wanted here
|
|
||||||
Extra=(
|
|
||||||
|
|
||||||
)
|
|
||||||
|
|
||||||
hypr_package=(
|
|
||||||
aylurs-gtk-shell
|
|
||||||
cliphist
|
|
||||||
curl
|
|
||||||
grim
|
|
||||||
gvfs
|
|
||||||
gvfs-mtp
|
|
||||||
hypridle
|
|
||||||
hyprlock
|
|
||||||
imagemagick
|
|
||||||
jq
|
|
||||||
kitty
|
|
||||||
kvantum
|
|
||||||
nano
|
|
||||||
network-manager-applet
|
|
||||||
pamixer
|
|
||||||
pavucontrol
|
|
||||||
pipewire-alsa
|
|
||||||
playerctl
|
|
||||||
polkit-gnome
|
|
||||||
python-requests
|
|
||||||
python-pyquery
|
|
||||||
pyprland
|
|
||||||
qt5ct
|
|
||||||
qt6ct
|
|
||||||
qt6-svg
|
|
||||||
rofi-wayland
|
|
||||||
slurp
|
|
||||||
swappy
|
|
||||||
swaync
|
|
||||||
swww
|
|
||||||
wallust-git
|
|
||||||
waybar
|
|
||||||
wget
|
|
||||||
wl-clipboard
|
|
||||||
wlogout
|
|
||||||
xdg-user-dirs
|
|
||||||
xdg-utils
|
|
||||||
yad
|
|
||||||
)
|
|
||||||
|
|
||||||
# the following packages can be deleted. however, dotfiles may not work properly
|
|
||||||
hypr_package_2=(
|
|
||||||
brightnessctl
|
|
||||||
btop
|
|
||||||
cava
|
|
||||||
eog
|
|
||||||
gnome-system-monitor
|
|
||||||
mousepad
|
|
||||||
mpv
|
|
||||||
mpv-mpris
|
|
||||||
nvtop
|
|
||||||
nwg-look-bin
|
|
||||||
pacman-contrib
|
|
||||||
vim
|
|
||||||
yt-dlp
|
|
||||||
)
|
|
||||||
|
|
||||||
# List of packages to uninstall as it conflicts with swaync or causing swaync to not function properly
|
|
||||||
uninstall=(
|
|
||||||
dunst
|
|
||||||
mako
|
|
||||||
)
|
|
||||||
|
|
||||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
|
||||||
# Determine the directory where the script is located
|
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
||||||
|
|
||||||
# Change the working directory to the parent directory of the script
|
|
||||||
PARENT_DIR="$SCRIPT_DIR/.."
|
|
||||||
cd "$PARENT_DIR" || exit 1
|
|
||||||
|
|
||||||
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
|
||||||
|
|
||||||
# Set the name of the log file to include the current date and time
|
|
||||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hypr-pkgs.log"
|
|
||||||
|
|
||||||
|
|
||||||
# Installation of main components
|
|
||||||
printf "\n%s - Installing hyprland packages.... \n" "${NOTE}"
|
|
||||||
|
|
||||||
for PKG1 in "${hypr_package[@]}" "${hypr_package_2[@]}" "${Extra[@]}"; do
|
|
||||||
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1A\e[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Checking if mako or dunst is installed
|
|
||||||
printf "\n%s - Checking if mako or dunst are installed and removing for swaync to work properly \n" "${NOTE}"
|
|
||||||
for PKG in "${uninstall[@]}"; do
|
|
||||||
uninstall_package "$PKG" 2>&1 | tee -a "$LOG"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1A\e[K${ERROR} - $PKG uninstallation failed, please check the log"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
clear
|
|
||||||
|
|
||||||
123
install-scripts/01-hypr-pkgs.sh
Executable file
123
install-scripts/01-hypr-pkgs.sh
Executable file
@@ -0,0 +1,123 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Hyprland Packages #
|
||||||
|
|
||||||
|
# edit your packages desired here.
|
||||||
|
# WARNING! If you remove packages here, dotfiles may not work properly.
|
||||||
|
# and also, ensure that packages are present in AUR and official Arch Repo
|
||||||
|
|
||||||
|
# add packages wanted here
|
||||||
|
Extra=(
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
hypr_package=(
|
||||||
|
#aylurs-gtk-shell
|
||||||
|
bc
|
||||||
|
cliphist
|
||||||
|
curl
|
||||||
|
grim
|
||||||
|
gvfs
|
||||||
|
gvfs-mtp
|
||||||
|
hyprpolkitagent
|
||||||
|
imagemagick
|
||||||
|
inxi
|
||||||
|
jq
|
||||||
|
kitty
|
||||||
|
kvantum
|
||||||
|
nano
|
||||||
|
network-manager-applet
|
||||||
|
pamixer
|
||||||
|
pavucontrol
|
||||||
|
pipewire-alsa
|
||||||
|
playerctl
|
||||||
|
python-requests
|
||||||
|
python-pyquery
|
||||||
|
qt5ct
|
||||||
|
qt6ct
|
||||||
|
qt6-svg
|
||||||
|
rofi-wayland
|
||||||
|
slurp
|
||||||
|
swappy
|
||||||
|
swaync
|
||||||
|
swww
|
||||||
|
unzip # needed later
|
||||||
|
wallust
|
||||||
|
waybar
|
||||||
|
wget
|
||||||
|
wl-clipboard
|
||||||
|
wlogout
|
||||||
|
xdg-user-dirs
|
||||||
|
xdg-utils
|
||||||
|
yad
|
||||||
|
)
|
||||||
|
|
||||||
|
# the following packages can be deleted. however, dotfiles may not work properly
|
||||||
|
hypr_package_2=(
|
||||||
|
brightnessctl
|
||||||
|
btop
|
||||||
|
cava
|
||||||
|
loupe
|
||||||
|
fastfetch
|
||||||
|
gnome-system-monitor
|
||||||
|
mousepad
|
||||||
|
mpv
|
||||||
|
mpv-mpris
|
||||||
|
nvtop
|
||||||
|
nwg-look
|
||||||
|
nwg-displays
|
||||||
|
pacman-contrib
|
||||||
|
qalculate-gtk
|
||||||
|
vim
|
||||||
|
yt-dlp
|
||||||
|
)
|
||||||
|
|
||||||
|
# List of packages to uninstall as it conflicts some packages
|
||||||
|
uninstall=(
|
||||||
|
aylurs-gtk-shell
|
||||||
|
dunst
|
||||||
|
mako
|
||||||
|
cachyos-hyprland-settings
|
||||||
|
rofi
|
||||||
|
wallust-git
|
||||||
|
rofi-lbonn-wayland
|
||||||
|
rofi-lbonn-wayland-git
|
||||||
|
)
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
# Determine the directory where the script is located
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || exit 1
|
||||||
|
|
||||||
|
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hypr-pkgs.log"
|
||||||
|
|
||||||
|
# conflicting packages removal
|
||||||
|
overall_failed=0
|
||||||
|
printf "\n%s - ${SKY_BLUE}Removing some packages${RESET} as it conflicts with KooL's Hyprland Dots \n" "${NOTE}"
|
||||||
|
for PKG in "${uninstall[@]}"; do
|
||||||
|
uninstall_package "$PKG" 2>&1 | tee -a "$LOG"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
overall_failed=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $overall_failed -ne 0 ]; then
|
||||||
|
echo -e "${ERROR} Some packages failed to uninstall. Please check the log."
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
|
# Installation of main components
|
||||||
|
printf "\n%s - Installing ${SKY_BLUE}KooL's hyprland necessary packages${RESET} .... \n" "${NOTE}"
|
||||||
|
|
||||||
|
for PKG1 in "${hypr_package[@]}" "${hypr_package_2[@]}" "${Extra[@]}"; do
|
||||||
|
install_package "$PKG1" "$LOG"
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
90
install-scripts/02-Final-Check.sh
Executable file
90
install-scripts/02-Final-Check.sh
Executable file
@@ -0,0 +1,90 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Final checking if packages are installed
|
||||||
|
# NOTE: These package check are only the essentials
|
||||||
|
|
||||||
|
packages=(
|
||||||
|
cliphist
|
||||||
|
kvantum
|
||||||
|
rofi-wayland
|
||||||
|
imagemagick
|
||||||
|
swaync
|
||||||
|
swww
|
||||||
|
wallust
|
||||||
|
waybar
|
||||||
|
wl-clipboard
|
||||||
|
wlogout
|
||||||
|
kitty
|
||||||
|
hypridle
|
||||||
|
hyprlock
|
||||||
|
hyprland
|
||||||
|
pyprland
|
||||||
|
)
|
||||||
|
|
||||||
|
# Local packages that should be in /usr/local/bin/
|
||||||
|
local_pkgs_installed=(
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
# Determine the directory where the script is located
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
|
# Source the global functions script
|
||||||
|
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/00_CHECK-$(date +%d-%H%M%S)_installed.log"
|
||||||
|
|
||||||
|
printf "\n%s - Final Check if all ${SKY_BLUE}Essential packages${RESET} were installed \n" "${NOTE}"
|
||||||
|
# Initialize an empty array to hold missing packages
|
||||||
|
missing=()
|
||||||
|
local_missing=()
|
||||||
|
|
||||||
|
# Function to check if a packages are installed using pacman
|
||||||
|
is_installed_pacman() {
|
||||||
|
pacman -Qi "$1" &>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
# Loop through each package
|
||||||
|
for pkg in "${packages[@]}"; do
|
||||||
|
# Check if the packages are installed
|
||||||
|
if ! is_installed_pacman "$pkg"; then
|
||||||
|
missing+=("$pkg")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Check for local packages
|
||||||
|
for pkg1 in "${local_pkgs_installed[@]}"; do
|
||||||
|
if ! [ -f "/usr/local/bin/$pkg1" ]; then
|
||||||
|
local_missing+=("$pkg1")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Log missing packages
|
||||||
|
if [ ${#missing[@]} -eq 0 ] && [ ${#local_missing[@]} -eq 0 ]; then
|
||||||
|
echo "${OK} GREAT! It seems All ${YELLOW}essential packages${RESET} are installed." | tee -a "$LOG"
|
||||||
|
else
|
||||||
|
if [ ${#missing[@]} -ne 0 ]; then
|
||||||
|
echo "${WARN} The following packages are not installed and will be logged:"
|
||||||
|
for pkg in "${missing[@]}"; do
|
||||||
|
echo "${WARNING}$pkg${RESET}"
|
||||||
|
echo "$pkg" >> "$LOG"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ${#local_missing[@]} -ne 0 ]; then
|
||||||
|
echo "${WARN} The following local packages are missing from /usr/local/bin/ and will be logged:"
|
||||||
|
for pkg1 in "${local_missing[@]}"; do
|
||||||
|
echo "${WARNING}$pkg1${REST} is not installed. Can't find it in /usr/local/bin/"
|
||||||
|
echo "$pkg1" >> "$LOG"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "${NOTE} Missing packages logged at $(date)" >> "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
@@ -8,75 +8,125 @@ set -e
|
|||||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
INFO="$(tput setaf 4)[INFO]$(tput sgr0)"
|
||||||
|
WARN="$(tput setaf 1)[WARN]$(tput sgr0)"
|
||||||
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||||
ORANGE=$(tput setaf 166)
|
MAGENTA="$(tput setaf 5)"
|
||||||
YELLOW=$(tput setaf 3)
|
ORANGE="$(tput setaf 214)"
|
||||||
RESET=$(tput sgr0)
|
WARNING="$(tput setaf 1)"
|
||||||
|
YELLOW="$(tput setaf 3)"
|
||||||
|
GREEN="$(tput setaf 2)"
|
||||||
|
BLUE="$(tput setaf 4)"
|
||||||
|
SKY_BLUE="$(tput setaf 6)"
|
||||||
|
RESET="$(tput sgr0)"
|
||||||
|
|
||||||
# Create Directory for Install Logs
|
# Create Directory for Install Logs
|
||||||
if [ ! -d Install-Logs ]; then
|
if [ ! -d Install-Logs ]; then
|
||||||
mkdir Install-Logs
|
mkdir Install-Logs
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Function for installing packages
|
# Show progress function
|
||||||
|
show_progress() {
|
||||||
|
local pid=$1
|
||||||
|
local package_name=$2
|
||||||
|
local spin_chars=("●○○○○○○○○○" "○●○○○○○○○○" "○○●○○○○○○○" "○○○●○○○○○○" "○○○○●○○○○" \
|
||||||
|
"○○○○○●○○○○" "○○○○○○●○○○" "○○○○○○○●○○" "○○○○○○○○●○" "○○○○○○○○○●")
|
||||||
|
local i=0
|
||||||
|
|
||||||
|
tput civis
|
||||||
|
printf "\r${NOTE} Installing ${YELLOW}%s${RESET} ..." "$package_name"
|
||||||
|
|
||||||
|
while ps -p $pid &> /dev/null; do
|
||||||
|
printf "\r${NOTE} Installing ${YELLOW}%s${RESET} %s" "$package_name" "${spin_chars[i]}"
|
||||||
|
i=$(( (i + 1) % 10 ))
|
||||||
|
sleep 0.3
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "\r${NOTE} Installing ${YELLOW}%s${RESET} ... Done!%-20s \n" "$package_name" ""
|
||||||
|
tput cnorm
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Function to install packages with pacman
|
||||||
install_package_pacman() {
|
install_package_pacman() {
|
||||||
# Checking if package is already installed
|
# Check if package is already installed
|
||||||
if pacman -Q "$1" &>/dev/null ; then
|
if pacman -Q "$1" &>/dev/null ; then
|
||||||
echo -e "${OK} $1 is already installed. Skipping..."
|
echo -e "${INFO} ${MAGENTA}$1${RESET} is already installed. Skipping..."
|
||||||
else
|
else
|
||||||
# Package not installed
|
# Run pacman and redirect all output to a log file
|
||||||
echo -e "${NOTE} Installing $1 ..."
|
(
|
||||||
sudo pacman -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
|
stdbuf -oL sudo pacman -S --noconfirm "$1" 2>&1
|
||||||
# Making sure package is installed
|
) >> "$LOG" 2>&1 &
|
||||||
|
PID=$!
|
||||||
|
show_progress $PID "$1"
|
||||||
|
|
||||||
|
# Double check if package is installed
|
||||||
if pacman -Q "$1" &>/dev/null ; then
|
if pacman -Q "$1" &>/dev/null ; then
|
||||||
echo -e "${OK} $1 was installed."
|
echo -e "${OK} Package ${YELLOW}$1${RESET} has been successfully installed!"
|
||||||
else
|
else
|
||||||
# Something is missing, exiting to review log
|
echo -e "\n${ERROR} ${YELLOW}$1${RESET} failed to install. Please check the $LOG. You may need to install manually."
|
||||||
echo -e "${ERROR} $1 failed to install. Please check the $LOG. You may need to install manually."
|
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ISAUR=$(command -v yay || command -v paru)
|
ISAUR=$(command -v yay || command -v paru)
|
||||||
|
|
||||||
# Function for installing packages
|
# Function to install packages with either yay or paru
|
||||||
install_package() {
|
install_package() {
|
||||||
# Checking if package is already installed
|
|
||||||
if $ISAUR -Q "$1" &>> /dev/null ; then
|
if $ISAUR -Q "$1" &>> /dev/null ; then
|
||||||
echo -e "${OK} $1 is already installed. Skipping..."
|
echo -e "${INFO} ${MAGENTA}$1${RESET} is already installed. Skipping..."
|
||||||
else
|
else
|
||||||
# Package not installed
|
(
|
||||||
echo -e "${NOTE} Installing $1 ..."
|
stdbuf -oL $ISAUR -S --noconfirm "$1" 2>&1
|
||||||
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
|
) >> "$LOG" 2>&1 &
|
||||||
# Making sure package is installed
|
PID=$!
|
||||||
|
show_progress $PID "$1"
|
||||||
|
|
||||||
|
# Double check if package is installed
|
||||||
if $ISAUR -Q "$1" &>> /dev/null ; then
|
if $ISAUR -Q "$1" &>> /dev/null ; then
|
||||||
echo -e "\e[1A\e[K${OK} $1 was installed."
|
echo -e "${OK} Package ${YELLOW}$1${RESET} has been successfully installed!"
|
||||||
else
|
else
|
||||||
# Something is missing, exiting to review log
|
# Something is missing, exiting to review log
|
||||||
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
|
echo -e "\n${ERROR} ${YELLOW}$1${RESET} failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function for uninstalling packages
|
# Function to just install packages with either yay or paru without checking if installed
|
||||||
uninstall_package() {
|
install_package_f() {
|
||||||
# Checking if package is installed
|
(
|
||||||
if pacman -Qi "$1" &>> /dev/null ; then
|
stdbuf -oL $ISAUR -S --noconfirm "$1" 2>&1
|
||||||
# Package is installed
|
) >> "$LOG" 2>&1 &
|
||||||
echo -e "${NOTE} Uninstalling $1 ..."
|
PID=$!
|
||||||
sudo pacman -Rns --noconfirm "$1" 2>&1 | tee -a "$LOG"
|
show_progress $PID "$1"
|
||||||
# Making sure package is uninstalled
|
|
||||||
if ! pacman -Qi "$1" &>> /dev/null ; then
|
# Double check if package is installed
|
||||||
echo -e "\e[1A\e[K${OK} $1 was uninstalled."
|
if $ISAUR -Q "$1" &>> /dev/null ; then
|
||||||
|
echo -e "${OK} Package ${YELLOW}$1${RESET} has been successfully installed!"
|
||||||
else
|
else
|
||||||
# Something went wrong, exiting to review log
|
# Something is missing, exiting to review log
|
||||||
echo -e "\e[1A\e[K${ERROR} $1 failed to uninstall. Please check the log."
|
echo -e "\n${ERROR} ${YELLOW}$1${RESET} failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Function for removing packages
|
||||||
|
uninstall_package() {
|
||||||
|
local pkg="$1"
|
||||||
|
|
||||||
|
# Checking if package is installed
|
||||||
|
if pacman -Qi "$pkg" &>/dev/null; then
|
||||||
|
echo -e "${NOTE} removing $pkg ..."
|
||||||
|
sudo pacman -R --noconfirm "$pkg" 2>&1 | tee -a "$LOG" | grep -v "error: target not found"
|
||||||
|
|
||||||
|
if ! pacman -Qi "$pkg" &>/dev/null; then
|
||||||
|
echo -e "\e[1A\e[K${OK} $pkg removed."
|
||||||
|
else
|
||||||
|
echo -e "\e[1A\e[K${ERROR} $pkg Removal failed. No actions required."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo -e "${INFO} Package $pkg not installed, skipping."
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
@@ -2,10 +2,6 @@
|
|||||||
# 💫 https://github.com/JaKooLit 💫 #
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
# Adding users into input group #
|
# Adding users into input group #
|
||||||
|
|
||||||
if [[ $USE_PRESET = [Yy] ]]; then
|
|
||||||
source ./preset.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
# Determine the directory where the script is located
|
# Determine the directory where the script is located
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
@@ -19,39 +15,17 @@ source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
|||||||
# Set the name of the log file to include the current date and time
|
# Set the name of the log file to include the current date and time
|
||||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_input.log"
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_input.log"
|
||||||
|
|
||||||
while true; do
|
|
||||||
echo "${WARN} This script will add your user to the 'input' group."
|
|
||||||
echo "${NOTE} Please note that adding yourself to the 'input' group might be necessary for waybar keyboard-state functionality."
|
|
||||||
|
|
||||||
if [[ -z $input_group_choid ]]; then
|
|
||||||
read -p "${YELLOW}Do you want to proceed? (y/n): ${RESET}" input_group_choid
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $input_group_choid == "y" || $input_group_choid == "Y" ]]; then
|
|
||||||
# Check if the 'input' group exists
|
# Check if the 'input' group exists
|
||||||
if grep -q '^input:' /etc/group; then
|
if grep -q '^input:' /etc/group; then
|
||||||
echo "${OK} 'input' group exists."
|
echo "${OK} ${MAGENTA}input${RESET} group exists."
|
||||||
else
|
else
|
||||||
echo "${NOTE} 'input' group doesn't exist. Creating 'input' group..."
|
echo "${NOTE} ${MAGENTA}input${RESET} group doesn't exist. Creating ${MAGENTA}input${RESET} group..."
|
||||||
sudo groupadd input
|
sudo groupadd input
|
||||||
|
echo "${MAGENTA}input${RESET} group created" >> "$LOG"
|
||||||
# Log the creation of the 'input' group
|
|
||||||
echo "'input' group created" >> "$LOG"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Add the user to the input group
|
# Add the user to the 'input' group
|
||||||
sudo usermod -aG input "$(whoami)"
|
sudo usermod -aG input "$(whoami)"
|
||||||
echo "${OK} User added to the 'input' group. Changes will take effect after you log out and log back in."
|
echo "${OK} ${YELLOW}user${RESET} added to the ${MAGENTA}input${RESET} group. Changes will take effect after you log out and log back in." >> "$LOG"
|
||||||
|
|
||||||
# Log the addition of the user to the 'input' group
|
printf "\n%.0s" {1..2}
|
||||||
echo "User added to 'input' group" >> "$LOG"
|
|
||||||
break # Break out of the loop if 'yes' is chosen
|
|
||||||
elif [[ $input_group_choid == "n" || $input_group_choid == "N" ]]; then
|
|
||||||
echo "${NOTE} No changes made. Exiting the script."
|
|
||||||
break # Break out of the loop if 'no' is chosen
|
|
||||||
else
|
|
||||||
echo "${ERROR} Invalid choice. Please enter 'y' for yes or 'n' for no."
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
clear
|
|
||||||
|
|||||||
93
install-scripts/ags.sh
Executable file
93
install-scripts/ags.sh
Executable file
@@ -0,0 +1,93 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Aylur's GTK Shell v 1.9.0 #
|
||||||
|
# for desktop overview
|
||||||
|
|
||||||
|
if [[ $USE_PRESET = [Yy] ]]; then
|
||||||
|
source ./preset.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
ags=(
|
||||||
|
typescript
|
||||||
|
npm
|
||||||
|
meson
|
||||||
|
glib2-devel
|
||||||
|
gjs
|
||||||
|
gtk3
|
||||||
|
gtk-layer-shell
|
||||||
|
upower
|
||||||
|
networkmanager
|
||||||
|
gobject-introspection
|
||||||
|
libdbusmenu-gtk3
|
||||||
|
libsoup3
|
||||||
|
)
|
||||||
|
|
||||||
|
# specific tags to download
|
||||||
|
ags_tag="v1.9.0"
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
# Determine the directory where the script is located
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || exit 1
|
||||||
|
|
||||||
|
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_ags.log"
|
||||||
|
MLOG="install-$(date +%d-%H%M%S)_ags2.log"
|
||||||
|
|
||||||
|
# Check if AGS is installed
|
||||||
|
if command -v ags &>/dev/null; then
|
||||||
|
AGS_VERSION=$(ags -v | awk '{print $NF}')
|
||||||
|
if [[ "$AGS_VERSION" == "1.9.0" ]]; then
|
||||||
|
printf "${INFO} ${MAGENTA}Aylur's GTK Shell v1.9.0${RESET} is already installed. Skipping installation."
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Installation of main components
|
||||||
|
printf "\n%s - Installing ${SKY_BLUE}Aylur's GTK shell $ags_tag${RESET} Dependencies \n" "${NOTE}"
|
||||||
|
|
||||||
|
# Installing ags Dependencies
|
||||||
|
for PKG1 in "${ags[@]}"; do
|
||||||
|
install_package "$PKG1" "$LOG"
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
|
# ags v1
|
||||||
|
printf "${NOTE} Install and Compiling ${SKY_BLUE}Aylur's GTK shell $ags_tag${RESET}..\n"
|
||||||
|
|
||||||
|
# Check if folder exists and remove it
|
||||||
|
if [ -d "ags" ]; then
|
||||||
|
printf "${NOTE} Removing existing ags folder...\n"
|
||||||
|
rm -rf "ags"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
printf "${INFO} Kindly Standby...cloning and compiling ${SKY_BLUE}Aylur's GTK shell $ags_tag${RESET}...\n"
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
# Clone repository with the specified tag and capture git output into MLOG
|
||||||
|
if git clone --recursive -b "$ags_tag" --depth 1 https://github.com/Aylur/ags.git; then
|
||||||
|
cd ags || exit 1
|
||||||
|
npm install
|
||||||
|
meson setup build
|
||||||
|
if sudo meson install -C build 2>&1 | tee -a "$MLOG"; then
|
||||||
|
printf "\n${OK} ${YELLOW}Aylur's GTK shell $ags_tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
|
else
|
||||||
|
echo -e "\n${ERROR} ${YELLOW}Aylur's GTK shell $ags_tag${RESET} Installation failed\n " 2>&1 | tee -a "$MLOG"
|
||||||
|
fi
|
||||||
|
# Move logs to Install-Logs directory
|
||||||
|
mv "$MLOG" ../Install-Logs/ || true
|
||||||
|
cd ..
|
||||||
|
else
|
||||||
|
echo -e "\n${ERROR} Failed to download ${YELLOW}Aylur's GTK shell $ags_tag${RESET} Please check your connection\n" 2>&1 | tee -a "$LOG"
|
||||||
|
mv "$MLOG" ../Install-Logs/ || true
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
@@ -22,13 +22,12 @@ source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
|||||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_bluetooth.log"
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_bluetooth.log"
|
||||||
|
|
||||||
# Bluetooth
|
# Bluetooth
|
||||||
printf "${NOTE} Installing Bluetooth Packages...\n"
|
printf "${NOTE} Installing ${SKY_BLUE}Bluetooth${RESET} Packages...\n"
|
||||||
for BLUE in "${blue[@]}"; do
|
for BLUE in "${blue[@]}"; do
|
||||||
install_package "$BLUE" 2>&1 | tee -a "$LOG"
|
install_package "$BLUE" "$LOG"
|
||||||
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $BLUE Package installation failed, Please check the installation logs"; exit 1; }
|
|
||||||
done
|
done
|
||||||
|
|
||||||
printf " Activating Bluetooth Services...\n"
|
printf " Activating ${YELLOW}Bluetooth${RESET} Services...\n"
|
||||||
sudo systemctl enable --now bluetooth.service 2>&1 | tee -a "$LOG"
|
sudo systemctl enable --now bluetooth.service 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
29
install-scripts/dotfiles-main.sh
Executable file
29
install-scripts/dotfiles-main.sh
Executable file
@@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Hyprland-Dots to download from main #
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
|
||||||
|
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||||
|
|
||||||
|
# Check if Hyprland-Dots exists
|
||||||
|
printf "${NOTE} Cloning and Installing ${SKY_BLUE}KooL's Hyprland Dots${RESET}....\n"
|
||||||
|
|
||||||
|
if [ -d Hyprland-Dots ]; then
|
||||||
|
cd Hyprland-Dots
|
||||||
|
git stash
|
||||||
|
git pull
|
||||||
|
git stash apply
|
||||||
|
chmod +x copy.sh
|
||||||
|
./copy.sh
|
||||||
|
else
|
||||||
|
if git clone --depth 1 https://github.com/JaKooLit/Hyprland-Dots; then
|
||||||
|
cd Hyprland-Dots || exit 1
|
||||||
|
chmod +x copy.sh
|
||||||
|
./copy.sh
|
||||||
|
else
|
||||||
|
echo -e "$ERROR Can't download ${YELLOW}KooL's Hyprland-Dots${RESET} . Check your internet connection"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
@@ -1,100 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# 💫 https://github.com/JaKooLit 💫 #
|
|
||||||
# Hyprland-Dots to download from Releases #
|
|
||||||
if [[ $USE_PRESET = [Yy] ]]; then
|
|
||||||
source ./preset.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
|
||||||
|
|
||||||
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
|
||||||
|
|
||||||
printf "${NOTE} Downloading / Checking for existing Hyprland-Dots.tar.gz...\n"
|
|
||||||
|
|
||||||
# Check if Hyprland-Dots.tar.gz exists
|
|
||||||
if [ -f Hyprland-Dots.tar.gz ]; then
|
|
||||||
printf "${NOTE} Hyprland-Dots.tar.gz found.\n"
|
|
||||||
|
|
||||||
# Get the version from the existing tarball filename
|
|
||||||
existing_version=$(echo Hyprland-Dots.tar.gz | grep -oP 'v\d+\.\d+\.\d+' | sed 's/v//')
|
|
||||||
|
|
||||||
# Fetch the tag_name for the latest release using the GitHub API
|
|
||||||
latest_version=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots/releases/latest | grep "tag_name" | cut -d '"' -f 4 | sed 's/v//')
|
|
||||||
|
|
||||||
# Check if versions match
|
|
||||||
if [ "$existing_version" = "$latest_version" ]; then
|
|
||||||
echo -e "${OK} Hyprland-Dots.tar.gz is up-to-date with the latest release ($latest_version)."
|
|
||||||
|
|
||||||
# Sleep for 10 seconds before exiting
|
|
||||||
printf "${NOTE} No update found. Sleeping for 10 seconds...\n"
|
|
||||||
sleep 10
|
|
||||||
exit 0
|
|
||||||
else
|
|
||||||
echo -e "${WARN} Hyprland-Dots.tar.gz is outdated (Existing version: $existing_version, Latest version: $latest_version)."
|
|
||||||
if [[ -z $upgrade_choice ]]; then
|
|
||||||
read -p "Do you want to upgrade to the latest version? (y/n): " upgrade_choice
|
|
||||||
fi
|
|
||||||
if [ "$upgrade_choice" = "y" ]; then
|
|
||||||
echo -e "${NOTE} Proceeding to download the latest release." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log"
|
|
||||||
|
|
||||||
# Delete existing directories starting with JaKooLit-Hyprland-Dots
|
|
||||||
find . -type d -name 'JaKooLit-Hyprland-Dots*' -exec rm -rf {} +
|
|
||||||
rm -f Hyprland-Dots.tar.gz
|
|
||||||
printf "${WARN} Removed existing Hyprland-Dots.tar.gz.\n"
|
|
||||||
else
|
|
||||||
echo -e "${NOTE} User chose not to upgrade. Exiting..." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf "${NOTE} Downloading the latest Hyprland source code release...\n"
|
|
||||||
|
|
||||||
# Fetch the tag name for the latest release using the GitHub API
|
|
||||||
latest_tag=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots/releases/latest | grep "tag_name" | cut -d '"' -f 4)
|
|
||||||
|
|
||||||
# Check if the tag is obtained successfully
|
|
||||||
if [ -z "$latest_tag" ]; then
|
|
||||||
echo -e "${ERROR} Unable to fetch the latest tag information." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Fetch the tarball URL for the latest release using the GitHub API
|
|
||||||
latest_tarball_url=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots/releases/latest | grep "tarball_url" | cut -d '"' -f 4)
|
|
||||||
|
|
||||||
# Check if the URL is obtained successfully
|
|
||||||
if [ -z "$latest_tarball_url" ]; then
|
|
||||||
echo -e "${ERROR} Unable to fetch the tarball URL for the latest release." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Get the filename from the URL and include the tag name in the file name
|
|
||||||
file_name="Hyprland-Dots-${latest_tag}.tar.gz"
|
|
||||||
|
|
||||||
# Download the latest release source code tarball to the current directory
|
|
||||||
if curl -L "$latest_tarball_url" -o "$file_name"; then
|
|
||||||
# Extract the contents of the tarball
|
|
||||||
tar -xzf "$file_name" || exit 1
|
|
||||||
|
|
||||||
# delete existing Hyprland-Dots
|
|
||||||
rm -rf JaKooLit-Hyprland-Dots
|
|
||||||
|
|
||||||
# Identify the extracted directory
|
|
||||||
extracted_directory=$(tar -tf "$file_name" | grep -o '^[^/]\+' | uniq)
|
|
||||||
|
|
||||||
# Rename the extracted directory to JaKooLit-Hyprland-Dots
|
|
||||||
mv "$extracted_directory" JaKooLit-Hyprland-Dots || exit 1
|
|
||||||
|
|
||||||
cd "JaKooLit-Hyprland-Dots" || exit 1
|
|
||||||
|
|
||||||
# Set execute permission for copy.sh and execute it
|
|
||||||
chmod +x copy.sh
|
|
||||||
./copy.sh
|
|
||||||
|
|
||||||
echo -e "${OK} Latest Dotfiles release downloaded, extracted, and processed successfully. Check JaKooLit-Hyprland-Dots folder for more detailed install logs" 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log"
|
|
||||||
else
|
|
||||||
echo -e "${ERROR} Failed to download the latest Dotfiles release." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
clear
|
|
||||||
@@ -12,8 +12,10 @@ noto-fonts-emoji
|
|||||||
otf-font-awesome
|
otf-font-awesome
|
||||||
ttf-droid
|
ttf-droid
|
||||||
ttf-fira-code
|
ttf-fira-code
|
||||||
|
ttf-fantasque-nerd
|
||||||
ttf-jetbrains-mono
|
ttf-jetbrains-mono
|
||||||
ttf-jetbrains-mono-nerd
|
ttf-jetbrains-mono-nerd
|
||||||
|
ttf-victor-mono
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -32,15 +34,10 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_fonts.log"
|
|||||||
|
|
||||||
|
|
||||||
# Installation of main components
|
# Installation of main components
|
||||||
printf "\n%s - Installing necessary fonts.... \n" "${NOTE}"
|
printf "\n%s - Installing necessary ${SKY_BLUE}fonts${RESET}.... \n" "${NOTE}"
|
||||||
|
|
||||||
for PKG1 in "${fonts[@]}"; do
|
for PKG1 in "${fonts[@]}"; do
|
||||||
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
install_package "$PKG1" "$LOG"
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1A\e[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
@@ -24,31 +24,24 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_themes.log"
|
|||||||
|
|
||||||
# installing engine needed for gtk themes
|
# installing engine needed for gtk themes
|
||||||
for PKG1 in "${engine[@]}"; do
|
for PKG1 in "${engine[@]}"; do
|
||||||
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
install_package "$PKG1" "$LOG"
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\033[1A\033[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# Check if the directory exists and delete it if present
|
# Check if the directory exists and delete it if present
|
||||||
if [ -d "GTK-themes-icons" ]; then
|
if [ -d "GTK-themes-icons" ]; then
|
||||||
echo "$NOTE Tokyo Theme GTK themes and Icons folder exist..deleting..." 2>&1 | tee -a "$LOG"
|
echo "$NOTE GTK themes and Icons folder exist..deleting..." 2>&1 | tee -a "$LOG"
|
||||||
rm -rf "GTK-themes-icons" 2>&1 | tee -a "$LOG"
|
rm -rf "GTK-themes-icons" 2>&1 | tee -a "$LOG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "$NOTE Cloning Tokyo Theme GTK themes and Icons repository..." 2>&1 | tee -a "$LOG"
|
echo "$NOTE Cloning ${SKY_BLUE}GTK themes and Icons${RESET} repository..." 2>&1 | tee -a "$LOG"
|
||||||
if git clone https://github.com/JaKooLit/GTK-themes-icons.git ; then
|
if git clone --depth 1 https://github.com/JaKooLit/GTK-themes-icons.git ; then
|
||||||
cd GTK-themes-icons
|
cd GTK-themes-icons
|
||||||
chmod +x auto-extract.sh
|
chmod +x auto-extract.sh
|
||||||
./auto-extract.sh
|
./auto-extract.sh
|
||||||
cd ..
|
cd ..
|
||||||
echo "$OK Extracted GTK Themes & Icons to ~/.icons & ~/.themes folders" 2>&1 | tee -a "$LOG"
|
echo "$OK Extracted GTK Themes & Icons to ~/.icons & ~/.themes folders" 2>&1 | tee -a "$LOG"
|
||||||
else
|
else
|
||||||
echo "$ERROR Download failed for Tokyo Theme GTK themes and Icons.." 2>&1 | tee -a "$LOG"
|
echo "$ERROR Download failed for GTK themes and Icons.." 2>&1 | tee -a "$LOG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
tar -xf "assets/Bibata-Modern-Ice.tar.xz" -C ~/.icons 2>&1 | tee -a "$LOG"
|
printf "\n%.0s" {1..2}
|
||||||
echo "$OK Extracted Bibata-Modern-Ice.tar.xz to ~/.icons folder." 2>&1 | tee -a "$LOG"
|
|
||||||
|
|
||||||
clear
|
|
||||||
@@ -4,7 +4,10 @@
|
|||||||
|
|
||||||
hypr=(
|
hypr=(
|
||||||
hyprland
|
hyprland
|
||||||
hyprcursor
|
hypridle
|
||||||
|
hyprlock
|
||||||
|
pyprland
|
||||||
|
libspng
|
||||||
)
|
)
|
||||||
|
|
||||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
@@ -24,17 +27,16 @@ source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
|||||||
# Removing other Hyprland to avoid conflict
|
# Removing other Hyprland to avoid conflict
|
||||||
printf "${YELLOW} Checking for other hyprland packages and remove if any..${RESET}\n"
|
printf "${YELLOW} Checking for other hyprland packages and remove if any..${RESET}\n"
|
||||||
if pacman -Qs hyprland >/dev/null; then
|
if pacman -Qs hyprland >/dev/null; then
|
||||||
printf "${YELLOW} Hyprland detected. uninstalling to install Hyprland-git...${RESET}\n"
|
printf "${YELLOW} Hyprland detected. attempting to uninstall to install Hyprland from official repo...${RESET}\n"
|
||||||
for hyprnvi in hyprland-git hyprland-nvidia hyprland-nvidia-git hyprland-nvidia-hidpi-git; do
|
for hyprnvi in hyprland-git hyprland-nvidia hyprland-nvidia-git hyprland-nvidia-hidpi-git; do
|
||||||
sudo pacman -R --noconfirm "$hyprnvi" 2>/dev/null | tee -a "$LOG" || true
|
sudo pacman -R --noconfirm "$hyprnvi" 2>/dev/null | tee -a "$LOG" || true
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Hyprland
|
# Hyprland
|
||||||
printf "${NOTE} Installing Hyprland .......\n"
|
printf "${NOTE} Installing ${SKY_BLUE}Hyprland packages${RESET} .......\n"
|
||||||
for HYPR in "${hypr[@]}"; do
|
for HYPR in "${hypr[@]}"; do
|
||||||
install_package "$HYPR" 2>&1 | tee -a "$LOG"
|
install_package "$HYPR" "$LOG"
|
||||||
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $HYPR Package installation failed, Please check the installation logs"; exit 1; }
|
|
||||||
done
|
done
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
@@ -1,18 +1,16 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# 💫 https://github.com/JaKooLit 💫 #
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
# Nvidia Stuffs #
|
# Nvidia Stuffs #
|
||||||
if [[ $USE_PRESET = [Yy] ]]; then
|
|
||||||
source ./preset.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
nvidia_pkg=(
|
nvidia_pkg=(
|
||||||
nvidia-dkms
|
nvidia-dkms
|
||||||
nvidia-settings
|
nvidia-settings
|
||||||
nvidia-utils
|
nvidia-utils
|
||||||
libva
|
libva
|
||||||
libva-nvidia-driver-git
|
libva-nvidia-driver
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
# Determine the directory where the script is located
|
# Determine the directory where the script is located
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
@@ -30,17 +28,17 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_nvidia.log"
|
|||||||
# nvidia stuff
|
# nvidia stuff
|
||||||
printf "${YELLOW} Checking for other hyprland packages and remove if any..${RESET}\n"
|
printf "${YELLOW} Checking for other hyprland packages and remove if any..${RESET}\n"
|
||||||
if pacman -Qs hyprland > /dev/null; then
|
if pacman -Qs hyprland > /dev/null; then
|
||||||
printf "${YELLOW} Hyprland detected. uninstalling to install Hyprland from official repo...${RESET}\n"
|
printf "${YELLOW} Hyprland detected. removing to install Hyprland from official repo...${RESET}\n"
|
||||||
for hyprnvi in hyprland-git hyprland-nvidia hyprland-nvidia-git hyprland-nvidia-hidpi-git; do
|
for hyprnvi in hyprland-git hyprland-nvidia hyprland-nvidia-git hyprland-nvidia-hidpi-git; do
|
||||||
sudo pacman -R --noconfirm "$hyprnvi" 2>/dev/null | tee -a "$LOG" || true
|
sudo pacman -R --noconfirm "$hyprnvi" 2>/dev/null | tee -a "$LOG" || true
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Install additional Nvidia packages
|
# Install additional Nvidia packages
|
||||||
printf "${YELLOW} Installing addition Nvidia packages...\n"
|
printf "${YELLOW} Installing ${SKY_BLUE}Nvidia Packages and Linux headers${RESET}...\n"
|
||||||
for krnl in $(cat /usr/lib/modules/*/pkgbase); do
|
for krnl in $(cat /usr/lib/modules/*/pkgbase); do
|
||||||
for NVIDIA in "${krnl}-headers" "${nvidia_pkg[@]}"; do
|
for NVIDIA in "${krnl}-headers" "${nvidia_pkg[@]}"; do
|
||||||
install_package "$NVIDIA" 2>&1 | tee -a "$LOG"
|
install_package "$NVIDIA" "$LOG"
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -49,65 +47,74 @@ if grep -qE '^MODULES=.*nvidia. *nvidia_modeset.*nvidia_uvm.*nvidia_drm' /etc/mk
|
|||||||
echo "Nvidia modules already included in /etc/mkinitcpio.conf" 2>&1 | tee -a "$LOG"
|
echo "Nvidia modules already included in /etc/mkinitcpio.conf" 2>&1 | tee -a "$LOG"
|
||||||
else
|
else
|
||||||
sudo sed -Ei 's/^(MODULES=\([^\)]*)\)/\1 nvidia nvidia_modeset nvidia_uvm nvidia_drm)/' /etc/mkinitcpio.conf 2>&1 | tee -a "$LOG"
|
sudo sed -Ei 's/^(MODULES=\([^\)]*)\)/\1 nvidia nvidia_modeset nvidia_uvm nvidia_drm)/' /etc/mkinitcpio.conf 2>&1 | tee -a "$LOG"
|
||||||
echo "Nvidia modules added in /etc/mkinitcpio.conf"
|
echo "${OK} Nvidia modules added in /etc/mkinitcpio.conf"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
printf "${INFO} Rebuilding ${YELLOW}Initramfs${RESET}...\n" 2>&1 | tee -a "$LOG"
|
||||||
sudo mkinitcpio -P 2>&1 | tee -a "$LOG"
|
sudo mkinitcpio -P 2>&1 | tee -a "$LOG"
|
||||||
printf "\n\n\n"
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
# Additional Nvidia steps
|
# Additional Nvidia steps
|
||||||
NVEA="/etc/modprobe.d/nvidia.conf"
|
NVEA="/etc/modprobe.d/nvidia.conf"
|
||||||
if [ -f "$NVEA" ]; then
|
if [ -f "$NVEA" ]; then
|
||||||
printf "${OK} Seems like nvidia-drm modeset=1 is already added in your system..moving on.\n"
|
printf "${INFO} Seems like ${YELLOW}nvidia_drm modeset=1 fbdev=1${RESET} is already added in your system..moving on."
|
||||||
printf "\n"
|
printf "\n"
|
||||||
else
|
else
|
||||||
printf "\n"
|
printf "\n"
|
||||||
printf "${YELLOW} Adding options to $NVEA..."
|
printf "${YELLOW} Adding options to $NVEA..."
|
||||||
sudo echo -e "options nvidia-drm modeset=1" | sudo tee -a /etc/modprobe.d/nvidia.conf 2>&1 | tee -a "$LOG"
|
sudo echo -e "options nvidia_drm modeset=1 fbdev=1" | sudo tee -a /etc/modprobe.d/nvidia.conf 2>&1 | tee -a "$LOG"
|
||||||
printf "\n"
|
printf "\n"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# additional for GRUB users
|
# Additional for GRUB users
|
||||||
# Check if /etc/default/grub exists
|
|
||||||
if [ -f /etc/default/grub ]; then
|
if [ -f /etc/default/grub ]; then
|
||||||
# Check if nvidia_drm.modeset=1 is already present
|
printf "${INFO} ${YELLOW}GRUB${RESET} bootloader detected\n" 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
|
# Check if nvidia-drm.modeset=1 is present
|
||||||
if ! sudo grep -q "nvidia-drm.modeset=1" /etc/default/grub; then
|
if ! sudo grep -q "nvidia-drm.modeset=1" /etc/default/grub; then
|
||||||
# Add nvidia_drm.modeset=1 to GRUB_CMDLINE_LINUX_DEFAULT
|
sudo sed -i -e 's/\(GRUB_CMDLINE_LINUX_DEFAULT=".*\)"/\1 nvidia-drm.modeset=1"/' /etc/default/grub
|
||||||
sudo sed -i 's/\(GRUB_CMDLINE_LINUX_DEFAULT=".*\)"/\1 nvidia-drm.modeset=1"/' /etc/default/grub
|
printf "${OK} nvidia-drm.modeset=1 added to /etc/default/grub\n" 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if nvidia_drm.fbdev=1 is present
|
||||||
|
if ! sudo grep -q "nvidia_drm.fbdev=1" /etc/default/grub; then
|
||||||
|
sudo sed -i -e 's/\(GRUB_CMDLINE_LINUX_DEFAULT=".*\)"/\1 nvidia_drm.fbdev=1"/' /etc/default/grub
|
||||||
|
printf "${OK} nvidia_drm.fbdev=1 added to /etc/default/grub\n" 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
# Regenerate GRUB configuration
|
# Regenerate GRUB configuration
|
||||||
|
if sudo grep -q "nvidia-drm.modeset=1" /etc/default/grub || sudo grep -q "nvidia_drm.fbdev=1" /etc/default/grub; then
|
||||||
sudo grub-mkconfig -o /boot/grub/grub.cfg
|
sudo grub-mkconfig -o /boot/grub/grub.cfg
|
||||||
echo "nvidia-drm.modeset=1 added to /etc/default/grub" 2>&1 | tee -a "$LOG"
|
printf "${INFO} ${YELLOW}GRUB${RESET} configuration regenerated\n" 2>&1 | tee -a "$LOG"
|
||||||
else
|
|
||||||
echo "nvidia-drm.modeset=1 is already present in /etc/default/grub" 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "/etc/default/grub does not exist"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Blacklist nouveau
|
printf "${OK} Additional steps for ${YELLOW}GRUB${RESET} completed\n" 2>&1 | tee -a "$LOG"
|
||||||
if [[ -z $blacklist_nouveau ]]; then
|
|
||||||
read -n1 -rep "${CAT} Would you like to blacklist nouveau? (y/n)" blacklist_nouveau
|
|
||||||
fi
|
|
||||||
echo
|
|
||||||
if [[ $blacklist_nouveau =~ ^[Yy]$ ]]; then
|
|
||||||
NOUVEAU="/etc/modprobe.d/nouveau.conf"
|
|
||||||
if [ -f "$NOUVEAU" ]; then
|
|
||||||
printf "${OK} Seems like nouveau is already blacklisted..moving on.\n"
|
|
||||||
else
|
|
||||||
printf "\n"
|
|
||||||
echo "blacklist nouveau" | sudo tee -a "$NOUVEAU" 2>&1 | tee -a "$LOG"
|
|
||||||
printf "${NOTE} has been added to $NOUVEAU.\n"
|
|
||||||
printf "\n"
|
|
||||||
|
|
||||||
# To completely blacklist nouveau (See wiki.archlinux.org/title/Kernel_module#Blacklisting 6.1)
|
|
||||||
if [ -f "/etc/modprobe.d/blacklist.conf" ]; then
|
|
||||||
echo "install nouveau /bin/true" | sudo tee -a "/etc/modprobe.d/blacklist.conf" 2>&1 | tee -a "$LOG"
|
|
||||||
else
|
|
||||||
echo "install nouveau /bin/true" | sudo tee "/etc/modprobe.d/blacklist.conf" 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
printf "${NOTE} Skipping nouveau blacklisting.\n" 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
clear
|
# Additional for systemd-boot users
|
||||||
|
if [ -f /boot/loader/loader.conf ]; then
|
||||||
|
printf "${INFO} ${YELLOW}systemd-boot${RESET} bootloader detected\n" 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
|
backup_count=$(find /boot/loader/entries/ -type f -name "*.conf.bak" | wc -l)
|
||||||
|
conf_count=$(find /boot/loader/entries/ -type f -name "*.conf" | wc -l)
|
||||||
|
|
||||||
|
if [ "$backup_count" -ne "$conf_count" ]; then
|
||||||
|
find /boot/loader/entries/ -type f -name "*.conf" | while read imgconf; do
|
||||||
|
# Backup conf
|
||||||
|
sudo cp "$imgconf" "$imgconf.bak"
|
||||||
|
printf "${INFO} Backup created for systemd-boot loader: %s\n" "$imgconf" 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
|
# Clean up options and update with NVIDIA settings
|
||||||
|
sdopt=$(grep -w "^options" "$imgconf" | sed 's/\b nvidia-drm.modeset=[^ ]*\b//g' | sed 's/\b nvidia_drm.fbdev=[^ ]*\b//g')
|
||||||
|
sudo sed -i "/^options/c${sdopt} nvidia-drm.modeset=1 nvidia_drm.fbdev=1" "$imgconf" 2>&1 | tee -a "$LOG"
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "${OK} Additional steps for ${YELLOW}systemd-boot${RESET} completed\n" 2>&1 | tee -a "$LOG"
|
||||||
|
else
|
||||||
|
printf "${NOTE} ${YELLOW}systemd-boot${RESET} is already configured...\n" 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
34
install-scripts/nvidia_nouveau.sh
Executable file
34
install-scripts/nvidia_nouveau.sh
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Nvidia Blacklist #
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
# Determine the directory where the script is located
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || exit 1
|
||||||
|
|
||||||
|
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_nvidia.log"
|
||||||
|
|
||||||
|
printf "${INFO} ${SKY_BLUE}blacklist nouveau${RESET}...\n"
|
||||||
|
# Blacklist nouveau
|
||||||
|
NOUVEAU="/etc/modprobe.d/nouveau.conf"
|
||||||
|
if [ -f "$NOUVEAU" ]; then
|
||||||
|
printf "${OK} Seems like ${YELLOW}nouveau${RESET} is already blacklisted..moving on.\n"
|
||||||
|
else
|
||||||
|
echo "blacklist nouveau" | sudo tee -a "$NOUVEAU" 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
|
# To completely blacklist nouveau (See wiki.archlinux.org/title/Kernel_module#Blacklisting 6.1)
|
||||||
|
if [ -f "/etc/modprobe.d/blacklist.conf" ]; then
|
||||||
|
echo "install nouveau /bin/true" | sudo tee -a "/etc/modprobe.d/blacklist.conf" 2>&1 | tee -a "$LOG"
|
||||||
|
else
|
||||||
|
echo "install nouveau /bin/true" | sudo tee "/etc/modprobe.d/blacklist.conf" 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
@@ -8,7 +8,7 @@ source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
|||||||
# Set the name of the log file to include the current date and time
|
# Set the name of the log file to include the current date and time
|
||||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_pacman.log"
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_pacman.log"
|
||||||
|
|
||||||
echo -e "${NOTE} Adding Extra Spice in pacman.conf ... ${RESET}" 2>&1 | tee -a "$LOG"
|
echo -e "${NOTE} Adding ${MAGENTA}Extra Spice${RESET} in pacman.conf ... ${RESET}" 2>&1 | tee -a "$LOG"
|
||||||
pacman_conf="/etc/pacman.conf"
|
pacman_conf="/etc/pacman.conf"
|
||||||
|
|
||||||
# Remove comments '#' from specific lines
|
# Remove comments '#' from specific lines
|
||||||
@@ -32,14 +32,16 @@ done
|
|||||||
# Add "ILoveCandy" below ParallelDownloads if it doesn't exist
|
# Add "ILoveCandy" below ParallelDownloads if it doesn't exist
|
||||||
if grep -q "^ParallelDownloads" "$pacman_conf" && ! grep -q "^ILoveCandy" "$pacman_conf"; then
|
if grep -q "^ParallelDownloads" "$pacman_conf" && ! grep -q "^ILoveCandy" "$pacman_conf"; then
|
||||||
sudo sed -i "/^ParallelDownloads/a ILoveCandy" "$pacman_conf"
|
sudo sed -i "/^ParallelDownloads/a ILoveCandy" "$pacman_conf"
|
||||||
echo -e "${CAT} Added ILoveCandy below ParallelDownloads. ${RESET}" 2>&1 | tee -a "$LOG"
|
echo -e "${CAT} Added ${MAGENTA}ILoveCandy${RESET} after ${MAGENTA}ParallelDownloads${RESET}. ${RESET}" 2>&1 | tee -a "$LOG"
|
||||||
else
|
else
|
||||||
echo -e "${CAT} ILoveCandy already exists ${RESET}" 2>&1 | tee -a "$LOG"
|
echo -e "${CAT} It seems ${YELLOW}ILoveCandy${RESET} already exists ${RESET} moving on.." 2>&1 | tee -a "$LOG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e "${CAT} Pacman.conf spicing up completed ${RESET}" 2>&1 | tee -a "$LOG"
|
echo -e "${CAT} ${MAGENTA}Pacman.conf${RESET} spicing up completed ${RESET}" 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
|
|
||||||
# updating pacman.conf
|
# updating pacman.conf
|
||||||
|
printf "\n%s - ${SKY_BLUE}Synchronizing Pacman Repo${RESET}\n" "${INFO}"
|
||||||
sudo pacman -Sy
|
sudo pacman -Sy
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
@@ -3,43 +3,47 @@
|
|||||||
# Paru AUR Helper #
|
# Paru AUR Helper #
|
||||||
# NOTE: If yay is already installed, paru will not be installed #
|
# NOTE: If yay is already installed, paru will not be installed #
|
||||||
|
|
||||||
|
pkg="paru-bin"
|
||||||
|
|
||||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
# Set the name of the log file to include the current date and time
|
# Set the name of the log file to include the current date and time
|
||||||
LOG="install-$(date +%d-%H%M%S)_paru.log"
|
LOG="install-$(date +%d-%H%M%S)_yay.log"
|
||||||
|
|
||||||
# Set some colors for output messages
|
# Set some colors for output messages
|
||||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
INFO="$(tput setaf 4)[INFO]$(tput sgr0)"
|
||||||
|
WARN="$(tput setaf 1)[WARN]$(tput sgr0)"
|
||||||
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||||
ORANGE=$(tput setaf 166)
|
MAGENTA="$(tput setaf 5)"
|
||||||
YELLOW=$(tput setaf 3)
|
ORANGE="$(tput setaf 214)"
|
||||||
RESET=$(tput sgr0)
|
WARNING="$(tput setaf 1)"
|
||||||
|
YELLOW="$(tput setaf 3)"
|
||||||
|
GREEN="$(tput setaf 2)"
|
||||||
|
BLUE="$(tput setaf 4)"
|
||||||
|
SKY_BLUE="$(tput setaf 6)"
|
||||||
|
RESET="$(tput sgr0)"
|
||||||
|
|
||||||
# Create Directory for Install Logs
|
# Create Directory for Install Logs
|
||||||
if [ ! -d Install-Logs ]; then
|
if [ ! -d Install-Logs ]; then
|
||||||
mkdir Install-Logs
|
mkdir Install-Logs
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# checking if paru-bin exist and removing if it is
|
|
||||||
if [ -d paru-bin ]; then
|
|
||||||
rm -rf paru-bin 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check for AUR helper and install if not found
|
# Check for AUR helper and install if not found
|
||||||
ISAUR=$(command -v yay || command -v paru)
|
ISAUR=$(command -v yay || command -v paru)
|
||||||
|
|
||||||
if [ -n "$ISAUR" ]; then
|
if [ -n "$ISAUR" ]; then
|
||||||
printf "\n%s - AUR helper already installed, moving on..\n" "${OK}"
|
printf "\n%s - ${SKY_BLUE}AUR helper${RESET} already installed, moving on.\n" "${OK}"
|
||||||
else
|
else
|
||||||
printf "\n%s - AUR helper was NOT located\n" "$WARN"
|
printf "\n%s - Installing ${SKY_BLUE}$pkg${RESET} from AUR\n" "${NOTE}"
|
||||||
printf "\n%s - Installing paru from AUR\n" "${NOTE}"
|
|
||||||
git clone https://aur.archlinux.org/paru-bin.git || { printf "%s - Failed to clone paru from AUR\n" "${ERROR}"; exit 1; }
|
# Check if folder exists and remove it
|
||||||
cd paru-bin || { printf "%s - Failed to enter paru-bin directory\n" "${ERROR}"; exit 1; }
|
if [ -d "$pkg" ]; then
|
||||||
makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install paru from AUR\n" "${ERROR}"; exit 1; }
|
rm -rf "$pkg"
|
||||||
|
fi
|
||||||
|
git clone https://aur.archlinux.org/$pkg.git || { printf "%s - Failed to clone ${YELLOW}$pkg${RESET} from AUR\n" "${ERROR}"; exit 1; }
|
||||||
|
cd $pkg || { printf "%s - Failed to enter $pkg directory\n" "${ERROR}"; exit 1; }
|
||||||
|
makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install ${YELLOW}$pkg${RESET} from AUR\n" "${ERROR}"; exit 1; }
|
||||||
|
|
||||||
# moving install logs in to Install-Logs folder
|
# moving install logs in to Install-Logs folder
|
||||||
mv install*.log ../Install-Logs/ || true
|
mv install*.log ../Install-Logs/ || true
|
||||||
@@ -52,4 +56,4 @@ ISAUR=$(command -v yay || command -v paru)
|
|||||||
|
|
||||||
$ISAUR -Syu --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to update system\n" "${ERROR}"; exit 1; }
|
$ISAUR -Syu --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to update system\n" "${ERROR}"; exit 1; }
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
@@ -8,6 +8,13 @@ pipewire=(
|
|||||||
pipewire-audio
|
pipewire-audio
|
||||||
pipewire-alsa
|
pipewire-alsa
|
||||||
pipewire-pulse
|
pipewire-pulse
|
||||||
|
sof-firmware
|
||||||
|
)
|
||||||
|
|
||||||
|
# added this as some reports script didnt install this.
|
||||||
|
# basically force reinstall
|
||||||
|
pipewire_2=(
|
||||||
|
pipewire-pulse
|
||||||
)
|
)
|
||||||
|
|
||||||
############## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##############
|
############## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##############
|
||||||
@@ -24,27 +31,25 @@ source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
|||||||
# Set the name of the log file to include the current date and time
|
# Set the name of the log file to include the current date and time
|
||||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_pipewire.log"
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_pipewire.log"
|
||||||
|
|
||||||
ISAUR=$(command -v yay || command -v paru)
|
# Disabling pulseaudio to avoid conflicts and logging output
|
||||||
|
echo -e "${NOTE} Disabling pulseaudio to avoid conflicts..."
|
||||||
# Removal of pulseaudio
|
systemctl --user disable --now pulseaudio.socket pulseaudio.service >> "$LOG" 2>&1 || true
|
||||||
printf "${YELLOW}Removing pulseaudio stuff...${RESET}\n"
|
|
||||||
for pulseaudio in pulseaudio pulseaudio-alsa pulseaudio-bluetooth; do
|
|
||||||
sudo pacman -R --noconfirm "$pulseaudio" 2>/dev/null | tee -a "$LOG" || true
|
|
||||||
done
|
|
||||||
|
|
||||||
# Disabling pulseaudio to avoid conflicts
|
|
||||||
systemctl --user disable --now pulseaudio.socket pulseaudio.service 2>/dev/null && tee -a "$LOG"
|
|
||||||
|
|
||||||
# Pipewire
|
# Pipewire
|
||||||
printf "${NOTE} Installing Pipewire Packages...\n"
|
echo -e "${NOTE} Installing ${SKY_BLUE}Pipewire${RESET} Packages..."
|
||||||
for PIPEWIRE in "${pipewire[@]}"; do
|
for PIPEWIRE in "${pipewire[@]}"; do
|
||||||
install_package "$PIPEWIRE" 2>&1 | tee -a "$LOG"
|
install_package "$PIPEWIRE" "$LOG"
|
||||||
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $PIPEWIRE Package installation failed, Please check the installation logs"; exit 1; }
|
|
||||||
done
|
done
|
||||||
|
|
||||||
printf "Activating Pipewire Services...\n"
|
for PIPEWIRE2 in "${pipewire_2[@]}"; do
|
||||||
|
install_package_pacman "$PIPEWIRE" "$LOG"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo -e "${NOTE} Activating Pipewire Services..."
|
||||||
|
# Redirect systemctl output to log file
|
||||||
systemctl --user enable --now pipewire.socket pipewire-pulse.socket wireplumber.service 2>&1 | tee -a "$LOG"
|
systemctl --user enable --now pipewire.socket pipewire-pulse.socket wireplumber.service 2>&1 | tee -a "$LOG"
|
||||||
systemctl --user enable --now pipewire.service 2>&1 | tee -a "$LOG"
|
systemctl --user enable --now pipewire.service 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
|
echo -e "\n${OK} Pipewire Installation and services setup complete!" 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
@@ -2,6 +2,13 @@
|
|||||||
# 💫 https://github.com/JaKooLit 💫 #
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
# Asus ROG Laptops #
|
# Asus ROG Laptops #
|
||||||
|
|
||||||
|
rog=(
|
||||||
|
power-profiles-daemon
|
||||||
|
asusctl
|
||||||
|
supergfxctl
|
||||||
|
rog-control-center
|
||||||
|
)
|
||||||
|
|
||||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
# Determine the directory where the script is located
|
# Determine the directory where the script is located
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
@@ -17,17 +24,15 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_rog.log"
|
|||||||
|
|
||||||
### Install software for Asus ROG laptops ###
|
### Install software for Asus ROG laptops ###
|
||||||
|
|
||||||
printf " Installing ASUS ROG packages...\n"
|
printf " Installing ${SKY_BLUE}ASUS ROG packages${RESET}...\n"
|
||||||
for ASUS in asusctl supergfxctl rog-control-center; do
|
for ASUS in "${rog[@]}"; do
|
||||||
install_package "$ASUS" 2>&1 | tee -a "$LOG"
|
install_package "$ASUS" "$LOG"
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1A\e[K${ERROR} - $ASUS Package installation failed, Please check the installation logs"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
printf " Activating ROG services...\n"
|
printf " Activating ROG services...\n"
|
||||||
sudo systemctl enable --now supergfxd 2>&1 | tee -a "$LOG"
|
sudo systemctl enable supergfxd 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
clear
|
printf " enabling power-profiles-daemon...\n"
|
||||||
|
sudo systemctl enable power-profiles-daemon 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
@@ -1,9 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# 💫 https://github.com/JaKooLit 💫 #
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
# SDDM Log-in Manager #
|
# SDDM Log-in Manager #
|
||||||
if [[ $USE_PRESET = [Yy] ]]; then
|
|
||||||
source ./preset.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
sddm=(
|
sddm=(
|
||||||
qt6-5compat
|
qt6-5compat
|
||||||
@@ -12,8 +9,16 @@ sddm=(
|
|||||||
sddm
|
sddm
|
||||||
)
|
)
|
||||||
|
|
||||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
# login managers to attempt to disable
|
||||||
|
login=(
|
||||||
|
lightdm
|
||||||
|
gdm3
|
||||||
|
gdm
|
||||||
|
lxdm
|
||||||
|
lxdm-gtk3
|
||||||
|
)
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
# Determine the directory where the script is located
|
# Determine the directory where the script is located
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
@@ -30,74 +35,32 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_sddm.log"
|
|||||||
# Install SDDM and SDDM theme
|
# Install SDDM and SDDM theme
|
||||||
printf "${NOTE} Installing sddm and dependencies........\n"
|
printf "${NOTE} Installing sddm and dependencies........\n"
|
||||||
for package in "${sddm[@]}"; do
|
for package in "${sddm[@]}"; do
|
||||||
install_package "$package" 2>&1 | tee -a "$LOG"
|
install_package "$package" "$LOG"
|
||||||
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $package Package installation failed, Please check the installation logs"; exit 1; }
|
|
||||||
done
|
done
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
# Check if other login managers installed and disabling its service before enabling sddm
|
# Check if other login managers installed and disabling its service before enabling sddm
|
||||||
for login_manager in lightdm gdm lxdm lxdm-gtk3; do
|
for login_manager in "${login[@]}"; do
|
||||||
if pacman -Qs "$login_manager" > /dev/null; then
|
if pacman -Qs "$login_manager" > /dev/null 2>&1; then
|
||||||
echo "disabling $login_manager..."
|
sudo systemctl disable "$login_manager.service" >> "$LOG" 2>&1
|
||||||
sudo systemctl disable "$login_manager.service" 2>&1 | tee -a "$LOG"
|
echo "$login_manager disabled." >> "$LOG" 2>&1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
printf " Activating sddm service........\n"
|
# Double check with systemctl
|
||||||
sudo systemctl enable sddm
|
for manager in "${login[@]}"; do
|
||||||
|
if systemctl is-active --quiet "$manager" > /dev/null 2>&1; then
|
||||||
|
echo "$manager is active, disabling it..." >> "$LOG" 2>&1
|
||||||
|
sudo systemctl disable "$manager" --now >> "$LOG" 2>&1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
# Set up SDDM
|
printf "\n%.0s" {1..1}
|
||||||
echo -e "${NOTE} Setting up the login screen."
|
printf "${INFO} Activating sddm service........\n"
|
||||||
sddm_conf_dir=/etc/sddm.conf.d
|
sudo systemctl enable sddm
|
||||||
[ ! -d "$sddm_conf_dir" ] && { printf "$CAT - $sddm_conf_dir not found, creating...\n"; sudo mkdir "$sddm_conf_dir" 2>&1 | tee -a "$LOG"; }
|
|
||||||
|
|
||||||
wayland_sessions_dir=/usr/share/wayland-sessions
|
wayland_sessions_dir=/usr/share/wayland-sessions
|
||||||
[ ! -d "$wayland_sessions_dir" ] && { printf "$CAT - $wayland_sessions_dir not found, creating...\n"; sudo mkdir "$wayland_sessions_dir" 2>&1 | tee -a "$LOG"; }
|
[ ! -d "$wayland_sessions_dir" ] && { printf "$CAT - $wayland_sessions_dir not found, creating...\n"; sudo mkdir "$wayland_sessions_dir" 2>&1 | tee -a "$LOG"; }
|
||||||
sudo cp assets/hyprland.desktop "$wayland_sessions_dir/" 2>&1 | tee -a "$LOG"
|
|
||||||
|
|
||||||
# SDDM-themes
|
printf "\n%.0s" {1..2}
|
||||||
valid_input=false
|
|
||||||
while [ "$valid_input" != true ]; do
|
|
||||||
if [[ -z $install_sddm_theme ]]; then
|
|
||||||
read -n 1 -r -p "${CAT} OPTIONAL - Would you like to install SDDM themes? (y/n)" install_sddm_theme
|
|
||||||
fi
|
|
||||||
if [[ $install_sddm_theme =~ ^[Yy]$ ]]; then
|
|
||||||
printf "\n%s - Installing Simple SDDM Theme\n" "${NOTE}"
|
|
||||||
|
|
||||||
# Check if /usr/share/sddm/themes/simple-sddm-2 exists and remove if it does
|
|
||||||
if [ -d "/usr/share/sddm/themes/simple-sddm-2" ]; then
|
|
||||||
sudo rm -rf "/usr/share/sddm/themes/simple-sddm-2"
|
|
||||||
echo -e "\e[1A\e[K${OK} - Removed existing 'simple-sddm-2' directory." 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check if simple-sddm-2 directory exists in the current directory and remove if it does
|
|
||||||
if [ -d "simple-sddm-2" ]; then
|
|
||||||
rm -rf "simple-sddm-2"
|
|
||||||
echo -e "\e[1A\e[K${OK} - Removed existing 'simple-sddm-2' directory from the current location." 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if git clone --depth 1 https://github.com/JaKooLit/simple-sddm-2.git; then
|
|
||||||
while [ ! -d "simple-sddm-2" ]; do
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ ! -d "/usr/share/sddm/themes" ]; then
|
|
||||||
sudo mkdir -p /usr/share/sddm/themes
|
|
||||||
echo -e "\e[1A\e[K${OK} - Directory '/usr/share/sddm/themes' created." 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
sudo mv simple-sddm-2 /usr/share/sddm/themes/
|
|
||||||
echo -e "[Theme]\nCurrent=simple-sddm-2" | sudo tee "$sddm_conf_dir/10-theme.conf" &>> "$LOG"
|
|
||||||
else
|
|
||||||
echo -e "\e[1A\e[K${ERROR} - Failed to clone the theme repository. Please check your internet connection" | tee -a "$LOG" >&2
|
|
||||||
fi
|
|
||||||
valid_input=true
|
|
||||||
elif [[ $install_sddm_theme =~ ^[Nn]$ ]]; then
|
|
||||||
printf "\n%s - No SDDM themes will be installed.\n" "${NOTE}" 2>&1 | tee -a "$LOG"
|
|
||||||
valid_input=true
|
|
||||||
else
|
|
||||||
printf "\n%s - Invalid input. Please enter 'y' for Yes or 'n' for No.\n" "${ERROR}" 2>&1 | tee -a "$LOG"
|
|
||||||
install_sddm_theme=""
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
clear
|
|
||||||
106
install-scripts/sddm_theme.sh
Executable file
106
install-scripts/sddm_theme.sh
Executable file
@@ -0,0 +1,106 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# SDDM themes #
|
||||||
|
|
||||||
|
source_theme="https://codeberg.org/JaKooLit/sddm-sequoia"
|
||||||
|
theme_name="sequoia_2"
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
# Determine the directory where the script is located
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || exit 1
|
||||||
|
|
||||||
|
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_sddm_theme.log"
|
||||||
|
|
||||||
|
# SDDM-themes
|
||||||
|
printf "${INFO} Installing ${SKY_BLUE}Additional SDDM Theme${RESET}\n"
|
||||||
|
|
||||||
|
# Check if /usr/share/sddm/themes/$theme_name exists and remove if it does
|
||||||
|
if [ -d "/usr/share/sddm/themes/$theme_name" ]; then
|
||||||
|
sudo rm -rf "/usr/share/sddm/themes/$theme_name"
|
||||||
|
echo -e "\e[1A\e[K${OK} - Removed existing $theme_name directory." 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if $theme_name directory exists in the current directory and remove if it does
|
||||||
|
if [ -d "$theme_name" ]; then
|
||||||
|
rm -rf "$theme_name"
|
||||||
|
echo -e "\e[1A\e[K${OK} - Removed existing $theme_name directory from the current location." 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Clone the repository
|
||||||
|
if git clone --depth 1 "$source_theme" "$theme_name"; then
|
||||||
|
if [ ! -d "$theme_name" ]; then
|
||||||
|
echo "${ERROR} Failed to clone the repository." | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create themes directory if it doesn't exist
|
||||||
|
if [ ! -d "/usr/share/sddm/themes" ]; then
|
||||||
|
sudo mkdir -p /usr/share/sddm/themes
|
||||||
|
echo "${OK} - Directory '/usr/share/sddm/themes' created." | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Move cloned theme to the themes directory
|
||||||
|
sudo mv "$theme_name" "/usr/share/sddm/themes/$theme_name" 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
|
|
||||||
|
# setting up SDDM theme
|
||||||
|
sddm_conf_dir="/etc/sddm.conf.d"
|
||||||
|
BACKUP_SUFFIX=".bak"
|
||||||
|
|
||||||
|
echo -e "${NOTE} Setting up the login screen." | tee -a "$LOG"
|
||||||
|
|
||||||
|
if [ -d "$sddm_conf_dir" ]; then
|
||||||
|
echo "Backing up files in $sddm_conf_dir" | tee -a "$LOG"
|
||||||
|
for file in "$sddm_conf_dir"/*; do
|
||||||
|
if [ -f "$file" ]; then
|
||||||
|
if [[ "$file" == *$BACKUP_SUFFIX ]]; then
|
||||||
|
echo "Skipping backup file: $file" | tee -a "$LOG"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
# Backup each original file
|
||||||
|
sudo cp "$file" "$file$BACKUP_SUFFIX" 2>&1 | tee -a "$LOG"
|
||||||
|
echo "Backup created for $file" | tee -a "$LOG"
|
||||||
|
|
||||||
|
# Edit existing "Current="
|
||||||
|
if grep -q '^[[:space:]]*Current=' "$file"; then
|
||||||
|
sudo sed -i "s/^[[:space:]]*Current=.*/Current=$theme_name/" "$file" 2>&1 | tee -a "$LOG"
|
||||||
|
echo "Updated theme in $file" | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
echo "$CAT - $sddm_conf_dir not found, creating..." | tee -a "$LOG"
|
||||||
|
sudo mkdir -p "$sddm_conf_dir" 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f "$sddm_conf_dir/theme.conf.user" ]; then
|
||||||
|
echo -e "[Theme]\nCurrent = $theme_name" | sudo tee "$sddm_conf_dir/theme.conf.user" > /dev/null
|
||||||
|
|
||||||
|
if [ -f "$sddm_conf_dir/theme.conf.user" ]; then
|
||||||
|
echo "Created and configured $sddm_conf_dir/theme.conf.user with theme $theme_name" | tee -a "$LOG"
|
||||||
|
else
|
||||||
|
echo "Failed to create $sddm_conf_dir/theme.conf.user" | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "$sddm_conf_dir/theme.conf.user already exists, skipping creation." | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Replace current background from assets
|
||||||
|
sudo cp -r assets/sddm.png "/usr/share/sddm/themes/$theme_name/backgrounds/default" 2>&1 | tee -a "$LOG"
|
||||||
|
sudo sed -i 's|^wallpaper=".*"|wallpaper="backgrounds/default"|' "/usr/share/sddm/themes/$theme_name/theme.conf" 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
|
echo "${OK} - ${MAGENTA}Additional SDDM Theme${RESET} successfully installed." | tee -a "$LOG"
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
echo "${ERROR} - Failed to clone the sddm theme repository. Please check your internet connection." | tee -a "$LOG" >&2
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
@@ -8,6 +8,7 @@ thunar-volman
|
|||||||
tumbler
|
tumbler
|
||||||
ffmpegthumbnailer
|
ffmpegthumbnailer
|
||||||
thunar-archive-plugin
|
thunar-archive-plugin
|
||||||
|
xarchiver
|
||||||
)
|
)
|
||||||
|
|
||||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
@@ -25,23 +26,22 @@ source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
|||||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_thunar.log"
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_thunar.log"
|
||||||
|
|
||||||
# Thunar
|
# Thunar
|
||||||
printf "${NOTE} Installing Thunar Packages...\n"
|
printf "${INFO} Installing ${SKY_BLUE}Thunar${RESET} Packages...\n"
|
||||||
for THUNAR in "${thunar[@]}"; do
|
for THUNAR in "${thunar[@]}"; do
|
||||||
install_package "$THUNAR" 2>&1 | tee -a "$LOG"
|
install_package "$THUNAR" "$LOG"
|
||||||
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $THUNAR Package installation failed, Please check the installation logs"; exit 1; }
|
|
||||||
done
|
done
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
# Check for existing configs and copy if does not exist
|
# Check for existing configs and copy if does not exist
|
||||||
for DIR1 in Thunar xfce4; do
|
for DIR1 in gtk-3.0 Thunar xfce4; do
|
||||||
DIRPATH=~/.config/$DIR1
|
DIRPATH=~/.config/$DIR1
|
||||||
if [ -d "$DIRPATH" ]; then
|
if [ -d "$DIRPATH" ]; then
|
||||||
echo -e "${NOTE} Config for $DIR1 found, no need to copy." 2>&1 | tee -a "$LOG"
|
echo -e "${NOTE} Config for ${MAGENTA}$DIR1${RESET} found, no need to copy." 2>&1 | tee -a "$LOG"
|
||||||
else
|
else
|
||||||
echo -e "${NOTE} Config for $DIR1 not found, copying from assets." 2>&1 | tee -a "$LOG"
|
echo -e "${NOTE} Config for ${YELLOW}$DIR1${RESET} not found, copying from assets." 2>&1 | tee -a "$LOG"
|
||||||
cp -r assets/$DIR1 ~/.config/ && echo "Copy $DIR1 completed!" || echo "Error: Failed to copy $DIR1 config files." 2>&1 | tee -a "$LOG"
|
cp -r assets/$DIR1 ~/.config/ && echo "${OK} Copy $DIR1 completed!" || echo "${ERROR} Failed to copy $DIR1 config files." 2>&1 | tee -a "$LOG"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
|
|
||||||
25
install-scripts/thunar_default.sh
Executable file
25
install-scripts/thunar_default.sh
Executable file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Thunar-default #
|
||||||
|
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
# Determine the directory where the script is located
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || exit 1
|
||||||
|
|
||||||
|
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_thunar-default.log"
|
||||||
|
|
||||||
|
printf "${INFO} Setting ${SKY_BLUE}Thunar${RESET} as default file manager...\n"
|
||||||
|
|
||||||
|
xdg-mime default thunar.desktop inode/directory
|
||||||
|
xdg-mime default thunar.desktop application/x-wayland-gnome-saved-search
|
||||||
|
echo "${OK} ${MAGENTA}Thunar${RESET} is now set as the default file manager." | tee -a "$LOG"
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
@@ -1,13 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# 💫 https://github.com/JaKooLit 💫 #
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
# XDG-Desktop-Portals #
|
# XDG-Desktop-Portals hyprland #
|
||||||
if [[ $USE_PRESET = [Yy] ]]; then
|
|
||||||
source ./preset.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
xdg=(
|
xdg=(
|
||||||
xdg-desktop-portal-hyprland
|
xdg-desktop-portal-hyprland
|
||||||
xdg-desktop-portal-gtk
|
xdg-desktop-portal-gtk
|
||||||
|
umockdev
|
||||||
)
|
)
|
||||||
|
|
||||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
@@ -25,50 +23,9 @@ source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
|||||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_xdph.log"
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_xdph.log"
|
||||||
|
|
||||||
# XDG-DESKTOP-PORTAL-HYPRLAND
|
# XDG-DESKTOP-PORTAL-HYPRLAND
|
||||||
|
printf "${NOTE} Installing ${SKY_BLUE}xdg-desktop-portal-hyprland${RESET}\n"
|
||||||
for xdgs in "${xdg[@]}"; do
|
for xdgs in "${xdg[@]}"; do
|
||||||
install_package "$xdgs" 2>&1 | tee -a "$LOG"
|
install_package "$xdgs" "$LOG"
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1A\e[K${ERROR} - $xdph Package installation failed, Please check the installation logs"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
printf "\n"
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
printf "${NOTE} Checking for other XDG-Desktop-Portal-Implementations....\n"
|
|
||||||
sleep 1
|
|
||||||
printf "\n"
|
|
||||||
printf "${NOTE} XDG-desktop-portal-KDE & GNOME (if installed) should be manually disabled or removed! I can't remove it... sorry...\n"
|
|
||||||
while true; do
|
|
||||||
if [[ -z $XDPH1 ]]; then
|
|
||||||
read -rp "${CAT} Would you like to try to remove other XDG-Desktop-Portal-Implementations? (y/n) " XDPH1
|
|
||||||
fi
|
|
||||||
echo
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
case $XDPH1 in
|
|
||||||
[Yy])
|
|
||||||
# Clean out other portals
|
|
||||||
printf "${NOTE} Clearing any other xdg-desktop-portal implementations...\n"
|
|
||||||
# Check if packages are installed and uninstall if present
|
|
||||||
if pacman -Qs xdg-desktop-portal-wlr > /dev/null ; then
|
|
||||||
echo "Removing xdg-desktop-portal-wlr..."
|
|
||||||
sudo pacman -R --noconfirm xdg-desktop-portal-wlr 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
if pacman -Qs xdg-desktop-portal-lxqt > /dev/null ; then
|
|
||||||
echo "Removing xdg-desktop-portal-lxqt..."
|
|
||||||
sudo pacman -R --noconfirm xdg-desktop-portal-lxqt 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
[Nn])
|
|
||||||
echo "no other XDG-implementations will be removed." >> "$LOG"
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Invalid input. Please enter 'y' for yes or 'n' for no."
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
clear
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
# Yay AUR Helper #
|
# Yay AUR Helper #
|
||||||
# NOTE: If paru is already installed, yay will not be installed #
|
# NOTE: If paru is already installed, yay will not be installed #
|
||||||
|
|
||||||
|
pkg="yay-bin"
|
||||||
|
|
||||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
# Set the name of the log file to include the current date and time
|
# Set the name of the log file to include the current date and time
|
||||||
@@ -12,32 +13,37 @@ LOG="install-$(date +%d-%H%M%S)_yay.log"
|
|||||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
INFO="$(tput setaf 4)[INFO]$(tput sgr0)"
|
||||||
|
WARN="$(tput setaf 1)[WARN]$(tput sgr0)"
|
||||||
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||||
ORANGE=$(tput setaf 166)
|
MAGENTA="$(tput setaf 5)"
|
||||||
YELLOW=$(tput setaf 3)
|
ORANGE="$(tput setaf 214)"
|
||||||
RESET=$(tput sgr0)
|
WARNING="$(tput setaf 1)"
|
||||||
|
YELLOW="$(tput setaf 3)"
|
||||||
|
GREEN="$(tput setaf 2)"
|
||||||
|
BLUE="$(tput setaf 4)"
|
||||||
|
SKY_BLUE="$(tput setaf 6)"
|
||||||
|
RESET="$(tput sgr0)"
|
||||||
|
|
||||||
# Create Directory for Install Logs
|
# Create Directory for Install Logs
|
||||||
if [ ! -d Install-Logs ]; then
|
if [ ! -d Install-Logs ]; then
|
||||||
mkdir Install-Logs
|
mkdir Install-Logs
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check Existing yay-bin
|
|
||||||
if [ -d yay-bin ]; then
|
|
||||||
rm -rf yay-bin 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check for AUR helper and install if not found
|
# Check for AUR helper and install if not found
|
||||||
ISAUR=$(command -v yay || command -v paru)
|
ISAUR=$(command -v yay || command -v paru)
|
||||||
if [ -n "$ISAUR" ]; then
|
if [ -n "$ISAUR" ]; then
|
||||||
printf "\n%s - AUR helper already installed, moving on.\n" "${OK}"
|
printf "\n%s - ${SKY_BLUE}AUR helper${RESET} already installed, moving on.\n" "${OK}"
|
||||||
else
|
else
|
||||||
printf "\n%s - AUR helper was NOT located\n" "$WARN"
|
printf "\n%s - Installing ${SKY_BLUE}$pkg${RESET} from AUR\n" "${NOTE}"
|
||||||
printf "\n%s - Installing yay from AUR\n" "${NOTE}"
|
|
||||||
git clone https://aur.archlinux.org/yay-bin.git || { printf "%s - Failed to clone yay from AUR\n" "${ERROR}"; exit 1; }
|
# Check if folder exists and remove it
|
||||||
cd yay-bin || { printf "%s - Failed to enter yay-bin directory\n" "${ERROR}"; exit 1; }
|
if [ -d "$pkg" ]; then
|
||||||
makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install yay from AUR\n" "${ERROR}"; exit 1; }
|
rm -rf "$pkg"
|
||||||
|
fi
|
||||||
|
git clone https://aur.archlinux.org/$pkg.git || { printf "%s - Failed to clone ${YELLOW}$pkg${RESET} from AUR\n" "${ERROR}"; exit 1; }
|
||||||
|
cd $pkg || { printf "%s - Failed to enter $pkg directory\n" "${ERROR}"; exit 1; }
|
||||||
|
makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install ${YELLOW}$pkg${RESET} from AUR\n" "${ERROR}"; exit 1; }
|
||||||
|
|
||||||
# moving install logs in to Install-Logs folder
|
# moving install logs in to Install-Logs folder
|
||||||
mv install*.log ../Install-Logs/ || true
|
mv install*.log ../Install-Logs/ || true
|
||||||
@@ -50,4 +56,4 @@ ISAUR=$(command -v yay || command -v paru)
|
|||||||
|
|
||||||
$ISAUR -Syu --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to update system\n" "${ERROR}"; exit 1; }
|
$ISAUR -Syu --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to update system\n" "${ERROR}"; exit 1; }
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
@@ -1,15 +1,17 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# 💫 https://github.com/JaKooLit 💫 #
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
# zsh and oh my zsh including pokemon-color-scripts#
|
# zsh and oh my zsh#
|
||||||
if [[ $USE_PRESET = [Yy] ]]; then
|
|
||||||
source ./preset.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
zsh=(
|
zsh_pkg=(
|
||||||
|
eza
|
||||||
|
mercurial
|
||||||
zsh
|
zsh
|
||||||
zsh-completions
|
zsh-completions
|
||||||
)
|
)
|
||||||
|
|
||||||
|
zsh_pkg2=(
|
||||||
|
fzf
|
||||||
|
)
|
||||||
|
|
||||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
# Determine the directory where the script is located
|
# Determine the directory where the script is located
|
||||||
@@ -24,56 +26,39 @@ source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
|||||||
# Set the name of the log file to include the current date and time
|
# Set the name of the log file to include the current date and time
|
||||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_zsh.log"
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_zsh.log"
|
||||||
|
|
||||||
## Optional Pokemon color scripts
|
# Installing core zsh packages
|
||||||
while true; do
|
printf "\n%s - Installing ${SKY_BLUE}zsh packages${RESET} .... \n" "${NOTE}"
|
||||||
if [[ -z $pokemon_choice ]]; then
|
for ZSH in "${zsh_pkg[@]}"; do
|
||||||
read -p "${CAT} OPTIONAL - Do you want to add Pokemon color scripts? (y/n): " pokemon_choice
|
install_package "$ZSH" "$LOG"
|
||||||
fi
|
|
||||||
case "$pokemon_choice" in
|
|
||||||
[Yy]*)
|
|
||||||
zsh+=('pokemon-colorscripts-git')
|
|
||||||
sed -i '/#pokemon-colorscripts --no-title -s -r/s/^#//' assets/.zshrc
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
[Nn]*)
|
|
||||||
echo "${NOTE}Skipping Pokemon color scripts installation.${RESET}" 2>&1 | tee -a "$LOG"
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "${WARN}Please enter 'y' for yes or 'n' for no.${RESET}"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# Installing zsh packages
|
|
||||||
printf "${NOTE} Installing core zsh packages...${RESET}\n"
|
|
||||||
for ZSH in "${zsh[@]}"; do
|
|
||||||
install_package "$ZSH" 2>&1 | tee -a "$LOG"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1A\e[K${ERROR} - $ZSH Package installation failed, Please check the installation logs"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
|
# Check if the zsh-completions directory exists
|
||||||
|
if [ -d "zsh-completions" ]; then
|
||||||
|
rm -rf zsh-completions
|
||||||
|
fi
|
||||||
|
|
||||||
# Install Oh My Zsh, plugins, and set zsh as default shell
|
# Install Oh My Zsh, plugins, and set zsh as default shell
|
||||||
if command -v zsh >/dev/null; then
|
if command -v zsh >/dev/null; then
|
||||||
printf "${NOTE} Installing Oh My Zsh and plugins...\n"
|
printf "${NOTE} Installing ${SKY_BLUE}Oh My Zsh and plugins${RESET} ...\n"
|
||||||
if [ ! -d "$HOME/.oh-my-zsh" ]; then
|
if [ ! -d "$HOME/.oh-my-zsh" ]; then
|
||||||
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended || true
|
sh -c "$(curl -fsSL https://install.ohmyz.sh)" "" --unattended
|
||||||
else
|
else
|
||||||
echo "Directory .oh-my-zsh already exists. Skipping re-installation." 2>&1 | tee -a "$LOG"
|
echo "${INFO} Directory .oh-my-zsh already exists. Skipping re-installation." 2>&1 | tee -a "$LOG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check if the directories exist before cloning the repositories
|
# Check if the directories exist before cloning the repositories
|
||||||
if [ ! -d "$HOME/.oh-my-zsh/custom/plugins/zsh-autosuggestions" ]; then
|
if [ ! -d "$HOME/.oh-my-zsh/custom/plugins/zsh-autosuggestions" ]; then
|
||||||
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions || true
|
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
|
||||||
else
|
else
|
||||||
echo "Directory zsh-autosuggestions already exists. Skipping cloning." 2>&1 | tee -a "$LOG"
|
echo "${INFO} Directory zsh-autosuggestions already exists. Cloning Skipped." 2>&1 | tee -a "$LOG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -d "$HOME/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting" ]; then
|
if [ ! -d "$HOME/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting" ]; then
|
||||||
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting || true
|
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
|
||||||
else
|
else
|
||||||
echo "Directory zsh-syntax-highlighting already exists. Skipping cloning." 2>&1 | tee -a "$LOG"
|
echo "${INFO} Directory zsh-syntax-highlighting already exists. Cloning Skipped." 2>&1 | tee -a "$LOG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check if ~/.zshrc and .zprofile exists, create a backup, and copy the new configuration
|
# Check if ~/.zshrc and .zprofile exists, create a backup, and copy the new configuration
|
||||||
@@ -89,14 +74,31 @@ if command -v zsh >/dev/null; then
|
|||||||
cp -r 'assets/.zshrc' ~/
|
cp -r 'assets/.zshrc' ~/
|
||||||
cp -r 'assets/.zprofile' ~/
|
cp -r 'assets/.zprofile' ~/
|
||||||
|
|
||||||
printf "${NOTE} Changing default shell to zsh...\n"
|
# Check if the current shell is zsh
|
||||||
|
if [[ "$SHELL" != *"zsh"* ]]; then
|
||||||
|
printf "${NOTE} Changing default shell to ${MAGENTA}zsh${RESET}..."
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
while ! chsh -s $(which zsh); do
|
while ! chsh -s $(which zsh); do
|
||||||
echo "${ERROR} Authentication failed. Please enter the correct password." 2>&1 | tee -a "$LOG"
|
echo "${ERROR} Authentication failed. Please enter the correct password." 2>&1 | tee -a "$LOG"
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
printf "${NOTE} Shell changed successfully to zsh.\n" 2>&1 | tee -a "$LOG"
|
|
||||||
|
|
||||||
|
printf "${INFO} Shell changed successfully to ${MAGENTA}zsh${RESET}" 2>&1 | tee -a "$LOG"
|
||||||
|
else
|
||||||
|
echo "${NOTE}Your shell is already set to ${MAGENTA}zsh${RESET}."
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
clear
|
# Installing core zsh packages
|
||||||
|
printf "\n%s - Installing ${SKY_BLUE}fzf${RESET} .... \n" "${NOTE}"
|
||||||
|
for ZSH2 in "${zsh_pkg2[@]}"; do
|
||||||
|
install_package "$ZSH2" "$LOG"
|
||||||
|
done
|
||||||
|
|
||||||
|
# copy additional oh-my-zsh themes from assets
|
||||||
|
if [ -d "$HOME/.oh-my-zsh/themes" ]; then
|
||||||
|
cp -r assets/add_zsh_theme/* ~/.oh-my-zsh/themes >> "$LOG" 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
35
install-scripts/zsh_pokemon.sh
Executable file
35
install-scripts/zsh_pokemon.sh
Executable file
@@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# pokemon-color-scripts#
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
# Determine the directory where the script is located
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || exit 1
|
||||||
|
|
||||||
|
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_zsh_pokemon.log"
|
||||||
|
|
||||||
|
printf "${NOTE} Removing any traces of ${SKY_BLUE}Pokemon Color Scripts${RESET}\n"
|
||||||
|
|
||||||
|
# Install Pokemon Color Scripts
|
||||||
|
printf "${NOTE} Installing ${SKY_BLUE}Pokemon Color Scripts${RESET}\n"
|
||||||
|
for pok in "pokemon-colorscripts-git"; do
|
||||||
|
install_package_f "$pok" "$LOG"
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
# Check if ~/.zshrc exists
|
||||||
|
if [ -f "$HOME/.zshrc" ]; then
|
||||||
|
sed -i 's|^#pokemon-colorscripts --no-title -s -r \| fastfetch -c \$HOME/.config/fastfetch/config-pokemon.jsonc --logo-type file-raw --logo-height 10 --logo-width 5 --logo -|pokemon-colorscripts --no-title -s -r \| fastfetch -c \$HOME/.config/fastfetch/config-pokemon.jsonc --logo-type file-raw --logo-height 10 --logo-width 5 --logo -|' "$HOME/.zshrc" >> "$LOG" 2>&1
|
||||||
|
sed -i "s|^fastfetch -c \$HOME/.config/fastfetch/config-compact.jsonc|#fastfetch -c \$HOME/.config/fastfetch/config-compact.jsonc|" "$HOME/.zshrc" >> "$LOG" 2>&1
|
||||||
|
else
|
||||||
|
echo "$HOME/.zshrc not found. Cant enable ${YELLOW}Pokemon color scripts${RESET}" >> "$LOG" 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
308
install.sh
308
install.sh
@@ -1,62 +1,104 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# https://github.com/JaKooLit
|
# https://github.com/JaKooLit
|
||||||
|
|
||||||
# Check if running as root. If root, script will exit
|
|
||||||
if [[ $EUID -eq 0 ]]; then
|
|
||||||
echo "This script should not be executed as root! Exiting......."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
clear
|
clear
|
||||||
|
|
||||||
printf "\n%.0s" {1..3}
|
|
||||||
echo " | _. |/ _ _ | o _|_ "
|
|
||||||
echo " \_| (_| o |\ (_) (_) |_ | |_ "
|
|
||||||
printf "\n%.0s" {1..2}
|
|
||||||
|
|
||||||
# Welcome message
|
|
||||||
echo "$(tput setaf 6)Welcome to JaKooLit's Arch-Hyprland Install Script!$(tput sgr0)"
|
|
||||||
echo
|
|
||||||
echo "$(tput setaf 166)ATTENTION: Run a full system update and Reboot first!! (Highly Recommended) $(tput sgr0)"
|
|
||||||
echo
|
|
||||||
echo "$(tput setaf 3)NOTE: You will be required to answer some questions during the installation! $(tput sgr0)"
|
|
||||||
echo
|
|
||||||
echo "$(tput setaf 3)NOTE: If you are installing on a VM, ensure to enable 3D acceleration else Hyprland wont start! $(tput sgr0)"
|
|
||||||
echo
|
|
||||||
|
|
||||||
read -p "$(tput setaf 6)Would you like to proceed? (y/n): $(tput sgr0)" proceed
|
|
||||||
|
|
||||||
printf "\n%.0s" {1..2}
|
|
||||||
|
|
||||||
if [ "$proceed" != "y" ]; then
|
|
||||||
echo "Installation aborted."
|
|
||||||
printf "\n%.0s" {1..2}
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf "\n%.0s" {1..2}
|
|
||||||
|
|
||||||
echo "$(tput bold)$(tput setaf 166)ATTENTION: Choosing Y on use preset question will install also nvidia stuff! $(tput sgr0)"
|
|
||||||
echo "$(tput bold)$(tput setaf 3)CTRL C to cancel and edit the file preset.sh $(tput sgr0)"
|
|
||||||
echo "$(tput bold)$(tput setaf 7)If you are not sure what to do, answer N in here $(tput sgr0)"
|
|
||||||
read -p "$(tput setaf 6)Would you like to Use Preset Settings (See note above)? (y/n): $(tput sgr0)" use_preset
|
|
||||||
|
|
||||||
# Use of Preset Settings
|
|
||||||
if [[ $use_preset = [Yy] ]]; then
|
|
||||||
source ./preset.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Set some colors for output messages
|
# Set some colors for output messages
|
||||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
INFO="$(tput setaf 4)[INFO]$(tput sgr0)"
|
||||||
|
WARN="$(tput setaf 1)[WARN]$(tput sgr0)"
|
||||||
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||||
ORANGE=$(tput setaf 166)
|
MAGENTA="$(tput setaf 5)"
|
||||||
YELLOW=$(tput setaf 3)
|
ORANGE="$(tput setaf 214)"
|
||||||
RESET=$(tput sgr0)
|
WARNING="$(tput setaf 1)"
|
||||||
|
YELLOW="$(tput setaf 3)"
|
||||||
|
GREEN="$(tput setaf 2)"
|
||||||
|
BLUE="$(tput setaf 4)"
|
||||||
|
SKY_BLUE="$(tput setaf 6)"
|
||||||
|
RESET="$(tput sgr0)"
|
||||||
|
|
||||||
|
|
||||||
|
# Check if running as root. If root, script will exit
|
||||||
|
if [[ $EUID -eq 0 ]]; then
|
||||||
|
echo "${ERROR} This script should ${WARNING}NOT${RESET} be executed as root!! Exiting......."
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if --preset argument is provided
|
||||||
|
if [[ "$1" == "--preset" ]]; then
|
||||||
|
|
||||||
|
# nvidia
|
||||||
|
if [[ "$2" == "--nvidia" ]]; then
|
||||||
|
sed -i 's/^nvidia=".*"/nvidia="Y"/' preset.sh
|
||||||
|
sed -i 's/^nouveau=".*"/nouveau="Y"/' preset.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
source ./preset.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if PulseAudio package is installed
|
||||||
|
if pacman -Qq | grep -qw '^pulseaudio$'; then
|
||||||
|
echo "$ERROR PulseAudio is detected as installed. Uninstall it first or edit install.sh on line 211 (execute_script 'pipewire.sh')."
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if base-devel is installed
|
||||||
|
if pacman -Q base-devel &> /dev/null; then
|
||||||
|
echo "base-devel is already installed."
|
||||||
|
else
|
||||||
|
echo "$NOTE Install base-devel.........."
|
||||||
|
|
||||||
|
if sudo pacman -S --noconfirm base-devel; then
|
||||||
|
echo "$OK base-devel has been installed successfully."
|
||||||
|
else
|
||||||
|
echo "$ERROR base-devel not found nor cannot be installed."
|
||||||
|
echo "$ACTION Please install base-devel manually before running this script... Exiting"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
clear
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
echo -e "\e[35m
|
||||||
|
╦╔═┌─┐┌─┐╦ ╦ ╦┬ ┬┌─┐┬─┐┬ ┌─┐┌┐┌┌┬┐
|
||||||
|
╠╩╗│ ││ │║ ╠═╣└┬┘├─┘├┬┘│ ├─┤│││ ││ 2025
|
||||||
|
╩ ╩└─┘└─┘╩═╝ ╩ ╩ ┴ ┴ ┴└─┴─┘┴ ┴┘└┘─┴┘
|
||||||
|
\e[0m"
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
|
# Welcome message
|
||||||
|
echo "${SKY_BLUE}Welcome to JaKooLit's Arch-Hyprland (2025) Install Script!${RESET}"
|
||||||
|
echo
|
||||||
|
echo "${WARNING}ATTENTION: Run a full system update and Reboot first!! (Highly Recommended) ${RESET}"
|
||||||
|
echo
|
||||||
|
echo "${YELLOW}NOTE: You will be required to answer some questions during the installation! ${RESET}"
|
||||||
|
echo
|
||||||
|
echo "${YELLOW}NOTE: If you are installing on a VM, ensure to enable 3D acceleration else Hyprland wont start! ${RESET}"
|
||||||
|
echo
|
||||||
|
|
||||||
|
read -p "${SKY_BLUE}Would you like to proceed? (y/n): ${RESET}" proceed
|
||||||
|
|
||||||
|
if [ "$proceed" != "y" ]; then
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
echo "${INFO} Installation aborted. ${SKY_BLUE}No changes in your system.${RESET} ${YELLOW}Goodbye!${RESET}"
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
|
# install pciutils if detected not installed. Necessary for detecting GPU
|
||||||
|
if ! pacman -Qs pciutils > /dev/null; then
|
||||||
|
echo "pciutils is not installed. Installing..."
|
||||||
|
sudo pacman -S --noconfirm pciutils
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
fi
|
||||||
|
|
||||||
# Function to colorize prompts
|
# Function to colorize prompts
|
||||||
colorize_prompt() {
|
colorize_prompt() {
|
||||||
local color="$1"
|
local color="$1"
|
||||||
@@ -67,17 +109,6 @@ colorize_prompt() {
|
|||||||
# Set the name of the log file to include the current date and time
|
# Set the name of the log file to include the current date and time
|
||||||
LOG="install-$(date +%d-%H%M%S).log"
|
LOG="install-$(date +%d-%H%M%S).log"
|
||||||
|
|
||||||
# Initialize variables to store user responses
|
|
||||||
# aur_helper=""
|
|
||||||
# bluetooth=""
|
|
||||||
# dots=""
|
|
||||||
# gtk_themes=""
|
|
||||||
# nvidia=""
|
|
||||||
# rog=""
|
|
||||||
# sddm=""
|
|
||||||
# thunar=""
|
|
||||||
# xdph=""
|
|
||||||
# zsh=""
|
|
||||||
|
|
||||||
# Create Directory for Install Logs
|
# Create Directory for Install Logs
|
||||||
if [ ! -d Install-Logs ]; then
|
if [ ! -d Install-Logs ]; then
|
||||||
@@ -148,35 +179,97 @@ execute_script() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Collect user responses to all questions
|
# Collect user responses to all questions
|
||||||
|
# Check if nvidia is present
|
||||||
|
if lspci | grep -i "nvidia" &> /dev/null; then
|
||||||
printf "\n"
|
printf "\n"
|
||||||
ask_custom_option "-Type AUR helper" "paru or yay" aur_helper
|
printf "${INFO} ${YELLOW}NVIDIA GPU${RESET} detected in your system \n"
|
||||||
|
printf "${NOTE} Script will install ${YELLOW}nvidia-dkms nvidia-utils and nvidia-settings${RESET} \n"
|
||||||
|
ask_yes_no "-Do you want script to configure ${YELLOW}NVIDIA${RESET} for you?" nvidia
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$nvidia" == "Y" ]]; then
|
||||||
|
ask_yes_no "-Would you like to ${YELLOW}blacklist nouveau?${RESET}" nouveau
|
||||||
|
fi
|
||||||
|
|
||||||
|
# AUR helper
|
||||||
|
if ! command -v yay &>/dev/null && ! command -v paru &>/dev/null; then
|
||||||
printf "\n"
|
printf "\n"
|
||||||
ask_yes_no "-Do you have any nvidia gpu in your system?" nvidia
|
ask_custom_option "-Which ${YELLOW}AUR helper${RESET} would you like to use? (paru or yay): " "paru or yay" aur_helper
|
||||||
|
fi
|
||||||
|
|
||||||
printf "\n"
|
printf "\n"
|
||||||
ask_yes_no "-Install GTK themes (required for Dark/Light function)?" gtk_themes
|
ask_yes_no "-Install ${YELLOW}GTK themes${RESET} (required for Dark/Light function)?" gtk_themes
|
||||||
|
|
||||||
printf "\n"
|
printf "\n"
|
||||||
ask_yes_no "-Do you want to configure Bluetooth?" bluetooth
|
ask_yes_no "-Do you want to configure ${YELLOW}Bluetooth${RESET}?" bluetooth
|
||||||
|
|
||||||
printf "\n"
|
printf "\n"
|
||||||
ask_yes_no "-Do you want to install Thunar file manager?" thunar
|
ask_yes_no "-Do you want to install ${YELLOW}Thunar file manager${RESET}?" thunar
|
||||||
|
|
||||||
|
if [[ "$thunar" == "Y" ]]; then
|
||||||
|
ask_yes_no "-Set ${YELLOW}Thunar${RESET} as the default file manager?" thunar_choice
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Input group
|
||||||
printf "\n"
|
printf "\n"
|
||||||
ask_yes_no "-Install & configure SDDM log-in Manager plus (OPTIONAL) SDDM Theme?" sddm
|
if ! groups "$(whoami)" | grep -q '\binput\b'; then
|
||||||
|
printf "${NOTE} adding to ${YELLOW}input${RESET} group might be necessary for ${YELLOW}waybar keyboard-state functionality${RESET} \n"
|
||||||
|
ask_yes_no "-Would you like to be added to the ${YELLOW}input${RESET} group?" input_group
|
||||||
|
fi
|
||||||
|
|
||||||
printf "\n"
|
printf "\n"
|
||||||
ask_yes_no "-Install XDG-DESKTOP-PORTAL-HYPRLAND? (For proper Screen Share ie OBS)" xdph
|
printf "${NOTE} ${YELLOW}AGS Desktop Overview DEMO link${RESET} on README\n"
|
||||||
|
ask_yes_no "-Install ${YELLOW}AGS (aylur's GTK shell) v1${RESET} for Desktop-Like Overview?" ags
|
||||||
|
|
||||||
printf "\n"
|
printf "\n"
|
||||||
ask_yes_no "-Install zsh, oh-my-zsh & (Optional) pokemon-colorscripts?" zsh
|
ask_yes_no "-Install & configure ${YELLOW}SDDM${RESET} as login manager?" sddm
|
||||||
|
# check if any known login managers are active when users choose to install sddm
|
||||||
|
if [ "$sddm" == "y" ] || [ "$sddm" == "Y" ]; then
|
||||||
|
# List of services to check
|
||||||
|
services=("gdm.service" "gdm3.service" "lightdm.service" "lxdm.service")
|
||||||
|
|
||||||
|
# Loop through each service
|
||||||
|
for svc in "${services[@]}"; do
|
||||||
|
if systemctl is-active --quiet "$svc"; then
|
||||||
|
echo "${ERROR} ${MAGENTA}$svc${RESET} is active. stop or disable it first or ${YELLOW}DO NOT choose SDDM${RESET} to install."
|
||||||
|
echo "${NOTE} If you have GDM, no need to install SDDM. GDM will work fine as Login Manager for Hyprland."
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
if [[ "$sddm" == "Y" ]]; then
|
||||||
|
ask_yes_no "-Download and Install ${YELLOW}SDDM Theme?${RESET} " sddm_theme
|
||||||
|
fi
|
||||||
|
|
||||||
printf "\n"
|
printf "\n"
|
||||||
ask_yes_no "-Installing in a Asus ROG Laptops?" rog
|
ask_yes_no "-Install ${YELLOW}XDG-DESKTOP-PORTAL-HYPRLAND?${RESET} (For proper Screen Share, e.g., OBS)" xdph
|
||||||
|
|
||||||
printf "\n"
|
printf "\n"
|
||||||
ask_yes_no "-Do you want to download pre-configured Hyprland dotfiles?" dots
|
ask_yes_no "-Install ${YELLOW}zsh${RESET} with ${YELLOW}oh-my-zsh?${RESET}" zsh
|
||||||
|
|
||||||
|
if [[ "$zsh" == "Y" ]]; then
|
||||||
|
ask_yes_no "-Add ${YELLOW}Pokemon color scripts?${RESET} in your terminal?" pokemon_choice
|
||||||
|
fi
|
||||||
|
|
||||||
printf "\n"
|
printf "\n"
|
||||||
|
ask_yes_no "-Installing on ${YELLOW}Asus ROG laptops?${RESET}" rog
|
||||||
|
|
||||||
|
printf "\n"
|
||||||
|
ask_yes_no "-Do you want to add pre-configured ${YELLOW}KooL's Hyprland dotfiles?${RESET}" dots
|
||||||
|
|
||||||
|
printf "\n"
|
||||||
|
|
||||||
|
|
||||||
# Ensuring all in the scripts folder are made executable
|
# Ensuring all in the scripts folder are made executable
|
||||||
chmod +x install-scripts/*
|
chmod +x install-scripts/*
|
||||||
sleep 0.5
|
|
||||||
|
sleep 1
|
||||||
# Ensuring base-devel is installed
|
# Ensuring base-devel is installed
|
||||||
execute_script "00-base.sh"
|
execute_script "00-base.sh"
|
||||||
sleep 0.5
|
sleep 1
|
||||||
execute_script "pacman.sh"
|
execute_script "pacman.sh"
|
||||||
|
sleep 1
|
||||||
# Execute AUR helper script based on user choice
|
# Execute AUR helper script based on user choice
|
||||||
if [ "$aur_helper" == "paru" ]; then
|
if [ "$aur_helper" == "paru" ]; then
|
||||||
execute_script "paru.sh"
|
execute_script "paru.sh"
|
||||||
@@ -185,7 +278,7 @@ elif [ "$aur_helper" == "yay" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Install hyprland packages
|
# Install hyprland packages
|
||||||
execute_script "00-hypr-pkgs.sh"
|
execute_script "01-hypr-pkgs.sh"
|
||||||
|
|
||||||
# Install pipewire and pipewire-audio
|
# Install pipewire and pipewire-audio
|
||||||
execute_script "pipewire.sh"
|
execute_script "pipewire.sh"
|
||||||
@@ -199,6 +292,9 @@ execute_script "hyprland.sh"
|
|||||||
if [ "$nvidia" == "Y" ]; then
|
if [ "$nvidia" == "Y" ]; then
|
||||||
execute_script "nvidia.sh"
|
execute_script "nvidia.sh"
|
||||||
fi
|
fi
|
||||||
|
if [ "$nouveau" == "Y" ]; then
|
||||||
|
execute_script "nvidia_nouveau.sh"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$gtk_themes" == "Y" ]; then
|
if [ "$gtk_themes" == "Y" ]; then
|
||||||
execute_script "gtk_themes.sh"
|
execute_script "gtk_themes.sh"
|
||||||
@@ -211,10 +307,20 @@ fi
|
|||||||
if [ "$thunar" == "Y" ]; then
|
if [ "$thunar" == "Y" ]; then
|
||||||
execute_script "thunar.sh"
|
execute_script "thunar.sh"
|
||||||
fi
|
fi
|
||||||
|
if [ "$thunar_choice" == "Y" ]; then
|
||||||
|
execute_script "thunar_default.sh"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$ags" == "Y" ]; then
|
||||||
|
execute_script "ags.sh"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$sddm" == "Y" ]; then
|
if [ "$sddm" == "Y" ]; then
|
||||||
execute_script "sddm.sh"
|
execute_script "sddm.sh"
|
||||||
fi
|
fi
|
||||||
|
if [ "$sddm_theme" == "Y" ]; then
|
||||||
|
execute_script "sddm_theme.sh"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$xdph" == "Y" ]; then
|
if [ "$xdph" == "Y" ]; then
|
||||||
execute_script "xdph.sh"
|
execute_script "xdph.sh"
|
||||||
@@ -223,34 +329,72 @@ fi
|
|||||||
if [ "$zsh" == "Y" ]; then
|
if [ "$zsh" == "Y" ]; then
|
||||||
execute_script "zsh.sh"
|
execute_script "zsh.sh"
|
||||||
fi
|
fi
|
||||||
|
if [ "$pokemon_choice" == "Y" ]; then
|
||||||
|
execute_script "zsh_pokemon.sh"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$input_group" == "Y" ]; then
|
||||||
execute_script "InputGroup.sh"
|
execute_script "InputGroup.sh"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$rog" == "Y" ]; then
|
if [ "$rog" == "Y" ]; then
|
||||||
execute_script "rog.sh"
|
execute_script "rog.sh"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$dots" == "Y" ]; then
|
if [ "$dots" == "Y" ]; then
|
||||||
execute_script "dotfiles.sh"
|
execute_script "dotfiles-main.sh"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
clear
|
||||||
|
|
||||||
printf "\n${OK} Yey! Installation Completed.\n"
|
# copy fastfetch config if arch.png is not present
|
||||||
printf "\n"
|
if [ ! -f "$HOME/.config/fastfetch/arch.png" ]; then
|
||||||
|
cp -r assets/fastfetch "$HOME/.config/"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# final check essential packages if it is installed
|
||||||
|
execute_script "02-Final-Check.sh"
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
|
# Check if hyprland or hyprland-git is installed
|
||||||
|
if pacman -Q hyprland &> /dev/null || pacman -Q hyprland-git &> /dev/null; then
|
||||||
|
printf "\n${OK} Hyprland is installed. However, some essential packages may not be installed. Please see above!"
|
||||||
|
printf "\n${CAT} Ignore this message if it states ${YELLOW}All essential packages${RESET} are installed as per above\n"
|
||||||
sleep 2
|
sleep 2
|
||||||
printf "\n${NOTE} You can start Hyprland by typing Hyprland (IF SDDM is not installed) (note the capital H!).\n"
|
printf "\n%.0s" {1..2}
|
||||||
printf "\n"
|
|
||||||
printf "\n${NOTE} It is highly recommended to reboot your system.\n\n"
|
printf "${SKY_BLUE}Thank you${RESET} for using ${MAGENTA}KooL's Hyprland Dots${RESET}. ${YELLOW}Enjoy and Have a good day!${RESET}"
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
|
printf "\n${NOTE} You can start Hyprland by typing ${SKY_BLUE}Hyprland${RESET} (IF SDDM is not installed) (note the capital H!).\n"
|
||||||
|
printf "\n${NOTE} However, it is ${YELLOW}highly recommended to reboot${RESET} your system.\n\n"
|
||||||
|
|
||||||
read -rp "${CAT} Would you like to reboot now? (y/n): " HYP
|
read -rp "${CAT} Would you like to reboot now? (y/n): " HYP
|
||||||
|
|
||||||
if [[ "$HYP" =~ ^[Yy]$ ]]; then
|
HYP=$(echo "$HYP" | tr '[:upper:]' '[:lower:]')
|
||||||
if [[ "$nvidia" == "Y" ]]; then
|
|
||||||
echo "${NOTE} NVIDIA GPU detected. Rebooting the system..."
|
if [[ "$HYP" == "y" || "$HYP" == "yes" ]]; then
|
||||||
systemctl reboot
|
echo "${INFO} Rebooting now..."
|
||||||
else
|
|
||||||
systemctl reboot
|
systemctl reboot
|
||||||
|
elif [[ "$HYP" == "n" || "$HYP" == "no" ]]; then
|
||||||
|
echo "${OK} You choose NOT to reboot"
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
# Check if NVIDIA GPU is present
|
||||||
|
if lspci | grep -i "nvidia" &> /dev/null; then
|
||||||
|
echo "${INFO} HOWEVER ${YELLOW}NVIDIA GPU${RESET} detected. Reminder that you must REBOOT your SYSTEM..."
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
echo "${WARN} Invalid response. Please answer with 'y' or 'n'. Exiting."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Print error message if neither package is installed
|
||||||
|
printf "\n${WARN} Hyprland is NOT installed. Please check 00_CHECK-time_installed.log and other files in the Install-Logs/ directory..."
|
||||||
|
printf "\n%.0s" {1..3}
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
65
preset.sh
65
preset.sh
@@ -1,48 +1,55 @@
|
|||||||
# 💫 https://github.com/JaKooLit 💫 #
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
#
|
|
||||||
# CREDIT to: https://github.com/PostCyberPunk for this Preset function
|
# CREDIT to: https://github.com/PostCyberPunk for this Preset function
|
||||||
|
|
||||||
## -- Make sure you use the right answer or install script will fail ###
|
## -- Make sure you use the right answer or install script will fail ###
|
||||||
# Make sure proper AUR Helper is use NO Upperscript. Either paru or yay only is accepted
|
|
||||||
# The rest Change to Y for Yes and N for No.
|
# The rest Change to Y for Yes and N for No.
|
||||||
|
|
||||||
### -Type AUR helper
|
### Script will install nvidia-dkms nvidia-utils & nvidia-settings
|
||||||
|
###-Would you like script to Configure NVIDIA for you?
|
||||||
|
nvidia="N"
|
||||||
|
### Would you like to blacklist nouveau? (y/n)
|
||||||
|
nouveau="N"
|
||||||
|
|
||||||
### yay or paru
|
### yay or paru
|
||||||
aur_helper="yay"
|
aur_helper="yay"
|
||||||
############ use : "Y" or "N"
|
|
||||||
###-Do you have any nvidia gpu in your system?
|
|
||||||
nvidia="Y"
|
|
||||||
###-Install GTK themes (required for Dark/Light function)?
|
###-Install GTK themes (required for Dark/Light function)?
|
||||||
gtk_themes="Y"
|
gtk_themes="Y"
|
||||||
|
|
||||||
###-Do you want to configure Bluetooth?
|
###-Do you want to configure Bluetooth?
|
||||||
bluetooth="Y"
|
bluetooth="Y"
|
||||||
|
|
||||||
###-Do you want to install Thunar file manager?
|
###-Do you want to install Thunar file manager?
|
||||||
thunar="Y"
|
thunar="Y"
|
||||||
###-Install & configure SDDM log-in Manager plus (OPTIONAL) SDDM Theme?
|
### Do you want to set Thunar as the default file manager?
|
||||||
|
thunar_choice="Y"
|
||||||
|
|
||||||
|
|
||||||
|
### Adding user to the 'input' group might be necessary for waybar keyboard-state functionality
|
||||||
|
input_group="Y"
|
||||||
|
|
||||||
|
### Desktop overview Demo Link in README
|
||||||
|
### Desktop overview Demo Link in README
|
||||||
|
### Install AGS (aylur's GTK shell) v1 for Desktop-Like Overview?"
|
||||||
|
ags="Y"
|
||||||
|
|
||||||
|
###-Install & configure SDDM log-in Manager
|
||||||
sddm="Y"
|
sddm="Y"
|
||||||
|
### install and download SDDM themes
|
||||||
|
sddm_theme="Y"
|
||||||
|
|
||||||
###-Install XDG-DESKTOP-PORTAL-HYPRLAND? (For proper Screen Share ie OBS)
|
###-Install XDG-DESKTOP-PORTAL-HYPRLAND? (For proper Screen Share ie OBS)
|
||||||
xdph="Y"
|
xdph="Y"
|
||||||
###-Install zsh, oh-my-zsh & (Optional) pokemon-colorscripts?
|
|
||||||
zsh="Y"
|
|
||||||
###-Installing in a Asus ROG Laptops?
|
|
||||||
rog="N"
|
|
||||||
###-Do you want to download pre-configured Hyprland dotfiles?
|
|
||||||
dots="Y"
|
|
||||||
|
|
||||||
### These are the sub-questions of the above choices
|
### Shell extension. Bash alternative
|
||||||
### Would you like to blacklist nouveau? (y/n)
|
###-Install zsh, oh-my-zsh
|
||||||
blacklist_nouveau="Y"
|
zsh="Y"
|
||||||
### XDG-desktop-portal-KDE & GNOME (if installed) should be manually disabled or removed! Script cant remove nor disable it.
|
### add Pokemon color scripts to terminal
|
||||||
### Would you like to try to remove other XDG-Desktop-Portal-Implementations? (y/n)
|
|
||||||
XDPH1="Y"
|
|
||||||
### SDDM is already installed. Would you like to manually install sddm-git to remove it? This requires manual intervention. (y/n)
|
|
||||||
manual_install_sddm="N"
|
|
||||||
### OPTIONAL - Would you like to install SDDM themes? (y/n)
|
|
||||||
install_sddm_theme="Y"
|
|
||||||
### " This script will add your user to the 'input' group."
|
|
||||||
### " Please note that adding yourself to the 'input' group might be necessary for waybar keyboard-state functionality."
|
|
||||||
input_group_choid="Y"
|
|
||||||
### OPTIONAL - Do you want to add Pokemon color scripts? (y/n):
|
|
||||||
pokemon_choice="Y"
|
pokemon_choice="Y"
|
||||||
### Do you want to upgrade to the latest version? (y/n) - This is for the dotfiles
|
|
||||||
upgrade_choice="Y"
|
### This will install ASUSCTL & SUPERGFXCTL
|
||||||
|
###-Installing on Asus ROG Laptops?
|
||||||
|
rog="N"
|
||||||
|
|
||||||
|
###-Download and Add pre-configured Hyprland dotfiles?
|
||||||
|
dots="Y"
|
||||||
|
|||||||
Reference in New Issue
Block a user