├── Camelia.colors ├── README.md ├── Starship └── starship.toml ├── Wallpapers ├── LightWings.png ├── LightWingsBlurred.png ├── SunsetNight.jpeg ├── blur_depression.png ├── blur_village_china.png ├── blurredwindows.png ├── depression_fr.png ├── dreamy_depression.png ├── mafu_trad_wall.png ├── scissor_girl.jpeg ├── train_and_lake.png ├── village_china.png └── windows11bloom.jpg ├── alacritty ├── alacritty.toml └── alacritty_light.toml ├── cmus ├── autosave ├── cache ├── command-history ├── default.theme ├── lib.pl ├── light.theme ├── playlists │ └── default ├── rc └── search-history ├── dunst └── dunstrc ├── fastfetch └── config.jsonc ├── hypr ├── Scripts │ ├── restart_xdg.sh │ └── toggle_rofi.sh ├── Shaders │ ├── CRT-Scan.frag │ ├── CRT.frag │ ├── cava.sh │ ├── night.glsl │ └── vibrance.glsl ├── anims.conf ├── binds.conf ├── hypridle.conf ├── hyprland.conf ├── hyprpaper.conf ├── monitors.conf ├── plugins.conf ├── rules.conf ├── settings.conf ├── startup.conf └── xdph.conf ├── hyprlauncher └── config.toml ├── micro_colors ├── macos.micro └── macos_dark.micro ├── rofi ├── config.rasi ├── config_dark_rounded.rasi └── config_light.rasi └── waybar ├── config.jsonc ├── scripts └── waybar-ddc-module.sh └── style.css /Camelia.colors: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Andrew Lake 2 | # SPDX-FileCopyrightText: Marco Martin 3 | # SPDX-FileCopyrightText: Nate Graham 4 | # SPDX-FileCopyrightText: Noah Davis 5 | # SPDX-FileCopyrightText: Neal Gompa 6 | # SPDX-FileCopyrightText: David Redondo 7 | # SPDX-License-Identifier: LGPL-2.0-or-later 8 | 9 | [ColorEffects:Disabled] 10 | Color=56,56,56 11 | ColorAmount=0 12 | ColorEffect=0 13 | ContrastAmount=0.65 14 | ContrastEffect=1 15 | IntensityAmount=0.1 16 | IntensityEffect=2 17 | 18 | [ColorEffects:Inactive] 19 | ChangeSelectionColor=true 20 | Color=112,111,110 21 | ColorAmount=0.025 22 | ColorEffect=2 23 | ContrastAmount=0.1 24 | ContrastEffect=2 25 | Enable=false 26 | IntensityAmount=0 27 | IntensityEffect=0 28 | 29 | [Colors:Button] 30 | BackgroundAlternate=30,87,116 31 | BackgroundNormal=49,54,59 32 | DecorationFocus=61,174,233 33 | DecorationHover=61,174,233 34 | ForegroundActive=61,174,233 35 | ForegroundInactive=161,169,177 36 | ForegroundLink=29,153,243 37 | ForegroundNegative=218,68,83 38 | ForegroundNeutral=246,116,0 39 | ForegroundNormal=252,252,252 40 | ForegroundPositive=39,174,96 41 | ForegroundVisited=155,89,182 42 | 43 | [Colors:Complementary] 44 | BackgroundAlternate=30,87,116 45 | BackgroundNormal=42,46,50 46 | DecorationFocus=61,174,233 47 | DecorationHover=61,174,233 48 | ForegroundActive=61,174,233 49 | ForegroundInactive=161,169,177 50 | ForegroundLink=29,153,243 51 | ForegroundNegative=218,68,83 52 | ForegroundNeutral=246,116,0 53 | ForegroundNormal=252,252,252 54 | ForegroundPositive=39,174,96 55 | ForegroundVisited=155,89,182 56 | 57 | [Colors:Header] 58 | BackgroundAlternate=42,46,50 59 | BackgroundNormal=49,54,59 60 | DecorationFocus=61,174,233 61 | DecorationHover=61,174,233 62 | ForegroundActive=61,174,233 63 | ForegroundInactive=161,169,177 64 | ForegroundLink=29,153,243 65 | ForegroundNegative=218,68,83 66 | ForegroundNeutral=246,116,0 67 | ForegroundNormal=252,252,252 68 | ForegroundPositive=39,174,96 69 | ForegroundVisited=155,89,182 70 | 71 | [Colors:Header][Inactive] 72 | BackgroundAlternate=49,54,59 73 | BackgroundNormal=42,46,50 74 | DecorationFocus=61,174,233 75 | DecorationHover=61,174,233 76 | ForegroundActive=61,174,233 77 | ForegroundInactive=161,169,177 78 | ForegroundLink=29,153,243 79 | ForegroundNegative=218,68,83 80 | ForegroundNeutral=246,116,0 81 | ForegroundNormal=252,252,252 82 | ForegroundPositive=39,174,96 83 | ForegroundVisited=155,89,182 84 | 85 | [Colors:Selection] 86 | BackgroundAlternate=30,87,116 87 | BackgroundNormal=61,174,233 88 | DecorationFocus=61,174,233 89 | DecorationHover=61,174,233 90 | ForegroundActive=252,252,252 91 | ForegroundInactive=161,169,177 92 | ForegroundLink=253,188,75 93 | ForegroundNegative=176,55,69 94 | ForegroundNeutral=198,92,0 95 | ForegroundNormal=252,252,252 96 | ForegroundPositive=23,104,57 97 | ForegroundVisited=155,89,182 98 | 99 | [Colors:Tooltip] 100 | BackgroundAlternate=42,46,50 101 | BackgroundNormal=49,54,59 102 | DecorationFocus=61,174,233 103 | DecorationHover=61,174,233 104 | ForegroundActive=61,174,233 105 | ForegroundInactive=161,169,177 106 | ForegroundLink=29,153,243 107 | ForegroundNegative=218,68,83 108 | ForegroundNeutral=246,116,0 109 | ForegroundNormal=252,252,252 110 | ForegroundPositive=39,174,96 111 | ForegroundVisited=155,89,182 112 | 113 | [Colors:View] 114 | BackgroundAlternate=35,38,41 115 | BackgroundNormal=27,30,32 116 | DecorationFocus=61,174,233 117 | DecorationHover=61,174,233 118 | ForegroundActive=61,174,233 119 | ForegroundInactive=161,169,177 120 | ForegroundLink=29,153,243 121 | ForegroundNegative=218,68,83 122 | ForegroundNeutral=246,116,0 123 | ForegroundNormal=252,252,252 124 | ForegroundPositive=39,174,96 125 | ForegroundVisited=155,89,182 126 | 127 | [Colors:Window] 128 | BackgroundAlternate=49,54,59 129 | BackgroundNormal=42,46,50 130 | DecorationFocus=61,174,233 131 | DecorationHover=61,174,233 132 | ForegroundActive=61,174,233 133 | ForegroundInactive=161,169,177 134 | ForegroundLink=29,153,243 135 | ForegroundNegative=218,68,83 136 | ForegroundNeutral=246,116,0 137 | ForegroundNormal=252,252,252 138 | ForegroundPositive=39,174,96 139 | ForegroundVisited=155,89,182 140 | 141 | [General] 142 | ColorScheme=Camelia 143 | Name=Camelia 144 | shadeSortColumn=true 145 | 146 | [KDE] 147 | contrast=4 148 | 149 | [WM] 150 | activeBackground=0,0,0,200 151 | activeBlend=252,252,252 152 | activeForeground=252,252,252 153 | inactiveBackground=0,0,0,200 154 | inactiveBlend=161,169,177 155 | inactiveForeground=161,169,177 156 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Config Files 2 | 3 | ## About 4 | Live config files from my desktop system. 5 | 6 | ## Screenshots 7 | ![NewRice](https://github.com/luyu-wu/Config/assets/116970666/47021b39-d48d-436a-958c-a062906c63a8) 8 | 9 | ![image](https://github.com/luyu-wu/Config/assets/116970666/fe4a6982-3318-4854-ab44-4dd8a9365362) 10 | 11 | 12 | ## Features 13 | - Expressive tiled window manager experience 14 | - Intuitive keybinds for screenshots, launchers, tiling, and more! 15 | - Fully custom rofi launcher and waybar 16 | - Low resource utilization for low-battery utilization (no JS >:), 0% idle usage 17 | - Low memory usage (once again no JS) 18 | - Custom bezier curves for smooth animations 19 | - Consistent theming across all applications 20 | - Custom Firefox CSS 21 | 22 | ## Packages 23 | in the packages.txt or smth, flatpaks r in the flatpak one! 24 | 25 | (non-exhaustive list, i just forget the rest of the important dependencies, u prob need nerd-fonts or smth) 26 | 27 | ## Credits 28 | 29 | catppuccin discord + spotify themes 30 | tokyo-night starship theme 31 | 32 | all the great tools that made this possible at all :D 33 | -------------------------------------------------------------------------------- /Starship/starship.toml: -------------------------------------------------------------------------------- 1 | format = """ 2 | [░▒▓](#a3aed2)\ 3 | [ 󰣇 ](bg:#a3aed2 fg:#090c0c)\ 4 | [](bg:#769ff0 fg:#a3aed2)\ 5 | $directory\ 6 | [](fg:#769ff0 bg:#394260)\ 7 | $git_branch\ 8 | $git_status\ 9 | [](fg:#394260 bg:#212736)\ 10 | $nodejs\ 11 | $rust\ 12 | $golang\ 13 | $php\ 14 | [](fg:#212736)\ 15 | \n$character""" 16 | 17 | [directory] 18 | style = "fg:#e3e5e5 bg:#769ff0" 19 | format = "[ $path ]($style)" 20 | truncation_length = 3 21 | truncation_symbol = "…/" 22 | 23 | [directory.substitutions] 24 | "Documents" = "󰈙 " 25 | "Downloads" = " " 26 | "Music" = " " 27 | "Pictures" = " " 28 | 29 | [git_branch] 30 | symbol = "" 31 | style = "bg:#394260" 32 | format = '[[ $symbol $branch ](fg:#769ff0 bg:#394260)]($style)' 33 | 34 | [git_status] 35 | style = "bg:#394260" 36 | format = '[[($all_status$ahead_behind )](fg:#769ff0 bg:#394260)]($style)' 37 | 38 | [nodejs] 39 | symbol = "" 40 | style = "bg:#212736" 41 | format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' 42 | 43 | [rust] 44 | symbol = "" 45 | style = "bg:#212736" 46 | format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' 47 | 48 | [golang] 49 | symbol = "" 50 | style = "bg:#212736" 51 | format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' 52 | 53 | [php] 54 | symbol = "" 55 | style = "bg:#212736" 56 | format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' 57 | 58 | [time] 59 | disabled = false 60 | time_format = "%R" # Hour:Minute Format 61 | style = "bg:#1d2230" 62 | format = '[[  $time ](fg:#a0a9cb bg:#1d2230)]($style)' 63 | -------------------------------------------------------------------------------- /Wallpapers/LightWings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luyu-wu/Config/d7fcfb857262f165513c62709f7bb87fa6e2f06d/Wallpapers/LightWings.png -------------------------------------------------------------------------------- /Wallpapers/LightWingsBlurred.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luyu-wu/Config/d7fcfb857262f165513c62709f7bb87fa6e2f06d/Wallpapers/LightWingsBlurred.png -------------------------------------------------------------------------------- /Wallpapers/SunsetNight.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luyu-wu/Config/d7fcfb857262f165513c62709f7bb87fa6e2f06d/Wallpapers/SunsetNight.jpeg -------------------------------------------------------------------------------- /Wallpapers/blur_depression.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luyu-wu/Config/d7fcfb857262f165513c62709f7bb87fa6e2f06d/Wallpapers/blur_depression.png -------------------------------------------------------------------------------- /Wallpapers/blur_village_china.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luyu-wu/Config/d7fcfb857262f165513c62709f7bb87fa6e2f06d/Wallpapers/blur_village_china.png -------------------------------------------------------------------------------- /Wallpapers/blurredwindows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luyu-wu/Config/d7fcfb857262f165513c62709f7bb87fa6e2f06d/Wallpapers/blurredwindows.png -------------------------------------------------------------------------------- /Wallpapers/depression_fr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luyu-wu/Config/d7fcfb857262f165513c62709f7bb87fa6e2f06d/Wallpapers/depression_fr.png -------------------------------------------------------------------------------- /Wallpapers/dreamy_depression.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luyu-wu/Config/d7fcfb857262f165513c62709f7bb87fa6e2f06d/Wallpapers/dreamy_depression.png -------------------------------------------------------------------------------- /Wallpapers/mafu_trad_wall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luyu-wu/Config/d7fcfb857262f165513c62709f7bb87fa6e2f06d/Wallpapers/mafu_trad_wall.png -------------------------------------------------------------------------------- /Wallpapers/scissor_girl.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luyu-wu/Config/d7fcfb857262f165513c62709f7bb87fa6e2f06d/Wallpapers/scissor_girl.jpeg -------------------------------------------------------------------------------- /Wallpapers/train_and_lake.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luyu-wu/Config/d7fcfb857262f165513c62709f7bb87fa6e2f06d/Wallpapers/train_and_lake.png -------------------------------------------------------------------------------- /Wallpapers/village_china.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luyu-wu/Config/d7fcfb857262f165513c62709f7bb87fa6e2f06d/Wallpapers/village_china.png -------------------------------------------------------------------------------- /Wallpapers/windows11bloom.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luyu-wu/Config/d7fcfb857262f165513c62709f7bb87fa6e2f06d/Wallpapers/windows11bloom.jpg -------------------------------------------------------------------------------- /alacritty/alacritty.toml: -------------------------------------------------------------------------------- 1 | [bell] 2 | animation = "EaseOutExpo" 3 | color = "0xffffff" 4 | duration = 0 5 | 6 | [colors] 7 | draw_bold_text_with_bright_colors = false 8 | 9 | [colors.bright] 10 | black = "0x969896" 11 | blue = "0xb4b7b4" 12 | cyan = "0xa3685a" 13 | green = "0x282a2e" 14 | magenta = "0xe0e0e0" 15 | red = "0xde935f" 16 | white = "0xffffff" 17 | yellow = "0x373b41" 18 | 19 | [colors.cursor] 20 | cursor = "0xc5c8c6" 21 | text = "0x1d1f21" 22 | 23 | [colors.normal] 24 | black = "0x1d1f21" 25 | blue = "0x81a2be" 26 | cyan = "0x8abeb7" 27 | green = "0xb5bd68" 28 | magenta = "0xb294bb" 29 | red = "0xcc6666" 30 | white = "0xc5c8c6" 31 | yellow = "0xf0c674" 32 | 33 | [colors.primary] 34 | background = "0x2A2A2A" 35 | foreground = "0xc5c8c6" 36 | 37 | [cursor] 38 | style = "Beam" 39 | unfocused_hollow = false 40 | 41 | [debug] 42 | log_level = "OFF" 43 | persistent_logging = false 44 | print_events = false 45 | render_timer = false 46 | 47 | [font] 48 | size = 12.0 49 | 50 | [font.bold] 51 | family = "Fira Code Nerd Font" 52 | style = "Bold" 53 | 54 | [font.glyph_offset] 55 | x = 0 56 | y = 0 57 | 58 | [font.italic] 59 | family = "Fira Code Nerd Font" 60 | style = "Light Italic" 61 | 62 | [font.normal] 63 | family = "Fira Code Nerd Font" 64 | style = "Regular" 65 | 66 | [font.offset] 67 | x = 0 68 | y = 0 69 | 70 | [mouse] 71 | hide_when_typing = false 72 | 73 | 74 | [scrolling] 75 | history = 600 76 | multiplier = 5 77 | 78 | [selection] 79 | save_to_clipboard = false 80 | semantic_escape_chars = ",│`|:\"' ()[]{}<>" 81 | 82 | [terminal.shell] 83 | program = "/usr/bin/fish" 84 | 85 | [window] 86 | decorations = "none" 87 | dynamic_padding = false 88 | opacity = 0.7 89 | startup_mode = "Windowed" 90 | 91 | [window.dimensions] 92 | columns = 0 93 | lines = 0 94 | 95 | [window.padding] 96 | x = 0 97 | y = 0 98 | 99 | 100 | [[keyboard.bindings]] 101 | action = "Paste" 102 | key = "V" 103 | mods = "Command" 104 | 105 | [[keyboard.bindings]] 106 | action = "Copy" 107 | key = "C" 108 | mods = "Command" 109 | 110 | [[keyboard.bindings]] 111 | chars = "\u001BOH" 112 | key = "Home" 113 | mode = "AppCursor" 114 | 115 | [[keyboard.bindings]] 116 | chars = "\u001B[H" 117 | key = "Home" 118 | mode = "~AppCursor" 119 | 120 | [[keyboard.bindings]] 121 | chars = "\u001BOF" 122 | key = "End" 123 | mode = "AppCursor" 124 | 125 | [[keyboard.bindings]] 126 | chars = "\u001B[F" 127 | key = "End" 128 | mode = "~AppCursor" 129 | 130 | [[keyboard.bindings]] 131 | action = "IncreaseFontSize" 132 | key = "Equals" 133 | mods = "Command" 134 | 135 | [[keyboard.bindings]] 136 | action = "DecreaseFontSize" 137 | key = "Minus" 138 | mods = "Command" 139 | 140 | [[keyboard.bindings]] 141 | action = "ResetFontSize" 142 | key = "Minus" 143 | mods = "Command|Shift" 144 | 145 | [[keyboard.bindings]] 146 | chars = "\u001B[5;2~" 147 | key = "PageUp" 148 | mods = "Shift" 149 | 150 | [[keyboard.bindings]] 151 | chars = "\u001B[5;5~" 152 | key = "PageUp" 153 | mods = "Control" 154 | 155 | [[keyboard.bindings]] 156 | chars = "\u001B[5~" 157 | key = "PageUp" 158 | 159 | [[keyboard.bindings]] 160 | chars = "\u001B[6;2~" 161 | key = "PageDown" 162 | mods = "Shift" 163 | 164 | [[keyboard.bindings]] 165 | chars = "\u001B[6;5~" 166 | key = "PageDown" 167 | mods = "Control" 168 | 169 | [[keyboard.bindings]] 170 | chars = "\u001B[6~" 171 | key = "PageDown" 172 | 173 | [[keyboard.bindings]] 174 | chars = "\u001B[1;2D" 175 | key = "Left" 176 | mods = "Shift" 177 | 178 | [[keyboard.bindings]] 179 | chars = "\u001B[1;5D" 180 | key = "Left" 181 | mods = "Control" 182 | 183 | [[keyboard.bindings]] 184 | chars = "\u001B[1;3D" 185 | key = "Left" 186 | mods = "Alt" 187 | 188 | [[keyboard.bindings]] 189 | chars = "\u001B[D" 190 | key = "Left" 191 | mode = "~AppCursor" 192 | 193 | [[keyboard.bindings]] 194 | chars = "\u001BOD" 195 | key = "Left" 196 | mode = "AppCursor" 197 | 198 | [[keyboard.bindings]] 199 | chars = "\u001B[1;2C" 200 | key = "Right" 201 | mods = "Shift" 202 | 203 | [[keyboard.bindings]] 204 | chars = "\u001B[1;5C" 205 | key = "Right" 206 | mods = "Control" 207 | 208 | [[keyboard.bindings]] 209 | chars = "\u001B[1;3C" 210 | key = "Right" 211 | mods = "Alt" 212 | 213 | [[keyboard.bindings]] 214 | chars = "\u001B[C" 215 | key = "Right" 216 | mode = "~AppCursor" 217 | 218 | [[keyboard.bindings]] 219 | chars = "\u001BOC" 220 | key = "Right" 221 | mode = "AppCursor" 222 | 223 | [[keyboard.bindings]] 224 | chars = "\u001B[1;2A" 225 | key = "Up" 226 | mods = "Shift" 227 | 228 | [[keyboard.bindings]] 229 | chars = "\u001B[1;5A" 230 | key = "Up" 231 | mods = "Control" 232 | 233 | [[keyboard.bindings]] 234 | chars = "\u001B[1;3A" 235 | key = "Up" 236 | mods = "Alt" 237 | 238 | [[keyboard.bindings]] 239 | chars = "\u001B[A" 240 | key = "Up" 241 | mode = "~AppCursor" 242 | 243 | [[keyboard.bindings]] 244 | chars = "\u001BOA" 245 | key = "Up" 246 | mode = "AppCursor" 247 | 248 | [[keyboard.bindings]] 249 | chars = "\u001B[1;2B" 250 | key = "Down" 251 | mods = "Shift" 252 | 253 | [[keyboard.bindings]] 254 | chars = "\u001B[1;5B" 255 | key = "Down" 256 | mods = "Control" 257 | 258 | [[keyboard.bindings]] 259 | chars = "\u001B[1;3B" 260 | key = "Down" 261 | mods = "Alt" 262 | 263 | [[keyboard.bindings]] 264 | chars = "\u001B[B" 265 | key = "Down" 266 | mode = "~AppCursor" 267 | 268 | [[keyboard.bindings]] 269 | chars = "\u001BOB" 270 | key = "Down" 271 | mode = "AppCursor" 272 | 273 | [[keyboard.bindings]] 274 | chars = "\u001B[Z" 275 | key = "Tab" 276 | mods = "Shift" 277 | 278 | [[keyboard.bindings]] 279 | chars = "\u001BOP" 280 | key = "F1" 281 | 282 | [[keyboard.bindings]] 283 | chars = "\u001BOQ" 284 | key = "F2" 285 | 286 | [[keyboard.bindings]] 287 | chars = "\u001BOR" 288 | key = "F3" 289 | 290 | [[keyboard.bindings]] 291 | chars = "\u001BOS" 292 | key = "F4" 293 | 294 | [[keyboard.bindings]] 295 | chars = "\u001B[15~" 296 | key = "F5" 297 | 298 | [[keyboard.bindings]] 299 | chars = "\u001B[17~" 300 | key = "F6" 301 | 302 | [[keyboard.bindings]] 303 | chars = "\u001B[18~" 304 | key = "F7" 305 | 306 | [[keyboard.bindings]] 307 | chars = "\u001B[19~" 308 | key = "F8" 309 | 310 | [[keyboard.bindings]] 311 | chars = "\u001B[20~" 312 | key = "F9" 313 | 314 | [[keyboard.bindings]] 315 | chars = "\u001B[21~" 316 | key = "F10" 317 | 318 | [[keyboard.bindings]] 319 | chars = "\u001B[23~" 320 | key = "F11" 321 | 322 | [[keyboard.bindings]] 323 | chars = "\u001B[24~" 324 | key = "F12" 325 | 326 | [[keyboard.bindings]] 327 | chars = "\u007F" 328 | key = "Back" 329 | 330 | [[keyboard.bindings]] 331 | chars = "\u001B\u007F" 332 | key = "Back" 333 | mods = "Alt" 334 | 335 | [[keyboard.bindings]] 336 | chars = "\u001B[2~" 337 | key = "Insert" 338 | 339 | [[keyboard.bindings]] 340 | chars = "\u001B[3~" 341 | key = "Delete" 342 | 343 | [[keyboard.bindings]] 344 | chars = "\u0002&" 345 | key = "W" 346 | mods = "Command" 347 | 348 | [[keyboard.bindings]] 349 | chars = "\u0002c" 350 | key = "T" 351 | mods = "Command" 352 | 353 | [[keyboard.bindings]] 354 | chars = "\u0002n" 355 | key = "RBracket" 356 | mods = "Command|Shift" 357 | 358 | [[keyboard.bindings]] 359 | chars = "\u0002p" 360 | key = "LBracket" 361 | mods = "Command|Shift" 362 | 363 | [[keyboard.bindings]] 364 | chars = "\u0002o" 365 | key = "RBracket" 366 | mods = "Command" 367 | 368 | [[keyboard.bindings]] 369 | chars = "\u0002;" 370 | key = "LBracket" 371 | mods = "Command" 372 | 373 | [[keyboard.bindings]] 374 | chars = "\u0002/" 375 | key = "F" 376 | mods = "Command" 377 | 378 | [terminal] 379 | -------------------------------------------------------------------------------- /alacritty/alacritty_light.toml: -------------------------------------------------------------------------------- 1 | [bell] 2 | animation = "EaseOutExpo" 3 | color = "0xffffff" 4 | duration = 0 5 | 6 | [colors] 7 | draw_bold_text_with_bright_colors = false 8 | transparent_background_colors = true 9 | # Default colors 10 | [colors.primary] 11 | background = '#ffffff' 12 | foreground = '#24292f' 13 | 14 | # Normal colors 15 | [colors.normal] 16 | black = '#24292e' 17 | red = '#d73a49' 18 | green = '#28a745' 19 | yellow = '#dbab09' 20 | blue = '#0366d6' 21 | magenta = '#5a32a3' 22 | cyan = '#0598bc' 23 | white = '#6a737d' 24 | 25 | # Bright colors 26 | [colors.bright] 27 | black = '#959da5' 28 | red = '#cb2431' 29 | green = '#22863a' 30 | yellow = '#b08800' 31 | blue = '#005cc5' 32 | magenta = '#5a32a3' 33 | cyan = '#3192aa' 34 | white = '#d1d5da' 35 | 36 | 37 | [colors.cursor] 38 | text = '#000000' 39 | cursor = '#000000' 40 | 41 | [colors.selection] 42 | text = '#4C4F69' 43 | background = '#C2DAF7' 44 | [cursor] 45 | style = "Beam" 46 | unfocused_hollow = false 47 | 48 | 49 | [debug] 50 | log_level = "OFF" 51 | persistent_logging = false 52 | print_events = false 53 | render_timer = false 54 | 55 | [font] 56 | size = 11.0 57 | 58 | [font.bold] 59 | family = "Fira Code Nerd Font" 60 | style = "Normal" 61 | 62 | [font.glyph_offset] 63 | x = 0 64 | y = 0 65 | 66 | [font.italic] 67 | family = "Fira Code Nerd Font" 68 | style = "Light Italic" 69 | 70 | [font.normal] 71 | family = "Fira Code Nerd Font" 72 | style = "Regular" 73 | 74 | [font.offset] 75 | x = 0 76 | y = 0 77 | 78 | [mouse] 79 | hide_when_typing = false 80 | 81 | 82 | [scrolling] 83 | history = 2000 84 | multiplier = 5 85 | 86 | [selection] 87 | save_to_clipboard = false 88 | semantic_escape_chars = ",│`|:\"' ()[]{}<>" 89 | 90 | [shell] 91 | program = "/usr/bin/fish" 92 | 93 | [window] 94 | decorations = "none" 95 | dynamic_padding = false 96 | opacity = 0.65 97 | startup_mode = "Windowed" 98 | 99 | [window.dimensions] 100 | columns = 0 101 | lines = 0 102 | 103 | [window.padding] 104 | x = 0 105 | y = 0 106 | 107 | 108 | [[keyboard.bindings]] 109 | action = "Paste" 110 | key = "V" 111 | mods = "Command" 112 | 113 | [[keyboard.bindings]] 114 | action = "Copy" 115 | key = "C" 116 | mods = "Command" 117 | 118 | [[keyboard.bindings]] 119 | chars = "\u001BOH" 120 | key = "Home" 121 | mode = "AppCursor" 122 | 123 | [[keyboard.bindings]] 124 | chars = "\u001B[H" 125 | key = "Home" 126 | mode = "~AppCursor" 127 | 128 | [[keyboard.bindings]] 129 | chars = "\u001BOF" 130 | key = "End" 131 | mode = "AppCursor" 132 | 133 | [[keyboard.bindings]] 134 | chars = "\u001B[F" 135 | key = "End" 136 | mode = "~AppCursor" 137 | 138 | [[keyboard.bindings]] 139 | action = "IncreaseFontSize" 140 | key = "Equals" 141 | mods = "Command" 142 | 143 | [[keyboard.bindings]] 144 | action = "DecreaseFontSize" 145 | key = "Minus" 146 | mods = "Command" 147 | 148 | [[keyboard.bindings]] 149 | action = "ResetFontSize" 150 | key = "Minus" 151 | mods = "Command|Shift" 152 | 153 | [[keyboard.bindings]] 154 | chars = "\u001B[5;2~" 155 | key = "PageUp" 156 | mods = "Shift" 157 | 158 | [[keyboard.bindings]] 159 | chars = "\u001B[5;5~" 160 | key = "PageUp" 161 | mods = "Control" 162 | 163 | [[keyboard.bindings]] 164 | chars = "\u001B[5~" 165 | key = "PageUp" 166 | 167 | [[keyboard.bindings]] 168 | chars = "\u001B[6;2~" 169 | key = "PageDown" 170 | mods = "Shift" 171 | 172 | [[keyboard.bindings]] 173 | chars = "\u001B[6;5~" 174 | key = "PageDown" 175 | mods = "Control" 176 | 177 | [[keyboard.bindings]] 178 | chars = "\u001B[6~" 179 | key = "PageDown" 180 | 181 | [[keyboard.bindings]] 182 | chars = "\u001B[1;2D" 183 | key = "Left" 184 | mods = "Shift" 185 | 186 | [[keyboard.bindings]] 187 | chars = "\u001B[1;5D" 188 | key = "Left" 189 | mods = "Control" 190 | 191 | [[keyboard.bindings]] 192 | chars = "\u001B[1;3D" 193 | key = "Left" 194 | mods = "Alt" 195 | 196 | [[keyboard.bindings]] 197 | chars = "\u001B[D" 198 | key = "Left" 199 | mode = "~AppCursor" 200 | 201 | [[keyboard.bindings]] 202 | chars = "\u001BOD" 203 | key = "Left" 204 | mode = "AppCursor" 205 | 206 | [[keyboard.bindings]] 207 | chars = "\u001B[1;2C" 208 | key = "Right" 209 | mods = "Shift" 210 | 211 | [[keyboard.bindings]] 212 | chars = "\u001B[1;5C" 213 | key = "Right" 214 | mods = "Control" 215 | 216 | [[keyboard.bindings]] 217 | chars = "\u001B[1;3C" 218 | key = "Right" 219 | mods = "Alt" 220 | 221 | [[keyboard.bindings]] 222 | chars = "\u001B[C" 223 | key = "Right" 224 | mode = "~AppCursor" 225 | 226 | [[keyboard.bindings]] 227 | chars = "\u001BOC" 228 | key = "Right" 229 | mode = "AppCursor" 230 | 231 | [[keyboard.bindings]] 232 | chars = "\u001B[1;2A" 233 | key = "Up" 234 | mods = "Shift" 235 | 236 | [[keyboard.bindings]] 237 | chars = "\u001B[1;5A" 238 | key = "Up" 239 | mods = "Control" 240 | 241 | [[keyboard.bindings]] 242 | chars = "\u001B[1;3A" 243 | key = "Up" 244 | mods = "Alt" 245 | 246 | [[keyboard.bindings]] 247 | chars = "\u001B[A" 248 | key = "Up" 249 | mode = "~AppCursor" 250 | 251 | [[keyboard.bindings]] 252 | chars = "\u001BOA" 253 | key = "Up" 254 | mode = "AppCursor" 255 | 256 | [[keyboard.bindings]] 257 | chars = "\u001B[1;2B" 258 | key = "Down" 259 | mods = "Shift" 260 | 261 | [[keyboard.bindings]] 262 | chars = "\u001B[1;5B" 263 | key = "Down" 264 | mods = "Control" 265 | 266 | [[keyboard.bindings]] 267 | chars = "\u001B[1;3B" 268 | key = "Down" 269 | mods = "Alt" 270 | 271 | [[keyboard.bindings]] 272 | chars = "\u001B[B" 273 | key = "Down" 274 | mode = "~AppCursor" 275 | 276 | [[keyboard.bindings]] 277 | chars = "\u001BOB" 278 | key = "Down" 279 | mode = "AppCursor" 280 | 281 | [[keyboard.bindings]] 282 | chars = "\u001B[Z" 283 | key = "Tab" 284 | mods = "Shift" 285 | 286 | [[keyboard.bindings]] 287 | chars = "\u001BOP" 288 | key = "F1" 289 | 290 | [[keyboard.bindings]] 291 | chars = "\u001BOQ" 292 | key = "F2" 293 | 294 | [[keyboard.bindings]] 295 | chars = "\u001BOR" 296 | key = "F3" 297 | 298 | [[keyboard.bindings]] 299 | chars = "\u001BOS" 300 | key = "F4" 301 | 302 | [[keyboard.bindings]] 303 | chars = "\u001B[15~" 304 | key = "F5" 305 | 306 | [[keyboard.bindings]] 307 | chars = "\u001B[17~" 308 | key = "F6" 309 | 310 | [[keyboard.bindings]] 311 | chars = "\u001B[18~" 312 | key = "F7" 313 | 314 | [[keyboard.bindings]] 315 | chars = "\u001B[19~" 316 | key = "F8" 317 | 318 | [[keyboard.bindings]] 319 | chars = "\u001B[20~" 320 | key = "F9" 321 | 322 | [[keyboard.bindings]] 323 | chars = "\u001B[21~" 324 | key = "F10" 325 | 326 | [[keyboard.bindings]] 327 | chars = "\u001B[23~" 328 | key = "F11" 329 | 330 | [[keyboard.bindings]] 331 | chars = "\u001B[24~" 332 | key = "F12" 333 | 334 | [[keyboard.bindings]] 335 | chars = "\u007F" 336 | key = "Back" 337 | 338 | [[keyboard.bindings]] 339 | chars = "\u001B\u007F" 340 | key = "Back" 341 | mods = "Alt" 342 | 343 | [[keyboard.bindings]] 344 | chars = "\u001B[2~" 345 | key = "Insert" 346 | 347 | [[keyboard.bindings]] 348 | chars = "\u001B[3~" 349 | key = "Delete" 350 | 351 | [[keyboard.bindings]] 352 | chars = "\u0002&" 353 | key = "W" 354 | mods = "Command" 355 | 356 | [[keyboard.bindings]] 357 | chars = "\u0002c" 358 | key = "T" 359 | mods = "Command" 360 | 361 | [[keyboard.bindings]] 362 | chars = "\u0002n" 363 | key = "RBracket" 364 | mods = "Command|Shift" 365 | 366 | [[keyboard.bindings]] 367 | chars = "\u0002p" 368 | key = "LBracket" 369 | mods = "Command|Shift" 370 | 371 | [[keyboard.bindings]] 372 | chars = "\u0002o" 373 | key = "RBracket" 374 | mods = "Command" 375 | 376 | [[keyboard.bindings]] 377 | chars = "\u0002;" 378 | key = "LBracket" 379 | mods = "Command" 380 | 381 | [[keyboard.bindings]] 382 | chars = "\u0002/" 383 | key = "F" 384 | mods = "Command" 385 | -------------------------------------------------------------------------------- /cmus/autosave: -------------------------------------------------------------------------------- 1 | set aaa_mode=all 2 | set altformat_current= %F 3 | set altformat_playlist= %f%= %d 4 | set altformat_title=%f 5 | set altformat_trackwin= %f%= %d 6 | set auto_expand_albums_follow=true 7 | set auto_expand_albums_search=true 8 | set auto_expand_albums_selcur=true 9 | set auto_hide_playlists_panel=false 10 | set auto_reshuffle=true 11 | set block_key_paste=true 12 | set buffer_seconds=10 13 | set color_cmdline_attr=default 14 | set color_cmdline_bg=default 15 | set color_cmdline_fg=default 16 | set color_cur_sel_attr=default 17 | set color_error=lightred 18 | set color_info=lightyellow 19 | set color_separator=blue 20 | set color_statusline_attr=default 21 | set color_statusline_bg=gray 22 | set color_statusline_fg=black 23 | set color_titleline_attr=default 24 | set color_titleline_bg=blue 25 | set color_titleline_fg=white 26 | set color_trackwin_album_attr=bold 27 | set color_trackwin_album_bg=default 28 | set color_trackwin_album_fg=default 29 | set color_win_attr=default 30 | set color_win_bg=default 31 | set color_win_cur=lightyellow 32 | set color_win_cur_attr=default 33 | set color_win_cur_sel_attr=default 34 | set color_win_cur_sel_bg=blue 35 | set color_win_cur_sel_fg=lightyellow 36 | set color_win_dir=lightblue 37 | set color_win_fg=default 38 | set color_win_inactive_cur_sel_attr=default 39 | set color_win_inactive_cur_sel_bg=gray 40 | set color_win_inactive_cur_sel_fg=lightyellow 41 | set color_win_inactive_sel_attr=default 42 | set color_win_inactive_sel_bg=gray 43 | set color_win_inactive_sel_fg=black 44 | set color_win_sel_attr=default 45 | set color_win_sel_bg=blue 46 | set color_win_sel_fg=white 47 | set color_win_title_attr=default 48 | set color_win_title_bg=blue 49 | set color_win_title_fg=white 50 | set confirm_run=true 51 | set continue=true 52 | set continue_album=true 53 | set device=/dev/cdrom 54 | set display_artist_sort_name=false 55 | set dsp.alsa.device= 56 | set dsp.ao.buffer_size=16384 57 | set dsp.ao.device_interface= 58 | set dsp.ao.driver= 59 | set dsp.ao.wav_counter=1 60 | set dsp.ao.wav_dir=/home/camelia 61 | set dsp.jack.resampling_quality=2 62 | set dsp.jack.server_name= 63 | set dsp.oss.device= 64 | set follow=false 65 | set format_clipped_text=… 66 | set format_current= %a - %l%! - %n. %t%= %y 67 | set format_playlist= %-21%a %3n. %t%= %y %d %{?X!=0?%3X ? } 68 | set format_playlist_va= %-21%A %3n. %t (%a)%= %y %d %{?X!=0?%3X ? } 69 | set format_statusline= %{status} %{?show_playback_position?%{position} %{?duration?/ %{duration} }?%{?duration?%{duration} }}- %{total} %{?bpm>0?at %{bpm} BPM }%{?volume>=0?vol: %{?lvolume!=rvolume?%{lvolume},%{rvolume} ?%{volume} }}%{?stream?buf: %{buffer} }%{?show_current_bitrate & bitrate>=0? %{bitrate} kbps }%=%{?repeat_current?repeat current?%{?play_library?%{playlist_mode} from %{?play_sorted?sorted }library?playlist}} | %1{continue}%1{follow}%1{repeat}%1{shuffle} 70 | set format_title=%a - %l - %t (%y) 71 | set format_trackwin=%3n. %t%= %y %d 72 | set format_trackwin_album= %l %= %{albumduration} 73 | set format_trackwin_va=%3n. %t (%a)%= %y %d 74 | set format_treewin= %l 75 | set format_treewin_artist=%a 76 | set icecast_default_charset=ISO-8859-1 77 | set id3_default_charset=ISO-8859-1 78 | set ignore_duplicates=false 79 | set input.aac.priority=50 80 | set input.cdio.priority=50 81 | set input.cue.priority=50 82 | set input.ffmpeg.priority=30 83 | set input.flac.priority=50 84 | set input.mad.priority=55 85 | set input.modplug.priority=50 86 | set input.mpc.priority=50 87 | set input.opus.priority=50 88 | set input.vorbis.priority=50 89 | set input.wav.priority=50 90 | set input.wavpack.priority=50 91 | set lib_add_filter= 92 | set lib_sort=albumartist date album discnumber tracknumber title filename play_count 93 | set mixer.alsa.channel= 94 | set mixer.alsa.device= 95 | set mixer.oss.channel=PCM 96 | set mixer.oss.device= 97 | set mixer.pulse.restore_volume=1 98 | set mouse=false 99 | set mpris=true 100 | set output_plugin=pulse 101 | set passwd= 102 | set pause_on_output_change=false 103 | set pl_env_vars= 104 | set pl_sort= 105 | set play_library=true 106 | set play_sorted=false 107 | set repeat=false 108 | set repeat_current=false 109 | set replaygain=disabled 110 | set replaygain_limit=true 111 | set replaygain_preamp=0.000000 112 | set resume=false 113 | set rewind_offset=5 114 | set scroll_offset=2 115 | set set_term_title=true 116 | set show_all_tracks=true 117 | set show_current_bitrate=false 118 | set show_hidden=false 119 | set show_playback_position=true 120 | set show_remaining_time=false 121 | set shuffle=off 122 | set skip_track_info=false 123 | set smart_artist_sort=true 124 | set softvol=false 125 | set softvol_state=0 0 126 | set sort_albums_by_name=false 127 | set start_view=tree 128 | set status_display_program= 129 | set stop_after_queue=false 130 | set time_show_leading_zero=true 131 | set tree_width_max=0 132 | set tree_width_percent=33 133 | set wrap_search=true 134 | bind browser backspace browser-up 135 | bind browser i toggle show_hidden 136 | bind browser space win-activate 137 | bind browser u win-update 138 | bind common ! push shell 139 | bind common + vol +10% 140 | bind common , seek -1m 141 | bind common - vol -10% 142 | bind common . seek +1m 143 | bind common / search-start 144 | bind common 1 view tree 145 | bind common 2 view sorted 146 | bind common 3 view playlist 147 | bind common 4 view queue 148 | bind common 5 view browser 149 | bind common 6 view filters 150 | bind common 7 view settings 151 | bind common = vol +10% 152 | bind common ? search-b-start 153 | bind common B player-next-album 154 | bind common C toggle continue 155 | bind common D win-remove 156 | bind common E win-add-Q 157 | bind common F push filter 158 | bind common G win-bottom 159 | bind common I echo {} 160 | bind common L push live-filter 161 | bind common M toggle play_library 162 | bind common N search-prev 163 | bind common P win-mv-before 164 | bind common U win-update-cache 165 | bind common Z player-prev-album 166 | bind common [ vol +1% +0 167 | bind common ] vol +0 +1% 168 | bind common ^B win-page-up 169 | bind common ^C echo Type :quit to exit cmus. 170 | bind common ^D win-half-page-down 171 | bind common ^E win-scroll-down 172 | bind common ^F win-page-down 173 | bind common ^L refresh 174 | bind common ^R toggle repeat_current 175 | bind common ^U win-half-page-up 176 | bind common ^Y win-scroll-up 177 | bind common a win-add-l 178 | bind common b player-next 179 | bind common c player-pause 180 | bind common delete win-remove 181 | bind common down win-down 182 | bind common e win-add-q 183 | bind common end win-bottom 184 | bind common enter win-activate 185 | bind common f toggle follow 186 | bind common g win-top 187 | bind common h seek -5 188 | bind common home win-top 189 | bind common i win-sel-cur 190 | bind common j win-down 191 | bind common k win-up 192 | bind common l seek +5 193 | bind common left seek -5 194 | bind common m toggle aaa_mode 195 | bind common mlb_click_bar player-pause 196 | bind common mlb_click_bar_right player-pause 197 | bind common mlb_click_selected win-activate 198 | bind common mouse_scroll_down win-down 199 | bind common mouse_scroll_down_bar seek -5 200 | bind common mouse_scroll_down_bar_right vol -1% 201 | bind common mouse_scroll_down_title right-view -n 202 | bind common mouse_scroll_up win-up 203 | bind common mouse_scroll_up_bar seek +5 204 | bind common mouse_scroll_up_bar_right vol +1% 205 | bind common mouse_scroll_up_title left-view -n 206 | bind common n search-next 207 | bind common o toggle play_sorted 208 | bind common p win-mv-after 209 | bind common page_down win-page-down 210 | bind common page_up win-page-up 211 | bind common q quit -i 212 | bind common r toggle repeat 213 | bind common right seek +5 214 | bind common s toggle shuffle 215 | bind common space win-toggle 216 | bind common t toggle show_remaining_time 217 | bind common tab win-next 218 | bind common u update-cache 219 | bind common up win-up 220 | bind common v player-stop 221 | bind common x player-play 222 | bind common y win-add-p 223 | bind common z player-prev 224 | bind common { vol -1% -0 225 | bind common } vol -0 -1% 226 | fset 90s=date>=1990&date<2000 227 | fset classical=genre="Classical" 228 | fset missing-tag=!stream&(artist=""|album=""|title=""|tracknumber=-1|date=-1) 229 | fset mp3=filename="*.mp3" 230 | fset ogg=filename="*.ogg" 231 | fset ogg-or-mp3=ogg|mp3 232 | fset unheard=play_count=0 233 | factivate 234 | -------------------------------------------------------------------------------- /cmus/cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luyu-wu/Config/d7fcfb857262f165513c62709f7bb87fa6e2f06d/cmus/cache -------------------------------------------------------------------------------- /cmus/command-history: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luyu-wu/Config/d7fcfb857262f165513c62709f7bb87fa6e2f06d/cmus/command-history -------------------------------------------------------------------------------- /cmus/default.theme: -------------------------------------------------------------------------------- 1 | set color_cmdline_bg=default 2 | set color_cmdline_fg=default 3 | 4 | set color_error=lightred 5 | set color_info=lightyellow 6 | 7 | set color_separator=default 8 | set color_statusline_bg=default 9 | 10 | set color_statusline_fg=white 11 | set color_titleline_bg=default 12 | set color_titleline_fg=white 13 | 14 | set color_win_bg=default 15 | 16 | set color_win_cur=lightyellow 17 | set color_win_cur_sel_bg=lightyellow 18 | set color_win_cur_sel_fg=lightyellow 19 | set color_win_dir=lightblue 20 | 21 | set color_win_fg=default 22 | 23 | set color_win_inactive_cur_sel_bg=default 24 | set color_win_inactive_cur_sel_fg=white 25 | set color_win_inactive_sel_bg=default 26 | set color_win_inactive_sel_fg=white 27 | 28 | set color_win_sel_bg=lightyellow 29 | set color_win_sel_fg=default 30 | set color_win_title_bg=lightyellow 31 | set color_win_title_fg=default 32 | -------------------------------------------------------------------------------- /cmus/lib.pl: -------------------------------------------------------------------------------- 1 | /home/camelia/Music/Playlists/English/bones.mp3 2 | /home/camelia/Music/Playlists/Instrumentals/jazzy.mp3 3 | /home/camelia/Music/Playlists/Instrumentals/dminor_song.mp3 4 | /home/camelia/Music/Playlists/Chinese/大雨还在下 - 1个球.mp3 5 | /home/camelia/Music/Playlists/Japanese/携帯恋話 (feat. 東雲絵名&暁山瑞希&初音ミク) - 25時、ナイトコードで。.mp3 6 | /home/camelia/Music/Playlists/English/Split.mp3 7 | /home/camelia/Music/Playlists/English/Every_Summertime.mp3 8 | /home/camelia/Music/Playlists/Chinese/我想偷偷對你說我愛你 - Aaron Kwok.mp3 9 | /home/camelia/Music/Playlists/English/I_Don_t_Gotta_Know.mp3 10 | /home/camelia/Music/Playlists/Japanese/よるのあと - From THE FIRST TAKE - adieu.mp3 11 | /home/camelia/Music/Playlists/Japanese/踊 - Ado.mp3 12 | /home/camelia/Music/Playlists/Japanese/うっせぇわ - Ado.mp3 13 | /home/camelia/Music/Playlists/Japanese/ドメスティックでバイオレンス - Ado.mp3 14 | /home/camelia/Music/Playlists/Japanese/missing - Ado.mp3 15 | /home/camelia/Music/Playlists/Korean/Drama.mp3 16 | /home/camelia/Music/Playlists/Korean/Moonlight.mp3 17 | /home/camelia/Music/Playlists/Korean/Daechwita.mp3 18 | /home/camelia/Music/Playlists/Japanese/Akuma no Ko - Ai Higuchi.mp3 19 | /home/camelia/Music/Playlists/Korean/How_can_I_love_the_heartbreak__you_re_the_one_I_love.mp3 20 | /home/camelia/Music/Playlists/Korean/Whale.mp3 21 | /home/camelia/Music/Playlists/Korean/Let_s_take_time.mp3 22 | /home/camelia/Music/Playlists/English/If_We_Have_Each_Other.mp3 23 | /home/camelia/Music/Playlists/English/Let_Me_Down_Slowly.mp3 24 | /home/camelia/Music/Playlists/English/Paper_Crown.mp3 25 | /home/camelia/Music/Playlists/Japanese/Bad Apple!! feat.nomico - nomico.mp3 26 | /home/camelia/Music/Playlists/Chinese/中國人 - Andy Lau.mp3 27 | /home/camelia/Music/Playlists/Chinese/謝謝你的愛 - Andy Lau.mp3 28 | /home/camelia/Music/Playlists/Chinese/破繭(《鬥羅大陸》動畫2020年新主題曲) - Angela Chang.mp3 29 | /home/camelia/Music/Playlists/Chinese/篇章 - Angela Chang_王赫野.mp3 30 | /home/camelia/Music/Playlists/Instrumentals/The_Four_Seasons_-_Violin_Concerto_in_F_Minor__Op__8_No__4__RV_297__Winter___I__Allegro_non_molto.mp3 31 | /home/camelia/Music/Playlists/Instrumentals/The_Four_Seasons_-_Spring_in_E_Major__RV__269__I__Allegro.mp3 32 | /home/camelia/Music/Playlists/Instrumentals/The_Four_Seasons_-_Summer_in_G_Minor__RV__315__III__Presto.mp3 33 | /home/camelia/Music/Playlists/Instrumentals/The_Four_Seasons_-_Winter_in_F_Minor__RV__297__I__Allegro_non_molto.mp3 34 | /home/camelia/Music/Playlists/English/Why_d_You_Only_Call_Me_When_You_re_High_.mp3 35 | /home/camelia/Music/Playlists/Japanese/PAKU - asmi.mp3 36 | /home/camelia/Music/Playlists/Japanese/OTONABLUE - ATARASHII GAKKO!.mp3 37 | /home/camelia/Music/Playlists/Korean/Deja_Vu.mp3 38 | /home/camelia/Music/Playlists/Korean/Star_1117_-_BUDDY_S_Melodic_Mix.mp3 39 | /home/camelia/Music/Playlists/Japanese/REMEMBER (feat. YOUNG JUJU) - Awich, Young Juju (1).mp3 40 | /home/camelia/Music/Playlists/Japanese/REMEMBER (feat. YOUNG JUJU) - Awich, Young Juju.mp3 41 | /home/camelia/Music/Playlists/Japanese/Remember - From THE FIRST TAKE - Awich, KEIJU.mp3 42 | /home/camelia/Music/Playlists/English/Duh_Duh_Duh_Dum.mp3 43 | /home/camelia/Music/Playlists/Japanese/水平線 - back number.mp3 44 | /home/camelia/Music/Playlists/English/I_Want_It_That_Way.mp3 45 | /home/camelia/Music/Playlists/Instrumentals/Canon_In_D__Piano___Cello_.mp3 46 | /home/camelia/Music/Playlists/Chinese/海闊天空 - Beyond.mp3 47 | /home/camelia/Music/Playlists/English/lovely__with_Khalid_.mp3 48 | /home/camelia/Music/Playlists/Korean/Shut_Down.mp3 49 | /home/camelia/Music/Playlists/Korean/Pink_Venom.mp3 50 | /home/camelia/Music/Playlists/Korean/Forever_Young.mp3 51 | /home/camelia/Music/Playlists/Korean/Downtown_Baby.mp3 52 | /home/camelia/Music/Playlists/Korean/I_AMBLOO.mp3 53 | /home/camelia/Music/Playlists/Chinese/Don_t Be Afraid ft.黃祝賢儒 - Boon Hui Lu, 黃祝賢儒.mp3 54 | /home/camelia/Music/Playlists/Chinese/讓我留在你身邊 - Boon Hui Lu.mp3 55 | /home/camelia/Music/Playlists/Chinese/Losing Myself - Boon Hui Lu_GBOYSWAG.mp3 56 | /home/camelia/Music/Playlists/Chinese/Messed Up - Boon Hui Lu_Qiu Feng Ze.mp3 57 | /home/camelia/Music/Playlists/Chinese/夏日可畏 - Bo Peep.mp3 58 | /home/camelia/Music/Playlists/Chinese/HOW OLD R U - BOY STORY.mp3 59 | /home/camelia/Music/Playlists/Korean/Fly_To_My_Room.mp3 60 | /home/camelia/Music/Playlists/Korean/Dynamite.mp3 61 | /home/camelia/Music/Playlists/Korean/Butter.mp3 62 | /home/camelia/Music/Playlists/Korean/Euphoria.mp3 63 | /home/camelia/Music/Playlists/Korean/We_are_Bulletproof___the_Eternal.mp3 64 | /home/camelia/Music/Playlists/Korean/Your_eyes_tell.mp3 65 | /home/camelia/Music/Playlists/Korean/Mikrokosmos.mp3 66 | /home/camelia/Music/Playlists/Korean/Coffee.mp3 67 | /home/camelia/Music/Playlists/Korean/Paldogangsan.mp3 68 | /home/camelia/Music/Playlists/Korean/Jump.mp3 69 | /home/camelia/Music/Playlists/Korean/Converse_High.mp3 70 | /home/camelia/Music/Playlists/Korean/I_Need_U.mp3 71 | /home/camelia/Music/Playlists/Korean/Autumn_Leaves.mp3 72 | /home/camelia/Music/Playlists/Korean/Butterfly.mp3 73 | /home/camelia/Music/Playlists/Korean/House_of_Cards_-_Full_Length_Edition.mp3 74 | /home/camelia/Music/Playlists/Korean/Love_Is_Not_Over_-_Full_Length_Edition.mp3 75 | /home/camelia/Music/Playlists/Korean/Run.mp3 76 | /home/camelia/Music/Playlists/Korean/Dope.mp3 77 | /home/camelia/Music/Playlists/Korean/Save_Me.mp3 78 | /home/camelia/Music/Playlists/Korean/Epilogue__Young_Forever.mp3 79 | /home/camelia/Music/Playlists/Korean/Spring_Day.mp3 80 | /home/camelia/Music/Playlists/Korean/Black_Swan.mp3 81 | /home/camelia/Music/Playlists/Korean/Dis-ease.mp3 82 | /home/camelia/Music/Playlists/Korean/Make_It_Right__feat__Lauv_.mp3 83 | /home/camelia/Music/Playlists/Japanese/韻波句徒 - From THE FIRST TAKE - CHEHON.mp3 84 | /home/camelia/Music/Playlists/Chinese/Masterpiece - Chen Linong, Hailee Steinfeld.mp3 85 | /home/camelia/Music/Playlists/English/A_Thousand_Years.mp3 86 | /home/camelia/Music/Playlists/Chinese/下坠 - Corki_刘宗鑫.mp3 87 | /home/camelia/Music/Playlists/Chinese/Reverse - CORSAK, 马吟吟.mp3 88 | /home/camelia/Music/Playlists/Chinese/驰 Timelapse - CORSAK.mp3 89 | /home/camelia/Music/Playlists/English/GLOW.mp3 90 | /home/camelia/Music/Playlists/Chinese/刻在我心底的名字 - Crowd Lu.mp3 91 | /home/camelia/Music/Playlists/Chinese/愛情怎麼了嗎 - Crowd Lu.mp3 92 | /home/camelia/Music/Playlists/Chinese/能否追到你 - Danny Koo_陳培永_蔡常樂_何念兹_韓曉噯_許靖瑜.mp3 93 | /home/camelia/Music/Playlists/Chinese/我們不一樣 - Da Zhuang.mp3 94 | /home/camelia/Music/Playlists/Chinese/说散就散 - Derrick Hoh_Kelly Pan.mp3 95 | /home/camelia/Music/Playlists/Japanese/猫 - DISH__.mp3 96 | /home/camelia/Music/Playlists/Japanese/猫 〜THE FIRST TAKE ver.〜 - DISH__.mp3 97 | /home/camelia/Music/Playlists/Instrumentals/Flower_Dance.mp3 98 | /home/camelia/Music/Playlists/Instrumentals/Jazz_Suite_No__2__VI__Waltz_2.mp3 99 | /home/camelia/Music/Playlists/Korean/I_m_Gonna_Love_You.mp3 100 | /home/camelia/Music/Playlists/Korean/No_Blueberries.mp3 101 | /home/camelia/Music/Playlists/Chinese/孤勇者 - Eason Chan.mp3 102 | /home/camelia/Music/Playlists/Chinese/孤勇者 - 《英雄聯盟_雙城之戰》動畫劇集中文主題曲 - Eason Chan.mp3 103 | /home/camelia/Music/Playlists/Chinese/我們 - 《後來的我們》電影主題曲 - Eason Chan.mp3 104 | /home/camelia/Music/Playlists/Chinese/十年 - Eason Chan.mp3 105 | /home/camelia/Music/Playlists/Chinese/因為愛情 - Eason Chan_Faye Wong.mp3 106 | /home/camelia/Music/Playlists/Instrumentals/Elgar__Cello_Concerto_in_E_Minor__Op__85__I__Adagio_-_Moderato.mp3 107 | /home/camelia/Music/Playlists/Chinese/愛情你比我想的閣較偉大 -《當男人戀愛時》電影主題曲 - EggPlantEgg.mp3 108 | /home/camelia/Music/Playlists/Chinese/這款自作多情 - EggPlantEgg.mp3 109 | /home/camelia/Music/Playlists/Japanese/Koko de Iki wo Shite - eill.mp3 110 | /home/camelia/Music/Playlists/English/Ain_t_Ready.mp3 111 | /home/camelia/Music/Playlists/Korean/Drunk-Dazed.mp3 112 | /home/camelia/Music/Playlists/Korean/FEVER.mp3 113 | /home/camelia/Music/Playlists/Korean/Not_For_Sale.mp3 114 | /home/camelia/Music/Playlists/Korean/10_Months.mp3 115 | /home/camelia/Music/Playlists/Korean/Polaroid_Love.mp3 116 | /home/camelia/Music/Playlists/Korean/Just_A_Little_Bit.mp3 117 | /home/camelia/Music/Playlists/Korean/Sacrifice__Eat_Me_Up_.mp3 118 | /home/camelia/Music/Playlists/Chinese/你不屬於我 - 《比悲傷更悲傷的故事》影集版片尾曲 - Eric Chou.mp3 119 | /home/camelia/Music/Playlists/Chinese/黏黏 (feat. 許瑋甯) - Eric Chou, 許瑋甯.mp3 120 | /home/camelia/Music/Playlists/Chinese/你,好不好? - Eric Chou.mp3 121 | /home/camelia/Music/Playlists/Chinese/你的婚禮 - Eric Chou.mp3 122 | /home/camelia/Music/Playlists/Chinese/想知道你在想什麼 - 《我吃了那男孩一整年的早餐》電影主題曲 - Eric Chou.mp3 123 | /home/camelia/Music/Playlists/Chinese/愛我的時候 - Eric Chou_單依純.mp3 124 | /home/camelia/Music/Playlists/English/Tears_in_Heaven.mp3 125 | /home/camelia/Music/Playlists/English/Nobody_Knows_You_When_You_re_Down_and_Out_-_Acoustic_Live.mp3 126 | /home/camelia/Music/Playlists/Korean/Runaway.mp3 127 | /home/camelia/Music/Playlists/English/I_Don_t_Miss_You.mp3 128 | /home/camelia/Music/Playlists/English/No_Shame.mp3 129 | /home/camelia/Music/Playlists/English/I_Don_t_Know_You_Anymore.mp3 130 | /home/camelia/Music/Playlists/English/What_If.mp3 131 | /home/camelia/Music/Playlists/English/One_Way_Lover.mp3 132 | /home/camelia/Music/Playlists/Japanese/Itsumo Nando Demo (Always With Me) - Erutan.mp3 133 | /home/camelia/Music/Playlists/Japanese/Ao No Waltz - Eve.mp3 134 | /home/camelia/Music/Playlists/Japanese/Taikutsuwo Saienshinaide - Eve.mp3 135 | /home/camelia/Music/Playlists/Japanese/Ikanaide - album ver - Eve.mp3 136 | /home/camelia/Music/Playlists/Japanese/Nonsence philosophy - Eve, Sou.mp3 137 | /home/camelia/Music/Playlists/Korean/Monster.mp3 138 | /home/camelia/Music/Playlists/Korean/Love_Shot.mp3 139 | /home/camelia/Music/Playlists/Korean/Universe.mp3 140 | /home/camelia/Music/Playlists/Korean/Fall.mp3 141 | /home/camelia/Music/Playlists/Korean/CALL_ME_BABY.mp3 142 | /home/camelia/Music/Playlists/Korean/Paper_Cuts.mp3 143 | /home/camelia/Music/Playlists/Chinese/Only Have Feelings For You - Fahrenheit.mp3 144 | /home/camelia/Music/Playlists/Chinese/浮木 - Feng Ze.mp3 145 | /home/camelia/Music/Playlists/Japanese/Oddloop - frederic.mp3 146 | /home/camelia/Music/Playlists/Instrumentals/Ballade_No__1_in_G_Minor__Op__23.mp3 147 | /home/camelia/Music/Playlists/Instrumentals/12__tudes__Op__25__No__11_in_A_Minor__Winter_Wind_.mp3 148 | /home/camelia/Music/Playlists/Japanese/grace - Fujii Kaze.mp3 149 | /home/camelia/Music/Playlists/Japanese/Shinunoga E-Wa - Fujii Kaze.mp3 150 | /home/camelia/Music/Playlists/Japanese/damn - Fujii Kaze.mp3 151 | /home/camelia/Music/Playlists/Japanese/何なんw - Fujii Kaze.mp3 152 | /home/camelia/Music/Playlists/Japanese/きらり - Fujii Kaze.mp3 153 | /home/camelia/Music/Playlists/Japanese/まつり - Fujii Kaze.mp3 154 | /home/camelia/Music/Playlists/English/Achilles_Come_Down.mp3 155 | /home/camelia/Music/Playlists/English/boyfriend_material.mp3 156 | /home/camelia/Music/Playlists/Japanese/Loneliness - G.E.M..mp3 157 | /home/camelia/Music/Playlists/Chinese/Man Who Laughs - G.E.M..mp3 158 | /home/camelia/Music/Playlists/Chinese/HELL - G.E.M..mp3 159 | /home/camelia/Music/Playlists/Chinese/倒數 - G.E.M..mp3 160 | /home/camelia/Music/Playlists/Chinese/Fly Away - G.E.M..mp3 161 | /home/camelia/Music/Playlists/Chinese/面壁者 - 《三體》動畫片尾主題曲 - G.E.M..mp3 162 | /home/camelia/Music/Playlists/Chinese/泡沫 - G.E.M..mp3 163 | /home/camelia/Music/Playlists/Chinese/來自天堂的魔鬼 - G.E.M..mp3 164 | /home/camelia/Music/Playlists/Chinese/再見 - G.E.M..mp3 165 | /home/camelia/Music/Playlists/Chinese/光年之外 (電影 《Passengers》 中國區主題曲) - G.E.M..mp3 166 | /home/camelia/Music/Playlists/Chinese/倒數 - G.E.M..mp3 167 | /home/camelia/Music/Playlists/Chinese/依然睡公主 - G.E.M..mp3 168 | /home/camelia/Music/Playlists/Chinese/句號 - G.E.M..mp3 169 | /home/camelia/Music/Playlists/Chinese/孤獨 - G.E.M..mp3 170 | /home/camelia/Music/Playlists/Chinese/你不是第一個離開的人 - G.E.M..mp3 171 | /home/camelia/Music/Playlists/Korean/TOMBOY.mp3 172 | /home/camelia/Music/Playlists/Korean/Oh_my_god.mp3 173 | /home/camelia/Music/Playlists/English/Feel_Good_Inc_.mp3 174 | /home/camelia/Music/Playlists/English/Just_the_Two_of_Us__feat__Bill_Withers_.mp3 175 | /home/camelia/Music/Playlists/English/still_feel_.mp3 176 | /home/camelia/Music/Playlists/English/Head_In_The_Clouds.mp3 177 | /home/camelia/Music/Playlists/Korean/Toward_Tomorrow.mp3 178 | /home/camelia/Music/Playlists/Chinese/小幸運 - Hebe Tien.mp3 179 | /home/camelia/Music/Playlists/Korean/And_July.mp3 180 | /home/camelia/Music/Playlists/Korean/You__Clouds__Rain.mp3 181 | /home/camelia/Music/Playlists/Chinese/Made In China - Higher Brothers, DJ Snake.mp3 182 | /home/camelia/Music/Playlists/Japanese/One Last Kiss - Hikaru Utada.mp3 183 | /home/camelia/Music/Playlists/English/Oceans__Where_Feet_May_Fail_.mp3 184 | /home/camelia/Music/Playlists/Chinese/只是太愛你 - Hins Cheung.mp3 185 | /home/camelia/Music/Playlists/Instrumentals/Jolts_in_the_Forest.mp3 186 | /home/camelia/Music/Playlists/Chinese/Samudrartha - HOYO-MiX, 优素, 宫奇.mp3 187 | /home/camelia/Music/Playlists/English/Take_Me_To_Church.mp3 188 | /home/camelia/Music/Playlists/English/Would_That_I.mp3 189 | /home/camelia/Music/Playlists/Chinese/好想愛這個世界啊 - Hua Chen Yu.mp3 190 | /home/camelia/Music/Playlists/English/Just the Two of Us - Hu Tao.mp3 191 | /home/camelia/Music/Playlists/Chinese/那些年 - Hu Xia.mp3 192 | /home/camelia/Music/Playlists/Chinese/心如止水 - Ice Paper.mp3 193 | /home/camelia/Music/Playlists/Chinese/長江絕戀 - Ice Paper.mp3 194 | /home/camelia/Music/Playlists/Chinese/6.白媚生 - Ice Paper, 孤矢.mp3 195 | /home/camelia/Music/Playlists/Chinese/失眠 - Ice Paper.mp3 196 | /home/camelia/Music/Playlists/Instrumentals/Isolation.mp3 197 | /home/camelia/Music/Playlists/Instrumentals/Away.mp3 198 | /home/camelia/Music/Playlists/Instrumentals/Bouree.mp3 199 | /home/camelia/Music/Playlists/Instrumentals/Suite_No_1.mp3 200 | /home/camelia/Music/Playlists/Korean/LOVE_SCENARIO.mp3 201 | /home/camelia/Music/Playlists/Korean/I_credible.mp3 202 | /home/camelia/Music/Playlists/Japanese/NIGHT DANCER - imase.mp3 203 | /home/camelia/Music/Playlists/Japanese/Lagtrain - inubakumori.mp3 204 | /home/camelia/Music/Playlists/Japanese/Lost Umbrella - inubakumori.mp3 205 | /home/camelia/Music/Playlists/Japanese/Rainy Boots - inubakumori.mp3 206 | /home/camelia/Music/Playlists/Korean/SNEAKERS.mp3 207 | /home/camelia/Music/Playlists/Korean/WANNABE.mp3 208 | /home/camelia/Music/Playlists/Korean/UNTOUCHABLE.mp3 209 | /home/camelia/Music/Playlists/Korean/eight_Prod__Feat__SUGA_of_BTS_.mp3 210 | /home/camelia/Music/Playlists/Korean/LILAC.mp3 211 | /home/camelia/Music/Playlists/Korean/My_sea.mp3 212 | /home/camelia/Music/Playlists/Korean/Blueming.mp3 213 | /home/camelia/Music/Playlists/Korean/above_the_time.mp3 214 | /home/camelia/Music/Playlists/Korean/Love_poem.mp3 215 | /home/camelia/Music/Playlists/Korean/Palette__feat__G-DRAGON_.mp3 216 | /home/camelia/Music/Playlists/Korean/Good_day.mp3 217 | /home/camelia/Music/Playlists/Korean/Can_t_Love_You_Anymore__With_OHHYUK_.mp3 218 | /home/camelia/Music/Playlists/Korean/eight.mp3 219 | /home/camelia/Music/Playlists/Korean/I_AM.mp3 220 | /home/camelia/Music/Playlists/Korean/Sequence.mp3 221 | /home/camelia/Music/Playlists/Chinese/OKAY - Jackson Wang.mp3 222 | /home/camelia/Music/Playlists/English/100_Ways.mp3 223 | /home/camelia/Music/Playlists/Instrumentals/Elgar__Cello_Concerto_in_E_Minor__Op__85__IV__Allegro_-_Allegro_ma_non_troppo.mp3 224 | /home/camelia/Music/Playlists/Instrumentals/Dvo__k__Cello_Concerto_in_B_Minor__Op__104__B__191__II__Adagio_ma_non_troppo.mp3 225 | /home/camelia/Music/Playlists/Chinese/我的夢 - Jane Zhang.mp3 226 | /home/camelia/Music/Playlists/English/Dream_It_Possible.mp3 227 | /home/camelia/Music/Playlists/Chinese/愛上現在的我 (feat. 高爾宣 OSN) - Janice Yan, 高爾宣 OSN.mp3 228 | /home/camelia/Music/Playlists/Chinese/最偉大的作品 - Jay Chou.mp3 229 | /home/camelia/Music/Playlists/Chinese/Mojito - Jay Chou.mp3 230 | /home/camelia/Music/Playlists/Chinese/不愛我就拉倒 - Jay Chou.mp3 231 | /home/camelia/Music/Playlists/Chinese/我是如此相信 - Jay Chou.mp3 232 | /home/camelia/Music/Playlists/Chinese/紅顏如霜 - Jay Chou.mp3 233 | /home/camelia/Music/Playlists/Chinese/說好不哭 - Jay Chou, Ashin Chen.mp3 234 | /home/camelia/Music/Playlists/English/Fade_-_English_Version.mp3 235 | /home/camelia/Music/Playlists/English/EXPIRED.mp3 236 | /home/camelia/Music/Playlists/Instrumentals/Silent_Moon.mp3 237 | /home/camelia/Music/Playlists/Instrumentals/Rainbow.mp3 238 | /home/camelia/Music/Playlists/Korean/Killin__Me_Good.mp3 239 | /home/camelia/Music/Playlists/Chinese/沒有你並無掛念 - 劇集 “那些我愛過的人” 插曲 - Jinny Ng.mp3 240 | /home/camelia/Music/Playlists/Chinese/那些你很冒險的夢 - JJ Lin.mp3 241 | /home/camelia/Music/Playlists/Chinese/殺手 - JJ Lin.mp3 242 | /home/camelia/Music/Playlists/Instrumentals/One_Summer_Day.mp3 243 | /home/camelia/Music/Playlists/Instrumentals/Merry-Go-Round_of_Life_-_from__Howl_s_Moving_Castle_.mp3 244 | /home/camelia/Music/Playlists/Instrumentals/Summer.mp3 245 | /home/camelia/Music/Playlists/Chinese/小小 - Joey Yung.mp3 246 | /home/camelia/Music/Playlists/Instrumentals/Piano_Trio_No__1_in_B_Major__Op__8__I__Allegro_con_brio.mp3 247 | /home/camelia/Music/Playlists/Instrumentals/Cello_Suite_No__1_in_G_Major__BWV_1007__I__Pr_lude.mp3 248 | /home/camelia/Music/Playlists/English/Afterthought.mp3 249 | /home/camelia/Music/Playlists/Chinese/狐狸 - Joker Xue.mp3 250 | /home/camelia/Music/Playlists/Chinese/認真的雪 - Joker Xue.mp3 251 | /home/camelia/Music/Playlists/Chinese/有没有 - Joker Xue.mp3 252 | /home/camelia/Music/Playlists/Chinese/說愛你 - Jolin Tsai.mp3 253 | /home/camelia/Music/Playlists/Chinese/玫瑰少年 - Jolin Tsai.mp3 254 | /home/camelia/Music/Playlists/Chinese/山丘 - Jonathan Lee.mp3 255 | /home/camelia/Music/Playlists/Korean/Lonely.mp3 256 | /home/camelia/Music/Playlists/Korean/ARIA.mp3 257 | /home/camelia/Music/Playlists/English/this_is_what_falling_in_love_feels_like.mp3 258 | /home/camelia/Music/Playlists/English/golden_hour.mp3 259 | /home/camelia/Music/Playlists/Japanese/KING - Kanaria.mp3 260 | /home/camelia/Music/Playlists/Japanese/suima - KANKAN, Ayase.mp3 261 | /home/camelia/Music/Playlists/Japanese/歌うたいのバラッド - From THE FIRST TAKE - Kazuyoshi Saito.mp3 262 | /home/camelia/Music/Playlists/Japanese/LOSER - Kenshi Yonezu.mp3 263 | /home/camelia/Music/Playlists/Japanese/Grey and Blue - Kenshi Yonezu.mp3 264 | /home/camelia/Music/Playlists/Japanese/M87 - Kenshi Yonezu.mp3 265 | /home/camelia/Music/Playlists/Japanese/M八七 - Kenshi Yonezu.mp3 266 | /home/camelia/Music/Playlists/Japanese/orion - Kenshi Yonezu.mp3 267 | /home/camelia/Music/Playlists/Japanese/灰色と青 ( + 菅田将暉 ) - Kenshi Yonezu.mp3 268 | /home/camelia/Music/Playlists/Japanese/Décolleté - Kenshi Yonezu.mp3 269 | /home/camelia/Music/Playlists/Korean/LE_VOYA9E.mp3 270 | /home/camelia/Music/Playlists/Japanese/WA DA DA (Japanese version) - From THE FIRST TAKE - Kep1er.mp3 271 | /home/camelia/Music/Playlists/English/2_soon.mp3 272 | /home/camelia/Music/Playlists/English/drunk.mp3 273 | /home/camelia/Music/Playlists/English/bandaids.mp3 274 | /home/camelia/Music/Playlists/Korean/Hate_that_.mp3 275 | /home/camelia/Music/Playlists/English/Fantasy.mp3 276 | /home/camelia/Music/Playlists/Japanese/あいしてあいして - Kikuo.mp3 277 | /home/camelia/Music/Playlists/Japanese/Prayer X - King Gnu.mp3 278 | /home/camelia/Music/Playlists/Japanese/Sakayume - King Gnu.mp3 279 | /home/camelia/Music/Playlists/Japanese/Ladylike - KIRA.mp3 280 | /home/camelia/Music/Playlists/Instrumentals/__.mp3 281 | /home/camelia/Music/Playlists/Chinese/追随光 (电视剧 《你微笑时很美》 主题曲) - Krystal Chan.mp3 282 | /home/camelia/Music/Playlists/Chinese/Wait Wait Wait - KUN.mp3 283 | /home/camelia/Music/Playlists/Chinese/Young - KUN.mp3 284 | /home/camelia/Music/Playlists/English/Wait_Wait_Wait.mp3 285 | /home/camelia/Music/Playlists/Chinese/喜歡你 - LaLa Hsu.mp3 286 | /home/camelia/Music/Playlists/Chinese/或许 - LBI利比.mp3 287 | /home/camelia/Music/Playlists/Korean/Sour_Grapes.mp3 288 | /home/camelia/Music/Playlists/Korean/ANTIFRAGILE.mp3 289 | /home/camelia/Music/Playlists/Chinese/Mulan - Lexie Liu.mp3 290 | /home/camelia/Music/Playlists/Chinese/FORTUNA - Lexie Liu.mp3 291 | /home/camelia/Music/Playlists/Chinese/MAGICIAN - Lexie Liu.mp3 292 | /home/camelia/Music/Playlists/Chinese/GANMA - Lexie Liu.mp3 293 | /home/camelia/Music/Playlists/Chinese/巴别塔的猫 A BABEL CAT - Lexie Liu.mp3 294 | /home/camelia/Music/Playlists/Chinese/Manta - Lexie Liu.mp3 295 | /home/camelia/Music/Playlists/Japanese/Answer - Lilas Ikuta.mp3 296 | /home/camelia/Music/Playlists/Chinese/Good Night - Lil Ghost小鬼.mp3 297 | /home/camelia/Music/Playlists/Chinese/Raining - Lil Ghost小鬼.mp3 298 | /home/camelia/Music/Playlists/Instrumentals/Dance_of_the_Sugar_Plum_Fairy.mp3 299 | /home/camelia/Music/Playlists/Japanese/Gurenge - LiSA.mp3 300 | /home/camelia/Music/Playlists/Japanese/unlasting - LiSA.mp3 301 | /home/camelia/Music/Playlists/Japanese/Saikai - LiSA.mp3 302 | /home/camelia/Music/Playlists/Japanese/再会 (produced by Ayase, feat. Uru) - Lisa.mp3 303 | /home/camelia/Music/Playlists/Chinese/剛好遇見你 - Li Yugang.mp3 304 | /home/camelia/Music/Playlists/Korean/Heart Attack.mp3 305 | /home/camelia/Music/Playlists/Korean/Heart_Attack____.mp3 306 | /home/camelia/Music/Playlists/Korean/PTT (Paint The Town).mp3 307 | /home/camelia/Music/Playlists/Korean/PTT__Paint_The_Town_.mp3 308 | /home/camelia/Music/Playlists/English/One_Day.mp3 309 | /home/camelia/Music/Playlists/Instrumentals/Piano_Trio_in_C_Minor__Op__1__No__3__I__Allegro_con_brio.mp3 310 | /home/camelia/Music/Playlists/Chinese/Slow Motion - Lu Han.mp3 311 | /home/camelia/Music/Playlists/English/Used_to_Me.mp3 312 | /home/camelia/Music/Playlists/Japanese/Haikei Sakura Maichiru Kono Hi Ni - Mafumafu.mp3 313 | /home/camelia/Music/Playlists/Japanese/Sore Wo Ai To Yobudake - Mafumafu.mp3 314 | /home/camelia/Music/Playlists/Japanese/Keitairenwa - Mafumafu.mp3 315 | /home/camelia/Music/Playlists/Japanese/Yurei - Mafumafu.mp3 316 | /home/camelia/Music/Playlists/Japanese/Kokoronashi - majiko.mp3 317 | /home/camelia/Music/Playlists/English/I_WANNA_BE_YOUR_SLAVE.mp3 318 | /home/camelia/Music/Playlists/Chinese/給你給我 - Mao Buyi.mp3 319 | /home/camelia/Music/Playlists/Chinese/無名的人(電影《雄獅少年》主題曲) - Mao Buyi.mp3 320 | /home/camelia/Music/Playlists/Japanese/Plastic Love - Mariya Takeuchi.mp3 321 | /home/camelia/Music/Playlists/Japanese/恋人 - From THE FIRST TAKE - Masayuki Suzuki.mp3 322 | /home/camelia/Music/Playlists/Japanese/路 (交差点) - From THE FIRST TAKE - Masayuki Suzuki.mp3 323 | /home/camelia/Music/Playlists/Chinese/玫瑰少年 - Mayday.mp3 324 | /home/camelia/Music/Playlists/Chinese/突然好想你 - Mayday.mp3 325 | /home/camelia/Music/Playlists/English/Beat_It.mp3 326 | /home/camelia/Music/Playlists/Chinese/童話 - Michael Wong.mp3 327 | /home/camelia/Music/Playlists/Japanese/inside you - milet.mp3 328 | /home/camelia/Music/Playlists/Japanese/Final Call - milet.mp3 329 | /home/camelia/Music/Playlists/Japanese/us - From THE FIRST TAKE - milet.mp3 330 | /home/camelia/Music/Playlists/Japanese/Ordinary days - milet.mp3 331 | /home/camelia/Music/Playlists/Japanese/Walkin' In My Lane - milet.mp3 332 | /home/camelia/Music/Playlists/Japanese/Omokage - milet.mp3 333 | /home/camelia/Music/Playlists/Japanese/おもかげ (produced by Vaundy) - milet, Aimer, Lilas Ikuta.mp3 334 | /home/camelia/Music/Playlists/English/Youuu.mp3 335 | /home/camelia/Music/Playlists/Korean/Side By Side.mp3 336 | /home/camelia/Music/Playlists/English/time_machine.mp3 337 | /home/camelia/Music/Playlists/Chinese/紙短情長 - Moon Chew.mp3 338 | /home/camelia/Music/Playlists/English/end_of_a_life.mp3 339 | /home/camelia/Music/Playlists/Japanese/I'm a mess - MY FIRST STORY.mp3 340 | /home/camelia/Music/Playlists/Chinese/中國痛 - Namewee.mp3 341 | /home/camelia/Music/Playlists/Chinese/漂向北方 (Stranger In The North) - Namewee, Leehom Wang.mp3 342 | /home/camelia/Music/Playlists/Chinese/胡志明的雨 - Namewee, 胡光孝.mp3 343 | /home/camelia/Music/Playlists/Chinese/我還是我 - Namewee.mp3 344 | /home/camelia/Music/Playlists/Chinese/Oh My God (feat. 玖壹壹) - Namewee.mp3 345 | /home/camelia/Music/Playlists/Chinese/哥抽菸 - Namewee.mp3 346 | /home/camelia/Music/Playlists/Chinese/單身狗 - Namewee.mp3 347 | /home/camelia/Music/Playlists/Chinese/笑著回家 - Namewee.mp3 348 | /home/camelia/Music/Playlists/Chinese/漂向北方 - Namewee.mp3 349 | /home/camelia/Music/Playlists/Chinese/牆外 - Namewee_小花.mp3 350 | /home/camelia/Music/Playlists/Japanese/Renai Circulation - _namirin.mp3 351 | /home/camelia/Music/Playlists/English/The_Best_For_You.mp3 352 | /home/camelia/Music/Playlists/English/To_Be_Happy.mp3 353 | /home/camelia/Music/Playlists/Japanese/Overdose - natori.mp3 354 | /home/camelia/Music/Playlists/Korean/90_s_Love.mp3 355 | /home/camelia/Music/Playlists/Korean/Ditto.mp3 356 | /home/camelia/Music/Playlists/Korean/Blue_Moon.mp3 357 | /home/camelia/Music/Playlists/English/Sell_Out.mp3 358 | /home/camelia/Music/Playlists/Instrumentals/Paganini__24_Caprices__Op__1__No__24_in_A_Minor(1).mp3 359 | /home/camelia/Music/Playlists/Instrumentals/Paganini__24_Caprices__Op__1__No__24_in_A_Minor.mp3 360 | /home/camelia/Music/Playlists/Instrumentals/Violin_Concerto_No__2_in_B_Minor__Op__7___La_campanella___III__Rondo.mp3 361 | /home/camelia/Music/Playlists/Instrumentals/Sonata_for_Violin_and_Guitar_in_A_Minor__Op__2__No__6__MS_26__Tempo_di_Walzer.mp3 362 | /home/camelia/Music/Playlists/English/lowkey.mp3 363 | /home/camelia/Music/Playlists/Korean/BASS.mp3 364 | /home/camelia/Music/Playlists/Korean/Dolphin.mp3 365 | /home/camelia/Music/Playlists/Korean/DICE.mp3 366 | /home/camelia/Music/Playlists/Chinese/不在一起就不會分開 - Pei-Yu Hung.mp3 367 | /home/camelia/Music/Playlists/Chinese/你要的愛 - Penny Tai.mp3 368 | /home/camelia/Music/Playlists/English/Everything_Goes_On.mp3 369 | /home/camelia/Music/Playlists/Chinese/等不来花开 - pro.mp3 370 | /home/camelia/Music/Playlists/Instrumentals/Tchaikovsky__Swan_Lake__Op__20__Act_II__No__10__Scene__Moderato.mp3 371 | /home/camelia/Music/Playlists/Chinese/谁都别吝啬 - R1SE.mp3 372 | /home/camelia/Music/Playlists/English/High_and_Dry.mp3 373 | /home/camelia/Music/Playlists/Korean/Dancing_In_The_Rain.mp3 374 | /home/camelia/Music/Playlists/Japanese/Zenzenzense - movie ver. - RADWIMPS.mp3 375 | /home/camelia/Music/Playlists/Japanese/Sparkle - Movie Version - RADWIMPS.mp3 376 | /home/camelia/Music/Playlists/Japanese/Nandemonaiya - movie ver. - RADWIMPS.mp3 377 | /home/camelia/Music/Playlists/Instrumentals/Date_2.mp3 378 | /home/camelia/Music/Playlists/Japanese/Suzume (feat. Toaka) - RADWIMPS.mp3 379 | /home/camelia/Music/Playlists/Korean/Yours.mp3 380 | /home/camelia/Music/Playlists/Japanese/summertime - Rainych.mp3 381 | /home/camelia/Music/Playlists/Japanese/Kiss Me More - Japanese Version - Rainych.mp3 382 | /home/camelia/Music/Playlists/Korean/In_My_Dreams.mp3 383 | /home/camelia/Music/Playlists/Chinese/走不出的回忆 - Ren Ran.mp3 384 | /home/camelia/Music/Playlists/Chinese/空空如也 - Ren Ran.mp3 385 | /home/camelia/Music/Playlists/Chinese/飞鸟和蝉 - Ren Ran.mp3 386 | /home/camelia/Music/Playlists/Chinese/没握住的星 - Ren Ran.mp3 387 | /home/camelia/Music/Playlists/English/THREE-BODY_-_____________.mp3 388 | /home/camelia/Music/Playlists/Chinese/李白 - Ronghao Li.mp3 389 | /home/camelia/Music/Playlists/Chinese/烏梅子醬 - Ronghao Li.mp3 390 | /home/camelia/Music/Playlists/Chinese/Never Again - Ryan.B, AY杨佬叁.mp3 391 | /home/camelia/Music/Playlists/Chinese/No Reason - Ryan.B, effie.mp3 392 | /home/camelia/Music/Playlists/Japanese/takt - Mafumafu.mp3 393 | /home/camelia/Music/Playlists/Chinese/左手指月 (電視劇《香蜜沉沉燼如霜》片尾曲) - Sa Dingding.mp3 394 | /home/camelia/Music/Playlists/Korean/Love_Me_Like_That.mp3 395 | /home/camelia/Music/Playlists/English/Love_Me_Like_That.mp3 396 | /home/camelia/Music/Playlists/Chinese/接受 - Sam Lin.mp3 397 | /home/camelia/Music/Playlists/English/gps.mp3 398 | /home/camelia/Music/Playlists/Instrumentals/Kazemachi.mp3 399 | /home/camelia/Music/Playlists/Instrumentals/Heart.mp3 400 | /home/camelia/Music/Playlists/Instrumentals/Eternity.mp3 401 | /home/camelia/Music/Playlists/Instrumentals/Advent_Wreath.mp3 402 | /home/camelia/Music/Playlists/English/Lose_You_To_Love_Me.mp3 403 | /home/camelia/Music/Playlists/Korean/28_Reasons.mp3 404 | /home/camelia/Music/Playlists/Korean/Pretty_U.mp3 405 | /home/camelia/Music/Playlists/Korean/Falling_For_U.mp3 406 | /home/camelia/Music/Playlists/Korean/_________Fallin__Flower_.mp3 407 | /home/camelia/Music/Playlists/Korean/HOME_RUN.mp3 408 | /home/camelia/Music/Playlists/Korean/AH__LOVE.mp3 409 | /home/camelia/Music/Playlists/Korean/Heaven_s_Cloud.mp3 410 | /home/camelia/Music/Playlists/Chinese/你的答案 - Shania Yan.mp3 411 | /home/camelia/Music/Playlists/English/Wide_Awake.mp3 412 | /home/camelia/Music/Playlists/Korean/Way_Back_Home.mp3 413 | /home/camelia/Music/Playlists/English/I_Know_What_You_Did_Last_Summer.mp3 414 | /home/camelia/Music/Playlists/Korean/____________.mp3 415 | /home/camelia/Music/Playlists/English/Scarborough_Fair___Canticle.mp3 416 | /home/camelia/Music/Playlists/English/Bridge_Over_Troubled_Water.mp3 417 | /home/camelia/Music/Playlists/Chinese/寄明月(梦幻西游手游同人曲入骨相思) - SING女团.mp3 418 | /home/camelia/Music/Playlists/Chinese/迢迢共此生 - Smile_小千_萧忆情.mp3 419 | /home/camelia/Music/Playlists/Chinese/500天 - Sophie Chen.mp3 420 | /home/camelia/Music/Playlists/Chinese/王牌 - Sophie Chen.mp3 421 | /home/camelia/Music/Playlists/Chinese/Song About Life - Sophie Chen.mp3 422 | /home/camelia/Music/Playlists/Chinese/Fall in Love - Sophie Chen, Vicky Chen.mp3 423 | /home/camelia/Music/Playlists/English/The_Lullaby.mp3 424 | /home/camelia/Music/Playlists/Chinese/0321 - space x.mp3 425 | /home/camelia/Music/Playlists/Korean/Villain.mp3 426 | /home/camelia/Music/Playlists/Korean/ALL_IN.mp3 427 | /home/camelia/Music/Playlists/Korean/Mixtape_1.mp3 428 | /home/camelia/Music/Playlists/Korean/God_s_Menu.mp3 429 | /home/camelia/Music/Playlists/Korean/Back_Door.mp3 430 | /home/camelia/Music/Playlists/Korean/MANIAC.mp3 431 | /home/camelia/Music/Playlists/Korean/Lonely_St_.mp3 432 | /home/camelia/Music/Playlists/Chinese/trust me - sunkis.mp3 433 | /home/camelia/Music/Playlists/English/4ever.mp3 434 | /home/camelia/Music/Playlists/Korean/Clockwork.mp3 435 | /home/camelia/Music/Playlists/Korean/Guilty.mp3 436 | /home/camelia/Music/Playlists/Japanese/Antifan - TAKANE NO NADESHIKO.mp3 437 | /home/camelia/Music/Playlists/Chinese/空白格 - Tanya Chua.mp3 438 | /home/camelia/Music/Playlists/English/The_Last_Time__feat__Gary_Lightbody_of_Snow_Patrol___Taylor_s_Version_.mp3 439 | /home/camelia/Music/Playlists/Chinese/Side By Side (Chinese Version) - THE 8.mp3 440 | /home/camelia/Music/Playlists/English/Yesterday_-_Remastered_2009.mp3 441 | /home/camelia/Music/Playlists/English/Blackbird_-_Remastered_2009.mp3 442 | /home/camelia/Music/Playlists/English/Let_It_Be_-_Remastered_2009.mp3 443 | /home/camelia/Music/Playlists/English/I_Love_You_More__than_adore_.mp3 444 | /home/camelia/Music/Playlists/Chinese/不介意 - The Crane.mp3 445 | /home/camelia/Music/Playlists/English/Easier.mp3 446 | /home/camelia/Music/Playlists/English/Shallow_River.mp3 447 | /home/camelia/Music/Playlists/English/Strangler_Fig.mp3 448 | /home/camelia/Music/Playlists/English/Tongues___Teeth.mp3 449 | /home/camelia/Music/Playlists/English/Sleeping_Giants.mp3 450 | /home/camelia/Music/Playlists/English/Of_Everlong.mp3 451 | /home/camelia/Music/Playlists/English/Never_Love_an_Anchor.mp3 452 | /home/camelia/Music/Playlists/English/New_Discovery.mp3 453 | /home/camelia/Music/Playlists/English/Curses.mp3 454 | /home/camelia/Music/Playlists/English/Turn_out_the_Lights.mp3 455 | /home/camelia/Music/Playlists/English/Fly_Me_to_the_Moon.mp3 456 | /home/camelia/Music/Playlists/Japanese/Centimeter - The Peggies.mp3 457 | /home/camelia/Music/Playlists/Korean/Blue_Hour.mp3 458 | /home/camelia/Music/Playlists/Korean/Good_Boy_Gone_Bad.mp3 459 | /home/camelia/Music/Playlists/Korean/Lonely_Boy__The_tattoo_on_my_ring_finger_.mp3 460 | /home/camelia/Music/Playlists/Korean/LO_ER_LO_ER.mp3 461 | /home/camelia/Music/Playlists/Korean/0X1_LOVESONG__I_Know_I_Love_You__feat__Seori.mp3 462 | /home/camelia/Music/Playlists/Korean/Anti-Romantic.mp3 463 | /home/camelia/Music/Playlists/Chinese/終究還是因為愛 - TRASH.mp3 464 | /home/camelia/Music/Playlists/Japanese/I'm getting on the bus to the other world, see ya! - TUYU (1).mp3 465 | /home/camelia/Music/Playlists/Japanese/Compared Child - TUYU.mp3 466 | /home/camelia/Music/Playlists/Japanese/Goodbye to Rock you - TUYU.mp3 467 | /home/camelia/Music/Playlists/Japanese/What if this isn't a slave_ - TUYU.mp3 468 | /home/camelia/Music/Playlists/Japanese/I'm getting on the bus to the other world, see ya! - TUYU.mp3 469 | /home/camelia/Music/Playlists/Korean/CRY_FOR_ME.mp3 470 | /home/camelia/Music/Playlists/Korean/What_is_Love.mp3 471 | /home/camelia/Music/Playlists/Korean/YES_or_YES.mp3 472 | /home/camelia/Music/Playlists/Korean/The Feels.mp3 473 | /home/camelia/Music/Playlists/Korean/Talk_that_Talk.mp3 474 | /home/camelia/Music/Playlists/Korean/MOONLIGHT_SUNRISE.mp3 475 | /home/camelia/Music/Playlists/Korean/Hare_Hare.mp3 476 | /home/camelia/Music/Playlists/Japanese/Tokyo Teddy Bear - Neru, IKASAN.mp3 477 | /home/camelia/Music/Playlists/English/the_spectre.mp3 478 | /home/camelia/Music/Playlists/Instrumentals/River_Flows_In_You.sync-conflict-20231010-174848-G6BW7UY.mp3 479 | /home/camelia/Music/Playlists/Chinese/达拉崩吧 - Live - 周深.mp3 480 | /home/camelia/Music/Playlists/Chinese/我是誰 - Jolin Tsai, Jony J.mp3 481 | /home/camelia/Music/Playlists/Chinese/被人 (电视剧 《你微笑时很美》 插曲) - Joker Xue.mp3 482 | /home/camelia/Music/Playlists/Chinese/Falling You (電視劇《點燃我, 溫暖你》插曲) - 曾可妮, 都智文.mp3 483 | /home/camelia/Music/Playlists/Instrumentals/_In_The_Hall_Of_The_Mountain_King__from_Peer_Gynt_Suite_N_1__Op__46.mp3 484 | /home/camelia/Music/Playlists/Instrumentals/Kiss_The_Rain.mp3 485 | /home/camelia/Music/Playlists/Instrumentals/River_Flows_In_You.mp3 486 | /home/camelia/Music/Playlists/Chinese/时光教会我的 - 动画《时光代理人》插曲钢琴版 - 邹俊健.mp3 487 | /home/camelia/Music/Playlists/Chinese/If You_re Really Gonna Leave Me - Vicky Chen.mp3 488 | /home/camelia/Music/Playlists/Chinese/My Love is Selfish - Vicky Chen.mp3 489 | /home/camelia/Music/Playlists/English/December_Composer_-_Piano_Ver_.mp3 490 | /home/camelia/Music/Playlists/English/She.mp3 491 | /home/camelia/Music/Playlists/Japanese/シネマ (feat. 小豆沢こはね&白石杏&東雲彰人&青柳冬弥&KAITO) - Vivid BAD SQUAD.mp3 492 | /home/camelia/Music/Playlists/Instrumentals/Wings_of_Piano______.mp3 493 | /home/camelia/Music/Playlists/Instrumentals/Evolution_Era.mp3 494 | /home/camelia/Music/Playlists/Chinese/天下有情人 - Wakin Chau, Chyi Yu.mp3 495 | /home/camelia/Music/Playlists/Chinese/Kick Back - WayV.mp3 496 | /home/camelia/Music/Playlists/Chinese/Moonwalk - WayV.mp3 497 | /home/camelia/Music/Playlists/Chinese/Love Talk - WayV.mp3 498 | /home/camelia/Music/Playlists/Korean/After_School.mp3 499 | /home/camelia/Music/Playlists/Chinese/如果可以 - 電影"月老"主題曲 - WeiBird.mp3 500 | /home/camelia/Music/Playlists/Chinese/慢慢等 - WeiBird.mp3 501 | /home/camelia/Music/Playlists/English/R_I_P_.mp3 502 | /home/camelia/Music/Playlists/Chinese/大海 - WeiBird.mp3 503 | /home/camelia/Music/Playlists/Chinese/不得不爱 - Will Pan.mp3 504 | /home/camelia/Music/Playlists/English/Hated_by_life_itself_.mp3 505 | /home/camelia/Music/Playlists/English/phony.mp3 506 | /home/camelia/Music/Playlists/English/Matsuri.mp3 507 | /home/camelia/Music/Playlists/English/Live_in_Life.mp3 508 | /home/camelia/Music/Playlists/Chinese/不存在 - W.M.L.mp3 509 | /home/camelia/Music/Playlists/Chinese/炙愛 - W.M.L, Vicky Chen.mp3 510 | /home/camelia/Music/Playlists/Chinese/Say Something to Me (feat. Sophie Chen) - W.M.L.mp3 511 | /home/camelia/Music/Playlists/Chinese/你接受嗎 - W.M.L_Vicky Chen.mp3 512 | /home/camelia/Music/Playlists/Chinese/I_m Alive - W.M.L_Vicky Chen.mp3 513 | /home/camelia/Music/Playlists/Instrumentals/Piano_Sonata_No__16_in_C_Major__K__545__Sonata_facile___I__Allegro.mp3 514 | /home/camelia/Music/Playlists/Instrumentals/Fantasia_in_D_Minor__K__397.sync-conflict-20231010-174848-G6BW7UY.mp3 515 | /home/camelia/Music/Playlists/Instrumentals/Fantasia_in_D_Minor__K__397.mp3 516 | /home/camelia/Music/Playlists/Instrumentals/Symphony_No__40_in_G_Minor__K__550__I__Molto_allegro.mp3 517 | /home/camelia/Music/Playlists/Japanese/シビュラ (feat. 初音ミク) - wotaku.mp3 518 | /home/camelia/Music/Playlists/Chinese/Addiction - Xiao Bing Chih.mp3 519 | /home/camelia/Music/Playlists/Chinese/滿足 - Xiao Zhan.mp3 520 | /home/camelia/Music/Playlists/Chinese/無羈 - Xiao Zhan_王一博.mp3 521 | /home/camelia/Music/Playlists/Japanese/Haru wo Tsugeru - yama.mp3 522 | /home/camelia/Music/Playlists/Instrumentals/Love_Me.sync-conflict-20231010-174848-G6BW7UY.mp3 523 | /home/camelia/Music/Playlists/Instrumentals/Love_Me.mp3 524 | /home/camelia/Music/Playlists/Japanese/Romance - YOASOBI.mp3 525 | /home/camelia/Music/Playlists/Japanese/もしも命が描けたら - YOASOBI.mp3 526 | /home/camelia/Music/Playlists/Japanese/Kaibutsu - YOASOBI.mp3 527 | /home/camelia/Music/Playlists/Japanese/たぶん - YOASOBI.mp3 528 | /home/camelia/Music/Playlists/Japanese/もう少しだけ - YOASOBI.mp3 529 | /home/camelia/Music/Playlists/Japanese/群青 - YOASOBI.mp3 530 | /home/camelia/Music/Playlists/Japanese/あの夢をなぞって - YOASOBI.mp3 531 | /home/camelia/Music/Playlists/Japanese/怪物 - YOASOBI.mp3 532 | /home/camelia/Music/Playlists/Japanese/YELLOW - Yoh kamiyama.mp3 533 | /home/camelia/Music/Playlists/Japanese/Oyasumi Kamisama - Yoh kamiyama.mp3 534 | /home/camelia/Music/Playlists/Korean/When_The_Wind_Blows.mp3 535 | /home/camelia/Music/Playlists/Japanese/Say it. - Yorushika.mp3 536 | /home/camelia/Music/Playlists/Japanese/CHE.R.RY - YUI.mp3 537 | /home/camelia/Music/Playlists/Japanese/AYATOBI - Yusaku Nakano, Hatsune Miku.mp3 538 | /home/camelia/Music/Playlists/Korean/Spring_Love.mp3 539 | /home/camelia/Music/Playlists/Chinese/Dried Flowers(Chinese ver.) - Yuuri.mp3 540 | /home/camelia/Music/Playlists/Japanese/ベテルギウス - Yuuri.mp3 541 | /home/camelia/Music/Playlists/Japanese/Hyouriittai - YUZU.mp3 542 | /home/camelia/Music/Playlists/Chinese/Heart Of Peace - ZHANGYE_Zhou Shen.mp3 543 | /home/camelia/Music/Playlists/Japanese/あのね。 - あれくん, 『ユイカ』.mp3 544 | /home/camelia/Music/Playlists/Japanese/Cheating is a crime - たかやん.mp3 545 | /home/camelia/Music/Playlists/Japanese/Sinking is better! - たかやん.mp3 546 | /home/camelia/Music/Playlists/Japanese/Loneliness and the Future - ツユ.mp3 547 | /home/camelia/Music/Playlists/Japanese/Trapped in the past - ツユ.mp3 548 | /home/camelia/Music/Playlists/Japanese/An Unaware Drunkard - まふまふ.mp3 549 | /home/camelia/Music/Playlists/Japanese/Goodbye Declaration - まふまふ.mp3 550 | /home/camelia/Music/Playlists/Japanese/Kyoka Suigetsu - まふまふ.mp3 551 | /home/camelia/Music/Playlists/Japanese/Life Hates Us Now - まふまふ.mp3 552 | /home/camelia/Music/Playlists/Japanese/Sincerely, on this day Cherry Blossoms fall and sway - まふまふ.mp3 553 | /home/camelia/Music/Playlists/Japanese/Telecaster B-Boy - まふまふ.mp3 554 | /home/camelia/Music/Playlists/Japanese/暗い微睡み - まふまふ.mp3 555 | /home/camelia/Music/Playlists/Japanese/Eternal Blue - みなみ.mp3 556 | /home/camelia/Music/Playlists/Japanese/DROP - みなみ.mp3 557 | /home/camelia/Music/Playlists/Japanese/Hollowness - みなみ.mp3 558 | /home/camelia/Music/Playlists/Japanese/Kawaki wo Ameku - みなみ.mp3 559 | /home/camelia/Music/Playlists/Japanese/Konomachi ni Hare wa Konai - みなみ.mp3 560 | /home/camelia/Music/Playlists/Japanese/Lilac - みなみ.mp3 561 | /home/camelia/Music/Playlists/Japanese/Waiting For Rain - みなみ.mp3 562 | /home/camelia/Music/Playlists/Japanese/17さいのうた。 - 『ユイカ』.mp3 563 | /home/camelia/Music/Playlists/Japanese/だから僕は音楽を辞めた - ヨルシカ.mp3 564 | /home/camelia/Music/Playlists/Japanese/嫌いになれない - れん.mp3 565 | /home/camelia/Music/Playlists/Japanese/ただ声一つ - ロクデナシ.mp3 566 | /home/camelia/Music/Playlists/Chinese/喜欢你 - 一口甜.mp3 567 | /home/camelia/Music/Playlists/Chinese/踏山河 - 七叔(叶泽浩).mp3 568 | /home/camelia/Music/Playlists/Chinese/海市蜃楼 - 三叔说.mp3 569 | /home/camelia/Music/Playlists/Chinese/Ring Ring Ring - 不是花火呀.mp3 570 | /home/camelia/Music/Playlists/Chinese/TA - 不是花火呀.mp3 571 | /home/camelia/Music/Playlists/Chinese/天黑請閉眼 - 九澤CP.mp3 572 | /home/camelia/Music/Playlists/Chinese/把孤独当做晚餐 - 井胧.mp3 573 | /home/camelia/Music/Playlists/Chinese/骁 - 井胧, 井迪.mp3 574 | /home/camelia/Music/Playlists/Instrumentals/仿若无因飘落的轻雨 As Rain Falls.mp3 575 | /home/camelia/Music/Playlists/Chinese/微微 - 錄音室專輯 - 傅如喬.mp3 576 | /home/camelia/Music/Playlists/Chinese/是想你的声音啊 - 傲七爺.mp3 577 | /home/camelia/Music/Playlists/Chinese/毕竟深爱过 - 六哲.mp3 578 | /home/camelia/Music/Playlists/Chinese/全是爱 - 凤凰传奇.mp3 579 | /home/camelia/Music/Playlists/Chinese/西海情歌 - 刀郎.mp3 580 | /home/camelia/Music/Playlists/Chinese/我很好 - 吉他版 - 刘大壮.mp3 581 | /home/camelia/Music/Playlists/Chinese/时光背面的我 - 刘至佳, 韩瞳.mp3 582 | /home/camelia/Music/Playlists/Chinese/没有任何期待 - 前男友_语墨Yomi_嘿人李逵Noisemakers.mp3 583 | /home/camelia/Music/Playlists/Chinese/為什麼只留下我一個 - 劉學甫_Vicky Chen.mp3 584 | /home/camelia/Music/Playlists/Chinese/好幾年 - 劉心.mp3 585 | /home/camelia/Music/Playlists/Instrumentals/___.mp3 586 | /home/camelia/Music/Playlists/Chinese/好不容易 - 告五人.mp3 587 | /home/camelia/Music/Playlists/Chinese/好不容易 (《華燈初上》片尾曲) - 告五人.mp3 588 | /home/camelia/Music/Playlists/Chinese/浮生 - 周深.mp3 589 | /home/camelia/Music/Playlists/Chinese/人是_ - 周深.mp3 590 | /home/camelia/Music/Playlists/Chinese/大魚 - 唱片版 - 周深.mp3 591 | /home/camelia/Music/Playlists/Chinese/焰火 (電視劇《點燃我, 溫暖你》主題曲) - 周深.mp3 592 | /home/camelia/Music/Playlists/Chinese/來不及勇敢 - 周深.mp3 593 | /home/camelia/Music/Playlists/Chinese/Rubia - 周深, HOYO-MiX, 宫奇 Gon.mp3 594 | /home/camelia/Music/Playlists/English/___.mp3 595 | /home/camelia/Music/Playlists/Chinese/走建國路回家但後座少ㄌ泥 - 多多 x 以捷.mp3 596 | /home/camelia/Music/Playlists/Chinese/静悄悄 - 大泫.mp3 597 | /home/camelia/Music/Playlists/Chinese/白月光与朱砂痣 - 大籽.mp3 598 | /home/camelia/Music/Playlists/Chinese/负重一万斤长大 - 太一.mp3 599 | /home/camelia/Music/Playlists/Chinese/隔岸 - 姚十六.mp3 600 | /home/camelia/Music/Playlists/Chinese/预谋 - 孙露.mp3 601 | /home/camelia/Music/Playlists/Chinese/一分钟恋人 - 安洛萱..mp3 602 | /home/camelia/Music/Playlists/Chinese/屋顶着火 - 宋茜.mp3 603 | /home/camelia/Music/Playlists/Chinese/执迷不悟 - 小乐哥(王唯乐).mp3 604 | /home/camelia/Music/Playlists/Chinese/你的样子 - 小倩.mp3 605 | /home/camelia/Music/Playlists/Chinese/我走后 - 发行版 - 小咪.mp3 606 | /home/camelia/Music/Playlists/Chinese/错位时空 - 治愈版 - 小玄子.mp3 607 | /home/camelia/Music/Playlists/Chinese/从前说 - 小阿七.mp3 608 | /home/camelia/Music/Playlists/Chinese/我期待的不是雪 - 张妙格.mp3 609 | /home/camelia/Music/Playlists/Chinese/可不可以 - 张紫豪.mp3 610 | /home/camelia/Music/Playlists/Chinese/失眠飛行 - 接個吻_開一槍_沈以誠_薛明媛.mp3 611 | /home/camelia/Music/Playlists/Chinese/Fall - 易烊千璽.mp3 612 | /home/camelia/Music/Playlists/Chinese/再一, 再二, 再三 - 易烊千璽.mp3 613 | /home/camelia/Music/Playlists/Chinese/可能 - 李怡然同学.mp3 614 | /home/camelia/Music/Playlists/Instrumentals/_____Spring_Colors_Fill_the_Mountains.sync-conflict-20231010-174848-G6BW7UY.mp3 615 | /home/camelia/Music/Playlists/Instrumentals/____Rainy_Night_Flower.mp3 616 | /home/camelia/Music/Playlists/Instrumentals/_____Spring_Colors_Fill_the_Mountains.mp3 617 | /home/camelia/Music/Playlists/Chinese/茫 - 李润祺.mp3 618 | /home/camelia/Music/Playlists/Chinese/当我奔向你 - 《当我飞奔向你》影视剧主题曲 - 林晨阳.mp3 619 | /home/camelia/Music/Playlists/Chinese/少年 - 梦然.mp3 620 | /home/camelia/Music/Playlists/Chinese/是你 - 梦然.mp3 621 | /home/camelia/Music/Playlists/Chinese/勇气 - 棉子.mp3 622 | /home/camelia/Music/Playlists/Chinese/形容 - 沈以誠.mp3 623 | /home/camelia/Music/Playlists/Chinese/思念一瞬间 - 海来阿木.mp3 624 | /home/camelia/Music/Playlists/Chinese/三生三幸 - 海来阿木.mp3 625 | /home/camelia/Music/Playlists/Chinese/我愿意平凡的陪在你身旁 - 王七七.mp3 626 | /home/camelia/Music/Playlists/Chinese/心引力 - 王俊凱_Jolin Tsai.mp3 627 | /home/camelia/Music/Playlists/Chinese/下落不明 - 王巨星.mp3 628 | /home/camelia/Music/Playlists/Chinese/清空 - 王忻辰_苏星婕.mp3 629 | /home/camelia/Music/Playlists/Chinese/爱,存在 - 王靖雯.mp3 630 | /home/camelia/Music/Playlists/Chinese/沦陷 - 王靖雯.mp3 631 | /home/camelia/Music/Playlists/Chinese/AMIGO - 玖壹壹.mp3 632 | /home/camelia/Music/Playlists/Chinese/你留給我的遺憾無以名狀 - 理想混蛋 雞丁.mp3 633 | /home/camelia/Music/Playlists/Chinese/我用什么把你留住 - 福禄寿.mp3 634 | /home/camelia/Music/Playlists/Chinese/不如 - 秦海清.mp3 635 | /home/camelia/Music/Playlists/Chinese/世界这么大还是遇见你 - 程响.mp3 636 | /home/camelia/Music/Playlists/Chinese/等你归来 - 程响.mp3 637 | /home/camelia/Music/Playlists/Chinese/昨日青空 - 程墨寒.mp3 638 | /home/camelia/Music/Playlists/Chinese/畫皮 - 紙硯.mp3 639 | /home/camelia/Music/Playlists/Chinese/童年 - 羅大佑.mp3 640 | /home/camelia/Music/Playlists/Chinese/皇后大道東 - 羅大佑_蔣志光.mp3 641 | /home/camelia/Music/Playlists/Japanese/この街に晴れはこない - 美波.mp3 642 | /home/camelia/Music/Playlists/Japanese/君と僕の154小節戦争 - 美波.mp3 643 | /home/camelia/Music/Playlists/Japanese/main actor - 美波.mp3 644 | /home/camelia/Music/Playlists/Chinese/2023,杀青快乐! - 翠花不太脆.mp3 645 | /home/camelia/Music/Playlists/Chinese/壳 - 翠花不太脆(Bo Peep).mp3 646 | /home/camelia/Music/Playlists/Chinese/开摆咯 - 老番茄.mp3 647 | /home/camelia/Music/Playlists/Chinese/你能不能不要离开我 - 莫叫姐姐.mp3 648 | /home/camelia/Music/Playlists/Chinese/不仅仅是喜欢 - 萧全, 孙语赛.mp3 649 | /home/camelia/Music/Playlists/Chinese/囍 - 葛东琪.mp3 650 | /home/camelia/Music/Playlists/Chinese/LEMON TREE - 蘇慧倫.mp3 651 | /home/camelia/Music/Playlists/Chinese/哭過的天空 - 蘇慧倫.mp3 652 | /home/camelia/Music/Playlists/Instrumentals/Lycoris.mp3 653 | /home/camelia/Music/Playlists/Chinese/Mom - 蠟筆小心.mp3 654 | /home/camelia/Music/Playlists/Chinese/夜空中最亮的星 - 逃跑计划.mp3 655 | /home/camelia/Music/Playlists/Chinese/苦咖啡·唯一 - 那奇沃夫_KKECHO.mp3 656 | /home/camelia/Music/Playlists/Chinese/我爱你中国 - 那英_Wang Feng_Ronghao Li_Hacken Lee_吴莫愁_Jike Junyi_Zhang Bichen_黄霄雲.mp3 657 | /home/camelia/Music/Playlists/Chinese/你是人間四月天 - 邵帥ShaoShuai.mp3 658 | /home/camelia/Music/Playlists/Chinese/旧梦一场 - 阿悠悠.mp3 659 | /home/camelia/Music/Playlists/Chinese/感谢你曾来过 - 阿涵_Ayo97.mp3 660 | /home/camelia/Music/Playlists/Chinese/孤独颂歌 - 陈文非.mp3 661 | /home/camelia/Music/Playlists/Chinese/Better Believe Me (Remix) - 陳嘉唯, 頑童Mj116.mp3 662 | /home/camelia/Music/Playlists/Chinese/孤獨頌歌 - 陳文非.mp3 663 | /home/camelia/Music/Playlists/Chinese/無名之輩 (電視劇《親愛的, 熱愛的》主題曲) - 陳雪燃.mp3 664 | /home/camelia/Music/Playlists/English/Long_Day________________.mp3 665 | /home/camelia/Music/Playlists/Chinese/我曾 - 隔壁老樊.mp3 666 | /home/camelia/Music/Playlists/Chinese/花 - 鞠婧祎.mp3 667 | /home/camelia/Music/Playlists/Chinese/空山新雨后 - 音阙诗听.mp3 668 | /home/camelia/Music/Playlists/Chinese/那束光 - 音阙诗听.mp3 669 | /home/camelia/Music/Playlists/Chinese/芒种 - 音阙诗听, 赵方婧.mp3 670 | /home/camelia/Music/Playlists/Chinese/No Name - 高爾宣 OSN.mp3 671 | /home/camelia/Music/Playlists/Chinese/Runaway - 高爾宣 OSN.mp3 672 | /home/camelia/Music/Playlists/Chinese/最後一次 - 高爾宣 OSN.mp3 673 | /home/camelia/Music/Playlists/Chinese/Be Alright - 高爾宣 OSN.mp3 674 | /home/camelia/Music/Playlists/Chinese/Old Me - 高爾宣 OSN.mp3 675 | /home/camelia/Music/Playlists/Chinese/So Bad - 高爾宣 OSN.mp3 676 | /home/camelia/Music/Playlists/Chinese/Why You Gonna Lie? - 高爾宣 OSN.mp3 677 | /home/camelia/Music/Playlists/Chinese/Without You - 高爾宣 OSN.mp3 678 | /home/camelia/Music/Playlists/Chinese/最後一次 - 高爾宣 OSN.mp3 679 | /home/camelia/Music/Playlists/Chinese/9420 - 麦小兜.mp3 680 | /home/camelia/Music/Playlists/Chinese/探清水河 - 黄诗扶.mp3 681 | /home/camelia/Music/Playlists/Chinese/星辰大海 - 黄霄雲.mp3 682 | -------------------------------------------------------------------------------- /cmus/light.theme: -------------------------------------------------------------------------------- 1 | set color_cmdline_bg=default 2 | set color_cmdline_fg=default 3 | 4 | set color_error=lightred 5 | set color_info=lightyellow 6 | 7 | set color_separator=default 8 | set color_statusline_bg=default 9 | 10 | set color_statusline_fg=white 11 | set color_titleline_bg=default 12 | set color_titleline_fg=white 13 | 14 | set color_win_bg=default 15 | 16 | set color_win_cur=lightyellow 17 | set color_win_cur_sel_bg=lightyellow 18 | set color_win_cur_sel_fg=lightyellow 19 | set color_win_dir=lightblue 20 | 21 | set color_win_fg=default 22 | 23 | set color_win_inactive_cur_sel_bg=default 24 | set color_win_inactive_cur_sel_fg=white 25 | set color_win_inactive_sel_bg=default 26 | set color_win_inactive_sel_fg=white 27 | 28 | set color_win_sel_bg=lightyellow 29 | set color_win_sel_fg=default 30 | set color_win_title_bg=lightyellow 31 | set color_win_title_fg=default 32 | -------------------------------------------------------------------------------- /cmus/playlists/default: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luyu-wu/Config/d7fcfb857262f165513c62709f7bb87fa6e2f06d/cmus/playlists/default -------------------------------------------------------------------------------- /cmus/rc: -------------------------------------------------------------------------------- 1 | # Playback 2 | 3 | bind common c player-pause 4 | 5 | bind common left seek -5 6 | bind common right seek +5 7 | 8 | bind common mlb_click_bar player-pause 9 | bind common mouse_scroll_up_bar seek +5 10 | bind common mouse_scroll_down_bar seek -5 11 | 12 | # Setting toggles 13 | 14 | bind common m toggle aaa_mode 15 | bind common C toggle continue 16 | bind common M toggle play_library 17 | bind common o toggle play_sorted 18 | bind common r toggle repeat_current 19 | bind common s toggle shuffle 20 | bind common f toggle follow 21 | 22 | # Commands 23 | 24 | bind common q quit 25 | bind common ^C quit 26 | bind common I echo {} 27 | 28 | 29 | # View/window navigation 30 | 31 | bind common 1 view tree 32 | bind common 2 view sorted 33 | bind common 3 view playlist 34 | bind common 4 view queue 35 | bind common 5 view browser 36 | bind common 6 view settings 37 | 38 | bind common mouse_scroll_up_title left-view 39 | bind common mouse_scroll_down_title right-view 40 | 41 | bind common tab win-next 42 | 43 | 44 | # Navigation 45 | 46 | bind common ^Y win-scroll-up 47 | bind common ^E win-scroll-down 48 | bind common ^B win-page-up 49 | bind common ^F win-page-down 50 | bind common ^U win-half-page-up 51 | bind common ^D win-half-page-down 52 | 53 | bind common up win-up 54 | bind common down win-down 55 | bind common home win-top 56 | bind common end win-bottom 57 | bind common page_up win-page-up 58 | bind common page_down win-page-down 59 | 60 | bind common mouse_scroll_up win-up 61 | bind common mouse_scroll_down win-down 62 | 63 | # Selection 64 | 65 | bind common i win-sel-cur 66 | bind common enter win-activate 67 | bind common mlb_click_selected win-activate 68 | 69 | bind common space win-toggle 70 | bind common D win-remove 71 | bind common delete win-remove 72 | bind common p win-mv-after 73 | bind common P win-mv-before 74 | 75 | # bind common E win-add-Q 76 | # bind common a win-add-l 77 | # bind common y win-add-p 78 | # bind common e win-add-q 79 | 80 | bind common u update-cache 81 | bind common U win-update-cache 82 | 83 | # Filters 84 | 85 | bind common / search-start 86 | #bind common ? search-b-start 87 | #bind common n search-next 88 | #bind common N search-prev 89 | 90 | # note: the single space at the end is intentional 91 | #bind common F push filter 92 | #bind common L push live-filter 93 | 94 | fset unheard=play_count=0 95 | fset missing-tag=!stream&(artist=""|album=""|title=""|tracknumber=-1|date=-1) 96 | fset mp3=filename="*.mp3" 97 | fset ogg=filename="*.ogg" 98 | fset ogg-or-mp3=ogg|mp3 99 | 100 | # File browser 101 | 102 | bind browser backspace browser-up 103 | bind browser space win-activate 104 | bind browser i toggle show_hidden 105 | bind browser u win-update 106 | -------------------------------------------------------------------------------- /cmus/search-history: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luyu-wu/Config/d7fcfb857262f165513c62709f7bb87fa6e2f06d/cmus/search-history -------------------------------------------------------------------------------- /dunst/dunstrc: -------------------------------------------------------------------------------- 1 | [global] 2 | 3 | follow = mouse 4 | stack_duplicates = false 5 | 6 | ### Geometry ### 7 | 8 | width = 400 9 | height = 400 10 | origin = bottom-right 11 | offset = 20x20 12 | 13 | corner_radius = 8 14 | 15 | icon_corner_radius = 8 16 | 17 | padding = 8 18 | horizontal_padding = 8 19 | text_icon_padding = 0 20 | 21 | frame_width = 2 22 | frame_color = "#606060" 23 | 24 | gap_size = 16 25 | 26 | ### PROGRESS BAR 27 | progress_bar = true 28 | progress_bar_height = 10 29 | progress_bar_frame_width = 1 30 | progress_bar_corner_radius = 5 31 | 32 | ### Text ### 33 | 34 | font = SF Pro Display 13 35 | 36 | line_height = 6 37 | 38 | format = "%s\n%b" 39 | show_indicators = false 40 | alignment = left 41 | 42 | vertical_alignment = center 43 | 44 | ### Icons ### 45 | 46 | enable_recursive_icon_lookup = true 47 | 48 | 49 | icon_position = left 50 | 51 | # Scale small icons up to this size, set to 0 to disable. Helpful 52 | # for e.g. small files or high-dpi screens. In case of conflict, 53 | # max_icon_size takes precedence over this. 54 | min_icon_size = 64 55 | 56 | max_icon_size = 64 57 | 58 | 59 | ### Misc/Advanced ### 60 | 61 | # Browser for opening urls in context menu. 62 | browser = /usr/bin/xdg-open 63 | 64 | # Define the title of the windows spawned by dunst 65 | title = Dunst 66 | 67 | class = Dunst 68 | 69 | 70 | ### Wayland ### 71 | 72 | mouse_left_click = do_action, close_current 73 | mouse_middle_click = do_action, close_current 74 | mouse_right_click = close_current 75 | 76 | 77 | [urgency_low] 78 | background = "#2A2A2A90" 79 | foreground = "#FFFFFF" 80 | timeout = 1 81 | 82 | [urgency_normal] 83 | background = "#2A2A2A90" 84 | foreground = "#FFFFFF" 85 | timeout = 1 86 | 87 | [urgency_critical] 88 | background = "#2A2A2A90" 89 | foreground = "#FFFFFF" 90 | timeout = 0 91 | -------------------------------------------------------------------------------- /fastfetch/config.jsonc: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", 3 | "logo": { 4 | "type": "small", 5 | "padding": { 6 | "top": 3, 7 | "left": 2 8 | } 9 | }, 10 | "display": { 11 | "separator": " :: " 12 | }, 13 | "modules": [ 14 | { 15 | "type": "custom", 16 | "format": "┌───────── \u001B[1mHardware Information\u001B[0m ─────────┐" 17 | }, 18 | { 19 | "type": "cpu", 20 | "key": "  " 21 | }, 22 | { 23 | "type": "gpu", 24 | "key": " 󰨇 " 25 | }, 26 | { 27 | "type": "memory", 28 | "key": "  " 29 | }, 30 | { 31 | "type": "disk", 32 | "key": "  " 33 | }, 34 | { 35 | "type": "custom", 36 | "format": "├───────── \u001B[1mSoftware Information\u001B[0m ─────────┤" 37 | }, 38 | { 39 | "type": "os", 40 | "key": "  " 41 | }, 42 | { 43 | "type": "kernel", 44 | "key": "  " 45 | }, 46 | { 47 | "type": "wm", 48 | "key": "  " 49 | }, 50 | { 51 | "type": "shell", 52 | "key": "  " 53 | }, 54 | { 55 | "type": "packages", 56 | "key": "  " 57 | }, 58 | { 59 | "type": "custom", 60 | "format": "└────────────────────────────────────────┘" 61 | } 62 | ] 63 | } 64 | -------------------------------------------------------------------------------- /hypr/Scripts/restart_xdg.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sleep 1 3 | killall -e xdg-desktop-portal-hyprland 4 | killall -e xdg-desktop-portal-wlr 5 | killall xdg-desktop-portal 6 | /usr/lib/xdg-desktop-portal-hyprland & 7 | sleep 2 8 | /usr/lib/xdg-desktop-portal & 9 | -------------------------------------------------------------------------------- /hypr/Scripts/toggle_rofi.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | if pgrep -x rofi; then 3 | killall rofi 4 | else 5 | rofi -show drun 6 | fi 7 | -------------------------------------------------------------------------------- /hypr/Shaders/CRT-Scan.frag: -------------------------------------------------------------------------------- 1 | #version 100 2 | precision highp float; 3 | varying highp vec2 v_texcoord; 4 | varying highp vec3 v_pos; 5 | uniform highp sampler2D tex; 6 | uniform highp float time; 7 | 8 | #define BORDER_COLOR vec4(vec3(0.0, 0.0, 0.0), 1.0) // black border 9 | #define BORDER_RADIUS 1.0 // larger vignette radius 10 | #define BORDER_SIZE 0.01 // small border size 11 | #define CHROMATIC_ABERRATION_STRENGTH 0.0027 12 | #define DENOISE_INTENSITY 0.0001 // 13 | #define DISTORTION_AMOUNT 0.11 // moderate distortion amount 14 | #define HDR_BLOOM 0.75 // bloom intensity 15 | #define HDR_BRIGHTNESS 0.011 // brightness 16 | #define HDR_CONTRAST 0.011 // contrast 17 | #define HDR_SATURATION 1.0// saturation 18 | #define LENS_DISTORTION_AMOUNT 1.0 19 | #define NOISE_THRESHOLD 0.0001 20 | #define PHOSPHOR_BLUR_AMOUNT 0.77 // Amount of blur for phosphor glow 21 | #define PHOSPHOR_GLOW_AMOUNT 0.77 // Amount of phosphor glow 22 | #define SHARPNESS 0.25 23 | #define SUPERSAMPLING_SAMPLES 16.0 24 | #define VIGNETTE_RADIUS 0.8 // larger vignette radius 25 | #define PI 3.14159265359 26 | #define TWOPI 6.28318530718 27 | 28 | vec2 applyBarrelDistortion(vec2 coord, float amt) { 29 | vec2 p = coord.xy / vec2(1.0); 30 | vec2 v = p * 2.0 - vec2(1.0); 31 | float r = dot(v, v); 32 | float k = 1.0 + pow(r, 2.0) * pow(amt, 2.0); 33 | vec2 result = v * k; 34 | return vec2(0.5, 0.5) + 0.5 * result.xy; 35 | } 36 | 37 | vec4 applyColorCorrection(vec4 color) { 38 | color.rgb *= vec3(1.0, 0.875, 1.0); 39 | return vec4(color.rgb, 1.0); 40 | } 41 | 42 | vec4 applyBorder(vec2 tc, vec4 color, float borderSize, vec4 borderColor) { 43 | float dist_x = min(tc.x, 1.0 - tc.x); 44 | float dist_y = min(tc.y, 1.0 - tc.y); 45 | float dist = min(dist_x, dist_y) * -1.0; 46 | float border = smoothstep(borderSize, 0.0, dist); 47 | border += smoothstep(borderSize, 0.0, dist); 48 | return mix(color, borderColor, border); 49 | } 50 | 51 | vec4 applyFakeHDR(vec4 color, float brightness, float contrast, float saturation, float bloom) { 52 | color.rgb = (color.rgb - vec3(0.5)) * exp2(brightness) + vec3(0.5); 53 | vec3 crtfactor = vec3(1.05, 0.92, 1.0); 54 | color.rgb = pow(color.rgb, crtfactor); 55 | // // NTSC 56 | // vec3 lumCoeff = vec3(0.2125, 0.7154, 0.0721); 57 | 58 | // // BT.709 59 | // vec3 lumCoeff = vec3(0.299, 0.587, 0.114); 60 | 61 | // BT.2020 62 | vec3 lumCoeff = vec3(0.2627, 0.6780, 0.0593); 63 | 64 | // // Warm NTSC 65 | // vec3 lumCoeff = vec3(0.2125, 0.7010, 0.0865); 66 | 67 | float luminance = dot(color.rgb, lumCoeff); 68 | luminance = pow(luminance, 2.2); 69 | color.rgb = mix(vec3(luminance), color.rgb, saturation); 70 | color.rgb = mix(color.rgb, vec3(1.0), pow(max(0.0, luminance - 1.0 + bloom), 4.0)); 71 | return color; 72 | } 73 | 74 | vec4 applyVignette(vec4 color) { 75 | vec2 center = vec2(0.5, 0.5); // center of screen 76 | float radius = VIGNETTE_RADIUS; // radius of vignette effect 77 | float softness = 1.0; // softness of vignette effect 78 | float intensity = 0.7; // intensity of vignette effect 79 | vec2 offset = v_texcoord - center; // offset from center of screen 80 | float distance = length(offset); // distance from center of screen 81 | float alpha = smoothstep(radius, radius - radius * softness, distance) * intensity; // calculate alpha value for vignette effect 82 | return mix(vec4(0.0, 0.0, 0.0, alpha), color, alpha); // mix black with color using calculated alpha value 83 | } 84 | 85 | vec4 applyPhosphorGlow(vec2 tc, vec4 color, sampler2D tex) { 86 | // Calculate average color value of the texture 87 | vec4 texelColor = color; 88 | float averageColor = (texelColor.r + texelColor.g + texelColor.b) / 3.0; 89 | 90 | // Determine brightness-dependent color factor 91 | float factor = mix( 92 | mix(0.09, 93 | mix(0.005, 0.0075, (averageColor - 0.1) / 0.1), 94 | step(0.01, averageColor)), 0.0005, 95 | step(0.02, averageColor)); 96 | // Apply phosphor glow effect 97 | vec4 sum = vec4(0.0); 98 | vec4 pixels[9]; 99 | pixels[0] = texture2D(tex, tc - vec2(0.001, 0.001)); 100 | pixels[1] = texture2D(tex, tc - vec2(0.001, 0.0)); 101 | pixels[2] = texture2D(tex, tc - vec2(0.001, -0.001)); 102 | pixels[3] = texture2D(tex, tc - vec2(0.0, 0.001)); 103 | pixels[4] = texture2D(tex, tc); 104 | pixels[5] = texture2D(tex, tc + vec2(0.001, 0.001)); 105 | pixels[6] = texture2D(tex, tc + vec2(0.001, 0.0)); 106 | pixels[7] = texture2D(tex, tc + vec2(0.001, -0.001)); 107 | pixels[8] = texture2D(tex, tc + vec2(0.0, 0.001)); 108 | 109 | // Perform operations on input pixels in parallel 110 | sum = pixels[0] 111 | + pixels[1] 112 | + pixels[2] 113 | + pixels[3] 114 | + pixels[4] 115 | + pixels[5] 116 | + pixels[6] 117 | + pixels[7] 118 | + pixels[8]; 119 | sum /= 9.0; 120 | sum += texture2D(tex, tc - vec2(0.01, 0.01)) * 0.001; 121 | sum += texture2D(tex, tc - vec2(0.0, 0.01)) * 0.001; 122 | sum += texture2D(tex, tc - vec2(-0.01, 0.01)) * 0.001; 123 | sum += texture2D(tex, tc - vec2(0.01, 0.0)) * 0.001; 124 | sum += color * PHOSPHOR_BLUR_AMOUNT; 125 | sum += texture2D(tex, tc - vec2(-0.01, 0.0)) * 0.001; 126 | sum += texture2D(tex, tc - vec2(0.01, -0.01)) * 0.001; 127 | sum += texture2D(tex, tc - vec2(0.0, -0.01)) * 0.001; 128 | sum += texture2D(tex, tc - vec2(-0.01, -0.01)) * 0.001; 129 | sum *= PHOSPHOR_GLOW_AMOUNT; 130 | 131 | // Initialize sum_sum_factor to zero 132 | vec4 sum_sum_factor = vec4(0.0); 133 | // Compute sum_j for i = -1 134 | vec4 sum_j = vec4(0.0); 135 | sum_j += texture2D(tex, tc + vec2(-1, -1) * 0.01); 136 | sum_j += texture2D(tex, tc + vec2(0, -1) * 0.01); 137 | sum_j += texture2D(tex, tc + vec2(1, -1) * 0.01); 138 | sum_j += texture2D(tex, tc + vec2(-1, 0) * 0.01); 139 | sum_j += texture2D(tex, tc + vec2(0, 0) * 0.01); 140 | sum_j += texture2D(tex, tc + vec2(1, 0) * 0.01); 141 | sum_j += texture2D(tex, tc + vec2(-1, 1) * 0.01); 142 | sum_j += texture2D(tex, tc + vec2(0, 1) * 0.01); 143 | sum_j += texture2D(tex, tc + vec2(1, 1) * 0.01); 144 | sum_sum_factor += sum_j * vec4(0.011); 145 | 146 | // Compute sum_j for i = 0 147 | sum_j = vec4(0.0); 148 | sum_j += texture2D(tex, tc + vec2(-1, 0) * 0.01); 149 | sum_j += texture2D(tex, tc + vec2(0, 0) * 0.01); 150 | sum_j += texture2D(tex, tc + vec2(1, 0) * 0.01); 151 | sum_j += texture2D(tex, tc + vec2(-1, 1) * 0.01); 152 | sum_j += texture2D(tex, tc + vec2(0, 1) * 0.01); 153 | sum_j += texture2D(tex, tc + vec2(1, 1) * 0.01); 154 | sum_sum_factor += sum_j * vec4(0.011); 155 | 156 | // Compute sum_j for i = 1 157 | sum_j = vec4(0.0); 158 | sum_j += texture2D(tex, tc + vec2(-1, 0) * 0.01); 159 | sum_j += texture2D(tex, tc + vec2(0, 1) * 0.01); 160 | sum_j += texture2D(tex, tc + vec2(1, 0) * 0.01); 161 | sum_j += texture2D(tex, tc + vec2(-1, 1) * 0.01); 162 | sum_j += texture2D(tex, tc + vec2(0, 1) * 0.01); 163 | sum_j += texture2D(tex, tc + vec2(1, 1) * 0.01); 164 | sum_sum_factor += sum_j * vec4(0.011); 165 | color += mix(sum_sum_factor * sum_sum_factor * vec4(factor), sum, 0.5); 166 | return color; 167 | } 168 | 169 | vec4 applyAdaptiveSharpen(vec2 tc, vec4 color, sampler2D tex) { 170 | vec4 color_tl = texture2D(tex, tc + vec2(-1.0, -1.0) * 0.5 / 2160.0); 171 | vec4 color_tr = texture2D(tex, tc + vec2(1.0, -1.0) * 0.5 / 2160.0); 172 | vec4 color_bl = texture2D(tex, tc + vec2(-1.0, 1.0) * 0.5 / 2160.0); 173 | vec4 color_br = texture2D(tex, tc + vec2(1.0, 1.0) * 0.5 / 2160.0); 174 | float sharpness = SHARPNESS; 175 | vec3 color_no_alpha = color.rgb; 176 | vec3 color_tl_no_alpha = color_tl.rgb; 177 | vec3 color_tr_no_alpha = color_tr.rgb; 178 | vec3 color_bl_no_alpha = color_bl.rgb; 179 | vec3 color_br_no_alpha = color_br.rgb; 180 | float delta = (dot(color_no_alpha, vec3(0.333333)) + dot(color_tl_no_alpha, vec3(0.333333)) + dot(color_tr_no_alpha, vec3(0.333333)) + dot(color_bl_no_alpha, vec3(0.333333)) + dot(color_br_no_alpha, vec3(0.333333))) * 0.2 - dot(color_no_alpha, vec3(0.333333)); 181 | vec3 sharp_color_no_alpha = color_no_alpha + min(vec3(0.0), vec3(delta * sharpness)); 182 | vec4 sharp_color = vec4(sharp_color_no_alpha, color.a); 183 | return sharp_color; 184 | } 185 | 186 | 187 | #define SCANLINE_TRANSPARENCY 1.35 188 | #define SAMPLING_RADIUS 0.0001 189 | #define SCANLINE_FREQUENCY 20.0 190 | #define SCANLINE_THICKNESS 1.0 191 | #define SCANLINE_SPEED 5.5 192 | 193 | vec4 applyScanlines(vec2 tc, vec4 color) { 194 | float scanline = sin(tc.y * SCANLINE_FREQUENCY + time * SCANLINE_SPEED) * 0.5 + 0.5; 195 | scanline = smoothstep(0.5 - SCANLINE_THICKNESS * 0.5, 0.5 + SCANLINE_THICKNESS * 0.5, scanline); 196 | 197 | // Adjust visibility using smoothstep 198 | float alpha = mix(1.0, SCANLINE_TRANSPARENCY, scanline); 199 | 200 | return vec4(color.rgb * alpha, color.a); 201 | } 202 | 203 | vec4 applyChromaticAberration(vec2 uv, vec4 color) { 204 | vec2 center = vec2(0.5, 0.5); // center of the screen 205 | vec2 offset = (uv - center) * CHROMATIC_ABERRATION_STRENGTH; // calculate the offset from the center 206 | 207 | // apply lens distortion 208 | float rSquared = dot(offset, offset); 209 | float distortion = 1.0 + LENS_DISTORTION_AMOUNT * rSquared; 210 | vec2 distortedOffset = offset * distortion; 211 | 212 | // apply chromatic aberration 213 | vec2 redOffset = vec2(distortedOffset.x * 1.00, distortedOffset.y * 1.00); 214 | vec2 blueOffset = vec2(distortedOffset.x * 1.00, distortedOffset.y * 1.00); 215 | 216 | vec4 redColor = texture2D(tex, uv + redOffset); 217 | vec4 blueColor = texture2D(tex, uv + blueOffset); 218 | 219 | vec4 result = vec4(redColor.r, color.g, blueColor.b, color.a); 220 | 221 | return result; 222 | } 223 | 224 | vec4 reduceGlare(vec4 color) { 225 | // Calculate the intensity of the color by taking the average of the RGB components 226 | float intensity = (color.r + color.g + color.b) / 3.0; 227 | // Set the maximum intensity that can be considered for glare 228 | float maxIntensity = 0.98; 229 | // Use smoothstep to create a smooth transition from no glare to full glare 230 | // based on the intensity of the color and the maximum intensity 231 | float glareIntensity = smoothstep(maxIntensity - 0.02, maxIntensity, intensity); 232 | // Set the amount of glare to apply to the color 233 | float glareAmount = 0.02; 234 | // Mix the original color with the reduced color that has glare applied to it 235 | vec3 reducedColor = mix(color.rgb, vec3(glareIntensity), glareAmount); 236 | // Return the reduced color with the original alpha value 237 | return vec4(reducedColor, color.a); 238 | } 239 | 240 | // Apply a fake HDR effect to the input color. 241 | // Parameters: 242 | // - inputColor: the color to apply the effect to. 243 | // - brightness: the brightness of the image. Should be a value between 0 and 1. 244 | // - contrast: the contrast of the image. Should be a value between 0 and 1. 245 | // - saturation: the saturation of the image. Should be a value between 0 and 2. 246 | // - bloom: the intensity of the bloom effect. Should be a value between 0 and 1. 247 | vec4 applyFakeHDREffect(vec4 inputColor, float brightness, float contrast, float saturation, float bloom) { 248 | const float minBrightness = 0.0; 249 | const float maxBrightness = 1.0; 250 | const float minContrast = 0.0; 251 | const float maxContrast = 1.0; 252 | const float minSaturation = 0.0; 253 | const float maxSaturation = 2.0; 254 | const float minBloom = 0.0; 255 | const float maxBloom = 1.0; 256 | 257 | // Check input parameters for validity 258 | if (brightness < minBrightness || brightness > maxBrightness) { 259 | return vec4(0.0, 0.0, 0.0, 1.0); // Return black with alpha of 1.0 to indicate error 260 | } 261 | if (contrast < minContrast || contrast > maxContrast) { 262 | return vec4(0.0, 0.0, 0.0, 1.0); 263 | } 264 | if (saturation < minSaturation || saturation > maxSaturation) { 265 | return vec4(0.0, 0.0, 0.0, 1.0); 266 | } 267 | if (bloom < minBloom || bloom > maxBloom) { 268 | return vec4(0.0, 0.0, 0.0, 1.0); 269 | } 270 | 271 | // Apply brightness and contrast 272 | vec3 color = inputColor.rgb; 273 | color = (color - vec3(0.5)) * exp2(brightness * 10.0) + vec3(0.5); 274 | color = mix(vec3(0.5), color, pow(contrast * 4.0 + 1.0, 2.0)); 275 | 276 | // // NTSC 277 | // vec3 lumCoeff = vec3(0.2125, 0.7154, 0.0721); 278 | 279 | // // BT.709 280 | // vec3 lumCoeff = vec3(0.299, 0.587, 0.114); 281 | 282 | // // BT.2020 283 | // vec3 lumCoeff = vec3(0.2627, 0.6780, 0.0593); 284 | 285 | // Warm NTSC 286 | vec3 lumCoeff = vec3(0.2125, 0.7010, 0.0865); 287 | 288 | // Apply saturation 289 | float luminance = dot(color, lumCoeff); 290 | vec3 grey = vec3(luminance); 291 | color = mix(grey, color, saturation); 292 | 293 | // Apply bloom effect 294 | float threshold = 1.0 - bloom; 295 | vec3 bloomColor = max(color - threshold, vec3(0.0)); 296 | bloomColor = pow(bloomColor, vec3(2.0)); 297 | bloomColor = mix(vec3(0.0), bloomColor, pow(min(luminance, threshold), 4.0)); 298 | color += bloomColor; 299 | 300 | return vec4(color, inputColor.a); 301 | } 302 | 303 | vec4 bilateralFilter(sampler2D tex, vec2 uv, vec4 color, float sampleRadius, float noiseThreshold, float intensity) { 304 | vec4 filteredColor = vec4(0.0); 305 | float totalWeight = 0.0; 306 | 307 | // Top-left pixel 308 | vec4 sample = texture2D(tex, uv + vec2(-1.0, -1.0)); 309 | float dist = length(vec2(-1.0, -1.0)); 310 | float colorDist = length(sample - color); 311 | float weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); 312 | filteredColor += sample * weight; 313 | totalWeight += weight; 314 | 315 | // Top pixel 316 | sample = texture2D(tex, uv + vec2(0.0, -1.0)); 317 | dist = length(vec2(0.0, -1.0)); 318 | colorDist = length(sample - color); 319 | weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); 320 | filteredColor += sample * weight; 321 | totalWeight += weight; 322 | 323 | // Top-right pixel 324 | sample = texture2D(tex, uv + vec2(1.0, -1.0)); 325 | dist = length(vec2(1.0, -1.0)); 326 | colorDist = length(sample - color); 327 | weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); 328 | filteredColor += sample * weight; 329 | totalWeight += weight; 330 | 331 | // Left pixel 332 | sample = texture2D(tex, uv + vec2(-1.0, 0.0)); 333 | dist = length(vec2(-1.0, 0.0)); 334 | colorDist = length(sample - color); 335 | weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); 336 | filteredColor += sample * weight; 337 | totalWeight += weight; 338 | 339 | // Center pixel 340 | sample = texture2D(tex, uv); 341 | dist = 0.0; 342 | colorDist = length(sample - color); 343 | weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); 344 | filteredColor += sample * weight; 345 | totalWeight += weight; 346 | 347 | // Right pixel 348 | sample = texture2D(tex, uv + vec2(1.0, 0.0)); 349 | dist = length(vec2(1.0, 0.0)); 350 | colorDist = length(sample - color); 351 | weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); 352 | filteredColor += sample * weight; 353 | totalWeight += weight; 354 | 355 | // Bottom-left pixel 356 | sample = texture2D(tex, uv + vec2(-1.0, 1.0)); 357 | dist = length(vec2(-1.0, 1.0)); 358 | colorDist = length(sample - color); 359 | weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); 360 | filteredColor += sample * weight; 361 | totalWeight += weight; 362 | 363 | // Bottom pixel 364 | sample = texture2D(tex, uv + vec2(0.0, sampleRadius)); 365 | dist = length(vec2(0.0, sampleRadius)); 366 | colorDist = length(sample - color); 367 | weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); 368 | filteredColor += sample * weight; 369 | totalWeight += weight; 370 | 371 | filteredColor /= totalWeight; 372 | return mix(color, filteredColor, step(noiseThreshold, length(filteredColor - color))); 373 | } 374 | 375 | vec4 supersample(sampler2D tex, vec2 uv, float sampleRadius, float noiseThreshold, float intensity) { 376 | float radiusSq = sampleRadius * sampleRadius; 377 | vec2 poissonDisk; 378 | vec4 color = vec4(0.0); 379 | 380 | float r1_0 = sqrt(0.0 / 16.0); 381 | float r2_0 = fract(1.0 / 3.0); 382 | float theta_0 = TWOPI * r2_0; 383 | poissonDisk = vec2(r1_0 * cos(theta_0), r1_0 * sin(theta_0)); 384 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 385 | 386 | float r1_1 = sqrt(1.0 / 16.0); 387 | float r2_1 = fract(2.0 / 3.0); 388 | float theta_1 = TWOPI * r2_1; 389 | poissonDisk = vec2(r1_1 * cos(theta_1), r1_1 * sin(theta_1)); 390 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 391 | 392 | float r1_2 = sqrt(2.0 / 16.0); 393 | float r2_2 = fract(3.0 / 3.0); 394 | float theta_2 = TWOPI * r2_2; 395 | poissonDisk = vec2(r1_2 * cos(theta_2), r1_2 * sin(theta_2)); 396 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 397 | 398 | float r1_3 = sqrt(3.0 / 16.0); 399 | float r2_3 = fract(4.0 / 3.0); 400 | float theta_3 = TWOPI * r2_3; 401 | poissonDisk = vec2(r1_3 * cos(theta_3), r1_3 * sin(theta_3)); 402 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 403 | 404 | float r1_4 = sqrt(4.0 / 16.0); 405 | float r2_4 = fract(5.0 / 3.0); 406 | float theta_4 = TWOPI * r2_4; 407 | poissonDisk = vec2(r1_4 * cos(theta_4), r1_4 * sin(theta_4)); 408 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 409 | 410 | float r1_5 = sqrt(5.0 / 16.0); 411 | float r2_5 = fract(6.0 / 3.0); 412 | float theta_5 = TWOPI * r2_5; 413 | poissonDisk = vec2(r1_5 * cos(theta_5), r1_5 * sin(theta_5)); 414 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 415 | 416 | float r1_6 = sqrt(6.0 / 16.0); 417 | float r2_6 = fract(7.0 / 3.0); 418 | float theta_6 = TWOPI * r2_6; 419 | poissonDisk = vec2(r1_6 * cos(theta_6), r1_6 * sin(theta_6)); 420 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 421 | 422 | float r1_7 = sqrt(7.0 / 16.0); 423 | float r2_7 = fract(8.0 / 3.0); 424 | float theta_7 = TWOPI * r2_7; 425 | poissonDisk = vec2(r1_7 * cos(theta_7), r1_7 * sin(theta_7)); 426 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 427 | 428 | float r1_8 = sqrt(8.0 / 16.0); 429 | float r2_8 = fract(9.0 / 3.0); 430 | float theta_8 = TWOPI * r2_8; 431 | poissonDisk = vec2(r1_8 * cos(theta_8), r1_8 * sin(theta_8)); 432 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 433 | 434 | float r1_9 = sqrt(9.0 / 16.0); 435 | float r2_9 = fract(10.0 / 3.0); 436 | float theta_9 = TWOPI * r2_9; 437 | poissonDisk = vec2(r1_9 * cos(theta_9), r1_9 * sin(theta_9)); 438 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 439 | 440 | float r1_10 = sqrt(10.0 / 16.0); 441 | float r2_10 = fract(11.0 / 3.0); 442 | float theta_10 = TWOPI * r2_10; 443 | poissonDisk = vec2(r1_10 * cos(theta_10), r1_10 * sin(theta_10)); 444 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 445 | 446 | float r1_11 = sqrt(11.0 / 16.0); 447 | float r2_11 = fract(12.0 / 3.0); 448 | float theta_11 = TWOPI * r2_11; 449 | poissonDisk = vec2(r1_11 * cos(theta_11), r1_11 * sin(theta_11)); 450 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 451 | 452 | float r1_12 = sqrt(12.0 / 16.0); 453 | float r2_12 = fract(13.0 / 3.0); 454 | float theta_12 = TWOPI * r2_12; 455 | poissonDisk = vec2(r1_12 * cos(theta_12), r1_12 * sin(theta_12)); 456 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 457 | 458 | float r1_13 = sqrt(13.0 / 16.0); 459 | float r2_13 = fract(14.0 / 3.0); 460 | float theta_13 = TWOPI * r2_13; 461 | poissonDisk = vec2(r1_13 * cos(theta_13), r1_13 * sin(theta_13)); 462 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 463 | 464 | float r1_14 = sqrt(14.0 / 16.0); 465 | float r2_14 = fract(15.0 / 3.0); 466 | float theta_14 = TWOPI * r2_14; 467 | poissonDisk = vec2(r1_14 * cos(theta_14), r1_14 * sin(theta_14)); 468 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 469 | 470 | float r1_15 = sqrt(15.0 / 16.0); 471 | float r2_15 = fract(16.0 / 3.0); 472 | float theta_15 = TWOPI * r2_15; 473 | poissonDisk = vec2(r1_15 * cos(theta_15), r1_15 * sin(theta_15)); 474 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 475 | 476 | return bilateralFilter(tex, uv, color, sampleRadius, noiseThreshold, intensity); 477 | } 478 | void main() { 479 | vec2 tc_no_dist = v_texcoord; 480 | 481 | vec2 tc = applyBarrelDistortion(tc_no_dist, DISTORTION_AMOUNT); 482 | // vec2 tc = tc_no_dist; 483 | 484 | // [-1, 1] 485 | vec2 tc_no_dist_symmetric = tc_no_dist * 2.0 - 1.0; 486 | 487 | // [0,1] 488 | vec2 tc_no_dist_normalized = (tc_no_dist_symmetric + 1.0) / 2.0; 489 | 490 | // vec4 color = texture2D(tex, tc); 491 | vec4 color = supersample(tex, tc, SAMPLING_RADIUS, NOISE_THRESHOLD, DENOISE_INTENSITY); 492 | 493 | color = applyAdaptiveSharpen(tc, color, tex); 494 | 495 | color = applyPhosphorGlow(tc, color, tex); 496 | 497 | color = reduceGlare(color); 498 | 499 | color = mix(applyFakeHDREffect(color, HDR_BRIGHTNESS, HDR_CONTRAST, HDR_SATURATION, HDR_BLOOM), color, 0.5); 500 | 501 | color = applyColorCorrection(color); 502 | 503 | color /= SUPERSAMPLING_SAMPLES; 504 | 505 | color = mix(applyChromaticAberration(tc, color), color, 0.0); 506 | 507 | color = mix(color, applyVignette(color), 0.1); 508 | 509 | color = applyBorder(tc_no_dist_normalized, color, 1.0 - BORDER_SIZE * BORDER_RADIUS, BORDER_COLOR); 510 | 511 | color = mix(applyBorder(tc, color, BORDER_SIZE, BORDER_COLOR), color, 0.05); 512 | 513 | // color = vec4(color.rgb * 1.15, color.a); 514 | 515 | 516 | color = applyScanlines(tc, color); 517 | 518 | gl_FragColor = color; 519 | gl_FragColor.a = 1.0; 520 | } 521 | 522 | -------------------------------------------------------------------------------- /hypr/Shaders/CRT.frag: -------------------------------------------------------------------------------- 1 | #version 100 2 | precision highp float; 3 | varying highp vec2 v_texcoord; 4 | varying highp vec3 v_pos; 5 | uniform highp sampler2D tex; 6 | uniform lowp float time; 7 | 8 | #define BORDER_COLOR vec4(vec3(0.0, 0.0, 0.0), 1.0) // black border 9 | #define BORDER_RADIUS 1.0 // larger vignette radius 10 | #define BORDER_SIZE 0.01 // small border size 11 | #define CHROMATIC_ABERRATION_STRENGTH 0.0027 12 | #define DENOISE_INTENSITY 0.0001 // 13 | #define DISTORTION_AMOUNT 0.11 // moderate distortion amount 14 | #define HDR_BLOOM 0.75 // bloom intensity 15 | #define HDR_BRIGHTNESS 0.011 // brightness 16 | #define HDR_CONTRAST 0.011 // contrast 17 | #define HDR_SATURATION 1.0// saturation 18 | #define LENS_DISTORTION_AMOUNT 1.0 19 | #define NOISE_THRESHOLD 0.0001 20 | #define PHOSPHOR_BLUR_AMOUNT 0.77 // Amount of blur for phosphor glow 21 | #define PHOSPHOR_GLOW_AMOUNT 0.77 // Amount of phosphor glow 22 | #define SAMPLING_RADIUS 0.0001 23 | #define SCANLINE_FREQUENCY 540.0 24 | #define SCANLINE_THICKNESS 0.0507 25 | #define SCANLINE_TIME time * 471.24 26 | #define SHARPNESS 0.25 27 | #define SUPERSAMPLING_SAMPLES 16.0 28 | #define VIGNETTE_RADIUS 0.8 // larger vignette radius 29 | #define PI 3.14159265359 30 | #define TWOPI 6.28318530718 31 | 32 | vec2 applyBarrelDistortion(vec2 coord, float amt) { 33 | vec2 p = coord.xy / vec2(1.0); 34 | vec2 v = p * 2.0 - vec2(1.0); 35 | float r = dot(v, v); 36 | float k = 1.0 + pow(r, 2.0) * pow(amt, 2.0); 37 | vec2 result = v * k; 38 | return vec2(0.5, 0.5) + 0.5 * result.xy; 39 | } 40 | 41 | vec4 applyColorCorrection(vec4 color) { 42 | color.rgb *= vec3(1.0, 0.79, 0.89); 43 | return vec4(color.rgb, 1.0); 44 | } 45 | 46 | vec4 applyBorder(vec2 tc, vec4 color, float borderSize, vec4 borderColor) { 47 | float dist_x = min(tc.x, 1.0 - tc.x); 48 | float dist_y = min(tc.y, 1.0 - tc.y); 49 | float dist = min(dist_x, dist_y) * -1.0; 50 | float border = smoothstep(borderSize, 0.0, dist); 51 | border += smoothstep(borderSize, 0.0, dist); 52 | return mix(color, borderColor, border); 53 | } 54 | 55 | vec4 applyFakeHDR(vec4 color, float brightness, float contrast, float saturation, float bloom) { 56 | color.rgb = (color.rgb - vec3(0.5)) * exp2(brightness) + vec3(0.5); 57 | vec3 crtfactor = vec3(1.05, 0.92, 1.0); 58 | color.rgb = pow(color.rgb, crtfactor); 59 | // // NTSC 60 | // vec3 lumCoeff = vec3(0.2125, 0.7154, 0.0721); 61 | 62 | // // BT.709 63 | // vec3 lumCoeff = vec3(0.299, 0.587, 0.114); 64 | 65 | // BT.2020 66 | vec3 lumCoeff = vec3(0.2627, 0.6780, 0.0593); 67 | 68 | // // Warm NTSC 69 | // vec3 lumCoeff = vec3(0.2125, 0.7010, 0.0865); 70 | 71 | float luminance = dot(color.rgb, lumCoeff); 72 | luminance = pow(luminance, 2.2); 73 | color.rgb = mix(vec3(luminance), color.rgb, saturation); 74 | color.rgb = mix(color.rgb, vec3(1.0), pow(max(0.0, luminance - 1.0 + bloom), 4.0)); 75 | return color; 76 | } 77 | 78 | vec4 applyVignette(vec4 color) { 79 | vec2 center = vec2(0.5, 0.5); // center of screen 80 | float radius = VIGNETTE_RADIUS; // radius of vignette effect 81 | float softness = 1.0; // softness of vignette effect 82 | float intensity = 0.7; // intensity of vignette effect 83 | vec2 offset = v_texcoord - center; // offset from center of screen 84 | float distance = length(offset); // distance from center of screen 85 | float alpha = smoothstep(radius, radius - radius * softness, distance) * intensity; // calculate alpha value for vignette effect 86 | return mix(vec4(0.0, 0.0, 0.0, alpha), color, alpha); // mix black with color using calculated alpha value 87 | } 88 | 89 | vec4 applyPhosphorGlow(vec2 tc, vec4 color, sampler2D tex) { 90 | // Calculate average color value of the texture 91 | vec4 texelColor = color; 92 | float averageColor = (texelColor.r + texelColor.g + texelColor.b) / 3.0; 93 | 94 | // Determine brightness-dependent color factor 95 | float factor = mix( 96 | mix(0.09, 97 | mix(0.005, 0.0075, (averageColor - 0.1) / 0.1), 98 | step(0.01, averageColor)), 0.0005, 99 | step(0.02, averageColor)); 100 | // Apply phosphor glow effect 101 | vec4 sum = vec4(0.0); 102 | vec4 pixels[9]; 103 | pixels[0] = texture2D(tex, tc - vec2(0.001, 0.001)); 104 | pixels[1] = texture2D(tex, tc - vec2(0.001, 0.0)); 105 | pixels[2] = texture2D(tex, tc - vec2(0.001, -0.001)); 106 | pixels[3] = texture2D(tex, tc - vec2(0.0, 0.001)); 107 | pixels[4] = texture2D(tex, tc); 108 | pixels[5] = texture2D(tex, tc + vec2(0.001, 0.001)); 109 | pixels[6] = texture2D(tex, tc + vec2(0.001, 0.0)); 110 | pixels[7] = texture2D(tex, tc + vec2(0.001, -0.001)); 111 | pixels[8] = texture2D(tex, tc + vec2(0.0, 0.001)); 112 | 113 | // Perform operations on input pixels in parallel 114 | sum = pixels[0] 115 | + pixels[1] 116 | + pixels[2] 117 | + pixels[3] 118 | + pixels[4] 119 | + pixels[5] 120 | + pixels[6] 121 | + pixels[7] 122 | + pixels[8]; 123 | sum /= 9.0; 124 | sum += texture2D(tex, tc - vec2(0.01, 0.01)) * 0.001; 125 | sum += texture2D(tex, tc - vec2(0.0, 0.01)) * 0.001; 126 | sum += texture2D(tex, tc - vec2(-0.01, 0.01)) * 0.001; 127 | sum += texture2D(tex, tc - vec2(0.01, 0.0)) * 0.001; 128 | sum += color * PHOSPHOR_BLUR_AMOUNT; 129 | sum += texture2D(tex, tc - vec2(-0.01, 0.0)) * 0.001; 130 | sum += texture2D(tex, tc - vec2(0.01, -0.01)) * 0.001; 131 | sum += texture2D(tex, tc - vec2(0.0, -0.01)) * 0.001; 132 | sum += texture2D(tex, tc - vec2(-0.01, -0.01)) * 0.001; 133 | sum *= PHOSPHOR_GLOW_AMOUNT; 134 | 135 | // Initialize sum_sum_factor to zero 136 | vec4 sum_sum_factor = vec4(0.0); 137 | // Compute sum_j for i = -1 138 | vec4 sum_j = vec4(0.0); 139 | sum_j += texture2D(tex, tc + vec2(-1, -1) * 0.01); 140 | sum_j += texture2D(tex, tc + vec2(0, -1) * 0.01); 141 | sum_j += texture2D(tex, tc + vec2(1, -1) * 0.01); 142 | sum_j += texture2D(tex, tc + vec2(-1, 0) * 0.01); 143 | sum_j += texture2D(tex, tc + vec2(0, 0) * 0.01); 144 | sum_j += texture2D(tex, tc + vec2(1, 0) * 0.01); 145 | sum_j += texture2D(tex, tc + vec2(-1, 1) * 0.01); 146 | sum_j += texture2D(tex, tc + vec2(0, 1) * 0.01); 147 | sum_j += texture2D(tex, tc + vec2(1, 1) * 0.01); 148 | sum_sum_factor += sum_j * vec4(0.011); 149 | 150 | // Compute sum_j for i = 0 151 | sum_j = vec4(0.0); 152 | sum_j += texture2D(tex, tc + vec2(-1, 0) * 0.01); 153 | sum_j += texture2D(tex, tc + vec2(0, 0) * 0.01); 154 | sum_j += texture2D(tex, tc + vec2(1, 0) * 0.01); 155 | sum_j += texture2D(tex, tc + vec2(-1, 1) * 0.01); 156 | sum_j += texture2D(tex, tc + vec2(0, 1) * 0.01); 157 | sum_j += texture2D(tex, tc + vec2(1, 1) * 0.01); 158 | sum_sum_factor += sum_j * vec4(0.011); 159 | 160 | // Compute sum_j for i = 1 161 | sum_j = vec4(0.0); 162 | sum_j += texture2D(tex, tc + vec2(-1, 0) * 0.01); 163 | sum_j += texture2D(tex, tc + vec2(0, 1) * 0.01); 164 | sum_j += texture2D(tex, tc + vec2(1, 0) * 0.01); 165 | sum_j += texture2D(tex, tc + vec2(-1, 1) * 0.01); 166 | sum_j += texture2D(tex, tc + vec2(0, 1) * 0.01); 167 | sum_j += texture2D(tex, tc + vec2(1, 1) * 0.01); 168 | sum_sum_factor += sum_j * vec4(0.011); 169 | color += mix(sum_sum_factor * sum_sum_factor * vec4(factor), sum, 0.5); 170 | return color; 171 | } 172 | 173 | vec4 applyAdaptiveSharpen(vec2 tc, vec4 color, sampler2D tex) { 174 | vec4 color_tl = texture2D(tex, tc + vec2(-1.0, -1.0) * 0.5 / 2160.0); 175 | vec4 color_tr = texture2D(tex, tc + vec2(1.0, -1.0) * 0.5 / 2160.0); 176 | vec4 color_bl = texture2D(tex, tc + vec2(-1.0, 1.0) * 0.5 / 2160.0); 177 | vec4 color_br = texture2D(tex, tc + vec2(1.0, 1.0) * 0.5 / 2160.0); 178 | float sharpness = SHARPNESS; 179 | vec3 color_no_alpha = color.rgb; 180 | vec3 color_tl_no_alpha = color_tl.rgb; 181 | vec3 color_tr_no_alpha = color_tr.rgb; 182 | vec3 color_bl_no_alpha = color_bl.rgb; 183 | vec3 color_br_no_alpha = color_br.rgb; 184 | float delta = (dot(color_no_alpha, vec3(0.333333)) + dot(color_tl_no_alpha, vec3(0.333333)) + dot(color_tr_no_alpha, vec3(0.333333)) + dot(color_bl_no_alpha, vec3(0.333333)) + dot(color_br_no_alpha, vec3(0.333333))) * 0.2 - dot(color_no_alpha, vec3(0.333333)); 185 | vec3 sharp_color_no_alpha = color_no_alpha + min(vec3(0.0), vec3(delta * sharpness)); 186 | vec4 sharp_color = vec4(sharp_color_no_alpha, color.a); 187 | return sharp_color; 188 | } 189 | 190 | vec4 applyScanlines(vec2 tc, vec4 color) { 191 | float scanline = (cos(tc.y * SCANLINE_FREQUENCY + SCANLINE_TIME) * 192 | sin(tc.y * SCANLINE_FREQUENCY + SCANLINE_TIME)) * SCANLINE_THICKNESS; 193 | float alpha = clamp(1.0 - abs(scanline), 0.0, 1.0); 194 | return vec4(color.rgb * alpha, color.a); 195 | } 196 | 197 | vec4 applyChromaticAberration(vec2 uv, vec4 color) { 198 | vec2 center = vec2(0.5, 0.5); // center of the screen 199 | vec2 offset = (uv - center) * CHROMATIC_ABERRATION_STRENGTH; // calculate the offset from the center 200 | 201 | // apply lens distortion 202 | float rSquared = dot(offset, offset); 203 | float distortion = 1.0 + LENS_DISTORTION_AMOUNT * rSquared; 204 | vec2 distortedOffset = offset * distortion; 205 | 206 | // apply chromatic aberration 207 | vec2 redOffset = vec2(distortedOffset.x * 1.00, distortedOffset.y * 1.00); 208 | vec2 blueOffset = vec2(distortedOffset.x * 1.00, distortedOffset.y * 1.00); 209 | 210 | vec4 redColor = texture2D(tex, uv + redOffset); 211 | vec4 blueColor = texture2D(tex, uv + blueOffset); 212 | 213 | vec4 result = vec4(redColor.r, color.g, blueColor.b, color.a); 214 | 215 | return result; 216 | } 217 | 218 | vec4 reduceGlare(vec4 color) { 219 | // Calculate the intensity of the color by taking the average of the RGB components 220 | float intensity = (color.r + color.g + color.b) / 3.0; 221 | // Set the maximum intensity that can be considered for glare 222 | float maxIntensity = 0.98; 223 | // Use smoothstep to create a smooth transition from no glare to full glare 224 | // based on the intensity of the color and the maximum intensity 225 | float glareIntensity = smoothstep(maxIntensity - 0.02, maxIntensity, intensity); 226 | // Set the amount of glare to apply to the color 227 | float glareAmount = 0.02; 228 | // Mix the original color with the reduced color that has glare applied to it 229 | vec3 reducedColor = mix(color.rgb, vec3(glareIntensity), glareAmount); 230 | // Return the reduced color with the original alpha value 231 | return vec4(reducedColor, color.a); 232 | } 233 | 234 | // Apply a fake HDR effect to the input color. 235 | // Parameters: 236 | // - inputColor: the color to apply the effect to. 237 | // - brightness: the brightness of the image. Should be a value between 0 and 1. 238 | // - contrast: the contrast of the image. Should be a value between 0 and 1. 239 | // - saturation: the saturation of the image. Should be a value between 0 and 2. 240 | // - bloom: the intensity of the bloom effect. Should be a value between 0 and 1. 241 | vec4 applyFakeHDREffect(vec4 inputColor, float brightness, float contrast, float saturation, float bloom) { 242 | const float minBrightness = 0.0; 243 | const float maxBrightness = 1.0; 244 | const float minContrast = 0.0; 245 | const float maxContrast = 1.0; 246 | const float minSaturation = 0.0; 247 | const float maxSaturation = 2.0; 248 | const float minBloom = 0.0; 249 | const float maxBloom = 1.0; 250 | 251 | // Check input parameters for validity 252 | if (brightness < minBrightness || brightness > maxBrightness) { 253 | return vec4(0.0, 0.0, 0.0, 1.0); // Return black with alpha of 1.0 to indicate error 254 | } 255 | if (contrast < minContrast || contrast > maxContrast) { 256 | return vec4(0.0, 0.0, 0.0, 1.0); 257 | } 258 | if (saturation < minSaturation || saturation > maxSaturation) { 259 | return vec4(0.0, 0.0, 0.0, 1.0); 260 | } 261 | if (bloom < minBloom || bloom > maxBloom) { 262 | return vec4(0.0, 0.0, 0.0, 1.0); 263 | } 264 | 265 | // Apply brightness and contrast 266 | vec3 color = inputColor.rgb; 267 | color = (color - vec3(0.5)) * exp2(brightness * 10.0) + vec3(0.5); 268 | color = mix(vec3(0.5), color, pow(contrast * 4.0 + 1.0, 2.0)); 269 | 270 | // // NTSC 271 | // vec3 lumCoeff = vec3(0.2125, 0.7154, 0.0721); 272 | 273 | // // BT.709 274 | // vec3 lumCoeff = vec3(0.299, 0.587, 0.114); 275 | 276 | // // BT.2020 277 | // vec3 lumCoeff = vec3(0.2627, 0.6780, 0.0593); 278 | 279 | // Warm NTSC 280 | vec3 lumCoeff = vec3(0.2125, 0.7010, 0.0865); 281 | 282 | // Apply saturation 283 | float luminance = dot(color, lumCoeff); 284 | vec3 grey = vec3(luminance); 285 | color = mix(grey, color, saturation); 286 | 287 | // Apply bloom effect 288 | float threshold = 1.0 - bloom; 289 | vec3 bloomColor = max(color - threshold, vec3(0.0)); 290 | bloomColor = pow(bloomColor, vec3(2.0)); 291 | bloomColor = mix(vec3(0.0), bloomColor, pow(min(luminance, threshold), 4.0)); 292 | color += bloomColor; 293 | 294 | return vec4(color, inputColor.a); 295 | } 296 | 297 | vec4 bilateralFilter(sampler2D tex, vec2 uv, vec4 color, float sampleRadius, float noiseThreshold, float intensity) { 298 | vec4 filteredColor = vec4(0.0); 299 | float totalWeight = 0.0; 300 | 301 | // Top-left pixel 302 | vec4 sample = texture2D(tex, uv + vec2(-1.0, -1.0)); 303 | float dist = length(vec2(-1.0, -1.0)); 304 | float colorDist = length(sample - color); 305 | float weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); 306 | filteredColor += sample * weight; 307 | totalWeight += weight; 308 | 309 | // Top pixel 310 | sample = texture2D(tex, uv + vec2(0.0, -1.0)); 311 | dist = length(vec2(0.0, -1.0)); 312 | colorDist = length(sample - color); 313 | weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); 314 | filteredColor += sample * weight; 315 | totalWeight += weight; 316 | 317 | // Top-right pixel 318 | sample = texture2D(tex, uv + vec2(1.0, -1.0)); 319 | dist = length(vec2(1.0, -1.0)); 320 | colorDist = length(sample - color); 321 | weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); 322 | filteredColor += sample * weight; 323 | totalWeight += weight; 324 | 325 | // Left pixel 326 | sample = texture2D(tex, uv + vec2(-1.0, 0.0)); 327 | dist = length(vec2(-1.0, 0.0)); 328 | colorDist = length(sample - color); 329 | weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); 330 | filteredColor += sample * weight; 331 | totalWeight += weight; 332 | 333 | // Center pixel 334 | sample = texture2D(tex, uv); 335 | dist = 0.0; 336 | colorDist = length(sample - color); 337 | weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); 338 | filteredColor += sample * weight; 339 | totalWeight += weight; 340 | 341 | // Right pixel 342 | sample = texture2D(tex, uv + vec2(1.0, 0.0)); 343 | dist = length(vec2(1.0, 0.0)); 344 | colorDist = length(sample - color); 345 | weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); 346 | filteredColor += sample * weight; 347 | totalWeight += weight; 348 | 349 | // Bottom-left pixel 350 | sample = texture2D(tex, uv + vec2(-1.0, 1.0)); 351 | dist = length(vec2(-1.0, 1.0)); 352 | colorDist = length(sample - color); 353 | weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); 354 | filteredColor += sample * weight; 355 | totalWeight += weight; 356 | 357 | // Bottom pixel 358 | sample = texture2D(tex, uv + vec2(0.0, sampleRadius)); 359 | dist = length(vec2(0.0, sampleRadius)); 360 | colorDist = length(sample - color); 361 | weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); 362 | filteredColor += sample * weight; 363 | totalWeight += weight; 364 | 365 | filteredColor /= totalWeight; 366 | return mix(color, filteredColor, step(noiseThreshold, length(filteredColor - color))); 367 | } 368 | 369 | vec4 supersample(sampler2D tex, vec2 uv, float sampleRadius, float noiseThreshold, float intensity) { 370 | float radiusSq = sampleRadius * sampleRadius; 371 | vec2 poissonDisk; 372 | vec4 color = vec4(0.0); 373 | 374 | float r1_0 = sqrt(0.0 / 16.0); 375 | float r2_0 = fract(1.0 / 3.0); 376 | float theta_0 = TWOPI * r2_0; 377 | poissonDisk = vec2(r1_0 * cos(theta_0), r1_0 * sin(theta_0)); 378 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 379 | 380 | float r1_1 = sqrt(1.0 / 16.0); 381 | float r2_1 = fract(2.0 / 3.0); 382 | float theta_1 = TWOPI * r2_1; 383 | poissonDisk = vec2(r1_1 * cos(theta_1), r1_1 * sin(theta_1)); 384 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 385 | 386 | float r1_2 = sqrt(2.0 / 16.0); 387 | float r2_2 = fract(3.0 / 3.0); 388 | float theta_2 = TWOPI * r2_2; 389 | poissonDisk = vec2(r1_2 * cos(theta_2), r1_2 * sin(theta_2)); 390 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 391 | 392 | float r1_3 = sqrt(3.0 / 16.0); 393 | float r2_3 = fract(4.0 / 3.0); 394 | float theta_3 = TWOPI * r2_3; 395 | poissonDisk = vec2(r1_3 * cos(theta_3), r1_3 * sin(theta_3)); 396 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 397 | 398 | float r1_4 = sqrt(4.0 / 16.0); 399 | float r2_4 = fract(5.0 / 3.0); 400 | float theta_4 = TWOPI * r2_4; 401 | poissonDisk = vec2(r1_4 * cos(theta_4), r1_4 * sin(theta_4)); 402 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 403 | 404 | float r1_5 = sqrt(5.0 / 16.0); 405 | float r2_5 = fract(6.0 / 3.0); 406 | float theta_5 = TWOPI * r2_5; 407 | poissonDisk = vec2(r1_5 * cos(theta_5), r1_5 * sin(theta_5)); 408 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 409 | 410 | float r1_6 = sqrt(6.0 / 16.0); 411 | float r2_6 = fract(7.0 / 3.0); 412 | float theta_6 = TWOPI * r2_6; 413 | poissonDisk = vec2(r1_6 * cos(theta_6), r1_6 * sin(theta_6)); 414 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 415 | 416 | float r1_7 = sqrt(7.0 / 16.0); 417 | float r2_7 = fract(8.0 / 3.0); 418 | float theta_7 = TWOPI * r2_7; 419 | poissonDisk = vec2(r1_7 * cos(theta_7), r1_7 * sin(theta_7)); 420 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 421 | 422 | float r1_8 = sqrt(8.0 / 16.0); 423 | float r2_8 = fract(9.0 / 3.0); 424 | float theta_8 = TWOPI * r2_8; 425 | poissonDisk = vec2(r1_8 * cos(theta_8), r1_8 * sin(theta_8)); 426 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 427 | 428 | float r1_9 = sqrt(9.0 / 16.0); 429 | float r2_9 = fract(10.0 / 3.0); 430 | float theta_9 = TWOPI * r2_9; 431 | poissonDisk = vec2(r1_9 * cos(theta_9), r1_9 * sin(theta_9)); 432 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 433 | 434 | float r1_10 = sqrt(10.0 / 16.0); 435 | float r2_10 = fract(11.0 / 3.0); 436 | float theta_10 = TWOPI * r2_10; 437 | poissonDisk = vec2(r1_10 * cos(theta_10), r1_10 * sin(theta_10)); 438 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 439 | 440 | float r1_11 = sqrt(11.0 / 16.0); 441 | float r2_11 = fract(12.0 / 3.0); 442 | float theta_11 = TWOPI * r2_11; 443 | poissonDisk = vec2(r1_11 * cos(theta_11), r1_11 * sin(theta_11)); 444 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 445 | 446 | float r1_12 = sqrt(12.0 / 16.0); 447 | float r2_12 = fract(13.0 / 3.0); 448 | float theta_12 = TWOPI * r2_12; 449 | poissonDisk = vec2(r1_12 * cos(theta_12), r1_12 * sin(theta_12)); 450 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 451 | 452 | float r1_13 = sqrt(13.0 / 16.0); 453 | float r2_13 = fract(14.0 / 3.0); 454 | float theta_13 = TWOPI * r2_13; 455 | poissonDisk = vec2(r1_13 * cos(theta_13), r1_13 * sin(theta_13)); 456 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 457 | 458 | float r1_14 = sqrt(14.0 / 16.0); 459 | float r2_14 = fract(15.0 / 3.0); 460 | float theta_14 = TWOPI * r2_14; 461 | poissonDisk = vec2(r1_14 * cos(theta_14), r1_14 * sin(theta_14)); 462 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 463 | 464 | float r1_15 = sqrt(15.0 / 16.0); 465 | float r2_15 = fract(16.0 / 3.0); 466 | float theta_15 = TWOPI * r2_15; 467 | poissonDisk = vec2(r1_15 * cos(theta_15), r1_15 * sin(theta_15)); 468 | color += texture2D(tex, uv + poissonDisk * sampleRadius); 469 | 470 | return bilateralFilter(tex, uv, color, sampleRadius, noiseThreshold, intensity); 471 | } 472 | void main() { 473 | vec2 tc_no_dist = v_texcoord; 474 | 475 | vec2 tc = applyBarrelDistortion(tc_no_dist, DISTORTION_AMOUNT); 476 | 477 | // [-1, 1] 478 | vec2 tc_no_dist_symmetric = tc_no_dist * 2.0 - 1.0; 479 | 480 | // [0,1] 481 | vec2 tc_no_dist_normalized = (tc_no_dist_symmetric + 1.0) / 2.0; 482 | 483 | // vec4 color = texture2D(tex, tc); 484 | vec4 color = supersample(tex, tc, SAMPLING_RADIUS, NOISE_THRESHOLD, DENOISE_INTENSITY); 485 | 486 | color = applyAdaptiveSharpen(tc, color, tex); 487 | 488 | color = applyPhosphorGlow(tc, color, tex); 489 | 490 | color = reduceGlare(color); 491 | 492 | color = mix(applyFakeHDREffect(color, HDR_BRIGHTNESS, HDR_CONTRAST, HDR_SATURATION, HDR_BLOOM), color, 0.5); 493 | 494 | color = applyColorCorrection(color); 495 | 496 | color /= SUPERSAMPLING_SAMPLES; 497 | 498 | color = mix(applyChromaticAberration(tc, color), color, 0.25); 499 | 500 | color = mix(color, applyVignette(color), 0.37); 501 | 502 | color = applyBorder(tc_no_dist_normalized, color, 1.0 - BORDER_SIZE * BORDER_RADIUS, BORDER_COLOR); 503 | 504 | color = mix(applyBorder(tc, color, BORDER_SIZE, BORDER_COLOR), color, 0.05); 505 | 506 | color = applyScanlines(tc, color); 507 | 508 | gl_FragColor = color; 509 | gl_FragColor.a = 1.0; 510 | } 511 | 512 | -------------------------------------------------------------------------------- /hypr/Shaders/cava.sh: -------------------------------------------------------------------------------- 1 | sleep 1 && cava 2 | -------------------------------------------------------------------------------- /hypr/Shaders/night.glsl: -------------------------------------------------------------------------------- 1 | // from https://github.com/hyprwm/Hyprland/issues/1140#issuecomment-1335128437 2 | 3 | precision mediump float; 4 | varying vec2 v_texcoord; 5 | uniform sampler2D tex; 6 | 7 | const float temperature = 3000.0; 8 | const float temperatureStrength = 1.0; 9 | 10 | #define WithQuickAndDirtyLuminancePreservation 11 | const float LuminancePreservationFactor = 1.0; 12 | 13 | // function from https://www.shadertoy.com/view/4sc3D7 14 | // valid from 1000 to 40000 K (and additionally 0 for pure full white) 15 | vec3 colorTemperatureToRGB(const in float temperature){ 16 | // values from: http://blenderartists.org/forum/showthread.php?270332-OSL-Goodness&p=2268693&viewfull=1#post2268693 17 | mat3 m = (temperature <= 6500.0) ? mat3(vec3(0.0, -2902.1955373783176, -8257.7997278925690), 18 | vec3(0.0, 1669.5803561666639, 2575.2827530017594), 19 | vec3(1.0, 1.3302673723350029, 1.8993753891711275)) : 20 | mat3(vec3(1745.0425298314172, 1216.6168361476490, -8257.7997278925690), 21 | vec3(-2666.3474220535695, -2173.1012343082230, 2575.2827530017594), 22 | vec3(0.55995389139931482, 0.70381203140554553, 1.8993753891711275)); 23 | return mix( 24 | clamp(vec3(m[0] / (vec3(clamp(temperature, 1000.0, 40000.0)) + m[1]) + m[2]), vec3(0.0), vec3(1.0)), 25 | vec3(1.0), 26 | smoothstep(1000.0, 0.0, temperature) 27 | ); 28 | } 29 | 30 | void main() { 31 | vec4 pixColor = texture2D(tex, v_texcoord); 32 | 33 | // RGB 34 | vec3 color = vec3(pixColor[0], pixColor[1], pixColor[2]); 35 | 36 | #ifdef WithQuickAndDirtyLuminancePreservation 37 | color *= mix(1.0, 38 | dot(color, vec3(0.2126, 0.7152, 0.0722)) / max(dot(color, vec3(0.2126, 0.7152, 0.0722)), 1e-5), 39 | LuminancePreservationFactor); 40 | #endif 41 | 42 | color = mix(color, color * colorTemperatureToRGB(temperature), temperatureStrength); 43 | 44 | vec4 outCol = vec4(color, pixColor[3]); 45 | 46 | gl_FragColor = outCol; 47 | } 48 | -------------------------------------------------------------------------------- /hypr/Shaders/vibrance.glsl: -------------------------------------------------------------------------------- 1 | // from https://github.com/hyprwm/Hyprland/issues/1140#issuecomment-1614863627 2 | 3 | precision mediump float; 4 | varying vec2 v_texcoord; 5 | uniform sampler2D tex; 6 | 7 | // see https://github.com/CeeJayDK/SweetFX/blob/a792aee788c6203385a858ebdea82a77f81c67f0/Shaders/Vibrance.fx#L20-L30 8 | const vec3 VIB_RGB_BALANCE = vec3(1.0, 1.0, 1.0); 9 | const float VIB_VIBRANCE = 0.15; 10 | 11 | 12 | const vec3 VIB_coeffVibrance = VIB_RGB_BALANCE * -VIB_VIBRANCE; 13 | 14 | void main() { 15 | 16 | vec4 pixColor = texture2D(tex, v_texcoord); 17 | 18 | // RGB 19 | vec3 color = vec3(pixColor[0], pixColor[1], pixColor[2]); 20 | 21 | 22 | // vec3 VIB_coefLuma = vec3(0.333333, 0.333334, 0.333333); // was for `if VIB_LUMA == 1` 23 | vec3 VIB_coefLuma = vec3(0.212656, 0.715158, 0.072186); // try both and see which one looks nicer. 24 | 25 | float luma = dot(VIB_coefLuma, color); 26 | 27 | float max_color = max(color[0], max(color[1], color[2])); 28 | float min_color = min(color[0], min(color[1], color[2])); 29 | 30 | float color_saturation = max_color - min_color; 31 | 32 | vec3 p_col = vec3(vec3(vec3(vec3(sign(VIB_coeffVibrance) * color_saturation) - 1.0) * VIB_coeffVibrance) + 1.0); 33 | 34 | pixColor[0] = mix(luma, color[0], p_col[0]); 35 | pixColor[1] = mix(luma, color[1], p_col[1]); 36 | pixColor[2] = mix(luma, color[2], p_col[2]); 37 | 38 | gl_FragColor = pixColor; 39 | } 40 | -------------------------------------------------------------------------------- /hypr/anims.conf: -------------------------------------------------------------------------------- 1 | animations { 2 | enabled = true 3 | # Animation curves 4 | 5 | bezier = linear, 0, 0, 1, 1 6 | bezier = md3_standard, 0.2, 0, 0, 1 7 | bezier = md3_decel, 0.05, 0.7, 0.1, 1 8 | bezier = md3_accel, 0.3, 0, 0.8, 0.15 9 | bezier = overshot, 0.05, 0.9, 0.1, 1.1 10 | bezier = crazyshot, 0.1, 1.5, 0.76, 0.92 11 | bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0 12 | bezier = menu_decel, 0.1, 1, 0, 1 13 | bezier = menu_accel, 0.38, 0.04, 1, 0.07 14 | bezier = easeInOutCirc, 0.85, 0, 0.15, 1 15 | bezier = easeOutCirc, 0, 0.55, 0.45, 1 16 | bezier = easeOutExpo, 0.16, 1, 0.3, 1 17 | bezier = softAcDecel, 0.26, 0.26, 0.15, 1 18 | bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration 19 | # Animation configs 20 | animation = windows, 1, 3, md3_decel, popin 60% 21 | animation = windowsIn, 1, 3, md3_decel, popin 60% 22 | animation = windowsOut, 1, 3, md3_accel, popin 60% 23 | animation = border, 1, 10, default 24 | animation = fade, 1, 3, md3_decel 25 | # animation = layers, 1, 2, md3_decel, slide 26 | animation = layersIn, 1, 3, menu_decel, slide 27 | animation = layersOut, 1, 1.6, menu_accel, slide 28 | animation = fadeLayersIn, 1, 2, menu_decel 29 | animation = fadeLayersOut, 1, 4.5, menu_accel 30 | animation = workspaces, 1, 7, menu_decel, slidevert 31 | # animation = workspaces, 1, 2.5, softAcDecel, slide 32 | # animation = workspaces, 1, 7, menu_decel, slidefade 15% 33 | animation = specialWorkspace, 1, 3, md3_decel, slidefade 15% 34 | } 35 | -------------------------------------------------------------------------------- /hypr/binds.conf: -------------------------------------------------------------------------------- 1 | submap=normal 2 | 3 | # FunctionKeys 4 | 5 | bindel=, XF86AudioRaiseVolume, exec, pactl set-sink-volume 0 +5% 6 | bindel=, XF86AudioLowerVolume, exec, pactl set-sink-volume 0 -5% 7 | bindl=, XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle 8 | 9 | # Screenshotting 10 | bind = ,Print, exec, grimshot copy screen ~/Pictures/Screenshots 11 | bind = SUPER SHIFT, S, exec, grimshot copy area 12 | 13 | 14 | # Global Keybinds 15 | bind = ,F2,pass,^(com\.obsproject\.Studio)$ 16 | 17 | # Plugins 18 | #bind = SUPER, Tab, overview:toggle 19 | 20 | # Launchers 21 | #bind = SUPER, R, exec, pkill rofi || rofi -show drun 22 | bind = SUPER, R, exec, hyprlauncher 23 | bind = SUPER, W, exec, firefox 24 | bind = SUPER, Y, exec, epiphany --new-window 25 | bind = SUPER, M, exec, pkill hyprsunset || hyprsunset -t 3500 26 | bind = SUPER, E, exec, dolphin 27 | bind = SUPER, T, exec, alacritty 28 | bind = CTRL SHIFT, escape, exec, missioncenter 29 | bind = SUPER SHIFT, T, exec, alacritty --class floatterm 30 | bind = SUPER SHIFT, C, exec, hyprpicker -a 31 | bind = SUPER, O, exec, osu-lazer 32 | bind = SUPER, I, exec, systemsettings 33 | 34 | # Special Workspace 35 | bind = SUPER , D, togglespecialworkspace, discord 36 | bind = SUPER , S, togglespecialworkspace, spotify 37 | bind = SUPER , C, togglespecialworkspace, code 38 | bind = SUPER , X, togglespecialworkspace, obs 39 | bind = SUPER , G, togglespecialworkspace, game 40 | bind = SUPER SHIFT, G, movetoworkspace, special:game 41 | bind = SUPER SHIFT, K, togglespecialworkspace, kden 42 | 43 | # Bindings 44 | bind = SUPER, Q, killactive 45 | bind = SUPER, V, togglefloating 46 | bind = SUPER, F, fullscreenstate, 3 47 | bind = SUPER SHIFT, F, fullscreenstate, 0 3 48 | bind = SUPER, J, togglesplit 49 | bind = SUPER SHIFT, P, pin 50 | bind = CTRL SHIFT, delete, exec, hyprctl reload 51 | # Move focus with mainMod + arrow keys 52 | bind = SUPER, up, movefocus, u 53 | bind = SUPER, down, movefocus, d 54 | bind = SUPER, right, movefocus, r 55 | bind = SUPER, left, movefocus, l 56 | 57 | bind = SUPER, up, bringactivetotop 58 | bind = SUPER, down, bringactivetotop 59 | bind = SUPER, right, bringactivetotop 60 | bind = SUPER, left, bringactivetotop 61 | 62 | # Move workspaces with mouse wheel 63 | bind=SUPER,mouse_down,exec, hyprnome --previous 64 | bind=SUPER,mouse_up,exec, hyprnome 65 | 66 | bind=SUPER SHIFT,mouse:273, movetoworkspace, empty 67 | 68 | bind = SUPER, 1, exec, hyprnome --previous 69 | bind = SUPER, 2, exec, hyprnome 70 | bind = SUPER_SHIFT, 1, exec, hyprnome --previous --move 71 | bind = SUPER_SHIFT, 2, exec, hyprnome --move 72 | 73 | # Move/resize windows with mainMod + LMB/RMB and dragging 74 | bindm = SUPER, mouse:272, movewindow 75 | bindm = SUPER SHIFT, mouse:272, resizewindow 76 | 77 | bind=SUPER SHIFT, X, exec, notify-send "关 BINDS" "入Windows VM, 关掉Binds" 78 | bind = SUPER SHIFT, X, togglespecialworkspace, windows 79 | bind = SUPER SHIFT, X, submap, vm 80 | 81 | # VM Workspace 82 | submap=vm 83 | 84 | bind = SUPER SHIFT, X, togglespecialworkspace, windows 85 | bind=SUPER SHIFT, X, exec, notify-send "开 BINDS" "出Windows VM, 开Binds" 86 | bind=SUPER SHIFT,X,submap,normal 87 | #bind = SUPER SHIFT, S, exec, grimshot copy area 88 | bindel=, XF86AudioRaiseVolume, exec, pactl set-sink-volume 0 +5% 89 | bindel=, XF86AudioLowerVolume, exec, pactl set-sink-volume 0 -5% 90 | bindl=, XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle 91 | bind = SUPER SHIFT, S, exec, grimshot copy area 92 | 93 | bind = SUPER , D, togglespecialworkspace, discord 94 | bind=SUPER, D, exec, notify-send "开 BINDS" "出Windows VM, 开Binds" 95 | bind=SUPER,D,submap,normal 96 | 97 | bind = SUPER , S, togglespecialworkspace, spotify 98 | bind=SUPER, S, exec, notify-send "开 BINDS" "出Windows VM, 开Binds" 99 | bind=SUPER,S,submap,normal 100 | 101 | 102 | -------------------------------------------------------------------------------- /hypr/hypridle.conf: -------------------------------------------------------------------------------- 1 | general { 2 | lock_cmd = hyprlock # dbus/sysd lock command (loginctl lock-session) 3 | #unlock_cmd = notify-send "unlock!" # same as above, but unlock 4 | ignore_dbus_inhibit = false # whether to ignore dbus-sent idle-inhibit requests (used by e.g. firefox or steam) 5 | } 6 | 7 | listener { 8 | timeout = 2000 # in seconds 9 | on-timeout = notify-send "Sleeping soon" "To prevent sleep, create any input event" # command to run when timeout has passed 10 | } 11 | 12 | listener { 13 | timeout = 2050 # in seconds 14 | on-timeout = systemctl suspend # command to run when timeout has passed 15 | } 16 | -------------------------------------------------------------------------------- /hypr/hyprland.conf: -------------------------------------------------------------------------------- 1 | source=~/.config/hypr/monitors.conf 2 | source=~/.config/hypr/settings.conf 3 | source=~/.config/hypr/rules.conf 4 | source=~/.config/hypr/startup.conf 5 | source=~/.config/hypr/plugins.conf 6 | source=~/.config/hypr/anims.conf 7 | source=~/.config/hypr/binds.conf 8 | -------------------------------------------------------------------------------- /hypr/hyprpaper.conf: -------------------------------------------------------------------------------- 1 | preload = ~/Pictures/Wallpapers/home_on_a_hill.JPG 2 | 3 | wallpaper = , ~/Pictures/Wallpapers/home_on_a_hill.JPG 4 | splash = off 5 | -------------------------------------------------------------------------------- /hypr/monitors.conf: -------------------------------------------------------------------------------- 1 | monitor = HDMI-A-1 , 1920x1080@72,0x0,1 2 | -------------------------------------------------------------------------------- /hypr/plugins.conf: -------------------------------------------------------------------------------- 1 | plugin { 2 | overview { 3 | dragAlpha = 1 4 | panelColor = rgba(2A2A2A80) 5 | panelBorderColor = rgb(606060) 6 | workspaceActiveBackground = rgba(00000080) 7 | panelHeight = 180 8 | panelBorderWidth = 2 9 | overrideGaps = 0 10 | showNewWorkspace = 0 11 | showEmptyWorkspace = 0 12 | drawActiveWorkspace = 0 13 | workspaceBorderSize = 2 14 | #overrideAnimSpeed = 6 15 | } 16 | hyswipe { 17 | button = 274 18 | #sensitivity = 1.5 19 | } 20 | hycov { 21 | overview_gappo = 60 # gaps width from screen edge 22 | overview_gappi = 60 # gaps width from clients 23 | hotarea_size = 10 # hotarea size in bottom left,10x10 24 | enable_hotarea = 1 # enable mouse cursor hotarea 25 | swipe_fingers = 4 # finger number of gesture,move any directory 26 | move_focus_distance = 100 # distance for movefocus,only can use 3 finger to move 27 | enable_gesture = 1 # enable gesture 28 | disable_workspace_change = 0 # disable workspace change when in overview mode 29 | disable_spawn = 0 # disable bind exec when in overvigew mode 30 | auto_exit = 1 # enable auto exit when no client in overview 31 | 32 | auto_fullscreen = 0 # auto make active window maximize after exit overview 33 | only_active_workspace = 0 # only overview the active workspace 34 | only_active_monitor = 1 # only overview the active monitor 35 | click_in_cursor = 1 # target windwo is find by cursor, not the current foucus window. 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /hypr/rules.conf: -------------------------------------------------------------------------------- 1 | # Window Rules 2 | windowrule = float, class:^(xdg-desktop-portal-gtk|io.bassi.Amberol|python3|org.gnome.Loupe|com.github.huluti.Curtail|dev.bragefuglseth.Fretboard|eww|com.github.GradienceTeam.Gradience|pavucontrol|blueman-manager|nm-connection-editor|blueberry.py|Color Picker|Network|xdg-desktop-portal|xdg-desktop-portal-hyprland|xdg-desktop-portal-gnome|io.github.nate_xyz.Chromatic|it.mijorus.whisper|io.github.giantpinkrobots.flatsweep|VirtualBox Machine|org.gnome.Nautilus|floatterm|moe.launcher.an-anime-game-launcher|org.gnome.clocks|org.gnome.Calculator|io.github.kaii_lb.Overskride|org.matplotlib.Matplotlib3|org.gnome.Decibels|org.kde.dolphin|org.kde.gwenviewsudo|io.github.nokse22.trivia-quiz|com.saivert.pwvucontrol|io.missioncenter.MissionCenter|com.jeffser.Alpaca|org.kde.plasmashell|pavucontrol-qt|hu.irl.cameractrls|vlc)$ 3 | windowrule = suppressevent maximize, class:^(.*)$ 4 | windowrule = size 55% 50%, class:^(org.gnome.Nautilus|org.kde.dolphin) 5 | 6 | 7 | windowrule = center, class:^(org.gnome.Nautilus|org.kde.dolphin) 8 | 9 | windowrule = stayfocused, title:^(Save Image|New Layer|Rotate View|polkit-gnome-authentication-agent-1)$ 10 | 11 | windowrule = float, title:^(Picture-in-Picture|画中画)$ 12 | windowrule = size 20% 20%, title:^(Picture-in-Picture|画中画)$ 13 | windowrule = move 79% 79%, title:^(Picture-in-Picture|画中画)$ 14 | windowrule = nodim, title:^(Picture-in-Picture)$ 15 | windowrule = pin, title:^(Picture-in-Picture)$ 16 | 17 | #windowrulev2 = rounding 8,floating:1 18 | windowrule = renderunfocused,class:^(looking-glass-client|vlc)$ 19 | 20 | # Layer Rules 21 | layerrule = ignorezero, rofi$ 22 | layerrule = blur, rofi$ 23 | layerrule = blur, waybar$ 24 | layerrule = blur, notifications$ 25 | layerrule = blur, gtk4-layer-shell$ 26 | layerrule = blur, hyprlauncher$ 27 | 28 | 29 | layerrule = animation slide, notifications$ 30 | layerrule = animation slide, rofi$ 31 | layerrule = noanim, selection$ 32 | layerrule = animation none, hyprpicker$ 33 | 34 | 35 | # Workspace Rules 36 | windowrule = workspace special:discord, class:^(vesktop)$ 37 | windowrule = workspace special:spotify, class:^(Spotify)$ 38 | windowrule = workspace special:code, class:^(dev.zed.Zed)$ 39 | windowrule = workspace special:windows, class:^(Waydroid|looking-glass-client)$ 40 | windowrule = workspace special:kden, class:^(org.kde.kdenlive)$ 41 | windowrule = workspace special:game, class:^(genshinimpact.exe|osu!|moe.launcher.an-anime-game-launcher)$ 42 | windowrule = workspace special:game, title:(Minecraft)(.*)$ 43 | windowrule = workspace special:game, initialClass:(osu!)$ 44 | windowrule = workspace special:obs, class:^(com.obsproject.Studio)$ 45 | 46 | windowrule = fullscreen, class:^(Waydroid|looking-glass-client)$ 47 | 48 | workspace=special:windows, on-created-empty: looking-glass-client 49 | workspace=special:discord, on-created-empty: vesktop --ozone-platform=wayland --enable-wayland-ime 50 | workspace=special:spotify, on-created-empty: spotify-launcher --skip-update 51 | #workspace=special:kden, on-created-empty: kdenlive 52 | workspace=special:obs, on-created-empty: obs 53 | workspace=special:code, on-created-empty: zeditor 54 | -------------------------------------------------------------------------------- /hypr/settings.conf: -------------------------------------------------------------------------------- 1 | general { 2 | gaps_in = 8 3 | gaps_out = 10 4 | gaps_workspaces = 0 5 | 6 | border_size = 2 7 | 8 | col.active_border = rgb(606060) 9 | col.inactive_border = rgba(60606080) 10 | layout = dwindle 11 | } 12 | 13 | input { 14 | sensitivity = 0.7 15 | accel_profile = flat 16 | repeat_rate = 50 17 | repeat_delay = 200 18 | force_no_accel = true 19 | # Focus Stuff 20 | follow_mouse = 1 21 | } 22 | cursor { 23 | enable_hyprcursor = false 24 | 25 | } 26 | xwayland { 27 | force_zero_scaling = false 28 | } 29 | 30 | dwindle { 31 | pseudotile = true 32 | preserve_split = true 33 | } 34 | 35 | 36 | binds { 37 | scroll_event_delay = 0 38 | } 39 | misc { 40 | disable_splash_rendering = true 41 | disable_hyprland_logo = true 42 | force_default_wallpaper = 0 43 | allow_session_lock_restore = true 44 | new_window_takes_over_fullscreen = 2 45 | focus_on_activate = false 46 | layers_hog_keyboard_focus = true 47 | initial_workspace_tracking = 0 48 | middle_click_paste = false 49 | } 50 | 51 | debug { 52 | disable_logs = true 53 | } 54 | 55 | decoration { 56 | rounding = 6 57 | 58 | 59 | dim_inactive = false 60 | dim_strength = 0.1 61 | dim_special = 0.6 62 | 63 | #screen_shader = ~/Code/Config/hypr/Shaders/CRT.frag 64 | #screen_shader = ~/Code/Config/hypr/Shaders/vibrance.glsl 65 | #screen_shader = ~/Code/Config/hypr/Shaders/night.glsl 66 | #screen_shader = ~/Code/Config/hypr/Shaders/red_down.glsl 67 | 68 | shadow { 69 | enabled = true 70 | range = 18 71 | render_power = 2 72 | color = rgba(00000070) 73 | offset = 3px 3px 74 | color_inactive = rgba(00000040) 75 | 76 | } 77 | 78 | blur { 79 | enabled = true 80 | special = false 81 | popups = true 82 | input_methods = true 83 | ignore_opacity = false 84 | xray = false 85 | size = 6 86 | passes = 3 87 | contrast = 1 88 | brightness = 0.7 89 | vibrancy = 0.5 90 | noise = 0.03 91 | } 92 | } 93 | animations { 94 | enabled = true 95 | first_launch_animation = true 96 | } 97 | -------------------------------------------------------------------------------- /hypr/startup.conf: -------------------------------------------------------------------------------- 1 | env = QT_QPA_PLATFORM,wayland 2 | env = GDK_BACKEND,wayland 3 | env = XDG_CURRENT_DESKTOP,Hyprland 4 | env = XDG_SESSION_TYPE,wayland 5 | env = XDG_SESSION_DESKTOP,Hyprland 6 | env = ELECTRON_OZONE_PLATFORM_HINT,wayland 7 | env = TERMINAL, alacritty 8 | env = QT_QPA_PLATFORMTHEME,kde 9 | 10 | # Chinese 11 | #env = LANGUAGE,zh_CN:en_US 12 | #env = LANG,zh_CN.UTF-8 13 | env = GTK_IM_MODULE,fcitx 14 | env = QT_IM_MODULE,fcitx 15 | env = XMODIFIERS,@im=fcitx 16 | env = QT_LOGGING_RULES="*.debug=false" 17 | env = XDG_MENU_PREFIX,arch- 18 | 19 | exec-once=dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY HYPRLAND_INSTANCE_SIGNATURE XDG_CURRENT_DESKTOP 20 | exec = systemctl --user start plasma-polkit-agent 21 | 22 | exec-once = fcitx5 23 | exec-once = dunst 24 | exec-once = hyprpaper 25 | exec-once = waybar 26 | exec = hyprctl dispatch submap normal 27 | exec-once = hyprpm reload 28 | -------------------------------------------------------------------------------- /hypr/xdph.conf: -------------------------------------------------------------------------------- 1 | screencopy { 2 | custom_picker_binary = hyprland-preview-share-picker 3 | } 4 | -------------------------------------------------------------------------------- /hyprlauncher/config.toml: -------------------------------------------------------------------------------- 1 | [window] 2 | width = 420 3 | height = 940 4 | anchor = "left" 5 | margin_top = 0 6 | margin_bottom = 0 7 | margin_left = 24 8 | margin_right = 0 9 | show_descriptions = false 10 | show_paths = false 11 | show_icons = true 12 | show_search = true 13 | show_actions = false 14 | show_border = true 15 | border_width = 2 16 | use_gtk_colors = false 17 | use_custom_css = false 18 | max_entries = 50 19 | 20 | [window.custom_navigate_keys] 21 | up = "k" 22 | down = "j" 23 | delete_word = "h" 24 | 25 | [theme.colors] 26 | window_bg = "#0f0f0f30" 27 | search_bg = "#0f0f0f30" 28 | search_bg_focused = "#282828" 29 | item_bg = "#0f0f0f00" 30 | item_bg_hover = "#18181880" 31 | item_bg_selected = "#1f1f1f80" 32 | search_text = "#e0e0e0" 33 | search_caret = "#808080" 34 | item_name = "#ffffff" 35 | item_name_selected = "#ffffff" 36 | item_description = "#a0a0a0" 37 | item_description_selected = "#a0a0a0" 38 | item_path = "#808080" 39 | item_path_selected = "#808080" 40 | border = "#404040" 41 | 42 | [theme.corners] 43 | window = 8 44 | search = 6 45 | list_item = 4 46 | 47 | [theme.spacing] 48 | search_margin = 0 49 | search_padding = 12 50 | item_margin = 6 51 | item_padding = 4 52 | 53 | [theme.typography] 54 | search_font_size = 16 55 | item_name_size = 14 56 | item_description_size = 12 57 | item_path_size = 12 58 | item_path_font_family = "monospace" 59 | 60 | [debug] 61 | disable_auto_focus = false 62 | enable_logging = false 63 | 64 | [calculator] 65 | enabled = true 66 | 67 | [dmenu] 68 | allow_invalid = false 69 | case_sensitive = false 70 | 71 | [web_search] 72 | enabled = true 73 | engine = "google" 74 | prefixes = [] 75 | -------------------------------------------------------------------------------- /micro_colors/macos.micro: -------------------------------------------------------------------------------- 1 | color-link statusline "#888888,#FFFFFF99" 2 | color-link line-number "#CCCCCC" 3 | color-link current-line-number "#606060" 4 | color-link type.extended "default" 5 | color-link selection "#4C4F69,#C2DAF7" 6 | 7 | color-link comment "#6C706E" 8 | 9 | color-link identifier "#1E66A5" 10 | color-link identifier.class "#1E66A5" 11 | color-link identifier.var "#1E66A5" 12 | 13 | color-link constant "#CE340B" 14 | color-link constant.number "#CE340B" 15 | color-link constant.string "#20701B" 16 | 17 | color-link symbol "#AA469B" 18 | color-link symbol.brackets "#9D3838" 19 | color-link symbol.tag "#1E66C5" 20 | 21 | color-link type "#1E66A5" 22 | color-link type.keyword "#AF5E0D" 23 | 24 | color-link special "#AA469B" 25 | color-link statement "#48297F" 26 | color-link preproc "#8A365B" 27 | 28 | color-link underlined "#046595" 29 | color-link error "bold #D20F39" 30 | color-link todo "bold #AF5E0D" 31 | 32 | color-link gutter-error "#820A39" 33 | color-link gutter-warning "#8F5E0D" 34 | -------------------------------------------------------------------------------- /micro_colors/macos_dark.micro: -------------------------------------------------------------------------------- 1 | #color-link default "#4C4F69,#EFF1F5" 2 | color-link comment "#6C706E" 3 | 4 | color-link identifier "#1E66F5" 5 | color-link identifier.class "#1E66F5" 6 | color-link identifier.var "#1E66F5" 7 | 8 | color-link constant "#FE640B" 9 | color-link constant.number "#FE640B" 10 | color-link constant.string "#40A02B" 11 | 12 | color-link symbol "#EA76CB" 13 | color-link symbol.brackets "#DD7878" 14 | color-link symbol.tag "#1E66F5" 15 | 16 | color-link type "#1E66F5" 17 | color-link type.keyword "#DF8E1D" 18 | 19 | color-link special "#EA76CB" 20 | color-link statement "#8839EF" 21 | color-link preproc "#EA76CB" 22 | 23 | color-link underlined "#04A5E5" 24 | color-link error "bold #D20F39" 25 | color-link todo "bold #DF8E1D" 26 | 27 | color-link gutter-error "#D20F39" 28 | color-link gutter-warning "#DF8E1D" 29 | 30 | color-link statusline "#888888,#FFFFFF99" 31 | #color-link tabbar "#4C4F69,#DCE0E8" 32 | color-link indent-char "#BCC0CC" 33 | color-link line-number "#8C808C" 34 | color-link current-line-number "#FFFFFF" 35 | 36 | #color-link cursor-line "#CCD0DA,#4C4F69" 37 | color-link color-column "#CCD0DA" 38 | color-link type.extended "default" 39 | 40 | color-link selection "#4C4F69,#C2DAF7" 41 | -------------------------------------------------------------------------------- /rofi/config.rasi: -------------------------------------------------------------------------------- 1 | 2 | * { 3 | background-color: transparent; 4 | 5 | font: "Fira Code Nerd Font 14"; 6 | } 7 | 8 | 9 | configuration { 10 | modes: "drun"; 11 | } 12 | window { 13 | padding: 1em; 14 | border: 2px; 15 | border-color: #606060; 16 | border-radius: 0px; 17 | background-color: #15151580; 18 | location: west; 19 | width: 25%; 20 | 21 | x-offset: 20px; 22 | height: 91%; 23 | } 24 | 25 | mainbox { 26 | spacing: 0px; 27 | children: [message,inputbar,listview]; 28 | } 29 | 30 | element { 31 | background: transparent; 32 | children: [ element-icon, element-text ]; 33 | } 34 | element,element-text,element-icon, button { 35 | cursor: pointer; 36 | } 37 | 38 | inputbar { 39 | margin: 0px 10px; 40 | spacing: 0.4em; 41 | border-radius: 0px; 42 | 43 | border: 1px; 44 | background-color: #00000055; 45 | border-color: #ffffff20; 46 | children: [entry,overlay,case-indicator]; 47 | } 48 | 49 | listview, message { 50 | padding: 0.5em; 51 | border: 0px; 52 | border-radius: 0px; 53 | background-color: transparent; 54 | 55 | columns: 1; 56 | lines: 7; 57 | } 58 | 59 | listview { 60 | border: 0px; 61 | spacing: 10px; 62 | background-color: transparent; 63 | border-color: #ffffff20; 64 | scrollbar: false; 65 | } 66 | 67 | element { 68 | border: 1px; 69 | border-radius: 0px; 70 | padding: 5px; 71 | border-color: #ffffff20; 72 | } 73 | 74 | element-text { 75 | background-color: transparent; 76 | text-color: #ffffffcc; 77 | font: "Fira Code Nerd Font 13"; 78 | padding: 5px; 79 | } 80 | 81 | element normal.normal { 82 | background-color: #00000055; 83 | } 84 | element.alternate.normal { 85 | background-color: #00000055; 86 | } 87 | 88 | element.selected.normal { 89 | background-color: #ffffff20; 90 | } 91 | 92 | 93 | entry { 94 | placeholder: "在这里打字"; 95 | placeholder-color: #ffffff20; 96 | border-color: transparent; 97 | background-color: transparent; 98 | border: 10px; 99 | text-color: #ffffffcc; 100 | } 101 | -------------------------------------------------------------------------------- /rofi/config_dark_rounded.rasi: -------------------------------------------------------------------------------- 1 | 2 | * { 3 | /* Default background color */ 4 | background-color: transparent; 5 | 6 | text-color: #ffffff20; 7 | font: "Fira Code Nerd Font 14"; 8 | } 9 | 10 | 11 | configuration { 12 | modes: "drun"; 13 | } 14 | window { 15 | padding: 1em; 16 | border-color: #ffffff30; 17 | border: 1px; 18 | border-radius: 10px; 19 | background-color: #15151590; 20 | location: west; 21 | width: 25%; 22 | /*x-offset: 30px; */ 23 | /*height: 96.5%;*/ 24 | 25 | x-offset: -8px; 26 | height: 97%; 27 | } 28 | 29 | mainbox { 30 | spacing: 0px; 31 | children: [message,inputbar,listview]; 32 | } 33 | 34 | element { 35 | background: transparent; 36 | children: [ element-icon, element-text ]; 37 | } 38 | element,element-text,element-icon, button { 39 | cursor: pointer; 40 | } 41 | 42 | inputbar { 43 | margin: 0px 10px; 44 | spacing: 0.4em; 45 | border-radius: 6px; 46 | 47 | border: 1px; 48 | background-color: #00000055; 49 | border-color: #ffffff20; 50 | children: [entry,overlay,case-indicator]; 51 | } 52 | 53 | 54 | 55 | listview, message { 56 | padding: 0.5em; 57 | border: 1px; 58 | border-radius: 0px; 59 | border-color: #ffffff20; 60 | background-color: transparent; 61 | 62 | columns: 1; 63 | lines: 7; 64 | } 65 | listview { 66 | border: 0px; 67 | spacing: 10px; 68 | background-color: transparent; 69 | border-color: #ffffff20; 70 | scrollbar: false; 71 | } 72 | 73 | 74 | element { 75 | border: 1px; 76 | border-radius: 6px; 77 | padding: 5px; 78 | border-color: #ffffff20; 79 | } 80 | 81 | element-text { 82 | background-color: transparent; 83 | text-color: #ffffffcc; 84 | font: "Fira Code Nerd Font 13"; 85 | padding: 5px; 86 | } 87 | 88 | element normal.normal { 89 | background-color: #00000055; 90 | } 91 | element.alternate.normal { 92 | background-color: #00000055; 93 | } 94 | 95 | 96 | element.selected.normal { 97 | background-color: #ffffff20; 98 | } 99 | 100 | 101 | entry { 102 | placeholder: "Search here"; 103 | placeholder-color: #ffffff20; 104 | border-color: transparent; 105 | background-color: transparent; 106 | border: 10px; 107 | text-color: #ffffffcc; 108 | } 109 | -------------------------------------------------------------------------------- /rofi/config_light.rasi: -------------------------------------------------------------------------------- 1 | 2 | * { 3 | background-color: transparent; 4 | 5 | font: "Fira Code Nerd Font 14"; 6 | } 7 | 8 | 9 | configuration { 10 | modes: "drun"; 11 | } 12 | window { 13 | padding: 1em; 14 | border: 2px; 15 | border-color: #606060; 16 | border-radius: 0px; 17 | background-color: #ffffff80; 18 | location: west; 19 | width: 25%; 20 | 21 | x-offset: 20px; 22 | height: 90%; 23 | } 24 | 25 | mainbox { 26 | spacing: 0px; 27 | children: [message,inputbar,listview]; 28 | } 29 | 30 | element { 31 | background: transparent; 32 | children: [ element-icon, element-text ]; 33 | } 34 | element,element-text,element-icon, button { 35 | cursor: pointer; 36 | } 37 | 38 | inputbar { 39 | margin: 0px 10px; 40 | spacing: 0.4em; 41 | border-radius: 0px; 42 | 43 | border: 1px; 44 | background-color: #E0E0E0A0; 45 | border-color: #00000050; 46 | children: [entry,overlay,case-indicator]; 47 | } 48 | 49 | listview, message { 50 | padding: 0.5em; 51 | border: 0px; 52 | border-radius: 0px; 53 | background-color: transparent; 54 | 55 | columns: 1; 56 | lines: 7; 57 | } 58 | 59 | listview { 60 | border: 0px; 61 | spacing: 10px; 62 | background-color: transparent; 63 | border-color: #ffffff20; 64 | scrollbar: false; 65 | } 66 | 67 | element { 68 | border: 1px; 69 | border-radius: 0px; 70 | padding: 5px; 71 | border-color: #00000050; 72 | } 73 | 74 | element-text { 75 | background-color: transparent; 76 | text-color: #000000; 77 | font: "Fira Code Nerd Font 13"; 78 | padding: 5px; 79 | } 80 | 81 | element normal.normal { 82 | background-color: #F2F2F2A0; 83 | } 84 | element.alternate.normal { 85 | background-color: #F2F2F2A0; 86 | } 87 | 88 | element.selected.normal { 89 | background-color: #B2B2B2A0; 90 | } 91 | 92 | 93 | entry { 94 | placeholder: "在这里打字"; 95 | placeholder-color: #00000080; 96 | border-color: transparent; 97 | background-color: transparent; 98 | border: 10px; 99 | text-color: #000000DD; 100 | } 101 | -------------------------------------------------------------------------------- /waybar/config.jsonc: -------------------------------------------------------------------------------- 1 | { 2 | "layer": "top", 3 | "position":"left", 4 | "modules-left": ["hyprland/workspaces","mpris"], 5 | "modules-center": ["clock"], 6 | "margin-bottom": 12, 7 | "margin-top":12, 8 | "margin-left":6, 9 | "modules-right": ["tray","custom/ddcutil","wireplumber"], 10 | "wireplumber": { 11 | "ignored-sinks": ["Easy Effects Sink"], 12 | "format-muted": " MT", 13 | "format": "{icon} {volume}", 14 | "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle", 15 | "on-click-right": "pavucontrol-qt", 16 | "max-volume": 100, 17 | "format-icons": ["","","", "", " "], 18 | "reverse-scrolling": true, 19 | "scroll-step": 1, 20 | "rotate":90 21 | }, 22 | "custom/ddcutil": { 23 | "format": " 󰃝 ", 24 | "return-type": "json", 25 | "on-click": "ddcutil setvcp 10 100", 26 | "on-click-right": "ddcutil setvcp 10 0", 27 | "tooltip": false, 28 | }, 29 | "tray": { 30 | "spacing":20, 31 | }, 32 | "clock": { 33 | "on-click": "hyprlauncher", 34 | "format": "{:%H\n%M}", 35 | "tooltip-format": "{:%A, %B %d, %Y (%R)}", 36 | }, 37 | "hyprland/workspaces": { 38 | "format": "{icon}", 39 | "show-special":true, 40 | "format-icons": { 41 | "default": "󱓼", 42 | "discord": "󰍩", 43 | "kden": "󱛿", 44 | "obs": "", 45 | "spotify": "󰝚", 46 | "windows": "", 47 | "game": "󰮂", 48 | "code":"󰨞", 49 | "note":"", 50 | }, 51 | "rotate":90, 52 | "on-click": "activate", 53 | }, 54 | "mpris": { 55 | "format": "{player_icon} {title} - {artist}", 56 | "format-paused": "{status_icon} {title} - {artist}", 57 | "status-icons": { 58 | "paused": "󰏤", 59 | "playing": "󰎈" 60 | }, 61 | "player-icons": { 62 | "default": "󰎈", 63 | "spotify": "󰓇", 64 | "io": "󰫔", 65 | "firefox": "", 66 | }, 67 | "max-length":30, 68 | "tooltip-format": "{status_icon} {title} - {artist} - {player}", 69 | "rotate":90 70 | }, 71 | "battery": { 72 | "format": "{icon} {capacity}", 73 | "format-icons": ["", "", "", "", ""], 74 | "format-charging": "󰢝 {capacity}", 75 | "max-length": 16, 76 | "rotate":90, 77 | "on-click": "foot -a floatterm -e battop", 78 | 79 | }, 80 | "network": { 81 | "format-wifi": "󱄙", 82 | "format-ethernet": "󰈀", 83 | "format": "", 84 | "tooltip-format": "{signaldBm}dBm {essid} {frequency}GHz", 85 | "on-click": "foot -a floatterm -e nmtui", 86 | 87 | "on-click-right": "nm-connection-editor", 88 | 89 | }, 90 | } 91 | -------------------------------------------------------------------------------- /waybar/scripts/waybar-ddc-module.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | receive_pipe="/tmp/waybar-ddc-module-rx" 4 | step=5 5 | 6 | ddcutil_fast() { 7 | # adjust the bus number and the multiplier for your display 8 | # multiplier should be chosen so that it both works reliably and fast enough 9 | ddcutil --noverify --bus 5 --sleep-multiplier .03 "$@" 2>/dev/null 10 | } 11 | 12 | ddcutil_slow() { 13 | ddcutil --maxtries 15,15,15 "$@" 2>/dev/null 14 | } 15 | 16 | # takes ddcutil commandline as arguments 17 | print_brightness() { 18 | if brightness=$("$@" -t getvcp 10); then 19 | brightness=$(echo "$brightness" | cut -d ' ' -f 4) 20 | else 21 | brightness=-1 22 | fi 23 | echo '{ "percentage":' "$brightness" '}' 24 | } 25 | 26 | rm -rf $receive_pipe 27 | mkfifo $receive_pipe 28 | 29 | # in case waybar restarted the script after restarting/replugging a monitor 30 | print_brightness ddcutil_slow 31 | 32 | while true; do 33 | read -r command < $receive_pipe 34 | case $command in 35 | + | -) 36 | ddcutil_fast setvcp 10 $command $step 37 | ;; 38 | max) 39 | ddcutil_fast setvcp 10 100 40 | ;; 41 | min) 42 | ddcutil_fast setvcp 10 0 43 | ;; 44 | esac 45 | print_brightness ddcutil_fast 46 | done 47 | -------------------------------------------------------------------------------- /waybar/style.css: -------------------------------------------------------------------------------- 1 | 2 | * { 3 | font-family: Fira Code Nerd Font; 4 | font-size: 18px; 5 | min-width: 40px; 6 | } 7 | 8 | 9 | 10 | @define-color background_box alpha(#101010,0.3); 11 | @define-color background_active_box alpha(#5A72A1,0.3); 12 | @define-color border_active_box #3A3F64; 13 | @define-color border_box #505050; 14 | @define-color default_text #DDDDDD; 15 | 16 | 17 | window#waybar { 18 | border-radius: 8px; 19 | 20 | background-color: alpha(#333333,0.5); 21 | border: 2px solid @border_box; 22 | margin: -4px -8px -8px -8px; 23 | } 24 | 25 | 26 | tooltip { 27 | background: #EBEBEB; 28 | border: 2px solid @border_box; 29 | border-radius: 6px; 30 | } 31 | tooltip label{ 32 | font-family: Source Code Pro; 33 | font-size: 18px; 34 | color: @default_text; 35 | } 36 | 37 | #tray { 38 | padding-bottom: 16px; 39 | } 40 | 41 | /* Group Right 1 */ 42 | #network { 43 | 44 | background-color: @background_box; 45 | 46 | border: 1px solid @border_box; 47 | 48 | border-radius: 6px; 49 | min-height: 40px; 50 | margin-left: 6px; 51 | margin-right: 6px; 52 | margin-bottom: 4px; 53 | 54 | padding-right: 4px; 55 | 56 | color: @default_text; 57 | } 58 | 59 | #battery { 60 | border: 1px solid @border_box; 61 | background-color: @background_box; 62 | 63 | border-top: 0px transparent; 64 | 65 | border-radius: 0px 0px 6px 6px; 66 | min-height: 80px; 67 | 68 | 69 | margin-bottom: 6px; 70 | padding-top: 6px; 71 | margin-left: 6px; 72 | margin-right: 6px; 73 | padding-bottom: 6px; 74 | color: @default_text; 75 | } 76 | 77 | #battery.charging { 78 | background: linear-gradient(180deg, @background_box 0%, @background_active_box 60%); 79 | } 80 | 81 | #wireplumber { 82 | border: 1px solid @border_box; 83 | background-color: @background_box; 84 | 85 | border-radius: 0px 0px 6px 6px; 86 | 87 | border-top: 0px transparent; 88 | min-height: 80px; 89 | margin-left: 6px; 90 | margin-bottom: 6px; 91 | margin-right: 6px; 92 | padding-top: 6px; 93 | padding-bottom: 10px; 94 | color: @default_text; 95 | } 96 | #custom-ddcutil { 97 | border: 1px solid @border_box; 98 | background-color: @background_box; 99 | 100 | border-radius: 6px 6px 0px 0px; 101 | 102 | border-bottom: 0px transparent; 103 | min-height: 20px; 104 | margin-left: 6px; 105 | margin-right: 6px; 106 | padding-top: 12px; 107 | color: @default_text; 108 | } 109 | 110 | #backlight { 111 | border: 1px solid @border_box; 112 | background-color: @background_box; 113 | 114 | border-radius: 0px 0px 0px 0px; 115 | 116 | border-top: 0px transparent; 117 | border-bottom: 0px transparent; 118 | padding-bottom: 3px; 119 | margin-left: 6px; 120 | padding-top: 3px; 121 | margin-right: 6px; 122 | color: @default_text; 123 | 124 | } 125 | 126 | 127 | 128 | /* Group Top */ 129 | 130 | #clock { 131 | border: 0.1rem solid @border_box; 132 | background-color: @background_box; 133 | min-height: 60px; 134 | margin-top: 6px; 135 | margin-bottom: 6px; 136 | margin-right: 6px; 137 | margin-left: 6px; 138 | border-radius: 6px; 139 | color: @default_text; 140 | transition: 0.4s; 141 | } 142 | 143 | #clock:hover{ 144 | background-color: @background_active_box; 145 | border: 0.2rem solid @border_active_box 146 | } 147 | 148 | #mpris { 149 | border: 1px solid @border_box; 150 | 151 | background-color: @background_box; 152 | 153 | border-radius: 6px; 154 | font-size: 16px; 155 | padding-top: 16px; 156 | 157 | padding-bottom: 10px; 158 | margin-left: 6px; 159 | margin-right: 6px; 160 | color: alpha(@default_text,0.6); 161 | transition: 0.4s; 162 | } 163 | 164 | #mpris.playing { 165 | background-color: @background_active_box; 166 | border: 2px solid @border_active_box; 167 | color: @default_text; 168 | /*box-shadow: 0px 0px 3px @border_active_box inset; */ 169 | /*text-shadow: 1px 1px @border_active_box; */ 170 | 171 | } 172 | 173 | 174 | #workspaces { 175 | background-color: @background_box; 176 | border: 1px solid @border_box; 177 | margin-left: 6px; 178 | margin-right:6px; 179 | margin-top: 6px; 180 | padding-top:8px; 181 | 182 | margin-bottom: 6px; 183 | font-size: 18px; 184 | padding-bottom: 6px; 185 | border-radius: 6px; 186 | } 187 | 188 | #workspaces button { 189 | margin-left: -33px; 190 | margin-right: -30px; 191 | border-radius: 0px; 192 | 193 | color: alpha(@default_text,0.2); 194 | 195 | transition-delay: 0s; 196 | transition: 0.4s; 197 | } 198 | 199 | #workspaces button:hover { 200 | color: rgba(0,0,0,0.5); 201 | background: alpha(@background_box,0); 202 | text-shadow: 2px 2px @border_active_box; 203 | 204 | } 205 | 206 | #workspaces button.active { 207 | color: alpha(@default_text,0.7); 208 | text-shadow: 3px 3px @border_active_box; 209 | /*background: radial-gradient(circle at center, @background_active_box 0, alpha(@background_active_box,0) 35%); */ 210 | } 211 | --------------------------------------------------------------------------------