From adc025c7d9508a8f181ad1d0be79db5cc0344578 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 6 Oct 2023 12:11:50 +0800 Subject: [PATCH] init nix-os configuraion files --- README.md | 95 +++++++ flake.lock | 214 +++++++++++++++ flake.nix | 97 +++++++ home/core.nix | 110 ++++++++ home/desktop.nix | 88 +++++++ home/server.nix | 26 ++ libs/default.nix | 13 + .../home/hyprland/conf/hypr/animations.conf | 23 ++ modules/home/hyprland/conf/hypr/hyprland.conf | 144 ++++++++++ .../home/hyprland/conf/hypr/keybindings.conf | 128 +++++++++ modules/home/hyprland/conf/hypr/monitors.conf | 24 ++ modules/home/hyprland/conf/hypr/nvidia.conf | 11 + .../conf/hypr/scripts/brightnesscontrol.sh | 42 +++ .../hyprland/conf/hypr/scripts/cliphist.sh | 64 +++++ .../conf/hypr/scripts/dontkillsteam.sh | 5 + .../hyprland/conf/hypr/scripts/gamemode.sh | 14 + .../conf/hypr/scripts/logoutlaunch.sh | 49 ++++ .../hyprland/conf/hypr/scripts/modeswitch.sh | 52 ++++ .../conf/hypr/scripts/resetxdgportal.sh | 12 + .../hyprland/conf/hypr/scripts/rofilaunch.sh | 48 ++++ .../hyprland/conf/hypr/scripts/rofiselect.sh | 24 ++ .../hyprland/conf/hypr/scripts/screenshot.sh | 26 ++ .../conf/hypr/scripts/systemupdate.sh | 27 ++ .../hyprland/conf/hypr/scripts/themeselect.sh | 49 ++++ .../hyprland/conf/hypr/scripts/themeswitch.sh | 125 +++++++++ .../conf/hypr/scripts/volumecontrol.sh | 76 ++++++ .../conf/hypr/themes/Catppuccin-Latte.conf | 44 ++++ .../conf/hypr/themes/Catppuccin-Mocha.conf | 44 ++++ .../conf/hypr/themes/Cyberpunk-Edge.conf | 49 ++++ .../conf/hypr/themes/Decay-Green.conf | 44 ++++ .../conf/hypr/themes/Graphite-Mono.conf | 49 ++++ .../conf/hypr/themes/Material-Sakura.conf | 49 ++++ .../hyprland/conf/hypr/themes/Rose-Pine.conf | 44 ++++ .../conf/hypr/themes/Tokyo-Night.conf | 44 ++++ .../home/hyprland/conf/hypr/userprefs.conf | 19 ++ .../home/hyprland/conf/hypr/windowrules.conf | 53 ++++ modules/home/hyprland/conf/kitty/kitty.conf | 11 + .../conf/kitty/themes/Catppuccin-Latte.conf | 80 ++++++ .../conf/kitty/themes/Catppuccin-Mocha.conf | 80 ++++++ .../conf/kitty/themes/Cyberpunk-Edge.conf | 72 +++++ .../conf/kitty/themes/Decay-Green.conf | 47 ++++ .../conf/kitty/themes/Graphite-Mono.conf | 72 +++++ .../conf/kitty/themes/Material-Sakura.conf | 55 ++++ .../hyprland/conf/kitty/themes/Rose-Pine.conf | 56 ++++ .../conf/kitty/themes/Tokyo-Night.conf | 77 ++++++ .../home/hyprland/conf/rofi/clipboard.rasi | 124 +++++++++ modules/home/hyprland/conf/rofi/config.rasi | 147 +++++++++++ .../hyprland/conf/rofi/styles/style_1.png | Bin 0 -> 17830 bytes .../hyprland/conf/rofi/styles/style_1.rasi | 147 +++++++++++ .../hyprland/conf/rofi/styles/style_2.png | Bin 0 -> 22243 bytes .../hyprland/conf/rofi/styles/style_2.rasi | 154 +++++++++++ .../hyprland/conf/rofi/styles/style_3.png | Bin 0 -> 25220 bytes .../hyprland/conf/rofi/styles/style_3.rasi | 141 ++++++++++ .../hyprland/conf/rofi/styles/style_4.png | Bin 0 -> 24896 bytes .../hyprland/conf/rofi/styles/style_4.rasi | 149 +++++++++++ .../hyprland/conf/rofi/styles/style_5.png | Bin 0 -> 30179 bytes .../hyprland/conf/rofi/styles/style_5.rasi | 149 +++++++++++ .../hyprland/conf/rofi/styles/style_6.png | Bin 0 -> 21727 bytes .../hyprland/conf/rofi/styles/style_6.rasi | 150 +++++++++++ .../conf/rofi/themes/Catppuccin-Latte.rasi | 37 +++ .../conf/rofi/themes/Catppuccin-Mocha.rasi | 37 +++ .../conf/rofi/themes/Cyberpunk-Edge.rasi | 37 +++ .../conf/rofi/themes/Decay-Green.rasi | 37 +++ .../conf/rofi/themes/Graphite-Mono.rasi | 37 +++ .../conf/rofi/themes/Material-Sakura.rasi | 29 +++ .../hyprland/conf/rofi/themes/Rose-Pine.rasi | 29 +++ .../conf/rofi/themes/Tokyo-Night.rasi | 29 +++ .../home/hyprland/conf/rofi/themeselect.rasi | 101 ++++++++ modules/home/hyprland/conf/waybar/config.ctl | 6 + .../home/hyprland/conf/waybar/config.jsonc | 245 ++++++++++++++++++ .../conf/waybar/modes/wb_bottom_01.jsonc | 201 ++++++++++++++ .../conf/waybar/modes/wb_top_01.jsonc | 202 +++++++++++++++ .../conf/waybar/modules/battery.jsonc | 13 + .../conf/waybar/modules/bluetooth.jsonc | 9 + .../conf/waybar/modules/cliphist.jsonc | 10 + .../hyprland/conf/waybar/modules/clock.jsonc | 6 + .../hyprland/conf/waybar/modules/cpu.jsonc | 7 + .../hyprland/conf/waybar/modules/footer.jsonc | 47 ++++ .../hyprland/conf/waybar/modules/header.jsonc | 12 + .../hyprland/conf/waybar/modules/memory.jsonc | 9 + .../hyprland/conf/waybar/modules/mode.jsonc | 10 + .../hyprland/conf/waybar/modules/mpris.jsonc | 13 + .../conf/waybar/modules/network.jsonc | 11 + .../hyprland/conf/waybar/modules/power.jsonc | 8 + .../conf/waybar/modules/pulseaudio.jsonc | 32 +++ .../hyprland/conf/waybar/modules/style.css | 164 ++++++++++++ .../conf/waybar/modules/taskbar.jsonc | 16 ++ .../hyprland/conf/waybar/modules/tray.jsonc | 5 + .../conf/waybar/modules/updates.jsonc | 8 + .../conf/waybar/modules/wallchange.jsonc | 9 + .../hyprland/conf/waybar/modules/wbar.jsonc | 10 + .../hyprland/conf/waybar/modules/window.jsonc | 15 ++ .../conf/waybar/modules/workspaces.jsonc | 18 ++ modules/home/hyprland/conf/waybar/style.css | 164 ++++++++++++ .../conf/waybar/themes/Catppuccin-Latte.css | 16 ++ .../conf/waybar/themes/Catppuccin-Mocha.css | 16 ++ .../conf/waybar/themes/Cyberpunk-Edge.css | 16 ++ .../conf/waybar/themes/Decay-Green.css | 16 ++ .../conf/waybar/themes/Graphite-Mono.css | 16 ++ .../conf/waybar/themes/Material-Sakura.css | 16 ++ .../hyprland/conf/waybar/themes/Rose-Pine.css | 16 ++ .../conf/waybar/themes/Tokyo-Night.css | 16 ++ .../hyprland/conf/waybar/themes/theme.css | 1 + .../home/hyprland/conf/waybar/wbarconfgen.sh | 122 +++++++++ .../home/hyprland/conf/waybar/wbarstylegen.sh | 61 +++++ .../home/hyprland/conf/waybar/wbarswitch.sh | 67 +++++ .../conf/wlogout/icons/hibernate_dark.png | Bin 0 -> 17133 bytes .../conf/wlogout/icons/hibernate_light.png | Bin 0 -> 8061 bytes .../hyprland/conf/wlogout/icons/lock_dark.png | Bin 0 -> 10224 bytes .../conf/wlogout/icons/lock_light.png | Bin 0 -> 11112 bytes .../conf/wlogout/icons/logout_dark.png | Bin 0 -> 9045 bytes .../conf/wlogout/icons/logout_light.png | Bin 0 -> 6858 bytes .../conf/wlogout/icons/reboot_dark.png | Bin 0 -> 15512 bytes .../conf/wlogout/icons/reboot_light.png | Bin 0 -> 17669 bytes .../conf/wlogout/icons/shutdown_dark.png | Bin 0 -> 16101 bytes .../conf/wlogout/icons/shutdown_light.png | Bin 0 -> 7851 bytes .../conf/wlogout/icons/suspend_dark.png | Bin 0 -> 16347 bytes .../conf/wlogout/icons/suspend_light.png | Bin 0 -> 19168 bytes modules/home/hyprland/conf/wlogout/layout_1 | 41 +++ modules/home/hyprland/conf/wlogout/layout_2 | 27 ++ .../home/hyprland/conf/wlogout/style_1.css | 104 ++++++++ .../home/hyprland/conf/wlogout/style_2.css | 82 ++++++ modules/home/hyprland/default.nix | 76 ++++++ modules/home/hyprland/env.nix | 44 ++++ modules/home/theme.nix | 47 ++++ modules/home/v2ray/default.nix | 11 + modules/home/vscode/default.nix | 28 ++ modules/home/vscode/keybindings.json | 69 +++++ modules/home/vscode/settings.json | 47 ++++ modules/home/xdg.nix | 77 ++++++ modules/home/zsh.nix | 0 modules/nixos/adb.nix | 5 + modules/nixos/core.nix | 70 +++++ modules/nixos/fonts/default.nix | 48 ++++ modules/nixos/fonts/fhs-fonts.nix | 33 +++ modules/nixos/gnome.nix | 47 ++++ modules/nixos/hyprland.nix | 7 + modules/nixos/nvidia.nix | 31 +++ modules/nixos/samba.nix | 50 ++++ modules/nixos/user-group.nix | 62 +++++ modules/nixos/virtualize/android.nix | 7 + modules/nixos/virtualize/appimage.nix | 9 + modules/nixos/virtualize/docker.nix | 11 + modules/nixos/virtualize/libvirtd/default.nix | 45 ++++ modules/nixos/virtualize/libvirtd/hooks.nix | 37 +++ .../qemu.d/win11/prepare/begin/start.sh | 44 ++++ .../libvirtd/qemu.d/win11/release/end/stop.sh | 13 + modules/nixos/virtualize/nixos-generators.nix | 6 + modules/nixos/virtualize/virtualbox.nix | 15 ++ modules/nixos/virtualize/wine.nix | 12 + modules/nixos/zfs.nix | 7 + nixos-install.sh | 5 + nixos-switch.sh | 3 + nixpkgs.nix | 8 + non-nixos-install.sh | 6 + overlays/default.nix | 34 +++ pkgs/default.nix | 5 + pkgs/waydroid-script/default.nix | 67 +++++ pkgs/waydroid-script/setup.py | 16 ++ profiles/gaea/default.nix | 147 +++++++++++ profiles/gaea/hardware-configuration.nix | 58 +++++ profiles/gaea/networking.nix | 42 +++ profiles/luna/default.nix | 144 ++++++++++ profiles/luna/hardware-configuration.nix | 35 +++ 164 files changed, 7520 insertions(+) create mode 100644 README.md create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 home/core.nix create mode 100644 home/desktop.nix create mode 100644 home/server.nix create mode 100644 libs/default.nix create mode 100644 modules/home/hyprland/conf/hypr/animations.conf create mode 100644 modules/home/hyprland/conf/hypr/hyprland.conf create mode 100644 modules/home/hyprland/conf/hypr/keybindings.conf create mode 100644 modules/home/hyprland/conf/hypr/monitors.conf create mode 100644 modules/home/hyprland/conf/hypr/nvidia.conf create mode 100755 modules/home/hyprland/conf/hypr/scripts/brightnesscontrol.sh create mode 100755 modules/home/hyprland/conf/hypr/scripts/cliphist.sh create mode 100755 modules/home/hyprland/conf/hypr/scripts/dontkillsteam.sh create mode 100755 modules/home/hyprland/conf/hypr/scripts/gamemode.sh create mode 100755 modules/home/hyprland/conf/hypr/scripts/logoutlaunch.sh create mode 100755 modules/home/hyprland/conf/hypr/scripts/modeswitch.sh create mode 100755 modules/home/hyprland/conf/hypr/scripts/resetxdgportal.sh create mode 100755 modules/home/hyprland/conf/hypr/scripts/rofilaunch.sh create mode 100755 modules/home/hyprland/conf/hypr/scripts/rofiselect.sh create mode 100755 modules/home/hyprland/conf/hypr/scripts/screenshot.sh create mode 100755 modules/home/hyprland/conf/hypr/scripts/systemupdate.sh create mode 100755 modules/home/hyprland/conf/hypr/scripts/themeselect.sh create mode 100755 modules/home/hyprland/conf/hypr/scripts/themeswitch.sh create mode 100755 modules/home/hyprland/conf/hypr/scripts/volumecontrol.sh create mode 100644 modules/home/hyprland/conf/hypr/themes/Catppuccin-Latte.conf create mode 100644 modules/home/hyprland/conf/hypr/themes/Catppuccin-Mocha.conf create mode 100644 modules/home/hyprland/conf/hypr/themes/Cyberpunk-Edge.conf create mode 100644 modules/home/hyprland/conf/hypr/themes/Decay-Green.conf create mode 100644 modules/home/hyprland/conf/hypr/themes/Graphite-Mono.conf create mode 100644 modules/home/hyprland/conf/hypr/themes/Material-Sakura.conf create mode 100644 modules/home/hyprland/conf/hypr/themes/Rose-Pine.conf create mode 100644 modules/home/hyprland/conf/hypr/themes/Tokyo-Night.conf create mode 100644 modules/home/hyprland/conf/hypr/userprefs.conf create mode 100644 modules/home/hyprland/conf/hypr/windowrules.conf create mode 100644 modules/home/hyprland/conf/kitty/kitty.conf create mode 100644 modules/home/hyprland/conf/kitty/themes/Catppuccin-Latte.conf create mode 100644 modules/home/hyprland/conf/kitty/themes/Catppuccin-Mocha.conf create mode 100644 modules/home/hyprland/conf/kitty/themes/Cyberpunk-Edge.conf create mode 100644 modules/home/hyprland/conf/kitty/themes/Decay-Green.conf create mode 100644 modules/home/hyprland/conf/kitty/themes/Graphite-Mono.conf create mode 100644 modules/home/hyprland/conf/kitty/themes/Material-Sakura.conf create mode 100644 modules/home/hyprland/conf/kitty/themes/Rose-Pine.conf create mode 100644 modules/home/hyprland/conf/kitty/themes/Tokyo-Night.conf create mode 100644 modules/home/hyprland/conf/rofi/clipboard.rasi create mode 100644 modules/home/hyprland/conf/rofi/config.rasi create mode 100644 modules/home/hyprland/conf/rofi/styles/style_1.png create mode 100644 modules/home/hyprland/conf/rofi/styles/style_1.rasi create mode 100644 modules/home/hyprland/conf/rofi/styles/style_2.png create mode 100644 modules/home/hyprland/conf/rofi/styles/style_2.rasi create mode 100644 modules/home/hyprland/conf/rofi/styles/style_3.png create mode 100644 modules/home/hyprland/conf/rofi/styles/style_3.rasi create mode 100644 modules/home/hyprland/conf/rofi/styles/style_4.png create mode 100644 modules/home/hyprland/conf/rofi/styles/style_4.rasi create mode 100644 modules/home/hyprland/conf/rofi/styles/style_5.png create mode 100644 modules/home/hyprland/conf/rofi/styles/style_5.rasi create mode 100644 modules/home/hyprland/conf/rofi/styles/style_6.png create mode 100644 modules/home/hyprland/conf/rofi/styles/style_6.rasi create mode 100644 modules/home/hyprland/conf/rofi/themes/Catppuccin-Latte.rasi create mode 100644 modules/home/hyprland/conf/rofi/themes/Catppuccin-Mocha.rasi create mode 100644 modules/home/hyprland/conf/rofi/themes/Cyberpunk-Edge.rasi create mode 100644 modules/home/hyprland/conf/rofi/themes/Decay-Green.rasi create mode 100644 modules/home/hyprland/conf/rofi/themes/Graphite-Mono.rasi create mode 100644 modules/home/hyprland/conf/rofi/themes/Material-Sakura.rasi create mode 100644 modules/home/hyprland/conf/rofi/themes/Rose-Pine.rasi create mode 100644 modules/home/hyprland/conf/rofi/themes/Tokyo-Night.rasi create mode 100644 modules/home/hyprland/conf/rofi/themeselect.rasi create mode 100644 modules/home/hyprland/conf/waybar/config.ctl create mode 100644 modules/home/hyprland/conf/waybar/config.jsonc create mode 100644 modules/home/hyprland/conf/waybar/modes/wb_bottom_01.jsonc create mode 100644 modules/home/hyprland/conf/waybar/modes/wb_top_01.jsonc create mode 100644 modules/home/hyprland/conf/waybar/modules/battery.jsonc create mode 100644 modules/home/hyprland/conf/waybar/modules/bluetooth.jsonc create mode 100644 modules/home/hyprland/conf/waybar/modules/cliphist.jsonc create mode 100644 modules/home/hyprland/conf/waybar/modules/clock.jsonc create mode 100644 modules/home/hyprland/conf/waybar/modules/cpu.jsonc create mode 100644 modules/home/hyprland/conf/waybar/modules/footer.jsonc create mode 100644 modules/home/hyprland/conf/waybar/modules/header.jsonc create mode 100644 modules/home/hyprland/conf/waybar/modules/memory.jsonc create mode 100644 modules/home/hyprland/conf/waybar/modules/mode.jsonc create mode 100644 modules/home/hyprland/conf/waybar/modules/mpris.jsonc create mode 100644 modules/home/hyprland/conf/waybar/modules/network.jsonc create mode 100644 modules/home/hyprland/conf/waybar/modules/power.jsonc create mode 100644 modules/home/hyprland/conf/waybar/modules/pulseaudio.jsonc create mode 100644 modules/home/hyprland/conf/waybar/modules/style.css create mode 100644 modules/home/hyprland/conf/waybar/modules/taskbar.jsonc create mode 100644 modules/home/hyprland/conf/waybar/modules/tray.jsonc create mode 100644 modules/home/hyprland/conf/waybar/modules/updates.jsonc create mode 100644 modules/home/hyprland/conf/waybar/modules/wallchange.jsonc create mode 100644 modules/home/hyprland/conf/waybar/modules/wbar.jsonc create mode 100644 modules/home/hyprland/conf/waybar/modules/window.jsonc create mode 100644 modules/home/hyprland/conf/waybar/modules/workspaces.jsonc create mode 100644 modules/home/hyprland/conf/waybar/style.css create mode 100644 modules/home/hyprland/conf/waybar/themes/Catppuccin-Latte.css create mode 100644 modules/home/hyprland/conf/waybar/themes/Catppuccin-Mocha.css create mode 100644 modules/home/hyprland/conf/waybar/themes/Cyberpunk-Edge.css create mode 100644 modules/home/hyprland/conf/waybar/themes/Decay-Green.css create mode 100644 modules/home/hyprland/conf/waybar/themes/Graphite-Mono.css create mode 100644 modules/home/hyprland/conf/waybar/themes/Material-Sakura.css create mode 100644 modules/home/hyprland/conf/waybar/themes/Rose-Pine.css create mode 100644 modules/home/hyprland/conf/waybar/themes/Tokyo-Night.css create mode 120000 modules/home/hyprland/conf/waybar/themes/theme.css create mode 100755 modules/home/hyprland/conf/waybar/wbarconfgen.sh create mode 100755 modules/home/hyprland/conf/waybar/wbarstylegen.sh create mode 100755 modules/home/hyprland/conf/waybar/wbarswitch.sh create mode 100644 modules/home/hyprland/conf/wlogout/icons/hibernate_dark.png create mode 100644 modules/home/hyprland/conf/wlogout/icons/hibernate_light.png create mode 100644 modules/home/hyprland/conf/wlogout/icons/lock_dark.png create mode 100644 modules/home/hyprland/conf/wlogout/icons/lock_light.png create mode 100644 modules/home/hyprland/conf/wlogout/icons/logout_dark.png create mode 100644 modules/home/hyprland/conf/wlogout/icons/logout_light.png create mode 100644 modules/home/hyprland/conf/wlogout/icons/reboot_dark.png create mode 100644 modules/home/hyprland/conf/wlogout/icons/reboot_light.png create mode 100644 modules/home/hyprland/conf/wlogout/icons/shutdown_dark.png create mode 100644 modules/home/hyprland/conf/wlogout/icons/shutdown_light.png create mode 100644 modules/home/hyprland/conf/wlogout/icons/suspend_dark.png create mode 100644 modules/home/hyprland/conf/wlogout/icons/suspend_light.png create mode 100644 modules/home/hyprland/conf/wlogout/layout_1 create mode 100644 modules/home/hyprland/conf/wlogout/layout_2 create mode 100644 modules/home/hyprland/conf/wlogout/style_1.css create mode 100644 modules/home/hyprland/conf/wlogout/style_2.css create mode 100644 modules/home/hyprland/default.nix create mode 100644 modules/home/hyprland/env.nix create mode 100644 modules/home/theme.nix create mode 100644 modules/home/v2ray/default.nix create mode 100644 modules/home/vscode/default.nix create mode 100644 modules/home/vscode/keybindings.json create mode 100644 modules/home/vscode/settings.json create mode 100644 modules/home/xdg.nix create mode 100644 modules/home/zsh.nix create mode 100644 modules/nixos/adb.nix create mode 100644 modules/nixos/core.nix create mode 100644 modules/nixos/fonts/default.nix create mode 100644 modules/nixos/fonts/fhs-fonts.nix create mode 100644 modules/nixos/gnome.nix create mode 100644 modules/nixos/hyprland.nix create mode 100644 modules/nixos/nvidia.nix create mode 100644 modules/nixos/samba.nix create mode 100644 modules/nixos/user-group.nix create mode 100644 modules/nixos/virtualize/android.nix create mode 100644 modules/nixos/virtualize/appimage.nix create mode 100644 modules/nixos/virtualize/docker.nix create mode 100644 modules/nixos/virtualize/libvirtd/default.nix create mode 100644 modules/nixos/virtualize/libvirtd/hooks.nix create mode 100644 modules/nixos/virtualize/libvirtd/qemu.d/win11/prepare/begin/start.sh create mode 100644 modules/nixos/virtualize/libvirtd/qemu.d/win11/release/end/stop.sh create mode 100644 modules/nixos/virtualize/nixos-generators.nix create mode 100644 modules/nixos/virtualize/virtualbox.nix create mode 100644 modules/nixos/virtualize/wine.nix create mode 100644 modules/nixos/zfs.nix create mode 100755 nixos-install.sh create mode 100755 nixos-switch.sh create mode 100644 nixpkgs.nix create mode 100644 non-nixos-install.sh create mode 100644 overlays/default.nix create mode 100644 pkgs/default.nix create mode 100644 pkgs/waydroid-script/default.nix create mode 100644 pkgs/waydroid-script/setup.py create mode 100644 profiles/gaea/default.nix create mode 100644 profiles/gaea/hardware-configuration.nix create mode 100644 profiles/gaea/networking.nix create mode 100644 profiles/luna/default.nix create mode 100644 profiles/luna/hardware-configuration.nix diff --git a/README.md b/README.md new file mode 100644 index 0000000..dcec3e0 --- /dev/null +++ b/README.md @@ -0,0 +1,95 @@ +### 目录结构 + +``` +├── home # home manager 配置信息 +│ ├── core.nix # 核心的通用配置,由其他配置引入 +│ ├── desktop.nix # 桌面环境配置 +│ ├── server.nix # 服务器配置 +├── modules # 通用模块,不同机器可以根据的需要引入 +│ ├── home # home manager 通用模块 +│ │ └── - +│ └── nixos # nixos 通用模块 +├── overlays # 安装包的修改配置 +│ └── - +├── pkgs +│ └── - +├── profiles # 不同机器的配置文件 +│ ├── appolo # 主服务器配置 +│ ├── gaea # 主用机配置 +│ └── luna # 虚拟机配置 +├── secrets +│ └── _public_keys_ +├── flake.lock +├── flake.nix # nix flake 入口 +├── nixos-install.sh # nixos 全新安装脚本 +└── flake.lock +``` + +### 如何安装? + +0. 准备一个 64 位的 nixos [minimal iso image](https://channels.nixos.org/nixos-22.11/latest-nixos-minimal-x86_64-linux.iso) 烧录好,然后进入 live 系统。 +1. 分区 + +使用 fdisk 或 parted 工具进行分区。现在假设两个分区为:`/dev/sda1` `/dev/sda2`。 + +2. 格式化分区 + +```bash + mkfs.fat -F 32 /dev/sda1 # boot / EFI 分区 + mkfs.ext4 /dev/sda2 # 系统分区 +``` + +3. 挂载 + +```bash + mount /dev/sda2 /mnt/nix + mkdir -p /mnt/boot + mount /dev/sda1 /mnt/boot +``` + +4. 生成一个基本的配置 + +```bash + nixos-generate-config --root /mnt +``` + +5. 克隆仓库到本地 + +```bash +nix-shell -p git +git clone https://github.com/synebula/.nix.git /mnt/.nix +cd /mnt/.nix/ +nix develop --extra-experimental-features "nix-command flakes" +``` + +6. 将 /mnt/etc/nixos 中的 `hardware-configuration.nix` 拷贝到 `/mnt/.nix/profiles//hardware-configuration.nix`, 其中``指需要的 profile。 + +```bash +cp /mnt/etc/nixos/hardware-configuration.nix /mnt/.nix/profiles//hardware-configuration.nix +``` +7. 用户名修改: 编辑 `/mnt/.nix/flake.nix` 修改 **username** 变量。 + +8. 使用 `mkpasswd {PASSWORD} -m sha-512` 命令生成的密码哈希串替换掉 `/mnt/.nix/modules/nixos/user-group.nix` 中的 `users.users..hashedPassword` 值替换掉。 + + +9. 安装 + +```bash +nixos-install --option substituters "https://mirrors.ustc.edu.cn/nix-channels/store https://cache.nixos.org" --no-root-passwd --flake .# + +# 或者 + +./nixos-install +``` + +10. 重启 + +```bash +reboot +``` + +### 日常更新系统脚本 + +``` bash +./nixos-switch +``` \ No newline at end of file diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..8a0fd3d --- /dev/null +++ b/flake.lock @@ -0,0 +1,214 @@ +{ + "nodes": { + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1693208669, + "narHash": "sha256-hHFaaUsZ860wvppPeiu7nJn/nXZjJfnqAQEu9SPFE9I=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "5bac4a1c06cd77cf8fc35a658ccb035a6c50cd2c", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-23.05", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager-unstable": { + "inputs": { + "nixpkgs": [ + "nixpkgs-unstable" + ] + }, + "locked": { + "lastModified": 1693859358, + "narHash": "sha256-r3Pak/ao3p8weTzR+Ry3qQrfRsmSOwWW5sAe73mrYKs=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "886ea1d213efd1082f419d066e89ef37635dc970", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "hyprland": { + "inputs": { + "hyprland-protocols": "hyprland-protocols", + "nixpkgs": "nixpkgs", + "systems": "systems", + "wlroots": "wlroots", + "xdph": "xdph" + }, + "locked": { + "lastModified": 1693468538, + "narHash": "sha256-3kWvxxIlMwYqUg4txxBipH3CEQglLNGPjtQnpNeoHJY=", + "owner": "hyprwm", + "repo": "Hyprland", + "rev": "fc0c1896e097b3c3b2170ae69d38724e43960fe1", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "Hyprland", + "type": "github" + } + }, + "hyprland-protocols": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1691753796, + "narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1693158576, + "narHash": "sha256-aRTTXkYvhXosGx535iAFUaoFboUrZSYb1Ooih/auGp0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a999c1cc0c9eb2095729d5aa03e0d8f7ed256780", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-unstable": { + "locked": { + "lastModified": 1693377291, + "narHash": "sha256-vYGY9bnqEeIncNarDZYhm6KdLKgXMS+HA2mTRaWEc80=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "e7f38be3775bab9659575f192ece011c033655f0", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1693341273, + "narHash": "sha256-wrsPjsIx2767909MPGhSIOmkpGELM9eufqLQOPxmZQg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "2ab91c8d65c00fd22a441c69bbf1bc9b420d5ea1", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "home-manager-unstable": "home-manager-unstable", + "hyprland": "hyprland", + "nixpkgs": "nixpkgs_2", + "nixpkgs-unstable": "nixpkgs-unstable" + } + }, + "systems": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "wlroots": { + "flake": false, + "locked": { + "host": "gitlab.freedesktop.org", + "lastModified": 1692976565, + "narHash": "sha256-eBKkG7tMxg92NskEn8dHRFY245JwjirWRoOZzW6DnUw=", + "owner": "wlroots", + "repo": "wlroots", + "rev": "717ded9bb0191ea31bf4368be32e7a15fe1b8294", + "type": "gitlab" + }, + "original": { + "host": "gitlab.freedesktop.org", + "owner": "wlroots", + "repo": "wlroots", + "rev": "717ded9bb0191ea31bf4368be32e7a15fe1b8294", + "type": "gitlab" + } + }, + "xdph": { + "inputs": { + "hyprland-protocols": [ + "hyprland", + "hyprland-protocols" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1691841170, + "narHash": "sha256-RCTm1/MVWYPnReMgyp7tr2ogGYo/pvw38jZaFwemgPU=", + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "rev": "57a3a41ba6b358109e4fc25c6a4706b5f7d93c6b", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..57a6e3a --- /dev/null +++ b/flake.nix @@ -0,0 +1,97 @@ +# Configuration file init by: nix flake init -t github:misterio77/nix-starter-config#standard +{ + outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, home-manager-unstable, ... }@inputs: + let + inherit (self) outputs; + inherit (nixpkgs) lib; + username = "alex"; + useremail = "reizero@live.com"; + hostname = "luna"; + libs = import ./libs { inherit nixpkgs; }; + in + rec { + # Your custom packages + # Acessible through 'nix build', 'nix shell', etc + packages = libs.forAllSystems (system: + let pkgs = nixpkgs.legacyPackages.${system}; + in import ./pkgs { inherit pkgs; } + ); + + # Your custom packages and modifications, exported as overlays + overlays = import ./overlays { inherit inputs; }; + + # NixOS configuration entrypoint + # Available through 'nixos-rebuild --flake .#your-hostname' + nixosConfigurations = + with builtins; lib.genAttrs (attrNames (readDir ./profiles)) + (profile: + lib.nixosSystem + { + specialArgs = { + inherit self inputs outputs username useremail; + hostname = profile; + }; + modules = [ + ./profiles/${profile} + ]; + } + ); + + # Standalone home-manager configuration entrypoint + # Available through 'home-manager --flake .#your-username@your-hostname' + # Or run 'nix build .#homeConfigurations..activationPackage' in none-nixos distro first + homeConfigurations = { + # FIXME replace with your username@hostname + "${username}" = home-manager-unstable.lib.homeManagerConfiguration { + pkgs = nixpkgs-unstable.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance + extraSpecialArgs = { + inherit inputs outputs username useremail; + hyprland = inputs.hyprland; + }; + modules = [ + # > Our main home-manager configuration file < + ./home/desktop.nix + + # Ony non-nixos use home-manager standalone, use this config fixing issues. + { + targets.genericLinux.enable = true; + } + ]; + }; + }; + }; + + inputs = { + # Nixpkgs + nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05"; + # You can access packages and modules from different nixpkgs revs + # at the same time. Here's an working example: + nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; + # Also see the 'unstable-packages' overlay at 'overlays/default.nix'. + + # The Nix User Repository + # nur.url = github:nix-community/NUR; + + # Home manager + home-manager = { + url = "github:nix-community/home-manager/release-23.05"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + # Home manager + home-manager-unstable = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs-unstable"; + }; + + hyprland.url = "github:hyprwm/Hyprland"; + + # TODO: Add any other flake you might need + # hardware.url = "github:nixos/nixos-hardware"; + + # Shameless plug: looking for a way to nixify your themes and make + # everything match nicely? Try nix-colors! + # nix-colors.url = "github:misterio77/nix-colors"; + }; + +} diff --git a/home/core.nix b/home/core.nix new file mode 100644 index 0000000..b4932a0 --- /dev/null +++ b/home/core.nix @@ -0,0 +1,110 @@ +# This is your home-manager configuration file +# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix) + +{ inputs, outputs, lib, config, pkgs, username, useremail, ... }: { + + home = { + inherit username; + homeDirectory = "/home/${username}"; + + # Add stuff for your user as you see fit: + packages = with pkgs; [ + nixpkgs-fmt + ]; + }; + + # Enable home-manager and git + programs = { + # home-manager.enable = true; + # git.enable = true; + + git = { + enable = true; + + userName = username; + userEmail = useremail; + + includes = [ + { + # use diffrent email & name for work + path = "~/work/.gitconfig"; + condition = "gitdir:~/work/"; + } + ]; + + extraConfig = { + init.defaultBranch = "master"; + push.autoSetupRemote = true; + pull.rebase = true; + + # replace https with ssh + # url = { + # "ssh://git@github.com/" = { + # insteadOf = "https://github.com/"; + # }; + # "ssh://git@gitlab.com/" = { + # insteadOf = "https://gitlab.com/"; + # }; + # "ssh://git@bitbucket.com/" = { + # insteadOf = "https://bitbucket.com/"; + # }; + # }; + }; + + }; + + bash = { + enable = true; + enableCompletion = true; + bashrcExtra = ""; + shellAliases = { }; + }; + + vim = { + enable = true; + plugins = with pkgs.vimPlugins; [ vim-airline ]; + settings = { ignorecase = true; }; + extraConfig = '' + set mouse=a + set expandtab + set tabstop=2 + set softtabstop=2 + set shiftwidth=2 + ''; + }; + }; + + + nixpkgs = { + # You can add overlays here + overlays = [ + # Add overlays your own flake exports (from overlays and pkgs dir): + outputs.overlays.additions + outputs.overlays.modifications + outputs.overlays.unstable-packages + + # You can also add overlays exported from other flakes: + # neovim-nightly-overlay.overlays.default + + # Or define it inline, for example: + # (final: prev: { + # hi = final.hello.overrideAttrs (oldAttrs: { + # patches = [ ./change-hello-to-hi.patch ]; + # }); + # }) + ]; + # Configure your nixpkgs instance + config = { + # Disable if you don't want unfree packages + allowUnfree = true; + # Workaround for https://github.com/nix-community/home-manager/issues/2942 + allowUnfreePredicate = (_: true); + }; + }; + + # Nicely reload system units when changing configs + systemd.user.startServices = "sd-switch"; + + # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion + home.stateVersion = "23.05"; +} diff --git a/home/desktop.nix b/home/desktop.nix new file mode 100644 index 0000000..60db685 --- /dev/null +++ b/home/desktop.nix @@ -0,0 +1,88 @@ +# This is your home-manager configuration file +# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix) + +{ inputs, outputs, lib, config, pkgs, username, useremail, hyprland, ... }: +{ + # You can import other home-manager modules here + imports = [ + # If you want to use modules your own flake exports (from modules/home-manager): + # outputs.homeManagerModules.example + + # Or modules exported from other flakes (such as nix-colors): + # inputs.nix-colors.homeManagerModules.default + + # You can also split up your configuration and import pieces of it here: + # ./nvim.nix + ./core.nix + ../modules/home/hyprland + ../modules/home/vscode + ../modules/home/v2ray + ../modules/home/xdg.nix + ../modules/home/theme.nix + ]; + + home = { + # Add stuff for your user as you see fit: + packages = with pkgs; [ + bc # GNU software calculator + vlc + imv + motrix + microsoft-edge + telegram-desktop + # firefox + # chromium + + zip + unzip + lsof + pciutils # lspci etc. + steam-run + frp + obsidian + wpsoffice-cn + xorg.xhost + + dbeaver + postman + # jdk + nodejs + yarn + flutter + oraclejdk + jetbrains.idea-community + # nur.repos.linyinfeng.wemeet + ]; + + sessionVariables = { + JAVA_HOME = "${pkgs.oraclejdk}"; + XIM = "fcitx"; + XIM_PROGRAM = "fcitx"; + XMODIFIERS = "@im=fcitx"; + }; + }; + + programs = { + bash = { + initExtra = '' + export XIM="fcitx" + export XIM_PROGRAM="fcitx" + export XMODIFIERS="@im=fcitx" + ''; + }; + }; + + + i18n.inputMethod = { + enabled = "fcitx5"; + fcitx5.addons = with pkgs; [ + fcitx5-chinese-addons + ]; + }; + + # Enable home-manager and git + programs = { + home-manager.enable = true; + # git.enable = true; + }; +} diff --git a/home/server.nix b/home/server.nix new file mode 100644 index 0000000..e422615 --- /dev/null +++ b/home/server.nix @@ -0,0 +1,26 @@ +# This is your home-manager configuration file +# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix) + +{ inputs, outputs, lib, config, pkgs, username, useremail, hyprland, ... }: { + # You can import other home-manager modules here + imports = [ + # If you want to use modules your own flake exports (from modules/home-manager): + # outputs.homeManagerModules.example + + # Or modules exported from other flakes (such as nix-colors): + # inputs.nix-colors.homeManagerModules.default + + # You can also split up your configuration and import pieces of it here: + # ./nvim.nix + ./core.nix + ]; + + home = { + # Add stuff for your user as you see fit: + packages = with pkgs; [ + ]; + }; + + # Enable home-manager and git + programs = { }; +} diff --git a/libs/default.nix b/libs/default.nix new file mode 100644 index 0000000..20d2d38 --- /dev/null +++ b/libs/default.nix @@ -0,0 +1,13 @@ +{ nixpkgs }: + +with nixpkgs.lib; { + # Add your library functions here + # + forAllSystems = genAttrs [ + "aarch64-linux" + "i686-linux" + "x86_64-linux" + "aarch64-darwin" + "x86_64-darwin" + ]; +} diff --git a/modules/home/hyprland/conf/hypr/animations.conf b/modules/home/hyprland/conf/hypr/animations.conf new file mode 100644 index 0000000..6246d41 --- /dev/null +++ b/modules/home/hyprland/conf/hypr/animations.conf @@ -0,0 +1,23 @@ + +# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█ +# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█ + + +# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + +animations { + enabled = yes + bezier = wind, 0.05, 0.9, 0.1, 1.05 + bezier = winIn, 0.1, 1.1, 0.1, 1.1 + bezier = winOut, 0.3, -0.3, 0, 1 + bezier = liner, 1, 1, 1, 1 + animation = windows, 1, 6, wind, slide + animation = windowsIn, 1, 6, winIn, slide + animation = windowsOut, 1, 5, winOut, slide + animation = windowsMove, 1, 5, wind, slide + animation = border, 1, 1, liner + animation = borderangle, 1, 30, liner, loop + animation = fade, 1, 10, default + animation = workspaces, 1, 5, wind +} + diff --git a/modules/home/hyprland/conf/hypr/hyprland.conf b/modules/home/hyprland/conf/hypr/hyprland.conf new file mode 100644 index 0000000..7e4be7c --- /dev/null +++ b/modules/home/hyprland/conf/hypr/hyprland.conf @@ -0,0 +1,144 @@ +###################################################################################### +#AUTOGENERATED HYPR CONFIG. +#PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT, +#OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS. +######################################################################################## + +# Please note not all available settings / options are set here. +# For a full list, see the wiki +# autogenerated = 1 # remove this line to remove the warning + + + +# █▀▄▀█ █▀█ █▄░█ █ ▀█▀ █▀█ █▀█ +# █░▀░█ █▄█ █░▀█ █ ░█░ █▄█ █▀▄ + +# See https://wiki.hyprland.org/Configuring/Monitors/ + +# monitor = DP-1, 2560x1080@144, 0x0, 1 +monitor = ,preferred,auto,auto + + + +# █░░ ▄▀█ █░█ █▄░█ █▀▀ █░█ +# █▄▄ █▀█ █▄█ █░▀█ █▄▄ █▀█ + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more +# Execute your favorite apps at launch + +exec-once = ~/.config/hypr/scripts/resetxdgportal.sh # reset XDPH for screenshare +exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # for XDPH +exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # for XDPH +exec-once = /usr/lib/polkit-kde-authentication-agent-1 # authentication dialogue for GUI apps +exec-once = waybar && ~/.config/waybar/wbarconfgen.sh n # launch the system panel +exec-once = blueman-applet # systray app for BT +exec-once = nm-applet --indicator # systray app for Network/Wifi +exec-once = dunst # start notification demon +exec-once = wl-paste --type text --watch cliphist store # clipboard store text data +exec-once = wl-paste --type image --watch cliphist store # clipboard store image data +exec-once = ~/.config/swww/swwwallpaper.sh # start wallpaper daemon +exec-once = fcitx5 +#exec-once = swayidle -w timeout 900 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' # turn off monitor after 15 mins + + + +# █▀▀ █▄░█ █░█ +# ██▄ █░▀█ ▀▄▀ + +# Some default env vars. + +# env = XDG_CURRENT_DESKTOP,Hyprland +# env = XDG_SESSION_TYPE,wayland +# env = XDG_SESSION_DESKTOP,Hyprland +# env = GDK_BACKEND,wayland +# env = QT_QPA_PLATFORM,wayland +# #env = QT_STYLE_OVERRIDE,kvantum +# env = QT_QPA_PLATFORMTHEME,qt5ct +# env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 +# env = QT_AUTO_SCREEN_SCALE_FACTOR,1 +# env = XDG_PICTURES_DIR,$HOME/Pictures + + + +# █ █▄░█ █▀█ █░█ ▀█▀ +# █ █░▀█ █▀▀ █▄█ ░█░ + +# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ + +input { + kb_layout = us + kb_variant = + kb_model = + kb_options = + kb_rules = + follow_mouse = 1 + + touchpad { + natural_scroll = no + } + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + force_no_accel = 1 + numlock_by_default = true +} + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more + +device:epic mouse V1 { + sensitivity = -0.5 +} + +# See https://wiki.hyprland.org/Configuring/Variables/ for more + +gestures { + workspace_swipe = true + workspace_swipe_fingers = 3 +} + + + +# █░░ ▄▀█ █▄█ █▀█ █░█ ▀█▀ █▀ +# █▄▄ █▀█ ░█░ █▄█ █▄█ ░█░ ▄█ + +# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + +dwindle { + pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = yes # you probably want this +} + +# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + +master { + new_is_master = true +} + + + +# █▀▄▀█ █ █▀ █▀▀ +# █░▀░█ █ ▄█ █▄▄ + +# See https://wiki.hyprland.org/Configuring/Variables/ for more + +misc { + vrr = 0 +} + + + +# █▀ █▀█ █░█ █▀█ █▀▀ █▀▀ +# ▄█ █▄█ █▄█ █▀▄ █▄▄ ██▄ + +# Source a file (multi-file configs) +# source = ~/.config/hypr/myColors.conf + +source = ~/.config/hypr/animations.conf +source = ~/.config/hypr/keybindings.conf +source = ~/.config/hypr/windowrules.conf +source = ~/.config/hypr/themes/theme.conf +source = ~/.config/hypr/monitors.conf # initially empty, to be configured by user and remains static +source = ~/.config/hypr/userprefs.conf # initially empty, to be configured by user and remains static + +# Note: as userprefs.conf is sourced at the end, settings configured in this file will override the defaults + diff --git a/modules/home/hyprland/conf/hypr/keybindings.conf b/modules/home/hyprland/conf/hypr/keybindings.conf new file mode 100644 index 0000000..d0f2933 --- /dev/null +++ b/modules/home/hyprland/conf/hypr/keybindings.conf @@ -0,0 +1,128 @@ +# █▄▀ █▀▀ █▄█ █▄▄ █ █▄░█ █▀▄ █ █▄░█ █▀▀ █▀ +# █░█ ██▄ ░█░ █▄█ █ █░▀█ █▄▀ █ █░▀█ █▄█ ▄█ + + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more + +# main modifier +$mainMod = SUPER # windows key + +# window/session actions +bind = $mainMod, Q, exec, ~/.config/hypr/scripts/dontkillsteam.sh # killactive, # kill the window on focus +bind = $mainMod, delete, exit, # kill hyperland session +bind = $mainMod, esc, exit, # kill hyperland session +bind = $mainMod, F, togglefloating, # toggle the window on focus to float +bind = ALT, return, fullscreen, # toggle the window on focus to fullscreen +bind = $mainMod, G, exec, ~/.config/hypr/scripts/gamemode.sh # disable hypr effects for gamemode +bind = $mainMod, L, exec, swaylock # lock screen +bind = $mainMod, backspace, exec, ~/.config/hypr/scripts/logoutlaunch.sh 1 # logout menu +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, S, togglesplit, # dwindle + +# application shortcuts +bind = $mainMod, grave, exec, kitty # ~ open terminal +bind = $mainMod, E, exec, dolphin # open file manager +bind = $mainMod, V, exec, code # open vscode + +# rofi is toggled on/off if you repeat the key presses +bind = $mainMod, SPACE, exec, pkill rofi || ~/.config/hypr/scripts/rofilaunch.sh d # launch desktop applications +bind = $mainMod, tab, exec, pkill rofi || ~/.config/hypr/scripts/rofilaunch.sh w # switch between desktop applications +bind = $mainMod, R, exec, pkill rofi || ~/.config/hypr/scripts/rofilaunch.sh f # browse system files + +# audio control +# bind = , F10, exec, ~/.config/hypr/scripts/volumecontrol.sh -o m # toggle audio mute +# binde = , F11, exec, ~/.config/hypr/scripts/volumecontrol.sh -o d # decrease volume +# binde = , F12, exec, ~/.config/hypr/scripts/volumecontrol.sh -o i # increase volume +bind = , XF86AudioMute, exec, ~/.config/hypr/scripts/volumecontrol.sh -o m # toggle audio mute +bind = , XF86AudioMicMute, exec, ~/.config/hypr/scripts/volumecontrol.sh -i m # toggle microphone mute +binde = , XF86AudioLowerVolume, exec, ~/.config/hypr/scripts/volumecontrol.sh -o d # decrease volume +binde = , XF86AudioRaiseVolume, exec, ~/.config/hypr/scripts/volumecontrol.sh -o i # increase volume +bind = , XF86AudioPlay, exec, playerctl play-pause +bind = , XF86AudioPause, exec, playerctl play-pause +bind = , XF86AudioNext, exec, playerctl next +bind = , XF86AudioPrev, exec, playerctl previous + +# brightness control +binde = , XF86MonBrightnessUp, exec, ~/.config/hypr/scripts/brightnesscontrol.sh i # increase brightness +binde = , XF86MonBrightnessDown, exec, ~/.config/hypr/scripts/brightnesscontrol.sh d # decrease brightness + +# screenshot/screencapture +bind = $mainMod, P, exec, ~/.config/hypr/scripts/screenshot.sh s # screenshot snip +bind = $mainMod ALT, P, exec, ~/.config/hypr/scripts/screenshot.sh p # print current screen +bind = $CONTROL SHIFT, P, pass, ^(com\.obsproject\.Studio)$ # start/stop obs screen recording + +# exec custom scripts +bind = $mainMod ALT, right, exec, ~/.config/swww/swwwallpaper.sh -n # next wallpaper +bind = $mainMod ALT, left, exec, ~/.config/swww/swwwallpaper.sh -p # previous wallpaper +bind = $mainMod ALT, up, exec, ~/.config/waybar/wbarconfgen.sh n # next waybar mode +bind = $mainMod ALT, down, exec, ~/.config/waybar/wbarconfgen.sh p # previous waybar mode +bind = $mainMod SHIFT, T, exec, ~/.config/hypr/scripts/themeselect.sh # theme select menu +bind = $mainMod SHIFT, A, exec, ~/.config/hypr/scripts/rofiselect.sh # rofi style select menu + +# 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 +bind = ALT, Tab, movefocus, d + +# Switch workspaces with mainMod + [0-9] +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 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 + +# Resize windows +binde = $mainMod CONTROL, right, resizeactive, 10 0 +binde = $mainMod CONTROL, left, resizeactive, -10 0 +binde = $mainMod CONTROL, up, resizeactive, 0 -10 +binde = $mainMod CONTROL, down, resizeactive, 0 10 + +# Move Window with mainMod + SHIFT + arrow keys +bind = $mainMod SHIFT, left, movewindow, l +bind = $mainMod SHIFT, right, movewindow, r +bind = $mainMod SHIFT, up, movewindow, u +bind = $mainMod SHIFT, down, movewindow, d + +# 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 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 +bind = $mainMod SHIFT, 7, movetoworkspace, 7 +bind = $mainMod SHIFT, 8, movetoworkspace, 8 +bind = $mainMod SHIFT, 9, movetoworkspace, 9 +bind = $mainMod SHIFT, 0, movetoworkspace, 10 + +# 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 + +# Special workspaces (scratchpad) +bind = $mainMod ALT, S, movetoworkspacesilent, special +bind = $mainMod CONTROL, S, togglespecialworkspace, + +# Move window to workspace Super + Alt + [0-9] +bind = $mainMod ALT, 1, movetoworkspacesilent, 1 +bind = $mainMod ALT, 2, movetoworkspacesilent, 2 +bind = $mainMod ALT, 3, movetoworkspacesilent, 3 +bind = $mainMod ALT, 4, movetoworkspacesilent, 4 +bind = $mainMod ALT, 5, movetoworkspacesilent, 5 +bind = $mainMod ALT, 6, movetoworkspacesilent, 6 +bind = $mainMod ALT, 7, movetoworkspacesilent, 7 +bind = $mainMod ALT, 8, movetoworkspacesilent, 8 +bind = $mainMod ALT, 9, movetoworkspacesilent, 9 +bind = $mainMod ALT, 0, movetoworkspacesilent, 10 diff --git a/modules/home/hyprland/conf/hypr/monitors.conf b/modules/home/hyprland/conf/hypr/monitors.conf new file mode 100644 index 0000000..2ca27a4 --- /dev/null +++ b/modules/home/hyprland/conf/hypr/monitors.conf @@ -0,0 +1,24 @@ + +# █▀▄▀█ █▀█ █▄░█ █ ▀█▀ █▀█ █▀█ █▀ +# █░▀░█ █▄█ █░▀█ █ ░█░ █▄█ █▀▄ ▄█ + +# See https://wiki.hyprland.org/Configuring/Monitors/ + +# monitor = name, resolution, offset, scale, extra-args +# monitor = ,preferred,auto,auto +monitor = DP-3,1920x1080@60,0x0,1,transform,1 +monitor = HDMI-A-1,1920x1080@60,1080x0,1, +monitor = HDMI-A-3,1920x1080@60,3000x0,1, + +workspace = 5,monitor:DP-3 +workspace = 6,monitor:DP-3 +workspace = 7,monitor:DP-3 + +workspace = 1,monitor:HDMI-A-1 +workspace = 2,monitor:HDMI-A-1 +workspace = 3,monitor:HDMI-A-1 +workspace = 4,monitor:HDMI-A-1 + +workspace = 8,monitor:HDMI-A-3 +workspace = 9,monitor:HDMI-A-3 +workspace = 10,monitor:HDMI-A-3 \ No newline at end of file diff --git a/modules/home/hyprland/conf/hypr/nvidia.conf b/modules/home/hyprland/conf/hypr/nvidia.conf new file mode 100644 index 0000000..d25c019 --- /dev/null +++ b/modules/home/hyprland/conf/hypr/nvidia.conf @@ -0,0 +1,11 @@ + +# █▄░█ █░█ █ █▀▄ █ ▄▀█ +# █░▀█ ▀▄▀ █ █▄▀ █ █▀█ + +#env = GBM_BACKEND,nvidia-drm +env = LIBVA_DRIVER_NAME,nvidia +env = __GLX_VENDOR_LIBRARY_NAME,nvidia +env = __GL_VRR_ALLOWED,1 +env = WLR_NO_HARDWARE_CURSORS,1 +env = WLR_DRM_NO_ATOMIC,1 + diff --git a/modules/home/hyprland/conf/hypr/scripts/brightnesscontrol.sh b/modules/home/hyprland/conf/hypr/scripts/brightnesscontrol.sh new file mode 100755 index 0000000..8001a90 --- /dev/null +++ b/modules/home/hyprland/conf/hypr/scripts/brightnesscontrol.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +ncolor="-h string:bgcolor:#343d46 -h string:fgcolor:#c0c5ce -h string:frcolor:#c0c5ce" + +function send_notification { + brightness=`brightnessctl info | grep -oP "(?<=\()\d+(?=%)" | cat` + brightinfo=$(brightnessctl info | awk -F"'" '/Device/ {print $2}') + + angle="$(((($brightness + 2) / 5) * 5))" + ico="~/.config/dunst/icons/vol/vol-${angle}.svg" + bar=$(seq -s "." $(($brightness / 15)) | sed 's/[0-9]//g') + + if [ $brightness -ne 0 ]; then + dunstify $ncolor "brightctl" -i $ico -a "$brightness$bar" "Device: $brightinfo" -r 91190 -t 800 + + else + dunstify -i $ico "Brightness: ${brightness}%" -a "$brightinfo" -u low -r 91190 -t 800 + fi + +} + +function get_brightness { + brightnessctl -m | grep -o '[0-9]\+%' | head -c-2 +} + +case $1 in +i) + # increase the backlight by 5% + brightnessctl set +5% + send_notification + ;; +d) + if [[ $(get_brightness) -lt 5 ]]; then + # avoid 0% brightness + brightnessctl set 1% + else + # decrease the backlight by 5% + brightnessctl set 5%- + fi + send_notification + ;; +esac diff --git a/modules/home/hyprland/conf/hypr/scripts/cliphist.sh b/modules/home/hyprland/conf/hypr/scripts/cliphist.sh new file mode 100755 index 0000000..3f5208d --- /dev/null +++ b/modules/home/hyprland/conf/hypr/scripts/cliphist.sh @@ -0,0 +1,64 @@ +#!/usr/bin/env sh + +theme_file="$HOME/.config/hypr/themes/theme.conf" +roconf="~/.config/rofi/clipboard.rasi" + + +# set position + +case $2 in + 1) # top left + pos="window {location: north west; anchor: north west; x-offset: 20px; y-offset: 20px;}" + ;; + 2) # top right + pos="window {location: north east; anchor: north east; x-offset: -20px; y-offset: 20px;}" + ;; + 3) # bottom left + pos="window {location: south east; anchor: south east; x-offset: -20px; y-offset: -20px;}" + ;; + 4) # bottom right + pos="window {location: south west; anchor: south west; x-offset: 20px; y-offset: -20px;}" + ;; +esac + + +# read hypr theme border + +hypr_border=`awk -F '=' '{if($1~" rounding ") print $2}' $theme_file | sed 's/ //g'` +hypr_width=`awk -F '=' '{if($1~" border_size ") print $2}' $theme_file | sed 's/ //g'` +wind_border=$(( hypr_border * 3/2 )) +elem_border=`[ $hypr_border -eq 0 ] && echo "5" || echo $hypr_border` +r_override="window {border: ${hypr_width}px; border-radius: ${wind_border}px;} entry {border-radius: ${elem_border}px;} element {border-radius: ${elem_border}px;}" + + +# read hypr font size + +#fnt_size=`awk '{if($6=="monospace-font-name") print $NF}' $theme_file | sed "s/'//g"` +fnt_override=`gsettings get org.gnome.desktop.interface monospace-font-name | awk '{gsub(/'\''/,""); print $NF}'` +fnt_override="configuration {font: \"JetBrainsMono Nerd Font ${fnt_override}\";}" + + +# clipboard action + +case $1 in + c) cliphist list | rofi -dmenu -theme-str "entry { placeholder: \"Copy...\";} ${pos} ${r_override}" -theme-str "${fnt_override}" -config $roconf | cliphist decode | wl-copy + ;; + d) cliphist list | rofi -dmenu -theme-str "entry { placeholder: \"Delete...\";} ${pos} ${r_override}" -theme-str "${fnt_override}" -config $roconf | cliphist delete + ;; + w) if [ `echo -e "Yes\nNo" | rofi -dmenu -theme-str "entry { placeholder: \"Clear Clipboard History?\";} ${pos} ${r_override}" -theme-str "${fnt_override}" -config $roconf` == "Yes" ] ; then + cliphist wipe + fi + ;; + *) echo -e "cliphist.sh [action] [position]\nwhere action," + echo "c : cliphist list and copy selected" + echo "d : cliphist list and delete selected" + echo "w : cliphist wipe database" + echo "where position," + echo "1 : top left" + echo "2 : top right" + echo "3 : bottom right" + echo "4 : bottom left" + exit 1 + ;; +esac + diff --git a/modules/home/hyprland/conf/hypr/scripts/dontkillsteam.sh b/modules/home/hyprland/conf/hypr/scripts/dontkillsteam.sh new file mode 100755 index 0000000..d162ddc --- /dev/null +++ b/modules/home/hyprland/conf/hypr/scripts/dontkillsteam.sh @@ -0,0 +1,5 @@ +if [[ $(hyprctl activewindow -j | jq -r ".class") == "Steam" ]]; then + xdotool windowunmap $(xdotool getactivewindow) +else + hyprctl dispatch killactive "" +fi diff --git a/modules/home/hyprland/conf/hypr/scripts/gamemode.sh b/modules/home/hyprland/conf/hypr/scripts/gamemode.sh new file mode 100755 index 0000000..ad0bd89 --- /dev/null +++ b/modules/home/hyprland/conf/hypr/scripts/gamemode.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env sh +HYPRGAMEMODE=$(hyprctl getoption animations:enabled | sed -n '2p' | awk '{print $2}') +if [ $HYPRGAMEMODE = 1 ] ; then + hyprctl --batch "\ + keyword animations:enabled 0;\ + keyword decoration:drop_shadow 0;\ + keyword decoration:blur:enabled 0;\ + keyword general:gaps_in 0;\ + keyword general:gaps_out 0;\ + keyword general:border_size 1;\ + keyword decoration:rounding 0" + exit +fi +hyprctl reload diff --git a/modules/home/hyprland/conf/hypr/scripts/logoutlaunch.sh b/modules/home/hyprland/conf/hypr/scripts/logoutlaunch.sh new file mode 100755 index 0000000..a596e89 --- /dev/null +++ b/modules/home/hyprland/conf/hypr/scripts/logoutlaunch.sh @@ -0,0 +1,49 @@ +#!/usr/bin/env sh + +# detect monitor y res +res=`cat /sys/class/drm/*/modes | head -1 | cut -d 'x' -f 2` + +# scale config layout and style +case $1 in + 1) wlColms=6 + export mgn=$(( res * 10 / 100 )) + export hvr=$(( res * 5 / 100 )) ;; + 2) wlColms=2 + export mgn=$(( res * 8 / 100 )) + export mgn2=$(( res * 65 / 100 )) + export hvr=$(( res * 3 / 100 )) + export hvr2=$(( res * 60 / 100 )) ;; + *) echo "Error: invalid parameter passed..." + exit 1 ;; +esac + +# scale font size +export fntSize=$(( res * 2 / 100 )) + +# detect gtk system theme +export gtkThm="Catppuccin-Latte" #`gsettings get org.gnome.desktop.interface gtk-theme | sed "s/'//g"` +export csMode=`gsettings get org.gnome.desktop.interface color-scheme | sed "s/'//g" | awk -F '-' '{print $2}'` +export BtnCol=`[ "$csMode" == "dark" ] && ( echo "black" ) || ( echo "white" )` +export BtnBkg=`[ "$csMode" == "dark" ] && ( echo "color" ) || ( echo "bg" )` +export WindBg=`[ "$csMode" == "dark" ] && ( echo "rgba(0,0,0,0.5)" ) || ( echo "rgba(255,255,255,0.6)" )` +export wbarTheme="$HOME/.config/waybar/themes/${gtkThm}.css" + +# eval hypr border radius +hyprTheme="$HOME/.config/hypr/themes/${gtkThm}.conf" +hypr_border=`awk -F '=' '{if($1~" rounding ") print $2}' $hyprTheme | sed 's/ //g'` +export active_rad=$(( hypr_border * 5 )) +export button_rad=$(( hypr_border * 8 )) + +# set file variables +wLayout="$HOME/.config/wlogout/layout_$1" +wlTmplt="$HOME/.config/wlogout/style_$1.css" + +# eval config files +wlStyle=`envsubst < $wlTmplt` + +# eval padding +y_pad=$(( res * 20 / 100 )) + +# launch wlogout +wlogout -b $wlColms -c 0 -r 0 -T $y_pad -B $y_pad --layout $wLayout --css <(echo "$wlStyle") --protocol layer-shell + diff --git a/modules/home/hyprland/conf/hypr/scripts/modeswitch.sh b/modules/home/hyprland/conf/hypr/scripts/modeswitch.sh new file mode 100755 index 0000000..86898ae --- /dev/null +++ b/modules/home/hyprland/conf/hypr/scripts/modeswitch.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env sh + +## main script ## +CFGDIR="$HOME/.config" +X_MODE=$1 + +## check mode ## +if [ "$X_MODE" == "dark" ] || [ "$X_MODE" == "light" ] ; then + S_MODE="$X_MODE" + +elif [ "$X_MODE" == "switch" ] ; then + X_MODE=`readlink $CFGDIR/swww/wall.set | awk -F "." '{print $NF}'` + + if [ "$X_MODE" == "dark" ] ; then + S_MODE="light" + flatpak --user override --env=GTK_THEME=Catppuccin-Latte + + elif [ "$X_MODE" == "light" ] ; then + S_MODE="dark" + flatpak --user override --env=GTK_THEME=Catppuccin-Mocha + + else + echo "ERROR: unable to fetch wallpaper mode." + fi + +else + echo "ERROR: unknown mode, use 'dark', 'light' or 'switch'." + exit 1 +fi + +### hyprland ### +ln -fs $CFGDIR/hypr/${S_MODE}.conf $CFGDIR/hypr/theme.conf +hyprctl reload + +### swwwallpaper ### +x=`echo $S_MODE | cut -c 1` +$CFGDIR/swww/swwwallpaper.sh -$x + +### qt5ct ### +ln -fs $CFGDIR/qt5ct/colors/${S_MODE}.conf $CFGDIR/qt5ct/colors/theme.conf + +### rofi ### +ln -fs $CFGDIR/rofi/${S_MODE}.rasi $CFGDIR/rofi/theme.rasi + +### kitty ### +ln -fs $CFGDIR/kitty/${S_MODE}.conf $CFGDIR/kitty/theme.conf +killall -SIGUSR1 kitty + +### waybar ### +ln -fs $CFGDIR/waybar/${S_MODE}.css $CFGDIR/waybar/style.css +sleep 1 +killall -SIGUSR2 waybar diff --git a/modules/home/hyprland/conf/hypr/scripts/resetxdgportal.sh b/modules/home/hyprland/conf/hypr/scripts/resetxdgportal.sh new file mode 100755 index 0000000..32983ec --- /dev/null +++ b/modules/home/hyprland/conf/hypr/scripts/resetxdgportal.sh @@ -0,0 +1,12 @@ +#!/bin/bash +sleep 1 +killall xdg-desktop-portal-hyprland +killall xdg-desktop-portal-gnome +killall xdg-desktop-portal-kde +killall xdg-desktop-portal-lxqt +killall xdg-desktop-portal-wlr +killall xdg-desktop-portal +sleep 1 +/usr/lib/xdg-desktop-portal-hyprland & +sleep 2 +/usr/lib/xdg-desktop-portal & diff --git a/modules/home/hyprland/conf/hypr/scripts/rofilaunch.sh b/modules/home/hyprland/conf/hypr/scripts/rofilaunch.sh new file mode 100755 index 0000000..2441e36 --- /dev/null +++ b/modules/home/hyprland/conf/hypr/scripts/rofilaunch.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env sh + +theme_file="$HOME/.config/hypr/themes/theme.conf" +rofi_conf="~/.config/rofi/config.rasi" + + +# rofi action + +case $1 in + d) r_mode="drun" ;; + w) r_mode="window" ;; + f) r_mode="filebrowser" ;; + h) echo -e "rofilaunch.sh [action]\nwhere action," + echo "d : drun mode" + echo "w : window mode" + echo "f : filebrowser mode," + exit 0 ;; + *) r_mode="drun" ;; +esac + + +# read hypr theme border + +hypr_border=`awk -F '=' '{if($1~" rounding ") print $2}' $theme_file | sed 's/ //g'` +hypr_width=`awk -F '=' '{if($1~" border_size ") print $2}' $theme_file | sed 's/ //g'` +wind_border=$(( hypr_border * 3 )) +elem_border=`[ $hypr_border -eq 0 ] && echo "10" || echo $(( hypr_border * 2 ))` +r_override="window {border: ${hypr_width}px; border-radius: ${wind_border}px;} element {border-radius: ${elem_border}px;}" + + +# read hypr font size + +#fnt_size=`awk '{if($6=="font-name") print $NF}' $theme_file | sed "s/'//g"` +fnt_override=`gsettings get org.gnome.desktop.interface font-name | awk '{gsub(/'\''/,""); print $NF}'` +fnt_override="configuration {font: \"JetBrainsMono Nerd Font ${fnt_override}\";}" + + +# read hypr theme icon + +icon_override=`gsettings get org.gnome.desktop.interface icon-theme | sed "s/'//g"` +icon_override="configuration {icon-theme: \"${icon_override}\";}" + + +# launch rofi + +rofi -show $r_mode -theme-str "${fnt_override}" -theme-str "${r_override}" -theme-str "${icon_override}" -config "${rofi_conf}" + + diff --git a/modules/home/hyprland/conf/hypr/scripts/rofiselect.sh b/modules/home/hyprland/conf/hypr/scripts/rofiselect.sh new file mode 100755 index 0000000..8e43c3c --- /dev/null +++ b/modules/home/hyprland/conf/hypr/scripts/rofiselect.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env sh + +## set variables ## +BaseDir=`dirname $(realpath $0)` +ThemeSet="$HOME/.config/hypr/themes/theme.conf" +RofiConf="$HOME/.config/rofi/themeselect.rasi" +RofiStyle="$HOME/.config/rofi/styles" +Rofilaunch="$HOME/.config/rofi/config.rasi" + +## show and apply theme ## +hypr_border=`awk -F '=' '{if($1~" rounding ") print $2}' $ThemeSet | sed 's/ //g'` +elem_border=$(( hypr_border * 5 )) +icon_border=$(( elem_border - 5 )) +r_override="element {border-radius: ${elem_border}px;} element-icon {border-radius: ${icon_border}px;}" + +RofiSel=$( ls $RofiStyle/style_*.rasi | awk -F '/' '{print $NF}' | cut -d '.' -f 1 | while read rstyle +do + echo -en "$rstyle\x00icon\x1f$RofiStyle/${rstyle}.png\n" +done | rofi -dmenu -theme-str "${r_override}" -config $RofiConf) + +if [ ! -z $RofiSel ] ; then + cp $RofiStyle/$RofiSel.rasi $Rofilaunch +fi + diff --git a/modules/home/hyprland/conf/hypr/scripts/screenshot.sh b/modules/home/hyprland/conf/hypr/scripts/screenshot.sh new file mode 100755 index 0000000..bdcd4fa --- /dev/null +++ b/modules/home/hyprland/conf/hypr/scripts/screenshot.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env sh + +if [ -z "$XDG_PICTURES_DIR" ] ; then + XDG_PICTURES_DIR="$HOME/Pictures" +fi + +save_dir="${2:-$XDG_PICTURES_DIR}" +save_file=$(date +'%y%m%d_%Hh%Mm%Ss_screenshot.png') +ncolor="-h string:bgcolor:#343d46 -h string:fgcolor:#c0c5ce -h string:frcolor:#c0c5ce" + +if [ ! -d "$save_dir" ] ; then + mkdir -p $save_dir +fi + +case $1 in +p) grim $save_dir/$save_file ;; +s) grim -g "$(slurp)" - | swappy -f - ;; +*) echo "...valid options are..." + echo "p : print screen to $save_dir" + echo "s : snip current screen to $save_dir" + exit 1 ;; +esac + +if [ -f "$save_dir/$save_file" ] ; then + dunstify $ncolor "theme" -a "saved in $save_dir" -i "$save_dir/$save_file" -r 91190 -t 2200 +fi diff --git a/modules/home/hyprland/conf/hypr/scripts/systemupdate.sh b/modules/home/hyprland/conf/hypr/scripts/systemupdate.sh new file mode 100755 index 0000000..22e4784 --- /dev/null +++ b/modules/home/hyprland/conf/hypr/scripts/systemupdate.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +# Check release +if [ ! -f /etc/arch-release ] ; then + exit 0 +fi + +# Check for updates +aur=$(yay -Qua | wc -l) +ofc=$(pacman -Qu | wc -l) + +# Calculate total available updates +upd=$(( ofc + aur )) +echo "$upd" + +# Show tooltip +if [ $upd -eq 0 ] ; then + echo " Packages are up to date" +else + echo "󱓽 Official $ofc 󱓾 AUR $aur" +fi + +# Trigger upgrade +if [ "$1" == "up" ] ; then + kitty --title systemupdate sh -c 'yay -Syu' +fi + diff --git a/modules/home/hyprland/conf/hypr/scripts/themeselect.sh b/modules/home/hyprland/conf/hypr/scripts/themeselect.sh new file mode 100755 index 0000000..6384166 --- /dev/null +++ b/modules/home/hyprland/conf/hypr/scripts/themeselect.sh @@ -0,0 +1,49 @@ +#!/usr/bin/env sh + +## set variables ## +BaseDir=`dirname $(realpath $0)` +ThemeCtl="$HOME/.config/swww/wall.ctl" +ThumbDir="$HOME/.config/swww/Themes-Ctl" +RofiConf="$HOME/.config/rofi/themeselect.rasi" +ThemeSet="$HOME/.config/hypr/themes/theme.conf" + + +## show and apply theme ## +if [ -z "$1" ] ; then + + hypr_border=`awk -F '=' '{if($1~" rounding ") print $2}' $ThemeSet | sed 's/ //g'` + elem_border=$(( hypr_border * 5 )) + icon_border=$(( elem_border - 5 )) + r_override="element {border-radius: ${elem_border}px;} element-icon {border-radius: ${icon_border}px;}" + + ThemeSel=$(cat $ThemeCtl | while read line + do + thm=`echo $line | cut -d '|' -f 2` + wal=`echo $line | cut -d '|' -f 3` + echo -en "$thm\x00icon\x1f$ThumbDir/${thm}.png\n" + done | rofi -dmenu -theme-str "${r_override}" -config $RofiConf) + + if [ ! -z $ThemeSel ] ; then + ${BaseDir}/themeswitch.sh -s $ThemeSel + fi + +## regenerate thumbnails ## +elif [ "$1" == "T" ] ; then + + echo "refreshing thumbnails..." + cat $ThemeCtl | while read line + do + thm=`echo $line | cut -d '|' -f 2` + wal=`echo $line | cut -d '|' -f 3` + wal=`eval echo $wal` + + echo "croping image from wallpaper $ThumbDir/${thm}.png..." + convert $wal -thumbnail 500x500^ -gravity center -extent 500x500 $ThumbDir/${thm}.png + #convert $wal -gravity Center -crop 1080x1080+0+0 $ThumbDir/${thm}.png + #echo "applying rounded corner mask and generating $ThumbDir/${thm}.png..." + #convert -size 1080x1080 xc:none -draw "roundrectangle 0,0,1080,1080,80,80" $ThumbDir/roundedmask.png + #convert $ThumbDir/${thm}_tmp.png -matte $ThumbDir/roundedmask.png -compose DstIn -composite $ThumbDir/${thm}.png + done + +fi + diff --git a/modules/home/hyprland/conf/hypr/scripts/themeswitch.sh b/modules/home/hyprland/conf/hypr/scripts/themeswitch.sh new file mode 100755 index 0000000..b67c898 --- /dev/null +++ b/modules/home/hyprland/conf/hypr/scripts/themeswitch.sh @@ -0,0 +1,125 @@ +#!/usr/bin/env sh + +# set variables +BaseDir=`dirname $(realpath $0)` +ConfDir="$HOME/.config" +ThemeCtl="$ConfDir/swww/wall.ctl" + + +# evaluate options +while getopts "npst" option ; do + case $option in + + n ) # set next theme + ThemeSet=`head -1 $ThemeCtl | cut -d '|' -f 2` #default value + flg=0 + while read line + do + if [ $flg -eq 1 ] ; then + ThemeSet=`echo $line | cut -d '|' -f 2` + break + elif [ `echo $line | cut -d '|' -f 1` -eq 1 ] ; then + flg=1 + fi + done < $ThemeCtl + export xtrans="center" ;; + + p ) # set previous theme + ThemeSet=`tail -1 $ThemeCtl | cut -d '|' -f 2` #default value + flg=0 + while read line + do + if [ $flg -eq 1 ] ; then + ThemeSet=`echo $line | cut -d '|' -f 2` + break + elif [ `echo $line | cut -d '|' -f 1` -eq 1 ] ; then + flg=1 + fi + done < <( tac $ThemeCtl ) + export xtrans="outer" ;; + + s ) # set selected theme + shift $((OPTIND -1)) + ThemeSet=$1 ;; + + t ) # display tooltip + echo "" + echo "󰆊 Next/Previous Theme" + exit 0 ;; + + * ) # invalid option + echo "n : set next theme" + echo "p : set previous theme" + echo "s : set theme from parameter" + echo "t : display tooltip" + exit 1 ;; + esac +done + + +# update theme control +if [ `cat $ThemeCtl | awk -F '|' -v thm=$ThemeSet '{if($2==thm) print$2}' | wc -w` -ne 1 ] ; then + echo "Unknown theme selected: $ThemeSet" + echo "Available themes are:" + cat $ThemeCtl | cut -d '|' -f 2 + exit 1 +else + echo "Selected theme: $ThemeSet" + sed -i "s/^1/0/g" $ThemeCtl + awk -F '|' -v thm=$ThemeSet '{OFS=FS} {if($2==thm) $1=1; print$0}' $ThemeCtl > $BaseDir/tmp && mv $BaseDir/tmp $ThemeCtl +fi + + +# swwwallpaper +getWall=`grep '^1|' $ThemeCtl | cut -d '|' -f 3` +getWall=`eval echo $getWall` +ln -fs $getWall $ConfDir/swww/wall.set +$ConfDir/swww/swwwallpaper.sh + +if [ $? -ne 0 ] ; then + echo "ERROR: Unable to set wallpaper" + exit 1 +fi + + +# vs code +sed -i "/workbench.colorTheme/c\ \"workbench.colorTheme\": \"${ThemeSet}\"," $ConfDir/Code/User/settings.json + + +# kitty +ln -fs $ConfDir/kitty/themes/${ThemeSet}.conf $ConfDir/kitty/themes/theme.conf +killall -SIGUSR1 kitty + + +# qt5ct +sed -i "/^color_scheme_path=/c\color_scheme_path=$ConfDir/qt5ct/colors/${ThemeSet}.conf" $ConfDir/qt5ct/qt5ct.conf +IconSet=`awk -F "'" '$0 ~ /gsettings set org.gnome.desktop.interface icon-theme/{print $2}' $ConfDir/hypr/themes/${ThemeSet}.conf` +sed -i "/^icon_theme=/c\icon_theme=${IconSet}" $ConfDir/qt5ct/qt5ct.conf + + +# flatpak GTK +flatpak --user override --env=GTK_THEME="${ThemeSet}" +flatpak --user override --env=ICON_THEME="${IconSet}" + + +# rofi +ln -fs $ConfDir/rofi/themes/${ThemeSet}.rasi $ConfDir/rofi/themes/theme.rasi + + +# hyprland +ln -fs $ConfDir/hypr/themes/${ThemeSet}.conf $ConfDir/hypr/themes/theme.conf +hyprctl reload + + +# refresh thumbnails +$BaseDir/themeselect.sh T & + + +# send notification +ncolor="-h string:bgcolor:#343d46 -h string:fgcolor:#c0c5ce -h string:frcolor:#c0c5ce" +dunstify $ncolor "theme" -a " ${ThemeSet}" -i "~/.config/dunst/icons/paint.svg" -r 91190 -t 2200 + + +# waybar +$ConfDir/waybar/wbarconfgen.sh + diff --git a/modules/home/hyprland/conf/hypr/scripts/volumecontrol.sh b/modules/home/hyprland/conf/hypr/scripts/volumecontrol.sh new file mode 100755 index 0000000..39ee5c9 --- /dev/null +++ b/modules/home/hyprland/conf/hypr/scripts/volumecontrol.sh @@ -0,0 +1,76 @@ +#!/usr/bin/env sh + + +# define functions + +function print_error +{ +cat << "EOF" + ./volumecontrol.sh -[device] + ...valid device are... + i -- [i]nput decive + o -- [o]utput device + ...valid actions are... + i -- ncrease volume [+5] + d -- ecrease volume [-5] + m -- ute [x] +EOF +exit 1 +} + +function notify_vol +{ + vol=`pamixer $srce --get-volume | cat` + angle="$(( (($vol+2)/5) * 5 ))" + ico="${icodir}/vol-${angle}.svg" + bar=$(seq -s "." $(($vol / 15)) | sed 's/[0-9]//g') + dunstify $ncolor "volctl" -a "$vol$bar" "$nsink" -i $ico -r 91190 -t 800 +} + +function notify_mute +{ + mute=`pamixer $srce --get-mute | cat` + if [ "$mute" == "true" ] ; then + dunstify $ncolor "volctl" -a "muted" "$nsink" -i ${icodir}/muted-${dvce}.svg -r 91190 -t 800 + else + dunstify $ncolor "volctl" -a "unmuted" "$nsink" -i ${icodir}/unmuted-${dvce}.svg -r 91190 -t 800 + fi +} + + +# set device source + +while getopts io SetSrc +do + case $SetSrc in + i) nsink=$(pamixer --list-sources | grep "_input." | head -1 | awk -F '" "' '{print $NF}' | sed 's/"//') + srce="--default-source" + dvce="mic" ;; + o) nsink=$(pamixer --get-default-sink | grep "_output." | awk -F '" "' '{print $NF}' | sed 's/"//') + srce="" + dvce="speaker" ;; + esac +done + +if [ $OPTIND -eq 1 ] ; then + print_error +fi + + +# set device action + +shift $((OPTIND -1)) +step="${2:-5}" +icodir="~/.config/dunst/icons/vol" +ncolor="-h string:bgcolor:#343d46 -h string:fgcolor:#c0c5ce -h string:frcolor:#c0c5ce" + +case $1 in + i) pamixer $srce -i ${step} + notify_vol ;; + d) pamixer $srce -d ${step} + notify_vol ;; + m) pamixer $srce -t + notify_mute ;; + *) print_error ;; +esac + diff --git a/modules/home/hyprland/conf/hypr/themes/Catppuccin-Latte.conf b/modules/home/hyprland/conf/hypr/themes/Catppuccin-Latte.conf new file mode 100644 index 0000000..be94373 --- /dev/null +++ b/modules/home/hyprland/conf/hypr/themes/Catppuccin-Latte.conf @@ -0,0 +1,44 @@ +exec = hyprctl setcursor Bibata-Modern-Ice 20 +exec = gsettings set org.gnome.desktop.interface cursor-theme 'Bibata-Modern-Ice' +exec = gsettings set org.gnome.desktop.interface cursor-size 20 + +exec = kvantummanager --set Catppuccin-Latte +exec = gsettings set org.gnome.desktop.interface icon-theme 'Tela-circle-grey' +exec = gsettings set org.gnome.desktop.interface gtk-theme 'Catppuccin-Latte' +exec = gsettings set org.gnome.desktop.interface color-scheme 'prefer-light' + +exec = gsettings set org.gnome.desktop.interface font-name 'Cantarell 10' +exec = gsettings set org.gnome.desktop.interface document-font-name 'Cantarell 10' +exec = gsettings set org.gnome.desktop.interface monospace-font-name 'CaskaydiaCove Nerd Font Mono 9' +exec = gsettings set org.gnome.desktop.interface font-antialiasing 'rgba' +exec = gsettings set org.gnome.desktop.interface font-hinting 'full' + +env = XCURSOR_THEME,Bibata-Modern-Ice +env = XCURSOR_SIZE,20 + +general { + gaps_in = 3 + gaps_out = 8 + border_size = 2 + col.active_border = rgba(dc8a78ff) rgba(8839efff) 45deg + col.inactive_border = rgba(7287fdcc) rgba(179299cc) 45deg + layout = dwindle + resize_on_border = true +} + +decoration { + rounding = 10 + multisample_edges = true + drop_shadow = false + + blur { + enabled = yes + size = 6 + passes = 3 + new_optimizations = on + ignore_opacity = on + xray = false + } +} + +blurls = waybar diff --git a/modules/home/hyprland/conf/hypr/themes/Catppuccin-Mocha.conf b/modules/home/hyprland/conf/hypr/themes/Catppuccin-Mocha.conf new file mode 100644 index 0000000..6f85756 --- /dev/null +++ b/modules/home/hyprland/conf/hypr/themes/Catppuccin-Mocha.conf @@ -0,0 +1,44 @@ +exec = hyprctl setcursor Bibata-Modern-Ice 20 +exec = gsettings set org.gnome.desktop.interface cursor-theme 'Bibata-Modern-Ice' +exec = gsettings set org.gnome.desktop.interface cursor-size 20 + +exec = kvantummanager --set Catppuccin-Mocha +exec = gsettings set org.gnome.desktop.interface icon-theme 'Tela-circle-dracula' +exec = gsettings set org.gnome.desktop.interface gtk-theme 'Catppuccin-Mocha' +exec = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' + +exec = gsettings set org.gnome.desktop.interface font-name 'Cantarell 10' +exec = gsettings set org.gnome.desktop.interface document-font-name 'Cantarell 10' +exec = gsettings set org.gnome.desktop.interface monospace-font-name 'CaskaydiaCove Nerd Font Mono 9' +exec = gsettings set org.gnome.desktop.interface font-antialiasing 'rgba' +exec = gsettings set org.gnome.desktop.interface font-hinting 'full' + +env = XCURSOR_THEME,Bibata-Modern-Ice +env = XCURSOR_SIZE,20 + +general { + gaps_in = 3 + gaps_out = 8 + border_size = 2 + col.active_border = rgba(ca9ee6ff) rgba(f2d5cfff) 45deg + col.inactive_border = rgba(b4befecc) rgba(6c7086cc) 45deg + layout = dwindle + resize_on_border = true +} + +decoration { + rounding = 10 + multisample_edges = true + drop_shadow = false + + blur { + enabled = yes + size = 6 + passes = 3 + new_optimizations = on + ignore_opacity = on + xray = false + } +} + +blurls = waybar diff --git a/modules/home/hyprland/conf/hypr/themes/Cyberpunk-Edge.conf b/modules/home/hyprland/conf/hypr/themes/Cyberpunk-Edge.conf new file mode 100644 index 0000000..aebf3aa --- /dev/null +++ b/modules/home/hyprland/conf/hypr/themes/Cyberpunk-Edge.conf @@ -0,0 +1,49 @@ +exec = hyprctl setcursor Bibata-Modern-Ice 20 +exec = gsettings set org.gnome.desktop.interface cursor-theme 'Bibata-Modern-Ice' +exec = gsettings set org.gnome.desktop.interface cursor-size 20 + +exec = kvantummanager --set Cyberpunk-Edge +exec = gsettings set org.gnome.desktop.interface icon-theme 'Tela-circle-yellow' +exec = gsettings set org.gnome.desktop.interface gtk-theme 'Cyberpunk-Edge' +exec = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' + +exec = gsettings set org.gnome.desktop.interface font-name 'Cantarell 10' +exec = gsettings set org.gnome.desktop.interface document-font-name 'Cantarell 10' +exec = gsettings set org.gnome.desktop.interface monospace-font-name 'CaskaydiaCove Nerd Font Mono 9' +exec = gsettings set org.gnome.desktop.interface font-antialiasing 'rgba' +exec = gsettings set org.gnome.desktop.interface font-hinting 'full' + +env = XCURSOR_THEME,Bibata-Modern-Ice +env = XCURSOR_SIZE,20 + +general { + gaps_in = 8 + gaps_out = 15 + border_size = 4 + col.active_border = rgba(FADA16ff) rgba(4DBD4Fff) 45deg + col.inactive_border = rgba(5032ACff) rgba(1F5322ff) 45deg + layout = dwindle + resize_on_border = true +} + +decoration { + rounding = 0 + multisample_edges = true + drop_shadow = true + shadow_ignore_window = true + shadow_offset = 12 12 + shadow_range = 0 + shadow_render_power = 4 + col.shadow = 0xffFFA6C2 + + blur { + enabled = yes + size = 6 + passes = 3 + new_optimizations = on + ignore_opacity = on + xray = false + } +} + +#blurls = waybar diff --git a/modules/home/hyprland/conf/hypr/themes/Decay-Green.conf b/modules/home/hyprland/conf/hypr/themes/Decay-Green.conf new file mode 100644 index 0000000..093faf4 --- /dev/null +++ b/modules/home/hyprland/conf/hypr/themes/Decay-Green.conf @@ -0,0 +1,44 @@ +exec = hyprctl setcursor Bibata-Modern-Ice 20 +exec = gsettings set org.gnome.desktop.interface cursor-theme 'Bibata-Modern-Ice' +exec = gsettings set org.gnome.desktop.interface cursor-size 20 + +exec = kvantummanager --set Decay-Green +exec = gsettings set org.gnome.desktop.interface icon-theme 'Tela-circle-green' +exec = gsettings set org.gnome.desktop.interface gtk-theme 'Decay-Green' +exec = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' + +exec = gsettings set org.gnome.desktop.interface font-name 'Cantarell 10' +exec = gsettings set org.gnome.desktop.interface document-font-name 'Cantarell 10' +exec = gsettings set org.gnome.desktop.interface monospace-font-name 'CaskaydiaCove Nerd Font Mono 9' +exec = gsettings set org.gnome.desktop.interface font-antialiasing 'rgba' +exec = gsettings set org.gnome.desktop.interface font-hinting 'full' + +env = XCURSOR_THEME,Bibata-Modern-Ice +env = XCURSOR_SIZE,20 + +general { + gaps_in = 3 + gaps_out = 8 + border_size = 2 + col.active_border = rgba(90ceaaff) rgba(ecd3a0ff) 45deg + col.inactive_border = rgba(86aaeccc) rgba(93cee9cc) 45deg + layout = dwindle + resize_on_border = true +} + +decoration { + rounding = 10 + multisample_edges = true + drop_shadow = false + + blur { + enabled = yes + size = 5 + passes = 4 + new_optimizations = on + ignore_opacity = on + xray = true + } +} + +#blurls = waybar diff --git a/modules/home/hyprland/conf/hypr/themes/Graphite-Mono.conf b/modules/home/hyprland/conf/hypr/themes/Graphite-Mono.conf new file mode 100644 index 0000000..b0cef16 --- /dev/null +++ b/modules/home/hyprland/conf/hypr/themes/Graphite-Mono.conf @@ -0,0 +1,49 @@ +exec = hyprctl setcursor Bibata-Modern-Ice 20 +exec = gsettings set org.gnome.desktop.interface cursor-theme 'Bibata-Modern-Ice' +exec = gsettings set org.gnome.desktop.interface cursor-size 20 + +exec = kvantummanager --set Graphite-Mono +exec = gsettings set org.gnome.desktop.interface icon-theme 'Tela-circle-grey' +exec = gsettings set org.gnome.desktop.interface gtk-theme 'Graphite-Mono' +exec = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' + +exec = gsettings set org.gnome.desktop.interface font-name 'Cantarell 10' +exec = gsettings set org.gnome.desktop.interface document-font-name 'Cantarell 10' +exec = gsettings set org.gnome.desktop.interface monospace-font-name 'CaskaydiaCove Nerd Font Mono 9' +exec = gsettings set org.gnome.desktop.interface font-antialiasing 'rgba' +exec = gsettings set org.gnome.desktop.interface font-hinting 'full' + +env = XCURSOR_THEME,Bibata-Modern-Ice +env = XCURSOR_SIZE,20 + +general { + gaps_in = 8 + gaps_out = 14 + border_size = 3 + col.active_border = rgba(d9d9d9ff) rgba(a6a6a6ff) 45deg + col.inactive_border = rgba(404040cc) rgba(262626cc) 45deg + layout = dwindle + resize_on_border = true +} + +decoration { + rounding = 0 + multisample_edges = true + drop_shadow = true + shadow_ignore_window = true + shadow_offset = 7 7 + shadow_range = 0 + shadow_render_power = 4 + col.shadow = 0xffFFFFFF + + blur { + enabled = yes + size = 6 + passes = 3 + new_optimizations = on + ignore_opacity = on + xray = true + } +} + +#blurls = waybar diff --git a/modules/home/hyprland/conf/hypr/themes/Material-Sakura.conf b/modules/home/hyprland/conf/hypr/themes/Material-Sakura.conf new file mode 100644 index 0000000..19b78a0 --- /dev/null +++ b/modules/home/hyprland/conf/hypr/themes/Material-Sakura.conf @@ -0,0 +1,49 @@ +exec = hyprctl setcursor Bibata-Modern-Ice 20 +exec = gsettings set org.gnome.desktop.interface cursor-theme 'Bibata-Modern-Ice' +exec = gsettings set org.gnome.desktop.interface cursor-size 20 + +exec = kvantummanager --set Material-Sakura +exec = gsettings set org.gnome.desktop.interface icon-theme 'Tela-circle-black' +exec = gsettings set org.gnome.desktop.interface gtk-theme 'Material-Sakura' +exec = gsettings set org.gnome.desktop.interface color-scheme 'prefer-light' + +exec = gsettings set org.gnome.desktop.interface font-name 'Cantarell 10' +exec = gsettings set org.gnome.desktop.interface document-font-name 'Cantarell 10' +exec = gsettings set org.gnome.desktop.interface monospace-font-name 'CaskaydiaCove Nerd Font Mono 9' +exec = gsettings set org.gnome.desktop.interface font-antialiasing 'rgba' +exec = gsettings set org.gnome.desktop.interface font-hinting 'full' + +env = XCURSOR_THEME,Bibata-Modern-Ice +env = XCURSOR_SIZE,20 + +general { + gaps_in = 8 + gaps_out = 14 + border_size = 4 + col.active_border = rgba(b4637aff) rgba(d7827eff) 45deg + col.inactive_border = rgba(286983cc) rgba(56949fcc) 45deg + layout = dwindle + resize_on_border = true +} + +decoration { + rounding = 12 + multisample_edges = true + drop_shadow = true + shadow_ignore_window = true + shadow_offset = 9 10 + shadow_range = 5 + shadow_render_power = 4 + col.shadow = 0xff26233a + + blur { + enabled = yes + size = 6 + passes = 3 + new_optimizations = on + ignore_opacity = on + xray = false + } +} + +#blurls = waybar diff --git a/modules/home/hyprland/conf/hypr/themes/Rose-Pine.conf b/modules/home/hyprland/conf/hypr/themes/Rose-Pine.conf new file mode 100644 index 0000000..2fa8a15 --- /dev/null +++ b/modules/home/hyprland/conf/hypr/themes/Rose-Pine.conf @@ -0,0 +1,44 @@ +exec = hyprctl setcursor Bibata-Modern-Ice 20 +exec = gsettings set org.gnome.desktop.interface cursor-theme 'Bibata-Modern-Ice' +exec = gsettings set org.gnome.desktop.interface cursor-size 20 + +exec = kvantummanager --set Rose-Pine +exec = gsettings set org.gnome.desktop.interface icon-theme 'Tela-circle-pink' +exec = gsettings set org.gnome.desktop.interface gtk-theme 'Rose-Pine' +exec = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' + +exec = gsettings set org.gnome.desktop.interface font-name 'Cantarell 10' +exec = gsettings set org.gnome.desktop.interface document-font-name 'Cantarell 10' +exec = gsettings set org.gnome.desktop.interface monospace-font-name 'CaskaydiaCove Nerd Font Mono 9' +exec = gsettings set org.gnome.desktop.interface font-antialiasing 'rgba' +exec = gsettings set org.gnome.desktop.interface font-hinting 'full' + +env = XCURSOR_THEME,Bibata-Modern-Ice +env = XCURSOR_SIZE,20 + +general { + gaps_in = 3 + gaps_out = 8 + border_size = 2 + col.active_border = rgba(eb6f92ff) rgba(c4a7e7ff) 45deg + col.inactive_border = rgba(31748fcc) rgba(9ccfd8cc) 45deg + layout = dwindle + resize_on_border = true +} + +decoration { + rounding = 10 + multisample_edges = true + drop_shadow = false + + blur { + enabled = yes + size = 6 + passes = 3 + new_optimizations = on + ignore_opacity = on + xray = false + } +} + +blurls = waybar diff --git a/modules/home/hyprland/conf/hypr/themes/Tokyo-Night.conf b/modules/home/hyprland/conf/hypr/themes/Tokyo-Night.conf new file mode 100644 index 0000000..ed133a3 --- /dev/null +++ b/modules/home/hyprland/conf/hypr/themes/Tokyo-Night.conf @@ -0,0 +1,44 @@ +exec = hyprctl setcursor Bibata-Modern-Ice 20 +exec = gsettings set org.gnome.desktop.interface cursor-theme 'Bibata-Modern-Ice' +exec = gsettings set org.gnome.desktop.interface cursor-size 20 + +exec = kvantummanager --set Tokyo-Night +exec = gsettings set org.gnome.desktop.interface icon-theme 'Tela-circle-purple' +exec = gsettings set org.gnome.desktop.interface gtk-theme 'Tokyo-Night' +exec = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' + +exec = gsettings set org.gnome.desktop.interface font-name 'Cantarell 10' +exec = gsettings set org.gnome.desktop.interface document-font-name 'Cantarell 10' +exec = gsettings set org.gnome.desktop.interface monospace-font-name 'CaskaydiaCove Nerd Font Mono 9' +exec = gsettings set org.gnome.desktop.interface font-antialiasing 'rgba' +exec = gsettings set org.gnome.desktop.interface font-hinting 'full' + +env = XCURSOR_THEME,Bibata-Modern-Ice +env = XCURSOR_SIZE,20 + +general { + gaps_in = 3 + gaps_out = 8 + border_size = 2 + col.active_border = rgba(bb9af7ff) rgba(b4f9f8ff) 45deg + col.inactive_border = rgba(565f89cc) rgba(9aa5cecc) 45deg + layout = dwindle + resize_on_border = true +} + +decoration { + rounding = 10 + multisample_edges = true + drop_shadow = false + + blur { + enabled = yes + size = 6 + passes = 3 + new_optimizations = on + ignore_opacity = on + xray = true + } +} + +blurls = waybar diff --git a/modules/home/hyprland/conf/hypr/userprefs.conf b/modules/home/hyprland/conf/hypr/userprefs.conf new file mode 100644 index 0000000..37e7de9 --- /dev/null +++ b/modules/home/hyprland/conf/hypr/userprefs.conf @@ -0,0 +1,19 @@ + +# █▀▀ █▄░█ █░█ +# ██▄ █░▀█ ▀▄▀ + +# Some default env vars. + +#env = MANGOHUD,1 +#env = MANGOHUD_DLSYM,1 + + +# █▀▄▀█ █ █▀ █▀▀ +# █░▀░█ █ ▄█ █▄▄ + +# See https://wiki.hyprland.org/Configuring/Variables/ for more + +misc { + vrr = 0 +} + diff --git a/modules/home/hyprland/conf/hypr/windowrules.conf b/modules/home/hyprland/conf/hypr/windowrules.conf new file mode 100644 index 0000000..91ad92f --- /dev/null +++ b/modules/home/hyprland/conf/hypr/windowrules.conf @@ -0,0 +1,53 @@ + +# █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█   █▀█ █░█ █░░ █▀▀ █▀ +# ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀   █▀▄ █▄█ █▄▄ ██▄ ▄█ + + +# Example windowrule v1 +# windowrule = float, ^(kitty)$ +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + + +windowrulev2 = opacity 0.90 0.90,class:^(firefox)$ +windowrulev2 = opacity 0.80 0.80,class:^(Steam)$ +windowrulev2 = opacity 0.80 0.80,class:^(steam)$ +windowrulev2 = opacity 0.80 0.80,class:^(steamwebhelper)$ +windowrulev2 = opacity 0.80 0.80,class:^(Spotify)$ +windowrulev2 = opacity 0.80 0.80,class:^(Code)$ +windowrulev2 = opacity 0.80 0.80,class:^(code-url-handler)$ +windowrulev2 = opacity 0.80 0.80,class:^(kitty)$ +windowrulev2 = opacity 0.80 0.80,class:^(org.kde.dolphin)$ +windowrulev2 = opacity 0.80 0.80,class:^(org.kde.ark)$ +windowrulev2 = opacity 0.80 0.80,class:^(nwg-look)$ +windowrulev2 = opacity 0.80 0.80,class:^(qt5ct)$ + +windowrulev2 = opacity 0.90 0.90,class:^(com.github.rafostar.Clapper)$ #Clapper-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(com.github.tchx84.Flatseal)$ #Flatseal-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(hu.kramo.Cartridges)$ #Cartridges-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(com.obsproject.Studio)$ #Obs-Qt +windowrulev2 = opacity 0.80 0.80,class:^(gnome-boxes)$ #Boxes-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(discord)$ #Discord-Electron +windowrulev2 = opacity 0.80 0.80,class:^(WebCord)$ #WebCord-Electron +windowrulev2 = opacity 0.80 0.80,class:^(app.drey.Warp)$ #Warp-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(net.davidotek.pupgui2)$ #ProtonUp-Qt +windowrulev2 = opacity 0.80 0.80,class:^(yad)$ #Protontricks-Gtk + +windowrulev2 = opacity 0.80 0.70,class:^(pavucontrol)$ +windowrulev2 = opacity 0.80 0.70,class:^(blueman-manager)$ +windowrulev2 = opacity 0.80 0.70,class:^(nm-applet)$ +windowrulev2 = opacity 0.80 0.70,class:^(nm-connection-editor)$ +windowrulev2 = opacity 0.80 0.70,class:^(org.kde.polkit-kde-authentication-agent-1)$ + +windowrulev2 = float,class:^(org.kde.ark)$ +windowrulev2 = float,class:^(com.github.rafostar.Clapper)$ #Clapper-Gtk +windowrulev2 = float,class:^(app.drey.Warp)$ #Warp-Gtk +windowrulev2 = float,class:^(net.davidotek.pupgui2)$ #ProtonUp-Qt +windowrulev2 = float,class:^(yad)$ #Protontricks-Gtk +windowrulev2 = float,class:^(pavucontrol)$ +windowrulev2 = float,class:^(blueman-manager)$ +windowrulev2 = float,class:^(nm-applet)$ +windowrulev2 = float,class:^(nm-connection-editor)$ +windowrulev2 = float,class:^(org.kde.polkit-kde-authentication-agent-1)$ + diff --git a/modules/home/hyprland/conf/kitty/kitty.conf b/modules/home/hyprland/conf/kitty/kitty.conf new file mode 100644 index 0000000..c7d104b --- /dev/null +++ b/modules/home/hyprland/conf/kitty/kitty.conf @@ -0,0 +1,11 @@ +font_family CaskaydiaCove Nerd Font Mono +bold_font auto +italic_font auto +bold_italic_font auto + +font_size 12.0 +window_padding_width 18 +include themes/theme.conf +#background_opacity 0.60 +#hide_window_decorations yes +#confirm_os_window_close 0 diff --git a/modules/home/hyprland/conf/kitty/themes/Catppuccin-Latte.conf b/modules/home/hyprland/conf/kitty/themes/Catppuccin-Latte.conf new file mode 100644 index 0000000..3ebaa2d --- /dev/null +++ b/modules/home/hyprland/conf/kitty/themes/Catppuccin-Latte.conf @@ -0,0 +1,80 @@ +# vim:ft=kitty + +## name: Catppuccin Latte 🐑 +## author: Pocco81 (https://github.com/Pocco81) +## license: MIT +## upstream: https://github.com/catppuccin/kitty/blob/main/latte.conf +## blurb: Soothing pastel theme for the high-spirited! + + + +# The basic colors +foreground #4C4F69 +background #EFF1F5 +selection_foreground #EFF1F5 +selection_background #DC8A78 + +# Cursor colors +cursor #DC8A78 +cursor_text_color #EFF1F5 + +# URL underline color when hovering with mouse +url_color #7287FD + +# Kitty window border colors +active_border_color #8839EF +inactive_border_color #7C7F93 +bell_border_color #E64553 + +# OS Window titlebar colors +wayland_titlebar_color system +macos_titlebar_color system + +# Tab bar colors +active_tab_foreground #EFF1F5 +active_tab_background #8839EF +inactive_tab_foreground #4C4F69 +inactive_tab_background #9CA0B0 +tab_bar_background #BCC0CC + +# Colors for marks (marked text in the terminal) +mark1_foreground #EFF1F5 +mark1_background #1E66F5 +mark2_foreground #EFF1F5 +mark2_background #8839EF +mark3_foreground #EFF1F5 +mark3_background #209FB5 + +# The 16 terminal colors + +# black +color0 #4C4F69 +color8 #6C6F85 + +# red +color1 #D20F39 +color9 #D20F39 + +# green +color2 #40A02B +color10 #40A02B + +# yellow +color3 #DF8E1D +color11 #DF8E1D + +# blue +color4 #1E66F5 +color12 #1E66F5 + +# magenta +color5 #EA76CB +color13 #EA76CB + +# cyan +color6 #179299 +color14 #179299 + +# white +color7 #ACB0BE +color15 #ACB0BE diff --git a/modules/home/hyprland/conf/kitty/themes/Catppuccin-Mocha.conf b/modules/home/hyprland/conf/kitty/themes/Catppuccin-Mocha.conf new file mode 100644 index 0000000..e52f9e1 --- /dev/null +++ b/modules/home/hyprland/conf/kitty/themes/Catppuccin-Mocha.conf @@ -0,0 +1,80 @@ +# vim:ft=kitty + +## name: Catppuccin Mocha 🌿 +## author: Pocco81 (https://github.com/Pocco81) +## license: MIT +## upstream: https://github.com/catppuccin/kitty/blob/main/mocha.conf +## blurb: Soothing pastel theme for the high-spirited! + + + +# The basic colors +foreground #CDD6F4 +background #1E1E2E +selection_foreground #1E1E2E +selection_background #F5E0DC + +# Cursor colors +cursor #F5E0DC +cursor_text_color #1E1E2E + +# URL underline color when hovering with mouse +url_color #B4BEFE + +# Kitty window border colors +active_border_color #CBA6F7 +inactive_border_color #8E95B3 +bell_border_color #EBA0AC + +# OS Window titlebar colors +wayland_titlebar_color system +macos_titlebar_color system + +# Tab bar colors +active_tab_foreground #11111B +active_tab_background #CBA6F7 +inactive_tab_foreground #CDD6F4 +inactive_tab_background #181825 +tab_bar_background #11111B + +# Colors for marks (marked text in the terminal) +mark1_foreground #1E1E2E +mark1_background #87B0F9 +mark2_foreground #1E1E2E +mark2_background #CBA6F7 +mark3_foreground #1E1E2E +mark3_background #74C7EC + +# The 16 terminal colors + +# black +color0 #43465A +color8 #43465A + +# red +color1 #F38BA8 +color9 #F38BA8 + +# green +color2 #A6E3A1 +color10 #A6E3A1 + +# yellow +color3 #F9E2AF +color11 #F9E2AF + +# blue +color4 #87B0F9 +color12 #87B0F9 + +# magenta +color5 #F5C2E7 +color13 #F5C2E7 + +# cyan +color6 #94E2D5 +color14 #94E2D5 + +# white +color7 #CDD6F4 +color15 #A1A8C9 diff --git a/modules/home/hyprland/conf/kitty/themes/Cyberpunk-Edge.conf b/modules/home/hyprland/conf/kitty/themes/Cyberpunk-Edge.conf new file mode 100644 index 0000000..26e94b1 --- /dev/null +++ b/modules/home/hyprland/conf/kitty/themes/Cyberpunk-Edge.conf @@ -0,0 +1,72 @@ +# vim:ft=kitty + +# The basic colors +foreground #FDF500 +background #000000 +selection_foreground #000000 +selection_background #FADA16 + +# Cursor colors +cursor #FADA16 +cursor_text_color #FADA16 + +# URL underline color when hovering with mouse +url_color #FADA16 + +# Kitty window border colors +active_border_color #000000 +inactive_border_color #000000 +bell_border_color #000000 + +# OS Window titlebar colors +wayland_titlebar_color system +macos_titlebar_color system + +# Tab bar colors +active_tab_foreground #FADA16 +active_tab_background #000000 +inactive_tab_foreground #000000 +inactive_tab_background #FADA16 +tab_bar_background #000000 + +# Colors for marks (marked text in the terminal) +mark1_foreground #FADA16 +mark1_background #000000 +mark2_foreground #FADA16 +mark2_background #000000 +mark3_foreground #FADA16 +mark3_background #000000 + +# The 16 terminal colors + +# black +color0 #1F2229 +color8 #1B1C22 + +# red +color1 #D62246 +color9 #EC0101 + +# green +color2 #4DBD4F +color10 #1F5322 + +# yellow +color3 #FDF500 +color11 #F2CB07 + +# blue +color4 #F29C6B +color12 #FFA6C2 + +# magenta +color5 #A56DF2 +color13 #564873 + +# cyan +color6 #2CF6B3 +color14 #37EBF3 + +# white +color7 #E6E6E6 +color15 #FFFFFF diff --git a/modules/home/hyprland/conf/kitty/themes/Decay-Green.conf b/modules/home/hyprland/conf/kitty/themes/Decay-Green.conf new file mode 100644 index 0000000..21776a9 --- /dev/null +++ b/modules/home/hyprland/conf/kitty/themes/Decay-Green.conf @@ -0,0 +1,47 @@ +# Eye Friendly Colors +# Created by https://github.com/decaycs + +# Special +background #0d0f18 +foreground #a5b6cf + +# Black +color0 #151720 +color8 #1c1e27 + +# Red +color1 #dd6777 +color9 #e26c7c + +# Green +color4 #90ceaa +color12 #95d3af + +# Yellow +color3 #ecd3a0 +color11 #f1d8a5 + +# Blue +color2 #86aaec +color10 #8baff1 + +# Magenta +color5 #c296eb +color13 #c79bf0 + +# Cyan +color6 #93cee9 +color14 #98d3ee + +# White +color7 #cbced3 +color15 #d0d3d8 + +# Cursor +cursor #cbced3 +cursor_text_color #a5b6cf + +# Selection highlight +selection_foreground #a5b6cf +selection_background #1c1e27 + diff --git a/modules/home/hyprland/conf/kitty/themes/Graphite-Mono.conf b/modules/home/hyprland/conf/kitty/themes/Graphite-Mono.conf new file mode 100644 index 0000000..da42b92 --- /dev/null +++ b/modules/home/hyprland/conf/kitty/themes/Graphite-Mono.conf @@ -0,0 +1,72 @@ +# vim:ft=kitty + +# The basic colors +foreground #D9D9D9 +background #262626 +selection_foreground #262626 +selection_background #A6A6A6 + +# Cursor colors +cursor #A6A6A6 +cursor_text_color #D9D9D9 + +# URL underline color when hovering with mouse +url_color #D9D9D9 + +# Kitty window border colors +active_border_color #595959 +inactive_border_color #595959 +bell_border_color #595959 + +# OS Window titlebar colors +wayland_titlebar_color system +macos_titlebar_color system + +# Tab bar colors +active_tab_foreground #D9D9D9 +active_tab_background #262626 +inactive_tab_foreground #D9D9D9 +inactive_tab_background #262626 +tab_bar_background #D9D9D9 + +# Colors for marks (marked text in the terminal) +mark1_foreground #262626 +mark1_background #404040 +mark2_foreground #262626 +mark2_background #262626 +mark3_foreground #262626 +mark3_background #A6A6A6 + +# The 16 terminal colors + +# black +color0 #404040 +color8 #404040 + +# red +color1 #D9D9D9 +color9 #D9D9D9 + +# green +color2 #D9D9D9 +color10 #D9D9D9 + +# yellow +color3 #595959 +color11 #595959 + +# blue +color4 #A6A6A6 +color12 #A6A6A6 + +# magenta +color5 #A6A6A6 +color13 #A6A6A6 + +# cyan +color6 #A6A6A6 +color14 #A6A6A6 + +# white +color7 #D9D9D9 +color15 #D9D9D9 diff --git a/modules/home/hyprland/conf/kitty/themes/Material-Sakura.conf b/modules/home/hyprland/conf/kitty/themes/Material-Sakura.conf new file mode 100644 index 0000000..9ebde85 --- /dev/null +++ b/modules/home/hyprland/conf/kitty/themes/Material-Sakura.conf @@ -0,0 +1,55 @@ +## name: Rosé Pine Dawn +## author: mvllow +## license: MIT +## upstream: https://github.com/rose-pine/kitty/blob/main/dist/rose-pine-dawn.conf +## blurb: All natural pine, faux fur and a bit of soho vibes for the classy minimalist + +foreground #575279 +background #faf4ed +selection_foreground #575279 +selection_background #dfdad9 + +cursor #cecacd +cursor_text_color #575279 + +url_color #907aa9 + +active_tab_foreground #575279 +active_tab_background #f2e9e1 +inactive_tab_foreground #9893a5 +inactive_tab_background #faf4ed + +active_border_color #286983 +inactive_border_color #dfdad9 + +# black +color0 #f2e9e1 +color8 #9893a5 + +# red +color1 #b4637a +color9 #b4637a + +# green +color2 #286983 +color10 #286983 + +# yellow +color3 #ea9d34 +color11 #ea9d34 + +# blue +color4 #56949f +color12 #56949f + +# magenta +color5 #907aa9 +color13 #907aa9 + +# cyan +color6 #d7827e +color14 #d7827e + +# white +color7 #575279 +color15 #575279 diff --git a/modules/home/hyprland/conf/kitty/themes/Rose-Pine.conf b/modules/home/hyprland/conf/kitty/themes/Rose-Pine.conf new file mode 100644 index 0000000..575c06b --- /dev/null +++ b/modules/home/hyprland/conf/kitty/themes/Rose-Pine.conf @@ -0,0 +1,56 @@ +## name: Rosé Pine +## author: mvllow +## license: MIT +## upstream: https://github.com/rose-pine/kitty/blob/main/dist/rose-pine.conf +## blurb: All natural pine, faux fur and a bit of soho vibes for the classy minimalist + +foreground #e0def4 +background #191724 +selection_foreground #e0def4 +selection_background #403d52 + +cursor #524f67 +cursor_text_color #e0def4 + +url_color #c4a7e7 + +active_tab_foreground #e0def4 +active_tab_background #26233a +inactive_tab_foreground #6e6a86 +inactive_tab_background #191724 + +active_border_color #31748f +inactive_border_color #403d52 + +# black +color0 #26233a +color8 #6e6a86 + +# red +color1 #eb6f92 +color9 #eb6f92 + +# green +color2 #31748f +color10 #31748f + +# yellow +color3 #f6c177 +color11 #f6c177 + +# blue +color4 #9ccfd8 +color12 #9ccfd8 + +# magenta +color5 #c4a7e7 +color13 #c4a7e7 + +# cyan +color6 #ebbcba +color14 #ebbcba + +# white +color7 #e0def4 +color15 #e0def4 + diff --git a/modules/home/hyprland/conf/kitty/themes/Tokyo-Night.conf b/modules/home/hyprland/conf/kitty/themes/Tokyo-Night.conf new file mode 100644 index 0000000..9ee37a4 --- /dev/null +++ b/modules/home/hyprland/conf/kitty/themes/Tokyo-Night.conf @@ -0,0 +1,77 @@ +# Tokyo Night color scheme for kitty terminal emulator +# https://github.com/davidmathers/tokyo-night-kitty-theme +# +# Based on Tokyo Night color theme for Visual Studio Code +# https://github.com/enkia/tokyo-night-vscode-theme + +foreground #a9b1d6 +background #24283b + +# Black +color0 #414868 +color8 #414868 + +# Red +color1 #f7768e +color9 #f7768e + +# Green +color2 #73daca +color10 #73daca + +# Yellow +color3 #e0af68 +color11 #e0af68 + +# Blue +color4 #7aa2f7 +color12 #7aa2f7 + +# Magenta +color5 #bb9af7 +color13 #bb9af7 + +# Cyan +color6 #7dcfff +color14 #7dcfff + +# White +color7 #c0caf5 +color15 #c0caf5 + +# Cursor +cursor #c0caf5 +cursor_text_color #1a1b26 + +# Selection highlight +selection_foreground none +selection_background #28344a + +# The color for highlighting URLs on mouse-over +url_color #9ece6a + +# Window borders +active_border_color #3d59a1 +inactive_border_color #101014 +bell_border_color #e0af68 + +# Tab bar +tab_bar_style fade +tab_fade 1 +active_tab_foreground #3d59a1 +active_tab_background #16161e +active_tab_font_style bold +inactive_tab_foreground #787c99 +inactive_tab_background #16161e +inactive_tab_font_style bold +tab_bar_background #101014 + +# Title bar +macos_titlebar_color #16161e + +# Storm +# background #24283b +# cursor_text_color #24283b +# active_tab_background #1f2335 +# inactive_tab_background #1f2335 +# macos_titlebar_color #1f2335 diff --git a/modules/home/hyprland/conf/rofi/clipboard.rasi b/modules/home/hyprland/conf/rofi/clipboard.rasi new file mode 100644 index 0000000..92b3652 --- /dev/null +++ b/modules/home/hyprland/conf/rofi/clipboard.rasi @@ -0,0 +1,124 @@ +// Config // +configuration { + modi: "drun"; + show-icons: false; + font: "JetBrainsMono Nerd Font 9"; +} + +@theme "~/.config/rofi/themes/theme.rasi" + + +// Main // +window { + location: south east; + anchor: south east; + x-offset: -20px; + y-offset: -20px; + height: 55%; + width: 20%; + transparency: "real"; + fullscreen: false; + enabled: true; + cursor: "default"; + spacing: 0px; + padding: 0px; + border: 2px; + border-radius: 15px; + border-color: @alternate-normal-background; + background-color: transparent; +} + +mainbox { + enabled: true; + spacing: 0px; + orientation: vertical; + children: [ "inputbar" , "listbox" ]; + background-color: transparent; + background-image: url("~/.config/swww/wall.blur", height); +} + + +// Inputs // +inputbar { + enabled: true; + padding: 7px; + children: [ "entry" ]; + background-color: @background; +} +entry { + border: 3px; + border-radius: 10px; + border-color: @background; + enabled: true; + padding: 70px; + text-color: @foreground; + background-color: @background; + background-image: url("~/.config/swww/wall.blur", width); +} + + +// Lists // +listbox { + spacing: 0px; + padding: 10px; + children: [ "listview" ]; + background-color: @background; +} +listview { + enabled: true; + columns: 1; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: false; + fixed-columns: true; + cursor: "default"; + background-color: transparent; + text-color: @foreground; +} + + +// Elements // +element { + enabled: true; + spacing: 0px; + padding: 12px; + border-radius: 10px; + cursor: pointer; + background-color: transparent; + text-color: @foreground; +} +element normal.normal { + background-color: transparent; + text-color: @normal-foreground; +} +element normal.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; +} +element normal.active { + background-color: @active-background; + text-color: @active-foreground; +} +element selected.normal { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +element selected.urgent { + background-color: @selected-urgent-background; + text-color: @selected-urgent-foreground; +} +element selected.active { + background-color: @selected-active-background; + text-color: @selected-active-foreground; +} +element-text { + vertical-align: 0.0; + horizontal-align: 0.0; + cursor: inherit; + background-color: transparent; + text-color: inherit; +} + diff --git a/modules/home/hyprland/conf/rofi/config.rasi b/modules/home/hyprland/conf/rofi/config.rasi new file mode 100644 index 0000000..b40aea4 --- /dev/null +++ b/modules/home/hyprland/conf/rofi/config.rasi @@ -0,0 +1,147 @@ +// Config // +configuration { + modi: "drun,filebrowser,window,run"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name}"; + window-format: "{w}{t}"; + font: "JetBrainsMono Nerd Font 10"; + icon-theme: "Tela-circle-dracula"; +} + +@theme "~/.config/rofi/themes/theme.rasi" + + +// Main // +window { + transparency: "real"; + fullscreen: false; + enabled: true; + cursor: "default"; + spacing: 0px; + padding: 0px; + border: 2px; + border-radius: 40px; + border-color: @alternate-normal-background; + background-color: transparent; +} +mainbox { + enabled: true; + spacing: 0px; + orientation: horizontal; + children: [ "inputbar" , "listbox" ]; + background-color: transparent; + background-image: url("~/.config/swww/wall.blur", height); +} + + +// Inputs // +inputbar { + enabled: true; + width: 25%; + children: [ "mode-switcher" , "entry" ]; + background-color: transparent; + background-image: url("~/.config/swww/wall.set", height); +} +entry { + enabled: false; +} + + +// Modes // +mode-switcher{ + orientation: vertical; + enabled: true; + spacing: 0px; + width: 2.5%; + padding: 160px 10px 160px 10px; + spacing: 25px; + background-color: transparent; + background-image: url("~/.config/swww/wall.blur", height); +} +button { + cursor: pointer; + border-radius: 50px; + background-color: @background; + text-color: @foreground; +} +button selected { + background-color: @foreground; + text-color: @background; +} + + +// Lists // +listbox { + spacing: 10px; + padding: 30px; + children: [ "listview" ]; + background-color: @background; +} +listview { + enabled: true; + columns: 1; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + cursor: "default"; + background-color: transparent; + text-color: @foreground; +} + + +// Elements // +element { + enabled: true; + spacing: 30px; + padding: 7px; + border-radius: 20px; + cursor: pointer; + background-color: transparent; + text-color: @foreground; +} +element normal.normal { + background-color: transparent; + text-color: @normal-foreground; +} +element normal.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; +} +element normal.active { + background-color: @active-background; + text-color: @active-foreground; +} +element selected.normal { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +element selected.urgent { + background-color: @selected-urgent-background; + text-color: @selected-urgent-foreground; +} +element selected.active { + background-color: @selected-active-background; + text-color: @selected-active-foreground; +} +element-icon { + size: 48px; + cursor: inherit; + background-color: transparent; + text-color: inherit; +} +element-text { + vertical-align: 0.5; + horizontal-align: 0.0; + cursor: inherit; + background-color: transparent; + text-color: inherit; +} + diff --git a/modules/home/hyprland/conf/rofi/styles/style_1.png b/modules/home/hyprland/conf/rofi/styles/style_1.png new file mode 100644 index 0000000000000000000000000000000000000000..400b82b7d108634917be50b43d2b9c399f1a9e15 GIT binary patch literal 17830 zcmeHvc{tSV`}W5Y?UKrp5K2V|Wnb#CM3zFftO;2fYj#GD3fW1>_CyFFBUQV=$KYnx60P{r7$Ue2@3|b{rjLe3tuj-`9Oz=XqY|XM*mlE1fvXauh+36Uukx zH4%i0gZ%d}4SX`_K=Ty-IpT0v-x)zp){_5HG}?c90v|HFDCoIp*;~4}nK@Y?Zfe-^|5>xaR*FV+xC=J9@hB&4rH3U*#PG5k)`hQ!f#UL@}L2JwGwlH*dzc4+l2A zcv1bDN>AsBk`8yI2xCx@!#hb~x8*_Ghd57lnd2lIu}X}#TaWm|9xS^cyV!KM2fO<7 zhe-z>CEU%0FzlwkvSug|#BcpCgaSdFxcuO=GI}}qWauylg2&d5L7t0K=h*e* zh+ktN-{AEam0Z4N1O0c;E-5?7Do5Gx_h5H)m(LmvRw@_r@s__XTMfo;1vAbQc2e33 z7nC?B0yrnO1N8(-`4B|io|n@&C{RG5E}t%-7QGWKyB$qDmS>%Dgu`m%m4Nqne2wW! zY#|@XEt-3KU-0t@#5CDL|D6w)a@0YQA^!m;Wh*Gfy=>-h%TUDWD0bx-_Dkv4uN#bT zbTj>GCMW0B^2-Qvbajw^HD}NFKo`A}iT2E&d2IOt5&GL?f6@eXlEy#fT8v7{kHQ6m z4g!J*UWnrEzuUF3d_15QOVW}hXeB7%gj=a27`7%Dv3i3813RknyP<-aRES^g;uHPN zW4Su>_P$fXDg6TFan{^^ta#@X(ojlRph-xe#yO*72vT&hxe&)SA-lJcDZ7V0Yt;Oe zUhd@TM6f`fV%?}()Ng^ae~!A^Txc>+B&F=fr)CnMn)~rXxXKqGA$S8YH{2=;W7MZkgMZTG2CVN z_!Rv?j|s^Zy@(ABboQa*_uKvOn>-U}cKQ_NNrg!#aekxnGxPKF1*N58A385Lj_R+?g?!(>eR~Wedh1bz zttu%YPPdsKj!%)C=~CvLh}B?`dH3$!#4ASQzywkIwuf5?GPV)L9dwM5zfMa-`sUAw zU3PtA73UZQ zjHPBD%cIR~ZRd}zj{LRij31(jAfIFfq2C@ZnXj2u=iDyMs3A@0R?W3Jgvi~{(b1XM zA~rMf6_hJ%PP=IO%$u5#q60&!}6(M=B1~6Pv5_#IUu?9(aqegeG32f*r?t{6}_= zO=FS)>|b5%$}0iGwzRy|qzdFTJz6xZf4ovBr@j$x^a-al5)1%|P4e(Xo|z+M{mVqz z6eTqUNnMKHMJam=*hualCQ@^WPGzj^QtKfr6iBt++vdqq*F^*EYcX8y_o9BcV0*y#UT`Z<#9JlbSU8IK6-e~e?UX8n!t6*2RBcTdj)o*B zAce)ng!sU%H33ns347M( zZJnK(hFD+e%r^)k7OtbK8-C$gGz=0A^C2*)t+~{ufG{7Ykv&U4A86){$%{j@Htv<+hjLCM)D{kfeod?r~Wlr@c;r72%VciA>1|p{+PZVL- zc(G0!%EC5FRCn`nq zpL_xW>_m>;Xqa~^tZcsLnh=iSi5Tm?l4D&Jdn~_ECy4@)y9l8h69ZF!HMUtcSxdYu zejXO}VB`TU4o7Fi1j*|%%EM#332*(L%|li)c)qp6G&u{6r;3ew3r z3kmLZt=UIw7T7%ymJp?S1_p05t&>w0DWdP^>cC7jI*3Uvyk&1GN>+wZoThJQcQy6! z5Qjn67a(Jj8>GFyzP`Y{y*(Z_$haM-5_4x~;ojcfFr%I+5gPy78=jan)cr9-C=3ta zf^bu#pYeQreDXOx5(_JhzWdYYsx@a>qO-r0?fbW7$2rJBn9i-t&*r*YisDDaexXY6 zHU6}b8M6h`Cj)B9cT>+~h!rqlYp%`nH|?4yw0U2Tvw|mpbpHAC=awfLPjYo6ulaT7 znPB%_651kQsv0r38!TzWvT>0-$f|==$NJ-Uz&9C_=r6IaE2-6fh_trP($*^uZz=+ zZ5kvqHS7AmL4Xe|5|Xb-t}aG3^8G6O|(z$O<(tFYkk#o;H`zd$IgU<%{X*>B7Y) zruB;rqzTjEKN#eYu_Lf$b9D2QJ+Jh>I>y+xu|a@Z*kRY!T4f%Q0GS(?XH@i0?HTf+ zry#yiL#6aRHiWu-GcoM#nPIT#R)< z??lyg<)|xv_6xzi*&s%O~zU$ZHIZiszO#Oewy{{=S0uZzmWU4b24CHH0HRM++HVEZb ze#3vv^fE{b4wU{i9ImdesXaFJrh;2x=799(2%eA{RNwtI&H(9<(A zy5Mo87cS_g=0dBuzA|3B^(#Q;$*c0K+bR(-ACEB*;x0E3WV3%-0g z)noJgdk>|9DGUkbL@%$nq=XT`Dvu0ybXh5>D$=tEpui4vLKY zhJw_#kODI!Ec&~1d8ONK&QrJxNF`3rT9+Ayk(1$E@v&pa99JjmwMtG*53j8`L2fx~ zL=$jIPW=OJUTygIvWQyl1v)`Xa%O{66=|XiDfVX!uhsjO5xZOXxt<&@jmH7&e9BP( z2=4$;Dx1+1`#bcohM9r=M#b<_R{0Kv*icW7F1{m83Fg^3bv>uY2C$q3-?|t}sG|4G zU+iySwVxInbj%Zurg$Ch%7AU0t{J45M&D|w^)!WovMDg5fQXm-6I-Ef)J$mrS|{p* zJM37h^kz!PB73D z`9A@}sn&J3OXTOIlXlL-Q4GQZEB$nUs_83^R&X8)aZlwbWW@aR&f(X!POkj`!u!9w1<=V=J zjTgRcrs3w5RffQ*Y^b_vTY2+XGB^`|q#`zi+h`ymA1mxvU zJxg`ERjVqyH97VTrh-zNyQmUI`zjxv5pRCD{~2}YbB_9I`6fzt(s-8 zi$5*2su90ki07}sb{|rF?09;{h?3z8b~N;Wbg+Fev55&VFEf6hv6`NbVJ#WKFdp<` zw|P>_7M5v{rdXwaGPU_*Gp91J9ZyyF)~Z8LZuu9`2kd(deE|NXy}zEtZqglCOL>2l z-n6AcSQQX)e<=L~&%GgB^;Ypf(iZK(mZ-T^$<2aWo5YG$y8TuAhK7t&l*n%-L_AF~ z?Ll8>31mDQPcx z?m18y%DySf_|6ln=;_#>P4MSE2s)!STtAss->ptz~p-EoIC2DJf_2e3o=fq(R{1TT|dzUHIW zq!R3I==T8{q>YZ^NejgPztxcG(Otk9pdv5MBRpN@zbz3^u zD}y-59Ohuq%qJtB>pdIj2KWf_kxlW=)~N77A>Tykqmp2LE)>Q~ zU}x{Pc1{&s>W4#YWHh(((MNf)vn6F122v8L!vgddN8&!@kSVAg6v)(Dr3Jx5Y^dKQ z3rmi6s)rHPD1=hW)XOb@<}};jKzy;sotfRGd=pYxoiEwXPq2{SOjS)m@S)s;cWK-iv7#RbBv#RX%N*g^2MK7 zl)=RxC8d(DZO$H%2owrH$IhPbN9!GTuJ3%!oD&$IJ11{l1kMFJ4=@U&;Z2V+&+R)M zm!wL!r6D10W;# z8dIFapLc2j!0^=|7go`{!VMz~wI&E+HQX^b+Pky~pxlOU1SqdDUY?LHsB zd^0nEyAqd2!+{r?w+{{vhXU^d$`%H2{@rE~U-0noFqA(4yw_t+u-}LAYi0pB3$!en zrKmnGm}eCtk)*z`un=<7yV3+IfK72~&o$S$lhGZ9sJbF{kL)j-_Qn;gx&jFY6w9$0 z)O62P zh1j|q)DbtVO9r|2qbI_BIkS6qQ-e4JyQPR)G^%hai1$l&J|D>Brs=UM<#!fP&!Of>y|AEE2c1<*y662%2(})Zo@_ej zkD6B-Q%D``Vd&lS*bDZfRkD${_)QFh(Ih3b*c@R(=i%V!Xn4t}hbU^aj8rFxEiXJR ziZTq(OfF}(@EVUubCfY;AzbYEy8EqK3L>PS3iTq!8Xrb@3$v;HJiNppS5IHRK%Y#@RGK4~+B& zEhZ(o<6BE6yo}vt@{G%(%wrO*@T}h)znG0HV^dBrzgQJtZJ?HlSp?mjF z4(!R;?@Sjys}nY~aClKPiMOB(UP^Mh(%$DIVeI+Hg2F1pxCwXRype>IkhSulk(mITs1a zro?i`Ma^B(L0fo3j(sJA$=)7rVmz(ma-*@HZ3DZmT`k%m&4;ZW?#(vtCR+w#8g zhC1`usQ0`MaCI<)!uyuP|Mql*=~X_tJtSp zs6R$W86voqr4CvGCbq3)&LljlaGW2ma3qb?_6?1M4r4amq;47++tj`4u{6Yb-jH#@ z+Za}r>X=S0TNe*n9c8B-!T9h1?x`-_AYVs4ezx{Yc0yg%}>3kjtkk@=3)mB zS3bO??H2A7cWK#Yy9LNlg8lHD z;^LlCSHhfL9xZ$KQxQ((r~>a%QI^oi_7XHjNFxZ19hX+9cRnhLEJjmh7Q4Ovk@JvO zi&=(~vudZ5x3Gjb_(h`Ju#&hS$ zQbi_;1cLLX+uvHC(({{CNxd^xz5Ex#3_$_Fm6P&t*Tkf*anjb8YJ1FngM5Db_P5GP zR?xOtx1SR{rSkwuXJqDs;E5Wkv_5Ckmo`wrSo>V{cNmo}F55qHO-hrAj0YXN> zw{PbbT_tz+ssdD3D3qh*foX$O*^|S3(J#bQ2en{z>B@~!W8dwbp#jhJ+()ZQRYZoe z;>PVFz!YT3<3AvO(G`oY_y%S5Pm&jpG}8jU1G;;IuaO_;VUFs);R>|uEjH<&xtKw> zrMkwHgE$@&RqZHlfcxxpK`LD$g?z&Ltful)Gg)YXG6k$yY~BY)1pJwa2cb z@}Awv(mpMNsNaUE%n~_&P-dB~KGh`&`Q9s6XK8VyobYWt01>1b$_gV7UOF=EO6|Cy zvDYHu&cM>9r{lrC{~Z8H>Zn^wpEBz{Q%8`ObbX-2IDF(~?6CCDM zfusZc|Mv4G2}~G@mWbp$ydDy!V37UIKQ-_Q`5TQMCEpr?P34+P0D zEO>t2ac`#>I$cf0d0xcj#@=4nyk~6FxsU7{AwPXN#Eh681%&+{$#-Q?)US&}IcmsW z>PO?|rmOdQj4sH!^FfUj7-JVvw))yorPZ~Z{QBY?-HGk#%d}=(E;Cx`}}nf!!jaPk7Q~Cr~>F@q$pph8=USo z-7KhvZ#LPUYZ}LcR=rPq)m3*kpzRMR``beVuK2t2T@C!xuft z*ZZjTWp>Q5QzY1J#J6Nd2=OD*%QgH1_!*i}&*;J+yR=#st&E$5=mHBWw%^^a%R>`K z_T2GromEDb+ko9I@9z~czKwpgTq(?8b_8iVM)4#BkbEj|qJ%T9;u}ya z6-ow^o}L%L?idV-*M?1kWaN90Fv@DK5RIF4nW$l!>Ov6wIKOKPSyju+3-fuH?f+vc z`ncGc%u)8b1pBI(dyh=^c0|>0*7$%11nVHcBlN+ibEJ~sO2)mTm;F?$Yj#7RTOv%? zoUM~X=JXa8^$|JZn{azYbVPfo4=iE~db`JcdU%k>R}BJ+ycYGFZEe)N35l((xsbqk z%a0=*cJg8mCY`odzkG&pfXz(fUlU0Zf~JnUNw`h1&8HsmU-JaKPMgL|mq;*_1tO?p zq}A`o+8aABO4~vTS(J3c$3U{(?)f-U{+zdp7@cwjE-Xf*j$mbN85RQ-1+QE{E1AWk z{8%B!d9Jl&9(YpFFHti zk5qpyJZ>KbLTDwk+53!eUFbb=bB+w&#{7|F3RIU_z3^(zvTtswcDWOW-C$?#-K~lF zLq1jY0G-bh*p^@VYW`at09y29hjvXVP|*!v)nNZi9{I*)nl4unhrBo{Axr3{fV@iX ztVno!|8fuu0YU+}7IeY}C$+UqqWMmx1^-Fpw>rX{1}q#}*T8r#`|j~IU+$!dPJ`d; z!Q-#-_=Ws{!VbVaa>^sI7cTjA@Y%&DuV?n+j7vs(k5M8Xr(tUWzX9-__u?Pi{N%{x zOybVGJshD~Vm}(>JNioz0fpU3QQ>7c6_7rI+;^vhCZS1Fx!zWx5LpxJs)FR(5R54ynu;TB*8R{?0EZ~o}1g20YpGec>Fz4_SD zv7@sMX*?y@W@_Nc4unWMr{|M)Wl~pD-gH;~u&@1O`5*bzOa)RL2+bV~>=FP{OF?ag zE07x$*4EYwH-Vb&`O1QzrMyq=~OloCH7KzCKEO@Xn3j3Tl~=j z=$BpKA>l8lR)6Z2fAb;c{TTtZu2N9av%D?<34HA4M(kdcbzhO&^3$4e1#G*ym{qBZ zm!@pG8e$u;?s%`u#l}`Le{=JV(MP|IGnh}*T^3$mq!us9XDC$i++|=;gQHxDH4rdR z&0vZ^AXOA$I_}hOxAGOZK7de}u3OsSY0s(MtFAW}7Hr4>5{&e^4a*3kyfBEXMis-G zl2T-hNbtk}M%2WPiYhz4**Gy9e-*Rjg0A|}4ib6aYx}QChJnzqV3wdXcY0?Q0WyP7 zsy-7}9^(^?>Un*A+tho*?~g*L|4xmtl0#K=pG%eJ$V+0#x|!Dd z3@+)2xL34Bg3#FLNfUbocW(K~{sj>NFHVpr7)+Q${xK*P5?^K}qNY6MKZxP?rJP+U zo5(N`w8`lj5R*DC3I3hlu;rF-c`MZUzz_OL>775&sKu${c&%$O)DdKTyqbYevAA;K zwW|)d@@asCGeU8v@k8CuyKOxjDDZ&(^jwbo0oVFRIEpl zUI1Pc=ZeLCc6L6c<75eK=o@&w4*hY^Rop2@9k_nIYW&2XcZ{QG;^$;DM9&$>NpNnv zcaloF(AtUnWrl3fMi{vc>QjHR=D*{2ce*8gj*-#)S!-w=U#X`8GA;=Qm}C!`hMk?A zEMH0JN*}-QLKwOfj{W}WS(EC|squ+##gr+VTs-EcT48uhvHW@AQmU`FW4VK`TSyE|M2zl zGb238QCrE3$pYoaE#*LZf(BIs=s*8yG%_6rCjm?uG#bhIBvtw>sJB{1ruJK3kuB(V}GiwBWO!H*c zlG!P_4BfN>CIO(3sm)`9d4^T2?0bP_>_~(t0LF~x)^+|jB2@D;Q6quVGMjcC7KvVr zy}c78?6OxdKNZq;369F{nbY3apnn2_w`%I;+E(o)eQ&6ef!EL+cg}Syj6of`Cxq~47 z;T9^Cv`7mz#S>MyKRNk>)`lvPEO3Rvi?E!?*-8{Hwz+BZdVm6Pt~OeTyU7v?S}<5c z8u!0?0#k*puPR21m|7m;V7L!{7YmC^P$?Fcms31YcL9mMdUfb8RRoFiplqW4S4W02 zp9*y{A1C>M2@(OQ&)uLe>*RP!!C~hq@1BHDzy+XZXc)rR45DZQ00h3~Dtsl_qu_~Q zT(@JOi}K_Mhq&a-uwW1?DC|ui!EOG3@Shi)vr~s;4uIlM2?eLjj#0vCwgn1sVz3MJ z*fQJ!Cs+_7WJW9b50SLDJm9|KfAWqpb`-t43>&q3{yFJ2bblC!derYi(-hQDP*JVQ z)j?|nvBr!)54%3unLG^#IOE%gu@)lCb^%Ay9L^- zPR^y5aE2C;7nb8Ruq?-{NgOW|pQplgev{iD{)ofST6uJynZ14fFL=3N>?0i7H#pdA z(bfnoBorPawHZ2L=D--c!LuO9bjGN`d>DoECU?S;5hsKuNfZ+j1kf&zu89#J0zJ5K^YAFod9G<$4uP1wpk004pOv2mXf|t-3HcIQX45 z@jmRQ!4i9=3IJng!Z^r^hc5z3hM#pWxQL*mYUQ~H&VelB1W>*!-0UyE-uwPlxl3ee z6w98Zo(ZkkmxxfNrP(K@YLUUdKCyKwkbZ`>UIm7Ro*1WU<7h4f!_$j^LM?J>Y1zPYAh~Yb9Y+Ti|@w7tF>!#;c7V3RI%ws`*dP}^a znqYHbFB(pY$euDU;jbi3^euFL-fep2|R51iimy#e~F z@QZaXmu_0!q7_N1B4`;L=FqxJ)>%e}c$9?*Hz`#spjlmDlmi{Y-dl-oX}#;S9O4a*5UEy)9MT zC1|CKt=}Xgm8A}NI)K#eLvUSy1m<25)$U}$Bp;XQBxRPRy>^?52^w}coR;fJF)Hb$ z?yD17gXivyZ9racTs!sR2lUphSsG{5&DD^i1+W=q&grZF(f+(M0`9;S9k7?x6W1+qmgBtuLO+zJz;=1=FJG5-;H}w++?fk`Sa%sN=n>Pab(}8 z(`fttS0~H3c_TSZon4wz{k&@-vkK8#c7vK!ydsMG!n+l<(GIH z5CcSdu1?M`3CLFbo_#4^bs&Si??&TwQjZa)QJb_Z+GvBz2%h(851v z4P99#&qEPuD(R20m;8iRPDs$u;=R|8Uxay>m`Js7qd?-W?l?9+fx1!R0m&b9qf;`F z^~F8q8sMtr7NSnh&4QkSlR6%8Q^S1}$e18yQyd@+XcPpYO3p*`%ly&B`G0U}2Dt{a z6o_9u2%_XN11&bt=s};(idEwS^LPFsuobC8OAgH7WKTF`{eSZ;fcn3@6rt9=RY`|i z!j3*sOo^E09p(@RuP4yDtu3^b{${Bzy!h0ZFrznm0rB&=>~{u`G3GpU`z6^*sQzDm z_vv3l6>zo&;KT5+pvptVBv)8+=YvL&0UQouFCgnfT!f%XNOgFqTx7FlUY=ss6F-V- zGx7mM#4=IlmsCKoK>vO)_B9Q;N*fL8GVx5fL12iCKHFmSj7VFBY9KUo8b<=+53g-uNehKzMp9 zK_RxDUS1w7RlpjRj^0+*H^*F1P0P8f6^*a%>YHiJizF} z8X3)nfo6&Iha9se>T zt9$ zX6K>P^l@DKa#HQqmXsO~`Fb2`T?NMWZxNxTZ{uJUZLzWebrxBnzz;Qn=O!{wmp``g ze`h#1@&I&lLKh8SUw!#DUb*h^ULB03og&gs+oy~i5mpOFM@Ksx%X86r#U|EV#J(7gbrSA)zHw4k0#Dp!=yfD!jqB1k(n6PN z)9ISU#MD{>aO^>)3njID2oJO^oU%`m{hh2Fkg|aiIZvTd|G5j8iJTiD&nd(T6*4U7 zuc@;=|NTMJ1^mp{VyZl}->^Q{H9*?(i;KwsvY?>AG4*04m@&-H??9uTY;uC6nFfBE zeB5~t^S|P(Xqy*$ZHfU}vd&YU_LwJlDzQORNnl$0XI-lWvfZ62Lzp4IoKYKCy73WD zA~_cYB8WKIM-6Ea3OxWU?EGyV$iGmWAW|RX;~GbNp^pM1C@^7+V{6>-bBT?O9sQZ} zPC20&S$mdWcah@bFiPp2g;lcQ;p%O&`7NGtVKbF~C?LdFY>G@g2icCS>A{!8Na*nW9$6q*}FV*sZSX}fJ1!myg z=(Lkdi>hUW$eKKoOEvCghWnY@ z+EL+f0D3ZiHzqf5>!(>Gkw{ciq(%O@?_V=ky3L;NJExWMKHBQrhdI1cW~vzA|MYG`OCpFMJT_(*19}QccBSC?8qkf~o;14>L z#@8ZnJ%!u@4<82O^III=Ezoto#-r=ZE(b;D02k;^{DKEu12R>_30J|BSQ)2ImqAu4I4Lo;ROU)@13p`nVpZ!H;EM7oMgj( z5xwK@C*hAuPzvuX#2->4)gHwVT0=h5D3~+$^=uydX->c0t?&bP0JaBHpPWG$1lNLO zeiWFw0^l{7unS;5>>u4H$J3R}C?_|5%DeJ)Ns?~+nSo+XXJ3#Fq7`QVjVCIC_y()O z)ei4j5p;40qR!W{PEB9-+Z}4(8v<|#?@Mu!Dn{J#q0m4Ve|QMSBFJ=n0^AFY$+7Sf z#6gRdj4&=bx?K$>ZHxRORXgWIQx7#DK=1iSqi>A!W3?Xc9xM)5*eAJNXk1-h?^9Q` zyYCr!O?y+Qn%amdVuxLjqLOF9qt(w0f- zbs5T%P84gq>+Sg(YHB{k+55{Ky-!85V`9#hn8PV1FvB)ttV>gE?-#3p4}G+BULXm#KeJ@8)iI*1Lm{!l9JH8$4M+cG!pt#aU|`j~Cw z=(tL2g!3VyaG{NO&*>z$ISg@RJqhT~lFhSc&q~_8wI3Qm3h;cEFS^L1bW1KfTRlZ) zPvxP}P-`)`%5z{`CaSc^7#Lz6fE9LU%-?8KnNU zW|89Za?h&yawDvVsf|rGo6kmv=R!fFji;xlz_db3dpoYBrRAd);$4^fs03z5-IJzT z30ybbJ3F36Sl>P41M$7)`1trtjU{4(>L#=cq{`9R@}(HB?T+qlZRy>WT0#?7 zcy|y3&!){_G6P4o?(VxYCqZslcp$aCB}%boGUC17`l@%J zEPJO8vky+~Z)~13AKs^=C|&5`__0}>F5Okd2)Fk&TgD5EhCq0qkdOm4T*7zP{erA-rKP21HhlR0eRkeF z+t@_7y|3^7{UH?^R+)r^gy)309_4oAWLd94ajy*&>ju0dIkF&ZAnwY2NSk|!F5Z2k z*>kqws6%_oIn#+ytjQ+IqJ8)K3e59Mde3FspnD*B(%!*6myJ(O_8sre(vsmL3Q+#$ zC+|OjO&@esc5>ndB#)CJyblSB5Z$Ayo=v{a4s4on5yDn&yRbLCvx;56W#_4R(jf?G zfc7C_?MF0^ERW1m%aJB&07o(p9%feLd1YnG2+v9*$ijJD_$hapbPV47Y6(>i?{BAW z@&OjxSpX#^U$>{kz*Zxsi;qPVK@OcKe=k5ZH{zG}>0uAMfvs$%$NE$_yrx+HD4NaX z)ZvKmS!no&6MYUstCq2y2402Pl`2P(u@x3KBchJ&qAq@QOQ~Ikv@pseJ@XGe2i>pw zU`E+83}$Z<_K{7l&xh>fPuUt8p5VzRE*jvTqo3tsdY%t2XJlrgmqT^f!;yaT>9!A&n>QTm#W$wa&FI6_v|*~B7aQ)6P*UY z<{Omo)c}F?R9fn=Up-6ti;lGFecLx4D1OJ_Y|GOEO aN-67181uo^hd}B;loizF^X{1b{l5T{?A_}C literal 0 HcmV?d00001 diff --git a/modules/home/hyprland/conf/rofi/styles/style_1.rasi b/modules/home/hyprland/conf/rofi/styles/style_1.rasi new file mode 100644 index 0000000..b40aea4 --- /dev/null +++ b/modules/home/hyprland/conf/rofi/styles/style_1.rasi @@ -0,0 +1,147 @@ +// Config // +configuration { + modi: "drun,filebrowser,window,run"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name}"; + window-format: "{w}{t}"; + font: "JetBrainsMono Nerd Font 10"; + icon-theme: "Tela-circle-dracula"; +} + +@theme "~/.config/rofi/themes/theme.rasi" + + +// Main // +window { + transparency: "real"; + fullscreen: false; + enabled: true; + cursor: "default"; + spacing: 0px; + padding: 0px; + border: 2px; + border-radius: 40px; + border-color: @alternate-normal-background; + background-color: transparent; +} +mainbox { + enabled: true; + spacing: 0px; + orientation: horizontal; + children: [ "inputbar" , "listbox" ]; + background-color: transparent; + background-image: url("~/.config/swww/wall.blur", height); +} + + +// Inputs // +inputbar { + enabled: true; + width: 25%; + children: [ "mode-switcher" , "entry" ]; + background-color: transparent; + background-image: url("~/.config/swww/wall.set", height); +} +entry { + enabled: false; +} + + +// Modes // +mode-switcher{ + orientation: vertical; + enabled: true; + spacing: 0px; + width: 2.5%; + padding: 160px 10px 160px 10px; + spacing: 25px; + background-color: transparent; + background-image: url("~/.config/swww/wall.blur", height); +} +button { + cursor: pointer; + border-radius: 50px; + background-color: @background; + text-color: @foreground; +} +button selected { + background-color: @foreground; + text-color: @background; +} + + +// Lists // +listbox { + spacing: 10px; + padding: 30px; + children: [ "listview" ]; + background-color: @background; +} +listview { + enabled: true; + columns: 1; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + cursor: "default"; + background-color: transparent; + text-color: @foreground; +} + + +// Elements // +element { + enabled: true; + spacing: 30px; + padding: 7px; + border-radius: 20px; + cursor: pointer; + background-color: transparent; + text-color: @foreground; +} +element normal.normal { + background-color: transparent; + text-color: @normal-foreground; +} +element normal.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; +} +element normal.active { + background-color: @active-background; + text-color: @active-foreground; +} +element selected.normal { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +element selected.urgent { + background-color: @selected-urgent-background; + text-color: @selected-urgent-foreground; +} +element selected.active { + background-color: @selected-active-background; + text-color: @selected-active-foreground; +} +element-icon { + size: 48px; + cursor: inherit; + background-color: transparent; + text-color: inherit; +} +element-text { + vertical-align: 0.5; + horizontal-align: 0.0; + cursor: inherit; + background-color: transparent; + text-color: inherit; +} + diff --git a/modules/home/hyprland/conf/rofi/styles/style_2.png b/modules/home/hyprland/conf/rofi/styles/style_2.png new file mode 100644 index 0000000000000000000000000000000000000000..0686312080f08701206ed144376b5d7dc7070897 GIT binary patch literal 22243 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 MPgg&ebxsLQ05S74_y7O^ literal 0 HcmV?d00001 diff --git a/modules/home/hyprland/conf/rofi/styles/style_2.rasi b/modules/home/hyprland/conf/rofi/styles/style_2.rasi new file mode 100644 index 0000000..065ea2f --- /dev/null +++ b/modules/home/hyprland/conf/rofi/styles/style_2.rasi @@ -0,0 +1,154 @@ +// Config // +configuration { + modi: "drun,filebrowser,window,run"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name}"; + window-format: "{w}{t}"; + font: "JetBrainsMono Nerd Font 10"; + icon-theme: "Tela-circle-dracula"; +} + +@theme "~/.config/rofi/themes/theme.rasi" + + +// Main // +window { + height: 600px; + width: 900px; + transparency: "real"; + fullscreen: false; + enabled: true; + cursor: "default"; + spacing: 0px; + padding: 0px; + border: 2px; + border-radius: 40px; + border-color: @alternate-normal-background; + background-color: transparent; +} +mainbox { + enabled: true; + spacing: 0px; + padding: 0px; + orientation: vertical; + children: [ "inputbar" , "listbox" ]; + background-color: transparent; + background-image: url("~/.config/swww/wall.blur", height); +} + + +// Inputs // +inputbar { + enabled: true; + spacing: 0px; + padding: 80px; + children: [ "entry" ]; + background-color: @background; + background-image: url("~/.config/swww/wall.set", width); +} +entry { + border-radius: 30px; + enabled: true; + spacing: 0px; + padding: 20px; + text-color: @foreground; + background-color: @background; +} + + +// Lists // +listbox { + padding: 30px; + spacing: 0px; + orientation: horizontal; + children: [ "listview" , "mode-switcher" ]; + background-color: @background; +} +listview { + padding: 10px; + spacing: 10px; + enabled: true; + columns: 2; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + cursor: "default"; + background-color: transparent; + text-color: @foreground; +} +mode-switcher { + orientation: vertical; + width: 95px; + enabled: true; + padding: 15px; + spacing: 10px; + background-color: transparent; +} +button { + cursor: pointer; + border-radius: 50px; + background-color: @background; + text-color: @foreground; +} +button selected { + background-color: @foreground; + text-color: @background; +} + + +// Elements // +element { + enabled: true; + spacing: 20px; + padding: 9px; + border-radius: 25px; + cursor: pointer; + background-color: transparent; + text-color: @foreground; +} +element normal.normal { + background-color: transparent; + text-color: @normal-foreground; +} +element normal.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; +} +element normal.active { + background-color: @active-background; + text-color: @active-foreground; +} +element selected.normal { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +element selected.urgent { + background-color: @selected-urgent-background; + text-color: @selected-urgent-foreground; +} +element selected.active { + background-color: @selected-active-background; + text-color: @selected-active-foreground; +} +element-icon { + size: 47px; + cursor: inherit; + background-color: transparent; + text-color: inherit; +} +element-text { + vertical-align: 0.5; + horizontal-align: 0.0; + cursor: inherit; + background-color: transparent; + text-color: inherit; +} + diff --git a/modules/home/hyprland/conf/rofi/styles/style_3.png b/modules/home/hyprland/conf/rofi/styles/style_3.png new file mode 100644 index 0000000000000000000000000000000000000000..61fedd6508e92c8aca0ad9a26ee2f8bf9082bd24 GIT binary patch literal 25220 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 Bj2!>~ literal 0 HcmV?d00001 diff --git a/modules/home/hyprland/conf/rofi/styles/style_3.rasi b/modules/home/hyprland/conf/rofi/styles/style_3.rasi new file mode 100644 index 0000000..752425d --- /dev/null +++ b/modules/home/hyprland/conf/rofi/styles/style_3.rasi @@ -0,0 +1,141 @@ +// Config // +configuration { + modi: "drun,filebrowser,window,run"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name}"; + window-format: "{w}{t}"; + font: "JetBrainsMono Nerd Font 10"; + icon-theme: "Tela-circle-dracula"; +} + +@theme "~/.config/rofi/themes/theme.rasi" + + +// Main // +window { + height: 500px; + width: 600px; + transparency: "real"; + fullscreen: false; + enabled: true; + cursor: "default"; + spacing: 0px; + padding: 0px; + border: 2px; + border-radius: 25px; + border-color: @alternate-normal-background; + background-color: transparent; +} +mainbox { + enabled: true; + spacing: 0px; + padding: 0px; + orientation: vertical; + children: [ "listbox" , "inputbar"]; + background-color: transparent; +} + + +// Inputs // +inputbar { + enabled: false; +} + + +// Lists // +listbox { + padding: 5px; + spacing: 5px; + orientation: horizontal; + children: [ "mode-switcher" , "listview" ]; + background-image: url("~/.config/swww/wall.blur", height); +} +listview { + padding: 20px; + spacing: 5px; + enabled: true; + columns: 1; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + cursor: "default"; + background-color: @background; + text-color: @foreground; + border-radius: 25px; +} +mode-switcher { + orientation: vertical; + width: 100px; + enabled: true; + padding: 60px 10px 60px 10px; + spacing: 15px; + background-color: transparent; +} +button { + cursor: pointer; + border-radius: 50px; + background-color: @background; + text-color: @foreground; +} +button selected { + background-color: @foreground; + text-color: @background; +} + + +// Elements // +element { + enabled: true; + spacing: 30px; + padding: 10px; + border-radius: 20px; + cursor: pointer; + background-color: transparent; + text-color: @foreground; +} +element normal.normal { + background-color: transparent; + text-color: @normal-foreground; +} +element normal.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; +} +element normal.active { + background-color: @active-background; + text-color: @active-foreground; +} +element selected.normal { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +element selected.urgent { + background-color: @selected-urgent-background; + text-color: @selected-urgent-foreground; +} +element selected.active { + background-color: @selected-active-background; + text-color: @selected-active-foreground; +} +element-icon { + size: 50px; + cursor: inherit; + background-color: transparent; + text-color: inherit; +} +element-text { + vertical-align: 0.5; + horizontal-align: 0.0; + cursor: inherit; + background-color: transparent; + text-color: inherit; +} + diff --git a/modules/home/hyprland/conf/rofi/styles/style_4.png b/modules/home/hyprland/conf/rofi/styles/style_4.png new file mode 100644 index 0000000000000000000000000000000000000000..25d2a4552263c8be5206484692cfd922f9d56356 GIT binary patch literal 24896 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%0A9ZVm(7 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 c19{v$(^b literal 0 HcmV?d00001 diff --git a/modules/home/hyprland/conf/rofi/styles/style_4.rasi b/modules/home/hyprland/conf/rofi/styles/style_4.rasi new file mode 100644 index 0000000..09b6dfd --- /dev/null +++ b/modules/home/hyprland/conf/rofi/styles/style_4.rasi @@ -0,0 +1,149 @@ +// Config // +configuration { + modi: "drun,filebrowser,window,run"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name}"; + window-format: "{w}{t}"; + font: "JetBrainsMono Nerd Font 10"; + icon-theme: "Tela-circle-dracula"; +} + +@theme "~/.config/rofi/themes/theme.rasi" + + +// Main // +window { + height: 500px; + width: 750px; + transparency: "real"; + fullscreen: false; + enabled: true; + cursor: "default"; + spacing: 0px; + padding: 0px; + border: 2px; + border-radius: 40px; + border-color: @alternate-normal-background; + background-color: transparent; +} +mainbox { + enabled: true; + spacing: 0px; + orientation: horizontal; + children: [ "inputbar" , "mode-switcher" , "listbox" ]; + background-color: transparent; + background-image: url("~/.config/swww/wall.blur", height); +} + + +// Inputs // +inputbar { + enabled: true; + width: 180px; + children: [ "entry" ]; + background-image: url("~/.config/swww/wall.set", height); +} +entry { + enabled: false; +} + + +// Modes // +mode-switcher{ + orientation: vertical; + enabled: true; + spacing: 0px; + width: 100px; + padding: 70px 10px 70px 20px; + spacing: 25px; + background-color: transparent; +} +button { + cursor: pointer; + border-radius: 50px; + background-color: @background; + text-color: @foreground; +} +button selected { + background-color: @foreground; + text-color: @background; +} + + +// Lists // +listbox { + spacing: 5px; + padding: 10px; + children: [ "listview" ]; + background-color: transparent; +} +listview { + padding: 20px; + enabled: true; + columns: 1; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + cursor: "default"; + background-color: @background; + text-color: @foreground; + border-radius: 30px; +} + + +// Elements // +element { + enabled: true; + spacing: 30px; + padding: 6px; + border-radius: 20px; + cursor: pointer; + background-color: transparent; + text-color: @foreground; +} +element normal.normal { + background-color: transparent; + text-color: @normal-foreground; +} +element normal.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; +} +element normal.active { + background-color: @active-background; + text-color: @active-foreground; +} +element selected.normal { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +element selected.urgent { + background-color: @selected-urgent-background; + text-color: @selected-urgent-foreground; +} +element selected.active { + background-color: @selected-active-background; + text-color: @selected-active-foreground; +} +element-icon { + size: 48px; + cursor: inherit; + background-color: transparent; + text-color: inherit; +} +element-text { + vertical-align: 0.5; + horizontal-align: 0.0; + cursor: inherit; + background-color: transparent; + text-color: inherit; +} + diff --git a/modules/home/hyprland/conf/rofi/styles/style_5.png b/modules/home/hyprland/conf/rofi/styles/style_5.png new file mode 100644 index 0000000000000000000000000000000000000000..77fd487be787affea6fe2c18364b9f8d650b8a8c GIT binary patch literal 30179 zcmeFZWmJ@3_%=F(fQqC_NJ&Xai-1T8NQ0D8gLFuzG=kF7jfA8~NjHdyBPG(pfG8=g zAdD~q=N^Cm^S)os`Eu6z_^t)(VdmMr?|sL0Uz;dx&AS)Q(Vs&g5EoRG6?6~?0v6ma z2@!mQb|tcd$5~fpLk|RktOxgthjMvk1z*y6Dn9Vkb+PgEF?Y8{`1ttn+dDte+qH&>W>o&Zlys)|2GP zdgyV1f|%l$jg46aZXvTX5&e$y~Zv6~2*f9-4^svPz0dA>sTd7-6u1XLW)xuSQZ zD|$SnKNZqE8n&(OI6ywS9pTF~Pwx2ol~Kg6*c&Sui#I=HSiTk{Jp)5Uj6Sq7#XS*6 zEFrju@&!CXc*r`Cu;4!G+(F>MBY_^D1Rf#d6teI@6on)3;lXl)kOKFy>}m+^@qeoR zpJn<#BJqDt&i^+p!MlOKG_)~QeWlUqreYBzq1+VaxJ2i5npX>`mV{t)T4(h!6Z&u= zFH@gJ6aMtBedDf%Ppu}t1@8n0TS?2XM;q0ZtHXJxDr2Ijk0}Vdic*d^C=c0~PxM9j znV^Y&Yc|&4{FEa!>n^c5?TJ(I`03Xz@6+_1;8SeSu9&VWNyicS|R zYZra^_dJ?JZ;w`PpoE{Faken0?lAbD39$Ffv z6GLI~ck@(<^FF2+nZuFzpx^u(@7|Y*;w@d1IqYMu<=bd_C-~Qkvdq>LHx(A5xX8b@ z;pTtaWd3xMpA1)=r;d0>oRD|&yENE@d*6kp_$0~oH4SdkeU}ouI9X3ms!xxqPvs_` zNhq2VeB3$yy0b4ejFlwqfoa-IF5^_Z&NuGjlfr$!W0%tvmy;E~jdu)%33yBU8&mTz zICnXS9cx-QgV-nbZX-*`2=HpPWk6C!8b{JWYWD1p;$--v}Rm9 zP9F3#jQOvOVY;>1v$HJKW?d&YipPf)i}L;}#gG|p{%1qx?|1UxL@&96L@Z)=k@>XQ zsCw!&43=lPVgP4nmh@hw9Jw{2kEgm$k9Tev(yR!zkg?1MVYe`_ECPy4TG#e(rRZ1~ zrhRGbz}nJ&xOSSNqjKyARa2BH2&uwf63V^7uKMOSSMkOzMy~oM{rrPO9uPZSxHQwl;;3DJV2)^*b#{W{WyY}n9S zVo~$If-_4FwN~~!uC|b}$Q-X}od)#?p72si#BbOd@LaNQFdB6f>#cokiZhTOPBCEBIB$yj5kEd}%J&i22D(zE59QJ7i?MA4N{bg2ITCS1lspX?1 zix{;Nwcw+J$_bUr?%Ys$0eiwNvvR7hdfb2CEO7s{SHH^Ann@Pf6*LFmX~5Y;ox~cH zbM$=IChdu=!8uN{(u8s>Q&Us5Cj455Lcs%Gb258{%*S?=_gmr;4(2eFlSk6?)8!-OHKbu0hXAtun;dv|2)n*L zDPPQXPIHz2V3SKI%O8=hUst+*b$u|c3bd+qS@Q{6^;rj{vg)qz=anAM?(VYMJKVz8 zTN_Stw>@!yquOBhcY!9;k)xkIq~55qi-$FM_~rclGQFkV7#fQ#8~kFNphvTvyV~f) zytmaQm8pKx&^%BdKi>54coR0NM~>pJ3#-npCF~b(oZ}Yo35K+{G9)zov?5if>o0C1 z^C~GDSIeqHo|^x$ln@M{4Zk{^Cvz4&|t3p_Qz?>#Kg!~b{_##qj} zOU}G|J4Z93=><-!62I2tA$I9K*Yk5Y5WCeBEcTK$khStsLhy2efS87^Uk6gh8mG@x zodjta0(cB42u~g4dk+;B{!^yUA{jh)^}FU}R%nHw6v7=#A9Ls0?^K=B!Qr5Ty7$a) zH3L#y3@5u-SpB=+f@s4bKAVO+zg%6KrEDekOuN@7Kzkn+^;4@z;g&j`{P4)RiC4AQ z`y4G4(^ggGUh|ZU2tvzQVl3I|WnoFO%`PX(bnHxB33nTx?!|R0J+X` ze2$*40u>nxNKo&c&dv#knj_o{-oF9J$_cy&z9thxTkt-84+-MI0)Cs zFG-8oz|XWN+EHf`rmD@rvhiYrI-Jltl?KT?WKbZ#*r<{-tpSs%&B}WELm=o^Ojs^b zM!^E_z35P|w!#5&N5a(}H@COBWDJjd?iP;ZslMie)>uf$j9Nkcsa(Rz+GnFmgIhl~ zV2vKjE2{jaOOR>Vq2Vbm(kWwqa1q|inl%`0<@e;0_WZ#n@u*qgv6J?g&0rptPw==% zm9VPj_DG?`{TmA{{>yG~}bRgb?1cI8G4!&F187{ymkI4D(?j%lL^6Yf_d zk8@aSF-jthX1Imut98OA2)G>oU6lz=RFI%L%hI{STyN#^&>CJM#6Q2Z+=d;oqgqyG z56LL;)i#p+X<~tUMJ&l0BBfQp0Bs7AVuI!h%xNvMqB>S_G8yu*+tRsM?^={QJC$sT z&K7$RKknN_#>cyxUt`V@r(TU>=3(_Grih!zt-+|TJLi-)05|`pR z7FL~k%z5$(T#JailCHa5iOO_Ie_rA~?p`D9sfdyNFMwkDe-5AwCeO&$hO&HnWhuo? z5;`YSoWfNM+de}k{TbEfmV z5BzKRVswRS_KKxB9d6bqyR(E`e6c7FTF!^DV^O^Aycje)HMjM%@KdKwS>!+AXvx1p zLHNY6$#~kiX`yv{dw$M)mm|$O$_d>T++d`^ld7s(tYjcHoV@RMJ$uMzr;+NO>eh?~ zC-$H}`62GE z40kWb^g6q`4vzTeu5J+(QuYXXZxv5F*6Qd`p|=cH_F5{YHVTOn5(PHU< z1Oo=;irL)FV5mEg0~R$2`+glh;(_YpHfaOJu}W-08Xi+fhXy0kVkIV=DXyNnixKg` zrneRRoN*K@M$TisJU^1)6(K@dzIgox@jb|64u9z=c4gX8OqeOYx6ujC}l=udcKv!*fXK#r~r0e@rwm6BDPpBG{r|R)sTJvrLcg0>rVnsYo zy;K(*jm-A02~P!I+H8pm3Y_Dyt}h)IXU z5`4=^4Sr4;Iq7x`(OJU8zq^5EN`?1q2*TPxsWRVgPG-j?6;<4Laj(HZVRQNuMRd;W1rHDN0m|l5jXJ_{*q=NH(0lbs|R@q(d<9=SnRvzBThoikl14QkaM+Ao`y4T3iKZspSh<4f#A~d3RUGs50$E zPEO6=oZ7r2u#?_t>Fi9KaNt;7T_xqw z1*Zf?#e)g^h=sEPx}l}H`C;!3YY^=H{RY1Dfr^;go6rl4d~)N)Vn*!ea$7DE{Fe6i zl=AX&`3szEu!djTeUpFmN&JBqzNaUFFW;@3f{bV1ba8JHH8Ut2QU2N$Z1(D>+Z2og zVkmwLZ=f}0LwdopcyP*h54Mb9M+|8cufP$92&+y0S$rEU$|?epLI(bUW= zy`V#(-1fIn9~?ql#pJJaDa0e<;nJL@gbAbyH^*xS*U!kYxXgDRFDZIOYK6tm#&esm!xz~7s>a~|+6kpyS*e;A$Va8*( zh8d%qT-2IoX~JK&2cLHStO!?ekmn$94Dgw=%o}ON8eAp~NUo8};av6`E zL-K|Vqs?}*x0jdxYg_4D&|#`F)Y(NKV|CMf8x}>JlIPkt30@X~O5Kt_1#uC>d}9aW zwKLx}wUQMhuWXp>*2jjgeD1?yjrV}>2pw8{)=_NCoqT;_;?m1~lDI{?!#9Gjl zk_dMNS;mSgdj-8?t*ygCd<&BOxTHzI#b<%v)f=~s!5H>w)J=D6>+7ifkxEFmH2KL+^{j68Z+^T4i6(aH?Y?2L0q>#&#U z5&AZ$tF8NktmPBYsdX8YvQ+QBebZh1m61Kqrc_9|?}4(Y`St-5IpNS7f@PB5=wU#O zEJUu{0fl@tdsmS1w}io`1x19)Tkke&SJ(I*Y(=QlTQ5^0Vzam2i4pg1=AoUN7?%Gc zkOzk?EF@owe@0F_D#^B?yi5(`EEEtbh_En$Y|YX^rU1PCU27PGtwrae0M z@y-7JS=iS5eD6aLRBSenFg+~mmv43+e@03d@aJA8#3L^Zmi3<|-~UbN^{ZZx)G#Uz z5071GaC|$$uT_z_F>lLT?M*tm12w3=9U;BqouEL0Cf{0STepxIA6p|~5nA{$cl@Vw zSXPyUB_hA-hZ&ii>D(lq@yNkqE5EVBQ$O+du;l)WQBc&4A;NHm;D@vGm>o4H+PaZwsWWM#)53CnPqD=f-(ANp)-JMeM6KmA>&6- z-K~@ztkF(hQ3r$ODqiTPyyFLwQ<@85^(3dVKOJvyziL{fl(oqB zDD^sLO8mVwXj^y9#O1dTYNTQ4GcvC5kw4|jA%>X$niGAy_(Re|)?Xs-(|*aGt<1A3 z0##EPOqplLwW!ZFaf%&`@rcmDAAaA3Go)}uHX7V{OwqCbdNZ??3_j3xt%M>}1pFop z^4zIjl-h#znTtP+T*A96k7-*QX(&Gkp+;MVUPL2#h&&Hq3|~EuXG?`OL^fEh!o@ro zOgA*9h68zyX#Y*{1`PrIH#g55iO>5Ud8(^^V~2Hl@>70e|9!G#@La-$0j{fy~Gsm)I@A>w{R8JCSiOv9VR#d8gWv7y-)lZ-V1f_RWR8;Jn(xXv-!X z3~8?Fwg#Wv(J$BEvdwxu;V`Mlb#bm*XinzzWpl)s4VhwKPB_RG5pl%G@w-YroO~xasu1U2QJ#A_;Q&i*Vkee8BQy1ee0{AD=bcfyYjG>y4wN-(V_skT z-=`dAG^oA(j4^-UI%XAN;0$K-04PdrHMDx7c-`o2dvCTe&i z2Cu_2HpAE7sKKbXt}6_0c~O1L>PjDDs_L`rR9fG%jxG`uquhp1Qp{=VGp~KN`KQ;= zZ^L1=vzd4-gVHW3;{qvGJnji}|)~_+a z5ua|VT;P&X|36ZlYt53eis(7Wy1S8@RKY@$E5#)5^fB^gpgXTC&AD z=H$z_)2wU8j}gTe3Htp>d-4l|724)(E^p^TkYP|r{H1Ydeed>hP~O?NyW<;Pxi{NN zN9^oQL&wD3_BpHsXtny>-&<%Y`OU<1s>RZqe@}%F9cH)*Q;`lGfMhy zuZ4k!%t?aLF4Ox`av;})UVfW_vz6mp-VO7d-QOMt4=#)%$!;)^HRMffd$(0EZI_L$ z*`2xydAZUWd~yz>{eBy4Ga+{|V2JV?nQ7e*^8-n4y>}HKZ|(H!V8X_cKg=otSPHzh zL5OmRh=?U+WTw11n{>(`5*co#eP%%$Zen5rPU0X}as9SsGT6?HPmIXAX{*Bn*?YFt zi+kkzemUJslmC$THPru*UVV&jAMtX2=h0!iS`t4$zv>lvzm8ln-ah*%@Eeo!(W^?Xn0wvxv+ zGKC_IxZ^|~qLKx*c9#c6pId^0kP1F|vGtbwYKYZa(IK4+lZC^&jd)tQ08@^Vb{60X z^D_5E8OZm4Mk(-?I~J-;J{08Y4Y@736@8FY@uSl$EvS9kkxE)e3DKu4N?`I^vlilJ zcTV>BqvK8~|AUIpYCW*g2T4hGFE=J@bR%g*&$|mD1MKt}*VENnT3R3?tK%OHvlBR^cy0;K?!O3e4{{}d&A)Md zS*A|HB4KWr2J4~@s{~#yM0n7N2!NviGi>aO=kgQ7M&p9#f3bfp|0mlNoi;W>dx2>Y z(mO<9PeijdAVR&2a;xPZ1tcv2aEm$T^n)boAsbydO0g(Qh!$J2HuF1{;;jwc-Q2Ej z>>Gg(54c!G%x^l*_q$<;BoPSYp)ll408*eLl$%tfDo%k;*I*sdAMSaNTzQY)YQ(`6 z)l-HvD$ospyr35klI{Q;h3xR-0C)t#K*uJu`aogIOao1$$4b08Er@zCdJ6~N0JgFg z*e9xi!)>;_Gdn(&`E~Ha?j%8Yl-$Qo!)w>*qy{?*$kfB3vwm2HXajo5oH*QwhHNq` zBDspa8E+GW1(Z)X?EXFUz#&aJnj+KvG-t?(hYJ~NcJPHNN4mq#)m_UGk0Ft4~`EH=9(t%8e zjeV{ZmRXGd8j@nwQ@v1t?=r3cI@g*uT$KI-%-`_|7uP_ox4<8?qgWeOhpKKCrVdb) zL3yt^;Te$7;yLFSz$B$P`}8TtM2jaJRO+Ue_7M_F2<}L`1i&OKrXIlpK-$SN^B!o( z*Awg8K5u631(eut+vJ%{9TyF~pnu4l8a=+TZ~EnGQCgUNR@+$sKOir+dD2qlKfWGm zP77dEu|YWu+E!3o_#QJ0D`1@0FvWN7ROqPkq(mJ`Z0czVFiwxsxFqkERztu$_Q~{F2fFO!LA;fQiz2@7^SUejRo4z(FXfknsGPQE=x4%S6~+hNp;$AVdJV^x7%x8SyF8Hh>wJiejyUrUPh{~ z@@AqKq_=0pt4y?37KpJfYxoEjeq0}kYXRKlLt?+?7kxWt)mNw}tq~8&CwEl9x~_JBC+hzh=`v z4+n>##_86^0s{ymXiGR)y?au>v;wLrm`YQqdITYbqg+0b1p3=6(LD;WOM-G+T3J#0 zhfR)*dP=53{s?ldkP(>d^-Wq72WYMLEen8xksGbhn6+>w_$LWC@46-zU|$nc)4qV3 zl;_Fucuy9ObjmXfY1l3SnD<}i8e9*cBpfdZ8JXcg=H$i&b!?F%B;WyETiX;dNa^bFZcA-)nWvH#zD)Q8 zkhOuwQlDD6;?IT3e(en81#4g;Bg1P|#T@B;-Wz~$91a<{MI^@p$lXAo%qw6REW>0$ zMFJ2z`dBJ$W8=}gyB`=(iO^`j7;*WmuRP)qAK=>E-J}??YoRO&0|RQmqy#n!0`7^5 zsQCBA_gS$HSO>+YcYvXq^5VEiIXry7?X0I7i~Frt0f6y2H>t&;EQtgpM3~||7>(|i zr>b)%!`URKy%rFM*gaD?5_vmGVi6nUY};@x`Ro=)#D_&Ue&Uq4#m#s3D3+=Ng2)C^ zh#=JD9d5NuAEAIJS$UTdZ_T9j| zM@IzsA8-3^s{g$A^+ej2ms~m()ir$WC0qK=rH_`Gqm<$1+w$gL`@^)Bf9)ira`69f z#bb*3C}g#{eEli)62CI%7q&OhBx<46neH3+2nG|p7G2)T64SUHr^x>r_a-3iEb}i+ zi{kZJOT%`0j^W({4EN0WGS6h_XHIxoh-KMBpOewoQK0=6OBZR+N9*i9bRbpU!j4A_ zEK8-qz-m6CAfeZAB?LK&wveeMws?}fGe&V$ICC;r}r;I{Y znk8h`k~SPLao8&Xy9T2clh#e|HbWXbGcd^R61S$oEE`ouD@zk&eff0h!EHcRr+W!W zTV`>`>@00Gj|ERi(p<;FUf1|!b{3CpY!aH}d} ze&z4&c?gl-QD+Md3)CHJdpA98$bU^-K>^~pZG&JhaM9B?+}^p0FCD&o0a;mf*ZIWZ zuVR)Z_WgCX!_AL9-ic}eT>o)@e(~>Lll6VS$=;BF_Mkl}@i$J!xiZ20&?nE+r{)>u zyG3%`IKUtBJazp2VJSMe!~mzH`&&U$+$lSj9j)d2AS3|>etBVmb;DvwHE8EEUHN~M z2Jrg6_dca_5X*)G>wY`qVoL}2ZSe0(#>yZcWWqG`Dh&LIj7x){kH7(<+S@f!N;c%5 ziFKlHnH|d|EKUJ80UWQE+1Ea1347{|+)2}QV_DwtvYPgx+Oh?(IJ=bw)ifB+Kf6QB41X=2T{>+ftIbDdw z9;9(V*3Y#rFx>oOjP0t$gG*q&1LlY8;~^!WQ<;Ko%uktNWV-hrPYzrYrNSEjvrL$x zCB;B>N>H}2HZVD>4rI)#?`*oxL)vgqK(OS`Hf=|>2YGp{Q&o$#3Cyi{vka}<2oE5N zvgzQ7(a*3CslBdy)FF0rAT*NGAtW%PBopgo`T6`X7?}@Q`&k)uGRJccg1W>AWnv)M z3fs`C&OF~F6MCiZSf-z;L5wI0L*OGMw5#=tkQ%||rPf)aPOBI~E`;nM&KzCy%PG;@ z{LM6^tE$q4zIdmu&<77Oy>QhNY+Fz%N8z-*$&}h}3~hK4d@|6~Bm;oiWQuwi!~Qey z>>bKt1@$p1bmRL*r`&sZAxSJSs5mGqSIRNgt0QK7GjZNLE1XpFdQHV%N|HkZYlG2q7JS5+y9m6H7eb^Q9p1WWlLl!U&k5xMcKlxH^Nu>*5T5tG z6#f$Dzd7f0bOqH-_uI6k8q{%kM;lK7Q=x#EID|n*Ri*r1vR?yh-LjFGKiN35MP`Yo zkyn{Pt;`k=2|hTK3)s8u6xT1pU!!*8KwkJ@CXSF@04j0<2)lCE*u|;xe!s>34{irc z&9L%Lb#J+-G=*r7Iu`2^m}7{g!Ti`RXcpKinxZR4}+@Z%qypMrVMW*gxGo7DVTp~p5KF595pA;bSWJqW8 z#bZIi8i#xVpCmVZ>+&lA#n0e{Fo1`Iu&6Vttm6-jjC2%vj9@~%Va7Fm8C;l9mcw+i z?J!*BE?nj0;^Wcoz&97pBX*;paq(%JI?BFjk9mf^^N2$$Yap4w4Fcwrm8=tOIC#UV zWu$6e##Qao9yN2$#UplBrlg3sj5s$7@}pL5Uhmysca;Qg*7}K5Djz|!|m572U!9Pon^qpWzuSMpUd-Y%&SBk^1-;|Mv zkK{PlH3a7=p-!2ePdMa!+&qQk?$H0;0yD0K2Vk}z@Ka+C2bP5=yM36( zIH|9h@XPt3_V=B(RgK99Z@q1YR7cNzZ0BwdakV+rK3t3 zRuQG;o7?n=*QaSTqon1LNQu481Nqy{&XTAvL_sVdzDAXk-FJT!4u3GPX3kBVXX({(%lEqY%7gH{{w`qFs4(P?Z-_MIRc0U3J{*4jq`_p-m| zNH5DGxVfghaG{svk)7+$FPmTIK7DO;D%0bE2(mdtji2-m5KQ14ymxz{MMR_}M7mga z0Ku6qSA+EAhQ34Bz+Ql1mBFZk81o^$7WjyuJ=_@XzPMFR1mutgBQTE-()Lxd`_yFW z<|HBaAQ8v*&v%|s89oEL8p2k{`vc$zJqo2?^aaA<_U8*gjB#W5)qWhu*uMzXd(W}@aZf`$z3&$|9^^ca@u3M+_#f^`E7&K=OsHW-^J9h>k9X_!xmXKY- z4cLZJ<>h214mcIoEha&ayVrk}cLE3IU4MWy4J9SI5f|E)PgsP$WC4Vw30dvK7)a%x z-Xl0WBoB~CnL+t~{1Blxd>OcK%4A#ePZ5s(dRvwIKk~}j@A!lXwZA5))UsPx?eK}@ zyQh+I9-{+)w+{fF0b7?z#@B?tj<+OhP79r;9|oK}RDPbkg9Vle_@NNO0_FfX!>SF( z1#A@O&C4-X^J*8jh+v+;z^z9+0b{Nrc8NAP^Mw(AIxt6c)_&|n+qAhjI|Fc`(lx(| z|EY!RaV%=FBmK?d-?@>YVu(WiAtb2|bkRI96Y)4M4d5M}J2BRoZMXmU5c|kc1Uz2p zdA{E~hsH$Ae)7BzbQMoY@KY?YhuFxtrRA2e(lgy#b$0-Ask4kVol5;5mI;6k=q+Kn zG>`wqggJ7XgTKMu|Mi#;mK$)jwp;FziPoR^F2|@7C6TA%7A=(I=Eh%`5wLzdegzRg zSOmleaC87G94AgyOzvGrIW!zOvaI=@Y&)&=Yd0BJq$ty}2OFh8kQ5kr9b^+g(%0oU zwi5kwC5Nu+$ldX-$l0oBz?uN~!G%0?&bFrPv%sN&eFKZvBJRd-RO#~1yUNfWqCBCJ zpqz``^VSTk-|T$ASA^bD#R1OB6w{SD%at9GvyIC>J6~1)W9>$qp0TeEQV4blcYb!cN0u(v*?J0x;TI|48wJO=o6}>M5Of8&mh!J3AzIF?|L&-4JxTWKQX-Ce&5iShS77lhW zD??Y-_Wji3tUr30wzRhPFF*Za3bYeIAAwH=4jJK8Y)zE#9oRI8{LTxBM~cU>xqNNs zevfE&G?}_?G8bXa1w5GDlVj{S25(j0sGJ$j6wnYL)_V6F7%|W^Ki@+-XKM$i+McHC*r|y;rJQN{8JlV3wgcV-`KTZ;7CyZ7=9Y!ychkLz%6Ws zDC`H2FXlVK3O^P=<2%)gkd>GQna|G7u85(`wp*zny;&`lrCAEXn&Ty8K~4Asn$QII zWKywDVUz$a0$jg;|9)|6W@{C$!>E0sk;HaMAc7X7TQ5T4;8P@8n$up6B87iRahM92 zA~bmHiXa4>$tsh*k*1<`L%mn3;fTRLZ&USj*8n2o=DgRhD1&S3J(WpJn}5Dr3l| zn6%u-6p2i8xV*)!5;Xba%eZiOyz*~XKPrNiA#daL);58elKU&e4B;<#{-fxjiW|brniH_A_JVv9_9~nF{>DqQV-FObvc|RBO6hp=N#)ESYA~2G;$+I< zy`<@+Ki`#+j0(w$lE24B>dvXh=4=B~s%ht0lQ2lU1ba9~DP4xh8^gl45$)kmCfr z5O1tUE`=-=EG~@M#x!=k(x6<&<))hIIMOqtuano$Owo{|k1K}K!kYmp zc_fi>k=w^k!(ktMQTrP}ov{;*4t%7M8NXy&X<*d#*hxC?QD6rH+sxOpau9c?oj!Y( z5Oz@i_WL1Qfg?Iy&UJ?<&=NB_=e*45Z1<9lj!8mgV^;f_s0rmZUrxBq>NrnCAzMps z%{B7oI*8KS--_bdb&KIml0&G305gH#@at-8)uf0s_FPZG7M{*0IUSv3isZhhPf}(- zt)om))+Q}E>YP%M*JrcIaipKTi_|TFaZRKGCWAmF!UtV6Sx4ma9A)Vopp_pd4Od2r zr#TbH*HJ*ec<73HEERVnHg!uGIpsy?IWLqwq#BswXwol6=XvgfXCF(*`$0E`(OpJ! zT8A$EC86Ba8dc9>J5ioqgkV|b?^>DN$wQO*pPR?D zXk7zxiHIb2`1>7BT&mL^?ilJ)X>R7;N$iTyr=%7C(Vt{BQ^(jO?$(D zCL;Of*r~~Qt10O-@_;7X{Ci{4tBhbI1)(Fg1aP8u+fnQn>eG#9)Bkt*o*zLTMSGI! zBURPStAq9e5r9%O>T?w@#3lE6FqFEMha2)Nu-}~xm>2k4GiG1Vxgdv-xJN-KmEg%T zN37>*62Wa0n5oo0$5YN6(Q=zeB3HU467T7Odvn3QklWbt9&?!FEkNfKMBf2VC+s(n z$FAE&@EEq~tw~(OZi)}B1qLUi}p5&EoEFmuv+^d6#S>kBMopneC(8Dxs=vgi zvi%ZL4gw-BJC-i0O7bggh5osUf3nLeZ z5KEGZ;>A3~=djkmKoR8+Ys1 z=r3I>c>CUP#aZ~?`^D>v`5UX!`ji`>em~Tn3+>4n1>wDgxYDyAKyUi`Eb*tH$*7n(9`FrsYBzq|9b_w5hY)+xHc z!SBuKd2t3lthidV;V+#c?vEGVt}|Hj6CvfOG}!oYcvdlK}*^6C41y+BU8mJ+&7l7(* zbNoZGoY0yla|p10?sf%8;(v^4cE!~+Ow-SLqG{AWigZM$8EpKtCG})xV6>bU({22D z6=YAz@F>G_1S;j^#DP>0r9_M!zq4Lh6109T0Flm|Goz$d{9qxvC<3Zk3)wOpK z$~9&M8JGSe8VS9s8>5ufEJ`W3%Jk|7$|P46GaUS?b|M{E@>`wzGNpeM#&TQ${L)|U%M zW$J%m27yyU)~Mr+UQyKBjMs}NzmYt}eFqh6+*6JT*BGCWw4d2WeNuq%kx9N9RDK|_=B9!B;kD zG3qiQP{$DYP|N0OS5Gy(c>XsDUOJ9ZJEA9pHWC5WwSG0V0Ulppv%=xznkSA9^sjsB znJpX<4wptp_=Y+sTc|A1C1eOT2hryo-z~AP)xw_j{GC@I&2;zSu^w=5yiX~AcjrA4 z%a$@ZCiHfDACY#Mjpz%xh(>Z?GDgrCD_DGS-y_}$ZE`362M*c4>hmf&BJ~%eV5u-^ z7~TOJ{d1ygR3E^|6#^$~vzq|&=UyIKkW&^|BWOMPfdh1lF#M~K+e|WuGvFc zqVJn{9mx2H2Z$N<_8*xRR zU@f14TxZDHob60njeUlW5DY2?y7+7Yio4^(bYTLacE|E>&*JaWx+}I{Y6B==RZMbIc=|wC^V(MimeW9(PKJU86WjZzaO?5WO|{ZT z5toP=i4AbC@|lQ>Q-IB7cj+szMjGXAlR@^g`~;-AMt_HJ$>*G$eq*wsg3+THFOFjYb-uCB;x@N(X_XD81AYZ8F?h zING5UJ;HF#LJ2t^TLsDR~Kj%uNGC1 zYlzWbz-5M7X^R1qgW(jU1jag{iE({`kn$5jH5;k z-I?h?R*#F=`GV}KiD1!oqPUx}#aA|$RK`&$-_HbElYaBngE`>7eYGmwa9Z&4{xGl; z6XCYtB|mNZe=Iy#dX00C)cSk4C*L)jbdbc4Zd{%yzyGYG46Z9qZKR&Gq_szC>hi8z zjm{m&KhU@f^>+ey{GTzQ6w0kz8IF=}_U5tja*c^D!(IRp$6A!$+Vn-30(oKT{^8U1 zb-p zXAsmyZ?qcH*b3CAZz@F4U960!Y;oF9%pKv=(Q$?6+LP2RI^7S(ku4*0TNcQ9~B)3ekEZ z0c01ar!xW1gS=lN+!*spl%{5^8F+nHTH)>&{&Y1+)Gzn~&-6$E=n0^FPLrtb(Sp3< z>`B`<+d4>0N$hw&ibniJwee?1!fWUCy77MRoOjc0n)r^oE0wGTsR(W=F0P;W-RBMD%Psl)v&yR#iC&AO$ib87J)Nw{ zy33jc=cCD`CRb z1@TWR0!{3`xjv(^U`E|d?*r%vck*+u!Cf`+IAD z{Sw++`ZapXzz-E8v?791m&}nqB;(&)yqc)|A~yE7XPYS;Yp=GsWXs|yyT`j3DxAr{ zKYThSG}fjhRpwK?0a<{5#qK21feN?&}uu_d+8#hR8jByf_wV+q`)G?(VS;M z-D6GE=1fi$;#_wRNt8$U;!SyZd3qKp6?XT2#kU;n>y^$M<^{CYRL2bHijew&a|+n@ z_;TzSlv|2ssXo_5J+6!4uM)#EGa!I(c&~upw!%u7PD4}kwKkW6X@6M*+KG{Y z;nj$pt3WMaK$p&)(a_M~&Sa>v(d|G^jf{+_*eU)=>MN?9t~mEB)V;-IeEI#PYmUlg zTrHh41=9~-AoBp{PEtxrPdaaEcJ>9swG)vu7!1bi@nc#qI!n}^)QxNn_|fONbe)fn zRME9^!eIuDj%kgpnQ&;RZ)+k%<$5}LLU61J0o#5&#&*2qS5H5@wDJ7`~CiLZ`0q&+uNIjS?F79 zmDtUj6OLkq{L9bc;^OSoKPc2qk55h-RNTD?GRWwS=XAFMJVh6)78%f}nrNML~Zx+fK~)Arh|IP%{0n%D}`l>Ol`~&8;*H``WKa zIyUBCWBz2sd2pQ{PVIhLv2 z{6#KjY=rgxe+AS17=7H(GI5LV|F!Df{@Zo%J&jZNu*D-O^Djt2QBA5Sg-!knkfe30 zp9~)|zT^y-=|x}Bj_v&wz!dH?6IG?Y|faXS8g{0-o1aXFwXH!VxigP zagTifSf&SJ2aAsx7Ha~enPCM))Lk5yZ@Nh#*{g)yK6D;d{F!^n1}DPeR)yrJSfQ+} ztpBUMFAss&tPa=)m=bsA*!7S^zbRmH`{ zWg0#B0KdM4O=-PNNWe{()S60mr3vW-Y9D$dcB5w!trDInGbtTs+>^SzFTCd{3azND z%;$aZ!Pm95d$-*ipf!y{e{39#yV&>INgk>d_Q99hXA%b%7H-oSLQXd{G*nR%4GZ}~ z5i}9!DMmXIP-$CR56>hgHJC3-@$&M%jgOzy3<+szG5F`g1w9*rmjn;{Noi>wZAV8> zPx;cYmL$i*=61;=o)rmi-n?S{r%W^5)Vk~sU;U70{ z+_?Gc+X0SU*NZIR)b`JNzv(DG5#Rpt+KD~wubzW`StWMP&&@f+N;1k3F6ha;6Y#kf;P*W@6l(oaG!o> zd_>`1%`Q+5?=Kp_gal>YpwLsN!{y`JOgHu%eQD6%-VUfm*6^Zd^)-7Oh{fj^N%m(1fy?B0ls;$w3>SgvD!r!>;{Us-hm?l@{b66?Dg(|PPHkyv$!w)R zPInAMT%W`_5lxWV(sp=3Z+au5x@IdoyQ`35S;h|Nvio9$PpXUxAYVt7IhK3H{aGJ%aM*EFl1(BEC ze-YZ_%vZwoVDrKCC^5Kf!{FHKi$`9XNyl80Z&{Sn&zpxDo`i)^lMFA9dcb1(eEAv1#g77!l(5V_#Unjn7nQFl{PkX`=i4UDA zc|c2R=?urhOzqSZIBi?q!C)GtrHO%30ztdst*#a-rweEG*nv>`D5<9Q{swsVfc!Qo>4v`= zED7`p{gd6#u~vl{zglAppTU8FH&FlF)`l~D&*Q+1(q`ti*9X^SkwnV2mPU?DU?4r$ zJnJ%;1>y#?_blPmf!w)tx%v4Z6m;p=B_wdJ z`vgBGQ9B{@o9Za?tasxTXfv!|Q4UniJ+-T3QMRyQI84Gb>9fTj?_dQM)!a zNv3)T`}dxXj&P80#l^+vGT6Djn7KuRe9u;czW=M`1p!)w z&$Oosh~4miCLyQ9)ywNraB#3$j3-3u=OC{B9R`6X7{2ehwh#*BIqSD6yB3v!UH{-R zz4|aWFYlJ4Q4NMmBB*;02_x+VkqG zD;BWPOXIcqV2;25f335Nk|4~4&-$j1j*jZ-M;1K_770B^1;f_=2LzU*AZ5G z0ALTlx0KA~{K55YDhV)^*@nQ~Vk-MH!CJv!Xijf$SU>!0=DcpbZc~0&3ylA{XoTAJ zwYNMJ$%0fA#Nt!6R5FM@*sQGVeT0&vs-fe>Up7*_e}l8UJ+eZIsN>v3{ejKAA@3XbZvORE z+k;v2`(zhR3p_@hK7G0ih?sS?=tZb!MNVU*4y<_(1`WnvZf>rNzrV)ZMG6?mV8`8i z@E{W!rg_ik=|G*3`t~L|8>z$!Rf{u_rT_=Q(#A$;&h#6U36_?Ac>45drjbe!pkL&% zM;BtGZ5;QqiXI6fe`LcU#>wjw^-QBxKJGIOdJ*%Ll|G~-V7Q=<859FhN2J=FZPTEL zqhNkxmg`wzap9G(pc~9B-yIq`_>`YombLW!#^P|{qbom)eS5zKsrapdQo(Hg2&NmI zeeV(649w4s^9#$t8uXTW{B3x+H&NAx1^Xk`4ffubR6};$YHPRH#OH^FagEmc`)7V= z)sGNZfUFhF59+O;f81XrESfK{z$x-3b|j{9UFhtIA5g{-S!AL6tS0l@_78W)@j{{d z^PbSRx}H@8Oh>v2|El#m=Fdu#*bqu8rWIB-*7aw&w5&|8)M2JFZ)vPXAiKZM)(H-Q z2zK*FSNKi5vCK^PTrCpC!pvRw$+spC@<<{s%aC3IeV0Zmc&WnU9y9DvqFm`kG+D?X zyWPHh6O9&|lh>Ypn50gbN&9wT6%1|xK$U#e`biy$s?WGZ55rjRfbK9BvYo@oxqp5o zY+h|U5x|qU-B_?m=f}ptxaL|{I8K9%GBRmAVo|;nJ-USyG0b^+Y5!+zm1QJREct)gY3{}Im3%{&?iMqV{z`GZ>yc|XgL5M z=%GexI`A)?&&*cSs!?I8EphC3znMD|FxyI#NQ4csxffgzw5rk`)OipzPV{xRvuR!i zATV7FsrX5~1mweParxN3bPukn3xMfHU0{Wbgoshamdu>oT&_|1pLGR?0}zM44-KVW zUE~E;g2Nj1X9JEWWPXa*3MnTM&+`+6)%}|B4;q%1?l{R%hR4ST$Hr{oOTE1L@Gl(p znu6S#0g-^>&?VKJyyJB@w{}W3*)sQ(yv!p`!=fSF)Hi4$wGit3V0q&4`rbo>-g?;C z$s+K%qP$-rCZ7QXoZQ?_{w50lB#<%LNa06G%B9FNwQZmQ`lFtY;WK=;R)K%kucwNr z`Q@{Hg z=QD`I*lzRPweh(<#>;#z5W&cd%i@wL1Nu-D*q{dSy^>wS6`kVY#ZNM}4P=b#U|29x zM4o4z2c$mG%`AoicLGFe0SM45n-4=wGI%LP2$1{6k5vPKSGvl2mzJc7pQS(xLt0=U zMF9M_wQ5Ka$d+KPaEapf&(|o51xmIrvB67u$HC)ilo^2dU!+x9BQ4d zC9`u6SQ-FEVEjo{H^Oa5;an~z5#>1gGj0?ev}}A8mAM`0E%c*)bsPA-H;&<101yFc zlDc|_j}Ce>xo-*!3x5*n5XBK(YHW#GV+zn*@v*WmX1uJFG9n4JRWU7$hag#+A=PK) z_LH$YW;N!%-@p;5%Ru%_oQ;RYJxGhO$KJOdemt=kCJy53*Og?m5=*We2QY&6AdyU4 zd9XFulpiN&NCL`Q!O9I2L$HPh0d83!Z2+jcfqo6K&Q-?UT%Zu!28A^ve=Kfp#+Df% zQ?6w1x_^R-@9e2!f}SsXj)>X=!y`sUSb6)}6KS%sprx)w-mv2&tX9{J;l^$%&eV%= zHz{z#rpZEUu)lumL7kJC@v2k@*(BnwQsxs}rS-eK)rw?Tnoco4Igemq0T9EO^fTa0 zVn?0KAHbvF!(gt6e{%EY-mg!!WFsP=w(^xW2up5z&5@C(ayQYT)3#6delAW1(6Q(= z1KTad7hVuX(i1&RzvSu0$Yh~bnON9UduF*8pYd$EWy3<{gOC>mn;vkC-`#rt@dRu! zgWTd#l$LRQ!^GS6Uvl4^?mWhYL$P`wmE+R|p4W0z8G6~{2`W0HWqu7KMYhG?aAOzyhQvC|X zKV{KiQuOrGJ4PL$6P%SNhxqCbU1O>T%baQAmvD|2Kb|@A|NcKGfwf8LzwXtqKjVr9 zV_dkHi@RoNMQ)~aihsZ0e@zfE68Xe?fWQ-$W6xE2mi;LrfDZgB`TT6<;{<0`6Zq;6-m}`nZ@(->AKE%D zfZ?teazJ$WB|+;h%h@~?nJ10-=g3kCZo!Tt_K2q&`zDK6*!TWBW%v?E2i5Ql=8W_! zV9nsW)b}L^pwKLH4q!AhTu~UKH&{z<%J?+2pqcD!#~kd&&KwN(bsb8lQCW28_WcxD zy-872$T`OeTe6lw`{reChsZ3QdNAwhN0~Fvur8onY8Sdo_c-+sO6wVGgT1U^)4}qm zPfemH?pps#$)6wg;j{$sYn7~G&lh7`r(@ru0#dYNE!BUbbO-g zj`+Rxr*7N<*A1uxq90c#x)CV8KlFv-l;;hn<;`mgxI=Lhg0$I z$yiOnPR#<)`iL1J0b^5TpN&TQCnH#JBl=@lB0Gspm@+ORVMrxhhseTRP_VRT$z`XD zOp7!`Ed2PT9-EbwrHRilm0aejW@u|`W8SbK#A?>MkF<4k5GYha%hZ&(%$YCxD{7=Z z|9R?m*6K{WOnQ|hnjxx%-ML^ z@JVosJgc3-mVYPB!1iiBN&ONE{n4S1+YmCXNPP_H$zh1k`)g{Pl~q**X6DQl4|IUV zePr4E^NTNs>;G`V=!_yQ3IuMpPSH4H`G&BlUgzPe1G-!e|J0xHE@bA$aq#1vdDrf@ z5?4=f-0dt2*GC}s8`Iwrz~UfSOF)4@-?d$nCY|HjGBP4)WKM>OuAJc2HPLW$A14PN z4LBX%dlfP3EX~h-6+E?SYRUzGabCUm>P%GS+w=+lp?M9CqT`2M|wu9k@l7MmpX45dcbtt$tOE-d7fprLPC+!qF0dr!}v@6G2RM5U6&2R#sPi{Nr#R1yEx`0?9; zW_q#cpFSqkU{zJsLvI+qm3{i8jhys49i9d$q{nNO6cl*BGu1S9cnD@Qw0j61PdnMz zj6yFa%ve}j9_ChW`udgQ5{n$*26O{PL!?6J%E{D32SO|vSQD^@{#%kH6^6r6a9llq z3j&-5=)eFrg7CQrT$3>hQ>lW2f|~y_rx|X~LG(R{yPh#jYLI(jb|1WmE7|!BVdTb- z5^Yt#VG}07YAcvS9QFV*`J$4eTc>k0#9p>I<&dSDMyIBnoEWyC!A1h#g;)Rs7aWMd z@|V+&0(fpy{XlL`KA>w&brL$#jqlESwaf_Z9BPlx_Q`C18yVru-Y3cvJ~>k|Xqy(i z!V7FDV_LhZ+aW;P>`VDS zH>e)=xNhi!{Sl_=A_P$+*!-vg?vnC_-DsS&O{L-nsp^`Ag_(MC1TeT_Q&SVI;}m5q zOh8%NO5)gpbmq9qq6h__&x$muxqCoX@z<|k|6-g`;JZfnF*kS!)@)Peqm(z_(TTgC zBQUcya&6Nh#RJ>f0HJ7fk)`di*F6I6)pDgoLQfA*=Yqo&fCsJQ3$!54gJ_e{AdOH{ zrss0Ml;ISVl#~=0G8`_ctUObSJY{m>g6s9`5_9t6XOkvr1Oa#4v|{M=^mMb%M6a}U zId|3D+c5Qz(OOji0M-ZXM5?kp-d}WC(3_MM?&umNDqnS-l#yxLwvhy|r_yu! zYx9LBaAKom5QuNT!KGVUC*w&w8Tr`t?9s@tQTw(PM5EW{X@6D#0)c4XwGu=W#J_we z!<2RLO=Z_k5U?LF6<+Imef+8}<;O5kEA@fY4fnueGt7~6az|Ksxc1qT$(<2v6&_0? zDmIn(q&A4VxSs*%W9`%>n>@DB`qO?C0f(JBXl%b@deN?Xe$;22D~n$g>OjVahK4eY z*w1HO?tx%`2!Y0iuC2`lyRRw72gjj270$X z4*;+H{(8JnB#`mRy`WR;A~sd`7b6-nrwy)Hvf)X!qn+cVg$252nd2GItP-AP6eB$g zsS0Af-+-C`VdxANL40v7P{z-}iP7Q6%WfDKO^#f3fhf|<*Vo6zRz5X^gs|Jx_CVjO6!xnYz9@(MvH93~ zkSpu3s4oEpe!25fx92OG+Bx!!PdwQ4J2a=I^cQ zJlmQx#hrn;o(eZyH()xpj}}W(6QZxuIa?0!HuO8$l4k&Bs4p^&5m-ub_gv8<`T(9<3ao8JNG8d*~VNXp5FNqpWa zGD>oCsr~)^QEzow5(db%I~dGbw;m0VD#eP_cx z`TgobGBoa|#WZBjTI8@qy8BayzuYOK;?wbOQexxddn2}IB0RO~uZ37mD!(=aE5LU5 z?%jp9w#q=|WJSNU1P&)$H-t**^93)=LdeX^hV10hlBt_X511$`XI#uu+#r9LoJ7+j zpAcu|;oKeggf5Oj!EI0(CvyRhNc0)&hFD{*NDYa)&F4N+?jfja)9I-6U$kl<({@Hk zL|~z{*ZF>dKQ7~h#>wW=G4KIr%ZWyY{;EKe8_v#6+kXJ8g+52qo)!QwT;aDOpa94O z`vcI#u(qO8S`R$^7f7VwZEI~1?|>`AO%L6rE#py1PB?rTU2 zlNR7SwL8>W{{eHSov(BOqt~TW^L!m~*r4prD8&v0-50C|`MYcWY_R`kaHAwUiUU+U z%mIAMGwORX(i%`{0L0JEy0mw6czXHo>0G`17iETnz=*kXG|m`c(wm;17eSVy&wlr? z#FOSBatm=&fK{QOaY7Ti48vhPa`Y$!ir^5)Z5;Yj3?Yf!E4|&_QILhiA4Z5H2g~UK zKLu+4n5sq*_E!YR(k56nx&T$8ZYRk7^0x!AB@<}c6Y8)00$xi2du<5s-gumjw>ky= z{Xf8AZ|DBV7!*2Rc~qG^IXS5?KEWIE3?eV^WC)pq!CSN7Opn3m4?+jlzFQ@I@N@Rw zROOP_qbG1B1mxgi$h833)Z(vrj}@9(LRw7AHdGM+I{RAfx+I&?RNsYh{#};fxAMKjRfN^1 zxAh#4ruZzBb!mvrjwehPLG$@a{GVwVFEk>lr>dTOXX(P&MDp#M5O;)pTsY~zJSUei zJ5K&;L(Pl`dv0f;tw`~4@($f-*tV&YNHla}I2T<3t)Km0u3hc?{R3p&^fGwAiUW==MN!Fpq5+H;_-8HMEB(D!aD{ORV}|E2sVJm`3Ry- z6iSYTGI>B#yk(@)dp-s;zB819zY8%NXh#juyxFOE zt~pnT`UO0OOpLP+mNi{nUE$Rck1_djzwB&*#YK+m{?K{hjEMR>VWK$gc;ZU^nln@& z1AQ$mEqg$*aRh3c+Ht}26CnG!7s4ojZI*zd2^gMAN>8r9(kS`NTko|(+<;(KWp`-l zBx>0`f`qT#k(gE&2M2n9>)1XH2qE=-{>&_+%nYOxRqO0sSt*3G2r)Q_M->+pK^w}0 z0~boeXKVKkAUTf>0FT`ntKM=Jrv;^(3)B)%hl65*qXR#qTf~j1khe2&8Nww{ zs5oB;A zlc2oko%Gc8pu+)v4I{8=84|SJ2D6!=^jN85iqxzKh6d3H$A7-q9JVC8NDtY{UD zRhzSfO9I$v;c~x7ba6q;+&$aWwJS2IY|M9FMgWcNM-}mSpQK-OJ_0AVGXv||IW(u; z;dnFV5hW{`lC=X}Xz=MxmpGM1gk7s86NhO;n#Dac|8^I znocU-?nUL_S08CU0x5b6mCkR`|~}YW_jqfA;zYM%OEB#j}?YHeSDnk zZsdDBrnQDvl8?z1_CBk1Fbnbf?=DFhXv|W#?P7|#z0bn6by9+x_#GjGTI?htZ0ESk z6#u-KfTk~gHIbAKSv~$E9tpLgvz$Ya z*2s*}N^jS0GEKu7w`Dd?uC>Qi%u%;1GUs8l>aINypDiU(Ne9u`{NcszrNP?mb-3}9 z%K~F_k>77_>V5-v{kPGV6$!?$+{nwagsHS#dNjSUZnatrZ9IzdnxbOQUu-ASUXZ9h zATbl&v8(a@nXWi~=!5{IR??vg{|&!40(L}S*#98V{XY+p|L4yCE{Whj6#5T^0^nT! jH@PPNVUzy_3T^GM4cf9DE9#^hX$XV!Cg<|B?VtP~!Zg9T literal 0 HcmV?d00001 diff --git a/modules/home/hyprland/conf/rofi/styles/style_5.rasi b/modules/home/hyprland/conf/rofi/styles/style_5.rasi new file mode 100644 index 0000000..1d7f05f --- /dev/null +++ b/modules/home/hyprland/conf/rofi/styles/style_5.rasi @@ -0,0 +1,149 @@ +// Config // +configuration { + modi: "drun,filebrowser,window,run"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name}"; + window-format: "{w}{t}"; + font: "JetBrainsMono Nerd Font 10"; + icon-theme: "Tela-circle-dracula"; +} + +@theme "~/.config/rofi/themes/theme.rasi" + + +// Main // +window { + height: 500px; + width: 800px; + transparency: "real"; + fullscreen: false; + enabled: true; + cursor: "default"; + spacing: 0px; + padding: 0px; + border: 2px; + border-radius: 40px; + border-color: @alternate-normal-background; + background-color: transparent; +} +mainbox { + enabled: true; + spacing: 0px; + padding: 0px; + orientation: vertical; + children: [ "inputbar" , "listbox" , "mode-switcher" ]; + background-color: transparent; + background-image: url("~/.config/swww/wall.blur", height); +} + + +// Inputs // +inputbar { + enabled: true; + children: [ "entry" ]; +} +entry { + enabled: false; +} + + +// Lists // +listbox { + padding: 0px; + spacing: 0px; + orientation: horizontal; + children: [ "listview" ]; + background-color: transparent; +} +listview { + padding: 30px; + spacing: 10px; + enabled: true; + columns: 5; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + cursor: "default"; + background-color: @background; + text-color: @foreground; +} + + +// Modes // +mode-switcher { + orientation: horizontal; + enabled: true; + padding: 30px 160px 30px 160px; + spacing: 50px; + background-color: transparent; +} +button { + cursor: pointer; + padding: 30px; + border-radius: 50px; + background-color: @background; + text-color: @foreground; +} +button selected { + background-color: @foreground; + text-color: @background; +} + + +// Elements // +element { + orientation: vertical; + enabled: true; + spacing: 10px; + padding: 10px; + border-radius: 25px; + cursor: pointer; + background-color: transparent; + text-color: @foreground; +} +element normal.normal { + background-color: transparent; + text-color: @normal-foreground; +} +element normal.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; +} +element normal.active { + background-color: @active-background; + text-color: @active-foreground; +} +element selected.normal { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +element selected.urgent { + background-color: @selected-urgent-background; + text-color: @selected-urgent-foreground; +} +element selected.active { + background-color: @selected-active-background; + text-color: @selected-active-foreground; +} +element-icon { + size: 90px; + cursor: inherit; + background-color: transparent; + text-color: inherit; +} +element-text { + vertical-align: 0.5; + horizontal-align: 0.5; + cursor: inherit; + background-color: transparent; + text-color: inherit; +} + diff --git a/modules/home/hyprland/conf/rofi/styles/style_6.png b/modules/home/hyprland/conf/rofi/styles/style_6.png new file mode 100644 index 0000000000000000000000000000000000000000..a120367325f8c9c80ebcbd9d6bbcb2f6f9dec83f GIT binary patch literal 21727 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" + }, + + "tray": { + "icon-size": 18, + "spacing": 5 + }, + + "cpu": { + "interval": 10, + "format": "󰍛 {usage}%", + "format-alt": "{icon0}{icon1}{icon2}{icon3}", + "format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"] + }, + + "memory": { + "interval": 30, + "format": "󰾆 {percentage}%", + "format-alt": "󰾅 {used}GB", + "max-length": 10, + "tooltip": true, + "tooltip-format": " {used:0.1f}GB/{total:0.1f}GB" + }, + + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interface + "format-wifi": "󰤨 {essid}", + "format-ethernet": "󱘖 Wired", + "tooltip-format": "󱘖 {ipaddr}  {bandwidthUpBytes}  {bandwidthDownBytes}", + "format-linked": "󱘖 {ifname} (No IP)", + "format-disconnected": " Disconnected", + "format-alt": "󰤨 {signalStrength}%", + "interval": 5 + }, + + "bluetooth": { + "format": "", + "format-disabled": "", // an empty format will hide the module + "format-connected": " {num_connections}", + "tooltip-format": " {device_alias}", + "tooltip-format-connected": "{device_enumerate}", + "tooltip-format-enumerate-connected": " {device_alias}" + }, + + "pulseaudio": { + "format": "{icon} {volume}", + "format-muted": "婢", + "on-click": "pavucontrol -t 3", + "on-click-middle": "~/.config/hypr/scripts/volumecontrol.sh -o m", + "on-scroll-up": "~/.config/hypr/scripts/volumecontrol.sh -o i", + "on-scroll-down": "~/.config/hypr/scripts/volumecontrol.sh -o d", + "tooltip-format": "{icon} {desc} // {volume}%", + "scroll-step": 5, + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + } + }, + + "pulseaudio#microphone": { + "format": "{format_source}", + "format-source": "", + "format-source-muted": "", + "on-click": "pavucontrol -t 4", + "on-click-middle": "~/.config/hypr/scripts/volumecontrol.sh -i m", + "on-scroll-up": "~/.config/hypr/scripts/volumecontrol.sh -i i", + "on-scroll-down": "~/.config/hypr/scripts/volumecontrol.sh -i d", + "tooltip-format": "{format_source} {source_desc} // {source_volume}%", + "scroll-step": 5 + }, + + +// modules for padding // + + "custom/l_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/r_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/sl_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/sr_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/rl_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/rr_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/padd": { + "format": " ", + "interval" : "once", + "tooltip": false + } + +} + diff --git a/modules/home/hyprland/conf/waybar/modes/wb_bottom_01.jsonc b/modules/home/hyprland/conf/waybar/modes/wb_bottom_01.jsonc new file mode 100644 index 0000000..7fa999b --- /dev/null +++ b/modules/home/hyprland/conf/waybar/modes/wb_bottom_01.jsonc @@ -0,0 +1,201 @@ +{ + "layer": "top", + "position": "bottom", + "mod": "dock", + // "height": 28, + "exclusive": true, + "passthrough": false, + "gtk-layer-shell": true, + "modules-left": ["custom/l_end","cpu","memory","battery","custom/r_end","custom/l_end","clock","custom/r_end"], + "modules-center": ["custom/l_end","wlr/workspaces","hyprland/window","custom/r_end"], + "modules-right": ["custom/l_end","network","bluetooth","pulseaudio","pulseaudio#microphone","custom/updates","custom/r_end", + "custom/l_end","tray","custom/r_end", + "custom/l_end","custom/wallchange","custom/mode","custom/wbar", "custom/cliphist","custom/power","custom/r_end"], + + +// center modules // + + "wlr/workspaces": { + "disable-scroll": true, + "all-outputs": true, + "on-click": "activate", + "persistent_workspaces": { + "1": [], + "2": [], + "3": [], + "4": [], + "5": [], + "6": [], + "7": [], + "8": [], + "9": [], + "10": [] + } + }, + + "hyprland/window": { + "format": "  {}", + "separate-outputs": true, + "rewrite": { + "tittu@kryptonite:(.*)": "$1 ", + "(.*) — Mozilla Firefox": "$1 󰈹", + "(.*)Mozilla Firefox": "Firefox 󰈹", + "(.*) - Visual Studio Code": "$1 󰨞", + "(.*)Visual Studio Code": "Code 󰨞", + "(.*) — Dolphin": "$1 󰉋", + "(.*)Spotify": "Spotify 󰓇", + "(.*)Steam": "Steam 󰓓" + } + }, + + +// left modules // + + "cpu": { + "interval": 10, + "format": "󰍛 {usage}%", + "format-alt": "{icon0}{icon1}{icon2}{icon3}", + "format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"] + }, + + "memory": { + "interval": 30, + "format": "󰾆 {percentage}%", + "format-alt": "󰾅 {used}GB", + "max-length": 10, + "tooltip": true, + "tooltip-format": " {used:0.1f}GB/{total:0.1f}GB" + }, + + "clock": { + "format": "{: %I:%M %p 󰃭 %a %d}", + "format-alt": "{:󰥔 %H:%M  %b %Y}", + "tooltip-format": "{calendar}" + }, + + +// right modules // + + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interface + "format-wifi": "󰤨 {essid}", + "format-ethernet": "󱘖 Wired", + "tooltip-format": "󱘖 {ipaddr}  {bandwidthUpBytes}  {bandwidthDownBytes}", + "format-linked": "󱘖 {ifname} (No IP)", + "format-disconnected": " Disconnected", + "format-alt": "󰤨 {signalStrength}%", + "interval": 5 + }, + + "bluetooth": { + "format": "", + "format-disabled": "", // an empty format will hide the module + "format-connected": " {num_connections}", + "tooltip-format": " {device_alias}", + "tooltip-format-connected": "{device_enumerate}", + "tooltip-format-enumerate-connected": " {device_alias}" + }, + + "pulseaudio": { + "format": "{icon}", + "format-muted": "婢", + "on-click": "pavucontrol -t 3", + "on-click-middle": "~/.config/hypr/scripts/volumecontrol.sh m", + "on-scroll-up": "~/.config/hypr/scripts/volumecontrol.sh i", + "on-scroll-down": "~/.config/hypr/scripts/volumecontrol.sh d", + "tooltip-format": "{icon} {desc} // {volume}%", + "scroll-step": 5, + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + } + }, + + "pulseaudio#microphone": { + "format": "{format_source}", + "format-source": "", + "format-source-muted": "", + "on-click": "pavucontrol -t 4", + "on-click-middle": "pamixer --default-source -t", + "on-scroll-up": "pamixer --default-source -i 5", + "on-scroll-down": "pamixer --default-source -d 5", + "tooltip-format": "{format_source} {source_desc} // {source_volume}%", + "scroll-step": 5 + }, + + "custom/updates": { + "format": "󰮯 {}", + "exec": "~/.config/hypr/scripts/systemupdate.sh", + "on-click": "~/.config/hypr/scripts/systemupdate.sh up", + "interval": 86400, // once every day + "tooltip": true + }, + + "tray": { + "icon-size": 15, + "spacing": 5 + }, + + "custom/wallchange": { + "format": "{}", + "exec": "~/.config/swww/swwwallpaper.sh -t", + "on-click": "~/.config/swww/swwwallpaper.sh -n", + "on-click-right": "~/.config/swww/swwwallpaper.sh -p", + "interval" : 86400, // once every day + "tooltip": true + }, + + "custom/mode": { + "format": "{}", + "exec": "echo ; echo 󰟡 switch mode", + "on-click": "~/.config/hypr/scripts/themeswitch.sh -n", + "on-click-right": "~/.config/hypr/scripts/themeswitch.sh -p", + "on-click-middle": "sleep 0.1 && ~/.config/hypr/scripts/themeselect.sh", + "interval" : 86400, // once every day + "tooltip": true + }, + + "custom/cliphist": { + "format": "{}", + "exec": "~/.config/hypr/scripts/cliphist.sh t", + "on-click": "sleep 0.1 && ~/.config/hypr/scripts/cliphist.sh c", + //"on-click-right": "sleep 0.1 && ~/.config/hypr/scripts/cliphist.sh d", + "on-click-middle": "sleep 0.1 && ~/.config/hypr/scripts/cliphist.sh w", + "interval" : 86400, // once every day + "tooltip": true + }, + + "custom/power": { + "format": "{}", + "exec": "echo ; echo  logout", + "on-click": "wlogout -b 2 -c 0 -r 0 -L 930 -R 930 -T 300 -B 300 --protocol layer-shell", + "interval" : 86400, // once every day + "tooltip": true + }, + + "custom/wbar": { + "format": "󰘤{}", + "exec": "echo ; echo 󰟡 switch menubar", + "on-click": "~/.config/waybar/wbarswitch.sh -n", + "on-click-right": "~/.config/waybar/wbarswitch.sh -p", + "interval" : 86400, + "tooltip": true + }, + + "custom/l_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/r_end": { + "format": " ", + "interval" : "once", + "tooltip": false + } +} diff --git a/modules/home/hyprland/conf/waybar/modes/wb_top_01.jsonc b/modules/home/hyprland/conf/waybar/modes/wb_top_01.jsonc new file mode 100644 index 0000000..4510474 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/modes/wb_top_01.jsonc @@ -0,0 +1,202 @@ +{ + "layer": "top", + "position": "top", + "mod": "dock", + // "height": 28, + "exclusive": true, + "passthrough": false, + "gtk-layer-shell": true, + "modules-left": ["custom/l_end","wlr/workspaces","hyprland/window","custom/r_end"], + "modules-center": ["custom/l_end","clock","custom/r_end"], + "modules-right": ["custom/l_end","cpu","memory","battery","custom/r_end", + "custom/l_end","network","bluetooth","pulseaudio","pulseaudio#microphone","custom/updates","custom/r_end", + "custom/l_end","tray","custom/r_end", + "custom/l_end","custom/wallchange","custom/mode","custom/wbar", "custom/cliphist","custom/power","custom/r_end"], + + +// center modules // + + "wlr/workspaces": { + "disable-scroll": true, + "all-outputs": true, + "on-click": "activate", + "persistent_workspaces": { + "1": [], + "2": [], + "3": [], + "4": [], + "5": [], + "6": [], + "7": [], + "8": [], + "9": [], + "10": [] + } + }, + + "hyprland/window": { + "format": "  {}", + "separate-outputs": true, + "rewrite": { + "tittu@kryptonite:(.*)": "$1 ", + "(.*) — Mozilla Firefox": "$1 󰈹", + "(.*)Mozilla Firefox": "Firefox 󰈹", + "(.*) - Visual Studio Code": "$1 󰨞", + "(.*)Visual Studio Code": "Code 󰨞", + "(.*) — Dolphin": "$1 󰉋", + "(.*)Spotify": "Spotify 󰓇", + "(.*)Steam": "Steam 󰓓" + } + }, + + +// left modules // + + "cpu": { + "interval": 10, + "format": "󰍛 {usage}%", + "format-alt": "{icon0}{icon1}{icon2}{icon3}", + "format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"] + }, + + "memory": { + "interval": 30, + "format": "󰾆 {percentage}%", + "format-alt": "󰾅 {used}GB", + "max-length": 10, + "tooltip": true, + "tooltip-format": " {used:0.1f}GB/{total:0.1f}GB" + }, + + "clock": { + "format": "{: %I:%M %p 󰃭 %a %d}", + "format-alt": "{:󰥔 %H:%M  %b %Y}", + "tooltip-format": "{calendar}" + }, + + +// right modules // + + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interface + "format-wifi": "󰤨 {essid}", + "format-ethernet": "󱘖 Wired", + "tooltip-format": "󱘖 {ipaddr}  {bandwidthUpBytes}  {bandwidthDownBytes}", + "format-linked": "󱘖 {ifname} (No IP)", + "format-disconnected": " Disconnected", + "format-alt": "󰤨 {signalStrength}%", + "interval": 5 + }, + + "bluetooth": { + "format": "", + "format-disabled": "", // an empty format will hide the module + "format-connected": " {num_connections}", + "tooltip-format": " {device_alias}", + "tooltip-format-connected": "{device_enumerate}", + "tooltip-format-enumerate-connected": " {device_alias}" + }, + + "pulseaudio": { + "format": "{icon}", + "format-muted": "婢", + "on-click": "pavucontrol -t 3", + "on-click-middle": "~/.config/hypr/scripts/volumecontrol.sh m", + "on-scroll-up": "~/.config/hypr/scripts/volumecontrol.sh i", + "on-scroll-down": "~/.config/hypr/scripts/volumecontrol.sh d", + "tooltip-format": "{icon} {desc} // {volume}%", + "scroll-step": 5, + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + } + }, + + "pulseaudio#microphone": { + "format": "{format_source}", + "format-source": "", + "format-source-muted": "", + "on-click": "pavucontrol -t 4", + "on-click-middle": "pamixer --default-source -t", + "on-scroll-up": "pamixer --default-source -i 5", + "on-scroll-down": "pamixer --default-source -d 5", + "tooltip-format": "{format_source} {source_desc} // {source_volume}%", + "scroll-step": 5 + }, + + "custom/updates": { + "format": "󰮯 {}", + "exec": "~/.config/hypr/scripts/systemupdate.sh", + "on-click": "~/.config/hypr/scripts/systemupdate.sh up", + "interval": 86400, // once every day + "tooltip": true + }, + + "tray": { + "icon-size": 15, + "spacing": 5 + }, + + "custom/wallchange": { + "format": "{}", + "exec": "~/.config/swww/swwwallpaper.sh -t", + "on-click": "~/.config/swww/swwwallpaper.sh -n", + "on-click-right": "~/.config/swww/swwwallpaper.sh -p", + "interval" : 86400, // once every day + "tooltip": true + }, + + "custom/mode": { + "format": "{}", + "exec": "echo ; echo 󰟡 switch mode", + "on-click": "~/.config/hypr/scripts/themeswitch.sh -n", + "on-click-right": "~/.config/hypr/scripts/themeswitch.sh -p", + "on-click-middle": "sleep 0.1 && ~/.config/hypr/scripts/themeselect.sh", + "interval" : 86400, // once every day + "tooltip": true + }, + + "custom/cliphist": { + "format": "{}", + "exec": "~/.config/hypr/scripts/cliphist.sh t", + "on-click": "sleep 0.1 && ~/.config/hypr/scripts/cliphist.sh c", + //"on-click-right": "sleep 0.1 && ~/.config/hypr/scripts/cliphist.sh d", + "on-click-middle": "sleep 0.1 && ~/.config/hypr/scripts/cliphist.sh w", + "interval" : 86400, // once every day + "tooltip": true + }, + + "custom/power": { + "format": "{}", + "exec": "echo ; echo  logout", + "on-click": "wlogout -b 2 -c 0 -r 0 -L 930 -R 930 -T 300 -B 300 --protocol layer-shell", + "interval" : 86400, // once every day + "tooltip": true + }, + + "custom/wbar": { + "format": "󰘤{}", + "exec": "echo ; echo 󰟡 switch menubar", + "on-click": "~/.config/waybar/wbarswitch.sh -n", + "on-click-right": "~/.config/waybar/wbarswitch.sh -p", + "interval" : 86400, + "tooltip": true + }, + + "custom/l_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/r_end": { + "format": " ", + "interval" : "once", + "tooltip": false + } +} diff --git a/modules/home/hyprland/conf/waybar/modules/battery.jsonc b/modules/home/hyprland/conf/waybar/modules/battery.jsonc new file mode 100644 index 0000000..bdad61c --- /dev/null +++ b/modules/home/hyprland/conf/waybar/modules/battery.jsonc @@ -0,0 +1,13 @@ + "battery": { + "states": { + "good": 95, + "warning": 30, + "critical": 20 + }, + "format": "{icon} {capacity}%", + "format-charging": " {capacity}%", + "format-plugged": " {capacity}%", + "format-alt": "{time} {icon}", + "format-icons": ["󰂎", "󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"] + }, + diff --git a/modules/home/hyprland/conf/waybar/modules/bluetooth.jsonc b/modules/home/hyprland/conf/waybar/modules/bluetooth.jsonc new file mode 100644 index 0000000..2cfd8a1 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/modules/bluetooth.jsonc @@ -0,0 +1,9 @@ + "bluetooth": { + "format": "", + "format-disabled": "", // an empty format will hide the module + "format-connected": " {num_connections}", + "tooltip-format": " {device_alias}", + "tooltip-format-connected": "{device_enumerate}", + "tooltip-format-enumerate-connected": " {device_alias}" + }, + diff --git a/modules/home/hyprland/conf/waybar/modules/cliphist.jsonc b/modules/home/hyprland/conf/waybar/modules/cliphist.jsonc new file mode 100644 index 0000000..d397ec5 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/modules/cliphist.jsonc @@ -0,0 +1,10 @@ + "custom/cliphist": { + "format": "{}", + "exec": "echo ; echo 󰅇 clipboard history", + "on-click": "sleep 0.1 && ~/.config/hypr/scripts/cliphist.sh c ${mod_pos}", + //"on-click-right": "sleep 0.1 && ~/.config/hypr/scripts/cliphist.sh d", + "on-click-middle": "sleep 0.1 && ~/.config/hypr/scripts/cliphist.sh w ${mod_pos}", + "interval" : 86400, // once every day + "tooltip": true + }, + diff --git a/modules/home/hyprland/conf/waybar/modules/clock.jsonc b/modules/home/hyprland/conf/waybar/modules/clock.jsonc new file mode 100644 index 0000000..3d79fc1 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/modules/clock.jsonc @@ -0,0 +1,6 @@ + "clock": { + "format": "{: %I:%M %p 󰃭 %a %d}", + "format-alt": "{:󰥔 %H:%M  %b %Y}", + "tooltip-format": "{calendar}" + }, + diff --git a/modules/home/hyprland/conf/waybar/modules/cpu.jsonc b/modules/home/hyprland/conf/waybar/modules/cpu.jsonc new file mode 100644 index 0000000..d2d0646 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/modules/cpu.jsonc @@ -0,0 +1,7 @@ + "cpu": { + "interval": 10, + "format": "󰍛 {usage}%", + "format-alt": "{icon0}{icon1}{icon2}{icon3}", + "format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"] + }, + diff --git a/modules/home/hyprland/conf/waybar/modules/footer.jsonc b/modules/home/hyprland/conf/waybar/modules/footer.jsonc new file mode 100644 index 0000000..1387f74 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/modules/footer.jsonc @@ -0,0 +1,47 @@ + +// modules for padding // + + "custom/l_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/r_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/sl_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/sr_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/rl_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/rr_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/padd": { + "format": " ", + "interval" : "once", + "tooltip": false + } + +} + diff --git a/modules/home/hyprland/conf/waybar/modules/header.jsonc b/modules/home/hyprland/conf/waybar/modules/header.jsonc new file mode 100644 index 0000000..703277b --- /dev/null +++ b/modules/home/hyprland/conf/waybar/modules/header.jsonc @@ -0,0 +1,12 @@ +// --// waybar config generated by wbarconfgen.sh //-- // + +{ +// sourced from header module // + + "layer": "top", + "position": "${w_position}", + "mod": "dock", + "height": ${w_height}, + "exclusive": true, + "passthrough": false, + "gtk-layer-shell": true, diff --git a/modules/home/hyprland/conf/waybar/modules/memory.jsonc b/modules/home/hyprland/conf/waybar/modules/memory.jsonc new file mode 100644 index 0000000..3c5058d --- /dev/null +++ b/modules/home/hyprland/conf/waybar/modules/memory.jsonc @@ -0,0 +1,9 @@ + "memory": { + "interval": 30, + "format": "󰾆 {percentage}%", + "format-alt": "󰾅 {used}GB", + "max-length": 10, + "tooltip": true, + "tooltip-format": " {used:0.1f}GB/{total:0.1f}GB" + }, + diff --git a/modules/home/hyprland/conf/waybar/modules/mode.jsonc b/modules/home/hyprland/conf/waybar/modules/mode.jsonc new file mode 100644 index 0000000..5a025a3 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/modules/mode.jsonc @@ -0,0 +1,10 @@ + "custom/mode": { + "format": "{}", + "exec": "echo ; echo 󰟡 switch mode", + "on-click": "~/.config/hypr/scripts/themeswitch.sh -n", + "on-click-right": "~/.config/hypr/scripts/themeswitch.sh -p", + "on-click-middle": "sleep 0.1 && ~/.config/hypr/scripts/themeselect.sh", + "interval" : 86400, // once every day + "tooltip": true + }, + diff --git a/modules/home/hyprland/conf/waybar/modules/mpris.jsonc b/modules/home/hyprland/conf/waybar/modules/mpris.jsonc new file mode 100644 index 0000000..6122c84 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/modules/mpris.jsonc @@ -0,0 +1,13 @@ + "mpris": { + "format": "{player_icon} {dynamic}", + "format-paused": "{status_icon} {dynamic}", + "player-icons": { + "default": "▶", + "mpv": "🎵" + }, + "status-icons": { + "paused": "⏸" + }, + // "ignored-players": ["firefox"] + }, + diff --git a/modules/home/hyprland/conf/waybar/modules/network.jsonc b/modules/home/hyprland/conf/waybar/modules/network.jsonc new file mode 100644 index 0000000..bafb437 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/modules/network.jsonc @@ -0,0 +1,11 @@ + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interface + "format-wifi": "󰤨 {essid}", + "format-ethernet": "󱘖 Wired", + "tooltip-format": "󱘖 {ipaddr}  {bandwidthUpBytes}  {bandwidthDownBytes}", + "format-linked": "󱘖 {ifname} (No IP)", + "format-disconnected": " Disconnected", + "format-alt": "󰤨 {signalStrength}%", + "interval": 5 + }, + diff --git a/modules/home/hyprland/conf/waybar/modules/power.jsonc b/modules/home/hyprland/conf/waybar/modules/power.jsonc new file mode 100644 index 0000000..b69ed6f --- /dev/null +++ b/modules/home/hyprland/conf/waybar/modules/power.jsonc @@ -0,0 +1,8 @@ + "custom/power": { + "format": "{}", + "exec": "echo ; echo  logout", + "on-click": "~/.config/hypr/scripts/logoutlaunch.sh 2", + "interval" : 86400, // once every day + "tooltip": true + }, + diff --git a/modules/home/hyprland/conf/waybar/modules/pulseaudio.jsonc b/modules/home/hyprland/conf/waybar/modules/pulseaudio.jsonc new file mode 100644 index 0000000..06f8314 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/modules/pulseaudio.jsonc @@ -0,0 +1,32 @@ + "pulseaudio": { + "format": "{icon} {volume}", + "format-muted": "婢", + "on-click": "pavucontrol -t 3", + "on-click-middle": "~/.config/hypr/scripts/volumecontrol.sh -o m", + "on-scroll-up": "~/.config/hypr/scripts/volumecontrol.sh -o i", + "on-scroll-down": "~/.config/hypr/scripts/volumecontrol.sh -o d", + "tooltip-format": "{icon} {desc} // {volume}%", + "scroll-step": 5, + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + } + }, + + "pulseaudio#microphone": { + "format": "{format_source}", + "format-source": "", + "format-source-muted": "", + "on-click": "pavucontrol -t 4", + "on-click-middle": "~/.config/hypr/scripts/volumecontrol.sh -i m", + "on-scroll-up": "~/.config/hypr/scripts/volumecontrol.sh -i i", + "on-scroll-down": "~/.config/hypr/scripts/volumecontrol.sh -i d", + "tooltip-format": "{format_source} {source_desc} // {source_volume}%", + "scroll-step": 5 + }, + diff --git a/modules/home/hyprland/conf/waybar/modules/style.css b/modules/home/hyprland/conf/waybar/modules/style.css new file mode 100644 index 0000000..c0092b7 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/modules/style.css @@ -0,0 +1,164 @@ +* { + border: none; + border-radius: 0px; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + font-size: ${s_fontpx}px; + min-height: 10px; +} + +@import "themes/${cur_theme}.css"; + +window#waybar { + background: @bar-bg; +} + +tooltip { + background: @tool-bg; + color: @tool-color; + border-radius: ${b_radius}px; + border-width: 1px; + border-style: solid; + border-color: @tool-border; +} + +#workspaces button { + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: ${w_radius}px; + margin-top: ${w_margin}px; + margin-bottom: ${w_margin}px; + padding-left: ${w_paddin}px; + padding-right: ${w_paddin}px; + color: @wb-color; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); +} + +#workspaces button.active { + background: @wb-act-bg; + color: @wb-act-color; + margin-left: ${w_margin}px; + padding-left: ${w_padact}px; + padding-right: ${w_padact}px; + margin-right: ${w_margin}px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); +} + +#workspaces button:hover { + background: @wb-hvr-bg; + color: @wb-hvr-color; + padding-left: ${w_paddin}px; + padding-right: ${w_paddin}px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); +} + +#taskbar button { + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: ${w_radius}px; + margin-top: ${w_margin}px; + margin-bottom: ${w_margin}px; + padding-left: ${w_paddin}px; + padding-right: ${w_paddin}px; + color: @wb-color; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); +} + +#taskbar button.active { + background: @wb-act-bg; + color: @wb-act-color; + margin-left: ${w_margin}px; + padding-left: ${w_padact}px; + padding-right: ${w_padact}px; + margin-right: ${w_margin}px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); +} + +#taskbar button:hover { + background: @wb-hvr-bg; + color: @wb-hvr-color; + padding-left: ${w_paddin}px; + padding-right: ${w_paddin}px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); +} + +#cpu, +#memory, +#battery, +#clock, +#workspaces, +#window, +#taskbar, +#network, +#bluetooth, +#pulseaudio, +#mpris, +#custom-updates, +#custom-wallchange, +#custom-mode, +#custom-cliphist, +#custom-power, +#custom-wbar, +#custom-l_end, +#custom-r_end, +#custom-sl_end, +#custom-sr_end, +#custom-rl_end, +#custom-rr_end, +#tray { + color: @main-color; + background: @main-bg; + opacity: 1; + margin: ${g_margin}px 0px ${g_margin}px 0px; + padding-left: ${g_paddin}px; + padding-right: ${g_paddin}px; +} + +#workspaces, +#taskbar { + padding: 0px; +} + +#custom-r_end { + border-radius: 0px ${b_radius}px ${b_radius}px 0px; + margin-right: ${e_margin}px; + padding-right: ${e_paddin}px; +} + +#custom-l_end { + border-radius: ${b_radius}px 0px 0px ${b_radius}px; + margin-left: ${e_margin}px; + padding-left: ${e_paddin}px; +} + +#custom-sr_end { + border-radius: 0px; + margin-right: ${e_margin}px; + padding-right: ${e_paddin}px; +} + +#custom-sl_end { + border-radius: 0px; + margin-left: ${e_margin}px; + padding-left: ${e_paddin}px; +} + +#custom-rr_end { + border-radius: 0px ${c_radius}px ${c_radius}px 0px; + margin-right: ${e_margin}px; + padding-right: ${e_paddin}px; +} + +#custom-rl_end { + border-radius: ${c_radius}px 0px 0px ${c_radius}px; + margin-left: ${e_margin}px; + padding-left: ${e_paddin}px; +} diff --git a/modules/home/hyprland/conf/waybar/modules/taskbar.jsonc b/modules/home/hyprland/conf/waybar/modules/taskbar.jsonc new file mode 100644 index 0000000..eb72ecf --- /dev/null +++ b/modules/home/hyprland/conf/waybar/modules/taskbar.jsonc @@ -0,0 +1,16 @@ + "wlr/taskbar": { + "format": "{icon}", + "icon-size": ${i_task}, + "icon-theme": "${i_theme}", + "spacing": 0, + "tooltip-format": "{title}", + "on-click": "activate", + "on-click-middle": "close", + "ignore-list": [ + "Alacritty" + ], + "app_ids-mapping": { + "firefoxdeveloperedition": "firefox-developer-edition" + } + }, + diff --git a/modules/home/hyprland/conf/waybar/modules/tray.jsonc b/modules/home/hyprland/conf/waybar/modules/tray.jsonc new file mode 100644 index 0000000..f5fb1b0 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/modules/tray.jsonc @@ -0,0 +1,5 @@ + "tray": { + "icon-size": ${i_size}, + "spacing": 5 + }, + diff --git a/modules/home/hyprland/conf/waybar/modules/updates.jsonc b/modules/home/hyprland/conf/waybar/modules/updates.jsonc new file mode 100644 index 0000000..138d37b --- /dev/null +++ b/modules/home/hyprland/conf/waybar/modules/updates.jsonc @@ -0,0 +1,8 @@ + "custom/updates": { + "format": "󰮯 {}", + "exec": "~/.config/hypr/scripts/systemupdate.sh", + "on-click": "~/.config/hypr/scripts/systemupdate.sh up", + "interval": 86400, // once every day + "tooltip": true + }, + diff --git a/modules/home/hyprland/conf/waybar/modules/wallchange.jsonc b/modules/home/hyprland/conf/waybar/modules/wallchange.jsonc new file mode 100644 index 0000000..be446e5 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/modules/wallchange.jsonc @@ -0,0 +1,9 @@ + "custom/wallchange": { + "format": "{}", + "exec": "echo ; echo 󰆊 switch wallpaper", + "on-click": "~/.config/swww/swwwallpaper.sh -n ${mod_pos}", + "on-click-right": "~/.config/swww/swwwallpaper.sh -p ${mod_pos}", + "interval" : 86400, // once every day + "tooltip": true + }, + diff --git a/modules/home/hyprland/conf/waybar/modules/wbar.jsonc b/modules/home/hyprland/conf/waybar/modules/wbar.jsonc new file mode 100644 index 0000000..eb9f1b7 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/modules/wbar.jsonc @@ -0,0 +1,10 @@ + "custom/wbar": { + "format": "{}", //   // + "exec": "echo ; echo  switch menubar", + "on-click": "~/.config/waybar/wbarconfgen.sh n", + "on-click-right": "~/.config/waybar/wbarconfgen.sh p", + "on-click-middle": "~/.config/waybar/wbarconfgen.sh", + "interval" : 86400, + "tooltip": true + }, + diff --git a/modules/home/hyprland/conf/waybar/modules/window.jsonc b/modules/home/hyprland/conf/waybar/modules/window.jsonc new file mode 100644 index 0000000..f9d4eb8 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/modules/window.jsonc @@ -0,0 +1,15 @@ + "hyprland/window": { + "format": "  {}", + "separate-outputs": true, + "rewrite": { + "${USER}@${set_sysname}:(.*)": "$1 ", + "(.*) — Mozilla Firefox": "$1 󰈹", + "(.*)Mozilla Firefox": "Firefox 󰈹", + "(.*) - Visual Studio Code": "$1 󰨞", + "(.*)Visual Studio Code": "Code 󰨞", + "(.*) — Dolphin": "$1 󰉋", + "(.*)Spotify": "Spotify 󰓇", + "(.*)Steam": "Steam 󰓓" + } + }, + diff --git a/modules/home/hyprland/conf/waybar/modules/workspaces.jsonc b/modules/home/hyprland/conf/waybar/modules/workspaces.jsonc new file mode 100644 index 0000000..7c8ffd2 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/modules/workspaces.jsonc @@ -0,0 +1,18 @@ + "wlr/workspaces": { + "disable-scroll": true, + "all-outputs": true, + "on-click": "activate", + "persistent_workspaces": { + "1": [], + "2": [], + "3": [], + "4": [], + "5": [], + "6": [], + "7": [], + "8": [], + "9": [], + "10": [] + } + }, + diff --git a/modules/home/hyprland/conf/waybar/style.css b/modules/home/hyprland/conf/waybar/style.css new file mode 100644 index 0000000..16ad120 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/style.css @@ -0,0 +1,164 @@ +* { + border: none; + border-radius: 0px; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + font-size: 11px; + min-height: 10px; +} + +@import "themes/theme.css"; + +window#waybar { + background: @bar-bg; +} + +tooltip { + background: @tool-bg; + color: @tool-color; + border-radius: 21px; + border-width: 1px; + border-style: solid; + border-color: @tool-border; +} + +#workspaces button { + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: 9px; + margin-top: 3px; + margin-bottom: 3px; + padding-left: 3px; + padding-right: 3px; + color: @wb-color; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); +} + +#workspaces button.active { + background: @wb-act-bg; + color: @wb-act-color; + margin-left: 3px; + padding-left: 12px; + padding-right: 12px; + margin-right: 3px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); +} + +#workspaces button:hover { + background: @wb-hvr-bg; + color: @wb-hvr-color; + padding-left: 3px; + padding-right: 3px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); +} + +#taskbar button { + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: 9px; + margin-top: 3px; + margin-bottom: 3px; + padding-left: 3px; + padding-right: 3px; + color: @wb-color; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); +} + +#taskbar button.active { + background: @wb-act-bg; + color: @wb-act-color; + margin-left: 3px; + padding-left: 12px; + padding-right: 12px; + margin-right: 3px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); +} + +#taskbar button:hover { + background: @wb-hvr-bg; + color: @wb-hvr-color; + padding-left: 3px; + padding-right: 3px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); +} + +#cpu, +#memory, +#battery, +#clock, +#workspaces, +#window, +#taskbar, +#network, +#bluetooth, +#pulseaudio, +#mpris, +#custom-updates, +#custom-wallchange, +#custom-mode, +#custom-cliphist, +#custom-power, +#custom-wbar, +#custom-l_end, +#custom-r_end, +#custom-sl_end, +#custom-sr_end, +#custom-rl_end, +#custom-rr_end, +#tray { + color: @main-color; + background: @main-bg; + opacity: 1; + margin: 4px 0px 4px 0px; + padding-left: 4px; + padding-right: 4px; +} + +#workspaces, +#taskbar { + padding: 0px; +} + +#custom-r_end { + border-radius: 0px 21px 21px 0px; + margin-right: 9px; + padding-right: 3px; +} + +#custom-l_end { + border-radius: 21px 0px 0px 21px; + margin-left: 9px; + padding-left: 3px; +} + +#custom-sr_end { + border-radius: 0px; + margin-right: 9px; + padding-right: 3px; +} + +#custom-sl_end { + border-radius: 0px; + margin-left: 9px; + padding-left: 3px; +} + +#custom-rr_end { + border-radius: 0px 7px 7px 0px; + margin-right: 9px; + padding-right: 3px; +} + +#custom-rl_end { + border-radius: 7px 0px 0px 7px; + margin-left: 9px; + padding-left: 3px; +} diff --git a/modules/home/hyprland/conf/waybar/themes/Catppuccin-Latte.css b/modules/home/hyprland/conf/waybar/themes/Catppuccin-Latte.css new file mode 100644 index 0000000..d8e6376 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/themes/Catppuccin-Latte.css @@ -0,0 +1,16 @@ +@define-color bar-bg rgba(0, 0, 0, 0); + +@define-color main-color #4c4f69; +@define-color main-bg #9ca0b0; + +@define-color tool-bg #9ca0b0; +@define-color tool-color #4c4f69; +@define-color tool-border #ccd0da; + +@define-color wb-color #4c4f69; + +@define-color wb-act-bg #5c5f77; +@define-color wb-act-color #dce0e8; + +@define-color wb-hvr-bg #dc8a78; +@define-color wb-hvr-color #dce0e8; diff --git a/modules/home/hyprland/conf/waybar/themes/Catppuccin-Mocha.css b/modules/home/hyprland/conf/waybar/themes/Catppuccin-Mocha.css new file mode 100644 index 0000000..2b6da2f --- /dev/null +++ b/modules/home/hyprland/conf/waybar/themes/Catppuccin-Mocha.css @@ -0,0 +1,16 @@ +@define-color bar-bg rgba(0, 0, 0, 0); + +@define-color main-color #cdd6f4; +@define-color main-bg #11111b; + +@define-color tool-bg #1e1e2e; +@define-color tool-color #cdd6f4; +@define-color tool-border #11111b; + +@define-color wb-color #cdd6f4; + +@define-color wb-act-bg #a6adc8; +@define-color wb-act-color #313244; + +@define-color wb-hvr-bg #f5c2e7; +@define-color wb-hvr-color #313244; diff --git a/modules/home/hyprland/conf/waybar/themes/Cyberpunk-Edge.css b/modules/home/hyprland/conf/waybar/themes/Cyberpunk-Edge.css new file mode 100644 index 0000000..debe8ea --- /dev/null +++ b/modules/home/hyprland/conf/waybar/themes/Cyberpunk-Edge.css @@ -0,0 +1,16 @@ +@define-color bar-bg rgba(0,0,0,1); + +@define-color main-color #FFA6C2; +@define-color main-bg #000000; + +@define-color tool-bg #000000; +@define-color tool-color #ffffff; +@define-color tool-border #FFA6C2; + +@define-color wb-color #FFA6C2; + +@define-color wb-act-bg #FFA6C2; +@define-color wb-act-color #000000; + +@define-color wb-hvr-bg #FADA16; +@define-color wb-hvr-color #000000; diff --git a/modules/home/hyprland/conf/waybar/themes/Decay-Green.css b/modules/home/hyprland/conf/waybar/themes/Decay-Green.css new file mode 100644 index 0000000..97d7864 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/themes/Decay-Green.css @@ -0,0 +1,16 @@ +@define-color bar-bg rgba(31, 35, 40, 0.95); + +@define-color main-color #93cee9; +@define-color main-bg #101419; + +@define-color tool-bg #cbced3; +@define-color tool-color #1f2328; +@define-color tool-border #90ceaa; + +@define-color wb-color #93cee9; + +@define-color wb-act-bg #93cee9; +@define-color wb-act-color #1f2328; + +@define-color wb-hvr-bg #93cee9; +@define-color wb-hvr-color #1f2328; diff --git a/modules/home/hyprland/conf/waybar/themes/Graphite-Mono.css b/modules/home/hyprland/conf/waybar/themes/Graphite-Mono.css new file mode 100644 index 0000000..98ee654 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/themes/Graphite-Mono.css @@ -0,0 +1,16 @@ +@define-color bar-bg rgba(38,38,38,1); + +@define-color main-color #d9d9d9; +@define-color main-bg #262626; + +@define-color tool-bg #595959; +@define-color tool-color #a6a6a6; +@define-color tool-border #d9d9d9; + +@define-color wb-color #d9d9d9; + +@define-color wb-act-bg #d9d9d9; +@define-color wb-act-color #262626; + +@define-color wb-hvr-bg #a6a6a6; +@define-color wb-hvr-color #262626; diff --git a/modules/home/hyprland/conf/waybar/themes/Material-Sakura.css b/modules/home/hyprland/conf/waybar/themes/Material-Sakura.css new file mode 100644 index 0000000..5d94dc3 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/themes/Material-Sakura.css @@ -0,0 +1,16 @@ +@define-color bar-bg rgba(0, 0, 0, 0); + +@define-color main-color #907aa9; +@define-color main-bg #faf4ed; + +@define-color tool-bg #f2e9e1; +@define-color tool-color #9893a5; +@define-color tool-border #d7827e; + +@define-color wb-color #907aa9; + +@define-color wb-act-bg #b4637a; +@define-color wb-act-color #fffaf3; + +@define-color wb-hvr-bg #56949f; +@define-color wb-hvr-color #fffaf3; diff --git a/modules/home/hyprland/conf/waybar/themes/Rose-Pine.css b/modules/home/hyprland/conf/waybar/themes/Rose-Pine.css new file mode 100644 index 0000000..41907ef --- /dev/null +++ b/modules/home/hyprland/conf/waybar/themes/Rose-Pine.css @@ -0,0 +1,16 @@ +@define-color bar-bg rgba(0, 0, 0, 0); + +@define-color main-color #ebbcba; +@define-color main-bg #26233a; + +@define-color tool-bg #21202e; +@define-color tool-color #908caa; +@define-color tool-border #524f67; + +@define-color wb-color #31748f; + +@define-color wb-act-bg #31748f; +@define-color wb-act-color #9ccfd8; + +@define-color wb-hvr-bg #eb6f92; +@define-color wb-hvr-color #f6c177; diff --git a/modules/home/hyprland/conf/waybar/themes/Tokyo-Night.css b/modules/home/hyprland/conf/waybar/themes/Tokyo-Night.css new file mode 100644 index 0000000..6b22f25 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/themes/Tokyo-Night.css @@ -0,0 +1,16 @@ +@define-color bar-bg rgba(0, 0, 0, 0); + +@define-color main-color #7aa2f7; +@define-color main-bg #24283b; + +@define-color tool-bg #414868; +@define-color tool-color #b4f9f8; +@define-color tool-border #565f89; + +@define-color wb-color #7dcfff; + +@define-color wb-act-bg #bb9af7; +@define-color wb-act-color #b4f9f8; + +@define-color wb-hvr-bg #7aa2f7; +@define-color wb-hvr-color #cfc9c2; diff --git a/modules/home/hyprland/conf/waybar/themes/theme.css b/modules/home/hyprland/conf/waybar/themes/theme.css new file mode 120000 index 0000000..ada2182 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/themes/theme.css @@ -0,0 +1 @@ +Catppuccin-Mocha.css \ No newline at end of file diff --git a/modules/home/hyprland/conf/waybar/wbarconfgen.sh b/modules/home/hyprland/conf/waybar/wbarconfgen.sh new file mode 100755 index 0000000..ce1079e --- /dev/null +++ b/modules/home/hyprland/conf/waybar/wbarconfgen.sh @@ -0,0 +1,122 @@ +#!/usr/bin/env sh + + +# read control file and initialize variables + +waybar_dir=`pwd` +modules_dir="$waybar_dir/modules" +conf_file="$waybar_dir/config.jsonc" +conf_ctl="$waybar_dir/config.ctl" + +readarray -t read_ctl < $conf_ctl +num_files="${#read_ctl[@]}" +switch=0 + + +# update control file to set next/prev mode + +for (( i=0 ; i<$num_files ; i++ )) +do + flag=`echo "${read_ctl[i]}" | cut -d '|' -f 1` + + if [ $flag -eq 1 ] && [ "$1" == "n" ] ; then + nextIndex=$(( (i + 1) % $num_files )) + switch=1 + break; + + elif [ $flag -eq 1 ] && [ "$1" == "p" ] ; then + nextIndex=$(( i - 1 )) + switch=1 + break; + fi +done + +if [ $switch -eq 1 ] ; then + update_ctl="${read_ctl[nextIndex]}" + sed -i "s/^1/0/g" $conf_ctl + awk -F '|' -v cmp="$update_ctl" '{OFS=FS} {if($0==cmp) $1=1; print$0}' $conf_ctl > $waybar_dir/tmp && mv $waybar_dir/tmp $conf_ctl +fi + + +# overwrite config from header module + +export set_sysname=`hostnamectl hostname` +export w_position=`grep '^1|' $conf_ctl | cut -d '|' -f 3` + +export w_height=`grep '^1|' $conf_ctl | cut -d '|' -f 2` +if [ -z $w_height ] ; then + y_monres=`cat /sys/class/drm/*/modes | head -1 | cut -d 'x' -f 2` + export w_height=$(( y_monres*2/100 )) +fi + +export i_size=$(( w_height*6/10 )) +if [ $i_size -lt 12 ] ; then + export i_size="12" +fi + +export i_theme=`gsettings get org.gnome.desktop.interface icon-theme | sed "s/'//g"` +export i_task=$(( w_height*6/10 )) +if [ $i_task -lt 16 ] ; then + export i_task="16" +fi + +envsubst < $modules_dir/header.jsonc > $conf_file + + +# module generator function + +gen_mod() +{ + local pos=$1 + local col=$2 + local mod="" + + mod=`grep '^1|' $conf_ctl | cut -d '|' -f ${col}` + mod="${mod//(/"custom/l_end"}" + mod="${mod//)/"custom/r_end"}" + mod="${mod//[/"custom/sl_end"}" + mod="${mod//]/"custom/sr_end"}" + mod="${mod//\{/"custom/rl_end"}" + mod="${mod//\}/"custom/rr_end"}" + mod="${mod// /"\",\""}" + + echo -e "\t\"modules-${pos}\": [\"custom/padd\",\"${mod}\",\"custom/padd\"]," >> $conf_file + write_mod=`echo $write_mod $mod` +} + + +# write positions for modules + +echo -e "\n\n// positions generated based on config.ctl //\n" >> $conf_file +gen_mod left 4 +gen_mod center 5 +gen_mod right 6 + + +# copy modules/*.jsonc to the config + +echo -e "\n\n// sourced from modules based on config.ctl //\n" >> $conf_file +echo "$write_mod" | sed 's/","/\n/g ; s/ /\n/g' | awk '!x[$0]++' | while read mod_list +do + mod_cpy=`echo $mod_list | awk -F '/' '{print $NF}'` + + case ${w_position}-$(grep -E '"modules-left":|"modules-center":|"modules-right":' $conf_file | grep "$mod_cpy" | tail -1 | cut -d '"' -f 2 | cut -d '-' -f 2) in + top-left) export mod_pos=1;; + top-right) export mod_pos=2;; + bottom-right) export mod_pos=3;; + bottom-left) export mod_pos=4;; + esac + + if [ -f $modules_dir/$mod_cpy.jsonc ] ; then + envsubst < $modules_dir/$mod_cpy.jsonc >> $conf_file + fi +done + +cat $modules_dir/footer.jsonc >> $conf_file + + +# generate style and restart waybar + +$waybar_dir/wbarstylegen.sh + + diff --git a/modules/home/hyprland/conf/waybar/wbarstylegen.sh b/modules/home/hyprland/conf/waybar/wbarstylegen.sh new file mode 100755 index 0000000..dfdd023 --- /dev/null +++ b/modules/home/hyprland/conf/waybar/wbarstylegen.sh @@ -0,0 +1,61 @@ +#!/usr/bin/env sh + + +# detect hypr theme and initialize variables + +waybar_dir=`pwd` +in_file="$waybar_dir/modules/style.css" +out_file="$waybar_dir/style.css" +src_file="$HOME/.config/hypr/themes/theme.conf" +export cur_theme=`echo $(readlink "$src_file") | awk -F "/" '{print $NF}' | cut -d '.' -f 1` + + +# calculate height from control file or monitor res + +b_height=`grep '^1|' $waybar_dir/config.ctl | cut -d '|' -f 2` + +if [ -z $b_height ] || [ "$b_height" == "0" ]; then + y_monres=`cat /sys/class/drm/*/modes | head -1 | cut -d 'x' -f 2` + b_height=$(( y_monres*3/100 )) +fi + + +# calculate values based on height and generate theme style + +export b_radius=$(( b_height*70/100 )) # block rad 90% of height (type1) +export c_radius=$(( b_height*25/100 )) # block rad 25% of height {type2} +export e_margin=$(( b_height*30/100 )) # block margin 30% of height +export e_paddin=$(( b_height*10/100 )) # block padding 10% of height +export g_margin=$(( b_height*14/100 )) # module margin 14% of height +export g_paddin=$(( b_height*15/100 )) # module padding 15% of height +export w_radius=$(( b_height*30/100 )) # workspace rad 30% of height +export w_margin=$(( b_height*10/100 )) # workspace margin 10% of height +export w_paddin=$(( b_height*10/100 )) # workspace padding 10% of height +export w_padact=$(( b_height*40/100 )) # workspace active padding 40% of height +export s_fontpx=$(( b_height*38/100 )) # font size 38% of height + +if [ $b_height -lt 30 ] ; then + export e_paddin=0 +fi +if [ $s_fontpx -lt 10 ] ; then + export s_fontpx=10 +fi + +envsubst < $in_file > $out_file + + +# override rounded couners + +hypr_border=`awk -F '=' '{if($1~" rounding ") print $2}' $src_file | sed 's/ //g'` +if [ "$hypr_border" == "0" ] ; then + sed -i "/border-radius: /c\ border-radius: 0px;" $out_file +fi + + +# restart waybar + +killall waybar +waybar > /dev/null 2>&1 & +# killall -SIGUSR2 waybar + + diff --git a/modules/home/hyprland/conf/waybar/wbarswitch.sh b/modules/home/hyprland/conf/waybar/wbarswitch.sh new file mode 100755 index 0000000..d063ecc --- /dev/null +++ b/modules/home/hyprland/conf/waybar/wbarswitch.sh @@ -0,0 +1,67 @@ +#!/usr/bin/env sh + +# Set the directory paths +waybar_dir=`dirname $(realpath $0)` +modes_dir="$waybar_dir/modes" + +# Get the current symlink target +current_target=$(readlink "$waybar_dir/config.jsonc") + +# Get the list of available files in modes directory +file_list=("$modes_dir"/*.jsonc) +num_files=${#file_list[@]} + +# Check if there are no files or only one file +if [[ $num_files -eq 0 ]]; then + echo "Error: No files found in modes directory." + exit 1 +elif [[ $num_files -eq 1 ]]; then + echo "Only one file found. No changes made." + exit 0 +fi + +# Find the index of the current target in the file list +current_index=-1 +for ((i=0; i /dev/null 2>&1 & diff --git a/modules/home/hyprland/conf/wlogout/icons/hibernate_dark.png b/modules/home/hyprland/conf/wlogout/icons/hibernate_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..6f98a083153af3e959e1ab0be330a17ae9ce94af GIT binary patch literal 17133 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 z೾m{OPN!}r}!TZscIC(PRr(KS!?Jr}j_hh~@`MrC6 zE%r%iTEZg9fwbmF&j7&L2;b=nWF*WtX?^oM4DcPUQR#89$?I@5OQ=X|PGcmeNNub0 z{;&vtG*Ovf_4+#A4D_IL!`o4rRZG-o^;Ddq+*xl8wNRALUB_dX=W-(`9v#28Q;zM| z>g=4_2D?XB4Z*lbfnB7z8JxyR(c({%eEZ>G$X<`Q{H59A`YJF()xPyS5*7 zBE%}5Ka2V}I@9zyzW+OvTu|GZ4ktJU@!`-YZc{6kQP`m_ehwsB@&z|p%#|VcjMWP> zc)Kya&sObypV+GgF1lIW!%@)W2}J-cksHH}L#WfMG9rE+3dhC;BVG|R);7M)(yqyk zPV)WwEJAQQ!Q^C433nv^_+(4=O%SbFWF+*1FWg2CkeH}JsD;&2WmaeV16H}g&!G2W zW`waFV-xO9q2pb63|rG+aW!x@j0qwOOR1JX*nYfBQlU+IKN$Cf8nK|>=WsaVyq5<# zE1wL+(!{(t^74#;%tB@wBtV29bD9+D_A_`(U818xwp<9liR+N^i`7-#86pb@Pgg*v zTi<5wmUSIB>%tdCfVVn3g{iv8{G@0gJ!UgM+8^8`W$!2@8Ibr~HQ&4xOC#3NQUW_8 z_O1Px8Gxe45d4+(X4hk`TruMMCPiy52KEM9%&wW{L@`0grG`8L1L3kCy@ca2$Sh5M zqr@lv0=sDDaV`qq`m@2423Q`swFNZlBcE07Aa(4qJ?0$mBlll}28d3$O9iB&(<-Av>B47eK#zYXR04;xJ(I)~;S=Bo|>8KmhK*l{LI^N8f)N0Zl_7({e zmQ<8r-UvF)ixwp9!b(_Ca!Z)>Q?)JoxwT0LdI{cfppUr^#*VDtnbl==P7CHl=d?K8 z4!VMm+@`jGq`-!aBobcV<#-L9LHr9D$fk-0GF zn7?qCJUO7)YycI|zAhL{; z06psA_3}7woE#32BZ-}33n9=Db_p7Efj>+^S9}k3hz83Hzv`Xp-l&LNQ3+8nA@a6=p{RWuaxOtjTh?pa@8 zTyF8B&yZp4M$GoEx^_o4$Q;jiOUfQ@SFA$=(DT1Xd`&Zhh)Gdt?pvE|O3w!=;&>(G zIv`eKu-$S(PWr|6B`Qx~&4cTAsrkIQ>oW-vu*EgsE$mBN*<9Z(N9c22r9%oa)BI-t zgy)0`LhEXC^1GuQS_`fr7s2Bp;=}_lyW@;hzgYxSwtQK6k867`GlhyQC%xhL+G1Dp zcH}eK^uzO0ab}d507&)y>R*GzWvGr$Ql$BTrg#f^EV>NwAD@B{3+aCymYzHl^OF99 SKKP*ufHttuuRP;=<^KUOrh=6K literal 0 HcmV?d00001 diff --git a/modules/home/hyprland/conf/wlogout/icons/hibernate_light.png b/modules/home/hyprland/conf/wlogout/icons/hibernate_light.png new file mode 100644 index 0000000000000000000000000000000000000000..cea1ebcda3150999e6c734ed78b794d58d994c82 GIT binary patch literal 8061 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 E5BRz3kpKVy literal 0 HcmV?d00001 diff --git a/modules/home/hyprland/conf/wlogout/icons/lock_dark.png b/modules/home/hyprland/conf/wlogout/icons/lock_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..b4c8c523eb1747a1fb9e5b99fe3e47c5718201f7 GIT binary patch literal 10224 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 E10BzIp#T5? literal 0 HcmV?d00001 diff --git a/modules/home/hyprland/conf/wlogout/icons/logout_dark.png b/modules/home/hyprland/conf/wlogout/icons/logout_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..b918ce7496113ff9c6bd5cc2e931e5a3f8b83a75 GIT binary patch literal 9045 zcmeHNcUV)|w%-Y%hzepsEJ%cLa8w}l5D4IaAft#%C{hzrFti{^s3KA9QbtF>0V$4m zL=u`Jy~TMkQ z)Ly2I&1MH18*FG8i@^+{0}y#K_9$`v<<0Z=IeGs2>jk{~<}1r>xaYB}emm>3^80<8 zS6>j52mWof{og)e)Z(>p5;j9VBoXoiDV^!-jf zxEi*wL88?px-$1ls_P4}h*P6gP3t$dLGD+?n zcgKwcDl1r*LSy;Sbt8jAkq!eER*|6;Y9O71^`rYULx`IF)%BWKCXJ}+X6%S_47H(e zXReP9qdP}$B2l9Qsb(}yD@#R-NCE^1rgJFR$l#z5HX)LzDa9o~87bDb2-fkaJr zm`66OFgn&q*GLzqvo4YuZlGzYh_wi#F$i02?WQ5%6H#+JhZ9QB(~F3R(2X$EWrg|c z>6@9E>ER6Y3=DLjh7LO_ghPqc31Mp?5K|bobT&1N8OmX@La+!X#gE115H&SnJ@$it z!J&?hAK^pT(=0$f^dc#tdiuIJz2IQI&n?)Tb>R?X+Mz$RV3VRk>3Un~Y!)|+N?#XF z58-Hi4nd=Sv=8Nm1xdr9QT6CS^kAsUhOO#<(IhhBK3X6Y_%nk;rB;yaFElw!#wW7A z@C~VvhV!{2(EKCr7up|UmnuUoM@ND!i^@gZbFd|9BJC4sEGm;mkcxg(V=CT^rmusC zy`p1e4EqC5(>K+jnflSFW`@RwhBUL!pd3Qj97+h4jzB?hT_(gaGclnX)AbE>=y;lm zju9PC*P-|s8R(c&sW`j=#mEfDF!&6@DU1oTk`nZ}R|pghLitfl^eI#b<)_au&@sZB zQgvXinCO_&=w?PnG-Iltp`jFtMkUy>!h$KVJDI^0f4W|1h`+P~A)K&wvjb7nKo|F^ zWOERO!+-`v&5g_uZsey55;K_Y%%LD`>YJDun402^@CL?sLu2F5tX=70Y?z4%rgZL< znj_spfWbgwDM+3|0BJdlg8j}(ASK7$n!CF9l*yZb)Y}kI3v}kHXIn#GcJxx6ZF{MKZirU7@P=77=5ijbozsBev6#UVwz@;P5&I zh93wsm?lhbI$%9y&iD|qh2DQ~Vj)%dY?6U?Q)O`Sf^(tX$H{P-Gi2KNFMg)`;=kAe zg#M?Iuj2O~y8fZ-s~Gqy<$tp4AG*GZfv-~jC%gX7=u-T2oT7)oT~Gu(EbX(dJq8b2 za()}^ZNVh+&8f}(36{(VUB8VDz|48bg#zg()nK7K$H8%(e2>CH1*KIxz?@8Y>K|~h zT}z5=?QM_Br_06)-}DP{!s1mA14ybWi8-4+cU-)?Dj?6jST-V2wIEni6fj#fasP@D zGoZC~abn^z_rPxgJXGi@hs$&~|KysZx$2jM4Z$m}llI4EOzg-$S72bM{H#5u$t>Gx zV9$73SMnH!Eh`$h`JsCCX>Xes7Qg>C~+Uwox|3G-GvbySARb5rt zhzFO+-Nwy*g9T+Qs^pk>oyd?cxu!U)IhpT7@^@Y6;+cp+y^ia3$@Cfb;qtbiwKy&k zZIS(6fF?itm$+SYIbqHT-Uhz2K#;iSTr)kTJ}y>LDDFzN!Yywg`SN`j^AoNX3f|W) z5yYMK2?-Kng3sPk_ z@HL@3np`h_aZRS!Cd(g_umWTq%NENQpUxunhRjM>4w6h3^VG{?N}4ddi}FH>olNnn z1B+2q1zvoj9N9%lAAM~O7+o@3$j7q`4ujWEt$?5;O$E0fG&gPsuJm|B1ONj77T#b7 z!B2O+oZFF zMsm%S7P5Z>^3PiP6A%7O{gdB+HbZkmlM{sPyzYFL3Nb0HG{8)dzmtA~4mwMK1G~ji=85Aw#KPq}U)O>p6r8qW9Jskk@ zQ>8*n-|>H+tn0`VH3$;z^Z;;A$QJ14FEj4xkGXVnsJ+d1H`J>OFS=8-tR$yDF5eu! zS>z4J#7M5lYFysYhk>C!>uC`Mrv2{zcn0j8+ZXqXy*Gq!Y;fs0hL z30CGmt(<(j!qU=79-2KA-p`oyoRC_rY2F|oc2bHK{)_+Y=kDzY)+>y>oBZroC!`OL zoen6!t(X#(lb60eS3M64Kt=MqCGX!LBJWT|!;U^ub#kZv(@n5DzU@riy|kxM#_W!# z{Xj*iwlx4+5kGZ3&I?hyN4=a0eM@MbEmJx3b>{BdgG;nxc2*!DM_WC-&3Rol;n=~N zF!~wlZwQo~_&mz?<^q|YySXAa`}b-)q+pyE$22+~30}$@H4WO2;HL`NyKcp{MQ@)e ziPzedFGW;oA;mHeCHLp=ZX7(EI$3xaVK9epnEJM&ZmYL}Flyq(bqzg)F5akXn`heC zOS?En+;=f1F{rllnMZt#JAd}E;IYTY$47z?5`~?aWwf4C0=`5htA{FR`*sd$p)`Jq zXUD5ja4S@)Dz_#0*{PUz3|c4+Q%Dh|uE5KW4q z(XyGL(_~ui!peW>NY2u29dTtWewICp(nOToxu@f4*wPG zpW_^a*l-m<-A{sH@)S;xkzr^n#AsOq81=Vm($;Yop~K)HZ-yNYE*zMRIH@<}J&38= z;dTLgolu-VR6&_hP?W?^%2O&*%3DSv3b*rO&J|Yu+KL~DYoZDU1@rhB7(jiqTC|$q z<07vnFRZl_Y74shonV`(7Y~U%1=?z|LM5{^BR_CC-1gXEnQ(m@)#oareIo5OaXc6E z;t?N-A4>S6MR`?Ci_RL*m(k8wcIgjJiIB*GBd^8cSK{4vsAA`uGlU|S8ilO@$I`3R z`&CgGJ|4h*n3Ux!3kEqGCA*T%dB*IW5;ruDe%_bMD80B6Jbb`xeB!+VxGS;>luYD! z#^r@0)}?8Hd{0T>6F3X7OX4K!Zao!t^$e+FyEiF0BS+ zpOAc?)Lb-p*lM0p3(Qf%^A#7O>D=TkApg)zfobn`)_myE0YOJ$pMfGTQ@lrfT%B02 z2%TUF<_TUVqRF|D5!|hU_xi6Ov6aOHKA~wP=qoXID;#kOOo?!X9KIbFKZ1D^XRO3? z8FrQYD9#@puu=tU;%D+t3#b|64^}zN20?A>L@J`$LlR~82))ViGvb^TlW84Wdtd6~ zeyDa$F3NIM_fg+UtY~$*fNrbEiQQg0YO9;RsW8Ozh}BN#66Lw>&x)21pP<|;@$b`6 zuL?5XaCen9cqlo;^=jBDXm}<7YbIyt#=!y7ZFR95E^WnQ+7)APx05=FNvj7yIFQ{r zun?|z6Z5<#;BdVax966x)HwA2gYgQ45c{Co24kFxa{jU{aG$@e-Ff`%2u0E^4$-Q5 z)IE7ad}H4Gh}s-NWtAh`uiUQ^=ZV<-Toesa*OyeCsk$(-ksBiExVC-R>E0Q* zm7LWSFR=2d{H5NiC#_9T!uQR3KM>L8i>wNH!TC?Tg15!98~ypd#bY{gD7fBshjAo{ z#+DtAy=zamHV%}J$->D>wO=GsXIu1p)ttxb#KBI1)@z?Uc$G3XXgTEd@RhnO)oa4{ zv$@^Lu%lbL_?~H0U=KUK@9he6<=B$eSmEH=gWb4bcw_Y5{O#}7xg_Vf4P3YCR*~wX!#oG!6y5(cJ!3(v3T<1N}(G5Fy zHfc0lBYCRJp9?x9Q- zydwVC^*9jQV0I>(_WUNyXDyTC*;S^;LGyDYD!h|pKb{qVgmNNFLyEewsT45<_t`0{ z<1j$@)@$4N-4rV{Aba%XS@t4UIHE?_l*u4}l7oz;6RGC>@@i!GY;5Wvb#SN3G6bf& zPY0~7roiDv4vxJrB0RSANE;knJTpSU$j!N4!_~cr@#zeHmw+{8ek(5DRyg!*EY|87 z;%>3KZ&6Y~Vb=Yjm^jJzZiwyGHWKk1A!c@cL%YZmo*SzZyrACFGLp7ief2y}p5Ro-iA8gsN` zCO@7ZK`LMJV!)k+0YMFME^+4uN+Y;5uDj&NfR2Di;)e{UML_}YzQ0st5>p3>5Gp(- zd7mG+%8P=3!~b+VnBMQhNd&IAFoFM~>MPZ;5D+Cj{{1cVPwLjtaLT7YD&xW0zYM_| zD*fHCuuyl(&uOc_ME_EKIy$(qwR~4ASTeTY((~Q`3>Hk3b44;^3(!LG|CV*~Z>Z4R zdm#U&x}8uB-KlyS<(`s}z|+SF8Bko%<7lS>I^e0@rG zUk)j#3z`Mb`8D$ZxnZY%KbrgvDwHZ&)P-tZ?!N>@ox$TLt0@b^+r48SAg>B`o~?Rv z5R|>h7sp%^-hEY-=vyslJsrJYA2qhoQ{XJTc%fg(EJ2_z%MLRI-3;)Uv;!Q*A`bjUa7_gBySS2FgpJz z>g_dg{59cxG&zvFiA$5HQDwdj2$UQU`7V-mp2176UDnwz7#C=F8>565f|&32)Eg%3 z$&mVmg_V%vLt*UJalzC_H19@*@zK>g`Pdj;O z!i_r>iS_;^V46&SgagAG!k_E)7-1M=q{w02CfmaA$$S0>CF#lK literal 0 HcmV?d00001 diff --git a/modules/home/hyprland/conf/wlogout/icons/logout_light.png b/modules/home/hyprland/conf/wlogout/icons/logout_light.png new file mode 100644 index 0000000000000000000000000000000000000000..33ecdc1b5d9f540b1552eb7f6a2e28b6016062b6 GIT binary patch literal 6858 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 P&!i-b7`An2)|~$asL~%a literal 0 HcmV?d00001 diff --git a/modules/home/hyprland/conf/wlogout/icons/suspend_dark.png b/modules/home/hyprland/conf/wlogout/icons/suspend_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..e307b6e6fd3e5b544f0a6ac15df53e07b19db7a8 GIT binary patch literal 16347 zcmeIYc{tQ<7dZZz#WJ#lWJ|;h*~d19Y$Y<*8oLT(%|6+cWu`gunp^*xJX0{G$zpzyKHs zjsZVhV0#~D|04il`2D;CwgvxcCxh+df8p#iRDeJMHt?AVeiXs>A@ErMemr9TFSCQ{r%iLyj=kxG&3Se)1c|>p&MrBb92kFHfP@)(+w&Wk^21H z^7yG6XQj($9G7~uFZCqmRAX6QGB8CQE@YSMdZk{?a*fV$v+(x4C%2PB9q^Ypzg+Lw z#x6W;idcv2x~1g1y~jTCOijX}Zd{18WPU9g4JkO@$fdNZcFwpdAY!zsb-fn;e(Cl4 zRGbvUJ%|=LH1&IoUfoHJdXMj!>$jYXWF+5Ay>Vt#G5Ga1XmC=s3l+Pgq2%VGwERZF z>G8*Af8Mgv$6RKdtvr@b!=t)fZ!8~nuds8U)7m^B#^B?6|A$4B0fE!#;4vM2As!3D zv6Hp>akp3>N@)JlO>jV_8NX!VQ#*Y2I!oKn>wAAJ3_fUXL#Rqp;8z^Hx1Hh4^UxPD zK2gHM!9U>48Zc|SRtGPrQg)82y4^44>0w5>mnR<7FeWZJR&B z{OEK8L!;OH$j}rv0w`53Twx;;neU_?zdHJ5^znSn&ec5424U7+|413HE*{VaLp>~P z0⪻)t&u(40UFw&M1r%IYoLgetGkD9cxiV50; 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.useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.eno1.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/profiles/gaea/networking.nix b/profiles/gaea/networking.nix new file mode 100644 index 0000000..8346d09 --- /dev/null +++ b/profiles/gaea/networking.nix @@ -0,0 +1,42 @@ +{ config, pkgs, hostname, ... }: { + networking = { + hostId = "5def12be"; + hostName = "${hostname}"; + + wireless.enable = false; # Enables wireless support via wpa_supplicant. + + # Configure network proxy if necessary + # proxy.default = "http://user:password@proxy:port/"; + # proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + + networkmanager = { + enable = true; + }; + + enableIPv6 = true; + + # Set up bridge network + interfaces.eno1 = { + useDHCP = false; + }; + + bridges = { + br0 = { interfaces = [ "eno1" ]; }; + }; + + interfaces.br0 = { + useDHCP = false; + ipv4.addresses = [ + { + address = "10.7.43.20"; + prefixLength = 32; + } + ]; + }; + defaultGateway = { + address = "10.7.43.1"; + interface = "br0"; + }; + nameservers = [ "119.29.29.29" "223.5.5.5" ]; + }; +} diff --git a/profiles/luna/default.nix b/profiles/luna/default.nix new file mode 100644 index 0000000..b0b19ed --- /dev/null +++ b/profiles/luna/default.nix @@ -0,0 +1,144 @@ +{ inputs, outputs, lib, pkgs, config, self, username, useremail, hostname, ... }: +let + inherit (inputs) home-manager hyprland; +in +{ + # You can import other NixOS modules here + imports = [ + # If you want to use modules your own flake exports (from modules/nixos): + # outputs.nixosModules.example + + # Or modules from other flakes (such as nixos-hardware): + # inputs.hardware.nixosModules.common-cpu-amd + # inputs.hardware.nixosModules.common-ssd + + # You can also split up your configuration and import pieces of it here: + # ./users.nix + + # Import your generated (nixos-generate-config) hardware configuration + ./hardware-configuration.nix + "${self}/modules/nixos/core.nix" + "${self}/modules/nixos/user-group.nix" + + home-manager.nixosModules.home-manager + { + # home-manager.useGlobalPkgs = true; + # home-manager.useUserPackages = true; + home-manager.extraSpecialArgs = { + inherit inputs outputs hostname username hyprland; + }; + home-manager.users."${username}" = import ../../home/desktop.nix; + } + ]; + + boot.loader = { + efi = { + canTouchEfiVariables = true; + efiSysMountPoint = "/boot"; + }; + + grub = { + enable = true; + efiSupport = true; + device = "nodev"; + }; + }; + + # FIXME: Add the rest of your current configuration + + # TODO: Set your hostname + networking = { + hostName = "${hostname}"; + + wireless.enable = false; # Enables wireless support via wpa_supplicant. + + # Configure network proxy if necessary + # proxy.default = "http://user:password@proxy:port/"; + # proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + + networkmanager.enable = true; + + enableIPv6 = false; # disable ipv6 + interfaces.enp0s3 = { + useDHCP = false; + ipv4.addresses = [ + { + address = "10.7.45.130"; + prefixLength = 32; + } + ]; + }; + defaultGateway = "10.7.45.1"; + nameservers = [ + "119.29.29.29" # DNSPod + "223.5.5.5" # AliDNS + ]; + }; + + users.users."${username}".packages = with pkgs; [ + vim + ]; + + + # This setups a SSH server. Very important if you're setting up a headless system. + # Feel free to remove if you don't need it. + services.openssh = { + enable = true; + # Forbid root login through SSH. + # Use keys only. Remove if you want to SSH using password (not recommended) + settings = { + # permitRootLogin = "no"; + # passwordAuthentication = false; + }; + }; + + + # networking.firewall.allowedTCPPorts = [ ... ]; + # networking.firewall.allowedUDPPorts = [ ... ]; + # Or disable the firewall altogether. + # networking.firewall.enable = lib.mkDefault false; + + nix = { + # This will add each flake input as a registry + # To make nix3 commands consistent with your flake + registry = lib.mapAttrs (_: value: { flake = value; }) inputs; + + # This will additionally add your inputs to the system's legacy channels + # Making legacy nix commands consistent as well, awesome! + nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry; + + settings = { + # Enable flakes and new 'nix' command + experimental-features = "nix-command flakes"; + # Deduplicate and optimize nix store + auto-optimise-store = true; + }; + }; + nixpkgs = { + # You can add overlays here + overlays = [ + # Add overlays your own flake exports (from overlays and pkgs dir): + outputs.overlays.additions + outputs.overlays.modifications + outputs.overlays.unstable-packages + + # You can also add overlays exported from other flakes: + # neovim-nightly-overlay.overlays.default + + # Or define it inline, for example: + # (final: prev: { + # hi = final.hello.overrideAttrs (oldAttrs: { + # patches = [ ./change-hello-to-hi.patch ]; + # }); + # }) + ]; + # Configure your nixpkgs instance + config = { + # Disable if you don't want unfree packages + allowUnfree = true; + }; + }; + + # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion + system.stateVersion = "23.05"; +} diff --git a/profiles/luna/hardware-configuration.nix b/profiles/luna/hardware-configuration.nix new file mode 100644 index 0000000..3f34a3a --- /dev/null +++ b/profiles/luna/hardware-configuration.nix @@ -0,0 +1,35 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = [ ]; + + boot.initrd.availableKernelModules = [ "ata_piix" "ohci_pci" "ehci_pci" "ahci" "sd_mod" "sr_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/f8c5e9ad-010f-4201-9465-7486c5ffbaaa"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/FEB9-6991"; + fsType = "vfat"; + }; + + swapDevices = [ ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp0s3.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + virtualisation.virtualbox.guest.enable = true; +}