93 Commits

Author SHA1 Message Date
Ja.KooLit
b2195df659 Merge pull request #75 from JaKooLit/development
Releasing a new installer to work with Hyprland-Dots v2.2.11
2024-05-13 11:20:28 +09:00
Ja.KooLit
c5837fd525 Merge pull request #74 from JaKooLit/main
Merging Main to Development, prior release of new installer for Hyprland-Dots v2.2.11
2024-05-13 11:14:22 +09:00
JaKooLit
c3710b89aa edited install.sh to avoid confusion (hopefully) on use preset settings 2024-05-11 19:25:10 +09:00
JaKooLit
87dfa43733 updated readme to highlight pipewire 2024-05-11 11:37:24 +09:00
Ja.KooLit
faa76f335f Update README.md 2024-05-10 22:48:13 +09:00
Ja.KooLit
dc800878a6 Update README.md 2024-05-10 22:47:10 +09:00
JaKooLit
f7a20da6ea updated for wallust migration from pywal 2024-05-10 12:31:15 +09:00
Ja.KooLit
fdafa3d472 Merge pull request #72 from JaKooLit/main
Tweaked Script including sddm.sh
2024-05-08 11:11:49 +09:00
JaKooLit
9abf9a459d Tweaked Script including sddm.sh 2024-05-08 11:10:17 +09:00
JaKooLit
8ed397017c added ags for the upcoming hyprland-dots v2.2.11 with ags overview 2024-05-07 23:12:10 +09:00
Ja.KooLit
88629e5e07 Merge pull request #71 from JaKooLit/main
main to dev
2024-05-07 02:10:53 +09:00
JaKooLit
fdd442e74b updated arch. switched to cava as installation of cava-git keep the installation hang 2024-05-07 02:04:31 +09:00
Ja.KooLit
f1758c4a67 switched to rofi-wayland extra repo 2024-05-05 07:10:41 +09:00
Ja.KooLit
85eac029b8 Merge pull request #69 from JaKooLit/main
main to development update
2024-05-05 00:42:36 +09:00
Ja.KooLit
28a183f820 Merge pull request #68 from JaKooLit/development
Development to Main
2024-05-05 00:41:32 +09:00
JaKooLit
f57842bd36 Made a separate script for fonts installation for easy debugging purpose 2024-05-04 23:57:28 +09:00
Ja.KooLit
6247e2fa09 switched to cava-git version as cava have issues 2024-05-03 22:48:47 +09:00
JaKooLit
a6b1defa6c added pyquery for new weather python script for waybar on Hyprland-Dots v2.2.10 2024-05-03 17:59:52 +09:00
JaKooLit
d41ff66680 updated readme for some tips for nvidia-gpu users 2024-05-03 09:08:11 +09:00
JaKooLit
51bd4af82c Added pyprland (hyprland plugin) 2024-05-02 19:48:40 +09:00
Ja.KooLit
74ca2e4f90 Merge pull request #66 from JaKooLit/development
some error message grammar corrections
2024-05-02 00:04:17 +09:00
Ja.KooLit
0dec7b3ef2 some error message grammar corrections 2024-05-02 00:00:36 +09:00
Ja.KooLit
2c69ef4342 Merge pull request #65 from JaKooLit/main
synchronize main to development
2024-05-01 12:00:59 +09:00
Ja.KooLit
aeeb8b50d8 Merge pull request #64 from JaKooLit/development
updated install.sh
2024-05-01 12:00:10 +09:00
JaKooLit
8e97290429 updated install.sh 2024-05-01 11:56:21 +09:00
Ja.KooLit
1c49abbe54 Merge pull request #63 from JaKooLit/development
updated readme to add stargazers
2024-04-30 23:50:12 +09:00
JaKooLit
8cf857efc7 updated readme 2024-04-30 23:48:49 +09:00
Ja.KooLit
a265f12931 Merge pull request #62 from JaKooLit/development
Updated readme to download to user directory instead of somewhere else
2024-04-29 08:28:10 +09:00
Ja.KooLit
95cc453086 Merge pull request #61 from JaKooLit/main
main to development
2024-04-29 08:27:13 +09:00
JaKooLit
fbf8545540 Updated readme 2024-04-29 07:51:12 +09:00
JaKooLit
f1fd1d1170 updated readme 2024-04-26 09:39:59 +09:00
Ja.KooLit
2154eef613 Merge pull request #59 from JaKooLit/development
updated SDDM scripts. Regarding custom theme
2024-04-26 09:28:49 +09:00
JaKooLit
77192cd06e updated SDDM theme 2024-04-26 09:27:02 +09:00
Ja.KooLit
c73c155a79 Merge pull request #58 from JaKooLit/development
Dropping swayidle and swaylock in favor of hypridle and hyprlock
2024-04-25 22:49:48 +09:00
JaKooLit
45612f287a Dropping swayidle and swaylock in favor of hypridle and hyprlock 2024-04-23 01:47:12 +09:00
Ja.KooLit
b93b09e850 Merge pull request #54 from JaKooLit/development
Development
2024-04-21 01:56:26 +09:00
JaKooLit
24be6f7e0f updated changelogs 2024-04-21 01:55:53 +09:00
Ja.KooLit
37a6170c86 Merge pull request #53 from JaKooLit/main
synchronize main and development branch
2024-04-21 01:53:40 +09:00
Ja.KooLit
1626443441 Merge branch 'development' into main 2024-04-21 01:53:33 +09:00
JaKooLit
1a09f27e8c updated changed oh my zsh default theme to xiong-chiamiov-plus 2024-04-20 11:16:17 +09:00
Ja.KooLit
3ba886fc82 added hyprcursor 2024-03-17 02:32:05 +09:00
Ja.KooLit
80dad5f613 Merge pull request #41 from cbaconnier/fix-sddm-prompt-loop
fix: fix infinte loop when prompting for SDDM themes
2024-03-08 05:53:30 +09:00
Clément Baconnier
198b3e95eb Prevent infinte loop when prompting for SDDM themes 2024-03-07 20:54:24 +01:00
Ja.KooLit
f9a98bc123 Merge pull request #39 from JaKooLit/development
replaced sddm-git with sddm
2024-03-02 09:24:50 +09:00
Ja.KooLit
81efa38c70 replaced sddm-git with sddm 2024-03-02 09:22:16 +09:00
Ja.KooLit
7159473715 Merge pull request #21 from JaKooLit/development
dropped wlsunset
2024-01-11 14:03:47 +00:00
Ja.KooLit
dc6b2523c9 Merge pull request #23 from JaKooLit/JaKooLit-patch-1
Update CHANGELOGS.md
2024-01-11 14:03:32 +00:00
Ja.KooLit
0ff82e2781 Update CHANGELOGS.md 2024-01-11 14:03:06 +00:00
Ja.KooLit
be24393d81 Update CHANGELOGS.md 2024-01-11 14:01:37 +00:00
Ja.KooLit
f406c12892 Merge pull request #22 from JaKooLit/JaKooLit-patch-1
Update CHANGELOGS.md
2024-01-11 14:00:51 +00:00
Ja.KooLit
0258e4f128 Update CHANGELOGS.md 2024-01-11 14:00:28 +00:00
Ja.KooLit
c0bef5bf88 dropped wlsunset 2024-01-11 22:54:55 +09:00
JaKooLit
93218e0ff7 Readme updated regarding 470 nvidia drivers 2024-01-07 01:07:40 +09:00
JaKooLit
e8773551c2 some small corrections on the typo parts 2024-01-06 22:01:12 +09:00
JaKooLit
376cd5ddb7 corrected custom link 2024-01-06 02:25:45 +09:00
JaKooLit
382b9d6d37 Added guidelines for PR, and Reporting, etc 2024-01-06 02:20:03 +09:00
JaKooLit
986b94d138 added PR and Reporting templates, etc 2024-01-06 02:10:40 +09:00
Ja.KooLit
8fe78dd9c8 updated InputGroup prompt. Updated screenshot of installer 2024-01-05 23:33:41 +09:00
Ja.KooLit
743a9e992d returning SDDM question 2024-01-05 23:07:57 +09:00
Ja.KooLit
531edb0107 updated install.sh and preset.sh 2024-01-05 22:45:20 +09:00
Ja.KooLit
dc6f780932 Merge pull request #17 from PostCyberPunk/main
feat(preset): Added a Preset for Quick Installation / Update without prompting the user to answer questions
2024-01-05 22:38:07 +09:00
Ja.KooLit
e7d04b4f7b resolving conflicts 2024-01-05 22:37:05 +09:00
Ja.KooLit
457dbc577f added 2024-01-05 22:32:53 +09:00
Ja.KooLit
fbfdf9bc91 remove install.sh to avoid conflict 2024-01-05 22:32:01 +09:00
Ja.KooLit
0a35fe2b15 to resolve the PR conflict 2024-01-05 22:27:02 +09:00
Ja.KooLit
6066051354 Update preset.sh
Changed some preset settings in case Users accidentally choose Y in using preset with even reviewing it
2024-01-05 22:24:52 +09:00
Ja.KooLit
fc31b99d98 Update install.sh
Added some notes regarding Use of Preset
2024-01-05 22:22:33 +09:00
PostCyberPunk
33f538966f feat(preset):add preset for quick installlation
check var exist before ask

remove var

add preset file

add a question to check should use preset

patch custom question

fix blacklist nouveau name not clear

fix input group var not clear

fix pokemon var not clear

add comment for preset var

use preset env var before excute script

add preset to script

print preset info
2024-01-05 17:51:33 +08:00
JaKooLit
d574e9f10a updated readme re-nvidia 2024-01-04 14:12:42 +09:00
Ja.KooLit
749393f31e Merge pull request #16 from JaKooLit/JaKooLit-patch-1
Update README.md
2024-01-04 02:18:49 +09:00
Ja.KooLit
7d18142300 Update README.md 2024-01-04 02:18:33 +09:00
Ja.KooLit
cee14736b6 Merge pull request #15 from JaKooLit/JaKooLit-patch-1
Update README.md
2024-01-04 02:17:17 +09:00
Ja.KooLit
af581c5582 Update README.md 2024-01-04 02:17:00 +09:00
JaKooLit
97c2a6f802 updated readme 2024-01-03 18:45:38 +09:00
JaKooLit
2788c45347 updated Bibaba Cursor to newer version 2024-01-02 17:24:19 +09:00
Ja.KooLit
fa1b5cc43a Merge pull request #14 from JaKooLit/development
Migration to new structure completed
2024-01-01 23:24:20 +09:00
JaKooLit
f1542a11ed ok. This should be the final push.... F.. hard to tweak... lmao 2024-01-01 23:09:47 +09:00
JaKooLit
b540e8a930 tweaked abit 2024-01-01 22:56:17 +09:00
JaKooLit
70af4617c2 ok. adding sleep as seems that base is being ommited 2024-01-01 22:49:55 +09:00
JaKooLit
4dc56c6493 Migration to better install completed 2024-01-01 22:33:09 +09:00
JaKooLit
2720bb7441 ok I figured it out why 2024-01-01 21:48:58 +09:00
JaKooLit
b5985dab7e I think this is the culprit 2024-01-01 21:30:51 +09:00
JaKooLit
489a060a3e another update 2024-01-01 21:21:25 +09:00
JaKooLit
64a0cfae32 updated 2024-01-01 21:09:12 +09:00
JaKooLit
662e54aecd test- 2024-01-01 19:44:32 +09:00
JaKooLit
38e3430c64 revert back previous 2024-01-01 19:36:02 +09:00
JaKooLit
fe60a6129e update 2024-01-01 19:29:57 +09:00
JaKooLit
36c054be45 updated thunar.sh 2023-12-31 00:43:26 +09:00
JaKooLit
9c80e88985 Small update on install scripts 2023-12-30 21:00:01 +09:00
JaKooLit
2c8edda4f2 updated installer layout 2023-12-30 15:20:01 +09:00
JaKooLit
5052416f08 Making Pokemon Color Script as optional 2023-12-30 15:07:24 +09:00
JaKooLit
7ba47f5a6d Code Cleaned up. Easier to trace and Debug 2023-12-30 14:36:11 +09:00
JaKooLit
dd9626d900 Code Cleaned up :) Better and Easier to Debug and Trace 2023-12-30 14:35:01 +09:00
35 changed files with 1152 additions and 699 deletions

4
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,4 @@
# These are supported funding model platforms
github: JaKooLit
ko_fi: jakoolit

46
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,46 @@
---
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 Normal file
View File

@@ -0,0 +1,38 @@
---
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.]

View File

@@ -0,0 +1,24 @@
---
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.]

View File

@@ -0,0 +1,28 @@
---
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.]

43
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,43 @@
# Pull Request
## Description
Please read these instructions and remove unnecessary text.
- Try to include a summary of the changes and which issue is fixed.
- Also include relevant motivation and context (if applicable).
- List any dependencies that are required for this change. (e.g., packages or other PRs)
- Provide a link if there is an issue related to this pull request. e.g., Fixes # (issue)
- Please add Reviewers, Assignees, Labels, Projects, and Milestones to the PR. (if applicable)
## Type of change
Please put an `x` in the boxes that apply:
- [ ] **Bug fix** (non-breaking change which fixes an issue)
- [ ] **New feature** (non-breaking change which adds functionality)
- [ ] **Breaking change** (fix or feature that would cause existing functionality to not work as expected)
- [ ] **Documentation update** (non-breaking change; modified files are limited to the documentations)
- [ ] **Technical debt** (a code change that does not fix a bug or add a feature but makes something clearer for devs)
- [ ] **Other** (provide details below)
## Checklist
Please put an `x` in the boxes that apply:
- [ ] I have read the [CONTRIBUTING](https://github.com/JaKooLit/Arch-Hyprland/blob/main/CONTRIBUTING.md) document.
- [ ] My code follows the code style of this project.
- [ ] My commit message follows the [commit guidelines](https://github.com/JaKooLit/Arch-Hyprland/blob/main/CONTRIBUTING.md#git-commit-messages).
- [ ] My change requires a change to the documentation.
- [ ] I want to add something in Arch-Hyprland wiki.
- [ ] I have added tests to cover my changes.
- [ ] I have tested my code locally and it works as expected.
- [ ] All new and existing tests passed.
## Screenshots
(if appropriate)
## Additional context
Add any other context about the problem here.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 665 KiB

View File

@@ -1,5 +1,57 @@
## Changelogs ## Changelogs
## 10 May 2024
- added wallust-git and remove python-pywal for migration to wallust on Hyprland-Dots v2.2.11
## 08 May 2024
- Adjusted sddm.sh since it does not respect preset.sh
- install.sh have been rearranged so it quits if user choose not to proceed
## 07 May 2024
- Minor typo change on nvidia.sh
- switch back to cava since installing cava-git keep it hanging (see known-issue on readme)
## 05 May 2024
- switched to rofi-wayland Extra Repo
## 04 May 2024
- separated fonts installation script for easy debugging
## 03 May 2024
- added python3-pyquery for new weather-waybar python based on Hyprland-Dots
## 02 May 2024
- Added pyprland (hyprland plugin)
## 26 Apr 2024
- Updated sddm.sh for Qt6 variant
## 23 Apr 2024
- Dropping swayidle and swaylock in favor of hypridle and hyprlock
## 20 Apr 2024
- Change default Oh-my-zsh theme to xiong-chiamiov-plus
## 16 Mar 2024
- added hyprcursor
## 1 Mar 2024
- replaced sddm-git with sddm
## 11 Jan 2024
- dropped wlsunset
## 05 Jan 2024
- Added a preset feature
- Added templates for contributing, and reporting, etc
## 01 Jan 2024
- Re-coded complete and test
- Added to spice up pacman.conf including adding of ILoveCandy on it :)
## 30 Dec 2023
- Install scripts reconstructed
## 29 December 2023 ## 29 December 2023
- Remove dunst in favor of swaync. NOTE: Part of the script is to also uninstall mako and dunst (if installed) as on my experience, dunst is sometimes taking over the notification even if it is not set to start - Remove dunst in favor of swaync. NOTE: Part of the script is to also uninstall mako and dunst (if installed) as on my experience, dunst is sometimes taking over the notification even if it is not set to start

View File

@@ -0,0 +1,149 @@
# Commit Message Guidelines
A good commit message should be descriptive and provide context about the changes made. This makes it easier to understand and review the changes in the future.
Here are some guidelines for writing descriptive commit messages:
- Start with a short summary of the changes made in the commit.
- Use imperative mood for the summary, as if you're giving a command. For example, "Add feature" instead of "Added feature".
- Provide additional details in the commit message body, if necessary. This could include the reason for the change, the impact of the change, or any dependencies that were introduced or removed.
- Keep the message within 72 characters per line to ensure that it's easy to read in Git log output.
Examples of good commit messages:
- "Add authentication feature for user login"
- "Fix bug causing application to crash on startup"
- "Update documentation for API endpoints"
Remember, writing descriptive commit messages can save time and frustration in the future, and help others understand the changes made to the codebase.
## Commit Message Types
Here's a more comprehensive list of commit types that you can use:
`feat`: Adding a new feature to the project
```markdown
feat: Add multi-image upload support
```
`fix`: Fixing a bug or issue in the project
```markdown
fix: Fix bug causing application to crash on startup
```
`docs`: Updating documentation in the project
```markdown
docs: Update documentation for API endpoints
```
`style`: Making cosmetic or style changes to the project (such as changing colors or formatting code)
```markdown
style: Update colors and formatting
```
`refactor`: Making code changes that don't affect the behavior of the project, but improve its quality or maintainability
```markdown
refactor: Remove unused code
```
`test`: Adding or modifying tests for the project
```markdown
test: Add tests for new feature
```
`chore`: Making changes to the project that don't fit into any other category, such as updating dependencies or configuring the build system
```markdown
chore: Update dependencies
```
`perf`: Improving performance of the project
```markdown
perf: Improve performance of image processing
```
`security`: Addressing security issues in the project
```markdown
security: Update dependencies to address security issues
```
`merge`: Merging branches in the project
```markdown
merge: Merge branch 'feature/branch-name' into develop
```
`revert`: Reverting a previous commit
```markdown
revert: Revert "Add feature"
```
`build`: Making changes to the build system or dependencies of the project
```markdown
build: Update dependencies
```
`ci`: Making changes to the continuous integration (CI) system for the project
```markdown
ci: Update CI configuration
```
`config`: Making changes to configuration files for the project
```markdown
config: Update configuration files
```
`deploy`: Making changes to the deployment process for the project
```markdown
deploy: Update deployment scripts
```
`init`: Creating or initializing a new repository or project
```markdown
init: Initialize project
```
`move`: Moving files or directories within the project
```markdown
move: Move files to new directory
```
`rename`: Renaming files or directories within the project
```markdown
rename: Rename files
```
`remove`: Removing files or directories from the project
```markdown
remove: Remove files
```
`update`: Updating code, dependencies, or other components of the project
```markdown
update: Update code
```
These are just some examples, and you can create your own custom commit types as well. However, it's important to use them consistently and write clear, descriptive commit messages to make it easy for others to understand the changes you've made.
**Important:** If you are planning to use a custom commit message type other than the ones listed above, make sure to add it to this list so that others can understand it as well. Create a pull request to add it to this file.

70
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,70 @@
# Contributing to Community Standards
Thank you for your interest in contributing to Community Standards! We welcome any contributions, including bug fixes, feature enhancements, documentation improvements, and other general improvements.
## Getting Started
1. Fork the branch development repository to your GitHub account. This will create a copy of this repository in your account. You can make changes to this copy without affecting the original repository.
- For fork this repository, click the **Fork** button in the top right corner of this page or click [here](https://github.com/JaKooLit/Arch-Hyprland/fork).
- Make sure to uncheck the Copy the `main` branch only. This will copy the development branch and other branches (if any)
2. Clone your forked repository to your local machine.
- Use the following command to clone your forked repository to your local machine.
```bash
git clone --depth=1 -b development https://github.com/JaKooLit/Arch-Hyprland.git
```
3. Create a new branch for your changes.
- For example, to create a new branch named `your-branch-name`, use the following command.
```bash
git checkout -b your-branch-name
```
4. Make your changes and commit them with a descriptive commit message.
- For example, to commit your changes, use the following command and make sure to follow the [commit message guidelines](https://github.com/JaKooLit/Arch-Hyprland/blob/main/COMMIT_MESSAGE_GUIDELINES.md).
```bash
git commit -m "feat: add a new feature"
```
5. Push your changes to your forked repository.
- For example, to push your changes to your forked repository, use the following command.
```bash
git push origin your-branch-name
```
6. Submit a **pull request** to the development branch repository.
- For example, to create a pull request, use the following steps.
1. Go to your forked repository.
2. Click the **Compare & pull request** button next to your `your-branch-name` branch.
3. Add a title and description for your pull request.
4. Click **Create pull request** and remember to add the relevant labels with using the [pull request template](https://github.com/JaKooLit/Arch-Hyprland/blob/main/.github/PULL_REQUEST_TEMPLATE.md).
## Guidelines
- Follow the code style of the project.
- Update the **documentation** if necessary.
- Add tests if applicable.
- Make sure all tests pass or fully tested before submitting your changes.
- Keep your pull request focused and avoid including unrelated changes.
- Remember to follow the following files before submitting your changes.
- [bug_report.md](https://github.com/JaKooLit/Arch-Hyprland/blob/main/.github/ISSUE_TEMPLATE/bug_report.md) - Use this template to create a report to help us improve.
- [feature_request.md](https://github.com/JaKooLit/Arch-Hyprland/blob/main/.github/ISSUE_TEMPLATE/feature_request.md) - Use this template to suggest a feature for this project.
- [documentation_update.md](https://github.com/JaKooLit/Arch-Hyprland/blob/main/.github/ISSUE_TEMPLATE/documentation_update.md) - Use this template to propose a change to the documentation.
- [custom.md](https://github.com/JaKooLit/Arch-Hyprland/blob/main/.github/ISSUE_TEMPLATE/custom.md) - Use this template to submit a custom issue.
- [PULL_REQUEST_TEMPLATE.md](https://github.com/JaKooLit/Arch-Hyprland/blob/main/.github/PULL_REQUEST_TEMPLATE.md) - Use this template to submit a pull request.
- [COMMIT_MESSAGE_GUIDELINES.md](https://github.com/JaKooLit/Arch-Hyprland/blob/main/COMMIT_MESSAGE_GUIDELINES.md) - Read this file to learn about the commit message guidelines.
- [CONTRIBUTING.md](https://github.com/JaKooLit/Arch-Hyprland/blob/main/CONTRIBUTING.md) - Read this file to learn about the contributing guidelines.
- [LICENSE](https://github.com/JaKooLit/Arch-Hyprland/blob/main/LICENSE.md) - Read this file to learn about the license.
- [README.md](https://github.com/JaKooLit/Arch-Hyprland/blob/main/README.md) - Read this file to learn about the project.
## Contact
If you have any questions, feel free to contact via [GitHub Discussions](https://github.com/JaKooLit/Arch-Hyprland/discussions) or [Through Discord Server](https://discord.gg/V2SJ92vbEN)

BIN
Installer.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

View File

@@ -9,6 +9,17 @@
</div> </div>
#### Hyprland-Dots-showcase #### Hyprland-Dots-showcase
https://github.com/JaKooLit/Arch-Hyprland/assets/85185940/84e3948f-edbf-45b8-9e3f-1f6699e3830a
### Gallery and Videos
<details>
<summary>
📷 Screenshots
</summary>
<p align="center"> <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-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"" /> <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"" />
@@ -29,6 +40,7 @@
#### 📽️ youtube video showcase: [`Link`](https://youtu.be/W2UFwkgdwNo) #### 📽️ 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 installation, it will be downloaded from that centralized repo.
@@ -36,39 +48,47 @@
- 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)
> [!IMPORTANT] > [!IMPORTANT]
> install a backup tool like `snapper` or `timeshift`. and Backup your system before installing hyprland using this script. This script does NOT include uninstallation of packages > install a backup tool like `snapper` or `timeshift`. and Backup your system before installing hyprland using this script. This script does NOT include uninstallation of packages
> [!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.
> [!WARNING]
> 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
- This install script is intended for atleast Server type / Minimal Arch Linux installed. - This install script is intended for atleast Server type / Minimal Arch Linux installed.
#### 🔘 Pipewire and Pipewire audio > [!NOTE]
- This script will install pipewire and will also disable or will uninstall pulseaudio. If you dont want it, you can simply just delete pipewire.sh in install-scripts folder before installing. > 🔘 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.
#### ✨ Costumize the packages to be installed #### ✨ Costumize 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 folder, 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 - 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) - If you opted to install SDDM theme, here's the [`LINK`](https://github.com/JaKooLit/simple-sddm-2)
- 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 and Cursor offered are Tokyo Nights. [`LINK`](https://github.com/JaKooLit/GTK-themes-icons) & Bibata Cursor Modern Ice
#### 👀 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 scripts-folder
> [!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)
#### ✨ to run #### ✨ to run
> 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 git clone --depth=1 https://github.com/JaKooLit/Arch-Hyprland.git ~/Arch-Hyprland
cd Arch-Hyprland cd ~/Arch-Hyprland
chmod +x install.sh chmod +x install.sh
./install.sh ./install.sh
``` ```
<p align="center"> <p align="center">
<img align="center" width="100%" src="https://raw.githubusercontent.com/JaKooLit/Arch-Hyprland/main/Arch-Installer.png" /> <img align="center" width="100%" src="https://raw.githubusercontent.com/JaKooLit/Arch-Hyprland/main/Installer.png" />
#### ✨ 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
@@ -94,6 +114,10 @@ source ~/.zshrc
- 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
- CD into Arch-Hyprland Folder and then ran the below command.
- i.e. `./install-scripts/gtk-themes` - For reinstall GTK Themes.
#### 🛣️ Roadmap: #### 🛣️ Roadmap:
- ~~[ ] Install zsh and oh-my-zsh without necessary steps above~~ DONE - ~~[ ] Install zsh and oh-my-zsh without necessary steps above~~ DONE
- [ ] possibly adding gruvbox themes, cursors, icons - [ ] possibly adding gruvbox themes, cursors, icons
@@ -107,10 +131,18 @@ log into your account
`ls /dev/dri/by-path` find the matching id `ls /dev/dri/by-path` find the matching id
`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
) )
7. add "env = WLR_DRM_DEVICES,/dev/dri/cardX" to the ENVvariables config (.config/hypr/configs/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`
#### 🫥 Improving performance for Older Nvidia Cards using driver 470
- [`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.gg/V2SJ92vbEN)
- 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 :)
@@ -131,3 +163,7 @@ log into your account
#### 📹 Youtube videos (Click to view and watch the playlist) 📹 #### 📹 Youtube videos (Click to view and watch the playlist) 📹
[![Youtube Playlist Thumbnail](https://raw.githubusercontent.com/JaKooLit/screenshots/main/Youtube.png)](https://youtube.com/playlist?list=PLDtGd5Fw5_GjXCznR0BzCJJDIQSZJRbxx&si=iaNjLulFdsZ6AV-t) [![Youtube Playlist Thumbnail](https://raw.githubusercontent.com/JaKooLit/screenshots/main/Youtube.png)](https://youtube.com/playlist?list=PLDtGd5Fw5_GjXCznR0BzCJJDIQSZJRbxx&si=iaNjLulFdsZ6AV-t)
## 🥰🥰 💖💖 👍👍👍
[![Stargazers over time](https://starchart.cc/JaKooLit/Arch-Hyprland.svg?variant=adaptive)](https://starchart.cc/JaKooLit/Arch-Hyprland)

View File

@@ -3,7 +3,7 @@
export ZSH="$HOME/.oh-my-zsh" export ZSH="$HOME/.oh-my-zsh"
ZSH_THEME="agnoster" ZSH_THEME="xiong-chiamiov-plus"
plugins=( plugins=(
git git
@@ -20,7 +20,7 @@ source $ZSH/oh-my-zsh.sh
# 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
### From this line is for pywal-colors ### From this line is for pywal-colors

Binary file not shown.

42
install-scripts/00-base.sh Normal file → Executable file
View File

@@ -1,50 +1,22 @@
#!/bin/bash #!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# https://github.com/JaKooLit # base devel #
base=( base=(
base-devel base-devel
) )
############## 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"
# 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)"
RESET=$(tput sgr0)
# 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)_base.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_base.log"
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if pacman -Q "$1" &>/dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
sudo pacman -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if pacman -Q "$1" &>/dev/null ; then
echo -e "${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "${ERROR} $1 failed to install. Please check the $LOG. You may need to install manually."
exit 1
fi
fi
}
# Installation of main components # Installation of main components
printf "\n%s - Installing base-devel \n" "${NOTE}" printf "\n%s - Installing base-devel \n" "${NOTE}"
for PKG1 in "${base[@]}"; do for PKG1 in "${base[@]}"; do
install_package "$PKG1" | tee -a "$LOG" install_package_pacman "$PKG1" | tee -a "$LOG"
done done
clear
# clear

96
install-scripts/00-hypr-pkgs.sh Normal file → Executable file
View File

@@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# https://github.com/JaKooLit # Hyprland Packages #
# edit your packages desired here. # edit your packages desired here.
# WARNING! If you remove packages here, dotfiles may not work properly. # WARNING! If you remove packages here, dotfiles may not work properly.
@@ -12,11 +12,14 @@ Extra=(
) )
hypr_package=( hypr_package=(
aylurs-gtk-shell
cliphist cliphist
curl curl
grim grim
gvfs gvfs
gvfs-mtp gvfs-mtp
hypridle
hyprlock
imagemagick imagemagick
jq jq
kitty kitty
@@ -29,17 +32,17 @@ pipewire-alsa
playerctl playerctl
polkit-gnome polkit-gnome
python-requests python-requests
python-pywal python-pyquery
pyprland
qt5ct qt5ct
qt6ct qt6ct
qt6-svg qt6-svg
rofi-lbonn-wayland-git rofi-wayland
slurp slurp
swappy swappy
swayidle
swaylock-effects-git
swaync swaync
swww swww
wallust-git
waybar waybar
wget wget
wl-clipboard wl-clipboard
@@ -63,101 +66,46 @@ nvtop
nwg-look-bin nwg-look-bin
pacman-contrib pacman-contrib
vim vim
wlsunset
yt-dlp yt-dlp
) )
fonts=(
adobe-source-code-pro-fonts
noto-fonts-emoji
otf-font-awesome
ttf-droid
ttf-fira-code
ttf-jetbrains-mono
ttf-jetbrains-mono-nerd
)
# List of packages to uninstall as it conflicts with swaync or causing swaync to not function properly # List of packages to uninstall as it conflicts with swaync or causing swaync to not function properly
uninstall=( uninstall=(
dunst dunst
mako mako
) )
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont 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
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Set some colors for output messages # Change the working directory to the parent directory of the script
OK="$(tput setaf 2)[OK]$(tput sgr0)" PARENT_DIR="$SCRIPT_DIR/.."
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" cd "$PARENT_DIR" || exit 1
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)" source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# 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)_hypr-pkgs.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_hypr-pkgs.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# 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 :("
exit 1
fi
fi
}
# Function for uninstalling packages
uninstall_package() {
# Checking if package is installed
if pacman -Qi "$1" &>> /dev/null ; then
# Package is installed
echo -e "${NOTE} Uninstalling $1 ..."
sudo pacman -Rns --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is uninstalled
if ! pacman -Qi "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was uninstalled."
else
# Something went wrong, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to uninstall. Please check the log."
exit 1
fi
fi
}
# Installation of main components # Installation of main components
printf "\n%s - Installing hyprland packages.... \n" "${NOTE}" printf "\n%s - Installing hyprland packages.... \n" "${NOTE}"
for PKG1 in "${hypr_package[@]}" "${hypr_package_2[@]}" "${fonts[@]}" "${Extra[@]}"; do for PKG1 in "${hypr_package[@]}" "${hypr_package_2[@]}" "${Extra[@]}"; do
install_package "$PKG1" 2>&1 | tee -a "$LOG" install_package "$PKG1" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo -e "\e[1A\e[K${ERROR} - $PKG1 install had failed, please check the log" echo -e "\e[1A\e[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs"
exit 1 exit 1
fi fi
done 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}" printf "\n%s - Checking if mako or dunst are installed and removing for swaync to work properly \n" "${NOTE}"
for PKG in "${uninstall[@]}"; do for PKG in "${uninstall[@]}"; do
uninstall_package "$PKG" 2>&1 | tee -a "$LOG" uninstall_package "$PKG" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo -e "\e[1A\e[K${ERROR} - $PKG uninstallation had failed, please check the log" echo -e "\e[1A\e[K${ERROR} - $PKG uninstallation failed, please check the log"
exit 1 exit 1
fi fi
done done

View File

@@ -0,0 +1,82 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Global Functions for Scripts #
set -e
# 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)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Create Directory for Install Logs
if [ ! -d Install-Logs ]; then
mkdir Install-Logs
fi
# Function for installing packages
install_package_pacman() {
# Checking if package is already installed
if pacman -Q "$1" &>/dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
sudo pacman -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if pacman -Q "$1" &>/dev/null ; then
echo -e "${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "${ERROR} $1 failed to install. Please check the $LOG. You may need to install manually."
exit 1
fi
fi
}
ISAUR=$(command -v yay || command -v paru)
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# 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 :("
exit 1
fi
fi
}
# Function for uninstalling packages
uninstall_package() {
# Checking if package is installed
if pacman -Qi "$1" &>> /dev/null ; then
# Package is installed
echo -e "${NOTE} Uninstalling $1 ..."
sudo pacman -Rns --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is uninstalled
if ! pacman -Qi "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was uninstalled."
else
# Something went wrong, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to uninstall. Please check the log."
exit 1
fi
fi
}

36
install-scripts/InputGroup.sh Normal file → Executable file
View File

@@ -1,6 +1,12 @@
#!/bin/bash #!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Adding users into input group #
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### 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! ##
# 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 )"
@@ -8,26 +14,20 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || exit 1
# Set some colors for output messages source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# 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)_input.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_input.log"
while true; do while true; do
echo "${WARN} This script will add or remove your user from the 'input' group." 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." echo "${NOTE} Please note that adding yourself to the 'input' group might be necessary for waybar keyboard-state functionality."
read -p "${YELLOW}Do you want to proceed? (y/n): ${RESET}" choice if [[ -z $input_group_choid ]]; then
read -p "${YELLOW}Do you want to proceed? (y/n): ${RESET}" input_group_choid
fi
if [[ $choice == "y" || $choice == "Y" ]]; then 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} 'input' group exists."
@@ -36,7 +36,7 @@ while true; do
sudo groupadd input sudo groupadd input
# Log the creation of the 'input' group # Log the creation of the 'input' group
echo "$(date '+%Y-%m-%d %H:%M:%S') - 'input' group created" >> "$LOG" echo "'input' group created" >> "$LOG"
fi fi
# Add the user to the input group # Add the user to the input group
@@ -44,12 +44,14 @@ while true; do
echo "${OK} User added to the 'input' group. Changes will take effect after you log out and log back in." echo "${OK} User added to the 'input' group. Changes will take effect after you log out and log back in."
# Log the addition of the user to the 'input' group # Log the addition of the user to the 'input' group
echo "$(date '+%Y-%m-%d %H:%M:%S') - User added to 'input' group" >> "$LOG" echo "User added to 'input' group" >> "$LOG"
break # Break out of the loop if 'yes' is chosen break # Break out of the loop if 'yes' is chosen
elif [[ $choice == "n" || $choice == "N" ]]; then elif [[ $input_group_choid == "n" || $input_group_choid == "N" ]]; then
echo "${NOTE} No changes made. Exiting the script." echo "${NOTE} No changes made. Exiting the script."
break # Break out of the loop if 'no' is chosen break # Break out of the loop if 'no' is chosen
else else
echo "${ERROR} Invalid choice. Please enter 'y' for yes or 'n' for no." echo "${ERROR} Invalid choice. Please enter 'y' for yes or 'n' for no."
fi fi
done done
clear

50
install-scripts/bluetooth.sh Normal file → Executable file
View File

@@ -1,4 +1,6 @@
#!/bin/bash #!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Bluetooth Stuff #
blue=( blue=(
bluez bluez
@@ -6,52 +8,24 @@ bluez-utils
blueman blueman
) )
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont 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
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Set some colors for output messages # Change the working directory to the parent directory of the script
OK="$(tput setaf 2)[OK]$(tput sgr0)" PARENT_DIR="$SCRIPT_DIR/.."
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" cd "$PARENT_DIR" || exit 1
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)" source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# 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)_bluetooth.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_bluetooth.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# 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 :("
exit 1
fi
fi
}
# Bluetooth # Bluetooth
printf "${NOTE} Installing Bluetooth Packages...\n" printf "${NOTE} Installing Bluetooth Packages...\n"
for BLUE in "${blue[@]}"; do for BLUE in "${blue[@]}"; do
install_package "$BLUE" 2>&1 | tee -a "$LOG" install_package "$BLUE" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $BLUE install had failed, please check the install.log"; exit 1; } [ $? -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 Bluetooth Services...\n"

35
install-scripts/dotfiles.sh Normal file → Executable file
View File

@@ -1,16 +1,13 @@
#!/bin/bash #!/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 dont know what you are doing! ###################################### ## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
# Set some colors for output messages source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
printf "${NOTE} Downloading / Checking for existing Hyprland-Dots.tar.gz...\n" printf "${NOTE} Downloading / Checking for existing Hyprland-Dots.tar.gz...\n"
@@ -34,16 +31,18 @@ if [ -f Hyprland-Dots.tar.gz ]; then
exit 0 exit 0
else else
echo -e "${WARN} Hyprland-Dots.tar.gz is outdated (Existing version: $existing_version, Latest version: $latest_version)." 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 read -p "Do you want to upgrade to the latest version? (y/n): " upgrade_choice
fi
if [ "$upgrade_choice" = "y" ]; then if [ "$upgrade_choice" = "y" ]; then
echo -e "${NOTE} Proceeding to download the latest release." 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 # Delete existing directories starting with JaKooLit-Hyprland-Dots
find . -type d -name 'JaKooLit-Hyprland-Dots*' -exec rm -rf {} + find . -type d -name 'JaKooLit-Hyprland-Dots*' -exec rm -rf {} +
rm -f Hyprland-Dots.tar.gz rm -f Hyprland-Dots.tar.gz
printf "${WARN} Removed existing Hyprland-Dots.tar.gz.\n" printf "${WARN} Removed existing Hyprland-Dots.tar.gz.\n"
else else
echo -e "${NOTE} User chose not to upgrade. Exiting..." 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 exit 0
fi fi
fi fi
@@ -56,7 +55,7 @@ latest_tag=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots/release
# Check if the tag is obtained successfully # Check if the tag is obtained successfully
if [ -z "$latest_tag" ]; then if [ -z "$latest_tag" ]; then
echo -e "${ERROR} Unable to fetch the latest tag information." 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 exit 1
fi fi
@@ -65,7 +64,7 @@ latest_tarball_url=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots
# Check if the URL is obtained successfully # Check if the URL is obtained successfully
if [ -z "$latest_tarball_url" ]; then if [ -z "$latest_tarball_url" ]; then
echo -e "${ERROR} Unable to fetch the tarball URL for the latest release." 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 exit 1
fi fi
@@ -90,10 +89,12 @@ if curl -L "$latest_tarball_url" -o "$file_name"; then
# Set execute permission for copy.sh and execute it # Set execute permission for copy.sh and execute it
chmod +x copy.sh chmod +x copy.sh
./copy.sh 2>&1 | tee -a "../install-$(date +'%d-%H%M%S')_dots.log" ./copy.sh
echo -e "${OK} Latest source code release downloaded, extracted, and processed successfully." 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 else
echo -e "${ERROR} Failed to download the latest source code release." 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 exit 1
fi fi
clear

46
install-scripts/fonts.sh Executable file
View File

@@ -0,0 +1,46 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Fonts #
# These fonts are minimun required for pre-configured dots to work. You can add here as required
# WARNING! If you remove packages here, dotfiles may not work properly.
# and also, ensure that packages are present in AUR and official Arch Repo
fonts=(
adobe-source-code-pro-fonts
noto-fonts-emoji
otf-font-awesome
ttf-droid
ttf-fira-code
ttf-jetbrains-mono
ttf-jetbrains-mono-nerd
)
## 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)_fonts.log"
# Installation of main components
printf "\n%s - Installing necessary fonts.... \n" "${NOTE}"
for PKG1 in "${fonts[@]}"; 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
clear

View File

@@ -1,11 +1,13 @@
#!/bin/bash #!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# GTK Themes & ICONS and Sourcing from a different Repo #
engine=( engine=(
unzip unzip
gtk-engine-murrine gtk-engine-murrine
) )
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont 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 )"
@@ -14,50 +16,17 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || exit 1
# Set some colors for output messages source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# 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)_themes_main.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_themes.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# 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 :("
exit 1
fi
fi
}
# 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" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo -e "\033[1A\033[K${ERROR} - $PKG1 install had failed, please check the install.log" echo -e "\033[1A\033[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs"
exit 1 exit 1
fi fi
done done
@@ -69,10 +38,10 @@ if [ -d "GTK-themes-icons" ]; then
fi fi
echo "$NOTE Cloning Tokyo Theme GTK themes and Icons repository..." 2>&1 | tee -a "$LOG" echo "$NOTE Cloning Tokyo Theme GTK themes and Icons repository..." 2>&1 | tee -a "$LOG"
if git clone https://github.com/JaKooLit/GTK-themes-icons.git 2>&1 | tee -a "$LOG"; then if git clone 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 2>&1 | tee -a "$LOG" ./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

49
install-scripts/hyprland.sh Normal file → Executable file
View File

@@ -1,48 +1,25 @@
#!/bin/bash #!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Main Hyprland Package #
hypr=( hypr=(
hyprland hyprland
hyprcursor
) )
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### ## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
# Set some colors for output messages # Determine the directory where the script is located
OK="$(tput setaf 2)[OK]$(tput sgr0)" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" # Change the working directory to the parent directory of the script
WARN="$(tput setaf 166)[WARN]$(tput sgr0)" PARENT_DIR="$SCRIPT_DIR/.."
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" cd "$PARENT_DIR" || exit 1
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# 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)_hyprland.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprland.log"
ISAUR=$(command -v yay || command -v paru) source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# 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 :("
exit 1
fi
fi
}
# 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"
@@ -57,7 +34,7 @@ fi
printf "${NOTE} Installing Hyprland .......\n" printf "${NOTE} Installing Hyprland .......\n"
for HYPR in "${hypr[@]}"; do for HYPR in "${hypr[@]}"; do
install_package "$HYPR" 2>&1 | tee -a "$LOG" install_package "$HYPR" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $HYPR install had failed, please check the install.log"; exit 1; } [ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $HYPR Package installation failed, Please check the installation logs"; exit 1; }
done done
clear clear

72
install-scripts/nvidia.sh Normal file → Executable file
View File

@@ -1,4 +1,9 @@
#!/bin/bash #!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Nvidia Stuffs #
if [[ $USE_PRESET = [Yy] ]]; then
source ./preset.sh
fi
nvidia_pkg=( nvidia_pkg=(
nvidia-dkms nvidia-dkms
@@ -8,66 +13,29 @@ nvidia_pkg=(
libva-nvidia-driver-git libva-nvidia-driver-git
) )
hypr=( ## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
hyprland # Determine the directory where the script is located
) SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1
# Set some colors for output messages source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# 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)_nvidia.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_nvidia.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# 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 :("
exit 1
fi
fi
}
# 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-git...${RESET}\n" printf "${YELLOW} Hyprland detected. uninstalling 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
printf "${NOTE} Installing Hyprland......\n"
for HYPR in "${hypr[@]}"; do
install_package "$HYPR" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $HYPR install had failed, please check the install.log"; exit 1; }
done
# Install additional Nvidia packages # Install additional Nvidia packages
printf "${YELLOW} Installing addition Nvidia packages...\n" printf "${YELLOW} Installing addition Nvidia packages...\n"
for krnl in $(cat /usr/lib/modules/*/pkgbase); do for krnl in $(cat /usr/lib/modules/*/pkgbase); do
@@ -108,18 +76,20 @@ if [ -f /etc/default/grub ]; then
sudo sed -i '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
# Regenerate GRUB configuration # Regenerate GRUB configuration
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" echo "nvidia-drm.modeset=1 added to /etc/default/grub" 2>&1 | tee -a "$LOG"
else else
echo "nvidia-drm.modeset=1 is already present in /etc/default/grub" echo "nvidia-drm.modeset=1 is already present in /etc/default/grub" 2>&1 | tee -a "$LOG"
fi fi
else else
echo "/etc/default/grub does not exist" echo "/etc/default/grub does not exist"
fi fi
# Blacklist nouveau # Blacklist nouveau
read -n1 -rep "${CAT} Would you like to blacklist nouveau? (y/n)" response if [[ -z $blacklist_nouveau ]]; then
read -n1 -rep "${CAT} Would you like to blacklist nouveau? (y/n)" blacklist_nouveau
fi
echo echo
if [[ $response =~ ^[Yy]$ ]]; then if [[ $blacklist_nouveau =~ ^[Yy]$ ]]; then
NOUVEAU="/etc/modprobe.d/nouveau.conf" NOUVEAU="/etc/modprobe.d/nouveau.conf"
if [ -f "$NOUVEAU" ]; then if [ -f "$NOUVEAU" ]; then
printf "${OK} Seems like nouveau is already blacklisted..moving on.\n" printf "${OK} Seems like nouveau is already blacklisted..moving on.\n"
@@ -137,7 +107,7 @@ if [[ $response =~ ^[Yy]$ ]]; then
fi fi
fi fi
else else
printf "${NOTE} Skipping nouveau blacklisting.\n" printf "${NOTE} Skipping nouveau blacklisting.\n" 2>&1 | tee -a "$LOG"
fi fi
clear clear

45
install-scripts/pacman.sh Executable file
View File

@@ -0,0 +1,45 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# pacman adding up extra-spices #
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
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)_pacman.log"
echo -e "${NOTE} Adding Extra Spice in pacman.conf ... ${RESET}" 2>&1 | tee -a "$LOG"
pacman_conf="/etc/pacman.conf"
# Remove comments '#' from specific lines
lines_to_edit=(
"Color"
"CheckSpace"
"VerbosePkgLists"
"ParallelDownloads"
)
# Uncomment specified lines if they are commented out
for line in "${lines_to_edit[@]}"; do
if grep -q "^#$line" "$pacman_conf"; then
sudo sed -i "s/^#$line/$line/" "$pacman_conf"
echo -e "${CAT} Uncommented: $line ${RESET}" 2>&1 | tee -a "$LOG"
else
echo -e "${CAT} $line is already uncommented. ${RESET}" 2>&1 | tee -a "$LOG"
fi
done
# Add "ILoveCandy" below ParallelDownloads if it doesn't exist
if grep -q "^ParallelDownloads" "$pacman_conf" && ! grep -q "^ILoveCandy" "$pacman_conf"; then
sudo sed -i "/^ParallelDownloads/a ILoveCandy" "$pacman_conf"
echo -e "${CAT} Added ILoveCandy below ParallelDownloads. ${RESET}" 2>&1 | tee -a "$LOG"
else
echo -e "${CAT} ILoveCandy already exists ${RESET}" 2>&1 | tee -a "$LOG"
fi
echo -e "${CAT} Pacman.conf spicing up completed ${RESET}" 2>&1 | tee -a "$LOG"
# updating pacman.conf
sudo pacman -Sy
clear

26
install-scripts/paru.sh Normal file → Executable file
View File

@@ -1,6 +1,12 @@
#!/bin/bash #!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Paru AUR Helper #
# NOTE: If yay is already installed, paru will not be installed #
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont 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
LOG="install-$(date +%d-%H%M%S)_paru.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)"
@@ -12,20 +18,32 @@ ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3) YELLOW=$(tput setaf 3)
RESET=$(tput sgr0) RESET=$(tput sgr0)
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_paru.log" # Create Directory for Install Logs
if [ ! -d Install-Logs ]; then
mkdir Install-Logs
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 was located, moving on.\n" "${OK}" printf "\n%s - AUR helper already installed, moving on..\n" "${OK}"
else else
printf "\n%s - AUR helper was NOT located\n" "$WARN" printf "\n%s - AUR helper was NOT located\n" "$WARN"
printf "\n%s - Installing paru 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; } git clone https://aur.archlinux.org/paru-bin.git || { printf "%s - Failed to clone paru from AUR\n" "${ERROR}"; exit 1; }
cd paru-bin || { printf "%s - Failed to enter paru-bin directory\n" "${ERROR}"; exit 1; } cd paru-bin || { printf "%s - Failed to enter paru-bin directory\n" "${ERROR}"; exit 1; }
makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install paru from AUR\n" "${ERROR}"; exit 1; } makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install paru from AUR\n" "${ERROR}"; exit 1; }
# moving install logs in to Install-Logs folder
mv install*.log ../Install-Logs/ || true
cd ..
fi fi
# Update system before proceeding # Update system before proceeding

48
install-scripts/pipewire.sh Normal file → Executable file
View File

@@ -1,4 +1,6 @@
#!/bin/bash #!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Pipewire and Pipewire Audio Stuff #
pipewire=( pipewire=(
pipewire pipewire
@@ -10,43 +12,20 @@ pipewire=(
############## 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 some colors for output messages # Set some colors for output messages
OK=$(tput setaf 2)[OK]$(tput sgr0) # Determine the directory where the script is located
ERROR=$(tput setaf 1)[ERROR]$(tput sgr0) SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
NOTE=$(tput setaf 3)[NOTE]$(tput sgr0)
WARN=$(tput setaf 166)[WARN]$(tput sgr0) # Change the working directory to the parent directory of the script
CAT=$(tput setaf 6)[ACTION]$(tput sgr0) PARENT_DIR="$SCRIPT_DIR/.."
ORANGE=$(tput setaf 166) cd "$PARENT_DIR" || exit 1
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0) 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-$(date +%d-%H%M%S)_bluetooth.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_pipewire.log"
ISAUR=$(command -v yay || command -v paru) ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if the package is already installed
if $ISAUR -Q "$1" &>>/dev/null; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure the package is installed
if $ISAUR -Q "$1" &>>/dev/null; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review the 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 :("
exit 1
fi
fi
}
# Removal of pulseaudio # Removal of pulseaudio
printf "${YELLOW}Removing pulseaudio stuff...${RESET}\n" printf "${YELLOW}Removing pulseaudio stuff...${RESET}\n"
for pulseaudio in pulseaudio pulseaudio-alsa pulseaudio-bluetooth; do for pulseaudio in pulseaudio pulseaudio-alsa pulseaudio-bluetooth; do
@@ -54,17 +33,18 @@ for pulseaudio in pulseaudio pulseaudio-alsa pulseaudio-bluetooth; do
done done
# Disabling pulseaudio to avoid conflicts # Disabling pulseaudio to avoid conflicts
systemctl --user disable --now pulseaudio.socket pulseaudio.service 2>&1 | tee -a "$LOG" systemctl --user disable --now pulseaudio.socket pulseaudio.service 2>/dev/null && tee -a "$LOG"
# Pipewire # Pipewire
printf "${NOTE} Installing Pipewire Packages...\n" printf "${NOTE} Installing Pipewire Packages...\n"
for PIPEWIRE in "${pipewire[@]}"; do for PIPEWIRE in "${pipewire[@]}"; do
install_package "$PIPEWIRE" 2>&1 | tee -a "$LOG" install_package "$PIPEWIRE" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $PIPEWIRE install had failed. Please check the install.log"; exit 1; } [ $? -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" printf "Activating Pipewire Services...\n"
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"
clear clear

47
install-scripts/rog.sh Normal file → Executable file
View File

@@ -1,8 +1,8 @@
#!/bin/bash #!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Asus ROG Laptops #
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont 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 )"
@@ -10,43 +10,10 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || exit 1
# Set some colors for output messages source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# 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)_rog.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_rog.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# 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 :("
exit 1
fi
fi
}
### Install software for Asus ROG laptops ### ### Install software for Asus ROG laptops ###
@@ -54,11 +21,13 @@ install_package() {
for ASUS in asusctl supergfxctl rog-control-center; do for ASUS in asusctl supergfxctl rog-control-center; do
install_package "$ASUS" 2>&1 | tee -a "$LOG" install_package "$ASUS" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo -e "\e[1A\e[K${ERROR} - $ASUS install had failed, please check the install.log" echo -e "\e[1A\e[K${ERROR} - $ASUS Package installation failed, Please check the installation logs"
exit 1 exit 1
fi 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 --now supergfxd 2>&1 | tee -a "$LOG"
clear clear

98
install-scripts/sddm.sh Normal file → Executable file
View File

@@ -1,13 +1,18 @@
#!/bin/bash #!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# SDDM Log-in Manager #
if [[ $USE_PRESET = [Yy] ]]; then
source ./preset.sh
fi
sddm=( sddm=(
qt5-graphicaleffects qt6-5compat
qt5-quickcontrols2 qt6-declarative
qt5-svg qt6-svg
sddm-git sddm
) )
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont 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 )"
@@ -16,61 +21,17 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || exit 1
# Set some colors for output messages source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# 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)_sddm.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_sddm.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# 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 :("
exit 1
fi
fi
}
# SDDM
# Check if SDDM is already installed
if pacman -Qs sddm > /dev/null; then
# Prompt user to manually install sddm-git to remove SDDM
read -n1 -rep "SDDM is already installed. Would you like to manually install sddm-git to remove it? This requires manual intervention. (y/n)" manual_install_sddm
echo
if [[ $manual_install_sddm =~ ^[Yy]$ ]]; then
$ISAUR -S sddm-git 2>&1 | tee -a "$LOG"
fi
fi
# Install SDDM and SDDM theme # Install SDDM and SDDM theme
printf "${NOTE} Installing SDDM-git 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" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $package install has failed, please check the install.log"; exit 1; } [ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $package Package installation failed, Please check the installation logs"; exit 1; }
done done
# 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
@@ -96,24 +57,26 @@ sudo cp assets/hyprland.desktop "$wayland_sessions_dir/" 2>&1 | tee -a "$LOG"
# SDDM-themes # SDDM-themes
valid_input=false valid_input=false
while [ "$valid_input" != true ]; do 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 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 if [[ $install_sddm_theme =~ ^[Yy]$ ]]; then
printf "\n%s - Installing Simple SDDM Theme\n" "${NOTE}" printf "\n%s - Installing Simple SDDM Theme\n" "${NOTE}"
# Check if /usr/share/sddm/themes/simple-sddm exists and remove if it does # Check if /usr/share/sddm/themes/simple-sddm-2 exists and remove if it does
if [ -d "/usr/share/sddm/themes/simple-sddm" ]; then if [ -d "/usr/share/sddm/themes/simple-sddm-2" ]; then
sudo rm -rf "/usr/share/sddm/themes/simple-sddm" sudo rm -rf "/usr/share/sddm/themes/simple-sddm-2"
echo -e "\e[1A\e[K${OK} - Removed existing 'simple-sddm' directory." 2>&1 | tee -a "$LOG" echo -e "\e[1A\e[K${OK} - Removed existing 'simple-sddm-2' directory." 2>&1 | tee -a "$LOG"
fi fi
# Check if simple-sddm directory exists in the current directory and remove if it does # Check if simple-sddm-2 directory exists in the current directory and remove if it does
if [ -d "simple-sddm" ]; then if [ -d "simple-sddm-2" ]; then
rm -rf "simple-sddm" rm -rf "simple-sddm-2"
echo -e "\e[1A\e[K${OK} - Removed existing 'simple-sddm' directory from the current location." 2>&1 | tee -a "$LOG" echo -e "\e[1A\e[K${OK} - Removed existing 'simple-sddm-2' directory from the current location." 2>&1 | tee -a "$LOG"
fi fi
if git clone https://github.com/JaKooLit/simple-sddm.git 2>&1 | tee -a "$LOG"; then if git clone --depth 1 https://github.com/JaKooLit/simple-sddm-2.git; then
while [ ! -d "simple-sddm" ]; do while [ ! -d "simple-sddm-2" ]; do
sleep 1 sleep 1
done done
@@ -122,10 +85,10 @@ while [ "$valid_input" != true ]; do
echo -e "\e[1A\e[K${OK} - Directory '/usr/share/sddm/themes' created." 2>&1 | tee -a "$LOG" echo -e "\e[1A\e[K${OK} - Directory '/usr/share/sddm/themes' created." 2>&1 | tee -a "$LOG"
fi fi
sudo mv simple-sddm /usr/share/sddm/themes/ sudo mv simple-sddm-2 /usr/share/sddm/themes/
echo -e "[Theme]\nCurrent=simple-sddm" | sudo tee "$sddm_conf_dir/10-theme.conf" &>> "$LOG" echo -e "[Theme]\nCurrent=simple-sddm-2" | sudo tee "$sddm_conf_dir/10-theme.conf" &>> "$LOG"
else else
echo -e "\e[1A\e[K${ERROR} - Failed to clone the theme repository. Please check your internet connection or repository availability." | tee -a "$LOG" >&2 echo -e "\e[1A\e[K${ERROR} - Failed to clone the theme repository. Please check your internet connection" | tee -a "$LOG" >&2
fi fi
valid_input=true valid_input=true
elif [[ $install_sddm_theme =~ ^[Nn]$ ]]; then elif [[ $install_sddm_theme =~ ^[Nn]$ ]]; then
@@ -133,9 +96,8 @@ while [ "$valid_input" != true ]; do
valid_input=true valid_input=true
else else
printf "\n%s - Invalid input. Please enter 'y' for Yes or 'n' for No.\n" "${ERROR}" 2>&1 | tee -a "$LOG" 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 fi
done done
clear clear

62
install-scripts/thunar.sh Normal file → Executable file
View File

@@ -1,4 +1,6 @@
#!/bin/bash #!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Thunar #
thunar=( thunar=(
thunar thunar
@@ -8,7 +10,7 @@ ffmpegthumbnailer
thunar-archive-plugin thunar-archive-plugin
) )
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont 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,65 +19,29 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || exit 1
# Set some colors for output messages source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# 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)_thunar.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_thunar.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# 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 :("
exit 1
fi
fi
}
# Bluetooth
# Thunar
printf "${NOTE} Installing Thunar Packages...\n" printf "${NOTE} Installing Thunar Packages...\n"
for THUNAR in "${thunar[@]}"; do for THUNAR in "${thunar[@]}"; do
install_package "$THUNAR" 2>&1 | tee -a "$LOG" install_package "$THUNAR" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $THUNAR install had failed, please check the install.log"; exit 1; } [ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $THUNAR Package installation failed, Please check the installation logs"; exit 1; }
done done
# Check for existing config folders and backup # Check for existing configs and copy if does not exist
for DIR1 in Thunar xfce4; do for DIR1 in Thunar xfce4; do
DIRPATH=~/.config/$DIR1 DIRPATH=~/.config/$DIR1
if [ -d "$DIRPATH" ]; then if [ -d "$DIRPATH" ]; then
echo -e "${NOTE} Config for $DIR1 found, backing up." echo -e "${NOTE} Config for $DIR1 found, no need to copy." 2>&1 | tee -a "$LOG"
mv $DIRPATH $DIRPATH-back-up 2>&1 | tee -a "$LOG" else
echo -e "${NOTE} Backed up $DIR1 to $DIRPATH-back-up." echo -e "${NOTE} Config for $DIR1 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"
fi fi
done done
# copying from assets
cp -r assets/xfce4 ~/.config/ && echo "Copy xfce4 completed!" || echo "Error: Failed to copy xfce4 config files." 2>&1 | tee -a "$LOG"
cp -r assets/Thunar ~/.config/ && echo "Copy Thunar completed!" || echo "Error: Failed to copy Thunar config files." 2>&1 | tee -a "$LOG"
clear clear

96
install-scripts/xdph.sh Normal file → Executable file
View File

@@ -1,84 +1,74 @@
#!/bin/bash #!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# XDG-Desktop-Portals #
if [[ $USE_PRESET = [Yy] ]]; then
source ./preset.sh
fi
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### xdg=(
xdg-desktop-portal-hyprland
xdg-desktop-portal-gtk
)
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
# Set some colors for output messages # Determine the directory where the script is located
OK="$(tput setaf 2)[OK]$(tput sgr0)" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" # Change the working directory to the parent directory of the script
WARN="$(tput setaf 166)[WARN]$(tput sgr0)" PARENT_DIR="$SCRIPT_DIR/.."
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" cd "$PARENT_DIR" || exit 1
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3) source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
RESET=$(tput sgr0)
# 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)_xdph.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_xdph.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# 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 :("
exit 1
fi
fi
}
# XDG-DESKTOP-PORTAL-HYPRLAND # XDG-DESKTOP-PORTAL-HYPRLAND
for xdgs in "${xdg[@]}"; do
for xdph in xdg-desktop-portal-hyprland; do install_package "$xdgs" 2>&1 | tee -a "$LOG"
install_package "$xdph" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo -e "\e[1A\e[K${ERROR} - $xdph install had failed, please check the install.log" echo -e "\e[1A\e[K${ERROR} - $xdph Package installation failed, Please check the installation logs"
exit 1 exit 1
fi fi
done done
printf "\n"
printf "${NOTE} Checking for other XDG-Desktop-Portal-Implementations....\n" printf "${NOTE} Checking for other XDG-Desktop-Portal-Implementations....\n"
sleep 1 sleep 1
printf "\n" printf "\n"
printf "${NOTE} XDG-desktop-portal-KDE (if installed) should be manually disabled or removed! I can't remove it... sorry...\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 read -rp "${CAT} Would you like to try to remove other XDG-Desktop-Portal-Implementations? (y/n) " XDPH1
fi
echo echo
sleep 1 sleep 1
if [[ $XDPH1 =~ ^[Yy]$ ]]; then case $XDPH1 in
[Yy])
# Clean out other portals # Clean out other portals
printf "${NOTE} Clearing any other xdg-desktop-portal implementations...\n" printf "${NOTE} Clearing any other xdg-desktop-portal implementations...\n"
# Check if packages are installed and uninstall if present # Check if packages are installed and uninstall if present
if pacman -Qs xdg-desktop-portal-gnome > /dev/null ; then
echo "Removing xdg-desktop-portal-gnome..."
sudo pacman -R --noconfirm xdg-desktop-portal-gnome 2>&1 | tee -a $LOG
fi
if pacman -Qs xdg-desktop-portal-gtk > /dev/null ; then
echo "Removing xdg-desktop-portal-gtk..."
sudo pacman -R --noconfirm xdg-desktop-portal-gtk 2>&1 | tee -a $LOG
fi
if pacman -Qs xdg-desktop-portal-wlr > /dev/null ; then if pacman -Qs xdg-desktop-portal-wlr > /dev/null ; then
echo "Removing xdg-desktop-portal-wlr..." echo "Removing xdg-desktop-portal-wlr..."
sudo pacman -R --noconfirm xdg-desktop-portal-wlr 2>&1 | tee -a $LOG sudo pacman -R --noconfirm xdg-desktop-portal-wlr 2>&1 | tee -a "$LOG"
fi fi
if pacman -Qs xdg-desktop-portal-lxqt > /dev/null ; then if pacman -Qs xdg-desktop-portal-lxqt > /dev/null ; then
echo "Removing xdg-desktop-portal-lxqt..." echo "Removing xdg-desktop-portal-lxqt..."
sudo pacman -R --noconfirm xdg-desktop-portal-lxqt 2>&1 | tee -a $LOG sudo pacman -R --noconfirm xdg-desktop-portal-lxqt 2>&1 | tee -a "$LOG"
fi
fi 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 clear

25
install-scripts/yay.sh Normal file → Executable file
View File

@@ -1,7 +1,12 @@
#!/bin/bash #!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Yay AUR Helper #
# NOTE: If paru is already installed, yay will not be installed #
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont 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
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)"
@@ -13,20 +18,30 @@ ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3) YELLOW=$(tput setaf 3)
RESET=$(tput sgr0) RESET=$(tput sgr0)
# Set the name of the log file to include the current date and time # Create Directory for Install Logs
LOG="install-$(date +%d-%H%M%S)_yay.log" if [ ! -d Install-Logs ]; then
mkdir Install-Logs
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 yay was located, moving on.\n" "${OK}" printf "\n%s - AUR helper already installed, moving on.\n" "${OK}"
else else
printf "\n%s - AUR helper was NOT located\n" "$WARN" printf "\n%s - AUR helper was NOT located\n" "$WARN"
printf "\n%s - Installing yay 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; } git clone https://aur.archlinux.org/yay-bin.git || { printf "%s - Failed to clone yay from AUR\n" "${ERROR}"; exit 1; }
cd yay-bin || { printf "%s - Failed to enter yay-bin directory\n" "${ERROR}"; exit 1; } cd yay-bin || { printf "%s - Failed to enter yay-bin directory\n" "${ERROR}"; exit 1; }
makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install yay from AUR\n" "${ERROR}"; exit 1; } makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install yay from AUR\n" "${ERROR}"; exit 1; }
# moving install logs in to Install-Logs folder
mv install*.log ../Install-Logs/ || true
cd ..
fi fi
# Update system before proceeding # Update system before proceeding

110
install-scripts/zsh.sh Normal file → Executable file
View File

@@ -1,23 +1,17 @@
#!/bin/bash #!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# zsh and oh my zsh including pokemon-color-scripts#
if [[ $USE_PRESET = [Yy] ]]; then
source ./preset.sh
fi
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ###################################### zsh=(
zsh
# Set some colors for output messages zsh-completions
OK="$(tput setaf 2)[OK]$(tput sgr0)" )
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(tput sgr0)
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_zsh.log"
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont 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 )"
@@ -25,50 +19,38 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1 cd "$PARENT_DIR" || exit 1
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
ISAUR=$(command -v yay || command -v paru) # 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"
# Set the script to exit on error ## Optional Pokemon color scripts
set -e while true; do
if [[ -z $pokemon_choice ]]; then
# Function for installing packages read -p "${CAT} OPTIONAL - Do you want to add Pokemon color scripts? (y/n): " pokemon_choice
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# 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 :("
exit 1
fi fi
fi case "$pokemon_choice" in
} [Yy]*)
zsh+=('pokemon-colorscripts-git')
sed -i '/#pokemon-colorscripts --no-title -s -r/s/^#//' assets/.zshrc
# Check if the oh-my-zsh directory exists break
if [ -d "$HOME/.oh-my-zsh" ]; then ;;
printf "${NOTE} Oh My Zsh found. Creating a backup before uninstalling...${RESET}\n" [Nn]*)
# Perform backup using cp -r and create a backup directory with -backup suffix echo "${NOTE}Skipping Pokemon color scripts installation.${RESET}" 2>&1 | tee -a "$LOG"
cp -r "$HOME/.oh-my-zsh" "$HOME/.oh-my-zsh-backup" || true break
mv "$HOME/.zshrc" "$HOME/.zshrc-backup" || true ;;
*)
printf "${NOTE} Backup created....${RESET}\n" echo "${WARN}Please enter 'y' for yes or 'n' for no.${RESET}"
fi ;;
esac
done
# Installing zsh packages # Installing zsh packages
printf "${NOTE} Installing core zsh packages...${RESET}\n" printf "${NOTE} Installing core zsh packages...${RESET}\n"
for ZSH in zsh zsh-completions pokemon-colorscripts-git; do for ZSH in "${zsh[@]}"; do
install_package "$ZSH" 2>&1 | tee -a "$LOG" install_package "$ZSH" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo -e "\e[1A\e[K${ERROR} - $ZSH install had failed, please check the install.log" echo -e "\e[1A\e[K${ERROR} - $ZSH Package installation failed, Please check the installation logs"
fi fi
done done
@@ -79,34 +61,42 @@ if command -v zsh >/dev/null; then
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 "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended || true
else else
echo "Directory .oh-my-zsh already exists. Skipping re-installation." echo "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 || true
else else
echo "Directory zsh-autosuggestions already exists. Skipping cloning." echo "Directory zsh-autosuggestions already exists. Skipping cloning." 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 || true
else else
echo "Directory zsh-syntax-highlighting already exists. Skipping cloning." echo "Directory zsh-syntax-highlighting already exists. Skipping cloning." 2>&1 | tee -a "$LOG"
fi fi
# Check if ~/.zshrc and .zprofile exists, create a backup, and copy the new configuration
if [ -f "$HOME/.zshrc" ]; then
cp -b "$HOME/.zshrc" "$HOME/.zshrc-backup" || true
fi
if [ -f "$HOME/.zprofile" ]; then
cp -b "$HOME/.zprofile" "$HOME/.zprofile-backup" || true
fi
# Copying the preconfigured zsh themes and profile
cp -r 'assets/.zshrc' ~/ cp -r 'assets/.zshrc' ~/
cp -r 'assets/.zprofile' ~/ cp -r 'assets/.zprofile' ~/
printf "${NOTE} Changing default shell to zsh...\n" printf "${NOTE} Changing default shell to zsh...\n"
while ! chsh -s $(which zsh); do while ! chsh -s $(which zsh); do
echo "${ERROR} Authentication failed. Please enter the correct password." 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 "${NOTE} Shell changed successfully to zsh.\n" 2>&1 | tee -a "$LOG"
fi fi
printf "\n\n\n\n"
clear clear

97
install.sh Normal file → Executable file
View File

@@ -26,12 +26,25 @@ echo
read -p "$(tput setaf 6)Would you like to proceed? (y/n): $(tput sgr0)" proceed read -p "$(tput setaf 6)Would you like to proceed? (y/n): $(tput sgr0)" proceed
printf "\n%.0s" {1..2}
if [ "$proceed" != "y" ]; then if [ "$proceed" != "y" ]; then
echo "Installation aborted." echo "Installation aborted."
printf "\n%.0s" {1..2}
exit 1 exit 1
fi 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)"
@@ -43,6 +56,7 @@ ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3) YELLOW=$(tput setaf 3)
RESET=$(tput sgr0) RESET=$(tput sgr0)
# Function to colorize prompts # Function to colorize prompts
colorize_prompt() { colorize_prompt() {
local color="$1" local color="$1"
@@ -54,22 +68,37 @@ colorize_prompt() {
LOG="install-$(date +%d-%H%M%S).log" LOG="install-$(date +%d-%H%M%S).log"
# Initialize variables to store user responses # Initialize variables to store user responses
aur_helper="" # aur_helper=""
bluetooth="" # bluetooth=""
dots="" # dots=""
gtk_themes="" # gtk_themes=""
nvidia="" # nvidia=""
rog="" # rog=""
sddm="" # sddm=""
thunar="" # thunar=""
xdph="" # xdph=""
zsh="" # zsh=""
# Create Directory for Install Logs
if [ ! -d Install-Logs ]; then
mkdir Install-Logs
fi
# Define the directory where your scripts are located # Define the directory where your scripts are located
script_directory=install-scripts script_directory=install-scripts
# Function to ask a yes/no question and set the response in a variable # Function to ask a yes/no question and set the response in a variable
ask_yes_no() { ask_yes_no() {
if [[ ! -z "${!2}" ]]; then
echo "$(colorize_prompt "$CAT" "$1 (Preset): ${!2}")"
if [[ "${!2}" = [Yy] ]]; then
return 0
else
return 1
fi
else
eval "$2=''"
fi
while true; do while true; do
read -p "$(colorize_prompt "$CAT" "$1 (y/n): ")" choice read -p "$(colorize_prompt "$CAT" "$1 (y/n): ")" choice
case "$choice" in case "$choice" in
@@ -86,6 +115,12 @@ ask_custom_option() {
local valid_options="$2" local valid_options="$2"
local response_var="$3" local response_var="$3"
if [[ ! -z "${!3}" ]]; then
return 0
else
eval "$3=''"
fi
while true; do while true; do
read -p "$(colorize_prompt "$CAT" "$prompt ($valid_options): ")" choice read -p "$(colorize_prompt "$CAT" "$prompt ($valid_options): ")" choice
if [[ " $valid_options " == *" $choice "* ]]; then if [[ " $valid_options " == *" $choice "* ]]; then
@@ -103,7 +138,7 @@ execute_script() {
if [ -f "$script_path" ]; then if [ -f "$script_path" ]; then
chmod +x "$script_path" chmod +x "$script_path"
if [ -x "$script_path" ]; then if [ -x "$script_path" ]; then
"$script_path" env USE_PRESET=$use_preset "$script_path"
else else
echo "Failed to make script '$script' executable." echo "Failed to make script '$script' executable."
fi fi
@@ -116,7 +151,7 @@ execute_script() {
printf "\n" printf "\n"
ask_custom_option "-Type AUR helper" "paru or yay" aur_helper ask_custom_option "-Type AUR helper" "paru or yay" aur_helper
printf "\n" printf "\n"
ask_yes_no "-Do you have nvidia gpu?" nvidia ask_yes_no "-Do you have any nvidia gpu in your system?" nvidia
printf "\n" printf "\n"
ask_yes_no "-Install GTK themes (required for Dark/Light function)?" gtk_themes ask_yes_no "-Install GTK themes (required for Dark/Light function)?" gtk_themes
printf "\n" printf "\n"
@@ -124,22 +159,25 @@ ask_yes_no "-Do you want to configure Bluetooth?" 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 Thunar file manager?" thunar
printf "\n" printf "\n"
ask_yes_no "-Installing in Asus ROG Laptops?" rog ask_yes_no "-Install & configure SDDM log-in Manager plus (OPTIONAL) SDDM Theme?" sddm
printf "\n"
ask_yes_no "-Install and configure SDDM log-in Manager?" sddm
printf "\n" printf "\n"
ask_yes_no "-Install XDG-DESKTOP-PORTAL-HYPRLAND? (For proper Screen Share ie OBS)" xdph ask_yes_no "-Install XDG-DESKTOP-PORTAL-HYPRLAND? (For proper Screen Share ie OBS)" xdph
printf "\n" printf "\n"
ask_yes_no "-Install zsh, oh-my-zsh & pokemon-colorscripts?" zsh ask_yes_no "-Install zsh, oh-my-zsh & (Optional) pokemon-colorscripts?" zsh
printf "\n" printf "\n"
ask_yes_no "-Do you want to copy Hyprland dotfiles?" dots ask_yes_no "-Installing in a Asus ROG Laptops?" rog
printf "\n" printf "\n"
ask_yes_no "-Do you want to download pre-configured Hyprland dotfiles?" 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
# Execute AUR helper script based on user choice # Ensuring base-devel is installed
execute_script "00-base.sh" execute_script "00-base.sh"
sleep 0.5
execute_script "pacman.sh"
# 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"
elif [ "$aur_helper" == "yay" ]; then elif [ "$aur_helper" == "yay" ]; then
@@ -152,14 +190,16 @@ execute_script "00-hypr-pkgs.sh"
# Install pipewire and pipewire-audio # Install pipewire and pipewire-audio
execute_script "pipewire.sh" execute_script "pipewire.sh"
# Install necessary fonts
execute_script "fonts.sh"
# Install hyprland
execute_script "hyprland.sh"
if [ "$nvidia" == "Y" ]; then if [ "$nvidia" == "Y" ]; then
execute_script "nvidia.sh" execute_script "nvidia.sh"
fi fi
if [ "$nvidia" == "N" ]; then
execute_script "hyprland.sh"
fi
if [ "$gtk_themes" == "Y" ]; then if [ "$gtk_themes" == "Y" ]; then
execute_script "gtk_themes.sh" execute_script "gtk_themes.sh"
fi fi
@@ -172,10 +212,6 @@ if [ "$thunar" == "Y" ]; then
execute_script "thunar.sh" execute_script "thunar.sh"
fi fi
if [ "$rog" == "Y" ]; then
execute_script "rog.sh"
fi
if [ "$sddm" == "Y" ]; then if [ "$sddm" == "Y" ]; then
execute_script "sddm.sh" execute_script "sddm.sh"
fi fi
@@ -190,12 +226,15 @@ fi
execute_script "InputGroup.sh" execute_script "InputGroup.sh"
if [ "$rog" == "Y" ]; then
execute_script "rog.sh"
fi
if [ "$dots" == "Y" ]; then if [ "$dots" == "Y" ]; then
execute_script "dotfiles.sh" execute_script "dotfiles.sh"
fi fi
clear
printf "\n${OK} Yey! Installation Completed.\n" printf "\n${OK} Yey! Installation Completed.\n"
printf "\n" printf "\n"

48
preset.sh Normal file
View File

@@ -0,0 +1,48 @@
# 💫 https://github.com/JaKooLit 💫 #
#
# CREDIT to: https://github.com/PostCyberPunk for this Preset function
## -- 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.
### -Type AUR helper
### yay or paru
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)?
gtk_themes="Y"
###-Do you want to configure Bluetooth?
bluetooth="Y"
###-Do you want to install Thunar file manager?
thunar="Y"
###-Install & configure SDDM log-in Manager plus (OPTIONAL) SDDM Theme?
sddm="Y"
###-Install XDG-DESKTOP-PORTAL-HYPRLAND? (For proper Screen Share ie OBS)
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
### Would you like to blacklist nouveau? (y/n)
blacklist_nouveau="Y"
### XDG-desktop-portal-KDE & GNOME (if installed) should be manually disabled or removed! Script cant remove nor disable it.
### 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"
### Do you want to upgrade to the latest version? (y/n) - This is for the dotfiles
upgrade_choice="Y"