From 342930deae1d0783f55ffd7c28a1a3a8cb6fd99d Mon Sep 17 00:00:00 2001 From: kokopi Date: Fri, 5 Dec 2025 00:07:26 +0900 Subject: [PATCH] add:wip mango --- hyprland/hypr/hyprland.conf | 2 +- mango/btop/btop.conf | 257 ++++++++++++++++++ mango/btop/themes/catppuccin_mocha.theme | 83 ++++++ mango/fastfetch/config.jsonc | 76 ++++++ mango/local-bin/brightness.py | 77 ++++++ mango/local-bin/init-lockscreen | 6 + mango/local-bin/init-screen-scale | 2 + mango/local-bin/run-lockscreen.sh | 2 + mango/local-bin/run-wlsunset.sh | 163 +++++++++++ mango/local-bin/sc.sh | 2 + mango/local-bin/ss.sh | 2 + mango/mango/config.conf | 202 ++------------ mango/mango/env.conf | 18 ++ mango/mango/exec.conf | 4 + mango/mango/keybindings.conf | 133 +++++++++ mango/mango/rules.conf | 34 +++ mango/mangoinstall | 19 +- mango/rofi/app-manager/app-manager.rasi | 154 +++++++++++ mango/rofi/app-manager/rofi-app-manager.sh | 19 ++ mango/rofi/config-manager/config-manager.rasi | 129 +++++++++ .../config-manager/rofi-config-manager.sh | 63 +++++ mango/rofi/help-manager/help-manager.rasi | 152 +++++++++++ mango/rofi/help-manager/neovim-keybinds.txt | 29 ++ mango/rofi/help-manager/rofi-help-manager.sh | 42 +++ mango/rofi/help-manager/system-keybinds.txt | 22 ++ mango/rofi/power-manager/power-manager.rasi | 116 ++++++++ .../rofi/power-manager/rofi-power-manager.sh | 23 ++ .../settings-manager/rofi-settings-manager.sh | 35 +++ .../settings-manager/settings-manager.rasi | 129 +++++++++ mango/rofi/setup.sh | 5 + mango/rofi/theme.rasi | 16 ++ mango/update.sh | 3 + mango/waybar/config.jsonc | 1 + mango/waybar/style.css | 2 +- mango/waypaper/config.ini | 2 +- 35 files changed, 1836 insertions(+), 188 deletions(-) create mode 100644 mango/btop/btop.conf create mode 100644 mango/btop/themes/catppuccin_mocha.theme create mode 100644 mango/fastfetch/config.jsonc create mode 100755 mango/local-bin/brightness.py create mode 100755 mango/local-bin/init-lockscreen create mode 100755 mango/local-bin/init-screen-scale create mode 100755 mango/local-bin/run-lockscreen.sh create mode 100755 mango/local-bin/run-wlsunset.sh create mode 100755 mango/local-bin/sc.sh create mode 100755 mango/local-bin/ss.sh create mode 100644 mango/mango/env.conf create mode 100644 mango/mango/exec.conf create mode 100644 mango/mango/keybindings.conf create mode 100644 mango/mango/rules.conf create mode 100644 mango/rofi/app-manager/app-manager.rasi create mode 100755 mango/rofi/app-manager/rofi-app-manager.sh create mode 100644 mango/rofi/config-manager/config-manager.rasi create mode 100755 mango/rofi/config-manager/rofi-config-manager.sh create mode 100644 mango/rofi/help-manager/help-manager.rasi create mode 100644 mango/rofi/help-manager/neovim-keybinds.txt create mode 100755 mango/rofi/help-manager/rofi-help-manager.sh create mode 100644 mango/rofi/help-manager/system-keybinds.txt create mode 100644 mango/rofi/power-manager/power-manager.rasi create mode 100755 mango/rofi/power-manager/rofi-power-manager.sh create mode 100755 mango/rofi/settings-manager/rofi-settings-manager.sh create mode 100644 mango/rofi/settings-manager/settings-manager.rasi create mode 100644 mango/rofi/setup.sh create mode 100644 mango/rofi/theme.rasi diff --git a/hyprland/hypr/hyprland.conf b/hyprland/hypr/hyprland.conf index 5a472ee..269e064 100644 --- a/hyprland/hypr/hyprland.conf +++ b/hyprland/hypr/hyprland.conf @@ -71,7 +71,7 @@ exec-once = gsettings set org.gnome.desktop.interface font-name 'Geist 11' exec-once = ~/.config/hypr/reload-monitors.sh # contains waybar -exec-once = ~/.config/wlsunset/run-wlsunset.sh init +exec-once = ~/.config/wlsunset/run-wlsunset.sh init & exec-once = ~/.config/waybar/scripts/fcitx5-monitor.sh & # so far, for bazecor diff --git a/mango/btop/btop.conf b/mango/btop/btop.conf new file mode 100644 index 0000000..7b6c9e5 --- /dev/null +++ b/mango/btop/btop.conf @@ -0,0 +1,257 @@ +#? Config file for btop v. 1.4.5 + +#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. +#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" +color_theme = "catppuccin_mocha" + +#* If the theme set background should be shown, set to False if you want terminal background transparency. +theme_background = True + +#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false. +truecolor = True + +#* Set to true to force tty mode regardless if a real tty has been detected or not. +#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols. +force_tty = False + +#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets. +#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box. +#* Use whitespace " " as separator between different presets. +#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty" +presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty" + +#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists. +#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift. +vim_keys = False + +#* Rounded corners on boxes, is ignored if TTY mode is ON. +rounded_corners = True + +#* Default symbols to use for graph creation, "braille", "block" or "tty". +#* "braille" offers the highest resolution but might not be included in all fonts. +#* "block" has half the resolution of braille but uses more common characters. +#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY. +#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view. +graph_symbol = "braille" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_cpu = "default" + +# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty". +graph_symbol_gpu = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_mem = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_net = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_proc = "default" + +#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace. +shown_boxes = "cpu mem net proc" + +#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. +update_ms = 2000 + +#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", +#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. +proc_sorting = "memory" + +#* Reverse sorting order, True or False. +proc_reversed = False + +#* Show processes as a tree. +proc_tree = False + +#* Use the cpu graph colors in the process list. +proc_colors = True + +#* Use a darkening gradient in the process list. +proc_gradient = True + +#* If process cpu usage should be of the core it's running on or usage of the total available cpu power. +proc_per_core = False + +#* Show process memory as bytes instead of percent. +proc_mem_bytes = True + +#* Show cpu graph for each process. +proc_cpu_graphs = True + +#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate) +proc_info_smaps = False + +#* Show proc box on left side of screen instead of right. +proc_left = False + +#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). +proc_filter_kernel = False + +#* In tree-view, always accumulate child process resources in the parent process. +proc_aggregate = False + +#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_upper = "Auto" + +#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_lower = "Auto" + +#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off". +show_gpu_info = "Auto" + +#* Toggles if the lower CPU graph should be inverted. +cpu_invert_lower = True + +#* Set to True to completely disable the lower CPU graph. +cpu_single_graph = False + +#* Show cpu box at bottom of screen instead of top. +cpu_bottom = False + +#* Shows the system uptime in the CPU box. +show_uptime = True + +#* Shows the CPU package current power consumption in watts. Requires running `make setcap` or `make setuid` or running with sudo. +show_cpu_watts = True + +#* Show cpu temperature. +check_temp = True + +#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors. +cpu_sensor = "Auto" + +#* Show temperatures for cpu cores also if check_temp is True and sensors has been found. +show_coretemp = True + +#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core. +#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine. +#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries. +#* Example: "4:0 5:1 6:3" +cpu_core_map = "" + +#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine". +temp_scale = "celsius" + +#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024. +base_10_sizes = False + +#* Show CPU frequency. +show_cpu_freq = True + +#* Draw a clock at top of screen, formatting according to strftime, empty string to disable. +#* Special formatting: /host = hostname | /user = username | /uptime = system uptime +clock_format = "%X" + +#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort. +background_update = True + +#* Custom cpu model name, empty string to disable. +custom_cpu_name = "" + +#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ". +#* Only disks matching the filter will be shown. Prepend exclude= to only show disks not matching the filter. Examples: disk_filter="/boot /home/user", disks_filter="exclude=/boot /home/user" +disks_filter = "" + +#* Show graphs instead of meters for memory values. +mem_graphs = True + +#* Show mem box below net box instead of above. +mem_below_net = False + +#* Count ZFS ARC in cached and available memory. +zfs_arc_cached = True + +#* If swap memory should be shown in memory box. +show_swap = True + +#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk. +swap_disk = True + +#* If mem box should be split to also show disks info. +show_disks = True + +#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar. +only_physical = True + +#* Read disks list from /etc/fstab. This also disables only_physical. +use_fstab = True + +#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool) +zfs_hide_datasets = False + +#* Set to true to show available disk space for privileged users. +disk_free_priv = False + +#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view. +show_io_stat = True + +#* Toggles io mode for disks, showing big graphs for disk read/write speeds. +io_mode = False + +#* Set to True to show combined read/write io graphs in io mode. +io_graph_combined = False + +#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ". +#* Example: "/mnt/media:100 /:20 /boot:1". +io_graph_speeds = "" + +#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False. +net_download = 100 + +net_upload = 100 + +#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest. +net_auto = True + +#* Sync the auto scaling for download and upload to whichever currently has the highest scale. +net_sync = True + +#* Starts with the Network Interface specified here. +net_iface = "" + +#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes. +base_10_bitrate = "Auto" + +#* Show battery stats in top right if battery is present. +show_battery = True + +#* Which battery to use if multiple are present. "Auto" for auto detection. +selected_battery = "Auto" + +#* Show power stats of battery next to charge indicator. +show_battery_watts = True + +#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". +#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. +log_level = "WARNING" + +#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards. +nvml_measure_pcie_speeds = True + +#* Measure PCIe throughput on AMD cards, may impact performance on certain cards. +rsmi_measure_pcie_speeds = True + +#* Horizontally mirror the GPU graph. +gpu_mirror_graph = True + +#* Custom gpu0 model name, empty string to disable. +custom_gpu_name0 = "" + +#* Custom gpu1 model name, empty string to disable. +custom_gpu_name1 = "" + +#* Custom gpu2 model name, empty string to disable. +custom_gpu_name2 = "" + +#* Custom gpu3 model name, empty string to disable. +custom_gpu_name3 = "" + +#* Custom gpu4 model name, empty string to disable. +custom_gpu_name4 = "" + +#* Custom gpu5 model name, empty string to disable. +custom_gpu_name5 = "" diff --git a/mango/btop/themes/catppuccin_mocha.theme b/mango/btop/themes/catppuccin_mocha.theme new file mode 100644 index 0000000..93e3797 --- /dev/null +++ b/mango/btop/themes/catppuccin_mocha.theme @@ -0,0 +1,83 @@ +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="" + +# Main text color +theme[main_fg]="#cdd6f4" + +# Title color for boxes +theme[title]="#cdd6f4" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#89b4fa" + +# Background color of selected item in processes box +theme[selected_bg]="#45475a" + +# Foreground color of selected item in processes box +theme[selected_fg]="#89b4fa" + +# Color of inactive/disabled text +theme[inactive_fg]="#7f849c" + +# Color of text appearing on top of graphs, i.e uptime and current network graph scaling +theme[graph_text]="#f5e0dc" + +# Background color of the percentage meters +theme[meter_bg]="#45475a" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#f5e0dc" + +# CPU, Memory, Network, Proc box outline colors +theme[cpu_box]="#cba6f7" #Mauve +theme[mem_box]="#a6e3a1" #Green +theme[net_box]="#eba0ac" #Maroon +theme[proc_box]="#89b4fa" #Blue + +# Box divider line and small boxes line color +theme[div_line]="#6c7086" + +# Temperature graph color (Green -> Yellow -> Red) +theme[temp_start]="#a6e3a1" +theme[temp_mid]="#f9e2af" +theme[temp_end]="#f38ba8" + +# CPU graph colors (Teal -> Lavender) +theme[cpu_start]="#94e2d5" +theme[cpu_mid]="#74c7ec" +theme[cpu_end]="#b4befe" + +# Mem/Disk free meter (Mauve -> Lavender -> Blue) +theme[free_start]="#cba6f7" +theme[free_mid]="#b4befe" +theme[free_end]="#89b4fa" + +# Mem/Disk cached meter (Sapphire -> Lavender) +theme[cached_start]="#74c7ec" +theme[cached_mid]="#89b4fa" +theme[cached_end]="#b4befe" + +# Mem/Disk available meter (Peach -> Red) +theme[available_start]="#fab387" +theme[available_mid]="#eba0ac" +theme[available_end]="#f38ba8" + +# Mem/Disk used meter (Green -> Sky) +theme[used_start]="#a6e3a1" +theme[used_mid]="#94e2d5" +theme[used_end]="#89dceb" + +# Download graph colors (Peach -> Red) +theme[download_start]="#fab387" +theme[download_mid]="#eba0ac" +theme[download_end]="#f38ba8" + +# Upload graph colors (Green -> Sky) +theme[upload_start]="#a6e3a1" +theme[upload_mid]="#94e2d5" +theme[upload_end]="#89dceb" + +# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve) +theme[process_start]="#74c7ec" +theme[process_mid]="#b4befe" +theme[process_end]="#cba6f7" diff --git a/mango/fastfetch/config.jsonc b/mango/fastfetch/config.jsonc new file mode 100644 index 0000000..3199bd4 --- /dev/null +++ b/mango/fastfetch/config.jsonc @@ -0,0 +1,76 @@ +{ + "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", + "logo": { + "source": "~/.config/rofi/images/oc/oc-nobg.png", + "type": "kitty-direct", + "width": 28, + "padding": { + "top": 1, + "left": 2, + "right": 2 + } + }, + "display": { + "separator": " " + }, + "modules": [ + { + "key": "╭───────────╮", + "type": "custom" + }, + { + "key": "│ {#31} profile {#keys}│", + "type": "title" + }, + { + "key": "│ {#34}{icon} distro {#keys}│", + "type": "os" + }, + { + "key": "│ {#33}󰅐 uptime {#keys}│", + "type": "uptime" + }, + { + "key": "│ {#39} pkgs {#keys}│", + "type": "packages" + }, + { + "key": "│ {#35} kernel {#keys}│", + "type": "kernel" + }, + { + "key": "│ {#36}󰇄 wm {#keys}│", + "type": "wm" + }, + { + "key": "│ {#31} term {#keys}│", + "type": "terminal" + }, + { + "key": "│ {#32} shell {#keys}│", + "type": "shell" + }, + { + "key": "│ {#33}󰍛 cpu {#keys}│", + "type": "cpu", + "showPeCoreCount": true + }, + { + "key": "│ {#35} memory {#keys}│", + "type": "memory" + }, + { + "key": "├───────────┤", + "type": "custom" + }, + { + "key": "│ {#39} colors {#keys}│", + "type": "colors", + "symbol": "circle" + }, + { + "key": "╰───────────╯", + "type": "custom" + } + ] +} diff --git a/mango/local-bin/brightness.py b/mango/local-bin/brightness.py new file mode 100755 index 0000000..821c99d --- /dev/null +++ b/mango/local-bin/brightness.py @@ -0,0 +1,77 @@ +#!/usr/bin/env python3 +from pathlib import Path +import sys + + +class AMDVideo: + _brightness_filepath: Path = Path("/sys/class/backlight/amdgpu_bl1/brightness") + _max_brightness_filepath: Path = Path("/sys/class/backlight/amdgpu_bl1/max_brightness") + + brightness: int|None + max_brightness: int|None + + def __init__(self): + self.brightness = self._get_file_int_value(self._brightness_filepath) + self.max_brightness = self._get_file_int_value(self._max_brightness_filepath) + + def _get_file_int_value(self, filepath: Path) -> int: + with filepath.open("r", encoding="utf-8") as f: + return int(f.read().strip()) + + def _update_file_value(self, filepath: Path, value) -> None: + with filepath.open("w+") as f: + f.write(str(value)) + + def increase_brightness(self, inc_by: int|None = None): + if not self.max_brightness: + print(f"error: max_brightness file not found {self._max_brightness_filepath}") + return + if not self.brightness: + print(f"error: brightness file not found {self._brightness_filepath}") + return + + if not inc_by: + inc_by = int(self.max_brightness / 15) + + new_val = self.brightness + inc_by + if new_val > self.max_brightness: + new_val = self.max_brightness + + self._update_file_value(self._brightness_filepath, new_val) + + def decrease_brightness(self, dec_by: int|None = None): + if not self.max_brightness: + return + if not self.brightness: + return + + if not dec_by: + dec_by = int(self.max_brightness / 15) + + new_val = self.brightness - dec_by + lowest_brightness = int(self.max_brightness * 0.05) + if new_val < lowest_brightness: + new_val = lowest_brightness + + self._update_file_value(self._brightness_filepath, new_val) + + def print_status(self): + brightness = self._get_file_int_value(self._brightness_filepath) + print(f"brightness: {brightness}") + +if __name__ == "__main__": + if len(sys.argv) != 2: + print("need argument +/-") + exit(1) + a = AMDVideo() + if sys.argv[1] == "+": + a.increase_brightness() + if sys.argv[1] == "-": + a.decrease_brightness() + if sys.argv[1] == "status": + a.print_status() + +# +# command = "" +# +# result = subprocess.run(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) diff --git a/mango/local-bin/init-lockscreen b/mango/local-bin/init-lockscreen new file mode 100755 index 0000000..7b58e70 --- /dev/null +++ b/mango/local-bin/init-lockscreen @@ -0,0 +1,6 @@ +#!/bin/bash +killall swayidle +sleep 0.1 +swayidle -w \ + before-sleep 'swaylock -i ~/pictures/flower.jpg --effect-blur 7x5 --effect-vignette 0.5:0.5 --clock --indicator --ring-color E8D4A0FF --key-hl-color F4A261FF --bs-hl-color EE9B00FF --inside-color 00000088 --text-color FFFFFFFF --line-color 00000000 --separator-color 00000000' \ + lock 'swaylock -i ~/pictures/flower.jpg --effect-blur 7x5 --effect-vignette 0.5:0.5 --clock --indicator --ring-color E8D4A0FF --key-hl-color F4A261FF --bs-hl-color EE9B00FF --inside-color 00000088 --text-color FFFFFFFF --line-color 00000000 --separator-color 00000000' & diff --git a/mango/local-bin/init-screen-scale b/mango/local-bin/init-screen-scale new file mode 100755 index 0000000..060bcd0 --- /dev/null +++ b/mango/local-bin/init-screen-scale @@ -0,0 +1,2 @@ +#!/bin/bash +wlr-randr --output eDP-1 --scale 1.25 diff --git a/mango/local-bin/run-lockscreen.sh b/mango/local-bin/run-lockscreen.sh new file mode 100755 index 0000000..e576750 --- /dev/null +++ b/mango/local-bin/run-lockscreen.sh @@ -0,0 +1,2 @@ +#!/bin/bash +swaylock -i ~/pictures/flower.jpg --effect-blur 7x5 --effect-vignette 0.5:0.5 --clock --indicator --ring-color E8D4A0FF --key-hl-color F4A261FF --bs-hl-color EE9B00FF --inside-color 00000088 --text-color FFFFFFFF --line-color 00000000 --separator-color 00000000 diff --git a/mango/local-bin/run-wlsunset.sh b/mango/local-bin/run-wlsunset.sh new file mode 100755 index 0000000..736f76e --- /dev/null +++ b/mango/local-bin/run-wlsunset.sh @@ -0,0 +1,163 @@ +#!/bin/bash +if ! command -v gum &> /dev/null; then + echo "❌ Error: 'gum' is not installed." + echo "Install with: go install github.com/charmbracelet/gum@latest" + exit 1 +fi + +if ! command -v wlsunset &> /dev/null; then + echo "❌ Error: 'wlsunset' is not installed." + echo "Install with your package manager (e.g., pacman -S wlsunset)" + exit 1 +fi + +LAT_LON_FILE="$HOME/.config/wlsunset/location" + +PRIMARY="#cba6f7" +SECONDARY="#89b4fa" +SUCCESS="#a6e3a1" +WARNING="#f9e2af" +DANGER="#f38ba8" +ACCENT="#f5c2e7" +MUTED="#6c7086" + +BTN_TOGGLE=" ╭─────────────────────────────╮ + │ Toggle │ + ╰─────────────────────────────╯" +BTN_FORCE=" ╭─────────────────────────────╮ + │ Force On │ + ╰─────────────────────────────╯" +BTN_CHANGE_LOC=" ╭─────────────────────────────╮ + │ Change Location │ + ╰─────────────────────────────╯" +BTN_CHANGE_STR=" ╭─────────────────────────────╮ + │ Change Strength │ + ╰─────────────────────────────╯" +BTN_EXIT=" ╭─────────────────────────────╮ + │ Exit │ + ╰─────────────────────────────╯" + +show_header() { + TERM_WIDTH=$(tput cols) + total_width=$((TERM_WIDTH - 2)) + # Main title box + gum style \ + --foreground "$ACCENT" \ + --border-foreground "$ACCENT" \ + --border "rounded" \ + --width $total_width \ + --align "center" \ + --padding "2 0" \ + "🌅 NIGHT LIGHT 🌙" + + echo "" + + if pidof wlsunset > /dev/null; then + status=" ACTIVE" + foreground_color=$SUCCESS + else + status=" INACTIVE" + foreground_color=$MUTED + fi + gum join --horizontal \ + "$(gum style --width $total_width --align "center" --foreground "$foreground_color" --padding "0 2" --margin "0 1" "$status")" \ + + echo "" +} + +get_status() { + if pidof wlsunset > /dev/null; then + echo " ACTIVE" + else + echo " INACTIVE" + fi +} + +show_menu() { + term_width=$(tput cols) + button_width=33 + padding=$(( (term_width - button_width) / 2 )) + pad_str=$(printf "%*s" $padding "") + + # Pad each button using sed to add padding to every line + padded_buttons=() + for btn in "$BTN_TOGGLE" "$BTN_FORCE" "$BTN_CHANGE_LOC" "$BTN_CHANGE_STR" "$BTN_EXIT"; do + padded_btn=$(echo "$btn" | sed "s/^/$pad_str/") + padded_buttons+=("$padded_btn") + done + + choice=$(gum choose \ + --header "" \ + --cursor " " \ + --cursor.foreground "$PRIMARY" \ + --selected.foreground "$SUCCESS" \ + --item.foreground "$SECONDARY" \ + "${padded_buttons[@]}") + + echo "$choice" +} + +if [ -f "$LAT_LON_FILE" ]; then + source "$LAT_LON_FILE" +else + location=$(curl -s "https://ipinfo.io/loc") + if [ ! -z "$location" ]; then + LAT=$(echo "$location" | cut -d',' -f1) + LON=$(echo "$location" | cut -d',' -f2) + else + # random default in LA + LAT=34.0522 + LON=-118.2437 + fi + echo -e "LAT=$LAT\nLON=$LON\nSTRENGTH=4750" > "$LAT_LON_FILE" +fi + +expand_terminal() { + # launching via rofi doesnt expand terminal at start + gum style --width 120 " " > /dev/null 2>&1 || true + gum style --width 120 --foreground "#00000000" " " + printf "\033[1A\033[K" # Move up and clear line +} + +case "$1" in + "init") + # turn on + wlsunset -l $LAT -L $LON -t $STRENGTH + ;; + *) + expand_terminal + show_header + choice=$(show_menu) + case "$choice" in + *"Toggle"*) + if pidof wlsunset > /dev/null; then + if killall wlsunset; then + gum style --foreground "$MUTED" "Disabled night light" + notify-send "wlsunset" " Disabled night light" + else + notify-send "wlsunset" " Failed to disable night light" + fi + else + setsid wlsunset -l "$LAT" -L "$LON" -t $STRENGTH & disown + gum style --foreground "$SUCCESS" "Enabled night light" + notify-send "wlsunset" " Enabled night light" + fi + exit 0 + ;; + *"Force"*) + setsid wlsunset -s 00:00 -S 23:59 -t $STRENGTH & disown + notify-send "wlsunset" " Force enabled night light" + exit 0 + ;; + *"Exit"*) + clear + gum style --foreground "$MUTED" --align "center" "👋 Goodbye!" + exit 0 + ;; + *) + echo " choice not found" + exit 0 + ;; + esac + ;; +esac diff --git a/mango/local-bin/sc.sh b/mango/local-bin/sc.sh new file mode 100755 index 0000000..fdc0106 --- /dev/null +++ b/mango/local-bin/sc.sh @@ -0,0 +1,2 @@ +#!/bin/bash +if pgrep -x wl-screenrec > /dev/null; then pkill -INT wl-screenrec && notify-send "🎥 Recording Stopped" "Saved to ~/videos"; else GEOMETRY=$(slurp); if [ -n "$GEOMETRY" ]; then notify-send "🎥 Recording Started" "Press Super+Alt+v to stop" && wl-screenrec -g "$GEOMETRY" -f ~/videos/recording-$(date +"%Y-%m-%d_%H-%M-%S").mp4 & fi; fi diff --git a/mango/local-bin/ss.sh b/mango/local-bin/ss.sh new file mode 100755 index 0000000..edd6dfa --- /dev/null +++ b/mango/local-bin/ss.sh @@ -0,0 +1,2 @@ +#!/bin/bash +grim -g "$(slurp)" - | satty --filename - --output-filename ~/pictures/$(date +"%Y-%m-%d_%H-%M-%S").png --early-exit --copy-command wl-copy diff --git a/mango/mango/config.conf b/mango/mango/config.conf index 901ef1c..9803021 100644 --- a/mango/mango/config.conf +++ b/mango/mango/config.conf @@ -1,33 +1,5 @@ # More option see https://github.com/DreamMaoMao/mango/wiki/ -# misc env -env=XCURSOR_SIZE,24 -env=GTK_THEME,tokyonight-dark -env=QT_STYLE_OVERRIDE,gtk3 - -# fcitx5 im -env=GTK_IM_MODULE,fcitx -env=QT_IM_MODULE,fcitx -env=XMODIFIERS,@im=fcitx -env=INPUT_METHOD,fcitx -env=SDL_IM_MODULE,fcitx -env=GLFW_IM_MODULE,fcitx - -# scale factor about qt (herr is 1.4) -env=QT_QPA_PLATFORMTHEME,gtk3 -env=QT_AUTO_SCREEN_SCALE_FACTOR,1.25 -env=QT_QPA_PLATFORM,Wayland;xcb -env=QT_WAYLAND_FORCE_DPI,140 - -# Window effect -blur_optimized=1 -blur_params_num_passes = 2 -blur_params_radius = 5 -blur_params_noise = 0.02 -blur_params_brightness = 0.9 -blur_params_contrast = 0.9 -blur_params_saturation = 1.2 - shadows = 0 layer_shadows = 0 shadow_only_floating = 1 @@ -52,13 +24,13 @@ animation_fade_in=1 animation_fade_out=1 tag_animation_direction=1 zoom_initial_ratio=0.3 -zoom_end_ratio=0.8 +zoom_end_ratio=0.6 fadein_begin_opacity=0.5 fadeout_begin_opacity=0.8 animation_duration_move=200 animation_duration_open=300 animation_duration_tag=350 -animation_duration_close=400 +animation_duration_close=300 animation_duration_focus=0 animation_curve_open=0.46,1.0,0.29,1 animation_curve_move=0.46,1.0,0.29,1 @@ -144,165 +116,27 @@ scratchpadcolor=0x516c93ff globalcolor=0xb153a7ff overlaycolor=0x14a57cff -# layout support: -# tile,scroller,grid,deck,monocle,center_tile,vertical_tile,vertical_scroller -tagrule=id:1,layout_name:tile -tagrule=id:2,layout_name:tile -tagrule=id:3,layout_name:tile -tagrule=id:4,layout_name:tile -tagrule=id:5,layout_name:tile -tagrule=id:6,layout_name:tile -tagrule=id:7,layout_name:tile -tagrule=id:8,layout_name:tile -tagrule=id:9,layout_name:tile -# Key Bindings -# key name refer to `xev` or `wev` command output, -# mod keys name: super,ctrl,alt,shift,none +# blur settings -# reload config -bind=SUPER,r,reload_config +blur_params_num_passes = 2 +blur_params_radius = 5 +blur_params_noise = 0.02 +blur_params_brightness = 0.9 +blur_params_contrast = 0.9 +blur_params_saturation = 1.2 -# utility -bind=SUPER+alt,p,spawn,ss-region -bind=SUPER,Return,spawn,ghostty -bind=SUPER,e,spawn,thunar -bind=none,XF86AudioRaiseVolume,spawn,wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ -bind=none,XF86AudioLowerVolume,spawn,wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- -bind=none,XF86AudioMute,spawn,wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle -bind=none,XF86AudioMicMute,spawn,wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle -bind=none,XF86MonBrightnessUp,spawn,python ~/.config/mango/brightness.py + -bind=none,XF86MonBrightnessDown,spawn,python ~/.config/mango/brightness.py - - -# rofi -bind=SUPER+SHIFT,p,spawn,rofi-power-manager.sh -bind=SUPER,d,spawn,rofi-app-manager.sh - -# exit -bind=SUPER,m,quit -bind=SUPER+SHIFT,q,killclient, - -# misc - -# switch window focus -# bind=SUPER,Tab,focusstack,next -bind=ALT,Left,focusdir,left -bind=ALT,Right,focusdir,right -bind=ALT,Up,focusdir,up -bind=ALT,Down,focusdir,down - -# swap window -bind=SUPER+SHIFT,Up,exchange_client,up -bind=SUPER+SHIFT,Down,exchange_client,down -bind=SUPER+SHIFT,Left,exchange_client,left -bind=SUPER+SHIFT,Right,exchange_client,right - -# switch window status -bind=SUPER,g,toggleglobal, -bind=ALT,Tab,toggleoverview, -bind=SUPER,t,togglefloating, -bind=ALT,a,togglemaximizescreen, -bind=ALT,f,togglefullscreen, -bind=ALT+SHIFT,f,togglefakefullscreen, -bind=SUPER,o,toggleoverlay, - -# scratchpad, use super+t to restore it -bind=SUPER,i,minimized, -bind=SUPER+SHIFT,I,restore_minimized -bind=SUPER,s,toggle_scratchpad - -# scroller layout -bind=ALT,e,set_proportion,1.0 -bind=ALT,x,switch_proportion_preset, -# bind=SUPER,s,setlayout,scroller - -# switch layout -bind=SUPER,n,switch_layout -bind=SUPER,comma,setlayout,tile -bind=SUPER,period,setlayout,scroller - -# tag switch -bind=SUPER,Left,viewtoleft,0 -bind=SUPER,Right,viewtoright,0 -bind=CTRL+SUPER,Left,tagtoleft,0 -bind=CTRL+SUPER,Right,tagtoright,0 - -bind=Ctrl,1,view,1,0 -bind=Ctrl,2,view,2,0 -bind=Ctrl,3,view,3,0 -bind=Ctrl,4,view,4,0 -bind=Ctrl,5,view,5,0 -bind=Ctrl,6,view,6,0 -bind=Ctrl,7,view,7,0 -bind=Ctrl,8,view,8,0 -bind=Ctrl,9,view,9,0 - -# tag: move client to the tag and focus it -# tagsilent: move client to the tag and not focus it -# bind=Alt,1,tagsilent,1 -bind=Alt,1,tag,1,0 -bind=Alt,2,tag,2,0 -bind=Alt,3,tag,3,0 -bind=Alt,4,tag,..0 -bind=Alt,5,tag,5,0 -bind=Alt,6,tag,6,0 -bind=Alt,7,tag,7,0 -bind=Alt,8,tag,8,0 -bind=Alt,9,tag,9,0 - -# monitor switch -# bind=alt+shift,Left,focusmon,left -# bind=alt+shift,Right,focusmon,right -bind=ALT+SHIFT,Left,tagmon,left -bind=ALT+SHIFT,Right,tagmon,right - -# gaps -# bind=ALT+SHIFT,X,incgaps,1 -# bind=ALT+SHIFT,Z,incgaps,-1 -# bind=ALT+SHIFT,R,togglegaps - -# movewin -# bind=SUPER+SHIFT,Up,movewin,+0,-50 -# bind=SUPER+SHIFT,Down,movewin,+0,+50 -# bind=SUPER+SHIFT,Left,movewin,-50,+0 -# bind=SUPER+SHIFT,Right,movewin,+50,+0 - -# resizewin -bind=SUPER+ALT,Up,resizewin,+0,-50 -bind=SUPER+ALT,Down,resizewin,+0,+50 -bind=SUPER+ALT,Left,resizewin,-50,+0 -bind=SUPER+ALT,Right,resizewin,+50,+0 - -# Mouse Button Bindings -# NONE mode key only work in ov mode -mousebind=SUPER,btn_left,moveresize,curmove -mousebind=NONE,btn_middle,togglemaximizescreen,0 -mousebind=SUPER,btn_right,moveresize,curresize -mousebind=NONE,btn_left,toggleoverview,1 -mousebind=NONE,btn_right,killclient,0 - -# Axis Bindings -axisbind=SUPER,UP,viewtoleft_have_client -axisbind=SUPER,DOWN,viewtoright_have_client - - -# layer rule -# you can use mmsg -e to get the last open layer name -layerrule=animation_type_open:zoom,layer_name:rofi -layerrule=animation_type_close:zoom,layer_name:rofi -# no blur slurp select layer -layerrule=noblur:1,layer_name:selection -# layerrule=noblur:0,layer_name:rofi +# this cache's the blurred background onto the layer's background +# windows beneath the layer will not show since it's a static background when enabled +blur_optimized=0 blur=1 blur_layer=1 -blur_params_num_passes=3 +blur_params_num_passes=1 +# blur_params_num_passes=3 blur_params_radius=4 -windowrule=blur:1,class:ghostty -# windowrule=blur:1,title:rofi -windowrule=opacity:0.9,class:ghostty - -exec-once=waybar -exec-once=init-screen-scale -exec-once=init-lockscreen +source=~/.config/mango/env.conf +source=~/.config/mango/keybindings.conf +source=~/.config/mango/rules.conf +source=~/.config/mango/exec.conf diff --git a/mango/mango/env.conf b/mango/mango/env.conf new file mode 100644 index 0000000..a3fa66d --- /dev/null +++ b/mango/mango/env.conf @@ -0,0 +1,18 @@ +# misc env +env=XCURSOR_SIZE,24 +env=GTK_THEME,tokyonight-dark +env=QT_STYLE_OVERRIDE,gtk3 + +# fcitx5 im +env=GTK_IM_MODULE,fcitx +env=QT_IM_MODULE,fcitx +env=XMODIFIERS,@im=fcitx +env=INPUT_METHOD,fcitx +env=SDL_IM_MODULE,fcitx +env=GLFW_IM_MODULE,fcitx + +# scale factor about qt (herr is 1.4) +env=QT_QPA_PLATFORMTHEME,gtk3 +env=QT_AUTO_SCREEN_SCALE_FACTOR,1.25 +env=QT_QPA_PLATFORM,Wayland;xcb +env=QT_WAYLAND_FORCE_DPI,140 diff --git a/mango/mango/exec.conf b/mango/mango/exec.conf new file mode 100644 index 0000000..eaf7156 --- /dev/null +++ b/mango/mango/exec.conf @@ -0,0 +1,4 @@ +exec=killall waybar 2>/dev/null || true && waybar & disown +exec-once=run-wlsunset.sh init +exec-once=init-screen-scale +exec-once=init-lockscreen diff --git a/mango/mango/keybindings.conf b/mango/mango/keybindings.conf new file mode 100644 index 0000000..5eab3ac --- /dev/null +++ b/mango/mango/keybindings.conf @@ -0,0 +1,133 @@ +# Key Bindings +# key name refer to `xev` or `wev` command output, +# mod keys name: super,ctrl,alt,shift,none + +# rofi +bind=SUPER+SHIFT,x,spawn,rofi-settings-manager.sh +bind=SUPER+SHIFT,p,spawn,rofi-power-manager.sh +bind=SUPER+SHIFT,h,spawn,rofi-help-manager.sh +bind=SUPER+SHIFT,c,spawn,rofi-config-manager.sh +bind=SUPER,d,spawn,rofi-app-manager.sh + +# reload config +bind=SUPER,r,reload_config + +# utility +bind=SUPER+ALT,p,spawn,ss.sh +bind=SUPER+ALT,v,spawn,sc.sh + +bind=SUPER,Return,spawn,ghostty +bind=SUPER,e,spawn,thunar +bind=none,XF86AudioRaiseVolume,spawn,wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ +bind=none,XF86AudioLowerVolume,spawn,wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- +bind=none,XF86AudioMute,spawn,wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle +bind=none,XF86AudioMicMute,spawn,wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle +bind=none,XF86MonBrightnessUp,spawn,python ~/.local/bin/brightness.py + +bind=none,XF86MonBrightnessDown,spawn,python ~/.local/bin/brightness.py - + +# exit +bind=SUPER,m,quit +bind=SUPER+SHIFT,q,killclient, + +# misc + +# switch window focus +# bind=SUPER,Tab,focusstack,next +bind=SUPER,Left,focusdir,left +bind=SUPER,Right,focusdir,right +bind=SUPER,Up,focusdir,up +bind=SUPER,Down,focusdir,down + +# swap window +bind=SUPER+SHIFT,Up,exchange_client,up +bind=SUPER+SHIFT,Down,exchange_client,down +bind=SUPER+SHIFT,Left,exchange_client,left +bind=SUPER+SHIFT,Right,exchange_client,right + +# switch window status +bind=SUPER,g,toggleglobal, +bind=ALT,Tab,toggleoverview, +bind=SUPER,t,togglefloating, +bind=ALT,a,togglemaximizescreen, +bind=ALT,f,togglefullscreen, +# bind=ALT+SHIFT,f,togglefakefullscreen, +bind=SUPER,o,toggleoverlay, + +# scratchpad, use super+t to restore it +bind=SUPER,i,minimized, +bind=SUPER+SHIFT,I,restore_minimized +bind=SUPER,s,toggle_scratchpad + +# scroller layout +bind=ALT,e,set_proportion,1.0 +bind=ALT,x,switch_proportion_preset, +# bind=SUPER,s,setlayout,scroller + +# switch layout +bind=SUPER,n,switch_layout +bind=SUPER,comma,setlayout,tile +bind=SUPER,period,setlayout,scroller + +# tag switch +bind=ALT,Left,viewtoleft,0 +bind=ALT,Right,viewtoright,0 +bind=CTRL+SUPER,Left,tagtoleft,0 +bind=CTRL+SUPER,Right,tagtoright,0 + +bind=Ctrl,1,view,1,0 +bind=Ctrl,2,view,2,0 +bind=Ctrl,3,view,3,0 +bind=Ctrl,4,view,4,0 +bind=Ctrl,5,view,5,0 +bind=Ctrl,6,view,6,0 +bind=Ctrl,7,view,7,0 +bind=Ctrl,8,view,8,0 +bind=Ctrl,9,view,9,0 + +# tag: move client to the tag and focus it +# tagsilent: move client to the tag and not focus it +# bind=Alt,1,tagsilent,1 +bind=Alt,1,tag,1,0 +bind=Alt,2,tag,2,0 +bind=Alt,3,tag,3,0 +bind=Alt,4,tag,4,0 +bind=Alt,5,tag,5,0 +bind=Alt,6,tag,6,0 +bind=Alt,7,tag,7,0 +bind=Alt,8,tag,8,0 +bind=Alt,9,tag,9,0 + +# monitor switch +# bind=alt+shift,Left,focusmon,left +# bind=alt+shift,Right,focusmon,right +bind=ALT+SHIFT,Left,tagmon,left +bind=ALT+SHIFT,Right,tagmon,right + +# gaps +# bind=ALT+SHIFT,X,incgaps,1 +# bind=ALT+SHIFT,Z,incgaps,-1 +# bind=ALT+SHIFT,R,togglegaps + +# movewin +# bind=SUPER+SHIFT,Up,movewin,+0,-50 +# bind=SUPER+SHIFT,Down,movewin,+0,+50 +# bind=SUPER+SHIFT,Left,movewin,-50,+0 +# bind=SUPER+SHIFT,Right,movewin,+50,+0 + +# resizewin +bind=SUPER+ALT,Up,resizewin,+0,-50 +bind=SUPER+ALT,Down,resizewin,+0,+50 +bind=SUPER+ALT,Left,resizewin,-50,+0 +bind=SUPER+ALT,Right,resizewin,+50,+0 + +# Mouse Button Bindings +# NONE mode key only work in ov mode +mousebind=SUPER,btn_left,moveresize,curmove +# mousebind=NONE,btn_middle,togglemaximizescreen,0 +mousebind=SUPER,btn_right,moveresize,curresize +mousebind=NONE,btn_left,toggleoverview,1 +mousebind=NONE,btn_right,killclient,0 + +# Axis Bindings +axisbind=SUPER,UP,viewtoleft_have_client +axisbind=SUPER,DOWN,viewtoright_have_client diff --git a/mango/mango/rules.conf b/mango/mango/rules.conf new file mode 100644 index 0000000..ea19f7f --- /dev/null +++ b/mango/mango/rules.conf @@ -0,0 +1,34 @@ +# you can use mmsg -g to see all windows opened +# you can use mmsg -e to get the last open layer name +### +# layout support: +# tile,scroller,grid,deck,monocle,center_tile,vertical_tile,vertical_scroller +tagrule=id:1,layout_name:tile +tagrule=id:2,layout_name:tile +tagrule=id:3,layout_name:tile +tagrule=id:4,layout_name:tile +tagrule=id:5,layout_name:tile +tagrule=id:6,layout_name:tile +tagrule=id:7,layout_name:tile +tagrule=id:8,layout_name:tile +tagrule=id:9,layout_name:tile + +# https://github.com/DreamMaoMao/mangowc/wiki#window-effects-configuration +# layer rule +layerrule=animation_type_open:zoom,layer_name:rofi +layerrule=animation_type_close:fade,layer_name:rofi +layerrule=blur_optimized:0,layer_name:rofi + +# no blur slurp select layer +layerrule=noblur:1,layer_name:selection + +# layerrule=noblur:0,layer_name:rofi + +windowrule=isfloating:1,isoverlay:1,appid:mpv + +windowrule=blur:1,unfocused_opacity:1,focused_opacity:0.95,appid:com.mitchellh.ghostty + +windowrule=isoverlay:1,appid:thunar,title:.*Properties.* +windowrule=isoverlay:1,appid:thunar,title:.*Preferences.* +windowrule=isoverlay:1,appid:thunar,title:.*Custom.* +windowrule=isoverlay:1,appid:thunar,title:.*Configure.* diff --git a/mango/mangoinstall b/mango/mangoinstall index 32d3f7f..ad29be7 100644 --- a/mango/mangoinstall +++ b/mango/mangoinstall @@ -1,5 +1,8 @@ # general packages -sudo pacman -S swaybg wl-clipboard wl-clip-persist cliphist slurp grim satty mako neovim firefox ghostty fastfetch xdg-desktop-portal-wlr xdg-desktop-portal-gtk libnotify unzip bat rsync exa ripgrep bash-completion jq otf-font-awesome thunar less fd mpv btop +sudo pacman -S swaybg wl-clipboard wl-clip-persist cliphist slurp grim satty mako neovim firefox ghostty fastfetch xdg-desktop-portal-wlr xdg-desktop-portal-gtk libnotify unzip bat rsync exa ripgrep bash-completion jq otf-font-awesome thunar tumbler less fd mpv btop rofi + +# screenrecording +yay -S wl-screenrec # fix locale # double check /etc/locale.gen for en_US.UTF-8 @@ -100,7 +103,21 @@ yay -S swaylock-effects-git # files -> catppuccin-mocha-alt2 # move to ~/.local/share/icons # gtk-update-icon-cache ~/.local/share/icons/catppuccin-mocha-icons +# +# rofi icons new: +sudo pacman -S python-lxml python-gobject gtk3 +git clone https://github.com/worron/ACYLS.git ~/.icons/ACYLS +# script this later +cd ~/.icons/ACYLS/scalable/apps/ +ln -s ../real_icons/apps/gsd-xrandr.svg network.cycles.wdisplays.svg +ln -s ../real_icons/apps/qvidcap.svg com.obsproject.Studio.svg +ln -s ../real_icons/apps/gnome-settings-accessibility-keyboard.svg fcitx.svg +ln -s ../real_icons/apps/aniwall.svg waypaper.svg +ln -s ../real_icons/apps/file-manager.svg org.xfce.thunar.svg +ln -s ../real_icons/apps/gnome-monitor.svg btop.svg +ln -s ../real_icons/apps/bash.svg com.mitchellh.ghostty.svg +ln -s ../real_icons/apps/preferences-sound.svg org.pulseaudio.pavucontrol.svg # terminal fzf sudo pacman -S fzf diff --git a/mango/rofi/app-manager/app-manager.rasi b/mango/rofi/app-manager/app-manager.rasi new file mode 100644 index 0000000..d813df0 --- /dev/null +++ b/mango/rofi/app-manager/app-manager.rasi @@ -0,0 +1,154 @@ +configuration { + hover-select: true; + me-select-entry: "MousePrimary"; + me-accept-entry: "!MousePrimary"; + font: "Geist 12"; + show-icons: true; + // icon-theme: "catppuccin-mocha"; + icon-theme: "ACYLS"; + display-drun: " "; +} + +@theme "~/.config/rofi/theme.rasi" + +// Main // +window { + height: 465px; + width: 1010px; + transparency: "real"; + fullscreen: false; + enabled: true; + spacing: 0em; + padding: 0em; + background-color: transparent; +} + +mainbox { + enabled: true; + spacing: 0em; + orientation: horizontal; + children: [ "imageBoxOverlay" , "listbox", "rightTab" ]; + background-color: @base-200-opa; + border-color: @primary-opa; + border: 1px; + border-radius: 1em; +} + +rightTab { + background-color: transparent; + background-image: linear-gradient(135deg,#B37ADE26,#d5aed6d9); + expand: false; + width: 3.5em; +} + +imageBoxOverlay { + children: ["imageBox"]; + background-color: rgba(0,0,0,0.9); + margin: 1.4em 0.8em 1.4em 1.4em; + border-radius: 1em; + padding: 0.6em; + background-image: linear-gradient(135deg,#B37ADE,#f3e2a9,#DE7AB9,#7A7FDE); +} +imageBox { + enabled: true; + background-image: url("~/.config/rofi/images/neco/28.jpg", width); + border-radius: 1em; +} +// Lists // +listbox { + spacing: 0em; + padding: 1.4em 0.8em 1.4em 0em; + children: [ "inputbar" , "listview" ]; + background-color: transparent; +} +// Inputs // +inputbar { + enabled: true; + margin: 0.2em 0.8em 0.8em 0.8em; + children: [ "prompt", "entry" ]; + background-color: transparent; + border-radius: 0.5em; +} +prompt { + font: "Geist 14"; + text-color: #E5C38F; + background-color: transparent; + padding: 0.8em 0.5em 0em 0.5em; +} +entry { + font: "Geist 11"; + text-color: #f5e0dcff; + background-color: #1E1B21; + background-image: linear-gradient(135deg,#2E2A33,#1E1B21); + border-radius: 0.5em; + border-color: @secondary; + placeholder: "Search..."; + placeholder-color: #BF9FD875; + border: 1px; + padding: 0.4em 0.2em 0.2em 0.4em; + enabled: true; +} +listview { + enabled: true; + spacing: 0.6em; + padding: 0em 1em; + columns: 1; + lines: 8; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + expand: true; + fixed-height: false; + fixed-columns: true; + cursor: "default"; + background-color: transparent; +} + + +// Elements // +element { + enabled: true; + spacing: 1em; + padding: 0.4em 0.5em 0.4em 1.5em; + cursor: pointer; + background-color: transparent; + text-color: #E6D5E6; +} +element selected.normal { + border-radius: 0.5em; + background-image: linear-gradient(135deg,#d5aed666,#7866C44d,#7A7FDE66); + text-color: @secondary; + border-color: @primary-opa; + border: 1px; +} +element-icon { + size: 1.5em; + 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; + highlight: bold; +} + +// Error message // +error-message { + text-color: #cdd6f4ff; + background-color: #11111be6; + text-transform: capitalize; + children: [ "textbox" ]; +} + +textbox { + text-color: inherit; + background-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} diff --git a/mango/rofi/app-manager/rofi-app-manager.sh b/mango/rofi/app-manager/rofi-app-manager.sh new file mode 100755 index 0000000..a036389 --- /dev/null +++ b/mango/rofi/app-manager/rofi-app-manager.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +THEME_FILE=~/.config/rofi/app-manager/app-manager.rasi + +post_rofi() { + local image_dir="$HOME/.config/rofi/images/neco" + local current_image=$(grep "background-image: url" "$THEME_FILE" | cut -d'"' -f2) + local new_image=$(find "$image_dir" -type f | sort -R | head -n 1 | sed "s|^$HOME|~|") + while true; do + if [[ "$new_image" != "$current_image" ]]; then + sed -i 's|url("[^"]*"|url("'"$new_image"'"|' "$THEME_FILE" + break + fi + new_image=$(find "$image_dir" -type f | sort -R | head -n 1 | sed "s|^$HOME|~|") + done +} + +rofi -show drun -theme ~/.config/rofi/app-manager/app-manager.rasi +post_rofi & diff --git a/mango/rofi/config-manager/config-manager.rasi b/mango/rofi/config-manager/config-manager.rasi new file mode 100644 index 0000000..63c3dbf --- /dev/null +++ b/mango/rofi/config-manager/config-manager.rasi @@ -0,0 +1,129 @@ +configuration { + font: "Geist 12"; + hover-select: true; + me-select-entry: "MousePrimary"; + me-accept-entry: "!MousePrimary"; + click-to-exit: true; +} + +@theme "~/.config/rofi/theme.rasi" + +// Main // +window { + width: 20.3em; + height: 13.5em; + fullscreen: false; + enabled: true; + cursor: "default"; + spacing: 0em; + opacity: 0; + background-color: transparent; +} + +mainbox { + enabled: true; + spacing: 0em; + orientation: vertical; + children: [ "message", "mainContent" ]; + border: 1px; + border-color: @primary-opa; + border-radius: 1em; + background-color: transparent; +} +// decorative text at top +message { + enabled: true; + background-color: @base-200; + text-color: @primary; + border: none; +} +textbox { + padding: 12px 1em 12px 0px; + font: "Octal Light 18"; + letter-spacing: 5px; + horizontal-align: 0.0; + vertical-align: 0.5; +} +mainContent { + orientation: horizontal; + children: [ "listview", "imageBoxOverlay" ]; + background-color: @base-200-opa; + padding: 1em 0 1em 0; +} +imageBoxOverlay { + children: ["imageBox"]; + margin: 0em 1em 0em 0em; + border-radius: 1em; + padding: 0.4em; + background-image: linear-gradient(135deg,#B37ADE,#F59FD5,#7A7FDE); +} +imageBox { + enabled: true; + background-image: url("~/.config/rofi/images/oc/oc-2.png", width); + border-radius: 1em; +} + +// Lists // +listview { + enabled: true; + spacing: 0.6em; + padding: 0em 1em; + columns: 1; + lines: 3; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + expand: true; + fixed-height: true; + fixed-columns: true; + cursor: "default"; + background-color: transparent; +} + +// Elements // +element { + enabled: true; + spacing: 1em; + padding: 0.4em 0.5em 0.4em 1.5em; + cursor: pointer; + background-color: transparent; + text-color: #E6D5E6; +} +element selected.normal { + border-radius: 0.5em; + background-image: linear-gradient(135deg,#d5aed666,#7866C44d,#7A7FDE66); + text-color: @secondary; + border-color: @primary-opa; + border: 1px; +} +element-icon { + size: 1.5em; + 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; + highlight: bold; +} + +// Error message // +error-message { + text-color: #cdd6f4ff; + background-color: #11111be6; + text-transform: capitalize; + children: [ "textbox" ]; +} + +textbox { + text-color: inherit; + background-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} diff --git a/mango/rofi/config-manager/rofi-config-manager.sh b/mango/rofi/config-manager/rofi-config-manager.sh new file mode 100755 index 0000000..007e10a --- /dev/null +++ b/mango/rofi/config-manager/rofi-config-manager.sh @@ -0,0 +1,63 @@ +#!/bin/bash +# ln -s ~/.config/rofi/config-manager/rofi-config-manager.sh ~/.local/bin/rofi-config-manager.sh +THEME_FILE=~/.config/rofi/config-manager/config-manager.rasi + +NVIM=" Neovim" +HYPRLAND=" Hyprland" +WAYBAR=" Waybar" +GHOSTTY=" Ghostty" +ROFI_APP=" Rofi App" +ROFI_SETT=" Rofi Sett" +ROFI_CONF=" Rofi Conf" +ROFI_POW=" Rofi Pow" +HYPRLOCK=" Hyprlock" +HYPRIDLE="󰒲 Hypridle" +HYPRPAPER=" Hyprpaper" +MAKO=" Mako" +chosen=$(echo -e "$NVIM\n$HYPRLAND\n$WAYBAR\n$GHOSTTY\n$ROFI_APP\n$ROFI_SETT\n$ROFI_CONF\n$ROFI_POW\n$HYPRLOCK\n$HYPRIDLE\n$MAKO\n$HYPRPAPER" | rofi -mesg " Configs" -dmenu -p "Action:" -config ~/.config/rofi/config-manager/config-manager.rasi) + +case $chosen in + "$NVIM") + ghostty -e nvim ~/.config/nvim/init.lua & disown + ghostty -e nvim ~/.config/nvim/lua/settings.lua & disown + ;; + "$HYPRLAND") + ghostty -e nvim ~/.config/hypr/hyprland.conf & disown + ;; + "$HYPRLOCK") + ghostty -e nvim ~/.config/hypr/hyprlock.conf & disown + ;; + "$HYPRIDLE") + ghostty -e nvim ~/.config/hypr/hypridle.conf & disown + ;; + "$WAYBAR") + ghostty -e nvim ~/.config/waybar/config.jsonc & disown + ghostty -e nvim ~/.config/waybar/style.css & disown + ;; + "$GHOSTTY") + ghostty -e nvim ~/.config/ghostty/config & disown + ghostty -e nvim ~/.config/ghostty/themes/navarch & disown + ;; + "$MAKO") + ghostty -e nvim ~/.config/mako/config & disown + ;; + "$ROFI_APP") + ghostty -e nvim ~/.config/rofi/app-manager/app-manager.rasi & disown + ghostty -e nvim ~/.config/rofi/app-manager/rofi-app-manager.sh & disown + ;; + "$ROFI_SETT") + ghostty -e nvim ~/.config/rofi/settings-manager/settings-manager.rasi & disown + ghostty -e nvim ~/.config/rofi/settings-manager/rofi-settings-manager.sh & disown + ;; + "$ROFI_CONF") + ghostty -e nvim ~/.config/rofi/config-manager/config-manager.rasi & disown + ghostty -e nvim ~/.config/rofi/config-manager/rofi-config-manager.sh & disown + ;; + "$ROFI_POW") + ghostty -e nvim ~/.config/rofi/power-manager/power-manager.rasi & disown + ghostty -e nvim ~/.config/rofi/power-manager/rofi-power-manager.sh & disown + ;; + "$HYPRPAPER") + ghostty -e nvim ~/.config/hypr/hyprpaper.conf & disown + ;; +esac diff --git a/mango/rofi/help-manager/help-manager.rasi b/mango/rofi/help-manager/help-manager.rasi new file mode 100644 index 0000000..ad7f025 --- /dev/null +++ b/mango/rofi/help-manager/help-manager.rasi @@ -0,0 +1,152 @@ +configuration { + hover-select: true; + font: "Geist 12"; + show-icons: true; + icon-theme: "Papirus"; + display-drun: " "; +} + +@theme "~/.config/rofi/theme.rasi" + +// Main // +window { + height: 498px; + width: 1110px; + transparency: "real"; + fullscreen: false; + enabled: true; + spacing: 0em; + padding: 0em; + background-color: transparent; +} + +mainbox { + enabled: true; + spacing: 0em; + orientation: horizontal; + children: [ "imageBoxOverlay" , "listbox", "rightTab" ]; + background-color: @base-200-opa; + border-color: @primary-opa; + border: 1px; + border-radius: 1em; +} + +rightTab { + background-color: transparent; + background-image: linear-gradient(135deg,#B37ADE26,#d5aed6d9); + expand: false; + width: 3.5em; +} + +imageBoxOverlay { + children: ["imageBox"]; + background-color: rgba(0,0,0,0.9); + margin: 1.4em 0.8em 1.4em 1.4em; + border-radius: 1em; + padding: 0.6em; + background-image: linear-gradient(135deg,#B37ADE,#f3e2a9,#DE7AB9,#7A7FDE); +} +imageBox { + enabled: true; + background-image: url("~/.config/rofi/images/neco/14.jpg", width); + border-radius: 1em; +} +// Lists // +listbox { + spacing: 0em; + padding: 1.4em 0.8em 1.4em 0em; + children: [ "inputbar" , "listview" ]; + background-color: transparent; +} +// Inputs // +inputbar { + enabled: true; + margin: 0.2em 0.8em 0.8em 0.8em; + children: [ "prompt", "entry" ]; + background-color: transparent; + border-radius: 0.5em; +} +prompt { + font: "Geist 14"; + text-color: #E5C38F; + background-color: transparent; + padding: 0.8em 0.5em 0em 0.5em; +} +entry { + font: "Geist 11"; + text-color: #f5e0dcff; + background-color: #1E1B21; + background-image: linear-gradient(135deg,#2E2A33,#1E1B21); + border-radius: 0.5em; + border-color: @secondary; + placeholder: "Search..."; + placeholder-color: #BF9FD875; + border: 1px; + padding: 0.4em 0.2em 0.2em 0.4em; + enabled: true; +} +listview { + enabled: true; + spacing: 0.6em; + padding: 0em 0em; + columns: 1; + lines: 8; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + expand: true; + fixed-height: false; + fixed-columns: true; + cursor: "default"; + background-color: transparent; +} + + +// Elements // +element { + enabled: true; + spacing: 1em; + padding: 0.4em 0.5em 0.4em 0.4em; + cursor: pointer; + background-color: transparent; + text-color: #E6D5E6; +} +element selected.normal { + border-radius: 0.5em; + background-image: linear-gradient(135deg,#d5aed666,#7866C44d,#7A7FDE66); + text-color: @secondary; + border-color: @primary-opa; + border: 1px; +} +element-icon { + size: 0em; + cursor: inherit; + background-color: transparent; + text-color: inherit; +} +element-text { + font: "Geist Mono 10"; + vertical-align: 0.5; + horizontal-align: 0.0; + cursor: inherit; + background-color: transparent; + text-color: inherit; + highlight: bold; +} + +// Error message // +error-message { + text-color: #cdd6f4ff; + background-color: #11111be6; + text-transform: capitalize; + children: [ "textbox" ]; +} + +textbox { + text-color: inherit; + background-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} diff --git a/mango/rofi/help-manager/neovim-keybinds.txt b/mango/rofi/help-manager/neovim-keybinds.txt new file mode 100644 index 0000000..a44461e --- /dev/null +++ b/mango/rofi/help-manager/neovim-keybinds.txt @@ -0,0 +1,29 @@ +Ldr + l → Refresh LSP +Ctl + f → Scroll Up Cmp +Ctl + b → Scroll Down Cmp +]d → Next Diagnostic +[d → Prev Diagnostic +Ldr + s → Search Replace Current +Ldr + S → Search Replace Global +Ldr + F → Format Code +Ldr + x → Clear Diagnostics +Ldr + cc → Comment/Uncomment +Ldr + xx → Toggle/Show Errors/Warnings +Ctrl + f → Find Search File +Ldr + fg → Find Live Grep Search +Ldr + ca → Show Code Actions +K → Peek Signature +gd → Go To Definition +gr → Find References +Ctrl + l → Clear Highlights +Alt + Arrows → Navigate/Switch Panels +Alt + b → Navigate/Jump Back Buf +Alt + n → Navigate/Jump Next Buf +Alt + c → Clear Jumps/Buf +Alt + q → Clear/Quit Current Jump/Buf +Ctrl + Tab → Add File To Tab +Ldr + E → Open Directory/netrw +(netrw) Ldr + ER → Close netrw +(netrw) Ldr + d → Duplicate file +(netrw) Ldr + sw → Set Current Root Dir +Ldr + e{,<,(,",' → Wrap Word With Wrapper diff --git a/mango/rofi/help-manager/rofi-help-manager.sh b/mango/rofi/help-manager/rofi-help-manager.sh new file mode 100755 index 0000000..041e56b --- /dev/null +++ b/mango/rofi/help-manager/rofi-help-manager.sh @@ -0,0 +1,42 @@ +#!/bin/bash +THEME_FILE=~/.config/rofi/help-manager/help-manager.rasi +post_rofi() { + local image_dir="$HOME/.config/rofi/images/neco" + local current_image=$(grep "background-image: url" "$THEME_FILE" | cut -d'"' -f2) + local new_image=$(find "$image_dir" -type f | sort -R | head -n 1 | sed "s|^$HOME|~|") + while true; do + if [[ "$new_image" != "$current_image" ]]; then + sed -i 's|url("[^"]*"|url("'"$new_image"'"|' "$THEME_FILE" + break + fi + new_image=$(find "$image_dir" -type f | sort -R | head -n 1 | sed "s|^$HOME|~|") + done +} + +SYSTEM="󰟀 System" +NVIM=" Neovim" +BASH_HELP=" Bash" +chosen=$(echo -e "$SYSTEM\n$NVIM\n$BASH_HELP" | rofi -mesg " Keybinds" -dmenu -p "Action:" -config ~/.config/rofi/config-manager/config-manager.rasi) + +case $chosen in +"$NVIM") + cat ~/.config/rofi/help-manager/neovim-keybinds.txt | rofi -mesg " Neovim Binds" -dmenu -i -p "󰍉" -config $THEME_FILE \ + -font "Geist Mono 14" \ + -kb-accept-entry "" + ;; +"$SYSTEM") + cat ~/.config/rofi/help-manager/system-keybinds.txt | rofi -mesg " System Binds" -dmenu -i -p "󰍉" -config $THEME_FILE \ + -font "Geist Mono 14" \ + -kb-accept-entry "" + ;; +"$BASH_HELP") + if [ ! -d "/tmp/firefox-dev" ]; then + echo "Creating firefox profile" + mkdir -p /tmp/firefox-dev + firefox -CreateProfile "dev-profile /tmp/firefox-dev" + fi + + firefox -P dev-profile -private-window https://devhints.io/bash & + ;; +esac +post_rofi & diff --git a/mango/rofi/help-manager/system-keybinds.txt b/mango/rofi/help-manager/system-keybinds.txt new file mode 100644 index 0000000..6915dbc --- /dev/null +++ b/mango/rofi/help-manager/system-keybinds.txt @@ -0,0 +1,22 @@ +Super + ALT + p → Copy/Save Screenshot +Super + ALT + v → Screen Region Video Capture +Super + Return → Terminal +Super + e → File Manager +Super + Shft + q → Quit Window +Super + Shft + c → Configs Launcher +Super + Shft + x → Settings Launcher +Super + Shft + p → Power/System Launcher +Super + d → App/Program Launcher +Super + t → Toggle Floating Window +Super + Arrows → Navigate Windows +Super + Shft + Arrows → Move Windows +Super + LMB (Drag) → Move Window +Super + RMB (Drag) → Resize Window +Super + , (comma) → Toggle Tile Mode +Super + . (period) → Toggle Scroller Mode +Ctrl + (0-9) → Navigate To Workspace# +Ctrl + Super + L/R Arr → Move L/R With Focused Window +Alt + (0-9) → Move Window To Workspace# +Alt + a → Toggle Maximize Window +Alt + f → Toggle Fullscreen Window +Alt + tab → Toggle Overview Mode diff --git a/mango/rofi/power-manager/power-manager.rasi b/mango/rofi/power-manager/power-manager.rasi new file mode 100644 index 0000000..f987f74 --- /dev/null +++ b/mango/rofi/power-manager/power-manager.rasi @@ -0,0 +1,116 @@ +configuration { + hover-select: true; + me-select-entry: "MousePrimary"; + me-accept-entry: "!MousePrimary"; + click-to-exit: true; +} + +@theme "~/.config/rofi/theme.rasi" +// Main // +window { + font: "Geist 12"; + width: 15em; + height: 13.75em; + transparency: "real"; + enabled: true; + cursor: "default"; + spacing: 0em; + background-color: transparent; + border-radius: 1em; +} +mainbox { + enabled: true; + spacing: 0em; + orientation: vertical; + children: [ "message", "listview" ]; + background-color: @base-200-opa; + border-radius: 1em; + border-color: @primary-opa; + border: 3px; +} + +// decorative text at top +message { + enabled: true; + background-color: @base-200; + text-color: @primary; + border: none; +} +textbox { + padding: 12px 1em 12px 0px; + font: "Octal Light 20"; + horizontal-align: 0.0; + vertical-align: 0.5; +} + +// Lists // +listview { + enabled: true; + spacing: 0.6em; + padding: 1em; + columns: 1; + lines: 3; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + expand: true; + fixed-height: true; + fixed-columns: true; + cursor: "default"; + background-color: transparent; +} + +// Elements // +element { + enabled: true; + spacing: 1em; + padding: 0.4em 0.5em 0.4em 3.3em; + cursor: pointer; + background-color: transparent; +} + +element.normal.normal, +element.alternate.normal { + background-color: transparent; + text-color: @neutral; +} + +element selected.normal { + border-radius: 0.5em; + // background-color: @primary-opa; + background-image: linear-gradient(135deg,#d5aed666,#7866C44d,#7A7FDE66); + text-color: @secondary; + border-color: @primary-opa; + border: 1px; +} +element-icon { + size: 1.5em; + 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; + highlight: bold; +} + +// Error message // +error-message { + text-color: #cdd6f4ff; + background-color: #11111be6; + text-transform: capitalize; + children: [ "textbox" ]; +} + +textbox { + text-color: inherit; + background-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} diff --git a/mango/rofi/power-manager/rofi-power-manager.sh b/mango/rofi/power-manager/rofi-power-manager.sh new file mode 100755 index 0000000..6cc0a58 --- /dev/null +++ b/mango/rofi/power-manager/rofi-power-manager.sh @@ -0,0 +1,23 @@ +#!/bin/bash +# save as ~/.local/bin/rofi-power-manager.sh + +LOCKSCREEN=" Lock Screen" +SLEEP="󰤄 Sleep" +REBOOT=" Reboot" +SHUTDOWN=" Shutdown" +chosen=$(echo -e "$SLEEP\n$REBOOT\n$SHUTDOWN\n$LOCKSCREEN" | rofi -mesg "󰚥 $HOSTNAME" -dmenu -p "Action:" -config ~/.config/rofi/power-manager/power-manager.rasi) + +case $chosen in + "$SLEEP") + systemctl suspend-then-hibernate + ;; + "$LOCKSCREEN") + run-lockscreen.sh + ;; + "$REBOOT") + systemctl reboot + ;; + "$SHUTDOWN") + systemctl poweroff + ;; +esac diff --git a/mango/rofi/settings-manager/rofi-settings-manager.sh b/mango/rofi/settings-manager/rofi-settings-manager.sh new file mode 100755 index 0000000..fd038be --- /dev/null +++ b/mango/rofi/settings-manager/rofi-settings-manager.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# run init setup.sh to symlink scripts +THEME_FILE=~/.config/rofi/settings-manager/settings-manager.rasi + +MONITOR="󰍹 Monitor" +WALLPAPER=" Wallpaper" +SOUND=" Sound" +BLUETOOTH="󰂯 Bluetooth" +NETWORK="󰲝 Network" +NIGHTLIGHT=" Night Light" + +chosen=$(echo -e "$MONITOR\n$SOUND\n$BLUETOOTH\n$NETWORK\n$NIGHTLIGHT" | rofi -mesg " Settings" -dmenu -p "Action:" -config ~/.config/rofi/settings-manager/settings-manager.rasi -monitor "$ROFI_MONITOR") + +case $chosen in + "$MONITOR") + wdisplays + ;; + "$WALLPAPER") + waypaper + ;; + "$SOUND") + pavucontrol + ;; + "$BLUETOOTH") + blueman-manager + ;; + "$NETWORK") + ghostty -e nmtui + ;; + "$NIGHTLIGHT") + ghostty -e ~/.local/bin/run-wlsunset.sh + ;; +esac + +post_rofi & diff --git a/mango/rofi/settings-manager/settings-manager.rasi b/mango/rofi/settings-manager/settings-manager.rasi new file mode 100644 index 0000000..8994d22 --- /dev/null +++ b/mango/rofi/settings-manager/settings-manager.rasi @@ -0,0 +1,129 @@ +configuration { + font: "Geist 12"; + hover-select: true; + me-select-entry: "MousePrimary"; + me-accept-entry: "!MousePrimary"; + click-to-exit: true; +} + +@theme "~/.config/rofi/theme.rasi" + +// Main // +window { + width: 26em; + height: 15.8em; + fullscreen: false; + enabled: true; + cursor: "default"; + spacing: 0em; + opacity: 0; + background-color: transparent; + extend: false; +} + +mainbox { + enabled: true; + spacing: 0em; + orientation: vertical; + children: [ "message", "mainContent" ]; + border-color: @primary-opa; + border: 1px; + border-radius: 1em; + background-color: transparent; +} +// decorative text at top +message { + enabled: true; + background-color: @base-200; + text-color: @primary; + border: none; +} +textbox { + padding: 12px 1em 12px 0px; + font: "Octal Light 18"; + horizontal-align: 0.0; + vertical-align: 0.5; +} +mainContent { + padding: 1em 0; + orientation: horizontal; + children: [ "listview", "imageBoxOverlay" ]; + background-color: @base-200-opa; +} +imageBoxOverlay { + children: ["imageBox"]; + margin: 0em 1em 0em 0em; + border-radius: 1em; + padding: 0.4em; + background-image: linear-gradient(135deg,#B575E6,#EBD488,#9084E8); +} +imageBox { + enabled: true; + background-image: url("~/.config/rofi/images/oc/oc-1.png", width); + border-radius: 1em; +} + +// Lists // +listview { + enabled: true; + spacing: 0.6em; + padding: 0em 1em; + columns: 1; + lines: 3; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + expand: true; + fixed-height: true; + fixed-columns: true; + cursor: "default"; + background-color: transparent; +} + +// Elements // +element { + enabled: true; + spacing: 1em; + padding: 0.4em 0em 0.4em 2.9em; + cursor: pointer; + background-color: transparent; + text-color: #E6D5E6; +} +element selected.normal { + border-radius: 0.5em; + background-image: linear-gradient(135deg,#d5aed666,#7866C44d,#7A7FDE66); + text-color: @secondary; + border-color: @primary-opa; + border: 1px; +} +element-icon { + size: 1.5em; + 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; + highlight: bold; +} + +// Error message // +error-message { + text-color: #cdd6f4ff; + background-color: #11111be6; + text-transform: capitalize; + children: [ "textbox" ]; +} + +textbox { + text-color: inherit; + background-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} diff --git a/mango/rofi/setup.sh b/mango/rofi/setup.sh new file mode 100644 index 0000000..0e05b95 --- /dev/null +++ b/mango/rofi/setup.sh @@ -0,0 +1,5 @@ +#!/bin/bash +ln -s ~/.config/rofi/app-manager/rofi-app-manager.sh ~/.local/bin/rofi-app-manager.sh +ln -s ~/.config/rofi/settings-manager/rofi-settings-manager.sh ~/.local/bin/rofi-settings-manager.sh +ln -s ~/.config/rofi/power-manager/rofi-power-manager.sh ~/.local/bin/rofi-power-manager.sh +ln -s ~/.config/rofi/help-manager/rofi-help-manager.sh ~/.local/bin/rofi-help-manager.sh diff --git a/mango/rofi/theme.rasi b/mango/rofi/theme.rasi new file mode 100644 index 0000000..489b301 --- /dev/null +++ b/mango/rofi/theme.rasi @@ -0,0 +1,16 @@ +* { + base-300: #000000; + + base-100: #393342; + base-200: #211C2E; + base-200-opa: #3D3445a6; + neutral: #BAB6A9; + neutral-content:#5C543E; + primary: #d5aed6; + primary-opa: #d5aed699; + secondary: #f3e2a9; + accent: #7866C4; + + success: #a3be8c; + error: #C97F87; +} diff --git a/mango/update.sh b/mango/update.sh index b892c08..16a0225 100755 --- a/mango/update.sh +++ b/mango/update.sh @@ -6,11 +6,14 @@ cp -r ~/.config/xdg-desktop-portal/* ./xdg-desktop-portal cp ~/.config/user-dirs.conf . cp ~/.config/starship.toml . cp -r ~/.config/waypaper/* ./waypaper +cp -r ~/.config/fastfetch/* ./fastfetch rsync -av ~/.config/fontconfig/ ./fontconfig +rsync -av ~/.config/btop/ ./btop cp ~/.config/rofi/theme.rasi ./rofi cp ~/.config/rofi/app-manager/* ./rofi/app-manager cp ~/.config/rofi/settings-manager/* ./rofi/settings-manager cp ~/.config/rofi/power-manager/* ./rofi/power-manager +cp ~/.config/rofi/config-manager/* ./rofi/config-manager cp ~/.config/rofi/help-manager/* ./rofi/help-manager cp ~/.config/rofi/setup.sh ./rofi diff --git a/mango/waybar/config.jsonc b/mango/waybar/config.jsonc index 5b48812..70bfaa0 100644 --- a/mango/waybar/config.jsonc +++ b/mango/waybar/config.jsonc @@ -15,6 +15,7 @@ }, "ext/workspaces": { "disable-scroll": true, + "ignore-hidden": true, "all-outputs": false, "on-click": "activate", "format": "{name}" diff --git a/mango/waybar/style.css b/mango/waybar/style.css index d673da6..8de4966 100644 --- a/mango/waybar/style.css +++ b/mango/waybar/style.css @@ -4,7 +4,7 @@ } window#waybar { - background: rgba(33, 28, 46, 0.7); + background: rgba(33, 28, 46, 0.6); color: rgb(205, 214, 244); } window#waybar > box.horizontal:dir(ltr) { diff --git a/mango/waypaper/config.ini b/mango/waypaper/config.ini index 5acf667..132738d 100644 --- a/mango/waypaper/config.ini +++ b/mango/waypaper/config.ini @@ -2,7 +2,7 @@ language = en folder = ~/pictures monitors = All -wallpaper = ~/pictures/flowers-21.png +wallpaper = ~/pictures/flower.jpg show_path_in_tooltip = True backend = swww fill = fill