add:wip mango

This commit is contained in:
2025-12-05 00:07:26 +09:00
parent 1d4e756dd6
commit 342930deae
35 changed files with 1836 additions and 188 deletions

View File

@@ -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/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 & exec-once = ~/.config/waybar/scripts/fcitx5-monitor.sh &
# so far, for bazecor # so far, for bazecor

257
mango/btop/btop.conf Normal file
View File

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

View File

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

View File

@@ -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"
}
]
}

77
mango/local-bin/brightness.py Executable file
View File

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

View File

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

View File

@@ -0,0 +1,2 @@
#!/bin/bash
wlr-randr --output eDP-1 --scale 1.25

View File

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

163
mango/local-bin/run-wlsunset.sh Executable file
View File

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

2
mango/local-bin/sc.sh Executable file
View File

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

2
mango/local-bin/ss.sh Executable file
View File

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

View File

@@ -1,33 +1,5 @@
# More option see https://github.com/DreamMaoMao/mango/wiki/ # 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 shadows = 0
layer_shadows = 0 layer_shadows = 0
shadow_only_floating = 1 shadow_only_floating = 1
@@ -52,13 +24,13 @@ animation_fade_in=1
animation_fade_out=1 animation_fade_out=1
tag_animation_direction=1 tag_animation_direction=1
zoom_initial_ratio=0.3 zoom_initial_ratio=0.3
zoom_end_ratio=0.8 zoom_end_ratio=0.6
fadein_begin_opacity=0.5 fadein_begin_opacity=0.5
fadeout_begin_opacity=0.8 fadeout_begin_opacity=0.8
animation_duration_move=200 animation_duration_move=200
animation_duration_open=300 animation_duration_open=300
animation_duration_tag=350 animation_duration_tag=350
animation_duration_close=400 animation_duration_close=300
animation_duration_focus=0 animation_duration_focus=0
animation_curve_open=0.46,1.0,0.29,1 animation_curve_open=0.46,1.0,0.29,1
animation_curve_move=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 globalcolor=0xb153a7ff
overlaycolor=0x14a57cff 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 # blur settings
# key name refer to `xev` or `wev` command output,
# mod keys name: super,ctrl,alt,shift,none
# reload config blur_params_num_passes = 2
bind=SUPER,r,reload_config 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 # this cache's the blurred background onto the layer's background
bind=SUPER+alt,p,spawn,ss-region # windows beneath the layer will not show since it's a static background when enabled
bind=SUPER,Return,spawn,ghostty blur_optimized=0
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
blur=1 blur=1
blur_layer=1 blur_layer=1
blur_params_num_passes=3 blur_params_num_passes=1
# blur_params_num_passes=3
blur_params_radius=4 blur_params_radius=4
windowrule=blur:1,class:ghostty source=~/.config/mango/env.conf
# windowrule=blur:1,title:rofi source=~/.config/mango/keybindings.conf
windowrule=opacity:0.9,class:ghostty source=~/.config/mango/rules.conf
source=~/.config/mango/exec.conf
exec-once=waybar
exec-once=init-screen-scale
exec-once=init-lockscreen

18
mango/mango/env.conf Normal file
View File

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

4
mango/mango/exec.conf Normal file
View File

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

View File

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

34
mango/mango/rules.conf Normal file
View File

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

View File

@@ -1,5 +1,8 @@
# general packages # 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 # fix locale
# double check /etc/locale.gen for en_US.UTF-8 # double check /etc/locale.gen for en_US.UTF-8
@@ -100,7 +103,21 @@ yay -S swaylock-effects-git
# files -> catppuccin-mocha-alt2 # files -> catppuccin-mocha-alt2
# move to ~/.local/share/icons # move to ~/.local/share/icons
# gtk-update-icon-cache ~/.local/share/icons/catppuccin-mocha-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 # terminal fzf
sudo pacman -S fzf sudo pacman -S fzf

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

5
mango/rofi/setup.sh Normal file
View File

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

16
mango/rofi/theme.rasi Normal file
View File

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

View File

@@ -6,11 +6,14 @@ cp -r ~/.config/xdg-desktop-portal/* ./xdg-desktop-portal
cp ~/.config/user-dirs.conf . cp ~/.config/user-dirs.conf .
cp ~/.config/starship.toml . cp ~/.config/starship.toml .
cp -r ~/.config/waypaper/* ./waypaper cp -r ~/.config/waypaper/* ./waypaper
cp -r ~/.config/fastfetch/* ./fastfetch
rsync -av ~/.config/fontconfig/ ./fontconfig rsync -av ~/.config/fontconfig/ ./fontconfig
rsync -av ~/.config/btop/ ./btop
cp ~/.config/rofi/theme.rasi ./rofi cp ~/.config/rofi/theme.rasi ./rofi
cp ~/.config/rofi/app-manager/* ./rofi/app-manager cp ~/.config/rofi/app-manager/* ./rofi/app-manager
cp ~/.config/rofi/settings-manager/* ./rofi/settings-manager cp ~/.config/rofi/settings-manager/* ./rofi/settings-manager
cp ~/.config/rofi/power-manager/* ./rofi/power-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/help-manager/* ./rofi/help-manager
cp ~/.config/rofi/setup.sh ./rofi cp ~/.config/rofi/setup.sh ./rofi

View File

@@ -15,6 +15,7 @@
}, },
"ext/workspaces": { "ext/workspaces": {
"disable-scroll": true, "disable-scroll": true,
"ignore-hidden": true,
"all-outputs": false, "all-outputs": false,
"on-click": "activate", "on-click": "activate",
"format": "{name}" "format": "{name}"

View File

@@ -4,7 +4,7 @@
} }
window#waybar { window#waybar {
background: rgba(33, 28, 46, 0.7); background: rgba(33, 28, 46, 0.6);
color: rgb(205, 214, 244); color: rgb(205, 214, 244);
} }
window#waybar > box.horizontal:dir(ltr) { window#waybar > box.horizontal:dir(ltr) {

View File

@@ -2,7 +2,7 @@
language = en language = en
folder = ~/pictures folder = ~/pictures
monitors = All monitors = All
wallpaper = ~/pictures/flowers-21.png wallpaper = ~/pictures/flower.jpg
show_path_in_tooltip = True show_path_in_tooltip = True
backend = swww backend = swww
fill = fill fill = fill