ctrlKeys: [29, 97] // Keycodes for Ctrl keys (left and right)
+
+ onShiftModeChanged: {
+ if (shiftMode === 0) {
+
+ }
+ }
+
+ function releaseAllKeys() {
+ const keycodes = Array.from(Array(249).keys());
+ const releaseCommand = `ydotool key --key-delay 0 ${keycodes.map(keycode => `${keycode}:0`).join(" ")}`
+ Hyprland.dispatch(`exec ${releaseCommand}`)
+ root.shiftMode = 0; // Reset shift mode
+ }
+
+ function releaseShiftKeys() {
+ const releaseCommand = `ydotool key --key-delay 0 ${root.shiftKeys.map(keycode => `${keycode}:0`).join(" ")}`
+ Hyprland.dispatch(`exec ${releaseCommand}`)
+ root.shiftMode = 0; // Reset shift mode
+ }
+
+ function press(keycode) {
+ Hyprland.dispatch(`exec ydotool key --key-delay 0 ${keycode}:1`);
+ }
+
+ function release(keycode) {
+ Hyprland.dispatch(`exec ydotool key --key-delay 0 ${keycode}:0`);
+ }
+}
+
diff --git a/.config/quickshell/shell.qml b/.config/quickshell/shell.qml
new file mode 100644
index 000000000..35a5008ea
--- /dev/null
+++ b/.config/quickshell/shell.qml
@@ -0,0 +1,70 @@
+//@ pragma UseQApplication
+//@ pragma Env QS_NO_RELOAD_POPUP=1
+//@ pragma Env QT_QUICK_CONTROLS_STYLE=Basic
+
+import "./modules/common/"
+import "./modules/backgroundWidgets/"
+import "./modules/bar/"
+import "./modules/cheatsheet/"
+import "./modules/dock/"
+import "./modules/mediaControls/"
+import "./modules/notificationPopup/"
+import "./modules/onScreenDisplay/"
+import "./modules/onScreenKeyboard/"
+import "./modules/overview/"
+import "./modules/screenCorners/"
+import "./modules/session/"
+import "./modules/sidebarLeft/"
+import "./modules/sidebarRight/"
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import QtQuick.Window
+import Quickshell
+import "./services/"
+
+ShellRoot {
+ // Enable/disable modules here. False = not loaded at all, so rest assured
+ // no unnecessary stuff will take up memory if you decide to only use, say, the overview.
+ property bool enableBar: true
+ property bool enableBackgroundWidgets: true
+ property bool enableCheatsheet: true
+ property bool enableDock: false
+ property bool enableMediaControls: true
+ property bool enableNotificationPopup: true
+ property bool enableOnScreenDisplayBrightness: true
+ property bool enableOnScreenDisplayVolume: true
+ property bool enableOnScreenKeyboard: true
+ property bool enableOverview: true
+ property bool enableReloadPopup: true
+ property bool enableScreenCorners: true
+ property bool enableSession: true
+ property bool enableSidebarLeft: true
+ property bool enableSidebarRight: true
+
+ // Force initialization of some singletons
+ Component.onCompleted: {
+ MaterialThemeLoader.reapplyTheme()
+ ConfigLoader.loadConfig()
+ PersistentStateManager.loadStates()
+ Cliphist.refresh()
+ FirstRunExperience.load()
+ }
+
+ LazyLoader { active: enableBar; component: Bar {} }
+ LazyLoader { active: enableBackgroundWidgets; component: BackgroundWidgets {} }
+ LazyLoader { active: enableCheatsheet; component: Cheatsheet {} }
+ LazyLoader { active: enableDock; component: Dock {} }
+ LazyLoader { active: enableMediaControls; component: MediaControls {} }
+ LazyLoader { active: enableNotificationPopup; component: NotificationPopup {} }
+ LazyLoader { active: enableOnScreenDisplayBrightness; component: OnScreenDisplayBrightness {} }
+ LazyLoader { active: enableOnScreenDisplayVolume; component: OnScreenDisplayVolume {} }
+ LazyLoader { active: enableOnScreenKeyboard; component: OnScreenKeyboard {} }
+ LazyLoader { active: enableOverview; component: Overview {} }
+ LazyLoader { active: enableReloadPopup; component: ReloadPopup {} }
+ LazyLoader { active: enableScreenCorners; component: ScreenCorners {} }
+ LazyLoader { active: enableSession; component: Session {} }
+ LazyLoader { active: enableSidebarLeft; component: SidebarLeft {} }
+ LazyLoader { active: enableSidebarRight; component: SidebarRight {} }
+}
+
diff --git a/.config/starship.toml b/.config/starship.toml
index 751f2fd2c..5ed04489e 100644
--- a/.config/starship.toml
+++ b/.config/starship.toml
@@ -10,25 +10,25 @@ add_newline = false
# $character
# """
format = """
-$cmd_duration$directory $git_branch
+$cmd_duration $directory $git_branch
$character
"""
# Replace the "❯" symbol in the prompt with "➜"
[character] # The name of the module we are configuring is "character"
-success_symbol = "[• ](bold fg:green) "
-error_symbol = "[• ](bold fg:red) "
+success_symbol = "[ ](bold fg:blue)"
+error_symbol = "[ ](bold fg:red)"
# Disable the package module, hiding it from the prompt completely
[package]
disabled = true
[git_branch]
-style = "bg: green"
+style = "bg: cyan"
symbol = ""
-truncation_length = 4
+truncation_length = 12
truncation_symbol = ""
-format = "• [](bold fg:green)[$symbol $branch(:$remote_branch)](fg:black bg:green)[ ](bold fg:green)"
+format = " [](bold fg:cyan)[$symbol $branch(:$remote_branch)](fg:black bg:cyan)[ ](bold fg:cyan)"
[git_commit]
commit_hash_length = 4
@@ -52,7 +52,7 @@ deleted = " 🗑 "
[hostname]
ssh_only = false
-format = "[•$hostname](bg:cyan bold fg:black)[](bold fg:cyan )"
+format = "[•$hostname](bg:cyan bold fg:black)[](bold fg:cyan)"
trim_at = ".companyname.com"
disabled = false
@@ -82,8 +82,8 @@ home_symbol = " "
read_only = " "
style = "bg:green fg:black"
truncation_length = 6
-truncation_symbol = "••/"
-format = '[](bold fg:green)[$path ]($style)[](bold fg:green)'
+truncation_symbol = " ••/"
+format = '[](bold fg:green)[ $path]($style)[](bold fg:green)'
[directory.substitutions]
@@ -93,7 +93,8 @@ format = '[](bold fg:green)[$path ]($style)[](bold fg:green)'
"Music" = " "
"Pictures" = " "
"Videos" = " "
+"GitHub" = " "
[cmd_duration]
min_time = 0
-format = '[](bold fg:yellow)[ $duration](bold bg:yellow fg:black)[](bold fg:yellow) •• '
+format = '[](bold fg:yellow)[ $duration](bold bg:yellow fg:black)[](bold fg:yellow)'
diff --git a/.local/bin/rubyshot b/.local/bin/rubyshot
deleted file mode 100755
index 8431bd693..000000000
--- a/.local/bin/rubyshot
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/bash
-
-WORKSPACES="$(hyprctl monitors -j | jq -r 'map(.activeWorkspace.id)')"
-WINDOWS="$(hyprctl clients -j | jq -r --argjson workspaces "$WORKSPACES" 'map(select([.workspace.id] | inside($workspaces)))' )"
-GEOM=$(echo "$WINDOWS" | jq -r '.[] | "\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"' | slurp -f '%x %y %w %h')
-wayshot -s "$GEOM" --stdout ${#:+"$@"}
\ No newline at end of file
diff --git a/README.md b/README.md
index 2ae4c3ddb..7b8035e72 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,14 @@
+# Quickshell-powered illogical-impulse
+## Current status
+
+It's ready if you don't need localization... so quite likely
+
+## Instructions
+
+- **Installation**: Clone the repo, checkout this branch and run `install.sh`
+- **Dolphin fix** so it won't ask which program to open file with every time: `sudo pacman -S archlinux-xdg-menu && XDG_MENU_PREFIX=arch- kbuildsycoca6; sudo ln -s /etc/xdg/menus/plasma-applications.menu /etc/xdg/menus/applications.menu`
+- TODO: Update install script to include the above fix
+
【 end_4's Hyprland dotfiles 】
@@ -43,15 +54,10 @@
- **Manual** installation, other distros and more:
- See the [Wiki](https://end-4.github.io/dots-hyprland-wiki/en/i-i/01setup/)
- - (_Available in: English, Vietnamese, and Simplified Chinese. Translations are welcome._)
- - **Default keybinds**: Parts similar to Windows and GNOME. Hit Super+/ for a list.
-
- Here's an image, just in case...
-
- 
-
-
+ - **Default keybinds**: Should be somewhat familiar if you've used Windows or GNOME.
+ - For a list, hit `Super`+`/`
+ - For a terminal, hit `Super`+`Enter`
@@ -62,7 +68,7 @@
| Software | Purpose |
| ------------- | ------------- |
| [Hyprland](https://github.com/hyprwm/hyprland) | The compositor (for noobs, you can just call it a window manager) |
- | [AGS](https://github.com/Aylur/ags) | A GTK widget system, responsible for the status bar, sidebars, etc. |
+ | [Quickshell](https://quickshell.outfoxxed.me/) | A QtQuick-based widget system, responsible for the status bar, sidebars, etc. |
| [Fuzzel](https://mark.stosberg.com/fuzzel-a-great-dmenu-and-rofi-altenrative-for-wayland/) | For clipboard and emoji picker |
@@ -81,25 +87,25 @@
-## Main branch (*illogical-impulse*)
+## illogical-impulseQuickshell
-**Note**: Expect minimal maintenance for the main branch, as I'm already working on and using the new Quickshell version of illogical-impulse at the ii-qs branch. See [#1276](https://github.com/end-4/dots-hyprland/pull/1276).
+| AI | Common widgets |
+|:---|:---------------|
+|  |  |
+| Window management | Weeb power |
+|  |  |
-### AI
-
-_Sidebar offers online and offline chat. Text selection summary is offline only for privacy._
+By the way...
+- The funny notification positions are mimicking Android 16's dragging behavior
+- The clock on the wallpaper is automatically placed at the "least busy" region of the image
-### Notifications, music controls, system, calendar
-
-_On the sidebar: flicking the notification_
+## illogical-impulseAGS
-### Intuitive window management
-
-_You can also drag and drop windows across workspaces_
-
-### Power to weebs
-
-_Get yande.re and konachan images from sidebar_
+| AI | Common widgets |
+|:---|:---------------|
+|  |  |
+| Window management | Weeb power |
+|  |  |
## Unsupported stuff
@@ -134,6 +140,7 @@ _Get yande.re and konachan images from sidebar_
- [@clsty](https://github.com/clsty) for making an actually good install script + many other stuff that I neglect
- [@midn8hustlr](https://github.com/midn8hustlr) for greatly improving the color generation system
+ - Quickshell: [Soramane](https://github.com/caelestia-dots/shell/), [FridayFaerie](https://github.com/FridayFaerie/quickshell), [nydragon](https://github.com/nydragon/nysh)
- AGS: [Aylur's config](https://github.com/Aylur/dotfiles/tree/ags-pre-ts), [kotontrion's config](https://github.com/kotontrion/dotfiles)
- EWW: [fufexan's config](https://github.com/fufexan/dotfiles) (he thanks more people there btw)
- AI bots for providing useful examples
diff --git a/arch-packages/illogical-impulse-agsv1-git/.gitignore b/arch-packages/illogical-impulse-agsv1-git/.gitignore
deleted file mode 100644
index 1faa43724..000000000
--- a/arch-packages/illogical-impulse-agsv1-git/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/ii-agsv1/
-/libgnome-volume-control/
diff --git a/arch-packages/illogical-impulse-agsv1-git/PKGBUILD b/arch-packages/illogical-impulse-agsv1-git/PKGBUILD
deleted file mode 100644
index 54a28984c..000000000
--- a/arch-packages/illogical-impulse-agsv1-git/PKGBUILD
+++ /dev/null
@@ -1,45 +0,0 @@
-# Modified from AUR package "aylurs-gtk-shell-git" maintained by kotontrion
-pkgname=illogical-impulse-agsv1-git
-_pkgname=ii-agsv1
-pkgver=r4.3e8d365
-pkgrel=4
-pkgdesc="Aylurs's Gtk Shell (AGS), patched for illogical-impulse dotfiles."
-arch=('x86_64')
-url="https://github.com/end-4/ii-agsv1"
-license=('GPL-3.0-only')
-makedepends=('git' 'gobject-introspection' 'meson' 'npm' 'typescript')
-depends=('gvfs' 'gjs' 'glib2' 'glib2-devel' 'glibc' 'gtk3' 'gtk-layer-shell' 'libpulse' 'pam' 'gnome-bluetooth-3.0' 'gammastep')
-optdepends=('greetd: required for greetd service'
- 'libdbusmenu-gtk3: required for systemtray service'
- 'libsoup3: required for the Utils.fetch feature'
- 'libnotify: required for sending notifications'
- 'networkmanager: required for network service'
- 'power-profiles-daemon: required for powerprofiles service'
- 'upower: required for battery service')
-conflicts=('illogical-impulse-agsv1')
-backup=('etc/pam.d/ags')
-source=("git+${url}.git")
-sha256sums=('SKIP')
-
-pkgver(){
- cd $srcdir/$_pkgname
- printf 'r%s.%s' "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
-}
-
-prepare() {
- cd $srcdir/$_pkgname
-}
-
-build() {
- cd $srcdir/$_pkgname
- npm install
- arch-meson build --libdir "lib/$_pkgname" -Dbuild_types=true
- meson compile -C build
-}
-
-package() {
- cd $srcdir/$_pkgname
- meson install -C build --destdir "$pkgdir"
- rm ${pkgdir}/usr/bin/ags
- ln -sf /usr/share/com.github.Aylur.ags/com.github.Aylur.ags ${pkgdir}/usr/bin/agsv1
-}
diff --git a/arch-packages/illogical-impulse-audio/PKGBUILD b/arch-packages/illogical-impulse-audio/PKGBUILD
index d2d1e7889..6cab7de53 100644
--- a/arch-packages/illogical-impulse-audio/PKGBUILD
+++ b/arch-packages/illogical-impulse-audio/PKGBUILD
@@ -5,10 +5,10 @@ pkgdesc='Illogical Impulse Audio Dependencies'
arch=(any)
license=(None)
depends=(
- pavucontrol
+ cava
+ pavucontrol-qt
wireplumber
libdbusmenu-gtk3
playerctl
- swww
)
diff --git a/arch-packages/illogical-impulse-backlight/PKGBUILD b/arch-packages/illogical-impulse-backlight/PKGBUILD
index fe216262c..2525be9d4 100644
--- a/arch-packages/illogical-impulse-backlight/PKGBUILD
+++ b/arch-packages/illogical-impulse-backlight/PKGBUILD
@@ -5,6 +5,8 @@ pkgdesc='Illogical Impulse Backlight Dependencies'
arch=(any)
license=(None)
depends=(
+ gammastep
+ geoclue
brightnessctl
ddcutil
)
diff --git a/arch-packages/illogical-impulse-basic/PKGBUILD b/arch-packages/illogical-impulse-basic/PKGBUILD
index ac74a3c36..c338727f9 100644
--- a/arch-packages/illogical-impulse-basic/PKGBUILD
+++ b/arch-packages/illogical-impulse-basic/PKGBUILD
@@ -11,14 +11,10 @@ depends=(
cliphist
cmake
curl
- fuzzel
rsync
wget
ripgrep
jq
- npm
meson
- typescript
- gjs
xdg-user-dirs
)
diff --git a/arch-packages/illogical-impulse-fonts-themes/PKGBUILD b/arch-packages/illogical-impulse-fonts-themes/PKGBUILD
index 038d53c4a..ed1a95070 100644
--- a/arch-packages/illogical-impulse-fonts-themes/PKGBUILD
+++ b/arch-packages/illogical-impulse-fonts-themes/PKGBUILD
@@ -6,19 +6,17 @@ arch=(any)
license=(None)
depends=(
adw-gtk-theme-git
- qt5ct
- qt6ct
- qt5-wayland
+ breeze-plus
+ eza
+ fish
fontconfig
+ kde-material-you-colors
+ kitty
+ matugen-bin
+ starship
ttf-readex-pro
ttf-jetbrains-mono-nerd
ttf-material-symbols-variable-git
- ttf-space-mono-nerd
ttf-rubik-vf
ttf-gabarito-git
- fish
- foot
- starship
- kvantum
- kvantum-qt5
)
diff --git a/arch-packages/illogical-impulse-gnome/PKGBUILD b/arch-packages/illogical-impulse-gnome/PKGBUILD
deleted file mode 100644
index 33af4b8ba..000000000
--- a/arch-packages/illogical-impulse-gnome/PKGBUILD
+++ /dev/null
@@ -1,12 +0,0 @@
-pkgname=illogical-impulse-gnome
-pkgver=1.0
-pkgrel=2
-pkgdesc='Illogical Impulse GNOME Dependencies'
-arch=(any)
-license=(None)
-depends=(
- polkit-gnome
- gnome-keyring
- gnome-control-center
- blueberry networkmanager
-)
diff --git a/arch-packages/illogical-impulse-gtk/PKGBUILD b/arch-packages/illogical-impulse-gtk/PKGBUILD
deleted file mode 100644
index 50a57d1c8..000000000
--- a/arch-packages/illogical-impulse-gtk/PKGBUILD
+++ /dev/null
@@ -1,18 +0,0 @@
-pkgname=illogical-impulse-gtk
-pkgver=1.0
-pkgrel=1
-pkgdesc='Illogical Impulse GTK Dependencies'
-arch=(any)
-license=(None)
-depends=(
- webp-pixbuf-loader
- gtk-layer-shell
- gtk3
- gtksourceview3
- gobject-introspection
- upower
- yad
- ydotool
- xdg-user-dirs-gtk
-)
-
diff --git a/arch-packages/illogical-impulse-hyprland/PKGBUILD b/arch-packages/illogical-impulse-hyprland/PKGBUILD
index c743af7ac..93c7b5f8e 100644
--- a/arch-packages/illogical-impulse-hyprland/PKGBUILD
+++ b/arch-packages/illogical-impulse-hyprland/PKGBUILD
@@ -12,8 +12,9 @@ depends=(
hyprland-qt-support
hyprland-qtutils
hyprlock
- xdg-desktop-portal-hyprland
hyprcursor
hyprwayland-scanner
hyprland
+ xdg-desktop-portal-hyprland
+ wl-clipboard
)
diff --git a/arch-packages/illogical-impulse-kde/PKGBUILD b/arch-packages/illogical-impulse-kde/PKGBUILD
new file mode 100644
index 000000000..b8b91c3f9
--- /dev/null
+++ b/arch-packages/illogical-impulse-kde/PKGBUILD
@@ -0,0 +1,14 @@
+pkgname=illogical-impulse-kde
+pkgver=1.0
+pkgrel=2
+pkgdesc='Illogical Impulse KDE Dependencies'
+arch=(any)
+license=(None)
+depends=(
+ bluedevil
+ gnome-keyring
+ networkmanager
+ plasma-nm
+ polkit-kde-agent
+ systemsettings
+)
diff --git a/arch-packages/illogical-impulse-python/PKGBUILD b/arch-packages/illogical-impulse-python/PKGBUILD
index fc1ac1e05..d9c6caa55 100644
--- a/arch-packages/illogical-impulse-python/PKGBUILD
+++ b/arch-packages/illogical-impulse-python/PKGBUILD
@@ -13,4 +13,5 @@ depends=(
libportal-gtk4
gobject-introspection
sassc
+ python-opencv
)
diff --git a/arch-packages/illogical-impulse-screencapture/PKGBUILD b/arch-packages/illogical-impulse-screencapture/PKGBUILD
index ab5911fb9..8feb1c0d0 100644
--- a/arch-packages/illogical-impulse-screencapture/PKGBUILD
+++ b/arch-packages/illogical-impulse-screencapture/PKGBUILD
@@ -7,7 +7,7 @@ license=(None)
depends=(
swappy
wf-recorder
- grim
+ hyprshot
tesseract
tesseract-data-eng
slurp
diff --git a/arch-packages/illogical-impulse-toolkit/PKGBUILD b/arch-packages/illogical-impulse-toolkit/PKGBUILD
new file mode 100644
index 000000000..6f12584a2
--- /dev/null
+++ b/arch-packages/illogical-impulse-toolkit/PKGBUILD
@@ -0,0 +1,26 @@
+pkgname=illogical-impulse-toolkit
+pkgver=1.0
+pkgrel=1
+pkgdesc='Illogical Impulse GTK/Qt Dependencies'
+arch=(any)
+license=(None)
+depends=(
+ kdialog
+ qt6-5compat
+ qt6-base
+ qt6-declarative
+ qt6-imageformats
+ qt6-multimedia
+ qt6-positioning
+ qt6-quicktimeline
+ qt6-sensors
+ qt6-svg
+ qt6-tools
+ qt6-translations
+ qt6-virtualkeyboard
+ qt6-wayland
+ syntax-highlighting
+ upower
+ wtype
+ ydotool
+)
diff --git a/arch-packages/illogical-impulse-widgets/PKGBUILD b/arch-packages/illogical-impulse-widgets/PKGBUILD
index cdff28667..868bea9e6 100644
--- a/arch-packages/illogical-impulse-widgets/PKGBUILD
+++ b/arch-packages/illogical-impulse-widgets/PKGBUILD
@@ -5,12 +5,15 @@ pkgdesc='Illogical Impulse Widget Dependencies'
arch=(any)
license=(None)
depends=(
- dart-sass
+ fuzzel
+ glib2 # for `gsettings` it seems?
hypridle
- hyprutils
+ hyprutils
hyprlock
- wlogout
- wl-clipboard
hyprpicker
nm-connection-editor
+ quickshell
+ swww
+ translate-shell
+ wlogout
)
diff --git a/diagnose b/diagnose
index 50c2cc000..df1d0dee4 100755
--- a/diagnose
+++ b/diagnose
@@ -38,16 +38,6 @@ ii_check_venv() {
which python
deactivate
}
-ii_check_ags() {
- pkill ags
- pkill agsv1
- agsv1 > ii_ags.log 2>&1 &
- GUI_PID=$!
- sleep 10
- kill $GUI_PID
- echo "AGS log saved to \"ii_ags.log\"."
-}
-#x ii_check_ags
e "Checking git repo info"
x git remote get-url origin
@@ -57,15 +47,14 @@ e "Checking distro"
x ii_check_distro
e "Checking variables"
-x declare -p XDG_BIN_HOME # ~/.local/bin
x declare -p XDG_CACHE_HOME # ~/.cache
x declare -p XDG_CONFIG_HOME # ~/.config
x declare -p XDG_DATA_HOME # ~/.local/share
x declare -p XDG_STATE_HOME # ~/.local/state
-x declare -p ILLOGICAL_IMPULSE_VIRTUAL_ENV # $XDG_STATE_HOME/ags/.venv
+x declare -p ILLOGICAL_IMPULSE_VIRTUAL_ENV # $XDG_STATE_HOME/quickshell/.venv
e "Checking directories/files"
-x ls -l ~/.local/state/ags/.venv
+x ls -l ~/.local/state/quickshell/.venv
#x cat ~/.config/ags/
#e "Checking command existence"
@@ -77,8 +66,6 @@ commands+=(ags agsv1)
e "Checking versions"
x Hyprland --version
-x ags --version
-x agsv1 --version
e "Finished. Output saved as \"$output_file\"."
if ! command -v curl 2>&1 >>/dev/null ;then echo "\"curl\" not found, pastebin upload unavailable.";exit;fi
diff --git a/install.sh b/install.sh
index 9836bb846..5d0588810 100755
--- a/install.sh
+++ b/install.sh
@@ -15,6 +15,11 @@ prevent_sudo_or_root
startask () {
printf "\e[34m[$0]: Hi there! Before we start:\n"
+ printf '\n'
+ printf '[NEW] illogical-impulse is now powered by Quickshell. If you were using the old AGS version and would like to keep it, do not run this script.\n'
+ printf ' The AGS version, although uses less memory, has much worse performance. If you do not need (inconsistent) translations, the Quickshell version is recommended.\n'
+ printf ' If you would like it anyway, run the script in its branch instead: git checkout ii-ags && ./install.sh\n'
+ printf '\n'
printf 'This script 1. only works for ArchLinux and Arch-based distros.\n'
printf ' 2. does not handle system-level/hardware stuff like Nvidia drivers\n'
printf "\e[31m"
@@ -100,11 +105,10 @@ install-local-pkgbuild() {
}
# Install core dependencies from the meta-packages
-metapkgs=(./arch-packages/illogical-impulse-{audio,python,backlight,basic,fonts-themes,gnome,gtk,portal,screencapture,widgets})
-metapkgs+=(./arch-packages/illogical-impulse-agsv1-git)
+metapkgs=(./arch-packages/illogical-impulse-{audio,backlight,basic,fonts-themes,kde,portal,python,screencapture,toolkit,widgets})
metapkgs+=(./arch-packages/illogical-impulse-hyprland)
metapkgs+=(./arch-packages/illogical-impulse-microtex-git)
-metapkgs+=(./arch-packages/illogical-impulse-oneui4-icons-git)
+# metapkgs+=(./arch-packages/illogical-impulse-oneui4-icons-git)
[[ -f /usr/share/icons/Bibata-Modern-Classic/index.theme ]] || \
metapkgs+=(./arch-packages/illogical-impulse-bibata-modern-classic-bin)
@@ -119,24 +123,24 @@ showfun install-python-packages
v install-python-packages
## Optional dependencies
-# if pacman -Qs ^plasma-browser-integration$ ;then SKIP_PLASMAINTG=true;fi
-# case $SKIP_PLASMAINTG in
-# true) sleep 0;;
-# *)
-# if $ask;then
-# echo -e "\e[33m[$0]: NOTE: The size of \"plasma-browser-integration\" is about 250 MiB.\e[0m"
-# echo -e "\e[33mIt is needed if you want playtime of media in Firefox to be shown on the music controls widget.\e[0m"
-# echo -e "\e[33mInstall it? [y/N]\e[0m"
-# read -p "====> " p
-# else
-# p=y
-# fi
-# case $p in
-# y) x sudo pacman -S --needed --noconfirm plasma-browser-integration ;;
-# *) echo "Ok, won't install"
-# esac
-# ;;
-# esac
+if pacman -Qs ^plasma-browser-integration$ ;then SKIP_PLASMAINTG=true;fi
+case $SKIP_PLASMAINTG in
+ true) sleep 0;;
+ *)
+ if $ask;then
+ echo -e "\e[33m[$0]: NOTE: The size of \"plasma-browser-integration\" is about 600 MiB.\e[0m"
+ echo -e "\e[33mIt is needed if you want playtime of media in Firefox to be shown on the music controls widget.\e[0m"
+ echo -e "\e[33mInstall it? [y/N]\e[0m"
+ read -p "====> " p
+ else
+ p=y
+ fi
+ case $p in
+ y) x sudo pacman -S --needed --noconfirm plasma-browser-integration ;;
+ *) echo "Ok, won't install"
+ esac
+ ;;
+esac
v sudo usermod -aG video,i2c,input "$(whoami)"
v bash -c "echo i2c-dev | sudo tee /etc/modules-load.d/i2c-dev.conf"
@@ -156,11 +160,11 @@ v mkdir -p $XDG_BIN_HOME $XDG_CACHE_HOME $XDG_CONFIG_HOME $XDG_DATA_HOME
# original dotfiles and new ones in the SAME DIRECTORY
# (eg. in ~/.config/hypr) won't be mixed together
-# MISC (For .config/* but not AGS, not Fish, not Hyprland)
+# MISC (For .config/* but not fish, not Hyprland)
case $SKIP_MISCCONF in
true) sleep 0;;
*)
- for i in $(find .config/ -mindepth 1 -maxdepth 1 ! -name 'ags' ! -name 'fish' ! -name 'hypr' -exec basename {} \;); do
+ for i in $(find .config/ -mindepth 1 -maxdepth 1 ! -name 'fish' ! -name 'hypr' -exec basename {} \;); do
# i=".config/$i"
echo "[$0]: Found target: .config/$i"
if [ -d ".config/$i" ];then v rsync -av --delete ".config/$i/" "$XDG_CONFIG_HOME/$i/"
@@ -177,24 +181,6 @@ case $SKIP_FISH in
;;
esac
-# For AGS
-case $SKIP_AGS in
- true) sleep 0;;
- *)
- v rsync -av --delete --exclude '/user_options.jsonc' .config/ags/ "$XDG_CONFIG_HOME"/ags/
- t="$XDG_CONFIG_HOME/ags/user_options.jsonc"
- if [ -f $t ];then
- echo -e "\e[34m[$0]: \"$t\" already exists.\e[0m"
- # v cp -f .config/ags/user_options.jsonc $t.new
- existed_ags_opt=y
- else
- echo -e "\e[33m[$0]: \"$t\" does not exist yet.\e[0m"
- v cp .config/ags/user_options.jsonc $t
- existed_ags_opt=n
- fi
- ;;
-esac
-
# For Hyprland
case $SKIP_HYPRLAND in
true) sleep 0;;
@@ -203,15 +189,9 @@ case $SKIP_HYPRLAND in
t="$XDG_CONFIG_HOME/hypr/hyprland.conf"
if [ -f $t ];then
echo -e "\e[34m[$0]: \"$t\" already exists.\e[0m"
- if [ -f "$XDG_STATE_HOME/ags/user/firstrun.txt" ]
- then
- v cp -f .config/hypr/hyprland.conf $t.new
- existed_hypr_conf=y
- else
- v mv $t $t.old
- v cp -f .config/hypr/hyprland.conf $t
- existed_hypr_conf_firstrun=y
- fi
+ v mv $t $t.old
+ v cp -f .config/hypr/hyprland.conf $t
+ existed_hypr_conf_firstrun=y
else
echo -e "\e[33m[$0]: \"$t\" does not exist yet.\e[0m"
v cp .config/hypr/hyprland.conf $t
@@ -250,7 +230,7 @@ esac
# some foldes (eg. .local/bin) should be processed separately to avoid `--delete' for rsync,
# since the files here come from different places, not only about one program.
-v rsync -av ".local/bin/" "$XDG_BIN_HOME"
+# v rsync -av ".local/bin/" "$XDG_BIN_HOME" # No longer needed since scripts are no longer in ~/.local/bin
# Prevent hyprland from not fully loaded
sleep 1
@@ -261,10 +241,7 @@ grep -q 'source ${XDG_CONFIG_HOME:-~/.config}/zshrc.d/dots-hyprland.zsh' ~/.zshr
warn_files=()
warn_files_tests=()
-warn_files_tests+=(/usr/local/bin/ags)
-warn_files_tests+=(/usr/local/etc/pam.d/ags)
warn_files_tests+=(/usr/local/lib/{GUtils-1.0.typelib,Gvc-1.0.typelib,libgutils.so,libgvc.so})
-warn_files_tests+=(/usr/local/share/com.github.Aylur.ags)
warn_files_tests+=(/usr/local/share/fonts/TTF/Rubik{,-Italic}'[wght]'.ttf)
warn_files_tests+=(/usr/local/share/licenses/ttf-rubik)
warn_files_tests+=(/usr/local/share/fonts/TTF/Gabarito-{Black,Bold,ExtraBold,Medium,Regular,SemiBold}.ttf)
@@ -290,10 +267,6 @@ printf "\e[36mPress \e[30m\e[46m Ctrl+Super+T \e[0m\e[36m to select a wallpaper\
printf "\e[36mPress \e[30m\e[46m Super+/ \e[0m\e[36m for a list of keybinds\e[0m\n"
printf "\n"
-case $existed_ags_opt in
- y) printf "\n\e[33m[$0]: Warning: \"$XDG_CONFIG_HOME/ags/user_options.jsonc\" already existed before and we didn't overwrite it. \e[0m\n"
-# printf "\e[33mPlease use \"$XDG_CONFIG_HOME/ags/user_options.jsonc.new\" as a reference for a proper format.\e[0m\n"
-;;esac
case $existed_hypr_conf_firstrun in
y) printf "\n\e[33m[$0]: Warning: \"$XDG_CONFIG_HOME/hypr/hyprland.conf\" already existed before. As it seems it is your first run, we replaced it with a new one. \e[0m\n"
printf "\e[33mAs it seems it is your first run, we replaced it with a new one. The old one has been renamed to \"$XDG_CONFIG_HOME/hypr/hyprland.conf.old\".\e[0m\n"
@@ -312,7 +285,7 @@ case $existed_hyprlock_conf in
;;esac
if [[ -z "${ILLOGICAL_IMPULSE_VIRTUAL_ENV}" ]]; then
- printf "\n\e[31m[$0]: \!! Important \!! : Please ensure environment variable \e[0m \$ILLOGICAL_IMPULSE_VIRTUAL_ENV \e[31m is set to proper value (by default \"~/.local/state/ags/.venv\"), or AGS config will not work. We have already provided this configuration in ~/.config/hypr/hyprland/env.conf, but you need to ensure it is included in hyprland.conf, and also a restart is needed for applying it.\e[0m\n"
+ printf "\n\e[31m[$0]: \!! Important \!! : Please ensure environment variable \e[0m \$ILLOGICAL_IMPULSE_VIRTUAL_ENV \e[31m is set to proper value (by default \"~/.local/state/quickshell/.venv\"), or Quickshell config will not work. We have already provided this configuration in ~/.config/hypr/hyprland/env.conf, but you need to ensure it is included in hyprland.conf, and also a restart is needed for applying it.\e[0m\n"
fi
if [[ ! -z "${warn_files[@]}" ]]; then
diff --git a/licenses/LGPL-3.0.txt b/licenses/LGPL-3.0.txt
new file mode 100644
index 000000000..0a041280b
--- /dev/null
+++ b/licenses/LGPL-3.0.txt
@@ -0,0 +1,165 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
diff --git a/licenses/MIT.txt b/licenses/MIT.txt
new file mode 100644
index 000000000..9a7392926
--- /dev/null
+++ b/licenses/MIT.txt
@@ -0,0 +1,9 @@
+MIT License
+
+Copyright
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/licenses/README.md b/licenses/README.md
new file mode 100644
index 000000000..02bf9af72
--- /dev/null
+++ b/licenses/README.md
@@ -0,0 +1,3 @@
+# Licenses
+
+This repository contains code from other repositories. Files containing such code should include a license notice, and a copy should be stored in this folder.
diff --git a/manual-install-helper.sh b/manual-install-helper.sh
index 663f3009a..d594f2c16 100755
--- a/manual-install-helper.sh
+++ b/manual-install-helper.sh
@@ -11,7 +11,6 @@ source ./scriptdata/installers
prevent_sudo_or_root
if command -v pacman >/dev/null 2>&1;then printf "\e[31m[$0]: pacman found, it seems that the system is ArchLinux or Arch-based distro. Aborting...\e[0m\n";exit 1;fi
-v install-agsv1
v install-Rubik
v install-Gabarito
v install-OneUI
diff --git a/scriptdata/installers b/scriptdata/installers
index 842ca9375..7de00454c 100644
--- a/scriptdata/installers
+++ b/scriptdata/installers
@@ -123,7 +123,7 @@ install-uv (){
# Both for Arch(based) and other distros.
install-python-packages (){
UV_NO_MODIFY_PATH=1
- ILLOGICAL_IMPULSE_VIRTUAL_ENV=$XDG_STATE_HOME/ags/.venv
+ ILLOGICAL_IMPULSE_VIRTUAL_ENV=$XDG_STATE_HOME/quickshell/.venv
x mkdir -p $(eval echo $ILLOGICAL_IMPULSE_VIRTUAL_ENV)
# we need python 3.12 https://github.com/python-pillow/Pillow/issues/8089
x uv venv --prompt .venv $(eval echo $ILLOGICAL_IMPULSE_VIRTUAL_ENV) -p 3.12
diff --git a/scriptdata/requirements.txt b/scriptdata/requirements.txt
index 8c923e9c3..c2f380c4a 100644
--- a/scriptdata/requirements.txt
+++ b/scriptdata/requirements.txt
@@ -26,13 +26,11 @@ pycparser==2.22
# via cffi
pyproject-hooks==1.2.0
# via build
-# pywal==3.3.0
- # via -r scriptdata/requirements.in
pywayland==0.4.18
# via -r scriptdata/requirements.in
setproctitle==1.3.4
# via -r scriptdata/requirements.in
-setuptools==75.8.0
+setuptools==80.9.0
# via setuptools-scm
setuptools-scm==8.1.0
# via -r scriptdata/requirements.in