aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAargh Rai <aargh.rai+git@gmail.com>2026-08-06 00:29:36 +0530
committerAargh Rai <aargh.rai+git@gmail.com>2026-08-06 00:29:36 +0530
commit91a5f9790cfd4a98ee940633694fb512ecf24942 (patch)
treeb20bdd22e304234b6893e20d0ca5fbfd042f2184
parentced774e19c36fb3b0b33a3846e7c9cf874b0c206 (diff)
i3 > hyprland & x11 > wayland
-rw-r--r--README.md6
-rw-r--r--flake.nix2
-rw-r--r--foot/foot.ini5
-rw-r--r--home-manager/home.nix26
-rw-r--r--hypr/catppuccin/.editorconfig17
-rw-r--r--hypr/catppuccin/LICENSE21
-rw-r--r--hypr/catppuccin/README.md67
-rw-r--r--hypr/catppuccin/assets/.gitkeep0
-rw-r--r--hypr/catppuccin/assets/frappe.webpbin31628 -> 0 bytes
-rw-r--r--hypr/catppuccin/assets/latte.webpbin35190 -> 0 bytes
-rw-r--r--hypr/catppuccin/assets/macchiato.webpbin36048 -> 0 bytes
-rw-r--r--hypr/catppuccin/assets/mocha.webpbin40346 -> 0 bytes
-rw-r--r--hypr/catppuccin/assets/res.webpbin320886 -> 0 bytes
-rw-r--r--hypr/catppuccin/hyprland.tera12
-rw-r--r--hypr/catppuccin/justfile20
-rw-r--r--hypr/catppuccin/renovate.json6
-rw-r--r--hypr/catppuccin/themes/frappe.conf78
-rw-r--r--hypr/catppuccin/themes/latte.conf78
-rw-r--r--hypr/catppuccin/themes/macchiato.conf78
-rw-r--r--hypr/catppuccin/themes/mocha.conf78
-rwxr-xr-xhypr/greyline.sh6
-rw-r--r--hypr/hypr-zoom/.github/workflows/main.yml33
-rwxr-xr-xhypr/hypr-zoom/exec.sh8
-rw-r--r--hypr/hypr-zoom/go.mod5
-rw-r--r--hypr/hypr-zoom/go.sum2
-rw-r--r--hypr/hypr-zoom/hypr-zoom.go143
-rw-r--r--hypr/hypr-zoom/readme.md104
-rw-r--r--hypr/hypridle.conf22
-rw-r--r--hypr/hyprland.conf74
-rw-r--r--hypr/hyprland/env.conf5
-rw-r--r--hypr/hyprland/exec_once.conf6
-rw-r--r--hypr/hyprland/input.conf25
-rw-r--r--hypr/hyprland/keybinds.conf73
-rw-r--r--hypr/hyprland/look_and_feel.conf79
-rw-r--r--hypr/hyprland/vars.conf3
-rw-r--r--hypr/hyprlock.conf85
-rwxr-xr-xhypr/hyprlock/check-capslock.sh9
-rw-r--r--hypr/hyprlock/colors.conf7
-rwxr-xr-xhypr/hyprlock/status.sh29
-rw-r--r--hypr/hyprpaper.conf5
-rw-r--r--hypr/hyprsunset.conf12
-rwxr-xr-xhypr/hyprsunset/decrease_sunset.sh1
-rwxr-xr-xhypr/hyprsunset/increase_sunset.sh1
-rw-r--r--hypr/monitors.conf0
-rwxr-xr-xhypr/wf-recorder/record.sh18
-rw-r--r--hypr/workspaces.conf0
-rw-r--r--i3/config111
-rw-r--r--kitty/kitty.conf2
-rw-r--r--lxqt/lxqt-config-appearance.conf4
-rw-r--r--lxqt/lxqt-config-file-associations.conf2
-rw-r--r--lxqt/lxqt-config-input.conf3
-rw-r--r--lxqt/lxqt-config-locale.conf2
-rw-r--r--lxqt/lxqt-config.conf2
-rw-r--r--lxqt/lxqt-powermanagement.conf2
-rw-r--r--lxqt/lxqt.conf27
-rw-r--r--lxqt/notifications.conf7
-rw-r--r--lxqt/session.conf9
-rw-r--r--nixos/desktop-environment.nix69
-rw-r--r--nixos/environment.nix1
-rw-r--r--nixos/home.nix2
-rw-r--r--quickshell/AppLauncher.qml242
-rw-r--r--quickshell/BatteryInfo.qml139
-rw-r--r--quickshell/IconButton.qml41
-rw-r--r--quickshell/NotificationOverlay.qml121
-rw-r--r--quickshell/Procs.qml137
-rw-r--r--quickshell/items/DataBus.qml23
-rw-r--r--quickshell/items/Electrons.qml27
-rw-r--r--quickshell/items/Latch.qml23
-rw-r--r--quickshell/items/LowEnergy.qml28
-rw-r--r--quickshell/items/Photons.qml32
-rw-r--r--quickshell/items/Radiation.qml23
-rw-r--r--quickshell/items/Radio.qml29
-rw-r--r--quickshell/items/Spin.qml45
-rw-r--r--quickshell/items/Waves.qml23
-rw-r--r--quickshell/items/Workspace.qml22
-rw-r--r--quickshell/scripts/battery-info.py39
-rwxr-xr-xquickshell/scripts/battery-info.sh17
-rwxr-xr-xquickshell/scripts/battery.sh3
-rwxr-xr-xquickshell/scripts/bluetooth.sh9
-rwxr-xr-xquickshell/scripts/brightness.sh4
-rwxr-xr-xquickshell/scripts/cpu_temp.sh2
-rwxr-xr-xquickshell/scripts/list-apps.sh115
-rwxr-xr-xquickshell/scripts/network.sh2
-rw-r--r--quickshell/shell.qml253
-rw-r--r--[-rwxr-xr-x]scripts/battery_notif.sh (renamed from hypr/battery-notif.sh)1
85 files changed, 218 insertions, 2674 deletions
diff --git a/README.md b/README.md
index 7007098..6d7f1e0 100644
--- a/README.md
+++ b/README.md
@@ -46,7 +46,7 @@ But make sure you download all the dependencies that are used in nixos/desktop-e
- ly Display Manager for login
- hyprland as desktop environment
- tmux for terminal sessions
-- foot as terminal
+- kitty as terminal
- quickshell for top bar & elements
- hyprsunset for nightlight
- hyprlock for lock screen
@@ -82,7 +82,7 @@ Configure in quickshell/shell.qml<br>
|Spin|Time|
### Keyboard shortcuts
-Configure in hypr/hyprland/keybinds.conf
+Configure in i3/config
I am left handed so my mouse is in left handed mode<br>
IF YOU ARE NOT LEFT HANDED, change this in hypr/hyprland/input.conf:input:left_handed<bgr>
@@ -90,7 +90,7 @@ IF YOU ARE NOT LEFT HANDED, change this in hypr/hyprland/input.conf:input:left_h
|Keybind|Description|
|-|-|
-|Win + T|**Spawn Terminal** (foot)|
+|Win + T|**Spawn Terminal** (kitty)|
|Win + Q|Kill active window|
|Win + Shift + L|Sign out|
|Win + L|Lock|
diff --git a/flake.nix b/flake.nix
index 0d073ac..b1e735e 100644
--- a/flake.nix
+++ b/flake.nix
@@ -63,8 +63,8 @@
};
sessions = {
+ i3_x11 = true;
plasma_x11 = true; # this is entirely backup, there is no rice here
- hyprland_wayland = true;
};
dualbootedwithwindows = false;
diff --git a/foot/foot.ini b/foot/foot.ini
deleted file mode 100644
index 383b8ee..0000000
--- a/foot/foot.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[main]
-font=JetBrainsMono Nerd Font:size=12
-
-[colors-dark]
-background=282828
diff --git a/home-manager/home.nix b/home-manager/home.nix
index 3c0e9e7..b65a59f 100644
--- a/home-manager/home.nix
+++ b/home-manager/home.nix
@@ -25,11 +25,11 @@ let
];
confDirs = linkConfDirs [
- "foot"
"fortune"
- "hypr"
+ "lxqt"
+ "i3"
"nvim"
- "quickshell"
+ "kitty"
"tmux"
"yazi"
];
@@ -60,24 +60,4 @@ in {
EDITOR = "nvim";
};
programs.home-manager.enable = true;
-
- services.greyline = {
- enable = true;
- backend = "swww"; # renamed to awww for nixpkgs
- fontFamily = "JetBrains Mono Nerd Font";
- settings = {
- theme = "dark";
- logo = false;
- format = "24h";
- twilight = { bands = true; darkness = "subtle"; };
- home = { tz = "Asia/Kolkata"; column_highlight = true; };
- city = [
- { name = "Kuala Lumpur"; lat = 3.14; lon = 101.69; tz = "Asia/Kuala_Lumpur"; }
- { name = "Kolkata"; lat = 22.56; lon = 88.36; tz = "Asia/Kolkata"; }
- { name = "London"; lat = 51.51; lon = -0.13; tz = "Europe/London"; }
- { name = "New York"; lat = 40.71; lon = -74.01; tz = "America/New_York"; }
- { name = "Tokyo"; lat = 35.68; lon = 139.69; tz = "Asia/Tokyo"; }
- ];
- };
- };
}
diff --git a/hypr/catppuccin/.editorconfig b/hypr/catppuccin/.editorconfig
deleted file mode 100644
index a6f10bd..0000000
--- a/hypr/catppuccin/.editorconfig
+++ /dev/null
@@ -1,17 +0,0 @@
-# EditorConfig helps developers define and maintain consistent
-# coding styles between different editors and IDEs
-# EditorConfig is awesome: https://EditorConfig.org
-
-root = true
-
-
-[*]
-charset = utf-8
-indent_size = 4
-indent_style = tab
-end_of_line = lf
-insert_final_newline = true
-trim_trailing_whitespace = true
-
-[*.{diff,md}]
-trim_trailing_whitespace = false
diff --git a/hypr/catppuccin/LICENSE b/hypr/catppuccin/LICENSE
deleted file mode 100644
index 7ba7a87..0000000
--- a/hypr/catppuccin/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2021 Catppuccin
-
-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/hypr/catppuccin/README.md b/hypr/catppuccin/README.md
deleted file mode 100644
index 830c369..0000000
--- a/hypr/catppuccin/README.md
+++ /dev/null
@@ -1,67 +0,0 @@
-<h3 align="center">
- <img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/logos/exports/1544x1544_circle.png" width="100" alt="Logo"/><br/>
- <img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png" height="30" width="0px"/>
- Catppuccin for <a href="https://github.com/hyprwm/hyprland">Hyprland</a>
- <img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png" height="30" width="0px"/>
-</h3>
-
-<p align="center">
- <a href="https://github.com/catppuccin/hyprland/stargazers"><img src="https://img.shields.io/github/stars/catppuccin/hyprland?colorA=363a4f&colorB=b7bdf8&style=for-the-badge"></a>
- <a href="https://github.com/catppuccin/hyprland/issues"><img src="https://img.shields.io/github/issues/catppuccin/hyprland?colorA=363a4f&colorB=f5a97f&style=for-the-badge"></a>
- <a href="https://github.com/catppuccin/hyprland/contributors"><img src="https://img.shields.io/github/contributors/catppuccin/hyprland?colorA=363a4f&colorB=a6da95&style=for-the-badge"></a>
-</p>
-
-<p align="center">
- <img src="assets/res.webp"/>
-</p>
-
-## Previews
-
-<details>
-<summary>๐ŸŒป Latte</summary>
-<img src="assets/latte.webp"/>
-</details>
-<details>
-<summary>๐Ÿชด Frappรฉ</summary>
-<img src="assets/frappe.webp"/>
-</details>
-<details>
-<summary>๐ŸŒบ Macchiato</summary>
-<img src="assets/macchiato.webp"/>
-</details>
-<details>
-<summary>๐ŸŒฟ Mocha</summary>
-<img src="assets/mocha.webp"/>
-</details>
-
-## Usage
-
-1. Download the file with your desired flavour e.g. `mocha.conf` (to be found in the [release](https://github.com/catppuccin/hyprland/releases/latest) or after cloning the repository in `themes/`)
-2. Copy it into your hyprland config e.g. `~/.config/hypr/`
-3. Include the file at the top of your `hyprland.conf`
- - `source=~/.config/hypr/mocha.conf`
-4. When using the non-alpha colors, use `$COLOR` e.g. `$base`
-5. When using the alpha colors use something like `rgba($COLORAlpha<transparency>)` e.g. `rgba($surface0Alphaee)`
-
-## ๐Ÿ™‹ FAQ
-
-- Q: **_"Hyprland doesn't work with the colors"_**\
- A: Make sure you included the file in the right place and you are using `$COLOR`
-
-## ๐Ÿ’ Thanks to
-
-- [rubyowo](https://github.com/rubyowo)
-
-&nbsp;
-
-<p align="center">
- <img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/footers/gray0_ctp_on_line.svg?sanitize=true" />
-</p>
-
-<p align="center">
- Copyright &copy; 2021-present <a href="https://github.com/catppuccin" target="_blank">Catppuccin Org</a>
-</p>
-
-<p align="center">
- <a href="https://github.com/catppuccin/catppuccin/blob/main/LICENSE"><img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&logoColor=d9e0ee&colorA=363a4f&colorB=b7bdf8"/></a>
-</p>
diff --git a/hypr/catppuccin/assets/.gitkeep b/hypr/catppuccin/assets/.gitkeep
deleted file mode 100644
index e69de29..0000000
--- a/hypr/catppuccin/assets/.gitkeep
+++ /dev/null
diff --git a/hypr/catppuccin/assets/frappe.webp b/hypr/catppuccin/assets/frappe.webp
deleted file mode 100644
index 761028c..0000000
--- a/hypr/catppuccin/assets/frappe.webp
+++ /dev/null
Binary files differ
diff --git a/hypr/catppuccin/assets/latte.webp b/hypr/catppuccin/assets/latte.webp
deleted file mode 100644
index 1eaed94..0000000
--- a/hypr/catppuccin/assets/latte.webp
+++ /dev/null
Binary files differ
diff --git a/hypr/catppuccin/assets/macchiato.webp b/hypr/catppuccin/assets/macchiato.webp
deleted file mode 100644
index 23efdbd..0000000
--- a/hypr/catppuccin/assets/macchiato.webp
+++ /dev/null
Binary files differ
diff --git a/hypr/catppuccin/assets/mocha.webp b/hypr/catppuccin/assets/mocha.webp
deleted file mode 100644
index dbd78c2..0000000
--- a/hypr/catppuccin/assets/mocha.webp
+++ /dev/null
Binary files differ
diff --git a/hypr/catppuccin/assets/res.webp b/hypr/catppuccin/assets/res.webp
deleted file mode 100644
index 5343f0a..0000000
--- a/hypr/catppuccin/assets/res.webp
+++ /dev/null
Binary files differ
diff --git a/hypr/catppuccin/hyprland.tera b/hypr/catppuccin/hyprland.tera
deleted file mode 100644
index cefe390..0000000
--- a/hypr/catppuccin/hyprland.tera
+++ /dev/null
@@ -1,12 +0,0 @@
----
-whiskers:
- version: 2.4.0
- matrix:
- - flavor
- filename: "themes/{{flavor.identifier}}.conf"
----
-
-{% for name, color in flavor.colors %}
-${{ name }} = rgb({{ color.hex }})
-${{ name }}Alpha = {{ color.hex }}
-{% endfor %} \ No newline at end of file
diff --git a/hypr/catppuccin/justfile b/hypr/catppuccin/justfile
deleted file mode 100644
index 0b4d3ef..0000000
--- a/hypr/catppuccin/justfile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Print out all recipes when running `just`
-_default:
- @just --list
-
-# Variables
-output := "themes"
-whiskers_cmd := "whiskers"
-template_path := "hyprland.tera"
-
-# Create the output directory
-setup:
- mkdir -p {{output}}
-
-# Remove all files in the output directory
-clean:
- rm -fv {{output}}/*.conf
-
-# Generate all four flavors
-all: setup
- {{whiskers_cmd}} {{template_path}} \ No newline at end of file
diff --git a/hypr/catppuccin/renovate.json b/hypr/catppuccin/renovate.json
deleted file mode 100644
index 2585c72..0000000
--- a/hypr/catppuccin/renovate.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "$schema": "https://docs.renovatebot.com/renovate-schema.json",
- "extends": [
- "local>catppuccin/renovate-config"
- ]
-}
diff --git a/hypr/catppuccin/themes/frappe.conf b/hypr/catppuccin/themes/frappe.conf
deleted file mode 100644
index 9bcd81f..0000000
--- a/hypr/catppuccin/themes/frappe.conf
+++ /dev/null
@@ -1,78 +0,0 @@
-
-$rosewater = rgb(f2d5cf)
-$rosewaterAlpha = f2d5cf
-
-$flamingo = rgb(eebebe)
-$flamingoAlpha = eebebe
-
-$pink = rgb(f4b8e4)
-$pinkAlpha = f4b8e4
-
-$mauve = rgb(ca9ee6)
-$mauveAlpha = ca9ee6
-
-$red = rgb(e78284)
-$redAlpha = e78284
-
-$maroon = rgb(ea999c)
-$maroonAlpha = ea999c
-
-$peach = rgb(ef9f76)
-$peachAlpha = ef9f76
-
-$yellow = rgb(e5c890)
-$yellowAlpha = e5c890
-
-$green = rgb(a6d189)
-$greenAlpha = a6d189
-
-$teal = rgb(81c8be)
-$tealAlpha = 81c8be
-
-$sky = rgb(99d1db)
-$skyAlpha = 99d1db
-
-$sapphire = rgb(85c1dc)
-$sapphireAlpha = 85c1dc
-
-$blue = rgb(8caaee)
-$blueAlpha = 8caaee
-
-$lavender = rgb(babbf1)
-$lavenderAlpha = babbf1
-
-$text = rgb(c6d0f5)
-$textAlpha = c6d0f5
-
-$subtext1 = rgb(b5bfe2)
-$subtext1Alpha = b5bfe2
-
-$subtext0 = rgb(a5adce)
-$subtext0Alpha = a5adce
-
-$overlay2 = rgb(949cbb)
-$overlay2Alpha = 949cbb
-
-$overlay1 = rgb(838ba7)
-$overlay1Alpha = 838ba7
-
-$overlay0 = rgb(737994)
-$overlay0Alpha = 737994
-
-$surface2 = rgb(626880)
-$surface2Alpha = 626880
-
-$surface1 = rgb(51576d)
-$surface1Alpha = 51576d
-
-$surface0 = rgb(414559)
-$surface0Alpha = 414559
-
-$base = rgb(303446)
-$baseAlpha = 303446
-
-$mantle = rgb(292c3c)
-$mantleAlpha = 292c3c
-
-$crust = rgb(232634)
-$crustAlpha = 232634
diff --git a/hypr/catppuccin/themes/latte.conf b/hypr/catppuccin/themes/latte.conf
deleted file mode 100644
index 2c244ad..0000000
--- a/hypr/catppuccin/themes/latte.conf
+++ /dev/null
@@ -1,78 +0,0 @@
-
-$rosewater = rgb(dc8a78)
-$rosewaterAlpha = dc8a78
-
-$flamingo = rgb(dd7878)
-$flamingoAlpha = dd7878
-
-$pink = rgb(ea76cb)
-$pinkAlpha = ea76cb
-
-$mauve = rgb(8839ef)
-$mauveAlpha = 8839ef
-
-$red = rgb(d20f39)
-$redAlpha = d20f39
-
-$maroon = rgb(e64553)
-$maroonAlpha = e64553
-
-$peach = rgb(fe640b)
-$peachAlpha = fe640b
-
-$yellow = rgb(df8e1d)
-$yellowAlpha = df8e1d
-
-$green = rgb(40a02b)
-$greenAlpha = 40a02b
-
-$teal = rgb(179299)
-$tealAlpha = 179299
-
-$sky = rgb(04a5e5)
-$skyAlpha = 04a5e5
-
-$sapphire = rgb(209fb5)
-$sapphireAlpha = 209fb5
-
-$blue = rgb(1e66f5)
-$blueAlpha = 1e66f5
-
-$lavender = rgb(7287fd)
-$lavenderAlpha = 7287fd
-
-$text = rgb(4c4f69)
-$textAlpha = 4c4f69
-
-$subtext1 = rgb(5c5f77)
-$subtext1Alpha = 5c5f77
-
-$subtext0 = rgb(6c6f85)
-$subtext0Alpha = 6c6f85
-
-$overlay2 = rgb(7c7f93)
-$overlay2Alpha = 7c7f93
-
-$overlay1 = rgb(8c8fa1)
-$overlay1Alpha = 8c8fa1
-
-$overlay0 = rgb(9ca0b0)
-$overlay0Alpha = 9ca0b0
-
-$surface2 = rgb(acb0be)
-$surface2Alpha = acb0be
-
-$surface1 = rgb(bcc0cc)
-$surface1Alpha = bcc0cc
-
-$surface0 = rgb(ccd0da)
-$surface0Alpha = ccd0da
-
-$base = rgb(eff1f5)
-$baseAlpha = eff1f5
-
-$mantle = rgb(e6e9ef)
-$mantleAlpha = e6e9ef
-
-$crust = rgb(dce0e8)
-$crustAlpha = dce0e8
diff --git a/hypr/catppuccin/themes/macchiato.conf b/hypr/catppuccin/themes/macchiato.conf
deleted file mode 100644
index 9e7071a..0000000
--- a/hypr/catppuccin/themes/macchiato.conf
+++ /dev/null
@@ -1,78 +0,0 @@
-
-$rosewater = rgb(f4dbd6)
-$rosewaterAlpha = f4dbd6
-
-$flamingo = rgb(f0c6c6)
-$flamingoAlpha = f0c6c6
-
-$pink = rgb(f5bde6)
-$pinkAlpha = f5bde6
-
-$mauve = rgb(c6a0f6)
-$mauveAlpha = c6a0f6
-
-$red = rgb(ed8796)
-$redAlpha = ed8796
-
-$maroon = rgb(ee99a0)
-$maroonAlpha = ee99a0
-
-$peach = rgb(f5a97f)
-$peachAlpha = f5a97f
-
-$yellow = rgb(eed49f)
-$yellowAlpha = eed49f
-
-$green = rgb(a6da95)
-$greenAlpha = a6da95
-
-$teal = rgb(8bd5ca)
-$tealAlpha = 8bd5ca
-
-$sky = rgb(91d7e3)
-$skyAlpha = 91d7e3
-
-$sapphire = rgb(7dc4e4)
-$sapphireAlpha = 7dc4e4
-
-$blue = rgb(8aadf4)
-$blueAlpha = 8aadf4
-
-$lavender = rgb(b7bdf8)
-$lavenderAlpha = b7bdf8
-
-$text = rgb(cad3f5)
-$textAlpha = cad3f5
-
-$subtext1 = rgb(b8c0e0)
-$subtext1Alpha = b8c0e0
-
-$subtext0 = rgb(a5adcb)
-$subtext0Alpha = a5adcb
-
-$overlay2 = rgb(939ab7)
-$overlay2Alpha = 939ab7
-
-$overlay1 = rgb(8087a2)
-$overlay1Alpha = 8087a2
-
-$overlay0 = rgb(6e738d)
-$overlay0Alpha = 6e738d
-
-$surface2 = rgb(5b6078)
-$surface2Alpha = 5b6078
-
-$surface1 = rgb(494d64)
-$surface1Alpha = 494d64
-
-$surface0 = rgb(363a4f)
-$surface0Alpha = 363a4f
-
-$base = rgb(24273a)
-$baseAlpha = 24273a
-
-$mantle = rgb(1e2030)
-$mantleAlpha = 1e2030
-
-$crust = rgb(181926)
-$crustAlpha = 181926
diff --git a/hypr/catppuccin/themes/mocha.conf b/hypr/catppuccin/themes/mocha.conf
deleted file mode 100644
index 8ccb56a..0000000
--- a/hypr/catppuccin/themes/mocha.conf
+++ /dev/null
@@ -1,78 +0,0 @@
-
-$rosewater = rgb(f5e0dc)
-$rosewaterAlpha = f5e0dc
-
-$flamingo = rgb(f2cdcd)
-$flamingoAlpha = f2cdcd
-
-$pink = rgb(f5c2e7)
-$pinkAlpha = f5c2e7
-
-$mauve = rgb(cba6f7)
-$mauveAlpha = cba6f7
-
-$red = rgb(f38ba8)
-$redAlpha = f38ba8
-
-$maroon = rgb(eba0ac)
-$maroonAlpha = eba0ac
-
-$peach = rgb(fab387)
-$peachAlpha = fab387
-
-$yellow = rgb(f9e2af)
-$yellowAlpha = f9e2af
-
-$green = rgb(a6e3a1)
-$greenAlpha = a6e3a1
-
-$teal = rgb(94e2d5)
-$tealAlpha = 94e2d5
-
-$sky = rgb(89dceb)
-$skyAlpha = 89dceb
-
-$sapphire = rgb(74c7ec)
-$sapphireAlpha = 74c7ec
-
-$blue = rgb(89b4fa)
-$blueAlpha = 89b4fa
-
-$lavender = rgb(b4befe)
-$lavenderAlpha = b4befe
-
-$text = rgb(cdd6f4)
-$textAlpha = cdd6f4
-
-$subtext1 = rgb(bac2de)
-$subtext1Alpha = bac2de
-
-$subtext0 = rgb(a6adc8)
-$subtext0Alpha = a6adc8
-
-$overlay2 = rgb(9399b2)
-$overlay2Alpha = 9399b2
-
-$overlay1 = rgb(7f849c)
-$overlay1Alpha = 7f849c
-
-$overlay0 = rgb(6c7086)
-$overlay0Alpha = 6c7086
-
-$surface2 = rgb(585b70)
-$surface2Alpha = 585b70
-
-$surface1 = rgb(45475a)
-$surface1Alpha = 45475a
-
-$surface0 = rgb(313244)
-$surface0Alpha = 313244
-
-$base = rgb(1e1e2e)
-$baseAlpha = 1e1e2e
-
-$mantle = rgb(181825)
-$mantleAlpha = 181825
-
-$crust = rgb(11111b)
-$crustAlpha = 11111b
diff --git a/hypr/greyline.sh b/hypr/greyline.sh
deleted file mode 100755
index 43c3564..0000000
--- a/hypr/greyline.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env bash
-
-while true; do
- greyline
- sleep $((60 - $(date +%S)))
-done
diff --git a/hypr/hypr-zoom/.github/workflows/main.yml b/hypr/hypr-zoom/.github/workflows/main.yml
deleted file mode 100644
index ab277d7..0000000
--- a/hypr/hypr-zoom/.github/workflows/main.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-name: Build and upliad artifact
-
-on:
- push:
- branches: [ "main" ]
- pull_request:
- branches: [ "main" ]
-
-jobs:
- build:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
-
- - name: Set up Go
- uses: actions/setup-go@v4
- with:
- go-version: '1.23'
-
- - name: Build
- run: go build -v -o hypr-zoom ./hypr-zoom.go # Specify the output binary name
-
- - name: Delete Previous artifact
- uses: geekyeggo/delete-artifact@v5
- with:
- name: hypr-zoom
- failOnError: false
-
- - name: Upload Artifact
- uses: actions/upload-artifact@v4
- with:
- name: hypr-zoom
- path: hypr-zoom
diff --git a/hypr/hypr-zoom/exec.sh b/hypr/hypr-zoom/exec.sh
deleted file mode 100755
index d83b73e..0000000
--- a/hypr/hypr-zoom/exec.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-file="~/.config/hypr/hypr-zoom/hypr-zoom"
-if [ -f "$file" ]; then
- ./hypr-zoom -duration=10 -steps=50 -interp=Linear
-else
- cd ~/.config/hypr/hypr-zoom/
- go build -o hypr-zoom
- ./hypr-zoom -duration=10 -steps=50 -interp=Linear
-fi
diff --git a/hypr/hypr-zoom/go.mod b/hypr/hypr-zoom/go.mod
deleted file mode 100644
index 32db86a..0000000
--- a/hypr/hypr-zoom/go.mod
+++ /dev/null
@@ -1,5 +0,0 @@
-module hypr-zoom
-
-go 1.22.5
-
-require github.com/fogleman/ease v0.0.0-20170301025033-8da417bf1776 // indirect
diff --git a/hypr/hypr-zoom/go.sum b/hypr/hypr-zoom/go.sum
deleted file mode 100644
index 8254f11..0000000
--- a/hypr/hypr-zoom/go.sum
+++ /dev/null
@@ -1,2 +0,0 @@
-github.com/fogleman/ease v0.0.0-20170301025033-8da417bf1776 h1:VRIbnDWRmAh5yBdz+J6yFMF5vso1It6vn+WmM/5l7MA=
-github.com/fogleman/ease v0.0.0-20170301025033-8da417bf1776/go.mod h1:9wvnDu3YOfxzWM9Cst40msBF1C2UdQgDv962oTxSuMs=
diff --git a/hypr/hypr-zoom/hypr-zoom.go b/hypr/hypr-zoom/hypr-zoom.go
deleted file mode 100644
index d77606c..0000000
--- a/hypr/hypr-zoom/hypr-zoom.go
+++ /dev/null
@@ -1,143 +0,0 @@
-package main
-
-import (
- "flag"
- "fmt"
- "math"
- "os/exec"
- "strconv"
- "strings"
- "time"
-
- "github.com/fogleman/ease"
-)
-
-type EasingFunction func(t float64) float64
-type InterpolatorFunc func(s, e, t float64) float64
-
-// Linear interpolation function
-func lerp(start, end, t float64) float64 {
- return start + t*(end-start)
-}
-
-func logInterp(start, end, t float64) float64 {
- if t == 0 {
- return start
- }
- return start + (end-start)*(math.Log(t+1)/math.Log(2))
-}
-
-// Main animation loop
-func zoom(duration int, steps int, startValue, endValue float64, easingFunc EasingFunction, interInterpolatorFunc InterpolatorFunc) {
- interval := float64(duration) / float64(steps) / 1000
-
- for i := 0; i <= steps; i++ {
- t := float64(i) / float64(steps)
- easedT := easingFunc(t)
- interpolatedValue := interInterpolatorFunc(startValue, endValue, easedT)
-
- _ = exec.Command("hyprctl", "keyword", "cursor:zoom_factor", fmt.Sprintf("%f", interpolatedValue)).Run()
- time.Sleep(time.Duration(interval * float64(time.Second)))
- }
-}
-
-// Execute a shell command and return its output as a string
-func executeCommand(command string) (string, error) {
- output, err := exec.Command("bash", "-c", command).Output()
- if err != nil {
- return "", err
- }
- return string(output), nil
-}
-
-func main() {
- output, err := executeCommand("hyprctl getoption cursor:zoom_factor | grep 'float:' | awk '{print $2}' | tr -d '[:space:]'")
- if err != nil {
- fmt.Println("Error getting initial zoom factor:", err)
- return
- }
-
- duration := flag.Int("duration", 500, "Duration of the animation in milliseconds")
- steps := flag.Int("steps", 100, "Number of steps in the animation")
- easing := flag.String("easing", "InOutExpo", "Easing function to use")
- easingOut := flag.String("easingOut", "", "Easing function to use for zoom-out (optional)")
- targetZoom := flag.Float64("target", 2.0, "Zoom Target")
- interpolator := flag.String("interp", "Log", "Animation interpolator function")
- force := flag.Bool("force", false, "Forcing target parameter even if zoom is not equal to 1")
- flag.Parse()
-
- initialZoom, err := strconv.ParseFloat(strings.TrimSpace(output), 64)
- if err != nil {
- fmt.Println("Error parsing initial zoom factor:", err)
- return
- }
-
- if *steps <= 0 {
- fmt.Println("Error: `steps` must be greater than 0.")
- return
- }
-
- easingFunctions := map[string]EasingFunction{
- "Linear": ease.Linear,
- "InQuad": ease.InQuad,
- "OutQuad": ease.OutQuad,
- "InOutQuad": ease.InOutQuad,
- "InCubic": ease.InCubic,
- "OutCubic": ease.OutCubic,
- "InOutCubic": ease.InOutCubic,
- "InQuart": ease.InQuart,
- "OutQuart": ease.OutQuart,
- "InOutQuart": ease.InOutQuart,
- "InQuint": ease.InQuint,
- "OutQuint": ease.OutQuint,
- "InOutQuint": ease.InOutQuint,
- "InSine": ease.InSine,
- "OutSine": ease.OutSine,
- "InOutSine": ease.InOutSine,
- "InExpo": ease.InExpo,
- "OutExpo": ease.OutExpo,
- "InOutExpo": ease.InOutExpo,
- "InCirc": ease.InCirc,
- "OutCirc": ease.OutCirc,
- "InOutCirc": ease.InOutCirc,
- // "InElastic": ease.InElastic,
- // "OutElastic": ease.OutElastic,
- // "InOutElastic": ease.InOutElastic,
- "InBack": ease.InBack,
- "OutBack": ease.OutBack,
- "InOutBack": ease.InOutBack,
- "InBounce": ease.InBounce,
- "OutBounce": ease.OutBounce,
- "InOutBounce": ease.InOutBounce,
- "InSquare": ease.InSquare,
- "OutSquare": ease.OutSquare,
- "InOutSquare": ease.InOutSquare,
- }
-
- interpolatorFunctions := map[string]InterpolatorFunc{
- "Log": logInterp,
- "Linear": lerp,
- }
-
- interpolatorFunc, exists := interpolatorFunctions[*interpolator]
- if !exists {
- fmt.Println("Unknown interpolator function:", *interpolator, "Set to default")
- interpolatorFunc = interpolatorFunctions["Log"]
- }
-
- easingFunction, exists := easingFunctions[*easing]
- if !exists {
- fmt.Println("Unknown easing function:", *easing, "Set to default")
- easingFunction = easingFunctions["InOutExpo"]
- }
-
- if (initialZoom > 1 && !*force) {
- *targetZoom = 1.0
- _, exists := easingFunctions[*easingOut]
- if exists {
- easingFunction = easingFunctions[*easingOut]
- }
- }
-
- zoom(*duration, *steps, initialZoom, *targetZoom, easingFunction, interpolatorFunc)
-}
diff --git a/hypr/hypr-zoom/readme.md b/hypr/hypr-zoom/readme.md
deleted file mode 100644
index ab938ad..0000000
--- a/hypr/hypr-zoom/readme.md
+++ /dev/null
@@ -1,104 +0,0 @@
-# hypr-zoom
-
-`hypr-zoom` is a command-line tool written in Go that smoothly animates the Hyprland cursor zoom-factor changes using variety of easing functions.
-It simply uses the `hyprctl` command to adjust the cursor zoom-factor and the ease library for animation interpolation.
-
-## Why ?
-Hyprland cursor zoom factor changes happen instantly, which can feel ood since Hyprland has cool animations. This little CLI solves that.
-
-## Features
-
-- Smoothly animates cursor zoom-factor using a variety of easing and interpolation functions.
-- Configurable animation duration and steps.
-
-## Installation
-install from aur: [hypr-zoom](https://aur.archlinux.org/packages/hypr-zoom)
-
-Grab from release or :
-1. Clone the repository:
- ```sh
- git clone https://github.com/FaqihS/hypr-zoom.git
- cd hypr-zoom
- ```
-
-2. Build the project:
- ```sh
- go build -o hypr-zoom
- ```
-
-## Usage
-
-The `hypr-zoom` command has several flags to configure the animation:
-
-- `-duration`: Duration of the animation in milliseconds (default: 500)
-- `-steps`: Number of steps in the animation (default: 100)
-- `-easing`: Easing function to use for the animation (default: InOutExpo)
-- `-easingOut`: Easing function to use for the zoom-out animation (optional)
-- `-target`: Target zoom factor (default: 2.0)
-- `-interp`: Interpolation Function used for animation(default: Log)
-- `-force` : Forcing target parameter (default: false)
-
-### Example
-
-```sh
-hypr-zoom -easing=InOutExpo -duration=500 -steps=60 -target=1.2
-```
-
-This command will animate the zoom factor to 1.2 using the InOutExpo easing function over 500 milliseconds with 60 steps.
-
-```sh
-hypr-zoom -easing=OutBack -easingOut=OutExpo
-```
-
-This command will animate the zoom factor using the OutBack easing function when zooming-in and OutExpo when zooming-out.
-
-> [!WARNING]
-> Adjust duration and steps wisely.
-
-### Supported Easing Functions
-The following easing functions are supported:
-
-- Linear
-- InQuad, OutQuad, InOutQuad
-- InCubic, OutCubic, InOutCubic
-- InQuart, OutQuart, InOutQuart
-- InQuint, OutQuint, InOutQuint
-- InSine, OutSine, InOutSine
-- InExpo, OutExpo, InOutExpo
-- InCirc, OutCirc, InOutCirc
-- InBack, OutBack, InOutBack
-- InBounce, OutBounce, InOutBounce
-- InSquare, OutSquare, InOutSquare
-
-For animation preview [see here](https://github.com/fogleman/ease).
-
-### Supported Interpolation function
-- Linear
-- Log (Logarithmic)
-
-## Showcase
-### Default+Linear
-```sh
-hypr-zoom -interp=Linear
-```
-https://github.com/user-attachments/assets/261aff62-955f-49e6-9a7b-c5f714389dc4
-### InOutCubic
-```sh
-hypr-zoom -easing=InOutCubic -interp=Linear
-```
-https://github.com/user-attachments/assets/622d4a4b-b805-495d-8178-ad5e130279c2
-### OutBack-Inback
-```sh
-hypr-zoom -duration=600 -steps=150 -easing=OutBack -easingOut=InBack -interp=Linear
-```
-https://github.com/user-attachments/assets/de4f2924-b5e8-43a8-9bbf-6f1ac795687c
-
-
-
-
-## Contributing
-Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes. Although i'm not real Go Dev :p
-
-## Acknowledgements
-- [fogleman/ease](https://github.com/fogleman/ease) - Easing functions library used in this project.
-- [Hyprland](https://hyprland.org)
diff --git a/hypr/hypridle.conf b/hypr/hypridle.conf
deleted file mode 100644
index 88629ad..0000000
--- a/hypr/hypridle.conf
+++ /dev/null
@@ -1,22 +0,0 @@
-general {
- lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
- before_sleep_cmd = loginctl lock-session # lock before suspend.
- after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
-}
-
-listener {
- timeout = 150 # 2.5min.
- on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor.
- on-resume = brightnessctl -r # monitor backlight restore.
-}
-
-listener {
- timeout = 300 # 5min
- on-timeout = loginctl lock-session # lock screen when timeout has passed
-}
-
-listener {
- timeout = 330 # 5.5min
- on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
- on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired.
-}
diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf
deleted file mode 100644
index 444b80c..0000000
--- a/hypr/hyprland.conf
+++ /dev/null
@@ -1,74 +0,0 @@
-source=hyprland/vars.conf
-source=catppuccin/themes/macchiato.conf
-source=hyprland/exec_once.conf
-source=hyprland/input.conf
-source=hyprland/keybinds.conf
-source=hyprland/look_and_feel.conf
-source=hyprland/env.conf
-
-monitor=,preferred,auto,1
-
-
-###################
-### PERMISSIONS ###
-###################
-
-# See https://wiki.hyprland.org/Configuring/Permissions/
-# Please note permission changes here require a Hyprland restart and are not applied on-the-fly
-# for security reasons
-
-# ecosystem {
-# enforce_permissions = 1
-# }
-
-# permission = /usr/(bin|local/bin)/grim, screencopy, allow
-# permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
-# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow
-
-# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
-dwindle {
- preserve_split = true # You probably want this
-}
-
-# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
-master {
- new_status = master
-}
-
-# https://wiki.hyprland.org/Configuring/Variables/#misc
-misc {
- force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
- disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
-}
-
-##############################
-### WINDOWS AND WORKSPACES ###
-##############################
-
-# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
-# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
-
-# Example windowrule
-# windowrule = float,class:^(kitty)$,title:^(kitty)$
-
-windowrule {
- # Ignore maximize requests from all apps. You'll probably like this.
- name = suppress-maximize-events
- match:class = .*
-
- suppress_event = maximize
-}
-
-windowrule {
- # Fix some dragging issues with XWayland
- name = fix-xwayland-drags
- match:class = ^$
- match:title = ^$
- match:xwayland = true
- match:float = true
- match:fullscreen = false
- match:pin = false
-
- no_focus = true
-}
-
diff --git a/hypr/hyprland/env.conf b/hypr/hyprland/env.conf
deleted file mode 100644
index 169638d..0000000
--- a/hypr/hyprland/env.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-env = XCURSOR_THEME,catppuccin-mocha-mauve-cursors
-env = HYPRCURSOR_THEME,catppuccin-mocha-mauve-cursors
-env = XCURSOR_SIZE,24
-env = HYPRCURSOR_SIZE,24
-
diff --git a/hypr/hyprland/exec_once.conf b/hypr/hyprland/exec_once.conf
deleted file mode 100644
index 87c8e91..0000000
--- a/hypr/hyprland/exec_once.conf
+++ /dev/null
@@ -1,6 +0,0 @@
-exec-once = ~/.config/hypr/battery-notif.sh
-exec-once = ~/.config/hypr/greyline.sh
-exec-once = wl-paste --watch cliphist store
-exec-once = qs
-exec-once = hyprsunset
-#exec-once = hyprpaper
diff --git a/hypr/hyprland/input.conf b/hypr/hyprland/input.conf
deleted file mode 100644
index 8846120..0000000
--- a/hypr/hyprland/input.conf
+++ /dev/null
@@ -1,25 +0,0 @@
-# https://wiki.hyprland.org/Configuring/Variables/#input
-input {
- kb_layout = us
- kb_variant =
- kb_model =
- kb_options =
- kb_rules =
-
- follow_mouse = 1
- left_handed = true
-
- sensitivity = 0.5 # -1.0 - 1.0, 0 means no modification.
-
- touchpad {
- natural_scroll = true
- }
-}
-
-# Example per-device config
-# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
-device {
- name = epic-mouse-v1
- sensitivity = -0.01
-}
-
diff --git a/hypr/hyprland/keybinds.conf b/hypr/hyprland/keybinds.conf
deleted file mode 100644
index dda7ddf..0000000
--- a/hypr/hyprland/keybinds.conf
+++ /dev/null
@@ -1,73 +0,0 @@
-# See https://wiki.hyprland.org/Configuring/Keywords/
-$mainMod = SUPER # Sets "Windows" key as main modifier
-
-# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
-bind = $mainMod, T, exec, $terminal
-bind = $mainMod, Q, killactive,
-bind = $mainMod SHIFT, L, exit,
-bind = $mainMod, L, exec, hyprlock
-bind = $mainMod, E, exec, $fileManager
-bind = $mainMod, F, togglefloating,
-bind = $mainMod, R, global, quickshell:toggleLauncher
-bind = $mainMod SHIFT, D, global, quickshell:toggleBar
-bind = $mainMod, D, global, quickshell:toggleDnd
-bind = $mainMod, P, exec, hyprpicker
-bind = $mainMod, J, layoutmsg, togglesplit
-bind = CTRL SHIFT, escape, exec, $taskManager
-bind = $mainMod SHIFT, R, exec, ~/.config/hypr/wf-recorder/record.sh
-
-# Move focus with mainMod + arrow keys
-bind = $mainMod, left, movefocus, l
-bind = $mainMod, right, movefocus, r
-bind = $mainMod, up, movefocus, u
-bind = $mainMod, down, movefocus, d
-
-# Switch workspaces with mainMod + [0-5]
-bind = $mainMod, 1, workspace, 1
-bind = $mainMod, 2, workspace, 2
-bind = $mainMod, 3, workspace, 3
-bind = $mainMod, 4, workspace, 4
-bind = $mainMod, 5, workspace, 5
-
-# Move active window to a workspace with mainMod + SHIFT + [0-9]
-bind = $mainMod SHIFT, 1, movetoworkspace, 1
-bind = $mainMod SHIFT, 2, movetoworkspace, 2
-bind = $mainMod SHIFT, 3, movetoworkspace, 3
-bind = $mainMod SHIFT, 4, movetoworkspace, 4
-bind = $mainMod SHIFT, 5, movetoworkspace, 5
-
-# Example special workspace (scratchpad)
-bind = $mainMod, S, togglespecialworkspace, magic
-bind = $mainMod SHIFT, S, movetoworkspace, special:magic
-bind = $mainMod CTRL, S, movetoworkspace, e+0
-
-# Scroll through existing workspaces with mainMod + scroll
-bind = $mainMod, mouse_down, workspace, e+1
-bind = $mainMod, mouse_up, workspace, e-1
-
-# Move/resize windows with mainMod + LMB/RMB and dragging
-bindm = $mainMod, mouse:272, movewindow
-bindm = $mainMod, mouse:273, resizewindow
-
-# Screenshots
-bind = ,Print, exec, grim ~/Pictures/Screenshots/screenshot_$(date +'%Y-%m-%d_%H-%M-%S').png # Fullscreen screenshot -> ~/Pictures/Screenshots
-bind = SHIFT,Print, exec, grim -g "$(slurp)" ~/Pictures/Screenshots/screenshot_$(date +'%Y-%m-%d_%H-%M-%S').png # Select area screenshot with slurp
-bind = SUPER,Print, exec, grim -g "$(slurp)" - | wl-copy # Select area screenshot and copy to clipboard
-
-# Laptop multimedia keys for volume and LCD brightness
-bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
-bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
-bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
-bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
-bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 100%+
-bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 100%-
-
-# Requires playerctl
-bindl = ,XF86AudioNext, exec, playerctl next
-bindl = ,XF86AudioPause, exec, playerctl play-pause
-bindl = ,XF86AudioPlay, exec, playerctl play-pause
-bindl = ,XF86AudioPrev, exec, playerctl previous
-
-bind = $mainMod, equal, exec, ~/.config/hypr/hypr-zoom/exec.sh
-bind = $mainMod, bracketleft, exec, ~/.config/hypr/hyprsunset/increase_sunset.sh
-bind = $mainMod, bracketright, exec, ~/.config/hypr/hyprsunset/decrease_sunset.sh
diff --git a/hypr/hyprland/look_and_feel.conf b/hypr/hyprland/look_and_feel.conf
deleted file mode 100644
index f510e3b..0000000
--- a/hypr/hyprland/look_and_feel.conf
+++ /dev/null
@@ -1,79 +0,0 @@
-# Refer to https://wiki.hyprland.org/Configuring/Variables/
-
-# https://wiki.hyprland.org/Configuring/Variables/#general
-general {
- gaps_in = 0
- gaps_out = 0
-
- border_size = 2
-
- col.active_border = $lavender $flamingo 45deg
- col.inactive_border = $surface2
-
- resize_on_border = false
- allow_tearing = false
- layout = dwindle
-}
-
-# https://wiki.hyprland.org/Configuring/Variables/#decoration
-decoration {
- rounding = 0
- rounding_power = 2
-
- active_opacity = 1.0
- inactive_opacity = 1.0
-
- shadow {
- enabled = true
- range = 4
- render_power = 3
- color = $crust
- }
-
- # https://wiki.hyprland.org/Configuring/Variables/#blur
- blur {
- enabled = true
- size = 3
- passes = 1
-
- vibrancy = 0.1696
- }
-}
-
-# https://wiki.hyprland.org/Configuring/Variables/#animations
-animations {
- enabled = yes, please :)
-
- bezier = easeOutQuint,0.23,1,0.32,1
- bezier = easeInOutCubic,0.65,0.05,0.36,1
- bezier = linear,0,0,1,1
- bezier = almostLinear,0.5,0.5,0.75,1.0
- bezier = quick,0.15,0,0.1,1
-
- animation = global, 1, 10, default
- animation = border, 1, 5.39, easeOutQuint
- animation = windows, 1, 4.79, easeOutQuint
- animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
- animation = windowsOut, 1, 1.49, linear, popin 87%
- animation = fadeIn, 1, 1.73, almostLinear
- animation = fadeOut, 1, 1.46, almostLinear
- animation = fade, 1, 3.03, quick
- animation = layers, 1, 3.81, easeOutQuint
- animation = layersIn, 1, 4, easeOutQuint, fade
- animation = layersOut, 1, 1.5, linear, fade
- animation = fadeLayersIn, 1, 1.79, almostLinear
- animation = fadeLayersOut, 1, 1.39, almostLinear
- animation = workspaces, 1, 1.94, almostLinear, fade
- animation = workspacesIn, 1, 1.21, almostLinear, fade
- animation = workspacesOut, 1, 1.94, almostLinear, fade
-}
-
-# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
-# "Smart gaps" / "No gaps when only"
-# uncomment all if you wish to use that.
-# workspace = w[tv1], gapsout:0, gapsin:0
-# workspace = f[1], gapsout:0, gapsin:0
-# windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
-# windowrule = rounding 0, floating:0, onworkspace:w[tv1]
-# windowrule = bordersize 0, floating:0, onworkspace:f[1]
-# windowrule = rounding 0, floating:0, onworkspace:f[1]
diff --git a/hypr/hyprland/vars.conf b/hypr/hyprland/vars.conf
deleted file mode 100644
index ec28f62..0000000
--- a/hypr/hyprland/vars.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-$terminal = foot
-$fileManager = foot -e yazi
-$taskManager = foot -e btop --force-utf
diff --git a/hypr/hyprlock.conf b/hypr/hyprlock.conf
deleted file mode 100644
index 73a9495..0000000
--- a/hypr/hyprlock.conf
+++ /dev/null
@@ -1,85 +0,0 @@
-# https://github.com/end-4/dots-hyprland/blob/main/.config/hypr/hyprlock.conf
-
-source=~/.config/hypr/hyprlock/colors.conf
-
-background {
- color = rgba(181818FF)
-}
-
-input-field {
- monitor =
- size = 250, 50
- outline_thickness = 2
- dots_size = 0.1
- dots_spacing = 0.3
- outer_color = $entry_border_color
- inner_color = $entry_background_color
- font_color = $entry_color
- fade_on_empty = true
-
- position = 0, 20
- halign = center
- valign = center
-}
-
-label { # Caps Lock Warning
- monitor =
- text = cmd[update:250] ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/hyprlock/check-capslock.sh
- color = $text_color
- font_size = 13
- font_family = $font_family
- position = 0, -25
- halign = center
- valign = center
-}
-
-
-label { # Clock
- monitor =
- text = $TIME
- color = $text_color
- font_size = 65
- font_family = $font_family_clock
-
- position = 0, 300
- halign = center
- valign = center
-}
-label { # Date
- monitor =
- text = cmd[update:5000] date +"%A, %B %d"
- color = $text_color
- font_size = 17
- font_family = $font_family_clock
-
- position = 0, 240
- halign = center
- valign = center
-}
-
-label { # User
- monitor =
- text = ๏Šพ $USER
- color = $text_color
- outline_thickness = 2
- dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
- dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0
- dots_center = true
- font_size = 20
- font_family = $font_family
- position = 0, 50
- halign = center
- valign = bottom
-}
-
-label { # Status
- monitor =
- text = cmd[update:5000] ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/hyprlock/status.sh
- color = $text_color
- font_size = 14
- font_family = $font_family
-
- position = 30, -30
- halign = left
- valign = top
-}
diff --git a/hypr/hyprlock/check-capslock.sh b/hypr/hyprlock/check-capslock.sh
deleted file mode 100755
index ca56178..0000000
--- a/hypr/hyprlock/check-capslock.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/env bash
-
-MAIN_KB_CAPS=$(hyprctl devices | grep -B 6 "main: yes" | grep "capsLock" | head -1 | awk '{print $2}')
-
-if [ "$MAIN_KB_CAPS" = "yes" ]; then
- echo "Caps Lock active"
-else
- echo ""
-fi
diff --git a/hypr/hyprlock/colors.conf b/hypr/hyprlock/colors.conf
deleted file mode 100644
index b87c815..0000000
--- a/hypr/hyprlock/colors.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-$text_color = rgba(FFDAD6FF)
-$entry_background_color = rgba(41000311)
-$entry_border_color = rgba(896E6C55)
-$entry_color = rgba(FFDAD6FF)
-$font_family = JetBrainsMono Nerd Font
-$font_family_clock = JetBrainsMono Nerd Font
-$font_material_symbols = Material Symbols Rounded
diff --git a/hypr/hyprlock/status.sh b/hypr/hyprlock/status.sh
deleted file mode 100755
index 0d4ec2d..0000000
--- a/hypr/hyprlock/status.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/env bash
-
-############ Variables ############
-enable_battery=false
-battery_charging=false
-
-####### Check availability ########
-for battery in /sys/class/power_supply/*BAT*; do
- if [[ -f "$battery/uevent" ]]; then
- enable_battery=true
- if [[ $(cat /sys/class/power_supply/*/status | head -1) == "Charging" ]]; then
- battery_charging=true
- fi
- break
- fi
-done
-
-############# Output #############
-if [[ $enable_battery == true ]]; then
- if [[ $battery_charging == true ]]; then
- echo -n "(+) "
- fi
- echo -n "$(cat /sys/class/power_supply/*/capacity | head -1)"%
- if [[ $battery_charging == false ]]; then
- echo -n " remaining"
- fi
-fi
-
-echo ''
diff --git a/hypr/hyprpaper.conf b/hypr/hyprpaper.conf
deleted file mode 100644
index 9580494..0000000
--- a/hypr/hyprpaper.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-wallpaper {
- monitor =
- path = ~/Pictures/space.png
- fit_mode = cover
-}
diff --git a/hypr/hyprsunset.conf b/hypr/hyprsunset.conf
deleted file mode 100644
index 22a688c..0000000
--- a/hypr/hyprsunset.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-max-gamma = 150
-
-profile {
- time = 7:30
- identity = true
-}
-
-profile {
- time = 21:00
- temperature = 4000
- gamma = 1.0
-}
diff --git a/hypr/hyprsunset/decrease_sunset.sh b/hypr/hyprsunset/decrease_sunset.sh
deleted file mode 100755
index 7af5aa8..0000000
--- a/hypr/hyprsunset/decrease_sunset.sh
+++ /dev/null
@@ -1 +0,0 @@
-hyprctl hyprsunset temperature +1000
diff --git a/hypr/hyprsunset/increase_sunset.sh b/hypr/hyprsunset/increase_sunset.sh
deleted file mode 100755
index 99d1d9f..0000000
--- a/hypr/hyprsunset/increase_sunset.sh
+++ /dev/null
@@ -1 +0,0 @@
-hyprctl hyprsunset temperature -1000
diff --git a/hypr/monitors.conf b/hypr/monitors.conf
deleted file mode 100644
index e69de29..0000000
--- a/hypr/monitors.conf
+++ /dev/null
diff --git a/hypr/wf-recorder/record.sh b/hypr/wf-recorder/record.sh
deleted file mode 100755
index c828fee..0000000
--- a/hypr/wf-recorder/record.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-
-# Check if a recording is already in progress
-if pgrep -x wf-recorder > /dev/null
-then
- # If recording, stop it
- notify-send -h string:wf-recorder:record -t 1000 "Recording Stopped"
- pkill wf-recorder
-else
- # If not recording, start it
- mkdir -p ~/Videos
- mkdir -p ~/Videos/Screencasts/
- notify-send -h string:wf-recorder:record -t 1000 "Recording Started"
- wf-recorder \
- -f ~/Videos/Screencasts/$(date '+%H%M%S-%d-%m-%Y').mp4 \
- --audio --audio-device alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__HDMI3__sink.monitor
-
-fi
diff --git a/hypr/workspaces.conf b/hypr/workspaces.conf
deleted file mode 100644
index e69de29..0000000
--- a/hypr/workspaces.conf
+++ /dev/null
diff --git a/i3/config b/i3/config
new file mode 100644
index 0000000..dc633fc
--- /dev/null
+++ b/i3/config
@@ -0,0 +1,111 @@
+set $mod Mod4
+font pango:Jetbrains Mono Nerd Font 16
+exec --no-startup-id dex --autostart --environment i3
+exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
+exec --no-startup-id nm-applet
+
+set $refresh_i3status killall -SIGUSR1 i3status
+bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
+bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
+bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
+bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
+
+floating_modifier $mod
+tiling_drag modifier titlebar
+
+bindsym $mod+t exec kitty
+bindsym $mod+q kill
+
+bindsym $mod+d exec --no-startup-id dmenu_run
+
+bindsym $mod+Left focus left
+bindsym $mod+Down focus down
+bindsym $mod+Up focus up
+bindsym $mod+Right focus right
+bindsym $mod+Shift+Left move left
+bindsym $mod+Shift+Down move down
+bindsym $mod+Shift+Up move up
+bindsym $mod+Shift+Right move right
+
+bindsym $mod+h split h
+bindsym $mod+v split v
+
+bindsym $mod+f fullscreen toggle
+bindsym $mod+s layout stacking
+bindsym $mod+w layout tabbed
+bindsym $mod+e layout toggle split
+
+bindsym $mod+Shift+f floating toggle
+# change focus between tiling / floating windows
+# bindsym $mod+space focus mode_toggle
+
+# focus the parent container
+bindsym $mod+a focus parent
+
+# focus the child container
+#bindsym $mod+d focus child
+
+set $ws1 "1"
+set $ws2 "2"
+set $ws3 "3"
+set $ws4 "4"
+set $ws5 "5"
+set $ws6 "6"
+set $ws7 "7"
+set $ws8 "8"
+set $ws9 "9"
+set $ws10 "10"
+
+bindsym $mod+1 workspace number $ws1
+bindsym $mod+2 workspace number $ws2
+bindsym $mod+3 workspace number $ws3
+bindsym $mod+4 workspace number $ws4
+bindsym $mod+5 workspace number $ws5
+bindsym $mod+6 workspace number $ws6
+bindsym $mod+7 workspace number $ws7
+bindsym $mod+8 workspace number $ws8
+bindsym $mod+9 workspace number $ws9
+bindsym $mod+0 workspace number $ws10
+
+bindsym $mod+Shift+1 move container to workspace number $ws1
+bindsym $mod+Shift+2 move container to workspace number $ws2
+bindsym $mod+Shift+3 move container to workspace number $ws3
+bindsym $mod+Shift+4 move container to workspace number $ws4
+bindsym $mod+Shift+5 move container to workspace number $ws5
+bindsym $mod+Shift+6 move container to workspace number $ws6
+bindsym $mod+Shift+7 move container to workspace number $ws7
+bindsym $mod+Shift+8 move container to workspace number $ws8
+bindsym $mod+Shift+9 move container to workspace number $ws9
+bindsym $mod+Shift+0 move container to workspace number $ws10
+
+# reload the configuration file
+bindsym $mod+Shift+c reload
+# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
+bindsym $mod+Shift+r restart
+# exit i3 (logs you out of your X session)
+bindsym $mod+Shift+l exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
+
+mode "resize" {
+ bindsym j resize shrink width 10 px or 10 ppt
+ bindsym k resize grow height 10 px or 10 ppt
+ bindsym l resize shrink height 10 px or 10 ppt
+ bindsym semicolon resize grow width 10 px or 10 ppt
+
+ bindsym Left resize shrink width 10 px or 10 ppt
+ bindsym Down resize grow height 10 px or 10 ppt
+ bindsym Up resize shrink height 10 px or 10 ppt
+ bindsym Right resize grow width 10 px or 10 ppt
+
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+ bindsym $mod+r mode "default"
+}
+
+bindsym $mod+r mode "resize"
+
+exec xrandr --auto
+exec --no-startup-id 'xmodmap -e "pointer = 3 2 1"'
+
+bar {
+ status_command i3status
+}
diff --git a/kitty/kitty.conf b/kitty/kitty.conf
new file mode 100644
index 0000000..d019b9e
--- /dev/null
+++ b/kitty/kitty.conf
@@ -0,0 +1,2 @@
+font_family JetBrains Mono Nerd Font
+confirm_os_window_close 0
diff --git a/lxqt/lxqt-config-appearance.conf b/lxqt/lxqt-config-appearance.conf
new file mode 100644
index 0000000..b246e4b
--- /dev/null
+++ b/lxqt/lxqt-config-appearance.conf
@@ -0,0 +1,4 @@
+[General]
+ControlGTKThemeEnabled=false
+__userfile__=true
+size=@Size(600 461)
diff --git a/lxqt/lxqt-config-file-associations.conf b/lxqt/lxqt-config-file-associations.conf
new file mode 100644
index 0000000..045a3dc
--- /dev/null
+++ b/lxqt/lxqt-config-file-associations.conf
@@ -0,0 +1,2 @@
+[General]
+size=@Size(600 400)
diff --git a/lxqt/lxqt-config-input.conf b/lxqt/lxqt-config-input.conf
new file mode 100644
index 0000000..6eb2392
--- /dev/null
+++ b/lxqt/lxqt-config-input.conf
@@ -0,0 +1,3 @@
+[General]
+__userfile__=true
+size=@Size(600 400)
diff --git a/lxqt/lxqt-config-locale.conf b/lxqt/lxqt-config-locale.conf
new file mode 100644
index 0000000..79b42c6
--- /dev/null
+++ b/lxqt/lxqt-config-locale.conf
@@ -0,0 +1,2 @@
+[General]
+__userfile__=true
diff --git a/lxqt/lxqt-config.conf b/lxqt/lxqt-config.conf
new file mode 100644
index 0000000..eec583c
--- /dev/null
+++ b/lxqt/lxqt-config.conf
@@ -0,0 +1,2 @@
+[General]
+size=@Size(956 1024)
diff --git a/lxqt/lxqt-powermanagement.conf b/lxqt/lxqt-powermanagement.conf
new file mode 100644
index 0000000..79b42c6
--- /dev/null
+++ b/lxqt/lxqt-powermanagement.conf
@@ -0,0 +1,2 @@
+[General]
+__userfile__=true
diff --git a/lxqt/lxqt.conf b/lxqt/lxqt.conf
new file mode 100644
index 0000000..9bc035d
--- /dev/null
+++ b/lxqt/lxqt.conf
@@ -0,0 +1,27 @@
+[General]
+__userfile__=true
+icon_follow_color_scheme=true
+palette_override=true
+single_click_activate=false
+theme=ambiance
+tool_bar_icon_size=24
+tool_button_style=ToolButtonTextBesideIcon
+wallpaper_override=true
+
+[Palette]
+base_color=#3c3b37
+highlight_color=#ef7747
+highlighted_text_color=#ffffff
+link_color=#8c9bff
+link_visited_color=#ffb3f7
+text_color=#eeedec
+tooltip_base_color=#31302d
+tooltip_text_color=#eeedec
+window_color=#31302d
+window_text_color=#f2f1f0
+
+[Qt]
+doubleClickInterval=400
+font="JetBrainsMono Nerd Font,14,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,,0,0"
+style=Fusion
+wheelScrollLines=3
diff --git a/lxqt/notifications.conf b/lxqt/notifications.conf
new file mode 100644
index 0000000..6e9439b
--- /dev/null
+++ b/lxqt/notifications.conf
@@ -0,0 +1,7 @@
+[General]
+__userfile__=true
+doNotDisturb=false
+placement=top-left
+screenWithMouse=false
+server_decides=10
+unattendedMaxNum=10
diff --git a/lxqt/session.conf b/lxqt/session.conf
new file mode 100644
index 0000000..2d45d38
--- /dev/null
+++ b/lxqt/session.conf
@@ -0,0 +1,9 @@
+[General]
+__userfile__=true
+
+[Mouse]
+accel_factor=20
+accel_threshold=10
+cursor_size=22
+cursor_theme=breeze_cursors
+left_handed=true
diff --git a/nixos/desktop-environment.nix b/nixos/desktop-environment.nix
index a6bb6fd..bde2730 100644
--- a/nixos/desktop-environment.nix
+++ b/nixos/desktop-environment.nix
@@ -1,38 +1,47 @@
-{ config, pkgs, quickshell, sessions, ... }:
+{ config, pkgs, sessions, ... }:
{
services.xserver.enable = true;
services.xserver.displayManager.startx.enable = true;
services.displayManager.ly.enable = true;
- services.desktopManager.gnome.enable = false;
services.desktopManager.plasma6.enable = true;
- programs.hyprland.enable = sessions.hyprland_wayland;
- programs.hyprlock.enable = sessions.hyprland_wayland;
- programs.foot.enable = true;
+ services.xserver.windowManager.i3.enable = sessions.i3_x11;
+ services.xserver.windowManager.twm.enable = true;
programs.dconf.enable = true;
+
+ services.desktopManager.gnome.enable = false;
+ programs.hyprland.enable = false;
+ programs.hyprlock.enable = false;
+
environment.systemPackages = with pkgs; [
- playerctl
- libnotify
- libGL
- lm_sensors
- slurp
- ] ++ (if sessions.hyprland_wayland then [
- quickshell.packages.${pkgs.system}.quickshell
- qt6.qtwayland
- catppuccin-cursors.mochaMauve
- grim
- awww
- hyprcursor
- hyprsunset
- hyprpicker
- wl-clipboard
- ] else []) ++ (if sessions.plasma_x11 then [
- xclip
- libx11
- libxrandr
- libxinerama
- libxcursor
- libxi
- libxext
- libxfixes
- ] else []);
+ playerctl
+ libnotify
+ libGL
+ lm_sensors
+ slurp
+ xclip
+ libx11
+ libxrandr
+ libxinerama
+ libxcursor
+ libxi
+ libxext
+ libxfixes
+ kitty
+ mesa-demos
+ xmodmap
+ xwallpaper
+
+ lxqt.lxqt-notificationd
+ lxqt.lxqt-powermanagement
+ lxqt.pavucontrol-qt
+ lxqt.pcmanfm-qt
+ lxqt.qlipper
+ lxqt.lxqt-config
+ lxqt.lxqt-themes
+
+ # Useful i3 tools
+ dmenu
+ i3status
+ i3lock
+ ];
}
diff --git a/nixos/environment.nix b/nixos/environment.nix
index c29c8bf..90ade53 100644
--- a/nixos/environment.nix
+++ b/nixos/environment.nix
@@ -47,7 +47,6 @@
btop
yazi
scrcpy
- wf-recorder
cava
wget
diff --git a/nixos/home.nix b/nixos/home.nix
index 95cdd2b..eb1413b 100644
--- a/nixos/home.nix
+++ b/nixos/home.nix
@@ -3,7 +3,7 @@
users.users.${username} = {
isNormalUser = true;
description = "User";
- extraGroups = [ "networkmanager" "wheel" "kvm" "adbusers" "docker" ];
+ extraGroups = [ "networkmanager" "wheel" "kvm" "adbusers" "docker" "video" "input" ];
packages = with pkgs; [];
shell = pkgs.fish;
};
diff --git a/quickshell/AppLauncher.qml b/quickshell/AppLauncher.qml
deleted file mode 100644
index f903f1f..0000000
--- a/quickshell/AppLauncher.qml
+++ /dev/null
@@ -1,242 +0,0 @@
-import QtQuick
-import QtQuick.Controls
-import Quickshell
-import Quickshell.Io
-
-Rectangle {
- id: appLauncher
-
- width: 400
- height: 600
- color: shellRoot.black
- antialiasing: true
-
- property bool isVisible: false
- property int hoverIndex: 0
- property var apps: []
-
- signal requestClose()
-
- focus: true
-
- Keys.onEscapePressed: requestClose()
-
- Keys.onUpPressed: {
- hoverIndex--;
- if (hoverIndex < 0) hoverIndex += appListModel.count;
- listView.positionViewAtIndex(hoverIndex, ListView.Contain);
- }
-
- Keys.onDownPressed: {
- hoverIndex = (hoverIndex + 1) % appListModel.count;
- listView.positionViewAtIndex(hoverIndex, ListView.Contain);
- }
-
- Keys.onReturnPressed: {
- if (hoverIndex >= 0 && hoverIndex < appListModel.count) {
- launchApp(appListModel.get(hoverIndex).appCommand)
- console.log(appListModel.get(hoverIndex).appCommand)
- }
- }
-
- Keys.onEnterPressed: {
- if (hoverIndex >= 0 && hoverIndex < appListModel.count) {
- launchApp(appListModel.get(hoverIndex).appCommand)
- console.log(appListModel.get(hoverIndex).appCommand)
- }
- }
-
- onIsVisibleChanged: {
- if (!isVisible) return;
- hoverIndex = 0;
- appLauncher.forceActiveFocus();
- searchInput.forceActiveFocus();
- }
-
- Process {
- id: appLoader
- running: false
- command: ["sh", "-c", "~/.config/quickshell/scripts/list-apps.sh"]
-
- stdout: SplitParser {
- onRead: data => {
- const lines = data.split('\n');
- for (const line of lines) {
- if (line.trim().length === 0) continue;
-
- const parts = line.split('|');
- if (parts.length < 4) continue;
-
- apps.push({
- appName: parts[0],
- appDescription: parts[1],
- appIcon: parts[2],
- appCommand: parts[3]
- });
- }
-
- applySearch("");
- }
- }
-
- onRunningChanged: {
- if (running) return;
- appLoader.running = false;
- }
- }
-
- function loadApps() {
- appLoader.running = true;
- }
-
- function applySearch(searchString) {
- appListModel.clear();
- for (const app of apps) {
- if (app.appName.toLowerCase().includes(searchString.toLowerCase())) {
- appListModel.append(app);
- }
- }
- }
-
- Component.onCompleted: {
- loadApps();
- }
-
- Column {
- anchors.fill: parent
- anchors.margins: 12
- spacing: 8
-
- Rectangle {
- width: parent.width
- height: 36
- color: "transparent"
-
- Text {
- anchors.centerIn: parent
- text: "Applications"
- font.family: shellRoot.fontFamily
- font.pixelSize: 20
- font.weight: Font.Medium
- color: shellRoot.white
- }
-
- Rectangle {
- width: 28
- height: 28
- anchors.right: parent.right
- anchors.verticalCenter: parent.verticalCenter
- radius: 6
- color: closeMouseArea.containsMouse ? shellRoot.red : "transparent"
-
- Text {
- anchors.centerIn: parent
- text: "โœ•"
- font.family: shellRoot.fontFamily
- font.pixelSize: 16
- font.weight: Font.Bold
- color: closeMouseArea.containsMouse ? shellRoot.white : shellRoot.red
- }
-
- MouseArea {
- id: closeMouseArea
- anchors.fill: parent
- hoverEnabled: true
- cursorShape: Qt.PointingHandCursor
- onClicked: appLauncher.requestClose()
- }
- }
- }
-
- Rectangle {
- width: parent.width
- height: 36
- color: shellRoot.black
- border.color: shellRoot.green
- border.width: 1
-
- TextInput {
- id: searchInput
- width: parent.width
- anchors.left: parent.left
- anchors.right: parent.right
- anchors.leftMargin: 8
- anchors.rightMargin: 8
- anchors.verticalCenter: parent.verticalCenter
- color: "white"
- font.pixelSize: 14
- onTextEdited: {
- applySearch(searchInput.text);
- hoverIndex = 0;
- }
- }
- }
-
- ListView {
- id: listView
- width: parent.width
- height: parent.height - 88
- spacing: 8
- clip: true
-
- model: ListModel {
- id: appListModel
- }
-
- delegate: Rectangle {
- width: listView.width
- height: 30
- color: {
- if (appLauncher.hoverIndex === index) return shellRoot.lightgray;
- return shellRoot.gray;
- }
-
- Row {
- anchors.fill: parent
- anchors.leftMargin: 12
- anchors.rightMargin: 12
- anchors.topMargin: 8
- anchors.bottomMargin: 8
- spacing: 12
-
- Text {
- width: parent.width - 62
- anchors.centerIn: parent
- text: model.appName
- font.family: shellRoot.fontFamily
- font.pixelSize: 14
- font.weight: Font.Medium
- color: {
- return shellRoot.white;
- }
- elide: Text.ElideRight
- }
- }
-
- MouseArea {
- id: mouseArea
- anchors.fill: parent
- hoverEnabled: true
- cursorShape: Qt.PointingHandCursor
-
- onEntered: {
- appLauncher.hoverIndex = index;
- }
-
- onClicked: {
- launchApp(model.appCommand);
- }
- }
- }
- }
- }
-
- function launchApp(command) {
- appLauncher.requestClose()
-
- // Use a small delay before launching to ensure the window closes properly
- Qt.callLater(() => {
- Quickshell.execDetached(["sh", "-c", command + " &"])
- })
- }
-}
diff --git a/quickshell/BatteryInfo.qml b/quickshell/BatteryInfo.qml
deleted file mode 100644
index 72e4f3b..0000000
--- a/quickshell/BatteryInfo.qml
+++ /dev/null
@@ -1,139 +0,0 @@
-import QtQuick
-import QtQuick.Layouts
-import Quickshell
-import Quickshell.Io
-
-Rectangle {
- id: batteryInfoRect
-
- width: 300
- height: 120
- Layout.fillWidth: true
- Layout.fillHeight: true
- color: shellRoot.black
- antialiasing: true
- topLeftRadius: 10
- topRightRadius: 10
- property var energy: ""
- property var voltage: ""
- property var capacity: ""
-
- Timer {
- interval: 5000
- running: true
- repeat: false
- onTriggered: {
- fetchProc.running = true;
- }
- }
-
- signal requestClose()
- focus: true
- Keys.onEscapePressed: requestClose()
-
- Process {
- id: fetchProc
- command: ["sh", "-c", "~/.config/quickshell/scripts/battery-info.sh"]
-
- stdout: SplitParser {
- onRead: data => {
- if (data.includes("energy")) {
- energy = data.split(":")[1]
- return
- }
- if (data.includes("voltage")) {
- voltage = data.split(":")[1]
- return
- }
- if (data.includes("capacity")) {
- capacity = data.split(":")[1]
- return
- }
- }
-
- }
- Component.onCompleted: running = true
- }
-
- RowLayout {
- anchors.centerIn: parent
- ColumnLayout {
- anchors.left: parent
- Text {
- text: "Energy"
- font.family: shellRoot.fontFamily
- font.pixelSize: 20
- font.weight: Font.Medium
- color: shellRoot.green
- MouseArea {
- anchors.fill: parent
- onClicked: {
- }
- }
- }
- Text {
- text: "Capacity"
- font.family: shellRoot.fontFamily
- font.pixelSize: 20
- font.weight: Font.Medium
- color: shellRoot.green
- MouseArea {
- anchors.fill: parent
- onClicked: {
- }
- }
- }
- Text {
- text: "Voltage"
- font.family: shellRoot.fontFamily
- font.pixelSize: 20
- font.weight: Font.Medium
- color: shellRoot.green
- MouseArea {
- anchors.fill: parent
- onClicked: {
- }
- }
- }
- }
- ColumnLayout {
- anchors.right: parent
- Text {
- text: energy
- font.family: shellRoot.fontFamily
- font.pixelSize: 20
- font.weight: Font.Medium
- color: shellRoot.white
- MouseArea {
- anchors.fill: parent
- onClicked: {
- }
- }
- }
- Text {
- text: capacity
- font.family: shellRoot.fontFamily
- font.pixelSize: 20
- font.weight: Font.Medium
- color: shellRoot.white
- MouseArea {
- anchors.fill: parent
- onClicked: {
- }
- }
- }
- Text {
- text: voltage
- font.family: shellRoot.fontFamily
- font.pixelSize: 20
- font.weight: Font.Medium
- color: shellRoot.white
- MouseArea {
- anchors.fill: parent
- onClicked: {
- }
- }
- }
- }
- }
-}
diff --git a/quickshell/IconButton.qml b/quickshell/IconButton.qml
deleted file mode 100644
index 96c4c7f..0000000
--- a/quickshell/IconButton.qml
+++ /dev/null
@@ -1,41 +0,0 @@
-import QtQuick
-
-MouseArea {
- id: iconButton
-
- property string icon: ""
- property string tooltip: ""
-
- width: 32
- height: 32
-
- hoverEnabled: true
- cursorShape: Qt.PointingHandCursor
- enabled: true
- z: 10
-
- Rectangle {
- anchors.fill: parent
- color: "transparent"
- radius: 6
-
- Behavior on color {
- ColorAnimation { duration: 200 }
- }
-
- Text {
- id: iconText
- anchors.centerIn: parent
- text: iconButton.icon
- font.family: shellRoot.fontFamily
- font.pixelSize: 22
- color: shellRoot.white
-
- Component.onCompleted: {
- console.log("IconButton text:", iconButton.icon, "length:", iconButton.icon.length)
- }
- }
- }
-
-
-}
diff --git a/quickshell/NotificationOverlay.qml b/quickshell/NotificationOverlay.qml
deleted file mode 100644
index d54f8f6..0000000
--- a/quickshell/NotificationOverlay.qml
+++ /dev/null
@@ -1,121 +0,0 @@
-import Quickshell
-import Quickshell.Services.Notifications
-import Quickshell.Wayland
-import QtQuick
-
-PanelWindow {
- id: root
-
- anchors {
- top: true
- left: true
- }
-
- margins {
- top: 15
- left: 15
- }
-
- implicitWidth: 360
- implicitHeight: notificationColumn.implicitHeight
-
- color: "transparent"
- exclusiveZone: 0
-
- WlrLayershell.layer: WlrLayer.Overlay
-
- NotificationServer {
- id: server
-
- bodySupported: true
- imageSupported: false
- actionsSupported: true
-
- onNotification: notification => {
- notification.tracked = true
- }
- }
-
- Column {
- id: notificationColumn
-
- spacing: 10
-
- Repeater {
- model: server.trackedNotifications
-
- Rectangle {
- id: notification
-
- width: 360
- height: Math.max(content.implicitHeight + 24, 80)
-
- color: "#000000"
-
- border.width: 1
- border.color: "#404040"
-
- opacity: 0
-
- Behavior on y {
- NumberAnimation {
- duration: 200
- easing.type: Easing.OutCubic
- }
- }
-
- Behavior on opacity {
- NumberAnimation {
- duration: 150
- }
- }
-
- Component.onCompleted: opacity = shellRoot.dnd ? 0 : 0.8
-
- Timer {
- interval: 2000
- running: true
- repeat: false
-
- onTriggered: {
- notification.opacity = 0
- destroyTimer.start()
- }
- }
-
- Timer {
- id: destroyTimer
-
- interval: 150
- running: false
- repeat: false
-
- onTriggered: {
- modelData.dismiss()
- }
- }
-
- Column {
- id: content
-
- anchors.fill: parent
- anchors.margins: 12
-
- spacing: 4
-
- Text {
- text: modelData.summary
- color: "white"
- font.bold: true
- }
-
- Text {
- text: modelData.body
- color: "white"
- wrapMode: Text.Wrap
- }
- }
- }
- }
- }
-}
diff --git a/quickshell/Procs.qml b/quickshell/Procs.qml
deleted file mode 100644
index 6442bfb..0000000
--- a/quickshell/Procs.qml
+++ /dev/null
@@ -1,137 +0,0 @@
-import Quickshell
-import Quickshell.Io
-import QtQuick
-
-Scope {
- Timer {
- interval: 5000
- running: true
- repeat: true
- onTriggered: {
- cpuProc.running = true
- memProc.running = true
- brightnessProc.running = true
- volumeProc.running = true
- batteryProc.running = true
- networkProc.running = true
- bluetoothProc.running = true
- temperatureProc.running = true
- }
- }
-
- Process {
- id: cpuProc
- command: ["sh", "-c", "head -1 /proc/stat"]
-
- stdout: SplitParser {
- onRead: data => {
- var p = data.trim().split(/\s+/)
- var idle = parseInt(p[4]) + parseInt(p[5])
- var total = p.slice(1, 8).reduce((a, b) => a + parseInt(b), 0)
- if (lastCpuTotal > 0) {
- cpuUsage = Math.round(100 * (1 - (idle - lastCpuIdle) / (total - lastCpuTotal)))
- }
- lastCpuTotal = total
- lastCpuIdle = idle
- }
- }
- Component.onCompleted: running = true
- }
-
- Process {
- id: memProc
- command: ["sh", "-c", "free | grep Mem"]
- stdout: SplitParser {
- onRead: data => {
- var parts = data.trim().split(/\s+/)
- var total = parseInt(parts[1]) || 1
- var used = parseInt(parts[2]) || 0
- memUsage = Math.round(100 * used / total)
- }
- }
- Component.onCompleted: running = true
- }
-
- Process {
- id: temperatureProc
- command: ["sh", "-c", "~/.config/quickshell/scripts/cpu_temp.sh"]
- stdout: SplitParser {
- onRead: data => {
- cpu_temperature = parseInt(data.trim()) || 0
- }
- }
- Component.onCompleted: running = true
- }
-
- Process {
- id: brightnessProc
- command: ["sh", "-c", "~/.config/quickshell/scripts/brightness.sh"]
- stdout: SplitParser {
- onRead: data => {
- var parts = data.trim().split(/\s+/)
- brightness = parseInt(parts[0]) || 100
- temperature = parseInt(parts[1]) || 6000
- }
- }
- Component.onCompleted: running = true
- }
-
- Process {
- id: volumeProc
- command: ["sh", "-c", "wpctl get-volume @DEFAULT_AUDIO_SINK@"]
- stdout: SplitParser {
- onRead: data => {
- var parts = data.trim().split(/\s+/)
- if (parts.length == 3) {
- volume_muted = true;
- } else {
- volume_muted = false;
- }
- volume = (parseFloat(parts[1].trim()) || 0) * 100
- }
- }
- Component.onCompleted: running = true
- }
-
- Process {
- id: batteryProc
- command: ["sh", "-c", "~/.config/quickshell/scripts/battery.sh"]
- stdout: SplitParser {
- onRead: data => {
- var parts = data.trim().split(/\s+/)
- battery = parseInt(parts[0]) || 0
- batteryCharging = parseInt(parts[1]) || false
- }
- }
- Component.onCompleted: running = true
- }
-
- Process {
- id: networkProc
- command: ["sh", "-c", "~/.config/quickshell/scripts/network.sh"]
- stdout: SplitParser {
- onRead: data => {
- var parts = data.trim().split(/\s+/)
- wifiName = parts[0];
- }
- }
- Component.onCompleted: running = true
- }
-
- Process {
- id: bluetoothProc
- command: ["sh", "-c", "~/.config/quickshell/scripts/bluetooth.sh"]
- stdout: SplitParser {
- onRead: data => {
- data = data.trim()
- if (data == "Offline") {
- bluetoothName = "Offline"
- return
- }
- var parts = data.split(" ")
- bluetoothName = parts.slice(2).join(" ")
- }
- }
- Component.onCompleted: running = true
- }
-}
diff --git a/quickshell/items/DataBus.qml b/quickshell/items/DataBus.qml
deleted file mode 100644
index ef9f952..0000000
--- a/quickshell/items/DataBus.qml
+++ /dev/null
@@ -1,23 +0,0 @@
-import QtQuick
-import QtQuick.Layouts
-
-RowLayout {
- spacing: 0
- Text {
- text: " Data Bus:"
- color: shellRoot.white
- font {
- family: shellRoot.fontFamily
- pixelSize: shellRoot.fontSize
- }
- }
- Text {
- text: cpuUsage
- color: shellRoot.orange
- font {
- family: shellRoot.fontFamily
- pixelSize: shellRoot.fontSize
- bold: true
- }
- }
-}
diff --git a/quickshell/items/Electrons.qml b/quickshell/items/Electrons.qml
deleted file mode 100644
index f75c126..0000000
--- a/quickshell/items/Electrons.qml
+++ /dev/null
@@ -1,27 +0,0 @@
-import QtQuick
-import QtQuick.Layouts
-
-RowLayout {
- spacing: 0
- Text {
- text: " Electrons:"
- color: shellRoot.white
- font {
- family: shellRoot.fontFamily
- pixelSize: shellRoot.fontSize
- }
- }
- Text {
- text: (batteryCharging ? ("AC/DC(" + battery + ")") : battery)
- color: (battery <= redBatteryPoint) ? shellRoot.red : ((battery <= orangeBatteryPoint) ? shellRoot.orange : shellRoot.green)
- font {
- family: shellRoot.fontFamily
- pixelSize: shellRoot.fontSize
- bold: true
- }
- }
- MouseArea {
- anchors.fill: parent
- onClicked: shellRoot.batteryInfo = !shellRoot.batteryModeConfig
- }
-}
diff --git a/quickshell/items/Latch.qml b/quickshell/items/Latch.qml
deleted file mode 100644
index 5cc6487..0000000
--- a/quickshell/items/Latch.qml
+++ /dev/null
@@ -1,23 +0,0 @@
-import QtQuick
-import QtQuick.Layouts
-
-RowLayout {
- spacing: 0
- Text {
- text: " Latch:"
- color: shellRoot.white
- font {
- family: shellRoot.fontFamily
- pixelSize: shellRoot.fontSize
- }
- }
- Text {
- text: memUsage
- color: shellRoot.orange
- font {
- family: shellRoot.fontFamily
- pixelSize: shellRoot.fontSize
- bold: true
- }
- }
-}
diff --git a/quickshell/items/LowEnergy.qml b/quickshell/items/LowEnergy.qml
deleted file mode 100644
index bfd33ab..0000000
--- a/quickshell/items/LowEnergy.qml
+++ /dev/null
@@ -1,28 +0,0 @@
-import QtQuick
-import QtQuick.Layouts
-
-RowLayout {
- spacing: 0
- opacity: !shellRoot.dnd
- Text {
- text: " Low Energy:"
- color: shellRoot.white
- font {
- family: shellRoot.fontFamily
- pixelSize: shellRoot.fontSize
- }
- }
- Text {
- text: bluetoothName
- color: bluetoothName == "Offline" ? shellRoot.red : shellRoot.green
- font {
- family: shellRoot.fontFamily
- pixelSize: shellRoot.fontSize
- bold: true
- }
- }
- MouseArea {
- anchors.fill: parent
- onClicked: bluetoothManagerProc.running = true
- }
-}
diff --git a/quickshell/items/Photons.qml b/quickshell/items/Photons.qml
deleted file mode 100644
index 0ba94ee..0000000
--- a/quickshell/items/Photons.qml
+++ /dev/null
@@ -1,32 +0,0 @@
-import QtQuick
-import QtQuick.Layouts
-
-RowLayout {
- spacing: 0
- Text {
- text: " Photons:"
- color: shellRoot.white
- font {
- family: shellRoot.fontFamily
- pixelSize: shellRoot.fontSize
- }
- }
- Text {
- text: brightness
- color: shellRoot.orange
- font {
- family: shellRoot.fontFamily
- pixelSize: shellRoot.fontSize
- bold: true
- }
- }
- Text {
- text: "(" + temperature + "K)"
- color: shellRoot.red
- font {
- family: shellRoot.fontFamily
- pixelSize: shellRoot.fontSize
- bold: true
- }
- }
-}
diff --git a/quickshell/items/Radiation.qml b/quickshell/items/Radiation.qml
deleted file mode 100644
index e2a6c09..0000000
--- a/quickshell/items/Radiation.qml
+++ /dev/null
@@ -1,23 +0,0 @@
-import QtQuick
-import QtQuick.Layouts
-
-RowLayout {
- spacing: 0
- Text {
- text: " Radiation:"
- color: shellRoot.white
- font {
- family: shellRoot.fontFamily
- pixelSize: shellRoot.fontSize
- }
- }
- Text {
- text: cpu_temperature + "K"
- color: shellRoot.orange
- font {
- family: shellRoot.fontFamily
- pixelSize: shellRoot.fontSize
- bold: true
- }
- }
-}
diff --git a/quickshell/items/Radio.qml b/quickshell/items/Radio.qml
deleted file mode 100644
index 77e542e..0000000
--- a/quickshell/items/Radio.qml
+++ /dev/null
@@ -1,29 +0,0 @@
-import QtQuick
-import QtQuick.Layouts
-
-RowLayout {
- spacing: 0
- opacity: !shellRoot.dnd
-
- Text {
- text: " Radio:"
- color: shellRoot.white
- font {
- family: shellRoot.fontFamily
- pixelSize: shellRoot.fontSize
- }
- }
- Text {
- text: wifiName
- color: wifiName == "Offline" ? shellRoot.red : shellRoot.green
- font {
- family: shellRoot.fontFamily
- pixelSize: shellRoot.fontSize
- bold: true
- }
- }
- MouseArea {
- anchors.fill: parent
- onClicked: networkManagerProc.running = true
- }
-}
diff --git a/quickshell/items/Spin.qml b/quickshell/items/Spin.qml
deleted file mode 100644
index 72e6105..0000000
--- a/quickshell/items/Spin.qml
+++ /dev/null
@@ -1,45 +0,0 @@
-import QtQuick
-import QtQuick.Layouts
-
-RowLayout {
- spacing: 0
- Text {
- text: " Spin:"
- color: shellRoot.white
- font {
- family: shellRoot.fontFamily
- pixelSize: shellRoot.fontSize
- }
- }
- Text {
- property var formatMode: "HH:mm:ss"
-
- id: clock
- text: Qt.formatDateTime(new Date(), clock.formatMode)
- color: shellRoot.purple
- font {
- family: shellRoot.fontFamily
- pixelSize: shellRoot.fontSize
- bold: true
- }
-
- Timer {
- interval: 1000
- running: true
- repeat: true
- onTriggered: clock.text = Qt.formatDateTime(new Date(), clock.formatMode)
- }
-
- MouseArea {
- anchors.fill: parent
- onClicked: {
- if (clock.formatMode === "HH:mm:ss") {
- clock.formatMode = "yyyy/MM/dd, dddd"
- } else {
- clock.formatMode = "HH:mm:ss"
- }
- clock.text = Qt.formatDateTime(new Date(), clock.formatMode)
- }
- }
- }
-}
diff --git a/quickshell/items/Waves.qml b/quickshell/items/Waves.qml
deleted file mode 100644
index f8c0359..0000000
--- a/quickshell/items/Waves.qml
+++ /dev/null
@@ -1,23 +0,0 @@
-import QtQuick
-import QtQuick.Layouts
-
-RowLayout {
- spacing: 0
- Text {
- text: " Waves:"
- color: shellRoot.white
- font {
- family: shellRoot.fontFamily
- pixelSize: shellRoot.fontSize
- }
- }
- Text {
- text: volume
- color: volume_muted ? shellRoot.red : shellRoot.green
- font {
- family: shellRoot.fontFamily
- pixelSize: shellRoot.fontSize
- bold: true
- }
- }
-}
diff --git a/quickshell/items/Workspace.qml b/quickshell/items/Workspace.qml
deleted file mode 100644
index f793850..0000000
--- a/quickshell/items/Workspace.qml
+++ /dev/null
@@ -1,22 +0,0 @@
-import QtQuick
-import Quickshell.Hyprland
-
-Repeater {
- model: 5
-
- Text {
- property bool isActive: Hyprland.focusedWorkspace?.id === (index + 1)
-
- text: index + 1
- color: isActive ? shellRoot.green : shellRoot.white
- font {
- pixelSize: shellRoot.fontSize;
- bold: true;
- }
-
- MouseArea {
- anchors.fill: parent
- onClicked: Hyprland.dispatch("workspace " + (index + 1))
- }
- }
-}
diff --git a/quickshell/scripts/battery-info.py b/quickshell/scripts/battery-info.py
deleted file mode 100644
index c3958f7..0000000
--- a/quickshell/scripts/battery-info.py
+++ /dev/null
@@ -1,39 +0,0 @@
-# this script was used to generate the battery-info.sh via chatgpt
-
-import subprocess
-
-output = subprocess.run(
- ["upower", "--enumerate"],
- capture_output=True
-).stdout.decode('utf-8')
-
-target = None
-
-for line in output.split("\n"):
- if "BAT" not in line:
- continue
- target = line
- break
-
-print(line)
-
-output = subprocess.run(
- ["upower", "-i", line],
- capture_output=True
-).stdout.decode('utf-8')
-
-energy = None
-voltage = None
-capacity = None
-
-for line in output.split("\n"):
- if energy is None and "energy:" in line:
- energy = line.split(":")[1].strip()
- if voltage is None and "voltage:" in line:
- voltage = line.split(":")[1].strip()
- if capacity is None and "capacity:" in line:
- capacity = line.split(":")[1].strip()
-
-print("energy:", energy)
-print("voltage:", voltage)
-print("capacity:", capacity)
diff --git a/quickshell/scripts/battery-info.sh b/quickshell/scripts/battery-info.sh
deleted file mode 100755
index 414d168..0000000
--- a/quickshell/scripts/battery-info.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env bash
-
-target=$(upower --enumerate | awk '/BAT/ { print; exit }')
-
-upower -i "$target" | awk -F: '
-/energy:/ && !e { e=$2 }
-/voltage:/ && !v { v=$2 }
-/capacity:/ && !c { c=$2 }
-END {
- gsub(/^[ \t]+/, "", e)
- gsub(/^[ \t]+/, "", v)
- gsub(/^[ \t]+/, "", c)
-
- print "energy:", e
- print "voltage:", v
- print "capacity:", c
-}'
diff --git a/quickshell/scripts/battery.sh b/quickshell/scripts/battery.sh
deleted file mode 100755
index 77f800a..0000000
--- a/quickshell/scripts/battery.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-battery=$(cat /sys/class/power_supply/BAT1/capacity)
-charging=$(cat /sys/class/power_supply/ACAD/online)
-echo "$battery $charging"
diff --git a/quickshell/scripts/bluetooth.sh b/quickshell/scripts/bluetooth.sh
deleted file mode 100755
index 861e4a3..0000000
--- a/quickshell/scripts/bluetooth.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env bash
-
-connected="$(bluetoothctl devices Connected)"
-
-if [ -z "$connected" ]; then
- echo "Offline"
-else
- echo "$connected"
-fi
diff --git a/quickshell/scripts/brightness.sh b/quickshell/scripts/brightness.sh
deleted file mode 100755
index a39b85d..0000000
--- a/quickshell/scripts/brightness.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-brightness=$(cat /sys/class/backlight/acpi_video0/actual_brightness)
-temp=$(hyprctl hyprsunset temperature 2>/dev/null | grep -o '[0-9]\+')
-if [ -z "$temp" ]; then temp=6000; fi
-echo "$brightness $temp"
diff --git a/quickshell/scripts/cpu_temp.sh b/quickshell/scripts/cpu_temp.sh
deleted file mode 100755
index de73d7d..0000000
--- a/quickshell/scripts/cpu_temp.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-temp=$(sensors | awk '/^Package id 0:/ {print int($4) + 273}')
-echo "$temp"
diff --git a/quickshell/scripts/list-apps.sh b/quickshell/scripts/list-apps.sh
deleted file mode 100755
index bac48b6..0000000
--- a/quickshell/scripts/list-apps.sh
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/bin/sh
-# List desktop applications for the launcher
-
-# Blacklist - apps to hide (add desktop file basenames here)
-BLACKLIST=(
- # "xfce4-about.desktop"
- # "avahi-discover.desktop"
- # "bssh.desktop"
- # "bvnc.desktop"
- # "qv4l2.desktop"
- # "qvidcap.desktop"
- # "lstopo.desktop"
- # "uuctl.desktop"
- # "codium.desktop" # Hide regular VSCodium (keep Wayland version)
- # "xgps.desktop" # Hide Xgps
- # "xgpsspeed.desktop" # Hide Xgpsspeed
-)
-
-# Search paths for .desktop files (local first so overrides work)
-XDG_DATA_DIRS="${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
-IFS=':' read -ra SEARCH_PATHS <<< "$XDG_DATA_DIRS"
-
-# Function to find icon path
-find_icon() {
- local icon_name="$1"
-
- # If it's already a path, return it
- if [[ "$icon_name" == /* ]]; then
- echo "$icon_name"
- return
- fi
-
- # Common icon sizes to try
- local sizes=(48 32 64 128 256)
-
- # Icon theme paths
- local icon_paths=(
- "$HOME/.local/share/icons"
- "$HOME/.icons"
- "/usr/share/icons"
- "/usr/share/pixmaps"
- )
-
- # Try to find the icon
- for path in "${icon_paths[@]}"; do
- # Try with extensions
- for ext in png svg xpm; do
- # Direct match in pixmaps
- if [ -f "$path/$icon_name.$ext" ]; then
- echo "$path/$icon_name.$ext"
- return
- fi
-
- # Try in hicolor theme with different sizes
- for size in "${sizes[@]}"; do
- if [ -f "$path/hicolor/${size}x${size}/apps/$icon_name.$ext" ]; then
- echo "$path/hicolor/${size}x${size}/apps/$icon_name.$ext"
- return
- fi
- done
- done
- done
-
- # If not found, just return the icon name
- echo "$icon_name"
-}
-
-# Collect all desktop files and process, avoiding duplicates
-# We use process substitution to avoid subshell issues with arrays
-declare -A seen_apps
-
-for dir in "${SEARCH_PATHS[@]}"; do
- [ ! -d "$dir" ] && continue
-
- while IFS= read -r desktop_file; do
- basename_file=$(basename "$desktop_file")
-
- # Skip duplicates (local overrides system)
- [[ -n "${seen_apps[$basename_file]}" ]] && continue
- seen_apps[$basename_file]=1
-
- # Skip blacklisted
- skip=0
- for blacklisted in "${BLACKLIST[@]}"; do
- if [[ "$basename_file" == "$blacklisted" ]]; then
- skip=1
- break
- fi
- done
- [[ $skip -eq 1 ]] && continue
-
- # Skip if NoDisplay=true
- grep -q "^NoDisplay=true" "$desktop_file" 2>/dev/null && continue
-
- # Extract fields
- name=$(grep "^Name=" "$desktop_file" | head -1 | cut -d= -f2-)
- comment=$(grep "^Comment=" "$desktop_file" | head -1 | cut -d= -f2-)
- icon=$(grep "^Icon=" "$desktop_file" | head -1 | cut -d= -f2-)
- exec=$(grep "^Exec=" "$desktop_file" | head -1 | cut -d= -f2- | sed 's/%[uUfF]//g' | sed 's/%[cdnNvmki]//g')
-
- # Skip if no name or exec
- [ -z "$name" ] && continue
- [ -z "$exec" ] && continue
-
- # Default comment if empty
- [ -z "$comment" ] && comment="Application"
-
- # Find icon path
- icon_path=$(find_icon "$icon")
-
- # Output in format: name|comment|icon_path|exec
- echo "$name|$comment|$icon_path|$exec"
-
- done < <(find -L "$dir" -name "*.desktop" -type f 2>/dev/null)
-done | sort -u
diff --git a/quickshell/scripts/network.sh b/quickshell/scripts/network.sh
deleted file mode 100755
index f50707e..0000000
--- a/quickshell/scripts/network.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-connections=$(nmcli connection show --active | sed -n '2 p')
-echo "$connections"
diff --git a/quickshell/shell.qml b/quickshell/shell.qml
deleted file mode 100644
index 2396ea8..0000000
--- a/quickshell/shell.qml
+++ /dev/null
@@ -1,253 +0,0 @@
-import "./items"
-import Quickshell
-import Quickshell.Wayland
-import Quickshell.Hyprland
-import Quickshell.Io
-import QtQuick
-import QtQuick.Layouts
-
-ShellRoot {
- id: shellRoot
-
- property int redBatteryPoint: 15
- property int orangeBatteryPoint: 30
-
- property color black: "#000000"
- property color gray: "#202020"
- property color lightgray: "#404040"
- property color white: "#ffffff"
- property color green: "#28CD41"
- property color red: "#FF4040"
- property color orange: "#FFA500"
- property color purple: "#BF00FF"
- property color blue: "#00FFFF"
- property string fontFamily: "JetBrainsMono Nerd Font"
- property int fontSize: 18
-
- property bool appLauncherVisible: false
- property bool barVisible: true
- property bool calendarVisible: false
- property bool dnd: false
- property bool batteryInfo: false
- property bool blink: false
-
- GlobalShortcut {
- id: barShortcut
- name: "toggleBar"
- onPressed: {
- barVisible = !barVisible
- }
- }
- GlobalShortcut {
- id: launcherShortcut
- name: "toggleLauncher"
- onPressed: {
- appLauncherVisible = !appLauncherVisible
- }
- }
- GlobalShortcut {
- id: dndShortCut
- name: "toggleDnd"
- onPressed: {
- dnd = !dnd
- }
- }
-
- Variants {
- model: Quickshell.screens
- PanelWindow {
- id: root
- // don't render this if shell.navVisible is false
- visible: shellRoot.barVisible
-
- property int cpuUsage: 0
- property int lastCpuTotal: 0
- property int lastCpuIdle: 0
- property int memUsage: 0
- property int cpu_temperature: 6000
- property int brightness: 100
- property int temperature: 6000
- property int volume: 12
- property bool volume_muted: false
- property int battery: 12
- property bool batteryCharging: false
- property string wifiName: "Offline"
- property string bluetoothName: "Offline"
-
- Procs {}
- Process {
- id: networkManagerProc
- command: ["foot", "-e", "nmtui"]
- Component.onCompleted: running = false
- }
- Process {
- id: bluetoothManagerProc
- command: ["foot", "-e", "bluetui"]
- Component.onCompleted: running = false
- }
-
- anchors.bottom: true
- anchors.left: true
- anchors.right: true
- implicitHeight: 32
- color: shellRoot.black
-
- RowLayout {
- anchors.fill: parent
- anchors.margins: 0
- anchors.leftMargin: 10
- anchors.rightMargin: 10
-
-
- Workspace {}
- Item { Layout.fillWidth: true }
- Radio {}
- LowEnergy {}
- Electrons {}
- Waves {}
- Photons {}
- Radiation {}
- DataBus {}
- Latch {}
- Spin {}
- }
- }
- }
- Variants {
- model: Quickshell.screens
-
- PanelWindow {
- visible: shellRoot.appLauncherVisible
-
- anchors {
- top: true
- left: true
- }
-
- margins {
- top: 5
- left: Screen.width/2 - 200
- }
-
- implicitWidth: 400
- implicitHeight: 600
-
- color: "transparent"
- exclusiveZone: 0
-
- WlrLayershell.layer: WlrLayer.Overlay
- WlrLayershell.keyboardFocus: WlrKeyboardFocus.OnDemand
-
- Behavior on height {
- NumberAnimation { duration: 200; easing.type: Easing.OutCubic }
- }
-
- AppLauncher {
- anchors.fill: parent
- isVisible: shellRoot.appLauncherVisible
-
- onRequestClose: {
- shellRoot.appLauncherVisible = false
- }
- }
- }
- }
-
- Variants {
- model: Quickshell.screens
-
- PanelWindow {
- visible: shellRoot.batteryInfo
-
- anchors {
- bottom: true
- left: true
- }
-
- margins {
- top: 0
- left: Screen.width / 2 - 100
- }
-
- implicitWidth: 300
- implicitHeight: 120
-
- color: "transparent"
- exclusiveZone: 0
-
- WlrLayershell.layer: WlrLayer.Overlay
- WlrLayershell.keyboardFocus: WlrKeyboardFocus.OnDemand
-
- Behavior on height {
- NumberAnimation { duration: 200; easing.type: Easing.OutCubic }
- }
-
- BatteryInfo {
- onRequestClose: {
- shellRoot.batteryInfo = false
- }
- }
- }
- }
-
- NotificationOverlay {}
-
- Timer {
- interval: 1000 * 60 * 30
- running: true
- repeat: true
- onTriggered: {
- if (dnd) return;
- shellRoot.blink = true;
- }
- }
-
- Variants {
- model: Quickshell.screens
-
- PanelWindow {
- visible: shellRoot.blink
-
- margins {
- top: 0
- left: 0
- }
-
- implicitWidth: 800
- implicitHeight: 400
-
- color: "transparent"
- exclusiveZone: 0
-
- WlrLayershell.layer: WlrLayer.Overlay
- WlrLayershell.keyboardFocus: WlrKeyboardFocus.OnDemand
-
- Behavior on height {
- NumberAnimation { duration: 200; easing.type: Easing.OutCubic }
- }
-
- Rectangle {
- id: blinkRect
-
- width: 800
- height: 400
- Layout.fillWidth: true
- Layout.fillHeight: true
- color: shellRoot.black
- antialiasing: true
- radius: 10
- focus: true
- Keys.onEscapePressed: shellRoot.blink = false;
-
- Text {
- anchors.centerIn: parent
- text: "BLINK"
- font.family: shellRoot.fontFamily
- font.weight: 800
- font.pixelSize: 200
- color: shellRoot.white
- }
- }
- }
- }
-}
diff --git a/hypr/battery-notif.sh b/scripts/battery_notif.sh
index 6c721a5..e5f44e9 100755..100644
--- a/hypr/battery-notif.sh
+++ b/scripts/battery_notif.sh
@@ -1,5 +1,4 @@
#!/usr/bin/env bash
-
while true; do
status=$(cat /sys/class/power_supply/BAT1/status)
if [[ "$status" = "Discharging" ]]; then