540 Commits

Author SHA1 Message Date
Ja.KooLit
fcf533f857 Merge pull request #359 from JaKooLit/dwilliam62-patch-discord-link
Update Discord invite link in README
2026-01-23 15:29:22 +00:00
Donald Williams
4bd1e18e6e Update Discord invite link in README
Fixing discord link after server name change broke it
2026-01-13 20:08:19 -05:00
Donald Williams
5acde89271 Merge pull request #347 from JaKooLit/development
Merge development branch to main
2025-12-11 12:00:02 -05:00
Donald Williams
7ebe599868 Merge branch 'main' into development 2025-12-11 11:54:34 -05:00
Don Williams
ae0c8b155c Updated CHANGELOG 2025-12-11 11:51:06 -05:00
Don Williams
3781f9c510 Adding qt5-quickcontrols2 to sddm.sh
A user reported in CachyOS this missing package prevented
Hyprland from starting via SDDM with simple_sddm_2 theme
Standard SDDM theme worked on.  Adding this pkg also resolved
issue

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   sddm.sh
2025-12-11 10:48:47 -05:00
Ahum Maitra
bbeaa681e0 docs : Fix Nvidia Spelling in README (#346) 2025-12-09 22:15:41 +09:00
Don Williams
47f4e4d7b6 Fixed AGS v1
It now does the following:
◦  Clone upstream AGS 1.9.0.
◦  Stub out PAM/GUtils via pam.ts.
◦  Build and install AGS.
◦  Install the known-good launcher from install-scripts/ags.launcher.com.github.Aylur.ags.
◦  Point /usr/local/bin/ags at that launcher.

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-14 02:09:16 -05:00
Don Williams
23f52b3f00 Saving working script before adding to AGS.SH
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	new file:   install-scripts/ags.launcher.com.github.Aylur.ags
2025-11-14 02:04:49 -05:00
Don Williams
956fb369b5 Fixing mesaon build errors 2025-11-14 01:17:20 -05:00
Don Williams
9cf06be539 Try again 2025-11-14 01:12:12 -05:00
Don Williams
1808001bdb Fixed syntax error 2025-11-14 01:07:36 -05:00
Don Williams
46728206a0 Patching tsconfig.json
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-14 01:03:18 -05:00
Don Williams
27b7ba5578 Fix attempt #2 GI_TYPELIB_PATH is read before set
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-14 00:43:53 -05:00
Don Williams
bcfade3e24 Checking for install triggered broken ags to start
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-14 00:31:38 -05:00
Don Williams
f231d77b5c Fixing ags script for overview launcher
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-14 00:27:51 -05:00
Don Williams
d1c0e89737 Fix to prevent 0byte ags file
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-13 23:26:25 -05:00
Don Williams
f1e2d27625 Fixed syntax error build failing still trying patch
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-13 23:04:28 -05:00
Don Williams
2789e1544c fixing AGS to install and not falsely report success
•  Added set -eo pipefail after sourcing Global_functions.sh so the script exits on failures and correctly fails when any command in a pipeline (like meson install | tee) fails.
◦  Added "ignoreDeprecations": "6.0" under compilerOptions to silence TS5107.
◦  Replaced moduleResolution "node10" with "node16" to be compatible with current TypeScript behavior.
•  The success message will now only be printed if meson actually succeeds

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-13 22:59:30 -05:00
Don Williams
a9e33e5c58 ags: fix GIRepository ESM import error by exporting GI_TYPELIB_PATH and dropping GIRepository prepend calls
Context:
- On systems where AGS v1 installs its typelibs to /usr/local/lib, gjs ESM imports like gi://GIRepository?version=2.0 fail with:
  "Typelib file for namespace 'GIRepository', version '2.0' not found"
  even though typelibs exist under /usr/lib{,64}/girepository-1.0.
- The upstream AGS launcher tries to call GIR.Repository.prepend_search_path()/prepend_library_path(),
  but in recent GI (1.86) these are not available from the ESM namespace.

Changes:
- Replace import GIR from "gi://GIRepository?version=2.0" with import GLib from "gi://GLib" in the installed launcher.
- Remove deprecated GIR.Repository.prepend_search_path and prepend_library_path calls.
- Immediately after the GLib import, export GI_TYPELIB_PATH in-process so gjs finds typelibs under /usr/local/lib:
    const __old = GLib.getenv('GI_TYPELIB_PATH');
    GLib.setenv('GI_TYPELIB_PATH', '/usr/local/lib' + (__old ? ':' + __old : ''), true);

Result:
- ags -t overview no longer errors on GIRepository; proceeds until a GTK display is required.
- Behavior is scoped to the AGS process; no user shell env changes required.

Notes:
- Verified by patching an installed launcher on a target host; GI errors resolved.
2025-11-03 12:28:29 -05:00
Donald Williams
93581957d4 Update 01-hypr-pkgs.sh
Rofi wayland now merged with rofi
2025-11-03 12:28:29 -05:00
mio-dokuhaki
6c86adfcdc Fixed README.md for formatting 2025-11-03 12:28:29 -05:00
mio-dokuhaki
0ab997e352 Add missing monitor scripts from Fedora-Hyprland PR #234 2025-11-03 12:28:29 -05:00
mio-dokuhaki
5b427072ae Manually added monitor script documentation from Fedora PR #234 2025-11-03 12:28:29 -05:00
Ja.KooLit
f6a7c27229 Update quickshell.sh 2025-11-03 12:28:25 -05:00
Don Williams
aa140acf69 Don't remove AGS when installing quickshell
Might need as backup when QS has issues.
The Hyprland DOTS now use a wrapper script to determine
which to use for overview

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   quickshell.sh
2025-11-02 23:04:57 -05:00
Donald Williams
560ecf3bb6 Merge pull request #325 from JaKooLit/dwilliam62-change-rofi-wayland-to-rofi
Update 01-hypr-pkgs.sh  rofii-waybar is now just rofi
2025-10-05 22:47:53 -04:00
Donald Williams
516f2e609c Update 01-hypr-pkgs.sh
Rofi wayland now merged with rofi
2025-10-05 19:31:36 -04:00
Donald Williams
66cebd2247 Merge pull request #324 from JaKooLit/yuni-fix-readme
Fixed README.md for formatting
2025-10-05 08:55:46 -04:00
mio-dokuhaki
c16b3bc2c0 Fixed README.md for formatting 2025-10-05 16:15:56 +09:00
Donald Williams
ead2235eba Merge pull request #323 from JaKooLit/yuni-fix-monitor-scripts
Fix missing monitor scripts from Fedora-Hyprland PR #234
2025-10-05 01:04:37 -04:00
mio-dokuhaki
729149b7cc Add missing monitor scripts from Fedora-Hyprland PR #234 2025-10-05 13:45:27 +09:00
Donald Williams
efba587fde Merge pull request #322 from JaKooLit/yuni-fedora234-port
Port Fedora-Hyprland PR #234 to Arch-Hyprland main
2025-10-05 00:34:54 -04:00
mio-dokuhaki
c2a30d5a08 Manually added monitor script documentation from Fedora PR #234 2025-10-05 13:06:18 +09:00
Ja.KooLit
ab31c829e2 Update quickshell.sh 2025-07-28 23:45:41 +09:00
Ja.KooLit
5b29ba38d8 Merge pull request #300 from JaKooLit/development
Development to main
2025-07-25 21:32:29 +09:00
JaKooLit
d26c9e30bd minor sddm theme update 2025-07-25 17:13:16 +09:00
JaKooLit
78aa1dbcb2 updated sddm_theme.sh 2025-07-25 01:22:20 +09:00
JaKooLit
47836c2fb9 Preparation for the new SDDM theme simple sddm updated version 2025-07-22 13:07:38 +09:00
JaKooLit
3b2281568c some code cleanup and test if the feed is working to Discord Server 2025-07-20 16:10:53 +09:00
JaKooLit
f185af7389 added cleaning up of ags 2025-07-19 16:48:07 +09:00
JaKooLit
deb545e3b1 updated quickshell script 2025-07-17 22:19:42 +09:00
JaKooLit
5a3895682d added to ran quickshell on qs script 2025-07-17 20:45:44 +09:00
JaKooLit
2fbfecd07a added quickshell script to replace ags for desktop overview 2025-07-17 19:29:16 +09:00
Ja.KooLit
8813180c2d Merge pull request #289 from JaKooLit/development
Updated for new SDDM theme
2025-06-09 08:41:10 +09:00
JaKooLit
2afc7293d5 updated for new SDDM theme 2025-06-09 08:31:03 +09:00
JaKooLit
e433e89754 new sddm theme 2025-06-09 05:31:01 +09:00
Ja.KooLit
b5f342f62c Merge pull request #287 from JaKooLit/main
main to development
2025-06-09 05:18:29 +09:00
Ja.KooLit
0803fb9c0f Update ags.sh 2025-04-12 19:54:05 -04:00
JaKooLit
10d45b5d99 install.sh updated to NOT exit if user choose N on the last part. Removed auto-clone instruction for Fish as it creates a big issue 2025-03-25 00:59:47 +09:00
JaKooLit
3fcfdc0bad cachy-hyprland-settings set to remove first before mako 2025-03-25 00:35:40 +09:00
JaKooLit
5011f153be minor zsh.sh update 2025-03-24 22:08:56 +09:00
JaKooLit
672a700695 adjusted to work with fishy shell 2025-03-24 16:59:35 +09:00
JaKooLit
78310220d4 Updated README re-contributing 2025-03-21 22:25:26 +09:00
JaKooLit
409c612049 updated contributing.md 2025-03-21 22:06:24 +09:00
JaKooLit
aab92dac45 added findutils as dependencies 2025-03-20 15:24:26 +09:00
Ja.KooLit
165b06ea25 Merge pull request #240 from JaKooLit/development
branches synchro
2025-03-20 12:17:54 +09:00
Ja.KooLit
9ff63be4ac Merge pull request #239 from JaKooLit/main
main to development
2025-03-20 12:17:04 +09:00
JaKooLit
807ca99fc2 final adjustment 2025-03-20 12:12:15 +09:00
JaKooLit
63330afe2f added some color codings 2025-03-20 12:09:14 +09:00
JaKooLit
6b88c9cc58 updated hyprland.sh script to check first if hyprland, hypridle and hyprlock is already installed and will skip it. 2025-03-20 11:58:25 +09:00
JaKooLit
ced0769af2 updated sddm background 2025-03-17 21:37:37 +09:00
JaKooLit
26ee47374d added noto-fonts 2025-03-17 19:52:41 +09:00
JaKooLit
14711bacd3 added noto-fonts 2025-03-17 19:16:26 +09:00
JaKooLit
ead1dc65a5 updated readdme. Reverterd to old one 2025-03-15 18:02:26 +09:00
JaKooLit
d29eee9b17 ok this 2025-03-15 17:35:41 +09:00
JaKooLit
6cfb2ef41f ok this should be ok 2025-03-15 17:34:33 +09:00
JaKooLit
7b759fd829 what about this 2025-03-15 17:33:27 +09:00
JaKooLit
585357ca07 testing 2025-03-15 17:32:36 +09:00
Ja.KooLit
1f034b4f22 Merge pull request #233 from JaKooLit/main
main to development
2025-03-15 17:28:32 +09:00
JaKooLit
36e84ebc53 replaced folders//folder with directories/directory 2025-03-13 23:16:04 +09:00
JaKooLit
a4164ca612 disabled blank issue template 2025-03-13 20:24:08 +09:00
JaKooLit
ff2e5a02e3 updated packages message if all essential packages are installed 2025-03-13 19:45:46 +09:00
JaKooLit
eedc504ecd updated discord links 2025-03-13 19:22:24 +09:00
JaKooLit
6820111709 updated install.sh re-active login managers 2025-03-13 00:24:16 +09:00
JaKooLit
ffee7f7b9a minor install.sh update 2025-03-12 23:01:38 +09:00
JaKooLit
9b3df653a9 updated changelogs 2025-03-12 19:48:58 +09:00
JaKooLit
050fd2dcc4 updated ags.sh 2025-03-12 19:45:09 +09:00
Ja.KooLit
2c54155221 Merge pull request #231 from JaKooLit/development
Development to main
2025-03-12 11:54:41 +09:00
JaKooLit
1e1253d1e6 updated readme 2025-03-12 10:55:11 +09:00
JaKooLit
8c0de4d74f updated README 2025-03-12 10:19:03 +09:00
JaKooLit
4212522647 updated uninstall.sh 2025-03-11 23:30:33 +09:00
JaKooLit
9b41ac3eeb updated uninstall.sh to have a wildcards for removing dirs from ~/.config. This will also remove the backups 2025-03-11 19:59:34 +09:00
JaKooLit
750d565ee1 remove unzip from list of packages to unintstall 2025-03-11 19:52:57 +09:00
JaKooLit
79b725deb6 updated uninstall.sh 2025-03-11 19:32:51 +09:00
JaKooLit
cde0a7c6f8 hyprland is brought to last package to remove 2025-03-11 18:30:01 +09:00
JaKooLit
3e0c99b822 updated install.sh 2025-03-11 18:27:08 +09:00
JaKooLit
e2e2e47738 stepped down to pacman -R 2025-03-11 18:19:41 +09:00
JaKooLit
f4a2591cde removed from uninstall.sh
gnome-system-monitor, loupe, xdg-portal-gtk. It seems that gnome is also being uninstalled by this
2025-03-11 18:12:58 +09:00
JaKooLit
817c1d9810 update readme for uninstall.sh script 2025-03-11 14:53:39 +09:00
JaKooLit
d158b95283 Added uninstall script 2025-03-11 14:47:24 +09:00
JaKooLit
a5aab435fd updated 2025-03-11 14:12:45 +09:00
JaKooLit
3c65d6b5b6 forgot to add hyprland :) 2025-03-11 13:57:21 +09:00
JaKooLit
e632e64fce final uninstall script adjustments? 2025-03-11 13:53:25 +09:00
JaKooLit
9e144ad61a switched to a tmp file to remove packages and directories 2025-03-11 13:42:29 +09:00
JaKooLit
92b279e5a0 updated uninstall.sh 2025-03-11 13:38:57 +09:00
JaKooLit
64040f0b34 minor uninstall.sh update 2025-03-11 13:34:18 +09:00
JaKooLit
c93101a99e updated uninstall.sh 2025-03-11 13:24:35 +09:00
JaKooLit
bab65fd28d updated 2025-03-11 13:18:47 +09:00
JaKooLit
ccb1ceb29e made it like a loop 2025-03-11 13:12:20 +09:00
JaKooLit
5fb35a7d3e minor adjustment 2025-03-11 13:07:19 +09:00
JaKooLit
c20d0682d1 updated uninstall.sh 2025-03-11 12:56:53 +09:00
JaKooLit
acc2238bf0 added uninstall.sh 2025-03-11 12:53:03 +09:00
JaKooLit
a74b17a97c update readme 2025-03-11 11:05:41 +09:00
JaKooLit
068d55dd4b dropped pyprland 2025-03-10 14:20:56 +09:00
Ja.KooLit
06187ec5e6 Merge pull request #230 from JaKooLit/main
main to development
2025-03-10 14:11:15 +09:00
installer
f0c32198fc updated readme 2025-03-10 11:59:19 +09:00
JaKooLit
ec1285d8d1 updated dotfiles.sh 2025-03-09 16:13:26 +09:00
Ja.KooLit
3486e33dde Update install.sh 2025-03-09 09:17:56 +09:00
JaKooLit
0bdef7305d changed all the depth 1 to depth=1 2025-03-08 23:16:05 +09:00
JaKooLit
f3d0b3ddfb removed vim in the packages to install 2025-03-08 22:55:20 +09:00
Ja.KooLit
96d3adc1ed Merge pull request #228 from JaKooLit/development
Development to main (whiptail edition)
2025-03-08 20:25:22 +09:00
JaKooLit
e6b78f074a updated confirmation message. Instead of exiting, returning to options 2025-03-08 00:04:14 +09:00
JaKooLit
902464683c updated readme 2025-03-07 19:58:21 +09:00
JaKooLit
3010cc882d updated 2025-03-07 19:23:48 +09:00
JaKooLit
cd16826482 updated install.sh 2025-03-07 19:16:11 +09:00
JaKooLit
96c03b18a2 updated Arch-Hyprland 2025-03-07 19:06:50 +09:00
JaKooLit
11a27c79b9 added some color coding 2025-03-07 18:48:53 +09:00
JaKooLit
e565faf376 dang you github 2025-03-07 16:23:21 +09:00
JaKooLit
17494d5d9d oops 2025-03-07 16:18:09 +09:00
JaKooLit
971a4083ff updated 2025-03-07 16:17:39 +09:00
JaKooLit
432a2070cf added auto clone and auto ran of install.sh 2025-03-07 16:09:47 +09:00
JaKooLit
450267e45b updated 2025-03-07 15:29:54 +09:00
JaKooLit
279536e69b update 2025-03-07 15:14:44 +09:00
JaKooLit
ffaf189402 changed temporarily to development 2025-03-07 15:10:32 +09:00
JaKooLit
e31f518c36 minor update 2025-03-07 15:08:17 +09:00
JaKooLit
3c6090925b adding auto download and install 2025-03-07 15:05:06 +09:00
Ja.KooLit
d345c08e01 Merge pull request #227 from JaKooLit/dev-whiptail
Dev whiptail to development
2025-03-07 14:05:38 +09:00
JaKooLit
36b0732056 some color coding added 2025-03-07 13:24:53 +09:00
JaKooLit
30fb2d1814 added some colors in messages 2025-03-07 11:05:06 +09:00
JaKooLit
213e3757df adjusted to disable sddm option if non-SDDM login managers are active 2025-03-07 10:12:24 +09:00
JaKooLit
e87f6c1beb switched to lsd from eza 2025-03-06 22:56:06 +09:00
JaKooLit
16f1b2418d adjusted install.sh 2025-03-02 13:21:02 +09:00
JaKooLit
54ff099d51 updated login manager warning 2025-03-02 02:17:41 +09:00
JaKooLit
79ce9a266e minor adjustment on dotfiles main script 2025-03-02 00:54:52 +09:00
JaKooLit
ab7063cadc minor install.sh update 2025-03-02 00:09:25 +09:00
JaKooLit
eafb151d0d updated install.sh 2025-03-01 18:42:12 +09:00
JaKooLit
7976768137 minor update install.sh 2025-03-01 18:35:48 +09:00
JaKooLit
5a459d35e7 updated hyprland-git installer 2025-03-01 16:31:25 +09:00
JaKooLit
59f9364309 updated location of installation of whiptail 2025-02-28 01:15:00 +09:00
JaKooLit
185a7d2db7 updated 2025-02-28 00:59:36 +09:00
JaKooLit
07ab9e9147 updated 2025-02-27 23:45:01 +09:00
JaKooLit
f0186dec33 updated some files 2025-02-27 20:53:19 +09:00
JaKooLit
bf44e13dac updated 2025-02-27 20:44:57 +09:00
JaKooLit
aae594ecff minor adjustment on the readme on how to utilize preset.sh 2025-02-27 16:53:55 +09:00
JaKooLit
c3c4d621ca adjusted to whiptail version 2025-02-27 16:52:27 +09:00
Ja.KooLit
58185e1dd3 Merge pull request #224 from JaKooLit/main
main to development
2025-02-27 16:39:25 +09:00
JaKooLit
ea2125a467 updated pokomen.sh 2025-02-25 12:00:59 +09:00
JaKooLit
1182b17d0b updated zsh_pokemon.sh 2025-02-25 01:18:03 +09:00
Ja.KooLit
cc3d20e664 Merge pull request #221 from JaKooLit/main
main to development
2025-02-24 00:55:23 +09:00
JaKooLit
b16f579e86 applying of sddm theme fixed 2025-02-24 00:16:00 +09:00
JaKooLit
11f2b0c6fe it seems like installer is breaking pokemon 2025-02-23 20:43:18 +09:00
JaKooLit
2ee27f6959 updated pokemon 2025-02-23 16:35:54 +09:00
Ja.KooLit
6c5c4b22b8 Merge pull request #220 from JaKooLit/development
Development to main
2025-02-23 14:47:35 +09:00
Ja.KooLit
c1b872865a Merge branch 'main' into development 2025-02-23 14:47:24 +09:00
JaKooLit
8d92fdd1af added Fantasque Sans Mono Nerd for Kitty 2025-02-23 12:36:23 +09:00
JaKooLit
07f5053b2b added Victor Mono Font for proper hyprlock font rendering for Dots v2.3.12 2025-02-23 11:46:02 +09:00
JaKooLit
e4e488fc4c changed url for installing oh-my-zsh to get wider coverage. Some countries are blocking github raw url's 2025-02-22 13:01:24 +09:00
JaKooLit
1970cca375 testing so it will be more compatible for countries that block github raw 2025-02-22 12:04:06 +09:00
JaKooLit
2828811ad8 updated zsh.rc 2025-02-22 11:58:03 +09:00
JaKooLit
653ca995ae updated zsh_pokemon.sh 2025-02-22 11:07:18 +09:00
JaKooLit
f4fcd6deed minor update 2025-02-22 10:34:23 +09:00
JaKooLit
52531e7d1f replaced eog with loupe 2025-02-22 01:04:46 +09:00
Ja.KooLit
5db40aafa3 Merge pull request #219 from JaKooLit/main
fix zsh theme issue
2025-02-21 15:45:51 +09:00
JaKooLit
1d2126b7ff fix zsh theme issue 2025-02-21 15:03:15 +09:00
Ja.KooLit
622e09c781 Merge pull request #217 from JaKooLit/before-push
Main to development
2025-02-20 23:33:21 +09:00
Ja.KooLit
5baaec6f12 Merge branch 'development' into before-push 2025-02-20 23:33:06 +09:00
JaKooLit
941b24ed1d Added nwg-displays for the upcoming Kools dots v2.3.12 2025-02-20 22:37:49 +09:00
JaKooLit
cfab030ca2 added initial shell check first if zsh already inorder to skip changing to zsh 2025-02-19 20:23:33 +09:00
Ja.KooLit
8ea3dc390c Merge pull request #215 from brockar/main
[fix] add a line break to ask for password
2025-02-19 13:39:08 +09:00
brockar
6c1b941fa1 [fix] add a line break to ask for password 2025-02-19 00:58:26 -03:00
Ja.KooLit
3e7f5664e5 Update 01-hypr-pkgs.sh 2025-02-19 08:46:37 +09:00
JaKooLit
af4d191ee3 added mercurial for the new oh my zsh theme 2025-02-19 00:09:49 +09:00
JaKooLit
5fa3096724 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 2025-02-18 11:59:47 +09:00
installer
d00addba58 updated Readme 2025-02-16 17:51:39 +09:00
JaKooLit
e28b5940cb updated sddm_theme.sh 2025-02-16 14:19:16 +09:00
JaKooLit
49f8cef0be updated sddm theme 2025-02-16 13:01:39 +09:00
JaKooLit
ac4ffc922a readme updated 2025-02-11 22:48:34 +09:00
JaKooLit
c93e1861d0 updated pokemon.sh 2025-02-10 18:18:39 +09:00
JaKooLit
4185638900 readme updated 2025-02-10 00:28:26 +09:00
JaKooLit
a4f16e24cb fixed sddm theme.sh 2025-02-09 10:35:55 +09:00
JaKooLit
d09e2dfd09 updated secondary check for disable other login managers 2025-02-09 09:40:32 +09:00
JaKooLit
9695a4c75b updated pipewire.sh and sddm.sh 2025-02-09 08:41:59 +09:00
JaKooLit
68af696789 updated pipewire.sh 2025-02-09 00:53:14 +09:00
JaKooLit
b2f43b18fd minor sddm.sh tweak 2025-02-09 00:32:33 +09:00
JaKooLit
f450ddd382 updated assets-hyprland install 2025-02-08 10:43:52 +09:00
JaKooLit
04c090a828 added 2025 2025-02-08 03:24:42 +09:00
Ja.KooLit
bb58ae9940 Merge pull request #204 from JaKooLit/development
Development to main
2025-02-07 21:38:20 +09:00
JaKooLit
39e515f9b0 updated since many conflicts 2025-02-07 21:35:56 +09:00
JaKooLit
8842d72a79 updated sddm and sddm theme 2025-02-07 21:27:54 +09:00
JaKooLit
573321fd5f updated sddm_theme.sh 2025-02-07 20:21:04 +09:00
JaKooLit
e766866207 updated install scripts for AUR 2025-02-07 19:57:20 +09:00
JaKooLit
fb9b3a8205 updated preset.sh 2025-02-07 19:18:17 +09:00
JaKooLit
3420522393 updated screenshot of install scripts 2025-02-07 01:29:31 +09:00
JaKooLit
409aadf655 RC1 2025-02-07 00:17:04 +09:00
JaKooLit
dcc282968e updated sddm_theme.sh 2025-02-06 23:04:38 +09:00
JaKooLit
a66845607d updated README .. will updated the Installation picture later 2025-02-06 22:36:28 +09:00
JaKooLit
f5e3ed99d2 minor update 2025-02-06 21:06:14 +09:00
JaKooLit
2d31448492 minor sddm_theme.sh change 2025-02-06 20:08:24 +09:00
JaKooLit
39d3f1a958 last tweak (hopefully) 2025-02-06 19:40:29 +09:00
JaKooLit
28c12f6df2 minor tweak 2025-02-06 19:22:54 +09:00
JaKooLit
79af4e7b7d updated and hopefully ready for release candidate :) 2025-02-06 19:14:58 +09:00
JaKooLit
8a60729680 tweaked 2025-02-06 19:00:39 +09:00
JaKooLit
fd1358d920 move all the initial questions at the beginning 2025-02-06 18:54:53 +09:00
JaKooLit
113fee6d7a another tweak for ags.sh 2025-02-06 13:06:02 +09:00
JaKooLit
87676210e2 tweaked ags.shv 2025-02-06 12:57:26 +09:00
JaKooLit
cf6cc1010e one more tweak 2025-02-06 12:46:45 +09:00
JaKooLit
52dfbe8593 oops found another thing :) 2025-02-06 12:28:45 +09:00
JaKooLit
e9c5d3d4a6 found it :) 2025-02-06 12:25:41 +09:00
JaKooLit
1e2704bc23 another tweak 2025-02-06 12:23:59 +09:00
JaKooLit
f049050b73 removed the --needed 2025-02-06 12:17:09 +09:00
JaKooLit
094ccb9b1f and yet I thought I already tweaked 2025-02-06 12:12:39 +09:00
JaKooLit
47791287f1 better 2025-02-06 12:07:00 +09:00
JaKooLit
4fba08d8d6 see.. and I thought it is almost ready ha ha 2025-02-06 12:03:13 +09:00
JaKooLit
a19b9b8a8d new logo :) 2025-02-06 11:58:26 +09:00
JaKooLit
5f20c04b05 updated 2025-02-06 10:47:00 +09:00
JaKooLit
9aa43ae531 hey. Dont mind me.. I am still tweaking :) 2025-02-06 10:01:45 +09:00
JaKooLit
bf67e6030c color coding & script tweaks 2025-02-06 01:33:58 +09:00
JaKooLit
9873283814 tweaked install.sh 2025-02-06 00:31:46 +09:00
JaKooLit
03aa990f35 package removal function enhanced 2025-02-05 23:38:49 +09:00
JaKooLit
2c4cdd3889 minor update 2025-02-05 22:14:28 +09:00
JaKooLit
eb486d7ef2 minor tweak 2025-02-05 13:31:43 +09:00
JaKooLit
262b6eb87c updated install.sh 2025-02-05 11:44:49 +09:00
JaKooLit
3233396b72 updated thunar.sh 2025-02-05 11:35:30 +09:00
JaKooLit
df48873278 minor update 2025-02-05 11:12:20 +09:00
JaKooLit
3af8762a88 tweakked for nvidia 2025-02-05 11:05:09 +09:00
JaKooLit
e35d66658c quite possibly ready for testing? 2025-02-05 08:45:49 +09:00
JaKooLit
e320af02c8 updated showcase readme 2025-02-04 22:24:07 +09:00
JaKooLit
6a67a21a33 updated showcase readme 2025-02-04 22:24:00 +09:00
JaKooLit
b6d982d168 updated Readme showcase 2025-02-04 21:08:36 +09:00
JaKooLit
2590e76bd2 updated Readme showcase 2025-02-04 21:08:28 +09:00
JaKooLit
bde3ef8433 minor update.sh 2025-02-04 19:31:08 +09:00
JaKooLit
6b3d3efbb5 minor update 2025-02-04 18:04:26 +09:00
JaKooLit
c4074aeffa removed the exit on individual install scripts since its already handled by Global functions 2025-02-04 16:21:58 +09:00
JaKooLit
f578249698 new sddm.png 2025-02-04 12:07:31 +09:00
JaKooLit
b43ace2f24 updated sddm.sh 2025-02-04 11:57:39 +09:00
JaKooLit
815438934a minor tweak sddm.sh 2025-02-04 10:51:02 +09:00
JaKooLit
5d5af21bea updated default sddm wallpaper 2025-02-04 01:11:43 +09:00
JaKooLit
e1d258503a updated zsh.sh 2025-02-03 22:29:04 +09:00
JaKooLit
fa9c2ae04f updated thunar.sh 2025-02-03 22:23:11 +09:00
JaKooLit
8a7f40c75a fixed sddm theme cloning 2025-02-03 19:41:44 +09:00
JaKooLit
d6a25e04e7 add argument to check if yay or paru is installed first before asking if want yay or paru 2025-02-03 19:40:33 +09:00
JaKooLit
61b61a980c good thing a cross check is done :) 2025-02-03 18:33:55 +09:00
JaKooLit
cc9ce2cb49 minor zsh update 2025-02-03 18:16:09 +09:00
JaKooLit
7278a45305 added support to make current wallpaper to SDDM (NOTE: need sequoia wallpaper) 2025-02-03 17:24:54 +09:00
JaKooLit
049c27ac22 offering a new SDDM theme 2025-02-03 15:54:42 +09:00
JaKooLit
90121d9172 moved the nvidia question on the beginning 2025-02-03 13:14:16 +09:00
JaKooLit
2b0528ca89 added pciutils and lspci will check if nvidia is present 2025-02-03 13:11:28 +09:00
JaKooLit
528551ea86 There are still some other things you see on final test :) BUT, Im quite ok with this 2025-02-03 12:25:10 +09:00
JaKooLit
8c71bdeee7 final tweak before merging to main... I think I am happy now with this 2025-02-03 12:05:06 +09:00
JaKooLit
63f2f45866 This is it..
I can feel it... danggit
2025-02-03 11:52:58 +09:00
JaKooLit
c1f67feb18 Final color coding tweak. If also thunar.sh not able to use preset.sh, then I dont know 2025-02-03 11:42:43 +09:00
JaKooLit
d215fbd786 Probably now fixed if preset.sh is used for thunar 2025-02-03 11:21:32 +09:00
JaKooLit
1d812d7357 updated the mini script to install non-git or git hyprland version 2025-02-03 11:02:58 +09:00
JaKooLit
083c20878e updated ags.sh to skip if v1.9.0 is already installed 2025-02-03 02:29:53 +09:00
JaKooLit
695081332b I think I found the fix on the Thunar making default when use preset.sh 2025-02-03 02:22:57 +09:00
JaKooLit
93d3a18b9a looks cooler :) 2025-02-03 02:08:17 +09:00
JaKooLit
29cc1c3f52 change progress bar to growing and shrinking dots 2025-02-03 02:05:01 +09:00
JaKooLit
bfbbbd2e52 change progress animation 2025-02-03 01:59:04 +09:00
JaKooLit
e2fe39222c getting tired 2025-02-03 01:41:40 +09:00
JaKooLit
872fd89261 argh still found something 2025-02-03 01:32:54 +09:00
JaKooLit
d3f0016158 Final tweak. I hope so :) 2025-02-03 01:28:27 +09:00
JaKooLit
8995c47902 heh!!!... still tweaking 2025-02-03 00:57:08 +09:00
JaKooLit
058859a07e minor tweak 2025-02-03 00:51:48 +09:00
JaKooLit
54363d5267 seems does not want color 2025-02-03 00:47:05 +09:00
JaKooLit
b2628c8126 update 2025-02-03 00:45:50 +09:00
JaKooLit
7ecb641731 hmmm 2025-02-03 00:43:42 +09:00
JaKooLit
497e71fdf5 color coding tweak 2025-02-03 00:41:15 +09:00
JaKooLit
35aa72e021 another color coding tweak 2025-02-03 00:34:27 +09:00
JaKooLit
9c1741e00d color coding tweak 2025-02-03 00:29:47 +09:00
JaKooLit
fcf18bede5 minor tweak 2025-02-03 00:27:04 +09:00
JaKooLit
6abc879468 some tweaking on install-scripts except the compiling part. It will not show progress for much cleaner work. 2025-02-02 22:54:58 +09:00
JaKooLit
38ce478f5c updated hyprland install script helper 2025-02-02 19:59:00 +09:00
Ja.KooLit
527a504e83 Delete assets/hyprland-install.tar.gz 2025-02-02 13:44:19 +09:00
JaKooLit
a44b376e79 added hyprland-install scripts 2025-02-02 13:42:37 +09:00
Ja.KooLit
2e62542a35 Add files via upload 2025-02-01 14:30:59 +09:00
JaKooLit
5343041805 updated some color coding.
Will probably tweak more later
2025-01-31 23:36:38 +09:00
JaKooLit
221870054e color coding update 2025-01-31 00:52:57 +09:00
JaKooLit
193977dcb6 color coding adjustments 2025-01-31 00:37:29 +09:00
JaKooLit
c18526390d remove ags on final check since it is now optional 2025-01-30 21:32:53 +09:00
JaKooLit
7b403cd72d updated link for AGS overview 2025-01-30 20:41:23 +09:00
Ja.KooLit
9a6fce78ab Update README.md 2025-01-30 20:23:24 +09:00
JaKooLit
0c8c829c57 added readme for AGS overview 2025-01-30 12:03:41 +09:00
JaKooLit
2ed79c491a updated Readme to add AGS overview demo 2025-01-30 11:07:17 +09:00
JaKooLit
c1c5450c9b updated installer. AGS overview is completely optional now 2025-01-30 10:21:52 +09:00
Ja.KooLit
7eea1d7659 Merge pull request #197 from JaKooLit/development
Development to Main
2025-01-29 23:11:24 +09:00
JaKooLit
dac6c373c9 updated changelogs 2025-01-29 23:10:46 +09:00
JaKooLit
b9b437cb23 updated nvidia.sh 2025-01-29 21:51:06 +09:00
JaKooLit
01a001f9a6 updated nvidia installation re bootloaders 2025-01-29 21:37:06 +09:00
JaKooLit
fc2df0f9a3 updated nvidia 2025-01-29 21:01:22 +09:00
JaKooLit
67d6c1524e enhance global function and added systemd boot entries 2025-01-29 20:59:22 +09:00
Ja.KooLit
e96da3ea4a Merge pull request #196 from JaKooLit/main
main to development
2025-01-29 20:57:24 +09:00
JaKooLit
b3a0055785 added libspng - required in hyprgraphics 2025-01-27 23:37:21 +09:00
JaKooLit
bd03f3eeeb updated xdph added umockdev 2025-01-27 17:59:51 +09:00
Ja.KooLit
68eef02324 Merge pull request #191 from JaKooLit/JaKooLit-patch-1
Update README.md - added latest installation video by ksk royal
2025-01-23 07:07:26 +08:00
Ja.KooLit
6ab203a6d4 Update README.md - added latest installation video by ksk royal 2025-01-23 07:06:27 +08:00
JaKooLit
2fc7acf538 updated readme 2025-01-18 10:58:37 +09:00
JaKooLit
7a70f63f3e updated nvidia.sh to install non-git libva-nvidia-driver 2025-01-17 00:21:08 +09:00
Ja.KooLit
7d056ae6e4 Merge pull request #189 from JaKooLit/main
main to development
2025-01-16 06:30:08 +09:00
JaKooLit
4c09bdfad1 replaced polkit-gnome with hyprpolkitagent 2025-01-13 11:08:30 +09:00
JaKooLit
94bc08c1a4 switch to final version of aylurs-gtk-shell-v1 2025-01-12 13:20:42 +09:00
JaKooLit
71cc8ef641 added cachyos-hyprland-settings to uninstallv 2025-01-11 23:18:51 +09:00
JaKooLit
5610bc9d30 readme updated 2025-01-07 21:59:31 +09:00
Ja.KooLit
e7fc2dc95a Merge pull request #185 from JaKooLit/main
main to development
2025-01-07 21:45:46 +09:00
JaKooLit
ced449539e updated readme 2025-01-07 21:05:52 +09:00
JaKooLit
79fbcc022b switched to xarchiver simply because file-roller sucks. gives me lots of issues 2025-01-07 11:51:02 +09:00
JaKooLit
2f4790f04e zsh theme to funky and added fastfetch config for distro specific 2025-01-07 11:09:28 +09:00
JaKooLit
ef7e427b7e fixed copying of fastfetch 2025-01-06 21:00:43 +09:00
JaKooLit
fbe4560a4a added copying of modified fastfetch-compact for Arch 2025-01-06 14:21:15 +09:00
JaKooLit
4d783a270b templates final 2025-01-03 22:48:04 +09:00
JaKooLit
e4c8763d6f updated issue and feature request template 2025-01-03 21:30:01 +09:00
JaKooLit
b253c9f764 installing paru-bin to address issue https://github.com/JaKooLit/Arch-Hyprland/issues/183 to not pull cargo/or rust nor rustup 2024-12-31 09:00:07 +09:00
JaKooLit
813b11dcab Global Function Tweak and Final Check 2024-12-29 01:35:45 +09:00
JaKooLit
09fb19d8a3 small tweak on Global Functions 2024-12-27 20:03:15 +09:00
JaKooLit
3cab113056 Removal of Bibata Ice cursor on assets since its integrated in the GTK Themes and Icons extract from a separate repo 2024-12-26 06:54:31 +09:00
Donald Williams
a31f6a4716 Merge pull request #180 from brockar/hyprland-qtutils
add hyprland-qtutils to install as a new dependency in Hyprland 0.46+  removes error msg on startup
2024-12-21 16:32:01 -05:00
brockar
3f2c9ac655 add hyprland-qtutils to install
now hyprland request this on a popup, so i added this to fix that error
2024-12-21 17:32:04 -03:00
Ja.KooLit
080c210d60 Update ags.sh 2024-11-22 07:04:13 +00:00
JaKooLit
70604dc0a5 added aylurs-gtk-shell to packages to uninstall 2024-11-16 09:28:59 +09:00
JaKooLit
ac22f4e161 revert ags to older version (compiling from source to have AGS overview) 2024-11-16 09:10:51 +09:00
Ja.KooLit
cbe3de92f5 Merge pull request #162 from SSYH/patch-1
simple spelling change
2024-10-13 13:56:47 +09:00
Sam Hahn
e5c54b9145 simple spelling change
costumize -> customize
2024-10-12 21:49:47 -07:00
Ja.KooLit
170e36518a Update README.md 2024-10-11 17:17:46 +04:00
JaKooLit
54b65e92b8 added qalculate-gtk 2024-10-08 23:52:28 +09:00
JaKooLit
84a413c615 added tip for searchable keybinds via rofi 2024-09-21 22:27:11 +09:00
JaKooLit
cea9183d2d User will be ask if they want to set Thunar as default file manager if they decided to install it 2024-09-20 20:05:50 +09:00
JaKooLit
8eef96db51 small tweak 2024-09-20 18:55:13 +09:00
JaKooLit
f99474f81f updated thunar and preset.sh 2024-09-20 18:51:13 +09:00
JaKooLit
10a1e9142d updaed preset.sh 2024-09-20 18:40:02 +09:00
JaKooLit
b4bfd935d9 updated zsh.sh 2024-09-20 17:43:10 +09:00
JaKooLit
17b836ee2f Added fastfetch on tty. However, will be disabled if user decided to install pokemon colorscripts 2024-09-19 17:05:05 +09:00
JaKooLit
54bc0d1499 updated install.sh 2024-09-18 23:35:44 +09:00
JaKooLit
0e876533c2 ask user if thunar wants to be default. some formatting changes 2024-09-18 17:13:17 +09:00
JaKooLit
f096714637 dotfiles will now be downloaded from main or master branch instead of from the releases version. 2024-09-18 14:32:20 +09:00
JaKooLit
38f24a43bb added dotfiles-main.sh to download from main instead of from releases 2024-09-18 01:21:47 +09:00
JaKooLit
0ed0894c38 switched over to non-bin yay or paru 2024-09-16 01:48:54 +09:00
JaKooLit
c0b198d562 Final tweaks of color variants for output messages 2024-09-14 17:08:00 +09:00
JaKooLit
99cc2c481b Some changes on numbers on install scripts 2024-09-14 13:12:01 +09:00
JaKooLit
b16dffda4d another update for uninstallation process 2024-09-14 11:40:36 +09:00
JaKooLit
04995241c4 updated uninstall functions 2024-09-14 11:32:32 +09:00
JaKooLit
44b58b3c65 just a bit tweak of final check script 2024-09-14 01:55:29 +09:00
JaKooLit
eb033d3220 final tweak of install scripts 2024-09-14 01:29:54 +09:00
JaKooLit
ba7dcc8523 updated Final-Check.sh 2024-09-14 01:28:27 +09:00
JaKooLit
bbc3094e3d update Install scripts 2024-09-14 01:16:32 +09:00
JaKooLit
8ad8784443 updated - added final check of install packages 2024-09-14 00:48:15 +09:00
JaKooLit
477545ac2e just color tweak 2024-09-08 14:55:13 +09:00
Ja.KooLit
5f59d96640 Merge pull request #147 from JaKooLit/development
Development to Main
2024-09-08 11:55:22 +09:00
JaKooLit
4f7ff52523 Added final error checks on install-logs 2024-09-08 11:40:30 +09:00
JaKooLit
16f3c44ec8 Added error checks 2024-09-08 11:25:42 +09:00
Ja.KooLit
fb2866eed1 Update install.sh 2024-09-08 11:08:51 +09:00
JaKooLit
b47a5f7a9a added a final error check 2024-09-08 11:02:58 +09:00
Ja.KooLit
8a452057cf Merge pull request #146 from JaKooLit/main
Main to development synchronization
2024-09-08 10:54:45 +09:00
JaKooLit
9241cbf2c6 added sof-firmware 2024-09-07 23:29:23 +09:00
JaKooLit
3318f33c31 adjusted to detect if pulseaudio is installed 2024-09-07 23:27:46 +09:00
Ja.KooLit
267eda6dc4 Merge pull request #143 from JaKooLit/main
Main to development
2024-09-05 17:07:30 +09:00
JaKooLit
48b57acbfd minor tweak 2024-09-03 23:45:14 +09:00
Ja.KooLit
e25cbba2c6 install.sh - Edited to WARN if hyprland failed to install 2024-09-01 15:31:45 +09:00
JaKooLit
38cb01047c switched over to non-git wallust package 2024-08-29 22:04:21 +09:00
JaKooLit
6fe4514341 move pyprland and other hyprland related packages in hyprland.sh 2024-08-29 10:35:36 +09:00
Ja.KooLit
43ce92bb86 Merge pull request #139 from JaKooLit/development
Synchronize Main and Development Branches
2024-08-28 18:42:28 +09:00
Ja.KooLit
8a5705156e Merge pull request #138 from JaKooLit/main
Main to Development
2024-08-28 18:41:35 +09:00
Ja.KooLit
3ed441614e Added final check if hyprland is installed and will give an error to user 2024-08-28 18:37:42 +09:00
Ja.KooLit
37f9b02292 updated install.sh to check if base-devel is install and Hyprland is installed and will exit and give an error message accordingly 2024-08-28 18:36:43 +09:00
Ja.KooLit
f8a0c925c3 Merge pull request #136 from JaKooLit/main
Main to Development synchronization
2024-08-26 23:11:08 +09:00
JaKooLit
d0605b5afe added nvidia_drm.fbdev=1 for grub 2024-08-26 23:09:29 +09:00
JaKooLit
39a97acf3b Set to uninstall rofi as conflicts with rofi-wayland 2024-08-26 20:32:19 +09:00
JaKooLit
a177ed254f Set to uninstall rofi as conflicts with rofi-wayland 2024-08-26 20:31:40 +09:00
JaKooLit
73938d8343 added base devel to install first 2024-08-26 15:40:42 +09:00
Ja.KooLit
f82fcf966c Merge pull request #130 from JaKooLit/main
Main to Dev
2024-08-14 21:03:14 +09:00
Ja.KooLit
f7bf5a4667 Update CHANGELOGS.md 2024-08-14 15:42:35 +09:00
Ja.KooLit
9ac06f2125 Update CHANGELOGS.md 2024-08-14 15:42:24 +09:00
Ja.KooLit
acce625ac7 Update 00-base.sh 2024-08-14 15:41:36 +09:00
Ja.KooLit
a09c819cb6 Add files via upload 2024-08-10 15:27:49 +00:00
Ja.KooLit
c891da45d5 Merge pull request #129 from JaKooLit/main
Main to Development
2024-08-08 15:48:27 +00:00
Ja.KooLit
0b1be97f7b Merge pull request #128 from JaKooLit/development
Development to main
2024-08-08 15:46:59 +00:00
Ja.KooLit
939444a27d Merge pull request #127 from JaKooLit/JaKooLit-patch-1
Update CHANGELOGS.md
2024-08-08 15:43:52 +00:00
Ja.KooLit
ae4bc4a855 Update CHANGELOGS.md 2024-08-08 15:43:31 +00:00
Ja.KooLit
7ebfa06c3b Update install.sh
Increased to 1 sec delay for installing base
2024-08-08 15:41:48 +00:00
Ja.KooLit
6655cc12e6 Merge pull request #106 from JaKooLit/main
synchronize Main to Development
2024-07-11 11:45:16 +09:00
JaKooLit
3502766cd7 updated readme re rofi 2024-07-11 11:40:40 +09:00
Ja.KooLit
60c62bd122 Merge pull request #105 from JaKooLit/main
synchronize Main to Development
2024-07-11 11:14:51 +09:00
JaKooLit
611d8ba612 updated readme 2024-07-11 11:12:35 +09:00
Ja.KooLit
56d3cbb19b Merge pull request #101 from JaKooLit/development
Development to Main
2024-07-07 22:49:50 +09:00
JaKooLit
69e938e33c move installation of eza on zsh.sh 2024-07-07 22:41:19 +09:00
Ja.KooLit
b0f2e59cd1 Merge pull request #100 from ElectroPerf/main
feat: Use eza to display file/folder icons in terminal
2024-07-07 22:26:32 +09:00
Kunmun
227ef1d75d feat: Use eza to display file/folder icons in terminal
Change-Id: I3807eef228a3799c652eea185384445de7c5c370
2024-07-07 17:42:34 +05:30
JaKooLit
165d8ff0bb added fbdev=1 on nvidia.sh 2024-06-25 22:00:36 +09:00
Ja.KooLit
0fdd31534f Update README.md 2024-06-23 17:04:05 +08:00
Ja.KooLit
2ae238ace1 Merge pull request #93 from JaKooLit/main
Main to Development
2024-06-22 15:12:43 +09:00
JaKooLit
1f822e3d5f updated Discord Link - Readme 2024-06-22 15:08:32 +09:00
JaKooLit
322ddee8e7 updated discord link 2024-06-21 04:26:25 +09:00
Ja.KooLit
9615baf63e updated readme regarding nvidia 2024-06-11 04:41:07 +09:00
JaKooLit
5add49ac89 updated base-devel installation 2024-06-10 00:13:52 +09:00
JaKooLit
86943a51b3 added inxi for better diagnostic info 2024-06-09 10:36:32 +09:00
Ja.KooLit
d24a9c4888 updated readme 2024-06-08 23:58:39 +09:00
Ja.KooLit
62e69cfd73 updated readme 2024-06-08 23:54:40 +09:00
JaKooLit
97992554b1 added keybinds link on readme 2024-06-05 13:25:15 +09:00
JaKooLit
6120faaea5 removed bookmarks from gtk-3.0 directory 2024-06-05 13:01:48 +09:00
Ja.KooLit
f45f41d14a Merge pull request #86 from JaKooLit/main
main to development
2024-06-04 03:04:45 +09:00
JaKooLit
f214cf3c8d updated Thunar.sh to include gtk-3.0 config if not present 2024-06-01 18:56:32 +09:00
JaKooLit
55f5819ae9 updated issue templates 2024-05-30 03:22:56 +09:00
Ja.KooLit
c15100db44 Merge pull request #85 from JaKooLit/main
Main to development
2024-05-27 05:21:38 +09:00
JaKooLit
c429266320 Added fzf for zsh, clean up readme 2024-05-27 05:18:22 +09:00
JaKooLit
3b6c7c3c73 updated GTK theme install script to avoid confusion 2024-05-25 18:06:44 +09:00
Ja.KooLit
4c56e4fbcc Update README.md 2024-05-25 17:35:26 +09:00
Ja.KooLit
e3c10a7661 Merge pull request #83 from JaKooLit/development
Development to Main for v2.2.12 Hyprland-Dots release
2024-05-24 21:23:34 +09:00
Ja.KooLit
5fc5342a67 Merge branch 'main' into development 2024-05-24 21:23:24 +09:00
JaKooLit
216008382e added fastfetch, power-profiles-daemon (only to ROG users), see changelogs notes 2024-05-24 00:08:09 +09:00
Ja.KooLit
51f4bcfa26 Update CHANGELOGS.md
For development. Not yet ready
2024-05-23 17:14:36 +09:00
Ja.KooLit
6f2128a27a Update 00-hypr-pkgs.sh
mistake.. should be in development first
2024-05-23 17:13:27 +09:00
Ja.KooLit
07824f1fab Merge pull request #81 from JaKooLit/main
Main to Development for new features
2024-05-23 17:09:36 +09:00
Ja.KooLit
1d100b2ca9 Merge branch 'development' into main 2024-05-23 17:09:15 +09:00
JaKooLit
8b01d91625 added qalculate-gtk for Hyprland-Dots v2.2.12 2024-05-23 13:26:47 +09:00
JaKooLit
bd162bffd3 changed the sddm theme destination to /etc/sddm.conf.d/10-theme.conf to theme.conf.user 2024-05-22 21:13:24 +09:00
JaKooLit
bc4a9b54f7 updated packages 2024-05-22 20:40:12 +09:00
JaKooLit
dc3dc39e12 updated readme regarding Hyprland Auto starting 2024-05-22 00:19:37 +09:00
JaKooLit
03ca2d6494 added file-roller in thunar 2024-05-21 21:44:23 +09:00
JaKooLit
eb62120deb updated readme 2024-05-20 11:40:20 +09:00
JaKooLit
340019c627 updated readme 2024-05-20 11:30:09 +09:00
Ja.KooLit
7a111e0284 Merge pull request #80 from JaKooLit/main
Main to development
2024-05-19 14:46:09 +09:00
JaKooLit
6252e96186 updated behaviour of .zprofile as causing auto-login to Hyprland 2024-05-19 12:27:05 +09:00
JaKooLit
92f595b6e4 updated readme 2024-05-18 23:23:50 +09:00
JaKooLit
37f09a8e7e updated readme 2024-05-18 18:39:12 +09:00
JaKooLit
ae859493b6 updated Readme 2024-05-18 00:53:25 +09:00
Ja.KooLit
ae720c7299 Merge pull request #78 from JaKooLit/main
Main to development
2024-05-14 00:39:41 +09:00
JaKooLit
84e32d5ea3 remove pywal colors for .zshrc 2024-05-14 00:27:22 +09:00
Ja.KooLit
b2195df659 Merge pull request #75 from JaKooLit/development
Releasing a new installer to work with Hyprland-Dots v2.2.11
2024-05-13 11:20:28 +09:00
Ja.KooLit
c5837fd525 Merge pull request #74 from JaKooLit/main
Merging Main to Development, prior release of new installer for Hyprland-Dots v2.2.11
2024-05-13 11:14:22 +09:00
JaKooLit
c3710b89aa edited install.sh to avoid confusion (hopefully) on use preset settings 2024-05-11 19:25:10 +09:00
JaKooLit
87dfa43733 updated readme to highlight pipewire 2024-05-11 11:37:24 +09:00
Ja.KooLit
faa76f335f Update README.md 2024-05-10 22:48:13 +09:00
Ja.KooLit
dc800878a6 Update README.md 2024-05-10 22:47:10 +09:00
JaKooLit
f7a20da6ea updated for wallust migration from pywal 2024-05-10 12:31:15 +09:00
Ja.KooLit
fdafa3d472 Merge pull request #72 from JaKooLit/main
Tweaked Script including sddm.sh
2024-05-08 11:11:49 +09:00
JaKooLit
9abf9a459d Tweaked Script including sddm.sh 2024-05-08 11:10:17 +09:00
JaKooLit
8ed397017c added ags for the upcoming hyprland-dots v2.2.11 with ags overview 2024-05-07 23:12:10 +09:00
Ja.KooLit
88629e5e07 Merge pull request #71 from JaKooLit/main
main to dev
2024-05-07 02:10:53 +09:00
JaKooLit
fdd442e74b updated arch. switched to cava as installation of cava-git keep the installation hang 2024-05-07 02:04:31 +09:00
Ja.KooLit
f1758c4a67 switched to rofi-wayland extra repo 2024-05-05 07:10:41 +09:00
Ja.KooLit
85eac029b8 Merge pull request #69 from JaKooLit/main
main to development update
2024-05-05 00:42:36 +09:00
Ja.KooLit
28a183f820 Merge pull request #68 from JaKooLit/development
Development to Main
2024-05-05 00:41:32 +09:00
JaKooLit
f57842bd36 Made a separate script for fonts installation for easy debugging purpose 2024-05-04 23:57:28 +09:00
Ja.KooLit
6247e2fa09 switched to cava-git version as cava have issues 2024-05-03 22:48:47 +09:00
JaKooLit
a6b1defa6c added pyquery for new weather python script for waybar on Hyprland-Dots v2.2.10 2024-05-03 17:59:52 +09:00
JaKooLit
d41ff66680 updated readme for some tips for nvidia-gpu users 2024-05-03 09:08:11 +09:00
JaKooLit
51bd4af82c Added pyprland (hyprland plugin) 2024-05-02 19:48:40 +09:00
Ja.KooLit
74ca2e4f90 Merge pull request #66 from JaKooLit/development
some error message grammar corrections
2024-05-02 00:04:17 +09:00
Ja.KooLit
0dec7b3ef2 some error message grammar corrections 2024-05-02 00:00:36 +09:00
Ja.KooLit
2c69ef4342 Merge pull request #65 from JaKooLit/main
synchronize main to development
2024-05-01 12:00:59 +09:00
Ja.KooLit
aeeb8b50d8 Merge pull request #64 from JaKooLit/development
updated install.sh
2024-05-01 12:00:10 +09:00
JaKooLit
8e97290429 updated install.sh 2024-05-01 11:56:21 +09:00
Ja.KooLit
1c49abbe54 Merge pull request #63 from JaKooLit/development
updated readme to add stargazers
2024-04-30 23:50:12 +09:00
JaKooLit
8cf857efc7 updated readme 2024-04-30 23:48:49 +09:00
Ja.KooLit
a265f12931 Merge pull request #62 from JaKooLit/development
Updated readme to download to user directory instead of somewhere else
2024-04-29 08:28:10 +09:00
Ja.KooLit
95cc453086 Merge pull request #61 from JaKooLit/main
main to development
2024-04-29 08:27:13 +09:00
JaKooLit
fbf8545540 Updated readme 2024-04-29 07:51:12 +09:00
JaKooLit
f1fd1d1170 updated readme 2024-04-26 09:39:59 +09:00
Ja.KooLit
2154eef613 Merge pull request #59 from JaKooLit/development
updated SDDM scripts. Regarding custom theme
2024-04-26 09:28:49 +09:00
JaKooLit
77192cd06e updated SDDM theme 2024-04-26 09:27:02 +09:00
Ja.KooLit
c73c155a79 Merge pull request #58 from JaKooLit/development
Dropping swayidle and swaylock in favor of hypridle and hyprlock
2024-04-25 22:49:48 +09:00
JaKooLit
45612f287a Dropping swayidle and swaylock in favor of hypridle and hyprlock 2024-04-23 01:47:12 +09:00
Ja.KooLit
b93b09e850 Merge pull request #54 from JaKooLit/development
Development
2024-04-21 01:56:26 +09:00
JaKooLit
24be6f7e0f updated changelogs 2024-04-21 01:55:53 +09:00
Ja.KooLit
37a6170c86 Merge pull request #53 from JaKooLit/main
synchronize main and development branch
2024-04-21 01:53:40 +09:00
Ja.KooLit
1626443441 Merge branch 'development' into main 2024-04-21 01:53:33 +09:00
JaKooLit
1a09f27e8c updated changed oh my zsh default theme to xiong-chiamiov-plus 2024-04-20 11:16:17 +09:00
Ja.KooLit
3ba886fc82 added hyprcursor 2024-03-17 02:32:05 +09:00
Ja.KooLit
80dad5f613 Merge pull request #41 from cbaconnier/fix-sddm-prompt-loop
fix: fix infinte loop when prompting for SDDM themes
2024-03-08 05:53:30 +09:00
Clément Baconnier
198b3e95eb Prevent infinte loop when prompting for SDDM themes 2024-03-07 20:54:24 +01:00
Ja.KooLit
f9a98bc123 Merge pull request #39 from JaKooLit/development
replaced sddm-git with sddm
2024-03-02 09:24:50 +09:00
Ja.KooLit
81efa38c70 replaced sddm-git with sddm 2024-03-02 09:22:16 +09:00
Ja.KooLit
7159473715 Merge pull request #21 from JaKooLit/development
dropped wlsunset
2024-01-11 14:03:47 +00:00
Ja.KooLit
dc6b2523c9 Merge pull request #23 from JaKooLit/JaKooLit-patch-1
Update CHANGELOGS.md
2024-01-11 14:03:32 +00:00
Ja.KooLit
0ff82e2781 Update CHANGELOGS.md 2024-01-11 14:03:06 +00:00
Ja.KooLit
be24393d81 Update CHANGELOGS.md 2024-01-11 14:01:37 +00:00
Ja.KooLit
f406c12892 Merge pull request #22 from JaKooLit/JaKooLit-patch-1
Update CHANGELOGS.md
2024-01-11 14:00:51 +00:00
Ja.KooLit
0258e4f128 Update CHANGELOGS.md 2024-01-11 14:00:28 +00:00
Ja.KooLit
c0bef5bf88 dropped wlsunset 2024-01-11 22:54:55 +09:00
JaKooLit
93218e0ff7 Readme updated regarding 470 nvidia drivers 2024-01-07 01:07:40 +09:00
JaKooLit
e8773551c2 some small corrections on the typo parts 2024-01-06 22:01:12 +09:00
JaKooLit
376cd5ddb7 corrected custom link 2024-01-06 02:25:45 +09:00
JaKooLit
382b9d6d37 Added guidelines for PR, and Reporting, etc 2024-01-06 02:20:03 +09:00
JaKooLit
986b94d138 added PR and Reporting templates, etc 2024-01-06 02:10:40 +09:00
Ja.KooLit
8fe78dd9c8 updated InputGroup prompt. Updated screenshot of installer 2024-01-05 23:33:41 +09:00
Ja.KooLit
743a9e992d returning SDDM question 2024-01-05 23:07:57 +09:00
Ja.KooLit
531edb0107 updated install.sh and preset.sh 2024-01-05 22:45:20 +09:00
Ja.KooLit
dc6f780932 Merge pull request #17 from PostCyberPunk/main
feat(preset): Added a Preset for Quick Installation / Update without prompting the user to answer questions
2024-01-05 22:38:07 +09:00
Ja.KooLit
e7d04b4f7b resolving conflicts 2024-01-05 22:37:05 +09:00
Ja.KooLit
457dbc577f added 2024-01-05 22:32:53 +09:00
Ja.KooLit
fbfdf9bc91 remove install.sh to avoid conflict 2024-01-05 22:32:01 +09:00
Ja.KooLit
0a35fe2b15 to resolve the PR conflict 2024-01-05 22:27:02 +09:00
Ja.KooLit
6066051354 Update preset.sh
Changed some preset settings in case Users accidentally choose Y in using preset with even reviewing it
2024-01-05 22:24:52 +09:00
Ja.KooLit
fc31b99d98 Update install.sh
Added some notes regarding Use of Preset
2024-01-05 22:22:33 +09:00
PostCyberPunk
33f538966f feat(preset):add preset for quick installlation
check var exist before ask

remove var

add preset file

add a question to check should use preset

patch custom question

fix blacklist nouveau name not clear

fix input group var not clear

fix pokemon var not clear

add comment for preset var

use preset env var before excute script

add preset to script

print preset info
2024-01-05 17:51:33 +08:00
JaKooLit
d574e9f10a updated readme re-nvidia 2024-01-04 14:12:42 +09:00
Ja.KooLit
749393f31e Merge pull request #16 from JaKooLit/JaKooLit-patch-1
Update README.md
2024-01-04 02:18:49 +09:00
Ja.KooLit
7d18142300 Update README.md 2024-01-04 02:18:33 +09:00
Ja.KooLit
cee14736b6 Merge pull request #15 from JaKooLit/JaKooLit-patch-1
Update README.md
2024-01-04 02:17:17 +09:00
Ja.KooLit
af581c5582 Update README.md 2024-01-04 02:17:00 +09:00
JaKooLit
97c2a6f802 updated readme 2024-01-03 18:45:38 +09:00
JaKooLit
2788c45347 updated Bibaba Cursor to newer version 2024-01-02 17:24:19 +09:00
Ja.KooLit
fa1b5cc43a Merge pull request #14 from JaKooLit/development
Migration to new structure completed
2024-01-01 23:24:20 +09:00
JaKooLit
f1542a11ed ok. This should be the final push.... F.. hard to tweak... lmao 2024-01-01 23:09:47 +09:00
JaKooLit
b540e8a930 tweaked abit 2024-01-01 22:56:17 +09:00
JaKooLit
70af4617c2 ok. adding sleep as seems that base is being ommited 2024-01-01 22:49:55 +09:00
JaKooLit
4dc56c6493 Migration to better install completed 2024-01-01 22:33:09 +09:00
JaKooLit
2720bb7441 ok I figured it out why 2024-01-01 21:48:58 +09:00
JaKooLit
b5985dab7e I think this is the culprit 2024-01-01 21:30:51 +09:00
JaKooLit
489a060a3e another update 2024-01-01 21:21:25 +09:00
JaKooLit
64a0cfae32 updated 2024-01-01 21:09:12 +09:00
JaKooLit
662e54aecd test- 2024-01-01 19:44:32 +09:00
JaKooLit
38e3430c64 revert back previous 2024-01-01 19:36:02 +09:00
JaKooLit
fe60a6129e update 2024-01-01 19:29:57 +09:00
JaKooLit
36c054be45 updated thunar.sh 2023-12-31 00:43:26 +09:00
JaKooLit
9c80e88985 Small update on install scripts 2023-12-30 21:00:01 +09:00
JaKooLit
2c8edda4f2 updated installer layout 2023-12-30 15:20:01 +09:00
JaKooLit
5052416f08 Making Pokemon Color Script as optional 2023-12-30 15:07:24 +09:00
JaKooLit
7ba47f5a6d Code Cleaned up. Easier to trace and Debug 2023-12-30 14:36:11 +09:00
JaKooLit
dd9626d900 Code Cleaned up :) Better and Easier to Debug and Trace 2023-12-30 14:35:01 +09:00
JaKooLit
4fcc7577de updated readme to add the wallpaper repo link 2023-12-30 00:44:38 +09:00
Ja.KooLit
d6a6ff75ee switch to swaync in favor of dunst 2023-12-29 17:23:37 +09:00
JaKooLit
4ab51d13cf updated .zshrc 2023-12-27 11:09:04 +09:00
JaKooLit
388142c7e4 updated thunar and xfce4 settings in assets 2023-12-26 16:25:04 +09:00
JaKooLit
211750e014 remove depth=1 in gtk 2023-12-26 01:50:25 +09:00
JaKooLit
d6049a0f75 added depth=1 in gtk_themes install 2023-12-26 00:02:37 +09:00
JaKooLit
7ceffc7ec5 switched to unzip on icons 2023-12-25 23:59:43 +09:00
JaKooLit
7018a5f637 added xdg-utils 2023-12-25 19:01:07 +09:00
JaKooLit
84aa42707a Readme updated 2023-12-25 18:14:09 +09:00
JaKooLit
2fa25ac977 readme updated 2023-12-24 22:49:32 +09:00
Ja.KooLit
772dc1bb8f readme updated 2023-12-24 12:37:25 +09:00
Ja.KooLit
049086eada added coffee.com link 2023-12-24 11:16:02 +09:00
Ja.KooLit
6195d3ada6 updated readme for nvidia nouveau 2023-12-24 11:09:12 +09:00
Ja.KooLit
32c06e65f7 some guy got pissed and they dont want to be recognized 2023-12-23 17:58:02 +09:00
JaKooLit
cfc668b8ac updated GTK theme install with tar.gz 2023-12-21 23:49:47 +09:00
JaKooLit
038d58036a added youtube playlist 2023-12-21 14:25:25 +09:00
JaKooLit
02999fed50 Added install script notes 2023-12-21 00:54:42 +09:00
JaKooLit
c578711910 updated readme 2023-12-21 00:06:43 +09:00
Ja.KooLit
8777ae50e8 updated sddm.sh 2023-12-18 13:56:28 +09:00
Ja.KooLit
e9c611daaa clean up and updated readme 2023-12-18 09:18:11 +09:00
Ja.KooLit
5aa16a287e updated sddm and gtk themes 2023-12-18 02:39:30 +09:00
94 changed files with 6459 additions and 2912 deletions

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

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

83
.github/ISSUE_TEMPLATE/bug.yml vendored Normal file
View 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
View File

@@ -0,0 +1 @@
blank_issues_enabled: false

View 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
View 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
View File

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

View File

@@ -1,42 +1,312 @@
## Changelogs
## CHANGELOGS
## Dec 2025
Added:
- `qt5-quickcontrols2` to sddm.sh - User reported w/o this SDDM crashed on login
Fixed:
- AGS v1
- It now does the following:
- Clone upstream AGS 1.9.0.
- Stub out PAM/GUtils via pam.ts.
- Build and install AGS.
- Install the known-good launcher from install-scripts/ags.launcher.com.github.Aylur.ags.
- Points /usr/local/bin/ags at that launcher.
- AGS is no longer removed when you add quickshell.
- AGS overview is a backup if quickshell overview fails.
- meson build errors
- `rofi-wayland` package changed to 'rofi'
- Add missing monitor scripts from Fedora-Hyprland PR #234
## 22 July 2025
- Updated sddm theme and script to work with the updated simple_sddm_2 theme
## 17 July 2025
- added quickshell script to replace ags for desktop overview
## 08 June 2025
- updated SDDM theme.
## 20 March 2025
- adjusted hyprland installation script. This is great for those who are using -git packages
- 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
## 20 Feb 2025
- Added nwg-displays for the upcoming Kools dots v2.3.12
## 18 Feb 2025
- Change default zsh theme to adnosterzak
- pokemon coloscript integrated with fastfetch when opted with pokemon to add some bling
- additional external oh-my-zsh theme
## 06 Feb 2025
- added semi-unattended function.
- move all the initial questions at the beginning
## 04 Feb 2025
- Re-coded for better visibility
- Offered a new SDDM theme.
- script will automatically detect if you have nvidia but script still offer if you want to set up for user
## 29 Jan 2025
- enhanced nvidia.sh to add additional systemd-bootloader entries for nvidia
## 16 Jan 2025
- updated nvidia.sh to install non-git libva-nvidia-driver
## 13 Jan 2025
- replaced polkit-gnome with hyprpolkitagent
## 12 Jan 2025
- switch to final version of aylurs-gtk-shell-v1
## 11 Jan 2025
- added cachyos-hyprland-settings to uninstall
## 06 Jan 2025
- added copying of modified fastfetch-compact for Arch
- default theme for oh my zsh theme is now "funky"
## 26 Dec 2024
- Removal of Bibata Ice cursor on assets since its integrated in the GTK Themes and Icons extract from a separate repo
- integrated hyprcursor in Bibata Ice Cursor
## 15 Nov 2024
- revert Aylurs GTK Shell (AGS) to install older version
- added aylurs-gtk-shell to uninstall
## 20 Sep 2024
- User will be ask if they want to set Thunar as default file manager if they decided to install it
## 19 Sep 2024
- Added fastfetch on tty. However, will be disabled if user decided to install pokemon colorscripts
## 18 Sep 2024
- dotfiles will now be downloaded from main or master branch instead of from the releases version.
## 14 Sep 2024
- remove the final error checks instead, introduced a final check of essential packages to ran Hyprland
## 08 Sep 2024
- Added final error checks on install-logs
## 07 Sep 2024
- added pulseaudio check
- added sof-firmware
## 29 Aug 2024
- switched over to non-git wallust package
- improved indentions on some install scripts
## 28 Aug 2024
- Added final check if hyprland is installed and will give an error to user
## 26 Aug 2024
- Set to uninstall rofi as conflicts with rofi-wayland
- added nvidia_drm.fbdev=1 for grub
## 14 Aug 2024
- added archlinux-keyring on base.sh
## 08 Aug 2024
- Increased to 1 sec delay for installing base-devel [commit](https://github.com/JaKooLit/Arch-Hyprland/commit/7ebfa06c3b186f9bec0bcf268fae401ba67dfc2a)
## 07 Jul 2024
- added eza (ls replacement for tty). Note only on .zshrc
## 25 Jun 2024
- added fbdev=1 for nvidia.sh on `/etc/modprobe.d/nvidia.conf`. see here `https://wiki.hyprland.org/Nvidia/#drm-kernel-mode-setting`
## 26 May 2024
- Added fzf for zsh (CTRL R to invoke FZF history)
## 23 May 2024
- added qalculate-gtk to work with rofi-calc. Default keybinds (SUPER ALT C)
- added power-profiles-daemon for ROG laptops. Note, I cant add to all since it conflicts with TLP, CPU-Auto-frequency etc.
- added fastfetch
## 22 May 2024
- nwg-look is now in extra repo so replaced with nwg-look from nwg-look-bin
- change the sddm theme destination to /etc/sddm.conf.d/10-theme.conf to theme.conf.user
## 19 May 2024
- Disabled the auto-login in .zprofile as it causes auto-login to Hyprland if any wayland was chosen. Can enabled if only using hyprland
## 10 May 2024
- added wallust-git and remove python-pywal for migration to wallust on Hyprland-Dots v2.2.11
## 08 May 2024
- Adjusted sddm.sh since it does not respect preset.sh
- install.sh have been rearranged so it quits if user choose not to proceed
## 07 May 2024
- Minor typo change on nvidia.sh
- switch back to cava since installing cava-git keep it hanging (see known-issue on readme)
## 05 May 2024
- switched to rofi-wayland Extra Repo
## 04 May 2024
- separated fonts installation script for easy debugging
## 03 May 2024
- added python3-pyquery for new weather-waybar python based on Hyprland-Dots
## 02 May 2024
- Added pyprland (hyprland plugin)
## 26 Apr 2024
- Updated sddm.sh for Qt6 variant
## 23 Apr 2024
- Dropping swayidle and swaylock in favor of hypridle and hyprlock
## 20 Apr 2024
- Change default Oh-my-zsh theme to xiong-chiamiov-plus
## 16 Mar 2024
- added hyprcursor
## 1 Mar 2024
- replaced sddm-git with sddm
## 11 Jan 2024
- dropped wlsunset
## 05 Jan 2024
- Added a preset feature
- Added templates for contributing, and reporting, etc
## 01 Jan 2024
- Re-coded complete and test
- Added to spice up pacman.conf including adding of ILoveCandy on it :)
## 30 Dec 2023
- Install scripts reconstructed
## 29 December 2023
- 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
- zsh theme switched to `agnoster` theme by default
- pywal tty color change disabled by default
## 13 Dec 2023
- switched hyprland to Extra Repo hyprland (both nvidia and non-nvidia). Seeing they are updating all the time :)
## 11 Dec 2023
- 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
- 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 :)
## 03 Dec 2023
- Added kvantum for qt apps theming
- return of wlogout due to theming issues of rofi-power
## 01 Dec 2023
- Added pipewire to install
## 30 Nov 2023
- switched to swaylock-effects-git as non-git does not seem to work
## 29 Nov 2023
- nvidia.sh edited to remove hyprland-nvidia-git as well
## 26 Nov 2023
- nvidia - Move to hyprland-git. see [`commit`](https://github.com/hyprwm/Hyprland/commit/cd96ceecc551c25631783499bd92c6662c5d3616)
## 25 Nov 2023
- drop wlogout since Hyprland-Dots v2.1.9 uses rofi-power
## 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
## 19-Nov-2023
- Adjust dotfiles script to download from releases instead of from upstream

128
CODE_OF_CONDUCT.md Normal file
View 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.

View File

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

69
CONTRIBUTING.md Normal file
View 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/Arch-Hyprland/fork).
- Make sure to uncheck the Copy the `main` branch only. This will copy the development branch and other branches (if any)
2. Clone your forked repository to your local machine.
- Use the following command to clone your forked repository to your local machine.
```bash
git clone --depth=1 -b development https://github.com/JaKooLit/Arch-Hyprland.git
```
3. Create a new branch for your changes.
- For example, to create a new branch named `your-branch-name`, use the following command.
```bash
git checkout -b your-branch-name
```
4. Make your changes and commit them with a descriptive commit message.
- For example, to commit your changes, use the following command and make sure to follow the [commit message guidelines](https://github.com/JaKooLit/Arch-Hyprland/blob/main/COMMIT_MESSAGE_GUIDELINES.md).
```bash
git commit -m "feat: add a new feature"
```
5. Push your changes to your forked repository.
- For example, to push your changes to your forked repository, use the following command.
```bash
git push origin your-branch-name
```
6. Submit a **pull request** to the development branch repository.
- For example, to create a pull request, use the following steps.
1. Go to your forked repository.
2. Click the **Compare & pull request** button next to your `your-branch-name` branch.
3. Add a title and description for your pull request.
4. Click **Create pull request** and remember to add the relevant labels with using the [pull request template](https://github.com/JaKooLit/Arch-Hyprland/blob/main/.github/PULL_REQUEST_TEMPLATE.md).
## Guidelines
- Follow the code style of the project.
- Update the **documentation** if necessary.
- Add tests if applicable.
- Make sure all tests pass or fully tested before submitting your changes.
- Keep your pull request focused and avoid including unrelated changes.
- Remember to follow the following files before submitting your changes.
- [bug.yml](https://github.com/JaKooLit/Arch-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/Arch-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/Arch-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/Arch-Hyprland/blob/main/.github/PULL_REQUEST_TEMPLATE.md) - Use this template to submit a pull request.
- [COMMIT_MESSAGE_GUIDELINES.md](https://github.com/JaKooLit/Arch-Hyprland/blob/main/COMMIT_MESSAGE_GUIDELINES.md) - Read this file to learn about the commit message guidelines.
- [CONTRIBUTING.md](https://github.com/JaKooLit/Arch-Hyprland/blob/main/CONTRIBUTING.md) - Read this file to learn about the contributing guidelines.
- [LICENSE](https://github.com/JaKooLit/Arch-Hyprland/blob/main/LICENSE.md) - Read this file to learn about the license.
- [README.md](https://github.com/JaKooLit/Arch-Hyprland/blob/main/README.md) - Read this file to learn about the project.
## Contact
If you have any questions, feel free to contact via [GitHub Discussions](https://github.com/JaKooLit/Arch-Hyprland/discussions) or [Through Discord Server](https://discord.gg/kool-tech-world)

285
README.md
View File

@@ -1,88 +1,221 @@
<div align="center">
# 💌 ** JaKooLit's Arch Hyprland Install Script ** 💌
# 💌 ** KooL's Arch - Hyprland Install Script ** 💌
![GitHub Repo stars](https://img.shields.io/github/stars/JaKooLit/Arch-Hyprland?style=for-the-badge&color=cba6f7) ![GitHub last commit](https://img.shields.io/github/last-commit/JaKooLit/Arch-Hyprland?style=for-the-badge&color=b4befe) ![GitHub repo size](https://img.shields.io/github/repo-size/JaKooLit/Arch-Hyprland?style=for-the-badge&color=cba6f7)
<p align="center">
<img src="https://raw.githubusercontent.com/JaKooLit/Hyprland-Dots/main/assets/latte.png" width="400" />
</p>
![GitHub Repo stars](https://img.shields.io/github/stars/JaKooLit/Arch-Hyprland?style=for-the-badge&color=cba6f7) ![GitHub last commit](https://img.shields.io/github/last-commit/JaKooLit/Arch-Hyprland?style=for-the-badge&color=b4befe) ![GitHub repo size](https://img.shields.io/github/repo-size/JaKooLit/Arch-Hyprland?style=for-the-badge&color=cba6f7) <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/>
</div>
#### Hyprland-Dots-showcase
<p align="center">
<img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-ScreenShots/Arch-v2/Arch-Default-Layout.png" /> <img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-Dots-Showcase/dark-theme.png" />
<img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-Dots-Showcase/Light-theme.png" /> <img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-ScreenShots/Arch-v2/Another-Screenshot.png"" />
</p>
<div align="center">
<br>
<a href="#-announcement-"><kbd><br>Read this First<br></kbd></a>&ensp;&ensp;
<a href="#-to-use-this-script"><kbd><br>How to use this script<br></kbd></a>&ensp;&ensp;
<a href="#gallery-and-videos"><kbd><br>Gallery<br></kbd></a>&ensp;&ensp;
</div><br>
<p align="center">
<img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-Dots-Showcase/default-waybar.png" /> <img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-Dots-Showcase/rofi.png" />
<img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-Dots-Showcase/wlogout-dark.png" /> <img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-Dots-Showcase/showcase2.png"" />
<img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-Dots-Showcase/waybar-layout.png" /> <img align="center" width="49%" src="https://raw.githubusercontent.com/JaKooLit/screenshots/main/Hyprland-Dots-Showcase/waybar-style.png"" />
<img src="https://raw.githubusercontent.com/JaKooLit/Hyprland-Dots/main/assets/latte.png" width="200" />
</p>
<div align="center">
👇 KOOL's Hyprland-Dots related Links 👇
<br/>
</div>
<div align="center">
<br>
<a href="https://github.com/JaKooLit/Hyprland-Dots"><kbd><br>Hyprland-Dots repo<br></kbd></a>&ensp;&ensp;
<a href="https://www.youtube.com/playlist?list=PLDtGd5Fw5_GjXCznR0BzCJJDIQSZJRbxx"><kbd><br>Youtube<br></kbd></a>&ensp;&ensp;
<a href="https://github.com/JaKooLit/Hyprland-Dots/wiki"><kbd><br>Wiki<br></kbd></a>&ensp;&ensp;
<a href="https://github.com/JaKooLit/Hyprland-Dots/wiki/Keybinds"><kbd><br>Keybinds<br></kbd></a>&ensp;&ensp;
<a href="https://github.com/JaKooLit/Hyprland-Dots/wiki/FAQ"><kbd><br>FAQ<br></kbd></a>&ensp;&ensp;
<a href="https://discord.gg/kool-tech-world"><kbd><br>Discord<br></kbd></a>
</div><br>
### 📷 More Screenshots on v2 [`Link`](https://github.com/JaKooLit/screenshots/tree/main/Hyprland-Dots-Showcase) and [`Previous-Screenshots`](https://github.com/JaKooLit/screenshots/tree/main/Hyprland-ScreenShots/Arch-v2) and
<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>
### ✨ A video walk through my dotfiles[`Link`](https://youtu.be/fO-RBHvVEcc?si=ijqxxnq_DLiyO8xb)
### ✨ A video walk on My Hyprland-Dots v2[`Link`](https://youtu.be/yaVurRoXc-s?si=iDnBC5S3thPBX3ZE)
<div align="center">
### 📽️ youtube video showcase: [`Link`](https://youtu.be/W2UFwkgdwNo)
https://github.com/user-attachments/assets/49bc12b2-abaf-45de-a21c-67aacd9bb872
</div>
## 🪧🪧🪧 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)
### 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)
### 🪧🪧🪧 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 pre-configured dots, it will be downloaded from that centralized repo.
- Hyprland-Dots use are constantly evolving / improving. you can check CHANGELOGS here [`Hyprland-Dots-Changelogs`](https://github.com/JaKooLit/Hyprland-Dots/wiki/Changelogs)
- Since the Hyprland-Dots are evolving, some of the screenshots maybe old
- the wallpaper offered to be downloaded towards the end is from this [`REPO`](https://github.com/JaKooLit/Wallpaper-Bank)
> [!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
#### 🆕 Prerequisites
### 🆕 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 install script is intended for atleast Server type / Minimal Arch Linux installed.
### 🔘 Pipewire and Pipewire audio
- This script will install pipewire and will also disable or will uninstall pulseaudio. If you dont want it, you can simply just delete pipewire.sh in install-scripts folder before installing.
> [!NOTE]
> 🔘 Pipewire and Pipewire audio
### ✨ Costumize the packages to be installed
- inside the install-scripts folder, you can edit 00-hypr-pkgs.sh. Care though as the Hyprland Dots may not work properly!
- default GTK theme if agreed to be installed is Tokyo night GTK themes (dark and light) + Tokyo night SE icons
- This script will install pipewire and will also disable or will uninstall pulseaudio. If you dont want it, edit install.sh, about line 191 and comment the line `execute_script "pipewire.sh"` or you can simply just delete pipewire.sh in install-scripts directory before installing.
### 👀 NVidia GPU Owners.
- By default, nvidia-dkms will be installed. and only supports GTX 900 and newer. If required to install older driver, edit the nvidia.sh in scripts-folder
#### ✨ Customize the packages to be installed
- inside the install-scripts directory, you can edit 00-hypr-pkgs.sh. Care though as the Hyprland Dots may not work properly!
#### 🚩 Switching to SDDM assuming you have GDM installed and running
- if you really want switch to SDDM from GDM, you need to disable the gdm first.
- `sudo systemctl disable gdm.service` then reboot
- after reboot, need to ran the install script via tty. So suggest download the install script first. Then disable gdm. reboot and once logged in, cd into Distro-Hyprland then `./install.sh` and then choose SDDM and SDDM theme in the options.
- NOTE: Distro-Hyprland is Arch-Hyprland, or Fedora-Hyprland .. depends on which install scripts you downloaded.
#### 💫 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.
#### 👀 Nvidia GPU Owners.
- By default, nvidia-dkms will be installed. and only supports GTX 900 and newer. If required to install older driver, edit the nvidia.sh in install-scripts directory
> [!IMPORTANT]
> If you want to use nouveau driver, dont choose nvidia in the option. This is because the nvidia installer part, it will blacklist nouveau. Hyprland will still be installed but it will skip blacklisting nouveau.
- After installation, check [`THIS`](https://github.com/JaKooLit/Hyprland-Dots/wiki/Notes_to_remember#--for-nvidia-gpu-users)
## ✨ Auto clone and install
> [!CAUTION]
> If you are using FISH SHELL, DO NOT use this function. Clone and ran 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
### ✨ to run
> clone this repo by using git. Change directory, make executable and run the script
```bash
git clone https://github.com/JaKooLit/Arch-Hyprland.git
cd Arch-Hyprland
sh <(curl -L https://raw.githubusercontent.com/JaKooLit/Arch-Hyprland/main/auto-install.sh)
```
## ✨ to use this script
- clone this repo (latest commit only) to reduce file size download by using git. Change directory, make executable and run the script
```bash
git clone --depth=1 https://github.com/JaKooLit/Arch-Hyprland.git ~/Arch-Hyprland
cd ~/Arch-Hyprland
chmod +x install.sh
./install.sh
```
### ✨ for ZSH and OH-MY-ZSH installation
### 💥 💥 UNINSTALL SCRIPT / Removal of Config Files
- 11 March 2025, due to popular request, created a guided `uninstall.sh` script. USE this with caution as it may render your system unstable.
- I will not be responsible if your system breaks
- The best still to revert to previous state of your system is via `timeshift or snapper`
#### ✨ 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 . Look for ZSH_THEME="desired theme"
### ✨ 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
- reboot or logout
- by default `agnosterzak` theme is installed. Which is from external oh-my-zsh theme. You can find more themes from this [`OH-MY-ZSH-THEMES`](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes)
- to change the theme, `SUPER SHIFT O` , choose desired theme, and close and open terminal.
- or manually edit `~/.zshrc` . Look for ZSH_THEME="desired theme"
#### 🎞️ AGS Overview DEMO
- in case you wonder, here is a short demo of AGS overview [Youtube LINK](https://youtu.be/zY5SLNPBJTs)
#### ✨ TO DO once installation done and dotfiles copied
- 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)
- Head over to [KooL Hyprland WIKI](https://github.com/JaKooLit/Hyprland-Dots/wiki)
### 🏴‍☠️🏴‍☠️🏴‍☠️ Got a questions regarding the Hyprland Dots?
- Head over to wiki Link [`WIKI`](🏴https://github.com/JaKooLit/Hyprland-Dots/wiki)
#### 🙋 Got a questions regarding the Hyprland Dots or configurations? 🙋
### 🛣️ Roadmap:
- ~~[ ] Install zsh and oh-my-zsh without necessary steps above~~ DONE
- [ ] possibly adding gruvbox themes, cursors, icons
- Head over to wiki Link [`WIKI`](https://github.com/JaKooLit/Hyprland-Dots/wiki)
#### ⌨ Keybinds
- Keybinds [`CLICK`](https://github.com/JaKooLit/Hyprland-Dots/wiki/Keybinds)
> [!TIP]
> KooL Hyprland has a searchable keybind function via rofi. (SUPER SHIFT K) or right click the `HINTS` waybar button
#### 🔄 switching between Hyprland-git and none Hyprland-git
- you can use my prepared script [`LINK`](https://github.com/JaKooLit/Arch-Hyprland/tree/main/assets/hyprland-install)
- Readme is also there
#### 🙋 👋 Having issues or questions?
- 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 Arch-Hyprland directory and then ran the below command.
- i.e. `./install-scripts/gtk-themes.sh` - For reinstall GTK Themes or
- `./install-scripts/sddm.sh` - For reinstall sddm
> [!IMPORTANT]
> DO NOT cd into install-scripts directory as script will most likely to fail
#### 🛠️ Optional system monitor scripts (cross-distro compatible)
- These installer helpers will set up user-level services and install required packages automatically.
- Works on Fedora, Arch, and other distributions using standard tools.
- Re-run any time from the repo root (do not `cd` into `install-scripts`).
- `./install-scripts/battery-monitor.sh`
- Installs: `acpi`, `libnotify`
- Creates: `~/.config/hypr/scripts/battery-monitor.sh` and user service `battery-monitor.service`
- Manage: `systemctl --user status|start|stop battery-monitor`
- `./install-scripts/disk-monitor.sh`
- Installs: `libnotify`
- Creates: `~/.config/hypr/scripts/disk-monitor.sh` and user service `disk-monitor.service`
- Manage: `systemctl --user status|start|stop disk-monitor`
- `./install-scripts/temp-monitor.sh`
- Installs: `lm_sensors`, `libnotify`
- Detects sensors (runs `sudo sensors-detect --auto` once)
- Creates: `~/.config/hypr/scripts/temp-monitor.sh` and user service `temp-monitor.service`
- Manage: `systemctl --user status|start|stop temp-monitor`
> Packages above are installed by the respective installer scripts; no manual action is required. If you prefer package pre-install via the main package list, ensure `acpi`, `lm_sensors`, and `libnotify` are present in your setup.
#### 🛣️ Roadmap:
- [ ] show a progress bar in downloading and compiling part when installing outside AUR or official repo
#### ❗ some known issues for nvidia
### ⚠️ some known issues
- 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
log into your account
@@ -90,23 +223,75 @@ log into your account
`ls /dev/dri/by-path` find the matching id
`ls -l /dev/dri/by-path` to check where the symlink points to
)
7. add "env = WLR_DRM_DEVICES,/dev/dri/cardX" to the ENVvariables config (.config/hypr/configs/ENVariables.conf) ; X being where the symlink of the gpu points to
```
- add "env = WLR_DRM_DEVICES,/dev/dri/cardX" to the ENVvariables config `~/.config/hypr/UserConfigs/ENVariables.conf` ; X being where the symlink of the gpu points to
- more info from the hyprland wiki [`Hyprland Wiki Link`](https://wiki.hyprland.org/FAQ/#my-external-monitor-is-blank--doesnt-render--receives-no-signal-laptop)
### 📒 Final Notes
- join my discord channel [`Discord`](https://discord.gg/V2SJ92vbEN)
- reports from a member of discord for Nvidia for additional env's
- remove # from the following env's on
```
env = GBM_BACKEND,nvidia-drm
env = WLR_RENDERER_ALLOW_SOFTWARE,1
```
#### ❗ other known issues
- [ ] If you are using this script on an Arch-Based distros like Arco linux, or cachy OS or EOS or Manjaro, make sure to install pipewire, pipewire-pulse & pipewire-audio first. Arco Linux, on some of their ISO's still shipped with pulseaudio as audio backend. You will experience getting "stuck" on installation.
- [ ] To install pipewire and its services , `sudo pacman -S pipewire wireplumber pipewire-audio pipewire-pulse` . When prompted, remove / replace pulseaudio. After that, you can ran `./install.sh`
- [ ] installing of cava-git on a newly installed Arch makes the install keep hanging. Switched back to cava. After booting and logged in, if cava dont work, replace it cava-git `yay -S cava-git` or `paru -S cava-git`
> [!NOTE]
> Auto start of Hyprland after login (no SDDM or GDM or any login managers)
- [ ] This was disabled a few days ago. (19 May 2024). This was because some users, after they used the Distro-Hyprland scripts with other DE (gnome-wayland or plasma-wayland), if they choose to login into gnome-wayland for example, Hyprland is starting.
- [ ] to avoid this, I disabled it. You can re-enable again by editing `~/.zprofile` . Remove all the # on the first lines
- [ ] ROFI issues (scaling, unexplained scaling etc). This is most likely to experience if you are installing on a system where rofi is currently installed. To fix it uninstall rofi and install rofi-wayland . `sudo pacman -Rns rofi` . Install rofi-wayland with `sudo pacman -S rofi-wayland`. Rofi-wayland is compatible with x11 so no need to worry.
#### 🫥 Improving performance for Older Nvidia Cards using driver 470
- [`SEE HERE`](https://github.com/JaKooLit/Hyprland-Dots/discussions/123#discussion-6035205)
#### 📒 Final Notes
- join my discord channel [`Discord`](https://discord.gg/RZJgC7KAKm)
- 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 :)
### 👍👍👍 Thanks and Credits!
#### ✍️ 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/Arch-Hyprland/blob/main/CONTRIBUTING.md) for a guide how to contribute
#### 👍👍👍 Thanks and Credits!
- [`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
## 💖 Support
- a Star on my Github repos would be nice 🌟
- 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' />
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/jakoolit)
or
[!["Buy Me A Coffee"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/JaKooLit)
Or you can donate cryto on my btc wallet :)
> 1N3MeV2dsX6gQB42HXU6MF2hAix1mqjo8i
![Bitcoin](https://github.com/user-attachments/assets/7ed32f8f-c499-46f0-a53c-3f6fbd343699)
#### 📹 Youtube videos (Click to view and watch the playlist) 📹
[![Youtube Playlist Thumbnail](https://raw.githubusercontent.com/JaKooLit/screenshots/main/Youtube.png)](https://youtube.com/playlist?list=PLDtGd5Fw5_GjXCznR0BzCJJDIQSZJRbxx&si=iaNjLulFdsZ6AV-t)
## 🥰🥰 💖💖 👍👍👍
[![Stargazers over time](https://starchart.cc/JaKooLit/Arch-Hyprland.svg?variant=adaptive)](https://starchart.cc/JaKooLit/Arch-Hyprland)

View File

@@ -1,3 +1,3 @@
if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
Hyprland
fi
#if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
# Hyprland
#fi

View File

@@ -3,7 +3,7 @@
export ZSH="$HOME/.oh-my-zsh"
ZSH_THEME="agnoster"
ZSH_THEME="agnosterzak"
plugins=(
git
@@ -17,21 +17,25 @@ source $ZSH/oh-my-zsh.sh
# Check archlinux plugin commands here
# https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/archlinux
# Display Pokemon-colorscripts
# Project page: https://gitlab.com/phoneybadger/pokemon-colorscripts#on-other-distros-and-macos
pokemon-colorscripts --no-title -s -r
#pokemon-colorscripts --no-title -s -r #without fastfetch
#pokemon-colorscripts --no-title -s -r | fastfetch -c $HOME/.config/fastfetch/config-pokemon.jsonc --logo-type file-raw --logo-height 10 --logo-width 5 --logo -
# fastfetch. Will be disabled if above colorscript was chosen to install
fastfetch -c $HOME/.config/fastfetch/config-compact.jsonc
# Import colorscheme from 'wal' asynchronously
# & # Run the process in the background.
# ( ) # Hide shell job control messages.
# Not supported in the "fish" shell.
#(cat ~/.cache/wal/sequences &)
# Set-up icons for files/directories in terminal using lsd
alias ls='lsd'
alias l='ls -l'
alias la='ls -a'
alias lla='ls -la'
alias lt='ls --tree'
# Alternative (blocks terminal for 0-3ms)
#cat ~/.cache/wal/sequences
# To add support for TTYs this line can be optionally added.
#source ~/.cache/wal/colors-tty.sh
# Set-up FZF key bindings (CTRL R for fuzzy history finder)
source <(fzf --zsh)
HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000
setopt appendhistory

Binary file not shown.

View File

@@ -1,4 +1,4 @@
; thunar GtkAccelMap rc-file -*- scheme -*-
; Thunar GtkAccelMap rc-file -*- scheme -*-
; this file is an automated accelerator map dump
;
; (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>/ThunarStatusBar/toggle-size" "")
; (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/close-window" "<Primary>q")
; (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>/ThunarStandardView/forward" "<Alt>Right")
; (gtk_accel_path "<Actions>/ThunarActionManager/restore" "")
; (gtk_accel_path "<Actions>/ThunarBookmarks/9f0d843e4074095bf657b996746ec75c" "")
; (gtk_accel_path "<Actions>/ThunarWindow/open-location-alt" "<Alt>d")
; (gtk_accel_path "<Actions>/ThunarBookmarks/54b46b08907eba130aa7b45747971edc" "")
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-out-alt" "<Primary>minus")
; (gtk_accel_path "<Actions>/ThunarBookmarks/a16339451d60726d0755a887bd755af2" "")
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-out-alt" "<Primary>KP_Subtract")
; (gtk_accel_path "<Actions>/ThunarStandardView/select-by-pattern" "<Primary>s")
; (gtk_accel_path "<Actions>/ThunarWindow/open-file-menu" "F10")
; (gtk_accel_path "<Actions>/ThunarWindow/contents" "F1")
@@ -36,7 +36,6 @@
; (gtk_accel_path "<Actions>/ThunarBookmarks/44e0e66b3d753576f90ed75c87917822" "")
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-descending" "")
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-name" "")
; (gtk_accel_path "<Actions>/ThunarBookmarks/b6b3368230fb9c168f1090ce48fbb4f5" "")
; (gtk_accel_path "<Actions>/ThunarStandardView/select-all-files" "<Primary>a")
; (gtk_accel_path "<Actions>/ThunarActionManager/execute" "")
; (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>/ThunarWindow/open-templates" "")
; (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>/ThunarStandardView/create-document" "")
; (gtk_accel_path "<Actions>/ThunarWindow/detach-tab" "")
; (gtk_accel_path "<Actions>/ThunarBookmarks/707266d8a544f819b5de3061849d9040" "")
; (gtk_accel_path "<Actions>/ThunarBookmarks/978d3e7a7225e42c977fe94183792d87" "")
; (gtk_accel_path "<Actions>/ThunarWindow/cancel-search" "Escape")
; (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/view-location-selector-entry" "")
; (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>/ThunarStandardView/back" "<Alt>Left")
; (gtk_accel_path "<Actions>/ThunarWindow/open-desktop" "")
; (gtk_accel_path "<Actions>/ThunarWindow/view-as-detailed-list" "<Primary>2")
; (gtk_accel_path "<Actions>/ThunarActionManager/restore-show" "")
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-out" "<Primary>KP_Subtract")
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-out" "<Primary>minus")
; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-display-name" "")
; (gtk_accel_path "<Actions>/ThunarWindow/sendto-menu" "")
; (gtk_accel_path "<Actions>/ThunarWindow/go-menu" "")
@@ -81,22 +78,23 @@
; (gtk_accel_path "<Actions>/ThunarActionManager/copy" "<Primary>c")
; (gtk_accel_path "<Actions>/ThunarActionManager/delete-3" "<Shift>KP_Delete")
; (gtk_accel_path "<Actions>/ThunarWindow/toggle-side-pane" "F9")
; (gtk_accel_path "<Actions>/ThunarStandardView/unselect-all-files" "Escape")
; (gtk_accel_path "<Actions>/ThunarStandardView/arrange-items-menu" "")
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-mtime" "")
; (gtk_accel_path "<Actions>/ThunarBookmarks/a50db0a56a1e6c31df6bf18c55eb78cd" "")
; (gtk_accel_path "<Actions>/ThunarStandardView/arrange-items-menu" "")
; (gtk_accel_path "<Actions>/ThunarStandardView/unselect-all-files" "Escape")
; (gtk_accel_path "<Actions>/ThunarWindow/open-computer" "")
; (gtk_accel_path "<Actions>/ThunarWindow/bookmarks-menu" "")
; (gtk_accel_path "<Actions>/ThunarWindow/toggle-image-preview" "")
; (gtk_accel_path "<Actions>/ThunarWindow/view-as-icons" "<Primary>1")
; (gtk_accel_path "<Actions>/ThunarActionManager/delete-2" "<Shift>Delete")
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-in" "<Primary>KP_Add")
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-in" "<Primary>plus")
; (gtk_accel_path "<Actions>/ThunarStandardView/rename" "F2")
; (gtk_accel_path "<Actions>/ThunarWindow/open-location" "<Primary>l")
; (gtk_accel_path "<Actions>/ThunarWindow/view-as-compact-list" "<Primary>3")
; (gtk_accel_path "<Actions>/ThunarWindow/view-menu" "")
; (gtk_accel_path "<Actions>/ThunarWindow/search" "<Primary>f")
; (gtk_accel_path "<Actions>/ThunarWindow/new-tab" "<Primary>t")
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-reset" "<Primary>KP_0")
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-reset" "<Primary>0")
; (gtk_accel_path "<Actions>/ThunarWindow/contents/help-menu" "")
; (gtk_accel_path "<Actions>/ThunarActionManager/open-in-new-tab" "<Primary><Shift>p")
; (gtk_accel_path "<Actions>/ThunarWindow/view-location-selector-buttons" "")
@@ -108,24 +106,19 @@
; (gtk_accel_path "<Actions>/ThunarStandardView/duplicate" "")
; (gtk_accel_path "<Actions>/ThunarBookmarks/c76f07a72d3c8ef5d4bf8e84c8981221" "")
; (gtk_accel_path "<Actions>/ThunarActionManager/trash-delete-2" "KP_Delete")
; (gtk_accel_path "<Actions>/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>/ThunarWindow/open-home" "<Alt>Home")
; (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>/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>/ThunarBookmarks/8ea92a0b35875a5a65ffafcf02698ce8" "")
; (gtk_accel_path "<Actions>/ThunarActionManager/delete" "")
; (gtk_accel_path "<Actions>/ThunarWindow/view-side-pane-tree" "<Primary>e")
; (gtk_accel_path "<Actions>/ThunarWindow/open-file-system" "")
; (gtk_accel_path "<Actions>/ThunarWindow/open-network" "")
; (gtk_accel_path "<Actions>/ThunarActionManager/sendto-desktop" "")
; (gtk_accel_path "<Actions>/ThunarStandardView/make-link" "")
; (gtk_accel_path "<Actions>/ThunarBookmarks/5a2d02665264f10a15b7d94f958e51dc" "")
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-reset-alt" "<Primary>0")
; (gtk_accel_path "<Actions>/ThunarBookmarks/3b727c236c2811d0a6488b65982ea897" "")
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-reset-alt" "<Primary>KP_0")
; (gtk_accel_path "<Actions>/ThunarWindow/about" "")

View File

@@ -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

View File

@@ -15,9 +15,9 @@
<icon>utilities-terminal</icon>
<name>Open Terminal Here</name>
<submenu></submenu>
<unique-id>1488955845049151-1</unique-id>
<command>for f in %F; do exo-open --working-directory &quot;$f&quot; --launch TerminalEmulator; done</command>
<description></description>
<unique-id>1703572977408169-1</unique-id>
<command>exo-open --working-directory %f --launch TerminalEmulator</command>
<description>Launch TerminalEmulator</description>
<range></range>
<patterns>*</patterns>
<startup-notify/>
@@ -28,7 +28,7 @@
<name>Check sha1sum</name>
<submenu></submenu>
<unique-id>1526633271260079-26</unique-id>
<command>zenity --info --title=&quot;Check sha1 for %n&quot; --text=&quot;$(sha1sum %f)&quot;</command>
<command>yad --info --title=&quot;Check sha1 for %n&quot; --text=&quot;$(sha1sum %f)&quot;</command>
<description>Check sha1sum</description>
<range></range>
<patterns>*.iso;*.ISO</patterns>
@@ -39,7 +39,7 @@
<name>Check sha256sum</name>
<submenu></submenu>
<unique-id>1577688162350307-1</unique-id>
<command>zenity --info --title=&quot;Check sha256 for %n&quot; --text=&quot;$(sha256sum %f)&quot;</command>
<command>yad --info --title=&quot;Check sha256 for %n&quot; --text=&quot;$(sha256sum %f)&quot;</command>
<description>Check sha256sum</description>
<range></range>
<patterns>*.iso;*.ISO</patterns>
@@ -50,7 +50,7 @@
<name>Check md5sum</name>
<submenu></submenu>
<unique-id>1526736788575383-2</unique-id>
<command>zenity --info --title=&quot;Check md5 for %n&quot; --text=&quot;$(md5sum %f)&quot;</command>
<command>yad --info --title=&quot;Check md5 for %n&quot; --text=&quot;$(md5sum %f)&quot;</command>
<description>Check md5sum</description>
<range></range>
<patterns>*.iso;*.ISO;*.tar.gz;*.TAR.GZ;*.zip;*.ZIP</patterns>

View 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) '

View 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}'

View 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%}'

View 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
}

View 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

View 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]%}) ✅"

View File

@@ -0,0 +1,60 @@
local username="%n"
local path_prefix="%{$fg[yellow]%}["
local path_string="%{$fg[blue]%}%~"
local path_postfix="%{$fg[yellow]%}]"
local prompt_string=" "
local local_time="%T"
local newline=$'\n'
local line_mode=$'\n'
# customize user settings
# prompt symbol
if [ ! -z "$FISHBONEPP_PROMPT" ]; then
prompt_string="$FISHBONEPP_PROMPT"
fi
# username
if [ ! -z "$FISHBONEPP_USER" ]; then
username="$FISHBONEPP_USER"
fi
# time mode
if [ "$FISHBONEPP_TIME" = "12HR" ]; then
local_time="%t"
elif [ "$FISHBONEPP_TIME" = "FULL" ]; then
local_time="%*"
else
local_time="%T"
fi
# new line on start
if [ "$FISHBONEPP_NEWLINE" = false ]; then
newline=''
fi
# line mode
if [ "$FISHBONEPP_LINE_MODE" = "singleline" ]; then
line_mode=''
fi
local host_name="%{$fg[blue]%}${username}"
local time_string="%{$fg[blue]%}${local_time}"
# Make prompt_string red if the previous command failed.
local return_status="%(?:%{$fg[cyan]%}$prompt_string:%{$fg[red]%}$prompt_string%}"
# set the git_prompt_info text
ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[blue](%{$reset_color%}%{$fg[yellow]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%{$fg[blue])%}"
ZSH_THEME_GIT_PROMPT_DIRTY="⚡"
ZSH_THEME_GIT_PROMPT_CLEAN=""
PROMPT='${newline}\
${host_name}${hosr}%{$reset_color%}@${time_string} ${line_mode}\
${path_prefix}${path_string}${path_postfix}$(git_prompt_info)$(git_prompt_status) \
${return_status} %{$reset_color%}'
ZSH_THEME_GIT_PROMPT_ADDED=""
ZSH_THEME_GIT_PROMPT_MODIFIED="✒️ "
ZSH_THEME_GIT_PROMPT_DELETED=""
ZSH_THEME_GIT_PROMPT_RENAMED="⁉️ "
ZSH_THEME_GIT_PROMPT_UNMERGED="🥺"
ZSH_THEME_GIT_PROMPT_UNTRACKED="🚝"

BIN
assets/fastfetch/arch.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

View File

@@ -0,0 +1,75 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"source": "~/.config/fastfetch/arch.png",
"type": "kitty-direct",
"height": 10,
"width": 20,
"padding": {
"top": 1
}
},
"display": {
"separator": " -> "
},
"modules": [
"break",
{
"type": "title",
"keyWidth": 10,
"format": " {6}{7}{8}"
},
{
"type": "custom",
"format": " ─────────────────────────── "
},
{
"type": "kernel",
"key": " ",
"keyColor": "yellow"
},
{
"type": "wm",
"key": " ",
"keyColor": "blue"
},
{
"type": "shell",
"key": " ",
"keyColor": "yellow"
},
{
"type": "terminal",
"key": " ",
"keyColor": "blue"
},
/*
{
"type": "packages",
"key": "󰏖 ",
"keyColor": "yellow"
},
*/
{
"type": "memory",
"key": "󰍛 ",
"keyColor": "magenta",
// format: used / total
"format": "{1} / {2}"
},
{
"type": "uptime",
"key": "󰔛 ",
"keyColor": "green"
},
{
"type": "custom",
"format": " ─────────────────────────── "
},
{
"type": "custom",
"format": " \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m \u001b[90m "
},
"break",
]
}

View 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",
]
}

View 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",
]
}

View 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",
]
}

View 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

View File

@@ -0,0 +1,7 @@
Arch-Hyprland - Sharing a scripts to install hyprland git or non-git versions
Basically created this script so I can easily switch to git and non-git version of hyprland on Arch Linux
chmod +x actions.sh
./actions.sh

View File

@@ -0,0 +1,63 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
INFO="$(tput setaf 4)[INFO]$(tput sgr0)"
WARN="$(tput setaf 1)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
MAGENTA=$(tput setaf 5)
WARNING=$(tput setaf 1)
YELLOW=$(tput setaf 3)
BLUE=$(tput setaf 4)
RESET=$(tput sgr0)
# Make all scripts in the scripts directory executable
echo -e "${INFO} Making all files in the ${BLUE}scripts${RESET} directory executable..."
chmod +x ./scripts/*
printf "\n%.0s" {1..2}
while true; do
echo -e "${BLUE} Please choose an option:${RESET}"
echo -e "${YELLOW} -- 1 - Install non-git Hyprland version${RESET}"
echo -e "${YELLOW} -- 2 - Install git Hyprland version${RESET}"
echo -e "${YELLOW} -- 3 - Update Hyprland-git packages${RESET}"
echo -e "${MAGENTA} -- 4 - Quit${RESET}"
read -p "${CAT} Enter your choice [1, 2, or 3]: " choice
case $choice in
1)
printf "\n${OK} You chose ${BLUE}non-git version of Hyprland${RESET}....... executing...\n"
echo -e "${YELLOW} Uninstalling some hyprland packages first...${RESET}"
./scripts/uninstall.sh &&
./scripts/install-hyprland.sh
break
;;
2)
printf "\n${OK} You chose ${BLUE}git version of Hyprland${RESET}....... executing...\n"
echo -e "${YELLOW} Uninstalling some hyprland packages....${RESET}"
./scripts/uninstall.sh &&
./scripts/install-hyprland-git.sh
break
;;
3)
printf "\n${OK} You chose ${BLUE} to update Hyprland-git packages${RESET}....... executing...\n"
./scripts/install-hyprland-git.sh
break
;;
4)
echo -e "${MAGENTA} You have cancel it. Good Bye!!...${RESET}"
printf "\n%.0s" {1..2}
break
;;
*)
echo -e "\n${WARNING} There are only 4 Choices!!!! 1 2 3 or 4. Enter 1, 2, 3, or 4 only.${RESET}"
;;
esac
done

View File

@@ -0,0 +1,86 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
INFO="$(tput setaf 4)[INFO]$(tput sgr0)"
WARN="$(tput setaf 1)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
MAGENTA="$(tput setaf 5)"
ORANGE="$(tput setaf 214)"
WARNING="$(tput setaf 1)"
YELLOW="$(tput setaf 3)"
BLUE="$(tput setaf 4)"
RESET="$(tput sgr0)"
ISAUR=$(command -v yay || command -v paru)
printf "\n%.0s" {1..2}
# List of packages to install / update
packages=(
"hyprutils-git"
"hyprcursor-git"
"hyprwayland-scanner-git"
"aquamarine-git"
"hyprgraphics-git"
"hyprlang-git"
"hyprland-protocols-git"
"hyprland-qt-support-git"
"hyprland-qtutils-git"
"hyprland-git"
"hyprlock-git"
"hypridle-git"
"xdg-desktop-portal-hyprland-git"
"hyprpolkitagent-git"
)
# rotating stars progress
show_progress() {
spin='-'
while ps | grep $1 &> /dev/null; do
echo -ne "\rInstalling ${ORANGE}$2${RESET} ... Kindly wait! $spin"
sleep 0.3
case $spin in
'-') spin='\';;
'\') spin='|';;
'|') spin='/';;
'/') spin='-';;
esac
done
echo -en "\rInstalling ${ORANGE}$2${RESET} ... Kindly wait! .... Done!"
}
# Clearing cache
echo -n "${CAT} Recommend (choose y to all) to clear ${MAGENTA}pacman and aur helper${RESET} cache ..."
printf "\n%.0s" {1..1}
sudo pacman -Scc &&
$ISAUR -Scc
printf "\n%.0s" {1..1}
printf "${NOTE} Installing ${BLUE}git hyprland version${RESET}....."
printf "\n%.0s" {1..1}
# Installing packages
for package in "${packages[@]}"; do
$ISAUR -S --noconfirm "$package" &>/dev/null &
pid=$!
show_progress $pid $package
wait $pid
if [ $? -eq 0 ]; then
echo -e "\n${OK} ${ORANGE}$package${RESET} successfully installed."
printf "\n%.0s" {1..1}
else
echo -e "\n${ERROR} Failed to install ${MAGENTA}$package${RESET}"
printf "\n%.0s" {1..1}
fi
done
printf "\n%.0s" {1..1}
printf "${OK} Done!! Now you NEED to ${YELLOW}EXIT${RESET} Hyprland and Re-Login! Enjoy!!!!"
printf "\n%.0s" {1..2}

View File

@@ -0,0 +1,80 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
INFO="$(tput setaf 4)[INFO]$(tput sgr0)"
WARN="$(tput setaf 1)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
MAGENTA="$(tput setaf 5)"
ORANGE="$(tput setaf 214)"
WARNING="$(tput setaf 1)"
YELLOW="$(tput setaf 3)"
BLUE="$(tput setaf 4)"
RESET="$(tput sgr0)"
ISAUR=$(command -v yay || command -v paru)
printf "\n%.0s" {1..2}
# List of packages to install / update
packages=(
"aquamarine"
"hyprutils"
"hyprcursor"
"hyprwayland-scanner"
"hyprgraphics"
"hyprlang"
"hyprland-protocols"
"hyprland-qt-support"
"hyprland-qtutils"
"hyprland"
"hyprlock"
"hypridle"
"xdg-desktop-portal-hyprland"
"hyprpolkitagent"
)
# rotating stars progress
show_progress() {
spin='-'
while ps | grep $1 &> /dev/null; do
echo -ne "\rInstalling ${ORANGE}$2${RESET} ... Kindly wait! $spin"
sleep 0.3
case $spin in
'-') spin='\';;
'\') spin='|';;
'|') spin='/';;
'/') spin='-';;
esac
done
echo -en "\rInstalling ${ORANGE}$2${RESET} ... Kindly wait! .... Done!"
}
printf "\n%.0s" {1..1}
printf "${NOTE} Installing ${BLUE}non-git hyprland version${RESET}....."
printf "\n%.0s" {1..1}
# Installing packages
for package in "${packages[@]}"; do
$ISAUR -S --noconfirm "$package" &>/dev/null &
pid=$!
show_progress $pid $package
wait $pid
if [ $? -eq 0 ]; then
echo -e "\n${OK} ${ORANGE}$package${RESET} successfully installed."
printf "\n%.0s" {1..1}
else
echo -e "\n${ERROR} Failed to install ${MAGENTA}$package${RESET}"
printf "\n%.0s" {1..1}
fi
done
printf "\n%.0s" {1..1}
printf "${OK} Done!! Now you NEED to ${YELLOW}EXIT${RESET} Hyprland and Re-Login! Enjoy!!!!"
printf "\n%.0s" {1..2}

View File

@@ -0,0 +1,90 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# uninstalling hyprland packages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
INFO="$(tput setaf 4)[INFO]$(tput sgr0)"
WARN="$(tput setaf 1)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
MAGENTA="$(tput setaf 5)"
WARNING="$(tput setaf 1)"
YELLOW="$(tput setaf 3)"
BLUE="$(tput setaf 4)"
RESET="$(tput sgr0)"
# List of packages to uninstall (including git versions)
packages=(
"aquamarine"
"aquamarine-git"
"hyprutils"
"hyprutils-git"
"hyprcursor"
"hyprcursor-git"
"hyprwayland-scanner"
"hyprwayland-scanner-git"
"hyprgraphics"
"hyprgraphics-git"
"hyprlang"
"hyprlang-git"
"hyprland-protocols"
"hyprland-protocols-git"
"hyprland-qt-support"
"hyprland-qt-support-git"
"hyprland-qtutils"
"hyprland-qtutils-git"
"hyprland"
"hyprland-git"
"hyprlock"
"hyprlock-git"
"hypridle"
"hypridle-git"
"xdg-desktop-portal-hyprland"
"xdg-desktop-portal-hyprland-git"
"hyprpolkitagent"
"hyprpolkitagent-git"
)
# Function for uninstall packages
uninstall_package() {
local pkg="$1"
if pacman -Qi "$pkg" &>> /dev/null ; then
echo -e "${NOTE} Uninstalling $pkg ..."
sudo pacman -Rnsdd --noconfirm "$pkg" | grep -v "error: target not found"
if ! pacman -Qi "$pkg" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $pkg was uninstalled."
else
echo -e "\e[1A\e[K${ERROR} $pkg failed to uninstall"
return 1
fi
else
echo -e "${NOTE} $pkg is not installed, skipping uninstallation."
fi
return 0
}
printf "\n%s - Removing Hyprland Packages including -git versions \n" "${NOTE}"
# Track failures but continue with next packages
overall_failed=0
for PKG in "${packages[@]}"; do
uninstall_package "$PKG"
if [ $? -ne 0 ]; then
overall_failed=1
fi
done
# Remove specific configuration file since on my experience, it conflicts.
# Dont worry, it will be reinstalled by either xdph non-git or git version
sudo rm -rf "/usr/share/xdg-desktop-portal/hyprland-portals.conf"
if [ $overall_failed -eq 0 ]; then
echo -e "${OK} All specified hyprland packages have been uninstalled."
fi
printf "\n%.0s" {1..2}

View File

@@ -1,5 +0,0 @@
[Desktop Entry]
Name=Hyprland
Comment=An intelligent dynamic tiling Wayland compositor
Exec=Hyprland
Type=Application

BIN
assets/sddm.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

@@ -1,4 +1,4 @@
FileManager=Thunar
TerminalEmulator=kitty
WebBrowser=firefox
#WebBrowser=firefox
#MailReader=evolution

View File

@@ -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

View File

@@ -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

View File

@@ -1,7 +0,0 @@
delay=1
region=1
action=1
show_mouse=0
title=ArcoLinux
timestamp=TRUE
app=nomacs

View File

@@ -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

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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="&lt;Alt&gt;F1" type="empty"/>
<property name="&lt;Alt&gt;F2" type="empty">
<property name="startup-notify" type="empty"/>
</property>
<property name="&lt;Alt&gt;F3" type="empty">
<property name="startup-notify" type="empty"/>
</property>
<property name="&lt;Primary&gt;&lt;Alt&gt;Delete" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;l" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;t" type="empty"/>
<property name="XF86Display" type="empty"/>
<property name="&lt;Super&gt;p" type="empty"/>
<property name="&lt;Primary&gt;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="&lt;Alt&gt;Print" type="empty"/>
<property name="&lt;Shift&gt;Print" type="empty"/>
<property name="&lt;Super&gt;e" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;f" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Escape" type="empty"/>
<property name="&lt;Primary&gt;&lt;Shift&gt;Escape" type="empty"/>
<property name="&lt;Super&gt;r" type="empty">
<property name="startup-notify" type="empty"/>
</property>
</property>
<property name="custom" type="empty">
<property name="&lt;Alt&gt;F2" type="string" value="xfce4-appfinder --collapsed">
<property name="startup-notify" type="bool" value="true"/>
</property>
<property name="&lt;Super&gt;r" type="string" value="rofi-theme-selector">
<property name="startup-notify" type="bool" value="true"/>
</property>
<property name="&lt;Alt&gt;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="&lt;Super&gt;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="&lt;Super&gt;f" type="string" value="exo-open --launch FileManager"/>
<property name="&lt;Primary&gt;Escape" type="string" value="xfdesktop --menu"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Delete" type="string" value="xfce4-session-logout"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;f" type="string" value="firefox"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;l" type="string" value="archlinux-logout"/>
<property name="&lt;Alt&gt;F1" type="string" value="xfce4-popup-whiskermenu"/>
<property name="&lt;Super&gt;p" type="string" value="xfce4-display-settings --minimal"/>
<property name="&lt;Primary&gt;&lt;Shift&gt;Escape" type="string" value="xfce4-taskmanager"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Escape" type="string" value="xkill"/>
<property name="XF86Display" type="string" value="xfce4-display-settings --minimal"/>
<property name="override" type="bool" value="true"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;w" type="string" value="arcolinux-welcome-app"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;m" type="string" value="xfce4-settings-manager"/>
<property name="&lt;Primary&gt;&lt;Shift&gt;Print" type="string" value="xfce4-screenshooter -r"/>
<property name="Print" type="string" value="xfce4-screenshooter -f"/>
<property name="&lt;Primary&gt;Print" type="string" value="xfce4-screenshooter"/>
<property name="&lt;Shift&gt;&lt;Super&gt;d" type="string" value="dmenu_run -i -nb &apos;#191919&apos; -nf &apos;#fea63c&apos; -sb &apos;#fea63c&apos; -sf &apos;#191919&apos; -fn &apos;NotoMonoRegular:bold:pixelsize=14&apos;"/>
<property name="&lt;Super&gt;t" type="string" value="urxvt"/>
<property name="&lt;Super&gt;m" type="string" value="pragha"/>
<property name="&lt;Super&gt;h" type="string" value="urxvt -T &apos;htop task manager&apos; -e htop"/>
<property name="&lt;Super&gt;v" type="string" value="pavucontrol"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;u" type="string" value="pavucontrol"/>
<property name="&lt;Super&gt;Escape" type="string" value="xkill"/>
<property name="&lt;Super&gt;Return" type="string" value="alacritty"/>
<property name="&lt;Shift&gt;&lt;Super&gt;Return" type="string" value="thunar"/>
<property name="&lt;Super&gt;F1" type="string" value="exo-open --launch webbrowser"/>
<property name="&lt;Super&gt;F2" type="string" value="atom"/>
<property name="&lt;Super&gt;F3" type="string" value="inkscape"/>
<property name="&lt;Super&gt;F4" type="string" value="gimp"/>
<property name="&lt;Super&gt;F5" type="string" value="meld"/>
<property name="&lt;Super&gt;F6" type="string" value="vlc"/>
<property name="&lt;Super&gt;F7" type="string" value="virtualbox"/>
<property name="&lt;Super&gt;F8" type="string" value="thunar"/>
<property name="&lt;Super&gt;F9" type="string" value="evolution"/>
<property name="&lt;Super&gt;F10" type="string" value="spotify"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;a" type="string" value="xfce4-appfinder"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;v" type="string" value="vivaldi-stable"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;b" type="string" value="thunar"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;s" type="string" value="spotify"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;c" type="string" value="catfish"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;g" type="string" value="chromium"/>
<property name="&lt;Super&gt;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="&lt;Primary&gt;&lt;Alt&gt;Return" type="string" value="alacritty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;r" type="string" value="rofi-theme-selector"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;p" type="string" value="pamac-manager"/>
<property name="&lt;Super&gt;c" type="string" value="conky-toggle"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Page_Up" type="string" value="conky-rotate -n"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Page_Down" type="string" value="conky-rotate -p"/>
<property name="F12" type="string" value="xfce4-terminal --drop-down"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;k" type="string" value="archlinux-logout"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;e" type="string" value="archlinux-tweak-tool"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;n" type="string" value="xfce4-settings-manager"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;comma" type="string" value="xfce4-settings-manager"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;z" type="string" value="arcolinux-welcome-app"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_Enter" type="string" value="alacritty"/>
<property name="&lt;Alt&gt;n" type="string" value="variety -n"/>
<property name="&lt;Alt&gt;p" type="string" value="variety -p"/>
<property name="&lt;Alt&gt;t" type="string" value="variety -t"/>
<property name="&lt;Alt&gt;f" type="string" value="variety -f"/>
<property name="&lt;Alt&gt;Right" type="string" value="variety -n"/>
<property name="&lt;Alt&gt;Left" type="string" value="variety -p"/>
<property name="&lt;Alt&gt;Up" type="string" value="variety --toggle-pause"/>
<property name="&lt;Alt&gt;Down" type="string" value="variety --resume"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;t" type="string" value="alacritty"/>
<property name="&lt;Super&gt;space" type="string" value="dmenu_run -i -nb &apos;#191919&apos; -nf &apos;#fea63c&apos; -sb &apos;#fea63c&apos; -sf &apos;#191919&apos; -fn &apos;NotoMonoRegular:bold:pixelsize=14&apos;"/>
<property name="&lt;Super&gt;F12" type="string" value="rofi -show drun"/>
<property name="&lt;Super&gt;F11" type="string" value="rofi -show drun -theme-str &apos;window {width: 100%;height: 100%;}&apos;"/>
<property name="&lt;Primary&gt;&lt;Super&gt;Print" type="string" value="flameshot gui"/>
</property>
</property>
<property name="xfwm4" type="empty">
<property name="default" type="empty">
<property name="&lt;Alt&gt;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="&lt;Alt&gt;Tab" type="empty"/>
<property name="&lt;Alt&gt;&lt;Shift&gt;Tab" type="empty"/>
<property name="&lt;Alt&gt;Delete" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Down" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Left" type="empty"/>
<property name="&lt;Shift&gt;&lt;Alt&gt;Page_Down" type="empty"/>
<property name="&lt;Alt&gt;F4" type="empty"/>
<property name="&lt;Alt&gt;F6" type="empty"/>
<property name="&lt;Alt&gt;F7" type="empty"/>
<property name="&lt;Alt&gt;F8" type="empty"/>
<property name="&lt;Alt&gt;F9" type="empty"/>
<property name="&lt;Alt&gt;F10" type="empty"/>
<property name="&lt;Alt&gt;F11" type="empty"/>
<property name="&lt;Alt&gt;F12" type="empty"/>
<property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Left" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;End" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Home" type="empty"/>
<property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Right" type="empty"/>
<property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Up" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_1" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_2" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_3" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_4" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_5" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_6" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_7" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_8" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_9" type="empty"/>
<property name="&lt;Alt&gt;space" type="empty"/>
<property name="&lt;Shift&gt;&lt;Alt&gt;Page_Up" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Right" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;d" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Up" type="empty"/>
<property name="&lt;Super&gt;Tab" type="empty"/>
<property name="&lt;Primary&gt;F1" type="empty"/>
<property name="&lt;Primary&gt;F2" type="empty"/>
<property name="&lt;Primary&gt;F3" type="empty"/>
<property name="&lt;Primary&gt;F4" type="empty"/>
<property name="&lt;Primary&gt;F5" type="empty"/>
<property name="&lt;Primary&gt;F6" type="empty"/>
<property name="&lt;Primary&gt;F7" type="empty"/>
<property name="&lt;Primary&gt;F8" type="empty"/>
<property name="&lt;Primary&gt;F9" type="empty"/>
<property name="&lt;Primary&gt;F10" type="empty"/>
<property name="&lt;Primary&gt;F11" type="empty"/>
<property name="&lt;Primary&gt;F12" type="empty"/>
<property name="&lt;Super&gt;KP_Left" type="empty"/>
<property name="&lt;Super&gt;KP_Right" type="empty"/>
<property name="&lt;Super&gt;KP_Up" type="empty"/>
<property name="&lt;Super&gt;KP_Down" type="empty"/>
<property name="&lt;Super&gt;KP_Page_Up" type="empty"/>
<property name="&lt;Super&gt;KP_Home" type="empty"/>
<property name="&lt;Super&gt;KP_End" type="empty"/>
<property name="&lt;Super&gt;KP_Next" type="empty"/>
</property>
<property name="custom" type="empty">
<property name="Up" type="string" value="up_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_9" type="string" value="move_window_workspace_9_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_8" type="string" value="move_window_workspace_8_key"/>
<property name="Left" type="string" value="left_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_6" type="string" value="move_window_workspace_6_key"/>
<property name="&lt;Alt&gt;Insert" type="string" value="add_workspace_key"/>
<property name="&lt;Alt&gt;Tab" type="string" value="cycle_windows_key"/>
<property name="&lt;Alt&gt;&lt;Shift&gt;Tab" type="string" value="cycle_reverse_windows_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_7" type="string" value="move_window_workspace_7_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Right" type="string" value="right_workspace_key"/>
<property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Right" type="string" value="move_window_right_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;d" type="string" value="show_desktop_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Up" type="string" value="up_workspace_key"/>
<property name="&lt;Primary&gt;F7" type="string" value="workspace_7_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Home" type="string" value="move_window_prev_workspace_key"/>
<property name="&lt;Alt&gt;F4" type="string" value="close_window_key"/>
<property name="&lt;Super&gt;q" type="string" value="close_window_key"/>
<property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Left" type="string" value="move_window_left_key"/>
<property name="&lt;Alt&gt;F6" type="string" value="stick_window_key"/>
<property name="&lt;Alt&gt;F10" type="string" value="maximize_window_key"/>
<property name="&lt;Alt&gt;F12" type="string" value="above_key"/>
<property name="&lt;Alt&gt;F9" type="string" value="hide_window_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Down" type="string" value="down_workspace_key"/>
<property name="&lt;Alt&gt;F8" type="string" value="resize_window_key"/>
<property name="&lt;Super&gt;Tab" type="string" value="switch_window_key"/>
<property name="Escape" type="string" value="cancel_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;End" type="string" value="move_window_next_workspace_key"/>
<property name="&lt;Primary&gt;F10" type="string" value="workspace_10_key"/>
<property name="&lt;Primary&gt;F11" type="string" value="workspace_11_key"/>
<property name="&lt;Alt&gt;F11" type="string" value="fullscreen_key"/>
<property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;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="&lt;Alt&gt;F7" type="string" value="move_window_key"/>
<property name="&lt;Shift&gt;&lt;Alt&gt;Page_Down" type="string" value="lower_window_key"/>
<property name="&lt;Primary&gt;F12" type="string" value="workspace_12_key"/>
<property name="&lt;Primary&gt;F1" type="string" value="workspace_1_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Left" type="string" value="left_workspace_key"/>
<property name="&lt;Primary&gt;F2" type="string" value="workspace_2_key"/>
<property name="&lt;Primary&gt;F4" type="string" value="workspace_4_key"/>
<property name="&lt;Primary&gt;F5" type="string" value="workspace_5_key"/>
<property name="&lt;Primary&gt;F6" type="string" value="workspace_6_key"/>
<property name="&lt;Alt&gt;space" type="string" value="popup_menu_key"/>
<property name="&lt;Primary&gt;F8" type="string" value="workspace_8_key"/>
<property name="&lt;Primary&gt;F9" type="string" value="workspace_9_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_1" type="string" value="move_window_workspace_1_key"/>
<property name="&lt;Alt&gt;Delete" type="string" value="del_workspace_key"/>
<property name="&lt;Shift&gt;&lt;Alt&gt;Page_Up" type="string" value="raise_window_key"/>
<property name="&lt;Primary&gt;F3" type="string" value="workspace_3_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_2" type="string" value="move_window_workspace_2_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_3" type="string" value="move_window_workspace_3_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_4" type="string" value="move_window_workspace_4_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

50
auto-install.sh Normal file
View 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="Arch-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 pacman -S git --noconfirm; 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

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

@@ -1,50 +1,35 @@
#!/bin/bash
# https://github.com/JaKooLit
# 💫 https://github.com/JaKooLit 💫 #
# base-devel + archlinux-keyring #
base=(
base-devel
archlinux-keyring
findutils
)
############## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ######################################
# Set some colors for output messages
OK="$(tput setaf 2)[OK]$(tput sgr0)"
ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)"
NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)"
RESET=$(tput sgr0)
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_base.log"
# 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; }
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if pacman -Q "$1" &>/dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
sudo pacman -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if pacman -Q "$1" &>/dev/null ; then
echo -e "${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "${ERROR} $1 failed to install. Please check the $LOG. You may need to install manually."
# 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
fi
}
# Installation of main components
printf "\n%s - Installing base-devel \n" "${NOTE}"
# Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_base.log"
# Installation of main components with pacman
echo -e "\nInstalling ${SKY_BLUE}base-devel${RESET} and ${SKY_BLUE}archlinux-keyring${RESET}..."
for PKG1 in "${base[@]}"; do
install_package "$PKG1" | tee -a "$LOG"
echo "Installing $PKG1 with pacman..."
install_package_pacman "$PKG1" "$LOG"
done
# clear
printf "\n%.0s" {1..1}

View File

@@ -1,131 +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 AUR and official Arch Repo
# add packages wanted here
Extra=(
)
hypr_package=(
cliphist
curl
dunst
grim
gvfs
gvfs-mtp
imagemagick
jq
kitty
kvantum
nano
network-manager-applet
pamixer
pavucontrol
pipewire-alsa
playerctl
polkit-gnome
python-requests
python-pywal
qt5ct
qt6ct
qt6-svg
rofi-lbonn-wayland-git
slurp
swappy
swayidle
swaylock-effects-git
swww
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
nwg-look-bin
pacman-contrib
vim
wlsunset
yt-dlp
)
fonts=(
adobe-source-code-pro-fonts
noto-fonts-emoji
otf-font-awesome
ttf-droid
ttf-fira-code
ttf-jetbrains-mono
ttf-jetbrains-mono-nerd
)
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
# 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"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
# Installation of main components
printf "\n%s - Installing hyprland packages.... \n" "${NOTE}"
for PKG1 in "${hypr_package[@]}" "${hypr_package_2[@]}" "${fonts[@]}" "${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
clear

127
install-scripts/01-hypr-pkgs.sh Executable file
View File

@@ -0,0 +1,127 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Hyprland Packages #
# edit your packages desired here.
# WARNING! If you remove packages here, dotfiles may not work properly.
# and also, ensure that packages are present in AUR and official Arch Repo
# add packages wanted here
Extra=(
)
hypr_package=(
#aylurs-gtk-shell
bc
cliphist
curl
grim
gvfs
gvfs-mtp
hyprpolkitagent
imagemagick
inxi
jq
kitty
kvantum
libspng
nano
network-manager-applet
pamixer
pavucontrol
playerctl
python-requests
python-pyquery
qt5ct
qt6ct
qt6-svg
rofi
slurp
swappy
swaync
swww
unzip # needed later
wallust
waybar
wget
wl-clipboard
wlogout
xdg-user-dirs
xdg-utils
yad
)
# the following packages can be deleted. however, dotfiles may not work properly
hypr_package_2=(
brightnessctl
btop
cava
loupe
fastfetch
gnome-system-monitor
mousepad
mpv
mpv-mpris
nvtop
nwg-look
nwg-displays
pacman-contrib
qalculate-gtk
yt-dlp
)
# List of packages to uninstall as it conflicts some packages
uninstall=(
aylurs-gtk-shell
dunst
cachyos-hyprland-settings
mako
rofi
wallust-git
rofi-lbonn-wayland
rofi-lbonn-wayland-git
)
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
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..2}

View File

@@ -0,0 +1,89 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Final checking if packages are installed
# NOTE: These package check are only the essentials
packages=(
cliphist
kvantum
rofi-wayland
imagemagick
swaync
swww
wallust
waybar
wl-clipboard
wlogout
kitty
hypridle
hyprlock
hyprland
)
# Local packages that should be in /usr/local/bin/
local_pkgs_installed=(
)
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
# Determine the directory where the script is located
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
# Source the global functions script
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
# Set the name of the log file to include the current date and time
LOG="Install-Logs/00_CHECK-$(date +%d-%H%M%S)_installed.log"
printf "\n%s - Final Check if all ${SKY_BLUE}Essential packages${RESET} were installed \n" "${NOTE}"
# Initialize an empty array to hold missing packages
missing=()
local_missing=()
# Function to check if a packages are installed using pacman
is_installed_pacman() {
pacman -Qi "$1" &>/dev/null
}
# Loop through each package
for pkg in "${packages[@]}"; do
# Check if the packages are installed
if ! is_installed_pacman "$pkg"; then
missing+=("$pkg")
fi
done
# Check for local packages
for pkg1 in "${local_pkgs_installed[@]}"; do
if ! [ -f "/usr/local/bin/$pkg1" ]; then
local_missing+=("$pkg1")
fi
done
# Log missing packages
if [ ${#missing[@]} -eq 0 ] && [ ${#local_missing[@]} -eq 0 ]; then
echo "${OK} GREAT! 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 "${WARNING}$pkg${RESET}"
echo "$pkg" >> "$LOG"
done
fi
if [ ${#local_missing[@]} -ne 0 ]; then
echo "${WARN} The following local packages are missing from /usr/local/bin/ and will be logged:"
for pkg1 in "${local_missing[@]}"; do
echo "${WARNING}$pkg1${REST} is not installed. Can't find it in /usr/local/bin/"
echo "$pkg1" >> "$LOG"
done
fi
echo "${NOTE} Missing packages logged at $(date)" >> "$LOG"
fi

View File

@@ -0,0 +1,132 @@
#!/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${NOTE} Installing ${YELLOW}%s${RESET} ..." "$package_name"
while ps -p $pid &> /dev/null; do
printf "\r${NOTE} Installing ${YELLOW}%s${RESET} %s" "$package_name" "${spin_chars[i]}"
i=$(( (i + 1) % 10 ))
sleep 0.3
done
printf "\r${NOTE} Installing ${YELLOW}%s${RESET} ... Done!%-20s \n" "$package_name" ""
tput cnorm
}
# Function to install packages with pacman
install_package_pacman() {
# Check if package is already installed
if pacman -Q "$1" &>/dev/null ; then
echo -e "${INFO} ${MAGENTA}$1${RESET} is already installed. Skipping..."
else
# Run pacman and redirect all output to a log file
(
stdbuf -oL sudo pacman -S --noconfirm "$1" 2>&1
) >> "$LOG" 2>&1 &
PID=$!
show_progress $PID "$1"
# Double check if package is installed
if pacman -Q "$1" &>/dev/null ; then
echo -e "${OK} Package ${YELLOW}$1${RESET} has been successfully installed!"
else
echo -e "\n${ERROR} ${YELLOW}$1${RESET} failed to install. Please check the $LOG. You may need to install manually."
fi
fi
}
ISAUR=$(command -v yay || command -v paru)
# Function to install packages with either yay or paru
install_package() {
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${INFO} ${MAGENTA}$1${RESET} is already installed. Skipping..."
else
(
stdbuf -oL $ISAUR -S --noconfirm "$1" 2>&1
) >> "$LOG" 2>&1 &
PID=$!
show_progress $PID "$1"
# Double check if package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} Package ${YELLOW}$1${RESET} has been successfully installed!"
else
# Something is missing, exiting to review log
echo -e "\n${ERROR} ${YELLOW}$1${RESET} failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
fi
fi
}
# Function to just install packages with either yay or paru without checking if installed
install_package_f() {
(
stdbuf -oL $ISAUR -S --noconfirm "$1" 2>&1
) >> "$LOG" 2>&1 &
PID=$!
show_progress $PID "$1"
# Double check if package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} Package ${YELLOW}$1${RESET} has been successfully installed!"
else
# Something is missing, exiting to review log
echo -e "\n${ERROR} ${YELLOW}$1${RESET} failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
fi
}
# Function for removing packages
uninstall_package() {
local pkg="$1"
# Checking if package is installed
if pacman -Qi "$pkg" &>/dev/null; then
echo -e "${NOTE} removing $pkg ..."
sudo pacman -R --noconfirm "$pkg" 2>&1 | tee -a "$LOG" | grep -v "error: target not found"
if ! pacman -Qi "$pkg" &>/dev/null; then
echo -e "\e[1A\e[K${OK} $pkg removed."
else
echo -e "\e[1A\e[K${ERROR} $pkg Removal failed. No actions required."
return 1
fi
else
echo -e "${INFO} Package $pkg not installed, skipping."
fi
return 0
}

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

@@ -1,55 +1,36 @@
#!/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! ######################################
# 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 )"
# Change the working directory to the parent directory of the script
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
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# 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)_input.log"
LOG="Install-Logs/install-$(date +%d-%H%M%S)_input.log"
while true; do
echo "${WARN} This script will add or remove your user from the 'input' group."
echo "${NOTE} Please note that adding yourself to the 'input' group might be necessary for waybar keyboard-state functionality."
read -p "${YELLOW}Do you want to proceed? (y/n): ${RESET}" choice
if [[ $choice == "y" || $choice == "Y" ]]; then
# Check if the 'input' group exists
if grep -q '^input:' /etc/group; then
echo "${OK} 'input' group exists."
echo "${OK} ${MAGENTA}input${RESET} group exists."
else
echo "${NOTE} 'input' group doesn't exist. Creating 'input' group..."
echo "${NOTE} ${MAGENTA}input${RESET} group doesn't exist. Creating ${MAGENTA}input${RESET} group..."
sudo groupadd input
# Log the creation of the 'input' group
echo "$(date '+%Y-%m-%d %H:%M:%S') - 'input' group created" >> "$LOG"
echo "${MAGENTA}input${RESET} group created" >> "$LOG"
fi
# Add the user to the input group
# 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."
echo "${OK} ${YELLOW}user${RESET} added to the ${MAGENTA}input${RESET} group. Changes will take effect after you log out and log back in." >> "$LOG"
# Log the addition of the user to the 'input' group
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
printf "\n%.0s" {1..2}

View File

@@ -0,0 +1,18 @@
#!/usr/bin/gjs -m
import { exit, programArgs, programInvocationName } from "system";
import GLib from "gi://GLib";
// Ensure GI can see typelibs in /usr/local and the system girepository
GLib.setenv("GI_TYPELIB_PATH", "/usr/local/lib:/usr/lib/girepository-1.0", true);
imports.package.init({
name: "com.github.Aylur.ags",
version: "1.9.0",
prefix: "/usr/local",
libdir: "/usr/local/lib",
});
const module = await import("resource:///com/github/Aylur/ags/main.js");
const exitCode = await module.main([programInvocationName, ...programArgs]);
exit(exitCode);

159
install-scripts/ags.sh Executable file
View File

@@ -0,0 +1,159 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Aylur's GTK Shell v 1.9.0 #
# for desktop overview
if [[ $USE_PRESET = [Yy] ]]; then
source ./preset.sh
fi
ags=(
typescript
npm
meson
glib2-devel
gjs
gtk3
gtk-layer-shell
upower
networkmanager
gobject-introspection
libdbusmenu-gtk3
libsoup3
)
# specific tags to download
ags_tag="v1.9.0"
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
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
# Fail early and make pipelines fail if any command fails
set -eo pipefail
# 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"
# NOTE: We intentionally do NOT run `ags -v` here, because a broken AGS
# installation (missing GUtils, etc.) would crash gjs and spam errors
# during install. We always (re)install v1.9.0 when this script is run.
# Installation of main components
printf "\n%s - Installing ${SKY_BLUE}Aylur's GTK shell $ags_tag${RESET} Dependencies \n" "${NOTE}"
# Installing ags Dependencies
for PKG1 in "${ags[@]}"; do
install_package "$PKG1" "$LOG"
done
printf "\n%.0s" {1..1}
# ags v1
printf "${NOTE} Install and Compiling ${SKY_BLUE}Aylur's GTK shell $ags_tag${RESET}..\n"
# Check if directory exists and remove it
if [ -d "ags_v1.9.0" ]; then
printf "${NOTE} Removing existing ags directory...\n"
rm -rf "ags_v1.9.0"
fi
printf "\n%.0s" {1..1}
printf "${INFO} Kindly Standby...cloning and compiling ${SKY_BLUE}Aylur's GTK shell $ags_tag${RESET}...\n"
printf "\n%.0s" {1..1}
# Clone repository with the specified tag and compile AGS
if git clone --depth=1 https://github.com/JaKooLit/ags_v1.9.0.git; then
cd ags_v1.9.0 || exit 1
# Patch tsconfig to avoid TS5107 failure (moduleResolution=node10 deprecation)
if [ -f tsconfig.json ]; then
# 1) Ensure ignoreDeprecations is present
if ! grep -q '"ignoreDeprecations"[[:space:]]*:' tsconfig.json; then
sed -i 's/"compilerOptions":[[:space:]]*{/"compilerOptions": {\n "ignoreDeprecations": "6.0",/' tsconfig.json
fi
# 2) Bump moduleResolution from node10 to node16 if present
if grep -q '"moduleResolution"[[:space:]]*:[[:space:]]*"node10"' tsconfig.json; then
sed -i 's/"moduleResolution"[[:space:]]*:[[:space:]]*"node10"/"moduleResolution": "node16"/' tsconfig.json || true
fi
# 3) Fallback with Node to rewrite JSON if sed failed to catch patterns
if grep -q '"moduleResolution"[[:space:]]*:[[:space:]]*"node10"' tsconfig.json; then
if command -v node >/dev/null 2>&1; then
node -e '\n const fs = require("fs");\n const p = "tsconfig.json";\n const j = JSON.parse(fs.readFileSync(p, "utf8"));\n j.compilerOptions = j.compilerOptions || {};\n if (j.compilerOptions.moduleResolution === "node10") j.compilerOptions.moduleResolution = "node16";\n if (j.compilerOptions.ignoreDeprecations === undefined) j.compilerOptions.ignoreDeprecations = "6.0";\n fs.writeFileSync(p, JSON.stringify(j, null, 2));\n '
fi
fi
# Log what we ended up with for troubleshooting
echo "== tsconfig.json after patch ==" >> "$MLOG"
grep -n 'moduleResolution\|ignoreDeprecations' tsconfig.json >> "$MLOG" || true
fi
# Replace pam.ts with a stub that does NOT depend on GUtils at all.
# The desktop overview does not use PAM, and GUtils typelib support is
# inconsistent across distros, so we disable these helpers instead of
# crashing at startup when the typelib is missing.
if [ -f src/utils/pam.ts ]; then
printf "%s Replacing src/utils/pam.ts with PAM stub (no GUtils dependency)...\\n" "${NOTE}" | tee -a "$MLOG"
cat > src/utils/pam.ts <<'PAM_STUB'
// Stubbed PAM auth for AGS installed via Arch-Hyprland.
// The desktop overview does not use PAM, and GUtils typelib support
// is unreliable across distros, so we disable these helpers here.
export function authenticate(password: string): Promise<number> {
return Promise.reject(new Error("PAM authentication disabled on this system (no GUtils)"));
}
export function authenticateUser(username: string, password: string): Promise<number> {
return Promise.reject(new Error("PAM authentication disabled on this system (no GUtils)"));
}
PAM_STUB
fi
npm install
meson setup build
if sudo meson install -C build 2>&1 | tee -a "$MLOG"; then
printf "\n${OK} ${YELLOW}Aylur's GTK shell $ags_tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
else
echo -e "\n${ERROR} ${YELLOW}Aylur's GTK shell $ags_tag${RESET} Installation failed\n " 2>&1 | tee -a "$MLOG"
# Abort here on build/install failure so we do NOT install a broken launcher
# or report success when AGS binaries are missing.
mv "$MLOG" ../Install-Logs/ || true
cd ..
exit 1
fi
LAUNCHER_DIR="/usr/local/share/com.github.Aylur.ags"
LAUNCHER_PATH="$LAUNCHER_DIR/com.github.Aylur.ags"
sudo mkdir -p "$LAUNCHER_DIR"
# Install the known-good launcher we captured from a working system.
# This JS entry script uses GLib to set GI_TYPELIB_PATH and does not
# depend on GIRepository, which avoids missing-typelib crashes.
LAUNCHER_SRC="$SCRIPT_DIR/ags.launcher.com.github.Aylur.ags"
if [ -f "$LAUNCHER_SRC" ]; then
sudo install -m 755 "$LAUNCHER_SRC" "$LAUNCHER_PATH"
else
printf "${WARN} Saved launcher not found at %s; leaving Meson-installed launcher untouched.\\n" "$LAUNCHER_SRC" | tee -a "$MLOG"
fi
# Ensure /usr/local/bin/ags points to the JS entry script.
sudo mkdir -p /usr/local/bin
sudo ln -srf "$LAUNCHER_PATH" /usr/local/bin/ags
printf "${OK} AGS launcher installed.\\n"
# 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}

View File

@@ -0,0 +1,116 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Battery Monitor and Low Battery Notification #
battery=(
acpi
libnotify
)
## 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)_battery-monitor.log"
# Battery Monitor
printf "${NOTE} Installing ${SKY_BLUE}Battery Monitor${RESET} Packages...\n"
for BAT in "${battery[@]}"; do
install_package "$BAT" "$LOG"
done
# Create battery monitoring script
printf "${NOTE} Creating ${YELLOW}battery monitoring${RESET} script...\n"
BATTERY_SCRIPT="$HOME/.config/hypr/scripts/battery-monitor.sh"
mkdir -p "$HOME/.config/hypr/scripts"
cat > "$BATTERY_SCRIPT" << 'EOF'
#!/bin/bash
# Low Battery Notification Script
# Monitors battery level and sends notifications
# Configuration
LOW_BATTERY_THRESHOLD=20
CRITICAL_BATTERY_THRESHOLD=10
CHECK_INTERVAL=60 # Check every 60 seconds
# Track notification state to avoid spam
NOTIFIED_LOW=false
NOTIFIED_CRITICAL=false
while true; do
# Get battery percentage
BATTERY_LEVEL=$(acpi -b | grep -P -o '[0-9]+(?=%)')
BATTERY_STATUS=$(acpi -b | grep -o 'Discharging\|Charging\|Full')
# Only send notifications when discharging
if [ "$BATTERY_STATUS" = "Discharging" ]; then
if [ "$BATTERY_LEVEL" -le "$CRITICAL_BATTERY_THRESHOLD" ] && [ "$NOTIFIED_CRITICAL" = false ]; then
notify-send -u critical -i battery-caution "Critical Battery" "Battery level is at ${BATTERY_LEVEL}%! Please plug in your charger immediately."
NOTIFIED_CRITICAL=true
NOTIFIED_LOW=true
elif [ "$BATTERY_LEVEL" -le "$LOW_BATTERY_THRESHOLD" ] && [ "$NOTIFIED_LOW" = false ]; then
notify-send -u normal -i battery-low "Low Battery" "Battery level is at ${BATTERY_LEVEL}%. Consider plugging in your charger."
NOTIFIED_LOW=true
fi
else
# Reset notification flags when charging or full
NOTIFIED_LOW=false
NOTIFIED_CRITICAL=false
fi
sleep "$CHECK_INTERVAL"
done
EOF
chmod +x "$BATTERY_SCRIPT"
printf "${OK} Battery monitoring script created at ${YELLOW}$BATTERY_SCRIPT${RESET}\n"
# Create systemd user service
printf "${NOTE} Creating ${YELLOW}systemd user service${RESET} for battery monitoring...\n"
SYSTEMD_DIR="$HOME/.config/systemd/user"
mkdir -p "$SYSTEMD_DIR"
cat > "$SYSTEMD_DIR/battery-monitor.service" << EOF
[Unit]
Description=Battery Level Monitor
After=graphical-session.target
[Service]
Type=simple
ExecStart=$BATTERY_SCRIPT
Restart=on-failure
RestartSec=10
[Install]
WantedBy=default.target
EOF
printf "${OK} Systemd service created\n"
# Enable and start the service
printf "${NOTE} Enabling and starting ${YELLOW}battery-monitor${RESET} service...\n"
systemctl --user daemon-reload
systemctl --user enable battery-monitor.service 2>&1 | tee -a "$LOG"
systemctl --user start battery-monitor.service 2>&1 | tee -a "$LOG"
printf "${OK} Battery monitor service is now running!\n"
printf "${INFO} You can check status with: ${YELLOW}systemctl --user status battery-monitor${RESET}\n"
printf "${INFO} To stop: ${YELLOW}systemctl --user stop battery-monitor${RESET}\n"
printf "${INFO} To disable: ${YELLOW}systemctl --user disable battery-monitor${RESET}\n"
printf "\n%.0s" {1..2}

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

@@ -1,4 +1,6 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Bluetooth Stuff #
blue=(
bluez
@@ -6,55 +8,31 @@ bluez-utils
blueman
)
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# 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)
# 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; }
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_bluetooth.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
# 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
fi
}
# Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_bluetooth.log"
# Bluetooth
printf "${NOTE} Installing Bluetooth Packages...\n"
printf "${NOTE} Installing ${SKY_BLUE}Bluetooth${RESET} Packages...\n"
for BLUE in "${blue[@]}"; do
install_package "$BLUE" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $BLUE install had failed, please check the install.log"; exit 1; }
install_package "$BLUE" "$LOG"
done
printf " Activating Bluetooth Services...\n"
printf " Activating ${YELLOW}Bluetooth${RESET} Services...\n"
sudo systemctl enable --now bluetooth.service 2>&1 | tee -a "$LOG"
clear
printf "\n%.0s" {1..2}

View File

@@ -0,0 +1,126 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Disk Space Monitor #
disk=(
libnotify
)
## 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)_disk-monitor.log"
# Disk Monitor
printf "${NOTE} Installing ${SKY_BLUE}Disk Monitor${RESET} Packages...\n"
for DISK in "${disk[@]}"; do
install_package "$DISK" "$LOG"
done
# Create disk monitoring script
printf "${NOTE} Creating ${YELLOW}disk space monitoring${RESET} script...\n"
DISK_SCRIPT="$HOME/.config/hypr/scripts/disk-monitor.sh"
mkdir -p "$HOME/.config/hypr/scripts"
cat > "$DISK_SCRIPT" << 'EOF'
#!/bin/bash
# Disk Space Monitoring Script
# Monitors disk usage and sends notifications
# Configuration
DISK_WARNING_THRESHOLD=80
DISK_CRITICAL_THRESHOLD=90
CHECK_INTERVAL=300 # Check every 5 minutes
# Track notification state
declare -A NOTIFIED_WARNING
declare -A NOTIFIED_CRITICAL
while true; do
# Get disk usage for all mounted filesystems
df -h | grep '^/dev/' | while read -r line; do
DEVICE=$(echo "$line" | awk '{print $1}')
MOUNT=$(echo "$line" | awk '{print $6}')
USAGE=$(echo "$line" | awk '{print $5}' | sed 's/%//')
# Skip if usage is not a number
if ! [[ "$USAGE" =~ ^[0-9]+$ ]]; then
continue
fi
# Check disk usage
if [ "$USAGE" -ge "$DISK_CRITICAL_THRESHOLD" ]; then
if [ "${NOTIFIED_CRITICAL[$MOUNT]}" != "true" ]; then
notify-send -u critical -i drive-harddisk "Critical Disk Space" "Mount point $MOUNT is ${USAGE}% full!\nDevice: $DEVICE"
NOTIFIED_CRITICAL[$MOUNT]="true"
NOTIFIED_WARNING[$MOUNT]="true"
fi
elif [ "$USAGE" -ge "$DISK_WARNING_THRESHOLD" ]; then
if [ "${NOTIFIED_WARNING[$MOUNT]}" != "true" ]; then
notify-send -u normal -i drive-harddisk "Low Disk Space" "Mount point $MOUNT is ${USAGE}% full\nDevice: $DEVICE"
NOTIFIED_WARNING[$MOUNT]="true"
fi
else
# Reset notifications when usage drops
if [ "$USAGE" -lt $((DISK_WARNING_THRESHOLD - 5)) ]; then
NOTIFIED_WARNING[$MOUNT]="false"
NOTIFIED_CRITICAL[$MOUNT]="false"
fi
fi
done
sleep "$CHECK_INTERVAL"
done
EOF
chmod +x "$DISK_SCRIPT"
printf "${OK} Disk monitoring script created at ${YELLOW}$DISK_SCRIPT${RESET}\n"
# Create systemd user service
printf "${NOTE} Creating ${YELLOW}systemd user service${RESET} for disk monitoring...\n"
SYSTEMD_DIR="$HOME/.config/systemd/user"
mkdir -p "$SYSTEMD_DIR"
cat > "$SYSTEMD_DIR/disk-monitor.service" << EOF
[Unit]
Description=Disk Space Monitor
After=graphical-session.target
[Service]
Type=simple
ExecStart=$DISK_SCRIPT
Restart=on-failure
RestartSec=10
[Install]
WantedBy=default.target
EOF
printf "${OK} Systemd service created\n"
# Enable and start the service
printf "${NOTE} Enabling and starting ${YELLOW}disk-monitor${RESET} service...\n"
systemctl --user daemon-reload
systemctl --user enable disk-monitor.service 2>&1 | tee -a "$LOG"
systemctl --user start disk-monitor.service 2>&1 | tee -a "$LOG"
printf "${OK} Disk monitor service is now running!\n"
printf "${INFO} You can check status with: ${YELLOW}systemctl --user status disk-monitor${RESET}\n"
printf "${INFO} View disk usage: ${YELLOW}df -h${RESET}\n"
printf "\n%.0s" {1..2}

View File

@@ -0,0 +1,37 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Hyprland-Dots to download from main #
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
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${RESET}....\n"
if [ -d Hyprland-Dots ]; then
cd Hyprland-Dots
git stash && git pull
chmod +x copy.sh
./copy.sh
else
if git clone --depth=1 https://github.com/JaKooLit/Hyprland-Dots; then
cd Hyprland-Dots || exit 1
chmod +x copy.sh
./copy.sh
else
echo -e "$ERROR Can't download ${YELLOW}KooL's Hyprland-Dots${RESET} . Check your internet connection"
fi
fi
printf "\n%.0s" {1..2}

View File

@@ -1,99 +0,0 @@
#!/bin/bash
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
# 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)
printf "${NOTE} Downloading / Checking for existing Hyprland-Dots.tar.gz...\n"
# Check if Hyprland-Dots.tar.gz exists
if [ -f Hyprland-Dots.tar.gz ]; then
printf "${NOTE} Hyprland-Dots.tar.gz found.\n"
# Get the version from the existing tarball filename
existing_version=$(echo Hyprland-Dots.tar.gz | grep -oP 'v\d+\.\d+\.\d+' | sed 's/v//')
# Fetch the tag_name for the latest release using the GitHub API
latest_version=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots/releases/latest | grep "tag_name" | cut -d '"' -f 4 | sed 's/v//')
# Check if versions match
if [ "$existing_version" = "$latest_version" ]; then
echo -e "${OK} Hyprland-Dots.tar.gz is up-to-date with the latest release ($latest_version)."
# Sleep for 10 seconds before exiting
printf "${NOTE} No update found. Sleeping for 10 seconds...\n"
sleep 10
exit 0
else
echo -e "${WARN} Hyprland-Dots.tar.gz is outdated (Existing version: $existing_version, Latest version: $latest_version)."
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
printf "${NOTE} Downloading the latest Hyprland source code release...\n"
# Fetch the tag name for the latest release using the GitHub API
latest_tag=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots/releases/latest | grep "tag_name" | cut -d '"' -f 4)
# Check if the tag is obtained successfully
if [ -z "$latest_tag" ]; then
echo -e "${ERROR} Unable to fetch the latest tag information."
exit 1
fi
# Fetch the tarball URL for the latest release using the GitHub API
latest_tarball_url=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots/releases/latest | grep "tarball_url" | cut -d '"' -f 4)
# Check if the URL is obtained successfully
if [ -z "$latest_tarball_url" ]; then
echo -e "${ERROR} Unable to fetch the tarball URL for the latest release."
exit 1
fi
# Get the filename from the URL and include the tag name in the file name
file_name="Hyprland-Dots-${latest_tag}.tar.gz"
# Download the latest release source code tarball to the current directory
if curl -L "$latest_tarball_url" -o "$file_name"; then
# Extract the contents of the tarball
tar -xzf "$file_name" || exit 1
# delete existing Hyprland-Dots
rm -rf JaKooLit-Hyprland-Dots
# Identify the extracted directory
extracted_directory=$(tar -tf "$file_name" | grep -o '^[^/]\+' | uniq)
# Rename the extracted directory to JaKooLit-Hyprland-Dots
mv "$extracted_directory" JaKooLit-Hyprland-Dots || exit 1
cd "JaKooLit-Hyprland-Dots" || exit 1
# Set execute permission for copy.sh and execute it
chmod +x copy.sh
./copy.sh 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
echo -e "${ERROR} Failed to download the latest source code release."
exit 1
fi

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

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

90
install-scripts/gtk_themes.sh Normal file → Executable file
View File

@@ -1,74 +1,50 @@
#!/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=(
unzip
gtk-engine-murrine
)
# 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 )"
# Change the working directory to the parent directory of the script
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
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# 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)_themes.log"
LOG="Install-Logs/install-$(date +%d-%H%M%S)_themes.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
# installing 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
# installing engine needed for gtk themes
for PKG1 in "${engine[@]}"; do
install_package "$PKG1" "$LOG"
done
# Themes and cursors
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."
# 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
tar -xf "assets/Bibata-Modern-Ice.tar.xz" -C ~/.icons 2>&1 | tee -a "$LOG"
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
clear
printf "\n%.0s" {1..2}

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

@@ -1,63 +1,51 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Main Hyprland Package #
hypr_eco=(
hypridle
hyprlock
)
hypr=(
hyprland
)
############## 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! ##
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# 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)
# 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; }
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_hyprland.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
# 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
fi
}
# Removing other Hyprland to avoid conflict
printf "${YELLOW} Checking for other hyprland packages and remove if any..${RESET}\n"
if pacman -Qs hyprland > /dev/null; then
printf "${YELLOW} Hyprland detected. uninstalling to install Hyprland-git...${RESET}\n"
for hyprnvi in hyprland-git hyprland-nvidia hyprland-nvidia-git hyprland-nvidia-hidpi-git; do
sudo pacman -R --noconfirm "$hyprnvi" 2>/dev/null | tee -a "$LOG" || true
# Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprland.log"
# Check if Hyprland is installed
if command -v Hyprland >/dev/null 2>&1; then
printf "$NOTE - ${YELLOW} Hyprland is already installed.${RESET} No action required.\n"
else
printf "$INFO - Hyprland not found. ${SKY_BLUE} Installing Hyprland...${RESET}\n"
for HYPRLAND in "${hypr[@]}"; do
install_package "$HYPRLAND" "$LOG"
done
fi
# Hyprland
printf "${NOTE} Installing Hyprland .......\n"
for HYPR in "${hypr[@]}"; do
install_package "$HYPR" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $HYPR install had failed, please check the install.log"; exit 1; }
# Hyprland -eco packages
printf "${NOTE} - Installing ${SKY_BLUE}other Hyprland-eco packages${RESET} .......\n"
for HYPR in "${hypr_eco[@]}"; do
if ! command -v "$HYPR" >/dev/null 2>&1; then
printf "$INFO - ${YELLOW}$HYPR${RESET} not found. Installing ${YELLOW}$HYPR...${RESET}\n"
install_package "$HYPR" "$LOG"
else
printf "$NOTE - ${YELLOW} $HYPR is already installed.${RESET} No action required.\n"
fi
done
clear
printf "\n%.0s" {1..2}

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

@@ -1,78 +1,49 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Nvidia Stuffs #
nvidia_pkg=(
nvidia-dkms
nvidia-settings
nvidia-utils
libva
libva-nvidia-driver-git
libva-nvidia-driver
)
hypr=(
hyprland
)
############## 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! ##
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# 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)
# 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; }
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_nvidia.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry, I have tried :("
# 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
fi
}
# Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_nvidia.log"
# nvidia stuff
printf "${YELLOW} Checking for other hyprland packages and remove if any..${RESET}\n"
if pacman -Qs hyprland > /dev/null; then
printf "${YELLOW} Hyprland detected. uninstalling to install Hyprland-git...${RESET}\n"
printf "${YELLOW} Hyprland detected. removing to install Hyprland from official repo...${RESET}\n"
for hyprnvi in hyprland-git hyprland-nvidia hyprland-nvidia-git hyprland-nvidia-hidpi-git; do
sudo pacman -R --noconfirm "$hyprnvi" 2>/dev/null | tee -a "$LOG" || true
done
fi
# Hyprland
printf "${NOTE} Installing Hyprland......\n"
for HYPR in "${hypr[@]}"; do
install_package "$HYPR" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $HYPR install had failed, please check the install.log"; exit 1; }
done
# Install additional Nvidia packages
printf "${YELLOW} Installing addition Nvidia packages...\n"
printf "${YELLOW} Installing ${SKY_BLUE}Nvidia Packages and Linux headers${RESET}...\n"
for krnl in $(cat /usr/lib/modules/*/pkgbase); do
for NVIDIA in "${krnl}-headers" "${nvidia_pkg[@]}"; do
install_package "$NVIDIA" 2>&1 | tee -a "$LOG"
install_package "$NVIDIA" "$LOG"
done
done
@@ -81,63 +52,74 @@ if grep -qE '^MODULES=.*nvidia. *nvidia_modeset.*nvidia_uvm.*nvidia_drm' /etc/mk
echo "Nvidia modules already included in /etc/mkinitcpio.conf" 2>&1 | tee -a "$LOG"
else
sudo sed -Ei 's/^(MODULES=\([^\)]*)\)/\1 nvidia nvidia_modeset nvidia_uvm nvidia_drm)/' /etc/mkinitcpio.conf 2>&1 | tee -a "$LOG"
echo "Nvidia modules added in /etc/mkinitcpio.conf"
echo "${OK} Nvidia modules added in /etc/mkinitcpio.conf"
fi
printf "\n%.0s" {1..1}
printf "${INFO} Rebuilding ${YELLOW}Initramfs${RESET}...\n" 2>&1 | tee -a "$LOG"
sudo mkinitcpio -P 2>&1 | tee -a "$LOG"
printf "\n\n\n"
printf "\n%.0s" {1..1}
# Additional Nvidia steps
NVEA="/etc/modprobe.d/nvidia.conf"
if [ -f "$NVEA" ]; then
printf "${OK} Seems like nvidia-drm modeset=1 is already added in your system..moving on.\n"
printf "${INFO} Seems like ${YELLOW}nvidia_drm modeset=1 fbdev=1${RESET} is already added in your system..moving on."
printf "\n"
else
printf "\n"
printf "${YELLOW} Adding options to $NVEA..."
sudo echo -e "options nvidia-drm modeset=1" | sudo tee -a /etc/modprobe.d/nvidia.conf 2>&1 | tee -a "$LOG"
sudo echo -e "options nvidia_drm modeset=1 fbdev=1" | sudo tee -a /etc/modprobe.d/nvidia.conf 2>&1 | tee -a "$LOG"
printf "\n"
fi
# additional for GRUB users
# Check if /etc/default/grub exists
# Additional for GRUB users
if [ -f /etc/default/grub ]; then
# Check if nvidia_drm.modeset=1 is already present
printf "${INFO} ${YELLOW}GRUB${RESET} bootloader detected\n" 2>&1 | tee -a "$LOG"
# Check if nvidia-drm.modeset=1 is present
if ! sudo grep -q "nvidia-drm.modeset=1" /etc/default/grub; then
# Add nvidia_drm.modeset=1 to GRUB_CMDLINE_LINUX_DEFAULT
sudo sed -i 's/\(GRUB_CMDLINE_LINUX_DEFAULT=".*\)"/\1 nvidia-drm.modeset=1"/' /etc/default/grub
sudo sed -i -e 's/\(GRUB_CMDLINE_LINUX_DEFAULT=".*\)"/\1 nvidia-drm.modeset=1"/' /etc/default/grub
printf "${OK} nvidia-drm.modeset=1 added to /etc/default/grub\n" 2>&1 | tee -a "$LOG"
fi
# Check if nvidia_drm.fbdev=1 is present
if ! sudo grep -q "nvidia_drm.fbdev=1" /etc/default/grub; then
sudo sed -i -e 's/\(GRUB_CMDLINE_LINUX_DEFAULT=".*\)"/\1 nvidia_drm.fbdev=1"/' /etc/default/grub
printf "${OK} nvidia_drm.fbdev=1 added to /etc/default/grub\n" 2>&1 | tee -a "$LOG"
fi
# Regenerate GRUB configuration
if sudo grep -q "nvidia-drm.modeset=1" /etc/default/grub || sudo grep -q "nvidia_drm.fbdev=1" /etc/default/grub; then
sudo grub-mkconfig -o /boot/grub/grub.cfg
echo "nvidia-drm.modeset=1 added to /etc/default/grub"
else
echo "nvidia-drm.modeset=1 is already present in /etc/default/grub"
fi
else
echo "/etc/default/grub does not exist"
printf "${INFO} ${YELLOW}GRUB${RESET} configuration regenerated\n" 2>&1 | tee -a "$LOG"
fi
# Blacklist nouveau
read -n1 -rep "${CAT} Would you like to blacklist nouveau? (y/n)" response
echo
if [[ $response =~ ^[Yy]$ ]]; then
NOUVEAU="/etc/modprobe.d/nouveau.conf"
if [ -f "$NOUVEAU" ]; then
printf "${OK} Seems like nouveau is already blacklisted..moving on.\n"
else
printf "\n"
echo "blacklist nouveau" | sudo tee -a "$NOUVEAU" 2>&1 | tee -a "$LOG"
printf "${NOTE} has been added to $NOUVEAU.\n"
printf "\n"
# To completely blacklist nouveau (See wiki.archlinux.org/title/Kernel_module#Blacklisting 6.1)
if [ -f "/etc/modprobe.d/blacklist.conf" ]; then
echo "install nouveau /bin/true" | sudo tee -a "/etc/modprobe.d/blacklist.conf" 2>&1 | tee -a "$LOG"
else
echo "install nouveau /bin/true" | sudo tee "/etc/modprobe.d/blacklist.conf" 2>&1 | tee -a "$LOG"
fi
fi
else
printf "${NOTE} Skipping nouveau blacklisting.\n"
printf "${OK} Additional steps for ${YELLOW}GRUB${RESET} completed\n" 2>&1 | tee -a "$LOG"
fi
clear
# Additional for systemd-boot users
if [ -f /boot/loader/loader.conf ]; then
printf "${INFO} ${YELLOW}systemd-boot${RESET} bootloader detected\n" 2>&1 | tee -a "$LOG"
backup_count=$(find /boot/loader/entries/ -type f -name "*.conf.bak" | wc -l)
conf_count=$(find /boot/loader/entries/ -type f -name "*.conf" | wc -l)
if [ "$backup_count" -ne "$conf_count" ]; then
find /boot/loader/entries/ -type f -name "*.conf" | while read imgconf; do
# Backup conf
sudo cp "$imgconf" "$imgconf.bak"
printf "${INFO} Backup created for systemd-boot loader: %s\n" "$imgconf" 2>&1 | tee -a "$LOG"
# Clean up options and update with NVIDIA settings
sdopt=$(grep -w "^options" "$imgconf" | sed 's/\b nvidia-drm.modeset=[^ ]*\b//g' | sed 's/\b nvidia_drm.fbdev=[^ ]*\b//g')
sudo sed -i "/^options/c${sdopt} nvidia-drm.modeset=1 nvidia_drm.fbdev=1" "$imgconf" 2>&1 | tee -a "$LOG"
done
printf "${OK} Additional steps for ${YELLOW}systemd-boot${RESET} completed\n" 2>&1 | tee -a "$LOG"
else
printf "${NOTE} ${YELLOW}systemd-boot${RESET} is already configured...\n" 2>&1 | tee -a "$LOG"
fi
fi
printf "\n%.0s" {1..2}

View File

@@ -0,0 +1,39 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Nvidia Blacklist #
## 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)_nvidia.log"
printf "${INFO} ${SKY_BLUE}blacklist nouveau${RESET}...\n"
# Blacklist nouveau
NOUVEAU="/etc/modprobe.d/nouveau.conf"
if [ -f "$NOUVEAU" ]; then
printf "${OK} Seems like ${YELLOW}nouveau${RESET} is already blacklisted..moving on.\n"
else
echo "blacklist nouveau" | sudo tee -a "$NOUVEAU" 2>&1 | tee -a "$LOG"
# To completely blacklist nouveau (See wiki.archlinux.org/title/Kernel_module#Blacklisting 6.1)
if [ -f "/etc/modprobe.d/blacklist.conf" ]; then
echo "install nouveau /bin/true" | sudo tee -a "/etc/modprobe.d/blacklist.conf" 2>&1 | tee -a "$LOG"
else
echo "install nouveau /bin/true" | sudo tee "/etc/modprobe.d/blacklist.conf" 2>&1 | tee -a "$LOG"
fi
fi
printf "\n%.0s" {1..2}

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

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

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

@@ -1,31 +1,53 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Paru AUR Helper #
# NOTE: If yay is already installed, paru will not be installed #
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
pkg="paru-bin"
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_yay.log"
# Set some colors for output messages
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)"
INFO="$(tput setaf 4)[INFO]$(tput sgr0)"
WARN="$(tput setaf 1)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(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)"
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_paru.log"
# Create Directory for Install Logs
if [ ! -d Install-Logs ]; then
mkdir Install-Logs
fi
# Check for AUR helper and install if not found
ISAUR=$(command -v yay || command -v paru)
if [ -n "$ISAUR" ]; then
printf "\n%s - AUR helper was located, moving on.\n" "${OK}"
printf "\n%s - ${SKY_BLUE}AUR helper${RESET} already installed, moving on.\n" "${OK}"
else
printf "\n%s - AUR helper was NOT located\n" "$WARN"
printf "\n%s - Installing paru from AUR\n" "${NOTE}"
git clone https://aur.archlinux.org/paru-bin.git || { printf "%s - Failed to clone paru from AUR\n" "${ERROR}"; exit 1; }
cd paru-bin || { printf "%s - Failed to enter paru-bin directory\n" "${ERROR}"; exit 1; }
makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install paru from AUR\n" "${ERROR}"; exit 1; }
printf "\n%s - Installing ${SKY_BLUE}$pkg${RESET} from AUR\n" "${NOTE}"
# Check if directory exists and remove it
if [ -d "$pkg" ]; then
rm -rf "$pkg"
fi
git clone https://aur.archlinux.org/$pkg.git || { printf "%s - Failed to clone ${YELLOW}$pkg${RESET} from AUR\n" "${ERROR}"; exit 1; }
cd $pkg || { printf "%s - Failed to enter $pkg directory\n" "${ERROR}"; exit 1; }
makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install ${YELLOW}$pkg${RESET} from AUR\n" "${ERROR}"; exit 1; }
# moving install logs in to Install-Logs directory
mv install*.log ../Install-Logs/ || true
cd ..
fi
# Update system before proceeding
@@ -34,4 +56,4 @@ ISAUR=$(command -v yay || command -v paru)
$ISAUR -Syu --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to update system\n" "${ERROR}"; exit 1; }
clear
printf "\n%.0s" {1..2}

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

@@ -1,4 +1,6 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Pipewire and Pipewire Audio Stuff #
pipewire=(
pipewire
@@ -6,65 +8,47 @@ pipewire=(
pipewire-audio
pipewire-alsa
pipewire-pulse
sof-firmware
)
# added this as some reports script didnt install this.
# basically force reinstall
pipewire_2=(
pipewire-pulse
)
############## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##############
# 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)
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
# Source the global functions script
source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_bluetooth.log"
LOG="Install-Logs/install-$(date +%d-%H%M%S)_pipewire.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if the package is already installed
if $ISAUR -Q "$1" &>>/dev/null; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure the package is installed
if $ISAUR -Q "$1" &>>/dev/null; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review the log
echo -e "\e[1A\e[K${ERROR} $1 failed to install. Please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
# Removal of pulseaudio
printf "${YELLOW}Removing pulseaudio stuff...${RESET}\n"
for pulseaudio in pulseaudio pulseaudio-alsa pulseaudio-bluetooth; do
sudo pacman -R --noconfirm "$pulseaudio" 2>/dev/null | tee -a "$LOG" || true
done
# Disabling pulseaudio to avoid conflicts
systemctl --user disable --now pulseaudio.socket pulseaudio.service 2>&1 | tee -a "$LOG"
# Disabling pulseaudio to avoid conflicts and logging output
echo -e "${NOTE} Disabling pulseaudio to avoid conflicts..."
systemctl --user disable --now pulseaudio.socket pulseaudio.service >> "$LOG" 2>&1 || true
# Pipewire
printf "${NOTE} Installing Pipewire Packages...\n"
echo -e "${NOTE} Installing ${SKY_BLUE}Pipewire${RESET} Packages..."
for PIPEWIRE in "${pipewire[@]}"; do
install_package "$PIPEWIRE" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $PIPEWIRE install had failed. Please check the install.log"; exit 1; }
install_package "$PIPEWIRE" "$LOG"
done
printf "Activating Pipewire Services...\n"
for PIPEWIRE2 in "${pipewire_2[@]}"; do
install_package_pacman "$PIPEWIRE" "$LOG"
done
echo -e "${NOTE} Activating Pipewire Services..."
# Redirect systemctl output to log file
systemctl --user enable --now pipewire.socket pipewire-pulse.socket wireplumber.service 2>&1 | tee -a "$LOG"
systemctl --user enable --now pipewire.service 2>&1 | tee -a "$LOG"
clear
echo -e "\n${OK} Pipewire Installation and services setup complete!" 2>&1 | tee -a "$LOG"
printf "\n%.0s" {1..2}

41
install-scripts/quickshell.sh Executable file
View File

@@ -0,0 +1,41 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# quickshell - for desktop overview replacing AGS
if [[ $USE_PRESET = [Yy] ]]; then
source ./preset.sh
fi
quick=(
qt6-5compat
quickshell
)
## 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)_quick.log"
# Installation of main components
printf "\n%s - Installing ${SKY_BLUE}Quick Shell ${RESET} for Desktop Overview \n" "${NOTE}"
for PKG1 in "${quick[@]}"; do
install_package "$PKG1" "$LOG"
done
printf "\n%.0s" {1..1}

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

@@ -1,64 +1,43 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Asus ROG Laptops #
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
rog=(
power-profiles-daemon
asusctl
supergfxctl
rog-control-center
)
# 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 )"
# Change the working directory to the parent directory of the script
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
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)_rog.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
# 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
fi
}
# Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_rog.log"
### Install software for Asus ROG laptops ###
printf " Installing ASUS ROG packages...\n"
for ASUS in asusctl supergfxctl rog-control-center; do
install_package "$ASUS" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then
echo -e "\e[1A\e[K${ERROR} - $ASUS install had failed, please check the install.log"
exit 1
fi
printf " Installing ${SKY_BLUE}ASUS ROG packages${RESET}...\n"
for ASUS in "${rog[@]}"; do
install_package "$ASUS" "$LOG"
done
printf " Activating ROG services...\n"
sudo systemctl enable --now supergfxd 2>&1 | tee -a "$LOG"
clear
printf " Activating ROG services...\n"
sudo systemctl enable supergfxd 2>&1 | tee -a "$LOG"
printf " enabling power-profiles-daemon...\n"
sudo systemctl enable power-profiles-daemon 2>&1 | tee -a "$LOG"
printf "\n%.0s" {1..2}

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

@@ -1,134 +1,77 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# SDDM Log-in Manager #
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
sddm=(
qt6-declarative
qt6-svg
qt6-virtualkeyboard
qt6-multimedia-ffmpeg
qt5-quickcontrols2
sddm
)
# 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)"
# 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)_sddm.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
cd "$PARENT_DIR" || {
echo "${ERROR} Failed to change directory to $PARENT_DIR"
exit 1
fi
fi
}
# SDDM
# 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 SDDM is already installed
if pacman -Qs sddm > /dev/null; then
# Prompt user to manually install sddm-git to remove SDDM
read -n1 -rep "SDDM is already installed. Would you like to manually install sddm-git to remove it? This requires manual intervention. (y/n)" manual_install_sddm
echo
if [[ $manual_install_sddm =~ ^[Yy]$ ]]; then
$ISAUR -S sddm-git 2>&1 | tee -a "$LOG"
fi
fi
# Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_sddm.log"
# Install SDDM and SDDM theme
printf "${NOTE} Installing SDDM-git........\n"
for package in sddm-git; do
install_package "$package" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $package install has failed, please check the install.log"; exit 1; }
printf "${NOTE} Installing sddm and dependencies........\n"
for package in "${sddm[@]}"; do
install_package "$package" "$LOG"
done
printf "\n%.0s" {1..1}
# Check if other login managers installed and disabling its service before enabling sddm
for login_manager in lightdm gdm lxdm lxdm-gtk3; do
if pacman -Qs "$login_manager" > /dev/null; then
echo "disabling $login_manager..."
sudo systemctl disable "$login_manager.service" 2>&1 | tee -a "$LOG"
for login_manager in "${login[@]}"; do
if pacman -Qs "$login_manager" >/dev/null 2>&1; then
sudo systemctl disable "$login_manager.service" >>"$LOG" 2>&1
echo "$login_manager disabled." >>"$LOG" 2>&1
fi
done
printf " Activating sddm service........\n"
# Double check with systemctl
for manager in "${login[@]}"; do
if systemctl is-active --quiet "$manager" >/dev/null 2>&1; then
echo "$manager is active, disabling it..." >>"$LOG" 2>&1
sudo systemctl disable "$manager" --now >>"$LOG" 2>&1
fi
done
printf "\n%.0s" {1..1}
printf "${INFO} Activating sddm service........\n"
sudo systemctl enable sddm
# Set up SDDM
echo -e "${NOTE} Setting up the login screen."
sddm_conf_dir=/etc/sddm.conf.d
[ ! -d "$sddm_conf_dir" ] && { printf "$CAT - $sddm_conf_dir not found, creating...\n"; sudo mkdir "$sddm_conf_dir" 2>&1 | tee -a "$LOG"; }
wayland_sessions_dir=/usr/share/wayland-sessions
[ ! -d "$wayland_sessions_dir" ] && { printf "$CAT - $wayland_sessions_dir not found, creating...\n"; sudo mkdir "$wayland_sessions_dir" 2>&1 | tee -a "$LOG"; }
sudo cp assets/hyprland.desktop "$wayland_sessions_dir/" 2>&1 | tee -a "$LOG"
[ ! -d "$wayland_sessions_dir" ] && {
printf "$CAT - $wayland_sessions_dir not found, creating...\n"
sudo mkdir "$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}"
printf "\n%.0s" {1..2}
# Check if /usr/share/sddm/themes/simple-sddm exists and remove if it does
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

114
install-scripts/sddm_theme.sh Executable file
View File

@@ -0,0 +1,114 @@
#!/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"
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}

View File

@@ -0,0 +1,156 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Temperature Monitor - CPU/GPU Temperature Alerts #
temp=(
lm_sensors
libnotify
)
## 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)_temp-monitor.log"
# Temperature Monitor
printf "${NOTE} Installing ${SKY_BLUE}Temperature Monitor${RESET} Packages...\n"
for TEMP in "${temp[@]}"; do
install_package "$TEMP" "$LOG"
done
# Detect sensors
printf "${NOTE} Detecting ${YELLOW}hardware sensors${RESET}...\n"
sudo sensors-detect --auto 2>&1 | tee -a "$LOG"
# Create temperature monitoring script
printf "${NOTE} Creating ${YELLOW}temperature monitoring${RESET} script...\n"
TEMP_SCRIPT="$HOME/.config/hypr/scripts/temp-monitor.sh"
mkdir -p "$HOME/.config/hypr/scripts"
cat > "$TEMP_SCRIPT" << 'EOF'
#!/bin/bash
# Temperature Monitoring Script
# Monitors CPU and GPU temperatures and sends alerts
# Configuration
CPU_TEMP_WARNING=75
CPU_TEMP_CRITICAL=85
GPU_TEMP_WARNING=75
GPU_TEMP_CRITICAL=85
CHECK_INTERVAL=30 # Check every 30 seconds
# Track notification state
NOTIFIED_CPU_WARN=false
NOTIFIED_CPU_CRIT=false
NOTIFIED_GPU_WARN=false
NOTIFIED_GPU_CRIT=false
while true; do
# Get CPU temperature (average of all cores)
CPU_TEMP=$(sensors | grep -i 'Package id 0:\|Tdie:' | awk '{print $4}' | sed 's/+//;s/°C//' | head -1)
# If Package id not found, try other methods
if [ -z "$CPU_TEMP" ]; then
CPU_TEMP=$(sensors | grep -i 'Core 0:' | awk '{print $3}' | sed 's/+//;s/°C//' | head -1)
fi
# Get GPU temperature (if available)
GPU_TEMP=$(sensors | grep -i 'edge:\|temp1:' | awk '{print $2}' | sed 's/+//;s/°C//' | head -1)
# Check CPU temperature
if [ -n "$CPU_TEMP" ]; then
CPU_TEMP_INT=${CPU_TEMP%.*}
if [ "$CPU_TEMP_INT" -ge "$CPU_TEMP_CRITICAL" ]; then
if [ "$NOTIFIED_CPU_CRIT" = false ]; then
notify-send -u critical -i temperature-high "Critical CPU Temperature" "CPU temperature is ${CPU_TEMP}°C! System may throttle or shutdown."
NOTIFIED_CPU_CRIT=true
NOTIFIED_CPU_WARN=true
fi
elif [ "$CPU_TEMP_INT" -ge "$CPU_TEMP_WARNING" ]; then
if [ "$NOTIFIED_CPU_WARN" = false ]; then
notify-send -u normal -i temperature-normal "High CPU Temperature" "CPU temperature is ${CPU_TEMP}°C"
NOTIFIED_CPU_WARN=true
fi
else
NOTIFIED_CPU_WARN=false
NOTIFIED_CPU_CRIT=false
fi
fi
# Check GPU temperature
if [ -n "$GPU_TEMP" ]; then
GPU_TEMP_INT=${GPU_TEMP%.*}
if [ "$GPU_TEMP_INT" -ge "$GPU_TEMP_CRITICAL" ]; then
if [ "$NOTIFIED_GPU_CRIT" = false ]; then
notify-send -u critical -i temperature-high "Critical GPU Temperature" "GPU temperature is ${GPU_TEMP}°C!"
NOTIFIED_GPU_CRIT=true
NOTIFIED_GPU_WARN=true
fi
elif [ "$GPU_TEMP_INT" -ge "$GPU_TEMP_WARNING" ]; then
if [ "$NOTIFIED_GPU_WARN" = false ]; then
notify-send -u normal -i temperature-normal "High GPU Temperature" "GPU temperature is ${GPU_TEMP}°C"
NOTIFIED_GPU_WARN=true
fi
else
NOTIFIED_GPU_WARN=false
NOTIFIED_GPU_CRIT=false
fi
fi
sleep "$CHECK_INTERVAL"
done
EOF
chmod +x "$TEMP_SCRIPT"
printf "${OK} Temperature monitoring script created at ${YELLOW}$TEMP_SCRIPT${RESET}\n"
# Create systemd user service
printf "${NOTE} Creating ${YELLOW}systemd user service${RESET} for temperature monitoring...\n"
SYSTEMD_DIR="$HOME/.config/systemd/user"
mkdir -p "$SYSTEMD_DIR"
cat > "$SYSTEMD_DIR/temp-monitor.service" << EOF
[Unit]
Description=Temperature Monitor
After=graphical-session.target
[Service]
Type=simple
ExecStart=$TEMP_SCRIPT
Restart=on-failure
RestartSec=10
[Install]
WantedBy=default.target
EOF
printf "${OK} Systemd service created\n"
# Enable and start the service
printf "${NOTE} Enabling and starting ${YELLOW}temp-monitor${RESET} service...\n"
systemctl --user daemon-reload
systemctl --user enable temp-monitor.service 2>&1 | tee -a "$LOG"
systemctl --user start temp-monitor.service 2>&1 | tee -a "$LOG"
printf "${OK} Temperature monitor service is now running!\n"
printf "${INFO} You can check status with: ${YELLOW}systemctl --user status temp-monitor${RESET}\n"
printf "${INFO} View temperatures: ${YELLOW}sensors${RESET}\n"
printf "\n%.0s" {1..2}

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

@@ -1,4 +1,6 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Thunar #
thunar=(
thunar
@@ -6,76 +8,43 @@ thunar-volman
tumbler
ffmpegthumbnailer
thunar-archive-plugin
xarchiver
)
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
# 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 )"
# Change the working directory to the parent directory of the script
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
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)_thunar.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
# 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
fi
}
# Bluetooth
printf "${NOTE} Installing Thunar Packages...\n"
# Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_thunar.log"
# Thunar
printf "${INFO} Installing ${SKY_BLUE}Thunar${RESET} Packages...\n"
for THUNAR in "${thunar[@]}"; do
install_package "$THUNAR" 2>&1 | tee -a "$LOG"
[ $? -ne 0 ] && { echo -e "\e[1A\e[K${ERROR} - $THUNAR install had failed, please check the install.log"; exit 1; }
install_package "$THUNAR" "$LOG"
done
# Check for existing config folders and backup
for DIR1 in Thunar xfce4; do
printf "\n%.0s" {1..1}
# Check for existing configs and copy if does not exist
for DIR1 in gtk-3.0 Thunar xfce4; do
DIRPATH=~/.config/$DIR1
if [ -d "$DIRPATH" ]; then
echo -e "${NOTE} Config for $DIR1 found, backing up."
mv $DIRPATH $DIRPATH-back-up 2>&1 | tee -a "$LOG"
echo -e "${NOTE} Backed up $DIR1 to $DIRPATH-back-up."
echo -e "${NOTE} Config for ${MAGENTA}$DIR1${RESET} found, no need to copy." 2>&1 | tee -a "$LOG"
else
echo -e "${NOTE} Config for ${YELLOW}$DIR1${RESET} not found, copying from assets." 2>&1 | tee -a "$LOG"
cp -r assets/$DIR1 ~/.config/ && echo "${OK} Copy $DIR1 completed!" || echo "${ERROR} Failed to copy $DIR1 config files." 2>&1 | tee -a "$LOG"
fi
done
# copying from assets
cp -r assets/xfce4 ~/.config/ && echo "Copy xfce4 completed!" || echo "Error: Failed to copy xfce4 config files." 2>&1 | tee -a "$LOG"
cp -r assets/Thunar ~/.config/ && echo "Copy Thunar completed!" || echo "Error: Failed to copy Thunar config files." 2>&1 | tee -a "$LOG"
clear
printf "\n%.0s" {1..2}

View File

@@ -0,0 +1,30 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Thunar-default #
## 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)_thunar-default.log"
printf "${INFO} Setting ${SKY_BLUE}Thunar${RESET} as default file manager...\n"
xdg-mime default thunar.desktop inode/directory
xdg-mime default thunar.desktop application/x-wayland-gnome-saved-search
echo "${OK} ${MAGENTA}Thunar${RESET} is now set as the default file manager." | tee -a "$LOG"
printf "\n%.0s" {1..2}

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

@@ -1,84 +1,34 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# XDG-Desktop-Portals hyprland #
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
xdg=(
xdg-desktop-portal-hyprland
xdg-desktop-portal-gtk
umockdev
)
## 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 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)_xdph.log"
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
exit 1
fi
fi
}
LOG="Install-Logs/install-$(date +%d-%H%M%S)_xdph.log"
# XDG-DESKTOP-PORTAL-HYPRLAND
for xdph in xdg-desktop-portal-hyprland; do
install_package "$xdph" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then
echo -e "\e[1A\e[K${ERROR} - $xdph install had failed, please check the install.log"
exit 1
fi
printf "${NOTE} Installing ${SKY_BLUE}xdg-desktop-portal-hyprland${RESET}\n"
for xdgs in "${xdg[@]}"; do
install_package "$xdgs" "$LOG"
done
printf "${NOTE} Checking for other XDG-Desktop-Portal-Implementations....\n"
sleep 1
printf "\n"
printf "${NOTE} XDG-desktop-portal-KDE (if installed) should be manually disabled or removed! I can't remove it... sorry...\n"
read -rp "${CAT} Would you like to try to remove other XDG-Desktop-Portal-Implementations? (y/n) " XDPH1
echo
sleep 1
if [[ $XDPH1 =~ ^[Yy]$ ]]; then
# Clean out other portals
printf "${NOTE} Clearing any other xdg-desktop-portal implementations...\n"
# Check if packages are installed and uninstall if present
if pacman -Qs xdg-desktop-portal-gnome > /dev/null ; then
echo "Removing xdg-desktop-portal-gnome..."
sudo pacman -R --noconfirm xdg-desktop-portal-gnome 2>&1 | tee -a $LOG
fi
if pacman -Qs xdg-desktop-portal-gtk > /dev/null ; then
echo "Removing xdg-desktop-portal-gtk..."
sudo pacman -R --noconfirm xdg-desktop-portal-gtk 2>&1 | tee -a $LOG
fi
if pacman -Qs xdg-desktop-portal-wlr > /dev/null ; then
echo "Removing xdg-desktop-portal-wlr..."
sudo pacman -R --noconfirm xdg-desktop-portal-wlr 2>&1 | tee -a $LOG
fi
if pacman -Qs xdg-desktop-portal-lxqt > /dev/null ; then
echo "Removing xdg-desktop-portal-lxqt..."
sudo pacman -R --noconfirm xdg-desktop-portal-lxqt 2>&1 | tee -a $LOG
fi
fi
clear
printf "\n%.0s" {1..2}

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

@@ -1,32 +1,53 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Yay AUR Helper #
# NOTE: If paru is already installed, yay will not be installed #
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
pkg="yay-bin"
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_yay.log"
# Set some colors for output messages
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)"
INFO="$(tput setaf 4)[INFO]$(tput sgr0)"
WARN="$(tput setaf 1)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(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)"
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_yay.log"
# Create Directory for Install Logs
if [ ! -d Install-Logs ]; then
mkdir Install-Logs
fi
# Check for AUR helper and install if not found
ISAUR=$(command -v yay || command -v paru)
if [ -n "$ISAUR" ]; then
printf "\n%s - AUR helper yay was located, moving on.\n" "${OK}"
printf "\n%s - ${SKY_BLUE}AUR helper${RESET} already installed, moving on.\n" "${OK}"
else
printf "\n%s - AUR helper was NOT located\n" "$WARN"
printf "\n%s - Installing yay from AUR\n" "${NOTE}"
git clone https://aur.archlinux.org/yay-bin.git || { printf "%s - Failed to clone yay from AUR\n" "${ERROR}"; exit 1; }
cd yay-bin || { printf "%s - Failed to enter yay-bin directory\n" "${ERROR}"; exit 1; }
makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install yay from AUR\n" "${ERROR}"; exit 1; }
printf "\n%s - Installing ${SKY_BLUE}$pkg${RESET} from AUR\n" "${NOTE}"
# Check if directory exists and remove it
if [ -d "$pkg" ]; then
rm -rf "$pkg"
fi
git clone https://aur.archlinux.org/$pkg.git || { printf "%s - Failed to clone ${YELLOW}$pkg${RESET} from AUR\n" "${ERROR}"; exit 1; }
cd $pkg || { printf "%s - Failed to enter $pkg directory\n" "${ERROR}"; exit 1; }
makepkg -si --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to install ${YELLOW}$pkg${RESET} from AUR\n" "${ERROR}"; exit 1; }
# moving install logs in to Install-Logs directory
mv install*.log ../Install-Logs/ || true
cd ..
fi
# Update system before proceeding
@@ -35,4 +56,4 @@ ISAUR=$(command -v yay || command -v paru)
$ISAUR -Syu --noconfirm 2>&1 | tee -a "$LOG" || { printf "%s - Failed to update system\n" "${ERROR}"; exit 1; }
clear
printf "\n%.0s" {1..2}

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

@@ -1,112 +1,112 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# zsh and oh my zsh#
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
zsh_pkg=(
lsd
mercurial
zsh
zsh-completions
)
# 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)
zsh_pkg2=(
fzf
)
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S)_zsh.log"
############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont know what you are doing! ######################################
# 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 )"
# Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || exit 1
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
ISAUR=$(command -v yay || command -v paru)
# Set the script to exit on error
set -e
# Function for installing packages
install_package() {
# Checking if package is already installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "${OK} $1 is already installed. Skipping..."
else
# Package not installed
echo -e "${NOTE} Installing $1 ..."
$ISAUR -S --noconfirm "$1" 2>&1 | tee -a "$LOG"
# Making sure package is installed
if $ISAUR -Q "$1" &>> /dev/null ; then
echo -e "\e[1A\e[K${OK} $1 was installed."
else
# Something is missing, exiting to review log
echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry I have tried :("
# 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
fi
}
# Check if the oh-my-zsh directory exists
if [ -d "$HOME/.oh-my-zsh" ]; then
printf "${NOTE} Oh My Zsh found. Creating a backup before uninstalling...${RESET}\n"
# Perform backup using cp -r and create a backup directory with -backup suffix
cp -r "$HOME/.oh-my-zsh" "$HOME/.oh-my-zsh-backup" || true
mv "$HOME/.zshrc" "$HOME/.zshrc-backup" || true
printf "${NOTE} Backup created....${RESET}\n"
fi
# Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_zsh.log"
# Installing zsh packages
printf "${NOTE} Installing core zsh packages...${RESET}\n"
for ZSH in zsh zsh-completions pokemon-colorscripts-git; do
install_package "$ZSH" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then
echo -e "\e[1A\e[K${ERROR} - $ZSH install had failed, please check the install.log"
fi
# Installing core zsh packages
printf "\n%s - Installing ${SKY_BLUE}zsh packages${RESET} .... \n" "${NOTE}"
for ZSH in "${zsh_pkg[@]}"; do
install_package "$ZSH" "$LOG"
done
# Check if the zsh-completions directory exists
if [ -d "zsh-completions" ]; then
rm -rf zsh-completions
fi
# Install Oh My Zsh, plugins, and set zsh as default shell
if command -v zsh >/dev/null; then
printf "${NOTE} Installing Oh My Zsh and plugins...\n"
printf "${NOTE} Installing ${SKY_BLUE}Oh My Zsh and plugins${RESET} ...\n"
if [ ! -d "$HOME/.oh-my-zsh" ]; then
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended || true
sh -c "$(curl -fsSL https://install.ohmyz.sh)" "" --unattended
else
echo "Directory .oh-my-zsh already exists. Skipping re-installation."
echo "${INFO} Directory .oh-my-zsh already exists. Skipping re-installation." 2>&1 | tee -a "$LOG"
fi
# Check if the directories exist before cloning the repositories
if [ ! -d "$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions" ]; then
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions || true
if [ ! -d "$HOME/.oh-my-zsh/custom/plugins/zsh-autosuggestions" ]; then
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
else
echo "Directory zsh-autosuggestions already exists. Skipping cloning."
echo "${INFO} Directory zsh-autosuggestions already exists. Cloning Skipped." 2>&1 | tee -a "$LOG"
fi
if [ ! -d "$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting" ]; then
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting || true
if [ ! -d "$HOME/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting" ]; then
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
else
echo "Directory zsh-syntax-highlighting already exists. Skipping cloning."
echo "${INFO} Directory zsh-syntax-highlighting already exists. Cloning Skipped." 2>&1 | tee -a "$LOG"
fi
# Check if ~/.zshrc and .zprofile exists, create a backup, and copy the new configuration
if [ -f "$HOME/.zshrc" ]; then
cp -b "$HOME/.zshrc" "$HOME/.zshrc-backup" || true
fi
if [ -f "$HOME/.zprofile" ]; then
cp -b "$HOME/.zprofile" "$HOME/.zprofile-backup" || true
fi
# Copying the preconfigured zsh themes and profile
cp -r 'assets/.zshrc' ~/
cp -r 'assets/.zprofile' ~/
printf "${NOTE} Changing default shell to zsh...\n"
# Check if the current shell is zsh
current_shell=$(basename "$SHELL")
if [ "$current_shell" != "zsh" ]; then
printf "${NOTE} Changing default shell to ${MAGENTA}zsh${RESET}..."
printf "\n%.0s" {1..2}
while ! chsh -s $(which zsh); do
echo "${ERROR} Authentication failed. Please enter the correct password."
# Loop to ensure the chsh command succeeds
while ! chsh -s "$(command -v zsh)"; do
echo "${ERROR} Authentication failed. Please enter the correct password." 2>&1 | tee -a "$LOG"
sleep 1
done
printf "${NOTE} Shell changed successfully to zsh.\n" 2>&1 | tee -a "$LOG"
printf "${INFO} Shell changed successfully to ${MAGENTA}zsh${RESET}" 2>&1 | tee -a "$LOG"
else
echo "${NOTE} Your shell is already set to ${MAGENTA}zsh${RESET}."
fi
fi
printf "\n\n\n\n"
# Installing core zsh packages
printf "\n%s - Installing ${SKY_BLUE}fzf${RESET} .... \n" "${NOTE}"
for ZSH2 in "${zsh_pkg2[@]}"; do
install_package "$ZSH2" "$LOG"
done
clear
# copy additional oh-my-zsh themes from assets
if [ -d "$HOME/.oh-my-zsh/themes" ]; then
cp -r assets/add_zsh_theme/* ~/.oh-my-zsh/themes >> "$LOG" 2>&1
fi
printf "\n%.0s" {1..2}

40
install-scripts/zsh_pokemon.sh Executable file
View File

@@ -0,0 +1,40 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# pokemon-color-scripts#
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
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)_zsh_pokemon.log"
printf "${NOTE} Removing any traces of ${SKY_BLUE}Pokemon Color Scripts${RESET}\n"
# Install Pokemon Color Scripts
printf "${NOTE} Installing ${SKY_BLUE}Pokemon Color Scripts${RESET}\n"
for pok in "pokemon-colorscripts-git"; do
install_package_f "$pok" "$LOG"
done
printf "\n%.0s" {1..1}
# Check if ~/.zshrc exists
if [ -f "$HOME/.zshrc" ]; then
sed -i 's|^#pokemon-colorscripts --no-title -s -r \| fastfetch -c \$HOME/.config/fastfetch/config-pokemon.jsonc --logo-type file-raw --logo-height 10 --logo-width 5 --logo -|pokemon-colorscripts --no-title -s -r \| fastfetch -c \$HOME/.config/fastfetch/config-pokemon.jsonc --logo-type file-raw --logo-height 10 --logo-width 5 --logo -|' "$HOME/.zshrc" >> "$LOG" 2>&1
sed -i "s|^fastfetch -c \$HOME/.config/fastfetch/config-compact.jsonc|#fastfetch -c \$HOME/.config/fastfetch/config-compact.jsonc|" "$HOME/.zshrc" >> "$LOG" 2>&1
else
echo "$HOME/.zshrc not found. Cant enable ${YELLOW}Pokemon color scripts${RESET}" >> "$LOG" 2>&1
fi
printf "\n%.0s" {1..2}

593
install.sh Normal file → Executable file
View File

@@ -1,101 +1,109 @@
#!/bin/bash
# https://github.com/JaKooLit
# Check if running as root. If root, script will exit
if [[ $EUID -eq 0 ]]; then
echo "This script should not be executed as root! Exiting......."
exit 1
fi
clear
printf "\n%.0s" {1..3}
echo " | _. |/ _ _ | o _|_ "
echo " \_| (_| o |\ (_) (_) |_ | |_ "
printf "\n%.0s" {1..2}
# Welcome message
echo "$(tput setaf 6)Welcome to JaKooLit's Arch-Hyprland Install Script!$(tput sgr0)"
echo
echo "$(tput setaf 166)ATTENTION: Run a full system update and Reboot first!! (Highly Recommended) $(tput sgr0)"
echo
echo "$(tput setaf 3)NOTE: You will be required to answer some questions during the installation! $(tput sgr0)"
echo
echo "$(tput setaf 3)NOTE: If you are installing on a VM, ensure to enable 3D acceleration else Hyprland wont start! $(tput sgr0)"
echo
read -p "$(tput setaf 6)Would you like to proceed? (y/n): $(tput sgr0)" proceed
if [ "$proceed" != "y" ]; then
echo "Installation aborted."
exit 1
fi
# 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)"
INFO="$(tput setaf 4)[INFO]$(tput sgr0)"
WARN="$(tput setaf 1)[WARN]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
ORANGE=$(tput setaf 166)
YELLOW=$(tput setaf 3)
RESET=$(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)"
# Function to colorize prompts
colorize_prompt() {
local color="$1"
local message="$2"
echo -n "${color}${message}$(tput sgr0)"
}
# Create Directory for Install Logs
if [ ! -d Install-Logs ]; then
mkdir Install-Logs
fi
# Set the name of the log file to include the current date and time
LOG="install-$(date +%d-%H%M%S).log"
LOG="Install-Logs/01-Hyprland-Install-Scripts-$(date +%d-%H%M%S).log"
# Initialize variables to store user responses
aur_helper=""
bluetooth=""
dots=""
gtk_themes=""
nvidia=""
rog=""
sddm=""
thunar=""
xdph=""
zsh=""
# Check if running as root. If root, script will exit
if [[ $EUID -eq 0 ]]; then
echo "${ERROR} This script should ${WARNING}NOT${RESET} be executed as root!! Exiting......." | tee -a "$LOG"
printf "\n%.0s" {1..2}
exit 1
fi
# Define the directory where your scripts are located
# Check if PulseAudio package is installed
if pacman -Qq | grep -qw '^pulseaudio$'; then
echo "$ERROR PulseAudio is detected as installed. Uninstall it first or edit install.sh on line 211 (execute_script 'pipewire.sh')." | tee -a "$LOG"
printf "\n%.0s" {1..2}
exit 1
fi
# Check if base-devel is installed
if pacman -Q base-devel &> /dev/null; then
echo "base-devel is already installed."
else
echo "$NOTE Install base-devel.........."
if sudo pacman -S --noconfirm base-devel; then
echo "👌 ${OK} base-devel has been installed successfully." | tee -a "$LOG"
else
echo "$ERROR base-devel not found nor cannot be installed." | tee -a "$LOG"
echo "$ACTION Please install base-devel manually before running this script... Exiting" | tee -a "$LOG"
exit 1
fi
fi
# install whiptails if detected not installed. Necessary for this version
if ! command -v whiptail >/dev/null; then
echo "${NOTE} - whiptail is not installed. Installing..." | tee -a "$LOG"
sudo pacman -S --noconfirm libnewt
printf "\n%.0s" {1..1}
fi
clear
printf "\n%.0s" {1..2}
echo -e "\e[35m
╦╔═┌─┐┌─┐╦ ╦ ╦┬ ┬┌─┐┬─┐┬ ┌─┐┌┐┌┌┬┐
╠╩╗│ ││ │║ ╠═╣└┬┘├─┘├┬┘│ ├─┤│││ ││ 2025
╩ ╩└─┘└─┘╩═╝ ╩ ╩ ┴ ┴ ┴└─┴─┘┴ ┴┘└┘─┴┘ Arch Linux
\e[0m"
printf "\n%.0s" {1..1}
# Welcome message using whiptail (for displaying information)
whiptail --title "KooL Arch-Hyprland (2025) Install Script" \
--msgbox "Welcome to KooL Arch-Hyprland (2025) Install Script!!!\n\n\
ATTENTION: Run a full system update and Reboot first !!! (Highly Recommended)\n\n\
NOTE: If you are installing on a VM, ensure to enable 3D acceleration else Hyprland may NOT start!" \
15 80
# Ask if the user wants to proceed
if ! whiptail --title "Proceed with Installation?" \
--yesno "Would you like to proceed?" 7 50; then
echo -e "\n"
echo "${INFO} You 🫵 chose ${YELLOW}NOT${RESET} to proceed. ${YELLOW}Exiting...${RESET}" | tee -a "$LOG"
echo -e "\n"
exit 1
fi
echo "👌 ${OK} 🇵🇭 ${MAGENTA}KooL..${RESET} ${SKY_BLUE}lets continue with the installation...${RESET}" | tee -a "$LOG"
sleep 1
printf "\n%.0s" {1..1}
# install pciutils if detected not installed. Necessary for detecting GPU
if ! pacman -Qs pciutils > /dev/null; then
echo "${NOTE} - pciutils is not installed. Installing..." | tee -a "$LOG"
sudo pacman -S --noconfirm pciutils
printf "\n%.0s" {1..1}
fi
# Path to the install-scripts directory
script_directory=install-scripts
# Function to ask a yes/no question and set the response in a variable
ask_yes_no() {
while true; do
read -p "$(colorize_prompt "$CAT" "$1 (y/n): ")" choice
case "$choice" in
[Yy]* ) eval "$2='Y'"; return 0;;
[Nn]* ) eval "$2='N'"; return 1;;
* ) echo "Please answer with y or n.";;
esac
done
}
# Function to ask a custom question with specific options and set the response in a variable
ask_custom_option() {
local prompt="$1"
local valid_options="$2"
local response_var="$3"
while true; do
read -p "$(colorize_prompt "$CAT" "$prompt ($valid_options): ")" choice
if [[ " $valid_options " == *" $choice "* ]]; then
eval "$response_var='$choice'"
return 0
else
echo "Please choose one of the provided options: $valid_options"
fi
done
}
# Function to execute a script if it exists and make it executable
execute_script() {
local script="$1"
@@ -103,7 +111,7 @@ execute_script() {
if [ -f "$script_path" ]; then
chmod +x "$script_path"
if [ -x "$script_path" ]; then
"$script_path"
env "$script_path"
else
echo "Failed to make script '$script' executable."
fi
@@ -112,106 +120,387 @@ execute_script() {
fi
}
# Collect user responses to all questions
printf "\n"
ask_custom_option "-Type AUR helper" "paru or yay" aur_helper
printf "\n"
ask_yes_no "-Do you have nvidia gpu?" nvidia
printf "\n"
ask_yes_no "-Install GTK themes (required for Dark/Light function)?" gtk_themes
printf "\n"
ask_yes_no "-Do you want to configure Bluetooth?" bluetooth
printf "\n"
ask_yes_no "-Do you want to install Thunar file manager?" thunar
printf "\n"
ask_yes_no "-Installing in Asus ROG Laptops?" rog
printf "\n"
ask_yes_no "-Install and configure SDDM log-in Manager?" sddm
printf "\n"
ask_yes_no "-Install XDG-DESKTOP-PORTAL-HYPRLAND? (For proper Screen Share ie OBS)" xdph
printf "\n"
ask_yes_no "-Install zsh, oh-my-zsh & pokemon-colorscripts?" zsh
printf "\n"
ask_yes_no "-Do you want to copy Hyprland dotfiles?" dots
printf "\n"
# Ensuring all in the scripts folder are made executable
chmod +x install-scripts/*
# Execute AUR helper script based on user choice
## Default values for the options (will be overwritten by preset file if available)
gtk_themes="OFF"
bluetooth="OFF"
thunar="OFF"
quickshell="OFF"
sddm="OFF"
sddm_theme="OFF"
xdph="OFF"
zsh="OFF"
pokemon="OFF"
rog="OFF"
dots="OFF"
input_group="OFF"
nvidia="OFF"
nouveau="OFF"
# Function to load preset file
load_preset() {
if [ -f "$1" ]; then
echo "✅ Loading preset: $1"
source "$1"
else
echo "⚠️ Preset file not found: $1. Using default values."
fi
}
# Check if --preset argument is passed
if [[ "$1" == "--preset" && -n "$2" ]]; then
load_preset "$2"
fi
# Check if yay or paru is installed
echo "${INFO} - Checking if yay or paru is installed"
if ! command -v yay &>/dev/null && ! command -v paru &>/dev/null; then
echo "${CAT} - Neither yay nor paru found. Asking 🗣️ USER to select..."
while true; do
aur_helper=$(whiptail --title "Neither Yay nor Paru is installed" --checklist "Neither Yay nor Paru is installed. Choose one AUR.\n\nNOTE: Select only 1 AUR helper!\nINFO: spacebar to select" 12 60 2 \
"yay" "AUR Helper yay" "OFF" \
"paru" "AUR Helper paru" "OFF" \
3>&1 1>&2 2>&3)
if [ $? -ne 0 ]; then
echo "${INFO} You cancelled the selection. ${YELLOW}Goodbye!${RESET}" | tee -a "$LOG"
exit 0
fi
if [ -z "$aur_helper" ]; then
whiptail --title "Error" --msgbox "You must select at least one AUR helper to proceed." 10 60 2
continue
fi
echo "${INFO} - You selected: $aur_helper as your AUR helper" | tee -a "$LOG"
aur_helper=$(echo "$aur_helper" | tr -d '"')
# Check if multiple helpers were selected
if [[ $(echo "$aur_helper" | wc -w) -ne 1 ]]; then
whiptail --title "Error" --msgbox "You must select exactly one AUR helper." 10 60 2
continue
else
break
fi
done
else
echo "${NOTE} - AUR helper is already installed. Skipping AUR helper selection."
fi
# List of services to check for active login managers
services=("gdm.service" "gdm3.service" "lightdm.service" "lxdm.service")
# Function to check if any login services are active
check_services_running() {
active_services=() # Array to store active services
for svc in "${services[@]}"; do
if systemctl is-active --quiet "$svc"; then
active_services+=("$svc")
fi
done
if [ ${#active_services[@]} -gt 0 ]; then
return 0
else
return 1
fi
}
if check_services_running; then
active_list=$(printf "%s\n" "${active_services[@]}")
# Display the active login manager(s) in the whiptail message box
whiptail --title "Active non-SDDM login manager(s) detected" \
--msgbox "The following login manager(s) are active:\n\n$active_list\n\nIf you want to install SDDM and SDDM theme, stop and disable the active services above, reboot before running this script\n\nYour option to install SDDM and SDDM theme has now been removed\n\n- Ja " 23 80
fi
# Check if NVIDIA GPU is detected
nvidia_detected=false
if lspci | grep -i "nvidia" &> /dev/null; then
nvidia_detected=true
whiptail --title "NVIDIA GPU Detected" --msgbox "NVIDIA GPU detected in your system.\n\nNOTE: The script will install nvidia-dkms, nvidia-utils, and nvidia-settings if you chose to configure." 12 60
fi
# Initialize the options array for whiptail checklist
options_command=(
whiptail --title "Select Options" --checklist "Choose options to install or configure\nNOTE: 'SPACEBAR' to select & 'TAB' key to change selection" 28 85 20
)
# Add NVIDIA options if detected
if [ "$nvidia_detected" == "true" ]; then
options_command+=(
"nvidia" "Do you want script to configure NVIDIA GPU?" "OFF"
"nouveau" "Do you want Nouveau to be blacklisted?" "OFF"
)
fi
# Add 'input_group' option if user is not in input group
input_group_detected=false
if ! groups "$(whoami)" | grep -q '\binput\b'; then
input_group_detected=true
whiptail --title "Input Group" --msgbox "You are not currently in the input group.\n\nAdding you to the input group might be necessary for the Waybar keyboard-state functionality." 12 60
fi
# Add 'input_group' option if necessary
if [ "$input_group_detected" == "true" ]; then
options_command+=(
"input_group" "Add your USER to input group for some waybar functionality?" "OFF"
)
fi
# Conditionally add SDDM and SDDM theme options if no active login manager is found
if ! check_services_running; then
options_command+=(
"sddm" "Install & configure SDDM login manager?" "OFF"
"sddm_theme" "Download & Install Additional SDDM theme?" "OFF"
)
fi
# Add the remaining static options
options_command+=(
"gtk_themes" "Install GTK themes? (required for Dark/Light function)" "OFF"
"bluetooth" "Do you want script to configure Bluetooth?" "OFF"
"thunar" "Do you want Thunar file manager to be installed?" "OFF"
"quickshell" "Install quickshell for Desktop-Like Overview?" "OFF"
"xdph" "Install XDG-DESKTOP-PORTAL-HYPRLAND (for screen share)?" "OFF"
"zsh" "Install zsh shell with Oh-My-Zsh?" "OFF"
"pokemon" "Add Pokemon color scripts to your terminal?" "OFF"
"rog" "Are you installing on Asus ROG laptops?" "OFF"
"dots" "Download and install pre-configured KooL Hyprland dotfiles?" "OFF"
)
# Capture the selected options before the while loop starts
while true; do
selected_options=$("${options_command[@]}" 3>&1 1>&2 2>&3)
# Check if the user pressed Cancel (exit status 1)
if [ $? -ne 0 ]; then
echo -e "\n"
echo "${INFO} You 🫵 cancelled the selection. ${YELLOW}Goodbye!${RESET}" | tee -a "$LOG"
exit 0 # Exit the script if Cancel is pressed
fi
# If no option was selected, notify and restart the selection
if [ -z "$selected_options" ]; then
whiptail --title "Warning" --msgbox "No options were selected. Please select at least one option." 10 60
continue # Return to selection if no options selected
fi
# Strip the quotes and trim spaces if necessary (sanitize the input)
selected_options=$(echo "$selected_options" | tr -d '"' | tr -s ' ')
# Convert selected options into an array (preserving spaces in values)
IFS=' ' read -r -a options <<< "$selected_options"
# Check if the "dots" option was selected
dots_selected="OFF"
for option in "${options[@]}"; do
if [[ "$option" == "dots" ]]; then
dots_selected="ON"
break
fi
done
# If "dots" is not selected, show a note and ask the user to proceed or return to choices
if [[ "$dots_selected" == "OFF" ]]; then
# Show a note about not selecting the "dots" option
if ! whiptail --title "KooL Hyprland Dot Files" --yesno \
"You have not selected to install the pre-configured KooL Hyprland dotfiles.\n\nKindly NOTE that if you proceed without Dots, Hyprland will start with default vanilla Hyprland configuration and I won't be able to give you support.\n\nWould you like to continue install without KooL Hyprland Dots or return to choices/options?" \
--yes-button "Continue" --no-button "Return" 15 90; then
echo "🔙 Returning to options..." | tee -a "$LOG"
continue
else
# User chose to continue
echo "${INFO} ⚠️ Continuing WITHOUT the dotfiles installation..." | tee -a "$LOG"
printf "\n%.0s" {1..1}
fi
fi
# Prepare the confirmation message
confirm_message="You have selected the following options:\n\n"
for option in "${options[@]}"; do
confirm_message+=" - $option\n"
done
confirm_message+="\nAre you happy with these choices?"
# Confirmation prompt
if ! whiptail --title "Confirm Your Choices" --yesno "$(printf "%s" "$confirm_message")" 25 80; then
echo -e "\n"
echo "${SKY_BLUE}You're not 🫵 happy${RESET}. ${YELLOW}Returning to options...${RESET}" | tee -a "$LOG"
continue
fi
echo "👌 ${OK} You confirmed your choices. Proceeding with ${SKY_BLUE}KooL 🇵🇭 Hyprland Installation...${RESET}" | tee -a "$LOG"
break
done
printf "\n%.0s" {1..1}
# Ensuring base-devel is installed
execute_script "00-base.sh"
sleep 1
execute_script "pacman.sh"
sleep 1
# Execute AUR helper script after other installations if applicable
if [ "$aur_helper" == "paru" ]; then
execute_script "paru.sh"
elif [ "$aur_helper" == "yay" ]; then
execute_script "yay.sh"
fi
# Install hyprland packages
execute_script "00-hypr-pkgs.sh"
sleep 1
# Install pipewire and pipewire-audio
# Run the Hyprland related scripts
echo "${INFO} Installing ${SKY_BLUE}KooL Hyprland additional packages...${RESET}" | tee -a "$LOG"
sleep 1
execute_script "01-hypr-pkgs.sh"
echo "${INFO} Installing ${SKY_BLUE}pipewire and pipewire-audio...${RESET}" | tee -a "$LOG"
sleep 1
execute_script "pipewire.sh"
if [ "$nvidia" == "Y" ]; then
execute_script "nvidia.sh"
fi
echo "${INFO} Installing ${SKY_BLUE}necessary fonts...${RESET}" | tee -a "$LOG"
sleep 1
execute_script "fonts.sh"
if [ "$nvidia" == "N" ]; then
echo "${INFO} Installing ${SKY_BLUE}Hyprland...${RESET}"
sleep 1
execute_script "hyprland.sh"
fi
if [ "$gtk_themes" == "Y" ]; then
execute_script "gtk_themes.sh"
fi
# Clean up the selected options (remove quotes and trim spaces)
selected_options=$(echo "$selected_options" | tr -d '"' | tr -s ' ')
if [ "$bluetooth" == "Y" ]; then
execute_script "bluetooth.sh"
fi
# Convert selected options into an array (splitting by spaces)
IFS=' ' read -r -a options <<< "$selected_options"
if [ "$thunar" == "Y" ]; then
execute_script "thunar.sh"
fi
if [ "$rog" == "Y" ]; then
execute_script "rog.sh"
fi
if [ "$sddm" == "Y" ]; then
# Loop through selected options
for option in "${options[@]}"; do
case "$option" in
sddm)
if check_services_running; then
active_list=$(printf "%s\n" "${active_services[@]}")
whiptail --title "Error" --msgbox "One of the following login services is running:\n$active_list\n\nPlease stop & disable it or DO not choose SDDM." 12 60
exec "$0"
else
echo "${INFO} Installing and configuring ${SKY_BLUE}SDDM...${RESET}" | tee -a "$LOG"
execute_script "sddm.sh"
fi
if [ "$xdph" == "Y" ]; then
execute_script "xdph.sh"
fi
if [ "$zsh" == "Y" ]; then
execute_script "zsh.sh"
fi
;;
nvidia)
echo "${INFO} Configuring ${SKY_BLUE}nvidia stuff${RESET}" | tee -a "$LOG"
execute_script "nvidia.sh"
;;
nouveau)
echo "${INFO} blacklisting ${SKY_BLUE}nouveau${RESET}"
execute_script "nvidia_nouveau.sh" | tee -a "$LOG"
;;
gtk_themes)
echo "${INFO} Installing ${SKY_BLUE}GTK themes...${RESET}" | tee -a "$LOG"
execute_script "gtk_themes.sh"
;;
input_group)
echo "${INFO} Adding user into ${SKY_BLUE}input group...${RESET}" | tee -a "$LOG"
execute_script "InputGroup.sh"
;;
quickshell)
echo "${INFO} Installing ${SKY_BLUE}quickshell for Desktop Overview...${RESET}" | tee -a "$LOG"
execute_script "quickshell.sh"
;;
xdph)
echo "${INFO} Installing ${SKY_BLUE}xdg-desktop-portal-hyprland...${RESET}" | tee -a "$LOG"
execute_script "xdph.sh"
;;
bluetooth)
echo "${INFO} Configuring ${SKY_BLUE}Bluetooth...${RESET}" | tee -a "$LOG"
execute_script "bluetooth.sh"
;;
thunar)
echo "${INFO} Installing ${SKY_BLUE}Thunar file manager...${RESET}" | tee -a "$LOG"
execute_script "thunar.sh"
execute_script "thunar_default.sh"
;;
sddm_theme)
echo "${INFO} Downloading & Installing ${SKY_BLUE}Additional SDDM theme...${RESET}" | tee -a "$LOG"
execute_script "sddm_theme.sh"
;;
zsh)
echo "${INFO} Installing ${SKY_BLUE}zsh with Oh-My-Zsh...${RESET}" | tee -a "$LOG"
execute_script "zsh.sh"
;;
pokemon)
echo "${INFO} Adding ${SKY_BLUE}Pokemon color scripts to terminal...${RESET}" | tee -a "$LOG"
execute_script "zsh_pokemon.sh"
;;
rog)
echo "${INFO} Installing ${SKY_BLUE}ROG laptop packages...${RESET}" | tee -a "$LOG"
execute_script "rog.sh"
;;
dots)
echo "${INFO} Installing pre-configured ${SKY_BLUE}KooL Hyprland dotfiles...${RESET}" | tee -a "$LOG"
execute_script "dotfiles-main.sh"
;;
*)
echo "Unknown option: $option" | tee -a "$LOG"
;;
esac
done
if [ "$dots" == "Y" ]; then
execute_script "dotfiles.sh"
sleep 1
# copy fastfetch config if arch.png is not present
if [ ! -f "$HOME/.config/fastfetch/arch.png" ]; then
cp -r assets/fastfetch "$HOME/.config/"
fi
clear
printf "\n${OK} Yey! Installation Completed.\n"
printf "\n"
# final check essential packages if it is installed
execute_script "02-Final-Check.sh"
printf "\n%.0s" {1..1}
# Check if hyprland or hyprland-git is installed
if pacman -Q hyprland &> /dev/null || pacman -Q hyprland-git &> /dev/null; then
printf "\n ${OK} 👌 Hyprland is installed. However, some essential packages may not be installed. Please see above!"
printf "\n${CAT} Ignore this message if it states ${YELLOW}All essential packages${RESET} are installed as per above\n"
sleep 2
printf "\n${NOTE} You can start Hyprland by typing Hyprland (IF SDDM is not installed) (note the capital H!).\n"
printf "\n"
printf "\n${NOTE} It is highly recommended to reboot your system.\n\n"
printf "\n%.0s" {1..2}
read -rp "${CAT} Would you like to reboot now? (y/n): " HYP
printf "${SKY_BLUE}Thank you${RESET} 🫰 for using 🇵🇭 ${MAGENTA}KooL's Hyprland Dots${RESET}. ${YELLOW}Enjoy and Have a good day!${RESET}"
printf "\n%.0s" {1..2}
if [[ "$HYP" =~ ^[Yy]$ ]]; then
if [[ "$nvidia" == "Y" ]]; then
echo "${NOTE} NVIDIA GPU detected. Rebooting the system..."
printf "\n${NOTE} You can start Hyprland by typing ${SKY_BLUE}Hyprland${RESET} (IF SDDM is not installed) (note the capital H!).\n"
printf "\n${NOTE} However, it is ${YELLOW}highly recommended to reboot${RESET} your system.\n\n"
while true; do
echo -n "${CAT} Would you like to reboot now? (y/n): "
read HYP
HYP=$(echo "$HYP" | tr '[:upper:]' '[:lower:]')
if [[ "$HYP" == "y" || "$HYP" == "yes" ]]; then
echo "${INFO} Rebooting now..."
systemctl reboot
break
elif [[ "$HYP" == "n" || "$HYP" == "no" ]]; then
echo "👌 ${OK} You chose NOT to reboot"
printf "\n%.0s" {1..1}
# Check if NVIDIA GPU is present
if lspci | grep -i "nvidia" &> /dev/null; then
echo "${INFO} HOWEVER ${YELLOW}NVIDIA GPU${RESET} detected. Reminder that you must REBOOT your SYSTEM..."
printf "\n%.0s" {1..1}
fi
break
else
systemctl reboot
echo "${WARN} Invalid response. Please answer with 'y' or 'n'."
fi
done
else
# Print error message if neither package is installed
printf "\n${WARN} Hyprland is NOT installed. Please check 00_CHECK-time_installed.log and other files in the Install-Logs/ directory..."
printf "\n%.0s" {1..3}
exit 1
fi
printf "\n%.0s" {1..2}

257
uninstall.sh Executable file
View File

@@ -0,0 +1,257 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# KooL Arch-Hyprland uninstall script #
clear
# 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)"
printf "\n%.0s" {1..2}
echo -e "\e[35m
╦╔═┌─┐┌─┐╦ ╦ ╦┬ ┬┌─┐┬─┐┬ ┌─┐┌┐┌┌┬┐
╠╩╗│ ││ │║ ╠═╣└┬┘├─┘├┬┘│ ├─┤│││ ││ UNINSTALL
╩ ╩└─┘└─┘╩═╝ ╩ ╩ ┴ ┴ ┴└─┴─┘┴ ┴┘└┘─┴┘ Arch Linux
\e[0m"
printf "\n%.0s" {1..1}
# Show welcome message using whiptail with Yes/No options
whiptail --title "Arch-Hyprland KooL Dots Uninstall Script" --yesno \
"Hello! This script will uninstall KooL Hyprland packages and configs.
You can choose packages and directories you want to remove.
NOTE: This will remove configs from ~/.config
WARNING: After uninstallation, your system may become unstable.
Shall we Proceed?" 20 80
if [ $? -eq 1 ]; then
echo "$INFO uninstall process canceled."
exit 0
fi
# Function to remove selected packages
remove_packages() {
local selected_packages_file=$1
while read -r package; do
if pacman -Qi "$package" &> /dev/null; then
echo "Removing package: $package"
if ! sudo pacman -Rs --noconfirm "$package"; then
echo "$ERROR Failed to remove package: $package"
else
echo "$OK Successfully removed package: $package"
fi
else
echo "$INFO Package ${YELLOW}$package${RESET} not found. Skipping."
fi
done < "$selected_packages_file"
}
# Function to remove selected directories
remove_directories() {
local selected_dirs_file=$1
while read -r dir; do
pattern="$HOME/.config/$dir*"
# Loop through directories matching the pattern
for dir_to_remove in $pattern; do
if [ -d "$dir_to_remove" ]; then
echo "Removing directory: $dir_to_remove"
if ! rm -rf "$dir_to_remove"; then
echo "$ERROR Failed to remove directory: $dir_to_remove"
else
echo "$OK Successfully removed directory: $dir_to_remove"
fi
else
echo "$INFO Directory ${YELLOW}$dir_to_remove${RESET} not found. Skipping."
fi
done
done < "$selected_dirs_file"
}
# Define the list of packages to choose from (with options_command tags)
packages=(
"btop" "resource monitor" "off"
"brightnessctl" "brightnessctl" "off"
"cava" "Cross-platform Audio Visualizer" "off"
"cliphist" "clipboard manager" "off"
"fastfetch" "fastfetch" "off"
"ffmpegthumbnailer" "FFmpeg Thumbnailer" "off"
"grim" "screenshot tool" "off"
"imagemagick" "Image manipulation tool" "off"
"kitty" "kitty-terminal" "off"
"kvantum" "QT apps theming" "off"
"mousepad" "simple text editor" "off"
"mpv" "multi-media player" "off"
"mpv-mpris" "mpv-plugin" "off"
"network-manager-applet" "network-manager-applet" "off"
"nvtop" "gpu resource monitor" "off"
"nwg-displays" "display monitor configuration app" "off"
"nwg-look" "gtk settings app" "off"
"pamixer" "pamixer" "off"
"pokemon-colorscripts-git" "terminal colorscripts" "off"
"pavucontrol" "pavucontrol" "off"
"playerctl" "playerctl" "off"
"pyprland" "pyprland" "off"
"qalculate-gtk" "calculator - QT" "off"
"qt5ct" "qt5ct" "off"
"qt6ct" "qt6ct" "off"
"quickshell" "quickshell" "off"
"rofi-wayland" "rofi-wayland" "off"
"slurp" "screenshot tool" "off"
"swappy" "screenshot tool" "off"
"swaync" "notification agent" "off"
"swww" "wallpaper engine" "off"
"thunar" "File Manager" "off"
"thunar-archive-plugin" "Archive Plugin" "off"
"thunar-volman" "Volume Management" "off"
"tumbler" "Thumbnail Service" "off"
"wallust" "color pallete generator" "off"
"waybar" "wayland bar" "off"
"wl-clipboard" "clipboard manager" "off"
"wlogout" "logout menu" "off"
"xdg-desktop-portal-hyprland" "hyprland file picker" "off"
"yad" "dialog box" "off"
"yt-dlp" "video downloader" "off"
"xarchiver" "Archive Manager" "off"
"hypridle" "hyprland idling agent" "off"
"hyprlock" "lockscreen" "off"
"hyprpolkitagent" "hyprland polkit agent" "off"
"hyprland" "hyprland main package" "off"
)
# Define the list of directories to choose from (with options_command tags)
directories=(
"btop" "btop configuration" "off"
"cava" "cava configuration" "off"
"fastfetch" "fastfetch configuration" "off"
"hypr" "main hyprland configuration" "off"
"kitty" "kitty terminal configuration" "off"
"Kvantum" "Kvantum-manager configuration" "off"
"quickshell" "quickshell desktop overview configuration" "off"
"qt5ct" "qt5ct configuration" "off"
"qt6ct" "qt6ct configuration" "off"
"rofi" "rofi configuration" "off"
"swappy" "swappy (screenshot tool) configuration" "off"
"swaync" "swaync (notification agent) configuration" "off"
"Thunar" "Thunar file manager configuration" "off"
"wallust" "wallust (color pallete) configuration" "off"
"waybar" "waybar configuration" "off"
"wlogout" "wlogout (logout menu) configuration" "off"
)
# Loop for package selection until user selects something or cancels
while true; do
package_choices=$(whiptail --title "Select Packages to Uninstall" --checklist \
"Select the packages you want to remove\nNOTE: 'SPACEBAR' to select & 'TAB' key to change selection" 35 90 25 \
"${packages[@]}" 3>&1 1>&2 2>&3)
# Check if the user canceled the operation
if [ $? -eq 1 ]; then
echo "$INFO uninstall process canceled."
exit 0
fi
# If no packages are selected, ask again
if [[ -z "$package_choices" ]]; then
echo "$NOTE No packages selected. Please select at least one package."
else
echo "$package_choices" | tr -d '"' | tr ' ' '\n' > /tmp/selected_packages.txt
echo "Packages to remove: $package_choices"
break
fi
done
# Loop for directory selection until user selects something or cancels
while true; do
dir_choices=$(whiptail --title "Select Directories to Remove" --checklist \
"Select the directories you want to remove\nNOTE: This will remove configs from ~/.config\n\nNOTE: 'SPACEBAR' to select & 'TAB' key to change selection" 28 90 18 \
"${directories[@]}" 3>&1 1>&2 2>&3)
# Check if the user canceled the operation
if [ $? -eq 1 ]; then
echo "$INFO uninstall process canceled."
exit 0
fi
# If no directories are selected, ask again
if [[ -z "$dir_choices" ]]; then
echo "$NOTE No directories selected. Please select at least one directory."
else
# Save each selected directory to a new line in the temporary file
echo "$dir_choices" | tr -d '"' | tr ' ' '\n' > /tmp/selected_directories.txt
echo "Directories to remove: $dir_choices"
break
fi
done
# First confirmation - Warning about potential instability
if ! whiptail --title "Warning" --yesno \
"Warning: Removing these packages and directories may cause your system to become unstable and you may not be able to recover it.\n\nAre you sure you want to proceed?" \
10 80; then
echo "$INFO uninstall process canceled."
exit 0
fi
# Second confirmation - Final confirmation to proceed
if ! whiptail --title "Final Confirmation" --yesno \
"Are you absolutely sure you want to remove the selected packages and directories?\n\nWARNING! This action is irreversible." \
10 80; then
echo "$INFO uninstall process canceled."
exit 0
fi
printf "\n%.0s" {1..1}
printf "\n%s${SKY_BLUE}Attempting to remove selected packages${RESET}\n" "${NOTE}"
MAX_ATTEMPTS=2
ATTEMPT=0
while [ $ATTEMPT -lt $MAX_ATTEMPTS ]; do
# Remove packages
remove_packages /tmp/selected_packages.txt
# Check if any packages still need to be removed, retry if needed
MISSING_PACKAGE_COUNT=0
while read -r package; do
if pacman -Qi "$package" &> /dev/null; then
MISSING_PACKAGE_COUNT=$((MISSING_PACKAGE_COUNT + 1))
fi
done < /tmp/selected_packages.txt
if [ $MISSING_PACKAGE_COUNT -gt 0 ]; then
ATTEMPT=$((ATTEMPT + 1))
echo "Attempt #$ATTEMPT failed, retrying..."
else
break
fi
done
printf "\n%.0s" {1..1}
printf "\n%s${SKY_BLUE}Attempting to remove locally installed packages${RESET}\n" "${NOTE}"
for file in ags pokemon-colorscripts; do
if [ -f "/usr/local/bin/$file" ]; then
sudo rm "/usr/local/bin/$file"
echo "$file removed."
fi
done
printf "\n%.0s" {1..1}
printf "\n%s${SKY_BLUE}Attempting to remove selected directories${RESET}\n" "${NOTE}"
remove_directories /tmp/selected_directories.txt
printf "\n%.0s" {1..1}
echo -e "$MAGENTA Hyprland and related components have been uninstalled.$RESET"
echo -e "$YELLOW It is recommended to reboot your system now.$RESET"
printf "\n%.0s" {1..1}