mirror of
https://github.com/JaKooLit/Debian-Hyprland.git
synced 2025-12-21 10:20:12 +01:00
Compare commits
No commits in common. "Debian-Hyprland-v2.2" and "main" have entirely different histories.
Debian-Hyp
...
main
1
.github/FUNDING.yml
vendored
1
.github/FUNDING.yml
vendored
@ -2,4 +2,3 @@
|
|||||||
|
|
||||||
github: JaKooLit
|
github: JaKooLit
|
||||||
ko_fi: jakoolit
|
ko_fi: jakoolit
|
||||||
|
|
||||||
|
|||||||
83
.github/ISSUE_TEMPLATE/bug.yml
vendored
Normal file
83
.github/ISSUE_TEMPLATE/bug.yml
vendored
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
name: Bug Report
|
||||||
|
description: Something is not working right
|
||||||
|
title: "[Bug]: "
|
||||||
|
labels: ["bug"]
|
||||||
|
assignees:
|
||||||
|
- JaKooLit
|
||||||
|
|
||||||
|
body:
|
||||||
|
- type: checkboxes
|
||||||
|
attributes:
|
||||||
|
label: Already reported ? *
|
||||||
|
description: Before opening a new bug report, please take a moment to search through the current open and closed issues to check if it already exists.
|
||||||
|
options:
|
||||||
|
- label: I have searched the existing open and closed issues.
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: type
|
||||||
|
attributes:
|
||||||
|
label: Regression?
|
||||||
|
description: |
|
||||||
|
Regression means that something used to work but no longer does.
|
||||||
|
options:
|
||||||
|
- "Yes"
|
||||||
|
- "No"
|
||||||
|
- "Not sure"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: ver
|
||||||
|
attributes:
|
||||||
|
label: System Info and Version
|
||||||
|
description: |
|
||||||
|
Paste the output of `inxi --full` here.
|
||||||
|
install inxi if command not found.
|
||||||
|
value: "<details>
|
||||||
|
<summary>System/Version info</summary>
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
<Paste the output of the command here, without removing any formatting around this>
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
</details>"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: dots
|
||||||
|
attributes:
|
||||||
|
label: KooL's Dots version
|
||||||
|
description: |
|
||||||
|
Paste the output of `find ~/.config/hypr/ -type f -name 'v*' -exec basename {} \;`
|
||||||
|
This is just KooL's Hyprland Dots version.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: desc
|
||||||
|
attributes:
|
||||||
|
label: Description
|
||||||
|
description: "What went wrong? What exactly happened?"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: repro
|
||||||
|
attributes:
|
||||||
|
label: How to reproduce
|
||||||
|
description: "How can someone else reproduce the issue?"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: logs
|
||||||
|
attributes:
|
||||||
|
label: install logs, images or videos
|
||||||
|
description: |
|
||||||
|
Anything that can help. Please always ATTACH and not paste them.
|
||||||
1
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
1
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
blank_issues_enabled: false
|
||||||
30
.github/ISSUE_TEMPLATE/documentation-update.yml
vendored
Normal file
30
.github/ISSUE_TEMPLATE/documentation-update.yml
vendored
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
name: Documentation update
|
||||||
|
description: Propose a change to the project documentation wiki
|
||||||
|
title: "[Documentation update]: "
|
||||||
|
labels: ["documentation_update"]
|
||||||
|
assignees:
|
||||||
|
- JaKooLit
|
||||||
|
|
||||||
|
body:
|
||||||
|
- type: textarea
|
||||||
|
id: desc
|
||||||
|
attributes:
|
||||||
|
label: Description
|
||||||
|
description: "Provide a clear and concise description of the documentation update"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: repro
|
||||||
|
attributes:
|
||||||
|
label: Proposed Solution
|
||||||
|
description: "Provide a clear and concise description of the updated documentation that you'd like to see added"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: logs
|
||||||
|
attributes:
|
||||||
|
label: install links, images or videos
|
||||||
|
description: |
|
||||||
|
Add any other information about the documentation update here. For example, you might include links to similar documentation in other projects, or screenshots or diagrams to help explain your idea
|
||||||
38
.github/ISSUE_TEMPLATE/feature.yml
vendored
Normal file
38
.github/ISSUE_TEMPLATE/feature.yml
vendored
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
name: Feature Request
|
||||||
|
description: I'd like to propose some changes and enhancements
|
||||||
|
title: "[Enhancement]: "
|
||||||
|
labels: ["enhancement"]
|
||||||
|
assignees:
|
||||||
|
- JaKooLit
|
||||||
|
|
||||||
|
body:
|
||||||
|
- type: checkboxes
|
||||||
|
attributes:
|
||||||
|
label: Already reported ? *
|
||||||
|
description: Before opening a new feature request, please take a moment to search through the current open and closed issues / request to check if it already exists.
|
||||||
|
options:
|
||||||
|
- label: I have searched the existing open and closed request.
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: desc
|
||||||
|
attributes:
|
||||||
|
label: Description
|
||||||
|
description: "Describe your idea?"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: repro
|
||||||
|
attributes:
|
||||||
|
label: Proposed Solution
|
||||||
|
description: "describe if you have a specific solution in mind"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
43
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
43
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal 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/Debian-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/Debian-Hyprland/blob/main/CONTRIBUTING.md#git-commit-messages).
|
||||||
|
- [ ] My change requires a change to the documentation.
|
||||||
|
- [ ] I want to add something in Debian-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.
|
||||||
311
CHANGELOGS.md
311
CHANGELOGS.md
@ -1,39 +1,348 @@
|
|||||||
## Changelogs
|
## CHANGELOGS
|
||||||
|
|
||||||
|
## 10 December 2025
|
||||||
|
|
||||||
|
- Updated:
|
||||||
|
- Hyprland Build to v0.52.2
|
||||||
|
- Thanks entirely to @sdegler
|
||||||
|
- Fixed:
|
||||||
|
- `qt5-style-kvantum-themes` failed to install
|
||||||
|
- Wrong package name it's `qt-style-kvantume-themes`
|
||||||
|
- `libdisplay-info2` failed to install
|
||||||
|
- New package name: `libdisplay-info3`
|
||||||
|
|
||||||
|
## 10 October 2025
|
||||||
|
|
||||||
|
### Hyprland 0.51.x install support
|
||||||
|
|
||||||
|
- Hyprland builds 0.51.x from source
|
||||||
|
- Added documentation for upgrading from 0.49/0.50.x to 0.51.1.
|
||||||
|
|
||||||
|
### New scripts and modules
|
||||||
|
|
||||||
|
- update-hyprland.sh: Manage the Hyprland stack with:
|
||||||
|
- --install / --dry-run build modes
|
||||||
|
- --only and --skip for selective components
|
||||||
|
- --with-deps to (re)install build deps
|
||||||
|
- --set {KEY=TAG} and --restore tag backup support
|
||||||
|
- --fetch-latest to pull latest GitHub release tags
|
||||||
|
- --via-helper to delegate summary-only dry-runs
|
||||||
|
- dry-run-build.sh: Compile-only helper with summary output
|
||||||
|
- install-scripts/wayland-protocols-src.sh: Build wayland-protocols from
|
||||||
|
source (>= 1.45) to satisfy Hyprland 0.51.x requirements
|
||||||
|
|
||||||
|
### Core features
|
||||||
|
|
||||||
|
- Centralized tag management via hypr-tags.env; tags exported to all
|
||||||
|
modules. Environment overrides remain first priority.
|
||||||
|
- Automatic dependency ordering for Hyprland 0.51.x:
|
||||||
|
wayland-protocols-src → hyprland-protocols → hyprutils → hyprlang →
|
||||||
|
aquamarine → hyprland
|
||||||
|
- Optional auto-fetch of latest tags on install runs that include
|
||||||
|
hyprland (can be disabled via --no-fetch)
|
||||||
|
- Selective updates for targeted components and skip lists
|
||||||
|
- Dry-run mode to validate builds without installing
|
||||||
|
|
||||||
|
### Installer integration
|
||||||
|
|
||||||
|
- install.sh reads hypr-tags.env and optionally refreshes tags.
|
||||||
|
- Ensures wayland-protocols-src is built before Hyprland.
|
||||||
|
- Maintains proper sequencing for the Hyprland dependencies.
|
||||||
|
|
||||||
|
### Docs
|
||||||
|
|
||||||
|
- Debian-Hyprland-Install-Upgrade.md and .es.md:
|
||||||
|
- Add explicit section: Upgrade 0.49/0.50.x → 0.51.1
|
||||||
|
- Recommend: `./update-hyprland.sh --install --only hyprland`
|
||||||
|
- Provide optional `--with-deps` and `--dry-run` flows
|
||||||
|
- Full install via install.sh is not required for this
|
||||||
|
upgrade unless optional modules need refresh
|
||||||
|
|
||||||
|
### Usage highlights
|
||||||
|
|
||||||
|
- Pin and upgrade to 0.51.1:
|
||||||
|
./update-hyprland.sh --set HYPRLAND=v0.51.1
|
||||||
|
./update-hyprland.sh --install --only hyprland
|
||||||
|
- Optional:
|
||||||
|
./update-hyprland.sh --with-deps --install --only hyprland
|
||||||
|
./update-hyprland.sh --dry-run --only hyprland
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
|
||||||
|
- Target OS remains Debian Trixie/Testing/SID
|
||||||
|
- Run as sudo-capable user (not root)
|
||||||
|
- Ensure deb-src entries are enabled.
|
||||||
|
|
||||||
|
## 22 July 2025
|
||||||
|
|
||||||
|
- Updated sddm theme and script to work with the updated simple_sddm_2 theme
|
||||||
|
- Manual building process
|
||||||
|
|
||||||
|
## 21 June 2025
|
||||||
|
|
||||||
|
- Added a warning message that support is now very limited
|
||||||
|
|
||||||
|
## 08 June 2025
|
||||||
|
|
||||||
|
- updated SDDM theme.
|
||||||
|
|
||||||
|
## 20 March 2025
|
||||||
|
|
||||||
|
- added findutils as dependencies
|
||||||
|
|
||||||
|
## 11 March 2025
|
||||||
|
|
||||||
|
- Added uninstall script
|
||||||
|
- forked AGS v1 into JakooLit repo. This is just incase Aylur decide to take down v1
|
||||||
|
|
||||||
|
## 10 March 2025
|
||||||
|
|
||||||
|
- Dropped pyprland in favor of hyprland built in tool for a drop down like terminal and Desktop magnifier
|
||||||
|
|
||||||
|
## 06 March 2025
|
||||||
|
|
||||||
|
- Switched to whiptail version for Y & N questions
|
||||||
|
- switched eza to lsd
|
||||||
|
|
||||||
|
## 23 Feb 2025
|
||||||
|
|
||||||
|
- added Victor Mono Font for proper hyprlock font rendering for Dots v2.3.12
|
||||||
|
- added Fantasque Sans Mono Nerd for Kitty
|
||||||
|
|
||||||
|
## 22 Feb 2025
|
||||||
|
|
||||||
|
- replaced eog with loupe
|
||||||
|
- changed url for installing oh-my-zsh to get wider coverage. Some countries are blocking github raw url's
|
||||||
|
|
||||||
|
## 18 Feb 2025
|
||||||
|
|
||||||
|
- Change default zsh theme to adnosterzak
|
||||||
|
- pokemon coloscript integrated with fastfetch when opted with pokemon to add some bling
|
||||||
|
- additional external oh-my-zsh theme
|
||||||
|
|
||||||
|
## 06 Feb 2025
|
||||||
|
|
||||||
|
- added semi-unattended function.
|
||||||
|
- move all the initial questions at the beginning
|
||||||
|
|
||||||
|
## 04 Feb 2025
|
||||||
|
|
||||||
|
- Re-coded for better visibility
|
||||||
|
- Offered a new SDDM theme.
|
||||||
|
- script will automatically detect if you have nvidia but script still offer if you want to set up for user
|
||||||
|
|
||||||
|
## 30 Jan 2025
|
||||||
|
|
||||||
|
- AGS (aylur's GTK shell) v1 for desktop overview is now optional
|
||||||
|
|
||||||
|
## 12 Jan 2025
|
||||||
|
|
||||||
|
- switch to final version of aylurs-gtk-shell-v1
|
||||||
|
|
||||||
|
## 01 Jan 2025
|
||||||
|
|
||||||
|
- Switched to download dots from KooL's Hyprland dots specific branch
|
||||||
|
|
||||||
|
## 26 Dec 2024
|
||||||
|
|
||||||
|
- Removal of Bibata Ice cursor on assets since its integrated in the GTK Themes and Icons extract from a separate repo
|
||||||
|
|
||||||
|
## 10 Dec 2024
|
||||||
|
|
||||||
|
- updated swww.sh to download from version v0.9.5
|
||||||
|
|
||||||
|
## 24 Nov 2024
|
||||||
|
|
||||||
|
- switched to download rofi-wayland from releases instead from upstream
|
||||||
|
|
||||||
|
## 20 Sep 2024
|
||||||
|
|
||||||
|
- User will be ask if they want to set Thunar as default file manager if they decided to install it
|
||||||
|
|
||||||
|
## 19 Sep 2024
|
||||||
|
|
||||||
|
- updated xdph installation since it is now in Debian Repo
|
||||||
|
- Added fastfetch on tty. However, will be disabled if user decided to install pokemon colorscripts
|
||||||
|
|
||||||
|
## 14 Sep 2024
|
||||||
|
|
||||||
|
- Added Essential Packages final check in lieu of errors from Install log files in Install-Logs directory
|
||||||
|
- nwg-look is now in Debian Repo
|
||||||
|
|
||||||
|
## 10 Sep 2024
|
||||||
|
|
||||||
|
- added background check of known login managers if they are active if user chose to install sddm
|
||||||
|
|
||||||
|
## 08 Sep 2024
|
||||||
|
|
||||||
|
- Added final error checks on install-logs
|
||||||
|
|
||||||
|
## 07 Sep 2024
|
||||||
|
|
||||||
|
- Fix installation issue on hyprlock and xdph
|
||||||
|
- disabled imagemagick compilation from source
|
||||||
|
- dotfiles adjusted so it will be compatible for imagemagick v6
|
||||||
|
|
||||||
|
## 04 Sep 2024
|
||||||
|
|
||||||
|
- added a function to check if it is Ubuntu or Based on Ubuntu and script will exit
|
||||||
|
|
||||||
|
## 28 Aug 2024
|
||||||
|
|
||||||
|
- Added final check if hyprland is installed and will give an error to user
|
||||||
|
|
||||||
|
## 24 Aug 2024
|
||||||
|
|
||||||
|
- Created a newer and compatible Hyprland-Dots repo
|
||||||
|
-
|
||||||
|
|
||||||
|
## 23 Aug 2024
|
||||||
|
|
||||||
|
- Moved Ubuntu-Hyprland on a separate Github Repo
|
||||||
|
|
||||||
|
## 22 Aug 2024
|
||||||
|
|
||||||
|
- refactor Debian-Hyprland script. As Hyprland is now in official repo
|
||||||
|
|
||||||
|
## 07 Jul 2024
|
||||||
|
|
||||||
|
- added eza (ls replacement for tty). Note only on .zshrc
|
||||||
|
|
||||||
|
## 06 July 2024
|
||||||
|
|
||||||
|
- Version bumps for Debian (Hyprland v0.41.2)
|
||||||
|
|
||||||
|
## 11 June 2024
|
||||||
|
|
||||||
|
- adjusted script to install only Hyprland-Dots v2.2.14
|
||||||
|
|
||||||
|
## 10 June 2024
|
||||||
|
|
||||||
|
- changed behaviour of rofi-wayland.sh. To redownload a new rofi-wayland from repo instead of pulling changes. (It proves giving issue)
|
||||||
|
|
||||||
|
## 04 June 2024
|
||||||
|
|
||||||
|
- switched over to source install for imagemagick
|
||||||
|
- removal of fzf for Debian and Ubuntu (headache)
|
||||||
|
|
||||||
|
## 26 May 2024
|
||||||
|
|
||||||
|
- Added fzf for zsh (CTRL R to invoke FZF history)
|
||||||
|
|
||||||
|
## 23 May 2024
|
||||||
|
|
||||||
|
- added qalculate-gtk to work with rofi-calc. Default keybinds (SUPER ALT C)
|
||||||
|
- added power-profiles-daemon for ROG laptops. Note, I cant add to all since it conflicts with TLP, CPU-Auto-frequency etc.
|
||||||
|
- Note: Fastfetch configs will be added from Hyprland-Dots v2.2.12. However, you need to install from Fastfetch github page
|
||||||
|
|
||||||
|
## 19 May 2024
|
||||||
|
|
||||||
|
- Disabled the auto-login in .zprofile as it causes auto-login to Hyprland if any wayland was chosen. Can enabled if only using hyprland
|
||||||
|
|
||||||
|
## 15 May 2025
|
||||||
|
|
||||||
|
- Backed down hyprland version to install as v0.40.0 is failing to install
|
||||||
|
- removed from waybar-git to install. Instead to install from official repo
|
||||||
|
- cliphist install script is removed as it is now on Debian repo
|
||||||
|
- dependencies cleaned up and added
|
||||||
|
|
||||||
|
## 10 May 2024
|
||||||
|
|
||||||
|
- added wallust-git and remove python-pywal for migration to wallust on Hyprland-Dots v2.2.11
|
||||||
|
|
||||||
|
## 07 May 2024
|
||||||
|
|
||||||
|
- added ags.sh for upcoming ags overview for next Hyprland-Dots release. Will be installed form source
|
||||||
|
- added manual installation of waybar since Debian is very slow in updating their packages
|
||||||
|
|
||||||
|
## 03 May 2024
|
||||||
|
|
||||||
|
- Bump swww to v0.9.5
|
||||||
|
- added python3-pyquery for new weather-waybar python based on Hyprland-Dots
|
||||||
|
|
||||||
|
## 02 May 2024
|
||||||
|
|
||||||
|
- Added pyprland (hyprland plugin) - warning, I cant make it to properly run. Drop Down terminal not working, zoom is hit and miss
|
||||||
|
|
||||||
|
## 30 Apr 2024
|
||||||
|
|
||||||
|
- Updated hyprland.sh to install v0.39.1 Hyprland
|
||||||
|
- adding hypridle and hyprlock
|
||||||
|
- dropping swaylock-effects and swayidle
|
||||||
|
- adjusted to work with current Hyprland-Dots
|
||||||
|
|
||||||
|
## 22 Apr 2024
|
||||||
|
|
||||||
|
- Change dotfiles to specific version only as Debian and Ubuntu cant keep up with Hyprland development
|
||||||
|
|
||||||
|
## 20 Apr 2024
|
||||||
|
|
||||||
|
- Change default Oh-my-zsh theme to xiong-chiamiov-plus
|
||||||
|
|
||||||
|
## 11 Jan 2024
|
||||||
|
|
||||||
|
- dropped wlsunset
|
||||||
|
- added hyprlang build and install
|
||||||
|
|
||||||
|
## 02 Jan 2024
|
||||||
|
|
||||||
|
- Readme updated for cliphist instruction for ubuntu 23.10 users
|
||||||
|
- Created cliphist.sh for ubuntu 23.10 users (disabled by default and needs to be enabled on install.sh if desired)
|
||||||
|
|
||||||
|
## 30 December 2023
|
||||||
|
|
||||||
|
- Code Cleaned up.
|
||||||
|
- Pokemon Color Scripts now offered as optional
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
## 16 Dec 2023
|
## 16 Dec 2023
|
||||||
|
|
||||||
- zsh theme switched to `agnoster` theme by default
|
- zsh theme switched to `agnoster` theme by default
|
||||||
- pywal tty color change disabled by default
|
- pywal tty color change disabled by default
|
||||||
|
|
||||||
## 13 Dec 2023
|
## 13 Dec 2023
|
||||||
|
|
||||||
- Added a script / function to force install packages. Some users reported that it is not installed.
|
- Added a script / function to force install packages. Some users reported that it is not installed.
|
||||||
|
|
||||||
## 11 Dec 2023
|
## 11 Dec 2023
|
||||||
|
|
||||||
- Changing over to zsh automatically if user opted
|
- Changing over to zsh automatically if user opted
|
||||||
- If chose to install zsh and have no login manager, zsh auto login will auto start Hyprland
|
- If chose to install zsh and have no login manager, zsh auto login will auto start Hyprland
|
||||||
- added as optional, with zsh, pokemon colorscripts
|
- added as optional, with zsh, pokemon colorscripts
|
||||||
- improved zsh install scripts, so even the existing zsh users of can still opt for zsh and oh-my-zsh installation :)
|
- improved zsh install scripts, so even the existing zsh users of can still opt for zsh and oh-my-zsh installation :)
|
||||||
|
|
||||||
## 03 Dec 2023
|
## 03 Dec 2023
|
||||||
|
|
||||||
- Added kvantum for qt apps theming
|
- Added kvantum for qt apps theming
|
||||||
- return of wlogout due to theming issues of rofi-power
|
- return of wlogout due to theming issues of rofi-power
|
||||||
|
|
||||||
## 1 Dec 2023
|
## 1 Dec 2023
|
||||||
|
|
||||||
- replace the Hyprland to specific branch/version as newest needed some new libraries and debian dont have those yet
|
- replace the Hyprland to specific branch/version as newest needed some new libraries and debian dont have those yet
|
||||||
|
|
||||||
## 26 Nov 2023
|
## 26 Nov 2023
|
||||||
|
|
||||||
- nvidia - Move to normal hyprland package as nvidia patches are doing nothing see [`commit`](https://github.com/hyprwm/Hyprland/commit/cd96ceecc551c25631783499bd92c6662c5d3616)
|
- nvidia - Move to normal hyprland package as nvidia patches are doing nothing see [`commit`](https://github.com/hyprwm/Hyprland/commit/cd96ceecc551c25631783499bd92c6662c5d3616)
|
||||||
|
|
||||||
## 25 Nov 2023
|
## 25 Nov 2023
|
||||||
|
|
||||||
- drop wlogout since Hyprland-Dots v2.1.9 uses rofi-power
|
- drop wlogout since Hyprland-Dots v2.1.9 uses rofi-power
|
||||||
|
|
||||||
## 23-Nov-2023
|
## 23-Nov-2023
|
||||||
|
|
||||||
- Added Bibata cursor to install if opted for GTK Themes. However, it is not pre-applied. Use nwg-look utility to apply
|
- Added Bibata cursor to install if opted for GTK Themes. However, it is not pre-applied. Use nwg-look utility to apply
|
||||||
|
|
||||||
## 19-Nov-2023
|
## 19-Nov-2023
|
||||||
|
|
||||||
- Adjust dotfiles script to download from releases instead of from upstream
|
- Adjust dotfiles script to download from releases instead of from upstream
|
||||||
|
|
||||||
## 14-Oct-2023
|
## 14-Oct-2023
|
||||||
|
|
||||||
- initial release. Added swappy for screenshots
|
- initial release. Added swappy for screenshots
|
||||||
|
|
||||||
## 12-Oct-2023
|
## 12-Oct-2023
|
||||||
|
|
||||||
- BETA release
|
- BETA release
|
||||||
|
|||||||
128
CODE_OF_CONDUCT.md
Normal file
128
CODE_OF_CONDUCT.md
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
# Contributor Covenant Code of Conduct
|
||||||
|
|
||||||
|
## Our Pledge
|
||||||
|
|
||||||
|
We as members, contributors, and leaders pledge to make participation in our
|
||||||
|
community a harassment-free experience for everyone, regardless of age, body
|
||||||
|
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||||
|
identity and expression, level of experience, education, socio-economic status,
|
||||||
|
nationality, personal appearance, race, religion, or sexual identity
|
||||||
|
and orientation.
|
||||||
|
|
||||||
|
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||||
|
diverse, inclusive, and healthy community.
|
||||||
|
|
||||||
|
## Our Standards
|
||||||
|
|
||||||
|
Examples of behavior that contributes to a positive environment for our
|
||||||
|
community include:
|
||||||
|
|
||||||
|
* Demonstrating empathy and kindness toward other people
|
||||||
|
* Being respectful of differing opinions, viewpoints, and experiences
|
||||||
|
* Giving and gracefully accepting constructive feedback
|
||||||
|
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||||
|
and learning from the experience
|
||||||
|
* Focusing on what is best not just for us as individuals, but for the
|
||||||
|
overall community
|
||||||
|
|
||||||
|
Examples of unacceptable behavior include:
|
||||||
|
|
||||||
|
* The use of sexualized language or imagery, and sexual attention or
|
||||||
|
advances of any kind
|
||||||
|
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||||
|
* Public or private harassment
|
||||||
|
* Publishing others' private information, such as a physical or email
|
||||||
|
address, without their explicit permission
|
||||||
|
* Other conduct which could reasonably be considered inappropriate in a
|
||||||
|
professional setting
|
||||||
|
|
||||||
|
## Enforcement Responsibilities
|
||||||
|
|
||||||
|
Community leaders are responsible for clarifying and enforcing our standards of
|
||||||
|
acceptable behavior and will take appropriate and fair corrective action in
|
||||||
|
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||||
|
or harmful.
|
||||||
|
|
||||||
|
Community leaders have the right and responsibility to remove, edit, or reject
|
||||||
|
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||||
|
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||||
|
decisions when appropriate.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
This Code of Conduct applies within all community spaces, and also applies when
|
||||||
|
an individual is officially representing the community in public spaces.
|
||||||
|
Examples of representing our community include using an official e-mail address,
|
||||||
|
posting via an official social media account, or acting as an appointed
|
||||||
|
representative at an online or offline event.
|
||||||
|
|
||||||
|
## Enforcement
|
||||||
|
|
||||||
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
|
reported to the community leaders responsible for enforcement at
|
||||||
|
mail[at]ml4w.com.
|
||||||
|
All complaints will be reviewed and investigated promptly and fairly.
|
||||||
|
|
||||||
|
All community leaders are obligated to respect the privacy and security of the
|
||||||
|
reporter of any incident.
|
||||||
|
|
||||||
|
## Enforcement Guidelines
|
||||||
|
|
||||||
|
Community leaders will follow these Community Impact Guidelines in determining
|
||||||
|
the consequences for any action they deem in violation of this Code of Conduct:
|
||||||
|
|
||||||
|
### 1. Correction
|
||||||
|
|
||||||
|
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||||
|
unprofessional or unwelcome in the community.
|
||||||
|
|
||||||
|
**Consequence**: A private, written warning from community leaders, providing
|
||||||
|
clarity around the nature of the violation and an explanation of why the
|
||||||
|
behavior was inappropriate. A public apology may be requested.
|
||||||
|
|
||||||
|
### 2. Warning
|
||||||
|
|
||||||
|
**Community Impact**: A violation through a single incident or series
|
||||||
|
of actions.
|
||||||
|
|
||||||
|
**Consequence**: A warning with consequences for continued behavior. No
|
||||||
|
interaction with the people involved, including unsolicited interaction with
|
||||||
|
those enforcing the Code of Conduct, for a specified period of time. This
|
||||||
|
includes avoiding interactions in community spaces as well as external channels
|
||||||
|
like social media. Violating these terms may lead to a temporary or
|
||||||
|
permanent ban.
|
||||||
|
|
||||||
|
### 3. Temporary Ban
|
||||||
|
|
||||||
|
**Community Impact**: A serious violation of community standards, including
|
||||||
|
sustained inappropriate behavior.
|
||||||
|
|
||||||
|
**Consequence**: A temporary ban from any sort of interaction or public
|
||||||
|
communication with the community for a specified period of time. No public or
|
||||||
|
private interaction with the people involved, including unsolicited interaction
|
||||||
|
with those enforcing the Code of Conduct, is allowed during this period.
|
||||||
|
Violating these terms may lead to a permanent ban.
|
||||||
|
|
||||||
|
### 4. Permanent Ban
|
||||||
|
|
||||||
|
**Community Impact**: Demonstrating a pattern of violation of community
|
||||||
|
standards, including sustained inappropriate behavior, harassment of an
|
||||||
|
individual, or aggression toward or disparagement of classes of individuals.
|
||||||
|
|
||||||
|
**Consequence**: A permanent ban from any sort of public interaction within
|
||||||
|
the community.
|
||||||
|
|
||||||
|
## Attribution
|
||||||
|
|
||||||
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||||
|
version 2.0, available at
|
||||||
|
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
||||||
|
|
||||||
|
Community Impact Guidelines were inspired by [Mozilla's code of conduct
|
||||||
|
enforcement ladder](https://github.com/mozilla/diversity).
|
||||||
|
|
||||||
|
[homepage]: https://www.contributor-covenant.org
|
||||||
|
|
||||||
|
For answers to common questions about this code of conduct, see the FAQ at
|
||||||
|
https://www.contributor-covenant.org/faq. Translations are available at
|
||||||
|
https://www.contributor-covenant.org/translations.
|
||||||
149
COMMIT_MESSAGE_GUIDELINES.md
Normal file
149
COMMIT_MESSAGE_GUIDELINES.md
Normal 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.
|
||||||
69
CONTRIBUTING.md
Normal file
69
CONTRIBUTING.md
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
# Contributing to KooL Hyprland Projects
|
||||||
|
|
||||||
|
Thank you for your interest in contributing to KooL Hyprland Projects! 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/Debian-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/Debian-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/Debian-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/Debian-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.yml](https://github.com/JaKooLit/Debian-Hyprland/blob/main/.github/ISSUE_TEMPLATE/bug.yml) - Use this template to create a report to help us improve.
|
||||||
|
- [feature.yml](https://github.com/JaKooLit/Debian-Hyprland/blob/main/.github/ISSUE_TEMPLATE/feature.yml) - Use this template to suggest a feature for this project.
|
||||||
|
- [documentation-update.yml](https://github.com/JaKooLit/Debian-Hyprland/blob/main/.github/ISSUE_TEMPLATE/documentation-update.yml) - Use this template to propose a change to the documentation.
|
||||||
|
- [PULL_REQUEST_TEMPLATE.md](https://github.com/JaKooLit/Debian-Hyprland/blob/main/.github/PULL_REQUEST_TEMPLATE.md) - Use this template to submit a pull request.
|
||||||
|
- [COMMIT_MESSAGE_GUIDELINES.md](https://github.com/JaKooLit/Debian-Hyprland/blob/main/COMMIT_MESSAGE_GUIDELINES.md) - Read this file to learn about the commit message guidelines.
|
||||||
|
- [CONTRIBUTING.md](https://github.com/JaKooLit/Debian-Hyprland/blob/main/CONTRIBUTING.md) - Read this file to learn about the contributing guidelines.
|
||||||
|
- [LICENSE](https://github.com/JaKooLit/Debian-Hyprland/blob/main/LICENSE.md) - Read this file to learn about the license.
|
||||||
|
- [README.md](https://github.com/JaKooLit/Debian-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/Debian-Hyprland/discussions) or [Through Discord Server](https://discord.gg/kool-tech-world)
|
||||||
423
Debian-Hyprland-Install-Upgrade.es.md
Normal file
423
Debian-Hyprland-Install-Upgrade.es.md
Normal file
@ -0,0 +1,423 @@
|
|||||||
|
# Guía de Instalación y Actualización de Debian-Hyprland
|
||||||
|
|
||||||
|
Esta guía cubre los flujos de instalación y actualización mejorados para el proyecto Debian-Hyprland de KooL, incluyendo nuevas funciones de automatización, gestión centralizada de versiones y capacidades de dry-run.
|
||||||
|
|
||||||
|
## Tabla de Contenidos
|
||||||
|
|
||||||
|
1. [Resumen](#resumen)
|
||||||
|
2. [Nuevas Funciones](#nuevas-funciones)
|
||||||
|
3. [Gestión Central de Versiones](#gestión-central-de-versiones)
|
||||||
|
4. [Métodos de Instalación](#métodos-de-instalación)
|
||||||
|
5. [Flujos de Actualización](#flujos-de-actualización)
|
||||||
|
6. [Pruebas con Dry-Run](#pruebas-con-dry-run)
|
||||||
|
7. [Gestión de Logs](#gestión-de-logs)
|
||||||
|
8. [Uso Avanzado](#uso-avanzado)
|
||||||
|
9. [Solución de Problemas](#solución-de-problemas)
|
||||||
|
|
||||||
|
## Resumen
|
||||||
|
|
||||||
|
El proyecto Debian-Hyprland ahora incluye herramientas de automatización y gestión mejoradas, manteniendo la compatibilidad con el script original install.sh. Las principales adiciones son:
|
||||||
|
|
||||||
|
- **Gestión centralizada de versiones** mediante `hypr-tags.env`
|
||||||
|
- **Orden automático de dependencias** para los requisitos de Hyprland 0.51.x
|
||||||
|
- **Pruebas de compilación con dry-run** sin modificar el sistema
|
||||||
|
- **Actualizaciones selectivas de componentes** con `update-hyprland.sh`
|
||||||
|
- **Obtención automática de últimas versiones** desde GitHub
|
||||||
|
|
||||||
|
## Nuevas Funciones
|
||||||
|
|
||||||
|
### install.sh mejorado
|
||||||
|
El script original ahora:
|
||||||
|
|
||||||
|
- **Unifica versiones**: Lee `hypr-tags.env` y exporta variables de versión a todos los módulos
|
||||||
|
- **wayland-protocols automático**: Instala wayland-protocols desde el código fuente (≥1.45) antes de Hyprland
|
||||||
|
- **Orden robusto de dependencias**: Garantiza la secuencia correcta de requisitos
|
||||||
|
|
||||||
|
### Nuevos Scripts
|
||||||
|
|
||||||
|
#### update-hyprland.sh
|
||||||
|
Herramienta enfocada para gestionar y compilar solo el stack de Hyprland:
|
||||||
|
```bash
|
||||||
|
chmod +x ./update-hyprland.sh
|
||||||
|
./update-hyprland.sh --help # Ver todas las opciones
|
||||||
|
```
|
||||||
|
|
||||||
|
#### dry-run-build.sh
|
||||||
|
Herramienta de pruebas que compila componentes sin instalarlos:
|
||||||
|
```bash
|
||||||
|
chmod +x ./dry-run-build.sh
|
||||||
|
./dry-run-build.sh --help # Ver todas las opciones
|
||||||
|
```
|
||||||
|
|
||||||
|
#### wayland-protocols-src.sh
|
||||||
|
Módulo que compila wayland-protocols desde el origen para satisfacer los requisitos de Hyprland 0.51.x.
|
||||||
|
|
||||||
|
## Gestión Central de Versiones
|
||||||
|
|
||||||
|
### hypr-tags.env
|
||||||
|
Archivo con etiquetas de versión para todos los componentes de Hyprland:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Versiones actuales (ejemplo)
|
||||||
|
HYPRLAND_TAG=v0.51.1
|
||||||
|
AQUAMARINE_TAG=v0.9.3
|
||||||
|
HYPRUTILS_TAG=v0.8.2
|
||||||
|
HYPRLANG_TAG=v0.6.4
|
||||||
|
HYPRGRAPHICS_TAG=v0.1.5
|
||||||
|
HYPRWAYLAND_SCANNER_TAG=v0.4.5
|
||||||
|
HYPRLAND_PROTOCOLS_TAG=v0.6.4
|
||||||
|
HYPRLAND_QT_SUPPORT_TAG=v0.1.0
|
||||||
|
HYPRLAND_QTUTILS_TAG=v0.1.4
|
||||||
|
WAYLAND_PROTOCOLS_TAG=1.45
|
||||||
|
```
|
||||||
|
|
||||||
|
### Prioridad de Sobrescritura de Versiones
|
||||||
|
1. Variables de entorno (exportadas)
|
||||||
|
2. Valores en el archivo `hypr-tags.env`
|
||||||
|
3. Valores por defecto en cada módulo
|
||||||
|
|
||||||
|
## Métodos de Instalación
|
||||||
|
|
||||||
|
### Método 1: Instalación Completa Original
|
||||||
|
```bash
|
||||||
|
# Instalación estándar con todos los componentes
|
||||||
|
chmod +x install.sh
|
||||||
|
./install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Ahora, este método automáticamente:
|
||||||
|
- Carga versiones desde `hypr-tags.env`
|
||||||
|
- Instala wayland-protocols desde el origen antes de Hyprland
|
||||||
|
- Mantiene el orden correcto de dependencias
|
||||||
|
|
||||||
|
### Método 2: Solo el Stack de Hyprland
|
||||||
|
```bash
|
||||||
|
# Instala solo Hyprland y componentes esenciales
|
||||||
|
./update-hyprland.sh --install
|
||||||
|
```
|
||||||
|
|
||||||
|
### Método 3: Instalación Nueva con Últimas Versiones
|
||||||
|
```bash
|
||||||
|
# Obtiene últimas versiones de GitHub e instala
|
||||||
|
./update-hyprland.sh --fetch-latest --install
|
||||||
|
```
|
||||||
|
|
||||||
|
### Método 4: Instalación con Preset
|
||||||
|
```bash
|
||||||
|
# Usa un preset para elecciones automáticas
|
||||||
|
./install.sh --preset ./preset.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## Flujos de Actualización
|
||||||
|
|
||||||
|
Enlace rápido: [Actualización 0.49/0.50.x → 0.51.1](#actualización-049050x--0511)
|
||||||
|
|
||||||
|
### Actualizar a la Última Versión de Hyprland
|
||||||
|
|
||||||
|
#### Opción A: Descubrimiento Automático
|
||||||
|
```bash
|
||||||
|
# Obtiene las últimas etiquetas e instala
|
||||||
|
./update-hyprland.sh --fetch-latest --install
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Opción B: Versión Específica
|
||||||
|
```bash
|
||||||
|
# Establece una versión específica de Hyprland
|
||||||
|
./update-hyprland.sh --set HYPRLAND=v0.51.1 --install
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Opción C: Probar Antes de Instalar
|
||||||
|
```bash
|
||||||
|
# Prueba la compilación primero, luego instala si es exitoso
|
||||||
|
./update-hyprland.sh --fetch-latest --dry-run
|
||||||
|
# Si es exitoso:
|
||||||
|
./update-hyprland.sh --install
|
||||||
|
```
|
||||||
|
|
||||||
|
### Actualizar Componentes Individuales
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Actualiza solo librerías núcleo (a menudo necesario para nuevas versiones de Hyprland)
|
||||||
|
./update-hyprland.sh --fetch-latest --install --only hyprutils,hyprlang
|
||||||
|
|
||||||
|
# Actualiza aquamarine específicamente
|
||||||
|
./update-hyprland.sh --set AQUAMARINE=v0.9.3 --install --only aquamarine
|
||||||
|
```
|
||||||
|
|
||||||
|
### Actualizaciones Selectivas
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Instalar todo excepto los componentes Qt
|
||||||
|
./update-hyprland.sh --install --skip hyprland-qt-support,hyprland-qtutils
|
||||||
|
|
||||||
|
# Instalar solo componentes específicos
|
||||||
|
./update-hyprland.sh --install --only hyprland,aquamarine
|
||||||
|
```
|
||||||
|
|
||||||
|
### Actualización: 0.49/0.50.x ➜ 0.51.1
|
||||||
|
|
||||||
|
Si actualmente estás en Hyprland 0.49 o 0.50.x, puedes actualizar directamente a 0.51.1 sin una reinstalación completa.
|
||||||
|
|
||||||
|
Ruta recomendada:
|
||||||
|
```bash
|
||||||
|
# Asegura que hypr-tags.env apunte a la versión objetivo (omitir si ya es v0.51.1)
|
||||||
|
./update-hyprland.sh --set HYPRLAND=v0.51.1
|
||||||
|
|
||||||
|
# Actualiza Hyprland (los prerrequisitos se incluyen y ordenan automáticamente)
|
||||||
|
./update-hyprland.sh --install --only hyprland
|
||||||
|
```
|
||||||
|
|
||||||
|
Notas:
|
||||||
|
- El comando garantiza y ejecuta, según sea necesario: wayland-protocols-src, hyprland-protocols, hyprutils, hyprlang, aquamarine y luego hyprland.
|
||||||
|
- No es necesario usar install.sh para esta actualización, a menos que también quieras instalar/actualizar módulos opcionales (p. ej., SDDM, Bluetooth, Thunar, AGS, dotfiles) o estés recuperándote de una instalación fallida/parcial.
|
||||||
|
- Opcional: agrega --with-deps para reinstalar dependencias primero:
|
||||||
|
```bash
|
||||||
|
./update-hyprland.sh --with-deps --install --only hyprland
|
||||||
|
```
|
||||||
|
- Puedes hacer un dry-run primero para validar:
|
||||||
|
```bash
|
||||||
|
./update-hyprland.sh --dry-run --only hyprland
|
||||||
|
```
|
||||||
|
|
||||||
|
## Pruebas con Dry-Run
|
||||||
|
|
||||||
|
### ¿Por qué usar Dry-Run?
|
||||||
|
- Probar compatibilidad de compilación antes de instalar
|
||||||
|
- Validar combinaciones de versiones
|
||||||
|
- Depurar problemas de compilación sin cambios en el sistema
|
||||||
|
- Integración en CI/CD
|
||||||
|
|
||||||
|
### Uso Básico de Dry-Run
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Probar la configuración actual de versiones
|
||||||
|
./update-hyprland.sh --dry-run
|
||||||
|
|
||||||
|
# Probar con últimas versiones de GitHub
|
||||||
|
./update-hyprland.sh --fetch-latest --dry-run
|
||||||
|
|
||||||
|
# Probar una versión específica
|
||||||
|
./update-hyprland.sh --set HYPRLAND=v0.51.1 --dry-run
|
||||||
|
```
|
||||||
|
|
||||||
|
### Pruebas Avanzadas con Dry-Run
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Formato alternativo de resumen
|
||||||
|
./update-hyprland.sh --via-helper
|
||||||
|
|
||||||
|
# Probar con instalación de dependencias
|
||||||
|
./dry-run-build.sh --with-deps
|
||||||
|
|
||||||
|
# Probar solo componentes específicos
|
||||||
|
./dry-run-build.sh --only hyprland,aquamarine
|
||||||
|
```
|
||||||
|
|
||||||
|
### Limitaciones de Dry-Run
|
||||||
|
- **Las dependencias se instalan**: apt se ejecuta para asegurar la compilación
|
||||||
|
- **Requisitos de pkg-config**: Algunos componentes necesitan requisitos instalados en el sistema
|
||||||
|
- **Sin cambios en el sistema**: No instala archivos en /usr/local o /usr
|
||||||
|
|
||||||
|
## Gestión de Logs
|
||||||
|
|
||||||
|
### Ubicación de Logs
|
||||||
|
Todas las actividades de construcción generan logs con sello de tiempo en:
|
||||||
|
```
|
||||||
|
Install-Logs/
|
||||||
|
├── 01-Hyprland-Install-Scripts-YYYY-MM-DD-HHMMSS.log # Log principal de instalación
|
||||||
|
├── install-DD-HHMMSS_module-name.log # Logs por módulo
|
||||||
|
├── build-dry-run-YYYY-MM-DD-HHMMSS.log # Resumen de dry-run
|
||||||
|
└── update-hypr-YYYY-MM-DD-HHMMSS.log # Resumen de actualización
|
||||||
|
```
|
||||||
|
|
||||||
|
### Análisis de Logs
|
||||||
|
```bash
|
||||||
|
# Ver el log de instalación más reciente
|
||||||
|
ls -t Install-Logs/*.log | head -1 | xargs less
|
||||||
|
|
||||||
|
# Buscar errores en un módulo específico
|
||||||
|
grep -i error Install-Logs/install-*hyprland*.log
|
||||||
|
|
||||||
|
# Ver resumen de dry-run
|
||||||
|
cat Install-Logs/build-dry-run-*.log
|
||||||
|
```
|
||||||
|
|
||||||
|
### Retención de Logs
|
||||||
|
- Los logs se acumulan con el tiempo para referencia histórica
|
||||||
|
- Se recomienda limpieza manual periódica:
|
||||||
|
```bash
|
||||||
|
# Mantener solo logs de los últimos 30 días
|
||||||
|
find Install-Logs/ -name "*.log" -mtime +30 -delete
|
||||||
|
```
|
||||||
|
|
||||||
|
## Uso Avanzado
|
||||||
|
|
||||||
|
### Gestión de Versiones
|
||||||
|
|
||||||
|
#### Copia de Seguridad y Restauración
|
||||||
|
```bash
|
||||||
|
# Las etiquetas se respaldan automáticamente cuando cambian
|
||||||
|
# Restaurar la copia más reciente
|
||||||
|
./update-hyprland.sh --restore --dry-run
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Múltiples Conjuntos de Versiones
|
||||||
|
```bash
|
||||||
|
# Guardar configuración actual
|
||||||
|
cp hypr-tags.env hypr-tags-stable.env
|
||||||
|
|
||||||
|
# Probar versiones experimentales
|
||||||
|
./update-hyprland.sh --fetch-latest --dry-run
|
||||||
|
|
||||||
|
# Restaurar estable si es necesario
|
||||||
|
cp hypr-tags-stable.env hypr-tags.env
|
||||||
|
```
|
||||||
|
|
||||||
|
### Integración con el Entorno
|
||||||
|
|
||||||
|
#### PKG_CONFIG_PATH personalizado
|
||||||
|
```bash
|
||||||
|
# Asegurar que /usr/local tenga prioridad
|
||||||
|
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:${PKG_CONFIG_PATH:-}"
|
||||||
|
./update-hyprland.sh --install
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Compilaciones en Paralelo
|
||||||
|
```bash
|
||||||
|
# Controlar el paralelismo (por defecto: todos los núcleos)
|
||||||
|
export MAKEFLAGS="-j4"
|
||||||
|
./update-hyprland.sh --install
|
||||||
|
```
|
||||||
|
|
||||||
|
### Flujo de Trabajo de Desarrollo
|
||||||
|
|
||||||
|
#### Probar Nuevos Lanzamientos
|
||||||
|
```bash
|
||||||
|
# 1. Crear entorno de pruebas
|
||||||
|
cp hypr-tags.env hypr-tags.backup
|
||||||
|
|
||||||
|
# 2. Probar nueva versión
|
||||||
|
./update-hyprland.sh --set HYPRLAND=v0.52.0 --dry-run
|
||||||
|
|
||||||
|
# 3. Instalar si es exitoso
|
||||||
|
./update-hyprland.sh --install
|
||||||
|
|
||||||
|
# 4. Revertir si hay problemas
|
||||||
|
./update-hyprland.sh --restore --install
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Desarrollo de Componentes
|
||||||
|
```bash
|
||||||
|
# Solo instalar dependencias
|
||||||
|
./update-hyprland.sh --with-deps --dry-run
|
||||||
|
|
||||||
|
# Pruebas manuales de módulo
|
||||||
|
DRY_RUN=1 ./install-scripts/hyprland.sh
|
||||||
|
|
||||||
|
# Ver logs de un módulo específico
|
||||||
|
tail -f Install-Logs/install-*hyprland*.log
|
||||||
|
```
|
||||||
|
|
||||||
|
## Solución de Problemas
|
||||||
|
|
||||||
|
### Problemas Comunes
|
||||||
|
|
||||||
|
#### Falla de Configuración con CMake
|
||||||
|
**Síntomas**: "Package dependency requirement not satisfied"
|
||||||
|
|
||||||
|
**Soluciones**:
|
||||||
|
```bash
|
||||||
|
# Instalar requisitos faltantes
|
||||||
|
./update-hyprland.sh --install --only wayland-protocols-src,hyprutils,hyprlang
|
||||||
|
|
||||||
|
# Limpiar caché de compilación
|
||||||
|
rm -rf hyprland aquamarine hyprutils hyprlang
|
||||||
|
|
||||||
|
# Reintentar instalación
|
||||||
|
./update-hyprland.sh --install --only hyprland
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Errores de Compilación
|
||||||
|
**Síntomas**: "too many errors emitted"
|
||||||
|
|
||||||
|
**Soluciones**:
|
||||||
|
```bash
|
||||||
|
# Actualizar dependencias núcleo primero
|
||||||
|
./update-hyprland.sh --fetch-latest --install --only hyprutils,hyprlang
|
||||||
|
|
||||||
|
# Revisar incompatibilidades de API en logs
|
||||||
|
grep -A5 -B5 "error:" Install-Logs/install-*hyprland*.log
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Etiqueta No Encontrada
|
||||||
|
**Síntomas**: "Remote branch X not found"
|
||||||
|
|
||||||
|
**Soluciones**:
|
||||||
|
```bash
|
||||||
|
# Ver etiquetas disponibles
|
||||||
|
git ls-remote --tags https://github.com/hyprwm/Hyprland
|
||||||
|
|
||||||
|
# Usar etiqueta confirmada
|
||||||
|
./update-hyprland.sh --set HYPRLAND=v0.50.1 --install
|
||||||
|
```
|
||||||
|
|
||||||
|
### Pasos de Depuración
|
||||||
|
|
||||||
|
1. **Verificar compatibilidad del sistema**:
|
||||||
|
```bash
|
||||||
|
# Verificar versión de Debian
|
||||||
|
cat /etc/os-release
|
||||||
|
|
||||||
|
# Asegurar deb-src habilitado
|
||||||
|
grep -E "^deb-src" /etc/apt/sources.list
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Verificar entorno**:
|
||||||
|
```bash
|
||||||
|
# Ver etiquetas actuales
|
||||||
|
cat hypr-tags.env
|
||||||
|
|
||||||
|
# Probar dry-run primero
|
||||||
|
./update-hyprland.sh --dry-run --only hyprland
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Analizar logs**:
|
||||||
|
```bash
|
||||||
|
# Errores más recientes
|
||||||
|
grep -i "error\|fail" Install-Logs/*.log | tail -20
|
||||||
|
|
||||||
|
# Problemas por módulo
|
||||||
|
ls -la Install-Logs/install-*[component]*.log
|
||||||
|
```
|
||||||
|
|
||||||
|
### Obtener Ayuda
|
||||||
|
|
||||||
|
1. **Revisar logs**: Consulte siempre Install-Logs/ para detalles
|
||||||
|
2. **Probar dry-run**: Valide antes de instalar
|
||||||
|
3. **Soporte de la comunidad**: Envíe issues con extractos de logs
|
||||||
|
4. **Documentación**: Consulte README.md del proyecto para requisitos base
|
||||||
|
|
||||||
|
## Migración desde Versiones Previas
|
||||||
|
|
||||||
|
### Instalaciones Existentes
|
||||||
|
Las nuevas herramientas funcionan junto a instalaciones existentes:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Actualizar instalación existente
|
||||||
|
./update-hyprland.sh --install
|
||||||
|
|
||||||
|
# Probar sin afectar el sistema actual
|
||||||
|
./update-hyprland.sh --dry-run
|
||||||
|
```
|
||||||
|
|
||||||
|
### Convertir a Gestión por Etiquetas
|
||||||
|
```bash
|
||||||
|
# Las versiones actuales se guardan en hypr-tags.env automáticamente
|
||||||
|
# Verificar con:
|
||||||
|
cat hypr-tags.env
|
||||||
|
|
||||||
|
# Modificar versiones según necesidad:
|
||||||
|
./update-hyprland.sh --set HYPRLAND=v0.51.1
|
||||||
|
```
|
||||||
|
|
||||||
|
El flujo mejorado ofrece mayor control, capacidad de prueba y automatización, manteniendo la compatibilidad total con el proceso de instalación original.
|
||||||
423
Debian-Hyprland-Install-Upgrade.md
Normal file
423
Debian-Hyprland-Install-Upgrade.md
Normal file
@ -0,0 +1,423 @@
|
|||||||
|
# Debian-Hyprland Install & Upgrade Guide
|
||||||
|
|
||||||
|
This guide covers the enhanced installation and upgrade workflows for KooL's Debian-Hyprland project, including new automation features, centralized version management, and dry-run capabilities.
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
|
||||||
|
1. [Overview](#overview)
|
||||||
|
2. [New Features](#new-features)
|
||||||
|
3. [Central Version Management](#central-version-management)
|
||||||
|
4. [Installation Methods](#installation-methods)
|
||||||
|
5. [Upgrade Workflows](#upgrade-workflows)
|
||||||
|
6. [Dry-Run Testing](#dry-run-testing)
|
||||||
|
7. [Log Management](#log-management)
|
||||||
|
8. [Advanced Usage](#advanced-usage)
|
||||||
|
9. [Troubleshooting](#troubleshooting)
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The Debian-Hyprland project now includes enhanced automation and management tools while maintaining backward compatibility with the original install.sh script. The key additions are:
|
||||||
|
|
||||||
|
- **Centralized version management** via `hypr-tags.env`
|
||||||
|
- **Automated dependency ordering** for Hyprland 0.51.x requirements
|
||||||
|
- **Dry-run compilation testing** without system modifications
|
||||||
|
- **Selective component updates** via `update-hyprland.sh`
|
||||||
|
- **GitHub latest tag fetching** for automatic version discovery
|
||||||
|
|
||||||
|
## New Features
|
||||||
|
|
||||||
|
### Enhanced install.sh
|
||||||
|
The original install.sh script now includes:
|
||||||
|
|
||||||
|
- **Tag consistency**: Reads `hypr-tags.env` and exports version variables to all modules
|
||||||
|
- **Automatic wayland-protocols**: Installs wayland-protocols from source (≥1.45) before Hyprland
|
||||||
|
- **Robust dependency ordering**: Ensures prerequisites are built in the correct sequence
|
||||||
|
|
||||||
|
### New Scripts
|
||||||
|
|
||||||
|
#### update-hyprland.sh
|
||||||
|
A focused tool for managing and building just the Hyprland stack:
|
||||||
|
```bash
|
||||||
|
chmod +x ./update-hyprland.sh
|
||||||
|
./update-hyprland.sh --help # View all options
|
||||||
|
```
|
||||||
|
|
||||||
|
#### dry-run-build.sh
|
||||||
|
A testing tool that compiles components without installing:
|
||||||
|
```bash
|
||||||
|
chmod +x ./dry-run-build.sh
|
||||||
|
./dry-run-build.sh --help # View all options
|
||||||
|
```
|
||||||
|
|
||||||
|
#### wayland-protocols-src.sh
|
||||||
|
A new module that builds wayland-protocols from source to satisfy Hyprland 0.51.x requirements.
|
||||||
|
|
||||||
|
## Central Version Management
|
||||||
|
|
||||||
|
### hypr-tags.env
|
||||||
|
This file contains version tags for all Hyprland components:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Current versions (example)
|
||||||
|
HYPRLAND_TAG=v0.51.1
|
||||||
|
AQUAMARINE_TAG=v0.9.3
|
||||||
|
HYPRUTILS_TAG=v0.8.2
|
||||||
|
HYPRLANG_TAG=v0.6.4
|
||||||
|
HYPRGRAPHICS_TAG=v0.1.5
|
||||||
|
HYPRWAYLAND_SCANNER_TAG=v0.4.5
|
||||||
|
HYPRLAND_PROTOCOLS_TAG=v0.6.4
|
||||||
|
HYPRLAND_QT_SUPPORT_TAG=v0.1.0
|
||||||
|
HYPRLAND_QTUTILS_TAG=v0.1.4
|
||||||
|
WAYLAND_PROTOCOLS_TAG=1.45
|
||||||
|
```
|
||||||
|
|
||||||
|
### Version Override Priority
|
||||||
|
1. Environment variables (exported)
|
||||||
|
2. hypr-tags.env file values
|
||||||
|
3. Default hardcoded values in each module
|
||||||
|
|
||||||
|
## Installation Methods
|
||||||
|
|
||||||
|
### Method 1: Original Full Installation
|
||||||
|
```bash
|
||||||
|
# Standard installation with all components
|
||||||
|
chmod +x install.sh
|
||||||
|
./install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
This method now automatically:
|
||||||
|
- Loads versions from `hypr-tags.env`
|
||||||
|
- Installs wayland-protocols from source before Hyprland
|
||||||
|
- Maintains proper dependency ordering
|
||||||
|
|
||||||
|
### Method 2: Hyprland Stack Only
|
||||||
|
```bash
|
||||||
|
# Install only Hyprland and essential components
|
||||||
|
./update-hyprland.sh --install
|
||||||
|
```
|
||||||
|
|
||||||
|
### Method 3: Fresh Installation with Latest Versions
|
||||||
|
```bash
|
||||||
|
# Fetch latest GitHub releases and install
|
||||||
|
./update-hyprland.sh --fetch-latest --install
|
||||||
|
```
|
||||||
|
|
||||||
|
### Method 4: Preset-Based Installation
|
||||||
|
```bash
|
||||||
|
# Use preset file for automated choices
|
||||||
|
./install.sh --preset ./preset.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## Upgrade Workflows
|
||||||
|
|
||||||
|
Quick link: [Upgrade 0.49/0.50.x → 0.51.1](#upgrade-049050x--0511)
|
||||||
|
|
||||||
|
### Upgrading to Latest Hyprland Release
|
||||||
|
|
||||||
|
#### Option A: Automatic Discovery
|
||||||
|
```bash
|
||||||
|
# Fetch latest tags and install
|
||||||
|
./update-hyprland.sh --fetch-latest --install
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Option B: Specific Version
|
||||||
|
```bash
|
||||||
|
# Set specific Hyprland version
|
||||||
|
./update-hyprland.sh --set HYPRLAND=v0.51.1 --install
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Option C: Test Before Installing
|
||||||
|
```bash
|
||||||
|
# Test compilation first, then install if successful
|
||||||
|
./update-hyprland.sh --fetch-latest --dry-run
|
||||||
|
# If successful:
|
||||||
|
./update-hyprland.sh --install
|
||||||
|
```
|
||||||
|
|
||||||
|
### Upgrading Individual Components
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Update only core libraries (often needed for new Hyprland versions)
|
||||||
|
./update-hyprland.sh --fetch-latest --install --only hyprutils,hyprlang
|
||||||
|
|
||||||
|
# Update aquamarine specifically
|
||||||
|
./update-hyprland.sh --set AQUAMARINE=v0.9.3 --install --only aquamarine
|
||||||
|
```
|
||||||
|
|
||||||
|
### Selective Updates
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Install everything except Qt components
|
||||||
|
./update-hyprland.sh --install --skip hyprland-qt-support,hyprland-qtutils
|
||||||
|
|
||||||
|
# Install only specific components
|
||||||
|
./update-hyprland.sh --install --only hyprland,aquamarine
|
||||||
|
```
|
||||||
|
|
||||||
|
### Upgrade: 0.49/0.50.x ➜ 0.51.1
|
||||||
|
|
||||||
|
If you’re currently on Hyprland 0.49 or 0.50.x, you can upgrade directly to 0.51.1 without a full reinstall.
|
||||||
|
|
||||||
|
Recommended path:
|
||||||
|
```bash
|
||||||
|
# Ensure hypr-tags.env pins the target version (skip if already v0.51.1)
|
||||||
|
./update-hyprland.sh --set HYPRLAND=v0.51.1
|
||||||
|
|
||||||
|
# Upgrade Hyprland (prerequisites are auto-included and ordered)
|
||||||
|
./update-hyprland.sh --install --only hyprland
|
||||||
|
```
|
||||||
|
|
||||||
|
Notes:
|
||||||
|
- The command will automatically ensure and run, as needed: wayland-protocols-src, hyprland-protocols, hyprutils, hyprlang, aquamarine, then hyprland.
|
||||||
|
- Full install via install.sh is not required for this upgrade unless you also want to install/refresh optional modules (e.g., SDDM, Bluetooth, Thunar, AGS, dotfiles) or you’re recovering from a failed/partial setup.
|
||||||
|
- Optional: add --with-deps to re-run dependency installation first:
|
||||||
|
```bash
|
||||||
|
./update-hyprland.sh --with-deps --install --only hyprland
|
||||||
|
```
|
||||||
|
- You can dry-run first to validate:
|
||||||
|
```bash
|
||||||
|
./update-hyprland.sh --dry-run --only hyprland
|
||||||
|
```
|
||||||
|
|
||||||
|
## Dry-Run Testing
|
||||||
|
|
||||||
|
### Why Use Dry-Run?
|
||||||
|
- Test compilation compatibility before installing
|
||||||
|
- Validate version combinations
|
||||||
|
- Debug build issues without system changes
|
||||||
|
- CI/CD pipeline integration
|
||||||
|
|
||||||
|
### Basic Dry-Run Usage
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Test current tag configuration
|
||||||
|
./update-hyprland.sh --dry-run
|
||||||
|
|
||||||
|
# Test with latest GitHub releases
|
||||||
|
./update-hyprland.sh --fetch-latest --dry-run
|
||||||
|
|
||||||
|
# Test specific version
|
||||||
|
./update-hyprland.sh --set HYPRLAND=v0.51.1 --dry-run
|
||||||
|
```
|
||||||
|
|
||||||
|
### Advanced Dry-Run Testing
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Use alternative summary format
|
||||||
|
./update-hyprland.sh --via-helper
|
||||||
|
|
||||||
|
# Test with dependencies installation
|
||||||
|
./dry-run-build.sh --with-deps
|
||||||
|
|
||||||
|
# Test only specific components
|
||||||
|
./dry-run-build.sh --only hyprland,aquamarine
|
||||||
|
```
|
||||||
|
|
||||||
|
### Dry-Run Limitations
|
||||||
|
- **Dependencies still install**: apt operations run to ensure compilation succeeds
|
||||||
|
- **pkg-config requirements**: Some components need system-installed prerequisites
|
||||||
|
- **No system changes**: No files installed to /usr/local or /usr
|
||||||
|
|
||||||
|
## Log Management
|
||||||
|
|
||||||
|
### Log Location
|
||||||
|
All build activities generate timestamped logs in:
|
||||||
|
```
|
||||||
|
Install-Logs/
|
||||||
|
├── 01-Hyprland-Install-Scripts-YYYY-MM-DD-HHMMSS.log # Main install log
|
||||||
|
├── install-DD-HHMMSS_module-name.log # Per-module logs
|
||||||
|
├── build-dry-run-YYYY-MM-DD-HHMMSS.log # Dry-run summary
|
||||||
|
└── update-hypr-YYYY-MM-DD-HHMMSS.log # Update tool summary
|
||||||
|
```
|
||||||
|
|
||||||
|
### Log Analysis
|
||||||
|
```bash
|
||||||
|
# View most recent install log
|
||||||
|
ls -t Install-Logs/*.log | head -1 | xargs less
|
||||||
|
|
||||||
|
# Check for errors in specific module
|
||||||
|
grep -i error Install-Logs/install-*hyprland*.log
|
||||||
|
|
||||||
|
# View dry-run summary
|
||||||
|
cat Install-Logs/build-dry-run-*.log
|
||||||
|
```
|
||||||
|
|
||||||
|
### Log Retention
|
||||||
|
- Logs accumulate over time for historical reference
|
||||||
|
- Manual cleanup recommended periodically:
|
||||||
|
```bash
|
||||||
|
# Keep only logs from last 30 days
|
||||||
|
find Install-Logs/ -name "*.log" -mtime +30 -delete
|
||||||
|
```
|
||||||
|
|
||||||
|
## Advanced Usage
|
||||||
|
|
||||||
|
### Tag Management
|
||||||
|
|
||||||
|
#### Backup and Restore
|
||||||
|
```bash
|
||||||
|
# Tags are automatically backed up on changes
|
||||||
|
# Restore most recent backup
|
||||||
|
./update-hyprland.sh --restore --dry-run
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Multiple Version Sets
|
||||||
|
```bash
|
||||||
|
# Save current configuration
|
||||||
|
cp hypr-tags.env hypr-tags-stable.env
|
||||||
|
|
||||||
|
# Try experimental versions
|
||||||
|
./update-hyprland.sh --fetch-latest --dry-run
|
||||||
|
|
||||||
|
# Restore stable if needed
|
||||||
|
cp hypr-tags-stable.env hypr-tags.env
|
||||||
|
```
|
||||||
|
|
||||||
|
### Environment Integration
|
||||||
|
|
||||||
|
#### Custom PKG_CONFIG_PATH
|
||||||
|
```bash
|
||||||
|
# Ensure /usr/local takes precedence
|
||||||
|
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:${PKG_CONFIG_PATH:-}"
|
||||||
|
./update-hyprland.sh --install
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Parallel Builds
|
||||||
|
```bash
|
||||||
|
# Control build parallelism (default: all cores)
|
||||||
|
export MAKEFLAGS="-j4"
|
||||||
|
./update-hyprland.sh --install
|
||||||
|
```
|
||||||
|
|
||||||
|
### Development Workflow
|
||||||
|
|
||||||
|
#### Testing New Releases
|
||||||
|
```bash
|
||||||
|
# 1. Create test environment
|
||||||
|
cp hypr-tags.env hypr-tags.backup
|
||||||
|
|
||||||
|
# 2. Test new version
|
||||||
|
./update-hyprland.sh --set HYPRLAND=v0.52.0 --dry-run
|
||||||
|
|
||||||
|
# 3. Install if successful
|
||||||
|
./update-hyprland.sh --install
|
||||||
|
|
||||||
|
# 4. Rollback if issues
|
||||||
|
./update-hyprland.sh --restore --install
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Component Development
|
||||||
|
```bash
|
||||||
|
# Install dependencies only
|
||||||
|
./update-hyprland.sh --with-deps --dry-run
|
||||||
|
|
||||||
|
# Manual module testing
|
||||||
|
DRY_RUN=1 ./install-scripts/hyprland.sh
|
||||||
|
|
||||||
|
# Check logs for specific module
|
||||||
|
tail -f Install-Logs/install-*hyprland*.log
|
||||||
|
```
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Common Issues
|
||||||
|
|
||||||
|
#### CMake Configuration Fails
|
||||||
|
**Symptoms**: "Package dependency requirement not satisfied"
|
||||||
|
|
||||||
|
**Solutions**:
|
||||||
|
```bash
|
||||||
|
# Install missing prerequisites
|
||||||
|
./update-hyprland.sh --install --only wayland-protocols-src,hyprutils,hyprlang
|
||||||
|
|
||||||
|
# Clear build cache
|
||||||
|
rm -rf hyprland aquamarine hyprutils hyprlang
|
||||||
|
|
||||||
|
# Retry installation
|
||||||
|
./update-hyprland.sh --install --only hyprland
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Compilation Errors
|
||||||
|
**Symptoms**: "too many errors emitted"
|
||||||
|
|
||||||
|
**Solutions**:
|
||||||
|
```bash
|
||||||
|
# Update core dependencies first
|
||||||
|
./update-hyprland.sh --fetch-latest --install --only hyprutils,hyprlang
|
||||||
|
|
||||||
|
# Check for API mismatches in logs
|
||||||
|
grep -A5 -B5 "error:" Install-Logs/install-*hyprland*.log
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Tag Not Found
|
||||||
|
**Symptoms**: "Remote branch X not found"
|
||||||
|
|
||||||
|
**Solutions**:
|
||||||
|
```bash
|
||||||
|
# Check available tags
|
||||||
|
git ls-remote --tags https://github.com/hyprwm/Hyprland
|
||||||
|
|
||||||
|
# Use confirmed existing tag
|
||||||
|
./update-hyprland.sh --set HYPRLAND=v0.50.1 --install
|
||||||
|
```
|
||||||
|
|
||||||
|
### Debug Steps
|
||||||
|
|
||||||
|
1. **Check system compatibility**:
|
||||||
|
```bash
|
||||||
|
# Verify Debian version
|
||||||
|
cat /etc/os-release
|
||||||
|
|
||||||
|
# Ensure deb-src enabled
|
||||||
|
grep -E "^deb-src" /etc/apt/sources.list
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Verify environment**:
|
||||||
|
```bash
|
||||||
|
# Check current tags
|
||||||
|
cat hypr-tags.env
|
||||||
|
|
||||||
|
# Test dry-run first
|
||||||
|
./update-hyprland.sh --dry-run --only hyprland
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Analyze logs**:
|
||||||
|
```bash
|
||||||
|
# Most recent errors
|
||||||
|
grep -i "error\|fail" Install-Logs/*.log | tail -20
|
||||||
|
|
||||||
|
# Module-specific issues
|
||||||
|
ls -la Install-Logs/install-*[component]*.log
|
||||||
|
```
|
||||||
|
|
||||||
|
### Getting Help
|
||||||
|
|
||||||
|
1. **Check logs**: Always review Install-Logs/ for detailed error information
|
||||||
|
2. **Test dry-run**: Use --dry-run to validate before installing
|
||||||
|
3. **Community support**: Submit issues with relevant log excerpts
|
||||||
|
4. **Documentation**: Refer to main project README.md for base requirements
|
||||||
|
|
||||||
|
## Migration from Previous Versions
|
||||||
|
|
||||||
|
### Existing Installations
|
||||||
|
The new tools work alongside existing installations:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Update existing installation
|
||||||
|
./update-hyprland.sh --install
|
||||||
|
|
||||||
|
# Test without affecting current system
|
||||||
|
./update-hyprland.sh --dry-run
|
||||||
|
```
|
||||||
|
|
||||||
|
### Converting to Tag Management
|
||||||
|
```bash
|
||||||
|
# Current versions are saved to hypr-tags.env automatically
|
||||||
|
# Verify with:
|
||||||
|
cat hypr-tags.env
|
||||||
|
|
||||||
|
# Modify versions as needed:
|
||||||
|
./update-hyprland.sh --set HYPRLAND=v0.51.1
|
||||||
|
```
|
||||||
|
|
||||||
|
The enhanced workflow provides better control, testing capabilities, and automation while maintaining full compatibility with the original installation process.
|
||||||
388
README.md
388
README.md
@ -1,186 +1,225 @@
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
# 💌 JaKooLit's Debian/Ubuntu Hyprland Install Script 💌
|
# 💌 KooL's Debian-Hyprland Install Script 💌
|
||||||
|
|
||||||
  
|
#### For Debian 13 (Trixie) and above (testing, SID)
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<img src="https://raw.githubusercontent.com/JaKooLit/Hyprland-Dots/main/assets/latte.png" width="400" />
|
||||||
|
</p>
|
||||||
|
|
||||||
|
   <a href="https://discord.gg/kool-tech-world"> <img src="https://img.shields.io/discord/1151869464405606400?style=for-the-badge&logo=discord&color=cba6f7&link=https%3A%2F%2Fdiscord.gg%kool-tech-world"> </a>
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
</div>!
|
</div>
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<br>
|
||||||
|
<a href="#-announcement-"><kbd> <br> Read this First <br> </kbd></a>  
|
||||||
|
<a href="#-to-use-this-script"><kbd> <br> Installation <br> </kbd></a>  
|
||||||
|
<a href="#gallery-and-videos"><kbd> <br> Gallery <br> </kbd></a>  
|
||||||
|
</div><br>
|
||||||
|
|
||||||
# ♨️♨️♨️ ATTENTION ♨️♨️♨️ 06 Dec 2023
|
<p align="center">
|
||||||
- Recent hyprland release v0.33.0, needed a newer libdrm and Debian dont have newer libdrm yet on their repo. That is why for now, the hyprland version to be installed with this script is v0.32.3
|
<img src="https://raw.githubusercontent.com/JaKooLit/Hyprland-Dots/main/assets/latte.png" width="200" />
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
👇 KOOL's Hyprland-Dots related Links 👇
|
||||||
|
<br/>
|
||||||
|
</div>
|
||||||
|
<div align="center">
|
||||||
|
<br>
|
||||||
|
<a href="https://github.com/JaKooLit/Hyprland-Dots/tree/Debian-Dots"><kbd> <br> Hyprland-Dots Debian repo <br> </kbd></a>  
|
||||||
|
<a href="https://www.youtube.com/playlist?list=PLDtGd5Fw5_GjXCznR0BzCJJDIQSZJRbxx"><kbd> <br> Youtube <br> </kbd></a>  
|
||||||
|
<a href="https://github.com/JaKooLit/Hyprland-Dots/wiki"><kbd> <br> Wiki <br> </kbd></a>  
|
||||||
|
<a href="https://github.com/JaKooLit/Hyprland-Dots/wiki/Keybinds"><kbd> <br> Keybinds <br> </kbd></a>  
|
||||||
|
<a href="https://github.com/JaKooLit/Hyprland-Dots/wiki/FAQ"><kbd> <br> FAQ <br> </kbd></a>  
|
||||||
|
<a href="https://discord.gg/kool-tech-world"><kbd> <br> Discord <br> </kbd></a>
|
||||||
|
</div><br>
|
||||||
|
|
||||||
## Debian 13 Trixie and SID and Ubuntu 23.10 Mantic Minotaur Hyprland Install Script
|
<p align="center">
|
||||||
|
<img src="https://raw.githubusercontent.com/JaKooLit/Hyprland-Dots/main/assets/latte.png" width="200" />
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3 align="center">
|
||||||
|
<img src="https://github.com/JaKooLit/Telegram-Animated-Emojis/blob/main/Activity/Sparkles.webp" alt="Sparkles" width="38" height="38" />
|
||||||
|
KooL Hyprland-Dotfiles Showcase
|
||||||
|
<img src="https://github.com/JaKooLit/Telegram-Animated-Emojis/blob/main/Activity/Sparkles.webp" alt="Sparkles" width="38" height="38" />
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
|
||||||
|
<https://github.com/user-attachments/assets/49bc12b2-abaf-45de-a21c-67aacd9bb872>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
### Gallery and Videos
|
||||||
|
|
||||||
|
#### 🎥 Feb 2025 Video explanation of installation with preset
|
||||||
|
|
||||||
|
- [YOUTUBE-LINK](https://youtu.be/wQ70lo7P6vA?si=_QcbrNKh_Bg0L3wC)
|
||||||
|
- [YOUTUBE-Hyprland-Playlist](https://youtube.com/playlist?list=PLDtGd5Fw5_GjXCznR0BzCJJDIQSZJRbxx&si=iaNjLulFdsZ6AV-t)
|
||||||
|
- [AGS overview DEMO](https://youtu.be/zY5SLNPBJTs)
|
||||||
|
|
||||||
|
> [!IMPORTANT]
|
||||||
|
> install a backup tool like `snapper` or `timeshift`. and Backup your system before installing hyprland using this script (**HIGHLY RECOMMENDED**).
|
||||||
|
|
||||||
|
> [!CAUTION]
|
||||||
|
> Download this script on a directory where you have write permissions. ie. HOME. Or any directory within your home directory. Else script will fail
|
||||||
|
|
||||||
|
#### ⚠️ Pre-requisites and VERY Important
|
||||||
|
|
||||||
### ⚠️ Pre-requisites and VERY Important! ###
|
|
||||||
- Do not run this installer as sudo or as root
|
- Do not run this installer as sudo or as root
|
||||||
- This Installer requires a user with a priviledge to install packages
|
- This Installer requires a user with a priviledge to install packages
|
||||||
- Needs a Debian 13 Testing (Trixie) Branch as it needs a newer wayland packages! I have tried on Stable Debian 12 Bookworm in which, Hyprland wont build.
|
- Needs a Debian 13 Trixie or greater. As it needs a newer wayland packages!
|
||||||
- In theory, it should also work on Debian SID (unstable) but I have not tested yet.
|
- edit your `/etc/apt/sources.list` and **remove** `#` on lines with `deb-src` to enable source packaging else will not install properly especially Hyprland
|
||||||
- edit your /etc/apt/sources.list and remove # on lines with deb-src to enable source packaging else will not install properly especially Hyprland
|
|
||||||
```bash
|
```bash
|
||||||
sudo nano /etc/apt/sources.list
|
sudo nano /etc/apt/sources.list
|
||||||
```
|
```
|
||||||
- delete # on the lines with 'deb-src'
|
|
||||||
|
- delete # on the lines with 'deb-src'
|
||||||
- ensure to allow to install non-free drivers especially for users with NVIDIA gpus. You can also install non-free drivers if required. Edit install-scripts/nvidia.sh and change the nvidia stuff's if required
|
- ensure to allow to install non-free drivers especially for users with NVIDIA gpus. You can also install non-free drivers if required. Edit install-scripts/nvidia.sh and change the nvidia stuff's if required
|
||||||
- If you have login Manager already like GDM (gnome login manager), I highly advice not to install SDDM. But if you decide to install SDDM, see here [`Issue 2 - SDDM`](https://github.com/JaKooLit/Debian-Hyprland/issues/2)
|
|
||||||
|
|
||||||
### 🔔 NOTICE TO UBUNTU USERS ###
|
### 🪧🪧🪧 ANNOUNCEMENT 🪧🪧🪧
|
||||||
- You can use this installer. However, I have only tested on Ubuntu 23.10. Not sure if it works on older ubuntu as Hyprland needs an updated wayland libraries. For sure wont work in any Ubuntu LTS.
|
|
||||||
- If you are using Gnome already, DO NOT install the SDDM. The GDM works file as well. For some reason, during installation, you will be asked which login manager you wanted to use. But during my test, nothing happened.
|
|
||||||
- For Ubuntu with NVIDIA GPU's, make sure to edit the install-scripts/nvidia.sh . Delete all packages in nvidia_pkg except libva-wayland2 and nvidia-vaapi-driver and uncomment/remove # before sudo ubuntu-drivers install. You also need to delete or simply just add # in the lines 44 and 45 echo "echo "## for nvidia" | sudo tee -a... and echo "deb http://deb.debian.org/debian........
|
|
||||||
|
|
||||||
### ⚠️ WARNING! If you have GDM already as log-in manager, DO NOT install SDDM
|
[Debian-Hyprland Changelogs](https://github.com/JaKooLit/Debian-Hyprland/blob/main/CHANGELOGS.md)
|
||||||
- You will encounter issues. See [`Issue 2 - SDDM`](https://github.com/JaKooLit/Debian-Hyprland/issues/2)
|
|
||||||
|
|
||||||
|
- 10 October 2025 Update!
|
||||||
|
- Hyprland-Debian nows builds 0.51.1 from source!
|
||||||
|
- The installer now can be used to install newer releases later
|
||||||
|
- If you are currently running 0.49, or 0.50, you can upgrade to 0.51.1
|
||||||
|
- You do not have to re-install everything, but re-running `install.sh` works also
|
||||||
|
- Instructions are available in English and Spanish
|
||||||
|
|
||||||
#### 📷 Hyprland-Dots-v2 Featuring Rofi
|
#### ✨ Some notes on this installer / Prerequisites
|
||||||
<p align="center">
|
|
||||||
<img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-ScreenShots/Debian-v2/Debian.png" /> <img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-ScreenShots/Debian-v2/Waybar-Layouts.png" />
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p align="center">
|
- Recommend to install SDDM. Apart from GDM and SDDM, any other Login Manager may not work nor launch Hyprland. However, hyprland can be launched through tty by type Hyprland
|
||||||
<img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-Dots-Showcase/default-waybar.png" /> <img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-Dots-Showcase/rofi.png" />
|
- 🕯️ network-manager-gnome (nm-applet) *has been removed* from the packages to install. This is because it is known to restart the networkmanager causing issues in the installation process. After you boot up, inorder to get the network-manager applet, install network-manager-gnome. `sudo apt install network-manager-gnome` See below if your network or wifi became unmanaged after installation
|
||||||
<img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-Dots-Showcase/wlogout-dark.png" /> <img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-Dots-Showcase/showcase2.png"" />
|
|
||||||
<img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-Dots-Showcase/waybar-layout.png" /> <img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-Dots-Showcase/waybar-style.png"" />
|
|
||||||
</p>
|
|
||||||
|
|
||||||
### ❕ Installed on Kali Linux 😈
|
### 🚩 changing login manager to SDDM
|
||||||
|
|
||||||

|
- if you really want to change login manager, there are couple of things you need to carry out before running this install script
|
||||||
|
- first install sddm. the no-install-recommends is suggested else it will pull lots of plasma depencies.
|
||||||
|
|
||||||
### 📷 More updated Screenshots Here [`Link`](https://github.com/JaKooLit/screenshots/tree/main/Hyprland-Dots-Showcase)
|
|
||||||
|
|
||||||
### 📷 Older Screenshots: v1[`Link`](https://github.com/JaKooLit/screenshots/tree/main/Hyprland-ScreenShots/Debian) & v2[`Link`](https://github.com/JaKooLit/screenshots/tree/main/Hyprland-ScreenShots/Debian-v2)
|
|
||||||
|
|
||||||
### ✨ Youtube presentation [`V1`](https://youtu.be/hGEWOif5D4Y?si=WQ-PrPwEhM5Og76Q)
|
|
||||||
### ✨ Youtube presentation [`V2`](https://youtu.be/Qc4VP9JFh2Y)
|
|
||||||
|
|
||||||
### ✨ A video walk through my dotfiles[`Link`](https://youtu.be/fO-RBHvVEcc?si=ijqxxnq_DLiyO8xb)
|
|
||||||
### ✨ A video walk through of My Hyprland-Dots v2[`Link`](https://youtu.be/yaVurRoXc-s?si=iDnBC5S3thPBX3ZE)
|
|
||||||
|
|
||||||
### 💯💯 Check out Installation Video coverage by KSK royal (Ubuntu 23.10 + nvidia)
|
|
||||||
- [`Link`](https://youtu.be/PMQf9gAt8FE?si=eCBqwXaej-1XXIh_)
|
|
||||||
|
|
||||||
### 💯💯 Check out Installation Video coverage by KSK royal (Kali Linux xfce + nvidia). He have details regarding installing timeshift and switching to sddm from lightdm. He also covers removal of nouveau in favor of proprietary nvidia drivers
|
|
||||||
- [`Link`](https://youtu.be/NtpRtSBjz3I?si=YGkS75u_7cW5D_zu)
|
|
||||||
|
|
||||||
## 🪧🪧🪧 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.
|
|
||||||
- Hyprland-Dots use are constantly evolving / improving. you can check CHANGELOGS here [`Hyprland-Dots-Changelogs`](https://github.com/JaKooLit/Hyprland-Dots/wiki/7.-CHANGELOGS)
|
|
||||||
- Since the Hyprland-Dots are evolving, some of the screenshots maybe old
|
|
||||||
|
|
||||||
### ✨ Some notes on this installer / Prerequisites
|
|
||||||
#### 💬 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 as it may break your system due to shared packages / libraries.
|
|
||||||
- This script is meant to install in Debian Testing (Trixie).
|
|
||||||
- If However, decided to try, recommend to install SDDM. Apart from GDM and SDDM, any other Login Manager may not work nor launch Hyprland. However, hyprland can be launched through tty by type Hyprland
|
|
||||||
- 🕯️ network-manager-gnome (nm-applet) has been removed from the packages to install. This is because it is known to restart the networkmanager causing issues in the installation process. After you boot up, inorder to get the network-manager applet, install network-manager-gnome. `sudo apt install network-manager-gnome` See below if your network or wifi became unmanaged after installation
|
|
||||||
- If you have nvidia, and wanted to use proprietary drivers, uninstall nouveau first (if installed). This script will be installing proprietary nvidia drivers and will not deal with removal of nouveau.
|
|
||||||
|
|
||||||
|
|
||||||
### ⚠️ WARNING! nwg-look takes long time to install.
|
|
||||||
- nwg-look is a utility to costumize your GTK theme. It's a LXAppearance like. Its a good tool though but this package is entirely optional
|
|
||||||
|
|
||||||
### ✨ Costumize the packages to be installed
|
|
||||||
- inside the install-scripts folder, you can edit 00-hypr-pkgs.sh. Do not edit 00-dependencies.sh unless you know what you are doing. 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
|
|
||||||
|
|
||||||
### 🔔 NOTICE TO NVIDIA OWNERS ###
|
|
||||||
- by default it is installing the latest and newest nvidia drivers. If you have an older nvidia-gpu (GTX 800 series and older), check out nvidia-debian website [`LINK`](https://wiki.debian.org/NvidiaGraphicsDrivers) and edit nvidia.sh in install-scripts folder to install proper gpu driver
|
|
||||||
|
|
||||||
### ✨ to run
|
|
||||||
> clone this repo by using git. Change directory, make executable and run the script
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/JaKooLit/Debian-Hyprland.git
|
sudo apt install --no-install-recommends -y sddm
|
||||||
cd Debian-Hyprland
|
```
|
||||||
|
|
||||||
|
- then ran `sudo dpkg-reconfigure sddm` choose sddm and then reboot.
|
||||||
|
- once reboot done, you can ran the script and choose sddm & sddm theme
|
||||||
|
- [LINK](https://www.simplified.guide/ubuntu/switch-to-gdm) for some guide
|
||||||
|
|
||||||
|
#### 💫 SDDM and GTK Themes offered
|
||||||
|
|
||||||
|
- If you opted to install SDDM theme, here's the [LINK](https://github.com/JaKooLit/simple-sddm-2) which is a modified fork of [LINK](https://github.com/Keyitdev/sddm-astronaut-theme)
|
||||||
|
- If you opted to install GTK Themes, Icons, here's the [LINK](https://github.com/JaKooLit/GTK-themes-icons). This also includes Bibata Modern Ice cursor.
|
||||||
|
|
||||||
|
#### 🔔 NOTICE TO NVIDIA OWNERS ###
|
||||||
|
|
||||||
|
- By default it is installing the latest and newest nvidia drivers. If you have an older nvidia-gpu (GTX 800 series and older), check out nvidia-debian website [LINK](https://wiki.debian.org/NvidiaGraphicsDrivers) and edit nvidia.sh in install-scripts directory to install proper gpu driver
|
||||||
|
- If you have nvidia, and wanted to use proprietary drivers, uninstall nouveau first (if installed). This script will be installing proprietary nvidia drivers and will not deal with removal of nouveau.
|
||||||
|
- NVIDIA users / owners, after installation, check [`THIS`](https://github.com/JaKooLit/Hyprland-Dots/wiki/Notes_to_remember#--for-nvidia-gpu-users)
|
||||||
|
|
||||||
|
> [!IMPORTANT]
|
||||||
|
> If you wish to use the nouveau driver (installed by default in Debian), be sure to not select "Nvidia" in the installation options.
|
||||||
|
> If you select this option, the NVIDIA installer part will attempt to blacklist nouveau; while Hyprland will still be installed, it will skip blacklisting nouveau if you don't select the NVIDIA option.
|
||||||
|
|
||||||
|
## ✨ Auto clone and install
|
||||||
|
>
|
||||||
|
> [!CAUTION]
|
||||||
|
> If you are using FISH SHELL, DO NOT use this function. Clone and run install.sh instead
|
||||||
|
|
||||||
|
- you can use this command to automatically clone the installer and ran the script for you
|
||||||
|
- NOTE: `curl` package is required before running this command
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sh <(curl -L https://raw.githubusercontent.com/JaKooLit/Debian-Hyprland/main/auto-install.sh)
|
||||||
|
```
|
||||||
|
|
||||||
|
## ✨ to use this script
|
||||||
|
clone this repo, change directory, make executable and run the script:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone --depth=1 https://github.com/JaKooLit/Debian-Hyprland.git ~/Debian-Hyprland
|
||||||
|
cd ~/Debian-Hyprland
|
||||||
chmod +x install.sh
|
chmod +x install.sh
|
||||||
./install.sh
|
./install.sh
|
||||||
```
|
```
|
||||||
### ✨ for ZSH and OH-MY-ZSH installation
|
|
||||||
> installer should auto change your default shell to zsh. However, if it does not, do this
|
|
||||||
```bash
|
|
||||||
chsh -s $(which zsh)
|
|
||||||
zsh
|
|
||||||
source ~/.zshrc
|
|
||||||
```
|
|
||||||
- reboot or logout
|
|
||||||
- by default agnoster theme is installed. You can find more themes from this [`OH-MY-ZSH-THEMES`](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes)
|
|
||||||
- to change the theme, edit ~/.zshrc ZSH_THEME="desired theme"
|
|
||||||
|
|
||||||
### ✨ TO DO once installation done and dotfiles copied
|
#### ✨ TO DO once installation done and dotfiles copied
|
||||||
- ~~if you opted to install gtk themes, to apply the theme and icon, press the dark/light button (beside the padlock). To apply Bibata modern ice cursor, launch nwg-look (GTK Settings) through rofi.~~ Hyprland-Dots v2.1.18, initial boot file will attempt to apply GTK themes,cursor, and icons. You can tweak more using nwg-look (GTK-Settings) utility
|
|
||||||
|
|
||||||
- SUPER H for HINT or click on the waybar HINT! Button
|
|
||||||
- Head over to [FAQ](https://github.com/JaKooLit/Hyprland-Dots/wiki/4.-FAQ) and [TIPS](https://github.com/JaKooLit/Hyprland-Dots/wiki/5.-TIPS)
|
|
||||||
|
|
||||||
|
- SUPER H for HINT or click on the waybar HINT! Button
|
||||||
|
- Head over to [`FAQ`](https://github.com/JaKooLit/Hyprland-Dots/wiki/FAQ) and [`TIPS`](https://github.com/JaKooLit/Hyprland-Dots/wiki/TIPS)
|
||||||
|
- Head over to [KooL Hyprland WIKI](https://github.com/JaKooLit/Hyprland-Dots/wiki)
|
||||||
|
|
||||||
- if you installed in your laptop and Brightness and Keyboard brightness does not work you can execute this command `sudo chmod +s $(which brightnessctl)`
|
- if you installed in your laptop and Brightness and Keyboard brightness does not work you can execute this command `sudo chmod +s $(which brightnessctl)`
|
||||||
|
|
||||||
### ✨ Packages that are manually downloaded and build. These packages will not be updated by apt and have to be manually updated
|
#### ✨ Packages that are manually downloaded and build. These packages will not be updated by apt and have to be manually updated
|
||||||
- Hyprland [`LINK`](https://github.com/hyprwm/Hyprland)
|
|
||||||
- nwg-look [`LINK`](https://github.com/nwg-piotr/nwg-look)
|
|
||||||
- Asus ROG asusctl [`LINK`](https://gitlab.com/asus-linux/asusctl) and superfxctl [`LINK`](https://gitlab.com/asus-linux/supergfxctl)
|
- Asus ROG asusctl [`LINK`](https://gitlab.com/asus-linux/asusctl) and superfxctl [`LINK`](https://gitlab.com/asus-linux/supergfxctl)
|
||||||
- swww [`LINK`](https://github.com/Horus645/swww)
|
- swww [`LINK`](https://github.com/Horus645/swww)
|
||||||
- swaylock-effects [`LINK`](https://github.com/mortie/swaylock-effects)
|
- hyprlock [`LINK`](https://github.com/hyprwm/hyprlock) #22 Aug 2024 - still not on repo
|
||||||
- swappy [`LINK`](https://github.com/jtheoof/swappy)
|
- hypridle [`LINK`](https://github.com/hyprwm/hypridle) #22 Aug 2024 - still not on repo
|
||||||
- xdg-desktop-portal-hyprland [`LINK`](https://github.com/hyprwm/xdg-desktop-portal-hyprland)
|
|
||||||
- rofi-wayland [`LINK`](https://github.com/lbonn/rofi)
|
- rofi-wayland [`LINK`](https://github.com/lbonn/rofi)
|
||||||
|
- wallust [`LINK`](https://codeberg.org/explosion-mental/wallust)
|
||||||
|
|
||||||
- a.) to update these package, in your installation folder, you can move these folders, `Hyprland` `nwg-look` `swaylock-effects` `swappy` `swww` `rofi` `asusctl` `supergfxctl`, as appropriate or download manually, cd into it, update/install
|
> [!TIP]
|
||||||
|
> To update to latest packages, re-running this script will auto update all. Script is configured to pull latest packages build for you.
|
||||||
|
|
||||||
~~- b.) to update Hyprland and xdg-desktop-portal-hyprland~~
|
### 💥 UNINSTALL SCRIPT / Removal of Config Files
|
||||||
~~``` bash~~
|
|
||||||
~~git pull~~
|
|
||||||
~~make all~~
|
|
||||||
~~sudo make install~~
|
|
||||||
~~```~~
|
|
||||||
- c.) for nwg-look, asusctl, supergfxtctl, to update ran
|
|
||||||
``` bash
|
|
||||||
git pull
|
|
||||||
sudo make install
|
|
||||||
```
|
|
||||||
- c.) for swww, to update
|
|
||||||
``` bash
|
|
||||||
git pull
|
|
||||||
cargo build --release
|
|
||||||
```
|
|
||||||
- d.) for swaylock-effects and swappy
|
|
||||||
``` bash
|
|
||||||
git pull
|
|
||||||
meson build
|
|
||||||
ninja -C build
|
|
||||||
sudo ninja -C build install
|
|
||||||
```
|
|
||||||
- e.) for rofi
|
|
||||||
``` bash
|
|
||||||
git pull
|
|
||||||
meson setup build
|
|
||||||
ninja -C build
|
|
||||||
sudo ninja -C build install
|
|
||||||
```
|
|
||||||
|
|
||||||
### 🤬 FAQ
|
- 11 March 2025, due to popular request, created a guided `uninstall.sh` script. USE this with caution as it may render your system unstable.
|
||||||
#### Most common question I got is, Hey Ja, Why the heck it is taking long time to install? Other distro like Arch its only a minute or two. Why here takes like forever?!?!?!
|
- I will not be responsible if your system breaks
|
||||||
- Well, most of the core packages are downloaded and Build and compiled from SOURCE. There are no pre-built binary (yet) for Debian and Ubuntu. Unlike Other distros, they already have prepacked binary that can just download and install.
|
- The best still to revert to previous state of your system is via **timeshift or snapper**
|
||||||
|
|
||||||
### ❗ some known issues on this Installer
|
#### 🤬 FAQ
|
||||||
- some users reported that they have to install some packages. It is in the install-scripts/force-install.sh
|
|
||||||
- At this time the packages force to install are the following `imagemagick`
|
|
||||||
|
|
||||||
### 🏴☠️🏴☠️🏴☠️ Got a questions regarding the Hyprland Dots?
|
**Most common question I got is, Hey Ja, Why the heck it is taking long time to install? Other distro like Arch its only a minute or two. Why here takes like forever?!?!?**
|
||||||
- Head over to wiki Link [`WIKI`](🏴https://github.com/JaKooLit/Hyprland-Dots/wiki)
|
|
||||||
|
|
||||||
|
- Well, most of the core packages are downloaded and Build and compiled from *SOURCE*. Unlike Other distros, they already have prepacked binary that can just download and install.
|
||||||
|
|
||||||
|
## 🛎 ***DEBIAN Hyprland Dots UPDATING NOTES***
|
||||||
|
|
||||||
|
- With this new update to Debian-Hyprland the current Hyprland-Dots are now compatible with Debian. This applies only to Debian, not ubuntu.
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> This script does not setup audio. Kindly set up. If you have not, I recommend pipewire. `sudo apt install -y pipewire`
|
||||||
|
|
||||||
|
#### 🙋 Got a questions regarding the Hyprland Dots or configurations? 🙋
|
||||||
|
|
||||||
|
Head over to wiki Link [`WIKI`](https://github.com/JaKooLit/Hyprland-Dots/wiki)
|
||||||
|
|
||||||
|
#### ⌨ Keybinds
|
||||||
|
|
||||||
|
Keybinds [`CLICK`](https://github.com/JaKooLit/Hyprland-Dots/wiki/Keybinds)
|
||||||
|
|
||||||
|
> [!TIP]
|
||||||
|
> KooL Hyprland has a searchable keybind function via rofi. (SUPER SHIFT K) or right click the `HINTS` waybar button
|
||||||
|
|
||||||
|
#### 🙋 👋 Having issues or questions?
|
||||||
|
|
||||||
|
- 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)
|
||||||
|
|
||||||
|
#### 🔧 Proper way to re-installing a particular script from install-scripts directory
|
||||||
|
|
||||||
|
- CD into Debian-Hyprland directory and then ran the below command.
|
||||||
|
- i.e. `./install-scripts/gtk-themes.sh` - to reinstall GTK Themes or
|
||||||
|
- `./install-scripts/sddm.sh` - to reinstall sddm
|
||||||
|
|
||||||
|
> [!IMPORTANT]
|
||||||
|
> DO NOT CD into install-scripts directory as script as it will fail. Scripts are designed to ran outside install-scripts directory for installation logging purposes.
|
||||||
|
|
||||||
|
#### 🛣️ Roadmap
|
||||||
|
|
||||||
### 🛣️ Roadmap:
|
|
||||||
- ~~[ ] Install zsh and oh-my-zsh without necessary steps above~~ DONE
|
|
||||||
- [ ] possibly adding gruvbox themes, cursors, icons
|
- [ ] possibly adding gruvbox themes, cursors, icons
|
||||||
|
|
||||||
### ❗ some known issues
|
#### ❗ some known issues for nvidia
|
||||||
- [ ] reports from members of my discord, states that some users of nvidia are getting stuck on sddm login. credit to @Kenni Fix stated was
|
|
||||||
|
- reports from members of my discord, states that some users of nvidia are getting stuck on sddm login. credit to @Kenni Fix stated was
|
||||||
|
|
||||||
```
|
```
|
||||||
while in sddm press ctrl+alt+F2 or F3
|
while in sddm press ctrl+alt+F2 or F3
|
||||||
log into your account
|
log into your account
|
||||||
@ -188,34 +227,85 @@ 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
|
||||||
)
|
)
|
||||||
- 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)
|
||||||
|
|
||||||
- [ ] Does not work in Ubuntu 23.04
|
- reports from a member of discord for Nvidia for additional env's
|
||||||
|
- remove # from the following env's on
|
||||||
|
|
||||||
|
```
|
||||||
|
env = GBM_BACKEND,nvidia-drm
|
||||||
|
env = WLR_RENDERER_ALLOW_SOFTWARE,1
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 🫥 Improving performance for Older Nvidia Cards using driver 470
|
||||||
|
|
||||||
|
- [`SEE HERE`](https://github.com/JaKooLit/Hyprland-Dots/discussions/123#discussion-6035205)
|
||||||
|
|
||||||
|
#### ❗ other known issues
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> Auto start of Hyprland after login (no SDDM or GDM or any login managers)
|
||||||
|
|
||||||
|
- This was disabled a few days ago. (19 May 2024). This was because some users, after they used the Distro-Hyprland scripts with other DE (gnome-wayland or plasma-wayland), if they choose to login into gnome-wayland for example, Hyprland is starting.
|
||||||
|
- to avoid this, I disabled it. You can re-enable again by editing `~/.zprofile` . Remove all the # on the first lines
|
||||||
|
- [ ] ROFI issues (scaling, unexplained scaling etc). This is most likely to experience if you are installing on a system where rofi is currently installed. To fix it uninstall rofi and install rofi-wayland . `sudo apt autoremove rofi` .
|
||||||
|
- Install rofi-wayland with
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd ~/Debian-Hyprland
|
||||||
|
./install-scripts/rofi-wayland.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
- [ ] Rofi-wayland is compatible with x11 so no need to worry.
|
||||||
|
|
||||||
|
- [ ] Does not work in Debian Bookworm
|
||||||
- [ ] sddm blackscreen when log-out
|
- [ ] sddm blackscreen when log-out
|
||||||
- [ ] Installing SDDM if or any other Login Manager installed. See [`Issue 2 - SDDM`](https://github.com/JaKooLit/Debian-Hyprland/issues/2)
|
- [ ] Installing SDDM if or any other Login Manager installed. See [`Issue 2 - SDDM`](https://github.com/JaKooLit/Debian-Hyprland/issues/2)
|
||||||
- [ ] network is down or become unmanaged [`This`](https://askubuntu.com/questions/71159/network-manager-says-device-not-managed) might help
|
- [ ] network is down or become unmanaged [`This`](https://askubuntu.com/questions/71159/network-manager-says-device-not-managed) might help
|
||||||
|
|
||||||
|
#### 📒 Final Notes
|
||||||
|
|
||||||
### 📒 Final Notes
|
- join my discord channel [`Discord`](https://discord.com/invite/kool-tech-world)
|
||||||
- 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 :)
|
||||||
|
|
||||||
|
#### ✍️ Contributing
|
||||||
|
|
||||||
|
- As stated above, these script does not contain actual config files. These are only the installer of packages
|
||||||
|
- If you want to contribute and/or test the Hyprland-Dotfiles (development branch), [`Hyprland-Dots-Development`](https://github.com/JaKooLit/Hyprland-Dots/tree/development)
|
||||||
|
- Want to contribute on KooL-Hyprland-Dots Click [`HERE`](https://github.com/JaKooLit/Hyprland-Dots/blob/main/CONTRIBUTING.md) for a guide how to contribute
|
||||||
|
- Want to contribute on This Installer? Click [`HERE`](https://github.com/JaKooLit/Debian-Hyprland/blob/main/CONTRIBUTING.md) for a guide how to contribute
|
||||||
|
|
||||||
|
#### 👍👍👍 Thanks and Credits
|
||||||
|
|
||||||
### 👍👍👍 Thanks and Credits!
|
|
||||||
- [`Hyprland`](https://hyprland.org/) Of course to Hyprland and @vaxerski for this awesome Dynamic Tiling Manager.
|
- [`Hyprland`](https://hyprland.org/) Of course to Hyprland and @vaxerski for this awesome Dynamic Tiling Manager.
|
||||||
- shout out to CooSee from Gentoo forums for the nice rainbow borders
|
|
||||||
|
|
||||||
### 💌 Some screenshots shared to me via discord
|
### 💖 Support
|
||||||
- Discord user : thunderlake.
|
|
||||||

|
|
||||||
|
|
||||||
## 💖 Support
|
|
||||||
- a Star on my Github repos would be nice 🌟
|
- a Star on my Github repos would be nice 🌟
|
||||||
|
|
||||||
- Subscribe to my Youtube Channel [YouTube](https://www.youtube.com/@Ja.KooLit)
|
- Subscribe to my Youtube Channel [YouTube](https://www.youtube.com/@Ja.KooLit)
|
||||||
|
|
||||||
- You can also buy me Coffee Through ko-fi.com 🤩
|
- you can also give support through coffee's or btc 😊
|
||||||
|
|
||||||
<a href='https://ko-fi.com/jakoolit' target='_blank'><img height='35' style='border:0px;height:46px;' src='https://az743702.vo.msecnd.net/cdn/kofi3.png?v=0' border='0' alt='Buy Me a Coffee at ko-fi.com' />
|
[](https://ko-fi.com/jakoolit)
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
[](https://www.buymeacoffee.com/JaKooLit)
|
||||||
|
|
||||||
|
Or you can donate cryto on my btc wallet :)
|
||||||
|
> 1N3MeV2dsX6gQB42HXU6MF2hAix1mqjo8i
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
#### 📹 Youtube videos (Click to view and watch the playlist) 📹
|
||||||
|
|
||||||
|
[](https://youtube.com/playlist?list=PLDtGd5Fw5_GjXCznR0BzCJJDIQSZJRbxx&si=iaNjLulFdsZ6AV-t)
|
||||||
|
|
||||||
|
## 🥰🥰 💖💖 👍👍👍
|
||||||
|
|
||||||
|
[](https://starchart.cc/JaKooLit/Debian-Hyprland)
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
|
#if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
|
||||||
Hyprland
|
# Hyprland
|
||||||
fi
|
#fi
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
export ZSH="$HOME/.oh-my-zsh"
|
export ZSH="$HOME/.oh-my-zsh"
|
||||||
|
|
||||||
ZSH_THEME="agnoster"
|
ZSH_THEME="agnosterzak"
|
||||||
|
|
||||||
plugins=(
|
plugins=(
|
||||||
git
|
git
|
||||||
@ -16,17 +16,16 @@ 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 #without fastfetch
|
||||||
|
#pokemon-colorscripts --no-title -s -r | fastfetch -c $HOME/.config/fastfetch/config-pokemon.jsonc --logo-type file-raw --logo-height 10 --logo-width 5 --logo -
|
||||||
|
|
||||||
# Import colorscheme from 'wal' asynchronously
|
# fastfetch. Will be disabled if above colorscript was chosen to install
|
||||||
# & # Run the process in the background.
|
fastfetch -c $HOME/.config/fastfetch/config-compact.jsonc
|
||||||
# ( ) # Hide shell job control messages.
|
|
||||||
# Not supported in the "fish" shell.
|
|
||||||
#(cat ~/.cache/wal/sequences &)
|
|
||||||
|
|
||||||
# Alternative (blocks terminal for 0-3ms)
|
# Set-up icons for files/directories in terminal using lsd
|
||||||
#cat ~/.cache/wal/sequences
|
alias ls='lsd'
|
||||||
|
alias l='ls -l'
|
||||||
# To add support for TTYs this line can be optionally added.
|
alias la='ls -a'
|
||||||
#source ~/.cache/wal/colors-tty.sh
|
alias lla='ls -la'
|
||||||
|
alias lt='ls --tree'
|
||||||
|
|
||||||
|
|||||||
26
assets/0001-fix-hyprland-compile-issue.patch
Normal file
26
assets/0001-fix-hyprland-compile-issue.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
diff --git a/hyprctl/main.cpp b/hyprctl/main.cpp
|
||||||
|
index daf8d4a8..62ab8578 100644
|
||||||
|
--- a/hyprctl/main.cpp
|
||||||
|
+++ b/hyprctl/main.cpp
|
||||||
|
@@ -268,7 +268,7 @@ int requestIPC(std::string_view filename, std::string_view arg) {
|
||||||
|
sockaddr_un serverAddress = {0};
|
||||||
|
serverAddress.sun_family = AF_UNIX;
|
||||||
|
|
||||||
|
- std::string socketPath = getRuntimeDir() + "/" + instanceSignature + "/" + filename;
|
||||||
|
+ std::string socketPath = getRuntimeDir() + "/" + std::string(instanceSignature) + "/" + std::string(filename);
|
||||||
|
|
||||||
|
strncpy(serverAddress.sun_path, socketPath.c_str(), sizeof(serverAddress.sun_path) - 1);
|
||||||
|
|
||||||
|
diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp
|
||||||
|
index 4e5c4080..1944f22e 100644
|
||||||
|
--- a/src/helpers/Monitor.cpp
|
||||||
|
+++ b/src/helpers/Monitor.cpp
|
||||||
|
@@ -549,7 +549,7 @@ bool CMonitor::applyMonitorRule(SMonitorRule* pMonitorRule, bool force) {
|
||||||
|
std::ranges::sort(sortedModes, sortFunc);
|
||||||
|
if (sortedModes.size() > 3)
|
||||||
|
sortedModes.erase(sortedModes.begin() + 3, sortedModes.end());
|
||||||
|
- requestedModes.insert_range(requestedModes.end(), sortedModes | std::views::reverse);
|
||||||
|
+ requestedModes.insert(requestedModes.end(), sortedModes.rbegin(), sortedModes.rend());
|
||||||
|
};
|
||||||
|
|
||||||
|
// last fallback is always preferred mode
|
||||||
Binary file not shown.
@ -1,4 +1,4 @@
|
|||||||
; thunar GtkAccelMap rc-file -*- scheme -*-
|
; Thunar GtkAccelMap rc-file -*- scheme -*-
|
||||||
; this file is an automated accelerator map dump
|
; this file is an automated accelerator map dump
|
||||||
;
|
;
|
||||||
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-type" "")
|
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-type" "")
|
||||||
@ -9,7 +9,6 @@
|
|||||||
; (gtk_accel_path "<Actions>/ThunarWindow/close-tab" "<Primary>w")
|
; (gtk_accel_path "<Actions>/ThunarWindow/close-tab" "<Primary>w")
|
||||||
; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-size" "")
|
; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-size" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/new-window" "<Primary>n")
|
; (gtk_accel_path "<Actions>/ThunarWindow/new-window" "<Primary>n")
|
||||||
; (gtk_accel_path "<Actions>/ThunarBookmarks/05236c1e56bf89e963d95883e09da5b4" "")
|
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/clear-directory-specific-settings" "")
|
; (gtk_accel_path "<Actions>/ThunarWindow/clear-directory-specific-settings" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/close-window" "<Primary>q")
|
; (gtk_accel_path "<Actions>/ThunarWindow/close-window" "<Primary>q")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-parent" "<Alt>Up")
|
; (gtk_accel_path "<Actions>/ThunarWindow/open-parent" "<Alt>Up")
|
||||||
@ -26,9 +25,10 @@
|
|||||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-configure-toolbar" "")
|
; (gtk_accel_path "<Actions>/ThunarWindow/view-configure-toolbar" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarStandardView/forward" "<Alt>Right")
|
; (gtk_accel_path "<Actions>/ThunarStandardView/forward" "<Alt>Right")
|
||||||
; (gtk_accel_path "<Actions>/ThunarActionManager/restore" "")
|
; (gtk_accel_path "<Actions>/ThunarActionManager/restore" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarBookmarks/9f0d843e4074095bf657b996746ec75c" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-location-alt" "<Alt>d")
|
; (gtk_accel_path "<Actions>/ThunarWindow/open-location-alt" "<Alt>d")
|
||||||
; (gtk_accel_path "<Actions>/ThunarBookmarks/54b46b08907eba130aa7b45747971edc" "")
|
; (gtk_accel_path "<Actions>/ThunarBookmarks/a16339451d60726d0755a887bd755af2" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-out-alt" "<Primary>minus")
|
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-out-alt" "<Primary>KP_Subtract")
|
||||||
; (gtk_accel_path "<Actions>/ThunarStandardView/select-by-pattern" "<Primary>s")
|
; (gtk_accel_path "<Actions>/ThunarStandardView/select-by-pattern" "<Primary>s")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-file-menu" "F10")
|
; (gtk_accel_path "<Actions>/ThunarWindow/open-file-menu" "F10")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/contents" "F1")
|
; (gtk_accel_path "<Actions>/ThunarWindow/contents" "F1")
|
||||||
@ -36,7 +36,6 @@
|
|||||||
; (gtk_accel_path "<Actions>/ThunarBookmarks/44e0e66b3d753576f90ed75c87917822" "")
|
; (gtk_accel_path "<Actions>/ThunarBookmarks/44e0e66b3d753576f90ed75c87917822" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-descending" "")
|
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-descending" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-name" "")
|
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-name" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarBookmarks/b6b3368230fb9c168f1090ce48fbb4f5" "")
|
|
||||||
; (gtk_accel_path "<Actions>/ThunarStandardView/select-all-files" "<Primary>a")
|
; (gtk_accel_path "<Actions>/ThunarStandardView/select-all-files" "<Primary>a")
|
||||||
; (gtk_accel_path "<Actions>/ThunarActionManager/execute" "")
|
; (gtk_accel_path "<Actions>/ThunarActionManager/execute" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarStandardView/properties" "<Alt>Return")
|
; (gtk_accel_path "<Actions>/ThunarStandardView/properties" "<Alt>Return")
|
||||||
@ -46,11 +45,9 @@
|
|||||||
; (gtk_accel_path "<Actions>/ThunarActionManager/paste-2" "<Shift>Insert")
|
; (gtk_accel_path "<Actions>/ThunarActionManager/paste-2" "<Shift>Insert")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-templates" "")
|
; (gtk_accel_path "<Actions>/ThunarWindow/open-templates" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-filetype" "")
|
; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-filetype" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarBookmarks/e02afe67295bafd99368cbfb38bfb76a" "")
|
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/close-all-windows" "<Primary><Shift>w")
|
; (gtk_accel_path "<Actions>/ThunarWindow/close-all-windows" "<Primary><Shift>w")
|
||||||
; (gtk_accel_path "<Actions>/ThunarStandardView/create-document" "")
|
; (gtk_accel_path "<Actions>/ThunarStandardView/create-document" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/detach-tab" "")
|
; (gtk_accel_path "<Actions>/ThunarWindow/detach-tab" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarBookmarks/707266d8a544f819b5de3061849d9040" "")
|
|
||||||
; (gtk_accel_path "<Actions>/ThunarBookmarks/978d3e7a7225e42c977fe94183792d87" "")
|
; (gtk_accel_path "<Actions>/ThunarBookmarks/978d3e7a7225e42c977fe94183792d87" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/cancel-search" "Escape")
|
; (gtk_accel_path "<Actions>/ThunarWindow/cancel-search" "Escape")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-in-alt2" "<Primary>equal")
|
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-in-alt2" "<Primary>equal")
|
||||||
@ -60,13 +57,13 @@
|
|||||||
; (gtk_accel_path "<Actions>/ThunarWindow/reload-alt" "F5")
|
; (gtk_accel_path "<Actions>/ThunarWindow/reload-alt" "F5")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-location-selector-entry" "")
|
; (gtk_accel_path "<Actions>/ThunarWindow/view-location-selector-entry" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarActionManager/paste" "<Primary>v")
|
; (gtk_accel_path "<Actions>/ThunarActionManager/paste" "<Primary>v")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-in-alt1" "<Primary>plus")
|
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-in-alt1" "<Primary>KP_Add")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-menubar" "<Primary>m")
|
; (gtk_accel_path "<Actions>/ThunarWindow/view-menubar" "<Primary>m")
|
||||||
; (gtk_accel_path "<Actions>/ThunarStandardView/back" "<Alt>Left")
|
; (gtk_accel_path "<Actions>/ThunarStandardView/back" "<Alt>Left")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-desktop" "")
|
; (gtk_accel_path "<Actions>/ThunarWindow/open-desktop" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-as-detailed-list" "<Primary>2")
|
; (gtk_accel_path "<Actions>/ThunarWindow/view-as-detailed-list" "<Primary>2")
|
||||||
; (gtk_accel_path "<Actions>/ThunarActionManager/restore-show" "")
|
; (gtk_accel_path "<Actions>/ThunarActionManager/restore-show" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-out" "<Primary>KP_Subtract")
|
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-out" "<Primary>minus")
|
||||||
; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-display-name" "")
|
; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-display-name" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/sendto-menu" "")
|
; (gtk_accel_path "<Actions>/ThunarWindow/sendto-menu" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/go-menu" "")
|
; (gtk_accel_path "<Actions>/ThunarWindow/go-menu" "")
|
||||||
@ -81,22 +78,23 @@
|
|||||||
; (gtk_accel_path "<Actions>/ThunarActionManager/copy" "<Primary>c")
|
; (gtk_accel_path "<Actions>/ThunarActionManager/copy" "<Primary>c")
|
||||||
; (gtk_accel_path "<Actions>/ThunarActionManager/delete-3" "<Shift>KP_Delete")
|
; (gtk_accel_path "<Actions>/ThunarActionManager/delete-3" "<Shift>KP_Delete")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/toggle-side-pane" "F9")
|
; (gtk_accel_path "<Actions>/ThunarWindow/toggle-side-pane" "F9")
|
||||||
; (gtk_accel_path "<Actions>/ThunarStandardView/unselect-all-files" "Escape")
|
|
||||||
; (gtk_accel_path "<Actions>/ThunarStandardView/arrange-items-menu" "")
|
|
||||||
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-mtime" "")
|
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-mtime" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarBookmarks/a50db0a56a1e6c31df6bf18c55eb78cd" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/arrange-items-menu" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarStandardView/unselect-all-files" "Escape")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-computer" "")
|
; (gtk_accel_path "<Actions>/ThunarWindow/open-computer" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/bookmarks-menu" "")
|
; (gtk_accel_path "<Actions>/ThunarWindow/bookmarks-menu" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/toggle-image-preview" "")
|
; (gtk_accel_path "<Actions>/ThunarWindow/toggle-image-preview" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-as-icons" "<Primary>1")
|
; (gtk_accel_path "<Actions>/ThunarWindow/view-as-icons" "<Primary>1")
|
||||||
; (gtk_accel_path "<Actions>/ThunarActionManager/delete-2" "<Shift>Delete")
|
; (gtk_accel_path "<Actions>/ThunarActionManager/delete-2" "<Shift>Delete")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-in" "<Primary>KP_Add")
|
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-in" "<Primary>plus")
|
||||||
; (gtk_accel_path "<Actions>/ThunarStandardView/rename" "F2")
|
; (gtk_accel_path "<Actions>/ThunarStandardView/rename" "F2")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-location" "<Primary>l")
|
; (gtk_accel_path "<Actions>/ThunarWindow/open-location" "<Primary>l")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-as-compact-list" "<Primary>3")
|
; (gtk_accel_path "<Actions>/ThunarWindow/view-as-compact-list" "<Primary>3")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-menu" "")
|
; (gtk_accel_path "<Actions>/ThunarWindow/view-menu" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/search" "<Primary>f")
|
; (gtk_accel_path "<Actions>/ThunarWindow/search" "<Primary>f")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/new-tab" "<Primary>t")
|
; (gtk_accel_path "<Actions>/ThunarWindow/new-tab" "<Primary>t")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-reset" "<Primary>KP_0")
|
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-reset" "<Primary>0")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/contents/help-menu" "")
|
; (gtk_accel_path "<Actions>/ThunarWindow/contents/help-menu" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarActionManager/open-in-new-tab" "<Primary><Shift>p")
|
; (gtk_accel_path "<Actions>/ThunarActionManager/open-in-new-tab" "<Primary><Shift>p")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-location-selector-buttons" "")
|
; (gtk_accel_path "<Actions>/ThunarWindow/view-location-selector-buttons" "")
|
||||||
@ -108,24 +106,19 @@
|
|||||||
; (gtk_accel_path "<Actions>/ThunarStandardView/duplicate" "")
|
; (gtk_accel_path "<Actions>/ThunarStandardView/duplicate" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarBookmarks/c76f07a72d3c8ef5d4bf8e84c8981221" "")
|
; (gtk_accel_path "<Actions>/ThunarBookmarks/c76f07a72d3c8ef5d4bf8e84c8981221" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarActionManager/trash-delete-2" "KP_Delete")
|
; (gtk_accel_path "<Actions>/ThunarActionManager/trash-delete-2" "KP_Delete")
|
||||||
; (gtk_accel_path "<Actions>/ThunarBookmarks/1b01cfaf1605da233a4b53296606bab0" "")
|
|
||||||
; (gtk_accel_path "<Actions>/ThunarBookmarks/780467f8577186d3f1806d9df2a8aab9" "")
|
|
||||||
; (gtk_accel_path "<Actions>/ThunarBookmarks/e9f83883e2df949f12acd9850f926a67" "")
|
|
||||||
; (gtk_accel_path "<Actions>/ThunarStandardView/create-folder" "<Primary><Shift>n")
|
; (gtk_accel_path "<Actions>/ThunarStandardView/create-folder" "<Primary><Shift>n")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-home" "<Alt>Home")
|
; (gtk_accel_path "<Actions>/ThunarWindow/open-home" "<Alt>Home")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/show-hidden" "<Primary>h")
|
; (gtk_accel_path "<Actions>/ThunarWindow/show-hidden" "<Primary>h")
|
||||||
; (gtk_accel_path "<Actions>/ThunarStandardView/back-alt" "BackSpace")
|
|
||||||
; (gtk_accel_path "<Actions>/ThunarStandardView/set-default-app" "")
|
; (gtk_accel_path "<Actions>/ThunarStandardView/set-default-app" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/empty-trash" "")
|
; (gtk_accel_path "<Actions>/ThunarWindow/empty-trash" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarBookmarks/a02380ffe1621507749c5c5773da7194" "")
|
; (gtk_accel_path "<Actions>/ThunarStandardView/back-alt" "BackSpace")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/preferences" "")
|
; (gtk_accel_path "<Actions>/ThunarWindow/preferences" "")
|
||||||
|
; (gtk_accel_path "<Actions>/ThunarBookmarks/8ea92a0b35875a5a65ffafcf02698ce8" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarActionManager/delete" "")
|
; (gtk_accel_path "<Actions>/ThunarActionManager/delete" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-side-pane-tree" "<Primary>e")
|
; (gtk_accel_path "<Actions>/ThunarWindow/view-side-pane-tree" "<Primary>e")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-file-system" "")
|
; (gtk_accel_path "<Actions>/ThunarWindow/open-file-system" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-network" "")
|
; (gtk_accel_path "<Actions>/ThunarWindow/open-network" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarActionManager/sendto-desktop" "")
|
; (gtk_accel_path "<Actions>/ThunarActionManager/sendto-desktop" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarStandardView/make-link" "")
|
; (gtk_accel_path "<Actions>/ThunarStandardView/make-link" "")
|
||||||
; (gtk_accel_path "<Actions>/ThunarBookmarks/5a2d02665264f10a15b7d94f958e51dc" "")
|
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-reset-alt" "<Primary>KP_0")
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-reset-alt" "<Primary>0")
|
|
||||||
; (gtk_accel_path "<Actions>/ThunarBookmarks/3b727c236c2811d0a6488b65982ea897" "")
|
|
||||||
; (gtk_accel_path "<Actions>/ThunarWindow/about" "")
|
; (gtk_accel_path "<Actions>/ThunarWindow/about" "")
|
||||||
|
|||||||
@ -1,10 +0,0 @@
|
|||||||
[Configuration]
|
|
||||||
LastActiveMode=THUNAR_RENAMER_MODE_NAME
|
|
||||||
LastActiveRenamer=ThunarSbrDateRenamer
|
|
||||||
|
|
||||||
[ThunarSbrDateRenamer]
|
|
||||||
Offset=0
|
|
||||||
Mode=THUNAR_SBR_DATE_MODE_NOW
|
|
||||||
Format=%Y%m%d
|
|
||||||
OffsetMode=THUNAR_SBR_OFFSET_MODE_LEFT
|
|
||||||
|
|
||||||
@ -15,9 +15,9 @@
|
|||||||
<icon>utilities-terminal</icon>
|
<icon>utilities-terminal</icon>
|
||||||
<name>Open Terminal Here</name>
|
<name>Open Terminal Here</name>
|
||||||
<submenu></submenu>
|
<submenu></submenu>
|
||||||
<unique-id>1488955845049151-1</unique-id>
|
<unique-id>1703572977408169-1</unique-id>
|
||||||
<command>for f in %F; do exo-open --working-directory "$f" --launch TerminalEmulator; done</command>
|
<command>exo-open --working-directory %f --launch TerminalEmulator</command>
|
||||||
<description></description>
|
<description>Launch TerminalEmulator</description>
|
||||||
<range></range>
|
<range></range>
|
||||||
<patterns>*</patterns>
|
<patterns>*</patterns>
|
||||||
<startup-notify/>
|
<startup-notify/>
|
||||||
@ -28,7 +28,7 @@
|
|||||||
<name>Check sha1sum</name>
|
<name>Check sha1sum</name>
|
||||||
<submenu></submenu>
|
<submenu></submenu>
|
||||||
<unique-id>1526633271260079-26</unique-id>
|
<unique-id>1526633271260079-26</unique-id>
|
||||||
<command>zenity --info --title="Check sha1 for %n" --text="$(sha1sum %f)"</command>
|
<command>yad --info --title="Check sha1 for %n" --text="$(sha1sum %f)"</command>
|
||||||
<description>Check sha1sum</description>
|
<description>Check sha1sum</description>
|
||||||
<range></range>
|
<range></range>
|
||||||
<patterns>*.iso;*.ISO</patterns>
|
<patterns>*.iso;*.ISO</patterns>
|
||||||
@ -39,7 +39,7 @@
|
|||||||
<name>Check sha256sum</name>
|
<name>Check sha256sum</name>
|
||||||
<submenu></submenu>
|
<submenu></submenu>
|
||||||
<unique-id>1577688162350307-1</unique-id>
|
<unique-id>1577688162350307-1</unique-id>
|
||||||
<command>zenity --info --title="Check sha256 for %n" --text="$(sha256sum %f)"</command>
|
<command>yad --info --title="Check sha256 for %n" --text="$(sha256sum %f)"</command>
|
||||||
<description>Check sha256sum</description>
|
<description>Check sha256sum</description>
|
||||||
<range></range>
|
<range></range>
|
||||||
<patterns>*.iso;*.ISO</patterns>
|
<patterns>*.iso;*.ISO</patterns>
|
||||||
@ -50,7 +50,7 @@
|
|||||||
<name>Check md5sum</name>
|
<name>Check md5sum</name>
|
||||||
<submenu></submenu>
|
<submenu></submenu>
|
||||||
<unique-id>1526736788575383-2</unique-id>
|
<unique-id>1526736788575383-2</unique-id>
|
||||||
<command>zenity --info --title="Check md5 for %n" --text="$(md5sum %f)"</command>
|
<command>yad --info --title="Check md5 for %n" --text="$(md5sum %f)"</command>
|
||||||
<description>Check md5sum</description>
|
<description>Check md5sum</description>
|
||||||
<range></range>
|
<range></range>
|
||||||
<patterns>*.iso;*.ISO;*.tar.gz;*.TAR.GZ;*.zip;*.ZIP</patterns>
|
<patterns>*.iso;*.ISO;*.tar.gz;*.TAR.GZ;*.zip;*.ZIP</patterns>
|
||||||
|
|||||||
370
assets/add_zsh_theme/agnosterzak.zsh-theme
Normal file
370
assets/add_zsh_theme/agnosterzak.zsh-theme
Normal file
@ -0,0 +1,370 @@
|
|||||||
|
# vim:ft=zsh ts=2 sw=2 sts=2
|
||||||
|
#
|
||||||
|
# agnoster's Theme - https://gist.github.com/3712874
|
||||||
|
# A Powerline-inspired theme for ZSH
|
||||||
|
#
|
||||||
|
# # README
|
||||||
|
#
|
||||||
|
# In order for this theme to render correctly, you will need a
|
||||||
|
# [Powerline-patched font](https://gist.github.com/1595572).
|
||||||
|
#
|
||||||
|
# In addition, I recommend the
|
||||||
|
# [Solarized theme](https://github.com/altercation/solarized/) and, if you're
|
||||||
|
# using it on Mac OS X, [iTerm 2](http://www.iterm2.com/) over Terminal.app -
|
||||||
|
# it has significantly better color fidelity.
|
||||||
|
#
|
||||||
|
# # Goals
|
||||||
|
#
|
||||||
|
# The aim of this theme is to only show you *relevant* information. Like most
|
||||||
|
# prompts, it will only show git information when in a git working directory.
|
||||||
|
# However, it goes a step further: everything from the current user and
|
||||||
|
# hostname to whether the last call exited with an error to whether background
|
||||||
|
# jobs are running in this shell will all be displayed automatically when
|
||||||
|
# appropriate.
|
||||||
|
|
||||||
|
### Segment drawing
|
||||||
|
# A few utility functions to make it easy and re-usable to draw segmented prompts
|
||||||
|
|
||||||
|
CURRENT_BG='NONE'
|
||||||
|
|
||||||
|
# Characters
|
||||||
|
SEGMENT_SEPARATOR="\ue0b0"
|
||||||
|
PLUSMINUS="\u00b1"
|
||||||
|
BRANCH="\ue0a0"
|
||||||
|
DETACHED="\u27a6"
|
||||||
|
CROSS="\u2718"
|
||||||
|
LIGHTNING="\u26a1"
|
||||||
|
GEAR="\u2699"
|
||||||
|
|
||||||
|
# Begin a segment
|
||||||
|
# Takes two arguments, background and foreground. Both can be omitted,
|
||||||
|
# rendering default background/foreground.
|
||||||
|
prompt_segment() {
|
||||||
|
local bg fg
|
||||||
|
[[ -n $1 ]] && bg="%K{$1}" || bg="%k"
|
||||||
|
[[ -n $2 ]] && fg="%F{$2}" || fg="%f"
|
||||||
|
if [[ $CURRENT_BG != 'NONE' && $1 != $CURRENT_BG ]]; then
|
||||||
|
print -n " %{$bg%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR%{$fg%} "
|
||||||
|
else
|
||||||
|
print -n "%{$bg%}%{$fg%} "
|
||||||
|
fi
|
||||||
|
CURRENT_BG=$1
|
||||||
|
[[ -n $3 ]] && print -n $3
|
||||||
|
}
|
||||||
|
|
||||||
|
# End the prompt, closing any open segments
|
||||||
|
prompt_end() {
|
||||||
|
if [[ -n $CURRENT_BG ]]; then
|
||||||
|
print -n " %{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR"
|
||||||
|
else
|
||||||
|
print -n "%{%k%}"
|
||||||
|
fi
|
||||||
|
print -n "%{%f%}"
|
||||||
|
CURRENT_BG=''
|
||||||
|
}
|
||||||
|
|
||||||
|
### Prompt components
|
||||||
|
# Each component will draw itself, and hide itself if no information needs to be shown
|
||||||
|
|
||||||
|
# Context: user@hostname (who am I and where am I)
|
||||||
|
prompt_context() {
|
||||||
|
if [[ -n "$SSH_CLIENT" ]]; then
|
||||||
|
prompt_segment magenta white "%{$fg_bold[white]%(!.%{%F{white}%}.)%}$USER@%m%{$fg_no_bold[white]%}"
|
||||||
|
else
|
||||||
|
prompt_segment yellow magenta "%{$fg_bold[magenta]%(!.%{%F{magenta}%}.)%}@$USER%{$fg_no_bold[magenta]%}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Battery Level
|
||||||
|
prompt_battery() {
|
||||||
|
HEART='♥ '
|
||||||
|
|
||||||
|
if [[ $(uname) == "Darwin" ]] ; then
|
||||||
|
|
||||||
|
function battery_is_charging() {
|
||||||
|
[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]
|
||||||
|
}
|
||||||
|
|
||||||
|
function battery_pct() {
|
||||||
|
local smart_battery_status="$(ioreg -rc "AppleSmartBattery")"
|
||||||
|
typeset -F maxcapacity=$(echo $smart_battery_status | grep '^.*"MaxCapacity"\ =\ ' | sed -e 's/^.*"MaxCapacity"\ =\ //')
|
||||||
|
typeset -F currentcapacity=$(echo $smart_battery_status | grep '^.*"CurrentCapacity"\ =\ ' | sed -e 's/^.*CurrentCapacity"\ =\ //')
|
||||||
|
integer i=$(((currentcapacity/maxcapacity) * 100))
|
||||||
|
echo $i
|
||||||
|
}
|
||||||
|
|
||||||
|
function battery_pct_remaining() {
|
||||||
|
if battery_is_charging ; then
|
||||||
|
battery_pct
|
||||||
|
else
|
||||||
|
echo "External Power"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function battery_time_remaining() {
|
||||||
|
local smart_battery_status="$(ioreg -rc "AppleSmartBattery")"
|
||||||
|
if [[ $(echo $smart_battery_status | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then
|
||||||
|
timeremaining=$(echo $smart_battery_status | grep '^.*"AvgTimeToEmpty"\ =\ ' | sed -e 's/^.*"AvgTimeToEmpty"\ =\ //')
|
||||||
|
if [ $timeremaining -gt 720 ] ; then
|
||||||
|
echo "::"
|
||||||
|
else
|
||||||
|
echo "~$((timeremaining / 60)):$((timeremaining % 60))"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
b=$(battery_pct_remaining)
|
||||||
|
if [[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then
|
||||||
|
if [ $b -gt 50 ] ; then
|
||||||
|
prompt_segment green white
|
||||||
|
elif [ $b -gt 20 ] ; then
|
||||||
|
prompt_segment yellow white
|
||||||
|
else
|
||||||
|
prompt_segment red white
|
||||||
|
fi
|
||||||
|
echo -n "%{$fg_bold[white]%}$HEART$(battery_pct_remaining)%%%{$fg_no_bold[white]%}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $(uname) == "Linux" && -d /sys/module/battery ]] ; then
|
||||||
|
|
||||||
|
function battery_is_charging() {
|
||||||
|
! [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]]
|
||||||
|
}
|
||||||
|
|
||||||
|
function battery_pct() {
|
||||||
|
if (( $+commands[acpi] )) ; then
|
||||||
|
echo "$(acpi | cut -f2 -d ',' | tr -cd '[:digit:]')"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function battery_pct_remaining() {
|
||||||
|
if [ ! $(battery_is_charging) ] ; then
|
||||||
|
battery_pct
|
||||||
|
else
|
||||||
|
echo "External Power"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function battery_time_remaining() {
|
||||||
|
if [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then
|
||||||
|
echo $(acpi | cut -f3 -d ',')
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
b=$(battery_pct_remaining)
|
||||||
|
if [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then
|
||||||
|
if [ $b -gt 40 ] ; then
|
||||||
|
prompt_segment green white
|
||||||
|
elif [ $b -gt 20 ] ; then
|
||||||
|
prompt_segment yellow white
|
||||||
|
else
|
||||||
|
prompt_segment red white
|
||||||
|
fi
|
||||||
|
echo -n "%{$fg_bold[white]%}$HEART$(battery_pct_remaining)%%%{$fg_no_bold[white]%}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Git: branch/detached head, dirty status
|
||||||
|
prompt_git() {
|
||||||
|
#«»±˖˗‑‐‒ ━ ✚‐↔←↑↓→↭⇎⇔⋆━◂▸◄►◆☀★☗☊✔✖❮❯⚑⚙
|
||||||
|
local PL_BRANCH_CHAR
|
||||||
|
() {
|
||||||
|
local LC_ALL="" LC_CTYPE="en_US.UTF-8"
|
||||||
|
PL_BRANCH_CHAR="$BRANCH"
|
||||||
|
}
|
||||||
|
local ref dirty mode repo_path clean has_upstream
|
||||||
|
local modified untracked added deleted tagged stashed
|
||||||
|
local ready_commit git_status bgclr fgclr
|
||||||
|
local commits_diff commits_ahead commits_behind has_diverged to_push to_pull
|
||||||
|
|
||||||
|
repo_path=$(git rev-parse --git-dir 2>/dev/null)
|
||||||
|
|
||||||
|
if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then
|
||||||
|
dirty=$(parse_git_dirty)
|
||||||
|
git_status=$(git status --porcelain 2> /dev/null)
|
||||||
|
ref=$(git symbolic-ref HEAD 2> /dev/null) || ref="➦ $(git rev-parse --short HEAD 2> /dev/null)"
|
||||||
|
if [[ -n $dirty ]]; then
|
||||||
|
clean=''
|
||||||
|
bgclr='yellow'
|
||||||
|
fgclr='magenta'
|
||||||
|
else
|
||||||
|
clean=' ✔'
|
||||||
|
bgclr='green'
|
||||||
|
fgclr='white'
|
||||||
|
fi
|
||||||
|
|
||||||
|
local upstream=$(git rev-parse --symbolic-full-name --abbrev-ref @{upstream} 2> /dev/null)
|
||||||
|
if [[ -n "${upstream}" && "${upstream}" != "@{upstream}" ]]; then has_upstream=true; fi
|
||||||
|
|
||||||
|
local current_commit_hash=$(git rev-parse HEAD 2> /dev/null)
|
||||||
|
|
||||||
|
local number_of_untracked_files=$(\grep -c "^??" <<< "${git_status}")
|
||||||
|
# if [[ $number_of_untracked_files -gt 0 ]]; then untracked=" $number_of_untracked_files◆"; fi
|
||||||
|
if [[ $number_of_untracked_files -gt 0 ]]; then untracked=" $number_of_untracked_files☀"; fi
|
||||||
|
|
||||||
|
local number_added=$(\grep -c "^A" <<< "${git_status}")
|
||||||
|
if [[ $number_added -gt 0 ]]; then added=" $number_added✚"; fi
|
||||||
|
|
||||||
|
local number_modified=$(\grep -c "^.M" <<< "${git_status}")
|
||||||
|
if [[ $number_modified -gt 0 ]]; then
|
||||||
|
modified=" $number_modified●"
|
||||||
|
bgclr='red'
|
||||||
|
fgclr='white'
|
||||||
|
fi
|
||||||
|
|
||||||
|
local number_added_modified=$(\grep -c "^M" <<< "${git_status}")
|
||||||
|
local number_added_renamed=$(\grep -c "^R" <<< "${git_status}")
|
||||||
|
if [[ $number_modified -gt 0 && $number_added_modified -gt 0 ]]; then
|
||||||
|
modified="$modified$((number_added_modified+number_added_renamed))±"
|
||||||
|
elif [[ $number_added_modified -gt 0 ]]; then
|
||||||
|
modified=" ●$((number_added_modified+number_added_renamed))±"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local number_deleted=$(\grep -c "^.D" <<< "${git_status}")
|
||||||
|
if [[ $number_deleted -gt 0 ]]; then
|
||||||
|
deleted=" $number_deleted‒"
|
||||||
|
bgclr='red'
|
||||||
|
fgclr='white'
|
||||||
|
fi
|
||||||
|
|
||||||
|
local number_added_deleted=$(\grep -c "^D" <<< "${git_status}")
|
||||||
|
if [[ $number_deleted -gt 0 && $number_added_deleted -gt 0 ]]; then
|
||||||
|
deleted="$deleted$number_added_deleted±"
|
||||||
|
elif [[ $number_added_deleted -gt 0 ]]; then
|
||||||
|
deleted=" ‒$number_added_deleted±"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local tag_at_current_commit=$(git describe --exact-match --tags $current_commit_hash 2> /dev/null)
|
||||||
|
if [[ -n $tag_at_current_commit ]]; then tagged=" ☗$tag_at_current_commit "; fi
|
||||||
|
|
||||||
|
local number_of_stashes="$(git stash list -n1 2> /dev/null | wc -l)"
|
||||||
|
if [[ $number_of_stashes -gt 0 ]]; then
|
||||||
|
stashed=" ${number_of_stashes##*( )}⚙"
|
||||||
|
bgclr='magenta'
|
||||||
|
fgclr='white'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $number_added -gt 0 || $number_added_modified -gt 0 || $number_added_deleted -gt 0 ]]; then ready_commit=' ⚑'; fi
|
||||||
|
|
||||||
|
local upstream_prompt=''
|
||||||
|
if [[ $has_upstream == true ]]; then
|
||||||
|
commits_diff="$(git log --pretty=oneline --topo-order --left-right ${current_commit_hash}...${upstream} 2> /dev/null)"
|
||||||
|
commits_ahead=$(\grep -c "^<" <<< "$commits_diff")
|
||||||
|
commits_behind=$(\grep -c "^>" <<< "$commits_diff")
|
||||||
|
upstream_prompt="$(git rev-parse --symbolic-full-name --abbrev-ref @{upstream} 2> /dev/null)"
|
||||||
|
upstream_prompt=$(sed -e 's/\/.*$/ ☊ /g' <<< "$upstream_prompt")
|
||||||
|
fi
|
||||||
|
|
||||||
|
has_diverged=false
|
||||||
|
if [[ $commits_ahead -gt 0 && $commits_behind -gt 0 ]]; then has_diverged=true; fi
|
||||||
|
if [[ $has_diverged == false && $commits_ahead -gt 0 ]]; then
|
||||||
|
if [[ $bgclr == 'red' || $bgclr == 'magenta' ]] then
|
||||||
|
to_push=" $fg_bold[white]↑$commits_ahead$fg_bold[$fgclr]"
|
||||||
|
else
|
||||||
|
to_push=" $fg_bold[black]↑$commits_ahead$fg_bold[$fgclr]"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [[ $has_diverged == false && $commits_behind -gt 0 ]]; then to_pull=" $fg_bold[magenta]↓$commits_behind$fg_bold[$fgclr]"; fi
|
||||||
|
|
||||||
|
if [[ -e "${repo_path}/BISECT_LOG" ]]; then
|
||||||
|
mode=" <B>"
|
||||||
|
elif [[ -e "${repo_path}/MERGE_HEAD" ]]; then
|
||||||
|
mode=" >M<"
|
||||||
|
elif [[ -e "${repo_path}/rebase" || -e "${repo_path}/rebase-apply" || -e "${repo_path}/rebase-merge" || -e "${repo_path}/../.dotest" ]]; then
|
||||||
|
mode=" >R>"
|
||||||
|
fi
|
||||||
|
|
||||||
|
prompt_segment $bgclr $fgclr
|
||||||
|
|
||||||
|
print -n "%{$fg_bold[$fgclr]%}${ref/refs\/heads\//$PL_BRANCH_CHAR $upstream_prompt}${mode}$to_push$to_pull$clean$tagged$stashed$untracked$modified$deleted$added$ready_commit%{$fg_no_bold[$fgclr]%}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt_hg() {
|
||||||
|
local rev status
|
||||||
|
if $(hg id >/dev/null 2>&1); then
|
||||||
|
if $(hg prompt >/dev/null 2>&1); then
|
||||||
|
if [[ $(hg prompt "{status|unknown}") = "?" ]]; then
|
||||||
|
# if files are not added
|
||||||
|
prompt_segment red white
|
||||||
|
st='±'
|
||||||
|
elif [[ -n $(hg prompt "{status|modified}") ]]; then
|
||||||
|
# if any modification
|
||||||
|
prompt_segment yellow black
|
||||||
|
st='±'
|
||||||
|
else
|
||||||
|
# if working copy is clean
|
||||||
|
prompt_segment green black
|
||||||
|
fi
|
||||||
|
print -n $(hg prompt "☿ {rev}@{branch}") $st
|
||||||
|
else
|
||||||
|
st=""
|
||||||
|
rev=$(hg id -n 2>/dev/null | sed 's/[^-0-9]//g')
|
||||||
|
branch=$(hg id -b 2>/dev/null)
|
||||||
|
if `hg st | grep -q "^\?"`; then
|
||||||
|
prompt_segment red black
|
||||||
|
st='±'
|
||||||
|
elif `hg st | grep -q "^[MA]"`; then
|
||||||
|
prompt_segment yellow black
|
||||||
|
st='±'
|
||||||
|
else
|
||||||
|
prompt_segment green black
|
||||||
|
fi
|
||||||
|
print -n "☿ $rev@$branch" $st
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Dir: current working directory
|
||||||
|
prompt_dir() {
|
||||||
|
prompt_segment cyan white "%{$fg_bold[white]%}%~%{$fg_no_bold[white]%}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Virtualenv: current working virtualenv
|
||||||
|
prompt_virtualenv() {
|
||||||
|
local virtualenv_path="$VIRTUAL_ENV"
|
||||||
|
if [[ -n $virtualenv_path && -n $VIRTUAL_ENV_DISABLE_PROMPT ]]; then
|
||||||
|
prompt_segment blue black "(`basename $virtualenv_path`)"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt_time() {
|
||||||
|
prompt_segment blue white "%{$fg_bold[white]%}%D{%a %e %b - %H:%M}%{$fg_no_bold[white]%}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Status:
|
||||||
|
# - was there an error
|
||||||
|
# - am I root
|
||||||
|
# - are there background jobs?
|
||||||
|
prompt_status() {
|
||||||
|
local symbols
|
||||||
|
symbols=()
|
||||||
|
[[ $RETVAL -ne 0 ]] && symbols+="%{%F{red}%}$CROSS"
|
||||||
|
[[ $UID -eq 0 ]] && symbols+="%{%F{yellow}%}$LIGHTNING"
|
||||||
|
[[ $(jobs -l | wc -l) -gt 0 ]] && symbols+="%{%F{cyan}%}$GEAR"
|
||||||
|
|
||||||
|
[[ -n "$symbols" ]] && prompt_segment black default "$symbols"
|
||||||
|
}
|
||||||
|
|
||||||
|
## Main prompt
|
||||||
|
build_prompt() {
|
||||||
|
RETVAL=$?
|
||||||
|
print -n "\n"
|
||||||
|
prompt_status
|
||||||
|
#prompt_battery
|
||||||
|
prompt_time
|
||||||
|
prompt_virtualenv
|
||||||
|
prompt_dir
|
||||||
|
prompt_git
|
||||||
|
prompt_hg
|
||||||
|
prompt_end
|
||||||
|
CURRENT_BG='NONE'
|
||||||
|
print -n "\n"
|
||||||
|
prompt_context
|
||||||
|
prompt_end
|
||||||
|
}
|
||||||
|
|
||||||
|
PROMPT='%{%f%b%k%}$(build_prompt) '
|
||||||
392
assets/add_zsh_theme/antares.zsh-theme
Normal file
392
assets/add_zsh_theme/antares.zsh-theme
Normal file
@ -0,0 +1,392 @@
|
|||||||
|
|
||||||
|
###
|
||||||
|
### You can re-define the following variables in your .zshrc file
|
||||||
|
### in order to customize the appearance of the prompt
|
||||||
|
###
|
||||||
|
|
||||||
|
# The indentation of the rprompt
|
||||||
|
ZLE_RPROMPT_INDENT=${ZLE_RPROMPT_INDENT:-0}
|
||||||
|
|
||||||
|
# Whether to use oh-my-zsh's git-prompt plugin
|
||||||
|
# or the builtin logic written in this file
|
||||||
|
ZSH_ANTARES_USE_OHMYZSH_GIT_PROMPT=""
|
||||||
|
|
||||||
|
# Whether to gather additional details about the git status
|
||||||
|
# This option only applies when using the builtin logic
|
||||||
|
# Usefull when dealing with huge repositories to speed things up
|
||||||
|
ZSH_ANTARES_USE_LIGHT_GIT_MODE=""
|
||||||
|
|
||||||
|
# The colors to use for the various elements of the prompt
|
||||||
|
ZSH_ANTARES_FG_EXECTIME="#dd00ff"
|
||||||
|
ZSH_ANTARES_FG_ERRVAL="#c31a1a"
|
||||||
|
ZSH_ANTARES_FG_DECO="#ffffff"
|
||||||
|
ZSH_ANTARES_FG_PWD_OK="#ffffff"
|
||||||
|
ZSH_ANTARES_BG_PWD_OK="#0055ff"
|
||||||
|
ZSH_ANTARES_FG_PWD_ERR="#ffffff"
|
||||||
|
ZSH_ANTARES_BG_PWD_ERR="#c31a1a"
|
||||||
|
ZSH_ANTARES_FG_GIT_INIT="#000000"
|
||||||
|
ZSH_ANTARES_BG_GIT_INIT="#b5f3a1"
|
||||||
|
ZSH_ANTARES_FG_GIT_BARE="#000000"
|
||||||
|
ZSH_ANTARES_BG_GIT_BARE="#b07a4e"
|
||||||
|
ZSH_ANTARES_FG_GIT_BRANCH="#000000"
|
||||||
|
ZSH_ANTARES_BG_GIT_BRANCH="#47cc2b"
|
||||||
|
ZSH_ANTARES_FG_GIT_DETACH="#000000"
|
||||||
|
ZSH_ANTARES_BG_GIT_DETACH="#eeaa22"
|
||||||
|
ZSH_ANTARES_FG_GIT_CONFLICT="#000000"
|
||||||
|
ZSH_ANTARES_BG_GIT_CONFLICT="#c31a1a"
|
||||||
|
ZSH_ANTARES_FG_GIT_AHEAD="#cfcfcf"
|
||||||
|
ZSH_ANTARES_FG_GIT_BEHIND="#9f9f9f"
|
||||||
|
ZSH_ANTARES_FG_GIT_STAGED="#6cc6ee"
|
||||||
|
ZSH_ANTARES_FG_GIT_ADDED="#04c304"
|
||||||
|
ZSH_ANTARES_FG_GIT_DELETED="#e7165a"
|
||||||
|
ZSH_ANTARES_FG_GIT_CHANGED="#ee9931"
|
||||||
|
ZSH_ANTARES_FG_GIT_CONFLICTS="#ff0000"
|
||||||
|
ZSH_ANTARES_FG_GIT_UNTRACKED="#bbffff"
|
||||||
|
ZSH_ANTARES_FG_GIT_STASHED="#eaa0ff"
|
||||||
|
ZSH_ANTARES_FG_GIT_TAG="#ffffff"
|
||||||
|
ZSH_ANTARES_FG_JOBS="#9f9f9f"
|
||||||
|
ZSH_ANTARES_FG_PRIVILEDGES="#ffdd44"
|
||||||
|
|
||||||
|
# The characters (or strings, by will) to use for some of the elements
|
||||||
|
ZSH_ANTARES_STR_GIT_BARE="⛁"
|
||||||
|
ZSH_ANTARES_STR_GIT_AHEAD="↑"
|
||||||
|
ZSH_ANTARES_STR_GIT_BEHIND="↓"
|
||||||
|
ZSH_ANTARES_STR_GIT_STAGED="●"
|
||||||
|
ZSH_ANTARES_STR_GIT_ADDED="✚"
|
||||||
|
ZSH_ANTARES_STR_GIT_DELETED="━"
|
||||||
|
ZSH_ANTARES_STR_GIT_CHANGED="✱"
|
||||||
|
ZSH_ANTARES_STR_GIT_CONFLICTS="✖"
|
||||||
|
ZSH_ANTARES_STR_GIT_UNTRACKED="❍"
|
||||||
|
ZSH_ANTARES_STR_GIT_STASHED="⚑"
|
||||||
|
ZSH_ANTARES_STR_GIT_TAG="🏲"
|
||||||
|
ZSH_ANTARES_STR_JOBS="⚙"
|
||||||
|
ZSH_ANTARES_STR_ROOT="#"
|
||||||
|
ZSH_ANTARES_STR_USER="$"
|
||||||
|
|
||||||
|
# The path expansion to use to display the pwd
|
||||||
|
ZSH_ANTARES_PATHVAR='%~'
|
||||||
|
|
||||||
|
# The minimum amount of time (in seconds) a command shall take to complete
|
||||||
|
# in order to display the execution time in the prompt
|
||||||
|
ZSH_ANTARES_MIN_EXEC_TIME=0
|
||||||
|
|
||||||
|
# The control character used to insert a new line
|
||||||
|
# You shouldn't edit this variable, but if you really want to...
|
||||||
|
ZSH_ANTARES_LINEFEED=$'\n'
|
||||||
|
|
||||||
|
###
|
||||||
|
### End of the re-definable section
|
||||||
|
###
|
||||||
|
|
||||||
|
|
||||||
|
antares_update_git_status()
|
||||||
|
{
|
||||||
|
ZSH_ANTARES_GIT_STATUS=""
|
||||||
|
ZSH_ANTARES_GIT_IN_WORKING_TREE=0
|
||||||
|
ZSH_ANTARES_GIT_IS_INIT_REPO=0
|
||||||
|
ZSH_ANTARES_GIT_IS_BARE_REPO=0
|
||||||
|
ZSH_ANTARES_GIT_IS_DETACHED_HEAD=0
|
||||||
|
ZSH_ANTARES_GIT_HAS_CONFLICTS=0
|
||||||
|
ZSH_ANTARES_GIT_HAS_TAGS=0
|
||||||
|
ZSH_ANTARES_GIT_TAG=""
|
||||||
|
|
||||||
|
if ( $(git rev-parse --is-inside-work-tree 1>/dev/null 2>/dev/null) )
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_IN_WORKING_TREE=1
|
||||||
|
private branch_name="$(git branch --show-current)"
|
||||||
|
if [ -n "$branch_name" ]
|
||||||
|
then
|
||||||
|
if [ -z "$ZSH_ANTARES_USE_OHMYZSH_GIT_PROMPT" ]
|
||||||
|
then
|
||||||
|
GIT_BRANCH="$branch_name"
|
||||||
|
fi
|
||||||
|
if ( ! $(git rev-parse --verify HEAD 1>/dev/null 2>/dev/null) )
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_IS_INIT_REPO=1
|
||||||
|
fi
|
||||||
|
if [ $(git rev-parse --is-bare-repository) = "true" ]
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_IS_BARE_REPO=1
|
||||||
|
GIT_BRANCH="$ZSH_ANTARES_STR_GIT_BARE"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
ZSH_ANTARES_GIT_IS_DETACHED_HEAD=1
|
||||||
|
if [ -z "$ZSH_ANTARES_USE_OHMYZSH_GIT_PROMPT" ]
|
||||||
|
then
|
||||||
|
GIT_BRANCH="$(git rev-parse --short HEAD)"
|
||||||
|
if [ -z "$ZSH_ANTARES_USE_LIGHT_GIT_MODE" ]
|
||||||
|
then
|
||||||
|
private git_tag="$(git tag --points-at=HEAD)"
|
||||||
|
if [ -n "$git_tag" ]
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_HAS_TAGS=1
|
||||||
|
private n_tags="$(echo "$git_tag" | wc -l)"
|
||||||
|
if (( n_tags == 1 ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_TAG=" $ZSH_ANTARES_STR_GIT_TAG $git_tag"
|
||||||
|
elif (( n_tags > 1 ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_TAG=" $ZSH_ANTARES_STR_GIT_TAG $n_tags"
|
||||||
|
else
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
antares_reset_git_info
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
if (( ZSH_ANTARES_GIT_IS_BARE_REPO ))
|
||||||
|
then
|
||||||
|
antares_reset_git_counts
|
||||||
|
GIT_AHEAD=$(git rev-list --left-only HEAD..FETCH_HEAD --count)
|
||||||
|
GIT_BEHIND=$(git rev-list --right-only HEAD..FETCH_HEAD --count)
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$ZSH_ANTARES_USE_OHMYZSH_GIT_PROMPT" ]
|
||||||
|
then
|
||||||
|
GIT_ADDED=0
|
||||||
|
elif [ -n "$ZSH_ANTARES_USE_LIGHT_GIT_MODE" ]
|
||||||
|
then
|
||||||
|
antares_reset_git_counts
|
||||||
|
return
|
||||||
|
else
|
||||||
|
private git_status="$(git status -sb)"
|
||||||
|
if [ -n "$git_status" ]
|
||||||
|
then
|
||||||
|
GIT_STAGED=$(echo $git_status | grep '^[AMD]. ' | wc -l)
|
||||||
|
GIT_ADDED=$(echo $git_status | grep '^A ' | wc -l)
|
||||||
|
GIT_DELETED=$(echo $git_status | grep -E '^(D |.D) ' | wc -l)
|
||||||
|
GIT_CHANGED=$(echo $git_status | grep -E '^(M |.M) ' | wc -l)
|
||||||
|
GIT_CONFLICTS=$(echo $git_status | grep '^U. ' | wc -l)
|
||||||
|
GIT_UNTRACKED=$(echo $git_status | grep '^?? ' | wc -l)
|
||||||
|
GIT_STASHED=$(git stash list | wc -l)
|
||||||
|
if (( ZSH_ANTARES_GIT_IS_DETACHED_HEAD ))
|
||||||
|
then
|
||||||
|
GIT_AHEAD=0
|
||||||
|
GIT_BEHIND=0
|
||||||
|
elif (( ! ZSH_ANTARES_GIT_IS_INIT_REPO ))
|
||||||
|
then
|
||||||
|
private left_right=$(echo $git_status | grep '^## ' | cut -d" " -f2)
|
||||||
|
GIT_AHEAD=$(git rev-list --left-only $left_right --count)
|
||||||
|
GIT_BEHIND=$(git rev-list --right-only $left_right --count)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
ZSH_ANTARES_GIT_HAS_CONFLICTS=$(( GIT_CONFLICTS > 0 ))
|
||||||
|
}
|
||||||
|
|
||||||
|
antares_reset_git_info()
|
||||||
|
{
|
||||||
|
if [ -z "$ZSH_ANTARES_USE_OHMYZSH_GIT_PROMPT" ]
|
||||||
|
then
|
||||||
|
GIT_BRANCH=""
|
||||||
|
fi
|
||||||
|
antares_reset_git_counts
|
||||||
|
}
|
||||||
|
antares_reset_git_counts()
|
||||||
|
{
|
||||||
|
if [ -n "$ZSH_ANTARES_USE_OHMYZSH_GIT_PROMPT" ]
|
||||||
|
then
|
||||||
|
GIT_ADDED=0
|
||||||
|
else
|
||||||
|
GIT_AHEAD=0
|
||||||
|
GIT_BEHIND=0
|
||||||
|
GIT_STAGED=0
|
||||||
|
GIT_ADDED=0
|
||||||
|
GIT_DELETED=0
|
||||||
|
GIT_CHANGED=0
|
||||||
|
GIT_CONFLICTS=0
|
||||||
|
GIT_UNTRACKED=0
|
||||||
|
GIT_STASHED=0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
antares_update_prompt()
|
||||||
|
{
|
||||||
|
ZSH_ANTARES_RETURN=""
|
||||||
|
if [ -n "$ZSH_ANTARES_EXEC_FLAG" ]
|
||||||
|
then
|
||||||
|
if (( ZSH_ANTARES_MIN_EXEC_TIME >= 0 ))
|
||||||
|
then
|
||||||
|
private exec_time=$(( SECONDS - ZSH_ANTARES_EXEC_START ))
|
||||||
|
if (( exec_time >= ZSH_ANTARES_MIN_EXEC_TIME ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_RETURN+="%F{$ZSH_ANTARES_FG_EXECTIME}%B⤷%b $exec_time%f"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [[ "$ZSH_ANTARES_ERR_CODE" != "0" ]]
|
||||||
|
then
|
||||||
|
if [ -z "$ZSH_ANTARES_RETURN" ]
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_RETURN+="%F{$ZSH_ANTARES_FG_ERRVAL}%B⤷%b%f"
|
||||||
|
fi
|
||||||
|
ZSH_ANTARES_RETURN+=" %F{$ZSH_ANTARES_FG_ERRVAL}✘%B${ZSH_ANTARES_ERR_CODE}%b%f"
|
||||||
|
fi
|
||||||
|
[ -n "$ZSH_ANTARES_RETURN" ] && ZSH_ANTARES_RETURN+="$ZSH_ANTARES_LINEFEED"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ZSH_ANTARES_FILLER=""
|
||||||
|
private fillchar=" "
|
||||||
|
|
||||||
|
private width=$(( COLUMNS - ${ZLE_RPROMPT_INDENT:-1} ))
|
||||||
|
|
||||||
|
private decosize=7
|
||||||
|
private pwdsize=${#${(%):-$ZSH_ANTARES_PATHVAR}}
|
||||||
|
private pwdcut=""
|
||||||
|
private gitsize=${#${(%):-$GIT_BRANCH$ZSH_ANTARES_GIT_TAG}}
|
||||||
|
private gitcut=""
|
||||||
|
|
||||||
|
if (( pwdsize + gitsize + (decosize * 2) > width )); then
|
||||||
|
private half_width=$(( width / 2 ))
|
||||||
|
private pwd_over_half=$(( (pwdsize + decosize) > half_width ))
|
||||||
|
private git_over_half=$(( (gitsize + decosize) > half_width ))
|
||||||
|
if (( pwd_over_half > 0 )) && (( git_over_half > 0 ))
|
||||||
|
then
|
||||||
|
(( pwdcut = half_width - decosize ))
|
||||||
|
(( gitcut = half_width - decosize ))
|
||||||
|
elif (( pwd_over_half > 0 ))
|
||||||
|
then
|
||||||
|
(( pwdcut = width - gitsize - (decosize * 2) ))
|
||||||
|
ZSH_ANTARES_FILLER="\${(l:$(( width - pwdcut - gitsize - (decosize * 2) ))::$fillchar:)}"
|
||||||
|
elif (( git_over_half > 0 ))
|
||||||
|
then
|
||||||
|
(( gitcut = width - pwdsize - (decosize * 2) ))
|
||||||
|
ZSH_ANTARES_FILLER="\${(l:$(( width - pwdsize - gitcut - (decosize * 2) ))::$fillchar:)}"
|
||||||
|
else
|
||||||
|
ZSH_ANTARES_FILLER="\${(l:$(( width - pwdsize - gitsize - (decosize * 2) ))::$fillchar:)}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
ZSH_ANTARES_FILLER="\${(l:$(( width - pwdsize - gitsize - (decosize * 2) ))::$fillchar:)}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$ZSH_ANTARES_EXEC_FLAG" ]
|
||||||
|
then
|
||||||
|
private pwd_fg_color="%(?.${ZSH_ANTARES_FG_PWD_OK}.${ZSH_ANTARES_FG_PWD_ERR})"
|
||||||
|
private pwd_bg_color="%(?.${ZSH_ANTARES_BG_PWD_OK}.${ZSH_ANTARES_BG_PWD_ERR})"
|
||||||
|
else
|
||||||
|
private pwd_fg_color="$ZSH_ANTARES_FG_PWD_OK"
|
||||||
|
private pwd_bg_color="$ZSH_ANTARES_BG_PWD_OK"
|
||||||
|
fi
|
||||||
|
ZSH_ANTARES_PWD="%K{$pwd_bg_color}%F{$pwd_fg_color} %${pwdcut}<...<${ZSH_ANTARES_PATHVAR}%<< %f%k%F{$pwd_bg_color}▓▒░%f"
|
||||||
|
|
||||||
|
ZSH_ANTARES_GIT_BRANCH=""
|
||||||
|
if (( ZSH_ANTARES_GIT_IN_WORKING_TREE ))
|
||||||
|
then
|
||||||
|
if (( ZSH_ANTARES_GIT_HAS_CONFLICTS ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_BRANCH+="%F{$ZSH_ANTARES_BG_GIT_CONFLICT}░▒▓%f%K{$ZSH_ANTARES_BG_GIT_CONFLICT}%F{$ZSH_ANTARES_FG_GIT_CONFLICT}"
|
||||||
|
elif (( ZSH_ANTARES_GIT_IS_DETACHED_HEAD ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_BRANCH+="%F{$ZSH_ANTARES_BG_GIT_DETACH}░▒▓%f%K{$ZSH_ANTARES_BG_GIT_DETACH}%F{$ZSH_ANTARES_FG_GIT_DETACH}"
|
||||||
|
if (( ZSH_ANTARES_GIT_HAS_TAGS ))
|
||||||
|
then
|
||||||
|
GIT_BRANCH+="%F{$ZSH_ANTARES_FG_GIT_TAG}${ZSH_ANTARES_GIT_TAG}%f"
|
||||||
|
fi
|
||||||
|
elif (( ZSH_ANTARES_GIT_IS_BARE_REPO ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_BRANCH+="%F{$ZSH_ANTARES_BG_GIT_BARE}░▒▓%f%K{$ZSH_ANTARES_BG_GIT_BARE}%F{$ZSH_ANTARES_FG_GIT_BARE}"
|
||||||
|
elif (( ZSH_ANTARES_GIT_IS_INIT_REPO ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_BRANCH+="%F{$ZSH_ANTARES_BG_GIT_INIT}░▒▓%f%K{$ZSH_ANTARES_BG_GIT_INIT}%F{$ZSH_ANTARES_FG_GIT_INIT}"
|
||||||
|
else
|
||||||
|
ZSH_ANTARES_GIT_BRANCH+="%F{$ZSH_ANTARES_BG_GIT_BRANCH}░▒▓%f%K{$ZSH_ANTARES_BG_GIT_BRANCH}%F{$ZSH_ANTARES_FG_GIT_BRANCH}"
|
||||||
|
fi
|
||||||
|
ZSH_ANTARES_GIT_BRANCH+=" %${gitcut}>...>$GIT_BRANCH%>> %f%k"
|
||||||
|
if [ -n "$ZSH_ANTARES_USE_LIGHT_GIT_MODE" ]
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_BRANCH+="%F{$ZSH_ANTARES_FG_DECO}├╼%f"
|
||||||
|
else
|
||||||
|
ZSH_ANTARES_GIT_BRANCH+="%F{$ZSH_ANTARES_FG_DECO}├╮%f"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
ZSH_ANTARES_JOBS="%(1j.%F{$ZSH_ANTARES_FG_JOBS}${ZSH_ANTARES_STR_JOBS}%j%f .)"
|
||||||
|
|
||||||
|
ZSH_ANTARES_PRIVILEDGES="%F{$ZSH_ANTARES_FG_PRIVILEDGES}%B%(!.${ZSH_ANTARES_STR_ROOT}.${ZSH_ANTARES_STR_USER})%b%f"
|
||||||
|
}
|
||||||
|
|
||||||
|
antares_update_rprompt()
|
||||||
|
{
|
||||||
|
ZSH_ANTARES_GIT_STATUS=""
|
||||||
|
|
||||||
|
[ -n "$ZSH_ANTARES_USE_LIGHT_GIT_MODE" ] && return
|
||||||
|
|
||||||
|
(( ZSH_ANTARES_GIT_IN_WORKING_TREE )) || return
|
||||||
|
|
||||||
|
if (( GIT_CONFLICTS > 0 ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_STATUS+=" %F{$ZSH_ANTARES_FG_GIT_CONFLICTS}${ZSH_ANTARES_STR_GIT_CONFLICTS}${GIT_CONFLICTS}%f"
|
||||||
|
fi
|
||||||
|
if (( GIT_STAGED > 0 ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_STATUS+=" %F{$ZSH_ANTARES_FG_GIT_STAGED}${ZSH_ANTARES_STR_GIT_STAGED}${GIT_STAGED}%f"
|
||||||
|
fi
|
||||||
|
if (( GIT_DELETED > 0 ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_STATUS+=" %F{$ZSH_ANTARES_FG_GIT_DELETED}${ZSH_ANTARES_STR_GIT_DELETED}${GIT_DELETED}%f"
|
||||||
|
fi
|
||||||
|
if (( GIT_CHANGED > 0 ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_STATUS+=" %F{$ZSH_ANTARES_FG_GIT_CHANGED}${ZSH_ANTARES_STR_GIT_CHANGED}${GIT_CHANGED}%f"
|
||||||
|
fi
|
||||||
|
if (( GIT_ADDED > 0 ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_STATUS+=" %F{$ZSH_ANTARES_FG_GIT_ADDED}${ZSH_ANTARES_STR_GIT_ADDED}${GIT_ADDED}%f"
|
||||||
|
fi
|
||||||
|
if (( GIT_UNTRACKED > 0 ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_STATUS+=" %F{$ZSH_ANTARES_FG_GIT_UNTRACKED}${ZSH_ANTARES_STR_GIT_UNTRACKED}${GIT_UNTRACKED}%f"
|
||||||
|
fi
|
||||||
|
if (( GIT_STASHED > 0 ))
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_STATUS+=" %F{$ZSH_ANTARES_FG_GIT_STASHED}${ZSH_ANTARES_STR_GIT_STASHED}${GIT_STASHED}%f"
|
||||||
|
fi
|
||||||
|
if (( ! ZSH_ANTARES_GIT_IS_DETACHED_HEAD ))
|
||||||
|
then
|
||||||
|
private ahead_behind=""
|
||||||
|
if (( GIT_AHEAD > 0 ))
|
||||||
|
then
|
||||||
|
ahead_behind+="%F{$ZSH_ANTARES_FG_GIT_AHEAD}${ZSH_ANTARES_STR_GIT_AHEAD}${GIT_AHEAD}%f"
|
||||||
|
fi
|
||||||
|
if (( GIT_BEHIND > 0 ))
|
||||||
|
then
|
||||||
|
ahead_behind+="%F{$ZSH_ANTARES_FG_GIT_BEHIND}${ZSH_ANTARES_STR_GIT_BEHIND}${GIT_BEHIND}%f"
|
||||||
|
fi
|
||||||
|
if [ -n "$ahead_behind" ]
|
||||||
|
then
|
||||||
|
ZSH_ANTARES_GIT_STATUS+=" $ahead_behind"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
ZSH_ANTARES_GIT_STATUS+=" %F{$ZSH_ANTARES_FG_DECO}╾─╯%f"
|
||||||
|
}
|
||||||
|
|
||||||
|
antares_precmd()
|
||||||
|
{
|
||||||
|
ZSH_ANTARES_ERR_CODE="$?"
|
||||||
|
antares_update_git_status
|
||||||
|
antares_update_prompt
|
||||||
|
antares_update_rprompt
|
||||||
|
ZSH_ANTARES_EXEC_FLAG=""
|
||||||
|
}
|
||||||
|
|
||||||
|
antares_preexec()
|
||||||
|
{
|
||||||
|
ZSH_ANTARES_EXEC_FLAG="+"
|
||||||
|
ZSH_ANTARES_EXEC_START=$SECONDS
|
||||||
|
}
|
||||||
|
|
||||||
|
autoload -U add-zsh-hook
|
||||||
|
add-zsh-hook precmd antares_precmd
|
||||||
|
add-zsh-hook preexec antares_preexec
|
||||||
|
|
||||||
|
PROMPT='${ZSH_ANTARES_RETURN}\
|
||||||
|
%F{$ZSH_ANTARES_FG_DECO}╭┤%f${ZSH_ANTARES_PWD}${(e)ZSH_ANTARES_FILLER}${ZSH_ANTARES_GIT_BRANCH}
|
||||||
|
%F{$ZSH_ANTARES_FG_DECO}╰─╼%f ${ZSH_ANTARES_JOBS}${ZSH_ANTARES_PRIVILEDGES} '
|
||||||
|
|
||||||
|
RPROMPT='${ZSH_ANTARES_GIT_STATUS}'
|
||||||
|
|
||||||
696
assets/add_zsh_theme/bullet-train.zsh-theme
Normal file
696
assets/add_zsh_theme/bullet-train.zsh-theme
Normal file
@ -0,0 +1,696 @@
|
|||||||
|
# README
|
||||||
|
#
|
||||||
|
# In order for this theme to render correctly, you will need a
|
||||||
|
# [Powerline-patched font](https://github.com/Lokaltog/powerline-fonts).
|
||||||
|
#
|
||||||
|
# In addition, I recommend the
|
||||||
|
# [Tomorrow Night theme](https://github.com/chriskempson/tomorrow-theme) and, if
|
||||||
|
# you're using it on Mac OS X, [iTerm 2](http://www.iterm2.com/) over
|
||||||
|
# Terminal.app - it has significantly better color fidelity.
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# CONFIGURATION
|
||||||
|
# The default configuration, that can be overwrite in your .zshrc file
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
VIRTUAL_ENV_DISABLE_PROMPT=true
|
||||||
|
|
||||||
|
# Define order and content of prompt
|
||||||
|
if [ ! -n "${BULLETTRAIN_PROMPT_ORDER+1}" ]; then
|
||||||
|
BULLETTRAIN_PROMPT_ORDER=(
|
||||||
|
time
|
||||||
|
status
|
||||||
|
custom
|
||||||
|
context
|
||||||
|
dir
|
||||||
|
screen
|
||||||
|
perl
|
||||||
|
ruby
|
||||||
|
virtualenv
|
||||||
|
nvm
|
||||||
|
aws
|
||||||
|
go
|
||||||
|
rust
|
||||||
|
elixir
|
||||||
|
git
|
||||||
|
hg
|
||||||
|
cmd_exec_time
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# PROMPT
|
||||||
|
if [ ! -n "${BULLETTRAIN_PROMPT_CHAR+1}" ]; then
|
||||||
|
BULLETTRAIN_PROMPT_CHAR="\$"
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_PROMPT_ROOT+1}" ]; then
|
||||||
|
BULLETTRAIN_PROMPT_ROOT=true
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_PROMPT_SEPARATE_LINE+1}" ]; then
|
||||||
|
BULLETTRAIN_PROMPT_SEPARATE_LINE=true
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_PROMPT_ADD_NEWLINE+1}" ]; then
|
||||||
|
BULLETTRAIN_PROMPT_ADD_NEWLINE=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# STATUS
|
||||||
|
if [ ! -n "${BULLETTRAIN_STATUS_EXIT_SHOW+1}" ]; then
|
||||||
|
BULLETTRAIN_STATUS_EXIT_SHOW=false
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_STATUS_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_STATUS_BG=green
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_STATUS_ERROR_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_STATUS_ERROR_BG=red
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_STATUS_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_STATUS_FG=white
|
||||||
|
fi
|
||||||
|
|
||||||
|
# TIME
|
||||||
|
if [ ! -n "${BULLETTRAIN_TIME_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_TIME_BG=white
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_TIME_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_TIME_FG=black
|
||||||
|
fi
|
||||||
|
|
||||||
|
# CUSTOM
|
||||||
|
if [ ! -n "${BULLETTRAIN_CUSTOM_MSG+1}" ]; then
|
||||||
|
BULLETTRAIN_CUSTOM_MSG=false
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_CUSTOM_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_CUSTOM_BG=black
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_CUSTOM_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_CUSTOM_FG=default
|
||||||
|
fi
|
||||||
|
|
||||||
|
# VIRTUALENV
|
||||||
|
if [ ! -n "${BULLETTRAIN_VIRTUALENV_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_VIRTUALENV_BG=yellow
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_VIRTUALENV_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_VIRTUALENV_FG=white
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_VIRTUALENV_PREFIX+1}" ]; then
|
||||||
|
BULLETTRAIN_VIRTUALENV_PREFIX=🐍
|
||||||
|
fi
|
||||||
|
|
||||||
|
# NVM
|
||||||
|
if [ ! -n "${BULLETTRAIN_NVM_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_NVM_BG=green
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_NVM_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_NVM_FG=white
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_NVM_PREFIX+1}" ]; then
|
||||||
|
BULLETTRAIN_NVM_PREFIX="⬡ "
|
||||||
|
fi
|
||||||
|
|
||||||
|
# AWS
|
||||||
|
if [ ! -n "${BULLETTRAIN_AWS_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_AWS_BG=yellow
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_AWS_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_AWS_FG=black
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_AWS_PREFIX+1}" ]; then
|
||||||
|
BULLETTRAIN_AWS_PREFIX="☁️"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# RUBY
|
||||||
|
if [ ! -n "${BULLETTRAIN_RUBY_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_RUBY_BG=red
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_RUBY_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_RUBY_FG=white
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_RUBY_PREFIX+1}" ]; then
|
||||||
|
BULLETTRAIN_RUBY_PREFIX=♦️
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Go
|
||||||
|
if [ ! -n "${BULLETTRAIN_GO_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_GO_BG=cyan
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GO_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_GO_FG=white
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GO_PREFIX+1}" ]; then
|
||||||
|
BULLETTRAIN_GO_PREFIX="go"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Rust
|
||||||
|
if [ ! -n "${BULLETTRAIN_RUST_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_RUST_BG=black
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_RUST_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_RUST_FG=white
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_RUST_PREFIX+1}" ]; then
|
||||||
|
BULLETTRAIN_RUST_PREFIX="🦀"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Kubernetes Context
|
||||||
|
if [ ! -n "${BULLETTRAIN_KCTX_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_KCTX_BG=yellow
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_KCTX_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_KCTX_FG=white
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_KCTX_PREFIX+1}" ]; then
|
||||||
|
BULLETTRAIN_KCTX_PREFIX="⎈"
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_KCTX_KCONFIG+1}" ]; then
|
||||||
|
BULLETTRAIN_KCTX_KCONFIG="${HOME}/.kube/config"
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_KCTX_KUBECTL+1}" ]; then
|
||||||
|
BULLETTRAIN_KCTX_KUBECTL="true"
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_KCTX_NAMESPACE+1}" ]; then
|
||||||
|
BULLETTRAIN_KCTX_NAMESPACE="true"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ELIXIR
|
||||||
|
if [ ! -n "${BULLETTRAIN_ELIXIR_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_ELIXIR_BG=magenta
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_ELIXIR_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_ELIXIR_FG=white
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_ELIXIR_PREFIX+1}" ]; then
|
||||||
|
BULLETTRAIN_ELIXIR_PREFIX="💧"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# DIR
|
||||||
|
if [ ! -n "${BULLETTRAIN_DIR_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_DIR_BG=blue
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_DIR_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_DIR_FG=white
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_DIR_CONTEXT_SHOW+1}" ]; then
|
||||||
|
BULLETTRAIN_DIR_CONTEXT_SHOW=false
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_DIR_EXTENDED+1}" ]; then
|
||||||
|
BULLETTRAIN_DIR_EXTENDED=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# GIT
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_COLORIZE_DIRTY+1}" ]; then
|
||||||
|
BULLETTRAIN_GIT_COLORIZE_DIRTY=false
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_COLORIZE_DIRTY_FG_COLOR+1}" ]; then
|
||||||
|
BULLETTRAIN_GIT_COLORIZE_DIRTY_FG_COLOR=black
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_COLORIZE_DIRTY_BG_COLOR+1}" ]; then
|
||||||
|
BULLETTRAIN_GIT_COLORIZE_DIRTY_BG_COLOR=yellow
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_GIT_BG=white
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_GIT_FG=black
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_EXTENDED+1}" ]; then
|
||||||
|
BULLETTRAIN_GIT_EXTENDED=true
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_PROMPT_CMD+1}" ]; then
|
||||||
|
BULLETTRAIN_GIT_PROMPT_CMD="\$(git_prompt_info)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# PERL
|
||||||
|
if [ ! -n "${BULLETTRAIN_PERL_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_PERL_BG=yellow
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_PERL_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_PERL_FG=black
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_PERL_PREFIX+1}" ]; then
|
||||||
|
BULLETTRAIN_PERL_PREFIX=🐪
|
||||||
|
fi
|
||||||
|
|
||||||
|
# CONTEXT
|
||||||
|
if [ ! -n "${BULLETTRAIN_CONTEXT_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_CONTEXT_BG=black
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_CONTEXT_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_CONTEXT_FG=default
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_CONTEXT_HOSTNAME+1}" ]; then
|
||||||
|
BULLETTRAIN_CONTEXT_HOSTNAME=%m
|
||||||
|
fi
|
||||||
|
|
||||||
|
# GIT PROMPT
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_PREFIX+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX="\ue0a0 "
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX=$BULLETTRAIN_GIT_PREFIX
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_SUFFIX+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_SUFFIX=""
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_SUFFIX=$BULLETTRAIN_GIT_SUFFIX
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_DIRTY+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIRTY=" %F{red}✘%F{black}"
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIRTY=$BULLETTRAIN_GIT_DIRTY
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_CLEAN+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_CLEAN=" %F{green}✔%F{black}"
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_CLEAN=$BULLETTRAIN_GIT_CLEAN
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_ADDED+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_ADDED=" %F{green}✚%F{black}"
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_ADDED=$BULLETTRAIN_GIT_ADDED
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_MODIFIED+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_MODIFIED=" %F{blue}✹%F{black}"
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_MODIFIED=$BULLETTRAIN_GIT_MODIFIED
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_DELETED+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_DELETED=" %F{red}✖%F{black}"
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_DELETED=$BULLETTRAIN_GIT_DELETED
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_UNTRACKED+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_UNTRACKED=" %F{yellow}✭%F{black}"
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_UNTRACKED=$BULLETTRAIN_GIT_UNTRACKED
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_RENAMED+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_RENAMED=" ➜"
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_RENAMED=$BULLETTRAIN_GIT_RENAMED
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_UNMERGED+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_UNMERGED=" ═"
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_UNMERGED=$BULLETTRAIN_GIT_UNMERGED
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_AHEAD+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_AHEAD=" ⬆"
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_AHEAD=$BULLETTRAIN_GIT_AHEAD
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_BEHIND+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_BEHIND=" ⬇"
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_BEHIND=$BULLETTRAIN_GIT_BEHIND
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_GIT_DIVERGED+1}" ]; then
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIVERGED=" ⬍"
|
||||||
|
else
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIVERGED=$BULLETTRAIN_GIT_PROMPT_DIVERGED
|
||||||
|
fi
|
||||||
|
|
||||||
|
# SCREEN
|
||||||
|
if [ ! -n "${BULLETTRAIN_SCREEN_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_SCREEN_BG=white
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_SCREEN_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_SCREEN_FG=black
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_SCREEN_PREFIX+1}" ]; then
|
||||||
|
BULLETTRAIN_SCREEN_PREFIX="⬗"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# COMMAND EXECUTION TIME
|
||||||
|
if [ ! -n "${BULLETTRAIN_EXEC_TIME_ELAPSED+1}" ]; then
|
||||||
|
BULLETTRAIN_EXEC_TIME_ELAPSED=5
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_EXEC_TIME_BG+1}" ]; then
|
||||||
|
BULLETTRAIN_EXEC_TIME_BG=yellow
|
||||||
|
fi
|
||||||
|
if [ ! -n "${BULLETTRAIN_EXEC_TIME_FG+1}" ]; then
|
||||||
|
BULLETTRAIN_EXEC_TIME_FG=black
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# SEGMENT DRAWING
|
||||||
|
# A few functions to make it easy and re-usable to draw segmented prompts
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
CURRENT_BG='NONE'
|
||||||
|
SEGMENT_SEPARATOR=''
|
||||||
|
|
||||||
|
# Begin a segment
|
||||||
|
# Takes three arguments, background, foreground and text. All of them can be omitted,
|
||||||
|
# rendering default background/foreground and no text.
|
||||||
|
prompt_segment() {
|
||||||
|
local bg fg
|
||||||
|
[[ -n $1 ]] && bg="%K{$1}" || bg="%k"
|
||||||
|
[[ -n $2 ]] && fg="%F{$2}" || fg="%f"
|
||||||
|
if [[ $CURRENT_BG != 'NONE' && $1 != $CURRENT_BG ]]; then
|
||||||
|
echo -n " %{$bg%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR%{$fg%} "
|
||||||
|
else
|
||||||
|
echo -n "%{$bg%}%{$fg%} "
|
||||||
|
fi
|
||||||
|
CURRENT_BG=$1
|
||||||
|
[[ -n $3 ]] && echo -n $3
|
||||||
|
}
|
||||||
|
|
||||||
|
# End the prompt, closing any open segments
|
||||||
|
prompt_end() {
|
||||||
|
if [[ -n $CURRENT_BG ]]; then
|
||||||
|
echo -n " %{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR"
|
||||||
|
else
|
||||||
|
echo -n "%{%k%}"
|
||||||
|
fi
|
||||||
|
echo -n "%{%f%}"
|
||||||
|
CURRENT_BG=''
|
||||||
|
}
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# PROMPT COMPONENTS
|
||||||
|
# Each component will draw itself, and hide itself if no information needs
|
||||||
|
# to be shown
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Context: user@hostname (who am I and where am I)
|
||||||
|
context() {
|
||||||
|
local user="$(whoami)"
|
||||||
|
[[ "$user" != "$BULLETTRAIN_CONTEXT_DEFAULT_USER" || -n "$BULLETTRAIN_IS_SSH_CLIENT" ]] && echo -n "${user}@$BULLETTRAIN_CONTEXT_HOSTNAME"
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt_context() {
|
||||||
|
local _context="$(context)"
|
||||||
|
[[ -n "$_context" ]] && prompt_segment $BULLETTRAIN_CONTEXT_BG $BULLETTRAIN_CONTEXT_FG "$_context"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Based on http://stackoverflow.com/a/32164707/3859566
|
||||||
|
function displaytime {
|
||||||
|
local T=$1
|
||||||
|
local D=$((T/60/60/24))
|
||||||
|
local H=$((T/60/60%24))
|
||||||
|
local M=$((T/60%60))
|
||||||
|
local S=$((T%60))
|
||||||
|
[[ $D > 0 ]] && printf '%dd' $D
|
||||||
|
[[ $H > 0 ]] && printf '%dh' $H
|
||||||
|
[[ $M > 0 ]] && printf '%dm' $M
|
||||||
|
printf '%ds' $S
|
||||||
|
}
|
||||||
|
|
||||||
|
# Prompt previous command execution time
|
||||||
|
preexec() {
|
||||||
|
cmd_timestamp=`date +%s`
|
||||||
|
}
|
||||||
|
|
||||||
|
precmd() {
|
||||||
|
local stop=`date +%s`
|
||||||
|
local start=${cmd_timestamp:-$stop}
|
||||||
|
let BULLETTRAIN_last_exec_duration=$stop-$start
|
||||||
|
cmd_timestamp=''
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt_cmd_exec_time() {
|
||||||
|
[ $BULLETTRAIN_last_exec_duration -gt $BULLETTRAIN_EXEC_TIME_ELAPSED ] && prompt_segment $BULLETTRAIN_EXEC_TIME_BG $BULLETTRAIN_EXEC_TIME_FG "$(displaytime $BULLETTRAIN_last_exec_duration)"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Custom
|
||||||
|
prompt_custom() {
|
||||||
|
if [[ $BULLETTRAIN_CUSTOM_MSG == false ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local custom_msg
|
||||||
|
eval custom_msg=$BULLETTRAIN_CUSTOM_MSG
|
||||||
|
[[ -n "${custom_msg}" ]] && prompt_segment $BULLETTRAIN_CUSTOM_BG $BULLETTRAIN_CUSTOM_FG "${custom_msg}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Git
|
||||||
|
prompt_git() {
|
||||||
|
if [[ "$(command git config --get oh-my-zsh.hide-status 2>/dev/null)" == "1" ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local ref dirty mode repo_path git_prompt
|
||||||
|
repo_path=$(git rev-parse --git-dir 2>/dev/null)
|
||||||
|
|
||||||
|
if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then
|
||||||
|
if [[ $BULLETTRAIN_GIT_COLORIZE_DIRTY == true && -n $(git status --porcelain --ignore-submodules) ]]; then
|
||||||
|
BULLETTRAIN_GIT_BG=$BULLETTRAIN_GIT_COLORIZE_DIRTY_BG_COLOR
|
||||||
|
BULLETTRAIN_GIT_FG=$BULLETTRAIN_GIT_COLORIZE_DIRTY_FG_COLOR
|
||||||
|
fi
|
||||||
|
prompt_segment $BULLETTRAIN_GIT_BG $BULLETTRAIN_GIT_FG
|
||||||
|
|
||||||
|
eval git_prompt=${BULLETTRAIN_GIT_PROMPT_CMD}
|
||||||
|
if [[ $BULLETTRAIN_GIT_EXTENDED == true ]]; then
|
||||||
|
echo -n ${git_prompt}$(git_prompt_status)
|
||||||
|
else
|
||||||
|
echo -n ${git_prompt}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt_hg() {
|
||||||
|
local rev status
|
||||||
|
if $(hg id >/dev/null 2>&1); then
|
||||||
|
if $(hg prompt >/dev/null 2>&1); then
|
||||||
|
if [[ $(hg prompt "{status|unknown}") = "?" ]]; then
|
||||||
|
# if files are not added
|
||||||
|
prompt_segment red white
|
||||||
|
st='±'
|
||||||
|
elif [[ -n $(hg prompt "{status|modified}") ]]; then
|
||||||
|
# if any modification
|
||||||
|
prompt_segment yellow black
|
||||||
|
st='±'
|
||||||
|
else
|
||||||
|
# if working copy is clean
|
||||||
|
prompt_segment green black
|
||||||
|
fi
|
||||||
|
echo -n $(hg prompt "☿ {rev}@{branch}") $st
|
||||||
|
else
|
||||||
|
st=""
|
||||||
|
rev=$(hg id -n 2>/dev/null | sed 's/[^-0-9]//g')
|
||||||
|
branch=$(hg id -b 2>/dev/null)
|
||||||
|
if $(hg st | grep -Eq "^\?"); then
|
||||||
|
prompt_segment red black
|
||||||
|
st='±'
|
||||||
|
elif $(hg st | grep -Eq "^(M|A)"); then
|
||||||
|
prompt_segment yellow black
|
||||||
|
st='±'
|
||||||
|
else
|
||||||
|
prompt_segment green black
|
||||||
|
fi
|
||||||
|
echo -n "☿ $rev@$branch" $st
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Dir: current working directory
|
||||||
|
prompt_dir() {
|
||||||
|
local dir=''
|
||||||
|
local _context="$(context)"
|
||||||
|
[[ $BULLETTRAIN_DIR_CONTEXT_SHOW == true && -n "$_context" ]] && dir="${dir}${_context}:"
|
||||||
|
|
||||||
|
if [[ $BULLETTRAIN_DIR_EXTENDED == 0 ]]; then
|
||||||
|
#short directories
|
||||||
|
dir="${dir}%1~"
|
||||||
|
elif [[ $BULLETTRAIN_DIR_EXTENDED == 2 ]]; then
|
||||||
|
#long directories
|
||||||
|
dir="${dir}%0~"
|
||||||
|
else
|
||||||
|
#medium directories (default case)
|
||||||
|
dir="${dir}%4(c:...:)%3c"
|
||||||
|
fi
|
||||||
|
|
||||||
|
prompt_segment $BULLETTRAIN_DIR_BG $BULLETTRAIN_DIR_FG $dir
|
||||||
|
}
|
||||||
|
|
||||||
|
# RUBY
|
||||||
|
# RVM: only shows RUBY info if on a gemset that is not the default one
|
||||||
|
# RBENV: shows current ruby version active in the shell; also with non-global gemsets if any is active
|
||||||
|
# CHRUBY: shows current ruby version active in the shell
|
||||||
|
prompt_ruby() {
|
||||||
|
if command -v rvm-prompt > /dev/null 2>&1; then
|
||||||
|
prompt_segment $BULLETTRAIN_RUBY_BG $BULLETTRAIN_RUBY_FG $BULLETTRAIN_RUBY_PREFIX" $(rvm-prompt i v g)"
|
||||||
|
elif command -v chruby > /dev/null 2>&1; then
|
||||||
|
prompt_segment $BULLETTRAIN_RUBY_BG $BULLETTRAIN_RUBY_FG $BULLETTRAIN_RUBY_PREFIX" $(chruby | sed -n -e 's/ \* //p')"
|
||||||
|
elif command -v rbenv > /dev/null 2>&1; then
|
||||||
|
current_gemset() {
|
||||||
|
echo "$(rbenv gemset active 2&>/dev/null | sed -e 's/ global$//')"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ -n $(current_gemset) ]]; then
|
||||||
|
prompt_segment $BULLETTRAIN_RUBY_BG $BULLETTRAIN_RUBY_FG $BULLETTRAIN_RUBY_PREFIX" $(rbenv version | sed -e 's/ (set.*$//')"@"$(current_gemset)"
|
||||||
|
else
|
||||||
|
prompt_segment $BULLETTRAIN_RUBY_BG $BULLETTRAIN_RUBY_FG $BULLETTRAIN_RUBY_PREFIX" $(rbenv version | sed -e 's/ (set.*$//')"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# ELIXIR
|
||||||
|
prompt_elixir() {
|
||||||
|
if command -v elixir > /dev/null 2>&1; then
|
||||||
|
prompt_segment $BULLETTRAIN_ELIXIR_BG $BULLETTRAIN_ELIXIR_FG $BULLETTRAIN_ELIXIR_PREFIX" $(elixir -v | tail -n 1 | awk '{print $2}')"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# PERL
|
||||||
|
# PLENV: shows current PERL version active in the shell
|
||||||
|
prompt_perl() {
|
||||||
|
if command -v plenv > /dev/null 2>&1; then
|
||||||
|
prompt_segment $BULLETTRAIN_PERL_BG $BULLETTRAIN_PERL_FG $BULLETTRAIN_PERL_PREFIX" $(plenv version | sed -e 's/ (set.*$//')"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Go
|
||||||
|
prompt_go() {
|
||||||
|
setopt extended_glob
|
||||||
|
if [[ (-f *.go(#qN) || -d Godeps || -f glide.yaml) ]]; then
|
||||||
|
if command -v go > /dev/null 2>&1; then
|
||||||
|
prompt_segment $BULLETTRAIN_GO_BG $BULLETTRAIN_GO_FG $BULLETTRAIN_GO_PREFIX" $(go version | grep --colour=never -oE '[[:digit:]].[[:digit:]]+')"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Rust
|
||||||
|
prompt_rust() {
|
||||||
|
if [[ (-f Cargo.toml) ]]; then
|
||||||
|
if command -v rustc > /dev/null 2>&1; then
|
||||||
|
prompt_segment $BULLETTRAIN_RUST_BG $BULLETTRAIN_RUST_FG $BULLETTRAIN_RUST_PREFIX" $(rustc -V version | cut -d' ' -f2)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Kubernetes Context
|
||||||
|
prompt_kctx() {
|
||||||
|
if [[ "$BULLETTRAIN_KCTX_KUBECTL" == "true" ]] && command -v kubectl > /dev/null 2>&1; then
|
||||||
|
local jsonpath='{.current-context}'
|
||||||
|
if [[ "$BULLETTRAIN_KCTX_NAMESPACE" == "true" ]]; then
|
||||||
|
jsonpath="${jsonpath}{':'}{..namespace}"
|
||||||
|
fi
|
||||||
|
prompt_segment $BULLETTRAIN_KCTX_BG $BULLETTRAIN_KCTX_FG $BULLETTRAIN_KCTX_PREFIX" $(kubectl config view --minify --output "jsonpath=${jsonpath}" 2>/dev/null)"
|
||||||
|
elif [[ -f $BULLETTRAIN_KCTX_KCONFIG ]]; then
|
||||||
|
prompt_segment $BULLETTRAIN_KCTX_BG $BULLETTRAIN_KCTX_FG $BULLETTRAIN_KCTX_PREFIX" $(cat $BULLETTRAIN_KCTX_KCONFIG | grep current-context | awk '{print $2}')"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Virtualenv: current working virtualenv
|
||||||
|
prompt_virtualenv() {
|
||||||
|
local virtualenv_path="$VIRTUAL_ENV"
|
||||||
|
if [[ -n $virtualenv_path && -n $VIRTUAL_ENV_DISABLE_PROMPT ]]; then
|
||||||
|
prompt_segment $BULLETTRAIN_VIRTUALENV_BG $BULLETTRAIN_VIRTUALENV_FG $BULLETTRAIN_VIRTUALENV_PREFIX" $(basename $virtualenv_path)"
|
||||||
|
elif which pyenv &> /dev/null; then
|
||||||
|
if [[ "$(pyenv version | sed -e 's/ (set.*$//' | tr '\n' ' ' | sed 's/.$//')" != "system" ]]; then
|
||||||
|
prompt_segment $BULLETTRAIN_VIRTUALENV_BG $BULLETTRAIN_VIRTUALENV_FG $BULLETTRAIN_VIRTUALENV_PREFIX" $(pyenv version | sed -e 's/ (set.*$//' | tr '\n' ' ' | sed 's/.$//')"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# NVM: Node version manager
|
||||||
|
prompt_nvm() {
|
||||||
|
local nvm_prompt
|
||||||
|
if type nvm >/dev/null 2>&1; then
|
||||||
|
nvm_prompt=$(nvm current 2>/dev/null)
|
||||||
|
[[ "${nvm_prompt}x" == "x" || "${nvm_prompt}" == "system" ]] && return
|
||||||
|
elif type node >/dev/null 2>&1; then
|
||||||
|
nvm_prompt="$(node --version)"
|
||||||
|
else
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
nvm_prompt=${nvm_prompt}
|
||||||
|
prompt_segment $BULLETTRAIN_NVM_BG $BULLETTRAIN_NVM_FG $BULLETTRAIN_NVM_PREFIX$nvm_prompt
|
||||||
|
}
|
||||||
|
|
||||||
|
#AWS Profile
|
||||||
|
prompt_aws() {
|
||||||
|
local spaces=" "
|
||||||
|
|
||||||
|
if [[ -n "$AWS_PROFILE" ]]; then
|
||||||
|
prompt_segment $BULLETTRAIN_AWS_BG $BULLETTRAIN_AWS_FG $BULLETTRAIN_AWS_PREFIX$spaces$AWS_PROFILE
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# SCREEN Session
|
||||||
|
prompt_screen() {
|
||||||
|
local session_name="$STY"
|
||||||
|
if [[ "$session_name" != "" ]]; then
|
||||||
|
prompt_segment $BULLETTRAIN_SCREEN_BG $BULLETTRAIN_SCREEN_FG $BULLETTRAIN_SCREEN_PREFIX" $session_name"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt_time() {
|
||||||
|
if [[ $BULLETTRAIN_TIME_12HR == true ]]; then
|
||||||
|
prompt_segment $BULLETTRAIN_TIME_BG $BULLETTRAIN_TIME_FG %D{%r}
|
||||||
|
else
|
||||||
|
prompt_segment $BULLETTRAIN_TIME_BG $BULLETTRAIN_TIME_FG %D{%T}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Status:
|
||||||
|
# - was there an error
|
||||||
|
# - am I root
|
||||||
|
# - are there background jobs?
|
||||||
|
prompt_status() {
|
||||||
|
local symbols
|
||||||
|
symbols=()
|
||||||
|
[[ $RETVAL -ne 0 && $BULLETTRAIN_STATUS_EXIT_SHOW != true ]] && symbols+="✘"
|
||||||
|
[[ $RETVAL -ne 0 && $BULLETTRAIN_STATUS_EXIT_SHOW == true ]] && symbols+="✘ $RETVAL"
|
||||||
|
[[ $UID -eq 0 ]] && symbols+="%{%F{yellow}%}⚡%f"
|
||||||
|
[[ $(jobs -l | wc -l) -gt 0 ]] && symbols+="⚙"
|
||||||
|
|
||||||
|
if [[ -n "$symbols" && $RETVAL -ne 0 ]]; then
|
||||||
|
prompt_segment $BULLETTRAIN_STATUS_ERROR_BG $BULLETTRAIN_STATUS_FG "$symbols"
|
||||||
|
elif [[ -n "$symbols" ]]; then
|
||||||
|
prompt_segment $BULLETTRAIN_STATUS_BG $BULLETTRAIN_STATUS_FG "$symbols"
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# Prompt Character
|
||||||
|
prompt_chars() {
|
||||||
|
local bt_prompt_chars="${BULLETTRAIN_PROMPT_CHAR}"
|
||||||
|
|
||||||
|
if [[ $BULLETTRAIN_PROMPT_ROOT == true ]]; then
|
||||||
|
bt_prompt_chars="%(!.%F{red}# .%F{green}${bt_prompt_chars}%f)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $BULLETTRAIN_PROMPT_SEPARATE_LINE == false ]]; then
|
||||||
|
bt_prompt_chars="${bt_prompt_chars}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -n "$bt_prompt_chars"
|
||||||
|
|
||||||
|
if [[ -n $BULLETTRAIN_PROMPT_CHAR ]]; then
|
||||||
|
echo -n " "
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Prompt Line Separator
|
||||||
|
prompt_line_sep() {
|
||||||
|
if [[ $BULLETTRAIN_PROMPT_SEPARATE_LINE == true ]]; then
|
||||||
|
# newline wont print without a non newline character, so add a zero-width space
|
||||||
|
echo -e '\n%{\u200B%}'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# MAIN
|
||||||
|
# Entry point
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
build_prompt() {
|
||||||
|
RETVAL=$?
|
||||||
|
for segment in $BULLETTRAIN_PROMPT_ORDER
|
||||||
|
do
|
||||||
|
prompt_$segment
|
||||||
|
done
|
||||||
|
prompt_end
|
||||||
|
}
|
||||||
|
|
||||||
|
NEWLINE='
|
||||||
|
'
|
||||||
|
PROMPT=''
|
||||||
|
[[ $BULLETTRAIN_PROMPT_ADD_NEWLINE == true ]] && PROMPT="$PROMPT$NEWLINE"
|
||||||
|
PROMPT="$PROMPT"'%{%f%b%k%}$(build_prompt)'
|
||||||
|
[[ $BULLETTRAIN_PROMPT_SEPARATE_LINE == true ]] && PROMPT="$PROMPT$NEWLINE"
|
||||||
|
PROMPT="$PROMPT"'%{${fg_bold[default]}%}'
|
||||||
|
[[ $BULLETTRAIN_PROMPT_SEPARATE_LINE == false ]] && PROMPT="$PROMPT "
|
||||||
|
PROMPT="$PROMPT"'$(prompt_chars)%{$reset_color%}'
|
||||||
38
assets/add_zsh_theme/color-input.zsh-theme
Normal file
38
assets/add_zsh_theme/color-input.zsh-theme
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# Refer https://misc.flogisoft.com/bash/tip_colors_and_formatting for the ANSI/VT100 control sequences
|
||||||
|
|
||||||
|
local user_color=026
|
||||||
|
local dir_color=130
|
||||||
|
local git_branch_color=010
|
||||||
|
local input_color=220
|
||||||
|
|
||||||
|
# Uncomment the following line to hide the virtual environment name.
|
||||||
|
# export VIRTUAL_ENV_DISABLE_PROMPT=1
|
||||||
|
|
||||||
|
# User details in green, bold
|
||||||
|
local user='%B$FG[${user_color}]%}%n@%m%{$reset_color%}'
|
||||||
|
# Directory details in cyan, bold
|
||||||
|
local dir='%B$FG[${dir_color}]%~%{$reset_color%}'
|
||||||
|
# git branch details in green
|
||||||
|
local git_branch='$FG[${git_branch_color}]$(git_prompt_info)%{$reset_color%}'
|
||||||
|
|
||||||
|
# Error message on command returning non-zero exit code
|
||||||
|
error_msg="\e[0;31mCommand failed"
|
||||||
|
|
||||||
|
PROMPT="${user}:${dir}:${git_branch}
|
||||||
|
$ $FG[${input_color}]"
|
||||||
|
|
||||||
|
# Resetting color to default white.
|
||||||
|
preexec()
|
||||||
|
{
|
||||||
|
echo -ne "\e[0m"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Printing error message if command failed.
|
||||||
|
precmd()
|
||||||
|
{
|
||||||
|
# Command failed
|
||||||
|
if [ $? -ne 0 ];
|
||||||
|
then
|
||||||
|
echo "${error_msg}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
418
assets/add_zsh_theme/comfyline.zsh-theme
Normal file
418
assets/add_zsh_theme/comfyline.zsh-theme
Normal file
@ -0,0 +1,418 @@
|
|||||||
|
##########################################
|
||||||
|
### Comfyline - theme for zsh ###
|
||||||
|
# Original Author: not pua ( imnotpua ) #
|
||||||
|
# email: atp@tutamail.com #
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
|
||||||
|
# make prompt work without oh-my-zsh
|
||||||
|
setopt PROMPT_SUBST
|
||||||
|
export LANG=en_US.UTF-8
|
||||||
|
export LC_ALL=en_US.UTF-8
|
||||||
|
|
||||||
|
# default segment seperators
|
||||||
|
if [[ $COMFYLINE_SEGSEP == "" ]]; then
|
||||||
|
COMFYLINE_SEGSEP='\ue0b4'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $COMFYLINE_SEGSEP_REVERSE == "" ]]; then
|
||||||
|
COMFYLINE_SEGSEP_REVERSE='\ue0b6'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# date and time formats
|
||||||
|
if [[ $COMFYLINE_DATE_FORMAT == "" ]]; then
|
||||||
|
COMFYLINE_DATE_FORMAT="%A, %e %B %Y"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $COMFYLINE_TIME_FORMAT == "" ]]; then
|
||||||
|
COMFYLINE_TIME_FORMAT="%l:%M %p"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# default light theme
|
||||||
|
if [[ $RETVAL_RANK == "" ]]; then
|
||||||
|
RETVAL_RANK=1
|
||||||
|
fi
|
||||||
|
if [[ $HOST_RANK == "" ]]; then
|
||||||
|
HOST_RANK=2
|
||||||
|
fi
|
||||||
|
if [[ $USER_RANK == "" ]] then
|
||||||
|
USER_RANK=3
|
||||||
|
fi
|
||||||
|
if [[ $DIR_RANK == "" ]]; then
|
||||||
|
DIR_RANK=4
|
||||||
|
fi
|
||||||
|
if [[ $GIT_RANK == "" ]] then
|
||||||
|
GIT_RANK=5
|
||||||
|
fi
|
||||||
|
if [[ $VENV_RANK = "" ]]; then
|
||||||
|
VENV_RANK=6
|
||||||
|
fi
|
||||||
|
if [[ $BAT_RANK == "" ]] then
|
||||||
|
BAT_RANK=-3
|
||||||
|
fi
|
||||||
|
if [[ $DATE_RANK == "" ]]; then
|
||||||
|
DATE_RANK=-2
|
||||||
|
fi
|
||||||
|
if [[ $TIME_RANK == "" ]]; then
|
||||||
|
TIME_RANK=-1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# default colors
|
||||||
|
if [[ $RETVAL_b == "" ]]; then
|
||||||
|
RETVAL_b="#8a8bd8"
|
||||||
|
fi
|
||||||
|
if [[ $RETVAL_f == "" ]]; then
|
||||||
|
RETVAL_f="#61355c"
|
||||||
|
fi
|
||||||
|
if [[ $HOST_b == "" ]]; then
|
||||||
|
HOST_b="#b3b5fb"
|
||||||
|
fi
|
||||||
|
if [[ $HOST_f == "" ]]; then
|
||||||
|
HOST_f="#4a4b87"
|
||||||
|
fi
|
||||||
|
if [[ $USER_b == "" ]]; then
|
||||||
|
USER_b="#f8bbe5"
|
||||||
|
fi
|
||||||
|
if [[ $USER_f == "" ]]; then
|
||||||
|
USER_f="#874c80"
|
||||||
|
fi
|
||||||
|
if [[ $GIT_b == "" ]]; then
|
||||||
|
GIT_b="#f6b3b3"
|
||||||
|
fi
|
||||||
|
if [[ $GIT_f == "" ]]; then
|
||||||
|
GIT_f="#d95353"
|
||||||
|
fi
|
||||||
|
if [[ $GIT_CLEAN_b == "" ]]; then
|
||||||
|
GIT_CLEAN_b="#b3f58c"
|
||||||
|
fi
|
||||||
|
if [[ $GIT_CLEAN_f == "" ]]; then
|
||||||
|
GIT_CLEAN_f="#568459"
|
||||||
|
fi
|
||||||
|
if [[ $DIR_b == "" ]]; then
|
||||||
|
DIR_b="#e1bff2"
|
||||||
|
fi
|
||||||
|
if [[ $DIR_f == "" ]]; then
|
||||||
|
DIR_f="#844189"
|
||||||
|
fi
|
||||||
|
if [[ $VENV_b == "" ]]; then
|
||||||
|
VENV_b="#a8ddf9"
|
||||||
|
fi
|
||||||
|
if [[ $VENV_f == "" ]]; then
|
||||||
|
VENV_f="#0066a4"
|
||||||
|
fi
|
||||||
|
if [[ $BAT_b == "" ]]; then
|
||||||
|
BAT_b="#b3b5fb"
|
||||||
|
fi
|
||||||
|
if [[ $BAT_f == "" ]]; then
|
||||||
|
BAT_f="#4a4b87"
|
||||||
|
fi
|
||||||
|
if [[ $DATE_b == "" ]]; then
|
||||||
|
DATE_b="#f8bbe5"
|
||||||
|
fi
|
||||||
|
if [[ $DATE_f == "" ]]; then
|
||||||
|
DATE_f="#874c80"
|
||||||
|
fi
|
||||||
|
if [[ $TIME_b == "" ]]; then
|
||||||
|
TIME_b="#e1bff2"
|
||||||
|
fi
|
||||||
|
if [[ $TIME_f == "" ]]; then
|
||||||
|
TIME_f="#844189"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# basic functions
|
||||||
|
|
||||||
|
#function takes 4 arguments, background, foreground, text and rank (for edge cases)
|
||||||
|
function create_segment(){
|
||||||
|
if [[ $4 -lt $RIGHTMOST_RANK ]]; then
|
||||||
|
local segment="%F{$1}$COMFYLINE_SEGSEP_REVERSE"
|
||||||
|
echo -n "$segment%K{$1}%F{$2} $3 "
|
||||||
|
elif [[ $4 -gt $LEFTMOST_RANK ]]; then
|
||||||
|
local segment="%K{$1}$COMFYLINE_SEGSEP "
|
||||||
|
echo -n "$segment%F{$2}$3%F{$1} "
|
||||||
|
elif [[ $4 -eq $RIGHTMOST_RANK ]]; then
|
||||||
|
if [[ $COMFYLINE_NO_START -eq 1 ]]; then
|
||||||
|
local segment="%F{$1}$COMFYLINE_SEGSEP_REVERSE"
|
||||||
|
echo -n "$segment%K{$1}%F{$2} $3"
|
||||||
|
else
|
||||||
|
local segment="%F{$1}$COMFYLINE_SEGSEP_REVERSE"
|
||||||
|
echo -n "$segment%K{$1}%F{$2} $3 %k%F{$1}$COMFYLINE_SEGSEP"
|
||||||
|
fi
|
||||||
|
elif [[ $4 -eq $LEFTMOST_RANK ]]; then
|
||||||
|
if [[ $COMFYLINE_NO_START -eq 1 ]]; then
|
||||||
|
local segment="%K{$1} "
|
||||||
|
echo -n "$segment%F{$2}$3%F{$1} "
|
||||||
|
else
|
||||||
|
local segment="%F{$1}$COMFYLINE_SEGSEP_REVERSE%K{$1} "
|
||||||
|
echo -n "$segment%F{$2}$3%F{$1} "
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
### explanation: creates segment seperator with new bg but fg as old bg.
|
||||||
|
### then prints contents in new fg and prepares for next fg as current bg
|
||||||
|
|
||||||
|
# segment functions
|
||||||
|
function retval(){
|
||||||
|
if [[ $COMFYLINE_RETVAL_NUMBER -eq 2 ]]; then
|
||||||
|
symbol="%(?..✘ %?)"
|
||||||
|
elif [[ $COMFYLINE_RETVAL_NUMBER -eq 1 ]]; then
|
||||||
|
symbol="%?"
|
||||||
|
else
|
||||||
|
symbol="%(?..✘)"
|
||||||
|
fi
|
||||||
|
create_segment $RETVAL_b $RETVAL_f $symbol $RETVAL_RANK
|
||||||
|
}
|
||||||
|
|
||||||
|
function hostname(){
|
||||||
|
if [[ $COMFYLINE_FULL_HOSTNAME -eq 1 ]]; then
|
||||||
|
create_segment $HOST_b $HOST_f "%M" $HOST_RANK
|
||||||
|
else
|
||||||
|
create_segment $HOST_b $HOST_f "%m" $HOST_RANK
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function username(){
|
||||||
|
create_segment $USER_b $USER_f "%n" $USER_RANK
|
||||||
|
}
|
||||||
|
|
||||||
|
function dir(){
|
||||||
|
if [[ $COMFYLINE_FULL_DIR -eq 1 ]]; then
|
||||||
|
symbol="%d"
|
||||||
|
else
|
||||||
|
symbol="%~"
|
||||||
|
fi
|
||||||
|
create_segment $DIR_b $DIR_f $symbol $DIR_RANK
|
||||||
|
}
|
||||||
|
|
||||||
|
# variables to set git_prompt info and status
|
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX=" \ue0a0 "
|
||||||
|
ZSH_THEME_GIT_PROMPT_SUFFIX=""
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIRTY=""
|
||||||
|
ZSH_THEME_GIT_PROMPT_CLEAN=""
|
||||||
|
ZSH_THEME_GIT_PROMPT_ADDED=" ✚"
|
||||||
|
ZSH_THEME_GIT_PROMPT_MODIFIED=" ±"
|
||||||
|
ZSH_THEME_GIT_PROMPT_DELETED=" \u2796"
|
||||||
|
ZSH_THEME_GIT_PROMPT_UNTRACKED=" !"
|
||||||
|
ZSH_THEME_GIT_PROMPT_RENAMED=" \u21b7"
|
||||||
|
ZSH_THEME_GIT_PROMPT_UNMERGED=" \u21e1"
|
||||||
|
ZSH_THEME_GIT_PROMPT_AHEAD=" \u21c5"
|
||||||
|
ZSH_THEME_GIT_PROMPT_BEHIND=" \u21b1"
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIVERGED=" \u21b0"
|
||||||
|
|
||||||
|
function gitrepo(){
|
||||||
|
if [ "$(git rev-parse --is-inside-work-tree 2>/dev/null)" = "true" ]; then
|
||||||
|
if [[ $(git status --porcelain) == "" ]]; then
|
||||||
|
if [[ $(command -v git_prompt_info 2> /dev/null) ]]; then
|
||||||
|
create_segment $GIT_CLEAN_b $GIT_CLEAN_f "$(git_prompt_info)$(git_prompt_status)" $GIT_RANK
|
||||||
|
else
|
||||||
|
create_segment $GIT_CLEAN_b $GIT_CLEAN_f "$ZSH_THEME_GIT_PROMPT_PREFIX$(git rev-parse --abbrev-ref HEAD)" $GIT_RANK
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [[ $(command -v git_prompt_info 2> /dev/null) ]]; then
|
||||||
|
create_segment $GIT_b $GIT_f "$(git_prompt_info)$(git_prompt_status)" $GIT_RANK
|
||||||
|
else
|
||||||
|
create_segment $GIT_b $GIT_f "$ZSH_THEME_GIT_PROMPT_PREFIX$(git rev-parse --abbrev-ref HEAD)" $GIT_RANK
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function venv(){
|
||||||
|
if [ -n "$VIRTUAL_ENV" ]; then
|
||||||
|
create_segment $VENV_b $VENV_f ${VIRTUAL_ENV:t:gs/%/%%} $VENV_RANK
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# battery function
|
||||||
|
|
||||||
|
# variables
|
||||||
|
|
||||||
|
if [[ $COMFYLINE_BATTERY_LOW == "" ]]; then
|
||||||
|
COMFYLINE_BATTERY_LOW=15
|
||||||
|
fi
|
||||||
|
if [[ $COMFYLINE_BATTERY_HIGH == "" ]]; then
|
||||||
|
COMFYLINE_BATTERY_HIGH=90
|
||||||
|
fi
|
||||||
|
if [[ $COMFYLINE_CHARGING_ICON == "" ]]; then
|
||||||
|
COMFYLINE_CHARGING_ICON="⚡️"
|
||||||
|
fi
|
||||||
|
if [[ $COMFYLINE_HIGHCHARGE_ICON == "" ]]; then
|
||||||
|
COMFYLINE_HIGHCHARGE_ICON=""
|
||||||
|
fi
|
||||||
|
if [[ $COMFYLINE_MIDCHARGE_ICON == "" ]]; then
|
||||||
|
COMFYLINE_MIDCHARGE_ICON=""
|
||||||
|
fi
|
||||||
|
if [[ $COMFYLINE_LOWCHARGE_ICON == "" ]]; then
|
||||||
|
COMFYLINE_LOWCHARGE_ICON=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
function calcbat(){
|
||||||
|
BAT=""
|
||||||
|
if [[ $(uname) == "Linux" ]]; then
|
||||||
|
number=$(ls /sys/class/power_supply/ | grep 'BAT' | wc -l )
|
||||||
|
if [[ $number -eq 0 ]]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
for ((i=0;i<$number;i++));do
|
||||||
|
capacity=$(cat /sys/class/power_supply/BAT${i}/capacity)
|
||||||
|
stats=$(cat /sys/class/power_supply/BAT${i}/status)
|
||||||
|
if [[ $stats == "Charging" ]]; then
|
||||||
|
stats="$COMFYLINE_CHARGING_ICON"
|
||||||
|
elif [[ $stats == "Discharging" ]]; then
|
||||||
|
if [ $capacity -gt $COMFYLINE_BATTERY_HIGH ]; then
|
||||||
|
stats="$COMFYLINE_HIGHCHARGE_ICON"
|
||||||
|
elif [ $capacity -lt $COMFYLINE_BATTERY_LOW ]; then
|
||||||
|
stats="$COMFYLINE_LOWCHARGE_ICON"
|
||||||
|
else
|
||||||
|
stats="$COMFYLINE_MIDCHARGE_ICON"
|
||||||
|
fi
|
||||||
|
elif [[ $stats == "Not charging" ]]; then
|
||||||
|
stats="$COMFYLINE_HIGHCHARGE_ICON"
|
||||||
|
fi
|
||||||
|
BAT="$BAT$capacity%% $stats "
|
||||||
|
done
|
||||||
|
|
||||||
|
elif [[ $(uname) == "Darwin" ]]; then
|
||||||
|
battery_details = $(pmset -g batt)
|
||||||
|
charged=$(echo "$battery_details" | grep -w 'charged')
|
||||||
|
charging=$(echo "$battery_details" | grep -w 'AC Power')
|
||||||
|
discharging=$(echo "$battery_details" | grep -w 'Battery Power')
|
||||||
|
capacity=$(echo "$battery_details" | grep -o "([0-9]*)"%)
|
||||||
|
|
||||||
|
if [ -n "$charging" ]; then
|
||||||
|
stats="$COMFYLINE_CHARGING_ICON"
|
||||||
|
elif [[ -n "$discharging" ]]; then
|
||||||
|
if [ $capacity -gt $COMFYLINE_BATTERY_HIGH ]; then
|
||||||
|
stats="$COMFYLINE_HIGHCHARGE_ICON"
|
||||||
|
elif [ $capacity -lt $COMFYLINE_BATTERY_LOW ]; then
|
||||||
|
stats="$COMFYLINE_LOWCHARGE_ICON"
|
||||||
|
else
|
||||||
|
stats="$COMFYLINE_MIDCHARGE_ICON"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
BAT="$capacity%% $stats"
|
||||||
|
|
||||||
|
elif [[ $(uname) == "FreeBSD" || $(uname) == "OpenBSD" ]]; then
|
||||||
|
capacity=$(apm -l)
|
||||||
|
stats=$(apm -b)
|
||||||
|
if [ $stats -eq 3 ]; then
|
||||||
|
stats="$COMFYLINE_CHARGING_ICON"
|
||||||
|
else
|
||||||
|
if [[ $capacity -gt $COMFYLINE_BATTERY_HIGH ]]; then
|
||||||
|
stats="$COMFYLINE_HIGHCHARGE_ICON"
|
||||||
|
elif [[ $capacity -lt $COMFYLINE_BATTERY_LOW ]]; then
|
||||||
|
stats="$COMFYLINE_LOWCHARGE_ICON"
|
||||||
|
else
|
||||||
|
stats="$COMFYLINE_MIDCHARGE_ICON"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
BAT="$capacity%% $stats"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# function to call battery calculation
|
||||||
|
function currbat(){
|
||||||
|
if [[ $COMFYLINE_BATTERY_PLUGIN -eq 1 ]]; then
|
||||||
|
create_segment $BAT_b $BAT_f "$(battery_pct_prompt)" $BAT_RANK
|
||||||
|
else
|
||||||
|
calcbat
|
||||||
|
create_segment $BAT_b $BAT_f "$BAT" $BAT_RANK
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function currdate(){
|
||||||
|
info="%D{$COMFYLINE_DATE_FORMAT}"
|
||||||
|
create_segment $DATE_b $DATE_f $info $DATE_RANK
|
||||||
|
}
|
||||||
|
|
||||||
|
function currtime(){
|
||||||
|
info="%D{$COMFYLINE_TIME_FORMAT}"
|
||||||
|
create_segment $TIME_b $TIME_f $info $TIME_RANK
|
||||||
|
}
|
||||||
|
|
||||||
|
function endleft(){
|
||||||
|
echo -n "%k$COMFYLINE_SEGSEP%f"
|
||||||
|
}
|
||||||
|
|
||||||
|
# parse variables
|
||||||
|
|
||||||
|
segments=("retval" "hostname" "username" "dir" "gitrepo" "venv" "currbat" "currtime" "currdate")
|
||||||
|
segment_ranks=($RETVAL_RANK $HOST_RANK $USER_RANK $DIR_RANK $GIT_RANK $VENV_RANK $BAT_RANK $TIME_RANK $DATE_RANK)
|
||||||
|
|
||||||
|
# split into left and right
|
||||||
|
|
||||||
|
left_prompt=()
|
||||||
|
right_prompt=()
|
||||||
|
left_ranks=()
|
||||||
|
right_ranks=()
|
||||||
|
for ((i=1;i<=${#segments[@]};i++)); do
|
||||||
|
if [[ segment_ranks[$i] -gt 0 ]]; then
|
||||||
|
left_prompt+=(${segments[$i]})
|
||||||
|
left_ranks+=(${segment_ranks[$i]})
|
||||||
|
elif [[ segment_ranks[$i] -lt 0 ]]; then
|
||||||
|
right_prompt+=(${segments[$i]})
|
||||||
|
right_ranks+=(${segment_ranks[$i]#-})
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# sort the prompts according to ranks and find the leftmost and rightmost
|
||||||
|
# I use the traditional iterative method to find max/min and using count-sort for sorting
|
||||||
|
|
||||||
|
LEFTMOST_RANK=100
|
||||||
|
declare -A sorted_left
|
||||||
|
for ((i=1;i<=${#left_prompt[@]};i++)); do
|
||||||
|
if [[ $left_ranks[$i] -lt $LEFTMOST_RANK ]]; then LEFTMOST_RANK=$left_ranks[$i] fi
|
||||||
|
sorted_left[$left_ranks[$i]]="$left_prompt[$i]"
|
||||||
|
done
|
||||||
|
|
||||||
|
RIGHTMOST_RANK=100
|
||||||
|
declare -A sorted_right
|
||||||
|
for ((i=1;i<=${#right_prompt[@]};i++)); do
|
||||||
|
if [[ $right_ranks[$i] -lt $RIGHTMOST_RANK ]]; then RIGHTMOST_RANK=$right_ranks[$i] fi
|
||||||
|
sorted_right[$right_ranks[$i]]="$right_prompt[$i]"
|
||||||
|
done
|
||||||
|
((RIGHTMOST_RANK*=-1))
|
||||||
|
|
||||||
|
|
||||||
|
# finally make_prompt which makes prompts
|
||||||
|
make_left_prompt(){
|
||||||
|
for ((j = 1; j <= ${#left_prompt[@]}; j++)); do
|
||||||
|
type $sorted_left[$j] &>/dev/null && $sorted_left[$j]
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
make_right_prompt(){
|
||||||
|
for ((j = ${#right_prompt[@]}; j>0; j--)); do
|
||||||
|
type $sorted_right[$j] &>/dev/null && $sorted_right[$j]
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
export PROMPT='%{%f%b%k%}$(make_left_prompt)$(endleft) '
|
||||||
|
export RPROMPT=' %{%f%b%k%}$(make_right_prompt)' # spaces left so that hiding is triggered
|
||||||
|
|
||||||
|
if [[ $COMFYLINE_NEXT_LINE_CHAR == "" ]]; then
|
||||||
|
COMFYLINE_NEXT_LINE_CHAR='➟'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $COMFYLINE_NEXT_LINE_CHAR_COLOR == "" ]]; then
|
||||||
|
COMFYLINE_NEXT_LINE_CHAR_COLOR="grey"
|
||||||
|
fi
|
||||||
|
|
||||||
|
next_line_maker(){
|
||||||
|
echo -n "%F{$COMFYLINE_NEXT_LINE_CHAR_COLOR}$COMFYLINE_NEXT_LINE_CHAR %f"
|
||||||
|
}
|
||||||
|
|
||||||
|
# setting up typing area
|
||||||
|
if [[ COMFYLINE_START_NEXT_LINE -eq 2 ]]; then
|
||||||
|
|
||||||
|
PROMPT=$PROMPT'
|
||||||
|
'$(next_line_maker)
|
||||||
|
|
||||||
|
|
||||||
|
elif [[ COMFYLINE_NO_GAP_LINE -eq 1 ]]; then
|
||||||
|
else
|
||||||
|
|
||||||
|
PROMPT='
|
||||||
|
'$PROMPT
|
||||||
|
|
||||||
|
fi
|
||||||
7
assets/add_zsh_theme/emoji.zsh-theme
Normal file
7
assets/add_zsh_theme/emoji.zsh-theme
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
PROMPT=" %(?:%{$fg_bold[green]%}➜:%{$fg_bold[red]%}➜)"
|
||||||
|
PROMPT+=' %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)'
|
||||||
|
|
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}(%{$fg[red]%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✏️ "
|
||||||
|
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%}) ✅"
|
||||||
60
assets/add_zsh_theme/fishbone++.zsh-theme
Normal file
60
assets/add_zsh_theme/fishbone++.zsh-theme
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
|
||||||
|
local username="%n"
|
||||||
|
local path_prefix="%{$fg[yellow]%}["
|
||||||
|
local path_string="%{$fg[blue]%}%~"
|
||||||
|
local path_postfix="%{$fg[yellow]%}]"
|
||||||
|
local prompt_string="❯❯ "
|
||||||
|
local local_time="%T"
|
||||||
|
local newline=$'\n'
|
||||||
|
local line_mode=$'\n'
|
||||||
|
|
||||||
|
# customize user settings
|
||||||
|
# prompt symbol
|
||||||
|
if [ ! -z "$FISHBONEPP_PROMPT" ]; then
|
||||||
|
prompt_string="$FISHBONEPP_PROMPT"
|
||||||
|
fi
|
||||||
|
# username
|
||||||
|
if [ ! -z "$FISHBONEPP_USER" ]; then
|
||||||
|
username="$FISHBONEPP_USER"
|
||||||
|
fi
|
||||||
|
# time mode
|
||||||
|
if [ "$FISHBONEPP_TIME" = "12HR" ]; then
|
||||||
|
local_time="%t"
|
||||||
|
elif [ "$FISHBONEPP_TIME" = "FULL" ]; then
|
||||||
|
local_time="%*"
|
||||||
|
else
|
||||||
|
local_time="%T"
|
||||||
|
fi
|
||||||
|
# new line on start
|
||||||
|
if [ "$FISHBONEPP_NEWLINE" = false ]; then
|
||||||
|
newline=''
|
||||||
|
fi
|
||||||
|
# line mode
|
||||||
|
if [ "$FISHBONEPP_LINE_MODE" = "singleline" ]; then
|
||||||
|
line_mode=''
|
||||||
|
fi
|
||||||
|
|
||||||
|
local host_name="%{$fg[blue]%}${username}"
|
||||||
|
local time_string="%{$fg[blue]%}${local_time}"
|
||||||
|
# Make prompt_string red if the previous command failed.
|
||||||
|
local return_status="%(?:%{$fg[cyan]%}$prompt_string:%{$fg[red]%}$prompt_string%}"
|
||||||
|
|
||||||
|
|
||||||
|
# set the git_prompt_info text
|
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[blue](%{$reset_color%}%{$fg[yellow]%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%{$fg[blue])%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIRTY="⚡"
|
||||||
|
ZSH_THEME_GIT_PROMPT_CLEAN=""
|
||||||
|
|
||||||
|
PROMPT='${newline}\
|
||||||
|
${host_name}${hosr}%{$reset_color%}@${time_string} ${line_mode}\
|
||||||
|
${path_prefix}${path_string}${path_postfix}$(git_prompt_info)$(git_prompt_status) \
|
||||||
|
${return_status} %{$reset_color%}'
|
||||||
|
|
||||||
|
|
||||||
|
ZSH_THEME_GIT_PROMPT_ADDED="➕"
|
||||||
|
ZSH_THEME_GIT_PROMPT_MODIFIED="✒️ "
|
||||||
|
ZSH_THEME_GIT_PROMPT_DELETED="➖"
|
||||||
|
ZSH_THEME_GIT_PROMPT_RENAMED="⁉️ "
|
||||||
|
ZSH_THEME_GIT_PROMPT_UNMERGED="🥺"
|
||||||
|
ZSH_THEME_GIT_PROMPT_UNTRACKED="🚝"
|
||||||
75
assets/fastfetch/config-compact.jsonc
Normal file
75
assets/fastfetch/config-compact.jsonc
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
|
||||||
|
"logo": {
|
||||||
|
"source": "~/.config/fastfetch/debian.png",
|
||||||
|
"type": "kitty-direct",
|
||||||
|
"height": 10,
|
||||||
|
"width": 20,
|
||||||
|
"padding": {
|
||||||
|
"top": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"separator": " -> "
|
||||||
|
},
|
||||||
|
"modules": [
|
||||||
|
"break",
|
||||||
|
{
|
||||||
|
"type": "title",
|
||||||
|
"keyWidth": 10,
|
||||||
|
"format": " {6}{7}{8}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom",
|
||||||
|
"format": " ─────────────────────────── "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "kernel",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "yellow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "wm",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "blue"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "yellow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "terminal",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "blue"
|
||||||
|
},
|
||||||
|
/*
|
||||||
|
{
|
||||||
|
"type": "packages",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "yellow"
|
||||||
|
},
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
"type": "memory",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "magenta",
|
||||||
|
// format: used / total
|
||||||
|
"format": "{1} / {2}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "uptime",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom",
|
||||||
|
"format": " ─────────────────────────── "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom",
|
||||||
|
"format": " \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m \u001b[90m "
|
||||||
|
},
|
||||||
|
"break",
|
||||||
|
]
|
||||||
|
}
|
||||||
73
assets/fastfetch/config-pokemon.jsonc
Normal file
73
assets/fastfetch/config-pokemon.jsonc
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
|
||||||
|
"logo": {
|
||||||
|
"height": 5,
|
||||||
|
"width": 10,
|
||||||
|
"padding": {
|
||||||
|
"top": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"separator": " -> "
|
||||||
|
},
|
||||||
|
"modules": [
|
||||||
|
"break",
|
||||||
|
{
|
||||||
|
"type": "title",
|
||||||
|
"keyWidth": 10,
|
||||||
|
"format": " {6}{7}{8}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom",
|
||||||
|
"format": " ─────────────────────────── "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "kernel",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "yellow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "wm",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "blue"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "yellow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "terminal",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "blue"
|
||||||
|
},
|
||||||
|
/*
|
||||||
|
{
|
||||||
|
"type": "packages",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "yellow"
|
||||||
|
},
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
"type": "memory",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "magenta",
|
||||||
|
// format: used / total
|
||||||
|
"format": "{1} / {2}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "uptime",
|
||||||
|
"key": " ",
|
||||||
|
"keyColor": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom",
|
||||||
|
"format": " ─────────────────────────── "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom",
|
||||||
|
"format": " \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m \u001b[90m "
|
||||||
|
},
|
||||||
|
"break",
|
||||||
|
]
|
||||||
|
}
|
||||||
112
assets/fastfetch/config-v2.jsonc
Normal file
112
assets/fastfetch/config-v2.jsonc
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
|
||||||
|
"logo": {
|
||||||
|
//"source": "~/.config/fastfetch/nixos.png",
|
||||||
|
//"type": "kitty-direct",
|
||||||
|
"height": 15,
|
||||||
|
"width": 30,
|
||||||
|
"padding": {
|
||||||
|
"top": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"separator": " ➜ "
|
||||||
|
},
|
||||||
|
|
||||||
|
"modules": [
|
||||||
|
"break",
|
||||||
|
{
|
||||||
|
"type": "os",
|
||||||
|
"key": " DISTRO",
|
||||||
|
"keyColor": "31",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "kernel",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "31",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "packages",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "31",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"key": " └ ",
|
||||||
|
"keyColor": "31",
|
||||||
|
},
|
||||||
|
"break",
|
||||||
|
{
|
||||||
|
"type": "wm",
|
||||||
|
"key": " DE/WM",
|
||||||
|
"keyColor": "32",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "wmtheme",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "32",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "icons",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "32",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "cursor",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "32",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "terminal",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "32",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "terminalfont",
|
||||||
|
"key": " └ ",
|
||||||
|
"keyColor": "32",
|
||||||
|
},
|
||||||
|
"break",
|
||||||
|
{
|
||||||
|
"type": "host",
|
||||||
|
"format": "{2}",
|
||||||
|
"key": " SYSTEM",
|
||||||
|
"keyColor": "33",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "cpu",
|
||||||
|
"format": "{1} ({3}) @ {7} GHz",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "33",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "gpu",
|
||||||
|
"format": "{2}",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "33",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "memory",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "33",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "swap",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "33",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "disk",
|
||||||
|
"key": " ├ ",
|
||||||
|
"keyColor": "33",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "display",
|
||||||
|
"key": " └ ",
|
||||||
|
"compactType": "original-with-refresh-rate",
|
||||||
|
"keyColor": "33",
|
||||||
|
},
|
||||||
|
"break",
|
||||||
|
"break",
|
||||||
|
]
|
||||||
|
}
|
||||||
128
assets/fastfetch/config.jsonc
Normal file
128
assets/fastfetch/config.jsonc
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
|
||||||
|
{
|
||||||
|
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
|
||||||
|
"logo": {
|
||||||
|
"padding": {
|
||||||
|
"top": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"separator": " "
|
||||||
|
},
|
||||||
|
"modules": [
|
||||||
|
"break",
|
||||||
|
{
|
||||||
|
"type": "os",
|
||||||
|
"key": " DISTRO",
|
||||||
|
"keyColor": "yellow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "kernel",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "yellow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "packages",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "yellow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"key": "│ └",
|
||||||
|
"keyColor": "yellow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "wm",
|
||||||
|
"key": " DE/WM",
|
||||||
|
"keyColor": "blue"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "wmtheme",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "blue"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "icons",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "blue"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "cursor",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "blue",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "terminalfont",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "blue",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "terminal",
|
||||||
|
"key": "│ └",
|
||||||
|
"keyColor": "blue"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "host",
|
||||||
|
"key": " SYSTEM",
|
||||||
|
"keyColor": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "cpu",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "gpu",
|
||||||
|
"key": "│ ├",
|
||||||
|
"format": "{2}",
|
||||||
|
"keyColor": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "display",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "green",
|
||||||
|
"compactType": "original-with-refresh-rate"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "memory",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "swap",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "uptime",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "display",
|
||||||
|
"key": "│ └",
|
||||||
|
"keyColor": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "sound",
|
||||||
|
"key": " AUDIO",
|
||||||
|
"format": "{2}",
|
||||||
|
"keyColor": "magenta"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "player",
|
||||||
|
"key": "│ ├",
|
||||||
|
"keyColor": "magenta"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "media",
|
||||||
|
"key": "│ └",
|
||||||
|
"keyColor": "magenta"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom",
|
||||||
|
"format": "\u001b[90m \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m \u001b[38m \u001b[39m \u001b[39m \u001b[38m \u001b[37m \u001b[36m \u001b[35m \u001b[34m \u001b[33m \u001b[32m \u001b[31m \u001b[90m "
|
||||||
|
},
|
||||||
|
"break",
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
assets/fastfetch/debian.png
Normal file
BIN
assets/fastfetch/debian.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 107 KiB |
17
assets/gtk-3.0/settings.ini
Normal file
17
assets/gtk-3.0/settings.ini
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
[Settings]
|
||||||
|
gtk-theme-name=Andromeda-dark
|
||||||
|
gtk-icon-theme-name=Flat-Remix-Blue-Dark
|
||||||
|
gtk-font-name=Fira Code Semi-Bold 14
|
||||||
|
gtk-cursor-theme-name=Bibata-Modern-Ice
|
||||||
|
gtk-cursor-theme-size=24
|
||||||
|
gtk-toolbar-style=GTK_TOOLBAR_ICONS
|
||||||
|
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
||||||
|
gtk-button-images=1
|
||||||
|
gtk-menu-images=1
|
||||||
|
gtk-enable-event-sounds=1
|
||||||
|
gtk-enable-input-feedback-sounds=0
|
||||||
|
gtk-xft-antialias=1
|
||||||
|
gtk-xft-hinting=1
|
||||||
|
gtk-xft-hintstyle=hintslight
|
||||||
|
gtk-xft-rgba=rgb
|
||||||
|
gtk-application-prefer-dark-theme=1
|
||||||
@ -1,5 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Name=Hyprland
|
|
||||||
Comment=An intelligent dynamic tiling Wayland compositor
|
|
||||||
Exec=Hyprland
|
|
||||||
Type=Application
|
|
||||||
BIN
assets/libglaze-dev_4.4.3-1_all.deb
Normal file
BIN
assets/libglaze-dev_4.4.3-1_all.deb
Normal file
Binary file not shown.
BIN
assets/sddm.png
Normal file
BIN
assets/sddm.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 MiB |
Binary file not shown.
Binary file not shown.
@ -1,4 +1,4 @@
|
|||||||
FileManager=Thunar
|
FileManager=Thunar
|
||||||
TerminalEmulator=kitty
|
TerminalEmulator=kitty
|
||||||
WebBrowser=firefox
|
#WebBrowser=firefox
|
||||||
#MailReader=evolution
|
#MailReader=evolution
|
||||||
|
|||||||
@ -1,83 +0,0 @@
|
|||||||
favorites=arcolinux-welcome-app.desktop,archlinux-tweak-tool.desktop,firefox.desktop,thunar.desktop,xfce4-terminal.desktop,conkyzen.desktop
|
|
||||||
recent=
|
|
||||||
button-title=ArcoLinux\ \
|
|
||||||
button-icon=start-here-arcolinux
|
|
||||||
button-single-row=false
|
|
||||||
show-button-title=true
|
|
||||||
show-button-icon=true
|
|
||||||
launcher-show-name=true
|
|
||||||
launcher-show-description=true
|
|
||||||
launcher-show-tooltip=true
|
|
||||||
launcher-icon-size=2
|
|
||||||
hover-switch-category=true
|
|
||||||
category-show-name=true
|
|
||||||
category-icon-size=2
|
|
||||||
sort-categories=true
|
|
||||||
view-mode=1
|
|
||||||
default-category=0
|
|
||||||
recent-items-max=10
|
|
||||||
favorites-in-recent=true
|
|
||||||
position-search-alternate=true
|
|
||||||
position-commands-alternate=true
|
|
||||||
position-categories-alternate=true
|
|
||||||
position-categories-horizontal=false
|
|
||||||
stay-on-focus-out=false
|
|
||||||
profile-shape=0
|
|
||||||
confirm-session-command=true
|
|
||||||
menu-width=410
|
|
||||||
menu-height=583
|
|
||||||
menu-opacity=80
|
|
||||||
command-settings=xfce4-settings-manager
|
|
||||||
show-command-settings=true
|
|
||||||
command-lockscreen=archlinux-logout
|
|
||||||
show-command-lockscreen=true
|
|
||||||
command-switchuser=xfce4-session-logout -u
|
|
||||||
show-command-switchuser=true
|
|
||||||
command-logoutuser=xfce4-session-logout --logout --fast
|
|
||||||
show-command-logoutuser=false
|
|
||||||
command-restart=xfce4-session-logout --reboot --fast
|
|
||||||
show-command-restart=false
|
|
||||||
command-shutdown=xfce4-session-logout --halt --fast
|
|
||||||
show-command-shutdown=false
|
|
||||||
command-suspend=xfce4-session-logout --suspend
|
|
||||||
show-command-suspend=false
|
|
||||||
command-hibernate=xfce4-session-logout --hibernate
|
|
||||||
show-command-hibernate=false
|
|
||||||
command-logout=xfce4-session-logout
|
|
||||||
show-command-logout=true
|
|
||||||
command-menueditor=menulibre
|
|
||||||
show-command-menueditor=true
|
|
||||||
command-profile=mugshot
|
|
||||||
show-command-profile=true
|
|
||||||
search-actions=5
|
|
||||||
|
|
||||||
[action0]
|
|
||||||
name=Man Pages
|
|
||||||
pattern=#
|
|
||||||
command=exo-open --launch TerminalEmulator man %s
|
|
||||||
regex=false
|
|
||||||
|
|
||||||
[action1]
|
|
||||||
name=Web Search
|
|
||||||
pattern=?
|
|
||||||
command=exo-open --launch WebBrowser https://google.com/?q=%u
|
|
||||||
regex=false
|
|
||||||
|
|
||||||
[action2]
|
|
||||||
name=Wikipedia
|
|
||||||
pattern=!w
|
|
||||||
command=exo-open --launch WebBrowser https://en.wikipedia.org/wiki/%u
|
|
||||||
regex=false
|
|
||||||
|
|
||||||
[action3]
|
|
||||||
name=Run in Terminal
|
|
||||||
pattern=!
|
|
||||||
command=exo-open --launch TerminalEmulator %s
|
|
||||||
regex=false
|
|
||||||
|
|
||||||
[action4]
|
|
||||||
name=Open URI
|
|
||||||
pattern=^(file|http|https):\\/\\/(.*)$
|
|
||||||
command=exo-open \\0
|
|
||||||
regex=true
|
|
||||||
|
|
||||||
@ -1,42 +0,0 @@
|
|||||||
[Configuration]
|
|
||||||
MiscAlwaysShowTabs=FALSE
|
|
||||||
MiscBell=FALSE
|
|
||||||
MiscBellUrgent=FALSE
|
|
||||||
MiscBordersDefault=TRUE
|
|
||||||
MiscCursorBlinks=FALSE
|
|
||||||
MiscCursorShape=TERMINAL_CURSOR_SHAPE_BLOCK
|
|
||||||
MiscDefaultGeometry=100x30
|
|
||||||
MiscInheritGeometry=FALSE
|
|
||||||
MiscMenubarDefault=FALSE
|
|
||||||
MiscMouseAutohide=FALSE
|
|
||||||
MiscMouseWheelZoom=TRUE
|
|
||||||
MiscToolbarDefault=FALSE
|
|
||||||
MiscConfirmClose=TRUE
|
|
||||||
MiscCycleTabs=TRUE
|
|
||||||
MiscTabCloseButtons=TRUE
|
|
||||||
MiscTabCloseMiddleClick=TRUE
|
|
||||||
MiscTabPosition=GTK_POS_TOP
|
|
||||||
MiscHighlightUrls=TRUE
|
|
||||||
MiscMiddleClickOpensUri=FALSE
|
|
||||||
MiscCopyOnSelect=FALSE
|
|
||||||
MiscDefaultWorkingDir=
|
|
||||||
MiscRewrapOnResize=TRUE
|
|
||||||
MiscUseShiftArrowsToScroll=FALSE
|
|
||||||
MiscSlimTabs=FALSE
|
|
||||||
ScrollingBar=TERMINAL_SCROLLBAR_NONE
|
|
||||||
ScrollingLines=10000
|
|
||||||
ScrollingUnlimited=TRUE
|
|
||||||
FontName=Monospace 10
|
|
||||||
BackgroundMode=TERMINAL_BACKGROUND_TRANSPARENT
|
|
||||||
BackgroundDarkness=0.600000
|
|
||||||
DropdownStatusIcon=FALSE
|
|
||||||
MiscShowRelaunchDialog=TRUE
|
|
||||||
MiscNewTabAdjacent=FALSE
|
|
||||||
MiscSearchDialogOpacity=100
|
|
||||||
MiscShowUnsafePasteDialog=TRUE
|
|
||||||
DropdownWidth=60
|
|
||||||
DropdownHeight=60
|
|
||||||
FontUseSystem=TRUE
|
|
||||||
ColorPalette=#3f3f3f;#cc0000;#4e9a06;#c4a000;#3465a4;#75507b;#06989a;#d3d7cf;#555753;#ef2929;#8ae234;#fce94f;#739fcf;#ad7fa8;#34e2e2;#eeeeec
|
|
||||||
DropdownAlwaysShowTabs=FALSE
|
|
||||||
ScrollingOnOutput=FALSE
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
delay=1
|
|
||||||
region=1
|
|
||||||
action=1
|
|
||||||
show_mouse=0
|
|
||||||
title=ArcoLinux
|
|
||||||
timestamp=TRUE
|
|
||||||
app=nomacs
|
|
||||||
@ -1,27 +0,0 @@
|
|||||||
[Settings]
|
|
||||||
ShowAllProcesses=TRUE
|
|
||||||
ShowLegend=TRUE
|
|
||||||
MorePrecision=FALSE
|
|
||||||
FullCommandLine=FALSE
|
|
||||||
ShowStatusIcon=FALSE
|
|
||||||
ShowMemoryInXBytes=FALSE
|
|
||||||
MonitorPaintBox=TRUE
|
|
||||||
ShowApplicationIcons=TRUE
|
|
||||||
ToolbarStyle=DEFAULT
|
|
||||||
PromptTerminateTask=TRUE
|
|
||||||
RefreshRate=750
|
|
||||||
ColumnsPositions=0;1;3;4;5;6;7;2;8;
|
|
||||||
ColumnUID=TRUE
|
|
||||||
ColumnPID=TRUE
|
|
||||||
ColumnPPID=FALSE
|
|
||||||
ColumnState=FALSE
|
|
||||||
ColumnVSZ=FALSE
|
|
||||||
ColumnRSS=TRUE
|
|
||||||
ColumnCPU=TRUE
|
|
||||||
ColumnPriority=FALSE
|
|
||||||
SortColumn=0
|
|
||||||
SortType=0
|
|
||||||
WindowWidth=644
|
|
||||||
WindowHeight=665
|
|
||||||
HandlePosition=164
|
|
||||||
ProcessTreeView=FALSE
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<channel name="keyboards" version="1.0">
|
|
||||||
<property name="Default" type="empty">
|
|
||||||
<property name="Numlock" type="bool" value="true"/>
|
|
||||||
<property name="RestoreNumlock" type="bool" value="true"/>
|
|
||||||
</property>
|
|
||||||
</channel>
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<channel name="pointers" version="1.0">
|
|
||||||
<property name="SynPS2_Synaptics_TouchPad" type="empty">
|
|
||||||
<property name="RightHanded" type="bool" value="true"/>
|
|
||||||
<property name="ReverseScrolling" type="bool" value="true"/>
|
|
||||||
<property name="Threshold" type="int" value="1"/>
|
|
||||||
<property name="Acceleration" type="double" value="5.000000"/>
|
|
||||||
<property name="Properties" type="empty">
|
|
||||||
<property name="libinput_Tapping_Enabled" type="int" value="1"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
</channel>
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<channel name="thunar-volman" version="1.0">
|
|
||||||
<property name="automount-drives" type="empty">
|
|
||||||
<property name="enabled" type="bool" value="false"/>
|
|
||||||
</property>
|
|
||||||
<property name="automount-media" type="empty">
|
|
||||||
<property name="enabled" type="bool" value="false"/>
|
|
||||||
</property>
|
|
||||||
<property name="autobrowse" type="empty">
|
|
||||||
<property name="enabled" type="bool" value="false"/>
|
|
||||||
</property>
|
|
||||||
<property name="autorun" type="empty">
|
|
||||||
<property name="enabled" type="bool" value="false"/>
|
|
||||||
</property>
|
|
||||||
<property name="autoopen" type="empty">
|
|
||||||
<property name="enabled" type="bool" value="false"/>
|
|
||||||
</property>
|
|
||||||
</channel>
|
|
||||||
@ -1,31 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<channel name="thunar" version="1.0">
|
|
||||||
<property name="last-view" type="string" value="ThunarIconView"/>
|
|
||||||
<property name="last-icon-view-zoom-level" type="string" value="THUNAR_ZOOM_LEVEL_100_PERCENT"/>
|
|
||||||
<property name="last-separator-position" type="int" value="296"/>
|
|
||||||
<property name="last-show-hidden" type="bool" value="true"/>
|
|
||||||
<property name="last-window-width" type="int" value="1111"/>
|
|
||||||
<property name="last-window-height" type="int" value="731"/>
|
|
||||||
<property name="last-window-maximized" type="bool" value="true"/>
|
|
||||||
<property name="last-details-view-zoom-level" type="string" value="THUNAR_ZOOM_LEVEL_38_PERCENT"/>
|
|
||||||
<property name="last-details-view-column-widths" type="string" value="50,124,189,50,695,1469,50,57,574,50,50,96,50,201"/>
|
|
||||||
<property name="misc-date-style" type="string" value="THUNAR_DATE_STYLE_ISO"/>
|
|
||||||
<property name="misc-single-click" type="bool" value="false"/>
|
|
||||||
<property name="misc-show-delete-action" type="bool" value="true"/>
|
|
||||||
<property name="misc-full-path-in-title" type="bool" value="true"/>
|
|
||||||
<property name="hidden-devices" type="array">
|
|
||||||
<value type="string" value="545d2f11-976c-4609-9377-36fc1d6208ab"/>
|
|
||||||
<value type="string" value="708c7c78-d39e-4e6e-b4a8-7ca3c051f59a"/>
|
|
||||||
<value type="string" value="24555645-eb69-4407-8111-3c7da3ae0253"/>
|
|
||||||
<value type="string" value="4dff6098-fe07-4d0f-953a-ab5438d15ac6"/>
|
|
||||||
<value type="string" value="510ab284-fa5a-4208-8e1b-42fcd768be40"/>
|
|
||||||
<value type="string" value="6fbf4688-143b-492d-a9a4-509c210e4abe"/>
|
|
||||||
<value type="string" value="0be19c88-28b5-4da4-acab-81d9d1c3575b"/>
|
|
||||||
<value type="string" value="38fe6924-231e-4c7e-b904-8e08d4891cf4"/>
|
|
||||||
<value type="string" value="aaeff56c-7363-477a-b5db-33766d06f9dc"/>
|
|
||||||
<value type="string" value="9cdb2a6b-f325-4b36-995c-ff89006a225b"/>
|
|
||||||
<value type="string" value="ace9b1f1-cdaf-4120-a020-5bc14cdb8cbd"/>
|
|
||||||
</property>
|
|
||||||
<property name="last-details-view-visible-columns" type="string" value="THUNAR_COLUMN_DATE_MODIFIED,THUNAR_COLUMN_NAME,THUNAR_COLUMN_SIZE,THUNAR_COLUMN_TYPE"/>
|
|
||||||
</channel>
|
|
||||||
@ -1,48 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<channel name="xfce4-appfinder" version="1.0">
|
|
||||||
<property name="last" type="empty">
|
|
||||||
<property name="window-height" type="int" value="600"/>
|
|
||||||
<property name="window-width" type="int" value="580"/>
|
|
||||||
<property name="pane-position" type="int" value="180"/>
|
|
||||||
</property>
|
|
||||||
<property name="actions" type="array">
|
|
||||||
<value type="int" value="5"/>
|
|
||||||
<value type="int" value="4"/>
|
|
||||||
<value type="int" value="3"/>
|
|
||||||
<value type="int" value="2"/>
|
|
||||||
<value type="int" value="1"/>
|
|
||||||
<property name="action-5" type="empty">
|
|
||||||
<property name="type" type="int" value="0"/>
|
|
||||||
<property name="pattern" type="string" value="/"/>
|
|
||||||
<property name="command" type="string" value="exo-open --launch FileManager %S"/>
|
|
||||||
<property name="save" type="bool" value="false"/>
|
|
||||||
</property>
|
|
||||||
<property name="action-4" type="empty">
|
|
||||||
<property name="type" type="int" value="0"/>
|
|
||||||
<property name="pattern" type="string" value="#"/>
|
|
||||||
<property name="command" type="string" value="exo-open --launch TerminalEmulator man %s"/>
|
|
||||||
<property name="save" type="bool" value="false"/>
|
|
||||||
</property>
|
|
||||||
<property name="action-3" type="empty">
|
|
||||||
<property name="type" type="int" value="0"/>
|
|
||||||
<property name="pattern" type="string" value="!w"/>
|
|
||||||
<property name="command" type="string" value="exo-open --launch WebBrowser http://en.wikipedia.org/wiki/%s"/>
|
|
||||||
<property name="save" type="bool" value="false"/>
|
|
||||||
</property>
|
|
||||||
<property name="action-2" type="empty">
|
|
||||||
<property name="type" type="int" value="0"/>
|
|
||||||
<property name="pattern" type="string" value="$"/>
|
|
||||||
<property name="command" type="string" value="exo-open --launch TerminalEmulator %s"/>
|
|
||||||
<property name="save" type="bool" value="true"/>
|
|
||||||
</property>
|
|
||||||
<property name="action-1" type="empty">
|
|
||||||
<property name="type" type="int" value="1"/>
|
|
||||||
<property name="pattern" type="string" value="^(file|http|https):\/\/(.*)$"/>
|
|
||||||
<property name="command" type="string" value="exo-open \0"/>
|
|
||||||
<property name="save" type="bool" value="false"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="always-center" type="bool" value="true"/>
|
|
||||||
<property name="sort-by-frecency" type="bool" value="true"/>
|
|
||||||
</channel>
|
|
||||||
@ -1,685 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<channel name="xfce4-desktop" version="1.0">
|
|
||||||
<property name="backdrop" type="empty">
|
|
||||||
<property name="screen0" type="empty">
|
|
||||||
<property name="monitor0" type="empty">
|
|
||||||
<property name="workspace0" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace1" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace2" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace3" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace4" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace5" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace6" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="monitor1" type="empty">
|
|
||||||
<property name="workspace0" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace1" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace2" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace3" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace4" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace5" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace6" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="monitorVGA-1" type="empty">
|
|
||||||
<property name="workspace0" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace1" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace2" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace3" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace4" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace5" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace6" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="monitorHDMI1" type="empty">
|
|
||||||
<property name="workspace0" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace1" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace2" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace3" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace4" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace5" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace6" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="monitorHDMI2" type="empty">
|
|
||||||
<property name="workspace0" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace1" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace2" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace3" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace4" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace5" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace6" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="monitorLVDS1" type="empty">
|
|
||||||
<property name="workspace0" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace1" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace2" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace3" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace4" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace5" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace6" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="monitorDVI-I-1" type="empty">
|
|
||||||
<property name="workspace0" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace1" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace2" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace3" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace4" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace5" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace6" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="monitorDVI-D-1" type="empty">
|
|
||||||
<property name="workspace0" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace1" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace2" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace3" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace4" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace5" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace6" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="monitorDVI-D-0" type="empty">
|
|
||||||
<property name="workspace0" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace1" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace2" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace3" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace4" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace5" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace6" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="monitorHDMI-0" type="empty">
|
|
||||||
<property name="workspace0" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace1" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace2" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace3" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace4" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace5" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace6" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="monitorHDMI-1" type="empty">
|
|
||||||
<property name="workspace0" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace1" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace2" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace3" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace4" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace5" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace6" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="monitorHDMI-2" type="empty">
|
|
||||||
<property name="workspace0" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace1" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace2" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace3" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace4" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace5" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace6" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="monitorVirtual1" type="empty">
|
|
||||||
<property name="workspace0" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace1" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace2" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace3" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace4" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace5" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace6" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="monitorVirtual2" type="empty">
|
|
||||||
<property name="workspace0" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace1" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace2" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace3" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace4" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace5" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace6" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="monitorVirtual-1" type="empty">
|
|
||||||
<property name="workspace0" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace1" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace2" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace3" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace4" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace5" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace6" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="monitorVirtual-2" type="empty">
|
|
||||||
<property name="workspace0" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace1" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace2" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace3" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace4" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace5" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace6" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="monitorDP-1" type="empty">
|
|
||||||
<property name="workspace0" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace1" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace2" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace3" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace4" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace5" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="monitorLVDS-1" type="empty">
|
|
||||||
<property name="workspace0" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace1" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace2" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace3" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace4" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace5" type="empty">
|
|
||||||
<property name="color-style" type="int" value="0"/>
|
|
||||||
<property name="image-style" type="int" value="5"/>
|
|
||||||
<property name="last-image" type="string" value="/usr/share/backgrounds/arcolinux/arco-wallpaper.jpg"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="last" type="empty">
|
|
||||||
<property name="window-width" type="int" value="709"/>
|
|
||||||
<property name="window-height" type="int" value="601"/>
|
|
||||||
</property>
|
|
||||||
<property name="desktop-icons" type="empty">
|
|
||||||
<property name="file-icons" type="empty">
|
|
||||||
<property name="show-home" type="bool" value="false"/>
|
|
||||||
<property name="show-filesystem" type="bool" value="false"/>
|
|
||||||
<property name="show-trash" type="bool" value="false"/>
|
|
||||||
<property name="show-removable" type="bool" value="false"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="desktop-menu" type="empty">
|
|
||||||
<property name="show" type="bool" value="true"/>
|
|
||||||
<property name="show-icons" type="bool" value="true"/>
|
|
||||||
</property>
|
|
||||||
<property name="windowlist-menu" type="empty">
|
|
||||||
<property name="show-icons" type="bool" value="true"/>
|
|
||||||
<property name="show-workspace-names" type="bool" value="true"/>
|
|
||||||
<property name="show-submenus" type="bool" value="false"/>
|
|
||||||
</property>
|
|
||||||
</channel>
|
|
||||||
@ -1,245 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<channel name="xfce4-keyboard-shortcuts" version="1.0">
|
|
||||||
<property name="commands" type="empty">
|
|
||||||
<property name="default" type="empty">
|
|
||||||
<property name="<Alt>F1" type="empty"/>
|
|
||||||
<property name="<Alt>F2" type="empty">
|
|
||||||
<property name="startup-notify" type="empty"/>
|
|
||||||
</property>
|
|
||||||
<property name="<Alt>F3" type="empty">
|
|
||||||
<property name="startup-notify" type="empty"/>
|
|
||||||
</property>
|
|
||||||
<property name="<Primary><Alt>Delete" type="empty"/>
|
|
||||||
<property name="<Primary><Alt>l" type="empty"/>
|
|
||||||
<property name="<Primary><Alt>t" type="empty"/>
|
|
||||||
<property name="XF86Display" type="empty"/>
|
|
||||||
<property name="<Super>p" type="empty"/>
|
|
||||||
<property name="<Primary>Escape" type="empty"/>
|
|
||||||
<property name="XF86WWW" type="empty"/>
|
|
||||||
<property name="HomePage" type="empty"/>
|
|
||||||
<property name="XF86Mail" type="empty"/>
|
|
||||||
<property name="Print" type="empty"/>
|
|
||||||
<property name="<Alt>Print" type="empty"/>
|
|
||||||
<property name="<Shift>Print" type="empty"/>
|
|
||||||
<property name="<Super>e" type="empty"/>
|
|
||||||
<property name="<Primary><Alt>f" type="empty"/>
|
|
||||||
<property name="<Primary><Alt>Escape" type="empty"/>
|
|
||||||
<property name="<Primary><Shift>Escape" type="empty"/>
|
|
||||||
<property name="<Super>r" type="empty">
|
|
||||||
<property name="startup-notify" type="empty"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="custom" type="empty">
|
|
||||||
<property name="<Alt>F2" type="string" value="xfce4-appfinder --collapsed">
|
|
||||||
<property name="startup-notify" type="bool" value="true"/>
|
|
||||||
</property>
|
|
||||||
<property name="<Super>r" type="string" value="rofi-theme-selector">
|
|
||||||
<property name="startup-notify" type="bool" value="true"/>
|
|
||||||
</property>
|
|
||||||
<property name="<Alt>F3" type="string" value="xfce4-appfinder">
|
|
||||||
<property name="startup-notify" type="bool" value="true"/>
|
|
||||||
</property>
|
|
||||||
<property name="XF86WWW" type="string" value="exo-open --launch WebBrowser"/>
|
|
||||||
<property name="<Super>w" type="string" value="exo-open --launch WebBrowser"/>
|
|
||||||
<property name="XF86Mail" type="string" value="exo-open --launch MailReader"/>
|
|
||||||
<property name="HomePage" type="string" value="exo-open --launch WebBrowser"/>
|
|
||||||
<property name="<Super>f" type="string" value="exo-open --launch FileManager"/>
|
|
||||||
<property name="<Primary>Escape" type="string" value="xfdesktop --menu"/>
|
|
||||||
<property name="<Primary><Alt>Delete" type="string" value="xfce4-session-logout"/>
|
|
||||||
<property name="<Primary><Alt>f" type="string" value="firefox"/>
|
|
||||||
<property name="<Primary><Alt>l" type="string" value="archlinux-logout"/>
|
|
||||||
<property name="<Alt>F1" type="string" value="xfce4-popup-whiskermenu"/>
|
|
||||||
<property name="<Super>p" type="string" value="xfce4-display-settings --minimal"/>
|
|
||||||
<property name="<Primary><Shift>Escape" type="string" value="xfce4-taskmanager"/>
|
|
||||||
<property name="<Primary><Alt>Escape" type="string" value="xkill"/>
|
|
||||||
<property name="XF86Display" type="string" value="xfce4-display-settings --minimal"/>
|
|
||||||
<property name="override" type="bool" value="true"/>
|
|
||||||
<property name="<Primary><Alt>w" type="string" value="arcolinux-welcome-app"/>
|
|
||||||
<property name="<Primary><Alt>m" type="string" value="xfce4-settings-manager"/>
|
|
||||||
<property name="<Primary><Shift>Print" type="string" value="xfce4-screenshooter -r"/>
|
|
||||||
<property name="Print" type="string" value="xfce4-screenshooter -f"/>
|
|
||||||
<property name="<Primary>Print" type="string" value="xfce4-screenshooter"/>
|
|
||||||
<property name="<Shift><Super>d" type="string" value="dmenu_run -i -nb '#191919' -nf '#fea63c' -sb '#fea63c' -sf '#191919' -fn 'NotoMonoRegular:bold:pixelsize=14'"/>
|
|
||||||
<property name="<Super>t" type="string" value="urxvt"/>
|
|
||||||
<property name="<Super>m" type="string" value="pragha"/>
|
|
||||||
<property name="<Super>h" type="string" value="urxvt -T 'htop task manager' -e htop"/>
|
|
||||||
<property name="<Super>v" type="string" value="pavucontrol"/>
|
|
||||||
<property name="<Primary><Alt>u" type="string" value="pavucontrol"/>
|
|
||||||
<property name="<Super>Escape" type="string" value="xkill"/>
|
|
||||||
<property name="<Super>Return" type="string" value="alacritty"/>
|
|
||||||
<property name="<Shift><Super>Return" type="string" value="thunar"/>
|
|
||||||
<property name="<Super>F1" type="string" value="exo-open --launch webbrowser"/>
|
|
||||||
<property name="<Super>F2" type="string" value="atom"/>
|
|
||||||
<property name="<Super>F3" type="string" value="inkscape"/>
|
|
||||||
<property name="<Super>F4" type="string" value="gimp"/>
|
|
||||||
<property name="<Super>F5" type="string" value="meld"/>
|
|
||||||
<property name="<Super>F6" type="string" value="vlc"/>
|
|
||||||
<property name="<Super>F7" type="string" value="virtualbox"/>
|
|
||||||
<property name="<Super>F8" type="string" value="thunar"/>
|
|
||||||
<property name="<Super>F9" type="string" value="evolution"/>
|
|
||||||
<property name="<Super>F10" type="string" value="spotify"/>
|
|
||||||
<property name="<Primary><Alt>a" type="string" value="xfce4-appfinder"/>
|
|
||||||
<property name="<Primary><Alt>v" type="string" value="vivaldi-stable"/>
|
|
||||||
<property name="<Primary><Alt>b" type="string" value="thunar"/>
|
|
||||||
<property name="<Primary><Alt>s" type="string" value="spotify"/>
|
|
||||||
<property name="<Primary><Alt>c" type="string" value="catfish"/>
|
|
||||||
<property name="<Primary><Alt>g" type="string" value="chromium"/>
|
|
||||||
<property name="<Super>x" type="string" value="archlinux-logout"/>
|
|
||||||
<property name="XF86AudioPlay" type="string" value="playerctl play-pause"/>
|
|
||||||
<property name="XF86AudioStop" type="string" value="playerctl pause"/>
|
|
||||||
<property name="XF86AudioPrev" type="string" value="playerctl previous"/>
|
|
||||||
<property name="XF86AudioNext" type="string" value="playerctl next"/>
|
|
||||||
<property name="<Primary><Alt>Return" type="string" value="alacritty"/>
|
|
||||||
<property name="<Primary><Alt>r" type="string" value="rofi-theme-selector"/>
|
|
||||||
<property name="<Primary><Alt>p" type="string" value="pamac-manager"/>
|
|
||||||
<property name="<Super>c" type="string" value="conky-toggle"/>
|
|
||||||
<property name="<Primary><Alt>Page_Up" type="string" value="conky-rotate -n"/>
|
|
||||||
<property name="<Primary><Alt>Page_Down" type="string" value="conky-rotate -p"/>
|
|
||||||
<property name="F12" type="string" value="xfce4-terminal --drop-down"/>
|
|
||||||
<property name="<Primary><Alt>k" type="string" value="archlinux-logout"/>
|
|
||||||
<property name="<Primary><Alt>e" type="string" value="archlinux-tweak-tool"/>
|
|
||||||
<property name="<Primary><Alt>n" type="string" value="xfce4-settings-manager"/>
|
|
||||||
<property name="<Primary><Alt>comma" type="string" value="xfce4-settings-manager"/>
|
|
||||||
<property name="<Primary><Alt>z" type="string" value="arcolinux-welcome-app"/>
|
|
||||||
<property name="<Primary><Alt>KP_Enter" type="string" value="alacritty"/>
|
|
||||||
<property name="<Alt>n" type="string" value="variety -n"/>
|
|
||||||
<property name="<Alt>p" type="string" value="variety -p"/>
|
|
||||||
<property name="<Alt>t" type="string" value="variety -t"/>
|
|
||||||
<property name="<Alt>f" type="string" value="variety -f"/>
|
|
||||||
<property name="<Alt>Right" type="string" value="variety -n"/>
|
|
||||||
<property name="<Alt>Left" type="string" value="variety -p"/>
|
|
||||||
<property name="<Alt>Up" type="string" value="variety --toggle-pause"/>
|
|
||||||
<property name="<Alt>Down" type="string" value="variety --resume"/>
|
|
||||||
<property name="<Primary><Alt>t" type="string" value="alacritty"/>
|
|
||||||
<property name="<Super>space" type="string" value="dmenu_run -i -nb '#191919' -nf '#fea63c' -sb '#fea63c' -sf '#191919' -fn 'NotoMonoRegular:bold:pixelsize=14'"/>
|
|
||||||
<property name="<Super>F12" type="string" value="rofi -show drun"/>
|
|
||||||
<property name="<Super>F11" type="string" value="rofi -show drun -theme-str 'window {width: 100%;height: 100%;}'"/>
|
|
||||||
<property name="<Primary><Super>Print" type="string" value="flameshot gui"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="xfwm4" type="empty">
|
|
||||||
<property name="default" type="empty">
|
|
||||||
<property name="<Alt>Insert" type="empty"/>
|
|
||||||
<property name="Escape" type="empty"/>
|
|
||||||
<property name="Left" type="empty"/>
|
|
||||||
<property name="Right" type="empty"/>
|
|
||||||
<property name="Up" type="empty"/>
|
|
||||||
<property name="Down" type="empty"/>
|
|
||||||
<property name="<Alt>Tab" type="empty"/>
|
|
||||||
<property name="<Alt><Shift>Tab" type="empty"/>
|
|
||||||
<property name="<Alt>Delete" type="empty"/>
|
|
||||||
<property name="<Primary><Alt>Down" type="empty"/>
|
|
||||||
<property name="<Primary><Alt>Left" type="empty"/>
|
|
||||||
<property name="<Shift><Alt>Page_Down" type="empty"/>
|
|
||||||
<property name="<Alt>F4" type="empty"/>
|
|
||||||
<property name="<Alt>F6" type="empty"/>
|
|
||||||
<property name="<Alt>F7" type="empty"/>
|
|
||||||
<property name="<Alt>F8" type="empty"/>
|
|
||||||
<property name="<Alt>F9" type="empty"/>
|
|
||||||
<property name="<Alt>F10" type="empty"/>
|
|
||||||
<property name="<Alt>F11" type="empty"/>
|
|
||||||
<property name="<Alt>F12" type="empty"/>
|
|
||||||
<property name="<Primary><Shift><Alt>Left" type="empty"/>
|
|
||||||
<property name="<Primary><Alt>End" type="empty"/>
|
|
||||||
<property name="<Primary><Alt>Home" type="empty"/>
|
|
||||||
<property name="<Primary><Shift><Alt>Right" type="empty"/>
|
|
||||||
<property name="<Primary><Shift><Alt>Up" type="empty"/>
|
|
||||||
<property name="<Primary><Alt>KP_1" type="empty"/>
|
|
||||||
<property name="<Primary><Alt>KP_2" type="empty"/>
|
|
||||||
<property name="<Primary><Alt>KP_3" type="empty"/>
|
|
||||||
<property name="<Primary><Alt>KP_4" type="empty"/>
|
|
||||||
<property name="<Primary><Alt>KP_5" type="empty"/>
|
|
||||||
<property name="<Primary><Alt>KP_6" type="empty"/>
|
|
||||||
<property name="<Primary><Alt>KP_7" type="empty"/>
|
|
||||||
<property name="<Primary><Alt>KP_8" type="empty"/>
|
|
||||||
<property name="<Primary><Alt>KP_9" type="empty"/>
|
|
||||||
<property name="<Alt>space" type="empty"/>
|
|
||||||
<property name="<Shift><Alt>Page_Up" type="empty"/>
|
|
||||||
<property name="<Primary><Alt>Right" type="empty"/>
|
|
||||||
<property name="<Primary><Alt>d" type="empty"/>
|
|
||||||
<property name="<Primary><Alt>Up" type="empty"/>
|
|
||||||
<property name="<Super>Tab" type="empty"/>
|
|
||||||
<property name="<Primary>F1" type="empty"/>
|
|
||||||
<property name="<Primary>F2" type="empty"/>
|
|
||||||
<property name="<Primary>F3" type="empty"/>
|
|
||||||
<property name="<Primary>F4" type="empty"/>
|
|
||||||
<property name="<Primary>F5" type="empty"/>
|
|
||||||
<property name="<Primary>F6" type="empty"/>
|
|
||||||
<property name="<Primary>F7" type="empty"/>
|
|
||||||
<property name="<Primary>F8" type="empty"/>
|
|
||||||
<property name="<Primary>F9" type="empty"/>
|
|
||||||
<property name="<Primary>F10" type="empty"/>
|
|
||||||
<property name="<Primary>F11" type="empty"/>
|
|
||||||
<property name="<Primary>F12" type="empty"/>
|
|
||||||
<property name="<Super>KP_Left" type="empty"/>
|
|
||||||
<property name="<Super>KP_Right" type="empty"/>
|
|
||||||
<property name="<Super>KP_Up" type="empty"/>
|
|
||||||
<property name="<Super>KP_Down" type="empty"/>
|
|
||||||
<property name="<Super>KP_Page_Up" type="empty"/>
|
|
||||||
<property name="<Super>KP_Home" type="empty"/>
|
|
||||||
<property name="<Super>KP_End" type="empty"/>
|
|
||||||
<property name="<Super>KP_Next" type="empty"/>
|
|
||||||
</property>
|
|
||||||
<property name="custom" type="empty">
|
|
||||||
<property name="Up" type="string" value="up_key"/>
|
|
||||||
<property name="<Primary><Alt>KP_9" type="string" value="move_window_workspace_9_key"/>
|
|
||||||
<property name="<Primary><Alt>KP_8" type="string" value="move_window_workspace_8_key"/>
|
|
||||||
<property name="Left" type="string" value="left_key"/>
|
|
||||||
<property name="<Primary><Alt>KP_6" type="string" value="move_window_workspace_6_key"/>
|
|
||||||
<property name="<Alt>Insert" type="string" value="add_workspace_key"/>
|
|
||||||
<property name="<Alt>Tab" type="string" value="cycle_windows_key"/>
|
|
||||||
<property name="<Alt><Shift>Tab" type="string" value="cycle_reverse_windows_key"/>
|
|
||||||
<property name="<Primary><Alt>KP_7" type="string" value="move_window_workspace_7_key"/>
|
|
||||||
<property name="<Primary><Alt>Right" type="string" value="right_workspace_key"/>
|
|
||||||
<property name="<Primary><Shift><Alt>Right" type="string" value="move_window_right_key"/>
|
|
||||||
<property name="<Primary><Alt>d" type="string" value="show_desktop_key"/>
|
|
||||||
<property name="<Primary><Alt>Up" type="string" value="up_workspace_key"/>
|
|
||||||
<property name="<Primary>F7" type="string" value="workspace_7_key"/>
|
|
||||||
<property name="<Primary><Alt>Home" type="string" value="move_window_prev_workspace_key"/>
|
|
||||||
<property name="<Alt>F4" type="string" value="close_window_key"/>
|
|
||||||
<property name="<Super>q" type="string" value="close_window_key"/>
|
|
||||||
<property name="<Primary><Shift><Alt>Left" type="string" value="move_window_left_key"/>
|
|
||||||
<property name="<Alt>F6" type="string" value="stick_window_key"/>
|
|
||||||
<property name="<Alt>F10" type="string" value="maximize_window_key"/>
|
|
||||||
<property name="<Alt>F12" type="string" value="above_key"/>
|
|
||||||
<property name="<Alt>F9" type="string" value="hide_window_key"/>
|
|
||||||
<property name="<Primary><Alt>Down" type="string" value="down_workspace_key"/>
|
|
||||||
<property name="<Alt>F8" type="string" value="resize_window_key"/>
|
|
||||||
<property name="<Super>Tab" type="string" value="switch_window_key"/>
|
|
||||||
<property name="Escape" type="string" value="cancel_key"/>
|
|
||||||
<property name="<Primary><Alt>End" type="string" value="move_window_next_workspace_key"/>
|
|
||||||
<property name="<Primary>F10" type="string" value="workspace_10_key"/>
|
|
||||||
<property name="<Primary>F11" type="string" value="workspace_11_key"/>
|
|
||||||
<property name="<Alt>F11" type="string" value="fullscreen_key"/>
|
|
||||||
<property name="<Primary><Shift><Alt>Up" type="string" value="move_window_up_key"/>
|
|
||||||
<property name="Right" type="string" value="right_key"/>
|
|
||||||
<property name="Down" type="string" value="down_key"/>
|
|
||||||
<property name="<Alt>F7" type="string" value="move_window_key"/>
|
|
||||||
<property name="<Shift><Alt>Page_Down" type="string" value="lower_window_key"/>
|
|
||||||
<property name="<Primary>F12" type="string" value="workspace_12_key"/>
|
|
||||||
<property name="<Primary>F1" type="string" value="workspace_1_key"/>
|
|
||||||
<property name="<Primary><Alt>Left" type="string" value="left_workspace_key"/>
|
|
||||||
<property name="<Primary>F2" type="string" value="workspace_2_key"/>
|
|
||||||
<property name="<Primary>F4" type="string" value="workspace_4_key"/>
|
|
||||||
<property name="<Primary>F5" type="string" value="workspace_5_key"/>
|
|
||||||
<property name="<Primary>F6" type="string" value="workspace_6_key"/>
|
|
||||||
<property name="<Alt>space" type="string" value="popup_menu_key"/>
|
|
||||||
<property name="<Primary>F8" type="string" value="workspace_8_key"/>
|
|
||||||
<property name="<Primary>F9" type="string" value="workspace_9_key"/>
|
|
||||||
<property name="<Primary><Alt>KP_1" type="string" value="move_window_workspace_1_key"/>
|
|
||||||
<property name="<Alt>Delete" type="string" value="del_workspace_key"/>
|
|
||||||
<property name="<Shift><Alt>Page_Up" type="string" value="raise_window_key"/>
|
|
||||||
<property name="<Primary>F3" type="string" value="workspace_3_key"/>
|
|
||||||
<property name="<Primary><Alt>KP_2" type="string" value="move_window_workspace_2_key"/>
|
|
||||||
<property name="<Primary><Alt>KP_3" type="string" value="move_window_workspace_3_key"/>
|
|
||||||
<property name="<Primary><Alt>KP_4" type="string" value="move_window_workspace_4_key"/>
|
|
||||||
<property name="<Primary><Alt>KP_5" type="string" value="move_window_workspace_5_key"/>
|
|
||||||
<property name="override" type="bool" value="true"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="providers" type="array">
|
|
||||||
<value type="string" value="commands"/>
|
|
||||||
<value type="string" value="xfwm4"/>
|
|
||||||
</property>
|
|
||||||
</channel>
|
|
||||||
@ -1,54 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<channel name="xfce4-notifyd" version="1.0">
|
|
||||||
<property name="applications" type="empty">
|
|
||||||
<property name="known_applications" type="array">
|
|
||||||
<value type="string" value="ca.desrt.dconf-editor"/>
|
|
||||||
<value type="string" value="chromium"/>
|
|
||||||
<value type="string" value="com.uploadedlobster.peek"/>
|
|
||||||
<value type="string" value="discord"/>
|
|
||||||
<value type="string" value="Discord"/>
|
|
||||||
<value type="string" value="Discord Canary"/>
|
|
||||||
<value type="string" value="Dropbox"/>
|
|
||||||
<value type="string" value="Electron"/>
|
|
||||||
<value type="string" value="evolution"/>
|
|
||||||
<value type="string" value="FileZilla"/>
|
|
||||||
<value type="string" value="Firefox"/>
|
|
||||||
<value type="string" value="flameshot"/>
|
|
||||||
<value type="string" value="nm-applet"/>
|
|
||||||
<value type="string" value="Insync"/>
|
|
||||||
<value type="string" value="notify-send"/>
|
|
||||||
<value type="string" value="org.freedesktop.network-manager-applet"/>
|
|
||||||
<value type="string" value="org.gnome.Software"/>
|
|
||||||
<value type="string" value="org.manjaro.pamac.tray"/>
|
|
||||||
<value type="string" value="Package Manager"/>
|
|
||||||
<value type="string" value="pasystray"/>
|
|
||||||
<value type="string" value="pragha"/>
|
|
||||||
<value type="string" value="Spotify"/>
|
|
||||||
<value type="string" value="System Config Printer Notification"/>
|
|
||||||
<value type="string" value="Terminal"/>
|
|
||||||
<value type="string" value="Thunar"/>
|
|
||||||
<value type="string" value="Transmission"/>
|
|
||||||
<value type="string" value="thunar-volman"/>
|
|
||||||
<value type="string" value="Update Manager"/>
|
|
||||||
<value type="string" value="Variety"/>
|
|
||||||
<value type="string" value="vivaldi-snapshot"/>
|
|
||||||
<value type="string" value="vivaldi-stable"/>
|
|
||||||
<value type="string" value="Volume Icon"/>
|
|
||||||
<value type="string" value="Xfce volume control"/>
|
|
||||||
<value type="string" value="Xfce4-notifyd settings"/>
|
|
||||||
<value type="string" value="xfce4-power-manager"/>
|
|
||||||
<value type="string" value="xfce4-settings-helper"/>
|
|
||||||
</property>
|
|
||||||
<property name="muted_applications" type="array">
|
|
||||||
<value type="string" value="ca.desrt.dconf-editor"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="notify-location" type="uint" value="2"/>
|
|
||||||
<property name="log-level" type="uint" value="0"/>
|
|
||||||
<property name="log-level-apps" type="uint" value="0"/>
|
|
||||||
<property name="expire-timeout" type="int" value="5"/>
|
|
||||||
<property name="initial-opacity" type="double" value="1"/>
|
|
||||||
<property name="primary-monitor" type="uint" value="0"/>
|
|
||||||
<property name="theme" type="string" value="Default"/>
|
|
||||||
</channel>
|
|
||||||
@ -1,117 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<channel name="xfce4-panel" version="1.0">
|
|
||||||
<property name="configver" type="int" value="2"/>
|
|
||||||
<property name="panels" type="array">
|
|
||||||
<value type="int" value="1"/>
|
|
||||||
<property name="panel-1" type="empty">
|
|
||||||
<property name="position" type="string" value="p=8;x=960;y=1064"/>
|
|
||||||
<property name="length" type="uint" value="100"/>
|
|
||||||
<property name="position-locked" type="bool" value="true"/>
|
|
||||||
<property name="size" type="uint" value="30"/>
|
|
||||||
<property name="plugin-ids" type="array">
|
|
||||||
<value type="int" value="7"/>
|
|
||||||
<value type="int" value="3"/>
|
|
||||||
<value type="int" value="15"/>
|
|
||||||
<value type="int" value="4"/>
|
|
||||||
<value type="int" value="6"/>
|
|
||||||
<value type="int" value="8"/>
|
|
||||||
<value type="int" value="5"/>
|
|
||||||
<value type="int" value="2"/>
|
|
||||||
</property>
|
|
||||||
<property name="background-alpha" type="uint" value="76"/>
|
|
||||||
<property name="enter-opacity" type="uint" value="95"/>
|
|
||||||
<property name="leave-opacity" type="uint" value="95"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="plugins" type="empty">
|
|
||||||
<property name="plugin-2" type="string" value="actions">
|
|
||||||
<property name="items" type="array">
|
|
||||||
<value type="string" value="+restart"/>
|
|
||||||
<value type="string" value="+logout"/>
|
|
||||||
<value type="string" value="+suspend"/>
|
|
||||||
<value type="string" value="+shutdown"/>
|
|
||||||
<value type="string" value="-lock-screen"/>
|
|
||||||
<value type="string" value="-switch-user"/>
|
|
||||||
<value type="string" value="-separator"/>
|
|
||||||
<value type="string" value="-hibernate"/>
|
|
||||||
<value type="string" value="-separator"/>
|
|
||||||
<value type="string" value="-separator"/>
|
|
||||||
<value type="string" value="-logout-dialog"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="plugin-3" type="string" value="tasklist"/>
|
|
||||||
<property name="plugin-15" type="string" value="separator">
|
|
||||||
<property name="expand" type="bool" value="true"/>
|
|
||||||
<property name="style" type="uint" value="0"/>
|
|
||||||
</property>
|
|
||||||
<property name="plugin-4" type="string" value="pager">
|
|
||||||
<property name="rows" type="uint" value="2"/>
|
|
||||||
<property name="miniature-view" type="bool" value="true"/>
|
|
||||||
</property>
|
|
||||||
<property name="plugin-5" type="string" value="clock"/>
|
|
||||||
<property name="plugin-6" type="string" value="systray">
|
|
||||||
<property name="names-visible" type="array">
|
|
||||||
<value type="string" value="evolution-alarm-notify"/>
|
|
||||||
<value type="string" value="discord"/>
|
|
||||||
<value type="string" value="pragha music player"/>
|
|
||||||
<value type="string" value="simplescreenrecorder"/>
|
|
||||||
<value type="string" value="pamac-tray"/>
|
|
||||||
<value type="string" value="vlc"/>
|
|
||||||
<value type="string" value="blueberry-tray.py"/>
|
|
||||||
<value type="string" value="xfce4-power-manager"/>
|
|
||||||
<value type="string" value="task manager"/>
|
|
||||||
<value type="string" value="insync.py"/>
|
|
||||||
<value type="string" value="telegramdesktop"/>
|
|
||||||
<value type="string" value="variety"/>
|
|
||||||
<value type="string" value="flameshot"/>
|
|
||||||
<value type="string" value="bluetooth"/>
|
|
||||||
<value type="string" value="clipman"/>
|
|
||||||
<value type="string" value="redshift-gtk"/>
|
|
||||||
<value type="string" value="scp-dbus-service.py"/>
|
|
||||||
<value type="string" value="networkmanager applet"/>
|
|
||||||
<value type="string" value="thunar"/>
|
|
||||||
<value type="string" value="gpick"/>
|
|
||||||
<value type="string" value="clipit"/>
|
|
||||||
<value type="string" value="dropbox"/>
|
|
||||||
</property>
|
|
||||||
<property name="show-frame" type="bool" value="false"/>
|
|
||||||
<property name="names-ordered" type="array">
|
|
||||||
<value type="string" value="zoom"/>
|
|
||||||
<value type="string" value="simplescreenrecorder"/>
|
|
||||||
<value type="string" value="task manager"/>
|
|
||||||
<value type="string" value="vlc"/>
|
|
||||||
<value type="string" value="xfce terminal"/>
|
|
||||||
<value type="string" value="thunar"/>
|
|
||||||
<value type="string" value="dropbox"/>
|
|
||||||
<value type="string" value="discord"/>
|
|
||||||
<value type="string" value="insync"/>
|
|
||||||
<value type="string" value="variety"/>
|
|
||||||
<value type="string" value="telegramdesktop"/>
|
|
||||||
<value type="string" value="blueberry-tray.py"/>
|
|
||||||
<value type="string" value="flameshot"/>
|
|
||||||
<value type="string" value="pamac-tray"/>
|
|
||||||
<value type="string" value="networkmanager applet"/>
|
|
||||||
<value type="string" value="clipman"/>
|
|
||||||
</property>
|
|
||||||
<property name="known-legacy-items" type="array">
|
|
||||||
<value type="string" value="clipman"/>
|
|
||||||
<value type="string" value="pamac-tray"/>
|
|
||||||
<value type="string" value="networkmanager applet"/>
|
|
||||||
</property>
|
|
||||||
<property name="known-items" type="array">
|
|
||||||
<value type="string" value="variety"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="plugin-7" type="string" value="whiskermenu"/>
|
|
||||||
<property name="clipman" type="empty">
|
|
||||||
<property name="tweaks" type="empty">
|
|
||||||
<property name="never-confirm-history-clear" type="bool" value="true"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="plugin-8" type="string" value="pulseaudio">
|
|
||||||
<property name="enable-keyboard-shortcuts" type="bool" value="true"/>
|
|
||||||
<property name="mpris-players" type="string" value="pragha;spotify"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
</channel>
|
|
||||||
@ -1,29 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<channel name="xfce4-power-manager" version="1.0">
|
|
||||||
<property name="xfce4-power-manager" type="empty">
|
|
||||||
<property name="power-button-action" type="uint" value="4"/>
|
|
||||||
<property name="sleep-button-action" type="uint" value="1"/>
|
|
||||||
<property name="hibernate-button-action" type="uint" value="2"/>
|
|
||||||
<property name="brightness-switch-restore-on-exit" type="int" value="0"/>
|
|
||||||
<property name="brightness-switch" type="int" value="0"/>
|
|
||||||
<property name="lid-action-on-battery" type="uint" value="1"/>
|
|
||||||
<property name="lid-action-on-ac" type="uint" value="1"/>
|
|
||||||
<property name="logind-handle-lid-switch" type="bool" value="false"/>
|
|
||||||
<property name="dpms-on-ac-sleep" type="uint" value="30"/>
|
|
||||||
<property name="dpms-on-ac-off" type="uint" value="45"/>
|
|
||||||
<property name="blank-on-ac" type="int" value="15"/>
|
|
||||||
<property name="inactivity-on-ac" type="uint" value="14"/>
|
|
||||||
<property name="general-notification" type="bool" value="true"/>
|
|
||||||
<property name="show-tray-icon" type="bool" value="false"/>
|
|
||||||
<property name="inactivity-sleep-mode-on-battery" type="uint" value="1"/>
|
|
||||||
<property name="critical-power-action" type="uint" value="3"/>
|
|
||||||
<property name="lock-screen-suspend-hibernate" type="bool" value="false"/>
|
|
||||||
<property name="brightness-on-battery" type="uint" value="9"/>
|
|
||||||
<property name="blank-on-battery" type="int" value="15"/>
|
|
||||||
<property name="dpms-on-battery-sleep" type="uint" value="30"/>
|
|
||||||
<property name="dpms-on-battery-off" type="uint" value="45"/>
|
|
||||||
<property name="brightness-level-on-battery" type="uint" value="50"/>
|
|
||||||
<property name="brightness-level-on-ac" type="uint" value="100"/>
|
|
||||||
</property>
|
|
||||||
</channel>
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<channel name="xfce4-screensaver" version="1.0">
|
|
||||||
<property name="saver" type="empty">
|
|
||||||
<property name="mode" type="int" value="0"/>
|
|
||||||
<property name="fullscreen-inhibit" type="bool" value="true"/>
|
|
||||||
<property name="enabled" type="bool" value="false"/>
|
|
||||||
</property>
|
|
||||||
<property name="lock" type="empty">
|
|
||||||
<property name="saver-activation" type="empty">
|
|
||||||
<property name="delay" type="int" value="5"/>
|
|
||||||
</property>
|
|
||||||
<property name="enabled" type="bool" value="false"/>
|
|
||||||
</property>
|
|
||||||
</channel>
|
|
||||||
@ -1,34 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<channel name="xfce4-session" version="1.0">
|
|
||||||
<property name="general" type="empty">
|
|
||||||
<property name="FailsafeSessionName" type="empty"/>
|
|
||||||
<property name="SessionName" type="string" value="Default"/>
|
|
||||||
<property name="SaveOnExit" type="bool" value="false"/>
|
|
||||||
</property>
|
|
||||||
<property name="sessions" type="empty">
|
|
||||||
<property name="Failsafe" type="empty">
|
|
||||||
<property name="IsFailsafe" type="empty"/>
|
|
||||||
<property name="Count" type="empty"/>
|
|
||||||
<property name="Client0_Command" type="empty"/>
|
|
||||||
<property name="Client0_PerScreen" type="empty"/>
|
|
||||||
<property name="Client1_Command" type="empty"/>
|
|
||||||
<property name="Client1_PerScreen" type="empty"/>
|
|
||||||
<property name="Client2_Command" type="empty"/>
|
|
||||||
<property name="Client2_PerScreen" type="empty"/>
|
|
||||||
<property name="Client3_Command" type="empty"/>
|
|
||||||
<property name="Client3_PerScreen" type="empty"/>
|
|
||||||
<property name="Client4_Command" type="empty"/>
|
|
||||||
<property name="Client4_PerScreen" type="empty"/>
|
|
||||||
</property>
|
|
||||||
</property>
|
|
||||||
<property name="splash" type="empty">
|
|
||||||
<property name="Engine" type="empty"/>
|
|
||||||
</property>
|
|
||||||
<property name="shutdown" type="empty">
|
|
||||||
<property name="LockScreen" type="bool" value="false"/>
|
|
||||||
</property>
|
|
||||||
<property name="compat" type="empty">
|
|
||||||
<property name="LaunchGNOME" type="bool" value="true"/>
|
|
||||||
</property>
|
|
||||||
</channel>
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<channel name="xfce4-settings-manager" version="1.0">
|
|
||||||
<property name="last" type="empty">
|
|
||||||
<property name="window-width" type="int" value="1150"/>
|
|
||||||
<property name="window-height" type="int" value="735"/>
|
|
||||||
</property>
|
|
||||||
</channel>
|
|
||||||
@ -1,92 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<channel name="xfwm4" version="1.0">
|
|
||||||
<property name="general" type="empty">
|
|
||||||
<property name="workspace_names" type="array">
|
|
||||||
<value type="string" value="1"/>
|
|
||||||
<value type="string" value="2"/>
|
|
||||||
<value type="string" value="3"/>
|
|
||||||
<value type="string" value="4"/>
|
|
||||||
</property>
|
|
||||||
<property name="workspace_count" type="int" value="4"/>
|
|
||||||
<property name="activate_action" type="string" value="bring"/>
|
|
||||||
<property name="borderless_maximize" type="bool" value="true"/>
|
|
||||||
<property name="box_move" type="bool" value="false"/>
|
|
||||||
<property name="box_resize" type="bool" value="false"/>
|
|
||||||
<property name="button_layout" type="string" value="O|SHMC"/>
|
|
||||||
<property name="button_offset" type="int" value="0"/>
|
|
||||||
<property name="button_spacing" type="int" value="0"/>
|
|
||||||
<property name="click_to_focus" type="bool" value="true"/>
|
|
||||||
<property name="cycle_apps_only" type="bool" value="false"/>
|
|
||||||
<property name="cycle_draw_frame" type="bool" value="true"/>
|
|
||||||
<property name="cycle_hidden" type="bool" value="true"/>
|
|
||||||
<property name="cycle_minimum" type="bool" value="true"/>
|
|
||||||
<property name="cycle_preview" type="bool" value="true"/>
|
|
||||||
<property name="cycle_tabwin_mode" type="int" value="0"/>
|
|
||||||
<property name="cycle_workspaces" type="bool" value="false"/>
|
|
||||||
<property name="double_click_action" type="string" value="maximize"/>
|
|
||||||
<property name="double_click_distance" type="int" value="5"/>
|
|
||||||
<property name="double_click_time" type="int" value="250"/>
|
|
||||||
<property name="easy_click" type="string" value="Alt"/>
|
|
||||||
<property name="focus_delay" type="int" value="250"/>
|
|
||||||
<property name="focus_hint" type="bool" value="true"/>
|
|
||||||
<property name="focus_new" type="bool" value="true"/>
|
|
||||||
<property name="frame_opacity" type="int" value="92"/>
|
|
||||||
<property name="full_width_title" type="bool" value="true"/>
|
|
||||||
<property name="horiz_scroll_opacity" type="bool" value="false"/>
|
|
||||||
<property name="inactive_opacity" type="int" value="100"/>
|
|
||||||
<property name="maximized_offset" type="int" value="0"/>
|
|
||||||
<property name="mousewheel_rollup" type="bool" value="true"/>
|
|
||||||
<property name="move_opacity" type="int" value="88"/>
|
|
||||||
<property name="placement_mode" type="string" value="center"/>
|
|
||||||
<property name="placement_ratio" type="int" value="100"/>
|
|
||||||
<property name="popup_opacity" type="int" value="100"/>
|
|
||||||
<property name="prevent_focus_stealing" type="bool" value="false"/>
|
|
||||||
<property name="raise_delay" type="int" value="250"/>
|
|
||||||
<property name="raise_on_click" type="bool" value="true"/>
|
|
||||||
<property name="raise_on_focus" type="bool" value="false"/>
|
|
||||||
<property name="raise_with_any_button" type="bool" value="true"/>
|
|
||||||
<property name="repeat_urgent_blink" type="bool" value="false"/>
|
|
||||||
<property name="resize_opacity" type="int" value="88"/>
|
|
||||||
<property name="scroll_workspaces" type="bool" value="true"/>
|
|
||||||
<property name="shadow_delta_height" type="int" value="0"/>
|
|
||||||
<property name="shadow_delta_width" type="int" value="0"/>
|
|
||||||
<property name="shadow_delta_x" type="int" value="0"/>
|
|
||||||
<property name="shadow_delta_y" type="int" value="-3"/>
|
|
||||||
<property name="shadow_opacity" type="int" value="50"/>
|
|
||||||
<property name="show_app_icon" type="bool" value="false"/>
|
|
||||||
<property name="show_dock_shadow" type="bool" value="false"/>
|
|
||||||
<property name="show_frame_shadow" type="bool" value="true"/>
|
|
||||||
<property name="show_popup_shadow" type="bool" value="false"/>
|
|
||||||
<property name="snap_resist" type="bool" value="false"/>
|
|
||||||
<property name="snap_to_border" type="bool" value="true"/>
|
|
||||||
<property name="snap_to_windows" type="bool" value="false"/>
|
|
||||||
<property name="snap_width" type="int" value="10"/>
|
|
||||||
<property name="sync_to_vblank" type="bool" value="false"/>
|
|
||||||
<property name="theme" type="string" value="Arc-Dark"/>
|
|
||||||
<property name="tile_on_move" type="bool" value="true"/>
|
|
||||||
<property name="title_alignment" type="string" value="center"/>
|
|
||||||
<property name="title_font" type="string" value="Noto Sans 11"/>
|
|
||||||
<property name="title_horizontal_offset" type="int" value="0"/>
|
|
||||||
<property name="titleless_maximize" type="bool" value="false"/>
|
|
||||||
<property name="title_shadow_active" type="string" value="false"/>
|
|
||||||
<property name="title_shadow_inactive" type="string" value="false"/>
|
|
||||||
<property name="title_vertical_offset_active" type="int" value="0"/>
|
|
||||||
<property name="title_vertical_offset_inactive" type="int" value="0"/>
|
|
||||||
<property name="toggle_workspaces" type="bool" value="false"/>
|
|
||||||
<property name="unredirect_overlays" type="bool" value="true"/>
|
|
||||||
<property name="urgent_blink" type="bool" value="true"/>
|
|
||||||
<property name="use_compositing" type="bool" value="true"/>
|
|
||||||
<property name="wrap_cycle" type="bool" value="true"/>
|
|
||||||
<property name="wrap_layout" type="bool" value="true"/>
|
|
||||||
<property name="wrap_resistance" type="int" value="10"/>
|
|
||||||
<property name="wrap_windows" type="bool" value="false"/>
|
|
||||||
<property name="wrap_workspaces" type="bool" value="false"/>
|
|
||||||
<property name="zoom_desktop" type="bool" value="true"/>
|
|
||||||
<property name="cycle_raise" type="bool" value="false"/>
|
|
||||||
<property name="frame_border_top" type="int" value="0"/>
|
|
||||||
<property name="vblank_mode" type="string" value="auto"/>
|
|
||||||
<property name="cycle_minimized" type="bool" value="false"/>
|
|
||||||
<property name="zoom_pointer" type="bool" value="true"/>
|
|
||||||
</property>
|
|
||||||
</channel>
|
|
||||||
@ -1,44 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<channel name="xsettings" version="1.0">
|
|
||||||
<property name="Net" type="empty">
|
|
||||||
<property name="ThemeName" type="string" value="Adwaita"/>
|
|
||||||
<property name="IconThemeName" type="string" value="Adwaita"/>
|
|
||||||
<property name="DoubleClickTime" type="empty"/>
|
|
||||||
<property name="DoubleClickDistance" type="empty"/>
|
|
||||||
<property name="DndDragThreshold" type="empty"/>
|
|
||||||
<property name="CursorBlink" type="empty"/>
|
|
||||||
<property name="CursorBlinkTime" type="empty"/>
|
|
||||||
<property name="SoundThemeName" type="empty"/>
|
|
||||||
<property name="EnableEventSounds" type="empty"/>
|
|
||||||
<property name="EnableInputFeedbackSounds" type="empty"/>
|
|
||||||
</property>
|
|
||||||
<property name="Xft" type="empty">
|
|
||||||
<property name="DPI" type="empty"/>
|
|
||||||
<property name="Antialias" type="int" value="1"/>
|
|
||||||
<property name="Hinting" type="int" value="1"/>
|
|
||||||
<property name="HintStyle" type="string" value="hintslight"/>
|
|
||||||
<property name="RGBA" type="string" value="rgb"/>
|
|
||||||
</property>
|
|
||||||
<property name="Gtk" type="empty">
|
|
||||||
<property name="CanChangeAccels" type="empty"/>
|
|
||||||
<property name="ColorPalette" type="empty"/>
|
|
||||||
<property name="FontName" type="string" value="Noto Sans 11"/>
|
|
||||||
<property name="MonospaceFontName" type="string" value="Monospace 11"/>
|
|
||||||
<property name="IconSizes" type="empty"/>
|
|
||||||
<property name="KeyThemeName" type="empty"/>
|
|
||||||
<property name="ToolbarStyle" type="empty"/>
|
|
||||||
<property name="ToolbarIconSize" type="empty"/>
|
|
||||||
<property name="MenuImages" type="empty"/>
|
|
||||||
<property name="ButtonImages" type="empty"/>
|
|
||||||
<property name="MenuBarAccel" type="empty"/>
|
|
||||||
<property name="CursorThemeName" type="string" value="Bibata-Modern-Ice"/>
|
|
||||||
<property name="CursorThemeSize" type="empty"/>
|
|
||||||
<property name="DecorationLayout" type="empty"/>
|
|
||||||
<property name="DialogsUseHeader" type="empty"/>
|
|
||||||
<property name="TitlebarMiddleClick" type="empty"/>
|
|
||||||
</property>
|
|
||||||
<property name="Gdk" type="empty">
|
|
||||||
<property name="WindowScalingFactor" type="empty"/>
|
|
||||||
</property>
|
|
||||||
</channel>
|
|
||||||
BIN
assets/yad_0.40.0-1+b2_amd64.deb
Normal file
BIN
assets/yad_0.40.0-1+b2_amd64.deb
Normal file
Binary file not shown.
50
auto-install.sh
Executable file
50
auto-install.sh
Executable file
@ -0,0 +1,50 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# https://github.com/JaKooLit
|
||||||
|
|
||||||
|
# Set some colors for output messages
|
||||||
|
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
||||||
|
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
||||||
|
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
||||||
|
INFO="$(tput setaf 4)[INFO]$(tput sgr0)"
|
||||||
|
WARN="$(tput setaf 1)[WARN]$(tput sgr0)"
|
||||||
|
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||||
|
MAGENTA="$(tput setaf 5)"
|
||||||
|
ORANGE="$(tput setaf 214)"
|
||||||
|
WARNING="$(tput setaf 1)"
|
||||||
|
YELLOW="$(tput setaf 3)"
|
||||||
|
GREEN="$(tput setaf 2)"
|
||||||
|
BLUE="$(tput setaf 4)"
|
||||||
|
SKY_BLUE="$(tput setaf 6)"
|
||||||
|
RESET="$(tput sgr0)"
|
||||||
|
|
||||||
|
# Variables
|
||||||
|
Distro="Debian-Hyprland"
|
||||||
|
Github_URL="https://github.com/JaKooLit/$Distro.git"
|
||||||
|
Distro_DIR="$HOME/$Distro"
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
|
if ! command -v git &> /dev/null
|
||||||
|
then
|
||||||
|
echo "${INFO} Git not found! ${SKY_BLUE}Installing Git...${RESET}"
|
||||||
|
if ! sudo apt install -y git; then
|
||||||
|
echo "${ERROR} Failed to install Git. Exiting."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
|
if [ -d "$Distro_DIR" ]; then
|
||||||
|
echo "${YELLOW}$Distro_DIR exists. Updating the repository... ${RESET}"
|
||||||
|
cd "$Distro_DIR"
|
||||||
|
git stash && git pull
|
||||||
|
chmod +x install.sh
|
||||||
|
./install.sh
|
||||||
|
else
|
||||||
|
echo "${MAGENTA}$Distro_DIR does not exist. Cloning the repository...${RESET}"
|
||||||
|
git clone --depth=1 "$Github_URL" "$Distro_DIR"
|
||||||
|
cd "$Distro_DIR"
|
||||||
|
chmod +x install.sh
|
||||||
|
./install.sh
|
||||||
|
fi
|
||||||
151
dry-run-build.sh
Executable file
151
dry-run-build.sh
Executable file
@ -0,0 +1,151 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Dry-run orchestrator for Hyprland and companion modules
|
||||||
|
# - Compiles components but skips installation (uses DRY_RUN=1)
|
||||||
|
# - Summarizes PASS/FAIL per module to Install-Logs/
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
# chmod +x ./dry-run-build.sh
|
||||||
|
# ./dry-run-build.sh # run full stack dry-run
|
||||||
|
# ./dry-run-build.sh --with-deps # install dependencies first, then dry-run build
|
||||||
|
# ./dry-run-build.sh --only hyprland # run a subset (comma-separated allowed)
|
||||||
|
# ./dry-run-build.sh --skip qtutils # skip one or more (comma-separated)
|
||||||
|
#
|
||||||
|
# Notes:
|
||||||
|
# - Run from the repository root. Do not cd into install-scripts/.
|
||||||
|
# - You can also call modules directly, e.g., DRY_RUN=1 ./install-scripts/hyprland.sh
|
||||||
|
|
||||||
|
set -u
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
REPO_ROOT=$(pwd)
|
||||||
|
LOG_DIR="$REPO_ROOT/Install-Logs"
|
||||||
|
mkdir -p "$LOG_DIR"
|
||||||
|
TS=$(date +%F-%H%M%S)
|
||||||
|
SUMMARY_LOG="$LOG_DIR/build-dry-run-$TS.log"
|
||||||
|
|
||||||
|
# Default module order (core first, then Hyprland)
|
||||||
|
DEFAULT_MODULES=(
|
||||||
|
hyprutils
|
||||||
|
hyprlang
|
||||||
|
wayland-protocols-src
|
||||||
|
aquamarine
|
||||||
|
hyprgraphics
|
||||||
|
hyprwayland-scanner
|
||||||
|
hyprland-protocols
|
||||||
|
hyprland-qt-support
|
||||||
|
hyprland-qtutils
|
||||||
|
hyprland
|
||||||
|
)
|
||||||
|
|
||||||
|
WITH_DEPS=0
|
||||||
|
ONLY_LIST=""
|
||||||
|
SKIP_LIST=""
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
grep '^# ' "$0" | sed 's/^# \{0,1\}//'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Parse args
|
||||||
|
while [[ $# -gt 0 ]]; do
|
||||||
|
case "$1" in
|
||||||
|
-h|--help)
|
||||||
|
usage
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
--with-deps)
|
||||||
|
WITH_DEPS=1
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--only)
|
||||||
|
ONLY_LIST=${2:-}
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
--skip)
|
||||||
|
SKIP_LIST=${2:-}
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown argument: $1" >&2
|
||||||
|
exit 2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Build module list based on --only/--skip
|
||||||
|
MODULES=()
|
||||||
|
if [[ -n "$ONLY_LIST" ]]; then
|
||||||
|
IFS=',' read -r -a MODULES <<< "$ONLY_LIST"
|
||||||
|
else
|
||||||
|
MODULES=("${DEFAULT_MODULES[@]}")
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n "$SKIP_LIST" ]]; then
|
||||||
|
IFS=',' read -r -a _SKIPS <<< "$SKIP_LIST"
|
||||||
|
FILTERED=()
|
||||||
|
for m in "${MODULES[@]}"; do
|
||||||
|
skip_it=0
|
||||||
|
for s in "${_SKIPS[@]}"; do
|
||||||
|
if [[ "$m" == "$s" ]]; then
|
||||||
|
skip_it=1
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [[ $skip_it -eq 0 ]]; then
|
||||||
|
FILTERED+=("$m")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
MODULES=("${FILTERED[@]}")
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Optionally install dependencies (not a dry-run)
|
||||||
|
if [[ $WITH_DEPS -eq 1 ]]; then
|
||||||
|
echo "[INFO] Installing dependencies via 00-dependencies.sh" | tee -a "$SUMMARY_LOG"
|
||||||
|
if ! "$REPO_ROOT/install-scripts/00-dependencies.sh"; then
|
||||||
|
echo "[ERROR] Dependencies installation failed. See logs under Install-Logs/." | tee -a "$SUMMARY_LOG"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Run each module with DRY_RUN=1 and capture exit codes
|
||||||
|
declare -A RESULTS
|
||||||
|
|
||||||
|
echo "[INFO] Starting dry-run build at $TS" | tee -a "$SUMMARY_LOG"
|
||||||
|
|
||||||
|
for mod in "${MODULES[@]}"; do
|
||||||
|
script_path="$REPO_ROOT/install-scripts/$mod.sh"
|
||||||
|
echo "\n=== $mod (DRY RUN) ===" | tee -a "$SUMMARY_LOG"
|
||||||
|
if [[ ! -x "$script_path" ]]; then
|
||||||
|
# Try to make executable if it exists
|
||||||
|
if [[ -f "$script_path" ]]; then
|
||||||
|
chmod +x "$script_path" || true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [[ ! -f "$script_path" ]]; then
|
||||||
|
echo "[WARN] Missing script: $script_path" | tee -a "$SUMMARY_LOG"
|
||||||
|
RESULTS[$mod]="MISSING"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
if DRY_RUN=1 "$script_path"; then
|
||||||
|
RESULTS[$mod]="PASS"
|
||||||
|
else
|
||||||
|
RESULTS[$mod]="FAIL"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Summary
|
||||||
|
{
|
||||||
|
echo "\nSummary (dry-run):"
|
||||||
|
for mod in "${MODULES[@]}"; do
|
||||||
|
printf "%-24s %s\n" "$mod" "${RESULTS[$mod]:-SKIPPED}"
|
||||||
|
done
|
||||||
|
echo "\nLogs: individual module logs are under Install-Logs/. This summary: $SUMMARY_LOG"
|
||||||
|
} | tee -a "$SUMMARY_LOG"
|
||||||
|
|
||||||
|
# Exit non-zero if any FAIL occurred
|
||||||
|
failed=0
|
||||||
|
for mod in "${MODULES[@]}"; do
|
||||||
|
if [[ "${RESULTS[$mod]:-}" == "FAIL" ]]; then
|
||||||
|
failed=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
exit $failed
|
||||||
15
hypr-tags.env
Normal file
15
hypr-tags.env
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# Central tag overrides for the Hyprland stack
|
||||||
|
# You can edit these values or let update-hyprland.sh manage them.
|
||||||
|
# Each module script reads its TAG from these environment variables if set.
|
||||||
|
|
||||||
|
HYPRLAND_TAG=v0.52.2
|
||||||
|
AQUAMARINE_TAG=v0.10.0
|
||||||
|
HYPRUTILS_TAG=v0.10.4
|
||||||
|
HYPRLANG_TAG=v0.6.7
|
||||||
|
HYPRGRAPHICS_TAG=v0.4.0
|
||||||
|
HYPRTOOLKIT_TAG=v0.4.1
|
||||||
|
HYPRWAYLAND_SCANNER_TAG=v0.4.5
|
||||||
|
HYPRLAND_PROTOCOLS_TAG=v0.7.0
|
||||||
|
HYPRLAND_QT_SUPPORT_TAG=v0.1.0
|
||||||
|
HYPRLAND_GUIUTILS_TAG=v0.2.0
|
||||||
|
WAYLAND_PROTOCOLS_TAG=1.46
|
||||||
123
install-scripts/00-dependencies.sh
Normal file → Executable file
123
install-scripts/00-dependencies.sh
Normal file → Executable file
@ -1,8 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
# https://github.com/JaKooLit
|
# main dependencies #
|
||||||
|
# 22 Aug 2024 - NOTE will trim this more down
|
||||||
# WARNING! If you remove packages here, Hyprland may not work properly.
|
|
||||||
|
|
||||||
# packages neeeded
|
# packages neeeded
|
||||||
dependencies=(
|
dependencies=(
|
||||||
@ -10,6 +9,8 @@ dependencies=(
|
|||||||
cmake
|
cmake
|
||||||
cmake-extras
|
cmake-extras
|
||||||
curl
|
curl
|
||||||
|
findutils
|
||||||
|
gawk
|
||||||
gettext
|
gettext
|
||||||
gir1.2-graphene-1.0
|
gir1.2-graphene-1.0
|
||||||
git
|
git
|
||||||
@ -25,6 +26,7 @@ dependencies=(
|
|||||||
libdeflate-dev
|
libdeflate-dev
|
||||||
libdisplay-info-dev
|
libdisplay-info-dev
|
||||||
libdrm-dev
|
libdrm-dev
|
||||||
|
libegl-dev
|
||||||
libegl1-mesa-dev
|
libegl1-mesa-dev
|
||||||
libgbm-dev
|
libgbm-dev
|
||||||
libgdk-pixbuf-2.0-dev
|
libgdk-pixbuf-2.0-dev
|
||||||
@ -34,9 +36,10 @@ dependencies=(
|
|||||||
libgraphene-1.0-0
|
libgraphene-1.0-0
|
||||||
libgraphene-1.0-dev
|
libgraphene-1.0-dev
|
||||||
libgtk-3-dev
|
libgtk-3-dev
|
||||||
libgulkan-0.15-0
|
libgulkan-0.15-0t64
|
||||||
libgulkan-dev
|
libgulkan-dev
|
||||||
libinih-dev
|
libinih-dev
|
||||||
|
libiniparser-dev
|
||||||
libinput-dev
|
libinput-dev
|
||||||
libjbig-dev
|
libjbig-dev
|
||||||
libjpeg-dev
|
libjpeg-dev
|
||||||
@ -49,12 +52,14 @@ dependencies=(
|
|||||||
libpango1.0-dev
|
libpango1.0-dev
|
||||||
libpipewire-0.3-dev
|
libpipewire-0.3-dev
|
||||||
libqt6svg6
|
libqt6svg6
|
||||||
|
libsdbus-c++-dev
|
||||||
libseat-dev
|
libseat-dev
|
||||||
libstartup-notification0-dev
|
libstartup-notification0-dev
|
||||||
libswresample-dev
|
libswresample-dev
|
||||||
libsystemd-dev
|
libsystemd-dev
|
||||||
libtiff-dev
|
libtiff-dev
|
||||||
libtiffxx6
|
libtiffxx6
|
||||||
|
libtomlplusplus-dev
|
||||||
libudev-dev
|
libudev-dev
|
||||||
libvkfft-dev
|
libvkfft-dev
|
||||||
libvulkan-dev
|
libvulkan-dev
|
||||||
@ -85,79 +90,81 @@ dependencies=(
|
|||||||
python3-mako
|
python3-mako
|
||||||
python3-markdown
|
python3-markdown
|
||||||
python3-markupsafe
|
python3-markupsafe
|
||||||
|
python3-pyquery
|
||||||
python3-yaml
|
python3-yaml
|
||||||
qt6-base-dev
|
qt6-base-dev
|
||||||
scdoc
|
scdoc
|
||||||
seatd
|
seatd
|
||||||
spirv-tools
|
spirv-tools
|
||||||
|
unzip
|
||||||
|
vulkan-utility-libraries-dev
|
||||||
vulkan-validationlayers
|
vulkan-validationlayers
|
||||||
vulkan-validationlayers-dev
|
|
||||||
wayland-protocols
|
wayland-protocols
|
||||||
xdg-desktop-portal
|
xdg-desktop-portal
|
||||||
xwayland
|
xwayland
|
||||||
)
|
)
|
||||||
|
|
||||||
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
|
# hyprland dependencies
|
||||||
# Determine the directory where the script is located
|
hyprland_dep=(
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
bc
|
||||||
|
binutils
|
||||||
|
libc6
|
||||||
|
libcairo2-dev
|
||||||
|
libdisplay-info3
|
||||||
|
libdrm2
|
||||||
|
libjpeg-dev
|
||||||
|
libjxl-dev
|
||||||
|
libmagic-dev
|
||||||
|
libpixman-1-dev
|
||||||
|
libpugixml-dev
|
||||||
|
libre2-dev
|
||||||
|
librsvg2-dev
|
||||||
|
libspng-dev
|
||||||
|
libtomlplusplus-dev
|
||||||
|
libwebp-dev
|
||||||
|
libzip-dev
|
||||||
|
libpam0g-dev
|
||||||
|
libxcursor-dev
|
||||||
|
qt6-declarative-dev
|
||||||
|
qt6-base-private-dev
|
||||||
|
qt6-wayland-dev
|
||||||
|
qt6-wayland-private-dev
|
||||||
|
)
|
||||||
|
|
||||||
|
build_dep=(
|
||||||
|
wlroots
|
||||||
|
)
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
|
||||||
# Change the working directory to the parent directory of the script
|
# Change the working directory to the parent directory of the script
|
||||||
PARENT_DIR="$SCRIPT_DIR/.."
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
cd "$PARENT_DIR" || exit 1
|
cd "$PARENT_DIR" || {
|
||||||
|
echo "${ERROR} Failed to change directory to $PARENT_DIR"
|
||||||
# Set some colors for output messages
|
exit 1
|
||||||
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)_dependencies.log"
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Function for installing packages
|
|
||||||
install_package() {
|
|
||||||
# Checking if package is already installed
|
|
||||||
if sudo dpkg -l | grep -q -w "$1" ; then
|
|
||||||
echo -e "${OK} $1 is already installed. Skipping..."
|
|
||||||
else
|
|
||||||
# Package not installed
|
|
||||||
echo -e "${NOTE} Installing $1 ..."
|
|
||||||
sudo apt-get install -y "$1" 2>&1 | tee -a "$LOG"
|
|
||||||
# Making sure the package is installed
|
|
||||||
if sudo dpkg -l | grep -q -w "$1" ; 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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Source the global functions script
|
||||||
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
|
echo "Failed to source Global_functions.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_dependencies.log"
|
||||||
|
|
||||||
# Installation of main dependencies
|
# Installation of main dependencies
|
||||||
printf "\n%s - Installing main dependencies.... \n" "${NOTE}"
|
printf "\n%s - Installing ${SKY_BLUE}main dependencies....${RESET} \n" "${NOTE}"
|
||||||
|
|
||||||
for PKG1 in "${dependencies[@]}"; do
|
for PKG1 in "${dependencies[@]}" "${hyprland_dep[@]}"; do
|
||||||
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
install_package "$PKG1" "$LOG"
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1A\e[K${ERROR} - $PKG1 install had failed, please check the install.log"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# Install dependencies for wlroots
|
printf "\n%.0s" {1..1}
|
||||||
sudo apt build-dep wlroots
|
|
||||||
export PATH=$PATH:/usr/local/go/bin
|
|
||||||
|
|
||||||
# Install Rust
|
for PKG1 in "${build_dep[@]}"; do
|
||||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
build_dep "$PKG1" "$LOG"
|
||||||
source $HOME/.cargo/env
|
done
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
@ -1,132 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# https://github.com/JaKooLit
|
|
||||||
|
|
||||||
# edit your packages desired here.
|
|
||||||
# WARNING! If you remove packages here, dotfiles may not work properly.
|
|
||||||
# and also, ensure that packages are present in debian repo
|
|
||||||
|
|
||||||
# add packages wanted here
|
|
||||||
Extra=(
|
|
||||||
|
|
||||||
)
|
|
||||||
|
|
||||||
# packages neeeded
|
|
||||||
hypr_package=(
|
|
||||||
cliphist
|
|
||||||
dunst
|
|
||||||
grim
|
|
||||||
gvfs
|
|
||||||
gvfs-backends
|
|
||||||
imagemagick
|
|
||||||
kitty
|
|
||||||
nano
|
|
||||||
pavucontrol
|
|
||||||
playerctl
|
|
||||||
polkit-kde-agent-1
|
|
||||||
python3-requests
|
|
||||||
python3-pip
|
|
||||||
qt5ct
|
|
||||||
qt5-style-kvantum
|
|
||||||
qt5-style-kvantum-themes
|
|
||||||
qt6ct
|
|
||||||
slurp
|
|
||||||
waybar
|
|
||||||
wget
|
|
||||||
wl-clipboard
|
|
||||||
wlogout
|
|
||||||
xdg-user-dirs
|
|
||||||
yad
|
|
||||||
)
|
|
||||||
|
|
||||||
# the following packages can be deleted. however, dotfiles may not work properly
|
|
||||||
hypr_package_2=(
|
|
||||||
brightnessctl
|
|
||||||
btop
|
|
||||||
cava
|
|
||||||
eog
|
|
||||||
gnome-system-monitor
|
|
||||||
mousepad
|
|
||||||
mpv
|
|
||||||
mpv-mpris
|
|
||||||
nvtop
|
|
||||||
pamixer
|
|
||||||
swayidle
|
|
||||||
vim
|
|
||||||
wlsunset
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont 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
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
|
|
||||||
# Set the name of the log file to include the current date and time
|
|
||||||
LOG="install-$(date +%d-%H%M%S)_hypr-pkgs.log"
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Function for installing packages
|
|
||||||
install_package() {
|
|
||||||
# Checking if package is already installed
|
|
||||||
if sudo dpkg -l | grep -q -w "$1" ; then
|
|
||||||
echo -e "${OK} $1 is already installed. Skipping..."
|
|
||||||
else
|
|
||||||
# Package not installed
|
|
||||||
echo -e "${NOTE} Installing $1 ..."
|
|
||||||
sudo apt-get install -y "$1" 2>&1 | tee -a "$LOG"
|
|
||||||
# Making sure the package is installed
|
|
||||||
if sudo dpkg -l | grep -q -w "$1" ; 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
|
|
||||||
}
|
|
||||||
|
|
||||||
# Installation of main components
|
|
||||||
printf "\n%s - Installing hyprland packages.... \n" "${NOTE}"
|
|
||||||
|
|
||||||
for PKG1 in "${hypr_package[@]}" "${hypr_package_2[@]}" "${Extra[@]}"; do
|
|
||||||
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1A\e[K${ERROR} - $PKG1 install had failed, please check the install.log"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
# Install cliphist using go
|
|
||||||
printf "\n%s - Installing cliphist using go.... \n" "${NOTE}"
|
|
||||||
export PATH=$PATH:/usr/local/bin
|
|
||||||
go install go.senan.xyz/cliphist@latest 2>&1 | tee -a "$LOG"
|
|
||||||
|
|
||||||
# copy cliphist into /usr/local/bin for some reason it is installing in ~/go/bin
|
|
||||||
sudo cp -r "$HOME/go/bin/cliphist" "/usr/local/bin/" 2>&1 | tee -a "$LOG"
|
|
||||||
|
|
||||||
## making brightnessctl work
|
|
||||||
sudo chmod +s $(which brightnessctl) 2>&1 | tee -a "$LOG" || true
|
|
||||||
|
|
||||||
|
|
||||||
## Installing pywal colors
|
|
||||||
printf "\n%s - Installing Pywal.... \n" "${NOTE}"
|
|
||||||
|
|
||||||
sudo pip3 install pywal --break-system-packages 2>&1 | tee -a "$LOG"
|
|
||||||
|
|
||||||
clear
|
|
||||||
147
install-scripts/01-hypr-pkgs.sh
Executable file
147
install-scripts/01-hypr-pkgs.sh
Executable file
@ -0,0 +1,147 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Hyprland-Dots Packages #
|
||||||
|
# edit your packages desired here.
|
||||||
|
# WARNING! If you remove packages here, dotfiles may not work properly.
|
||||||
|
# and also, ensure that packages are present in Debian Official Repo
|
||||||
|
|
||||||
|
# add packages wanted here
|
||||||
|
Extra=(
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
# packages needed
|
||||||
|
hypr_package=(
|
||||||
|
cliphist
|
||||||
|
grim
|
||||||
|
gvfs
|
||||||
|
gvfs-backends
|
||||||
|
inxi
|
||||||
|
imagemagick
|
||||||
|
kitty
|
||||||
|
nano
|
||||||
|
pavucontrol
|
||||||
|
playerctl
|
||||||
|
polkit-kde-agent-1
|
||||||
|
python3-requests
|
||||||
|
python3-pip
|
||||||
|
qt5ct
|
||||||
|
qt5-style-kvantum
|
||||||
|
qt-style-kvantum-themes
|
||||||
|
qt6ct
|
||||||
|
slurp
|
||||||
|
swappy
|
||||||
|
sway-notification-center
|
||||||
|
unzip
|
||||||
|
waybar
|
||||||
|
wget
|
||||||
|
wl-clipboard
|
||||||
|
wlogout
|
||||||
|
xdg-user-dirs
|
||||||
|
xdg-utils
|
||||||
|
yad
|
||||||
|
)
|
||||||
|
|
||||||
|
# the following packages can be deleted. however, dotfiles may not work properly
|
||||||
|
hypr_package_2=(
|
||||||
|
brightnessctl
|
||||||
|
btop
|
||||||
|
cava
|
||||||
|
fastfetch
|
||||||
|
loupe
|
||||||
|
gnome-system-monitor
|
||||||
|
mousepad
|
||||||
|
mpv
|
||||||
|
mpv-mpris
|
||||||
|
nwg-look
|
||||||
|
nwg-displays
|
||||||
|
nvtop
|
||||||
|
pamixer
|
||||||
|
qalculate-gtk
|
||||||
|
)
|
||||||
|
|
||||||
|
# packages to force reinstall
|
||||||
|
force=(
|
||||||
|
imagemagick
|
||||||
|
wayland-protocols
|
||||||
|
)
|
||||||
|
|
||||||
|
# List of packages to uninstall as it conflicts with swaync or causing swaync to not function properly
|
||||||
|
uninstall=(
|
||||||
|
dunst
|
||||||
|
mako
|
||||||
|
rofi
|
||||||
|
cargo
|
||||||
|
)
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || {
|
||||||
|
echo "${ERROR} Failed to change directory to $PARENT_DIR"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Source the global functions script
|
||||||
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
|
echo "Failed to source Global_functions.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hypr-pkgs.log"
|
||||||
|
|
||||||
|
# conflicting packages removal
|
||||||
|
overall_failed=0
|
||||||
|
printf "\n%s - ${SKY_BLUE}Removing some packages${RESET} as it conflicts with KooL's Hyprland Dots \n" "${NOTE}"
|
||||||
|
for PKG in "${uninstall[@]}"; do
|
||||||
|
uninstall_package "$PKG" 2>&1 | tee -a "$LOG"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
overall_failed=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $overall_failed -ne 0 ]; then
|
||||||
|
echo -e "${ERROR} Some packages failed to uninstall. Please check the log."
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
|
# Installation of main components
|
||||||
|
printf "\n%s - Installing ${SKY_BLUE}KooL's hyprland necessary packages${RESET} .... \n" "${NOTE}"
|
||||||
|
|
||||||
|
for PKG1 in "${hypr_package[@]}" "${hypr_package_2[@]}" "${Extra[@]}"; do
|
||||||
|
install_package "$PKG1" "$LOG"
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
|
for PKG2 in "${force[@]}"; do
|
||||||
|
re_install_package "$PKG2" "$LOG"
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
# install YAD from assets. NOTE This is downloaded from SID repo and sometimes
|
||||||
|
# Trixie is removing YAD for some strange reasons
|
||||||
|
# Check if yad is installed
|
||||||
|
if ! command -v yad &>/dev/null; then
|
||||||
|
echo "${INFO} Installing ${YELLOW}YAD from assets${RESET} ..."
|
||||||
|
sudo dpkg -i assets/yad_0.40.0-1+b2_amd64.deb
|
||||||
|
sudo apt install -f -y
|
||||||
|
echo "${INFO} ${YELLOW}YAD from assets${RESET} succesfully installed ..."
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
|
# Install up-to-date Rust
|
||||||
|
echo "${INFO} Installing most ${YELLOW}up to date Rust compiler${RESET} ..."
|
||||||
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 2>&1 | tee -a "$LOG"
|
||||||
|
source "$HOME/.cargo/env"
|
||||||
|
|
||||||
|
## making brightnessctl work
|
||||||
|
sudo chmod +s $(which brightnessctl) 2>&1 | tee -a "$LOG" || true
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
79
install-scripts/02-pre-cleanup.sh
Executable file
79
install-scripts/02-pre-cleanup.sh
Executable file
@ -0,0 +1,79 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This script is cleaning up previous manual installation files / directories
|
||||||
|
|
||||||
|
# 22 Aug 2024
|
||||||
|
# Files to be removed from /usr/local/bin
|
||||||
|
|
||||||
|
TARGET_DIR="/usr/local/bin"
|
||||||
|
|
||||||
|
# Define packages to manually remove (was manually installed previously)
|
||||||
|
PACKAGES=(
|
||||||
|
cliphist
|
||||||
|
pypr
|
||||||
|
swappy
|
||||||
|
waybar
|
||||||
|
magick
|
||||||
|
)
|
||||||
|
|
||||||
|
# List of packages installed from Debian-Hyprland repo
|
||||||
|
uninstall=(
|
||||||
|
hyprland
|
||||||
|
xdg-desktop-portal-hyprland
|
||||||
|
libhhyprland-dev
|
||||||
|
libhyprutils-dev
|
||||||
|
libhyprutils0
|
||||||
|
hyprwayland-scanner
|
||||||
|
hyprland-protocols
|
||||||
|
hyprctl
|
||||||
|
hyprpm
|
||||||
|
Hyprland
|
||||||
|
)
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
|
# Source the global functions script
|
||||||
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
|
echo "Failed to source Global_functions.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_pre-clean-up.log"
|
||||||
|
|
||||||
|
# Loop through the list of packages
|
||||||
|
for PKG_NAME in "${PACKAGES[@]}"; do
|
||||||
|
# Construct the full path to the file
|
||||||
|
FILE_PATH="$TARGET_DIR/$PKG_NAME"
|
||||||
|
|
||||||
|
# Check if the file exists
|
||||||
|
if [[ -f "$FILE_PATH" ]]; then
|
||||||
|
# Delete the file
|
||||||
|
sudo rm "$FILE_PATH"
|
||||||
|
echo "Deleted: $FILE_PATH" 2>&1 | tee -a "$LOG"
|
||||||
|
else
|
||||||
|
echo "File not found: $FILE_PATH" 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# packages removal installed from Debian-Hyprland repo
|
||||||
|
overall_failed=0
|
||||||
|
printf "\n%s - ${SKY_BLUE}Removing some packages${RESET} installed from Debian Hyprland official repo \n" "${NOTE}"
|
||||||
|
for PKG in "${uninstall[@]}"; do
|
||||||
|
uninstall_package "$PKG" 2>&1 | tee -a "$LOG"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
overall_failed=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $overall_failed -ne 0 ]; then
|
||||||
|
echo -e "${ERROR} Some packages failed to uninstall. Please check the log."
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
108
install-scripts/03-Final-Check.sh
Executable file
108
install-scripts/03-Final-Check.sh
Executable file
@ -0,0 +1,108 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Final checking if packages are installed
|
||||||
|
# NOTE: These package checks are only the essentials
|
||||||
|
|
||||||
|
packages=(
|
||||||
|
imagemagick
|
||||||
|
sway-notification-center
|
||||||
|
waybar
|
||||||
|
wl-clipboard
|
||||||
|
cliphist
|
||||||
|
wlogout
|
||||||
|
kitty
|
||||||
|
)
|
||||||
|
|
||||||
|
# Local packages that should be in /usr/local/bin/
|
||||||
|
local_pkgs_installed=(
|
||||||
|
hyprland
|
||||||
|
rofi
|
||||||
|
hypridle
|
||||||
|
hyprlock
|
||||||
|
wallust
|
||||||
|
)
|
||||||
|
|
||||||
|
local_pkgs_installed_2=(
|
||||||
|
swww
|
||||||
|
)
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
|
# Source the global functions script
|
||||||
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
|
echo "Failed to source Global_functions.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/00_CHECK-$(date +%d-%H%M%S)_installed.log"
|
||||||
|
|
||||||
|
printf "\n%s - Final Check if Essential packages were installed \n" "${NOTE}"
|
||||||
|
# Initialize an empty array to hold missing packages
|
||||||
|
missing=()
|
||||||
|
local_missing=()
|
||||||
|
local_missing_2=()
|
||||||
|
|
||||||
|
# Function to check if a package is installed using dpkg
|
||||||
|
is_installed_dpkg() {
|
||||||
|
dpkg -l | grep -q "^ii $1 "
|
||||||
|
}
|
||||||
|
|
||||||
|
# Loop through each package
|
||||||
|
for pkg in "${packages[@]}"; do
|
||||||
|
# Check if the package is installed via dpkg
|
||||||
|
if ! is_installed_dpkg "$pkg"; then
|
||||||
|
missing+=("$pkg")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Check for local packages
|
||||||
|
for pkg1 in "${local_pkgs_installed[@]}"; do
|
||||||
|
if ! [ -f "/usr/local/bin/$pkg1" ]; then
|
||||||
|
local_missing+=("$pkg1")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Check for local packages in /usr/bin
|
||||||
|
for pkg2 in "${local_pkgs_installed_2[@]}"; do
|
||||||
|
if ! [ -f "/usr/bin/$pkg2" ]; then
|
||||||
|
local_missing_2+=("$pkg2")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Log missing packages
|
||||||
|
if [ ${#missing[@]} -eq 0 ] && [ ${#local_missing[@]} -eq 0 ] && [ ${#local_missing_2[@]} -eq 0 ]; then
|
||||||
|
echo "${OK} GREAT! All ${YELLOW}essential packages${RESET} have been successfully installed." | tee -a "$LOG"
|
||||||
|
else
|
||||||
|
if [ ${#missing[@]} -ne 0 ]; then
|
||||||
|
echo "${WARN} The following packages are not installed and will be logged:"
|
||||||
|
for pkg in "${missing[@]}"; do
|
||||||
|
echo "$pkg"
|
||||||
|
echo "$pkg" >> "$LOG" # Log the missing package to the file
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ${#local_missing[@]} -ne 0 ]; then
|
||||||
|
echo "${WARN} The following local packages are missing from /usr/local/bin/ and will be logged:"
|
||||||
|
for pkg1 in "${local_missing[@]}"; do
|
||||||
|
echo "$pkg1 is not installed. can't find it in /usr/local/bin/"
|
||||||
|
echo "$pkg1" >> "$LOG" # Log the missing local package to the file
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ${#local_missing_2[@]} -ne 0 ]; then
|
||||||
|
echo "${WARN} The following local packages are missing from /usr/bin/ and will be logged:"
|
||||||
|
for pkg2 in "${local_missing_2[@]}"; do
|
||||||
|
echo "$pkg2 is not installed. can't find it in /usr/bin/"
|
||||||
|
echo "$pkg2" >> "$LOG" # Log the missing local package to the file
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Add a timestamp when the missing packages were logged
|
||||||
|
echo "${NOTE} Missing packages logged at $(date)" >> "$LOG"
|
||||||
|
fi
|
||||||
126
install-scripts/Global_functions.sh
Executable file
126
install-scripts/Global_functions.sh
Executable file
@ -0,0 +1,126 @@
|
|||||||
|
#!/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)"
|
||||||
|
INFO="$(tput setaf 4)[INFO]$(tput sgr0)"
|
||||||
|
WARN="$(tput setaf 1)[WARN]$(tput sgr0)"
|
||||||
|
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
||||||
|
MAGENTA="$(tput setaf 5)"
|
||||||
|
ORANGE="$(tput setaf 214)"
|
||||||
|
WARNING="$(tput setaf 1)"
|
||||||
|
YELLOW="$(tput setaf 3)"
|
||||||
|
GREEN="$(tput setaf 2)"
|
||||||
|
BLUE="$(tput setaf 4)"
|
||||||
|
SKY_BLUE="$(tput setaf 6)"
|
||||||
|
RESET="$(tput sgr0)"
|
||||||
|
|
||||||
|
# Create Directory for Install Logs
|
||||||
|
if [ ! -d Install-Logs ]; then
|
||||||
|
mkdir Install-Logs
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Show progress function
|
||||||
|
show_progress() {
|
||||||
|
local pid=$1
|
||||||
|
local package_name=$2
|
||||||
|
local spin_chars=("●○○○○○○○○○" "○●○○○○○○○○" "○○●○○○○○○○" "○○○●○○○○○○" "○○○○●○○○○" \
|
||||||
|
"○○○○○●○○○○" "○○○○○○●○○○" "○○○○○○○●○○" "○○○○○○○○●○" "○○○○○○○○○●")
|
||||||
|
local i=0
|
||||||
|
|
||||||
|
tput civis
|
||||||
|
printf "\r${INFO} Installing ${YELLOW}%s${RESET} ..." "$package_name"
|
||||||
|
|
||||||
|
while ps -p $pid &> /dev/null; do
|
||||||
|
printf "\r${INFO} Installing ${YELLOW}%s${RESET} %s" "$package_name" "${spin_chars[i]}"
|
||||||
|
i=$(( (i + 1) % 10 ))
|
||||||
|
sleep 0.3
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "\r${INFO} Installing ${YELLOW}%s${RESET} ... Done!%-20s \n\n" "$package_name" ""
|
||||||
|
tput cnorm
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Function for installing packages with a progress bar
|
||||||
|
install_package() {
|
||||||
|
if dpkg -l | grep -q -w "$1" ; then
|
||||||
|
echo -e "${INFO} ${MAGENTA}$1${RESET} is already installed. Skipping..."
|
||||||
|
else
|
||||||
|
(
|
||||||
|
stdbuf -oL sudo apt install -y "$1" 2>&1
|
||||||
|
) >> "$LOG" 2>&1 &
|
||||||
|
PID=$!
|
||||||
|
show_progress $PID "$1"
|
||||||
|
|
||||||
|
# Double check if the package successfully installed
|
||||||
|
if dpkg -l | grep -q -w "$1"; then
|
||||||
|
echo -e "\e[1A\e[K${OK} Package ${YELLOW}$1${RESET} has been successfully installed!"
|
||||||
|
else
|
||||||
|
echo -e "\e[1A\e[K${ERROR} ${YELLOW}$1${RESET} failed to install. Please check the install.log. You may need to install it manually. Sorry, I have tried :("
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function for build depencies with a progress bar
|
||||||
|
build_dep() {
|
||||||
|
echo -e "${INFO} building dependencies for ${MAGENTA}$1${RESET} "
|
||||||
|
(
|
||||||
|
stdbuf -oL sudo apt build-dep -y "$1" 2>&1
|
||||||
|
) >> "$LOG" 2>&1 &
|
||||||
|
PID=$!
|
||||||
|
show_progress $PID "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function for cargo install with a progress bar
|
||||||
|
cargo_install() {
|
||||||
|
echo -e "${INFO} installing ${MAGENTA}$1${RESET} using cargo..."
|
||||||
|
(
|
||||||
|
stdbuf -oL cargo install "$1" 2>&1
|
||||||
|
) >> "$LOG" 2>&1 &
|
||||||
|
PID=$!
|
||||||
|
show_progress $PID "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function for re-installing packages with a progress bar
|
||||||
|
re_install_package() {
|
||||||
|
(
|
||||||
|
stdbuf -oL sudo apt install --reinstall -y "$1" 2>&1
|
||||||
|
) >> "$LOG" 2>&1 &
|
||||||
|
|
||||||
|
PID=$!
|
||||||
|
show_progress $PID "$1"
|
||||||
|
|
||||||
|
if dpkg -l | grep -q -w "$1"; then
|
||||||
|
echo -e "\e[1A\e[K${OK} Package ${YELLOW}$1${RESET} has been successfully re-installed!"
|
||||||
|
else
|
||||||
|
# Package not found, reinstallation failed
|
||||||
|
echo -e "${ERROR} ${YELLOW}$1${RESET} failed to re-install. Please check the install.log. You may need to install it manually. Sorry, I have tried :("
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function for removing packages
|
||||||
|
uninstall_package() {
|
||||||
|
local pkg="$1"
|
||||||
|
|
||||||
|
# Checking if package is installed
|
||||||
|
if sudo dpkg -l | grep -q -w "^ii $1" ; then
|
||||||
|
echo -e "${NOTE} removing $pkg ..."
|
||||||
|
sudo apt autoremove -y "$1" >> "$LOG" 2>&1 | grep -v "error: target not found"
|
||||||
|
|
||||||
|
if ! dpkg -l | grep -q -w "^ii $1" ; then
|
||||||
|
echo -e "\e[1A\e[K${OK} ${MAGENTA}$1${RESET} removed."
|
||||||
|
else
|
||||||
|
echo -e "\e[1A\e[K${ERROR} $pkg Removal failed. No actions required."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo -e "${INFO} Package $pkg not installed, skipping."
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
65
install-scripts/InputGroup.sh
Normal file → Executable file
65
install-scripts/InputGroup.sh
Normal file → Executable file
@ -1,55 +1,34 @@
|
|||||||
#!/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! ######################################
|
## 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 )"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
# Change the working directory to the parent directory of the script
|
# Change the working directory to the parent directory of the script
|
||||||
PARENT_DIR="$SCRIPT_DIR/.."
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
cd "$PARENT_DIR" || exit 1
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
# Set some colors for output messages
|
# Source the global functions script
|
||||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
echo "Failed to source Global_functions.sh"
|
||||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
exit 1
|
||||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
fi
|
||||||
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
|
# Check if the 'input' group exists
|
||||||
echo "${WARN} This script will add or remove your user from the 'input' group."
|
if grep -q '^input:' /etc/group; then
|
||||||
echo "${NOTE} Please note that adding yourself to the 'input' group might be necessary for waybar keyboard-state functionality."
|
echo "${OK} ${MAGENTA}input${RESET} group exists."
|
||||||
|
else
|
||||||
|
echo "${NOTE} ${MAGENTA}input${RESET} group doesn't exist. Creating ${MAGENTA}input${RESET} group..."
|
||||||
|
sudo groupadd input
|
||||||
|
echo "${MAGENTA}input${RESET} group created" >> "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
read -p "${YELLOW}Do you want to proceed? (y/n): ${RESET}" choice
|
# Add the user to the 'input' group
|
||||||
|
sudo usermod -aG input "$(whoami)"
|
||||||
|
echo "${OK} ${YELLOW}user${RESET} added to the ${MAGENTA}input${RESET} group. Changes will take effect after you log out and log back in." >> "$LOG"
|
||||||
|
|
||||||
if [[ $choice == "y" || $choice == "Y" ]]; then
|
printf "\n%.0s" {1..2}
|
||||||
# Check if the 'input' group exists
|
|
||||||
if grep -q '^input:' /etc/group; then
|
|
||||||
echo "${OK} 'input' group exists."
|
|
||||||
else
|
|
||||||
echo "${NOTE} 'input' group doesn't exist. Creating 'input' group..."
|
|
||||||
sudo groupadd input
|
|
||||||
|
|
||||||
# Log the creation of the 'input' group
|
|
||||||
echo "$(date '+%Y-%m-%d %H:%M:%S') - 'input' group created" >> "$LOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add the user to the input group
|
|
||||||
sudo usermod -aG input "$(whoami)"
|
|
||||||
echo "${OK} User added to the 'input' group. Changes will take effect after you log out and log back in."
|
|
||||||
|
|
||||||
# Log the addition of the user to the 'input' group
|
|
||||||
echo "$(date '+%Y-%m-%d %H:%M:%S') - User added to 'input' group" >> "$LOG"
|
|
||||||
break # Break out of the loop if 'yes' is chosen
|
|
||||||
elif [[ $choice == "n" || $choice == "N" ]]; then
|
|
||||||
echo "${NOTE} No changes made. Exiting the script."
|
|
||||||
break # Break out of the loop if 'no' is chosen
|
|
||||||
else
|
|
||||||
echo "${ERROR} Invalid choice. Please enter 'y' for yes or 'n' for no."
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
214
install-scripts/ags.sh
Executable file
214
install-scripts/ags.sh
Executable file
@ -0,0 +1,214 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Aylur's GTK Shell #
|
||||||
|
|
||||||
|
ags=(
|
||||||
|
node-typescript
|
||||||
|
npm
|
||||||
|
meson
|
||||||
|
libgjs-dev
|
||||||
|
gjs
|
||||||
|
gobject-introspection
|
||||||
|
libgirepository1.0-dev
|
||||||
|
gir1.2-gtk-4.0
|
||||||
|
gir1.2-gtklayershell-0.1
|
||||||
|
libgtk-layer-shell-dev
|
||||||
|
libgtk-3-dev
|
||||||
|
libadwaita-1-dev
|
||||||
|
libpam0g-dev
|
||||||
|
libpulse-dev
|
||||||
|
libdbusmenu-gtk3-dev
|
||||||
|
libsoup-3.0-dev
|
||||||
|
ninja-build
|
||||||
|
build-essential
|
||||||
|
pkg-config
|
||||||
|
)
|
||||||
|
|
||||||
|
f_ags=(
|
||||||
|
npm
|
||||||
|
)
|
||||||
|
|
||||||
|
build_dep=(
|
||||||
|
pam
|
||||||
|
)
|
||||||
|
|
||||||
|
# specific tags to download
|
||||||
|
ags_tag="v1.9.0"
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
|
# Source the global functions script
|
||||||
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
|
echo "Failed to source Global_functions.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_ags.log"
|
||||||
|
MLOG="install-$(date +%d-%H%M%S)_ags2.log"
|
||||||
|
|
||||||
|
# Check if AGS is installed
|
||||||
|
if command -v ags &>/dev/null; then
|
||||||
|
AGS_VERSION=$(ags -v | awk '{print $NF}')
|
||||||
|
if [[ "$AGS_VERSION" == "1.9.0" ]]; then
|
||||||
|
printf "${INFO} ${MAGENTA}Aylur's GTK Shell v1.9.0${RESET} is already installed.\n"
|
||||||
|
read -r -p "Reinstall v1.9.0 anyway? [y/N]: " REPLY
|
||||||
|
case "$REPLY" in
|
||||||
|
[yY]|[yY][eE][sS])
|
||||||
|
printf "${NOTE} Reinstalling Aylur's GTK Shell v1.9.0...\n"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
printf "Skipping reinstallation.\n"
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Installation of main components
|
||||||
|
printf "\n%s - Installing ${SKY_BLUE}Aylur's GTK shell $ags_tag${RESET} Dependencies \n" "${INFO}"
|
||||||
|
|
||||||
|
# Installing ags Dependencies
|
||||||
|
for PKG1 in "${ags[@]}"; do
|
||||||
|
install_package "$PKG1" "$LOG"
|
||||||
|
done
|
||||||
|
|
||||||
|
for force_ags in "${f_ags[@]}"; do
|
||||||
|
re_install_package "$force_ags" 2>&1 | tee -a "$LOG"
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
|
for PKG1 in "${build_dep[@]}"; do
|
||||||
|
build_dep "$PKG1" "$LOG"
|
||||||
|
done
|
||||||
|
|
||||||
|
#install typescript by npm
|
||||||
|
sudo npm install --global typescript 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
|
# ags v1
|
||||||
|
printf "${NOTE} Install and Compiling ${SKY_BLUE}Aylur's GTK shell $ags_tag${RESET}..\n"
|
||||||
|
|
||||||
|
# Remove previous sources (both legacy "ags" and tagged "ags_v1.9.0")
|
||||||
|
for SRC_DIR in "ags" "ags_v1.9.0"; do
|
||||||
|
if [ -d "$SRC_DIR" ]; then
|
||||||
|
printf "${NOTE} Removing existing %s directory...\\n" "$SRC_DIR"
|
||||||
|
rm -rf "$SRC_DIR"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
printf "${INFO} Kindly Standby...cloning and compiling ${SKY_BLUE}Aylur's GTK shell $ags_tag${RESET}...\n"
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
# Clone repository with the specified tag and capture git output into MLOG
|
||||||
|
if git clone --depth=1 https://github.com/JaKooLit/ags_v1.9.0.git; then
|
||||||
|
cd ags_v1.9.0 || exit 1
|
||||||
|
npm install
|
||||||
|
meson setup build
|
||||||
|
if sudo meson install -C build 2>&1 | tee -a "$MLOG"; then
|
||||||
|
printf "\n${OK} ${YELLOW}Aylur's GTK shell $ags_tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
|
|
||||||
|
# Patch installed AGS launchers to ensure GI typelibs in /usr/local/lib are discoverable in GJS ESM
|
||||||
|
printf "${NOTE} Applying AGS launcher patch for GI typelibs search path...\n"
|
||||||
|
|
||||||
|
patch_ags_launcher() {
|
||||||
|
local target="$1"
|
||||||
|
if ! sudo test -f "$target"; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 1) Remove deprecated GIR Repository path tweaks and GIRepository import (harmless if absent)
|
||||||
|
sudo sed -i \
|
||||||
|
-e '/Repository\.prepend_search_path/d' \
|
||||||
|
-e '/Repository\.prepend_library_path/d' \
|
||||||
|
-e '/gi:\/\/GIRepository/d' \
|
||||||
|
"$target"
|
||||||
|
|
||||||
|
# 2) Ensure GLib import exists (insert after first import line, or at top if none)
|
||||||
|
if ! sudo grep -q '^import GLib from "gi://GLib";' "$target"; then
|
||||||
|
TMPF=$(sudo mktemp)
|
||||||
|
sudo awk 'BEGIN{added=0} {
|
||||||
|
if (!added && $0 ~ /^import /) { print; print "import GLib from \"gi://GLib\";"; added=1; next }
|
||||||
|
print
|
||||||
|
} END { if (!added) print "import GLib from \"gi://GLib\";" }' "$target" | sudo tee "$TMPF" >/dev/null
|
||||||
|
sudo mv "$TMPF" "$target"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 3) Inject GI_TYPELIB_PATH export right after the GLib import (once)
|
||||||
|
if ! sudo grep -q 'GLib.setenv("GI_TYPELIB_PATH"' "$target"; then
|
||||||
|
TMPF=$(sudo mktemp)
|
||||||
|
sudo awk '{print} $0 ~ /^import GLib from "gi:\/\/GLib";$/ {print "const __old = GLib.getenv(\"GI_TYPELIB_PATH\");"; print "GLib.setenv(\"GI_TYPELIB_PATH\", \"/usr/local/lib/x86_64-linux-gnu:/usr/local/lib64:/usr/local/lib:/usr/local/lib64/girepository-1.0:/usr/local/lib/girepository-1.0:/usr/local/lib/x86_64-linux-gnu/girepository-1.0:/usr/lib/x86_64-linux-gnu/girepository-1.0:/usr/lib/girepository-1.0:/usr/lib/ags:/usr/local/lib/ags:/usr/lib64/ags\" + (__old ? \":\" + __old : \"\"), true);"; print "const __oldld = GLib.getenv(\"LD_LIBRARY_PATH\");"; print "GLib.setenv(\"LD_LIBRARY_PATH\", \"/usr/local/lib/x86_64-linux-gnu:/usr/local/lib64:/usr/local/lib\" + (__oldld ? \":\" + __oldld : \"\"), true);"}' "$target" | sudo tee "$TMPF" >/dev/null
|
||||||
|
sudo mv "$TMPF" "$target"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 4) Ensure LD_LIBRARY_PATH export exists even if GI_TYPELIB_PATH was already present
|
||||||
|
if ! sudo grep -q 'GLib.setenv("LD_LIBRARY_PATH"' "$target"; then
|
||||||
|
TMPF=$(sudo mktemp)
|
||||||
|
sudo awk '{print} $0 ~ /^import GLib from "gi:\/\/GLib";$/ {print "const __oldld = GLib.getenv(\"LD_LIBRARY_PATH\");"; print "GLib.setenv(\"LD_LIBRARY_PATH\", \"/usr/local/lib64:/usr/local/lib\" + (__oldld ? \":\" + __oldld : \"\"), true);"}' "$target" | sudo tee "$TMPF" >/dev/null
|
||||||
|
sudo mv "$TMPF" "$target"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Restore executable bit for bin wrappers (mv from mktemp resets mode to 0600)
|
||||||
|
case "$target" in
|
||||||
|
*/bin/ags)
|
||||||
|
sudo chmod 0755 "$target" || true
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
printf "${OK} Patched: %s\n" "$target"
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Try common locations
|
||||||
|
for CAND in \
|
||||||
|
"/usr/local/share/com.github.Aylur.ags/com.github.Aylur.ags" \
|
||||||
|
"/usr/share/com.github.Aylur.ags/com.github.Aylur.ags" \
|
||||||
|
"/usr/local/bin/ags" \
|
||||||
|
"/usr/bin/ags"; do
|
||||||
|
patch_ags_launcher "$CAND" || true
|
||||||
|
done
|
||||||
|
|
||||||
|
# Create an env-setting wrapper for AGS to ensure GI typelibs/libs are discoverable
|
||||||
|
printf "${NOTE} Creating env wrapper /usr/local/bin/ags...\n"
|
||||||
|
sudo tee /usr/local/bin/ags >/dev/null <<'WRAP'
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
cd "$HOME" 2>/dev/null || true
|
||||||
|
# Locate AGS ESM entry
|
||||||
|
MAIN_JS="/usr/local/share/com.github.Aylur.ags/com.github.Aylur.ags"
|
||||||
|
if [ ! -f "$MAIN_JS" ]; then
|
||||||
|
MAIN_JS="/usr/share/com.github.Aylur.ags/com.github.Aylur.ags"
|
||||||
|
fi
|
||||||
|
if [ ! -f "$MAIN_JS" ]; then
|
||||||
|
echo "Unable to find AGS entry script (com.github.Aylur.ags) in /usr/local/share or /usr/share" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# Ensure GI typelibs and native libs are discoverable before gjs ESM loads
|
||||||
|
export GI_TYPELIB_PATH="/usr/local/lib/x86_64-linux-gnu:/usr/local/lib64:/usr/local/lib:/usr/local/lib64/girepository-1.0:/usr/local/lib/girepository-1.0:/usr/local/lib/x86_64-linux-gnu/girepository-1.0:/usr/lib/x86_64-linux-gnu/girepository-1.0:/usr/lib/girepository-1.0:/usr/lib64/girepository-1.0:/usr/lib/ags:/usr/local/lib/ags:/usr/lib64/ags:${GI_TYPELIB_PATH-}"
|
||||||
|
export LD_LIBRARY_PATH="/usr/local/lib/x86_64-linux-gnu:/usr/local/lib64:/usr/local/lib:${LD_LIBRARY_PATH-}"
|
||||||
|
exec /usr/bin/gjs -m "$MAIN_JS" "$@"
|
||||||
|
WRAP
|
||||||
|
sudo chmod 0755 /usr/local/bin/ags
|
||||||
|
# Ensure ESM entry is readable by gjs
|
||||||
|
sudo chmod 0644 /usr/local/share/com.github.Aylur.ags/com.github.Aylur.ags 2>/dev/null || true
|
||||||
|
sudo chmod 0644 /usr/share/com.github.Aylur.ags/com.github.Aylur.ags 2>/dev/null || true
|
||||||
|
printf "${OK} AGS wrapper installed at /usr/local/bin/ags\n"
|
||||||
|
else
|
||||||
|
echo -e "\n${ERROR} ${YELLOW}Aylur's GTK shell $ags_tag${RESET} Installation failed\n " 2>&1 | tee -a "$MLOG"
|
||||||
|
fi
|
||||||
|
# Move logs to Install-Logs directory
|
||||||
|
mv "$MLOG" ../Install-Logs/ || true
|
||||||
|
cd ..
|
||||||
|
else
|
||||||
|
echo -e "\n${ERROR} Failed to download ${YELLOW}Aylur's GTK shell $ags_tag${RESET} Please check your connection\n" 2>&1 | tee -a "$LOG"
|
||||||
|
mv "$MLOG" ../Install-Logs/ || true
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
66
install-scripts/aquamarine.sh
Executable file
66
install-scripts/aquamarine.sh
Executable file
@ -0,0 +1,66 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Hypr Ecosystem #
|
||||||
|
# aquamarine #
|
||||||
|
|
||||||
|
|
||||||
|
#specific branch or release
|
||||||
|
tag="v0.10.0"
|
||||||
|
# Allow environment override
|
||||||
|
if [ -n "${AQUAMARINE_TAG:-}" ]; then tag="$AQUAMARINE_TAG"; fi
|
||||||
|
|
||||||
|
# Dry-run support
|
||||||
|
DO_INSTALL=1
|
||||||
|
if [ "$1" = "--dry-run" ] || [ "${DRY_RUN}" = "1" ] || [ "${DRY_RUN}" = "true" ]; then
|
||||||
|
DO_INSTALL=0
|
||||||
|
echo "${NOTE} DRY RUN: install step will be skipped."
|
||||||
|
fi
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
|
# Source the global functions script
|
||||||
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
|
echo "Failed to source Global_functions.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_aquamarine.log"
|
||||||
|
MLOG="install-$(date +%d-%H%M%S)_aquamarine.log"
|
||||||
|
|
||||||
|
# Installation of dependencies
|
||||||
|
printf "\n%s - Installing ${YELLOW}aquamarine dependencies${RESET} .... \n" "${INFO}"
|
||||||
|
|
||||||
|
# Check if aquamarinedirectory exists and remove it
|
||||||
|
if [ -d "aquamarine" ]; then
|
||||||
|
rm -rf "aquamarine"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Clone and build
|
||||||
|
printf "${INFO} Installing ${YELLOW}aquamarine $tag${RESET} ...\n"
|
||||||
|
if git clone --recursive -b $tag https://github.com/hyprwm/aquamarine.git; then
|
||||||
|
cd aquamarine || exit 1
|
||||||
|
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B ./build
|
||||||
|
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
|
||||||
|
if [ $DO_INSTALL -eq 1 ]; then
|
||||||
|
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||||
|
printf "${OK} ${MAGENTA}aquamarine $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Installation failed for ${YELLOW}aquamarine $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "${NOTE} DRY RUN: Skipping installation of aquamarine $tag."
|
||||||
|
fi
|
||||||
|
#moving the addional logs to Install-Logs directory
|
||||||
|
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||||
|
cd ..
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Download failed for ${YELLOW}aquamarine $tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
63
install-scripts/bluetooth.sh
Normal file → Executable file
63
install-scripts/bluetooth.sh
Normal file → Executable file
@ -1,64 +1,35 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Bluetooth #
|
||||||
|
|
||||||
blue=(
|
blue=(
|
||||||
bluez
|
bluez
|
||||||
blueman
|
blueman
|
||||||
)
|
)
|
||||||
|
|
||||||
|
## 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 dont know what you are doing! ######################################
|
|
||||||
# Determine the directory where the script is located
|
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
# Change the working directory to the parent directory of the script
|
# Change the working directory to the parent directory of the script
|
||||||
PARENT_DIR="$SCRIPT_DIR/.."
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
cd "$PARENT_DIR" || exit 1
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
# Set some colors for output messages
|
# Source the global functions script
|
||||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
echo "Failed to source Global_functions.sh"
|
||||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
exit 1
|
||||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
fi
|
||||||
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"
|
||||||
|
|
||||||
# Set the script to exit on error
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Function for installing packages
|
|
||||||
install_package() {
|
|
||||||
# Checking if package is already installed
|
|
||||||
if sudo dpkg -l | grep -q -w "$1" ; then
|
|
||||||
echo -e "${OK} $1 is already installed. Skipping..."
|
|
||||||
else
|
|
||||||
# Package not installed
|
|
||||||
echo -e "${NOTE} Installing $1 ..."
|
|
||||||
sudo apt-get install -y "$1" 2>&1 | tee -a "$LOG"
|
|
||||||
# Making sure the package is installed
|
|
||||||
if sudo dpkg -l | grep -q -w "$1" ; 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
|
|
||||||
}
|
|
||||||
|
|
||||||
# Bluetooth
|
# Bluetooth
|
||||||
|
printf "${NOTE} Installing ${SKY_BLUE}Bluetooth${RESET} 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" "$LOG"
|
||||||
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $BLUE install had failed, please check the install.log"; exit 1; }
|
|
||||||
done
|
done
|
||||||
|
|
||||||
printf " Activating Bluetooth Services...\n"
|
printf " Activating ${YELLOW}Bluetooth${RESET} Services...\n"
|
||||||
sudo systemctl enable --now bluetooth.service 2>&1 | tee -a "$LOG"
|
sudo systemctl enable --now bluetooth.service 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
43
install-scripts/dotfiles-branch.sh
Normal file
43
install-scripts/dotfiles-branch.sh
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Hyprland-Dots to download from main #
|
||||||
|
|
||||||
|
#specific branch or release
|
||||||
|
dots_tag="main"
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || {
|
||||||
|
echo "${ERROR} Failed to change directory to $PARENT_DIR"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Source the global functions script
|
||||||
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
|
echo "Failed to source Global_functions.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if Hyprland-Dots exists
|
||||||
|
printf "${NOTE} Cloning and Installing ${SKY_BLUE}KooL's Hyprland Dots for Debian${RESET}....\n"
|
||||||
|
|
||||||
|
# Check if Hyprland-Dots exists
|
||||||
|
if [ -d Hyprland-Dots-Debian ]; then
|
||||||
|
cd Hyprland-Dots-Debian
|
||||||
|
git stash && git pull
|
||||||
|
chmod +x copy.sh
|
||||||
|
./copy.sh
|
||||||
|
else
|
||||||
|
if git clone --depth=1 https://github.com/JaKooLit/Hyprland-Dots Hyprland-Dots-Debian; then
|
||||||
|
cd Hyprland-Dots-Debian || exit 1
|
||||||
|
chmod +x copy.sh
|
||||||
|
./copy.sh
|
||||||
|
else
|
||||||
|
echo -e "$ERROR Can't download ${YELLOW}KooL's Hyprland-Dots-Debian${RESET}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
115
install-scripts/dotfiles.sh
Normal file → Executable file
115
install-scripts/dotfiles.sh
Normal file → Executable file
@ -1,97 +1,66 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Hyprland-Dots to download a specific release #
|
||||||
|
|
||||||
# Set some colors for output messages
|
# Define the specific release version to download
|
||||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
specific_version="v2.3.16"
|
||||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
#specific_version="v2.3.3-Deb-Untu-Hyprland-0.41.2"
|
||||||
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"
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
|
||||||
# Check if Hyprland-Dots.tar.gz exists
|
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
|
||||||
if [ -f Hyprland-Dots.tar.gz ]; then
|
|
||||||
printf "${NOTE} Hyprland-Dots.tar.gz found.\n"
|
|
||||||
|
|
||||||
# Get the version from the existing tarball filename
|
printf "${NOTE} Downloading / Checking for existing Hyprland-Dots-${specific_version}.tar.gz...\n"
|
||||||
existing_version=$(echo Hyprland-Dots.tar.gz | grep -oP 'v\d+\.\d+\.\d+' | sed 's/v//')
|
|
||||||
|
|
||||||
# Fetch the tag_name for the latest release using the GitHub API
|
# Check if the specific release tarball exists
|
||||||
latest_version=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots/releases/latest | grep "tag_name" | cut -d '"' -f 4 | sed 's/v//')
|
if [ -f "Hyprland-Dots-${specific_version}.tar.gz" ]; then
|
||||||
|
printf "${NOTE} Hyprland-Dots-${specific_version}.tar.gz found.\n"
|
||||||
# Check if versions match
|
echo -e "${OK} Hyprland-Dots-${specific_version}.tar.gz is already downloaded."
|
||||||
if [ "$existing_version" = "$latest_version" ]; then
|
|
||||||
echo -e "${OK} Hyprland-Dots.tar.gz is up-to-date with the latest release ($latest_version)."
|
|
||||||
|
|
||||||
# Sleep for 10 seconds before exiting
|
|
||||||
printf "${NOTE} No update found. Sleeping for 10 seconds...\n"
|
|
||||||
sleep 10
|
|
||||||
exit 0
|
exit 0
|
||||||
else
|
|
||||||
echo -e "${WARN} Hyprland-Dots.tar.gz is outdated (Existing version: $existing_version, Latest version: $latest_version)."
|
|
||||||
read -p "Do you want to upgrade to the latest version? (y/n): " upgrade_choice
|
|
||||||
if [ "$upgrade_choice" = "y" ]; then
|
|
||||||
echo -e "${NOTE} Proceeding to download the latest release."
|
|
||||||
|
|
||||||
# Delete existing directories starting with JaKooLit-Hyprland-Dots
|
|
||||||
find . -type d -name 'JaKooLit-Hyprland-Dots*' -exec rm -rf {} +
|
|
||||||
rm -f Hyprland-Dots.tar.gz
|
|
||||||
printf "${WARN} Removed existing Hyprland-Dots.tar.gz.\n"
|
|
||||||
else
|
|
||||||
echo -e "${NOTE} User chose not to upgrade. Exiting..."
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
printf "${NOTE} Downloading the latest Hyprland source code release...\n"
|
printf "${NOTE} Downloading the Hyprland-Dots-${specific_version} source code release...\n"
|
||||||
|
|
||||||
# Fetch the tag name for the latest release using the GitHub API
|
# Fetch the tag name for the specific release using the GitHub API
|
||||||
latest_tag=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots/releases/latest | grep "tag_name" | cut -d '"' -f 4)
|
release_info=$(curl -s "https://api.github.com/repos/JaKooLit/Hyprland-Dots/releases/tags/${specific_version}")
|
||||||
|
if [ -z "$release_info" ]; then
|
||||||
# Check if the tag is obtained successfully
|
echo -e "${ERROR} Unable to fetch information for release ${specific_version}." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log"
|
||||||
if [ -z "$latest_tag" ]; then
|
exit 1
|
||||||
echo -e "${ERROR} Unable to fetch the latest tag information."
|
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Fetch the tarball URL for the latest release using the GitHub API
|
# Get the tarball URL for the specific release
|
||||||
latest_tarball_url=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots/releases/latest | grep "tarball_url" | cut -d '"' -f 4)
|
tarball_url=$(echo "$release_info" | grep "tarball_url" | cut -d '"' -f 4)
|
||||||
|
|
||||||
# Check if the URL is obtained successfully
|
# Check if the URL is obtained successfully
|
||||||
if [ -z "$latest_tarball_url" ]; then
|
if [ -z "$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 release ${specific_version}." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Get the filename from the URL and include the tag name in the file name
|
# Download the specific release source code tarball to the current directory
|
||||||
file_name="Hyprland-Dots-${latest_tag}.tar.gz"
|
if curl -L "$tarball_url" -o "Hyprland-Dots-${specific_version}.tar.gz"; then
|
||||||
|
# Extract the contents of the tarball
|
||||||
|
tar -xzf "Hyprland-Dots-${specific_version}.tar.gz" || exit 1
|
||||||
|
|
||||||
# Download the latest release source code tarball to the current directory
|
# Delete existing Hyprland-Dots
|
||||||
if curl -L "$latest_tarball_url" -o "$file_name"; then
|
rm -rf JaKooLit-Hyprland-Dots
|
||||||
# Extract the contents of the tarball
|
|
||||||
tar -xzf "$file_name" || exit 1
|
|
||||||
|
|
||||||
# delete existing Hyprland-Dots
|
# Identify the extracted directory
|
||||||
rm -rf JaKooLit-Hyprland-Dots
|
extracted_directory=$(tar -tf "Hyprland-Dots-${specific_version}.tar.gz" | grep -o '^[^/]\+' | uniq)
|
||||||
|
|
||||||
# Identify the extracted directory
|
# Rename the extracted directory to JaKooLit-Hyprland-Dots
|
||||||
extracted_directory=$(tar -tf "$file_name" | grep -o '^[^/]\+' | uniq)
|
mv "$extracted_directory" JaKooLit-Hyprland-Dots || exit 1
|
||||||
|
|
||||||
# Rename the extracted directory to JaKooLit-Hyprland-Dots
|
cd "JaKooLit-Hyprland-Dots" || exit 1
|
||||||
mv "$extracted_directory" JaKooLit-Hyprland-Dots || exit 1
|
|
||||||
|
|
||||||
cd "JaKooLit-Hyprland-Dots" || exit 1
|
# Set execute permission for copy.sh and execute it
|
||||||
|
chmod +x copy.sh
|
||||||
|
./copy.sh
|
||||||
|
|
||||||
# Set execute permission for copy.sh and execute it
|
echo -e "${OK} Hyprland-Dots-${specific_version} release downloaded, extracted, and processed successfully. Check JaKooLit-Hyprland-Dots directory for more detailed install logs" 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log"
|
||||||
chmod +x copy.sh
|
|
||||||
./copy.sh 2>&1 | tee -a "../install-$(date +'%d-%H%M%S')_dots.log"
|
|
||||||
|
|
||||||
echo -e "${OK} Latest source code release downloaded, extracted, and processed successfully."
|
|
||||||
else
|
else
|
||||||
echo -e "${ERROR} Failed to download the latest source code release."
|
echo -e "${ERROR} Failed to download Hyprland-Dots-${specific_version} release." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
clear
|
||||||
|
|||||||
98
install-scripts/fonts.sh
Normal file → Executable file
98
install-scripts/fonts.sh
Normal file → Executable file
@ -1,90 +1,80 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Fonts Required #
|
||||||
|
|
||||||
fonts=(
|
fonts=(
|
||||||
fonts-firacode
|
fonts-firacode
|
||||||
fonts-font-awesome
|
fonts-font-awesome
|
||||||
fonts-noto
|
fonts-noto
|
||||||
fonts-noto-cjk
|
fonts-noto-cjk
|
||||||
fonts-noto-color-emoji
|
fonts-noto-color-emoji
|
||||||
)
|
)
|
||||||
|
|
||||||
|
## 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 dont know what you are doing! ######################################
|
|
||||||
# Determine the directory where the script is located
|
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
# Change the working directory to the parent directory of the script
|
# Change the working directory to the parent directory of the script
|
||||||
PARENT_DIR="$SCRIPT_DIR/.."
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
cd "$PARENT_DIR" || exit 1
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
|
# Source the global functions script
|
||||||
# Set some colors for output messages
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
echo "Failed to source Global_functions.sh"
|
||||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
exit 1
|
||||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
fi
|
||||||
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)_fonts.log"
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_fonts.log"
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Function for installing packages
|
|
||||||
install_package() {
|
|
||||||
# Checking if package is already installed
|
|
||||||
if sudo dpkg -l | grep -q -w "$1" ; then
|
|
||||||
echo -e "${OK} $1 is already installed. Skipping..."
|
|
||||||
else
|
|
||||||
# Package not installed
|
|
||||||
echo -e "${NOTE} Installing $1 ..."
|
|
||||||
sudo apt-get install -y "$1" 2>&1 | tee -a "$LOG"
|
|
||||||
# Making sure the package is installed
|
|
||||||
if sudo dpkg -l | grep -q -w "$1" ; 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
|
|
||||||
}
|
|
||||||
|
|
||||||
# Installation of main components
|
# Installation of main components
|
||||||
printf "\n%s - Installing fonts.... \n" "${NOTE}"
|
printf "\n%s - Installing necessary ${SKY_BLUE}fonts${RESET}.... \n" "${NOTE}"
|
||||||
|
|
||||||
for PKG1 in "${fonts[@]}"; do
|
for PKG1 in "${fonts[@]}"; do
|
||||||
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
install_package "$PKG1" "$LOG"
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1A\e[K${ERROR} - $PKG1 install had failed, please check the install.log"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
# jetbrains nerd font. Necessary for waybar
|
# jetbrains nerd font. Necessary for waybar
|
||||||
DOWNLOAD_URL="https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.tar.xz"
|
DOWNLOAD_URL="https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.tar.xz"
|
||||||
# Maximum number of download attempts
|
# Maximum number of download attempts
|
||||||
MAX_ATTEMPTS=3
|
MAX_ATTEMPTS=2
|
||||||
for ((ATTEMPT = 1; ATTEMPT <= MAX_ATTEMPTS; ATTEMPT++)); do
|
for ((ATTEMPT = 1; ATTEMPT <= MAX_ATTEMPTS; ATTEMPT++)); do
|
||||||
curl -OL "$DOWNLOAD_URL" 2>&1 | tee -a "$LOG" && break
|
curl -OL "$DOWNLOAD_URL" 2>&1 | tee -a "$LOG" && break
|
||||||
echo "Download attempt $ATTEMPT failed. Retrying in 2 seconds..." 2>&1 | tee -a "$LOG"
|
echo "Download ${YELLOW}DOWNLOAD_URL${RESET} attempt $ATTEMPT failed. Retrying in 2 seconds..." 2>&1 | tee -a "$LOG"
|
||||||
sleep 2
|
sleep 2
|
||||||
done
|
done
|
||||||
|
|
||||||
# Check if the JetBrainsMono folder exists and delete it if it does
|
# Check if the JetBrainsMono directory exists and delete it if it does
|
||||||
if [ -d ~/.local/share/fonts/JetBrainsMonoNerd ]; then
|
if [ -d ~/.local/share/fonts/JetBrainsMonoNerd ]; then
|
||||||
rm -rf ~/.local/share/fonts/JetBrainsMonoNerd 2>&1 | tee -a "$LOG"
|
rm -rf ~/.local/share/fonts/JetBrainsMonoNerd 2>&1 | tee -a "$LOG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p ~/.local/share/fonts/JetBrainsMonoNerd
|
mkdir -p ~/.local/share/fonts/JetBrainsMonoNerd 2>&1 | tee -a "$LOG"
|
||||||
|
# Extract the new files into the JetBrainsMono directory and log the output
|
||||||
# Extract the new files into the JetBrainsMono folder and log the output
|
|
||||||
tar -xJkf JetBrainsMono.tar.xz -C ~/.local/share/fonts/JetBrainsMonoNerd 2>&1 | tee -a "$LOG"
|
tar -xJkf JetBrainsMono.tar.xz -C ~/.local/share/fonts/JetBrainsMonoNerd 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
|
# Fantasque Mono Nerd Font
|
||||||
|
if wget -q https://github.com/ryanoasis/nerd-fonts/releases/download/v3.3.0/FantasqueSansMono.zip; then
|
||||||
|
mkdir -p "$HOME/.local/share/fonts/FantasqueSansMonoNerd" && unzip -o -q "FantasqueSansMono.zip" -d "$HOME/.local/share/fonts/FantasqueSansMono" && echo "FantasqueSansMono installed successfully" | tee -a "$LOG"
|
||||||
|
else
|
||||||
|
echo -e "\n${ERROR} Failed to download ${YELLOW}Fantasque Sans Mono Nerd Font${RESET} Please check your connection\n" | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Victor Mono-Font
|
||||||
|
if wget -q https://rubjo.github.io/victor-mono/VictorMonoAll.zip; then
|
||||||
|
mkdir -p "$HOME/.local/share/fonts/VictorMono" && unzip -o -q "VictorMonoAll.zip" -d "$HOME/.local/share/fonts/VictorMono" && echo "Victor Font installed successfully" | tee -a "$LOG"
|
||||||
|
else
|
||||||
|
echo -e "\n${ERROR} Failed to download ${YELLOW}Victor Mono Font${RESET} Please check your connection\n" | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
# Update font cache and log the output
|
# Update font cache and log the output
|
||||||
fc-cache -v 2>&1 | tee -a "$LOG"
|
fc-cache -v 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
clear
|
# clean up
|
||||||
|
if [ -d "JetBrainsMono.tar.xz" ]; then
|
||||||
|
rm -r JetBrainsMono.tar.xz 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
@ -1,37 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
force=(
|
|
||||||
imagemagick
|
|
||||||
)
|
|
||||||
|
|
||||||
############## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU'RE 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
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
|
|
||||||
# Set the name of the log file to include the current date and time
|
|
||||||
LOG="install-$(date +'%d-%H%M%S')_force.log"
|
|
||||||
|
|
||||||
|
|
||||||
printf "${NOTE} Force installing packages...\n"
|
|
||||||
for FORCE in "${force[@]}"; do
|
|
||||||
sudo apt-get --reinstall install -y "$FORCE" 2>&1 | tee -a "$LOG"
|
|
||||||
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $CLIP install had failed, please check the install.log"; exit 1; }
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
clear
|
|
||||||
97
install-scripts/gtk_themes.sh
Normal file → Executable file
97
install-scripts/gtk_themes.sh
Normal file → Executable file
@ -1,68 +1,49 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# GTK Themes & ICONS and Sourcing from a different Repo #
|
||||||
|
|
||||||
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
|
engine=(
|
||||||
# Determine the directory where the script is located
|
unzip
|
||||||
|
gtk2-engines-murrine
|
||||||
|
)
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
# Change the working directory to the parent directory of the script
|
# Change the working directory to the parent directory of the script
|
||||||
PARENT_DIR="$SCRIPT_DIR/.."
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
cd "$PARENT_DIR" || exit 1
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
# Set some colors for output messages
|
# Source the global functions script
|
||||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
echo "Failed to source Global_functions.sh"
|
||||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
exit 1
|
||||||
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)_themes.log"
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Function for installing packages
|
|
||||||
install_package() {
|
|
||||||
# Checking if package is already installed
|
|
||||||
if sudo dpkg -l | grep -q -w "$1" ; then
|
|
||||||
echo -e "${OK} $1 is already installed. Skipping..."
|
|
||||||
else
|
|
||||||
# Package not installed
|
|
||||||
echo -e "${NOTE} Installing $1 ..."
|
|
||||||
sudo apt-get install -y "$1" 2>&1 | tee -a "$LOG"
|
|
||||||
# Making sure the package is installed
|
|
||||||
if sudo dpkg -l | grep -q -w "$1" ; 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
|
|
||||||
}
|
|
||||||
|
|
||||||
# installing unzip package to unzip theme packages
|
|
||||||
for PKG1 in unzip; do
|
|
||||||
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\033[1A\033[K${ERROR} - $PKG1 install had failed, please check the install.log"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
printf "${NOTE} Installing Tokyo Theme GTK packages...\n"
|
|
||||||
if wget https://github.com/ljmill/tokyo-night-icons/releases/download/v0.2.0/TokyoNight-SE.tar.bz2; then
|
|
||||||
mkdir -p ~/.icons
|
|
||||||
tar -xvjf TokyoNight-SE.tar.bz2 -C ~/.icons
|
|
||||||
mkdir -p ~/.themes
|
|
||||||
unzip -q "assets/tokyo-themes/Tokyonight-Dark-B.zip" -d ~/.themes || true
|
|
||||||
unzip -q "assets/tokyo-themes/Tokyonight-Light-B.zip" -d ~/.themes || true
|
|
||||||
else
|
|
||||||
echo -e "${ERROR} Download failed for Tokyo Theme GTK packages."
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
tar -xf "assets/Bibata-Modern-Ice.tar.xz" -C ~/.icons 2>&1 | tee -a "$LOG"
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_themes.log"
|
||||||
|
|
||||||
clear
|
|
||||||
|
# installing engine needed for gtk themes
|
||||||
|
for PKG1 in "${engine[@]}"; do
|
||||||
|
install_package "$PKG1" "$LOG"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Check if the directory exists and delete it if present
|
||||||
|
if [ -d "GTK-themes-icons" ]; then
|
||||||
|
echo "$NOTE GTK themes and Icons directory exist..deleting..." 2>&1 | tee -a "$LOG"
|
||||||
|
rm -rf "GTK-themes-icons" 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$NOTE Cloning ${SKY_BLUE}GTK themes and Icons${RESET} repository..." 2>&1 | tee -a "$LOG"
|
||||||
|
if git clone --depth=1 https://github.com/JaKooLit/GTK-themes-icons.git ; then
|
||||||
|
cd GTK-themes-icons
|
||||||
|
chmod +x auto-extract.sh
|
||||||
|
./auto-extract.sh
|
||||||
|
cd ..
|
||||||
|
echo "$OK Extracted GTK Themes & Icons to ~/.icons & ~/.themes directories" 2>&1 | tee -a "$LOG"
|
||||||
|
else
|
||||||
|
echo "$ERROR Download failed for GTK themes and Icons.." 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
68
install-scripts/hyprcursor.sh
Executable file
68
install-scripts/hyprcursor.sh
Executable file
@ -0,0 +1,68 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Hypr Ecosystem #
|
||||||
|
# hyprcursor #
|
||||||
|
|
||||||
|
cursor=(
|
||||||
|
libzip-dev
|
||||||
|
librsvg2-dev
|
||||||
|
)
|
||||||
|
|
||||||
|
#specific branch or release
|
||||||
|
tag="v0.1.13"
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
|
# Source the global functions script
|
||||||
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
|
echo "Failed to source Global_functions.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprcursor.log"
|
||||||
|
MLOG="install-$(date +%d-%H%M%S)_hyprcursor.log"
|
||||||
|
|
||||||
|
# Installation of dependencies
|
||||||
|
printf "\n%s - Installing hyprcursor dependencies.... \n" "${NOTE}"
|
||||||
|
|
||||||
|
for PKG1 in "${cursor[@]}"; 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
|
||||||
|
|
||||||
|
# Check if hyprcursor folder exists and remove it
|
||||||
|
if [ -d "hyprcursor" ]; then
|
||||||
|
printf "${NOTE} Removing existing hyprcursor folder...\n"
|
||||||
|
rm -rf "hyprcursor"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Clone and build
|
||||||
|
printf "${NOTE} Installing hyprcursor...\n"
|
||||||
|
if git clone --recursive -b $tag https://github.com/hyprwm/hyprcursor.git; then
|
||||||
|
cd hyprcursor || exit 1
|
||||||
|
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build
|
||||||
|
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
|
||||||
|
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||||
|
printf "${OK} hyprcursor installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Installation failed for hyprcursor." 2>&1 | tee -a "$MLOG"
|
||||||
|
fi
|
||||||
|
#moving the addional logs to Install-Logs directory
|
||||||
|
mv $MLOG ../Install-Logs/ || true
|
||||||
|
cd ..
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Download failed for hyprcursor." 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
|
|
||||||
78
install-scripts/hyprgraphics.sh
Executable file
78
install-scripts/hyprgraphics.sh
Executable file
@ -0,0 +1,78 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Hypr Ecosystem #
|
||||||
|
# hyprgraphics #
|
||||||
|
|
||||||
|
hyprgraphics=(
|
||||||
|
libmagic
|
||||||
|
)
|
||||||
|
|
||||||
|
#specific branch or release
|
||||||
|
tag="v0.4.0"
|
||||||
|
# Allow environment override
|
||||||
|
if [ -n "${HYPRGRAPHICS_TAG:-}" ]; then tag="$HYPRGRAPHICS_TAG"; fi
|
||||||
|
|
||||||
|
# Dry-run support
|
||||||
|
DO_INSTALL=1
|
||||||
|
if [ "$1" = "--dry-run" ] || [ "${DRY_RUN}" = "1" ] || [ "${DRY_RUN}" = "true" ]; then
|
||||||
|
DO_INSTALL=0
|
||||||
|
echo "${NOTE} DRY RUN: install step will be skipped."
|
||||||
|
fi
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
|
# Source the global functions script
|
||||||
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
|
echo "Failed to source Global_functions.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprgraphics.log"
|
||||||
|
MLOG="install-$(date +%d-%H%M%S)_hyprgraphics2.log"
|
||||||
|
|
||||||
|
# Installation of dependencies
|
||||||
|
printf "\n%s - Installing ${YELLOW}hyprgraphics dependencies${RESET} .... \n" "${INFO}"
|
||||||
|
|
||||||
|
for PKG1 in "${hyprgraphics[@]}"; do
|
||||||
|
re_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
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
|
# Check if hyprgraphics directory exists and remove it
|
||||||
|
if [ -d "hyprgraphics" ]; then
|
||||||
|
rm -rf "hyprgraphics"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Clone and build
|
||||||
|
printf "${INFO} Installing ${YELLOW}hyprgraphics $tag${RESET} ...\n"
|
||||||
|
if git clone --recursive -b $tag https://github.com/hyprwm/hyprgraphics.git; then
|
||||||
|
cd hyprgraphics || exit 1
|
||||||
|
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build
|
||||||
|
cmake --build ./build --config Release --target hyprgraphics -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
|
||||||
|
if [ $DO_INSTALL -eq 1 ]; then
|
||||||
|
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||||
|
printf "${OK} ${MAGENTA}hyprgraphics $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Installation failed for ${YELLOW}hyprgraphics $graphics${RESET}" 2>&1 | tee -a "$MLOG"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "${NOTE} DRY RUN: Skipping installation of hyprgraphics $tag."
|
||||||
|
fi
|
||||||
|
#moving the addional logs to Install-Logs directory
|
||||||
|
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||||
|
cd ..
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Download failed for ${YELLOW}hyprgraphics $graphics${RESET}" 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
63
install-scripts/hypridle.sh
Executable file
63
install-scripts/hypridle.sh
Executable file
@ -0,0 +1,63 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# hypidle #
|
||||||
|
|
||||||
|
idle=(
|
||||||
|
libsdbus-c++-dev
|
||||||
|
)
|
||||||
|
|
||||||
|
#specific branch or release
|
||||||
|
tag="v0.1.6"
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
|
# Source the global functions script
|
||||||
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
|
echo "Failed to source Global_functions.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hypridle.log"
|
||||||
|
MLOG="install-$(date +%d-%H%M%S)_hypridle2.log"
|
||||||
|
|
||||||
|
# Installation of dependencies
|
||||||
|
printf "\n%s - Installing ${YELLOW}hypridle dependencies${RESET} .... \n" "${INFO}"
|
||||||
|
|
||||||
|
for PKG1 in "${idle[@]}"; do
|
||||||
|
re_install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo -e "\e[1A\e[K${ERROR} - ${YELLOW}$PKG1${RESET} Package installation failed, Please check the installation logs"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Check if hypridle directory exists and remove it
|
||||||
|
if [ -d "hypridle" ]; then
|
||||||
|
rm -rf "hypridle"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Clone and build
|
||||||
|
printf "${INFO} Installing ${YELLOW}hypridle $tag${RESET} ...\n"
|
||||||
|
if git clone --recursive -b $tag https://github.com/hyprwm/hypridle.git; then
|
||||||
|
cd hypridle || exit 1
|
||||||
|
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B ./build
|
||||||
|
cmake --build ./build --config Release --target hypridle -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
|
||||||
|
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||||
|
printf "${OK} ${MAGENTA}hypridle $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Installation failed for ${YELLOW}hypridle $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||||
|
fi
|
||||||
|
#moving the addional logs to Install-Logs directory
|
||||||
|
mv $MLOG ../Install-Logs/ || true
|
||||||
|
cd ..
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Download failed for ${YELLOW}hypridle $tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
88
install-scripts/hyprland-guiutils.sh
Executable file
88
install-scripts/hyprland-guiutils.sh
Executable file
@ -0,0 +1,88 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Hypr Ecosystem #
|
||||||
|
# hypland-guiutils #
|
||||||
|
|
||||||
|
guiutils=(
|
||||||
|
libqt6core5compat6
|
||||||
|
qt6-base-dev
|
||||||
|
qt6-wayland-dev
|
||||||
|
qt6-wayland
|
||||||
|
qt6-declarative-dev
|
||||||
|
qml6-module-qtcore
|
||||||
|
qt6-3d-dev
|
||||||
|
qt6-5compat-dev
|
||||||
|
libqt6waylandclient6
|
||||||
|
qml6-module-qtwayland-client-texturesharing
|
||||||
|
)
|
||||||
|
|
||||||
|
#specific branch or release
|
||||||
|
tag="v0.2.0"
|
||||||
|
# Allow environment override
|
||||||
|
if [ -n "${HYPRLAND_GUIUTILS_TAG:-}" ]; then tag="$HYPRLAND_GUIUTILS_TAG"; fi
|
||||||
|
|
||||||
|
# Dry-run support
|
||||||
|
DO_INSTALL=1
|
||||||
|
if [ "$1" = "--dry-run" ] || [ "${DRY_RUN}" = "1" ] || [ "${DRY_RUN}" = "true" ]; then
|
||||||
|
DO_INSTALL=0
|
||||||
|
echo "${NOTE} DRY RUN: install step will be skipped."
|
||||||
|
fi
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
|
# Source the global functions script
|
||||||
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
|
echo "Failed to source Global_functions.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprland-guiutils.log"
|
||||||
|
MLOG="install-$(date +%d-%H%M%S)_hyprland-guiutils2.log"
|
||||||
|
|
||||||
|
# Installation of dependencies
|
||||||
|
printf "\n%s - Installing ${YELLOW}hyprland-guiutils dependencies${RESET} .... \n" "${INFO}"
|
||||||
|
|
||||||
|
for PKG1 in "${guiutils[@]}"; do
|
||||||
|
re_install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo -e "\e[1A\e[K${ERROR} - ${YELLOW}$PKG1${RESET} Package installation failed, Please check the installation logs"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
|
# Check if hyprland-guiutils directory exists and remove it
|
||||||
|
if [ -d "hyprland-guiutils" ]; then
|
||||||
|
rm -rf "hyprland-guiutils"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Clone and build
|
||||||
|
printf "${INFO} Installing ${YELLOW}hyprland-guiutils $tag${RESET} ...\n"
|
||||||
|
if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-guiutils.git; then
|
||||||
|
cd hyprland-guiutils || exit 1
|
||||||
|
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build
|
||||||
|
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
|
||||||
|
if [ $DO_INSTALL -eq 1 ]; then
|
||||||
|
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||||
|
printf "${OK} ${MAGENTA}hyprland-guiutils $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Installation failed for ${YELLOW}hyprland-guiutils $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "${NOTE} DRY RUN: Skipping installation of hyprland-guiutils $tag."
|
||||||
|
fi
|
||||||
|
#moving the addional logs to Install-Logs directory
|
||||||
|
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||||
|
cd ..
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Download failed for ${YELLOW}hyprland-guiutils $tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
65
install-scripts/hyprland-protocols.sh
Executable file
65
install-scripts/hyprland-protocols.sh
Executable file
@ -0,0 +1,65 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Hypr Ecosystem #
|
||||||
|
# hypland-protocols #
|
||||||
|
|
||||||
|
|
||||||
|
#specific branch or release
|
||||||
|
tag="v0.7.0"
|
||||||
|
# Allow environment override
|
||||||
|
if [ -n "${HYPRLAND_PROTOCOLS_TAG:-}" ]; then tag="$HYPRLAND_PROTOCOLS_TAG"; fi
|
||||||
|
|
||||||
|
# Dry-run support
|
||||||
|
DO_INSTALL=1
|
||||||
|
if [ "$1" = "--dry-run" ] || [ "${DRY_RUN}" = "1" ] || [ "${DRY_RUN}" = "true" ]; then
|
||||||
|
DO_INSTALL=0
|
||||||
|
echo "${NOTE} DRY RUN: install step will be skipped."
|
||||||
|
fi
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
|
# Source the global functions script
|
||||||
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
|
echo "Failed to source Global_functions.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_protocols.log"
|
||||||
|
MLOG="install-$(date +%d-%H%M%S)_protocols2.log"
|
||||||
|
|
||||||
|
# Installation of dependencies
|
||||||
|
printf "\n%s - Installing ${YELLOW}hyprland-protocols dependencies${RESET} .... \n" "${INFO}"
|
||||||
|
|
||||||
|
# Check if hyprland-protocols directory exists and remove it
|
||||||
|
if [ -d "hyprland-protocols" ]; then
|
||||||
|
rm -rf "hyprland-protocols"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Clone and build
|
||||||
|
printf "${INFO} Installing ${YELLOW}hyprland-protocols $tag${RESET} ...\n"
|
||||||
|
if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-protocols.git; then
|
||||||
|
cd hyprland-protocols || exit 1
|
||||||
|
meson setup build
|
||||||
|
if [ $DO_INSTALL -eq 1 ]; then
|
||||||
|
if sudo meson install -C build 2>&1 | tee -a "$MLOG" ; then
|
||||||
|
printf "${OK} ${MAGENTA}hyprland-protocols $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Installation failed for ${YELLOW}hyprland-protocols $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "${NOTE} DRY RUN: Skipping installation of hyprland-protocols $tag."
|
||||||
|
fi
|
||||||
|
#moving the addional logs to Install-Logs directory
|
||||||
|
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||||
|
cd ..
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Download failed for ${YELLOW}hyprland-protocols tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
86
install-scripts/hyprland-qt-support.sh
Executable file
86
install-scripts/hyprland-qt-support.sh
Executable file
@ -0,0 +1,86 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Hypr Ecosystem #
|
||||||
|
# hypland-qt-support #
|
||||||
|
|
||||||
|
qt_support=(
|
||||||
|
qt6-base-dev
|
||||||
|
qt6-wayland
|
||||||
|
qt6-declarative-dev
|
||||||
|
qml6-module-qtcore
|
||||||
|
qml6-module-qtquick-layouts
|
||||||
|
qt6-tools-dev
|
||||||
|
qt6-tools-dev-tools
|
||||||
|
qt6-charts-dev
|
||||||
|
)
|
||||||
|
|
||||||
|
#specific branch or release
|
||||||
|
tag="v0.1.0"
|
||||||
|
# Allow environment override
|
||||||
|
if [ -n "${HYPRLAND_QT_SUPPORT_TAG:-}" ]; then tag="$HYPRLAND_QT_SUPPORT_TAG"; fi
|
||||||
|
|
||||||
|
# Dry-run support
|
||||||
|
DO_INSTALL=1
|
||||||
|
if [ "$1" = "--dry-run" ] || [ "${DRY_RUN}" = "1" ] || [ "${DRY_RUN}" = "true" ]; then
|
||||||
|
DO_INSTALL=0
|
||||||
|
echo "${NOTE} DRY RUN: install step will be skipped."
|
||||||
|
fi
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
|
# Source the global functions script
|
||||||
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
|
echo "Failed to source Global_functions.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprland-qt-support.log"
|
||||||
|
MLOG="install-$(date +%d-%H%M%S)_hyprland-qt-support2.log"
|
||||||
|
|
||||||
|
# Installation of dependencies
|
||||||
|
printf "\n%s - Installing ${YELLOW}hyprland-qt-support dependencies${RESET} .... \n" "${INFO}"
|
||||||
|
|
||||||
|
for PKG1 in "${qt_support[@]}"; do
|
||||||
|
re_install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo -e "\e[1A\e[K${ERROR} - ${YELLOW}$PKG1${RESET} Package installation failed, Please check the installation logs"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
|
# Check if hyprland-qt-support directory exists and remove it
|
||||||
|
if [ -d "hyprland-qt-support" ]; then
|
||||||
|
rm -rf "hyprland-qt-support"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Clone and build
|
||||||
|
printf "${INFO} Installing ${YELLOW}hyprland-qt-support $tag${RESET} ...\n"
|
||||||
|
if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-qt-support.git; then
|
||||||
|
cd hyprland-qt-support || exit 1
|
||||||
|
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build
|
||||||
|
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
|
||||||
|
if [ $DO_INSTALL -eq 1 ]; then
|
||||||
|
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||||
|
printf "${OK} ${MAGENTA}hyprland-qt-support $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Installation failed for ${YELLOW}hyprland-qt-support $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "${NOTE} DRY RUN: Skipping installation of hyprland-qt-support $tag."
|
||||||
|
fi
|
||||||
|
#moving the addional logs to Install-Logs directory
|
||||||
|
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||||
|
cd ..
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Download failed for ${YELLOW}hyprland-qt-support $tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
134
install-scripts/hyprland.sh
Normal file → Executable file
134
install-scripts/hyprland.sh
Normal file → Executable file
@ -1,20 +1,72 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Main Hyprland Package#
|
||||||
|
|
||||||
# Set some colors for output messages
|
#specific branch or release
|
||||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
tag="v0.52.2"
|
||||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
# Allow environment override
|
||||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
if [ -n "${HYPRLAND_TAG:-}" ]; then tag="$HYPRLAND_TAG"; fi
|
||||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
|
||||||
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
|
# Dry-run support
|
||||||
ORANGE=$(tput setaf 166)
|
DO_INSTALL=1
|
||||||
YELLOW=$(tput setaf 3)
|
if [ "$1" = "--dry-run" ] || [ "${DRY_RUN}" = "1" ] || [ "${DRY_RUN}" = "true" ]; then
|
||||||
RESET=$(tput sgr0)
|
DO_INSTALL=0
|
||||||
|
echo "${NOTE} DRY RUN: install step will be skipped."
|
||||||
|
fi
|
||||||
|
|
||||||
|
hyprland=(
|
||||||
|
clang
|
||||||
|
llvm
|
||||||
|
libxcb-errors-dev
|
||||||
|
libre2-dev
|
||||||
|
libglaze-dev
|
||||||
|
libudis86-dev
|
||||||
|
libinotify-ocaml-dev
|
||||||
|
)
|
||||||
|
|
||||||
|
## 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
|
# 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"
|
||||||
|
MLOG="install-$(date +%d-%H%M%S)_hyprland2.log"
|
||||||
|
|
||||||
|
# Installation of dependencies
|
||||||
|
printf "\n%s - Installing hyprland additional dependencies.... \n" "${NOTE}"
|
||||||
|
|
||||||
|
for PKG1 in "${hyprland[@]}"; 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
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
|
# Installation of dependencies (glaze)
|
||||||
|
printf "\n%s - Installing Hyprland additional dependencies (glaze).... \n" "${NOTE}"
|
||||||
|
|
||||||
|
# Check if /usr/include/glaze exists
|
||||||
|
if [ ! -d /usr/include/glaze ]; then
|
||||||
|
echo "${INFO} ${YELLOW}Glaze${RESET} is not installed. Installing ${YELLOW}glaze from assets${RESET} ..."
|
||||||
|
sudo dpkg -i assets/libglaze-dev_4.4.3-1_all.deb 2>&1 | tee -a "$LOG"
|
||||||
|
sudo apt-get install -f -y 2>&1 | tee -a "$LOG"
|
||||||
|
echo "${INFO} ${YELLOW}libglaze-dev from assets${RESET} installed."
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
# Clone, build, and install Hyprland using Cmake
|
# Clone, build, and install Hyprland using Cmake
|
||||||
printf "${NOTE} Cloning Hyprland...\n"
|
printf "${NOTE} Cloning and Installing ${YELLOW}Hyprland $tag${RESET} ...\n"
|
||||||
|
|
||||||
# Check if Hyprland folder exists and remove it
|
# Check if Hyprland folder exists and remove it
|
||||||
if [ -d "Hyprland" ]; then
|
if [ -d "Hyprland" ]; then
|
||||||
@ -22,18 +74,60 @@ if [ -d "Hyprland" ]; then
|
|||||||
rm -rf "Hyprland" 2>&1 | tee -a "$LOG"
|
rm -rf "Hyprland" 2>&1 | tee -a "$LOG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if git clone --recursive -b v0.32.3 "https://github.com/hyprwm/Hyprland" 2>&1 | tee -a "$LOG"; then
|
if git clone --recursive -b $tag "https://github.com/hyprwm/Hyprland"; then
|
||||||
cd "Hyprland" || exit 1
|
cd "Hyprland" || exit 1
|
||||||
make all 2>&1 | tee -a "$LOG"
|
# Apply patch only if it applies cleanly; otherwise skip
|
||||||
if sudo make install 2>&1 | tee -a "$LOG"; then
|
if [ -f ../assets/0001-fix-hyprland-compile-issue.patch ]; then
|
||||||
printf "${OK} Hyprland installed successfully.\n"
|
if patch -p1 --dry-run < ../assets/0001-fix-hyprland-compile-issue.patch >/dev/null 2>&1; then
|
||||||
|
patch -p1 < ../assets/0001-fix-hyprland-compile-issue.patch
|
||||||
|
else
|
||||||
|
echo "${NOTE} Hyprland compile patch does not apply on $tag; skipping."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# By default, build Hyprland with bundled hyprutils/hyprlang to avoid version mismatches
|
||||||
|
# You can force system libs by exporting USE_SYSTEM_HYPRLIBS=1 before running this script.
|
||||||
|
USE_SYSTEM=${USE_SYSTEM_HYPRLIBS:-1}
|
||||||
|
if [ "$USE_SYSTEM" = "1" ]; then
|
||||||
|
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:${PKG_CONFIG_PATH:-}"
|
||||||
|
export CMAKE_PREFIX_PATH="/usr/local:${CMAKE_PREFIX_PATH:-}"
|
||||||
|
SYSTEM_FLAGS=("-DUSE_SYSTEM_HYPRUTILS=ON" "-DUSE_SYSTEM_HYPRLANG=ON")
|
||||||
else
|
else
|
||||||
echo -e "${ERROR} Installation failed for Hyprland."
|
# Ensure we do not accidentally pick up mismatched system headers
|
||||||
fi
|
unset PKG_CONFIG_PATH || true
|
||||||
|
SYSTEM_FLAGS=("-DUSE_SYSTEM_HYPRUTILS=OFF" "-DUSE_SYSTEM_HYPRLANG=OFF")
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure submodules are present when building bundled deps
|
||||||
|
git submodule update --init --recursive || true
|
||||||
|
|
||||||
|
# Force Clang toolchain to support required language features and flags
|
||||||
|
export CC="${CC:-clang}"
|
||||||
|
export CXX="${CXX:-clang++}"
|
||||||
|
CONFIG_FLAGS=(
|
||||||
|
-DCMAKE_BUILD_TYPE=Release
|
||||||
|
-DCMAKE_C_COMPILER="${CC}"
|
||||||
|
-DCMAKE_CXX_COMPILER="${CXX}"
|
||||||
|
-DCMAKE_CXX_STANDARD=26
|
||||||
|
-DCMAKE_CXX_STANDARD_REQUIRED=ON
|
||||||
|
-DCMAKE_CXX_EXTENSIONS=ON
|
||||||
|
"${SYSTEM_FLAGS[@]}"
|
||||||
|
)
|
||||||
|
cmake -S . -B build "${CONFIG_FLAGS[@]}"
|
||||||
|
cmake --build build -j "$(nproc 2>/dev/null || getconf _NPROCESSORS_CONF)"
|
||||||
|
|
||||||
|
if [ $DO_INSTALL -eq 1 ]; then
|
||||||
|
if sudo cmake --install build 2>&1 | tee -a "$MLOG"; then
|
||||||
|
printf "${OK} ${MAGENTA}Hyprland tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Installation failed for ${YELLOW}Hyprland $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "${NOTE} DRY RUN: Skipping installation of Hyprland $tag."
|
||||||
|
fi
|
||||||
|
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||||
cd ..
|
cd ..
|
||||||
else
|
else
|
||||||
echo -e "${ERROR} Download failed for Hyprland."
|
echo -e "${ERROR} Download failed for ${YELLOW}Hyprland $tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
|
|||||||
66
install-scripts/hyprlang.sh
Executable file
66
install-scripts/hyprlang.sh
Executable file
@ -0,0 +1,66 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Hypr Ecosystem #
|
||||||
|
# hyplang #
|
||||||
|
|
||||||
|
|
||||||
|
#specific branch or release
|
||||||
|
tag="v0.6.7"
|
||||||
|
# Allow environment override
|
||||||
|
if [ -n "${HYPRLANG_TAG:-}" ]; then tag="$HYPRLANG_TAG"; fi
|
||||||
|
|
||||||
|
# Dry-run support
|
||||||
|
DO_INSTALL=1
|
||||||
|
if [ "$1" = "--dry-run" ] || [ "${DRY_RUN}" = "1" ] || [ "${DRY_RUN}" = "true" ]; then
|
||||||
|
DO_INSTALL=0
|
||||||
|
echo "${NOTE} DRY RUN: install step will be skipped."
|
||||||
|
fi
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
|
# Source the global functions script
|
||||||
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
|
echo "Failed to source Global_functions.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprlang.log"
|
||||||
|
MLOG="install-$(date +%d-%H%M%S)_hyprlang2.log"
|
||||||
|
|
||||||
|
# Installation of dependencies
|
||||||
|
printf "\n%s - Installing ${YELLOW}hyprlang dependencies${RESET} .... \n" "${INFO}"
|
||||||
|
|
||||||
|
# Check if hyprlang directory exists and remove it
|
||||||
|
if [ -d "hyprlang" ]; then
|
||||||
|
rm -rf "hyprlang"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Clone and build
|
||||||
|
printf "${INFO} Installing ${YELLOW}hyprlang $tag${RESET} ...\n"
|
||||||
|
if git clone --recursive -b $tag https://github.com/hyprwm/hyprlang.git; then
|
||||||
|
cd hyprlang || exit 1
|
||||||
|
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B ./build
|
||||||
|
cmake --build ./build --config Release --target hyprlang -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
|
||||||
|
if [ $DO_INSTALL -eq 1 ]; then
|
||||||
|
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||||
|
printf "${OK} ${MAGENTA}hyprlang tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Installation failed for ${YELLOW}hyprlang $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "${NOTE} DRY RUN: Skipping installation of hyprlang $tag."
|
||||||
|
fi
|
||||||
|
#moving the addional logs to Install-Logs directory
|
||||||
|
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||||
|
cd ..
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Download failed for ${YELLOW}hyprlang $tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
72
install-scripts/hyprlock.sh
Executable file
72
install-scripts/hyprlock.sh
Executable file
@ -0,0 +1,72 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# hyprlock #
|
||||||
|
|
||||||
|
lock=(
|
||||||
|
libpam0g-dev
|
||||||
|
libgbm-dev
|
||||||
|
libdrm-dev
|
||||||
|
libmagic-dev
|
||||||
|
libaudit-dev
|
||||||
|
libsdbus-c++-dev
|
||||||
|
)
|
||||||
|
|
||||||
|
build_dep=(
|
||||||
|
pam
|
||||||
|
)
|
||||||
|
|
||||||
|
#specific branch or release
|
||||||
|
tag="v0.9.1"
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
|
# Source the global functions script
|
||||||
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
|
echo "Failed to source Global_functions.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprlock.log"
|
||||||
|
MLOG="install-$(date +%d-%H%M%S)_hyprlock2.log"
|
||||||
|
|
||||||
|
# Installation of dependencies
|
||||||
|
printf "\n%s - Installing ${YELLOW}hyprlock dependencies${RESET} .... \n" "${INFO}"
|
||||||
|
|
||||||
|
for PKG1 in "${lock[@]}"; do
|
||||||
|
re_install_package "$PKG1" "$LOG"
|
||||||
|
done
|
||||||
|
|
||||||
|
for PKG1 in "${build_dep[@]}"; do
|
||||||
|
build_dep "$PKG1" "$LOG"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Check if hyprlock directory exists and remove it
|
||||||
|
if [ -d "hyprlock" ]; then
|
||||||
|
rm -rf "hyprlock"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Clone and build hyprlock
|
||||||
|
printf "${INFO} Installing ${YELLOW}hyprlock $tag${RESET} ...\n"
|
||||||
|
if git clone --recursive -b $tag https://github.com/hyprwm/hyprlock.git; then
|
||||||
|
cd hyprlock || exit 1
|
||||||
|
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B ./build
|
||||||
|
cmake --build ./build --config Release --target hyprlock -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
|
||||||
|
if sudo cmake --install build 2>&1 | tee -a "$MLOG" ; then
|
||||||
|
printf "${OK} ${YELLOW}hyprlock $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Installation failed for ${YELLOW}hyprlock $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||||
|
fi
|
||||||
|
#moving the addional logs to Install-Logs directory
|
||||||
|
mv $MLOG ../Install-Logs/ || true
|
||||||
|
cd ..
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Download failed for ${YELLOW}hyprlock $tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
72
install-scripts/hyprpolkitagent.sh
Executable file
72
install-scripts/hyprpolkitagent.sh
Executable file
@ -0,0 +1,72 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Hypr Ecosystem #
|
||||||
|
# hyprpolkitagent #
|
||||||
|
|
||||||
|
polkitagent=(
|
||||||
|
libpolkit-agent-1-dev
|
||||||
|
libpolkit-qt6-1-dev
|
||||||
|
qml6-module-qtquick-layouts
|
||||||
|
qt6-tools-dev
|
||||||
|
qt6-tools-dev-tools
|
||||||
|
qt6-charts-dev
|
||||||
|
)
|
||||||
|
|
||||||
|
#specific branch or release
|
||||||
|
tag="v0.1.3"
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
|
# Source the global functions script
|
||||||
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
|
echo "Failed to source Global_functions.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprpolkitagent.log"
|
||||||
|
MLOG="install-$(date +%d-%H%M%S)_hyprpolkitagent.log"
|
||||||
|
|
||||||
|
# Installation of dependencies
|
||||||
|
printf "\n%s - Installing hyprpolkitagent dependencies.... \n" "${NOTE}"
|
||||||
|
|
||||||
|
for PKG1 in "${polkitagent[@]}"; do
|
||||||
|
re_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
|
||||||
|
|
||||||
|
# Check if hyprpolkitagent folder exists and remove it
|
||||||
|
if [ -d "hyprpolkitagent" ]; then
|
||||||
|
printf "${NOTE} Removing existing hyprpolkitagent folder...\n"
|
||||||
|
rm -rf "hyprpolkitagent"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Clone and build
|
||||||
|
printf "${NOTE} Installing hyprpolkitagent...\n"
|
||||||
|
if git clone --recursive -b $tag https://github.com/hyprwm/hyprpolkitagent.git; then
|
||||||
|
cd hyprpolkitagent || exit 1
|
||||||
|
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build
|
||||||
|
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
|
||||||
|
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||||
|
printf "${OK} hyprpolkitagent installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Installation failed for hyprpolkitagent." 2>&1 | tee -a "$MLOG"
|
||||||
|
fi
|
||||||
|
#moving the addional logs to Install-Logs directory
|
||||||
|
mv $MLOG ../Install-Logs/ || true
|
||||||
|
cd ..
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Download failed for hyprpolkitagent." 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
|
|
||||||
65
install-scripts/hyprtoolkit.sh
Executable file
65
install-scripts/hyprtoolkit.sh
Executable file
@ -0,0 +1,65 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Hypr Ecosystem #
|
||||||
|
# hyprtoolkit #
|
||||||
|
|
||||||
|
#specific branch or release
|
||||||
|
tag="v0.4.1"
|
||||||
|
# Allow environment override
|
||||||
|
if [ -n "${HYPRTOOLKIT_TAG:-}" ]; then tag="$HYPRTOOLKIT_TAG"; fi
|
||||||
|
|
||||||
|
# Dry-run support
|
||||||
|
DO_INSTALL=1
|
||||||
|
if [ "$1" = "--dry-run" ] || [ "${DRY_RUN}" = "1" ] || [ "${DRY_RUN}" = "true" ]; then
|
||||||
|
DO_INSTALL=0
|
||||||
|
echo "${NOTE} DRY RUN: install step will be skipped."
|
||||||
|
fi
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
|
# Source the global functions script
|
||||||
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
|
echo "Failed to source Global_functions.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprtoolkit.log"
|
||||||
|
MLOG="install-$(date +%d-%H%M%S)_hyprtoolkit2.log"
|
||||||
|
|
||||||
|
# Clone, build, and install using Cmake
|
||||||
|
printf "${NOTE} Cloning hyprtoolkit...\n"
|
||||||
|
|
||||||
|
# Check if hyprtoolkit folder exists and remove it
|
||||||
|
if [ -d "hyprtoolkit" ]; then
|
||||||
|
printf "${NOTE} Removing existing hyprtoolkit folder...\n"
|
||||||
|
rm -rf "hyprtoolkit" 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if git clone -b $tag "https://github.com/hyprwm/hyprtoolkit.git"; then
|
||||||
|
cd "hyprtoolkit" || exit 1
|
||||||
|
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B ./build
|
||||||
|
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
|
||||||
|
if [ $DO_INSTALL -eq 1 ]; then
|
||||||
|
if sudo cmake --install build 2>&1 | tee -a "$MLOG"; then
|
||||||
|
printf "${OK} hyprtoolkit installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Installation failed for hyprtoolkit." 2>&1 | tee -a "$MLOG"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "${NOTE} DRY RUN: Skipping installation of hyprtoolkit $tag."
|
||||||
|
fi
|
||||||
|
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||||
|
cd ..
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Download failed for hyprtoolkit" 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
|
|
||||||
65
install-scripts/hyprutils.sh
Executable file
65
install-scripts/hyprutils.sh
Executable file
@ -0,0 +1,65 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Hypr Ecosystem #
|
||||||
|
# hyprutils #
|
||||||
|
|
||||||
|
#specific branch or release
|
||||||
|
tag="v0.10.4"
|
||||||
|
# Allow environment override
|
||||||
|
if [ -n "${HYPRUTILS_TAG:-}" ]; then tag="$HYPRUTILS_TAG"; fi
|
||||||
|
|
||||||
|
# Dry-run support
|
||||||
|
DO_INSTALL=1
|
||||||
|
if [ "$1" = "--dry-run" ] || [ "${DRY_RUN}" = "1" ] || [ "${DRY_RUN}" = "true" ]; then
|
||||||
|
DO_INSTALL=0
|
||||||
|
echo "${NOTE} DRY RUN: install step will be skipped."
|
||||||
|
fi
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
|
# Source the global functions script
|
||||||
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
|
echo "Failed to source Global_functions.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprutils.log"
|
||||||
|
MLOG="install-$(date +%d-%H%M%S)_hyprutils2.log"
|
||||||
|
|
||||||
|
# Clone, build, and install using Cmake
|
||||||
|
printf "${NOTE} Cloning hyprutils...\n"
|
||||||
|
|
||||||
|
# Check if hyprutils folder exists and remove it
|
||||||
|
if [ -d "hyprutils" ]; then
|
||||||
|
printf "${NOTE} Removing existing hyprutils folder...\n"
|
||||||
|
rm -rf "hyprutils" 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if git clone -b $tag "https://github.com/hyprwm/hyprutils.git"; then
|
||||||
|
cd "hyprutils" || exit 1
|
||||||
|
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B ./build
|
||||||
|
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
|
||||||
|
if [ $DO_INSTALL -eq 1 ]; then
|
||||||
|
if sudo cmake --install build 2>&1 | tee -a "$MLOG"; then
|
||||||
|
printf "${OK} hyprutils installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Installation failed for hyprutils." 2>&1 | tee -a "$MLOG"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "${NOTE} DRY RUN: Skipping installation of hyprutils $tag."
|
||||||
|
fi
|
||||||
|
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||||
|
cd ..
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Download failed for hyprutils" 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
|
|
||||||
82
install-scripts/hyprwayland-scanner.sh
Executable file
82
install-scripts/hyprwayland-scanner.sh
Executable file
@ -0,0 +1,82 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Hypr Ecosystem #
|
||||||
|
# hyprwayland-scanner #
|
||||||
|
|
||||||
|
scan_depend=(
|
||||||
|
libpugixml-dev
|
||||||
|
)
|
||||||
|
|
||||||
|
#specific branch or release
|
||||||
|
tag="v0.4.5"
|
||||||
|
# Allow environment override
|
||||||
|
if [ -n "${HYPRWAYLAND_SCANNER_TAG:-}" ]; then tag="$HYPRWAYLAND_SCANNER_TAG"; fi
|
||||||
|
|
||||||
|
# Dry-run support
|
||||||
|
DO_INSTALL=1
|
||||||
|
if [ "$1" = "--dry-run" ] || [ "${DRY_RUN}" = "1" ] || [ "${DRY_RUN}" = "true" ]; then
|
||||||
|
DO_INSTALL=0
|
||||||
|
echo "${NOTE} DRY RUN: install step will be skipped."
|
||||||
|
fi
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
|
# Source the global functions script
|
||||||
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
|
echo "Failed to source Global_functions.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprwayland-scanner.log"
|
||||||
|
MLOG="install-$(date +%d-%H%M%S)_hyprwayland-scanner2.log"
|
||||||
|
|
||||||
|
##
|
||||||
|
# Installation of dependencies
|
||||||
|
printf "\n%s - Installing hyprwayland-scanner dependencies.... \n" "${NOTE}"
|
||||||
|
|
||||||
|
for PKG1 in "${scan_depend[@]}"; 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
|
||||||
|
|
||||||
|
printf "${NOTE} Installing hyprwayland-scanner...\n"
|
||||||
|
|
||||||
|
# Check if hyprwayland-scanner folder exists and remove it
|
||||||
|
if [ -d "hyprwayland-scanner" ]; then
|
||||||
|
printf "${NOTE} Removing existing hyprwayland-scanner folder...\n"
|
||||||
|
rm -rf "hyprwayland-scanner"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Clone and build hyprlang
|
||||||
|
printf "${NOTE} Installing hyprwayland-scanner...\n"
|
||||||
|
if git clone --recursive -b $tag https://github.com/hyprwm/hyprwayland-scanner.git; then
|
||||||
|
cd hyprwayland-scanner || exit 1
|
||||||
|
cmake -DCMAKE_INSTALL_PREFIX=/usr -B build
|
||||||
|
cmake --build build -j `nproc`
|
||||||
|
if [ $DO_INSTALL -eq 1 ]; then
|
||||||
|
if sudo cmake --install build 2>&1 | tee -a "$MLOG" ; then
|
||||||
|
printf "${OK} hyprwayland-scanner installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Installation failed for hyprwayland-scanner." 2>&1 | tee -a "$MLOG"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "${NOTE} DRY RUN: Skipping installation of hyprwayland-scanner $tag."
|
||||||
|
fi
|
||||||
|
#moving the addional logs to Install-Logs directory
|
||||||
|
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||||
|
cd ..
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Download failed for hyprwayland-scanner. Please check log." 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
90
install-scripts/nvidia.sh
Normal file → Executable file
90
install-scripts/nvidia.sh
Normal file → Executable file
@ -1,39 +1,35 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Nvidia - Check Readme for more details for the drivers #
|
||||||
|
# UBUNTU USERS, FOLLOW README!
|
||||||
|
|
||||||
nvidia_pkg=(
|
nvidia_pkg=(
|
||||||
nvidia-driver
|
nvidia-driver
|
||||||
firmware-misc-nonfree
|
firmware-misc-nonfree
|
||||||
nvidia-kernel-dkms
|
nvidia-kernel-dkms
|
||||||
linux-headers-$(uname -r)
|
linux-headers-$(uname -r)
|
||||||
|
libnvidia-egl-wayland1
|
||||||
libva-wayland2
|
libva-wayland2
|
||||||
|
libnvidia-egl-wayland1
|
||||||
nvidia-vaapi-driver
|
nvidia-vaapi-driver
|
||||||
)
|
)
|
||||||
|
|
||||||
# for ubuntu-nvidia owners! just delete #
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
# sudo ubuntu-drivers install
|
|
||||||
|
|
||||||
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
|
|
||||||
# Determine the directory where the script is located
|
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
# Change the working directory to the parent directory of the script
|
# Change the working directory to the parent directory of the script
|
||||||
PARENT_DIR="$SCRIPT_DIR/.."
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
cd "$PARENT_DIR" || exit 1
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
# Set some colors for output messages
|
# Source the global functions script
|
||||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
echo "Failed to source Global_functions.sh"
|
||||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
exit 1
|
||||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
fi
|
||||||
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"
|
||||||
|
MLOG="install-$(date +%d-%H%M%S)_nvidia2.log"
|
||||||
set -e
|
|
||||||
|
|
||||||
## adding the deb source for nvidia driver
|
## adding the deb source for nvidia driver
|
||||||
# Create a backup of the sources.list file
|
# Create a backup of the sources.list file
|
||||||
@ -47,26 +43,6 @@ echo "deb http://deb.debian.org/debian/ trixie main contrib non-free non-free-fi
|
|||||||
# Update the package list
|
# Update the package list
|
||||||
sudo apt update
|
sudo apt update
|
||||||
|
|
||||||
# Function for installing packages
|
|
||||||
install_package() {
|
|
||||||
# Checking if package is already installed
|
|
||||||
if sudo dpkg -l | grep -q -w "$1" ; then
|
|
||||||
echo -e "${OK} $1 is already installed. Skipping..."
|
|
||||||
else
|
|
||||||
# Package not installed
|
|
||||||
echo -e "${NOTE} Installing $1 ..."
|
|
||||||
sudo apt-get install -y "$1" 2>&1 | tee -a "$LOG"
|
|
||||||
# Making sure the package is installed
|
|
||||||
if sudo dpkg -l | grep -q -w "$1" ; 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
|
|
||||||
}
|
|
||||||
|
|
||||||
# Function to add a value to a configuration file if not present
|
# Function to add a value to a configuration file if not present
|
||||||
add_to_file() {
|
add_to_file() {
|
||||||
local config_file="$1"
|
local config_file="$1"
|
||||||
@ -80,37 +56,14 @@ add_to_file() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Clone, build, and install nvidia-Hyprland using Cmake
|
|
||||||
printf "${NOTE} Installing nvidia-Hyprland...\n"
|
|
||||||
|
|
||||||
# Check if Hyprland folder exists and remove it
|
|
||||||
if [ -d "Hyprland" ]; then
|
|
||||||
printf "${NOTE} Removing existing Hyprland folder...\n"
|
|
||||||
rm -rf "Hyprland" 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if git clone --recursive -b v0.32.3 "https://github.com/hyprwm/Hyprland" 2>&1 | tee -a "$LOG"; then
|
|
||||||
cd Hyprland || exit 1
|
|
||||||
make all
|
|
||||||
if sudo make install 2>&1 | tee -a "$LOG"; then
|
|
||||||
printf "${OK} Nvidia-Hyprland installed successfully.\n"
|
|
||||||
# Return to the previous directory
|
|
||||||
cd ..
|
|
||||||
else
|
|
||||||
echo -e "${ERROR} Installation failed for Nvidia-Hyprland." 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo -e "${ERROR} Download failed for Nvidia-Hyprland." 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install additional Nvidia packages
|
# Install additional Nvidia packages
|
||||||
printf "${YELLOW} Installing Nvidia packages...\n"
|
printf "${YELLOW} Installing ${SKY_BLUE}Nvidia packages${RESET} ...\n"
|
||||||
for NVIDIA in "${nvidia_pkg[@]}"; do
|
for NVIDIA in "${nvidia_pkg[@]}"; do
|
||||||
install_package "$NVIDIA" 2>&1 | tee -a "$LOG"
|
install_package "$NVIDIA" "$LOG"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# adding additional nvidia-stuff
|
||||||
printf "${YELLOW} nvidia-stuff to /etc/default/grub..."
|
printf "${YELLOW} adding ${SKY_BLUE}nvidia-stuff${RESET} to /etc/default/grub..."
|
||||||
|
|
||||||
# Additional options to add to GRUB_CMDLINE_LINUX
|
# Additional options to add to GRUB_CMDLINE_LINUX
|
||||||
additional_options="rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 rcutree.rcu_idle_gp_delay=1"
|
additional_options="rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 rcutree.rcu_idle_gp_delay=1"
|
||||||
@ -129,7 +82,10 @@ printf "${YELLOW} nvidia-stuff to /etc/default/grub..."
|
|||||||
|
|
||||||
# Define the configuration file and the line to add
|
# Define the configuration file and the line to add
|
||||||
config_file="/etc/modprobe.d/nvidia.conf"
|
config_file="/etc/modprobe.d/nvidia.conf"
|
||||||
line_to_add="options nvidia-drm modeset=1"
|
line_to_add="""
|
||||||
|
options nvidia-drm modeset=1 fbdev=1
|
||||||
|
options nvidia NVreg_PreserveVideoMemoryAllocations=1
|
||||||
|
"""
|
||||||
|
|
||||||
# Check if the config file exists
|
# Check if the config file exists
|
||||||
if [ ! -e "$config_file" ]; then
|
if [ ! -e "$config_file" ]; then
|
||||||
@ -150,4 +106,4 @@ printf "${YELLOW} nvidia-stuff to /etc/default/grub..."
|
|||||||
echo "Modules file ($modules_file) not found." 2>&1 | tee -a "$LOG"
|
echo "Modules file ($modules_file) not found." 2>&1 | tee -a "$LOG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
clear
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
@ -1,74 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
nwg_look=(
|
|
||||||
golang
|
|
||||||
libgtk-3-dev
|
|
||||||
libcairo2-dev
|
|
||||||
libglib2.0-bin
|
|
||||||
)
|
|
||||||
|
|
||||||
############## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU'RE 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
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
|
|
||||||
# Set the name of the log file to include the current date and time
|
|
||||||
LOG="install-$(date +'%d-%H%M%S')_nwg-look.log"
|
|
||||||
|
|
||||||
# Function for installing packages
|
|
||||||
install_package() {
|
|
||||||
# Checking if package is already installed
|
|
||||||
if sudo dpkg -l | grep -q -w "$1" ; then
|
|
||||||
echo -e "${OK} $1 is already installed. Skipping..."
|
|
||||||
else
|
|
||||||
# Package not installed
|
|
||||||
echo -e "${NOTE} Installing $1 ..."
|
|
||||||
sudo apt-get install -y "$1" 2>&1 | tee -a "$LOG"
|
|
||||||
# Making sure the package is installed
|
|
||||||
if sudo dpkg -l | grep -q -w "$1" ; 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
|
|
||||||
}
|
|
||||||
|
|
||||||
for package in "${nwg_look[@]}"; do
|
|
||||||
install_package "$package" || exit 1
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
# Check if nwg-look folder exists and remove it
|
|
||||||
if [ -d "nwg-look" ]; then
|
|
||||||
printf "${NOTE} Removing existing nwg-look folder...\n"
|
|
||||||
rm -rf "nwg-look" 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf "${NOTE} Installing nwg-look\n"
|
|
||||||
if git clone https://github.com/nwg-piotr/nwg-look.git; then
|
|
||||||
cd nwg-look || exit 1
|
|
||||||
make build
|
|
||||||
sudo make install
|
|
||||||
cd ..
|
|
||||||
else
|
|
||||||
echo -e "${ERROR} Download failed for nwg-look."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
clear
|
|
||||||
@ -1,59 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
pywal=(
|
|
||||||
imagemagick
|
|
||||||
python3-pip
|
|
||||||
)
|
|
||||||
|
|
||||||
############## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU'RE 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
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
|
|
||||||
# Set the name of the log file to include the current date and time
|
|
||||||
LOG="install-$(date +'%d-%H%M%S')_pywal.log"
|
|
||||||
|
|
||||||
# Function for installing packages
|
|
||||||
install_package() {
|
|
||||||
# Checking if package is already installed
|
|
||||||
if sudo dpkg -l | grep -q -w "$1" ; then
|
|
||||||
echo -e "${OK} $1 is already installed. Skipping..."
|
|
||||||
else
|
|
||||||
# Package not installed
|
|
||||||
echo -e "${NOTE} Installing $1 ..."
|
|
||||||
sudo apt-get install -y "$1" 2>&1 | tee -a "$LOG"
|
|
||||||
# Making sure the package is installed
|
|
||||||
if sudo dpkg -l | grep -q -w "$1" ; 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
|
|
||||||
}
|
|
||||||
|
|
||||||
for package in "${pywal[@]}"; do
|
|
||||||
install_package "$package" || exit 1
|
|
||||||
done
|
|
||||||
|
|
||||||
## Installing pywal colors
|
|
||||||
printf "\n%s - Installing Pywal.... \n" "${NOTE}"
|
|
||||||
|
|
||||||
sudo pip3 install pywal --break-system-packages 2>&1 | tee -a "$LOG"
|
|
||||||
|
|
||||||
clear
|
|
||||||
150
install-scripts/rofi-wayland.sh
Normal file → Executable file
150
install-scripts/rofi-wayland.sh
Normal file → Executable file
@ -1,99 +1,105 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# Rofi-Wayland) #
|
||||||
|
|
||||||
rofi=(
|
rofi=(
|
||||||
bison
|
bison
|
||||||
flex
|
flex
|
||||||
|
pandoc
|
||||||
|
doxygen
|
||||||
|
cppcheck
|
||||||
|
imagemagick
|
||||||
|
libmpdclient-dev
|
||||||
|
libnl-3-dev
|
||||||
|
libasound2-dev
|
||||||
|
libstartup-notification0-dev
|
||||||
|
libwayland-client++1
|
||||||
|
libwayland-dev
|
||||||
|
libcairo-5c-dev
|
||||||
|
libcairo2-dev
|
||||||
|
libpango1.0-dev
|
||||||
|
libgdk-pixbuf-2.0-dev
|
||||||
|
libxcb-keysyms1-dev
|
||||||
|
libwayland-client0
|
||||||
|
libxcb-ewmh-dev
|
||||||
|
libxcb-cursor-dev
|
||||||
|
libxcb-icccm4-dev
|
||||||
|
libxcb-randr0-dev
|
||||||
|
libxcb-render-util0-dev
|
||||||
|
libxcb-util-dev
|
||||||
|
libxcb-xkb-dev
|
||||||
|
libxcb-xinerama0-dev
|
||||||
|
libxkbcommon-dev
|
||||||
|
libxkbcommon-x11-dev
|
||||||
|
ohcount
|
||||||
|
wget
|
||||||
)
|
)
|
||||||
|
|
||||||
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
|
# variables
|
||||||
# Determine the directory where the script is located
|
rofi_tag="1.7.9+wayland1"
|
||||||
|
release_url="https://github.com/lbonn/rofi/releases/download/1.7.9%2Bwayland1/rofi-1.7.9+wayland1.tar.gz"
|
||||||
|
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
# Change the working directory to the parent directory of the script
|
# Change the working directory to the parent directory of the script
|
||||||
PARENT_DIR="$SCRIPT_DIR/.."
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
cd "$PARENT_DIR" || exit 1
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
# Set some colors for output messages
|
# Source the global functions script
|
||||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
echo "Failed to source Global_functions.sh"
|
||||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
exit 1
|
||||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
fi
|
||||||
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)_rofi_wayland.log"
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_rofi_wayland.log"
|
||||||
|
MLOG="install-$(date +%d-%H%M%S)_rofi_wayland2.log"
|
||||||
# uninstall other rofi
|
|
||||||
printf "${YELLOW} Checking for other rofi packages and remove if any..${RESET}\n"
|
|
||||||
if sudo dpkg -l | grep -q -w "rofi"; then
|
|
||||||
printf "${YELLOW} rofi detected.. uninstalling...${RESET}\n"
|
|
||||||
for rofi in rofi; do
|
|
||||||
sudo apt-get autoremove -y "rofi" 2>/dev/null | tee -a "$LOG" || true
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Function for installing packages
|
|
||||||
install_package() {
|
|
||||||
# Checking if package is already installed
|
|
||||||
if sudo dpkg -l | grep -q -w "$1" ; then
|
|
||||||
echo -e "${OK} $1 is already installed. Skipping..."
|
|
||||||
else
|
|
||||||
# Package not installed
|
|
||||||
echo -e "${NOTE} Installing $1 ..."
|
|
||||||
sudo apt-get install -y "$1" 2>&1 | tee -a "$LOG"
|
|
||||||
# Making sure the package is installed
|
|
||||||
if sudo dpkg -l | grep -q -w "$1" ; 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
|
|
||||||
}
|
|
||||||
|
|
||||||
# Installation of main components
|
# Installation of main components
|
||||||
printf "\n%s - Installing rofi-wayland dependencies.... \n" "${NOTE}"
|
printf "\n%s - Re-installing ${SKY_BLUE}rofi-wayland dependencies${RESET}.... \n" "${INFO}"
|
||||||
|
|
||||||
for PKG1 in "${rofi[@]}"; do
|
for FORCE in "${rofi[@]}"; do
|
||||||
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
re_install_package "$FORCE" "$LOG"
|
||||||
if [ $? -ne 0 ]; then
|
done
|
||||||
echo -e "\e[1A\e[K${ERROR} - $PKG1 install had failed, please check the install.log"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
printf "\n\n\n"
|
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
# Clone and build rofi - wayland
|
# Clone and build rofi - wayland
|
||||||
printf "${NOTE} Installing rofi-wayland...\n"
|
printf "${NOTE} Building and Installing ${SKY_BLUE}rofi-wayland${RESET} $rofi_tag ...\n"
|
||||||
|
|
||||||
# Check if rofi folder exists and remove it
|
# Check if rofi directory exists
|
||||||
if [ -d "rofi" ]; then
|
if [ -d "rofi-$rofi_tag" ]; then
|
||||||
printf "${NOTE} Removing existing rofi folder...\n"
|
rm -rf "rofi-$rofi_tag"
|
||||||
rm -rf "rofi" 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if git clone https://github.com/lbonn/rofi.git 2>&1 | tee -a "$LOG"; then
|
# cloning rofi-wayland
|
||||||
cd "rofi" || exit 1
|
printf "${NOTE} Downloading ${YELLOW}rofi-wayland $rofi_tag${RESET} from releases...\n"
|
||||||
if meson setup build && ninja -C build; then
|
wget $release_url
|
||||||
if sudo ninja -C build install 2>&1 | tee -a "$LOG"; then
|
|
||||||
printf "${OK} rofi-wayland installed successfully.\n"
|
if [ -f "rofi-$rofi_tag.tar.gz" ]; then
|
||||||
# Return to the previous directory
|
printf "${OK} ${YELLOW}rofi-wayland $rofi_tag${RESET} downloaded successfully.\n" 2>&1 | tee -a "$LOG"
|
||||||
cd ..
|
tar xf rofi-$rofi_tag.tar.gz
|
||||||
else
|
fi
|
||||||
echo -e "${ERROR} Installation failed for rofi-wayland."
|
|
||||||
fi
|
cd rofi-$rofi_tag || exit 1
|
||||||
|
|
||||||
|
# Proceed with the installation steps
|
||||||
|
if meson setup build && ninja -C build ; then
|
||||||
|
if sudo ninja -C build install 2>&1 | tee -a "$MLOG"; then
|
||||||
|
printf "${OK} rofi-wayland installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
else
|
else
|
||||||
echo -e "${ERROR} Meson setup or ninja build failed for rofi-wayland."
|
echo -e "${ERROR} Installation failed for ${YELLOW}rofi-wayland $rofi_tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo -e "${ERROR} Download failed for rofi-wayland."
|
echo -e "${ERROR} Meson setup or ninja build failed for ${YELLOW}rofi-wayland $rofi_tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
clear
|
# Move logs to Install-Logs directory
|
||||||
|
mv "$MLOG" ../Install-Logs/ || true
|
||||||
|
cd .. || exit 1
|
||||||
|
|
||||||
|
# clean up
|
||||||
|
rm -rf rofi-$rofi_tag.tar.gz
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
46
install-scripts/rog.sh
Normal file → Executable file
46
install-scripts/rog.sh
Normal file → Executable file
@ -1,26 +1,38 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# ASUS ROG ) #
|
||||||
|
|
||||||
############## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU'RE DOING! ##############
|
asus=(
|
||||||
|
power-profiles-daemon
|
||||||
|
)
|
||||||
|
|
||||||
# Determine the directory where the script is located
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
# Change the working directory to the parent directory of the script
|
# Change the working directory to the parent directory of the script
|
||||||
PARENT_DIR="$SCRIPT_DIR/.."
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
cd "$PARENT_DIR" || exit 1
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
# Set some colors for output messages
|
# Source the global functions script
|
||||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
echo "Failed to source Global_functions.sh"
|
||||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
exit 1
|
||||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
fi
|
||||||
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-$(date +%d-%H%M%S)_rog.log"
|
||||||
|
|
||||||
|
# Installing enhancemet
|
||||||
|
for PKG1 in "${asus[@]}"; do
|
||||||
|
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo -e "\033[1A\033[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
printf " enabling power-profiles-daemon...\n"
|
||||||
|
sudo systemctl enable power-profiles-daemon 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
# Function to handle the installation and log messages
|
# Function to handle the installation and log messages
|
||||||
install_and_log() {
|
install_and_log() {
|
||||||
@ -45,7 +57,8 @@ install_and_log() {
|
|||||||
echo -e "${ERROR} Installation failed for $project_name."
|
echo -e "${ERROR} Installation failed for $project_name."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Return to the previous directory
|
#moving logs into main install-logs
|
||||||
|
mv $LOG ../Install-Logs/ || true
|
||||||
cd - || exit 1
|
cd - || exit 1
|
||||||
else
|
else
|
||||||
echo -e "${ERROR} Cloning $project_name from $git_url failed."
|
echo -e "${ERROR} Cloning $project_name from $git_url failed."
|
||||||
@ -58,5 +71,4 @@ install_and_log "asusctl" "https://gitlab.com/asus-linux/asusctl.git"
|
|||||||
# Download and build supergfxctl
|
# Download and build supergfxctl
|
||||||
install_and_log "supergfxctl" "https://gitlab.com/asus-linux/supergfxctl.git"
|
install_and_log "supergfxctl" "https://gitlab.com/asus-linux/supergfxctl.git"
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
clear
|
|
||||||
160
install-scripts/sddm.sh
Normal file → Executable file
160
install-scripts/sddm.sh
Normal file → Executable file
@ -1,144 +1,84 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# https://github.com/JaKooLit
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# SDDM with optional SDDM theme #
|
||||||
# WARNING! If you remove packages here, dotfiles may not work properly.
|
|
||||||
# and also, ensure that packages are present in debian repo
|
|
||||||
|
|
||||||
|
# installing with NO-recommends
|
||||||
sddm1=(
|
sddm1=(
|
||||||
sddm
|
sddm
|
||||||
)
|
)
|
||||||
|
|
||||||
sddm2=(
|
sddm2=(
|
||||||
qml-module-qtgraphicaleffects
|
libqt6svg6
|
||||||
qml-module-qtquick-controls
|
qt6-declarative-dev
|
||||||
qml-module-qtquick-controls2
|
qt6-svg-dev
|
||||||
qml-module-qtquick-extras
|
qt6-virtualkeyboard-plugin
|
||||||
qml-module-qtquick-layouts
|
libqt6multimedia6
|
||||||
|
qml6-module-qtquick-controls
|
||||||
|
qml6-module-qtquick-effects
|
||||||
)
|
)
|
||||||
|
|
||||||
# Determine the directory where the script is located
|
# login managers to attempt to disable
|
||||||
|
login=(
|
||||||
|
lightdm
|
||||||
|
gdm3
|
||||||
|
gdm
|
||||||
|
lxdm
|
||||||
|
lxdm-gtk3
|
||||||
|
)
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
# Change the working directory to the parent directory of the script
|
# Change the working directory to the parent directory of the script
|
||||||
PARENT_DIR="$SCRIPT_DIR/.."
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
cd "$PARENT_DIR" || exit 1
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
# Set some colors for output messages
|
# Source the global functions script
|
||||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
echo "Failed to source Global_functions.sh"
|
||||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
exit 1
|
||||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
fi
|
||||||
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"
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Function for installing packages
|
# Install SDDM (no-recommends)
|
||||||
install_package() {
|
printf "\n%s - Installing ${SKY_BLUE}SDDM and dependencies${RESET} .... \n" "${NOTE}"
|
||||||
# Checking if package is already installed
|
|
||||||
if sudo dpkg -l | grep -q -w "$1" ; then
|
|
||||||
echo -e "${OK} $1 is already installed. Skipping..."
|
|
||||||
else
|
|
||||||
# Package not installed
|
|
||||||
echo -e "${NOTE} Installing $1 ..."
|
|
||||||
sudo apt-get install -y "$1" 2>&1 | tee -a "$LOG"
|
|
||||||
# Making sure the package is installed
|
|
||||||
if sudo dpkg -l | grep -q -w "$1" ; 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
|
|
||||||
}
|
|
||||||
|
|
||||||
# Install SDDM and Tokyo-Night theme
|
|
||||||
printf "\n%s - Installing sddm.... \n" "${NOTE}"
|
|
||||||
for PKG1 in "${sddm1[@]}" ; do
|
for PKG1 in "${sddm1[@]}" ; do
|
||||||
sudo apt-get install --no-install-recommends -y "$PKG1" 2>&1 | tee -a "$LOG"
|
sudo apt install --no-install-recommends -y "$PKG1" | tee -a "$LOG"
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1A\e[K${ERROR} - $PKG1 install had failed, please check the install.log"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# Installation of additional sddm stuff
|
# Installation of additional sddm stuff
|
||||||
printf "\n%s - Installing sddm additional stuff.... \n" "${NOTE}"
|
|
||||||
for PKG2 in "${sddm2[@]}"; do
|
for PKG2 in "${sddm2[@]}"; do
|
||||||
install_package "$PKG2" 2>&1 | tee -a "$LOG"
|
install_package "$PKG2" "$LOG"
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1A\e[K${ERROR} - $PKG2 install had failed, please check the install.log"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# Check if other login managers are installed and disabling their service before enabling sddm
|
# Check if other login managers are installed and disable their service before enabling SDDM
|
||||||
for login_manager in lightdm gdm lxdm lxdm-gtk3; do
|
for login_manager in "${login[@]}"; do
|
||||||
if sudo apt-get list installed "$login_manager" &>> /dev/null; then
|
if dpkg -l | grep -q "^ii $login_manager"; then
|
||||||
echo "Disabling $login_manager..."
|
echo "Disabling $login_manager..."
|
||||||
sudo systemctl disable "$login_manager" 2>&1 | tee -a "$LOG"
|
sudo systemctl disable "$login_manager.service" >> "$LOG" 2>&1 || echo "Failed to disable $login_manager" >> "$LOG"
|
||||||
|
echo "$login_manager disabled."
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
printf " Activating sddm service........\n"
|
# Double check with systemctl
|
||||||
sudo systemctl enable sddm
|
for manager in "${login[@]}"; do
|
||||||
|
if systemctl is-active --quiet "$manager.service" > /dev/null 2>&1; then
|
||||||
|
echo "$manager.service is active, disabling it..." >> "$LOG" 2>&1
|
||||||
|
sudo systemctl disable "$manager.service" --now >> "$LOG" 2>&1 || echo "Failed to disable $manager.service" >> "$LOG"
|
||||||
|
else
|
||||||
|
echo "$manager.service is not active" >> "$LOG" 2>&1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
# Set up SDDM
|
printf "\n%.0s" {1..1}
|
||||||
echo -e "${NOTE} Setting up the login screen."
|
printf "${INFO} Activating sddm service........\n"
|
||||||
sddm_conf_dir=/etc/sddm.conf.d
|
sudo systemctl set-default graphical.target 2>&1 | tee -a "$LOG"
|
||||||
[ ! -d "$sddm_conf_dir" ] && { printf "$CAT - $sddm_conf_dir not found, creating...\n"; sudo mkdir -p "$sddm_conf_dir" 2>&1 | tee -a "$LOG"; }
|
sudo systemctl enable sddm.service 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
wayland_sessions_dir=/usr/share/wayland-sessions
|
wayland_sessions_dir=/usr/share/wayland-sessions
|
||||||
[ ! -d "$wayland_sessions_dir" ] && { printf "$CAT - $wayland_sessions_dir not found, creating...\n"; sudo mkdir -p "$wayland_sessions_dir" 2>&1 | tee -a "$LOG"; }
|
[ ! -d "$wayland_sessions_dir" ] && { printf "$CAT - $wayland_sessions_dir not found, creating...\n"; sudo mkdir -p "$wayland_sessions_dir" 2>&1 | tee -a "$LOG"; }
|
||||||
sudo cp assets/hyprland.desktop "$wayland_sessions_dir/" 2>&1 | tee -a "$LOG"
|
|
||||||
|
|
||||||
# SDDM-themes
|
|
||||||
valid_input=false
|
|
||||||
while [ "$valid_input" != true ]; do
|
|
||||||
read -n 1 -r -p "${CAT} OPTIONAL - Would you like to install SDDM themes? (y/n)" install_sddm_theme
|
|
||||||
if [[ $install_sddm_theme =~ ^[Yy]$ ]]; then
|
|
||||||
printf "\n%s - Installing Simple SDDM Theme\n" "${NOTE}"
|
|
||||||
|
|
||||||
# Check if /usr/share/sddm/themes/simple-sddm exists and remove if it does
|
printf "\n%.0s" {1..2}
|
||||||
if [ -d "/usr/share/sddm/themes/simple-sddm" ]; then
|
|
||||||
sudo rm -rf "/usr/share/sddm/themes/simple-sddm"
|
|
||||||
echo -e "\e[1A\e[K${OK} - Removed existing 'simple-sddm' directory." 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check if simple-sddm directory exists in the current directory and remove if it does
|
|
||||||
if [ -d "simple-sddm" ]; then
|
|
||||||
rm -rf "simple-sddm"
|
|
||||||
echo -e "\e[1A\e[K${OK} - Removed existing 'simple-sddm' directory from the current location." 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if git clone https://github.com/JaKooLit/simple-sddm.git 2>&1 | tee -a "$LOG"; then
|
|
||||||
while [ ! -d "simple-sddm" ]; do
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ ! -d "/usr/share/sddm/themes" ]; then
|
|
||||||
sudo mkdir -p /usr/share/sddm/themes
|
|
||||||
echo -e "\e[1A\e[K${OK} - Directory '/usr/share/sddm/themes' created." 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
sudo mv simple-sddm /usr/share/sddm/themes/
|
|
||||||
echo -e "[Theme]\nCurrent=simple-sddm" | sudo tee -a "$sddm_conf_dir/10-theme.conf" &>> "$LOG"
|
|
||||||
else
|
|
||||||
echo -e "\e[1A\e[K${ERROR} - Failed to clone the theme repository. Please check your internet connection or repository availability." | tee -a "$LOG" >&2
|
|
||||||
fi
|
|
||||||
valid_input=true
|
|
||||||
elif [[ $install_sddm_theme =~ ^[Nn]$ ]]; then
|
|
||||||
printf "\n%s - No SDDM themes will be installed.\n" "${NOTE}" 2>&1 | tee -a "$LOG"
|
|
||||||
valid_input=true
|
|
||||||
else
|
|
||||||
printf "\n%s - Invalid input. Please enter 'y' for Yes or 'n' for No.\n" "${ERROR}" 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
clear
|
|
||||||
132
install-scripts/sddm_theme.sh
Executable file
132
install-scripts/sddm_theme.sh
Executable file
@ -0,0 +1,132 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# SDDM themes #
|
||||||
|
|
||||||
|
source_theme="https://github.com/JaKooLit/simple-sddm-2.git"
|
||||||
|
theme_name="simple_sddm_2"
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
|
# Source the global functions script
|
||||||
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
|
echo "Failed to source Global_functions.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_sddm_theme.log"
|
||||||
|
|
||||||
|
# SDDM-themes
|
||||||
|
printf "${INFO} Installing ${SKY_BLUE}Additional SDDM Theme${RESET}\n"
|
||||||
|
|
||||||
|
# Check if /usr/share/sddm/themes/$theme_name exists and remove if it does
|
||||||
|
if [ -d "/usr/share/sddm/themes/$theme_name" ]; then
|
||||||
|
sudo rm -rf "/usr/share/sddm/themes/$theme_name"
|
||||||
|
echo -e "\e[1A\e[K${OK} - Removed existing $theme_name directory." 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if $theme_name directory exists in the current directory and remove if it does
|
||||||
|
if [ -d "$theme_name" ]; then
|
||||||
|
rm -rf "$theme_name"
|
||||||
|
echo -e "\e[1A\e[K${OK} - Removed existing $theme_name directory from the current location." 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Clone the repository
|
||||||
|
if git clone --depth=1 "$source_theme" "$theme_name"; then
|
||||||
|
if [ ! -d "$theme_name" ]; then
|
||||||
|
echo "${ERROR} Failed to clone the repository." | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create themes directory if it doesn't exist
|
||||||
|
if [ ! -d "/usr/share/sddm/themes" ]; then
|
||||||
|
sudo mkdir -p /usr/share/sddm/themes
|
||||||
|
echo "${OK} - Directory '/usr/share/sddm/themes' created." | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Move cloned theme to the themes directory
|
||||||
|
sudo mv "$theme_name" "/usr/share/sddm/themes/$theme_name" 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
|
# setting up SDDM theme
|
||||||
|
sddm_conf="/etc/sddm.conf"
|
||||||
|
BACKUP_SUFFIX=".bak"
|
||||||
|
|
||||||
|
echo -e "${NOTE} Setting up the login screen." | tee -a "$LOG"
|
||||||
|
|
||||||
|
# Backup the sddm.conf file if it exists
|
||||||
|
if [ -f "$sddm_conf" ]; then
|
||||||
|
echo "Backing up $sddm_conf" | tee -a "$LOG"
|
||||||
|
sudo cp "$sddm_conf" "$sddm_conf$BACKUP_SUFFIX" 2>&1 | tee -a "$LOG"
|
||||||
|
else
|
||||||
|
echo "$sddm_conf does not exist, creating a new one." | tee -a "$LOG"
|
||||||
|
sudo touch "$sddm_conf" 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if the [Theme] section exists
|
||||||
|
if grep -q '^\[Theme\]' "$sddm_conf"; then
|
||||||
|
# Update the Current= line under [Theme]
|
||||||
|
sudo sed -i "/^\[Theme\]/,/^\[/{s/^\s*Current=.*/Current=$theme_name/}" "$sddm_conf" 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
|
# If no Current= line was found and replaced, append it after the [Theme] section
|
||||||
|
if ! grep -q '^\s*Current=' "$sddm_conf"; then
|
||||||
|
sudo sed -i "/^\[Theme\]/a Current=$theme_name" "$sddm_conf" 2>&1 | tee -a "$LOG"
|
||||||
|
echo "Appended Current=$theme_name under [Theme] in $sddm_conf" | tee -a "$LOG"
|
||||||
|
else
|
||||||
|
echo "Updated Current=$theme_name in $sddm_conf" | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Append the [Theme] section at the end if it doesn't exist
|
||||||
|
echo -e "\n[Theme]\nCurrent=$theme_name" | sudo tee -a "$sddm_conf" > /dev/null
|
||||||
|
echo "Added [Theme] section with Current=$theme_name in $sddm_conf" | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Add [General] section with InputMethod=qtvirtualkeyboard if it doesn't exist
|
||||||
|
if ! grep -q '^\[General\]' "$sddm_conf"; then
|
||||||
|
echo -e "\n[General]\nInputMethod=qtvirtualkeyboard" | sudo tee -a "$sddm_conf" > /dev/null
|
||||||
|
echo "Added [General] section with InputMethod=qtvirtualkeyboard in $sddm_conf" | tee -a "$LOG"
|
||||||
|
else
|
||||||
|
# Update InputMethod line if section exists
|
||||||
|
if grep -q '^\s*InputMethod=' "$sddm_conf"; then
|
||||||
|
sudo sed -i '/^\[General\]/,/^\[/{s/^\s*InputMethod=.*/InputMethod=qtvirtualkeyboard/}' "$sddm_conf" 2>&1 | tee -a "$LOG"
|
||||||
|
echo "Updated InputMethod to qtvirtualkeyboard in $sddm_conf" | tee -a "$LOG"
|
||||||
|
else
|
||||||
|
sudo sed -i '/^\[General\]/a InputMethod=qtvirtualkeyboard' "$sddm_conf" 2>&1 | tee -a "$LOG"
|
||||||
|
echo "Appended InputMethod=qtvirtualkeyboard under [General] in $sddm_conf" | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Replace current background from assets
|
||||||
|
sudo cp -r assets/sddm.png "/usr/share/sddm/themes/$theme_name/Backgrounds/default" 2>&1 | tee -a "$LOG"
|
||||||
|
sudo sed -i 's|^wallpaper=".*"|wallpaper="Backgrounds/default"|' "/usr/share/sddm/themes/$theme_name/theme.conf" 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
printf "${NOTE} copying ${YELLOW}JetBrains Mono Nerd Font${RESET} to ${YELLOW}/usr/local/share/fonts${RESET} .......\n"
|
||||||
|
printf "${NOTE} necessary for the new SDDM theme to work properly........\n"
|
||||||
|
|
||||||
|
sudo mkdir -p /usr/local/share/fonts/JetBrainsMonoNerd && \
|
||||||
|
sudo cp -r "$HOME/.local/share/fonts/JetBrainsMonoNerd" /usr/local/share/fonts/JetBrainsMonoNerd
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "Fonts copied successfully."
|
||||||
|
else
|
||||||
|
echo "Failed to copy fonts."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Update font cache and log the output
|
||||||
|
fc-cache -v -f 2>&1 | tee -a "$LOG"
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
|
echo "${OK} - ${MAGENTA}Additional ${YELLOW}$theme_name SDDM Theme${RESET} successfully installed." | tee -a "$LOG"
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
echo "${ERROR} - Failed to clone the sddm theme repository. Please check your internet connection." | tee -a "$LOG" >&2
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
@ -1,44 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
############## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU'RE 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
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
|
|
||||||
# Set the name of the log file to include the current date and time
|
|
||||||
LOG="install-$(date +'%d-%H%M%S')_swappy.log"
|
|
||||||
|
|
||||||
printf "${NOTE} Installing swappy..\n"
|
|
||||||
|
|
||||||
# Check if Hyprland folder exists and remove it
|
|
||||||
if [ -d "swappy" ]; then
|
|
||||||
printf "${NOTE} Removing existing swappy folder...\n"
|
|
||||||
rm -rf "swappy" 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if git clone https://github.com/jtheoof/swappy.git; then
|
|
||||||
cd swappy || exit 1
|
|
||||||
meson build
|
|
||||||
ninja -C build
|
|
||||||
sudo ninja -C build install 2>&1 | tee -a "$LOG"
|
|
||||||
# Return to the previous directory
|
|
||||||
cd - || exit 1
|
|
||||||
else
|
|
||||||
echo -e "${ERROR} Download failed for swappy" 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
clear
|
|
||||||
@ -1,44 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
############## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU'RE 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
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
|
|
||||||
# Set the name of the log file to include the current date and time
|
|
||||||
LOG="install-$(date +'%d-%H%M%S')_swaylock-effects.log"
|
|
||||||
|
|
||||||
printf "${NOTE} Installing swaylock-effects\n"
|
|
||||||
|
|
||||||
# Check if swaylock-effects folder exists and remove it
|
|
||||||
if [ -d "swaylock-effects" ]; then
|
|
||||||
printf "${NOTE} Removing existing swaylock-effects folder...\n"
|
|
||||||
rm -rf "swaylock-effects" 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if git clone https://github.com/mortie/swaylock-effects.git; then
|
|
||||||
cd swaylock-effects || exit 1
|
|
||||||
meson build
|
|
||||||
ninja -C build
|
|
||||||
sudo ninja -C build install 2>&1 | tee -a "$LOG"
|
|
||||||
# Return to the previous directory
|
|
||||||
cd - || exit 1
|
|
||||||
else
|
|
||||||
echo -e "${ERROR} Download failed for swaylock-effects" 2>&1 | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
clear
|
|
||||||
122
install-scripts/swww.sh
Normal file → Executable file
122
install-scripts/swww.sh
Normal file → Executable file
@ -1,56 +1,100 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# SWWW - Wallpaper Utility #
|
||||||
|
|
||||||
############## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU'RE DOING! ##############
|
# specific branch or release
|
||||||
|
swww_tag="v0.11.2"
|
||||||
|
|
||||||
# Determine the directory where the script is located
|
# Check if 'swww' is installed
|
||||||
|
if command -v swww &>/dev/null; then
|
||||||
|
SWWW_VERSION=$(swww -V | awk '{print $NF}')
|
||||||
|
if [[ "$SWWW_VERSION" == "$swww_tag" ]]; then
|
||||||
|
echo -e "${OK} ${MAGENTA}swww ${swww_tag}${RESET} is already installed. Skipping installation."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo -e "${NOTE} ${MAGENTA}swww${RESET} is not installed. Proceeding with installation."
|
||||||
|
fi
|
||||||
|
|
||||||
|
swww=(
|
||||||
|
liblz4-dev
|
||||||
|
)
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
|
||||||
# Change the working directory to the parent directory of the script
|
# Change the working directory to the parent directory of the script
|
||||||
PARENT_DIR="$SCRIPT_DIR/.."
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
cd "$PARENT_DIR" || exit 1
|
cd "$PARENT_DIR" || {
|
||||||
|
echo "${ERROR} Failed to change directory to $PARENT_DIR"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
# Set some colors for output messages
|
# Source the global functions script
|
||||||
OK="$(tput setaf 2)[OK]$(tput sgr0)"
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
|
echo "Failed to source Global_functions.sh"
|
||||||
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
|
exit 1
|
||||||
WARN="$(tput setaf 166)[WARN]$(tput sgr0)"
|
fi
|
||||||
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')_swww.log"
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_swww.log"
|
||||||
|
MLOG="install-$(date +%d-%H%M%S)_swww2.log"
|
||||||
|
|
||||||
printf "${NOTE} Installing swww\n"
|
# Installation of swww compilation needed
|
||||||
|
printf "\n%s - Installing ${SKY_BLUE}swww $swww_tag and dependencies${RESET} .... \n" "${NOTE}"
|
||||||
|
|
||||||
# Check if swww folder exists and remove it
|
for PKG1 in "${swww[@]}"; do
|
||||||
|
install_package "$PKG1" "$LOG"
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|
||||||
|
# Check if swww directory exists
|
||||||
if [ -d "swww" ]; then
|
if [ -d "swww" ]; then
|
||||||
printf "${NOTE} Removing existing swww folder...\n"
|
cd swww || exit 1
|
||||||
rm -rf "swww" 2>&1 | tee -a "$LOG"
|
git pull origin main 2>&1 | tee -a "$MLOG"
|
||||||
fi
|
|
||||||
|
|
||||||
if git clone https://github.com/Horus645/swww.git 2>&1 | tee -a "$LOG"; then
|
|
||||||
cd swww || exit 1
|
|
||||||
source "$HOME/.cargo/env"
|
|
||||||
cargo build --release 2>&1 | tee -a "$LOG"
|
|
||||||
# Copy binaries to /usr/bin/
|
|
||||||
sudo cp target/release/swww /usr/bin/ 2>&1 | tee -a "$LOG"
|
|
||||||
sudo cp target/release/swww-daemon /usr/bin/ 2>&1 | tee -a "$LOG"
|
|
||||||
|
|
||||||
# Copy bash completions
|
|
||||||
sudo mkdir -p /usr/share/bash-completion/completions 2>&1 | tee -a "$LOG"
|
|
||||||
sudo cp completions/swww.bash /usr/share/bash-completion/completions/swww 2>&1 | tee -a "$LOG"
|
|
||||||
|
|
||||||
# Copy zsh completions
|
|
||||||
sudo mkdir -p /usr/share/zsh/site-functions 2>&1 | tee -a "$LOG"
|
|
||||||
sudo cp completions/_swww /usr/share/zsh/site-functions/_swww 2>&1 | tee -a "$LOG"
|
|
||||||
|
|
||||||
# Return to the previous directory
|
|
||||||
cd - || exit 1
|
|
||||||
else
|
else
|
||||||
echo -e "${ERROR} Download failed for swww" 2>&1 | tee -a "$LOG"
|
if git clone --recursive -b $swww_tag https://github.com/LGFae/swww.git; then
|
||||||
|
cd swww || exit 1
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Download failed for ${YELLOW}swww $swww_tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Proceed with the rest of the installation steps
|
||||||
|
source "$HOME/.cargo/env" || true
|
||||||
|
|
||||||
clear
|
cargo build --release 2>&1 | tee -a "$MLOG"
|
||||||
|
|
||||||
|
# Checking if swww is previously installed and delete before copying
|
||||||
|
file1="/usr/bin/swww"
|
||||||
|
file2="/usr/bin/swww-daemon"
|
||||||
|
|
||||||
|
# Check if file1 exists and delete if so
|
||||||
|
if [ -f "$file1" ]; then
|
||||||
|
sudo rm -r "$file1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if file2 exists and delete if so
|
||||||
|
if [ -f "$file2" ]; then
|
||||||
|
sudo rm -r "$file2"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Copy binaries to /usr/bin/
|
||||||
|
sudo cp -r target/release/swww /usr/bin/ 2>&1 | tee -a "$MLOG"
|
||||||
|
sudo cp -r target/release/swww-daemon /usr/bin/ 2>&1 | tee -a "$MLOG"
|
||||||
|
|
||||||
|
# Copy bash completions
|
||||||
|
sudo mkdir -p /usr/share/bash-completion/completions 2>&1 | tee -a "$MLOG"
|
||||||
|
sudo cp -r completions/swww.bash /usr/share/bash-completion/completions/swww 2>&1 | tee -a "$MLOG"
|
||||||
|
|
||||||
|
# Copy zsh completions
|
||||||
|
sudo mkdir -p /usr/share/zsh/site-functions 2>&1 | tee -a "$MLOG"
|
||||||
|
sudo cp -r completions/_swww /usr/share/zsh/site-functions/_swww 2>&1 | tee -a "$MLOG"
|
||||||
|
|
||||||
|
# Moving logs into main Install-Logs
|
||||||
|
mv "$MLOG" ../Install-Logs/ || true
|
||||||
|
cd - || exit 1
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user